");
textField.__div.innerHTML = tmp;
var _this_r1 = new RegExp("\n","g".split("u").join(""));
var tmp1 = textField.__div.innerHTML.replace(_this_r1,"
");
textField.__div.innerHTML = tmp1;
var _this_r2 = new RegExp("\r","g".split("u").join(""));
var tmp2 = textField.__div.innerHTML.replace(_this_r2,"
");
textField.__div.innerHTML = tmp2;
style.setProperty("font",openfl__$internal_text_TextEngine.getFont(textField.__textFormat),null);
textField.__textFormat.size = unscaledSize;
textField.__textFormat.leading = unscaledLeading;
style.setProperty("top","3px",null);
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("color","#" + StringTools.hex(textField.__textFormat.color & 16777215,6),null);
style.setProperty("width",w + "px",null);
style.setProperty("height",h + "px",null);
var _g = textField.__textFormat.align;
switch(_g) {
case 0:
style.setProperty("text-align","center",null);
break;
case 4:
style.setProperty("text-align","right",null);
break;
default:
style.setProperty("text-align","left",null);
}
textField.__dirty = false;
} else if(textField.__div != null) {
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__$internal_renderer_dom_DOMTextField.clear(textField,renderer);
}
};
openfl__$internal_renderer_dom_DOMTextField.__getAttributeMatch = function(regex) {
if(regex.matched(2) != null) {
return regex.matched(2);
} else {
return regex.matched(3);
}
};
var openfl__$internal_symbols_SWFSymbol = function() {
};
$hxClasses["openfl._internal.symbols.SWFSymbol"] = openfl__$internal_symbols_SWFSymbol;
openfl__$internal_symbols_SWFSymbol.__name__ = ["openfl","_internal","symbols","SWFSymbol"];
openfl__$internal_symbols_SWFSymbol.prototype = {
className: null
,id: null
,__createObject: function(swf) {
return null;
}
,__class__: openfl__$internal_symbols_SWFSymbol
};
var openfl__$internal_symbols_BitmapSymbol = function() {
openfl__$internal_symbols_SWFSymbol.call(this);
};
$hxClasses["openfl._internal.symbols.BitmapSymbol"] = openfl__$internal_symbols_BitmapSymbol;
openfl__$internal_symbols_BitmapSymbol.__name__ = ["openfl","_internal","symbols","BitmapSymbol"];
openfl__$internal_symbols_BitmapSymbol.__super__ = openfl__$internal_symbols_SWFSymbol;
openfl__$internal_symbols_BitmapSymbol.prototype = $extend(openfl__$internal_symbols_SWFSymbol.prototype,{
alpha: null
,path: null
,smooth: null
,__createObject: function(swf) {
return new openfl_display_Bitmap(openfl_display_BitmapData.fromImage(swf.library.getImage(this.path)),1,this.smooth != false);
}
,__class__: openfl__$internal_symbols_BitmapSymbol
});
var openfl__$internal_symbols_ButtonSymbol = function() {
openfl__$internal_symbols_SWFSymbol.call(this);
};
$hxClasses["openfl._internal.symbols.ButtonSymbol"] = openfl__$internal_symbols_ButtonSymbol;
openfl__$internal_symbols_ButtonSymbol.__name__ = ["openfl","_internal","symbols","ButtonSymbol"];
openfl__$internal_symbols_ButtonSymbol.__super__ = openfl__$internal_symbols_SWFSymbol;
openfl__$internal_symbols_ButtonSymbol.prototype = $extend(openfl__$internal_symbols_SWFSymbol.prototype,{
downState: null
,hitState: null
,overState: null
,upState: null
,__createObject: function(swf) {
var simpleButton = null;
openfl_display_SimpleButton.__initSWF = swf;
openfl_display_SimpleButton.__initSymbol = this;
if(this.className != null) {
var symbolType = Type.resolveClass(this.className);
if(symbolType != null) {
simpleButton = Type.createInstance(symbolType,[]);
}
}
if(simpleButton == null) {
simpleButton = new openfl_display_SimpleButton();
}
return simpleButton;
}
,__class__: openfl__$internal_symbols_ButtonSymbol
});
var openfl__$internal_symbols_DynamicTextSymbol = function() {
openfl__$internal_symbols_SWFSymbol.call(this);
};
$hxClasses["openfl._internal.symbols.DynamicTextSymbol"] = openfl__$internal_symbols_DynamicTextSymbol;
openfl__$internal_symbols_DynamicTextSymbol.__name__ = ["openfl","_internal","symbols","DynamicTextSymbol"];
openfl__$internal_symbols_DynamicTextSymbol.__super__ = openfl__$internal_symbols_SWFSymbol;
openfl__$internal_symbols_DynamicTextSymbol.prototype = $extend(openfl__$internal_symbols_SWFSymbol.prototype,{
align: null
,border: null
,color: null
,fontHeight: null
,fontID: null
,fontName: null
,height: null
,html: null
,indent: null
,input: null
,leading: null
,leftMargin: null
,multiline: null
,password: null
,rightMargin: null
,selectable: null
,text: null
,width: null
,wordWrap: null
,x: null
,y: null
,__createObject: function(swf) {
var textField = new openfl_text_TextField();
textField.__fromSymbol(swf,this);
return textField;
}
,__class__: openfl__$internal_symbols_DynamicTextSymbol
});
var openfl__$internal_symbols_FontSymbol = function() {
openfl__$internal_symbols_SWFSymbol.call(this);
};
$hxClasses["openfl._internal.symbols.FontSymbol"] = openfl__$internal_symbols_FontSymbol;
openfl__$internal_symbols_FontSymbol.__name__ = ["openfl","_internal","symbols","FontSymbol"];
openfl__$internal_symbols_FontSymbol.__super__ = openfl__$internal_symbols_SWFSymbol;
openfl__$internal_symbols_FontSymbol.prototype = $extend(openfl__$internal_symbols_SWFSymbol.prototype,{
advances: null
,ascent: null
,bold: null
,codes: null
,descent: null
,glyphs: null
,italic: null
,leading: null
,name: null
,__class__: openfl__$internal_symbols_FontSymbol
});
var openfl__$internal_symbols_ShapeSymbol = function() {
openfl__$internal_symbols_SWFSymbol.call(this);
};
$hxClasses["openfl._internal.symbols.ShapeSymbol"] = openfl__$internal_symbols_ShapeSymbol;
openfl__$internal_symbols_ShapeSymbol.__name__ = ["openfl","_internal","symbols","ShapeSymbol"];
openfl__$internal_symbols_ShapeSymbol.__super__ = openfl__$internal_symbols_SWFSymbol;
openfl__$internal_symbols_ShapeSymbol.prototype = $extend(openfl__$internal_symbols_SWFSymbol.prototype,{
commands: null
,rendered: null
,__createObject: function(swf) {
var shape = new openfl_display_Shape();
var graphics = shape.get_graphics();
if(this.rendered != null) {
graphics.copyFrom(this.rendered.get_graphics());
return shape;
}
var _g = 0;
var _g1 = this.commands;
while(_g < _g1.length) {
var command = _g1[_g];
++_g;
switch(command[1]) {
case 0:
var smooth = command[5];
var repeat = command[4];
var matrix = command[3];
var bitmapID = command[2];
var bitmapSymbol = swf.symbols.get(bitmapID);
var bitmap = swf.library.getImage(bitmapSymbol.path);
if(bitmap != null) {
graphics.beginBitmapFill(openfl_display_BitmapData.fromImage(bitmap),matrix,repeat,smooth);
}
break;
case 1:
var alpha = command[3];
var color = command[2];
graphics.beginFill(color,alpha);
break;
case 2:
var focalPointRatio = command[9];
var interpolationMethod = command[8];
var spreadMethod = command[7];
var matrix1 = command[6];
var ratios = command[5];
var alphas = command[4];
var colors = command[3];
var fillType = command[2];
graphics.beginGradientFill(fillType,colors,alphas,ratios,matrix1,spreadMethod,interpolationMethod,focalPointRatio);
break;
case 3:
var anchorY = command[5];
var anchorX = command[4];
var controlY = command[3];
var controlX = command[2];
graphics.curveTo(controlX,controlY,anchorX,anchorY);
break;
case 4:
graphics.endFill();
break;
case 5:
var miterLimit = command[9];
var joints = command[8];
var caps = command[7];
var scaleMode = command[6];
var pixelHinting = command[5];
var alpha1 = command[4];
var color1 = command[3];
var thickness = command[2];
if(thickness != null) {
graphics.lineStyle(thickness,color1,alpha1,pixelHinting,scaleMode,caps,joints,miterLimit);
} else {
graphics.lineStyle();
}
break;
case 6:
var y = command[3];
var x = command[2];
graphics.lineTo(x,y);
break;
case 7:
var y1 = command[3];
var x1 = command[2];
graphics.moveTo(x1,y1);
break;
}
}
this.commands = null;
this.rendered = new openfl_display_Shape();
this.rendered.get_graphics().copyFrom(shape.get_graphics());
return shape;
}
,__class__: openfl__$internal_symbols_ShapeSymbol
});
var openfl__$internal_symbols_SpriteSymbol = function() {
openfl__$internal_symbols_SWFSymbol.call(this);
this.frames = [];
};
$hxClasses["openfl._internal.symbols.SpriteSymbol"] = openfl__$internal_symbols_SpriteSymbol;
openfl__$internal_symbols_SpriteSymbol.__name__ = ["openfl","_internal","symbols","SpriteSymbol"];
openfl__$internal_symbols_SpriteSymbol.__super__ = openfl__$internal_symbols_SWFSymbol;
openfl__$internal_symbols_SpriteSymbol.prototype = $extend(openfl__$internal_symbols_SWFSymbol.prototype,{
baseClassName: null
,frames: null
,__createObject: function(swf) {
openfl_display_MovieClip.__initSWF = swf;
openfl_display_MovieClip.__initSymbol = this;
var symbolType = null;
if(this.className != null) {
symbolType = Type.resolveClass(this.className);
var tmp = symbolType == null;
}
if(symbolType == null && this.baseClassName != null) {
symbolType = Type.resolveClass(this.baseClassName);
var tmp1 = symbolType == null;
}
var movieClip = null;
if(symbolType != null) {
movieClip = Type.createInstance(symbolType,[]);
} else {
movieClip = new openfl_display_MovieClip();
}
return movieClip;
}
,__class__: openfl__$internal_symbols_SpriteSymbol
});
var openfl__$internal_symbols_StaticTextSymbol = function() {
openfl__$internal_symbols_SWFSymbol.call(this);
};
$hxClasses["openfl._internal.symbols.StaticTextSymbol"] = openfl__$internal_symbols_StaticTextSymbol;
openfl__$internal_symbols_StaticTextSymbol.__name__ = ["openfl","_internal","symbols","StaticTextSymbol"];
openfl__$internal_symbols_StaticTextSymbol.__super__ = openfl__$internal_symbols_SWFSymbol;
openfl__$internal_symbols_StaticTextSymbol.prototype = $extend(openfl__$internal_symbols_SWFSymbol.prototype,{
matrix: null
,records: null
,rendered: null
,__createObject: function(swf) {
var staticText = new openfl_text_StaticText();
var graphics = staticText.__graphics;
if(this.rendered != null) {
staticText.text = this.rendered.text;
graphics.copyFrom(this.rendered.__graphics);
return staticText;
}
var text = "";
if(this.records != null) {
var font = null;
var color = 16777215;
var offsetX = this.matrix.tx;
var offsetY = this.matrix.ty;
var scale;
var index;
var code;
var _g = 0;
var _g1 = this.records;
while(_g < _g1.length) {
var record = _g1[_g];
++_g;
if(record.fontID != null) {
font = swf.symbols.h[record.fontID];
}
if(record.offsetX != null) {
offsetX = this.matrix.tx + record.offsetX * 0.05;
}
if(record.offsetY != null) {
offsetY = this.matrix.ty + record.offsetY * 0.05;
}
if(record.color != null) {
color = record.color;
}
if(font != null) {
scale = record.fontHeight / 1024 * 0.05;
var _g3 = 0;
var _g2 = record.glyphs.length;
while(_g3 < _g2) {
var i = _g3++;
index = record.glyphs[i];
text += String.fromCharCode(font.codes[index]);
var _g4 = 0;
var _g5 = font.glyphs[index];
while(_g4 < _g5.length) {
var command = _g5[_g4];
++_g4;
switch(command[1]) {
case 1:
var alpha = command[3];
graphics.beginFill(color & 16777215,(color >> 24 & 255) / 255);
break;
case 3:
var anchorY = command[5];
var anchorX = command[4];
var controlY = command[3];
var controlX = command[2];
graphics.curveTo(controlX * scale + offsetX,controlY * scale + offsetY,anchorX * scale + offsetX,anchorY * scale + offsetY);
break;
case 4:
graphics.endFill();
break;
case 5:
var miterLimit = command[9];
var joints = command[8];
var caps = command[7];
var scaleMode = command[6];
var pixelHinting = command[5];
var alpha1 = command[4];
var color1 = command[3];
var thickness = command[2];
if(thickness != null) {
graphics.lineStyle(thickness,color1,alpha1,pixelHinting,scaleMode,caps,joints,miterLimit);
} else {
graphics.lineStyle();
}
break;
case 6:
var y = command[3];
var x = command[2];
graphics.lineTo(x * scale + offsetX,y * scale + offsetY);
break;
case 7:
var y1 = command[3];
var x1 = command[2];
graphics.moveTo(x1 * scale + offsetX,y1 * scale + offsetY);
break;
default:
}
}
offsetX += record.advances[i] * 0.05;
}
}
}
}
staticText.text = text;
this.records = null;
this.rendered = new openfl_text_StaticText();
this.rendered.text = text;
this.rendered.__graphics.copyFrom(staticText.__graphics);
return staticText;
}
,__class__: openfl__$internal_symbols_StaticTextSymbol
});
var openfl__$internal_symbols_StaticTextRecord = function() {
};
$hxClasses["openfl._internal.symbols.StaticTextRecord"] = openfl__$internal_symbols_StaticTextRecord;
openfl__$internal_symbols_StaticTextRecord.__name__ = ["openfl","_internal","symbols","StaticTextRecord"];
openfl__$internal_symbols_StaticTextRecord.prototype = {
advances: null
,color: null
,fontHeight: null
,fontID: null
,glyphs: null
,offsetX: null
,offsetY: null
,__class__: openfl__$internal_symbols_StaticTextRecord
};
var openfl__$internal_symbols_timeline_Frame = function() {
};
$hxClasses["openfl._internal.symbols.timeline.Frame"] = openfl__$internal_symbols_timeline_Frame;
openfl__$internal_symbols_timeline_Frame.__name__ = ["openfl","_internal","symbols","timeline","Frame"];
openfl__$internal_symbols_timeline_Frame.prototype = {
label: null
,objects: null
,script: null
,scriptSource: null
,__class__: openfl__$internal_symbols_timeline_Frame
};
var openfl__$internal_symbols_timeline_FrameObject = function() {
};
$hxClasses["openfl._internal.symbols.timeline.FrameObject"] = openfl__$internal_symbols_timeline_FrameObject;
openfl__$internal_symbols_timeline_FrameObject.__name__ = ["openfl","_internal","symbols","timeline","FrameObject"];
openfl__$internal_symbols_timeline_FrameObject.prototype = {
blendMode: null
,cacheAsBitmap: null
,clipDepth: null
,colorTransform: null
,depth: null
,filters: null
,id: null
,matrix: null
,name: null
,symbol: null
,type: null
,visible: null
,__class__: openfl__$internal_symbols_timeline_FrameObject
};
var openfl__$internal_symbols_timeline_FrameObjectType = $hxClasses["openfl._internal.symbols.timeline.FrameObjectType"] = { __ename__ : ["openfl","_internal","symbols","timeline","FrameObjectType"], __constructs__ : ["CREATE","UPDATE","DESTROY"] };
openfl__$internal_symbols_timeline_FrameObjectType.CREATE = ["CREATE",0];
openfl__$internal_symbols_timeline_FrameObjectType.CREATE.toString = $estr;
openfl__$internal_symbols_timeline_FrameObjectType.CREATE.__enum__ = openfl__$internal_symbols_timeline_FrameObjectType;
openfl__$internal_symbols_timeline_FrameObjectType.UPDATE = ["UPDATE",1];
openfl__$internal_symbols_timeline_FrameObjectType.UPDATE.toString = $estr;
openfl__$internal_symbols_timeline_FrameObjectType.UPDATE.__enum__ = openfl__$internal_symbols_timeline_FrameObjectType;
openfl__$internal_symbols_timeline_FrameObjectType.DESTROY = ["DESTROY",2];
openfl__$internal_symbols_timeline_FrameObjectType.DESTROY.toString = $estr;
openfl__$internal_symbols_timeline_FrameObjectType.DESTROY.__enum__ = openfl__$internal_symbols_timeline_FrameObjectType;
var openfl__$internal_text_GlyphPosition = function(glyph,advance,offset) {
this.glyph = glyph;
this.advance = advance;
if(offset != null) {
this.offset = offset;
} else {
this.offset = new lime_math_Vector2();
}
};
$hxClasses["openfl._internal.text.GlyphPosition"] = openfl__$internal_text_GlyphPosition;
openfl__$internal_text_GlyphPosition.__name__ = ["openfl","_internal","text","GlyphPosition"];
openfl__$internal_text_GlyphPosition.prototype = {
advance: null
,glyph: null
,offset: null
,__class__: openfl__$internal_text_GlyphPosition
};
var openfl__$internal_text_TextEngine = function(textField) {
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.sharpness = 0;
this.scrollH = 0;
this.scrollV = 1;
this.wordWrap = false;
this.lineAscents = openfl__$Vector_Vector_$Impl_$.toFloatVector(null);
this.lineBreaks = openfl__$Vector_Vector_$Impl_$.toIntVector(null);
this.lineDescents = openfl__$Vector_Vector_$Impl_$.toFloatVector(null);
this.lineLeadings = openfl__$Vector_Vector_$Impl_$.toFloatVector(null);
this.lineHeights = openfl__$Vector_Vector_$Impl_$.toFloatVector(null);
this.lineWidths = openfl__$Vector_Vector_$Impl_$.toFloatVector(null);
this.layoutGroups = openfl__$Vector_Vector_$Impl_$.toObjectVector(null);
this.textFormatRanges = openfl__$Vector_Vector_$Impl_$.toObjectVector(null);
openfl__$internal_text_TextEngine.__canvas = window.document.createElement("canvas");
openfl__$internal_text_TextEngine.__context = openfl__$internal_text_TextEngine.__canvas.getContext("2d");
};
$hxClasses["openfl._internal.text.TextEngine"] = openfl__$internal_text_TextEngine;
openfl__$internal_text_TextEngine.__name__ = ["openfl","_internal","text","TextEngine"];
openfl__$internal_text_TextEngine.__canvas = null;
openfl__$internal_text_TextEngine.__context = null;
openfl__$internal_text_TextEngine.findFont = function(name) {
var _this = openfl_text_Font.__fontByName;
if(__map_reserved[name] != null) {
return _this.getReserved(name);
} else {
return _this.h[name];
}
};
openfl__$internal_text_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","");
var tmp;
if(bold && italic) {
var _this = openfl_text_Font.__fontByName;
var key = fontNamePrefix + " Bold Italic";
if(__map_reserved[key] != null) {
tmp = _this.existsReserved(key);
} else {
tmp = _this.h.hasOwnProperty(key);
}
} else {
tmp = false;
}
if(tmp) {
return openfl__$internal_text_TextEngine.findFont(fontNamePrefix + " Bold Italic");
} else {
var tmp1;
if(bold) {
var _this1 = openfl_text_Font.__fontByName;
var key1 = fontNamePrefix + " Bold";
if(__map_reserved[key1] != null) {
tmp1 = _this1.existsReserved(key1);
} else {
tmp1 = _this1.h.hasOwnProperty(key1);
}
} else {
tmp1 = false;
}
if(tmp1) {
return openfl__$internal_text_TextEngine.findFont(fontNamePrefix + " Bold");
} else {
var tmp2;
if(italic) {
var _this2 = openfl_text_Font.__fontByName;
var key2 = fontNamePrefix + " Italic";
if(__map_reserved[key2] != null) {
tmp2 = _this2.existsReserved(key2);
} else {
tmp2 = _this2.h.hasOwnProperty(key2);
}
} else {
tmp2 = false;
}
if(tmp2) {
return openfl__$internal_text_TextEngine.findFont(fontNamePrefix + " Italic");
}
}
}
return openfl__$internal_text_TextEngine.findFont(fontName);
};
openfl__$internal_text_TextEngine.getFormatHeight = function(format) {
var ascent;
var descent;
var leading;
openfl__$internal_text_TextEngine.__context.font = openfl__$internal_text_TextEngine.getFont(format);
var font = openfl__$internal_text_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;
}
leading = format.leading;
return ascent + descent + leading;
};
openfl__$internal_text_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","");
var tmp;
if(bold && italic) {
var _this = openfl_text_Font.__fontByName;
var key = fontNamePrefix + " Bold Italic";
if(__map_reserved[key] != null) {
tmp = _this.existsReserved(key);
} else {
tmp = _this.h.hasOwnProperty(key);
}
} else {
tmp = false;
}
if(tmp) {
fontName = fontNamePrefix + " Bold Italic";
bold = false;
italic = false;
} else {
var tmp1;
if(bold) {
var _this1 = openfl_text_Font.__fontByName;
var key1 = fontNamePrefix + " Bold";
if(__map_reserved[key1] != null) {
tmp1 = _this1.existsReserved(key1);
} else {
tmp1 = _this1.h.hasOwnProperty(key1);
}
} else {
tmp1 = false;
}
if(tmp1) {
fontName = fontNamePrefix + " Bold";
bold = false;
} else {
var tmp2;
if(italic) {
var _this2 = openfl_text_Font.__fontByName;
var key2 = fontNamePrefix + " Italic";
if(__map_reserved[key2] != null) {
tmp2 = _this2.existsReserved(key2);
} else {
tmp2 = _this2.h.hasOwnProperty(key2);
}
} else {
tmp2 = false;
}
if(tmp2) {
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.leading + 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__$internal_text_TextEngine.getFontInstance = function(format) {
return openfl__$internal_text_TextEngine.findFontVariant(format);
};
openfl__$internal_text_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
,__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 accepted = declinedRange.map(restrict,function(ereg) {
declined += ereg.matched(1);
return "";
});
var testRegexpParts = [];
if(accepted.length > 0) {
testRegexpParts.push("[^" + restrict + "]");
}
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.width;
var _g = 0;
var _g1 = this.layoutGroups;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
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 lime_text__$UTF8String_UTF8String_$Impl_$.substring(this.text,index > 0 ? this.lineBreaks.get(index - 1) : 0,this.lineBreaks.get(index));
}
}
,getLineBreakIndex: function(startIndex) {
if(startIndex == null) {
startIndex = 0;
}
var cr = lime_text__$UTF8String_UTF8String_$Impl_$.indexOf(this.text,"\n",startIndex);
var lf = lime_text__$UTF8String_UTF8String_$Impl_$.indexOf(this.text,"\r",startIndex);
if(cr == -1) {
return lf;
}
if(lf == -1) {
return cr;
}
if(cr < lf) {
return cr;
} else {
return lf;
}
}
,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.bottomScrollV = 0;
this.maxScrollH = 0;
var _g = 0;
var _g1 = this.layoutGroups;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
while(group.lineIndex > this.numLines - 1) {
this.lineAscents.push(currentLineAscent);
this.lineDescents.push(currentLineDescent);
this.lineLeadings.push(currentLineLeading != null ? currentLineLeading : 0);
this.lineHeights.push(currentLineHeight);
this.lineWidths.push(currentLineWidth);
currentLineAscent = 0;
currentLineDescent = 0;
currentLineLeading = null;
currentLineHeight = 0;
currentLineWidth = 0;
this.numLines++;
if(this.textHeight <= this.height - 2) {
this.bottomScrollV++;
}
}
currentLineAscent = Math.max(currentLineAscent,group.ascent);
currentLineDescent = Math.max(currentLineDescent,group.descent);
if(currentLineLeading == null) {
currentLineLeading = group.leading;
} else {
currentLineLeading = 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 = group.offsetY - 2 + group.ascent + group.descent;
if(currentTextHeight > this.textHeight) {
this.textHeight = currentTextHeight;
}
}
if(this.textHeight == 0 && this.textField != null && this.textField.get_type() == 1) {
var currentFormat = this.textField.__textFormat;
var ascent;
var descent;
var leading;
var heightValue;
var font = openfl__$internal_text_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;
}
leading = currentFormat.leading;
heightValue = ascent + descent + leading;
currentLineAscent = ascent;
currentLineDescent = descent;
currentLineLeading = leading;
currentTextHeight = 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) {
this.bottomScrollV = 1;
if(currentLineLeading > 0) {
this.textHeight += currentLineLeading;
}
} else if(this.textHeight <= this.height - 2) {
this.bottomScrollV++;
}
if(this.autoSize != 2) {
var _g2 = this.autoSize;
switch(_g2) {
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;
}
this.maxScrollV = this.numLines - this.bottomScrollV + 1;
if(this.scrollV > this.maxScrollV) {
this.scrollV = this.maxScrollV;
}
if(this.scrollH > this.maxScrollH) {
this.scrollH = this.maxScrollH;
}
}
,getLayoutGroups: function() {
var _gthis = this;
this.layoutGroups.set_length(0);
if(this.text == null || lime_text__$UTF8String_UTF8String_$Impl_$.equals(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 layoutGroup = null;
var positions = null;
var widthValue = 0.0;
var heightValue = 0.0;
var maxHeightValue = 0.0;
var previousSpaceIndex = -2;
var spaceIndex = lime_text__$UTF8String_UTF8String_$Impl_$.indexOf(this.text," ");
var breakIndex = this.getLineBreakIndex();
var offsetX = 2.0;
var offsetY = 2.0;
var textIndex = 0;
var lineIndex = 0;
var lineFormat = null;
var getPositions = function(text,startIndex,endIndex) {
var positions1 = [];
var letterSpacing = 0.0;
if(formatRange.format.letterSpacing != null) {
letterSpacing = formatRange.format.letterSpacing;
}
if(_gthis.__useIntAdvances == null) {
var getPositions1 = new EReg("Trident/7.0","");
_gthis.__useIntAdvances = getPositions1.match(window.navigator.userAgent);
}
if(_gthis.__useIntAdvances) {
var previousWidth = 0.0;
var width;
var _g1 = startIndex;
var _g = endIndex;
while(_g1 < _g) {
var i = _g1++;
width = openfl__$internal_text_TextEngine.__context.measureText(lime_text__$UTF8String_UTF8String_$Impl_$.substring(text,startIndex,i + 1)).width;
positions1.push(width - previousWidth);
previousWidth = width;
}
} else {
var _g11 = startIndex;
var _g2 = endIndex;
while(_g11 < _g2) {
var i1 = _g11++;
var advance;
if(i1 < lime_text__$UTF8String_UTF8String_$Impl_$.get_length(text) - 1) {
var nextWidth = openfl__$internal_text_TextEngine.__context.measureText(lime_text__$UTF8String_UTF8String_$Impl_$.charAt(text,i1 + 1)).width;
var twoWidths = openfl__$internal_text_TextEngine.__context.measureText(lime_text__$UTF8String_UTF8String_$Impl_$.substr(text,i1,2)).width;
advance = twoWidths - nextWidth;
} else {
advance = openfl__$internal_text_TextEngine.__context.measureText(lime_text__$UTF8String_UTF8String_$Impl_$.charAt(text,i1)).width;
}
positions1.push(advance);
}
}
return positions1;
};
var getPositionsWidth = function(positions2) {
var width1 = 0.0;
var _g3 = 0;
while(_g3 < positions2.length) {
var position = positions2[_g3];
++_g3;
width1 += position;
}
return width1;
};
var getTextWidth = function(text1) {
return openfl__$internal_text_TextEngine.__context.measureText(text1).width;
};
var nextLayoutGroup = function(startIndex1,endIndex1) {
if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
layoutGroup = new openfl__$internal_text_TextLayoutGroup(formatRange.format,startIndex1,endIndex1);
_gthis.layoutGroups.push(layoutGroup);
} else {
layoutGroup.format = formatRange.format;
layoutGroup.startIndex = startIndex1;
layoutGroup.endIndex = endIndex1;
}
};
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 = ascent + descent + leading;
if(heightValue > maxHeightValue) {
maxHeightValue = heightValue;
}
if(ascent > maxAscent) {
maxAscent = ascent;
}
};
var nextFormatRange = function() {
var nextFormatRange1 = _gthis.textFormatRanges.get_length() - 1;
if(rangeIndex < nextFormatRange1) {
rangeIndex += 1;
formatRange = _gthis.textFormatRanges.get(rangeIndex);
currentFormat.__merge(formatRange.format);
openfl__$internal_text_TextEngine.__context.font = openfl__$internal_text_TextEngine.getFont(currentFormat);
font = openfl__$internal_text_TextEngine.getFontInstance(currentFormat);
}
};
var setFormattedPositions = function(startIndex2,endIndex2) {
if(endIndex2 <= formatRange.end) {
positions = getPositions(_gthis.text,startIndex2,endIndex2);
widthValue = getPositionsWidth(positions);
} else {
var tempIndex = startIndex2;
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 != endIndex2) {
nextFormatRange();
tempIndex = tempRangeEnd;
if(endIndex2 < formatRange.end) {
tempRangeEnd = endIndex2;
} else {
tempRangeEnd = formatRange.end;
}
++countRanges;
} else {
widthValue = getPositionsWidth(positions);
break;
}
}
rangeIndex -= countRanges + 1;
nextFormatRange();
}
};
var placeFormattedText = function(endIndex3) {
if(endIndex3 <= formatRange.end) {
positions = getPositions(_gthis.text,textIndex,endIndex3);
widthValue = getPositionsWidth(positions);
nextLayoutGroup(textIndex,endIndex3);
layoutGroup.positions = positions;
layoutGroup.offsetX = offsetX;
layoutGroup.ascent = ascent;
layoutGroup.descent = descent;
layoutGroup.leading = leading;
layoutGroup.lineIndex = lineIndex;
layoutGroup.offsetY = offsetY;
layoutGroup.width = widthValue;
layoutGroup.height = heightValue;
offsetX += widthValue;
if(endIndex3 == formatRange.end) {
layoutGroup = null;
nextFormatRange();
setLineMetrics();
}
} else {
while(true) {
var tempRangeEnd1 = endIndex3 < formatRange.end ? endIndex3 : formatRange.end;
if(textIndex != tempRangeEnd1) {
positions = getPositions(_gthis.text,textIndex,tempRangeEnd1);
widthValue = getPositionsWidth(positions);
nextLayoutGroup(textIndex,tempRangeEnd1);
layoutGroup.positions = positions;
layoutGroup.offsetX = offsetX;
layoutGroup.ascent = ascent;
layoutGroup.descent = descent;
layoutGroup.leading = leading;
layoutGroup.lineIndex = lineIndex;
layoutGroup.offsetY = offsetY;
layoutGroup.width = widthValue;
layoutGroup.height = heightValue;
offsetX += widthValue;
textIndex = tempRangeEnd1;
}
if(tempRangeEnd1 == formatRange.end) {
layoutGroup = null;
}
if(tempRangeEnd1 == endIndex3) {
break;
}
nextFormatRange();
setLineMetrics();
}
}
textIndex = endIndex3;
};
var alignBaseline = function() {
setLineMetrics();
var i2 = _gthis.layoutGroups.get_length();
while(--i2 > -1) {
var lg = _gthis.layoutGroups.get(i2);
if(lg.lineIndex < lineIndex) {
break;
}
if(lg.lineIndex > lineIndex) {
continue;
}
lg.ascent = maxAscent;
lg.height = maxHeightValue;
}
offsetY += maxHeightValue;
maxAscent = 0.0;
maxHeightValue = 0.0;
lineIndex += 1;
offsetX = 2;
};
var breakLongWords = function(endIndex4) {
var remainingPositions = positions;
var i3;
var bufferCount;
var placeIndex;
var positionWidth;
var currentPosition;
var tempPositions1;
var tempWidth = getPositionsWidth(remainingPositions);
while(offsetX + tempWidth > _gthis.width - 2) {
bufferCount = 0;
i3 = bufferCount;
positionWidth = 0.0;
while(offsetX + positionWidth < _gthis.width - 2) {
currentPosition = remainingPositions[i3];
if(currentPosition == 0.0) {
++i3;
++bufferCount;
} else {
positionWidth += currentPosition;
++i3;
}
}
if(i3 < 2 && positionWidth + offsetX > _gthis.width - 2) {
if(textIndex + i3 - bufferCount == endIndex4) {
break;
}
} else {
while(offsetX + positionWidth > _gthis.width - 2) {
--i3;
if(i3 - bufferCount > 0) {
setFormattedPositions(textIndex,textIndex + i3 - bufferCount);
positionWidth = widthValue;
} else {
i3 = 1;
bufferCount = 0;
setFormattedPositions(textIndex,textIndex + 1);
positionWidth = 0;
}
}
}
placeIndex = textIndex + i3 - bufferCount;
placeFormattedText(placeIndex);
alignBaseline();
setFormattedPositions(placeIndex,endIndex4);
remainingPositions = positions;
tempWidth = widthValue;
}
};
var placeText = function(endIndex5) {
if(_gthis.width >= 4 && _gthis.wordWrap) {
breakLongWords(endIndex5);
}
placeFormattedText(endIndex5);
};
nextFormatRange();
setLineMetrics();
lineFormat = formatRange.format;
var wrap;
var maxLoops = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text) + 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;
}
if(formatRange.end == breakIndex) {
nextFormatRange();
setLineMetrics();
lineFormat = formatRange.format;
}
if(breakIndex >= lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text) - 1) {
offsetY -= maxHeightValue;
}
alignBaseline();
textIndex = breakIndex + 1;
breakIndex = this.getLineBreakIndex(textIndex);
} else if(spaceIndex > -1) {
if(layoutGroup != null && layoutGroup.startIndex != layoutGroup.endIndex) {
layoutGroup = null;
}
wrap = false;
while(true) {
var tmp = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text);
if(textIndex >= tmp) {
break;
}
var endIndex6 = -1;
if(spaceIndex == -1) {
endIndex6 = breakIndex;
} else {
endIndex6 = spaceIndex + 1;
if(breakIndex > -1 && breakIndex < endIndex6) {
endIndex6 = breakIndex;
}
}
if(endIndex6 == -1) {
endIndex6 = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text);
}
setFormattedPositions(textIndex,endIndex6);
if(lineFormat.align == 2) {
if(positions.length > 0 && textIndex == previousSpaceIndex) {
textIndex += 1;
var spaceWidth = positions.shift();
widthValue -= spaceWidth;
offsetX += spaceWidth;
}
if(positions.length > 0 && endIndex6 == spaceIndex + 1) {
--endIndex6;
var spaceWidth1 = positions.pop();
widthValue -= spaceWidth1;
}
}
if(this.wordWrap) {
if(offsetX + widthValue > this.width - 2) {
wrap = true;
if(positions.length > 0 && endIndex6 == spaceIndex + 1) {
var lastPosition = positions[positions.length - 1];
var spaceWidth2 = lastPosition;
if(offsetX + widthValue - spaceWidth2 <= this.width - 2) {
wrap = false;
}
}
}
}
if(wrap) {
if(lineFormat.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 i4 = this.layoutGroups.get_length() - 1;
var offsetCount = 0;
while(true) {
layoutGroup = this.layoutGroups.get(i4);
if(i4 > 0 && layoutGroup.startIndex > previousSpaceIndex) {
++offsetCount;
} else {
break;
}
--i4;
}
if(textIndex == previousSpaceIndex + 1) {
alignBaseline();
}
offsetX = 2;
if(offsetCount > 0) {
var bumpX = this.layoutGroups.get(this.layoutGroups.get_length() - offsetCount).offsetX;
var _g12 = this.layoutGroups.get_length() - offsetCount;
var _g4 = this.layoutGroups.get_length();
while(_g12 < _g4) {
var i5 = _g12++;
layoutGroup = this.layoutGroups.get(i5);
layoutGroup.offsetX -= bumpX;
layoutGroup.offsetY = offsetY;
layoutGroup.lineIndex = lineIndex;
offsetX += layoutGroup.width;
}
}
placeText(endIndex6);
wrap = false;
} else if(layoutGroup != null && textIndex == spaceIndex) {
if(lineFormat.align != 2) {
layoutGroup.endIndex = spaceIndex;
layoutGroup.positions = layoutGroup.positions.concat(positions);
layoutGroup.width += widthValue;
}
offsetX += widthValue;
textIndex = endIndex6;
} else if(layoutGroup == null || lineFormat.align == 2) {
placeText(endIndex6);
} else {
var tempRangeEnd2 = endIndex6 < formatRange.end ? endIndex6 : formatRange.end;
if(tempRangeEnd2 < endIndex6) {
positions = getPositions(this.text,textIndex,tempRangeEnd2);
widthValue = getPositionsWidth(positions);
}
layoutGroup.endIndex = tempRangeEnd2;
layoutGroup.positions = layoutGroup.positions.concat(positions);
layoutGroup.width += widthValue;
offsetX += widthValue;
if(tempRangeEnd2 == formatRange.end) {
layoutGroup = null;
nextFormatRange();
setLineMetrics();
textIndex = tempRangeEnd2;
if(tempRangeEnd2 != endIndex6) {
placeFormattedText(endIndex6);
}
}
if(breakIndex == endIndex6) {
++endIndex6;
}
textIndex = endIndex6;
}
var nextSpaceIndex = lime_text__$UTF8String_UTF8String_$Impl_$.indexOf(this.text," ",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;
var tmp1;
if(!(breakIndex > -1 && breakIndex <= textIndex && (spaceIndex > breakIndex || spaceIndex == -1))) {
var tmp2 = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text);
tmp1 = textIndex > tmp2;
} else {
tmp1 = true;
}
if(tmp1) {
break;
}
}
} else {
var tmp3 = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text);
if(textIndex < tmp3) {
var tmp4 = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text);
setFormattedPositions(textIndex,tmp4);
placeText(lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text));
alignBaseline();
}
textIndex += 1;
}
}
,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 _g1 = 0;
var _g = this.layoutGroups.get_length();
while(_g1 < _g) {
var i = _g1++;
group = this.layoutGroups.get(i);
if(group.lineIndex != lineIndex) {
lineIndex = group.lineIndex;
var _g2 = group.format.align;
switch(_g2) {
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 _g3 = i + 1;
var _g21 = this.layoutGroups.get_length();
while(_g3 < _g21) {
var j = _g3++;
if(this.layoutGroups.get(j).lineIndex == lineIndex) {
if(j == 0 || lime_text__$UTF8String_UTF8String_$Impl_$.charCodeAt(this.text,this.layoutGroups.get(j).startIndex - 1) == 32) {
++lineLength;
}
} else {
break;
}
}
if(lineLength > 1) {
group = this.layoutGroups.get(i + lineLength - 1);
var endChar = lime_text__$UTF8String_UTF8String_$Impl_$.charCodeAt(this.text,group.endIndex);
if(group.endIndex < lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.text) && endChar != 10 && endChar != 13) {
offsetX = (totalWidth - this.lineWidths.get(lineIndex)) / (lineLength - 1);
lineMeasurementsDirty = true;
var j1 = 1;
while(true) {
this.layoutGroups.get(i + j1).offsetX += offsetX * j1;
if(!(++j1 < lineLength)) {
break;
}
}
}
}
}
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 && lime_text__$UTF8String_UTF8String_$Impl_$.get_length(value) > this.maxChars) {
value = lime_text__$UTF8String_UTF8String_$Impl_$.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.getLayoutGroups();
this.getLineMeasurements();
this.setTextAlignment();
}
this.getBounds();
}
,set_restrict: function(value) {
if(lime_text__$UTF8String_UTF8String_$Impl_$.equals(this.restrict,value)) {
return this.restrict;
}
this.restrict = value;
if(this.restrict == null || lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.restrict) == 0) {
this.__restrictRegexp = null;
} else {
this.__restrictRegexp = this.createRestrictRegexp(value);
}
return this.restrict;
}
,set_text: function(value) {
return this.text = value;
}
,__class__: openfl__$internal_text_TextEngine
,__properties__: {set_text:"set_text",set_restrict:"set_restrict"}
};
var openfl__$internal_text_TextFormatRange = function(format,start,end) {
this.format = format;
this.start = start;
this.end = end;
};
$hxClasses["openfl._internal.text.TextFormatRange"] = openfl__$internal_text_TextFormatRange;
openfl__$internal_text_TextFormatRange.__name__ = ["openfl","_internal","text","TextFormatRange"];
openfl__$internal_text_TextFormatRange.prototype = {
end: null
,format: null
,start: null
,__class__: openfl__$internal_text_TextFormatRange
};
var openfl__$internal_text_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._internal.text.TextLayout"] = openfl__$internal_text_TextLayout;
openfl__$internal_text_TextLayout.__name__ = ["openfl","_internal","text","TextLayout"];
openfl__$internal_text_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_HBBuffer_$Impl_$._new();
var this1 = this.__hbBuffer;
switch(direction) {
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
default:
}
var this2 = this.__hbBuffer;
var this3 = this.__hbBuffer;
var value = lime_text_harfbuzz__$HBLanguage_HBLanguage_$Impl_$._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__$internal_text_TextLayout
,__properties__: {set_text:"set_text",set_size:"set_size",set_script:"set_script",get_script:"get_script",get_positions:"get_positions",set_language:"set_language",get_language:"get_language",get_glyphs:"get_glyphs",set_font:"set_font",set_direction:"set_direction",get_direction:"get_direction"}
};
var openfl__$internal_text__$TextLayout_TextDirection_$Impl_$ = {};
$hxClasses["openfl._internal.text._TextLayout.TextDirection_Impl_"] = openfl__$internal_text__$TextLayout_TextDirection_$Impl_$;
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.__name__ = ["openfl","_internal","text","_TextLayout","TextDirection_Impl_"];
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.__properties__ = {get_vertical:"get_vertical",get_horizontal:"get_horizontal",get_forward:"get_forward",get_backward:"get_backward"};
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.reverse = function(this1) {
this1 ^= 1;
};
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.toString = function(this1) {
switch(this1) {
case 4:
return "leftToRight";
case 5:
return "rightToLeft";
case 6:
return "topToBottom";
case 7:
return "bottomToTop";
default:
return "";
}
};
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.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__$internal_text__$TextLayout_TextDirection_$Impl_$.get_backward = function(this1) {
return (this1 & -3) == 5;
};
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.get_forward = function(this1) {
return (this1 & -3) == 4;
};
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.get_horizontal = function(this1) {
return (this1 & -2) == 4;
};
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.get_vertical = function(this1) {
return (this1 & -2) == 6;
};
var openfl__$internal_text__$TextLayout_TextScript_$Impl_$ = {};
$hxClasses["openfl._internal.text._TextLayout.TextScript_Impl_"] = openfl__$internal_text__$TextLayout_TextScript_$Impl_$;
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.__name__ = ["openfl","_internal","text","_TextLayout","TextScript_Impl_"];
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.__properties__ = {get_rightToLeft:"get_rightToLeft"};
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.toHBScript = function(this1) {
return 1517910393;
};
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.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__$internal_text_TextLayoutGroup = function(format,startIndex,endIndex) {
this.format = format;
this.startIndex = startIndex;
this.endIndex = endIndex;
};
$hxClasses["openfl._internal.text.TextLayoutGroup"] = openfl__$internal_text_TextLayoutGroup;
openfl__$internal_text_TextLayoutGroup.__name__ = ["openfl","_internal","text","TextLayoutGroup"];
openfl__$internal_text_TextLayoutGroup.prototype = {
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__$internal_text_TextLayoutGroup
};
var openfl__$internal_utils_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._internal.utils.AbstractNoise"] = openfl__$internal_utils_AbstractNoise;
openfl__$internal_utils_AbstractNoise.__name__ = ["openfl","_internal","utils","AbstractNoise"];
openfl__$internal_utils_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 dest1 = bitmap.getPixel32(px,height - py);
var dest_r1 = dest1 >> 16 & 255;
var dest_g1 = dest1 >> 8 & 255;
var dest_b1 = dest1 & 255;
var u1 = (height - py) / stitch_h;
var uu1 = u1 * u1;
r = this.mixI(dest_r1,r,u1);
g = this.mixI(dest_g1,g,u1);
b = this.mixI(dest_b1,b,u1);
}
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 _g1 = 0;
var _g = this.octaves;
while(_g1 < _g) {
var i = _g1++;
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__$internal_utils_AbstractNoise
};
var openfl__$internal_utils_PerlinNoise = function(seed,octaves,channels,grayScale,falloff,stitch,stitch_threshold) {
if(stitch_threshold == null) {
stitch_threshold = 0.05;
}
if(stitch == null) {
stitch = false;
}
openfl__$internal_utils_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__$internal_utils_PerlinNoise.P[i & 255];
}
this.base_factor = 0.03125;
this.setSeed(seed);
};
$hxClasses["openfl._internal.utils.PerlinNoise"] = openfl__$internal_utils_PerlinNoise;
openfl__$internal_utils_PerlinNoise.__name__ = ["openfl","_internal","utils","PerlinNoise"];
openfl__$internal_utils_PerlinNoise.__super__ = openfl__$internal_utils_AbstractNoise;
openfl__$internal_utils_PerlinNoise.prototype = $extend(openfl__$internal_utils_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 _g1 = 0;
var _g = height;
while(_g1 < _g) {
var py = _g1++;
_scale_x = base_x;
var _g3 = 0;
var _g2 = width;
while(_g3 < _g2) {
var px = _g3++;
var color1 = 0.0;
var color2 = 0.0;
var color3 = 0.0;
var _g5 = 0;
var _g4 = octaves;
while(_g5 < _g4) {
var i = _g5++;
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__$internal_utils_PerlinNoise
});
var openfl__$internal_utils_TouchData = function() {
this.rollOutStack = [];
};
$hxClasses["openfl._internal.utils.TouchData"] = openfl__$internal_utils_TouchData;
openfl__$internal_utils_TouchData.__name__ = ["openfl","_internal","utils","TouchData"];
openfl__$internal_utils_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__$internal_utils_TouchData
};
var openfl_display_Application = function() {
lime_app_Application.call(this);
if(openfl__$internal_Lib.application == null) {
openfl__$internal_Lib.application = this;
}
if(openfl__$internal_Lib.current == null) {
openfl__$internal_Lib.current = new openfl_display_MovieClip();
}
openfl__$internal_Lib.current.__loaderInfo = openfl_display_LoaderInfo.create(null);
openfl__$internal_Lib.current.__loaderInfo.content = openfl__$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 f = $bind(this,this.__onWindowClose);
var a1 = $window;
var tmp = function() {
f(a1);
};
$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.__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) {
if(this.__bitmapData != null) {
var bounds = openfl_geom_Rectangle.__pool.get();
bounds.setTo(0,0,this.__bitmapData.width,this.__bitmapData.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 || 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 _this1 = this.__renderTransform;
var norm1 = _this1.a * _this1.d - _this1.b * _this1.c;
var py = norm1 == 0 ? -_this1.ty : 1.0 / norm1 * (_this1.a * (y - _this1.ty) + _this1.b * (_this1.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 _this1 = this.__renderTransform;
var norm1 = _this1.a * _this1.d - _this1.b * _this1.c;
var py = norm1 == 0 ? -_this1.ty : 1.0 / norm1 * (_this1.a * (y - _this1.ty) + _this1.b * (_this1.tx - x));
if(px > 0 && py > 0 && px <= this.__bitmapData.width && py <= this.__bitmapData.height) {
return true;
}
return false;
}
,__renderCairo: function(renderer) {
}
,__renderCairoMask: function(renderer) {
renderer.cairo.rectangle(0,0,this.get_width(),this.get_height());
}
,__renderCanvas: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__bitmapData != null && this.__bitmapData.image != null) {
this.__imageVersion = this.__bitmapData.image.version;
}
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
var bitmap = this.__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);
}
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = true;
}
renderer.__popMaskObject(bitmap,false);
}
}
} else {
if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(!(!this.__renderable)) {
var alpha1 = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha1 <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context1 = renderer.context;
renderer.setTransform(this.__renderTransform,context1);
var color = this.opaqueBackground;
context1.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")";
context1.fillRect(0,0,this.get_width(),this.get_height());
renderer.__popMaskObject(this);
}
if(this.__graphics != null) {
if(!(!this.__renderable)) {
var alpha2 = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha2 <= 0)) {
var graphics = this.__graphics;
if(graphics != null) {
openfl__$internal_renderer_canvas_CanvasGraphics.render(graphics,renderer);
var bounds = graphics.__bounds;
var width = graphics.__width;
var height = graphics.__height;
if(graphics.__canvas != null) {
var context2 = renderer.context;
var scrollRect1 = this.__scrollRect;
if(width > 0 && height > 0 && (scrollRect1 == null || scrollRect1.width > 0 && scrollRect1.height > 0)) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
context2.globalAlpha = alpha2;
renderer.setTransform(graphics.__worldTransform,context2);
if(renderer.__isDOM) {
var reverseScale = 1 / renderer.pixelRatio;
context2.scale(reverseScale,reverseScale);
}
context2.drawImage(graphics.__canvas,0,0,width,height);
renderer.__popMaskObject(this);
}
}
}
}
}
}
}
}
}
if(!(!this.__renderable)) {
var alpha3 = renderer.__getAlpha(this.__worldAlpha);
if(alpha3 > 0 && this.__bitmapData != null && this.__bitmapData.__isValid && this.__bitmapData.readable) {
var context3 = renderer.context;
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this,false);
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this.__bitmapData.image);
context3.globalAlpha = alpha3;
var scrollRect2 = this.__scrollRect;
renderer.setTransform(this.__renderTransform,context3);
if(!renderer.__allowSmoothing || !this.smoothing) {
context3.imageSmoothingEnabled = false;
}
if(scrollRect2 == null) {
context3.drawImage(this.__bitmapData.image.get_src(),0,0,this.__bitmapData.image.width,this.__bitmapData.image.height);
} else {
context3.drawImage(this.__bitmapData.image.get_src(),scrollRect2.x,scrollRect2.y,scrollRect2.width,scrollRect2.height);
}
if(!renderer.__allowSmoothing || !this.smoothing) {
context3.imageSmoothingEnabled = true;
}
renderer.__popMaskObject(this,false);
}
}
}
this.__renderEvent(renderer);
}
,__renderCanvasMask: function(renderer) {
renderer.context.rect(0,0,this.get_width(),this.get_height());
}
,__renderDOM: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
this.__renderDOMClear(renderer);
this.__cacheBitmap.stage = this.stage;
var bitmap = this.__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) {
openfl__$internal_renderer_dom_DOMBitmap.renderImage(bitmap,renderer);
} else {
openfl__$internal_renderer_dom_DOMBitmap.renderCanvas(bitmap,renderer);
}
renderer.__popMaskObject(bitmap);
} else {
openfl__$internal_renderer_dom_DOMBitmap.clear(bitmap,renderer);
}
} else {
var tmp = this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0;
var graphics = this.__graphics;
if(this.stage != null && this.__worldVisible && this.__renderable && graphics != null) {
openfl__$internal_renderer_canvas_CanvasGraphics.render(graphics,renderer.__canvasRenderer);
if(graphics.__softwareDirty || this.__worldAlphaChanged || this.__canvas != graphics.__canvas) {
if(graphics.__canvas != null) {
if(this.__canvas != graphics.__canvas) {
if(this.__canvas != null) {
renderer.element.removeChild(this.__canvas);
}
this.__canvas = graphics.__canvas;
this.__context = graphics.__context;
renderer.__initializeElement(this,this.__canvas);
}
} else {
openfl__$internal_renderer_dom_DOMShape.clear(this,renderer);
}
}
if(this.__canvas != null) {
renderer.__pushMaskObject(this);
var cacheTransform = this.__renderTransform;
this.__renderTransform = graphics.__worldTransform;
if(graphics.__transformDirty) {
graphics.__transformDirty = false;
this.__renderTransformChanged = true;
}
renderer.__updateClip(this);
renderer.__applyStyle(this,true,true,true);
this.__renderTransform = cacheTransform;
renderer.__popMaskObject(this);
}
} else {
openfl__$internal_renderer_dom_DOMShape.clear(this,renderer);
}
if(this.stage != null && this.__worldVisible && this.__renderable && this.__bitmapData != null && this.__bitmapData.__isValid && this.__bitmapData.readable) {
renderer.__pushMaskObject(this);
if(this.__bitmapData.image.buffer.__srcImage != null) {
openfl__$internal_renderer_dom_DOMBitmap.renderImage(this,renderer);
} else {
openfl__$internal_renderer_dom_DOMBitmap.renderCanvas(this,renderer);
}
renderer.__popMaskObject(this);
} else {
openfl__$internal_renderer_dom_DOMBitmap.clear(this,renderer);
}
}
this.__renderEvent(renderer);
}
,__renderDOMClear: function(renderer) {
openfl__$internal_renderer_dom_DOMBitmap.clear(this,renderer);
}
,__renderGL: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__bitmapData != null && this.__bitmapData.image != null) {
this.__imageVersion = this.__bitmapData.image.version;
}
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
openfl__$internal_renderer_context3D_Context3DBitmap.render(this.__cacheBitmap,renderer);
} else {
if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(!(!this.__renderable || this.__worldAlpha <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context = renderer.__context3D;
var rect = openfl_geom_Rectangle.__pool.get();
rect.setTo(0,0,this.get_width(),this.get_height());
renderer.__pushMaskRect(rect,this.__renderTransform);
var color = this.opaqueBackground;
context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1);
renderer.__popMaskRect();
renderer.__popMaskObject(this);
openfl_geom_Rectangle.__pool.release(rect);
}
if(this.__graphics != null) {
openfl__$internal_renderer_context3D_Context3DShape.render(this,renderer);
}
}
}
openfl__$internal_renderer_context3D_Context3DBitmap.render(this,renderer);
}
this.__renderEvent(renderer);
}
,__renderGLMask: function(renderer) {
openfl__$internal_renderer_context3D_Context3DBitmap.renderMask(this,renderer);
}
,__updateCacheBitmap: function(renderer,force) {
if(this.__bitmapData == null || this.__filters == null && renderer.__type == "opengl" && this.__cacheBitmap == null) {
return false;
}
return openfl_display_DisplayObject.prototype.__updateCacheBitmap.call(this,renderer,this.__bitmapData.image != null && this.__bitmapData.image.version != this.__imageVersion);
}
,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;
}
,get_height: function() {
if(this.__bitmapData != null) {
return this.__bitmapData.height * Math.abs(this.get_scaleY());
}
return 0;
}
,set_height: function(value) {
if(this.__bitmapData != null) {
if(value != this.__bitmapData.height) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
this.set_scaleY(value / this.__bitmapData.height);
}
return value;
}
return 0;
}
,get_width: function() {
if(this.__bitmapData != null) {
return this.__bitmapData.width * Math.abs(this.__scaleX);
}
return 0;
}
,set_width: function(value) {
if(this.__bitmapData != null) {
if(value != this.__bitmapData.width) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
this.set_scaleX(value / this.__bitmapData.width);
}
return value;
}
return 0;
}
,__class__: openfl_display_Bitmap
,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{set_bitmapData:"set_bitmapData",get_bitmapData:"get_bitmapData"})
});
var openfl_display__$BlendMode_BlendMode_$Impl_$ = {};
$hxClasses["openfl.display._BlendMode.BlendMode_Impl_"] = openfl_display__$BlendMode_BlendMode_$Impl_$;
openfl_display__$BlendMode_BlendMode_$Impl_$.__name__ = ["openfl","display","_BlendMode","BlendMode_Impl_"];
openfl_display__$BlendMode_BlendMode_$Impl_$.fromString = function(value) {
switch(value) {
case "add":
return 0;
case "alpha":
return 1;
case "darken":
return 2;
case "difference":
return 3;
case "erase":
return 4;
case "hardlight":
return 5;
case "invert":
return 6;
case "layer":
return 7;
case "lighten":
return 8;
case "multiply":
return 9;
case "normal":
return 10;
case "overlay":
return 11;
case "screen":
return 12;
case "shader":
return 13;
case "subtract":
return 14;
default:
return null;
}
};
openfl_display__$BlendMode_BlendMode_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "add";
case 1:
return "alpha";
case 2:
return "darken";
case 3:
return "difference";
case 4:
return "erase";
case 5:
return "hardlight";
case 6:
return "invert";
case 7:
return "layer";
case 8:
return "lighten";
case 9:
return "multiply";
case 10:
return "normal";
case 11:
return "overlay";
case 12:
return "screen";
case 13:
return "shader";
case 14:
return "subtract";
default:
return null;
}
};
var openfl_display_DisplayObjectRenderer = function() {
openfl_events_EventDispatcher.call(this);
this.__allowSmoothing = true;
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
,__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) {
}
,__resize: function(width,height) {
}
,__setBlendMode: function(value) {
}
,__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();
mask.__renderCairoMask(this);
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;
}
object.__renderCairo(this);
}
,__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) {
this.pixelRatio = 1;
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
,pixelRatio: 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();
mask.__renderCanvasMask(this);
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) {
object.__renderCanvas(this);
}
,__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_CapsStyle_$Impl_$ = {};
$hxClasses["openfl.display._CapsStyle.CapsStyle_Impl_"] = openfl_display__$CapsStyle_CapsStyle_$Impl_$;
openfl_display__$CapsStyle_CapsStyle_$Impl_$.__name__ = ["openfl","display","_CapsStyle","CapsStyle_Impl_"];
openfl_display__$CapsStyle_CapsStyle_$Impl_$.fromInt = function(value) {
return value;
};
openfl_display__$CapsStyle_CapsStyle_$Impl_$.fromString = function(value) {
switch(value) {
case "none":
return 0;
case "round":
return 1;
case "square":
return 2;
default:
return null;
}
};
openfl_display__$CapsStyle_CapsStyle_$Impl_$.toInt = function(this1) {
return this1;
};
openfl_display__$CapsStyle_CapsStyle_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "none";
case 1:
return "round";
case 2:
return "square";
default:
return null;
}
};
var openfl_display_DOMRenderer = function(element) {
this.pixelRatio = 1;
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
,pixelRatio: 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;
style.setProperty(this.__transformProperty,this.__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;
object.__renderDOM(this);
}
,__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.__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\t\t\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\t\t\n\t\tif (color.a == 0.0) {\n\t\t\t\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\t\t\t\n\t\t} else if (openfl_HasColorTransform) {\n\t\t\t\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\t\t\t\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\t\t\t\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\t\t\t\n\t\t\tif (color.a > 0.0) {\n\t\t\t\t\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t} else {\n\t\t\t\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\t\t\t\n\t\t}\n\t\t\t\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\t\t\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\t\t\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\t\t\n\t\tif (openfl_HasColorTransform) {\n\t\t\t\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\t\t\t\n\t\t}\n\t\t\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\t\n\t\t}";
}
openfl_display_Shader.call(this,code);
this.__isGenerated = true;
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_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
,get_frame: function() {
return this.__frame;
}
,get_name: function() {
return this.__name;
}
,__class__: openfl_display_FrameLabel
,__properties__: {get_name:"get_name",get_frame:"get_frame"}
});
var openfl_display__$GradientType_GradientType_$Impl_$ = {};
$hxClasses["openfl.display._GradientType.GradientType_Impl_"] = openfl_display__$GradientType_GradientType_$Impl_$;
openfl_display__$GradientType_GradientType_$Impl_$.__name__ = ["openfl","display","_GradientType","GradientType_Impl_"];
openfl_display__$GradientType_GradientType_$Impl_$.fromInt = function(value) {
return value;
};
openfl_display__$GradientType_GradientType_$Impl_$.fromString = function(value) {
switch(value) {
case "linear":
return 0;
case "radial":
return 1;
default:
return null;
}
};
openfl_display__$GradientType_GradientType_$Impl_$.toInt = function(this1) {
return this1;
};
openfl_display__$GradientType_GradientType_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "linear";
case 1:
return "radial";
default:
return null;
}
};
var openfl_display_Graphics = function(owner) {
this.__dirty = true;
this.__owner = owner;
this.__commands = new openfl__$internal_renderer_DrawCommandBuffer();
this.__strokePadding = 0;
this.__positionX = 0;
this.__positionY = 0;
this.__renderTransform = new openfl_geom_Matrix();
this.__usedShaderBuffers = new List();
this.__worldTransform = new openfl_geom_Matrix();
this.__width = 0;
this.__height = 0;
this.__shaderBufferPool = new lime_utils_ObjectPool(function() {
return new openfl__$internal_renderer_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
,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 _g1 = 0;
var _g = colors.length;
while(_g1 < _g) {
var i = _g1++;
alphas.push(1);
}
}
if(ratios == null) {
ratios = [];
var _g11 = 0;
var _g2 = colors.length;
while(_g11 < _g2) {
var i1 = _g11++;
ratios.push(Math.ceil(i1 / 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 _g3 = 0;
while(_g3 < alphas.length) {
var alpha = alphas[_g3];
++_g3;
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) {
this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding);
this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding);
var ix1;
var iy1;
var ix2;
var iy2;
ix1 = anchorX;
ix2 = anchorX;
if(!((controlX1 < anchorX && controlX1 > this.__positionX || controlX1 > anchorX && controlX1 < this.__positionX) && (controlX2 < anchorX && controlX2 > this.__positionX || controlX2 > anchorX && controlX2 < this.__positionX))) {
var u = 2 * this.__positionX - 4 * controlX1 + 2 * controlX2;
var v = controlX1 - this.__positionX;
var w = -this.__positionX + 3 * controlX1 + anchorX - 3 * controlX2;
var t1 = (-u + Math.sqrt(u * u - 4 * v * w)) / (2 * w);
var t2 = (-u - Math.sqrt(u * u - 4 * v * w)) / (2 * w);
if(t1 > 0 && t1 < 1) {
ix1 = this.__calculateBezierCubicPoint(t1,this.__positionX,controlX1,controlX2,anchorX);
}
if(t2 > 0 && t2 < 1) {
ix2 = this.__calculateBezierCubicPoint(t2,this.__positionX,controlX1,controlX2,anchorX);
}
}
iy1 = anchorY;
iy2 = anchorY;
if(!((controlY1 < anchorY && controlY1 > this.__positionX || controlY1 > anchorY && controlY1 < this.__positionX) && (controlY2 < anchorY && controlY2 > this.__positionX || controlY2 > anchorY && controlY2 < this.__positionX))) {
var u1 = 2 * this.__positionX - 4 * controlY1 + 2 * controlY2;
var v1 = controlY1 - this.__positionX;
var w1 = -this.__positionX + 3 * controlY1 + anchorY - 3 * controlY2;
var t11 = (-u1 + Math.sqrt(u1 * u1 - 4 * v1 * w1)) / (2 * w1);
var t21 = (-u1 - Math.sqrt(u1 * u1 - 4 * v1 * w1)) / (2 * w1);
if(t11 > 0 && t11 < 1) {
iy1 = this.__calculateBezierCubicPoint(t11,this.__positionX,controlY1,controlY2,anchorY);
}
if(t21 > 0 && t21 < 1) {
iy2 = this.__calculateBezierCubicPoint(t21,this.__positionX,controlY1,controlY2,anchorY);
}
}
this.__inflateBounds(ix1 - this.__strokePadding,iy1 - this.__strokePadding);
this.__inflateBounds(ix1 + this.__strokePadding,iy1 + this.__strokePadding);
this.__inflateBounds(ix2 - this.__strokePadding,iy2 - this.__strokePadding);
this.__inflateBounds(ix2 + this.__strokePadding,iy2 + this.__strokePadding);
this.__positionX = anchorX;
this.__positionY = anchorY;
this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding);
this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding);
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.__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 _g = 0;
while(_g < graphicsData.get_length()) {
var graphics = graphicsData.get(_g);
++_g;
var _g1 = graphics.__graphicsDataType;
switch(_g1) {
case openfl_display_GraphicsDataType.STROKE:
stroke = graphics;
if(stroke.fill != null) {
var thickness = stroke.thickness;
if(isNaN(thickness)) {
thickness = null;
}
var _g11 = stroke.fill.__graphicsFillType;
switch(_g11) {
case openfl_display_GraphicsFillType.SOLID_FILL:
fill = stroke.fill;
this.lineStyle(thickness,fill.color,fill.alpha,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit);
break;
case openfl_display_GraphicsFillType.GRADIENT_FILL:
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 openfl_display_GraphicsFillType.BITMAP_FILL:
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 openfl_display_GraphicsDataType.SOLID:
fill = graphics;
this.beginFill(fill.color,fill.alpha);
break;
case openfl_display_GraphicsDataType.GRADIENT:
gradientFill = graphics;
this.beginGradientFill(gradientFill.type,gradientFill.colors,gradientFill.alphas,gradientFill.ratios,gradientFill.matrix,gradientFill.spreadMethod,gradientFill.interpolationMethod,gradientFill.focalPointRatio);
break;
case openfl_display_GraphicsDataType.PATH:
path = graphics;
this.drawPath(path.commands,path.data,path.winding);
break;
case openfl_display_GraphicsDataType.BITMAP:
bitmapFill = graphics;
this.beginBitmapFill(bitmapFill.bitmapData,bitmapFill.matrix,bitmapFill.repeat,bitmapFill.smooth);
break;
case openfl_display_GraphicsDataType.END:
this.endFill();
break;
case openfl_display_GraphicsDataType.QUAD_PATH:
quadPath = graphics;
this.drawQuads(quadPath.rects,quadPath.indices,quadPath.transforms);
break;
case openfl_display_GraphicsDataType.TRIANGLE_PATH:
trianglePath = graphics;
this.drawTriangles(trianglePath.vertices,trianglePath.indices,trianglePath.uvtData,trianglePath.culling);
break;
case openfl_display_GraphicsDataType.SHADER:
shaderFill = graphics;
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 _g = 0;
try {
while(_g < commands.get_length()) {
var command = commands.get(_g);
++_g;
switch(command) {
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));
throw "__break__";
break;
case 5:
this.lineTo(data.get(dataIndex + 2),data.get(dataIndex + 3));
throw "__break__";
break;
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:
}
}
} catch( e ) { if( e != "__break__" ) throw e; }
}
,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 _g1 = 0;
var _g = length;
while(_g1 < _g) {
var i = _g1++;
if(hasIndices) {
ri = indices.get(i) * 4;
} else {
ri = 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;
}
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 = topLeftRadius;
} else {
topLeftRadius = minSize;
}
if(topRightRadius < minSize) {
topRightRadius = topRightRadius;
} else {
topRightRadius = minSize;
}
if(bottomLeftRadius < minSize) {
bottomLeftRadius = bottomLeftRadius;
} else {
bottomLeftRadius = minSize;
}
if(bottomRightRadius < minSize) {
bottomRightRadius = bottomRightRadius;
} else {
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 js__$Boot_HaxeError(new openfl_errors_ArgumentError("Not enough vertices to close a triangle."));
}
indices = openfl__$Vector_Vector_$Impl_$.toIntVector(null);
var _g1 = 0;
var _g = vertLength;
while(_g1 < _g) {
var i = _g1++;
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 _g11 = 0;
var _g2 = vertLength;
while(_g11 < _g2) {
var i1 = _g11++;
x = vertices.get(i1 * 2);
y = vertices.get(i1 * 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 = thickness;
}
} else if(thickness / 2 > this.__strokePadding) {
this.__strokePadding = thickness / 2;
}
}
this.__commands.lineStyle(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit);
if(thickness != null) {
this.__visible = true;
}
}
,lineTo: function(x,y) {
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_Vector_$Impl_$.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 norm1 = matrix.a * matrix.d - matrix.b * matrix.c;
var py = norm1 == 0 ? -matrix.ty : 1.0 / norm1 * (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__$internal_renderer_canvas_CanvasGraphics.hitTest(this,px,py);
}
return true;
}
return false;
}
,__inflateBounds: function(x,y) {
if(this.__bounds == null) {
this.__bounds = new openfl_geom_Rectangle(x,y,0,0);
this.__transformDirty = true;
return;
}
if(x < this.__bounds.x) {
this.__bounds.width += this.__bounds.x - x;
this.__bounds.x = x;
this.__transformDirty = true;
}
if(y < this.__bounds.y) {
this.__bounds.height += this.__bounds.y - y;
this.__bounds.y = y;
this.__transformDirty = true;
}
if(x > this.__bounds.x + this.__bounds.width) {
this.__bounds.width = x - this.__bounds.x;
}
if(y > this.__bounds.y + this.__bounds.height) {
this.__bounds.height = y - this.__bounds.y;
}
}
,__readGraphicsData: function(graphicsData) {
var data = new openfl__$internal_renderer_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[1]) {
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[1]) {
case 0:
var _g2 = data.prev;
switch(_g2[1]) {
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__$internal_renderer_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = data;
var c = this1;
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:
var _g3 = data.prev;
switch(_g3[1]) {
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__$internal_renderer_DrawCommandType.BEGIN_FILL;
var this2 = data;
var c1 = this2;
graphicsData.push(new openfl_display_GraphicsSolidFill(c1.buffer.i[c1.iPos],1));
break;
case 2:
var _g4 = data.prev;
switch(_g4[1]) {
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__$internal_renderer_DrawCommandType.BEGIN_GRADIENT_FILL;
var this3 = data;
var c2 = this3;
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:
var _g5 = data.prev;
switch(_g5[1]) {
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__$internal_renderer_DrawCommandType.CUBIC_CURVE_TO;
var this4 = data;
var c3 = this4;
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:
var _g6 = data.prev;
switch(_g6[1]) {
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__$internal_renderer_DrawCommandType.CURVE_TO;
var this5 = data;
var c4 = this5;
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:
var _g7 = data.prev;
switch(_g7[1]) {
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__$internal_renderer_DrawCommandType.DRAW_CIRCLE;
var this6 = data;
var c5 = this6;
path.__drawCircle(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2]);
break;
case 7:
var _g8 = data.prev;
switch(_g8[1]) {
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__$internal_renderer_DrawCommandType.DRAW_ELLIPSE;
var this7 = data;
var c6 = this7;
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:
var _g9 = data.prev;
switch(_g9[1]) {
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__$internal_renderer_DrawCommandType.DRAW_RECT;
var this8 = data;
var c7 = this8;
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:
var _g10 = data.prev;
switch(_g10[1]) {
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__$internal_renderer_DrawCommandType.DRAW_ROUND_RECT;
var this9 = data;
var c8 = this9;
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:
var _g11 = data.prev;
switch(_g11[1]) {
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__$internal_renderer_DrawCommandType.END_FILL;
var this10 = data;
graphicsData.push(new openfl_display_GraphicsEndFill());
break;
case 14:
var _g12 = data.prev;
switch(_g12[1]) {
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__$internal_renderer_DrawCommandType.LINE_BITMAP_STYLE;
var this11 = data;
var c9 = this11;
path = null;
break;
case 15:
var _g13 = data.prev;
switch(_g13[1]) {
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__$internal_renderer_DrawCommandType.LINE_GRADIENT_STYLE;
var this12 = data;
var c10 = this12;
break;
case 16:
var _g14 = data.prev;
switch(_g14[1]) {
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__$internal_renderer_DrawCommandType.LINE_STYLE;
var this13 = data;
var c11 = this13;
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:
var _g15 = data.prev;
switch(_g15[1]) {
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__$internal_renderer_DrawCommandType.LINE_TO;
var this14 = data;
var c12 = this14;
path.lineTo(c12.buffer.f[c12.fPos],c12.buffer.f[c12.fPos + 1]);
break;
case 18:
var _g16 = data.prev;
switch(_g16[1]) {
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__$internal_renderer_DrawCommandType.MOVE_TO;
var this15 = data;
var c13 = this15;
path.moveTo(c13.buffer.f[c13.fPos],c13.buffer.f[c13.fPos + 1]);
break;
default:
var _g17 = data.prev;
switch(_g17[1]) {
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) {
if(this.__bounds == null || this.__bounds.width <= 0 || this.__bounds.height <= 0) {
return;
}
var parentTransform = this.__owner.__renderTransform;
var scaleX = 1.0;
var scaleY = 1.0;
if(parentTransform != 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);
}
} else {
return;
}
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;
}
this.__renderTransform.a = width / this.__bounds.width;
this.__renderTransform.d = height / this.__bounds.height;
var inverseA = 1 / this.__renderTransform.a;
var 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.floor(tx);
this.__worldTransform.ty = Math.floor(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 _this1 = this.__worldTransform;
var norm1 = _this1.a * _this1.d - _this1.b * _this1.c;
this.__renderTransform.ty = norm1 == 0 ? -_this1.ty : 1.0 / norm1 * (_this1.a * (ty - _this1.ty) + _this1.b * (_this1.tx - tx));
var newWidth = Math.ceil(width + this.__renderTransform.tx);
var newHeight = Math.ceil(height + this.__renderTransform.ty);
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.prototype = {
__graphicsFillType: null
,__class__: openfl_display_IGraphicsFill
};
var openfl_display_IGraphicsData = function() { };
$hxClasses["openfl.display.IGraphicsData"] = openfl_display_IGraphicsData;
openfl_display_IGraphicsData.__name__ = ["openfl","display","IGraphicsData"];
openfl_display_IGraphicsData.prototype = {
__graphicsDataType: null
,__class__: openfl_display_IGraphicsData
};
var openfl_display_GraphicsBitmapFill = function(bitmapData,matrix,repeat,smooth) {
if(smooth == null) {
smooth = false;
}
if(repeat == null) {
repeat = true;
}
this.bitmapData = bitmapData;
this.matrix = matrix;
this.repeat = repeat;
this.smooth = smooth;
this.__graphicsDataType = openfl_display_GraphicsDataType.BITMAP;
this.__graphicsFillType = openfl_display_GraphicsFillType.BITMAP_FILL;
};
$hxClasses["openfl.display.GraphicsBitmapFill"] = openfl_display_GraphicsBitmapFill;
openfl_display_GraphicsBitmapFill.__name__ = ["openfl","display","GraphicsBitmapFill"];
openfl_display_GraphicsBitmapFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsBitmapFill.prototype = {
bitmapData: null
,matrix: null
,repeat: null
,smooth: null
,__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsBitmapFill
};
var openfl_display_GraphicsEndFill = function() {
this.__graphicsDataType = openfl_display_GraphicsDataType.END;
this.__graphicsFillType = openfl_display_GraphicsFillType.END_FILL;
};
$hxClasses["openfl.display.GraphicsEndFill"] = openfl_display_GraphicsEndFill;
openfl_display_GraphicsEndFill.__name__ = ["openfl","display","GraphicsEndFill"];
openfl_display_GraphicsEndFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsEndFill.prototype = {
__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsEndFill
};
var openfl_display_GraphicsGradientFill = function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
if(focalPointRatio == null) {
focalPointRatio = 0;
}
if(type == null) {
type = 0;
}
if(spreadMethod == null) {
spreadMethod = 0;
}
if(interpolationMethod == null) {
interpolationMethod = 1;
}
this.type = type;
this.colors = colors;
this.alphas = alphas;
this.ratios = ratios;
this.matrix = matrix;
this.spreadMethod = spreadMethod;
this.interpolationMethod = interpolationMethod;
this.focalPointRatio = focalPointRatio;
this.__graphicsDataType = openfl_display_GraphicsDataType.GRADIENT;
this.__graphicsFillType = openfl_display_GraphicsFillType.GRADIENT_FILL;
};
$hxClasses["openfl.display.GraphicsGradientFill"] = openfl_display_GraphicsGradientFill;
openfl_display_GraphicsGradientFill.__name__ = ["openfl","display","GraphicsGradientFill"];
openfl_display_GraphicsGradientFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsGradientFill.prototype = {
alphas: null
,colors: null
,focalPointRatio: null
,interpolationMethod: null
,matrix: null
,ratios: null
,spreadMethod: null
,type: null
,__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsGradientFill
};
var openfl_display_IGraphicsPath = function() { };
$hxClasses["openfl.display.IGraphicsPath"] = openfl_display_IGraphicsPath;
openfl_display_IGraphicsPath.__name__ = ["openfl","display","IGraphicsPath"];
var openfl_display_GraphicsPath = function(commands,data,winding) {
if(winding == null) {
winding = 0;
}
this.commands = commands;
this.data = data;
this.winding = winding;
this.__graphicsDataType = openfl_display_GraphicsDataType.PATH;
};
$hxClasses["openfl.display.GraphicsPath"] = openfl_display_GraphicsPath;
openfl_display_GraphicsPath.__name__ = ["openfl","display","GraphicsPath"];
openfl_display_GraphicsPath.__interfaces__ = [openfl_display_IGraphicsPath,openfl_display_IGraphicsData];
openfl_display_GraphicsPath.prototype = {
commands: null
,data: null
,winding: null
,__graphicsDataType: null
,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) {
if(this.commands == null) {
this.commands = openfl__$Vector_Vector_$Impl_$.toIntVector(null);
}
if(this.data == null) {
this.data = openfl__$Vector_Vector_$Impl_$.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_Vector_$Impl_$.toIntVector(null);
}
if(this.data == null) {
this.data = openfl__$Vector_Vector_$Impl_$.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_Vector_$Impl_$.toIntVector(null);
}
if(this.data == null) {
this.data = openfl__$Vector_Vector_$Impl_$.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_Vector_$Impl_$.toIntVector(null);
}
if(this.data == null) {
this.data = openfl__$Vector_Vector_$Impl_$.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_Vector_$Impl_$.toIntVector(null);
}
if(this.data == null) {
this.data = openfl__$Vector_Vector_$Impl_$.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_Vector_$Impl_$.toIntVector(null);
}
if(this.data == null) {
this.data = openfl__$Vector_Vector_$Impl_$.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 * openfl_display_GraphicsPath.SIN45;
var cx2 = -ellipseWidth + ellipseWidth * openfl_display_GraphicsPath.TAN22;
var cy1 = -ellipseHeight + ellipseHeight * openfl_display_GraphicsPath.SIN45;
var cy2 = -ellipseHeight + ellipseHeight * openfl_display_GraphicsPath.TAN22;
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_GraphicsPathWinding_$Impl_$ = {};
$hxClasses["openfl.display._GraphicsPathWinding.GraphicsPathWinding_Impl_"] = openfl_display__$GraphicsPathWinding_GraphicsPathWinding_$Impl_$;
openfl_display__$GraphicsPathWinding_GraphicsPathWinding_$Impl_$.__name__ = ["openfl","display","_GraphicsPathWinding","GraphicsPathWinding_Impl_"];
openfl_display__$GraphicsPathWinding_GraphicsPathWinding_$Impl_$.fromString = function(value) {
switch(value) {
case "evenOdd":
return 0;
case "nonZero":
return 1;
default:
return null;
}
};
openfl_display__$GraphicsPathWinding_GraphicsPathWinding_$Impl_$.toString = function(value) {
switch(value) {
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 = openfl_display_GraphicsDataType.QUAD_PATH;
};
$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 = openfl_display_GraphicsDataType.SHADER;
this.__graphicsFillType = openfl_display_GraphicsFillType.SHADER_FILL;
};
$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 = {
shader: null
,matrix: 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 = openfl_display_GraphicsDataType.SOLID;
this.__graphicsFillType = openfl_display_GraphicsFillType.SOLID_FILL;
};
$hxClasses["openfl.display.GraphicsSolidFill"] = openfl_display_GraphicsSolidFill;
openfl_display_GraphicsSolidFill.__name__ = ["openfl","display","GraphicsSolidFill"];
openfl_display_GraphicsSolidFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsSolidFill.prototype = {
alpha: null
,color: null
,__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsSolidFill
};
var openfl_display_IGraphicsStroke = function() { };
$hxClasses["openfl.display.IGraphicsStroke"] = openfl_display_IGraphicsStroke;
openfl_display_IGraphicsStroke.__name__ = ["openfl","display","IGraphicsStroke"];
var openfl_display_GraphicsStroke = function(thickness,pixelHinting,scaleMode,caps,joints,miterLimit,fill) {
if(miterLimit == null) {
miterLimit = 3;
}
if(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 = openfl_display_GraphicsDataType.STROKE;
};
$hxClasses["openfl.display.GraphicsStroke"] = openfl_display_GraphicsStroke;
openfl_display_GraphicsStroke.__name__ = ["openfl","display","GraphicsStroke"];
openfl_display_GraphicsStroke.__interfaces__ = [openfl_display_IGraphicsStroke,openfl_display_IGraphicsData];
openfl_display_GraphicsStroke.prototype = {
caps: null
,fill: null
,joints: null
,miterLimit: null
,pixelHinting: null
,scaleMode: null
,thickness: null
,__graphicsDataType: null
,__class__: openfl_display_GraphicsStroke
};
var openfl_display_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 = openfl_display_GraphicsDataType.TRIANGLE_PATH;
};
$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_GraphicsDataType = $hxClasses["openfl.display.GraphicsDataType"] = { __ename__ : ["openfl","display","GraphicsDataType"], __constructs__ : ["STROKE","SOLID","GRADIENT","PATH","BITMAP","END","QUAD_PATH","TRIANGLE_PATH","SHADER"] };
openfl_display_GraphicsDataType.STROKE = ["STROKE",0];
openfl_display_GraphicsDataType.STROKE.toString = $estr;
openfl_display_GraphicsDataType.STROKE.__enum__ = openfl_display_GraphicsDataType;
openfl_display_GraphicsDataType.SOLID = ["SOLID",1];
openfl_display_GraphicsDataType.SOLID.toString = $estr;
openfl_display_GraphicsDataType.SOLID.__enum__ = openfl_display_GraphicsDataType;
openfl_display_GraphicsDataType.GRADIENT = ["GRADIENT",2];
openfl_display_GraphicsDataType.GRADIENT.toString = $estr;
openfl_display_GraphicsDataType.GRADIENT.__enum__ = openfl_display_GraphicsDataType;
openfl_display_GraphicsDataType.PATH = ["PATH",3];
openfl_display_GraphicsDataType.PATH.toString = $estr;
openfl_display_GraphicsDataType.PATH.__enum__ = openfl_display_GraphicsDataType;
openfl_display_GraphicsDataType.BITMAP = ["BITMAP",4];
openfl_display_GraphicsDataType.BITMAP.toString = $estr;
openfl_display_GraphicsDataType.BITMAP.__enum__ = openfl_display_GraphicsDataType;
openfl_display_GraphicsDataType.END = ["END",5];
openfl_display_GraphicsDataType.END.toString = $estr;
openfl_display_GraphicsDataType.END.__enum__ = openfl_display_GraphicsDataType;
openfl_display_GraphicsDataType.QUAD_PATH = ["QUAD_PATH",6];
openfl_display_GraphicsDataType.QUAD_PATH.toString = $estr;
openfl_display_GraphicsDataType.QUAD_PATH.__enum__ = openfl_display_GraphicsDataType;
openfl_display_GraphicsDataType.TRIANGLE_PATH = ["TRIANGLE_PATH",7];
openfl_display_GraphicsDataType.TRIANGLE_PATH.toString = $estr;
openfl_display_GraphicsDataType.TRIANGLE_PATH.__enum__ = openfl_display_GraphicsDataType;
openfl_display_GraphicsDataType.SHADER = ["SHADER",8];
openfl_display_GraphicsDataType.SHADER.toString = $estr;
openfl_display_GraphicsDataType.SHADER.__enum__ = openfl_display_GraphicsDataType;
var openfl_display_GraphicsFillType = $hxClasses["openfl.display.GraphicsFillType"] = { __ename__ : ["openfl","display","GraphicsFillType"], __constructs__ : ["SOLID_FILL","GRADIENT_FILL","BITMAP_FILL","END_FILL","SHADER_FILL"] };
openfl_display_GraphicsFillType.SOLID_FILL = ["SOLID_FILL",0];
openfl_display_GraphicsFillType.SOLID_FILL.toString = $estr;
openfl_display_GraphicsFillType.SOLID_FILL.__enum__ = openfl_display_GraphicsFillType;
openfl_display_GraphicsFillType.GRADIENT_FILL = ["GRADIENT_FILL",1];
openfl_display_GraphicsFillType.GRADIENT_FILL.toString = $estr;
openfl_display_GraphicsFillType.GRADIENT_FILL.__enum__ = openfl_display_GraphicsFillType;
openfl_display_GraphicsFillType.BITMAP_FILL = ["BITMAP_FILL",2];
openfl_display_GraphicsFillType.BITMAP_FILL.toString = $estr;
openfl_display_GraphicsFillType.BITMAP_FILL.__enum__ = openfl_display_GraphicsFillType;
openfl_display_GraphicsFillType.END_FILL = ["END_FILL",3];
openfl_display_GraphicsFillType.END_FILL.toString = $estr;
openfl_display_GraphicsFillType.END_FILL.__enum__ = openfl_display_GraphicsFillType;
openfl_display_GraphicsFillType.SHADER_FILL = ["SHADER_FILL",4];
openfl_display_GraphicsFillType.SHADER_FILL.toString = $estr;
openfl_display_GraphicsFillType.SHADER_FILL.__enum__ = openfl_display_GraphicsFillType;
var openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$ = {};
$hxClasses["openfl.display._InterpolationMethod.InterpolationMethod_Impl_"] = openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$;
openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.__name__ = ["openfl","display","_InterpolationMethod","InterpolationMethod_Impl_"];
openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.fromInt = function(value) {
return value;
};
openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.fromString = function(value) {
switch(value) {
case "linearRGB":
return 0;
case "rgb":
return 1;
default:
return null;
}
};
openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.toInt = function(this1) {
return this1;
};
openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "linearRGB";
case 1:
return "rgb";
default:
return null;
}
};
var openfl_display_JPEGEncoderOptions = function(quality) {
if(quality == null) {
quality = 80;
}
this.quality = quality;
};
$hxClasses["openfl.display.JPEGEncoderOptions"] = openfl_display_JPEGEncoderOptions;
openfl_display_JPEGEncoderOptions.__name__ = ["openfl","display","JPEGEncoderOptions"];
openfl_display_JPEGEncoderOptions.prototype = {
quality: null
,__class__: openfl_display_JPEGEncoderOptions
};
var openfl_display__$JointStyle_JointStyle_$Impl_$ = {};
$hxClasses["openfl.display._JointStyle.JointStyle_Impl_"] = openfl_display__$JointStyle_JointStyle_$Impl_$;
openfl_display__$JointStyle_JointStyle_$Impl_$.__name__ = ["openfl","display","_JointStyle","JointStyle_Impl_"];
openfl_display__$JointStyle_JointStyle_$Impl_$.fromInt = function(value) {
return value;
};
openfl_display__$JointStyle_JointStyle_$Impl_$.fromString = function(value) {
switch(value) {
case "bevel":
return 0;
case "miter":
return 1;
case "round":
return 2;
default:
return null;
}
};
openfl_display__$JointStyle_JointStyle_$Impl_$.toInt = function(this1) {
return this1;
};
openfl_display__$JointStyle_JointStyle_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "bevel";
case 1:
return "miter";
case 2:
return "round";
default:
return null;
}
};
var openfl_display__$LineScaleMode_LineScaleMode_$Impl_$ = {};
$hxClasses["openfl.display._LineScaleMode.LineScaleMode_Impl_"] = openfl_display__$LineScaleMode_LineScaleMode_$Impl_$;
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.__name__ = ["openfl","display","_LineScaleMode","LineScaleMode_Impl_"];
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.fromInt = function(value) {
return value;
};
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.fromString = function(value) {
switch(value) {
case "horizontal":
return 0;
case "none":
return 1;
case "normal":
return 2;
case "vertical":
return 3;
default:
return null;
}
};
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.toInt = function(this1) {
return this1;
};
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "horizontal";
case 1:
return "none";
case 2:
return "normal";
case 3:
return "vertical";
default:
return null;
}
};
var openfl_display_Loader = function() {
openfl_display_DisplayObjectContainer.call(this);
this.contentLoaderInfo = openfl_display_LoaderInfo.create(this);
this.uncaughtErrorEvents = this.contentLoaderInfo.uncaughtErrorEvents;
};
$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
,close: function() {
openfl__$internal_Lib.notImplemented({ fileName : "Loader.hx", lineNumber : 213, className : "openfl.display.Loader", methodName : "close"});
}
,load: function(request,context) {
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));
}
,unload: function() {
if(!this.__unloaded) {
while(this.get_numChildren() > 0) this.removeChildAt(0);
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 _g1 = 0;
var _g = this.get_numChildren();
while(_g1 < _g) {
var i = _g1++;
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);
}
,BitmapData_onError: function(error) {
this.__dispatchError(Std.string(error));
}
,BitmapData_onLoad: function(bitmapData) {
if(bitmapData == null) {
this.__dispatchError("Unknown error");
return;
}
this.content = new openfl_display_Bitmap(bitmapData);
this.contentLoaderInfo.content = this.content;
var tmp = this.content.get_width() | 0;
this.contentLoaderInfo.width = tmp;
var tmp1 = this.content.get_height() | 0;
this.contentLoaderInfo.height = tmp1;
this.addChild(this.content);
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(js_Boot.__instanceof(library,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);
}
_gthis.content = _gthis.__library.getMovieClip("");
_gthis.contentLoaderInfo.content = _gthis.content;
_gthis.addChild(_gthis.content);
_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.content = new openfl_display_Sprite();
this.contentLoaderInfo.content = this.content;
this.addChild(this.content);
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.__currentFrame = 1;
this.__currentLabels = [];
this.__instanceFields = [];
this.__totalFrames = 0;
this.__enabled = true;
if(openfl_display_MovieClip.__initSymbol != null) {
this.__swf = openfl_display_MovieClip.__initSWF;
this.__symbol = openfl_display_MovieClip.__initSymbol;
openfl_display_MovieClip.__initSWF = null;
openfl_display_MovieClip.__initSymbol = null;
this.__fromSymbol(this.__swf,this.__symbol);
}
};
$hxClasses["openfl.display.MovieClip"] = openfl_display_MovieClip;
openfl_display_MovieClip.__name__ = ["openfl","display","MovieClip"];
openfl_display_MovieClip.__initSWF = null;
openfl_display_MovieClip.__initSymbol = null;
openfl_display_MovieClip.__super__ = openfl_display_Sprite;
openfl_display_MovieClip.prototype = $extend(openfl_display_Sprite.prototype,{
__activeInstances: null
,__activeInstancesByFrameObjectID: null
,__currentFrame: null
,__currentFrameLabel: null
,__currentLabel: null
,__currentLabels: null
,__enabled: null
,__frameScripts: null
,__frameTime: null
,__hasDown: null
,__hasOver: null
,__hasUp: null
,__instanceFields: null
,__lastFrameScriptEval: null
,__lastFrameUpdate: null
,__mouseIsDown: null
,__playing: null
,__swf: null
,__symbol: null
,__timeElapsed: null
,__totalFrames: null
,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] = method;
} else if(this.__frameScripts != null) {
this.__frameScripts.remove(frame);
}
}
,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);
}
,play: function() {
if(this.__symbol == null || this.__playing || this.__totalFrames < 2) {
return;
}
this.__playing = true;
this.__frameTime = 1000 / this.__swf.frameRate | 0;
this.__timeElapsed = 0;
}
,prevFrame: function() {
this.stop();
this.__goto(this.__currentFrame - 1);
}
,stop: function() {
this.__playing = false;
}
,__enterFrame: function(deltaTime) {
this.__updateFrameScript(deltaTime);
this.__updateSymbol(this.__currentFrame);
openfl_display_Sprite.prototype.__enterFrame.call(this,deltaTime);
}
,__updateFrameScript: function(deltaTime) {
if(this.__symbol != null && this.__playing) {
var nextFrame = this.__getNextFrame(deltaTime);
if(this.__lastFrameScriptEval == nextFrame) {
openfl_display_Sprite.prototype.__enterFrame.call(this,deltaTime);
return;
}
if(this.__frameScripts != null) {
if(nextFrame < this.__currentFrame) {
if(!this.__evaluateFrameScripts(this.__totalFrames)) {
openfl_display_Sprite.prototype.__enterFrame.call(this,deltaTime);
return;
}
this.__currentFrame = 1;
}
if(!this.__evaluateFrameScripts(nextFrame)) {
openfl_display_Sprite.prototype.__enterFrame.call(this,deltaTime);
return;
}
} else {
this.__currentFrame = nextFrame;
}
}
}
,__updateSymbol: function(targetFrame) {
if(this.__symbol != null && this.__currentFrame != this.__lastFrameUpdate) {
this.__updateFrameLabel();
var currentInstancesByFrameObjectID = new haxe_ds_IntMap();
var frame;
var frameData;
var instance;
var _g1 = 0;
var _g = targetFrame;
while(_g1 < _g) {
var i = _g1++;
frame = i + 1;
frameData = this.__symbol.frames[i];
if(frameData.objects == null) {
continue;
}
var _g2 = 0;
var _g3 = frameData.objects;
while(_g2 < _g3.length) {
var frameObject = _g3[_g2];
++_g2;
var _g4 = frameObject.type;
switch(_g4[1]) {
case 0:
instance = this.__activeInstancesByFrameObjectID.get(frameObject.id);
if(instance != null) {
currentInstancesByFrameObjectID.h[frameObject.id] = instance;
this.__updateDisplayObject(instance.displayObject,frameObject,true);
}
break;
case 1:
instance = currentInstancesByFrameObjectID.h[frameObject.id];
if(instance != null && instance.displayObject != null) {
this.__updateDisplayObject(instance.displayObject,frameObject);
}
break;
case 2:
currentInstancesByFrameObjectID.remove(frameObject.id);
break;
}
}
}
var currentInstances = [];
var currentMasks = [];
var instance1 = currentInstancesByFrameObjectID.iterator();
while(instance1.hasNext()) {
var instance2 = instance1.next();
if(currentInstances.indexOf(instance2) == -1) {
currentInstances.push(instance2);
if(instance2.clipDepth > 0) {
currentMasks.push(instance2);
}
}
}
currentInstances.sort($bind(this,this.__sortDepths));
var existingChild;
var targetDepth;
var targetChild;
var child;
var maskApplied;
var _g11 = 0;
var _g5 = currentInstances.length;
while(_g11 < _g5) {
var i1 = _g11++;
existingChild = this.__children[i1];
instance = currentInstances[i1];
targetDepth = instance.depth;
targetChild = instance.displayObject;
if(existingChild != targetChild) {
child = targetChild;
this.addChildAt(targetChild,i1);
} else {
child = this.__children[i1];
}
maskApplied = false;
var _g21 = 0;
while(_g21 < currentMasks.length) {
var mask = currentMasks[_g21];
++_g21;
if(targetDepth > mask.depth && targetDepth <= mask.clipDepth) {
child.set_mask(mask.displayObject);
maskApplied = true;
break;
}
}
if(currentMasks.length > 0 && !maskApplied && child.get_mask() != null) {
child.set_mask(null);
}
}
var child1;
var i2 = currentInstances.length;
var length = this.__children.length;
while(i2 < length) {
child1 = this.__children[i2];
var _g6 = 0;
var _g12 = this.__activeInstances;
while(_g6 < _g12.length) {
var instance3 = _g12[_g6];
++_g6;
if(instance3.displayObject == child1) {
if(js_Boot.__instanceof(child1,openfl_display_MovieClip)) {
var movie = child1;
movie.gotoAndPlay(1);
}
this.removeChild(child1);
--i2;
--length;
}
}
++i2;
}
this.__lastFrameUpdate = this.__currentFrame;
this.__updateInstanceFields();
}
}
,__evaluateFrameScripts: function(advanceToFrame) {
var _g1 = this.__currentFrame;
var _g = advanceToFrame + 1;
while(_g1 < _g) {
var frame = _g1++;
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();
if(this.__currentFrame != frame) {
return false;
}
}
if(!this.__playing) {
return false;
}
}
return true;
}
,__fromSymbol: function(swf,symbol) {
if(this.__activeInstances != null) {
return;
}
this.__swf = swf;
this.__symbol = symbol;
this.__activeInstances = [];
this.__activeInstancesByFrameObjectID = new haxe_ds_IntMap();
this.__currentFrame = 1;
this.__lastFrameScriptEval = -1;
this.__lastFrameUpdate = -1;
this.__totalFrames = this.__symbol.frames.length;
var frame;
var frameData;
var parser = null;
var _g1 = 0;
var _g = this.__symbol.frames.length;
while(_g1 < _g) {
var i = _g1++;
frame = i + 1;
frameData = this.__symbol.frames[i];
if(frameData.label != null) {
this.__currentLabels.push(new openfl_display_FrameLabel(frameData.label,i + 1));
}
if(frameData.script != null) {
if(this.__frameScripts == null) {
this.__frameScripts = new haxe_ds_IntMap();
}
this.__frameScripts.h[frame] = frameData.script;
} else if(frameData.scriptSource != null) {
if(this.__frameScripts == null) {
this.__frameScripts = new haxe_ds_IntMap();
}
try {
if(parser == null) {
parser = new hscript_Parser();
parser.allowTypes = true;
}
var program = [parser.parseString(frameData.scriptSource)];
var interp = [new hscript_Interp()];
var _this = interp[0].variables;
if(__map_reserved["this"] != null) {
_this.setReserved("this",this);
} else {
_this.h["this"] = this;
}
var script = (function(interp1,program1) {
return function() {
interp1[0].execute(program1[0]);
};
})(interp,program);
this.__frameScripts.h[frame] = script;
} catch( e ) {
haxe_CallStack.lastException = e;
if(this.__symbol.className != null) {
lime_utils_Log.warn("Unable to evaluate frame script source for symbol \"" + this.__symbol.className + "\" frame " + frame + "\n" + frameData.scriptSource,{ fileName : "MovieClip.hx", lineNumber : 734, className : "openfl.display.MovieClip", methodName : "__fromSymbol"});
} else {
lime_utils_Log.warn("Unable to evaluate frame script source:\n" + frameData.scriptSource,{ fileName : "MovieClip.hx", lineNumber : 738, className : "openfl.display.MovieClip", methodName : "__fromSymbol"});
}
}
}
}
var frame1;
var frameData1;
var instance;
var duplicate;
var symbol1;
var displayObject;
var _g11 = 0;
var _g2 = this.__totalFrames;
while(_g11 < _g2) {
var i1 = _g11++;
frame1 = i1 + 1;
frameData1 = this.__symbol.frames[i1];
if(frameData1.objects == null) {
continue;
}
var _g21 = 0;
var _g3 = frameData1.objects;
while(_g21 < _g3.length) {
var frameObject = _g3[_g21];
++_g21;
if(frameObject.type == openfl__$internal_symbols_timeline_FrameObjectType.CREATE) {
if(this.__activeInstancesByFrameObjectID.h.hasOwnProperty(frameObject.id)) {
continue;
} else {
instance = null;
duplicate = false;
var _g4 = 0;
var _g5 = this.__activeInstances;
while(_g4 < _g5.length) {
var activeInstance = _g5[_g4];
++_g4;
if(activeInstance.displayObject != null && activeInstance.characterID == frameObject.symbol && activeInstance.depth == frameObject.depth) {
instance = activeInstance;
duplicate = true;
break;
}
}
}
if(instance == null) {
symbol1 = this.__swf.symbols.h[frameObject.symbol];
if(symbol1 != null) {
displayObject = symbol1.__createObject(this.__swf);
if(displayObject != null) {
displayObject.parent = this;
displayObject.stage = this.stage;
if(this.stage != null) {
displayObject.dispatchEvent(new openfl_events_Event("addedToStage",false,false));
}
instance = new openfl_display__$MovieClip_FrameSymbolInstance(frame1,frameObject.id,frameObject.symbol,frameObject.depth,displayObject,frameObject.clipDepth);
}
}
}
if(instance != null) {
this.__activeInstancesByFrameObjectID.h[frameObject.id] = instance;
if(!duplicate) {
this.__activeInstances.push(instance);
this.__updateDisplayObject(instance.displayObject,frameObject);
}
}
}
}
}
if(this.__totalFrames > 1) {
this.play();
}
this.__enterFrame(0);
this.__instanceFields = Type.getInstanceFields(js_Boot.getClass(this));
this.__updateInstanceFields();
}
,__getNextFrame: function(deltaTime) {
var nextFrame = 0;
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;
return nextFrame;
}
,__goto: function(frame) {
if(this.__symbol == null) {
return;
}
if(frame < 1) {
frame = 1;
} else if(frame > this.__totalFrames) {
frame = this.__totalFrames;
}
this.__currentFrame = frame;
this.__enterFrame(0);
}
,__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.get_name() == label) {
return frameLabel.get_frame();
}
}
throw new js__$Boot_HaxeError(new openfl_errors_ArgumentError("Error #2109: Frame label " + label + " not found in scene."));
} else {
throw new js__$Boot_HaxeError("Invalid type for frame " + Type.getClassName(frame));
}
}
,__sortDepths: function(a,b) {
return a.depth - b.depth;
}
,__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);
}
,__updateDisplayObject: function(displayObject,frameObject,reset) {
if(reset == null) {
reset = false;
}
if(displayObject == null) {
return;
}
if(frameObject.name != null) {
displayObject.set_name(frameObject.name);
}
if(frameObject.matrix != null) {
displayObject.get_transform().set_matrix(frameObject.matrix);
}
if(frameObject.colorTransform != null) {
displayObject.get_transform().set_colorTransform(frameObject.colorTransform);
} else if(reset && !displayObject.get_transform().get_colorTransform().__isDefault(true)) {
displayObject.get_transform().set_colorTransform(new openfl_geom_ColorTransform());
}
if(frameObject.filters != null) {
var filters = [];
var _g = 0;
var _g1 = frameObject.filters;
while(_g < _g1.length) {
var filter = _g1[_g];
++_g;
switch(filter[1]) {
case 0:
var quality = filter[4];
var blurY = filter[3];
var blurX = filter[2];
filters.push(new openfl_filters_BlurFilter(blurX,blurY,quality));
break;
case 1:
var matrix = filter[2];
filters.push(new openfl_filters_ColorMatrixFilter(matrix));
break;
case 2:
var hideObject = filter[12];
var knockout = filter[11];
var inner = filter[10];
var quality1 = filter[9];
var strength = filter[8];
var blurY1 = filter[7];
var blurX1 = filter[6];
var alpha = filter[5];
var color = filter[4];
var angle = filter[3];
var distance = filter[2];
filters.push(new openfl_filters_DropShadowFilter(distance,angle,color,alpha,blurX1,blurY1,strength,quality1,inner,knockout,hideObject));
break;
case 3:
var knockout1 = filter[9];
var inner1 = filter[8];
var quality2 = filter[7];
var strength1 = filter[6];
var blurY2 = filter[5];
var blurX2 = filter[4];
var alpha1 = filter[3];
var color1 = filter[2];
filters.push(new openfl_filters_GlowFilter(color1,alpha1,blurX2,blurY2,strength1,quality2,inner1,knockout1));
break;
}
}
displayObject.set_filters(filters);
} else {
displayObject.set_filters(null);
}
if(frameObject.visible != null) {
displayObject.set_visible(frameObject.visible);
}
if(frameObject.blendMode != null) {
displayObject.set_blendMode(frameObject.blendMode);
}
var tmp = frameObject.cacheAsBitmap != null;
}
,__updateFrameLabel: function() {
this.__currentFrameLabel = this.__symbol.frames[this.__currentFrame - 1].label;
if(this.__currentFrameLabel != null) {
this.__currentLabel = this.__currentFrameLabel;
} else {
this.__currentLabel = null;
var _g = 0;
var _g1 = this.__currentLabels;
while(_g < _g1.length) {
var label = _g1[_g];
++_g;
if(label.get_frame() < this.__currentFrame) {
this.__currentLabel = label.get_name();
} else {
break;
}
}
}
}
,__updateInstanceFields: function() {
var _g = 0;
var _g1 = this.__instanceFields;
while(_g < _g1.length) {
var field = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = this.__children;
while(_g2 < _g3.length) {
var child = _g3[_g2];
++_g2;
if(child.get_name() == field) {
this[field] = child;
break;
}
}
}
}
,__onMouseDown: function(event) {
if(this.__enabled && this.__hasDown) {
this.gotoAndStop("_down");
}
this.__mouseIsDown = true;
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(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.__currentLabels;
while(_g < _g1.length) {
var frameLabel = _g1[_g];
++_g;
var _g2 = frameLabel.get_name();
switch(_g2) {
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() {
return this.__currentFrame;
}
,get_currentFrameLabel: function() {
return this.__currentFrameLabel;
}
,get_currentLabel: function() {
return this.__currentLabel;
}
,get_currentLabels: function() {
return this.__currentLabels;
}
,get_enabled: function() {
return this.__enabled;
}
,set_enabled: function(value) {
return this.__enabled = value;
}
,get_framesLoaded: function() {
return this.__totalFrames;
}
,get_isPlaying: function() {
return this.__playing;
}
,get_totalFrames: function() {
return this.__totalFrames;
}
,__class__: openfl_display_MovieClip
,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{get_totalFrames:"get_totalFrames",get_isPlaying:"get_isPlaying",get_framesLoaded:"get_framesLoaded",set_enabled:"set_enabled",get_enabled:"get_enabled",get_currentLabels:"get_currentLabels",get_currentLabel:"get_currentLabel",get_currentFrameLabel:"get_currentFrameLabel",get_currentFrame:"get_currentFrame"})
});
var openfl_display__$MovieClip_FrameSymbolInstance = function(initFrame,initFrameObjectID,characterID,depth,displayObject,clipDepth) {
this.initFrame = initFrame;
this.initFrameObjectID = initFrameObjectID;
this.characterID = characterID;
this.depth = depth;
this.displayObject = displayObject;
this.clipDepth = clipDepth;
};
$hxClasses["openfl.display._MovieClip.FrameSymbolInstance"] = openfl_display__$MovieClip_FrameSymbolInstance;
openfl_display__$MovieClip_FrameSymbolInstance.__name__ = ["openfl","display","_MovieClip","FrameSymbolInstance"];
openfl_display__$MovieClip_FrameSymbolInstance.prototype = {
characterID: null
,clipDepth: null
,depth: null
,displayObject: null
,initFrame: null
,initFrameObjectID: null
,__class__: openfl_display__$MovieClip_FrameSymbolInstance
};
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_Matrix4_$Impl_$._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_Matrix4_$Impl_$._new();
this.__projectionFlipped = lime_math__$Matrix4_Matrix4_$Impl_$._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__$internal_renderer_context3D_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;
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);
var _g = 0;
while(_g < 16) {
var i = _g++;
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,i,values[i]);
}
return this.__matrix;
} else {
lime_math__$Matrix4_Matrix4_$Impl_$.identity(this.__matrix);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,0,transform.a);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,1,transform.b);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,4,transform.c);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,5,transform.d);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,12,transform.tx);
lime_math__$Matrix4_Matrix4_$Impl_$.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_Matrix4_$Impl_$.identity(this.__matrix);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,0,_matrix.a);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,1,_matrix.b);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,4,_matrix.c);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,5,_matrix.d);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,12,_matrix.tx);
lime_math__$Matrix4_Matrix4_$Impl_$.set(this.__matrix,13,_matrix.ty);
lime_math__$Matrix4_Matrix4_$Impl_$.append(this.__matrix,this.__flipped ? this.__projectionFlipped : this.__projection);
var _g = 0;
while(_g < 16) {
var i = _g++;
this.__values[i] = lime_math__$Matrix4_Matrix4_$Impl_$.get(this.__matrix,i);
}
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);
mask.__renderGLMask(this);
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);
mask.__renderGLMask(this);
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;
object.__renderGL(this);
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;
object.__renderGL(this);
object.__mask = cacheMask;
object.__scrollRect = cacheScrollRect;
}
this.__context3D.present();
}
,__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 tmp1;
if(this.__defaultRenderTarget == null) {
var _this1 = this.__worldTransform;
tmp1 = Math.round(0 * _this1.b + 0 * _this1.d + _this1.ty);
} else {
tmp1 = 0;
}
this.__offsetY = tmp1;
var tmp2;
if(this.__defaultRenderTarget == null) {
var _this2 = this.__worldTransform;
tmp2 = Math.round(w * _this2.a + 0 * _this2.c + _this2.tx - this.__offsetX);
} else {
tmp2 = w;
}
this.__displayWidth = tmp2;
var tmp3;
if(this.__defaultRenderTarget == null) {
var _this3 = this.__worldTransform;
tmp3 = Math.round(0 * _this3.b + h * _this3.d + _this3.ty - this.__offsetY);
} else {
tmp3 = h;
}
this.__displayHeight = tmp3;
lime_math__$Matrix4_Matrix4_$Impl_$.createOrtho(this.__projection,0,this.__displayWidth + this.__offsetX * 2,0,this.__displayHeight + this.__offsetY * 2,-1000,1000);
lime_math__$Matrix4_Matrix4_$Impl_$.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(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_PixelSnapping_$Impl_$ = {};
$hxClasses["openfl.display._PixelSnapping.PixelSnapping_Impl_"] = openfl_display__$PixelSnapping_PixelSnapping_$Impl_$;
openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.__name__ = ["openfl","display","_PixelSnapping","PixelSnapping_Impl_"];
openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.fromString = function(value) {
switch(value) {
case "always":
return 0;
case "auto":
return 1;
case "never":
return 2;
default:
return null;
}
};
openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "always";
case 1:
return "auto";
case 2:
return "never";
default:
return null;
}
};
var openfl_display_Preloader = function(display) {
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_Sprite();
this.outline.get_graphics().beginFill(color,0.07);
this.outline.get_graphics().drawRect(0,0,width,height);
this.outline.set_x(x);
this.outline.set_y(y);
this.outline.set_alpha(0);
this.addChild(this.outline);
this.progress = new openfl_display_Sprite();
this.progress.get_graphics().beginFill(color,0.35);
this.progress.get_graphics().drawRect(0,0,width - padding * 2,height - padding * 2);
this.progress.set_x(x + padding);
this.progress.set_y(y + padding);
this.progress.set_scaleX(0);
this.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(percent);
this.progress.set_alpha(percent);
}
,this_onProgress: function(event) {
this.onUpdate(event.bytesLoaded | 0,event.bytesTotal | 0);
}
,__class__: openfl_display_DefaultPreloader
});
var openfl_display__$ShaderData_ShaderData_$Impl_$ = {};
$hxClasses["openfl.display._ShaderData.ShaderData_Impl_"] = openfl_display__$ShaderData_ShaderData_$Impl_$;
openfl_display__$ShaderData_ShaderData_$Impl_$.__name__ = ["openfl","display","_ShaderData","ShaderData_Impl_"];
openfl_display__$ShaderData_ShaderData_$Impl_$._new = function(byteArray) {
var this1 = { };
return this1;
};
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) {
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) {
var gl = context.gl;
if(!this.__isUniform) {
var _g1 = 0;
var _g = this.__arrayLength;
while(_g1 < _g) {
var i = _g1++;
gl.disableVertexAttribArray(this.index + i);
}
}
}
,__updateGL: function(context,overrideValue) {
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) {
var _g = this.type;
switch(_g) {
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:
var _g1 = 0;
while(_g1 < 4) {
var i = _g1++;
this.__uniformMatrix[i] = floatValue[i];
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix);
break;
case 16:
var _g2 = 0;
while(_g2 < 9) {
var i1 = _g2++;
this.__uniformMatrix[i1] = floatValue[i1];
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix);
break;
case 20:
var _g3 = 0;
while(_g3 < 16) {
var i2 = _g3++;
this.__uniformMatrix[i2] = floatValue[i2];
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix);
break;
default:
}
} else {
var _g4 = this.type;
switch(_g4) {
case 1:case 9:
gl.uniform2i(this.index,0,0);
break;
case 3:case 11:
gl.uniform4i(this.index,0,0,0,0);
break;
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 2:case 10:
gl.uniform3i(this.index,0,0,0);
break;
case 12:
var _g5 = 0;
while(_g5 < 4) {
var i3 = _g5++;
this.__uniformMatrix[i3] = 0;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix);
break;
case 16:
var _g6 = 0;
while(_g6 < 9) {
var i4 = _g6++;
this.__uniformMatrix[i4] = 0;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix);
break;
case 20:
var _g7 = 0;
while(_g7 < 16) {
var i5 = _g7++;
this.__uniformMatrix[i5] = 0;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix);
break;
default:
}
}
} else if(!this.__useArray && (value == null || value.length == this.__length)) {
var _g11 = 0;
var _g8 = this.__arrayLength;
while(_g11 < _g8) {
var i6 = _g11++;
gl.disableVertexAttribArray(this.index + i6);
}
if(value != null) {
var _g9 = this.type;
switch(_g9) {
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:
var _g10 = 0;
while(_g10 < 2) {
var i7 = _g10++;
gl.vertexAttrib2f(this.index + i7,floatValue[i7 * 2],floatValue[i7 * 2 + 1]);
}
break;
case 16:
var _g12 = 0;
while(_g12 < 3) {
var i8 = _g12++;
gl.vertexAttrib3f(this.index + i8,floatValue[i8 * 3],floatValue[i8 * 3 + 1],floatValue[i8 * 3 + 2]);
}
break;
case 20:
var _g13 = 0;
while(_g13 < 4) {
var i9 = _g13++;
gl.vertexAttrib4f(this.index + i9,floatValue[i9 * 4],floatValue[i9 * 4 + 1],floatValue[i9 * 4 + 2],floatValue[i9 * 4 + 3]);
}
break;
default:
}
} else {
var _g14 = this.type;
switch(_g14) {
case 1:case 5:case 9:
gl.vertexAttrib2f(this.index,0,0);
break;
case 3:case 7:case 11:
gl.vertexAttrib4f(this.index,0,0,0,0);
break;
case 0:case 4:case 8:
gl.vertexAttrib1f(this.index,0);
break;
case 2:case 6:case 10:
gl.vertexAttrib3f(this.index,0,0,0);
break;
case 12:
var _g15 = 0;
while(_g15 < 2) {
var i10 = _g15++;
gl.vertexAttrib2f(this.index + i10,0,0);
}
break;
case 16:
var _g16 = 0;
while(_g16 < 3) {
var i11 = _g16++;
gl.vertexAttrib3f(this.index + i11,0,0,0);
}
break;
case 20:
var _g17 = 0;
while(_g17 < 4) {
var i12 = _g17++;
gl.vertexAttrib4f(this.index + i12,0,0,0,0);
}
break;
default:
}
}
} else {
var _g18 = 0;
var _g19 = this.__arrayLength;
while(_g18 < _g19) {
var i13 = _g18++;
gl.enableVertexAttribArray(this.index + i13);
}
}
}
,__updateGLFromBuffer: function(context,buffer,position,length,bufferOffset) {
var gl = context.gl;
if(this.__isUniform) {
if(length >= this.__length) {
var _g = this.type;
switch(_g) {
case 1:case 9:
gl.uniform2i(this.index,buffer[position] | 0,buffer[position + 1] | 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 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 2:case 10:
gl.uniform3i(this.index,buffer[position] | 0,buffer[position + 1] | 0,buffer[position + 2] | 0);
break;
case 12:
var _g1 = 0;
while(_g1 < 4) {
var i = _g1++;
this.__uniformMatrix[i] = buffer[position + i];
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix);
break;
case 16:
var _g2 = 0;
while(_g2 < 9) {
var i1 = _g2++;
this.__uniformMatrix[i1] = buffer[position + i1];
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix);
break;
case 20:
var _g3 = 0;
while(_g3 < 16) {
var i2 = _g3++;
this.__uniformMatrix[i2] = buffer[position + i2];
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix);
break;
default:
}
}
} else if(!this.__internal && (length == 0 || length == this.__length)) {
var _g11 = 0;
var _g4 = this.__arrayLength;
while(_g11 < _g4) {
var i3 = _g11++;
gl.disableVertexAttribArray(this.index + i3);
}
if(length > 0) {
var _g5 = this.type;
switch(_g5) {
case 1:case 5:case 9:
gl.vertexAttrib2f(this.index,buffer[position],buffer[position + 1]);
break;
case 3:case 7:case 11:
gl.vertexAttrib4f(this.index,buffer[position],buffer[position + 1],buffer[position + 2],buffer[position + 3]);
break;
case 0:case 4:case 8:
gl.vertexAttrib1f(this.index,buffer[position]);
break;
case 2:case 6:case 10:
gl.vertexAttrib3f(this.index,buffer[position],buffer[position + 1],buffer[position + 2]);
break;
case 12:
var _g6 = 0;
while(_g6 < 2) {
var i4 = _g6++;
gl.vertexAttrib2f(this.index + i4,buffer[position + i4 * 2],buffer[position + i4 * 2 + 1]);
}
break;
case 16:
var _g7 = 0;
while(_g7 < 3) {
var i5 = _g7++;
gl.vertexAttrib3f(this.index + i5,buffer[position + i5 * 3],buffer[position + i5 * 3 + 1],buffer[position + i5 * 3 + 2]);
}
break;
case 20:
var _g8 = 0;
while(_g8 < 4) {
var i6 = _g8++;
gl.vertexAttrib4f(this.index + i6,buffer[position + i6 * 4],buffer[position + i6 * 4 + 1],buffer[position + i6 * 4 + 2],buffer[position + i6 * 4 + 3]);
}
break;
default:
}
} else {
var _g9 = this.type;
switch(_g9) {
case 1:case 5:case 9:
gl.vertexAttrib2f(this.index,0,0);
break;
case 3:case 7:case 11:
gl.vertexAttrib4f(this.index,0,0,0,0);
break;
case 0:case 4:case 8:
gl.vertexAttrib1f(this.index,0);
break;
case 2:case 6:case 10:
gl.vertexAttrib3f(this.index,0,0,0);
break;
case 12:
var _g10 = 0;
while(_g10 < 2) {
var i7 = _g10++;
gl.vertexAttrib2f(this.index + i7,0,0);
}
break;
case 16:
var _g12 = 0;
while(_g12 < 3) {
var i8 = _g12++;
gl.vertexAttrib3f(this.index + i8,0,0,0);
}
break;
case 20:
var _g13 = 0;
while(_g13 < 4) {
var i9 = _g13++;
gl.vertexAttrib4f(this.index + i9,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 _g14 = 0;
var _g15 = this.__arrayLength;
while(_g14 < _g15) {
var i10 = _g14++;
gl.enableVertexAttribArray(this.index + i10);
}
if(length > 0) {
var _g16 = 0;
var _g17 = this.__arrayLength;
while(_g16 < _g17) {
var i11 = _g16++;
gl.vertexAttribPointer(this.index + i11,this.__length,type,false,this.__length * 4,(position + bufferOffset * this.__length + i11 * 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_ShaderParameterType_$Impl_$ = {};
$hxClasses["openfl.display._ShaderParameterType.ShaderParameterType_Impl_"] = openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.__name__ = ["openfl","display","_ShaderParameterType","ShaderParameterType_Impl_"];
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.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_ShaderParameterType_$Impl_$.toString = function(value) {
switch(value) {
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_ShaderPrecision_$Impl_$ = {};
$hxClasses["openfl.display._ShaderPrecision.ShaderPrecision_Impl_"] = openfl_display__$ShaderPrecision_ShaderPrecision_$Impl_$;
openfl_display__$ShaderPrecision_ShaderPrecision_$Impl_$.__name__ = ["openfl","display","_ShaderPrecision","ShaderPrecision_Impl_"];
openfl_display__$ShaderPrecision_ShaderPrecision_$Impl_$.fromString = function(value) {
switch(value) {
case "fast":
return 0;
case "full":
return 1;
default:
return null;
}
};
openfl_display__$ShaderPrecision_ShaderPrecision_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "fast";
case 1:
return "full";
default:
return null;
}
};
var openfl_display_Shape = function() {
openfl_display_DisplayObject.call(this);
};
$hxClasses["openfl.display.Shape"] = openfl_display_Shape;
openfl_display_Shape.__name__ = ["openfl","display","Shape"];
openfl_display_Shape.__super__ = openfl_display_DisplayObject;
openfl_display_Shape.prototype = $extend(openfl_display_DisplayObject.prototype,{
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.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.__initSymbol != null) {
var swf = openfl_display_SimpleButton.__initSWF;
this.__symbol = openfl_display_SimpleButton.__initSymbol;
openfl_display_SimpleButton.__initSWF = null;
openfl_display_SimpleButton.__initSymbol = null;
this.__fromSymbol(swf,this.__symbol);
}
};
$hxClasses["openfl.display.SimpleButton"] = openfl_display_SimpleButton;
openfl_display_SimpleButton.__name__ = ["openfl","display","SimpleButton"];
openfl_display_SimpleButton.__initSWF = null;
openfl_display_SimpleButton.__initSymbol = 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
,__symbol: null
,__upState: null
,__fromSymbol: function(swf,symbol) {
this.__symbol = symbol;
if(symbol.downState != null) {
this.set_downState(symbol.downState.__createObject(swf));
}
if(symbol.hitState != null) {
this.set_hitTestState(symbol.hitState.__createObject(swf));
}
if(symbol.overState != null) {
this.set_overState(symbol.overState.__createObject(swf));
}
if(symbol.upState != null) {
this.set_upState(symbol.upState.__createObject(swf));
}
}
,__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;
}
}
if(!(!interactiveOnly)) {
hitTest = this.mouseEnabled;
} else {
hitTest = true;
}
}
} else if(this.__currentState != null) {
if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled) {
return false;
}
if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
return false;
}
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;
}
,__renderCairo: function(renderer) {
if(!this.__renderable || this.__worldAlpha <= 0 || this.__currentState == null) {
return;
}
renderer.__pushMaskObject(this);
this.__currentState.__renderCairo(renderer);
renderer.__popMaskObject(this);
this.__renderEvent(renderer);
}
,__renderCairoMask: function(renderer) {
this.__currentState.__renderCairoMask(renderer);
}
,__renderCanvas: function(renderer) {
if(!this.__renderable || this.__worldAlpha <= 0 || this.__currentState == null) {
return;
}
renderer.__pushMaskObject(this);
this.__currentState.__renderCanvas(renderer);
renderer.__popMaskObject(this);
this.__renderEvent(renderer);
}
,__renderCanvasMask: function(renderer) {
this.__currentState.__renderCanvasMask(renderer);
}
,__renderDOM: function(renderer) {
renderer.__pushMaskObject(this);
var _g = 0;
var _g1 = this.__previousStates;
while(_g < _g1.get_length()) {
var previousState = _g1.get(_g);
++_g;
previousState.__renderDOM(renderer);
}
this.__previousStates.set_length(0);
if(this.__currentState != null) {
if(this.__currentState.stage != this.stage) {
this.__currentState.__setStageReference(this.stage);
}
this.__currentState.__renderDOM(renderer);
}
renderer.__popMaskObject(this);
this.__renderEvent(renderer);
}
,__renderGL: function(renderer) {
if(!this.__renderable || this.__worldAlpha <= 0 || this.__currentState == null) {
return;
}
renderer.__pushMaskObject(this);
this.__currentState.__renderGL(renderer);
renderer.__popMaskObject(this);
this.__renderEvent(renderer);
}
,__renderGLMask: function(renderer) {
if(this.__currentState == null) {
return;
}
this.__currentState.__renderGLMask(renderer);
}
,__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_Vector_$Impl_$.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) {
this.__previousStates.splice(index,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.enabled && 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) {
if(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_SpreadMethod_$Impl_$ = {};
$hxClasses["openfl.display._SpreadMethod.SpreadMethod_Impl_"] = openfl_display__$SpreadMethod_SpreadMethod_$Impl_$;
openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.__name__ = ["openfl","display","_SpreadMethod","SpreadMethod_Impl_"];
openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.fromInt = function(value) {
return value;
};
openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.fromString = function(value) {
switch(value) {
case "pad":
return 0;
case "reflect":
return 1;
case "repeat":
return 2;
default:
return null;
}
};
openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.toInt = function(this1) {
return this1;
};
openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "pad";
case 1:
return "reflect";
case 2:
return "repeat";
default:
return null;
}
};
var openfl_display_Stage = function(window,color) {
openfl_display_DisplayObjectContainer.call(this);
this.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_Vector_$Impl_$.toObjectVector(null);
var _g = 0;
while(_g < 4) {
var i = _g++;
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();
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
,__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
,__wasDirty: null
,__wasFullscreen: null
,__primaryTouch: null
,invalidate: function() {
this.__invalidated = true;
this.__renderDirty = true;
}
,localToGlobal: function(pos) {
return pos.clone();
}
,onGamepadAxisMove: function(gamepad,axis,value) {
try {
openfl_ui_GameInput.__onGamepadAxisMove(gamepad,axis,value);
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
}
}
,onGamepadButtonDown: function(gamepad,button) {
try {
openfl_ui_GameInput.__onGamepadButtonDown(gamepad,button);
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
}
}
,onGamepadButtonUp: function(gamepad,button) {
try {
openfl_ui_GameInput.__onGamepadButtonUp(gamepad,button);
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
}
}
,onGamepadConnect: function(gamepad) {
try {
openfl_ui_GameInput.__onGamepadConnect(gamepad);
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
}
}
,onGamepadDisconnect: function(gamepad) {
try {
openfl_ui_GameInput.__onGamepadDisconnect(gamepad);
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
}
}
,onJoystickAxisMove: function(joystick,axis,value) {
}
,onJoystickButtonDown: function(joystick,button) {
}
,onJoystickButtonUp: function(joystick,button) {
}
,onJoystickConnect: function(joystick) {
}
,onJoystickDisconnect: function(joystick) {
}
,onJoystickHatMove: function(joystick,hat,position) {
}
,onJoystickTrackballMove: function(joystick,trackball,value) {
}
,onKeyDown: function(window,keyCode,modifier) {
if(this.window == null || this.window != window) {
return;
}
this.__onKey("keyDown",keyCode,modifier);
}
,onKeyUp: function(window,keyCode,modifier) {
if(this.window == null || this.window != window) {
return;
}
this.__onKey("keyUp",keyCode,modifier);
}
,onModuleExit: function(code) {
if(this.window != null) {
this.__broadcastEvent(new openfl_events_Event("deactivate"));
}
}
,onMouseDown: 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();
}
}
,onMouseMove: 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;
}
,onMouseMoveRelative: function(window,x,y) {
}
,onMouseUp: 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();
}
}
,onMouseWheel: 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);
}
}
,onPreloadComplete: function() {
}
,onPreloadProgress: function(loaded,total) {
}
,onRenderContextLost: function() {
this.__renderer = null;
this.context3D = null;
var _g = 0;
var _g1 = this.stage3Ds;
while(_g < _g1.get_length()) {
var stage3D = _g1.get(_g);
++_g;
stage3D.__lostContext();
}
}
,onRenderContextRestored: function(context) {
this.__createRenderer();
var _g = 0;
var _g1 = this.stage3Ds;
while(_g < _g1.get_length()) {
var stage3D = _g1.get(_g);
++_g;
stage3D.__restoreContext();
}
}
,onTextEdit: function(window,text,start,length) {
}
,onTextInput: function(window,text) {
if(this.window == null || this.window != window) {
return;
}
var stack = [];
if(this.__focus == null) {
this.__getInteractive(stack);
} else {
this.__focus.__getInteractive(stack);
}
var event = new openfl_events_TextEvent("textInput",true,true,text);
if(stack.length > 0) {
stack.reverse();
this.__dispatchStack(event,stack);
} else {
this.__dispatchEvent(event);
}
if(event.isDefaultPrevented()) {
window.onTextInput.cancel();
}
}
,onTouchCancel: function(touch) {
if(this.__primaryTouch == touch) {
this.__primaryTouch = null;
}
this.__onTouch("touchEnd",touch);
}
,onTouchMove: function(touch) {
this.__onTouch("touchMove",touch);
}
,onTouchEnd: function(touch) {
if(this.__primaryTouch == touch) {
this.__primaryTouch = null;
}
this.__onTouch("touchEnd",touch);
}
,onTouchStart: function(touch) {
if(this.__primaryTouch == null) {
this.__primaryTouch = touch;
}
this.__onTouch("touchBegin",touch);
}
,onWindowActivate: function(window) {
if(this.window == null || this.window != window) {
return;
}
}
,onWindowClose: function(window) {
if(this.window == window) {
this.window = null;
}
this.__primaryTouch = null;
this.__broadcastEvent(new openfl_events_Event("deactivate"));
}
,onWindowCreate: function(window) {
if(this.window == null || this.window != window) {
return;
}
if(window.context != null) {
this.__createRenderer();
}
}
,onWindowDeactivate: function(window) {
if(this.window == null || this.window != window) {
return;
}
}
,onWindowDropFile: function(window,file) {
}
,onWindowEnter: function(window) {
}
,onWindowExpose: function(window) {
if(this.window == null || this.window != window) {
return;
}
this.__renderDirty = true;
}
,onWindowFocusIn: function(window) {
if(this.window == null || this.window != window) {
return;
}
this.__renderDirty = true;
this.__broadcastEvent(new openfl_events_Event("activate"));
this.set_focus(this.__cacheFocus);
}
,onWindowFocusOut: function(window) {
if(this.window == null || this.window != window) {
return;
}
this.__primaryTouch = null;
this.__broadcastEvent(new openfl_events_Event("deactivate"));
var currentFocus = this.get_focus();
this.set_focus(null);
this.__cacheFocus = currentFocus;
}
,onWindowFullscreen: 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));
}
}
,onWindowLeave: function(window) {
if(this.window == null || this.window != window || openfl_events_MouseEvent.__buttonDown) {
return;
}
this.__dispatchPendingMouseEvent();
this.__dispatchEvent(new openfl_events_Event("mouseLeave"));
}
,onWindowMinimize: function(window) {
if(this.window == null || this.window != window) {
return;
}
}
,onWindowMove: function(window,x,y) {
}
,onWindowResize: 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));
}
}
,onWindowRestore: 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));
}
}
,render: function(context) {
if(this.__rendering) {
return;
}
this.__rendering = true;
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;
this.__broadcastEvent(new openfl_events_Event("render"));
}
this.__update(false,true);
if(this.__renderer != null) {
if(this.context3D != null) {
var _g = 0;
var _g1 = this.stage3Ds;
while(_g < _g1.get_length()) {
var stage3D = _g1.get(_g);
++_g;
this.context3D.__renderStage3D(stage3D);
}
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;
}
,update: function(deltaTime) {
this.__deltaTime = deltaTime;
this.__dispatchPendingMouseEvent();
}
,__addWindow: function(window) {
if(this.window != window) {
return;
}
var f = $bind(this,this.onWindowActivate);
var a1 = window;
var tmp = function() {
f(a1);
};
window.onActivate.add(tmp);
var f1 = $bind(this,this.onWindowClose);
var a11 = window;
var tmp1 = function() {
f1(a11);
};
window.onClose.add(tmp1,false,-9000);
var f2 = $bind(this,this.onWindowDeactivate);
var a12 = window;
var tmp2 = function() {
f2(a12);
};
window.onDeactivate.add(tmp2);
var f3 = $bind(this,this.onWindowDropFile);
var a13 = window;
var tmp3 = function(a2) {
f3(a13,a2);
};
window.onDropFile.add(tmp3);
var f4 = $bind(this,this.onWindowEnter);
var a14 = window;
var tmp4 = function() {
f4(a14);
};
window.onEnter.add(tmp4);
var f5 = $bind(this,this.onWindowExpose);
var a15 = window;
var tmp5 = function() {
f5(a15);
};
window.onExpose.add(tmp5);
var f6 = $bind(this,this.onWindowFocusIn);
var a16 = window;
var tmp6 = function() {
f6(a16);
};
window.onFocusIn.add(tmp6);
var f7 = $bind(this,this.onWindowFocusOut);
var a17 = window;
var tmp7 = function() {
f7(a17);
};
window.onFocusOut.add(tmp7);
var f8 = $bind(this,this.onWindowFullscreen);
var a18 = window;
var tmp8 = function() {
f8(a18);
};
window.onFullscreen.add(tmp8);
var f9 = $bind(this,this.onKeyDown);
var a19 = window;
var tmp9 = function(a21,a3) {
f9(a19,a21,a3);
};
window.onKeyDown.add(tmp9);
var f10 = $bind(this,this.onKeyUp);
var a110 = window;
var tmp10 = function(a22,a31) {
f10(a110,a22,a31);
};
window.onKeyUp.add(tmp10);
var f11 = $bind(this,this.onWindowLeave);
var a111 = window;
var tmp11 = function() {
f11(a111);
};
window.onLeave.add(tmp11);
var f12 = $bind(this,this.onWindowMinimize);
var a112 = window;
var tmp12 = function() {
f12(a112);
};
window.onMinimize.add(tmp12);
var f13 = $bind(this,this.onMouseDown);
var a113 = window;
var tmp13 = function(x,y,a23) {
f13(a113,x,y,a23);
};
window.onMouseDown.add(tmp13);
var f14 = $bind(this,this.onMouseMove);
var a114 = window;
var tmp14 = function(x1,y1) {
f14(a114,x1,y1);
};
window.onMouseMove.add(tmp14);
var f15 = $bind(this,this.onMouseMoveRelative);
var a115 = window;
var tmp15 = function(x2,y2) {
f15(a115,x2,y2);
};
window.onMouseMoveRelative.add(tmp15);
var f16 = $bind(this,this.onMouseUp);
var a116 = window;
var tmp16 = function(x3,y3,a24) {
f16(a116,x3,y3,a24);
};
window.onMouseUp.add(tmp16);
var f17 = $bind(this,this.onMouseWheel);
var a117 = window;
var tmp17 = function(a25,a32,a4) {
f17(a117,a25,a32,a4);
};
window.onMouseWheel.add(tmp17);
var f18 = $bind(this,this.onWindowMove);
var a118 = window;
var tmp18 = function(x4,y4) {
f18(a118,x4,y4);
};
window.onMove.add(tmp18);
window.onRender.add($bind(this,this.render));
window.onRenderContextLost.add($bind(this,this.onRenderContextLost));
window.onRenderContextRestored.add($bind(this,this.onRenderContextRestored));
var f19 = $bind(this,this.onWindowResize);
var a119 = window;
var tmp19 = function(a26,a33) {
f19(a119,a26,a33);
};
window.onResize.add(tmp19);
var f20 = $bind(this,this.onWindowRestore);
var a120 = window;
var tmp20 = function() {
f20(a120);
};
window.onRestore.add(tmp20);
var f21 = $bind(this,this.onTextEdit);
var a121 = window;
var tmp21 = function(a27,a34,a41) {
f21(a121,a27,a34,a41);
};
window.onTextEdit.add(tmp21);
var f22 = $bind(this,this.onTextInput);
var a122 = window;
var tmp22 = function(a28) {
f22(a122,a28);
};
window.onTextInput.add(tmp22);
this.onWindowCreate(window);
}
,__broadcastEvent: function(event) {
var key = event.type;
var _this = openfl_display_DisplayObject.__broadcastEvents;
if(__map_reserved[key] != null ? _this.existsReserved(key) : _this.h.hasOwnProperty(key)) {
var key1 = event.type;
var _this1 = openfl_display_DisplayObject.__broadcastEvents;
var dispatchers = __map_reserved[key1] != null ? _this1.getReserved(key1) : _this1.h[key1];
var _g = 0;
while(_g < dispatchers.length) {
var dispatcher = dispatchers[_g];
++_g;
if(dispatcher.stage == this || dispatcher.stage == null) {
try {
dispatcher.__dispatch(event);
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
}
}
}
}
}
,__createRenderer: function() {
var pixelRatio = 1;
if(this.window.__scale > 1) {
if(!this.window.devicePixelRatio) {
pixelRatio = 1;
} else {
pixelRatio = true;
}
}
var windowWidth = this.window.__width * this.window.__scale | 0;
var windowHeight = this.window.__height * this.window.__scale | 0;
var _g = this.window.context.type;
switch(_g) {
case "cairo":
break;
case "canvas":
this.__renderer = new openfl_display_CanvasRenderer(this.window.context.canvas2D);
(js_Boot.__cast(this.__renderer , openfl_display_CanvasRenderer)).pixelRatio = pixelRatio;
break;
case "dom":
this.__renderer = new openfl_display_DOMRenderer(this.window.context.dom);
(js_Boot.__cast(this.__renderer , openfl_display_DOMRenderer)).pixelRatio = pixelRatio;
break;
case "opengl":case "opengles":case "webgl":
this.context3D = new openfl_display3D_Context3D(this);
this.context3D.configureBackBuffer(windowWidth,windowHeight,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.__worldTransform = this.__displayMatrix;
this.__renderer.__stage = this;
this.__renderer.__resize(windowWidth,windowHeight);
}
}
,__dispatchEvent: function(event) {
try {
return openfl_display_DisplayObjectContainer.prototype.__dispatchEvent.call(this,event);
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
return false;
}
}
,__dispatchPendingMouseEvent: function() {
if(this.__pendingMouseEvent) {
this.__onMouse("mouseMove",this.__pendingMouseX,this.__pendingMouseY,0);
this.__pendingMouseEvent = false;
}
}
,__dispatchStack: function(event,stack) {
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 _g1 = 0;
var _g = length - 1;
while(_g1 < _g) {
var i = _g1++;
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 i1 = length - 2;
while(i1 >= 0) {
stack[i1].__dispatch(event);
if(event.__isCanceled) {
return;
}
--i1;
}
}
}
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
}
}
,__dispatchTarget: function(target,event) {
try {
return target.__dispatchEvent(event);
} catch( e ) {
haxe_CallStack.lastException = e;
if (e instanceof js__$Boot_HaxeError) e = e.val;
this.__handleError(e);
return false;
}
}
,__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( e1 ) {
haxe_CallStack.lastException = e1;
}
if(!event.__preventDefault) {
try {
var exc = haxe_CallStack.lastException;
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( e2 ) {
haxe_CallStack.lastException = e2;
}
throw e;
}
}
,__onKey: function(type,keyCode,modifier) {
this.__dispatchPendingMouseEvent();
openfl_events_MouseEvent.__altKey = lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_altKey(modifier);
openfl_events_MouseEvent.__commandKey = lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier);
openfl_events_MouseEvent.__ctrlKey = lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier);
openfl_events_MouseEvent.__shiftKey = lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier);
var stack = [];
if(this.__focus == null) {
this.__getInteractive(stack);
} else {
this.__focus.__getInteractive(stack);
}
if(stack.length > 0) {
var keyLocation;
switch(keyCode) {
case 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_KeyModifier_$Impl_$.get_shiftKey(modifier));
var event = new openfl_events_KeyboardEvent(type,true,true,charCode,keyCode1,keyLocation,this.__macKeyboard ? lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier) || lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier) : lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier),lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_altKey(modifier),lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier),lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier),lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier));
stack.reverse();
this.__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_KeyModifier_$Impl_$.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) {
if(this.get_focus() != null) {
nextIndex = 0;
} else {
nextIndex = this.__currentTabOrderIndex;
}
} else {
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 index = tabStack.indexOf(this.get_focus());
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;
}
}
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_KeyModifier_$Impl_$.get_shiftKey(modifier),0);
stack = [];
this.get_focus().__getInteractive(stack);
stack.reverse();
this.__dispatchStack(focusEvent,stack);
}
if(focusEvent == null || !focusEvent.isDefaultPrevented()) {
this.__currentTabOrderIndex = nextIndex;
if(nextObject != null) {
this.set_focus(nextObject);
}
}
}
}
}
,__onGamepadConnect: function(gamepad) {
this.onGamepadConnect(gamepad);
var f = $bind(this,this.onGamepadAxisMove);
var a1 = gamepad;
var tmp = function(a2,a3) {
f(a1,a2,a3);
};
gamepad.onAxisMove.add(tmp);
var f1 = $bind(this,this.onGamepadButtonDown);
var a11 = gamepad;
var tmp1 = function(a21) {
f1(a11,a21);
};
gamepad.onButtonDown.add(tmp1);
var f2 = $bind(this,this.onGamepadButtonUp);
var a12 = gamepad;
var tmp2 = function(a22) {
f2(a12,a22);
};
gamepad.onButtonUp.add(tmp2);
var f3 = $bind(this,this.onGamepadDisconnect);
var a13 = gamepad;
var tmp3 = function() {
f3(a13);
};
gamepad.onDisconnect.add(tmp3);
}
,__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(target.__allowMouseFocus()) {
if(this.get_focus() != null) {
var focusEvent = new openfl_events_FocusEvent("mouseFocusChange",true,true,target,false,0);
this.__dispatchStack(focusEvent,stack);
if(!focusEvent.isDefaultPrevented()) {
this.set_focus(target);
}
} else {
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 {
this.__mouseDownLeft.dispatchEvent(openfl_events_MouseEvent.__create("releaseOutside",1,this.__mouseX,this.__mouseY,new openfl_geom_Point(this.__mouseX,this.__mouseY),this));
}
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();
this.__dispatchStack(openfl_events_MouseEvent.__create(type,button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target),stack);
if(clickType != null) {
this.__dispatchStack(openfl_events_MouseEvent.__create(clickType,button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target),stack);
if(type == "mouseUp" && (js_Boot.__cast(target , openfl_display_InteractiveObject)).doubleClickEnabled) {
var currentTime = openfl_Lib.getTimer();
if(currentTime - this.__lastClickTime < 500) {
this.__dispatchStack(openfl_events_MouseEvent.__create("doubleClick",button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target),stack);
this.__lastClickTime = 0;
} else {
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.set_cursor(openfl_ui__$MouseCursor_MouseCursor_$Impl_$.toLimeCursor(cursor));
break;
}
}
}
if(cursor == 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 _g1 = 0;
var _g11 = this.__rollOutStack;
while(_g1 < _g11.length) {
var target2 = _g11[_g1];
++_g1;
if(stack.indexOf(target2) == -1) {
HxOverrides.remove(this.__rollOutStack,target2);
event = openfl_events_MouseEvent.__create("rollOut",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),this.__mouseOverTarget);
event.bubbles = false;
this.__dispatchTarget(target2,event);
}
}
var _g2 = 0;
while(_g2 < stack.length) {
var target3 = stack[_g2];
++_g2;
if(this.__rollOutStack.indexOf(target3) == -1 && this.__mouseOverTarget != null) {
if(target3.hasEventListener("rollOver")) {
event = openfl_events_MouseEvent.__create("rollOver",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),target3);
event.bubbles = false;
this.__dispatchTarget(target3,event);
}
if(target3.hasEventListener("rollOut") || target3.hasEventListener("rollOver")) {
this.__rollOutStack.push(target3);
}
}
}
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 stack1 = [];
if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack1,true,this)) {
dropTarget = stack1[stack1.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;
this.__dispatchStack(openfl_events_MouseEvent.__create("mouseWheel",0,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,targetPoint),target,delta),stack);
openfl_geom_Point.__pool.release(targetPoint);
}
,__onTouch: function(type,touch) {
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__$internal_utils_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 isPrimaryTouchPoint = this.__primaryTouch == touch;
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 _g = 0;
while(_g < touchOutStack.length) {
var target1 = touchOutStack[_g];
++_g;
if(stack.indexOf(target1) == -1) {
HxOverrides.remove(touchOutStack,target1);
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(target1,touchEvent);
}
}
var _g1 = 0;
while(_g1 < stack.length) {
var target2 = stack[_g1];
++_g1;
if(touchOutStack.indexOf(target2) == -1) {
if(target2.hasEventListener("touchRollOver")) {
touchEvent = openfl_events_TouchEvent.__create("touchRollOver",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),target2);
touchEvent.touchPointID = touchId;
touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
touchEvent.bubbles = false;
touchEvent.pressure = touch.pressure;
this.__dispatchTarget(target2,touchEvent);
}
if(target2.hasEventListener("touchRollOut")) {
touchOutStack.push(target2);
}
}
}
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__$internal_utils_TouchData.__pool.release(touchData);
}
}
,__registerLimeModule: function(application) {
application.onCreateWindow.add($bind(this,this.__addWindow));
application.onUpdate.add($bind(this,this.update));
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));
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));
lime_ui_Touch.onCancel.add($bind(this,this.onTouchCancel));
}
,__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.__logicalWidth = windowWidth;
this.__logicalHeight = windowHeight;
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.stageWidth = windowWidth;
this.stageHeight = windowHeight;
} else {
this.stageWidth = this.__logicalWidth;
this.stageHeight = this.__logicalHeight;
var scaleX = windowWidth / this.stageWidth;
var scaleY = windowHeight / this.stageHeight;
var targetScale = Math.min(scaleX,scaleY);
var offsetX = Math.round((windowWidth - this.stageWidth * targetScale) / 2);
var offsetY = Math.round((windowHeight - this.stageHeight * targetScale) / 2);
this.__displayMatrix.scale(targetScale,targetScale);
this.__displayMatrix.translate(offsetX,offsetY);
}
this.__displayRect.setTo(0,0,this.stageWidth,this.stageHeight);
}
if(this.context3D != null) {
this.context3D.configureBackBuffer(windowWidth,windowHeight,0,true,true,true);
}
var _g = 0;
var _g1 = this.stage3Ds;
while(_g < _g1.get_length()) {
var stage3D = _g1.get(_g);
++_g;
stage3D.__resize(windowWidth,windowHeight);
}
if(this.__renderer != null) {
this.__renderer.__resize(windowWidth,windowHeight);
}
if(this.stageWidth != cacheWidth || this.stageHeight != cacheHeight) {
this.__renderDirty = true;
this.__setTransformDirty();
this.__dispatchEvent(new openfl_events_Event("resize"));
}
}
,__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.__addWindow));
application.onUpdate.remove($bind(this,this.update));
application.onExit.remove($bind(this,this.onModuleExit));
lime_ui_Gamepad.onConnect.remove($bind(this,this.__onGamepadConnect));
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));
lime_ui_Touch.onCancel.remove($bind(this,this.onTouchCancel));
}
,__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 event1 = new openfl_events_FocusEvent("focusIn",true,false,oldFocus,false,0);
var stack1 = [];
value.__getInteractive(stack1);
stack1.reverse();
this.__dispatchStack(event1,stack1);
}
}
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() {
var tmp = this.window.__scale;
return Math.ceil(this.window.get_display().currentMode.height * tmp);
}
,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() {
var tmp = this.window.__scale;
return Math.ceil(this.window.get_display().currentMode.width * tmp);
}
,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) {
return this.__scaleMode = value;
}
,set_scaleX: function(value) {
return 0;
}
,set_scaleY: function(value) {
return 0;
}
,get_tabEnabled: function() {
return false;
}
,set_tabEnabled: function(value) {
throw new js__$Boot_HaxeError(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 js__$Boot_HaxeError(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",set_fullScreenSourceRect:"set_fullScreenSourceRect",get_fullScreenSourceRect:"get_fullScreenSourceRect",get_fullScreenWidth:"get_fullScreenWidth",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") {
this.__canvas = window.document.createElement("canvas");
this.__canvas.width = stage.stageWidth;
this.__canvas.height = stage.stageHeight;
var $window = stage.window;
var attributes = renderer.__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 = { alpha : transparentBackground || colorDepth > 16, antialias : Object.prototype.hasOwnProperty.call(attributes,"antialiasing") && attributes.antialiasing > 0, depth : true, premultipliedAlpha : true, stencil : true, preserveDrawingBuffer : false};
this.__webgl = js_html__$CanvasElement_CanvasUtil.getContextWebGL(this.__canvas,options);
if(this.__webgl != null) {
this.__dispatchError();
} 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_Vector_$Impl_$.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_StageAlign_$Impl_$ = {};
$hxClasses["openfl.display._StageAlign.StageAlign_Impl_"] = openfl_display__$StageAlign_StageAlign_$Impl_$;
openfl_display__$StageAlign_StageAlign_$Impl_$.__name__ = ["openfl","display","_StageAlign","StageAlign_Impl_"];
openfl_display__$StageAlign_StageAlign_$Impl_$.fromString = function(value) {
switch(value) {
case "bottom":
return 0;
case "bottomLeft":
return 1;
case "bottomRight":
return 2;
case "left":
return 3;
case "right":
return 4;
case "top":
return 5;
case "topLeft":
return 6;
case "topRight":
return 7;
default:
return null;
}
};
openfl_display__$StageAlign_StageAlign_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "bottom";
case 1:
return "bottomLeft";
case 2:
return "bottomRight";
case 3:
return "left";
case 4:
return "right";
case 5:
return "top";
case 6:
return "topLeft";
case 7:
return "topRight";
default:
return null;
}
};
var openfl_display__$StageDisplayState_StageDisplayState_$Impl_$ = {};
$hxClasses["openfl.display._StageDisplayState.StageDisplayState_Impl_"] = openfl_display__$StageDisplayState_StageDisplayState_$Impl_$;
openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.__name__ = ["openfl","display","_StageDisplayState","StageDisplayState_Impl_"];
openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.fromString = function(value) {
switch(value) {
case "fullScreen":
return 0;
case "fullScreenInteractive":
return 1;
case "normal":
return 2;
default:
return null;
}
};
openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "fullScreen";
case 1:
return "fullScreenInteractive";
case 2:
return "normal";
default:
return null;
}
};
var openfl_display__$StageQuality_StageQuality_$Impl_$ = {};
$hxClasses["openfl.display._StageQuality.StageQuality_Impl_"] = openfl_display__$StageQuality_StageQuality_$Impl_$;
openfl_display__$StageQuality_StageQuality_$Impl_$.__name__ = ["openfl","display","_StageQuality","StageQuality_Impl_"];
openfl_display__$StageQuality_StageQuality_$Impl_$.fromString = function(value) {
switch(value) {
case "best":
return 0;
case "high":
return 1;
case "low":
return 2;
case "medium":
return 3;
default:
return null;
}
};
openfl_display__$StageQuality_StageQuality_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "best";
case 1:
return "high";
case 2:
return "low";
case 3:
return "medium";
default:
return null;
}
};
var openfl_display__$StageScaleMode_StageScaleMode_$Impl_$ = {};
$hxClasses["openfl.display._StageScaleMode.StageScaleMode_Impl_"] = openfl_display__$StageScaleMode_StageScaleMode_$Impl_$;
openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.__name__ = ["openfl","display","_StageScaleMode","StageScaleMode_Impl_"];
openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.fromString = function(value) {
switch(value) {
case "exactFit":
return 0;
case "noBorder":
return 1;
case "noScale":
return 2;
case "showAll":
return 3;
default:
return null;
}
};
openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "exactFit";
case 1:
return "noBorder";
case 2:
return "noScale";
case 3:
return "showAll";
default:
return null;
}
};
var openfl_display__$TriangleCulling_TriangleCulling_$Impl_$ = {};
$hxClasses["openfl.display._TriangleCulling.TriangleCulling_Impl_"] = openfl_display__$TriangleCulling_TriangleCulling_$Impl_$;
openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.__name__ = ["openfl","display","_TriangleCulling","TriangleCulling_Impl_"];
openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.fromString = function(value) {
switch(value) {
case "negative":
return 0;
case "none":
return 1;
case "positive":
return 2;
default:
return null;
}
};
openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "negative";
case 1:
return "none";
case 2:
return "positive";
default:
return null;
}
};
var openfl_display_Window = function(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( e ) {
haxe_CallStack.lastException = e;
}
}
if(Object.prototype.hasOwnProperty.call(attributes,"resizable") && !attributes.resizable) {
this.stage.__setLogicalSize(attributes.width,attributes.height);
}
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_display3D_Context3D = function(stage,contextState,stage3D) {
this.totalGPUMemory = 0;
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__$internal_renderer_context3D_Context3DState();
}
this.__state = new openfl__$internal_renderer_context3D_Context3DState();
var this1 = new Float32Array(512);
this.__vertexConstants = this1;
var this2 = new Float32Array(512);
this.__fragmentConstants = this2;
var array = [1.0,1.0,1.0,1.0];
var this3;
if(array != null) {
this3 = new Float32Array(array);
} else {
this3 = null;
}
this.__positionScale = this3;
this.__programs = new haxe_ds_StringMap();
if(openfl_display3D_Context3D.GL_MAX_VIEWPORT_DIMS == -1) {
openfl_display3D_Context3D.GL_MAX_VIEWPORT_DIMS = this.gl.getParameter(this.gl.MAX_VIEWPORT_DIMS);
}
this.maxBackBufferWidth = openfl_display3D_Context3D.GL_MAX_VIEWPORT_DIMS;
this.maxBackBufferHeight = openfl_display3D_Context3D.GL_MAX_VIEWPORT_DIMS;
if(openfl_display3D_Context3D.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT == -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.GL_TEXTURE_MAX_ANISOTROPY_EXT = extension.TEXTURE_MAX_ANISOTROPY_EXT;
openfl_display3D_Context3D.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = this.gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);
} else {
openfl_display3D_Context3D.GL_TEXTURE_MAX_ANISOTROPY_EXT = 0;
openfl_display3D_Context3D.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0;
}
}
if(openfl_display3D_Context3D.GL_DEPTH_STENCIL == -1) {
openfl_display3D_Context3D.GL_DEPTH_STENCIL = this.gl.DEPTH_STENCIL;
}
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 this4;
if(elements != null) {
this4 = new Uint16Array(elements);
} else {
this4 = null;
}
var data = this4;
var index = 0;
var vertex = 0;
var _g1 = 0;
var _g = this.__quadIndexBufferElements;
while(_g1 < _g) {
var i = _g1++;
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
,totalGPUMemory: 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(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) {
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 vertexData = openfl__$Vector_Vector_$Impl_$.toFloatVector(null,null,null,[width,height,0,1,1,0,height,0,0,1,width,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_Vector_$Impl_$.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_Context3DTextureFormat_$Impl_$.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_Context3DBufferUsage_$Impl_$.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 this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else {
this1 = null;
}
var data = this1;
var this2 = this.gl;
var width = this.backBufferWidth;
var height = this.backBufferHeight;
var format = this.__backBufferTexture.__format;
var type = this.gl.UNSIGNED_BYTE;
this2.readPixels(0,0,width,height,format,type,data);
var image1 = new lime_graphics_Image(new lime_graphics_ImageBuffer(data,this.backBufferWidth,this.backBufferHeight,32,2));
destination.image.copyPixels(image1,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,indexBuffer.__elementType,firstIndex);
}
,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 _g1 = 0;
var _g = program.__samplerStates.length;
while(_g1 < _g) {
var i = _g1++;
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_ByteArray_$Impl_$.get_length(data) >>> 2) - byteArrayOffset;
}
var isVertex = programType == 1;
var dest = isVertex ? this.__vertexConstants : this.__fragmentConstants;
var bytes = openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(data);
var len = openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(data);
var floatData = len == null ? new Float32Array(bytes.b.bufferValue,0) : new Float32Array(bytes.b.bufferValue,0,len);
var outOffset = firstRegister * 4;
var inOffset = _$UInt_UInt_$Impl_$.toFloat(byteArrayOffset) / _$UInt_UInt_$Impl_$.toFloat(4) | 0;
var _g1 = 0;
var _g = numRegisters * 4;
while(_g1 < _g) {
var i = _g1++;
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 this1 = new Float32Array(16);
var data = this1;
var _g = 0;
while(_g < 16) {
var i = _g++;
data[i] = matrix.rawData.get(i);
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix4fv(this.gl,firstRegister,transposedMatrix,data);
} else {
var isVertex = programType == 1;
var dest = isVertex ? this.__vertexConstants : this.__fragmentConstants;
var source = matrix.rawData;
var i1 = firstRegister * 4;
if(transposedMatrix) {
dest[i1++] = source.get(0);
dest[i1++] = source.get(4);
dest[i1++] = source.get(8);
dest[i1++] = source.get(12);
dest[i1++] = source.get(1);
dest[i1++] = source.get(5);
dest[i1++] = source.get(9);
dest[i1++] = source.get(13);
dest[i1++] = source.get(2);
dest[i1++] = source.get(6);
dest[i1++] = source.get(10);
dest[i1++] = source.get(14);
dest[i1++] = source.get(3);
dest[i1++] = source.get(7);
dest[i1++] = source.get(11);
dest[i1++] = source.get(15);
} else {
dest[i1++] = source.get(0);
dest[i1++] = source.get(1);
dest[i1++] = source.get(2);
dest[i1++] = source.get(3);
dest[i1++] = source.get(4);
dest[i1++] = source.get(5);
dest[i1++] = source.get(6);
dest[i1++] = source.get(7);
dest[i1++] = source.get(8);
dest[i1++] = source.get(9);
dest[i1++] = source.get(10);
dest[i1++] = source.get(11);
dest[i1++] = source.get(12);
dest[i1++] = source.get(13);
dest[i1++] = source.get(14);
dest[i1++] = 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 _g1 = 0;
var _g = numRegisters;
while(_g1 < _g) {
var i = _g1++;
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__$internal_renderer_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(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 js__$Boot_HaxeError(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);
var _g = this.__state.culling;
switch(_g) {
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 js__$Boot_HaxeError(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) {
var _g = this.__state.depthCompareMode;
switch(_g) {
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 js__$Boot_HaxeError(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 js__$Boot_HaxeError(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.__state.renderToTexture == null && this.__stage3D == null) {
var contextHeight = this.__stage.window.__height * this.__stage.window.__scale | 0;
scissorY = contextHeight - (this.__state.scissorRectangle.height | 0) - 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 _g1 = 0;
var _g = this.__state.textures.length;
while(_g1 < _g) {
var i = _g1++;
texture = this.__state.textures[i];
samplerState = this.__state.samplerStates[i];
if(samplerState == null) {
this.__state.samplerStates[i] = new openfl__$internal_renderer_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);
this.gl.uniform1i(this.__state.program.__agalAlphaSamplerEnabled[sampler].location,0);
}
}
++sampler;
}
}
,__flushGLViewport: function() {
if(this.__state.renderToTexture == null) {
if(this.__stage.context3D == this) {
var x = this.__stage3D == null ? 0 : this.__stage3D.get_x() | 0;
var y = this.__stage.window.__height * this.__stage.window.__scale - this.backBufferHeight - (this.__stage3D == null ? 0 : this.__stage3D.get_y()) | 0;
this.gl.viewport(x,y,this.backBufferWidth,this.backBufferHeight);
} else {
this.gl.viewport(0,0,this.backBufferWidth,this.backBufferHeight);
}
} else {
var width = 0;
var height = 0;
if(js_Boot.__instanceof(this.__state.renderToTexture,openfl_display3D_textures_Texture)) {
var texture2D = this.__state.renderToTexture;
width = texture2D.__width;
height = texture2D.__height;
} else if(js_Boot.__instanceof(this.__state.renderToTexture,openfl_display3D_textures_RectangleTexture)) {
var rectTexture = this.__state.renderToTexture;
width = rectTexture.__width;
height = rectTexture.__height;
} else if(js_Boot.__instanceof(this.__state.renderToTexture,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 js__$Boot_HaxeError(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_Context3DProgramType_$Impl_$.toString(1),"m44 op, va0, vc0\n" + "mov v0, va1");
var fragmentAssembler = new openfl_utils_AGALMiniAssembler();
fragmentAssembler.assemble(openfl_display3D__$Context3DProgramType_Context3DProgramType_$Impl_$.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;
}
,__class__: openfl_display3D_Context3D
,__properties__: {set_enableErrorChecking:"set_enableErrorChecking",get_enableErrorChecking:"get_enableErrorChecking"}
});
var openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DBlendFactor.Context3DBlendFactor_Impl_"] = openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.__name__ = ["openfl","display3D","_Context3DBlendFactor","Context3DBlendFactor_Impl_"];
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.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_Context3DBlendFactor_$Impl_$.toString = function(value) {
switch(value) {
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_Context3DBufferUsage_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DBufferUsage.Context3DBufferUsage_Impl_"] = openfl_display3D__$Context3DBufferUsage_Context3DBufferUsage_$Impl_$;
openfl_display3D__$Context3DBufferUsage_Context3DBufferUsage_$Impl_$.__name__ = ["openfl","display3D","_Context3DBufferUsage","Context3DBufferUsage_Impl_"];
openfl_display3D__$Context3DBufferUsage_Context3DBufferUsage_$Impl_$.fromString = function(value) {
switch(value) {
case "dynamicDraw":
return 0;
case "staticDraw":
return 1;
default:
return null;
}
};
openfl_display3D__$Context3DBufferUsage_Context3DBufferUsage_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "dynamicDraw";
case 1:
return "staticDraw";
default:
return null;
}
};
var openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DCompareMode.Context3DCompareMode_Impl_"] = openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.__name__ = ["openfl","display3D","_Context3DCompareMode","Context3DCompareMode_Impl_"];
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.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_Context3DCompareMode_$Impl_$.toString = function(value) {
switch(value) {
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_Context3DMipFilter_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DMipFilter.Context3DMipFilter_Impl_"] = openfl_display3D__$Context3DMipFilter_Context3DMipFilter_$Impl_$;
openfl_display3D__$Context3DMipFilter_Context3DMipFilter_$Impl_$.__name__ = ["openfl","display3D","_Context3DMipFilter","Context3DMipFilter_Impl_"];
openfl_display3D__$Context3DMipFilter_Context3DMipFilter_$Impl_$.fromString = function(value) {
switch(value) {
case "miplinear":
return 0;
case "mipnearest":
return 1;
case "mipnone":
return 2;
default:
return null;
}
};
openfl_display3D__$Context3DMipFilter_Context3DMipFilter_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "miplinear";
case 1:
return "mipnearest";
case 2:
return "mipnone";
default:
return null;
}
};
var openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DProfile.Context3DProfile_Impl_"] = openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$;
openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$.__name__ = ["openfl","display3D","_Context3DProfile","Context3DProfile_Impl_"];
openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$.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_Context3DProfile_$Impl_$.toString = function(value) {
switch(value) {
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_Context3DProgramFormat_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DProgramFormat.Context3DProgramFormat_Impl_"] = openfl_display3D__$Context3DProgramFormat_Context3DProgramFormat_$Impl_$;
openfl_display3D__$Context3DProgramFormat_Context3DProgramFormat_$Impl_$.__name__ = ["openfl","display3D","_Context3DProgramFormat","Context3DProgramFormat_Impl_"];
openfl_display3D__$Context3DProgramFormat_Context3DProgramFormat_$Impl_$.fromString = function(value) {
switch(value) {
case "agal":
return 0;
case "glsl":
return 1;
default:
return null;
}
};
openfl_display3D__$Context3DProgramFormat_Context3DProgramFormat_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "agal";
case 1:
return "glsl";
default:
return null;
}
};
var openfl_display3D__$Context3DProgramType_Context3DProgramType_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DProgramType.Context3DProgramType_Impl_"] = openfl_display3D__$Context3DProgramType_Context3DProgramType_$Impl_$;
openfl_display3D__$Context3DProgramType_Context3DProgramType_$Impl_$.__name__ = ["openfl","display3D","_Context3DProgramType","Context3DProgramType_Impl_"];
openfl_display3D__$Context3DProgramType_Context3DProgramType_$Impl_$.fromString = function(value) {
switch(value) {
case "fragment":
return 0;
case "vertex":
return 1;
default:
return null;
}
};
openfl_display3D__$Context3DProgramType_Context3DProgramType_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "fragment";
case 1:
return "vertex";
default:
return null;
}
};
var openfl_display3D__$Context3DRenderMode_Context3DRenderMode_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DRenderMode.Context3DRenderMode_Impl_"] = openfl_display3D__$Context3DRenderMode_Context3DRenderMode_$Impl_$;
openfl_display3D__$Context3DRenderMode_Context3DRenderMode_$Impl_$.__name__ = ["openfl","display3D","_Context3DRenderMode","Context3DRenderMode_Impl_"];
openfl_display3D__$Context3DRenderMode_Context3DRenderMode_$Impl_$.fromString = function(value) {
switch(value) {
case "auto":
return 0;
case "software":
return 1;
default:
return null;
}
};
openfl_display3D__$Context3DRenderMode_Context3DRenderMode_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "auto";
case 1:
return "software";
default:
return null;
}
};
var openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DStencilAction.Context3DStencilAction_Impl_"] = openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.__name__ = ["openfl","display3D","_Context3DStencilAction","Context3DStencilAction_Impl_"];
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.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_Context3DStencilAction_$Impl_$.toString = function(value) {
switch(value) {
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_Context3DTextureFilter_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DTextureFilter.Context3DTextureFilter_Impl_"] = openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$;
openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$.__name__ = ["openfl","display3D","_Context3DTextureFilter","Context3DTextureFilter_Impl_"];
openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$.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_Context3DTextureFilter_$Impl_$.toString = function(value) {
switch(value) {
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_Context3DTextureFormat_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DTextureFormat.Context3DTextureFormat_Impl_"] = openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$;
openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$.__name__ = ["openfl","display3D","_Context3DTextureFormat","Context3DTextureFormat_Impl_"];
openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$.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_Context3DTextureFormat_$Impl_$.toString = function(value) {
switch(value) {
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_Context3DTriangleFace_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_"] = openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$;
openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.__name__ = ["openfl","display3D","_Context3DTriangleFace","Context3DTriangleFace_Impl_"];
openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.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_Context3DTriangleFace_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "back";
case 1:
return "front";
case 2:
return "frontAndBack";
case 3:
return "none";
default:
return null;
}
};
var openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DVertexBufferFormat.Context3DVertexBufferFormat_Impl_"] = openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$;
openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$.__name__ = ["openfl","display3D","_Context3DVertexBufferFormat","Context3DVertexBufferFormat_Impl_"];
openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$.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_Context3DVertexBufferFormat_$Impl_$.toString = function(value) {
switch(value) {
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_Context3DWrapMode_$Impl_$ = {};
$hxClasses["openfl.display3D._Context3DWrapMode.Context3DWrapMode_Impl_"] = openfl_display3D__$Context3DWrapMode_Context3DWrapMode_$Impl_$;
openfl_display3D__$Context3DWrapMode_Context3DWrapMode_$Impl_$.__name__ = ["openfl","display3D","_Context3DWrapMode","Context3DWrapMode_Impl_"];
openfl_display3D__$Context3DWrapMode_Context3DWrapMode_$Impl_$.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_Context3DWrapMode_$Impl_$.toString = function(value) {
switch(value) {
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.__elementType = gl.UNSIGNED_SHORT;
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
,__elementType: 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 buffer = openfl_utils__$ByteArray_ByteArray_$Impl_$.toArrayBuffer(data);
var this1;
if(buffer != null) {
if(count == null) {
this1 = new Uint16Array(buffer,offset);
} else {
this1 = new Uint16Array(buffer,offset,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_WebGLRenderContext_$Impl_$.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 this1;
if(count != null) {
this1 = new Uint16Array(count);
} else {
this1 = null;
}
this.__tempUInt16Array = this1;
if(existingUInt16Array != null) {
this.__tempUInt16Array.set(existingUInt16Array);
}
}
var _g1 = startOffset;
var _g = length;
while(_g1 < _g) {
var i = _g1++;
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 List();
this.__agalSamplerUniforms = new List();
this.__agalAlphaSamplerUniforms = new 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 _g1 = 0;
var _g = this.__glslAttribNames.length;
while(_g1 < _g) {
var i = _g1++;
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 _g1 = 0;
var _g = this.__glslUniformNames.length;
while(_g1 < _g) {
var i = _g1++;
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__$internal_formats_agal_AGALConverter.convertToGLSL(vertexProgram,null);
var glslFragment = openfl__$internal_formats_agal_AGALConverter.convertToGLSL(fragmentProgram,samplerStates);
if(lime_utils_Log.level == 5) {
lime_utils_Log.info(glslVertex,{ fileName : "Program3D.hx", lineNumber : 180, className : "openfl.display3D.Program3D", methodName : "upload"});
lime_utils_Log.info(glslFragment,{ fileName : "Program3D.hx", lineNumber : 181, className : "openfl.display3D.Program3D", methodName : "upload"});
}
this.__deleteShaders();
this.__uploadFromGLSL(glslVertex,glslFragment);
this.__buildAGALUniformList();
var _g1 = 0;
var _g = samplerStates.length;
while(_g1 < _g) {
var i = _g1++;
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;
var uniformTypes = this.__glslUniformTypes;
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 _g1 = 0;
var _g2 = attribNames.length;
while(_g1 < _g2) {
var i = _g1++;
index = gl.getAttribLocation(this.__glProgram,attribNames[i]);
this.__glslAttribNames[index] = attribNames[i];
this.__glslAttribTypes[index] = attribTypes[i];
}
var _g11 = 0;
var _g3 = uniformNames.length;
while(_g11 < _g3) {
var i1 = _g11++;
location = gl.getUniformLocation(this.__glProgram,uniformNames[i1]);
this.__glslUniformLocations[i1] = 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 List();
var fragmentUniforms = new List();
var _g1 = 0;
var _g = numActive;
while(_g1 < _g) {
var i = _g1++;
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);
}
var _g2 = uniform.type;
switch(_g2) {
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 _g4 = 0;
var _g3 = uniform.regCount;
while(_g4 < _g3) {
var reg = _g4++;
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) {
haxe_Log.trace("" + i + " name:" + uniform.name + " type:" + uniform.type + " size:" + uniform.size + " location:" + Std.string(uniform.location),{ fileName : "Program3D.hx", lineNumber : 365, 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 js__$Boot_HaxeError(new openfl_errors_IllegalOperationError("!!! TODO: uniform location on webgl"));
}
}
var _g_head1 = this.__agalAlphaSamplerUniforms.h;
while(_g_head1 != null) {
var val1 = _g_head1.item;
_g_head1 = _g_head1.next;
var sampler1 = val1;
if(sampler1.regCount == 1) {
gl.uniform1i(sampler1.location,sampler1.regIndex);
} else {
throw new js__$Boot_HaxeError(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 "double":case "float":
parameterType = 4;
break;
case "ivec3":case "uvec3":
parameterType = 10;
break;
case "ivec4":case "uvec4":
parameterType = 11;
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 "mat4":case "mat4x4":
parameterType = 20;
break;
case "mat4x2":
parameterType = 18;
break;
case "mat4x3":
parameterType = 19;
break;
case "int":case "uint":
parameterType = 8;
break;
case "ivec2":case "uvec2":
parameterType = 9;
break;
case "dvec4":case "vec4":
parameterType = 7;
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;
gl.uniform4fv(location,positionScale);
}
}
,__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 : "Program3D.hx", lineNumber : 697, 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 message1 = "Error compiling fragment shader";
message1 += "\n" + gl.getShaderInfoLog(this.__glFragmentShader);
message1 += "\n" + fragmentShaderSource;
lime_utils_Log.error(message1,{ fileName : "Program3D.hx", lineNumber : 710, 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 _g1 = 0;
var _g11 = this.__glslAttribNames;
while(_g1 < _g11.length) {
var name1 = _g11[_g1];
++_g1;
if(name1.indexOf("Position") > -1 && StringTools.startsWith(name1,"openfl_")) {
gl.bindAttribLocation(this.__glProgram,0,name1);
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 message2 = "Unable to initialize the shader program";
message2 += "\n" + gl.getProgramInfoLog(this.__glProgram);
lime_utils_Log.error(message2,{ fileName : "Program3D.hx", lineNumber : 756, className : "openfl.display3D.Program3D", methodName : "__uploadFromGLSL"});
}
}
,__class__: openfl_display3D_Program3D
};
var openfl_display3D_Uniform = function(context) {
this.context = context;
this.isDirty = true;
var this1 = new lime_utils_BytePointerData(null,0);
this.regDataPointer = this1;
};
$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;
var _g = this.type;
switch(_g) {
case 35664:
lime_graphics__$WebGL2RenderContext_WebGL2RenderContext_$Impl_$.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);
gl.uniform3fv(location,data);
break;
case 35666:
var location1 = this.location;
var data1 = this.regData.subarray(index,index + this.regCount * 4);
gl.uniform4fv(location1,data1);
break;
case 35674:
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix2fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 2 * 2));
break;
case 35675:
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix3fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 3 * 3));
break;
case 35676:
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.uniformMatrix4fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 4 * 4));
break;
default:
var location2 = this.location;
var data2 = this.regData.subarray(index,index + this.regCount * 4);
gl.uniform4fv(location2,data2);
}
}
,__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_Vector_$Impl_$.toObjectVector(null,total);
var _g2 = 0;
var _g11 = this.__uniforms;
while(_g2 < _g11.length) {
var uniform1 = _g11[_g2];
++_g2;
var _g3 = 0;
var _g21 = uniform1.regCount;
while(_g3 < _g21) {
var i = _g3++;
this.__registerLookup.set(uniform1.regIndex + i,uniform1);
}
}
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_Context3DBufferUsage_$Impl_$.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 buffer = openfl_utils__$ByteArray_ByteArray_$Impl_$.toArrayBuffer(data);
var this1;
if(buffer != null) {
if(length == null) {
this1 = new Float32Array(buffer,offset);
} else {
this1 = new Float32Array(buffer,offset,length);
}
} 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.__bindGLArrayBuffer(this.__id);
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.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 this1;
if(count != null) {
this1 = new Float32Array(count);
} else {
this1 = null;
}
this.__tempFloat32Array = this1;
if(existingFloat32Array != null) {
this.__tempFloat32Array.set(existingFloat32Array);
}
}
var _g1 = start;
var _g = length;
while(_g1 < _g) {
var i = _g1++;
this.__tempFloat32Array[i - start] = data.get(i);
}
this.uploadFromTypedArray(this.__tempFloat32Array);
}
,__class__: openfl_display3D_VertexBuffer3D
};
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 v1 = dxtExtension.COMPRESSED_RGBA_S3TC_DXT5_EXT;
openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[0] = v1;
}
if(etc1Extension != null) {
var v2 = etc1Extension.COMPRESSED_RGB_ETC1_WEBGL;
openfl_display3D_textures_TextureBase.__compressedFormats.h[2] = v2;
var v3 = etc1Extension.COMPRESSED_RGB_ETC1_WEBGL;
openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[2] = v3;
}
if(pvrtcExtension != null) {
var v4 = pvrtcExtension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
openfl_display3D_textures_TextureBase.__compressedFormats.h[1] = v4;
var v5 = pvrtcExtension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[1] = v5;
}
}
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();
}
gl.deleteTexture(this.__textureID);
}
,__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) {
haxe_Log.trace("Error: Context3D.setRenderToTexture status:" + code + " width:" + this.__width + " height:" + this.__height,{ fileName : "TextureBase.hx", lineNumber : 179, className : "openfl.display3D.textures.TextureBase", methodName : "__getGLFramebuffer"});
}
}
}
if(enableDepthAndStencil && this.__glDepthRenderbuffer == null) {
this.__context.__bindGLFramebuffer(this.__glFramebuffer);
if(openfl_display3D_Context3D.GL_DEPTH_STENCIL != 0) {
this.__glDepthRenderbuffer = gl.createRenderbuffer();
this.__glStencilRenderbuffer = this.__glDepthRenderbuffer;
gl.bindRenderbuffer(gl.RENDERBUFFER,this.__glDepthRenderbuffer);
gl.renderbufferStorage(gl.RENDERBUFFER,openfl_display3D_Context3D.GL_DEPTH_STENCIL,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 code1 = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
if(code1 != gl.FRAMEBUFFER_COMPLETE) {
haxe_Log.trace("Error: Context3D.setRenderToTexture status:" + code1 + " width:" + this.__width + " height:" + this.__height,{ fileName : "TextureBase.hx", lineNumber : 221, 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;
var _g = state.wrap;
switch(_g) {
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 js__$Boot_HaxeError(new openfl_errors_Error("wrap bad enum"));
}
var magFilter = 0;
var minFilter = 0;
var _g1 = state.filter;
if(_g1 == 5) {
magFilter = gl.NEAREST;
} else {
magFilter = gl.LINEAR;
}
var _g2 = state.mipfilter;
switch(_g2) {
case 0:
if(state.filter == 5) {
minFilter = gl.NEAREST_MIPMAP_LINEAR;
} else {
minFilter = gl.LINEAR_MIPMAP_LINEAR;
}
break;
case 1:
if(state.filter == 5) {
minFilter = gl.NEAREST_MIPMAP_NEAREST;
} else {
minFilter = gl.LINEAR_MIPMAP_NEAREST;
}
break;
case 2:
if(state.filter == 5) {
minFilter = gl.NEAREST;
} else {
minFilter = gl.LINEAR;
}
break;
default:
throw new js__$Boot_HaxeError(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;
}
,__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);
_gthis.dispatchEvent(new openfl_events_Event("textureReady"));
},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 size1 = this.__size >> miplevel;
if(size1 == 0) {
return;
}
var target = this.__sideToTarget(side);
this.__context.__bindGLTextureCubeMap(this.__textureID);
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.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 buffer = openfl_utils__$ByteArray_ByteArray_$Impl_$.toArrayBuffer(data);
var this1;
if(buffer != null) {
this1 = new Uint8Array(buffer,byteArrayOffset);
} 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_WebGLRenderContext_$Impl_$.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) {
haxe_Log.trace("Error: Context3D.setRenderToTexture status:" + code + " width:" + this.__width + " height:" + this.__height,{ fileName : "CubeTexture.hx", lineNumber : 172, 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.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT != 0) {
var aniso;
var _g = state.filter;
switch(_g) {
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.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT) {
aniso = openfl_display3D_Context3D.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT;
}
gl.texParameterf(gl.TEXTURE_CUBE_MAP,openfl_display3D_Context3D.GL_TEXTURE_MAX_ANISOTROPY_EXT,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 js__$Boot_HaxeError(new openfl_errors_IllegalOperationError());
}
}
,__uploadCompressedTextureFromByteArray: function(data,byteArrayOffset) {
var _gthis = this;
var reader = new openfl__$internal_formats_atf_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 _gthis1 = _gthis.__internalFormat;
var buffer = bytes.b.buffer;
var this1;
if(buffer != null) {
if(size == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,size);
}
} else {
this1 = null;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.compressedTexImage2D(gl,target,level,_gthis1,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 alphaTexture1 = alphaTexture.__internalFormat;
var buffer1 = bytes.b.buffer;
var this2;
if(buffer1 != null) {
if(size == null) {
this2 = new Uint8Array(buffer1,size);
} else {
this2 = new Uint8Array(buffer1,size,size);
}
} else {
this2 = null;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.compressedTexImage2D(gl,target,level,alphaTexture1,width,height,0,this2);
_gthis.__alphaTexture = alphaTexture;
} else {
var _gthis2 = _gthis.__internalFormat;
var buffer2 = bytes.b.buffer;
var this3;
if(buffer2 != null) {
if(blockLength == null) {
this3 = new Uint8Array(buffer2,0);
} else {
this3 = new Uint8Array(buffer2,0,blockLength);
}
} else {
this3 = null;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.compressedTexImage2D(gl,target,level,_gthis2,width,height,0,this3);
}
});
if(!hasTexture) {
var _g = 0;
while(_g < 6) {
var side1 = _g++;
var elements = this.__size * this.__size * 4;
var this4;
if(elements != null) {
this4 = new Uint8Array(elements);
} else {
this4 = null;
}
var data1 = this4;
var tmp = this.__sideToTarget(side1);
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.texImage2D(gl,tmp,0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data1);
}
}
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_WebGLRenderContext_$Impl_$.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 buffer = openfl_utils__$ByteArray_ByteArray_$Impl_$.toArrayBuffer(data);
var this1;
if(buffer != null) {
this1 = new Uint8Array(buffer,byteArrayOffset);
} else {
this1 = null;
}
this.uploadFromTypedArray(this1);
}
,uploadFromTypedArray: function(data) {
var gl = this.__context.gl;
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.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.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT != 0) {
var aniso;
var _g = state.filter;
switch(_g) {
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.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT) {
aniso = openfl_display3D_Context3D.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT;
}
gl.texParameterf(gl.TEXTURE_2D,openfl_display3D_Context3D.GL_TEXTURE_MAX_ANISOTROPY_EXT,aniso);
}
return true;
}
return false;
}
,__uploadFromImage: function(image) {
var gl = this.__context.gl;
var internalFormat;
var format;
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_WebGLRenderContext_$Impl_$.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_WebGLRenderContext_$Impl_$.texImage2D(gl,gl.TEXTURE_2D,0,internalFormat,format,gl.UNSIGNED_BYTE,image.get_src());
}
this.__context.__bindGLTexture2D(null);
}
,__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_WebGLRenderContext_$Impl_$.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);
_gthis.dispatchEvent(new openfl_events_Event("textureReady"));
},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 width1 = this.__width >> miplevel;
var height1 = this.__height >> miplevel;
if(width1 == 0 && height1 == 0) {
return;
}
if(width1 == 0) {
width1 = 1;
}
if(height1 == 0) {
height1 = 1;
}
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.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 buffer = openfl_utils__$ByteArray_ByteArray_$Impl_$.toArrayBuffer(data);
var this1;
if(buffer != null) {
this1 = new Uint8Array(buffer,byteArrayOffset);
} 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_WebGLRenderContext_$Impl_$.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.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT != 0) {
var aniso;
var _g = state.filter;
switch(_g) {
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.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT) {
aniso = openfl_display3D_Context3D.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT;
}
gl.texParameterf(gl.TEXTURE_2D,openfl_display3D_Context3D.GL_TEXTURE_MAX_ANISOTROPY_EXT,aniso);
}
return true;
}
return false;
}
,__uploadCompressedTextureFromByteArray: function(data,byteArrayOffset) {
var _gthis = this;
var reader = new openfl__$internal_formats_atf_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 _gthis1 = _gthis.__textureTarget;
var _gthis2 = _gthis.__internalFormat;
var buffer = bytes.b.buffer;
var this1;
if(buffer != null) {
if(size == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,size);
}
} else {
this1 = null;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.compressedTexImage2D(gl,_gthis1,level,_gthis2,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 alphaTexture1 = alphaTexture.__textureTarget;
var alphaTexture2 = alphaTexture.__internalFormat;
var buffer1 = bytes.b.buffer;
var this2;
if(buffer1 != null) {
if(size == null) {
this2 = new Uint8Array(buffer1,size);
} else {
this2 = new Uint8Array(buffer1,size,size);
}
} else {
this2 = null;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.compressedTexImage2D(gl,alphaTexture1,level,alphaTexture2,width,height,0,this2);
_gthis.__alphaTexture = alphaTexture;
} else {
var _gthis3 = _gthis.__textureTarget;
var _gthis4 = _gthis.__internalFormat;
var buffer2 = bytes.b.buffer;
var this3;
if(buffer2 != null) {
if(blockLength == null) {
this3 = new Uint8Array(buffer2,0);
} else {
this3 = new Uint8Array(buffer2,0,blockLength);
}
} else {
this3 = null;
}
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.compressedTexImage2D(gl,_gthis3,level,_gthis4,width,height,0,this3);
}
});
if(!hasTexture) {
var elements = this.__width * this.__height * 4;
var this4;
if(elements != null) {
this4 = new Uint8Array(elements);
} else {
this4 = null;
}
var data1 = this4;
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__width,this.__height,0,this.__format,gl.UNSIGNED_BYTE,data1);
}
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
,__netStream: null
,attachNetStream: function(netStream) {
var _gthis = this;
this.__netStream = netStream;
if(this.__netStream.__video.readyState == 4) {
haxe_Timer.delay(function() {
_gthis.__textureReady();
},0);
} else {
this.__netStream.__video.addEventListener("canplay",function(_) {
_gthis.__textureReady();
},false);
}
}
,__getTexture: function() {
if((!this.__netStream.__video.paused || this.__netStream.get___seeking()) && this.__netStream.__video.readyState > 0) {
this.__netStream.set___seeking(false);
var gl = this.__context.gl;
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics__$WebGLRenderContext_WebGLRenderContext_$Impl_$.texImage2D(gl,gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,this.__netStream.__video);
}
return this.__textureID;
}
,__textureReady: function() {
this.videoWidth = this.__netStream.__video.videoWidth;
this.videoHeight = this.__netStream.__video.videoHeight;
this.dispatchEvent(new openfl_events_Event("textureReady"));
}
,__class__: openfl_display3D_textures_VideoTexture
});
var openfl_errors_Error = function(message,id) {
if(id == null) {
id = 0;
}
if(message == null) {
message = "";
}
this.message = message;
this.errorID = id;
this.name = "Error";
};
$hxClasses["openfl.errors.Error"] = openfl_errors_Error;
openfl_errors_Error.__name__ = ["openfl","errors","Error"];
openfl_errors_Error.prototype = {
errorID: null
,message: null
,name: null
,getStackTrace: function() {
return haxe_CallStack.toString(haxe_CallStack.exceptionStack());
}
,toString: function() {
if(this.message != null) {
return this.message;
} else {
return "Error";
}
}
,__class__: openfl_errors_Error
};
var openfl_errors_ArgumentError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message);
this.name = "ArgumentError";
};
$hxClasses["openfl.errors.ArgumentError"] = openfl_errors_ArgumentError;
openfl_errors_ArgumentError.__name__ = ["openfl","errors","ArgumentError"];
openfl_errors_ArgumentError.__super__ = openfl_errors_Error;
openfl_errors_ArgumentError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_ArgumentError
});
var openfl_errors_IOError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message);
this.name = "IOError";
};
$hxClasses["openfl.errors.IOError"] = openfl_errors_IOError;
openfl_errors_IOError.__name__ = ["openfl","errors","IOError"];
openfl_errors_IOError.__super__ = openfl_errors_Error;
openfl_errors_IOError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_IOError
});
var openfl_errors_EOFError = function(message,id) {
if(id == null) {
id = 0;
}
openfl_errors_IOError.call(this,"End of file was encountered");
this.name = "EOFError";
this.errorID = 2030;
};
$hxClasses["openfl.errors.EOFError"] = openfl_errors_EOFError;
openfl_errors_EOFError.__name__ = ["openfl","errors","EOFError"];
openfl_errors_EOFError.__super__ = openfl_errors_IOError;
openfl_errors_EOFError.prototype = $extend(openfl_errors_IOError.prototype,{
__class__: openfl_errors_EOFError
});
var openfl_errors_IllegalOperationError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message,0);
this.name = "IllegalOperationError";
};
$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";
};
$hxClasses["openfl.errors.RangeError"] = openfl_errors_RangeError;
openfl_errors_RangeError.__name__ = ["openfl","errors","RangeError"];
openfl_errors_RangeError.__super__ = openfl_errors_Error;
openfl_errors_RangeError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_RangeError
});
var openfl_errors_TypeError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message,0);
this.name = "TypeError";
};
$hxClasses["openfl.errors.TypeError"] = openfl_errors_TypeError;
openfl_errors_TypeError.__name__ = ["openfl","errors","TypeError"];
openfl_errors_TypeError.__super__ = openfl_errors_Error;
openfl_errors_TypeError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_TypeError
});
var openfl_events_Event = function(type,bubbles,cancelable) {
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
this.type = type;
this.bubbles = bubbles;
this.cancelable = cancelable;
this.eventPhase = 2;
};
$hxClasses["openfl.events.Event"] = openfl_events_Event;
openfl_events_Event.__name__ = ["openfl","events","Event"];
openfl_events_Event.prototype = {
bubbles: null
,cancelable: null
,currentTarget: null
,eventPhase: null
,target: null
,type: null
,__isCanceled: null
,__isCanceledNow: null
,__preventDefault: null
,clone: function() {
var event = new openfl_events_Event(this.type,this.bubbles,this.cancelable);
event.eventPhase = this.eventPhase;
event.target = this.target;
event.currentTarget = this.currentTarget;
return event;
}
,formatToString: function(className,p1,p2,p3,p4,p5) {
var parameters = [];
if(p1 != null) {
parameters.push(p1);
}
if(p2 != null) {
parameters.push(p2);
}
if(p3 != null) {
parameters.push(p3);
}
if(p4 != null) {
parameters.push(p4);
}
if(p5 != null) {
parameters.push(p5);
}
return $bind(this,this.__formatToString).apply(this,[className,parameters]);
}
,isDefaultPrevented: function() {
return this.__preventDefault;
}
,preventDefault: function() {
if(this.cancelable) {
this.__preventDefault = true;
}
}
,stopImmediatePropagation: function() {
this.__isCanceled = true;
this.__isCanceledNow = true;
}
,stopPropagation: function() {
this.__isCanceled = true;
}
,toString: function() {
return this.__formatToString("Event",["type","bubbles","cancelable"]);
}
,__formatToString: function(className,parameters) {
var output = "[" + className;
var arg = null;
var _g = 0;
while(_g < parameters.length) {
var param = parameters[_g];
++_g;
arg = Reflect.field(this,param);
if(typeof(arg) == "string") {
output += " " + param + "=\"" + Std.string(arg) + "\"";
} else {
output += " " + param + "=" + Std.string(arg);
}
}
output += "]";
return output;
}
,__class__: openfl_events_Event
};
var openfl_events_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"]);
}
,__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"]);
}
,__class__: openfl_events_ActivityEvent
});
var openfl_events_TextEvent = function(type,bubbles,cancelable,text) {
if(text == null) {
text = "";
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.text = text;
};
$hxClasses["openfl.events.TextEvent"] = openfl_events_TextEvent;
openfl_events_TextEvent.__name__ = ["openfl","events","TextEvent"];
openfl_events_TextEvent.__super__ = openfl_events_Event;
openfl_events_TextEvent.prototype = $extend(openfl_events_Event.prototype,{
text: null
,clone: function() {
var event = new openfl_events_TextEvent(this.type,this.bubbles,this.cancelable,this.text);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("TextEvent",["type","bubbles","cancelable","text"]);
}
,__class__: openfl_events_TextEvent
});
var openfl_events_ErrorEvent = function(type,bubbles,cancelable,text,id) {
if(id == null) {
id = 0;
}
if(text == null) {
text = "";
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
openfl_events_TextEvent.call(this,type,bubbles,cancelable,text);
this.errorID = id;
};
$hxClasses["openfl.events.ErrorEvent"] = openfl_events_ErrorEvent;
openfl_events_ErrorEvent.__name__ = ["openfl","events","ErrorEvent"];
openfl_events_ErrorEvent.__super__ = openfl_events_TextEvent;
openfl_events_ErrorEvent.prototype = $extend(openfl_events_TextEvent.prototype,{
errorID: null
,clone: function() {
var event = new openfl_events_ErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("ErrorEvent",["type","bubbles","cancelable","text","errorID"]);
}
,__class__: openfl_events_ErrorEvent
});
var openfl_events__$EventDispatcher_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 _g1 = this.index;
var _g = this.list.length;
while(_g1 < _g) {
var i = _g1++;
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(Reflect.compareMethods(this.callback,callback)) {
return this.useCapture == useCapture;
} else {
return false;
}
}
,__class__: openfl_events__$EventDispatcher_Listener
};
var openfl_events_FocusEvent = function(type,bubbles,cancelable,relatedObject,shiftKey,keyCode) {
if(keyCode == null) {
keyCode = 0;
}
if(shiftKey == null) {
shiftKey = false;
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.keyCode = keyCode;
this.shiftKey = shiftKey;
this.relatedObject = relatedObject;
};
$hxClasses["openfl.events.FocusEvent"] = openfl_events_FocusEvent;
openfl_events_FocusEvent.__name__ = ["openfl","events","FocusEvent"];
openfl_events_FocusEvent.__super__ = openfl_events_Event;
openfl_events_FocusEvent.prototype = $extend(openfl_events_Event.prototype,{
keyCode: null
,relatedObject: null
,shiftKey: null
,clone: function() {
var event = new openfl_events_FocusEvent(this.type,this.bubbles,this.cancelable,this.relatedObject,this.shiftKey,this.keyCode);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("FocusEvent",["type","bubbles","cancelable","relatedObject","shiftKey","keyCode"]);
}
,__class__: openfl_events_FocusEvent
});
var openfl_events_FullScreenEvent = function(type,bubbles,cancelable,fullScreen,interactive) {
if(interactive == null) {
interactive = false;
}
if(fullScreen == null) {
fullScreen = false;
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
openfl_events_ActivityEvent.call(this,type,bubbles,cancelable);
this.fullScreen = fullScreen;
this.interactive = interactive;
};
$hxClasses["openfl.events.FullScreenEvent"] = openfl_events_FullScreenEvent;
openfl_events_FullScreenEvent.__name__ = ["openfl","events","FullScreenEvent"];
openfl_events_FullScreenEvent.__super__ = openfl_events_ActivityEvent;
openfl_events_FullScreenEvent.prototype = $extend(openfl_events_ActivityEvent.prototype,{
fullScreen: null
,interactive: null
,clone: function() {
var event = new openfl_events_FullScreenEvent(this.type,this.bubbles,this.cancelable,this.fullScreen,this.interactive);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("FullscreenEvent",["type","bubbles","cancelable","fullscreen","interactive"]);
}
,__class__: openfl_events_FullScreenEvent
});
var openfl_events_GameInputEvent = function(type,bubbles,cancelable,device) {
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = true;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.device = device;
};
$hxClasses["openfl.events.GameInputEvent"] = openfl_events_GameInputEvent;
openfl_events_GameInputEvent.__name__ = ["openfl","events","GameInputEvent"];
openfl_events_GameInputEvent.__super__ = openfl_events_Event;
openfl_events_GameInputEvent.prototype = $extend(openfl_events_Event.prototype,{
device: null
,clone: function() {
var event = new openfl_events_GameInputEvent(this.type,this.bubbles,this.cancelable,this.device);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("GameInputEvent",["type","bubbles","cancelable","device"]);
}
,__class__: openfl_events_GameInputEvent
});
var openfl_events_HTTPStatusEvent = function(type,bubbles,cancelable,status,redirected) {
if(redirected == null) {
redirected = false;
}
if(status == null) {
status = 0;
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
this.status = status;
this.redirected = redirected;
openfl_events_Event.call(this,type,bubbles,cancelable);
};
$hxClasses["openfl.events.HTTPStatusEvent"] = openfl_events_HTTPStatusEvent;
openfl_events_HTTPStatusEvent.__name__ = ["openfl","events","HTTPStatusEvent"];
openfl_events_HTTPStatusEvent.__super__ = openfl_events_Event;
openfl_events_HTTPStatusEvent.prototype = $extend(openfl_events_Event.prototype,{
redirected: null
,responseHeaders: null
,responseURL: null
,status: null
,clone: function() {
var event = new openfl_events_HTTPStatusEvent(this.type,this.bubbles,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"]);
}
,__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
,ctrlKey: null
,commandKey: null
,controlKey: null
,keyCode: null
,keyLocation: null
,shiftKey: null
,clone: function() {
var event = new openfl_events_KeyboardEvent(this.type,this.bubbles,this.cancelable,this.charCode,this.keyCode,this.keyLocation,this.ctrlKey,this.altKey,this.shiftKey,this.controlKey,this.commandKey);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("KeyboardEvent",["type","bubbles","cancelable","charCode","keyCode","keyLocation","ctrlKey","altKey","shiftKey"]);
}
,__class__: openfl_events_KeyboardEvent
});
var openfl_events_MouseEvent = function(type,bubbles,cancelable,localX,localY,relatedObject,ctrlKey,altKey,shiftKey,buttonDown,delta,commandKey,clickCount) {
if(clickCount == null) {
clickCount = 0;
}
if(commandKey == null) {
commandKey = false;
}
if(delta == null) {
delta = 0;
}
if(buttonDown == null) {
buttonDown = false;
}
if(shiftKey == null) {
shiftKey = false;
}
if(altKey == null) {
altKey = false;
}
if(ctrlKey == null) {
ctrlKey = false;
}
if(localY == null) {
localY = 0;
}
if(localX == null) {
localX = 0;
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = true;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.shiftKey = shiftKey;
this.altKey = altKey;
this.ctrlKey = ctrlKey;
this.bubbles = bubbles;
this.relatedObject = relatedObject;
this.delta = delta;
this.localX = localX;
this.localY = localY;
this.buttonDown = buttonDown;
this.commandKey = commandKey;
this.clickCount = clickCount;
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() {
}
,__class__: openfl_events_MouseEvent
});
var openfl_events_NetStatusEvent = function(type,bubbles,cancelable,info) {
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
this.info = info;
openfl_events_Event.call(this,type,bubbles,cancelable);
};
$hxClasses["openfl.events.NetStatusEvent"] = openfl_events_NetStatusEvent;
openfl_events_NetStatusEvent.__name__ = ["openfl","events","NetStatusEvent"];
openfl_events_NetStatusEvent.__super__ = openfl_events_Event;
openfl_events_NetStatusEvent.prototype = $extend(openfl_events_Event.prototype,{
info: null
,clone: function() {
var event = new openfl_events_NetStatusEvent(this.type,this.bubbles,this.cancelable,this.info);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("NetStatusEvent",["type","bubbles","cancelable","info"]);
}
,__class__: openfl_events_NetStatusEvent
});
var openfl_events_ProgressEvent = function(type,bubbles,cancelable,bytesLoaded,bytesTotal) {
if(bytesTotal == null) {
bytesTotal = 0;
}
if(bytesLoaded == null) {
bytesLoaded = 0;
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.bytesLoaded = bytesLoaded;
this.bytesTotal = bytesTotal;
};
$hxClasses["openfl.events.ProgressEvent"] = openfl_events_ProgressEvent;
openfl_events_ProgressEvent.__name__ = ["openfl","events","ProgressEvent"];
openfl_events_ProgressEvent.__super__ = openfl_events_Event;
openfl_events_ProgressEvent.prototype = $extend(openfl_events_Event.prototype,{
bytesLoaded: null
,bytesTotal: null
,clone: function() {
var event = new openfl_events_ProgressEvent(this.type,this.bubbles,this.cancelable,this.bytesLoaded,this.bytesTotal);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("ProgressEvent",["type","bubbles","cancelable","bytesLoaded","bytesTotal"]);
}
,__class__: openfl_events_ProgressEvent
});
var openfl_events_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"]);
}
,__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() {
}
,__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"]);
}
,__class__: openfl_events_UncaughtErrorEvent
});
var openfl_events_UncaughtErrorEvents = function() {
openfl_events_EventDispatcher.call(this);
};
$hxClasses["openfl.events.UncaughtErrorEvents"] = openfl_events_UncaughtErrorEvents;
openfl_events_UncaughtErrorEvents.__name__ = ["openfl","events","UncaughtErrorEvents"];
openfl_events_UncaughtErrorEvents.__super__ = openfl_events_EventDispatcher;
openfl_events_UncaughtErrorEvents.prototype = $extend(openfl_events_EventDispatcher.prototype,{
__class__: openfl_events_UncaughtErrorEvents
});
var openfl_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) {
return null;
}
,__class__: openfl_filters_BitmapFilter
};
var openfl_filters_BitmapFilterShader = function(code) {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "varying vec2 openfl_TextureCoordv;\n\t\t\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tgl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n\t\t\t\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\t\n\t\tvarying vec2 openfl_TextureCoordv;\n\t\t\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\t\t\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\t\n\t\t}";
}
openfl_display_Shader.call(this,code);
this.__isGenerated = true;
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.__glFragmentSource == null) {
this.__glFragmentSource = "uniform sampler2D openfl_Texture;\n\t\t\n\t\tvarying vec2 vBlurCoords[7];\n\t\t\n\t\tvoid main(void) {\n\t\t\t\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\t\t\t\n\t\t\tgl_FragColor = sum;\n\t\t\t\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\t\n\t\tuniform mat4 openfl_Matrix;\n\t\t\n\t\tuniform vec2 uRadius;\n\t\tvarying vec2 vBlurCoords[7];\n\t\tuniform vec2 uTextureSize;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\t\n\t\t\tvec2 r = uRadius / uTextureSize;\n\t\t\tvBlurCoords[0] = openfl_TextureCoord - r * 1.0;\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 * 1.0;\n\t\t\t\n\t\t}";
}
openfl_filters_BitmapFilterShader.call(this);
this.uRadius.value = [0,0];
this.__isGenerated = true;
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 finalImage = lime__$internal_graphics_ImageDataUtil.gaussianBlur(bitmapData.image,sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),this.__blurX,this.__blurY,this.__quality);
if(finalImage == bitmapData.image) {
return bitmapData;
}
return sourceBitmapData;
}
,__initShader: function(renderer,pass) {
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 scale1 = 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() * scale1;
}
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__$ColorMatrixFilter_ColorMatrixShader = function() {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "varying vec2 openfl_TextureCoordv;\n\t\tuniform sampler2D openfl_Texture;\n\t\t\n\t\tuniform mat4 uMultipliers;\n\t\tuniform vec4 uOffsets;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\t\t\t\n\t\t\tif (color.a == 0.0) {\n\t\t\t\t\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\t\t\t\tcolor = uOffsets + color * uMultipliers;\n\t\t\t\t\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a, color.a);\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\t\n\t\tvarying vec2 openfl_TextureCoordv;\n\t\t\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\t\t\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t}";
}
openfl_filters_BitmapFilterShader.call(this);
this.uMultipliers.value = [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];
this.uOffsets.value = [0,0,0,0];
this.__isGenerated = true;
this.__initGL();
};
$hxClasses["openfl.filters._ColorMatrixFilter.ColorMatrixShader"] = openfl_filters__$ColorMatrixFilter_ColorMatrixShader;
openfl_filters__$ColorMatrixFilter_ColorMatrixShader.__name__ = ["openfl","filters","_ColorMatrixFilter","ColorMatrixShader"];
openfl_filters__$ColorMatrixFilter_ColorMatrixShader.__super__ = openfl_filters_BitmapFilterShader;
openfl_filters__$ColorMatrixFilter_ColorMatrixShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{
init: function(matrix) {
var multipliers = this.uMultipliers.value;
var offsets = this.uOffsets.value;
multipliers[0] = matrix[0];
multipliers[1] = matrix[1];
multipliers[2] = matrix[2];
multipliers[3] = matrix[3];
multipliers[4] = matrix[5];
multipliers[5] = matrix[6];
multipliers[6] = matrix[7];
multipliers[7] = matrix[8];
multipliers[8] = matrix[10];
multipliers[9] = matrix[11];
multipliers[10] = matrix[12];
multipliers[11] = matrix[13];
multipliers[12] = matrix[15];
multipliers[13] = matrix[16];
multipliers[14] = matrix[17];
multipliers[15] = matrix[18];
offsets[0] = matrix[4] / 255.0;
offsets[1] = matrix[9] / 255.0;
offsets[2] = matrix[14] / 255.0;
offsets[3] = matrix[19] / 255.0;
}
,uMultipliers: null
,uOffsets: null
,__class__: openfl_filters__$ColorMatrixFilter_ColorMatrixShader
});
var openfl_filters_ColorMatrixFilter = function(matrix) {
openfl_filters_BitmapFilter.call(this);
this.set_matrix(matrix);
this.__numShaderPasses = 1;
this.__needSecondBitmapData = false;
};
$hxClasses["openfl.filters.ColorMatrixFilter"] = openfl_filters_ColorMatrixFilter;
openfl_filters_ColorMatrixFilter.__name__ = ["openfl","filters","ColorMatrixFilter"];
openfl_filters_ColorMatrixFilter.__super__ = openfl_filters_BitmapFilter;
openfl_filters_ColorMatrixFilter.prototype = $extend(openfl_filters_BitmapFilter.prototype,{
__matrix: null
,clone: function() {
return new openfl_filters_ColorMatrixFilter(this.__matrix);
}
,__applyFilter: function(destBitmapData,sourceBitmapData,sourceRect,destPoint) {
var sourceImage = sourceBitmapData.image;
var image = destBitmapData.image;
lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage);
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
var sourceData = sourceImage.get_data();
var destData = image.get_data();
var offsetX = destPoint.x - sourceRect.x | 0;
var offsetY = destPoint.y - sourceRect.y | 0;
var sourceStride = sourceBitmapData.width * 4;
var destStride = destBitmapData.width * 4;
var sourceFormat = sourceImage.buffer.format;
var destFormat = image.buffer.format;
var sourcePremultiplied = sourceImage.buffer.premultiplied;
var destPremultiplied = image.buffer.premultiplied;
var sourcePixel;
var destPixel = 0;
var sourceOffset;
var destOffset;
var _g1 = sourceRect.y | 0;
var _g = sourceRect.height | 0;
while(_g1 < _g) {
var row = _g1++;
var _g3 = sourceRect.x | 0;
var _g2 = sourceRect.width | 0;
while(_g3 < _g2) {
var column = _g3++;
sourceOffset = row * sourceStride + column * 4;
destOffset = (row + offsetX) * destStride + (column + offsetY) * 4;
switch(sourceFormat) {
case 0:
sourcePixel = (sourceData[sourceOffset] & 255) << 24 | (sourceData[sourceOffset + 1] & 255) << 16 | (sourceData[sourceOffset + 2] & 255) << 8 | sourceData[sourceOffset + 3] & 255;
break;
case 1:
sourcePixel = (sourceData[sourceOffset + 1] & 255) << 24 | (sourceData[sourceOffset + 2] & 255) << 16 | (sourceData[sourceOffset + 3] & 255) << 8 | sourceData[sourceOffset] & 255;
break;
case 2:
sourcePixel = (sourceData[sourceOffset + 2] & 255) << 24 | (sourceData[sourceOffset + 1] & 255) << 16 | (sourceData[sourceOffset] & 255) << 8 | sourceData[sourceOffset + 3] & 255;
break;
}
if(sourcePremultiplied) {
if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
lime_math__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (sourcePixel & 255);
sourcePixel = (lime_math__$RGBA_RGBA_$Impl_$.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math__$RGBA_RGBA_$Impl_$.unmult)] & 255) << 24 | (lime_math__$RGBA_RGBA_$Impl_$.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math__$RGBA_RGBA_$Impl_$.unmult)] & 255) << 16 | (lime_math__$RGBA_RGBA_$Impl_$.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math__$RGBA_RGBA_$Impl_$.unmult)] & 255) << 8 | sourcePixel & 255 & 255;
}
}
if((sourcePixel & 255) == 0) {
destPixel = 0;
} else {
var value = Math.max(0,Math.min(this.__matrix[0] * (sourcePixel >>> 24 & 255) + this.__matrix[1] * (sourcePixel >>> 16 & 255) + this.__matrix[2] * (sourcePixel >>> 8 & 255) + this.__matrix[3] * (sourcePixel & 255) + this.__matrix[4],255)) | 0;
destPixel = (value & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
var value1 = Math.max(0,Math.min(this.__matrix[5] * (sourcePixel >>> 24 & 255) + this.__matrix[6] * (sourcePixel >>> 16 & 255) + this.__matrix[7] * (sourcePixel >>> 8 & 255) + this.__matrix[8] * (sourcePixel & 255) + this.__matrix[9],255)) | 0;
destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
var value2 = Math.max(0,Math.min(this.__matrix[10] * (sourcePixel >>> 24 & 255) + this.__matrix[11] * (sourcePixel >>> 16 & 255) + this.__matrix[12] * (sourcePixel >>> 8 & 255) + this.__matrix[13] * (sourcePixel & 255) + this.__matrix[14],255)) | 0;
destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255;
var value3 = Math.max(0,Math.min(this.__matrix[15] * (sourcePixel >>> 24 & 255) + this.__matrix[16] * (sourcePixel >>> 16 & 255) + this.__matrix[17] * (sourcePixel >>> 8 & 255) + this.__matrix[18] * (sourcePixel & 255) + this.__matrix[19],255)) | 0;
destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255;
}
if(destPremultiplied) {
if((destPixel & 255) == 0) {
if(destPixel != 0) {
destPixel = 0;
}
} else if((destPixel & 255) != 255) {
lime_math__$RGBA_RGBA_$Impl_$.a16 = lime_math__$RGBA_RGBA_$Impl_$.__alpha16[destPixel & 255];
destPixel = ((destPixel >>> 24 & 255) * lime_math__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
}
}
switch(destFormat) {
case 0:
destData[destOffset] = destPixel >>> 24 & 255;
destData[destOffset + 1] = destPixel >>> 16 & 255;
destData[destOffset + 2] = destPixel >>> 8 & 255;
destData[destOffset + 3] = destPixel & 255;
break;
case 1:
destData[destOffset] = destPixel & 255;
destData[destOffset + 1] = destPixel >>> 24 & 255;
destData[destOffset + 2] = destPixel >>> 16 & 255;
destData[destOffset + 3] = destPixel >>> 8 & 255;
break;
case 2:
destData[destOffset] = destPixel >>> 8 & 255;
destData[destOffset + 1] = destPixel >>> 16 & 255;
destData[destOffset + 2] = destPixel >>> 24 & 255;
destData[destOffset + 3] = destPixel & 255;
break;
}
}
}
destBitmapData.image.dirty = true;
return destBitmapData;
}
,__initShader: function(renderer,pass) {
openfl_filters_ColorMatrixFilter.__colorMatrixShader.init(this.get_matrix());
return openfl_filters_ColorMatrixFilter.__colorMatrixShader;
}
,get_matrix: function() {
return this.__matrix;
}
,set_matrix: function(value) {
if(value == null) {
value = [1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0];
}
return this.__matrix = value;
}
,__class__: openfl_filters_ColorMatrixFilter
,__properties__: {set_matrix:"set_matrix",get_matrix:"get_matrix"}
});
var openfl_filters_DropShadowFilter = function(distance,angle,color,alpha,blurX,blurY,strength,quality,inner,knockout,hideObject) {
if(hideObject == null) {
hideObject = false;
}
if(knockout == null) {
knockout = false;
}
if(inner == null) {
inner = false;
}
if(quality == null) {
quality = 1;
}
if(strength == null) {
strength = 1;
}
if(blurY == null) {
blurY = 4;
}
if(blurX == null) {
blurX = 4;
}
if(alpha == null) {
alpha = 1;
}
if(color == null) {
color = 0;
}
if(angle == null) {
angle = 45;
}
if(distance == null) {
distance = 4;
}
openfl_filters_BitmapFilter.call(this);
this.__offsetX = 0;
this.__offsetY = 0;
this.__distance = distance;
this.__angle = angle;
this.__color = color;
this.__alpha = alpha;
this.__blurX = blurX;
this.__blurY = blurY;
this.__strength = strength;
this.__quality = quality;
this.__inner = inner;
this.__knockout = knockout;
this.__hideObject = hideObject;
this.__updateSize();
this.__needSecondBitmapData = true;
this.__preserveObject = !this.__hideObject;
this.__renderDirty = true;
};
$hxClasses["openfl.filters.DropShadowFilter"] = openfl_filters_DropShadowFilter;
openfl_filters_DropShadowFilter.__name__ = ["openfl","filters","DropShadowFilter"];
openfl_filters_DropShadowFilter.__super__ = openfl_filters_BitmapFilter;
openfl_filters_DropShadowFilter.prototype = $extend(openfl_filters_BitmapFilter.prototype,{
__alpha: null
,__angle: null
,__blurX: null
,__blurY: null
,__color: null
,__distance: null
,__hideObject: null
,__inner: null
,__knockout: null
,__offsetX: null
,__offsetY: null
,__quality: null
,__strength: null
,clone: function() {
return new openfl_filters_DropShadowFilter(this.__distance,this.__angle,this.__color,this.__alpha,this.__blurX,this.__blurY,this.__strength,this.__quality,this.__inner,this.__knockout,this.__hideObject);
}
,__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) {
var r = this.__color >> 16 & 255;
var g = this.__color >> 8 & 255;
var b = this.__color & 255;
var point = new openfl_geom_Point(destPoint.x + this.__offsetX,destPoint.y + this.__offsetY);
var finalImage = lime__$internal_graphics_ImageDataUtil.gaussianBlur(bitmapData.image,sourceBitmapData.image,sourceRect.__toLimeRectangle(),point.__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;
}
,__updateSize: function() {
this.__offsetX = this.__distance * Math.cos(this.__angle * Math.PI / 180) | 0;
this.__offsetY = this.__distance * Math.sin(this.__angle * Math.PI / 180) | 0;
this.__topExtension = Math.ceil((this.__offsetY < 0 ? -this.__offsetY : 0) + this.__blurY);
this.__bottomExtension = Math.ceil((this.__offsetY > 0 ? this.__offsetY : 0) + this.__blurY);
this.__leftExtension = Math.ceil((this.__offsetX < 0 ? -this.__offsetX : 0) + this.__blurX);
this.__rightExtension = Math.ceil((this.__offsetX > 0 ? this.__offsetX : 0) + this.__blurX);
}
,get_alpha: function() {
return this.__alpha;
}
,set_alpha: function(value) {
if(value != this.__alpha) {
this.__renderDirty = true;
}
return this.__alpha = value;
}
,get_angle: function() {
return this.__angle;
}
,set_angle: function(value) {
if(value != this.__angle) {
this.__angle = value;
this.__renderDirty = true;
this.__updateSize();
}
return 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_distance: function() {
return this.__distance;
}
,set_distance: function(value) {
if(value != this.__distance) {
this.__distance = value;
this.__renderDirty = true;
this.__updateSize();
}
return value;
}
,get_hideObject: function() {
return this.__hideObject;
}
,set_hideObject: function(value) {
if(value != this.__hideObject) {
this.__renderDirty = true;
this.__preserveObject = !value;
}
return this.__hideObject = value;
}
,get_inner: function() {
return this.__inner;
}
,set_inner: function(value) {
if(value != this.__inner) {
this.__renderDirty = true;
}
return this.__inner = value;
}
,get_knockout: function() {
return this.__knockout;
}
,set_knockout: function(value) {
if(value != this.__knockout) {
this.__renderDirty = true;
}
return this.__knockout = value;
}
,get_quality: function() {
return this.__quality;
}
,set_quality: function(value) {
if(value != this.__quality) {
this.__renderDirty = true;
}
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_DropShadowFilter
,__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_hideObject:"set_hideObject",get_hideObject:"get_hideObject",set_distance:"set_distance",get_distance:"get_distance",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_angle:"set_angle",get_angle:"get_angle",set_alpha:"set_alpha",get_alpha:"get_alpha"}
});
var openfl_filters__$GlowFilter_GlowShader = function() {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "uniform sampler2D openfl_Texture;\n\t\t\n\t\tuniform vec4 uColor;\n\t\t\n\t\tvarying vec2 vBlurCoords[7];\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tfloat a = 0.0;\n\t\t\ta += texture2D(openfl_Texture, vBlurCoords[0]).a * 0.00443;\n\t\t\ta += texture2D(openfl_Texture, vBlurCoords[1]).a * 0.05399;\n\t\t\ta += texture2D(openfl_Texture, vBlurCoords[2]).a * 0.24197;\n\t\t\ta += texture2D(openfl_Texture, vBlurCoords[3]).a * 0.39894;\n\t\t\ta += texture2D(openfl_Texture, vBlurCoords[4]).a * 0.24197;\n\t\t\ta += texture2D(openfl_Texture, vBlurCoords[5]).a * 0.05399;\n\t\t\ta += texture2D(openfl_Texture, vBlurCoords[6]).a * 0.00443;\n\t\t\ta *= uColor.a;\n\t\t\t\n\t\t\tgl_FragColor = vec4(uColor.rgb * a, a);\n\t\t\t\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\t\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\t\n\t\tuniform vec2 uRadius;\n\t\tvarying vec2 vBlurCoords[7];\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\t\n\t\t\tvec2 r = uRadius / openfl_TextureSize;\n\t\t\tvBlurCoords[0] = openfl_TextureCoord - r * 1.0;\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 * 1.0;\n\t\t\t\n\t\t}";
}
openfl_filters_BitmapFilterShader.call(this);
this.uRadius.value = [0,0];
this.uColor.value = [0,0,0,0];
this.__isGenerated = true;
this.__initGL();
};
$hxClasses["openfl.filters._GlowFilter.GlowShader"] = openfl_filters__$GlowFilter_GlowShader;
openfl_filters__$GlowFilter_GlowShader.__name__ = ["openfl","filters","_GlowFilter","GlowShader"];
openfl_filters__$GlowFilter_GlowShader.__super__ = openfl_filters_BitmapFilterShader;
openfl_filters__$GlowFilter_GlowShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{
uRadius: null
,uColor: null
,__class__: openfl_filters__$GlowFilter_GlowShader
});
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.set_blurX(blurX);
this.set_blurY(blurY);
this.__strength = strength;
this.set_quality(quality);
this.__inner = inner;
this.__knockout = knockout;
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) {
if(pass <= this.__horizontalPasses) {
var scale = Math.pow(0.5,pass >> 1);
openfl_filters_GlowFilter.__glowShader.uRadius.value[0] = this.get_blurX() * scale;
openfl_filters_GlowFilter.__glowShader.uRadius.value[1] = 0;
} else {
var scale1 = Math.pow(0.5,pass - this.__horizontalPasses >> 1);
openfl_filters_GlowFilter.__glowShader.uRadius.value[0] = 0;
openfl_filters_GlowFilter.__glowShader.uRadius.value[1] = this.get_blurY() * scale1;
}
openfl_filters_GlowFilter.__glowShader.uColor.value[0] = (this.get_color() >> 16 & 255) / 255;
openfl_filters_GlowFilter.__glowShader.uColor.value[1] = (this.get_color() >> 8 & 255) / 255;
openfl_filters_GlowFilter.__glowShader.uColor.value[2] = (this.get_color() & 255) / 255;
openfl_filters_GlowFilter.__glowShader.uColor.value[3] = this.get_alpha() * (this.__strength / this.__numShaderPasses);
return openfl_filters_GlowFilter.__glowShader;
}
,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.__leftExtension = value > 0 ? Math.ceil(value * 1.5) : 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 * 1.5) : 0;
this.__bottomExtension = this.__topExtension;
}
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;
}
return this.__inner = value;
}
,get_knockout: function() {
return this.__knockout;
}
,set_knockout: function(value) {
if(value != this.__knockout) {
this.__renderDirty = true;
}
return this.__knockout = 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;
}
,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_geom_Matrix3D = function(v) {
if(v != null && v.get_length() == 16) {
this.rawData = v.concat(null);
} else {
this.rawData = openfl__$Vector_Vector_$Impl_$.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_Vector_$Impl_$.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_Vector_$Impl_$.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_Vector_$Impl_$.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 tx;
var ty;
var tz = 0;
ty = tz;
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_Vector_$Impl_$.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 _g1 = this.rawData;
_g1.set(13,_g1.get(13) + y);
var _g2 = this.rawData;
_g2.set(14,_g2.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 _g1 = 0;
var _g = length;
while(_g1 < _g) {
var i = _g1++;
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 _g1 = 0;
var _g = this.rawData.get_length();
while(_g1 < _g) {
var i = _g1++;
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_Vector_$Impl_$.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 _g1 = mr;
_g1.set(1,_g1.get(1) / scale.x);
var _g2 = mr;
_g2.set(2,_g2.get(2) / scale.x);
var _g3 = mr;
_g3.set(4,_g3.get(4) / scale.y);
var _g4 = mr;
_g4.set(5,_g4.get(5) / scale.y);
var _g5 = mr;
_g5.set(6,_g5.get(6) / scale.y);
var _g6 = mr;
_g6.set(8,_g6.get(8) / scale.z);
var _g7 = mr;
_g7.set(9,_g7.get(9) / scale.z);
var _g8 = mr;
_g8.set(10,_g8.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) + this.rawData.get(3),x * this.rawData.get(1) + y * this.rawData.get(5) + z * this.rawData.get(9) + this.rawData.get(7),x * this.rawData.get(2) + y * this.rawData.get(6) + z * this.rawData.get(10) + this.rawData.get(11),0);
}
,identity: function() {
this.rawData = openfl__$Vector_Vector_$Impl_$.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();
var right;
dir.normalize();
vup.normalize();
var dir2 = dir.clone();
dir2.scaleBy(vup.dotProduct(dir));
vup = vup.subtract(dir2);
if(vup.get_length() > 0) {
vup.normalize();
} else if(dir.x != 0) {
vup = new openfl_geom_Vector3D(-dir.y,dir.x,0);
} else {
vup = new openfl_geom_Vector3D(1,0,0);
}
right = vup.crossProduct(dir);
right.normalize();
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 tx;
var ty;
var tz = 0;
ty = tz;
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_Vector_$Impl_$.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(components.get_length() < 3 || components.get(2).x == 0 || components.get(2).y == 0 || components.get(2).z == 0) {
return false;
}
if(orientationStyle == null) {
orientationStyle = 1;
}
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 == null) {
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);
} else 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 x1 = components.get(1).x;
var y1 = components.get(1).y;
var z1 = components.get(1).z;
var w1 = components.get(1).w;
if(orientationStyle == 0) {
x1 *= Math.sin(w1 / 2);
y1 *= Math.sin(w1 / 2);
z1 *= Math.sin(w1 / 2);
w1 = Math.cos(w1 / 2);
}
this.rawData.set(0,(1 - 2 * y1 * y1 - 2 * z1 * z1) * scale[0]);
this.rawData.set(1,(2 * x1 * y1 + 2 * w1 * z1) * scale[1]);
this.rawData.set(2,(2 * x1 * z1 - 2 * w1 * y1) * scale[2]);
this.rawData.set(3,0);
this.rawData.set(4,(2 * x1 * y1 - 2 * w1 * z1) * scale[4]);
this.rawData.set(5,(1 - 2 * x1 * x1 - 2 * z1 * z1) * scale[5]);
this.rawData.set(6,(2 * y1 * z1 + 2 * w1 * x1) * scale[6]);
this.rawData.set(7,0);
this.rawData.set(8,(2 * x1 * z1 + 2 * w1 * y1) * scale[8]);
this.rawData.set(9,(2 * y1 * z1 - 2 * w1 * x1) * scale[9]);
this.rawData.set(10,(1 - 2 * x1 * x1 - 2 * y1 * y1) * 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_Orientation3D_$Impl_$ = {};
$hxClasses["openfl.geom._Orientation3D.Orientation3D_Impl_"] = openfl_geom__$Orientation3D_Orientation3D_$Impl_$;
openfl_geom__$Orientation3D_Orientation3D_$Impl_$.__name__ = ["openfl","geom","_Orientation3D","Orientation3D_Impl_"];
openfl_geom__$Orientation3D_Orientation3D_$Impl_$.fromString = function(value) {
switch(value) {
case "axisAngle":
return 0;
case "eulerAngles":
return 1;
case "quaternion":
return 2;
default:
return null;
}
};
openfl_geom__$Orientation3D_Orientation3D_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "axisAngle";
case 1:
return "eulerAngles";
case 2:
return "quaternion";
default:
return null;
}
};
var openfl_geom_Transform = function(displayObject) {
this.__colorTransform = new openfl_geom_ColorTransform();
this.concatenatedColorTransform = new openfl_geom_ColorTransform();
this.pixelBounds = new openfl_geom_Rectangle();
this.__displayObject = displayObject;
this.__hasMatrix = true;
};
$hxClasses["openfl.geom.Transform"] = openfl_geom_Transform;
openfl_geom_Transform.__name__ = ["openfl","geom","Transform"];
openfl_geom_Transform.prototype = {
concatenatedColorTransform: null
,pixelBounds: null
,__colorTransform: null
,__displayObject: null
,__hasMatrix: null
,__hasMatrix3D: null
,get_colorTransform: function() {
return this.__colorTransform;
}
,set_colorTransform: function(value) {
if(!this.__colorTransform.__equals(value,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_Vector_$Impl_$.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(5),value.rawData.get(6),value.rawData.get(12),value.rawData.get(13));
return value;
}
,__setTransform: function(a,b,c,d,tx,ty) {
if(this.__displayObject != null) {
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 = a;
} 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);
}
this.__displayObject.__transform.a = a;
this.__displayObject.__transform.b = b;
this.__displayObject.__transform.c = c;
this.__displayObject.__transform.d = d;
this.__displayObject.__transform.tx = tx;
this.__displayObject.__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_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");
var tmp;
if(defaultLibrary != null) {
var key = this.url;
var _this = defaultLibrary.cachedAudioBuffers;
if(__map_reserved[key] != null) {
tmp = _this.existsReserved(key);
} else {
tmp = _this.h.hasOwnProperty(key);
}
} else {
tmp = false;
}
if(tmp) {
var key1 = this.url;
var _this1 = defaultLibrary.cachedAudioBuffers;
this.AudioBuffer_onURLLoad(__map_reserved[key1] != null ? _this1.getReserved(key1) : _this1.h[key1]);
} 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_UInt_$Impl_$.gt(openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(bytes),bytesLength)) {
var this1 = new openfl_utils_ByteArrayData(bytesLength);
var copy = this1;
copy.writeBytes(bytes,0,bytesLength);
bytes = copy;
}
this.__buffer = lime_media_AudioBuffer.fromBytes(openfl_utils__$ByteArray_ByteArray_$Impl_$.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 audioBuffer = new lime_media_AudioBuffer();
audioBuffer.bitsPerSample = format == "float" ? 32 : 16;
audioBuffer.channels = stereo ? 2 : 1;
var buffer = openfl_utils__$ByteArray_ByteArray_$Impl_$.toArrayBuffer(bytes);
var this1;
if(buffer != null) {
this1 = new Uint8Array(buffer,0);
} 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 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.__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_net_NetConnection = function() {
openfl_events_EventDispatcher.call(this);
};
$hxClasses["openfl.net.NetConnection"] = openfl_net_NetConnection;
openfl_net_NetConnection.__name__ = ["openfl","net","NetConnection"];
openfl_net_NetConnection.__super__ = openfl_events_EventDispatcher;
openfl_net_NetConnection.prototype = $extend(openfl_events_EventDispatcher.prototype,{
connect: function(command,_,_1,_2,_3,_4) {
if(command != null) {
throw new js__$Boot_HaxeError("Error: Can only connect in \"HTTP streaming\" mode");
}
this.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,true,{ code : "NetConnection.Connect.Success"}));
}
,__class__: openfl_net_NetConnection
});
var openfl_net_NetStream = function(connection,peerID) {
openfl_events_EventDispatcher.call(this);
this.__connection = connection;
this.__video = window.document.createElement("video");
this.__video.setAttribute("playsinline","");
this.__video.setAttribute("webkit-playsinline","");
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
,soundTransform: null
,time: null
,videoCode: null
,__closed: null
,__connection: null
,__timer: null
,__seeking: 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,_,_1,_2,_3,_4) {
if(this.__video == null) {
return;
}
this.__video.src = 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.set___seeking(true);
this.__connection.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,false,{ code : "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();
}
}
,__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( e ) {
haxe_CallStack.lastException = e;
}
}
}
,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.__connection.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,false,{ code : "NetStream.Play.Stop"}));
this.__connection.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,false,{ code : "NetStream.Play.Complete"}));
this.__playStatus("NetStream.Play.Complete");
}
,video_onError: function(event) {
this.__connection.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,false,{ code : "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( e ) {
haxe_CallStack.lastException = e;
}
}
}
,video_onLoadStart: function(event) {
this.__playStatus("NetStream.Play.loadstart");
}
,video_onPause: function(event) {
this.__playStatus("NetStream.Play.pause");
}
,video_onPlaying: function(event) {
this.__connection.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,false,{ code : "NetStream.Play.Start"}));
this.__playStatus("NetStream.Play.playing");
}
,video_onSeeking: function(event) {
this.__playStatus("NetStream.Play.seeking");
this.__connection.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,false,{ code : "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_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;
}
}
,get___seeking: function() {
if(!this.__seeking) {
return this.__video.seeking;
} else {
return true;
}
}
,set___seeking: function(value) {
return this.__seeking = value;
}
,__class__: openfl_net_NetStream
,__properties__: {set___seeking:"set___seeking",get___seeking:"get___seeking",set_speed:"set_speed",get_speed:"get_speed"}
});
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 js__$Boot_HaxeError(new openfl_errors_Error("Error #2134: Cannot create SharedObject."));
}
if(localPath == null) {
localPath = window.location.href;
}
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;
var _this = openfl_net_SharedObject.__sharedObjects;
if(!(__map_reserved[id] != null ? _this.existsReserved(id) : _this.h.hasOwnProperty(id))) {
var sharedObject = new openfl_net_SharedObject();
sharedObject.data = { };
sharedObject.__localPath = localPath;
sharedObject.__name = name;
var encodedData = null;
try {
var storage = js_Browser.getLocalStorage();
if(storage != null) {
encodedData = storage.getItem(localPath + ":" + name);
}
} catch( e ) {
haxe_CallStack.lastException = e;
}
if(encodedData != null && encodedData != "") {
try {
var unserializer = new haxe_Unserializer(encodedData);
unserializer.setResolver({ resolveEnum : Type.resolveEnum, resolveClass : openfl_net_SharedObject.__resolveClass});
sharedObject.data = unserializer.unserialize();
} catch( e1 ) {
haxe_CallStack.lastException = e1;
}
}
var _this1 = openfl_net_SharedObject.__sharedObjects;
if(__map_reserved[id] != null) {
_this1.setReserved(id,sharedObject);
} else {
_this1.h[id] = sharedObject;
}
}
var _this2 = openfl_net_SharedObject.__sharedObjects;
if(__map_reserved[id] != null) {
return _this2.getReserved(id);
} else {
return _this2.h[id];
}
};
openfl_net_SharedObject.getRemote = function(name,remotePath,persistence,secure) {
if(secure == null) {
secure = false;
}
if(persistence == null) {
persistence = false;
}
openfl__$internal_Lib.notImplemented({ fileName : "SharedObject.hx", lineNumber : 671, 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 _g1 = 0;
var _g = split.length - 1;
while(_g1 < _g) {
var i = _g1++;
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(StringTools.startsWith(name,"neash.")) {
name = StringTools.replace(name,"neash.","openfl.");
}
if(StringTools.startsWith(name,"native.")) {
name = StringTools.replace(name,"native.","openfl.");
}
if(StringTools.startsWith(name,"flash.")) {
name = StringTools.replace(name,"flash.","openfl.");
}
if(StringTools.startsWith(name,"openfl._v2.")) {
name = StringTools.replace(name,"openfl._v2.","openfl.");
}
if(StringTools.startsWith(name,"openfl._legacy.")) {
name = StringTools.replace(name,"openfl._legacy.","openfl.");
}
return Type.resolveClass(name);
}
return null;
};
openfl_net_SharedObject.application_onExit = function(_) {
var _this = openfl_net_SharedObject.__sharedObjects;
var sharedObject = new haxe_ds__$StringMap_StringMapIterator(_this,_this.arrayKeys());
while(sharedObject.hasNext()) {
var sharedObject1 = sharedObject.next();
sharedObject1.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( e ) {
haxe_CallStack.lastException = e;
}
}
,close: function() {
}
,connect: function(myConnection,params) {
openfl__$internal_Lib.notImplemented({ fileName : "SharedObject.hx", lineNumber : 293, 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( e ) {
haxe_CallStack.lastException = e;
return 1;
}
return 0;
}
,send: function(args) {
openfl__$internal_Lib.notImplemented({ fileName : "SharedObject.hx", lineNumber : 680, 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( e ) {
haxe_CallStack.lastException = e;
return 0;
}
}
,__class__: openfl_net_SharedObject
,__properties__: {get_size:"get_size"}
});
var openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$ = {};
$hxClasses["openfl.net._SharedObjectFlushStatus.SharedObjectFlushStatus_Impl_"] = openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$;
openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.__name__ = ["openfl","net","_SharedObjectFlushStatus","SharedObjectFlushStatus_Impl_"];
openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.fromString = function(value) {
switch(value) {
case "flushed":
return 0;
case "pending":
return 1;
default:
return null;
}
};
openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "flushed";
case 1:
return "pending";
default:
return null;
}
};
var openfl_net_URLLoader = function(request) {
openfl_events_EventDispatcher.call(this);
this.bytesLoaded = 0;
this.bytesTotal = 0;
this.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;
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 httpRequest1 = new lime_net__$HTTPRequest_$String();
this.__prepareRequest(httpRequest1,request);
httpRequest1.load().onProgress($bind(this,this.httpRequest_onProgress)).onError($bind(this,this.httpRequest_onError)).onComplete(function(data1) {
_gthis.__dispatchStatus();
_gthis.data = data1;
var event1 = new openfl_events_Event("complete");
_gthis.dispatchEvent(event1);
});
}
}
,__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;
var _g = request.method;
var tmp;
switch(_g) {
case "DELETE":
tmp = "DELETE";
break;
case "HEAD":
tmp = "HEAD";
break;
case "OPTIONS":
tmp = "OPTIONS";
break;
case "POST":
tmp = "POST";
break;
case "PUT":
tmp = "PUT";
break;
default:
tmp = "GET";
}
this.__httpRequest.method = tmp;
if(request.data != null) {
if(Type["typeof"](request.data) == ValueType.TObject) {
var fields = Reflect.fields(request.data);
var _g1 = 0;
while(_g1 < fields.length) {
var field = fields[_g1];
++_g1;
var _this = this.__httpRequest.formData;
var value = Reflect.field(request.data,field);
if(__map_reserved[field] != null) {
_this.setReserved(field,value);
} else {
_this.h[field] = value;
}
}
} else if(js_Boot.__instanceof(request.data,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 _g11 = 0;
var _g2 = request.requestHeaders;
while(_g11 < _g2.length) {
var header = _g2[_g11];
++_g11;
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.withCredentials = 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 event1 = new openfl_events_IOErrorEvent("ioError");
event1.text = Std.string(error);
this.dispatchEvent(event1);
}
}
,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_URLLoaderDataFormat_$Impl_$ = {};
$hxClasses["openfl.net._URLLoaderDataFormat.URLLoaderDataFormat_Impl_"] = openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$;
openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.__name__ = ["openfl","net","_URLLoaderDataFormat","URLLoaderDataFormat_Impl_"];
openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.fromString = function(value) {
switch(value) {
case "binary":
return 0;
case "text":
return 1;
case "variables":
return 2;
default:
return null;
}
};
openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "binary";
case 1:
return "text";
case 2:
return "variables";
default:
return null;
}
};
var openfl_net_URLRequest = function(url) {
if(url != null) {
this.url = url;
}
this.contentType = null;
this.followRedirects = openfl_net_URLRequestDefaults.followRedirects;
this.idleTimeout = openfl_net_URLRequestDefaults.idleTimeout > 0 ? openfl_net_URLRequestDefaults.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_net__$URLVariables_URLVariables_$Impl_$ = {};
$hxClasses["openfl.net._URLVariables.URLVariables_Impl_"] = openfl_net__$URLVariables_URLVariables_$Impl_$;
openfl_net__$URLVariables_URLVariables_$Impl_$.__name__ = ["openfl","net","_URLVariables","URLVariables_Impl_"];
openfl_net__$URLVariables_URLVariables_$Impl_$._new = function(source) {
var this1 = { };
if(source != null) {
openfl_net__$URLVariables_URLVariables_$Impl_$.decode(this1,source);
}
return this1;
};
openfl_net__$URLVariables_URLVariables_$Impl_$.decode = function(this1,source) {
var fields = Reflect.fields(this1);
var _g = 0;
while(_g < fields.length) {
var f = fields[_g];
++_g;
Reflect.deleteField(this1,f);
}
var fields1 = source.split(";").join("&").split("&");
var _g1 = 0;
while(_g1 < fields1.length) {
var f1 = fields1[_g1];
++_g1;
var eq = f1.indexOf("=");
if(eq > 0) {
var s = HxOverrides.substr(f1,0,eq);
var field = decodeURIComponent(s.split("+").join(" "));
var s1 = HxOverrides.substr(f1,eq + 1,null);
this1[field] = decodeURIComponent(s1.split("+").join(" "));
} else if(eq != 0) {
this1[decodeURIComponent(f1.split("+").join(" "))] = "";
}
}
};
openfl_net__$URLVariables_URLVariables_$Impl_$.toString = function(this1) {
var result = [];
var fields = Reflect.fields(this1);
var _g = 0;
while(_g < fields.length) {
var f = fields[_g];
++_g;
var tmp = encodeURIComponent(f) + "=";
var s = Reflect.field(this1,f);
result.push(tmp + encodeURIComponent(s));
}
return result.join("&");
};
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 js__$Boot_HaxeError(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 Type.resolveClass(name);
}
,hasDefinition: function(name) {
return Type.resolveClass(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.exit = function(code) {
lime_system_System.exit(code);
};
openfl_system_System.gc = function() {
};
openfl_system_System.pause = function() {
openfl__$internal_Lib.notImplemented({ fileName : "System.hx", lineNumber : 176, className : "openfl.system.System", methodName : "pause"});
};
openfl_system_System.resume = function() {
openfl__$internal_Lib.notImplemented({ fileName : "System.hx", lineNumber : 193, 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_AntiAliasType_$Impl_$ = {};
$hxClasses["openfl.text._AntiAliasType.AntiAliasType_Impl_"] = openfl_text__$AntiAliasType_AntiAliasType_$Impl_$;
openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.__name__ = ["openfl","text","_AntiAliasType","AntiAliasType_Impl_"];
openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.fromString = function(value) {
switch(value) {
case "advanced":
return 0;
case "normal":
return 1;
default:
return null;
}
};
openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "advanced";
case 1:
return "normal";
default:
return null;
}
};
var openfl_text__$FontStyle_FontStyle_$Impl_$ = {};
$hxClasses["openfl.text._FontStyle.FontStyle_Impl_"] = openfl_text__$FontStyle_FontStyle_$Impl_$;
openfl_text__$FontStyle_FontStyle_$Impl_$.__name__ = ["openfl","text","_FontStyle","FontStyle_Impl_"];
openfl_text__$FontStyle_FontStyle_$Impl_$.fromString = function(value) {
switch(value) {
case "bold":
return 0;
case "boldItalic":
return 1;
case "italic":
return 2;
case "regular":
return 3;
default:
return null;
}
};
openfl_text__$FontStyle_FontStyle_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "bold";
case 1:
return "boldItalic";
case 2:
return "italic";
case 3:
return "regular";
default:
return null;
}
};
var openfl_text__$FontType_FontType_$Impl_$ = {};
$hxClasses["openfl.text._FontType.FontType_Impl_"] = openfl_text__$FontType_FontType_$Impl_$;
openfl_text__$FontType_FontType_$Impl_$.__name__ = ["openfl","text","_FontType","FontType_Impl_"];
openfl_text__$FontType_FontType_$Impl_$.fromString = function(value) {
switch(value) {
case "device":
return 0;
case "embedded":
return 1;
case "embeddedCFF":
return 2;
default:
return null;
}
};
openfl_text__$FontType_FontType_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "device";
case 1:
return "embedded";
case 2:
return "embeddedCFF";
default:
return null;
}
};
var openfl_text__$GridFitType_GridFitType_$Impl_$ = {};
$hxClasses["openfl.text._GridFitType.GridFitType_Impl_"] = openfl_text__$GridFitType_GridFitType_$Impl_$;
openfl_text__$GridFitType_GridFitType_$Impl_$.__name__ = ["openfl","text","_GridFitType","GridFitType_Impl_"];
openfl_text__$GridFitType_GridFitType_$Impl_$.fromString = function(value) {
switch(value) {
case "none":
return 0;
case "pixel":
return 1;
case "subpixel":
return 2;
default:
return null;
}
};
openfl_text__$GridFitType_GridFitType_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "none";
case 1:
return "pixel";
case 2:
return "subpixel";
default:
return null;
}
};
var openfl_text_StaticText = function() {
openfl_display_DisplayObject.call(this);
this.__graphics = new openfl_display_Graphics(this);
};
$hxClasses["openfl.text.StaticText"] = openfl_text_StaticText;
openfl_text_StaticText.__name__ = ["openfl","text","StaticText"];
openfl_text_StaticText.__super__ = openfl_display_DisplayObject;
openfl_text_StaticText.prototype = $extend(openfl_display_DisplayObject.prototype,{
text: null
,__class__: openfl_text_StaticText
});
var openfl_text_TextField = function() {
this.__forceCachedBitmapUpdate = false;
this.__renderedOnCanvasWhileOnDOM = false;
openfl_display_InteractiveObject.call(this);
this.__caretIndex = -1;
this.__displayAsPassword = false;
this.__graphics = new openfl_display_Graphics(this);
this.__textEngine = new openfl__$internal_text_TextEngine(this);
this.__layoutDirty = true;
this.__offsetX = 0;
this.__offsetY = 0;
this.__mouseWheelEnabled = true;
this.__text = "";
if(openfl_text_TextField.__defaultTextFormat == null) {
openfl_text_TextField.__defaultTextFormat = new openfl_text_TextFormat("Times New Roman",12,0,false,false,false,"","",3,0,0,0,0);
openfl_text_TextField.__defaultTextFormat.blockIndent = 0;
openfl_text_TextField.__defaultTextFormat.bullet = false;
openfl_text_TextField.__defaultTextFormat.letterSpacing = 0;
openfl_text_TextField.__defaultTextFormat.kerning = false;
}
this.__textFormat = openfl_text_TextField.__defaultTextFormat.clone();
this.__textEngine.textFormatRanges.push(new openfl__$internal_text_TextFormatRange(this.__textFormat,0,0));
this.addEventListener("mouseDown",$bind(this,this.this_onMouseDown));
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));
};
$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,{
__bounds: null
,__caretIndex: null
,__cursorTimer: null
,__dirty: null
,__displayAsPassword: null
,__domRender: null
,__inputEnabled: null
,__isHTML: null
,__layoutDirty: null
,__mouseWheelEnabled: null
,__offsetX: null
,__offsetY: null
,__selectionIndex: null
,__showCursor: null
,__symbol: null
,__text: null
,__htmlText: null
,__textEngine: null
,__textFormat: null
,__div: null
,__renderedOnCanvasWhileOnDOM: null
,__rawHtmlText: 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(lime_text__$UTF8String_UTF8String_$Impl_$.plus(this.__text,text));
this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
this.__updateScrollH();
}
,getCharBoundaries: function(charIndex) {
if(charIndex < 0 || charIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text) - 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 _g1 = 0;
var _g = this.get_scrollV() - 1;
while(_g1 < _g) {
var i = _g1++;
y += this.__textEngine.lineHeights.get(i);
}
var _g2 = 0;
var _g11 = this.__textEngine.layoutGroups;
while(_g2 < _g11.get_length()) {
var group = _g11.get(_g2);
++_g2;
if(y >= group.offsetY && y <= group.offsetY + group.height) {
if(x >= group.offsetX && x <= group.offsetX + group.width) {
var advance = 0.0;
var _g3 = 0;
var _g21 = group.positions.length;
while(_g3 < _g21) {
var i1 = _g3++;
advance += group.positions[i1];
if(x <= group.offsetX + advance) {
return group.startIndex + i1;
}
}
return group.endIndex;
}
}
}
return -1;
}
,getFirstCharInParagraph: function(charIndex) {
if(charIndex < 0 || charIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text())) {
return -1;
}
var index = this.__textEngine.getLineBreakIndex();
var startIndex = 0;
while(index > -1) {
if(index < charIndex) {
startIndex = index + 1;
} else if(index >= charIndex) {
break;
}
index = this.__textEngine.getLineBreakIndex(index + 1);
}
return startIndex;
}
,getLineIndexAtPoint: function(x,y) {
this.__updateLayout();
if(x <= 2 || x > this.get_width() + 4 || y <= 0 || y > this.get_height() + 4) {
return -1;
}
var _g1 = 0;
var _g = this.get_scrollV() - 1;
while(_g1 < _g) {
var i = _g1++;
y += this.__textEngine.lineHeights.get(i);
}
var _g2 = 0;
var _g11 = this.__textEngine.layoutGroups;
while(_g2 < _g11.get_length()) {
var group = _g11.get(_g2);
++_g2;
if(y >= group.offsetY && y <= group.offsetY + group.height) {
return group.lineIndex;
}
}
return -1;
}
,getLineIndexOfChar: function(charIndex) {
if(charIndex < 0 || charIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text)) {
return -1;
}
this.__updateLayout();
var _g = 0;
var _g1 = this.__textEngine.layoutGroups;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
if(group.startIndex <= charIndex && group.endIndex >= charIndex) {
return group.lineIndex;
}
}
return -1;
}
,getLineLength: function(lineIndex) {
this.__updateLayout();
if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
return 0;
}
var startIndex = -1;
var endIndex = -1;
var _g = 0;
var _g1 = this.__textEngine.layoutGroups;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
if(group.lineIndex == lineIndex) {
if(startIndex == -1) {
startIndex = group.startIndex;
}
} else if(group.lineIndex == lineIndex + 1) {
endIndex = group.startIndex;
break;
}
}
if(endIndex == -1) {
endIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
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;
var _g = this.__textFormat.align;
switch(_g) {
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 _g = 0;
var _g1 = this.__textEngine.layoutGroups;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
if(group.lineIndex == lineIndex) {
return group.startIndex;
}
}
return 0;
}
,getLineText: function(lineIndex) {
this.__updateLayout();
if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
return null;
}
var startIndex = -1;
var endIndex = -1;
var _g = 0;
var _g1 = this.__textEngine.layoutGroups;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
if(group.lineIndex == lineIndex) {
if(startIndex == -1) {
startIndex = group.startIndex;
}
} else if(group.lineIndex == lineIndex + 1) {
endIndex = group.startIndex;
break;
}
}
if(endIndex == -1) {
endIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
return lime_text__$UTF8String_UTF8String_$Impl_$.substring(this.__textEngine.text,startIndex,endIndex);
}
,getParagraphLength: function(charIndex) {
if(charIndex < 0 || charIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text())) {
return -1;
}
var startIndex = this.getFirstCharInParagraph(charIndex);
if(charIndex >= lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text())) {
return lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text()) - startIndex + 1;
}
var endIndex = this.__textEngine.getLineBreakIndex(charIndex) + 1;
if(endIndex == 0) {
endIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
return endIndex - startIndex;
}
,getTextFormat: function(beginIndex,endIndex) {
if(endIndex == null) {
endIndex = -1;
}
if(beginIndex == null) {
beginIndex = -1;
}
var format = null;
if(beginIndex >= lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text()) || beginIndex < -1 || endIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text()) || endIndex < -1) {
throw new js__$Boot_HaxeError(new openfl_errors_RangeError("The supplied index is out of bounds"));
}
if(beginIndex == -1) {
beginIndex = 0;
}
if(endIndex == -1) {
endIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text());
}
if(beginIndex >= endIndex) {
return new openfl_text_TextFormat();
}
var _g = 0;
var _g1 = this.__textEngine.textFormatRanges;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
if(group.start <= beginIndex && group.end > beginIndex || group.start < endIndex && group.end >= endIndex) {
if(format == null) {
format = group.format.clone();
} else {
if(group.format.font != format.font) {
format.font = null;
}
if(group.format.size != format.size) {
format.size = null;
}
if(group.format.color != format.color) {
format.color = null;
}
if(group.format.bold != format.bold) {
format.bold = null;
}
if(group.format.italic != format.italic) {
format.italic = null;
}
if(group.format.underline != format.underline) {
format.underline = null;
}
if(group.format.url != format.url) {
format.url = null;
}
if(group.format.target != format.target) {
format.target = null;
}
if(group.format.align != format.align) {
format.align = null;
}
if(group.format.leftMargin != format.leftMargin) {
format.leftMargin = null;
}
if(group.format.rightMargin != format.rightMargin) {
format.rightMargin = null;
}
if(group.format.indent != format.indent) {
format.indent = null;
}
if(group.format.leading != format.leading) {
format.leading = null;
}
if(group.format.blockIndent != format.blockIndent) {
format.blockIndent = null;
}
if(group.format.bullet != format.bullet) {
format.bullet = null;
}
if(group.format.kerning != format.kerning) {
format.kerning = null;
}
if(group.format.letterSpacing != format.letterSpacing) {
format.letterSpacing = null;
}
if(group.format.tabStops != format.tabStops) {
format.tabStops = null;
}
}
}
}
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.__stopCursorTimer();
this.__startCursorTimer();
}
,setTextFormat: function(format,beginIndex,endIndex) {
if(endIndex == null) {
endIndex = 0;
}
if(beginIndex == null) {
beginIndex = 0;
}
var max = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text());
var range;
if(beginIndex < 0) {
beginIndex = 0;
}
if(endIndex < 0) {
endIndex = 0;
}
if(endIndex == 0) {
if(beginIndex == 0) {
endIndex = max;
} else {
endIndex = beginIndex + 1;
}
}
if(endIndex < beginIndex) {
return;
}
if(beginIndex == 0 && endIndex >= max) {
this.__textFormat.__merge(format);
var _g1 = 0;
var _g = this.__textEngine.textFormatRanges.get_length();
while(_g1 < _g) {
var i = _g1++;
range = this.__textEngine.textFormatRanges.get(i);
range.format.__merge(this.__textFormat);
}
} else {
var index = this.__textEngine.textFormatRanges.get_length();
var searchIndex;
while(index > 0) {
--index;
range = this.__textEngine.textFormatRanges.get(index);
if(range.start == beginIndex && range.end == endIndex) {
range.format = this.__textFormat.clone();
range.format.__merge(format);
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
return;
}
if(range.start >= beginIndex && range.end <= endIndex) {
searchIndex = this.__textEngine.textFormatRanges.indexOf(range,0);
if(searchIndex > -1) {
this.__textEngine.textFormatRanges.splice(searchIndex,1);
}
}
}
var prevRange = null;
var nextRange = null;
if(beginIndex > 0) {
var _g11 = 0;
var _g2 = this.__textEngine.textFormatRanges.get_length();
while(_g11 < _g2) {
var i1 = _g11++;
range = this.__textEngine.textFormatRanges.get(i1);
if(range.end >= beginIndex) {
prevRange = range;
break;
}
}
}
if(endIndex < max) {
var ni = this.__textEngine.textFormatRanges.get_length();
while(--ni >= 0) {
range = this.__textEngine.textFormatRanges.get(ni);
if(range.start <= endIndex) {
nextRange = range;
break;
}
}
}
if(nextRange == prevRange) {
nextRange = new openfl__$internal_text_TextFormatRange(nextRange.format.clone(),nextRange.start,nextRange.end);
this.__textEngine.textFormatRanges.push(nextRange);
}
if(prevRange != null) {
prevRange.end = beginIndex;
}
if(nextRange != null) {
nextRange.start = endIndex;
}
var textFormat = this.__textFormat.clone();
textFormat.__merge(format);
this.__textEngine.textFormatRanges.push(new openfl__$internal_text_TextFormatRange(textFormat,beginIndex,endIndex));
this.__textEngine.textFormatRanges.sort(function(a,b) {
if(a.start < b.start || a.end < b.end) {
return -1;
} else if(a.start > b.start || a.end > b.end) {
return 1;
}
return 0;
});
}
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
,__allowMouseFocus: function() {
if(!(this.__textEngine.type == 1 || this.get_tabEnabled())) {
return this.get_selectable();
} else {
return true;
}
}
,__caretBeginningOfLine: function() {
if(this.__selectionIndex == this.__caretIndex || this.__caretIndex < this.__selectionIndex) {
this.__caretIndex = this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex));
} else {
this.__selectionIndex = this.getLineOffset(this.getLineIndexOfChar(this.__selectionIndex));
}
}
,__caretEndOfLine: function() {
var lineIndex;
if(this.__selectionIndex == this.__caretIndex) {
lineIndex = this.getLineIndexOfChar(this.__caretIndex);
} else {
lineIndex = this.getLineIndexOfChar(Math.max(this.__caretIndex,this.__selectionIndex) | 0);
}
if(lineIndex < this.__textEngine.numLines - 1) {
this.__caretIndex = this.getLineOffset(lineIndex + 1) - 1;
} else {
this.__caretIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
}
,__caretNextCharacter: function() {
if(this.__caretIndex < lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text)) {
this.__caretIndex++;
}
}
,__caretNextLine: function(lineIndex,caretIndex) {
if(lineIndex == null) {
lineIndex = this.getLineIndexOfChar(this.__caretIndex);
}
if(lineIndex < this.__textEngine.numLines - 1) {
if(caretIndex == null) {
caretIndex = this.__caretIndex;
}
this.__caretIndex = this.__getCharIndexOnDifferentLine(caretIndex,lineIndex + 1);
} else {
this.__caretIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
}
,__caretPreviousCharacter: function() {
if(this.__caretIndex > 0) {
this.__caretIndex--;
}
}
,__caretPreviousLine: function(lineIndex,caretIndex) {
if(lineIndex == null) {
lineIndex = this.getLineIndexOfChar(this.__caretIndex);
}
if(lineIndex > 0) {
if(caretIndex == null) {
caretIndex = this.__caretIndex;
}
this.__caretIndex = this.__getCharIndexOnDifferentLine(caretIndex,lineIndex - 1);
} else {
this.__caretIndex = 0;
}
}
,__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",false,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) {
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.__startCursorTimer();
}
}
}
,__fromSymbol: function(swf,symbol) {
this.__symbol = symbol;
this.set_width(symbol.width);
this.set_height(symbol.height);
this.__offsetX = symbol.x;
this.__offsetY = symbol.y;
this.set_multiline(symbol.multiline);
this.set_wordWrap(symbol.wordWrap);
this.set_displayAsPassword(symbol.password);
if(symbol.border) {
this.set_border(true);
this.set_background(true);
}
this.set_selectable(symbol.selectable);
if(symbol.input) {
this.set_type(1);
}
var format = new openfl_text_TextFormat();
if(symbol.color != null) {
format.color = symbol.color & 16777215;
}
format.size = Math.round(symbol.fontHeight / 20);
var font = swf.symbols.h[symbol.fontID];
if(font != null) {
format.__ascent = font.ascent / 20 / 1024;
format.__descent = font.descent / 20 / 1024;
}
format.font = symbol.fontName;
var found = false;
var _g = format.font;
if(_g == null) {
found = true;
} else {
switch(_g) {
case "":case "_sans":case "_serif":case "_typewriter":
found = true;
break;
default:
var _g1 = 0;
var _g11 = openfl_text_Font.enumerateFonts();
while(_g1 < _g11.length) {
var font1 = _g11[_g1];
++_g1;
if(font1.name == format.font) {
found = true;
break;
}
}
}
}
if(!found) {
var alpha_r = new RegExp("[^a-zA-Z]+","g".split("u").join(""));
var _g12 = 0;
var _g2 = openfl_text_Font.enumerateFonts();
while(_g12 < _g2.length) {
var font2 = _g2[_g12];
++_g12;
if(HxOverrides.substr(font2.name.replace(alpha_r,""),0,symbol.fontName.length) == symbol.fontName) {
format.font = font2.name;
found = true;
break;
}
}
}
if(found) {
this.set_embedFonts(true);
} else {
var key = format.font;
var _this = openfl_text_TextField.__missingFontWarning;
if(!(__map_reserved[key] != null ? _this.existsReserved(key) : _this.h.hasOwnProperty(key))) {
var k = format.font;
var _this1 = openfl_text_TextField.__missingFontWarning;
if(__map_reserved[k] != null) {
_this1.setReserved(k,true);
} else {
_this1.h[k] = true;
}
lime_utils_Log.warn("Could not find required font \"" + format.font + "\", it has not been embedded",{ fileName : "TextField.hx", lineNumber : 1676, className : "openfl.text.TextField", methodName : "__fromSymbol"});
}
}
if(symbol.align != null) {
if(symbol.align == "center") {
format.align = 0;
} else if(symbol.align == "right") {
format.align = 4;
} else if(symbol.align == "justify") {
format.align = 2;
}
format.leftMargin = symbol.leftMargin / 20 | 0;
format.rightMargin = symbol.rightMargin / 20 | 0;
format.indent = symbol.indent / 20 | 0;
format.leading = symbol.leading / 20 | 0;
}
this.set_defaultTextFormat(format);
if(symbol.text != null) {
if(symbol.html) {
this.set_htmlText(symbol.text);
} else {
this.set_text(symbol.text);
}
}
}
,__getAdvance: function(position) {
return position;
}
,__getBounds: function(rect,matrix) {
this.__updateLayout();
var bounds = openfl_geom_Rectangle.__pool.get();
bounds.copyFrom(this.__textEngine.bounds);
matrix.tx += this.__offsetX;
matrix.ty += 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 > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text) - 1) {
return false;
}
this.__updateLayout();
var _g = 0;
var _g1 = this.__textEngine.layoutGroups;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
if(charIndex >= group.startIndex && charIndex <= group.endIndex) {
try {
var x = group.offsetX;
var _g3 = 0;
var _g2 = charIndex - group.startIndex;
while(_g3 < _g2) {
var i = _g3++;
x += group.positions[i];
}
var lastPosition = group.positions[charIndex - group.startIndex];
rect.setTo(x,group.offsetY,lastPosition,group.ascent + group.descent);
return true;
} catch( e ) {
haxe_CallStack.lastException = e;
}
}
}
return false;
}
,__getCharIndexOnDifferentLine: function(charIndex,lineIndex) {
if(charIndex < 0 || charIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text)) {
return -1;
}
if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
return -1;
}
var x = null;
var y = null;
var _g = 0;
var _g1 = this.__textEngine.layoutGroups;
while(_g < _g1.get_length()) {
var group = _g1.get(_g);
++_g;
if(charIndex >= group.startIndex && charIndex <= group.endIndex) {
x = group.offsetX;
var _g3 = 0;
var _g2 = charIndex - group.startIndex;
while(_g3 < _g2) {
var i = _g3++;
x += group.positions[i];
}
if(y != null) {
return this.__getPosition(x,y);
}
}
if(group.lineIndex == lineIndex) {
y = group.offsetY + group.height / 2;
var _g31 = 0;
var _g21 = this.get_scrollV() - 1;
while(_g31 < _g21) {
var i1 = _g31++;
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 _g1 = 0;
var _g = this.get_scrollV() - 1;
while(_g1 < _g) {
var i = _g1++;
y += this.__textEngine.lineHeights.get(i);
}
if(!precise && y > this.__textEngine.textHeight) {
y = this.__textEngine.textHeight;
}
var firstGroup = true;
var group;
var nextGroup;
var _g11 = 0;
var _g2 = this.__textEngine.layoutGroups.get_length();
while(_g11 < _g2) {
var i1 = _g11++;
group = this.__textEngine.layoutGroups.get(i1);
if(i1 < this.__textEngine.layoutGroups.get_length() - 1) {
nextGroup = this.__textEngine.layoutGroups.get(i1 + 1);
} else {
nextGroup = null;
}
if(firstGroup) {
if(y < group.offsetY) {
y = group.offsetY;
}
if(x < group.offsetX) {
x = group.offsetX;
}
firstGroup = false;
}
if(y >= group.offsetY && y <= group.offsetY + group.height || !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 lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
var advance = 0.0;
var _g1 = 0;
var _g = group.positions.length;
while(_g1 < _g) {
var i = _g1++;
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 _this1 = this.__renderTransform;
var norm1 = _this1.a * _this1.d - _this1.b * _this1.c;
var py = norm1 == 0 ? -_this1.ty : 1.0 / norm1 * (_this1.a * (y - _this1.ty) + _this1.b * (_this1.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 _this1 = this.__renderTransform;
var norm1 = _this1.a * _this1.d - _this1.b * _this1.c;
var py = norm1 == 0 ? -_this1.ty : 1.0 / norm1 * (_this1.a * (y - _this1.ty) + _this1.b * (_this1.tx - x));
if(this.__textEngine.bounds.contains(px,py)) {
return true;
}
return false;
}
,__renderCairo: function(renderer) {
}
,__renderCanvas: function(renderer) {
if(renderer.__isDOM && !this.__renderedOnCanvasWhileOnDOM) {
this.__renderedOnCanvasWhileOnDOM = true;
if(this.get_type() == 1) {
this.replaceText(0,lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text),this.__text);
}
if(this.__isHTML) {
this.__updateText(openfl__$internal_formats_html_HTMLParser.parse(this.__text,this.__textFormat,this.__textEngine.textFormatRanges));
}
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
if(this.get_mask() == null || this.get_mask().get_width() > 0 && this.get_mask().get_height() > 0) {
this.__updateCacheBitmap(renderer,false);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
var bitmap = this.__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);
}
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = true;
}
renderer.__popMaskObject(bitmap,false);
}
}
} else {
var transform = this.__worldTransform;
var textEngine = this.__textEngine;
var bounds = textEngine.background || textEngine.border ? textEngine.bounds : textEngine.textBounds;
var graphics = this.__graphics;
if(this.__dirty) {
this.__updateLayout();
if(graphics.__bounds == null) {
graphics.__bounds = new openfl_geom_Rectangle();
}
graphics.__bounds.copyFrom(bounds);
}
graphics.__update(renderer.__worldTransform);
if(this.__dirty || graphics.__softwareDirty) {
var width = graphics.__width;
var height = graphics.__height;
if((textEngine.text == null || lime_text__$UTF8String_UTF8String_$Impl_$.equals(textEngine.text,"")) && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) {
this.__graphics.__canvas = null;
this.__graphics.__context = null;
this.__graphics.__bitmap = null;
this.__graphics.__softwareDirty = false;
this.__graphics.set___dirty(false);
this.__dirty = false;
} else {
if(this.__graphics.__canvas == null) {
this.__graphics.__canvas = window.document.createElement("canvas");
this.__graphics.__context = this.__graphics.__canvas.getContext("2d");
}
openfl__$internal_renderer_canvas_CanvasTextField.context = graphics.__context;
var transform1 = graphics.__renderTransform;
if(renderer.__isDOM) {
var scale = renderer.pixelRatio;
graphics.__canvas.width = width * scale | 0;
graphics.__canvas.height = height * scale | 0;
graphics.__canvas.style.width = width + "px";
graphics.__canvas.style.height = height + "px";
var matrix = openfl_geom_Matrix.__pool.get();
matrix.copyFrom(transform1);
matrix.scale(scale,scale);
renderer.setTransform(matrix,openfl__$internal_renderer_canvas_CanvasTextField.context);
openfl_geom_Matrix.__pool.release(matrix);
} else {
graphics.__canvas.width = width;
graphics.__canvas.height = height;
openfl__$internal_renderer_canvas_CanvasTextField.context.setTransform(transform1.a,transform1.b,transform1.c,transform1.d,transform1.tx,transform1.ty);
}
if(openfl__$internal_renderer_canvas_CanvasTextField.clearRect == null) {
openfl__$internal_renderer_canvas_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined');
}
if(openfl__$internal_renderer_canvas_CanvasTextField.clearRect) {
openfl__$internal_renderer_canvas_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__$internal_renderer_canvas_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__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + tmp;
openfl__$internal_renderer_canvas_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
var tmp1 = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp1;
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
}
}
openfl__$internal_renderer_canvas_CanvasTextField.context.textBaseline = "alphabetic";
openfl__$internal_renderer_canvas_CanvasTextField.context.textAlign = "start";
var scrollX = -this.get_scrollH();
var scrollY = 0.0;
var _g1 = 0;
var _g = this.get_scrollV() - 1;
while(_g1 < _g) {
var i = _g1++;
scrollY -= textEngine.lineHeights.get(i);
}
var advance;
var _g2 = 0;
var _g11 = textEngine.layoutGroups;
while(_g2 < _g11.get_length()) {
var group = _g11.get(_g2);
++_g2;
if(group.lineIndex < this.get_scrollV() - 1) {
continue;
}
if(group.lineIndex > this.get_scrollV() + textEngine.bottomScrollV - 2) {
break;
}
var color = "#" + StringTools.hex(group.format.color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.font = openfl__$internal_text_TextEngine.getFont(group.format);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = color;
openfl__$internal_renderer_canvas_CanvasTextField.context.fillText(lime_text__$UTF8String_UTF8String_$Impl_$.substring(text,group.startIndex,group.endIndex),group.offsetX + scrollX - bounds.x,group.offsetY + group.ascent + scrollY - bounds.y);
if(this.__caretIndex > -1 && textEngine.selectable) {
if(this.__selectionIndex == this.__caretIndex) {
if(this.__showCursor && group.startIndex <= this.__caretIndex && group.endIndex >= this.__caretIndex) {
advance = 0.0;
var _g3 = 0;
var _g21 = this.__caretIndex - group.startIndex;
while(_g3 < _g21) {
var i1 = _g3++;
if(group.positions.length <= i1) {
break;
}
advance += group.positions[i1];
}
var scrollY1 = 0.0;
var _g31 = this.get_scrollV();
var _g22 = group.lineIndex + 1;
while(_g31 < _g22) {
var i2 = _g31++;
scrollY1 += textEngine.lineHeights.get(i2 - 1);
}
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
var tmp2 = StringTools.hex(group.format.color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp2;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(group.offsetX + advance - this.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(group.offsetX + advance - this.get_scrollH() - bounds.x,scrollY1 + openfl__$internal_text_TextEngine.getFormatHeight(this.get_defaultTextFormat()) - 1 - bounds.y);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
} else if(group.startIndex <= this.__caretIndex && group.endIndex >= this.__caretIndex || group.startIndex <= this.__selectionIndex && group.endIndex >= this.__selectionIndex || group.startIndex > this.__caretIndex && group.endIndex < this.__selectionIndex || group.startIndex > this.__selectionIndex && group.endIndex < this.__caretIndex) {
var selectionStart = Math.min(this.__selectionIndex,this.__caretIndex) | 0;
var selectionEnd = Math.max(this.__selectionIndex,this.__caretIndex) | 0;
if(group.startIndex > selectionStart) {
selectionStart = group.startIndex;
}
if(group.endIndex < selectionEnd) {
selectionEnd = group.endIndex;
}
var start;
var end;
start = this.getCharBoundaries(selectionStart);
if(selectionEnd >= lime_text__$UTF8String_UTF8String_$Impl_$.get_length(textEngine.text)) {
end = this.getCharBoundaries(lime_text__$UTF8String_UTF8String_$Impl_$.get_length(textEngine.text) - 1);
end.x += end.width + 2;
} else {
end = this.getCharBoundaries(selectionEnd);
}
if(start != null && end != null) {
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#000000";
openfl__$internal_renderer_canvas_CanvasTextField.context.fillRect(start.x + scrollX,start.y + scrollY,end.x - start.x,group.height);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#FFFFFF";
openfl__$internal_renderer_canvas_CanvasTextField.context.fillText(lime_text__$UTF8String_UTF8String_$Impl_$.substring(text,selectionStart,selectionEnd),scrollX + start.x,group.offsetY + group.ascent + scrollY);
}
}
}
if(group.format.underline) {
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = color;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
var x = group.offsetX + scrollX - bounds.x;
var y = Math.floor(group.offsetY + scrollY + group.ascent - bounds.y) + 0.5;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(x,y);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(x + group.width,y);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
}
} else {
if(textEngine.border || textEngine.background) {
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
} else {
openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0,0,bounds.width,bounds.height);
}
if(textEngine.background) {
var tmp3 = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + tmp3;
openfl__$internal_renderer_canvas_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineCap = "square";
var tmp4 = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp4;
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
}
}
if(this.__caretIndex > -1 && textEngine.selectable && this.__showCursor) {
var scrollX1 = -this.get_scrollH();
var scrollY2 = 0.0;
var _g12 = 0;
var _g4 = this.get_scrollV() - 1;
while(_g12 < _g4) {
var i3 = _g12++;
scrollY2 += textEngine.lineHeights.get(i3);
}
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
var tmp5 = StringTools.hex(this.get_defaultTextFormat().color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp5;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(scrollX1 + 2.5,scrollY2 + 2.5);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(scrollX1 + 2.5,scrollY2 + openfl__$internal_text_TextEngine.getFormatHeight(this.get_defaultTextFormat()) - 1);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
}
graphics.__bitmap = openfl_display_BitmapData.fromCanvas(this.__graphics.__canvas);
graphics.__visible = true;
this.__dirty = false;
graphics.__softwareDirty = false;
graphics.set___dirty(false);
}
}
var smoothingEnabled = false;
if(this.__textEngine.antiAliasType == 0 && this.__textEngine.gridFitType == 1) {
smoothingEnabled = renderer.context.imageSmoothingEnabled;
if(smoothingEnabled) {
renderer.context.imageSmoothingEnabled = false;
}
}
if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(!(!this.__renderable)) {
var alpha1 = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha1 <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context1 = renderer.context;
renderer.setTransform(this.__renderTransform,context1);
var color1 = this.opaqueBackground;
context1.fillStyle = "rgb(" + (color1 >>> 16 & 255) + "," + (color1 >>> 8 & 255) + "," + (color1 & 255) + ")";
context1.fillRect(0,0,this.get_width(),this.get_height());
renderer.__popMaskObject(this);
}
if(this.__graphics != null) {
if(!(!this.__renderable)) {
var alpha2 = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha2 <= 0)) {
var graphics1 = this.__graphics;
if(graphics1 != null) {
openfl__$internal_renderer_canvas_CanvasGraphics.render(graphics1,renderer);
var bounds1 = graphics1.__bounds;
var width1 = graphics1.__width;
var height1 = graphics1.__height;
if(graphics1.__canvas != null) {
var context2 = renderer.context;
var scrollRect1 = this.__scrollRect;
if(width1 > 0 && height1 > 0 && (scrollRect1 == null || scrollRect1.width > 0 && scrollRect1.height > 0)) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
context2.globalAlpha = alpha2;
renderer.setTransform(graphics1.__worldTransform,context2);
if(renderer.__isDOM) {
var reverseScale = 1 / renderer.pixelRatio;
context2.scale(reverseScale,reverseScale);
}
context2.drawImage(graphics1.__canvas,0,0,width1,height1);
renderer.__popMaskObject(this);
}
}
}
}
}
}
}
}
}
if(smoothingEnabled) {
renderer.context.imageSmoothingEnabled = true;
}
}
}
}
,__renderDOM: function(renderer) {
this.__domRender = true;
this.__updateCacheBitmap(renderer,this.__forceCachedBitmapUpdate);
this.__forceCachedBitmapUpdate = false;
this.__domRender = false;
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
this.__renderDOMClear(renderer);
this.__cacheBitmap.stage = this.stage;
var bitmap = this.__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) {
openfl__$internal_renderer_dom_DOMBitmap.renderImage(bitmap,renderer);
} else {
openfl__$internal_renderer_dom_DOMBitmap.renderCanvas(bitmap,renderer);
}
renderer.__popMaskObject(bitmap);
} else {
openfl__$internal_renderer_dom_DOMBitmap.clear(bitmap,renderer);
}
} else {
if(this.__renderedOnCanvasWhileOnDOM) {
this.__renderedOnCanvasWhileOnDOM = false;
if(this.__isHTML && this.__rawHtmlText != null) {
this.__updateText(this.__rawHtmlText);
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
var textField = this;
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) {
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;
}
},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);
}
textField.__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 unscaledSize = textField.__textFormat.size;
var scaledSize = unscaledSize;
var t = textField.__renderTransform;
if(t.a != 1.0 || t.d != 1.0) {
if(t.a == t.d) {
scale = t.a;
t.a = t.d = 1.0;
} else if(t.a > t.d) {
scale = t.a;
t.d /= t.a;
t.a = 1.0;
} else {
scale = t.d;
t.a /= t.d;
t.d = 1.0;
}
scaledSize *= scale;
w = Math.ceil(w * scale);
h = Math.ceil(h * scale);
}
textField.__textFormat.size = scaledSize;
var text = textEngine.text;
var adjustment = 0;
if(!textField.__isHTML) {
text = StringTools.htmlEscape(text);
} else {
var matchText = text;
while(openfl__$internal_renderer_dom_DOMTextField.__regexFont.match(matchText)) {
var fontText = openfl__$internal_renderer_dom_DOMTextField.__regexFont.matched(0);
var style1 = "";
if(openfl__$internal_renderer_dom_DOMTextField.__regexFace.match(fontText)) {
style1 += "font-family:'" + openfl__$internal_renderer_dom_DOMTextField.__getAttributeMatch(openfl__$internal_renderer_dom_DOMTextField.__regexFace) + "';";
}
if(openfl__$internal_renderer_dom_DOMTextField.__regexColor.match(fontText)) {
style1 += "color:#" + openfl__$internal_renderer_dom_DOMTextField.__getAttributeMatch(openfl__$internal_renderer_dom_DOMTextField.__regexColor) + ";";
}
if(openfl__$internal_renderer_dom_DOMTextField.__regexSize.match(fontText)) {
var sizeAttr = openfl__$internal_renderer_dom_DOMTextField.__getAttributeMatch(openfl__$internal_renderer_dom_DOMTextField.__regexSize);
var firstChar = HxOverrides.cca(sizeAttr,0);
var size;
adjustment = parseFloat(sizeAttr) * scale;
if(firstChar == 43 || firstChar == 45) {
size = scaledSize + adjustment;
} else {
size = adjustment;
}
style1 += "font-size:" + size + "px;";
}
text = StringTools.replace(text,fontText,"");
matchText = openfl__$internal_renderer_dom_DOMTextField.__regexFont.matchedRight();
}
text = text.replace(openfl__$internal_renderer_dom_DOMTextField.__regexCloseFont.r,"");
}
text = StringTools.replace(text,"
");
textField.__div.innerHTML = tmp;
var _this_r1 = new RegExp("\n","g".split("u").join(""));
var tmp1 = textField.__div.innerHTML.replace(_this_r1,"
");
textField.__div.innerHTML = tmp1;
var _this_r2 = new RegExp("\r","g".split("u").join(""));
var tmp2 = textField.__div.innerHTML.replace(_this_r2,"
");
textField.__div.innerHTML = tmp2;
style.setProperty("font",openfl__$internal_text_TextEngine.getFont(textField.__textFormat),null);
textField.__textFormat.size = unscaledSize;
textField.__textFormat.leading = unscaledLeading;
style.setProperty("top","3px",null);
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("color","#" + StringTools.hex(textField.__textFormat.color & 16777215,6),null);
style.setProperty("width",w + "px",null);
style.setProperty("height",h + "px",null);
var _g = textField.__textFormat.align;
switch(_g) {
case 0:
style.setProperty("text-align","center",null);
break;
case 4:
style.setProperty("text-align","right",null);
break;
default:
style.setProperty("text-align","left",null);
}
textField.__dirty = false;
} else if(textField.__div != null) {
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__$internal_renderer_dom_DOMTextField.clear(textField,renderer);
}
}
this.__renderEvent(renderer);
}
,__renderDOMClear: function(renderer) {
openfl__$internal_renderer_dom_DOMTextField.clear(this,renderer);
}
,__renderGL: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
openfl__$internal_renderer_context3D_Context3DBitmap.render(this.__cacheBitmap,renderer);
} else {
var renderer1 = renderer.__softwareRenderer;
var transform = this.__worldTransform;
var textEngine = this.__textEngine;
var bounds = textEngine.background || textEngine.border ? textEngine.bounds : textEngine.textBounds;
var graphics = this.__graphics;
if(this.__dirty) {
this.__updateLayout();
if(graphics.__bounds == null) {
graphics.__bounds = new openfl_geom_Rectangle();
}
graphics.__bounds.copyFrom(bounds);
}
graphics.__update(renderer1.__worldTransform);
if(this.__dirty || graphics.__softwareDirty) {
var width = graphics.__width;
var height = graphics.__height;
if((textEngine.text == null || lime_text__$UTF8String_UTF8String_$Impl_$.equals(textEngine.text,"")) && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) {
this.__graphics.__canvas = null;
this.__graphics.__context = null;
this.__graphics.__bitmap = null;
this.__graphics.__softwareDirty = false;
this.__graphics.set___dirty(false);
this.__dirty = false;
} else {
if(this.__graphics.__canvas == null) {
this.__graphics.__canvas = window.document.createElement("canvas");
this.__graphics.__context = this.__graphics.__canvas.getContext("2d");
}
openfl__$internal_renderer_canvas_CanvasTextField.context = graphics.__context;
var transform1 = graphics.__renderTransform;
if(renderer1.__isDOM) {
var scale = renderer1.pixelRatio;
graphics.__canvas.width = width * scale | 0;
graphics.__canvas.height = height * scale | 0;
graphics.__canvas.style.width = width + "px";
graphics.__canvas.style.height = height + "px";
var matrix = openfl_geom_Matrix.__pool.get();
matrix.copyFrom(transform1);
matrix.scale(scale,scale);
renderer1.setTransform(matrix,openfl__$internal_renderer_canvas_CanvasTextField.context);
openfl_geom_Matrix.__pool.release(matrix);
} else {
graphics.__canvas.width = width;
graphics.__canvas.height = height;
openfl__$internal_renderer_canvas_CanvasTextField.context.setTransform(transform1.a,transform1.b,transform1.c,transform1.d,transform1.tx,transform1.ty);
}
if(openfl__$internal_renderer_canvas_CanvasTextField.clearRect == null) {
openfl__$internal_renderer_canvas_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined');
}
if(openfl__$internal_renderer_canvas_CanvasTextField.clearRect) {
openfl__$internal_renderer_canvas_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__$internal_renderer_canvas_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__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + tmp;
openfl__$internal_renderer_canvas_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
var tmp1 = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp1;
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
}
}
openfl__$internal_renderer_canvas_CanvasTextField.context.textBaseline = "alphabetic";
openfl__$internal_renderer_canvas_CanvasTextField.context.textAlign = "start";
var scrollX = -this.get_scrollH();
var scrollY = 0.0;
var _g1 = 0;
var _g = this.get_scrollV() - 1;
while(_g1 < _g) {
var i = _g1++;
scrollY -= textEngine.lineHeights.get(i);
}
var advance;
var _g2 = 0;
var _g11 = textEngine.layoutGroups;
while(_g2 < _g11.get_length()) {
var group = _g11.get(_g2);
++_g2;
if(group.lineIndex < this.get_scrollV() - 1) {
continue;
}
if(group.lineIndex > this.get_scrollV() + textEngine.bottomScrollV - 2) {
break;
}
var color = "#" + StringTools.hex(group.format.color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.font = openfl__$internal_text_TextEngine.getFont(group.format);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = color;
openfl__$internal_renderer_canvas_CanvasTextField.context.fillText(lime_text__$UTF8String_UTF8String_$Impl_$.substring(text,group.startIndex,group.endIndex),group.offsetX + scrollX - bounds.x,group.offsetY + group.ascent + scrollY - bounds.y);
if(this.__caretIndex > -1 && textEngine.selectable) {
if(this.__selectionIndex == this.__caretIndex) {
if(this.__showCursor && group.startIndex <= this.__caretIndex && group.endIndex >= this.__caretIndex) {
advance = 0.0;
var _g3 = 0;
var _g21 = this.__caretIndex - group.startIndex;
while(_g3 < _g21) {
var i1 = _g3++;
if(group.positions.length <= i1) {
break;
}
advance += group.positions[i1];
}
var scrollY1 = 0.0;
var _g31 = this.get_scrollV();
var _g22 = group.lineIndex + 1;
while(_g31 < _g22) {
var i2 = _g31++;
scrollY1 += textEngine.lineHeights.get(i2 - 1);
}
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
var tmp2 = StringTools.hex(group.format.color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp2;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(group.offsetX + advance - this.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(group.offsetX + advance - this.get_scrollH() - bounds.x,scrollY1 + openfl__$internal_text_TextEngine.getFormatHeight(this.get_defaultTextFormat()) - 1 - bounds.y);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
} else if(group.startIndex <= this.__caretIndex && group.endIndex >= this.__caretIndex || group.startIndex <= this.__selectionIndex && group.endIndex >= this.__selectionIndex || group.startIndex > this.__caretIndex && group.endIndex < this.__selectionIndex || group.startIndex > this.__selectionIndex && group.endIndex < this.__caretIndex) {
var selectionStart = Math.min(this.__selectionIndex,this.__caretIndex) | 0;
var selectionEnd = Math.max(this.__selectionIndex,this.__caretIndex) | 0;
if(group.startIndex > selectionStart) {
selectionStart = group.startIndex;
}
if(group.endIndex < selectionEnd) {
selectionEnd = group.endIndex;
}
var start;
var end;
start = this.getCharBoundaries(selectionStart);
if(selectionEnd >= lime_text__$UTF8String_UTF8String_$Impl_$.get_length(textEngine.text)) {
end = this.getCharBoundaries(lime_text__$UTF8String_UTF8String_$Impl_$.get_length(textEngine.text) - 1);
end.x += end.width + 2;
} else {
end = this.getCharBoundaries(selectionEnd);
}
if(start != null && end != null) {
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#000000";
openfl__$internal_renderer_canvas_CanvasTextField.context.fillRect(start.x + scrollX,start.y + scrollY,end.x - start.x,group.height);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#FFFFFF";
openfl__$internal_renderer_canvas_CanvasTextField.context.fillText(lime_text__$UTF8String_UTF8String_$Impl_$.substring(text,selectionStart,selectionEnd),scrollX + start.x,group.offsetY + group.ascent + scrollY);
}
}
}
if(group.format.underline) {
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = color;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
var x = group.offsetX + scrollX - bounds.x;
var y = Math.floor(group.offsetY + scrollY + group.ascent - bounds.y) + 0.5;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(x,y);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(x + group.width,y);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
}
} else {
if(textEngine.border || textEngine.background) {
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
} else {
openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0,0,bounds.width,bounds.height);
}
if(textEngine.background) {
var tmp3 = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + tmp3;
openfl__$internal_renderer_canvas_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineCap = "square";
var tmp4 = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp4;
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
}
}
if(this.__caretIndex > -1 && textEngine.selectable && this.__showCursor) {
var scrollX1 = -this.get_scrollH();
var scrollY2 = 0.0;
var _g12 = 0;
var _g4 = this.get_scrollV() - 1;
while(_g12 < _g4) {
var i3 = _g12++;
scrollY2 += textEngine.lineHeights.get(i3);
}
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
var tmp5 = StringTools.hex(this.get_defaultTextFormat().color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp5;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(scrollX1 + 2.5,scrollY2 + 2.5);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(scrollX1 + 2.5,scrollY2 + openfl__$internal_text_TextEngine.getFormatHeight(this.get_defaultTextFormat()) - 1);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
}
graphics.__bitmap = openfl_display_BitmapData.fromCanvas(this.__graphics.__canvas);
graphics.__visible = true;
this.__dirty = false;
graphics.__softwareDirty = false;
graphics.set___dirty(false);
}
}
if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(!(!this.__renderable || this.__worldAlpha <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context = renderer.__context3D;
var rect = openfl_geom_Rectangle.__pool.get();
rect.setTo(0,0,this.get_width(),this.get_height());
renderer.__pushMaskRect(rect,this.__renderTransform);
var color1 = this.opaqueBackground;
context.clear((color1 >>> 16 & 255) / 255,(color1 >>> 8 & 255) / 255,(color1 & 255) / 255,1,0,0,1);
renderer.__popMaskRect();
renderer.__popMaskObject(this);
openfl_geom_Rectangle.__pool.release(rect);
}
if(this.__graphics != null) {
openfl__$internal_renderer_context3D_Context3DShape.render(this,renderer);
}
}
}
}
this.__renderEvent(renderer);
}
,__renderGLMask: function(renderer) {
var renderer1 = renderer.__softwareRenderer;
var transform = this.__worldTransform;
var textEngine = this.__textEngine;
var bounds = textEngine.background || textEngine.border ? textEngine.bounds : textEngine.textBounds;
var graphics = this.__graphics;
if(this.__dirty) {
this.__updateLayout();
if(graphics.__bounds == null) {
graphics.__bounds = new openfl_geom_Rectangle();
}
graphics.__bounds.copyFrom(bounds);
}
graphics.__update(renderer1.__worldTransform);
if(this.__dirty || graphics.__softwareDirty) {
var width = graphics.__width;
var height = graphics.__height;
if((textEngine.text == null || lime_text__$UTF8String_UTF8String_$Impl_$.equals(textEngine.text,"")) && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) {
this.__graphics.__canvas = null;
this.__graphics.__context = null;
this.__graphics.__bitmap = null;
this.__graphics.__softwareDirty = false;
this.__graphics.set___dirty(false);
this.__dirty = false;
} else {
if(this.__graphics.__canvas == null) {
this.__graphics.__canvas = window.document.createElement("canvas");
this.__graphics.__context = this.__graphics.__canvas.getContext("2d");
}
openfl__$internal_renderer_canvas_CanvasTextField.context = graphics.__context;
var transform1 = graphics.__renderTransform;
if(renderer1.__isDOM) {
var scale = renderer1.pixelRatio;
graphics.__canvas.width = width * scale | 0;
graphics.__canvas.height = height * scale | 0;
graphics.__canvas.style.width = width + "px";
graphics.__canvas.style.height = height + "px";
var matrix = openfl_geom_Matrix.__pool.get();
matrix.copyFrom(transform1);
matrix.scale(scale,scale);
renderer1.setTransform(matrix,openfl__$internal_renderer_canvas_CanvasTextField.context);
openfl_geom_Matrix.__pool.release(matrix);
} else {
graphics.__canvas.width = width;
graphics.__canvas.height = height;
openfl__$internal_renderer_canvas_CanvasTextField.context.setTransform(transform1.a,transform1.b,transform1.c,transform1.d,transform1.tx,transform1.ty);
}
if(openfl__$internal_renderer_canvas_CanvasTextField.clearRect == null) {
openfl__$internal_renderer_canvas_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined');
}
if(openfl__$internal_renderer_canvas_CanvasTextField.clearRect) {
openfl__$internal_renderer_canvas_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__$internal_renderer_canvas_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__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + tmp;
openfl__$internal_renderer_canvas_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
var tmp1 = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp1;
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
}
}
openfl__$internal_renderer_canvas_CanvasTextField.context.textBaseline = "alphabetic";
openfl__$internal_renderer_canvas_CanvasTextField.context.textAlign = "start";
var scrollX = -this.get_scrollH();
var scrollY = 0.0;
var _g1 = 0;
var _g = this.get_scrollV() - 1;
while(_g1 < _g) {
var i = _g1++;
scrollY -= textEngine.lineHeights.get(i);
}
var advance;
var _g2 = 0;
var _g11 = textEngine.layoutGroups;
while(_g2 < _g11.get_length()) {
var group = _g11.get(_g2);
++_g2;
if(group.lineIndex < this.get_scrollV() - 1) {
continue;
}
if(group.lineIndex > this.get_scrollV() + textEngine.bottomScrollV - 2) {
break;
}
var color = "#" + StringTools.hex(group.format.color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.font = openfl__$internal_text_TextEngine.getFont(group.format);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = color;
openfl__$internal_renderer_canvas_CanvasTextField.context.fillText(lime_text__$UTF8String_UTF8String_$Impl_$.substring(text,group.startIndex,group.endIndex),group.offsetX + scrollX - bounds.x,group.offsetY + group.ascent + scrollY - bounds.y);
if(this.__caretIndex > -1 && textEngine.selectable) {
if(this.__selectionIndex == this.__caretIndex) {
if(this.__showCursor && group.startIndex <= this.__caretIndex && group.endIndex >= this.__caretIndex) {
advance = 0.0;
var _g3 = 0;
var _g21 = this.__caretIndex - group.startIndex;
while(_g3 < _g21) {
var i1 = _g3++;
if(group.positions.length <= i1) {
break;
}
advance += group.positions[i1];
}
var scrollY1 = 0.0;
var _g31 = this.get_scrollV();
var _g22 = group.lineIndex + 1;
while(_g31 < _g22) {
var i2 = _g31++;
scrollY1 += textEngine.lineHeights.get(i2 - 1);
}
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
var tmp2 = StringTools.hex(group.format.color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp2;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(group.offsetX + advance - this.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(group.offsetX + advance - this.get_scrollH() - bounds.x,scrollY1 + openfl__$internal_text_TextEngine.getFormatHeight(this.get_defaultTextFormat()) - 1 - bounds.y);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
} else if(group.startIndex <= this.__caretIndex && group.endIndex >= this.__caretIndex || group.startIndex <= this.__selectionIndex && group.endIndex >= this.__selectionIndex || group.startIndex > this.__caretIndex && group.endIndex < this.__selectionIndex || group.startIndex > this.__selectionIndex && group.endIndex < this.__caretIndex) {
var selectionStart = Math.min(this.__selectionIndex,this.__caretIndex) | 0;
var selectionEnd = Math.max(this.__selectionIndex,this.__caretIndex) | 0;
if(group.startIndex > selectionStart) {
selectionStart = group.startIndex;
}
if(group.endIndex < selectionEnd) {
selectionEnd = group.endIndex;
}
var start;
var end;
start = this.getCharBoundaries(selectionStart);
if(selectionEnd >= lime_text__$UTF8String_UTF8String_$Impl_$.get_length(textEngine.text)) {
end = this.getCharBoundaries(lime_text__$UTF8String_UTF8String_$Impl_$.get_length(textEngine.text) - 1);
end.x += end.width + 2;
} else {
end = this.getCharBoundaries(selectionEnd);
}
if(start != null && end != null) {
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#000000";
openfl__$internal_renderer_canvas_CanvasTextField.context.fillRect(start.x + scrollX,start.y + scrollY,end.x - start.x,group.height);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#FFFFFF";
openfl__$internal_renderer_canvas_CanvasTextField.context.fillText(lime_text__$UTF8String_UTF8String_$Impl_$.substring(text,selectionStart,selectionEnd),scrollX + start.x,group.offsetY + group.ascent + scrollY);
}
}
}
if(group.format.underline) {
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = color;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
var x = group.offsetX + scrollX - bounds.x;
var y = Math.floor(group.offsetY + scrollY + group.ascent - bounds.y) + 0.5;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(x,y);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(x + group.width,y);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
}
} else {
if(textEngine.border || textEngine.background) {
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
} else {
openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0,0,bounds.width,bounds.height);
}
if(textEngine.background) {
var tmp3 = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + tmp3;
openfl__$internal_renderer_canvas_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineCap = "square";
var tmp4 = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp4;
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
}
}
if(this.__caretIndex > -1 && textEngine.selectable && this.__showCursor) {
var scrollX1 = -this.get_scrollH();
var scrollY2 = 0.0;
var _g12 = 0;
var _g4 = this.get_scrollV() - 1;
while(_g12 < _g4) {
var i3 = _g12++;
scrollY2 += textEngine.lineHeights.get(i3);
}
openfl__$internal_renderer_canvas_CanvasTextField.context.beginPath();
var tmp5 = StringTools.hex(this.get_defaultTextFormat().color & 16777215,6);
openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + tmp5;
openfl__$internal_renderer_canvas_CanvasTextField.context.moveTo(scrollX1 + 2.5,scrollY2 + 2.5);
openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1;
openfl__$internal_renderer_canvas_CanvasTextField.context.lineTo(scrollX1 + 2.5,scrollY2 + openfl__$internal_text_TextEngine.getFormatHeight(this.get_defaultTextFormat()) - 1);
openfl__$internal_renderer_canvas_CanvasTextField.context.stroke();
openfl__$internal_renderer_canvas_CanvasTextField.context.closePath();
}
}
graphics.__bitmap = openfl_display_BitmapData.fromCanvas(this.__graphics.__canvas);
graphics.__visible = true;
this.__dirty = false;
graphics.__softwareDirty = false;
graphics.set___dirty(false);
}
}
openfl_display_InteractiveObject.prototype.__renderGLMask.call(this,renderer);
}
,__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 && lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text) == this.__textEngine.maxChars) {
return;
}
if(startIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text)) {
startIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
if(endIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text)) {
endIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
if(endIndex < startIndex) {
var cache = endIndex;
endIndex = startIndex;
startIndex = cache;
}
if(startIndex < 0) {
startIndex = 0;
}
this.__replaceText(startIndex,endIndex,value,restrict);
var i = startIndex + lime_text__$UTF8String_UTF8String_$Impl_$.get_length(js_Boot.__cast(value , String));
if(i > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text)) {
i = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
this.setSelection(i,i);
this.__updateScrollH();
}
,__replaceText: function(beginIndex,endIndex,newText,restrict) {
if(endIndex < beginIndex || beginIndex < 0 || endIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text) || newText == null) {
return;
}
if(restrict) {
newText = this.__textEngine.restrictText(newText);
if(this.__textEngine.maxChars > 0) {
var removeLength = endIndex - beginIndex;
var maxLength = this.__textEngine.maxChars - lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text) + removeLength;
if(maxLength <= 0) {
newText = "";
} else if(maxLength < newText.length) {
newText = HxOverrides.substr(newText,0,maxLength);
}
}
}
this.__updateText(lime_text__$UTF8String_UTF8String_$Impl_$.substring(this.__text,0,beginIndex) + newText + lime_text__$UTF8String_UTF8String_$Impl_$.substring(this.__text,endIndex));
if(endIndex > lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text)) {
endIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
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(range.start <= beginIndex && range.end >= endIndex) {
range.end += offset;
++i;
} else if(range.start >= beginIndex && range.end <= endIndex) {
if(i > 0) {
this.__textEngine.textFormatRanges.splice(i,1);
} else {
range.start = 0;
range.end = beginIndex + newText.length;
++i;
}
offset -= range.end - range.start;
} else if(range.start > beginIndex && range.start <= endIndex) {
range.start += offset;
++i;
} else {
++i;
}
}
this.__updateScrollH();
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
,__shouldCacheHardware: function(value) {
if(value == true) {
return true;
} else {
return false;
}
}
,__startCursorTimer: function() {
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();
}
}
,__startTextInput: function() {
if(this.__caretIndex < 0) {
this.__caretIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
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();
}
}
,__updateCacheBitmap: function(renderer,force) {
if(this.__filters == null && renderer.__type == "opengl" && this.__cacheBitmap == null && !this.__domRender) {
return false;
}
if(openfl_display_InteractiveObject.prototype.__updateCacheBitmap.call(this,renderer,force || this.__dirty)) {
if(this.__cacheBitmap != null) {
this.__cacheBitmap.__renderTransform.tx -= this.__offsetX;
this.__cacheBitmap.__renderTransform.ty -= this.__offsetY;
}
return true;
}
return false;
}
,__updateLayout: function() {
if(this.__layoutDirty) {
var cacheWidth = this.__textEngine.width;
var cacheHeight = this.__textEngine.height;
this.__textEngine.update();
if(this.__textEngine.autoSize != 2) {
if(this.__textEngine.width != cacheWidth) {
var _g = this.__textEngine.autoSize;
switch(_g) {
case 0:
var _g1 = this;
_g1.set_x(_g1.get_x() + (cacheWidth - this.__textEngine.width) / 2);
break;
case 3:
var _g2 = this;
_g2.set_x(_g2.get_x() + (cacheWidth - this.__textEngine.width));
break;
default:
}
}
this.__textEngine.getBounds();
}
this.__layoutDirty = false;
}
}
,__updateScrollH: function() {
if(!this.get_multiline() && this.get_type() == 1) {
this.__layoutDirty = true;
this.__updateLayout();
var offsetX = this.__textEngine.textWidth - this.__textEngine.width + 4;
if(offsetX > 0) {
if(this.__caretIndex >= lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text())) {
this.set_scrollH(Math.ceil(offsetX));
} else {
var caret = openfl_geom_Rectangle.__pool.get();
this.__getCharBoundaries(this.__caretIndex,caret);
if(caret.x < this.get_scrollH()) {
this.set_scrollH(Math.floor(caret.x - 2));
} else if(caret.x > this.get_scrollH() + this.__textEngine.width) {
this.set_scrollH(Math.ceil(caret.x - this.__textEngine.width - 2));
}
openfl_geom_Rectangle.__pool.release(caret);
}
} else {
this.set_scrollH(0);
}
}
}
,__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(lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text) < this.__caretIndex) {
this.__selectionIndex = this.__caretIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
if(!this.__displayAsPassword || openfl_display_DisplayObject.__supportDOM && !this.__renderedOnCanvasWhileOnDOM) {
this.__textEngine.set_text(this.__text);
} else {
var length = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.get_text());
var mask = "";
var _g1 = 0;
var _g = length;
while(_g1 < _g) {
var i = _g1++;
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.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.__rawHtmlText;
} 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;
this.__rawHtmlText = value;
value = openfl__$internal_formats_html_HTMLParser.parse(value,this.__textFormat,this.__textEngine.textFormatRanges);
if(openfl_display_DisplayObject.__supportDOM) {
if(this.__textEngine.textFormatRanges.get_length() > 1) {
this.__textEngine.textFormatRanges.splice(1,this.__textEngine.textFormatRanges.get_length() - 1);
}
var range = this.__textEngine.textFormatRanges.get(0);
range.format = this.__textFormat;
range.start = 0;
if(this.__renderedOnCanvasWhileOnDOM) {
range.end = value.length;
this.__updateText(value);
} else {
range.end = this.__rawHtmlText.length;
this.__updateText(this.__rawHtmlText);
}
} else {
this.__updateText(value);
}
return value;
}
,get_length: function() {
if(this.__text != null) {
return lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
}
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.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) {
if(value != this.__textEngine.multiline) {
this.__dirty = true;
this.__layoutDirty = true;
this.__updateText(this.__text);
this.__updateScrollH();
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
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.dispatchEvent(new openfl_events_Event("scroll"));
}
return this.__textEngine.scrollH = value;
}
,get_scrollV: function() {
return this.__textEngine.scrollV;
}
,set_scrollV: function(value) {
this.__updateLayout();
if(value > this.__textEngine.maxScrollV) {
value = this.__textEngine.maxScrollV;
}
if(value < 1) {
value = 1;
}
if(value != this.__textEngine.scrollV) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
this.dispatchEvent(new openfl_events_Event("scroll"));
}
return this.__textEngine.scrollV = value;
}
,get_selectable: function() {
return this.__textEngine.selectable;
}
,set_selectable: function(value) {
if(value != this.__textEngine.selectable && this.get_type() == 1) {
if(this.stage != null && this.stage.get_focus() == this) {
this.__startTextInput();
} else if(!value) {
this.__stopTextInput();
}
}
return this.__textEngine.selectable = value;
}
,get_selectionBeginIndex: function() {
return 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_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.__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) {
this.__textEngine.textFormatRanges.splice(1,this.__textEngine.textFormatRanges.get_length() - 1);
}
var utfValue = value;
var range = this.__textEngine.textFormatRanges.get(0);
range.format = this.__textFormat;
range.start = 0;
range.end = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(utfValue);
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 _g = 0;
var _g1 = this.__textEngine.textFormatRanges;
while(_g < _g1.get_length()) {
var range = _g1.get(_g);
++_g;
range.format.color = value;
}
return this.__textFormat.color = value;
}
,get_textWidth: function() {
this.__updateLayout();
return this.__textEngine.textWidth;
}
,get_textHeight: function() {
this.__updateLayout();
return this.__textEngine.textHeight;
}
,get_type: function() {
return this.__textEngine.type;
}
,set_type: function(value) {
if(value != this.__textEngine.type) {
if(value == 1) {
this.addEventListener("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 = value;
}
,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();
}
return this.__transform.tx = value - this.__offsetX;
}
,get_y: function() {
return this.__transform.ty + this.__offsetY;
}
,set_y: function(value) {
if(value != this.__transform.ty + this.__offsetY) {
this.__setTransformDirty();
}
return this.__transform.ty = value - this.__offsetY;
}
,stage_onMouseMove: function(event) {
if(this.stage == null) {
return;
}
if(this.__textEngine.selectable && this.__selectionIndex >= 0) {
this.__updateLayout();
var position = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY());
if(position != this.__caretIndex) {
this.__caretIndex = position;
if(openfl_display_DisplayObject.__supportDOM) {
if(this.__renderedOnCanvasWhileOnDOM) {
this.__forceCachedBitmapUpdate = true;
}
} else {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
}
}
,stage_onMouseUp: function(event) {
if(this.stage == null) {
return;
}
this.stage.removeEventListener("mouseMove",$bind(this,this.stage_onMouseMove));
this.stage.removeEventListener("mouseUp",$bind(this,this.stage_onMouseUp));
if(this.stage.get_focus() == this) {
this.__getWorldTransform();
this.__updateLayout();
var _this = this.__worldTransform;
var px = this.get_x();
var py = this.get_y();
var norm = _this.a * _this.d - _this.b * _this.c;
var px1 = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - py) + _this.d * (px - _this.tx));
var _this1 = this.__worldTransform;
var px2 = this.get_x();
var py1 = this.get_y();
var norm1 = _this1.a * _this1.d - _this1.b * _this1.c;
var py2 = norm1 == 0 ? -_this1.ty : 1.0 / norm1 * (_this1.a * (py1 - _this1.ty) + _this1.b * (_this1.tx - px2));
var upPos = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY());
var leftPos;
var rightPos;
leftPos = Math.min(this.__selectionIndex,upPos) | 0;
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_onFocusIn: function(event) {
if(this.get_type() == 1 && this.stage != null && this.stage.get_focus() == this) {
this.__startTextInput();
}
}
,this_onFocusOut: function(event) {
this.__stopCursorTimer();
if(event.relatedObject == null || !js_Boot.__instanceof(event.relatedObject,openfl_text_TextField)) {
this.__stopTextInput();
} else {
if(this.stage != null) {
this.stage.window.onTextInput.remove($bind(this,this.window_onTextInput));
this.stage.window.onKeyDown.remove($bind(this,this.window_onKeyDown));
}
this.__inputEnabled = false;
}
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(lime_text__$UTF8String_UTF8String_$Impl_$.substring(this.__text,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();
}
}
this.stage.addEventListener("mouseMove",$bind(this,this.stage_onMouseMove));
this.stage.addEventListener("mouseUp",$bind(this,this.stage_onMouseUp));
}
,this_onMouseWheel: function(event) {
var _g = this;
_g.set_scrollV(_g.get_scrollV() - event.delta);
}
,window_onKeyDown: function(key,modifier) {
switch(key) {
case 8:
if(this.__selectionIndex == this.__caretIndex && this.__caretIndex > 0) {
this.__selectionIndex = this.__caretIndex - 1;
}
if(this.__selectionIndex != this.__caretIndex) {
this.replaceSelectedText("");
this.__selectionIndex = this.__caretIndex;
this.dispatchEvent(new openfl_events_Event("change",true));
}
break;
case 97:
if(this.get_selectable()) {
if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier) || lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier)) {
this.__caretIndex = lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text);
this.__selectionIndex = 0;
}
}
break;
case 99:
if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier) || lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier)) {
if(this.__caretIndex != this.__selectionIndex) {
lime_system_Clipboard.set_text(lime_text__$UTF8String_UTF8String_$Impl_$.substring(this.__text,this.__caretIndex,this.__selectionIndex));
}
}
break;
case 120:
if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier) || lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier)) {
if(this.__caretIndex != this.__selectionIndex) {
lime_system_Clipboard.set_text(lime_text__$UTF8String_UTF8String_$Impl_$.substring(this.__text,this.__caretIndex,this.__selectionIndex));
this.replaceSelectedText("");
this.dispatchEvent(new openfl_events_Event("change",true));
}
}
break;
case 127:
if(this.__selectionIndex == this.__caretIndex && this.__caretIndex < lime_text__$UTF8String_UTF8String_$Impl_$.get_length(this.__text)) {
this.__selectionIndex = this.__caretIndex + 1;
}
if(this.__selectionIndex != this.__caretIndex) {
this.replaceSelectedText("");
this.__selectionIndex = this.__caretIndex;
this.dispatchEvent(new openfl_events_Event("change",true));
}
break;
case 1073741898:
if(this.get_selectable()) {
this.__caretBeginningOfLine();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741901:
if(this.get_selectable()) {
this.__caretEndOfLine();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741903:
if(this.get_selectable()) {
if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier)) {
this.__caretEndOfLine();
if(!lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)) {
this.__selectionIndex = this.__caretIndex;
}
} else if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)) {
this.__caretNextCharacter();
} else {
if(this.__selectionIndex == this.__caretIndex) {
this.__caretNextCharacter();
} else {
this.__caretIndex = Math.max(this.__caretIndex,this.__selectionIndex) | 0;
}
this.__selectionIndex = this.__caretIndex;
}
this.__updateScrollH();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741904:
if(this.get_selectable()) {
if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier)) {
this.__caretBeginningOfLine();
if(!lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)) {
this.__selectionIndex = this.__caretIndex;
}
} else if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)) {
this.__caretPreviousCharacter();
} else {
if(this.__selectionIndex == this.__caretIndex) {
this.__caretPreviousCharacter();
} else {
this.__caretIndex = Math.min(this.__caretIndex,this.__selectionIndex) | 0;
}
this.__selectionIndex = this.__caretIndex;
}
this.__updateScrollH();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741905:
if(this.get_selectable()) {
if(!this.__textEngine.multiline) {
return;
}
if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)) {
this.__caretNextLine();
} else {
if(this.__selectionIndex == this.__caretIndex) {
this.__caretNextLine();
} else {
var lineIndex = this.getLineIndexOfChar(Math.max(this.__caretIndex,this.__selectionIndex) | 0);
this.__caretNextLine(lineIndex,Math.min(this.__caretIndex,this.__selectionIndex) | 0);
}
this.__selectionIndex = this.__caretIndex;
}
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741906:
if(this.get_selectable()) {
if(!this.__textEngine.multiline) {
return;
}
if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)) {
this.__caretPreviousLine();
} else {
if(this.__selectionIndex == this.__caretIndex) {
this.__caretPreviousLine();
} else {
var lineIndex1 = this.getLineIndexOfChar(Math.min(this.__caretIndex,this.__selectionIndex) | 0);
this.__caretPreviousLine(lineIndex1,Math.min(this.__caretIndex,this.__selectionIndex) | 0);
}
this.__selectionIndex = this.__caretIndex;
}
this.__stopCursorTimer();
this.__startCursorTimer();
}
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));
}
}
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_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 openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$ = {};
$hxClasses["openfl.text._TextFieldAutoSize.TextFieldAutoSize_Impl_"] = openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$;
openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.__name__ = ["openfl","text","_TextFieldAutoSize","TextFieldAutoSize_Impl_"];
openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.fromString = function(value) {
switch(value) {
case "center":
return 0;
case "left":
return 1;
case "none":
return 2;
case "right":
return 3;
default:
return null;
}
};
openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "center";
case 1:
return "left";
case 2:
return "none";
case 3:
return "right";
default:
return null;
}
};
var openfl_text__$TextFieldType_TextFieldType_$Impl_$ = {};
$hxClasses["openfl.text._TextFieldType.TextFieldType_Impl_"] = openfl_text__$TextFieldType_TextFieldType_$Impl_$;
openfl_text__$TextFieldType_TextFieldType_$Impl_$.__name__ = ["openfl","text","_TextFieldType","TextFieldType_Impl_"];
openfl_text__$TextFieldType_TextFieldType_$Impl_$.fromString = function(value) {
switch(value) {
case "dynamic":
return 0;
case "input":
return 1;
default:
return null;
}
};
openfl_text__$TextFieldType_TextFieldType_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "dynamic";
case 1:
return "input";
default:
return null;
}
};
var openfl_text_TextFormat = function(font,size,color,bold,italic,underline,url,target,align,leftMargin,rightMargin,indent,leading) {
this.font = font;
this.size = size;
this.color = color;
this.bold = bold;
this.italic = italic;
this.underline = underline;
this.url = url;
this.target = target;
this.align = align;
this.leftMargin = leftMargin;
this.rightMargin = rightMargin;
this.indent = indent;
this.leading = leading;
};
$hxClasses["openfl.text.TextFormat"] = openfl_text_TextFormat;
openfl_text_TextFormat.__name__ = ["openfl","text","TextFormat"];
openfl_text_TextFormat.prototype = {
align: null
,blockIndent: null
,bold: null
,bullet: null
,color: null
,font: null
,indent: null
,italic: null
,kerning: null
,leading: null
,leftMargin: null
,letterSpacing: null
,rightMargin: null
,size: null
,tabStops: null
,target: null
,underline: null
,url: null
,__ascent: null
,__descent: 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;
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 && format.url != "") {
this.url = format.url;
}
if(format.url == "" && this.url == null) {
this.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;
}
}
,__class__: openfl_text_TextFormat
};
var openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$ = {};
$hxClasses["openfl.text._TextFormatAlign.TextFormatAlign_Impl_"] = openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$;
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.__name__ = ["openfl","text","_TextFormatAlign","TextFormatAlign_Impl_"];
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.fromString = function(value) {
switch(value) {
case "center":
return 0;
case "end":
return 1;
case "justify":
return 2;
case "left":
return 3;
case "right":
return 4;
case "start":
return 5;
default:
return null;
}
};
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "center";
case 1:
return "end";
case 2:
return "justify";
case 3:
return "left";
case 4:
return "right";
case 5:
return "start";
default:
return null;
}
};
var openfl_text_TextLineMetrics = function(x,width,height,ascent,descent,leading) {
this.x = x;
this.width = width;
this.height = height;
this.ascent = ascent;
this.descent = descent;
this.leading = leading;
};
$hxClasses["openfl.text.TextLineMetrics"] = openfl_text_TextLineMetrics;
openfl_text_TextLineMetrics.__name__ = ["openfl","text","TextLineMetrics"];
openfl_text_TextLineMetrics.prototype = {
ascent: null
,descent: null
,height: null
,leading: null
,width: null
,x: null
,__class__: openfl_text_TextLineMetrics
};
var openfl_ui_GameInputControl = function(device,id,minValue,maxValue,value) {
if(value == null) {
value = 0;
}
openfl_events_EventDispatcher.call(this);
this.device = device;
this.id = id;
this.minValue = minValue;
this.maxValue = maxValue;
this.value = value;
};
$hxClasses["openfl.ui.GameInputControl"] = openfl_ui_GameInputControl;
openfl_ui_GameInputControl.__name__ = ["openfl","ui","GameInputControl"];
openfl_ui_GameInputControl.__super__ = openfl_events_EventDispatcher;
openfl_ui_GameInputControl.prototype = $extend(openfl_events_EventDispatcher.prototype,{
device: null
,id: null
,maxValue: null
,minValue: null
,value: null
,__class__: openfl_ui_GameInputControl
});
var openfl_ui_GameInputDevice = function(id,name) {
this.__controls = [];
this.__button = new haxe_ds_IntMap();
this.__axis = new haxe_ds_IntMap();
this.id = id;
this.name = name;
var control;
var _g = 0;
while(_g < 6) {
var i = _g++;
control = new openfl_ui_GameInputControl(this,"AXIS_" + i,-1,1);
this.__axis.h[i] = control;
this.__controls.push(control);
}
var _g1 = 0;
while(_g1 < 15) {
var i1 = _g1++;
control = new openfl_ui_GameInputControl(this,"BUTTON_" + i1,0,1);
this.__button.h[i1] = control;
this.__controls.push(control);
}
};
$hxClasses["openfl.ui.GameInputDevice"] = openfl_ui_GameInputDevice;
openfl_ui_GameInputDevice.__name__ = ["openfl","ui","GameInputDevice"];
openfl_ui_GameInputDevice.prototype = {
enabled: null
,id: null
,name: null
,sampleInterval: null
,__axis: null
,__button: null
,__controls: null
,__gamepad: null
,getCachedSamples: function(data,append) {
if(append == null) {
append = false;
}
return 0;
}
,getControlAt: function(i) {
if(i >= 0 && i < this.__controls.length) {
return this.__controls[i];
}
return null;
}
,startCachingSamples: function(numSamples,controls) {
}
,stopCachingSamples: function() {
}
,get_numControls: function() {
return this.__controls.length;
}
,__class__: openfl_ui_GameInputDevice
,__properties__: {get_numControls:"get_numControls"}
};
var openfl_ui_Keyboard = function() { };
$hxClasses["openfl.ui.Keyboard"] = openfl_ui_Keyboard;
openfl_ui_Keyboard.__name__ = ["openfl","ui","Keyboard"];
openfl_ui_Keyboard.capsLock = null;
openfl_ui_Keyboard.numLock = null;
openfl_ui_Keyboard.isAccessible = function() {
return false;
};
openfl_ui_Keyboard.__convertKeyCode = function(key) {
switch(key) {
case 8:
return 8;
case 9:
return 9;
case 13:
return 13;
case 27:
return 27;
case 32:
return 32;
case 33:
return 49;
case 34:
return 222;
case 35:
return 51;
case 36:
return 52;
case 37:
return 53;
case 38:
return 55;
case 39:
return 222;
case 40:
return 57;
case 41:
return 48;
case 42:
return 56;
case 44:
return 188;
case 45:
return 189;
case 46:
return 190;
case 47:
return 191;
case 48:
return 48;
case 49:
return 49;
case 50:
return 50;
case 51:
return 51;
case 52:
return 52;
case 53:
return 53;
case 54:
return 54;
case 55:
return 55;
case 56:
return 56;
case 57:
return 57;
case 58:
return 186;
case 59:
return 186;
case 60:
return 60;
case 61:
return 187;
case 62:
return 190;
case 63:
return 191;
case 64:
return 50;
case 91:
return 219;
case 92:
return 220;
case 93:
return 221;
case 94:
return 54;
case 95:
return 189;
case 96:
return 192;
case 97:
return 65;
case 98:
return 66;
case 99:
return 67;
case 100:
return 68;
case 101:
return 69;
case 102:
return 70;
case 103:
return 71;
case 104:
return 72;
case 105:
return 73;
case 106:
return 74;
case 107:
return 75;
case 108:
return 76;
case 109:
return 77;
case 110:
return 78;
case 111:
return 79;
case 112:
return 80;
case 113:
return 81;
case 114:
return 82;
case 115:
return 83;
case 116:
return 84;
case 117:
return 85;
case 118:
return 86;
case 119:
return 87;
case 120:
return 88;
case 121:
return 89;
case 122:
return 90;
case 127:
return 46;
case 1073741881:
return 20;
case 1073741882:
return 112;
case 1073741883:
return 113;
case 1073741884:
return 114;
case 1073741885:
return 115;
case 1073741886:
return 116;
case 1073741887:
return 117;
case 1073741888:
return 118;
case 1073741889:
return 119;
case 1073741890:
return 120;
case 1073741891:
return 121;
case 1073741892:
return 122;
case 1073741893:
return 123;
case 1073741894:
return 301;
case 1073741895:
return 145;
case 1073741896:
return 19;
case 1073741897:
return 45;
case 1073741898:
return 36;
case 1073741899:
return 33;
case 1073741901:
return 35;
case 1073741902:
return 34;
case 1073741903:
return 39;
case 1073741904:
return 37;
case 1073741905:
return 40;
case 1073741906:
return 38;
case 1073741907:
return 144;
case 1073741908:
return 111;
case 1073741909:
return 106;
case 1073741910:
return 109;
case 1073741911:
return 107;
case 1073741912:
return 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_MouseCursor_$Impl_$ = {};
$hxClasses["openfl.ui._MouseCursor.MouseCursor_Impl_"] = openfl_ui__$MouseCursor_MouseCursor_$Impl_$;
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__name__ = ["openfl","ui","_MouseCursor","MouseCursor_Impl_"];
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.fromLimeCursor = function(cursor) {
switch(cursor[1]) {
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_MouseCursor_$Impl_$.toLimeCursor = function(cursor) {
switch(cursor) {
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_MultitouchInputMode_$Impl_$ = {};
$hxClasses["openfl.ui._MultitouchInputMode.MultitouchInputMode_Impl_"] = openfl_ui__$MultitouchInputMode_MultitouchInputMode_$Impl_$;
openfl_ui__$MultitouchInputMode_MultitouchInputMode_$Impl_$.__name__ = ["openfl","ui","_MultitouchInputMode","MultitouchInputMode_Impl_"];
openfl_ui__$MultitouchInputMode_MultitouchInputMode_$Impl_$.fromString = function(value) {
switch(value) {
case "gesture":
return 0;
case "none":
return 1;
case "touchPoint":
return 2;
default:
return null;
}
};
openfl_ui__$MultitouchInputMode_MultitouchInputMode_$Impl_$.toString = function(value) {
switch(value) {
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);
var _this = this1;
if(__map_reserved["mov"] != null) {
_this.setReserved("mov",v);
} else {
_this.h["mov"] = v;
}
var this2 = openfl_utils_AGALMiniAssembler.OPMAP;
var v1 = new openfl_utils__$AGALMiniAssembler_OpCode("add",3,1,0);
var _this1 = this2;
if(__map_reserved["add"] != null) {
_this1.setReserved("add",v1);
} else {
_this1.h["add"] = v1;
}
var this3 = openfl_utils_AGALMiniAssembler.OPMAP;
var v2 = new openfl_utils__$AGALMiniAssembler_OpCode("sub",3,2,0);
var _this2 = this3;
if(__map_reserved["sub"] != null) {
_this2.setReserved("sub",v2);
} else {
_this2.h["sub"] = v2;
}
var this4 = openfl_utils_AGALMiniAssembler.OPMAP;
var v3 = new openfl_utils__$AGALMiniAssembler_OpCode("mul",3,3,0);
var _this3 = this4;
if(__map_reserved["mul"] != null) {
_this3.setReserved("mul",v3);
} else {
_this3.h["mul"] = v3;
}
var this5 = openfl_utils_AGALMiniAssembler.OPMAP;
var v4 = new openfl_utils__$AGALMiniAssembler_OpCode("div",3,4,0);
var _this4 = this5;
if(__map_reserved["div"] != null) {
_this4.setReserved("div",v4);
} else {
_this4.h["div"] = v4;
}
var this6 = openfl_utils_AGALMiniAssembler.OPMAP;
var v5 = new openfl_utils__$AGALMiniAssembler_OpCode("rcp",2,5,0);
var _this5 = this6;
if(__map_reserved["rcp"] != null) {
_this5.setReserved("rcp",v5);
} else {
_this5.h["rcp"] = v5;
}
var this7 = openfl_utils_AGALMiniAssembler.OPMAP;
var v6 = new openfl_utils__$AGALMiniAssembler_OpCode("min",3,6,0);
var _this6 = this7;
if(__map_reserved["min"] != null) {
_this6.setReserved("min",v6);
} else {
_this6.h["min"] = v6;
}
var this8 = openfl_utils_AGALMiniAssembler.OPMAP;
var v7 = new openfl_utils__$AGALMiniAssembler_OpCode("max",3,7,0);
var _this7 = this8;
if(__map_reserved["max"] != null) {
_this7.setReserved("max",v7);
} else {
_this7.h["max"] = v7;
}
var this9 = openfl_utils_AGALMiniAssembler.OPMAP;
var v8 = new openfl_utils__$AGALMiniAssembler_OpCode("frc",2,8,0);
var _this8 = this9;
if(__map_reserved["frc"] != null) {
_this8.setReserved("frc",v8);
} else {
_this8.h["frc"] = v8;
}
var this10 = openfl_utils_AGALMiniAssembler.OPMAP;
var v9 = new openfl_utils__$AGALMiniAssembler_OpCode("sqt",2,9,0);
var _this9 = this10;
if(__map_reserved["sqt"] != null) {
_this9.setReserved("sqt",v9);
} else {
_this9.h["sqt"] = v9;
}
var this11 = openfl_utils_AGALMiniAssembler.OPMAP;
var v10 = new openfl_utils__$AGALMiniAssembler_OpCode("rsq",2,10,0);
var _this10 = this11;
if(__map_reserved["rsq"] != null) {
_this10.setReserved("rsq",v10);
} else {
_this10.h["rsq"] = v10;
}
var this12 = openfl_utils_AGALMiniAssembler.OPMAP;
var v11 = new openfl_utils__$AGALMiniAssembler_OpCode("pow",3,11,0);
var _this11 = this12;
if(__map_reserved["pow"] != null) {
_this11.setReserved("pow",v11);
} else {
_this11.h["pow"] = v11;
}
var this13 = openfl_utils_AGALMiniAssembler.OPMAP;
var v12 = new openfl_utils__$AGALMiniAssembler_OpCode("log",2,12,0);
var _this12 = this13;
if(__map_reserved["log"] != null) {
_this12.setReserved("log",v12);
} else {
_this12.h["log"] = v12;
}
var this14 = openfl_utils_AGALMiniAssembler.OPMAP;
var v13 = new openfl_utils__$AGALMiniAssembler_OpCode("exp",2,13,0);
var _this13 = this14;
if(__map_reserved["exp"] != null) {
_this13.setReserved("exp",v13);
} else {
_this13.h["exp"] = v13;
}
var this15 = openfl_utils_AGALMiniAssembler.OPMAP;
var v14 = new openfl_utils__$AGALMiniAssembler_OpCode("nrm",2,14,0);
var _this14 = this15;
if(__map_reserved["nrm"] != null) {
_this14.setReserved("nrm",v14);
} else {
_this14.h["nrm"] = v14;
}
var this16 = openfl_utils_AGALMiniAssembler.OPMAP;
var v15 = new openfl_utils__$AGALMiniAssembler_OpCode("sin",2,15,0);
var _this15 = this16;
if(__map_reserved["sin"] != null) {
_this15.setReserved("sin",v15);
} else {
_this15.h["sin"] = v15;
}
var this17 = openfl_utils_AGALMiniAssembler.OPMAP;
var v16 = new openfl_utils__$AGALMiniAssembler_OpCode("cos",2,16,0);
var _this16 = this17;
if(__map_reserved["cos"] != null) {
_this16.setReserved("cos",v16);
} else {
_this16.h["cos"] = v16;
}
var this18 = openfl_utils_AGALMiniAssembler.OPMAP;
var v17 = new openfl_utils__$AGALMiniAssembler_OpCode("crs",3,17,0);
var _this17 = this18;
if(__map_reserved["crs"] != null) {
_this17.setReserved("crs",v17);
} else {
_this17.h["crs"] = v17;
}
var this19 = openfl_utils_AGALMiniAssembler.OPMAP;
var v18 = new openfl_utils__$AGALMiniAssembler_OpCode("dp3",3,18,0);
var _this18 = this19;
if(__map_reserved["dp3"] != null) {
_this18.setReserved("dp3",v18);
} else {
_this18.h["dp3"] = v18;
}
var this20 = openfl_utils_AGALMiniAssembler.OPMAP;
var v19 = new openfl_utils__$AGALMiniAssembler_OpCode("dp4",3,19,0);
var _this19 = this20;
if(__map_reserved["dp4"] != null) {
_this19.setReserved("dp4",v19);
} else {
_this19.h["dp4"] = v19;
}
var this21 = openfl_utils_AGALMiniAssembler.OPMAP;
var v20 = new openfl_utils__$AGALMiniAssembler_OpCode("abs",2,20,0);
var _this20 = this21;
if(__map_reserved["abs"] != null) {
_this20.setReserved("abs",v20);
} else {
_this20.h["abs"] = v20;
}
var this22 = openfl_utils_AGALMiniAssembler.OPMAP;
var v21 = new openfl_utils__$AGALMiniAssembler_OpCode("neg",2,21,0);
var _this21 = this22;
if(__map_reserved["neg"] != null) {
_this21.setReserved("neg",v21);
} else {
_this21.h["neg"] = v21;
}
var this23 = openfl_utils_AGALMiniAssembler.OPMAP;
var v22 = new openfl_utils__$AGALMiniAssembler_OpCode("sat",2,22,0);
var _this22 = this23;
if(__map_reserved["sat"] != null) {
_this22.setReserved("sat",v22);
} else {
_this22.h["sat"] = v22;
}
var this24 = openfl_utils_AGALMiniAssembler.OPMAP;
var v23 = new openfl_utils__$AGALMiniAssembler_OpCode("m33",3,23,16);
var _this23 = this24;
if(__map_reserved["m33"] != null) {
_this23.setReserved("m33",v23);
} else {
_this23.h["m33"] = v23;
}
var this25 = openfl_utils_AGALMiniAssembler.OPMAP;
var v24 = new openfl_utils__$AGALMiniAssembler_OpCode("m44",3,24,16);
var _this24 = this25;
if(__map_reserved["m44"] != null) {
_this24.setReserved("m44",v24);
} else {
_this24.h["m44"] = v24;
}
var this26 = openfl_utils_AGALMiniAssembler.OPMAP;
var v25 = new openfl_utils__$AGALMiniAssembler_OpCode("m34",3,25,16);
var _this25 = this26;
if(__map_reserved["m34"] != null) {
_this25.setReserved("m34",v25);
} else {
_this25.h["m34"] = v25;
}
var this27 = openfl_utils_AGALMiniAssembler.OPMAP;
var v26 = new openfl_utils__$AGALMiniAssembler_OpCode("ddx",2,26,288);
var _this26 = this27;
if(__map_reserved["ddx"] != null) {
_this26.setReserved("ddx",v26);
} else {
_this26.h["ddx"] = v26;
}
var this28 = openfl_utils_AGALMiniAssembler.OPMAP;
var v27 = new openfl_utils__$AGALMiniAssembler_OpCode("ddy",2,27,288);
var _this27 = this28;
if(__map_reserved["ddy"] != null) {
_this27.setReserved("ddy",v27);
} else {
_this27.h["ddy"] = v27;
}
var this29 = openfl_utils_AGALMiniAssembler.OPMAP;
var v28 = new openfl_utils__$AGALMiniAssembler_OpCode("ife",2,28,897);
var _this28 = this29;
if(__map_reserved["ife"] != null) {
_this28.setReserved("ife",v28);
} else {
_this28.h["ife"] = v28;
}
var this30 = openfl_utils_AGALMiniAssembler.OPMAP;
var v29 = new openfl_utils__$AGALMiniAssembler_OpCode("ine",2,29,897);
var _this29 = this30;
if(__map_reserved["ine"] != null) {
_this29.setReserved("ine",v29);
} else {
_this29.h["ine"] = v29;
}
var this31 = openfl_utils_AGALMiniAssembler.OPMAP;
var v30 = new openfl_utils__$AGALMiniAssembler_OpCode("ifg",2,30,897);
var _this30 = this31;
if(__map_reserved["ifg"] != null) {
_this30.setReserved("ifg",v30);
} else {
_this30.h["ifg"] = v30;
}
var this32 = openfl_utils_AGALMiniAssembler.OPMAP;
var v31 = new openfl_utils__$AGALMiniAssembler_OpCode("ifl",2,31,897);
var _this31 = this32;
if(__map_reserved["ifl"] != null) {
_this31.setReserved("ifl",v31);
} else {
_this31.h["ifl"] = v31;
}
var this33 = openfl_utils_AGALMiniAssembler.OPMAP;
var v32 = new openfl_utils__$AGALMiniAssembler_OpCode("els",0,32,1921);
var _this32 = this33;
if(__map_reserved["els"] != null) {
_this32.setReserved("els",v32);
} else {
_this32.h["els"] = v32;
}
var this34 = openfl_utils_AGALMiniAssembler.OPMAP;
var v33 = new openfl_utils__$AGALMiniAssembler_OpCode("eif",0,33,1409);
var _this33 = this34;
if(__map_reserved["eif"] != null) {
_this33.setReserved("eif",v33);
} else {
_this33.h["eif"] = v33;
}
var this35 = openfl_utils_AGALMiniAssembler.OPMAP;
var v34 = new openfl_utils__$AGALMiniAssembler_OpCode("kil",1,39,160);
var _this34 = this35;
if(__map_reserved["kil"] != null) {
_this34.setReserved("kil",v34);
} else {
_this34.h["kil"] = v34;
}
var this36 = openfl_utils_AGALMiniAssembler.OPMAP;
var v35 = new openfl_utils__$AGALMiniAssembler_OpCode("tex",3,40,40);
var _this35 = this36;
if(__map_reserved["tex"] != null) {
_this35.setReserved("tex",v35);
} else {
_this35.h["tex"] = v35;
}
var this37 = openfl_utils_AGALMiniAssembler.OPMAP;
var v36 = new openfl_utils__$AGALMiniAssembler_OpCode("sge",3,41,0);
var _this36 = this37;
if(__map_reserved["sge"] != null) {
_this36.setReserved("sge",v36);
} else {
_this36.h["sge"] = v36;
}
var this38 = openfl_utils_AGALMiniAssembler.OPMAP;
var v37 = new openfl_utils__$AGALMiniAssembler_OpCode("slt",3,42,0);
var _this37 = this38;
if(__map_reserved["slt"] != null) {
_this37.setReserved("slt",v37);
} else {
_this37.h["slt"] = v37;
}
var this39 = openfl_utils_AGALMiniAssembler.OPMAP;
var v38 = new openfl_utils__$AGALMiniAssembler_OpCode("sgn",2,43,0);
var _this38 = this39;
if(__map_reserved["sgn"] != null) {
_this38.setReserved("sgn",v38);
} else {
_this38.h["sgn"] = v38;
}
var this40 = openfl_utils_AGALMiniAssembler.OPMAP;
var v39 = new openfl_utils__$AGALMiniAssembler_OpCode("seq",3,44,0);
var _this39 = this40;
if(__map_reserved["seq"] != null) {
_this39.setReserved("seq",v39);
} else {
_this39.h["seq"] = v39;
}
var this41 = openfl_utils_AGALMiniAssembler.OPMAP;
var v40 = new openfl_utils__$AGALMiniAssembler_OpCode("sne",3,45,0);
var _this40 = this41;
if(__map_reserved["sne"] != null) {
_this40.setReserved("sne",v40);
} else {
_this40.h["sne"] = v40;
}
var this42 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v41 = new openfl_utils__$AGALMiniAssembler_Sampler("rgba",8,0);
var _this41 = this42;
if(__map_reserved["rgba"] != null) {
_this41.setReserved("rgba",v41);
} else {
_this41.h["rgba"] = v41;
}
var this43 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v42 = new openfl_utils__$AGALMiniAssembler_Sampler("compressed",8,1);
var _this42 = this43;
if(__map_reserved["compressed"] != null) {
_this42.setReserved("compressed",v42);
} else {
_this42.h["compressed"] = v42;
}
var this44 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v43 = new openfl_utils__$AGALMiniAssembler_Sampler("compressedalpha",8,2);
var _this43 = this44;
if(__map_reserved["compressedalpha"] != null) {
_this43.setReserved("compressedalpha",v43);
} else {
_this43.h["compressedalpha"] = v43;
}
var this45 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v44 = new openfl_utils__$AGALMiniAssembler_Sampler("dxt1",8,1);
var _this44 = this45;
if(__map_reserved["dxt1"] != null) {
_this44.setReserved("dxt1",v44);
} else {
_this44.h["dxt1"] = v44;
}
var this46 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v45 = new openfl_utils__$AGALMiniAssembler_Sampler("dxt5",8,2);
var _this45 = this46;
if(__map_reserved["dxt5"] != null) {
_this45.setReserved("dxt5",v45);
} else {
_this45.h["dxt5"] = v45;
}
var this47 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v46 = new openfl_utils__$AGALMiniAssembler_Sampler("video",8,3);
var _this46 = this47;
if(__map_reserved["video"] != null) {
_this46.setReserved("video",v46);
} else {
_this46.h["video"] = v46;
}
var this48 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v47 = new openfl_utils__$AGALMiniAssembler_Sampler("2d",12,0);
var _this47 = this48;
if(__map_reserved["2d"] != null) {
_this47.setReserved("2d",v47);
} else {
_this47.h["2d"] = v47;
}
var this49 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v48 = new openfl_utils__$AGALMiniAssembler_Sampler("3d",12,2);
var _this48 = this49;
if(__map_reserved["3d"] != null) {
_this48.setReserved("3d",v48);
} else {
_this48.h["3d"] = v48;
}
var this50 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v49 = new openfl_utils__$AGALMiniAssembler_Sampler("cube",12,1);
var _this49 = this50;
if(__map_reserved["cube"] != null) {
_this49.setReserved("cube",v49);
} else {
_this49.h["cube"] = v49;
}
var this51 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v50 = new openfl_utils__$AGALMiniAssembler_Sampler("mipnearest",24,1);
var _this50 = this51;
if(__map_reserved["mipnearest"] != null) {
_this50.setReserved("mipnearest",v50);
} else {
_this50.h["mipnearest"] = v50;
}
var this52 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v51 = new openfl_utils__$AGALMiniAssembler_Sampler("miplinear",24,2);
var _this51 = this52;
if(__map_reserved["miplinear"] != null) {
_this51.setReserved("miplinear",v51);
} else {
_this51.h["miplinear"] = v51;
}
var this53 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v52 = new openfl_utils__$AGALMiniAssembler_Sampler("mipnone",24,0);
var _this52 = this53;
if(__map_reserved["mipnone"] != null) {
_this52.setReserved("mipnone",v52);
} else {
_this52.h["mipnone"] = v52;
}
var this54 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v53 = new openfl_utils__$AGALMiniAssembler_Sampler("nomip",24,0);
var _this53 = this54;
if(__map_reserved["nomip"] != null) {
_this53.setReserved("nomip",v53);
} else {
_this53.h["nomip"] = v53;
}
var this55 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v54 = new openfl_utils__$AGALMiniAssembler_Sampler("nearest",28,0);
var _this54 = this55;
if(__map_reserved["nearest"] != null) {
_this54.setReserved("nearest",v54);
} else {
_this54.h["nearest"] = v54;
}
var this56 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v55 = new openfl_utils__$AGALMiniAssembler_Sampler("linear",28,1);
var _this55 = this56;
if(__map_reserved["linear"] != null) {
_this55.setReserved("linear",v55);
} else {
_this55.h["linear"] = v55;
}
var this57 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v56 = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic2x",28,2);
var _this56 = this57;
if(__map_reserved["anisotropic2x"] != null) {
_this56.setReserved("anisotropic2x",v56);
} else {
_this56.h["anisotropic2x"] = v56;
}
var this58 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v57 = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic4x",28,3);
var _this57 = this58;
if(__map_reserved["anisotropic4x"] != null) {
_this57.setReserved("anisotropic4x",v57);
} else {
_this57.h["anisotropic4x"] = v57;
}
var this59 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v58 = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic8x",28,4);
var _this58 = this59;
if(__map_reserved["anisotropic8x"] != null) {
_this58.setReserved("anisotropic8x",v58);
} else {
_this58.h["anisotropic8x"] = v58;
}
var this60 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v59 = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic16x",28,5);
var _this59 = this60;
if(__map_reserved["anisotropic16x"] != null) {
_this59.setReserved("anisotropic16x",v59);
} else {
_this59.h["anisotropic16x"] = v59;
}
var this61 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v60 = new openfl_utils__$AGALMiniAssembler_Sampler("centroid",16,1);
var _this60 = this61;
if(__map_reserved["centroid"] != null) {
_this60.setReserved("centroid",v60);
} else {
_this60.h["centroid"] = v60;
}
var this62 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v61 = new openfl_utils__$AGALMiniAssembler_Sampler("single",16,2);
var _this61 = this62;
if(__map_reserved["single"] != null) {
_this61.setReserved("single",v61);
} else {
_this61.h["single"] = v61;
}
var this63 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v62 = new openfl_utils__$AGALMiniAssembler_Sampler("ignoresampler",16,4);
var _this62 = this63;
if(__map_reserved["ignoresampler"] != null) {
_this62.setReserved("ignoresampler",v62);
} else {
_this62.h["ignoresampler"] = v62;
}
var this64 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v63 = new openfl_utils__$AGALMiniAssembler_Sampler("repeat",20,1);
var _this63 = this64;
if(__map_reserved["repeat"] != null) {
_this63.setReserved("repeat",v63);
} else {
_this63.h["repeat"] = v63;
}
var this65 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v64 = new openfl_utils__$AGALMiniAssembler_Sampler("wrap",20,1);
var _this64 = this65;
if(__map_reserved["wrap"] != null) {
_this64.setReserved("wrap",v64);
} else {
_this64.h["wrap"] = v64;
}
var this66 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v65 = new openfl_utils__$AGALMiniAssembler_Sampler("clamp",20,0);
var _this65 = this66;
if(__map_reserved["clamp"] != null) {
_this65.setReserved("clamp",v65);
} else {
_this65.h["clamp"] = v65;
}
var this67 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v66 = new openfl_utils__$AGALMiniAssembler_Sampler("clamp_u_repeat_v",20,2);
var _this66 = this67;
if(__map_reserved["clamp_u_repeat_v"] != null) {
_this66.setReserved("clamp_u_repeat_v",v66);
} else {
_this66.h["clamp_u_repeat_v"] = v66;
}
var this68 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v67 = new openfl_utils__$AGALMiniAssembler_Sampler("repeat_u_clamp_v",20,3);
var _this67 = this68;
if(__map_reserved["repeat_u_clamp_v"] != null) {
_this67.setReserved("repeat_u_clamp_v",v67);
} else {
_this67.h["repeat_u_clamp_v"] = v67;
}
};
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();
var this1 = new openfl_utils_ByteArrayData(0);
this.agalcode = this1;
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 nest = 0;
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);
var _this = openfl_utils_AGALMiniAssembler.OPMAP;
if(__map_reserved[opCode] != null) {
opFound = _this.getReserved(opCode);
} else {
opFound = _this.h[opCode];
}
}
if(opFound == null) {
if(line.length >= 3) {
haxe_Log.trace("warning: bad line " + i + ": " + lines[i],{ fileName : "AGALMiniAssembler.hx", lineNumber : 284, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
++i;
continue;
}
if(this.debugEnabled) {
haxe_Log.trace(opFound,{ fileName : "AGALMiniAssembler.hx", lineNumber : 296, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
if(opFound == null) {
if(line.length >= 3) {
haxe_Log.trace("warning: bad line " + i + ": " + lines[i],{ fileName : "AGALMiniAssembler.hx", lineNumber : 304, 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) {
haxe_Log.trace("emit opcode=" + Std.string(opFound),{ fileName : "AGALMiniAssembler.hx", lineNumber : 338, 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 _g1 = 0;
var _g = regLength;
while(_g1 < _g) {
var j = _g1++;
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) {
haxe_Log.trace("IS REL",{ fileName : "AGALMiniAssembler.hx", lineNumber : 377, 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 _this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var key = res[0];
var regFound = __map_reserved[key] != null ? _this1.getReserved(key) : _this1.h[key];
if(this.debugEnabled) {
haxe_Log.trace(regFound,{ fileName : "AGALMiniAssembler.hx", lineNumber : 399, 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;
}
var pos = regs[j].indexOf(regFound.name) + regFound.name.length;
regs[j] = HxOverrides.substr(regs[j],pos,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_UInt_$Impl_$.gt(regidx,regFound.range)) {
this.error = "error: register operand " + j + " (" + regs[j] + ") index exceeds limit of " + Std.string(_$UInt_UInt_$Impl_$.toFloat(regFound.range + 1)) + ".";
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_UInt_$Impl_$.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 if(isDest) {
regmask = 15;
} else {
regmask = 228;
}
if(isRelative) {
var relname = this.match(relreg[0],reg9);
var _this2 = openfl_utils_AGALMiniAssembler.REGMAP;
var key1 = relname[0];
var regFoundRel = __map_reserved[key1] != null ? _this2.getReserved(key1) : _this2.h[key1];
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_UInt_$Impl_$.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) {
haxe_Log.trace("RELATIVE: type=" + reltype + "==" + relname[0] + " sel=" + Std.string(_$UInt_UInt_$Impl_$.toFloat(relsel)) + "==" + selmatch[0] + " idx=" + Std.string(_$UInt_UInt_$Impl_$.toFloat(regidx)) + " offset=" + reloffset,{ fileName : "AGALMiniAssembler.hx", lineNumber : 574, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
}
if(this.verbose) {
haxe_Log.trace(" emit argcode=" + Std.string(regFound) + "[" + Std.string(_$UInt_UInt_$Impl_$.toFloat(regidx)) + "][" + regmask + "]",{ fileName : "AGALMiniAssembler.hx", lineNumber : 582, 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) {
haxe_Log.trace(" emit sampler",{ fileName : "AGALMiniAssembler.hx", lineNumber : 599, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
var samplerbits = 5;
var optsLength = opts == null ? 0 : opts.length;
var bias = 0.0;
var _g3 = 0;
var _g2 = optsLength;
while(_g3 < _g2) {
var k1 = _g3++;
if(this.verbose) {
haxe_Log.trace(" opt: " + opts[k1],{ fileName : "AGALMiniAssembler.hx", lineNumber : 611, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
var _this3 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var key2 = opts[k1];
var optfound = __map_reserved[key2] != null ? _this3.getReserved(key2) : _this3.h[key2];
if(optfound == null) {
bias = parseFloat(opts[k1]);
if(this.verbose) {
haxe_Log.trace(" bias: " + bias,{ fileName : "AGALMiniAssembler.hx", lineNumber : 625, 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) {
haxe_Log.trace(" bits: " + (samplerbits - 5),{ fileName : "AGALMiniAssembler.hx", lineNumber : 650, 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_ByteArray_$Impl_$.set_length(this.agalcode,0);
haxe_Log.trace(this.error,{ fileName : "AGALMiniAssembler.hx", lineNumber : 703, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
if(this.debugEnabled) {
var dbgLine = "generated bytecode:";
var agalLength = openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(this.agalcode);
var _g11 = 0;
var _g4 = agalLength;
while(_g11 < _g4) {
var index = _g11++;
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;
}
haxe_Log.trace(dbgLine,{ fileName : "AGALMiniAssembler.hx", lineNumber : 739, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
if(this.verbose) {
haxe_Log.trace("AGALMiniAssembler.assemble time: " + (openfl_Lib.getTimer() - start) / 1000 + "s",{ fileName : "AGALMiniAssembler.hx", lineNumber : 745, 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);
var _this = this1;
if(__map_reserved["va"] != null) {
_this.setReserved("va",v);
} else {
_this.h["va"] = v;
}
var this2 = openfl_utils_AGALMiniAssembler.REGMAP;
var v1 = new openfl_utils__$AGALMiniAssembler_Register("vc","vertex constant",1,ignorelimits ? 1024 : version == 1 ? 127 : 249,66);
var _this1 = this2;
if(__map_reserved["vc"] != null) {
_this1.setReserved("vc",v1);
} else {
_this1.h["vc"] = v1;
}
var this3 = openfl_utils_AGALMiniAssembler.REGMAP;
var v2 = new openfl_utils__$AGALMiniAssembler_Register("vt","vertex temporary",2,ignorelimits ? 1024 : version == 1 ? 7 : 25,67);
var _this2 = this3;
if(__map_reserved["vt"] != null) {
_this2.setReserved("vt",v2);
} else {
_this2.h["vt"] = v2;
}
var this4 = openfl_utils_AGALMiniAssembler.REGMAP;
var v3 = new openfl_utils__$AGALMiniAssembler_Register("vo","vertex output",3,ignorelimits ? 1024 : 0,65);
var _this3 = this4;
if(__map_reserved["vo"] != null) {
_this3.setReserved("vo",v3);
} else {
_this3.h["vo"] = v3;
}
var this5 = openfl_utils_AGALMiniAssembler.REGMAP;
var v4 = new openfl_utils__$AGALMiniAssembler_Register("vi","varying",4,ignorelimits ? 1024 : version == 1 ? 7 : 9,99);
var _this4 = this5;
if(__map_reserved["vi"] != null) {
_this4.setReserved("vi",v4);
} else {
_this4.h["vi"] = v4;
}
var this6 = openfl_utils_AGALMiniAssembler.REGMAP;
var v5 = new openfl_utils__$AGALMiniAssembler_Register("fc","fragment constant",1,ignorelimits ? 1024 : version == 1 ? 27 : version == 2 ? 63 : 199,34);
var _this5 = this6;
if(__map_reserved["fc"] != null) {
_this5.setReserved("fc",v5);
} else {
_this5.h["fc"] = v5;
}
var this7 = openfl_utils_AGALMiniAssembler.REGMAP;
var v6 = new openfl_utils__$AGALMiniAssembler_Register("ft","fragment temporary",2,ignorelimits ? 1024 : version == 1 ? 7 : 25,35);
var _this6 = this7;
if(__map_reserved["ft"] != null) {
_this6.setReserved("ft",v6);
} else {
_this6.h["ft"] = v6;
}
var this8 = openfl_utils_AGALMiniAssembler.REGMAP;
var v7 = new openfl_utils__$AGALMiniAssembler_Register("fs","texture sampler",5,ignorelimits ? 1024 : 7,34);
var _this7 = this8;
if(__map_reserved["fs"] != null) {
_this7.setReserved("fs",v7);
} else {
_this7.h["fs"] = v7;
}
var this9 = openfl_utils_AGALMiniAssembler.REGMAP;
var v8 = new openfl_utils__$AGALMiniAssembler_Register("fo","fragment output",3,ignorelimits ? 1024 : version == 1 ? 0 : 3,33);
var _this8 = this9;
if(__map_reserved["fo"] != null) {
_this8.setReserved("fo",v8);
} else {
_this8.h["fo"] = v8;
}
var this10 = openfl_utils_AGALMiniAssembler.REGMAP;
var v9 = new openfl_utils__$AGALMiniAssembler_Register("fd","fragment depth output",6,ignorelimits ? 1024 : version == 1 ? -1 : 0,33);
var _this9 = this10;
if(__map_reserved["fd"] != null) {
_this9.setReserved("fd",v9);
} else {
_this9.h["fd"] = v9;
}
var this11 = openfl_utils_AGALMiniAssembler.REGMAP;
var v10 = new openfl_utils__$AGALMiniAssembler_Register("iid","instance id",7,ignorelimits ? 1024 : 0,66);
var _this10 = this11;
if(__map_reserved["iid"] != null) {
_this10.setReserved("iid",v10);
} else {
_this10.h["iid"] = v10;
}
var this12 = openfl_utils_AGALMiniAssembler.REGMAP;
var _this11 = openfl_utils_AGALMiniAssembler.REGMAP;
var v11 = __map_reserved["vo"] != null ? _this11.getReserved("vo") : _this11.h["vo"];
var _this12 = this12;
if(__map_reserved["op"] != null) {
_this12.setReserved("op",v11);
} else {
_this12.h["op"] = v11;
}
var this13 = openfl_utils_AGALMiniAssembler.REGMAP;
var _this13 = openfl_utils_AGALMiniAssembler.REGMAP;
var v12 = __map_reserved["vi"] != null ? _this13.getReserved("vi") : _this13.h["vi"];
var _this14 = this13;
if(__map_reserved["i"] != null) {
_this14.setReserved("i",v12);
} else {
_this14.h["i"] = v12;
}
var this14 = openfl_utils_AGALMiniAssembler.REGMAP;
var _this15 = openfl_utils_AGALMiniAssembler.REGMAP;
var v13 = __map_reserved["vi"] != null ? _this15.getReserved("vi") : _this15.h["vi"];
var _this16 = this14;
if(__map_reserved["v"] != null) {
_this16.setReserved("v",v13);
} else {
_this16.h["v"] = v13;
}
var this15 = openfl_utils_AGALMiniAssembler.REGMAP;
var _this17 = openfl_utils_AGALMiniAssembler.REGMAP;
var v14 = __map_reserved["fo"] != null ? _this17.getReserved("fo") : _this17.h["fo"];
var _this18 = this15;
if(__map_reserved["oc"] != null) {
_this18.setReserved("oc",v14);
} else {
_this18.h["oc"] = v14;
}
var this16 = openfl_utils_AGALMiniAssembler.REGMAP;
var _this19 = openfl_utils_AGALMiniAssembler.REGMAP;
var v15 = __map_reserved["fd"] != null ? _this19.getReserved("fd") : _this19.h["fd"];
var _this20 = this16;
if(__map_reserved["od"] != null) {
_this20.setReserved("od",v15);
} else {
_this20.h["od"] = v15;
}
var this17 = openfl_utils_AGALMiniAssembler.REGMAP;
var _this21 = openfl_utils_AGALMiniAssembler.REGMAP;
var v16 = __map_reserved["vi"] != null ? _this21.getReserved("vi") : _this21.h["vi"];
var _this22 = this17;
if(__map_reserved["fi"] != null) {
_this22.setReserved("fi",v16);
} else {
_this22.h["fi"] = v16;
}
}
,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=" + Std.string(_$UInt_UInt_$Impl_$.toFloat(this.emitCode)) + ", range=" + Std.string(_$UInt_UInt_$Impl_$.toFloat(this.range)) + ", flags=" + Std.string(_$UInt_UInt_$Impl_$.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=\"" + Std.string(_$UInt_UInt_$Impl_$.toFloat(this.flag)) + "\", mask=" + Std.string(_$UInt_UInt_$Impl_$.toFloat(this.mask)) + "]";
}
,__class__: openfl_utils__$AGALMiniAssembler_Sampler
};
var openfl_utils_IAssetCache = function() { };
$hxClasses["openfl.utils.IAssetCache"] = openfl_utils_IAssetCache;
openfl_utils_IAssetCache.__name__ = ["openfl","utils","IAssetCache"];
openfl_utils_IAssetCache.prototype = {
set_enabled: null
,get_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 keys = this.bitmapData.keys();
var key = keys;
while(key.hasNext()) {
var key1 = key.next();
if(StringTools.startsWith(key1,prefix)) {
this.removeBitmapData(key1);
}
}
var keys1 = this.font.keys();
var key2 = keys1;
while(key2.hasNext()) {
var key3 = key2.next();
if(StringTools.startsWith(key3,prefix)) {
this.removeFont(key3);
}
}
var keys2 = this.sound.keys();
var key4 = keys2;
while(key4.hasNext()) {
var key5 = key4.next();
if(StringTools.startsWith(key5,prefix)) {
this.removeSound(key5);
}
}
}
}
,getBitmapData: function(id) {
var _this = this.bitmapData;
if(__map_reserved[id] != null) {
return _this.getReserved(id);
} else {
return _this.h[id];
}
}
,getFont: function(id) {
var _this = this.font;
if(__map_reserved[id] != null) {
return _this.getReserved(id);
} else {
return _this.h[id];
}
}
,getSound: function(id) {
var _this = this.sound;
if(__map_reserved[id] != null) {
return _this.getReserved(id);
} else {
return _this.h[id];
}
}
,hasBitmapData: function(id) {
var _this = this.bitmapData;
if(__map_reserved[id] != null) {
return _this.existsReserved(id);
} else {
return _this.h.hasOwnProperty(id);
}
}
,hasFont: function(id) {
var _this = this.font;
if(__map_reserved[id] != null) {
return _this.existsReserved(id);
} else {
return _this.h.hasOwnProperty(id);
}
}
,hasSound: function(id) {
var _this = this.sound;
if(__map_reserved[id] != null) {
return _this.existsReserved(id);
} else {
return _this.h.hasOwnProperty(id);
}
}
,removeBitmapData: function(id) {
lime_utils_Assets.cache.image.remove(id);
return this.bitmapData.remove(id);
}
,removeFont: function(id) {
lime_utils_Assets.cache.font.remove(id);
return this.font.remove(id);
}
,removeSound: function(id) {
lime_utils_Assets.cache.audio.remove(id);
return this.sound.remove(id);
}
,setBitmapData: function(id,bitmapData) {
var _this = this.bitmapData;
if(__map_reserved[id] != null) {
_this.setReserved(id,bitmapData);
} else {
_this.h[id] = bitmapData;
}
}
,setFont: function(id,font) {
var _this = this.font;
if(__map_reserved[id] != null) {
_this.setReserved(id,font);
} else {
_this.h[id] = font;
}
}
,setSound: function(id,sound) {
var _this = this.sound;
if(__map_reserved[id] != null) {
_this.setReserved(id,sound);
} else {
_this.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 bitmapData1 = openfl_display_BitmapData.fromImage(image);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_Assets.cache.setBitmapData(id,bitmapData1);
}
return bitmapData1;
}
return null;
};
openfl_utils_Assets.getBytes = function(id) {
return openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(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(js_Boot.__instanceof(limeLibrary,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 : "Assets.hx", lineNumber : 248, className : "openfl.utils.Assets", methodName : "getMovieClip"});
return null;
}
}
}
lime_utils_Log.error("There is no MovieClip asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 257, className : "openfl.utils.Assets", methodName : "getMovieClip"});
} else {
lime_utils_Log.error("There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 261, 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 sound1 = openfl_media_Sound.fromAudioBuffer(buffer);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_Assets.cache.setSound(id,sound1);
}
return sound1;
}
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.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 bitmapData1 = openfl_display_BitmapData.fromImage(image);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_Assets.cache.setBitmapData(id,bitmapData1);
}
promise.complete(bitmapData1);
} else {
promise.error("[Assets] Could not load Image \"" + id + "\"");
}
}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
return promise.future;
};
openfl_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_ByteArray_$Impl_$.fromBytes(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)) {
var tmp = openfl_utils_Assets.cache.getFont(id);
promise.complete(tmp);
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(js_Boot.__instanceof(library,openfl_utils_AssetLibrary)) {
_library = library;
} else {
_library = new openfl_utils_AssetLibrary();
_library.__proxy = library;
lime_utils_Assets.registerLibrary(name,_library);
}
}
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(js_Boot.__instanceof(limeLibrary,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.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 Type.resolveClass(name);
};
openfl_utils_Assets.resolveEnum = function(name) {
var value = Type.resolveEnum(name);
return value;
};
openfl_utils_Assets.unloadLibrary = function(name) {
lime_utils_Assets.unloadLibrary(name);
};
openfl_utils_Assets.LimeAssets_onChange = function() {
openfl_utils_Assets.dispatchEvent(new openfl_events_Event("change"));
};
var openfl_utils__$ByteArray_ByteArray_$Impl_$ = {};
$hxClasses["openfl.utils._ByteArray.ByteArray_Impl_"] = openfl_utils__$ByteArray_ByteArray_$Impl_$;
openfl_utils__$ByteArray_ByteArray_$Impl_$.__name__ = ["openfl","utils","_ByteArray","ByteArray_Impl_"];
openfl_utils__$ByteArray_ByteArray_$Impl_$.__properties__ = {set_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_ByteArray_$Impl_$._new = function(length) {
if(length == null) {
length = 0;
}
var this1 = new openfl_utils_ByteArrayData(length);
return this1;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.clear = function(this1) {
this1.clear();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.compress = function(this1,algorithm) {
this1.compress(algorithm);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.deflate = function(this1) {
this1.deflate();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.fromArrayBuffer = function(buffer) {
if(buffer == null) {
return null;
}
return openfl_utils_ByteArrayData.fromBytes(haxe_io_Bytes.ofData(buffer));
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes = function(bytes) {
if(bytes == null) {
return null;
}
if(js_Boot.__instanceof(bytes,openfl_utils_ByteArrayData)) {
return bytes;
} else {
return openfl_utils_ByteArrayData.fromBytes(bytes);
}
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytesData = function(bytesData) {
if(bytesData == null) {
return null;
}
return openfl_utils_ByteArrayData.fromBytes(haxe_io_Bytes.ofData(bytesData));
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.fromFile = function(path) {
return openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(lime_utils__$Bytes_Bytes_$Impl_$.fromFile(path));
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.fromLimeBytes = function(bytes) {
return openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(bytes);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.get = function(this1,index) {
return this1.b[index];
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.inflate = function(this1) {
this1.inflate();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.loadFromBytes = function(bytes) {
return lime_utils__$Bytes_Bytes_$Impl_$.loadFromBytes(bytes).then(function(limeBytes) {
var byteArray = openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(limeBytes);
return lime_app_Future.withValue(byteArray);
});
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.loadFromFile = function(path) {
return lime_utils__$Bytes_Bytes_$Impl_$.loadFromFile(path).then(function(limeBytes) {
var byteArray = openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(limeBytes);
return lime_app_Future.withValue(byteArray);
});
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readBoolean = function(this1) {
return this1.readBoolean();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readByte = function(this1) {
return this1.readByte();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readBytes = function(this1,bytes,offset,length) {
if(length == null) {
length = 0;
}
if(offset == null) {
offset = 0;
}
this1.readBytes(bytes,offset,length);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readDouble = function(this1) {
return this1.readDouble();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readFloat = function(this1) {
return this1.readFloat();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readInt = function(this1) {
return this1.readInt();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readMultiByte = function(this1,length,charSet) {
return this1.readMultiByte(length,charSet);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readObject = function(this1) {
return this1.readObject();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readShort = function(this1) {
return this1.readShort();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readUTF = function(this1) {
return this1.readUTF();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readUTFBytes = function(this1,length) {
return this1.readUTFBytes(length);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readUnsignedByte = function(this1) {
return this1.readUnsignedByte();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readUnsignedInt = function(this1) {
return this1.readUnsignedInt();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.readUnsignedShort = function(this1) {
return this1.readUnsignedShort();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.set = function(this1,index,value) {
this1.__resize(index + 1);
this1.b[index] = value & 255;
return value;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.toArrayBuffer = function(byteArray) {
return byteArray.b.bufferValue;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytePointer = function(byteArray) {
lime_utils__$BytePointer_BytePointer_$Impl_$.set(openfl_utils__$ByteArray_ByteArray_$Impl_$.__bytePointer,byteArray,null,null,byteArray.position);
return openfl_utils__$ByteArray_ByteArray_$Impl_$.__bytePointer;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes = function(byteArray) {
return byteArray;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytesData = function(byteArray) {
return byteArray.b.bufferValue;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.toLimeBytes = function(byteArray) {
return openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(byteArray)));
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.toString = function(this1) {
return this1.toString();
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.uncompress = function(this1,algorithm) {
this1.uncompress(algorithm);
return;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeBoolean = function(this1,value) {
this1.writeBoolean(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeByte = function(this1,value) {
this1.writeByte(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeBytes = function(this1,bytes,offset,length) {
if(length == null) {
length = 0;
}
if(offset == null) {
offset = 0;
}
this1.writeBytes(bytes,offset,length);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeDouble = function(this1,value) {
this1.writeDouble(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeFloat = function(this1,value) {
this1.writeFloat(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeInt = function(this1,value) {
this1.writeInt(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeMultiByte = function(this1,value,charSet) {
this1.writeMultiByte(value,charSet);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeObject = function(this1,object) {
this1.writeObject(object);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeShort = function(this1,value) {
this1.writeShort(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeUTF = function(this1,value) {
this1.writeUTF(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeUTFBytes = function(this1,value) {
this1.writeUTFBytes(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.writeUnsignedInt = function(this1,value) {
this1.writeUnsignedInt(value);
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.get_bytesAvailable = function(this1) {
return this1.length - this1.position;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.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_ByteArray_$Impl_$.set_defaultEndian = function(value) {
return openfl_utils_ByteArrayData.__defaultEndian = value;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.get_defaultObjectEncoding = function() {
return openfl_utils_ByteArrayData.defaultObjectEncoding;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.set_defaultObjectEncoding = function(value) {
return openfl_utils_ByteArrayData.defaultObjectEncoding = value;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.get_endian = function(this1) {
return this1.__endian;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.set_endian = function(this1,value) {
return this1.__endian = value;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length = function(this1) {
if(this1 == null) {
return 0;
} else {
return this1.length;
}
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.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_ByteArray_$Impl_$.get_objectEncoding = function(this1) {
return this1.objectEncoding;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.set_objectEncoding = function(this1,value) {
return this1.objectEncoding = value;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.get_position = function(this1) {
return this1.position;
};
openfl_utils__$ByteArray_ByteArray_$Impl_$.set_position = function(this1,value) {
return this1.position = value;
};
var openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$ = {};
$hxClasses["openfl.utils._CompressionAlgorithm.CompressionAlgorithm_Impl_"] = openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$;
openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.__name__ = ["openfl","utils","_CompressionAlgorithm","CompressionAlgorithm_Impl_"];
openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.fromString = function(value) {
switch(value) {
case "deflate":
return 0;
case "lzma":
return 1;
case "zlib":
return 2;
default:
return null;
}
};
openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "deflate";
case 1:
return "lzma";
case 2:
return "zlib";
default:
return null;
}
};
var openfl_utils__$Endian_Endian_$Impl_$ = {};
$hxClasses["openfl.utils._Endian.Endian_Impl_"] = openfl_utils__$Endian_Endian_$Impl_$;
openfl_utils__$Endian_Endian_$Impl_$.__name__ = ["openfl","utils","_Endian","Endian_Impl_"];
openfl_utils__$Endian_Endian_$Impl_$.fromLimeEndian = function(value) {
switch(value[1]) {
case 0:
return 1;
case 1:
return 0;
}
};
openfl_utils__$Endian_Endian_$Impl_$.fromString = function(value) {
switch(value) {
case "bigEndian":
return 0;
case "littleEndian":
return 1;
default:
return null;
}
};
openfl_utils__$Endian_Endian_$Impl_$.toLimeEndian = function(value) {
switch(value) {
case 0:
return lime_system_Endian.BIG_ENDIAN;
case 1:
return lime_system_Endian.LITTLE_ENDIAN;
default:
return null;
}
};
openfl_utils__$Endian_Endian_$Impl_$.toString = function(value) {
switch(value) {
case 0:
return "bigEndian";
case 1:
return "littleEndian";
default:
return null;
}
};
var openfl_utils__$Object_Object_$Impl_$ = {};
$hxClasses["openfl.utils._Object.Object_Impl_"] = openfl_utils__$Object_Object_$Impl_$;
openfl_utils__$Object_Object_$Impl_$.__name__ = ["openfl","utils","_Object","Object_Impl_"];
openfl_utils__$Object_Object_$Impl_$._new = function() {
var this1 = { };
return this1;
};
openfl_utils__$Object_Object_$Impl_$.hasOwnProperty = function(this1,name) {
if(this1 != null) {
return Object.prototype.hasOwnProperty.call(this1,name);
} else {
return false;
}
};
openfl_utils__$Object_Object_$Impl_$.isPrototypeOf = function(this1,theClass) {
var o = this1;
var c = o == null ? null : js_Boot.getClass(o);
while(c != null) {
if(c == theClass) {
return true;
}
c = Type.getSuperClass(c);
}
return false;
};
openfl_utils__$Object_Object_$Impl_$.iterator = function(this1) {
var fields = Reflect.fields(this1);
if(fields == null) {
fields = [];
}
return HxOverrides.iter(fields);
};
openfl_utils__$Object_Object_$Impl_$.propertyIsEnumerable = function(this1,name) {
if(this1 != null && Object.prototype.hasOwnProperty.call(this1,name)) {
return js_Boot.__instanceof(Reflect.field(this1,name),haxe_lang_Iterable);
} else {
return false;
}
};
openfl_utils__$Object_Object_$Impl_$.toLocaleString = function(this1) {
return Std.string(this1);
};
openfl_utils__$Object_Object_$Impl_$.toString = function(this1) {
return Std.string(this1);
};
openfl_utils__$Object_Object_$Impl_$.valueOf = function(this1) {
return this1;
};
openfl_utils__$Object_Object_$Impl_$.__get = function(this1,key) {
return Reflect.field(this1,key);
};
openfl_utils__$Object_Object_$Impl_$.__set = function(this1,key,value) {
this1[key] = value;
return value;
};
var haxe_lang_Iterator = function() { };
$hxClasses["haxe.lang.Iterator"] = haxe_lang_Iterator;
haxe_lang_Iterator.__name__ = ["haxe","lang","Iterator"];
haxe_lang_Iterator.prototype = {
hasNext: null
,next: null
,__class__: haxe_lang_Iterator
};
var haxe_lang_Iterable = function() { };
$hxClasses["haxe.lang.Iterable"] = haxe_lang_Iterable;
haxe_lang_Iterable.__name__ = ["haxe","lang","Iterable"];
haxe_lang_Iterable.prototype = {
iterator: null
,__class__: haxe_lang_Iterable
};
var shaders_MetaballShader = function() {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "\r\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\t\t\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\treturn color;\n\t\t\t\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\t\t\telse if (hasColorTransform)\n\t\t\t{\n\t\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\t\t\t\t\n\t\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\t\t\t\t\n\t\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\t\t\t\t\n\t\t\t\tif (color.a > 0.0)\n\t\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t\telse\n\t\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\t\t}\n\t\n\r\n\t\t\r\n\t\tfloat threshold = 0.5;\r\n\r\n\t\tvoid main() {\r\n\t\t\tfloat dist = 1.0 / 640.0;\r\n\t\t\tvec2 xy = openfl_TextureCoordv;\r\n\t\t\tgl_FragColor = texture2D(bitmap, openfl_TextureCoordv);\r\n\t\t\tif (gl_FragColor.b > threshold) {\r\n\t\t\t\tvec4 tr = texture2D(bitmap, vec2(xy.x + 4.0 * dist, xy.y - 4.0 * dist));\r\n\t\t\t\tvec4 bl = texture2D(bitmap, vec2(xy.x - 4.0 * dist, xy.y - 4.0 * dist));\r\n\t\t\t\tif (tr.b <= threshold && bl.b > threshold) {\r\n\t\t\t\t\tgl_FragColor = vec4(0.85, 0.85, 1.0, 1.0);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tgl_FragColor = vec4(0.6, 0.6, 1.0, 1.0);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvec4 d1 = texture2D(bitmap, vec2(xy.x - dist, xy.y));\r\n\t\t\t\tvec4 d2 = texture2D(bitmap, vec2(xy.x + dist, xy.y));\r\n\t\t\t\tvec4 d3 = texture2D(bitmap, vec2(xy.x, xy.y - dist));\r\n\t\t\t\tvec4 d4 = texture2D(bitmap, vec2(xy.x, xy.y + dist));\r\n\t\t\t\t\r\n\t\t\t\tif (d1.b > threshold || d2.b > threshold || d3.b > threshold || d4.b > threshold) {\r\n\t\t\t\t\tgl_FragColor = vec4(0.3, 0.4, 1.0, 1.0);\r\n\t\t\t\t} else {\r\n if (gl_FragColor.g > threshold) {\r\n vec4 tr = texture2D(bitmap, vec2(xy.x + 4.0 * dist, xy.y - 4.0 * dist));\r\n vec4 bl = texture2D(bitmap, vec2(xy.x - 4.0 * dist, xy.y - 4.0 * dist));\r\n if (tr.g <= threshold && bl.g > threshold) {\r\n gl_FragColor = vec4(0.9, 0.9, 0.9, 1.0);\r\n } else {\r\n gl_FragColor = vec4(0.3, 0.3, 0.3, 1.0);\r\n }\r\n } else {\r\n vec4 d1 = texture2D(bitmap, vec2(xy.x - dist, xy.y));\r\n vec4 d2 = texture2D(bitmap, vec2(xy.x + dist, xy.y));\r\n vec4 d3 = texture2D(bitmap, vec2(xy.x, xy.y - dist));\r\n vec4 d4 = texture2D(bitmap, vec2(xy.x, xy.y + dist));\r\n \r\n if (d1.g > threshold || d2.g > threshold || d3.g > threshold || d4.g > threshold) {\r\n gl_FragColor = vec4(0.1, 0.1, 0.1, 1.0);\r\n } else {\r\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\r\n }\r\n }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\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\t\t\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\t\t\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\t\t\n\t\tif (openfl_HasColorTransform) {\n\t\t\t\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\t\t\t\n\t\t}\n\t\t\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}";
}
flixel_graphics_tile_FlxGraphicsShader.call(this);
this.__isGenerated = true;
this.__initGL();
};
$hxClasses["shaders.MetaballShader"] = shaders_MetaballShader;
shaders_MetaballShader.__name__ = ["shaders","MetaballShader"];
shaders_MetaballShader.__super__ = flixel_graphics_tile_FlxGraphicsShader;
shaders_MetaballShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{
__class__: shaders_MetaballShader
});
var ui_CharacterPicker = function(optionIndices) {
this._index = 0;
nova_render_FlxLocalSprite.call(this);
this.characterThumbsBD = new nova_render_TiledBitmapData("assets/images/character_thumbs.png",48,48);
this.characterImageSprites = [];
var crownBitmapData = openfl_utils_Assets.getBitmapData("assets/images/character_indicator_crown.png");
this.crown = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(crownBitmapData));
this.crown.set_x(8);
var _g1 = 0;
var _g = optionIndices.length;
while(_g1 < _g) {
var i = _g1++;
var ind = optionIndices[i];
var thumb = new openfl_display_BitmapData(48,48,true,0);
thumb.copyPixels(this.characterThumbsBD.getTile(nova_utils__$Pair_Pair_$Impl_$.fromIntArray([0,2])),new openfl_geom_Rectangle(0,0,48,48),new openfl_geom_Point(0,0));
thumb.copyPixels(this.characterThumbsBD.getTile(ind),new openfl_geom_Rectangle(0,0,48,48),new openfl_geom_Point(0,0),thumb,new openfl_geom_Point(0,0),true);
var lw = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(thumb));
this.add(lw);
this.characterImageSprites.push(lw);
lw._sprite.scale = new flixel_math_FlxPoint(0.6,0.6);
lw.set_x(42 * i);
}
this.characterImageSprites[0]._sprite.scale = new flixel_math_FlxPoint(1,1);
this.characterImageSprites[0].set_y(10);
this.add(this.crown);
};
$hxClasses["ui.CharacterPicker"] = ui_CharacterPicker;
ui_CharacterPicker.__name__ = ["ui","CharacterPicker"];
ui_CharacterPicker.__super__ = nova_render_FlxLocalSprite;
ui_CharacterPicker.prototype = $extend(nova_render_FlxLocalSprite.prototype,{
crown: null
,_index: null
,optionIndices: null
,characterThumbsBD: null
,characterImageRow: null
,characterImageSprites: null
,get_index: function() {
return this._index;
}
,set_index: function(index) {
this.characterImageSprites[this._index]._sprite.scale = new flixel_math_FlxPoint(0.6,0.6);
this.characterImageSprites[this._index].set_y(0);
this._index = index;
this.characterImageSprites[this._index]._sprite.scale = new flixel_math_FlxPoint(1,1);
this.characterImageSprites[this._index].set_y(10);
this.crown.set_x(index * 42 + 8);
return index;
}
,__class__: ui_CharacterPicker
,__properties__: $extend(nova_render_FlxLocalSprite.prototype.__properties__,{set_index:"set_index",get_index:"get_index"})
});
var ui_ChargeMeter = function() {
this.maxWidth = 170;
this.maxCharge = 25;
this.charge = 0;
this.meterWrapper = null;
nova_render_FlxLocalSprite.call(this);
this.meter = new openfl_display_BitmapData(this.maxWidth,15,true,0);
this.meter.fillRect(this.meter.rect,0);
this.meterWrapper = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.meter));
this.add(this.meterWrapper);
this.text = new nova_render_LocalWrapper(new flixel_text_FlxText(155,-7,this.maxWidth,"",16));
this.text._sprite.set_font(GameData.DEFAULT_FONT);
this.text._sprite.set_color(GameData.DEFAULT_FONT_COLOR);
this.text._sprite.set_bold(true);
this.add(this.text);
};
$hxClasses["ui.ChargeMeter"] = ui_ChargeMeter;
ui_ChargeMeter.__name__ = ["ui","ChargeMeter"];
ui_ChargeMeter.__super__ = nova_render_FlxLocalSprite;
ui_ChargeMeter.prototype = $extend(nova_render_FlxLocalSprite.prototype,{
meter: null
,meterWrapper: null
,text: null
,uiBitmapData: null
,charge: null
,maxCharge: null
,maxWidth: null
,incrementCharge: function() {
if(this.charge == this.maxCharge) {
return false;
}
this.charge += 1;
this.meter.fillRect(new openfl_geom_Rectangle(0,0,(this.maxWidth - 10) / this.maxCharge * this.charge + 10,15),-34816);
this.remove(this.text);
this.remove(this.meterWrapper);
this.meterWrapper = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.meter));
this.add(this.meterWrapper);
this.add(this.text);
return true;
}
,decrementCharge: function() {
if(this.charge <= 1) {
return false;
}
this.charge -= 1;
this.meter.fillRect(new openfl_geom_Rectangle((this.maxWidth - 10) / this.maxCharge * this.charge + 10,0,(this.maxWidth - 10) / this.maxCharge + 1,15),0);
this.remove(this.text);
this.remove(this.meterWrapper);
this.meterWrapper = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.meter));
this.add(this.meterWrapper);
this.add(this.text);
return true;
}
,resetCharge: function() {
this.charge = 0;
this.meter.fillRect(this.meter.rect,0);
this.remove(this.meterWrapper);
this.remove(this.text);
}
,setMaxCharge: function(maxCharge) {
this.maxCharge = maxCharge;
this.resetCharge();
this.incrementCharge();
}
,setText: function(newText) {
this.remove(this.text);
this.text._sprite.set_text(newText);
this.add(this.text);
}
,getCharge: function() {
return this.charge;
}
,__class__: ui_ChargeMeter
});
var ui_RecipeText = function(startText,backgroundImage) {
nova_render_FlxLocalSprite.call(this);
this.background = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(backgroundImage));
this.add(this.background);
this.text = new nova_render_LocalWrapper(new flixel_text_FlxText(backgroundImage.width / 2 - 320,0,640,startText,32));
this.storedText = startText;
this.add(this.text);
this.text._sprite.set_font(GameData.DEFAULT_FONT);
this.text._sprite.set_color(GameData.DEFAULT_FONT_COLOR);
this.text._sprite.set_bold(true);
this.text.set_y(2);
this.text._sprite.set_alignment("center");
this.set_width(this.background.get_width());
this.set_height(this.background.get_height());
};
$hxClasses["ui.RecipeText"] = ui_RecipeText;
ui_RecipeText.__name__ = ["ui","RecipeText"];
ui_RecipeText.removeAlphabeticallyFirst = function(word) {
var _g = [];
var _g2 = 0;
var _g1 = word.length;
while(_g2 < _g1) {
var i = _g2++;
_g.push(word.charAt(i));
}
var wordWithoutSpaces = _g.filter(function(x) {
return x != " ";
}).join("");
var _g11 = [];
var _g3 = 0;
var _g21 = wordWithoutSpaces.length;
while(_g3 < _g21) {
var i1 = _g3++;
_g11.push(HxOverrides.cca(wordWithoutSpaces,i1));
}
var minCharValue = Lambda.fold(_g11,function(x1,y) {
return Math.min(x1,y);
},999) | 0;
var _g22 = [];
var _g4 = 0;
var _g31 = word.length;
while(_g4 < _g31) {
var i2 = _g4++;
_g22.push(word.charAt(i2));
}
return _g22.filter(function(x2) {
return HxOverrides.cca(x2,0) != minCharValue;
}).join("");
};
ui_RecipeText.rlSwap = function(word) {
return StringTools.replace(StringTools.replace(StringTools.replace(word,"R","$"),"L","R"),"$","L");
};
ui_RecipeText.rot = function(letter,n) {
var limit = HxOverrides.cca("Z",0);
n = (n + 2600) % 26;
var $char = HxOverrides.cca(letter,0) + n;
if($char > limit) {
$char -= 26;
}
return String.fromCharCode($char);
};
ui_RecipeText.rotVowel = function(letter,n) {
var vowels = ["A","E","I","O","U"];
var index = vowels.indexOf(letter);
index = (index + n + 5) % 5;
return vowels[index];
};
ui_RecipeText.rotateFirstLetterGen = function(amt) {
return function(word) {
if(word.charAt(0) == " ") {
return word;
}
return ui_RecipeText.rot(word.charAt(0),amt) + word.substring(1);
};
};
ui_RecipeText.openLetterGen = function(number) {
return function(word) {
if(number >= word.length) {
number = word.length - 1;
}
if(word.charAt(number) == " ") {
return word;
}
return word.substring(0,number) + ui_RecipeText.rot(word.charAt(number),1) + ui_RecipeText.rot(word.charAt(number),-1) + word.substring(number + 1);
};
};
ui_RecipeText.openVowels = function(word) {
var vowels = ["A","E","I","O","U"];
var i = word.length - 1;
while(i >= 0) {
var $char = word.charAt(i);
if(vowels.indexOf($char) == -1) {
--i;
continue;
}
var trans = ui_RecipeText.rotVowel($char,-1) + ui_RecipeText.rotVowel($char,1);
word = word.substring(0,i) + trans + word.substring(i + 1);
--i;
}
return word;
};
ui_RecipeText.spaceSwap = function(word) {
var firstHalf = word.substring(0,word.length / 2 | 0);
var secondHalf = word.substring(word.length / 2 | 0);
return secondHalf + " " + firstHalf;
};
ui_RecipeText.insertLetterGen = function(number) {
return function(word) {
var $char = String.fromCharCode(64 + number);
return word.charAt(0) + $char + word.substring(1,word.length - 1) + $char + word.charAt(word.length - 1);
};
};
ui_RecipeText.lastLettersToFrontGen = function(number) {
return function(word) {
if(word.length <= number) {
return word;
}
return word.substring(word.length - number) + word.substring(0,word.length - number);
};
};
ui_RecipeText.__super__ = nova_render_FlxLocalSprite;
ui_RecipeText.prototype = $extend(nova_render_FlxLocalSprite.prototype,{
background: null
,storedText: null
,text: null
,useCharacterSkill: function(power,charge) {
var characterIndex = js_Boot.__cast(power , Int);
var fns = [ui_RecipeText.removeAlphabeticallyFirst,ui_RecipeText.rlSwap,ui_RecipeText.rotateFirstLetterGen(charge),ui_RecipeText.openVowels,ui_RecipeText.openLetterGen(charge - 1),ui_RecipeText.spaceSwap,ui_RecipeText.insertLetterGen(charge),ui_RecipeText.lastLettersToFrontGen(charge)];
this.storedText = fns[characterIndex](this.storedText);
if(this.storedText.length > GameData.MAX_DISH_LENGTH) {
this.storedText = this.storedText.substring(0,GameData.MAX_DISH_LENGTH);
}
this.storedText = StringTools.trim(this.storedText);
this.storedText = StringTools.replace(this.storedText," "," ");
this.text._sprite.set_text(this.storedText);
if(this.storedText == "") {
this.text._sprite.set_text(" ");
}
}
,__class__: ui_RecipeText
});
var ui_StatusWindow = function(word) {
this.charge = 0;
nova_render_FlxLocalSprite.call(this);
this.uiBitmapData = openfl_utils_Assets.getBitmapData("assets/images/ui.png");
this.backgroundBD = openfl_utils_Assets.getBitmapData("assets/images/status_bar.png");
this.backgroundChargeBD = openfl_utils_Assets.getBitmapData("assets/images/status_bar_with_charge_bar.png");
var clockBD = nova_utils_BitmapDataUtils.crop(this.uiBitmapData,nova_utils__$Pair_Pair_$Impl_$.fromIntArray([0,32]),nova_utils__$Pair_Pair_$Impl_$.fromIntArray([16,16]));
this.clock = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic((nova_utils_BitmapDataUtils.scaleFn(2,2))(clockBD)));
var targetWordText = new flixel_text_FlxText(0,0,0,"Making: " + word,20);
targetWordText.set_color(GameData.DEFAULT_FONT_COLOR);
targetWordText.set_bold(true);
targetWordText.set_font(GameData.DEFAULT_FONT);
this.targetWord = new nova_render_LocalWrapper(targetWordText);
if(targetWordText.textField.get_textWidth() > 230) {
targetWordText.set_size(18);
var _g = this.targetWord;
_g.set_y(_g.y + 1);
}
this.clock.set_xy(nova_utils__$Pair_Pair_$Impl_$.fromFloatArray([this.backgroundBD.width - this.clock.get_width() - 10,72]));
this.targetWord.set_xy(nova_utils__$Pair_Pair_$Impl_$.fromFloatArray([395,0]));
this.set_width(this.backgroundBD.width);
this.background = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.backgroundBD));
this.add(this.background);
this.add(this.clock);
this.add(this.targetWord);
this.cookBD = openfl_utils_Assets.getBitmapData("assets/images/cook_btn.png");
this.chargeBD = openfl_utils_Assets.getBitmapData("assets/images/charge_btn.png");
this.activeCookBD = openfl_utils_Assets.getBitmapData("assets/images/cook_btn_pressed.png");
this.activeChargeBD = openfl_utils_Assets.getBitmapData("assets/images/charge_btn_pressed.png");
this.cookSprite = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.cookBD));
this.chargeSprite = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.chargeBD));
this.add(this.cookSprite);
this.cookSprite.set_xy(nova_utils__$Pair_Pair_$Impl_$.fromFloatArray([267,4]));
this.add(this.chargeSprite);
this.chargeSprite.set_xy(nova_utils__$Pair_Pair_$Impl_$.fromFloatArray([380,31]));
};
$hxClasses["ui.StatusWindow"] = ui_StatusWindow;
ui_StatusWindow.__name__ = ["ui","StatusWindow"];
ui_StatusWindow.__super__ = nova_render_FlxLocalSprite;
ui_StatusWindow.prototype = $extend(nova_render_FlxLocalSprite.prototype,{
uiBitmapData: null
,backgroundBD: null
,backgroundChargeBD: null
,cookBD: null
,chargeBD: null
,activeChargeBD: null
,activeCookBD: null
,background: null
,clock: null
,targetWord: null
,chargeSprite: null
,cookSprite: null
,charge: null
,hasCharge: null
,setClock: function(amt) {
this.remove(this.clock);
var xy = this.clock.get_xy();
var clockBD = nova_utils_BitmapDataUtils.crop(this.uiBitmapData,nova_utils__$Pair_Pair_$Impl_$.fromIntArray([16 * amt,32]),nova_utils__$Pair_Pair_$Impl_$.fromIntArray([16,16]));
this.clock = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic((nova_utils_BitmapDataUtils.scaleFn(2,2))(clockBD)));
this.clock.set_xy(xy);
this.add(this.clock);
}
,setState: function(state) {
this.remove(this.chargeSprite);
this.remove(this.cookSprite);
if(state == "charging") {
this.cookSprite = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.cookBD));
this.chargeSprite = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.activeChargeBD));
} else if(state == "cooking") {
this.chargeSprite = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.chargeBD));
this.cookSprite = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.activeCookBD));
} else {
this.cookSprite = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.cookBD));
this.chargeSprite = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(this.chargeBD));
}
this.add(this.cookSprite);
this.cookSprite.set_xy(nova_utils__$Pair_Pair_$Impl_$.fromFloatArray([267,4]));
if(this.hasCharge) {
this.add(this.chargeSprite);
this.chargeSprite.set_xy(nova_utils__$Pair_Pair_$Impl_$.fromFloatArray([380,31]));
}
}
,setHasCharge: function(value) {
if(this.hasCharge == value) {
return;
}
this.hasCharge = value;
this.remove(this.targetWord);
this.remove(this.cookSprite);
this.remove(this.chargeSprite);
this.remove(this.background);
var bitmap = value ? this.backgroundChargeBD : this.backgroundBD;
this.background = new nova_render_LocalWrapper(new flixel_FlxSprite().loadGraphic(bitmap));
this.add(this.background);
this.add(this.cookSprite);
this.cookSprite.set_xy(nova_utils__$Pair_Pair_$Impl_$.fromFloatArray([267,4]));
if(value) {
this.add(this.chargeSprite);
this.chargeSprite.set_xy(nova_utils__$Pair_Pair_$Impl_$.fromFloatArray([380,31]));
}
this.add(this.targetWord);
}
,__class__: ui_StatusWindow
});
function $iterator(o) { if( o instanceof Array ) return function() { return HxOverrides.iter(o); }; return typeof(o.iterator) == 'function' ? $bind(o,o.iterator) : o.iterator; }
var $_, $fid = 0;
function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $fid++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = function(){ return f.method.apply(f.scope, arguments); }; f.scope = o; f.method = m; o.hx__closures__[m.__id__] = f; } return f; }
var init = lime__$internal_backend_html5_HTML5Application;
var init = lime_app_Application;
$hxClasses["Math"] = Math;
String.prototype.__class__ = $hxClasses["String"] = String;
String.__name__ = ["String"];
$hxClasses["Array"] = Array;
Array.__name__ = ["Array"];
Date.prototype.__class__ = $hxClasses["Date"] = Date;
Date.__name__ = ["Date"];
var Int = $hxClasses["Int"] = { __name__ : ["Int"]};
var Dynamic = $hxClasses["Dynamic"] = { __name__ : ["Dynamic"]};
var Float = $hxClasses["Float"] = Number;
Float.__name__ = ["Float"];
var Bool = $hxClasses["Bool"] = Boolean;
Bool.__ename__ = ["Bool"];
var Class = $hxClasses["Class"] = { __name__ : ["Class"]};
var Enum = { };
haxe_Resource.content = [{ name : "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMaximizeButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQUIyQUFBQWRnRk9leVlJQUFBQUIzUkpUVVVIM2dNSkNSOFVCaGtEeVFBQUFFOUpSRUZVR05PdGtFRVN3REFJQW92Ly8vUDJvb2FhOUJaUFpvQXdxd0NlTlpMVUQ5ZkNIVzc2VFkyZmR3MklVOVVwZUhlVU5kMVlBRm5kTUFGUW1ndTV0eGFWM202VDV5bW9EL0gwT3ZrTFNBOUI4bis0Y2pvQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:bitmap_flixel_system_GraphicLogo", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQmtDQVlBQUFCdzRwVlVBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBQUFnWTBoU1RRQUFlaVVBQUlDREFBRDUvd0FBZ09rQUFIVXdBQURxWUFBQU9wZ0FBQmR2a2wvRlJnQUFCTTFKUkVGVWVOcnMyOCtMRzJVWXdQSFhabTZDdVhrMGRFMFRzVCtTbVQxb2Q1Rmsrd3ZwbXRHYmlFaE9YbFZRTDE0Q25rdjNYRVFESG9SQ1llbXBiS21kcE10U3dVejIxUE1jUlBCU2dwQmxZVWQ0UEd5em1VMDJ1L01tNzQvbm1mZDk0ZmtIOHVHYk4rL2tIUVpkRDVSTXgydkRqbHRnUkJjczNjanZsUnJ0dmJJUE1vY3BBK2w2QUIxM0FGMnZCYjNsUEMwSXZ6VXMrUVBaR09wQkNNR29odEFMY2d5bTJzU0dNU3o1emIyeUg2bUV3QUV5aG9rd3dPaUV3QVdTaEhubTFsUkQ3QmNidGIyU3Y2c1RBaWZJR0NaUUFiTmZiTlNHNVVhQUFRSTNTQkptMjYySS8ycjZxSUlOZ2dhSTREUE0vdm5iQlJWbmlleURMQWhEQVlJbUNPY1pSdGRad2l5UUZEQVVJZWlEekRoY0RrdCtreUpFZGtCZXpSL0JsYWh6NjJaRUZTSlRJTHRCQmZKYmIwTitzd2pQcjkyMElCZ3cyTllTc0swbDhpZ3NTeGhaUUdGWnc2Q093cktJa1p4N1gzeGdRV1RPNXRQTHFURW9vcEFDYVQrOXhBVkJFWVdaZ0VFSmhabUNRUVdGbVlSQkFZV1pob0VkaFptSWdSbUZtWXFCRllWQnh3MU14UmpORDkrOGp3amttVnN6R1dNMG4vL280UUJoakRIb2VHMlRNVENoSElMMGx2T3YvaEkxRmdNSlNqVCtIN3BiL1ZvSHhzYnZGOUZnNkVZWmx2emoxMmtQNzlpcXcyZytlUWNkaGthVWFQcmFqTUlOSGpPR0RwU3BPc2FWZUpzV1F6bEtOUHR5Mlk1YmtMbkJVOEpRaFRLemp2RUc3N1VzeGpUSzM5VjF0WFVjZ1J6K0RJNHN4dkc1L1BPN3dsSE9yR084d1ZjL3RoaVNVVXIrTHQrTGp3S2VjMlVKUXpUS2ZySEI5MUlTYkxzVml5RUhaVmh1QlBPOUh0ejFOaXlHZUJUdU9pWTIrSUhGRUljeWR4Mko1MXhOaXlFT1plNDZKamI0M2RNZ0JoMFhLbzh2R0lmQmk3SndIV21lYzVtT3dZTWlwSTdFYzY2MnhUaDkzdnF0UFBPU3Q3QTZabTN3Rm9QdjVyM1FPaWFmYzFrTVBoVGhkU1RYeTA0MXNoaDhLRkxxR0sxTHplZEI3bUhGZnVncFVSNnRYNWRYeDlVMXFLMnVBVlErZlFFV0pjVTh1UTI1UC8rUkI3SmFoMkIxRGNDaXBNVjRDVTRZZzlPUGE5THFTSTVGU1lFUnh1RDA0a0JxSGNrcGZ2WEFBcHlHTVJxUmxaeFVoMFhod0JCZHlhdzZMRXBLREpHVm5GV0hSVW1KSWFxU05IVVlqWklXUTBRbFBIVVlpY0tMc1dnbHZIV1loUEphOENVL3hpS1Z6RnRIY3M1Ly8wczJNVHJmemdleFNDV0wxSkdjTis5OFp6RVdyVVJFSFZsRUVZWVJ4cERyeFp2SzY4Z1Npa2lNMGJBK0ZKVFhrUVVVR1JoT0dFTXVQR2hycVlNeWlpeU1WSlhJcklNaWlteU1NeXVSWFFjbEZCVVlwMWFpcW83a3ZQSFRaOFpqekt4RVpSMmplZS9EZitIMVg5ZU54aml4RWgxMVlFVFJoVEZWaVk0NnNLSG94RGlxUkhjZFdGQXdZQnlCNks1RE53b1dEQ2VNQVUwZHVsQXdZVGhoREtqcVVJMkNEZU1RQkNIR2FKWS8rVXZhblMrTUdPaEJaRjNFdzRwQkFrUTB5cm50dTJneHlJQ0lRam0zY3g4MUJpbVFSVkVvWUpBRG1SZUZDZ1pKRUY0VVNoaGtRZEtpVU1NZ0RYTFdSVHlLR09SQlpxRlF4Y2dFeUNRS1pZek1nSXhRcUdOa0JtU2xEdTJWYTFCZ2ZTamt3b08yQmRFMWRRaXVyc0gwL2RnK1ZKeGVIRmdRM1JBVHkrbkhOV293ak5oWFU3UmFoeWJ2TFg1S01DekxFSk1yMS91dm1Rc1BJZ3N5LzFmVFlLVU9MZEh2MjJPR1laZ2hsbTlBbmtsY0dHRVlRb3dOMlJESFZnL3lUaGkzY21FOHNDQW5uU1YwTFNRd0RNTlBXSzBReUdBWTlyT0V0cVhwMVAvL0FOd29yczhWOE1oV0FBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileDiamond", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9WMmx1Wkc5M2N5a2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZNek5HUmtFd05FSXhPRVV3TVRGRk5EazVRVGRDUlVVME56Z3lPVFkyT0RjaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk16TkdSa0V3TkVNeE9FVXdNVEZGTkRrNVFUZENSVVUwTnpneU9UWTJPRGNpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvek0wWkdRVEEwT1RFNFJUQXhNVVUwT1RsQk4wSkZSVFEzT0RJNU5qWTROeUlnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG96TTBaR1FUQTBRVEU0UlRBeE1VVTBPVGxCTjBKRlJUUTNPREk1TmpZNE55SXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QckhzdVhJQUFBTHRTVVJCVkhqYTdOakJidVVnRUVUUk1QLy96NDRpelNhenlpakdYTGZPbGJLSnpLTUZEVlRWdXE3ckF3QmV4cjhYMXpvMDc4ZERkZnp2UmIwT3pYdFhIWGMvVE92UXZEK3Q0K21IZUIyYTl4dC8zR01BZnZGSVhJZm1QWEdCWHpkOTg4UmpmQjJhdDFKN1plOHF2VnVZa3dBQmNQc0ZkaDJhOThsTDlkcjA3YzdmT2pXMnNuYVYzcW1jblp3SUlVQ0FkNHNBQ1VURFBWZlNnMHJ0bGIycjlHN3U4UzlBZ0FEdkZSK24zVnZGdlZiY2UyVnNaZTBxdlZNNU8wUUlBUUxjZW9GSUlCcnV1WkllVkdxdjdGMmxkejMrQkFnd1NueWNkbThWOTFweDc1V3hsYldyOUU3bDdCQWhCQWh3NndVaWdXaTQ1MHA2VUttOXNuZVYzdlg0Z3dEQktQRngycjFWM0d2RnZWZkdWdGF1MGp1VnMwT0VnQURCclJlSUJLTGhuaXZwUWFYMnl0NVZldGZqRHdJRW84VEhhZmRXY2E4VjkxNFpXMW03U3U5VXpnNFJBZ0lFdDE0Z0VvaUdlNjZrQjVYYUszdFg2VjJQUDBDQWpCSWZwOTFieGIxVzNIdGxiR1h0S3IxVE9UdEVDRUNBM0hxQlNDQWE3cm1TSGxScXIreGRwWGM5L2dBQk1rcDhuSFp2RmZkYWNlK1ZzWlcxcS9STzVld1FJUUFCY3VzRklvRm91T2RLZWxDcHZiSjNsZDcxK0FNWUpVQUFBQUFCOGpqcjc5K0plWC95dnlmbWZhS085ZENZeW0rc1FYdFg2ZDNDbkFBSWtCR3NRNWZwT25TcHIwM2Y3dnl0VTJNcmExZnBuY3JaSVlJQUFtU1VDSkhBTk5LREhYVklZT2IwTHZFQkVDQjR1WXVVd1BUSFZ0YXUwanVWczBNRUFRVElLQkVpZ1dta0J6dnFrTURNNlYzaUF5QkE4SElYS1lIcGo2MnNYYVYzS21lSENBSUJnbEVpUkFMVFNBOTIxQ0dCbWRPN3hBY0lFT0RsTGxJQzB4OWJXYnRLNzFUT0RoRUVBZ1NqUklnRXBwRWU3S2hEQWpPbmQ0a1BFQ0RBeTEya0JLWS90ckoybGQ2cG5CMGlpQUFCUm9rUUNVd2pQZGhSaHdSbVR1OFNId1FJZ0plN1NBbE1mMnhsN1NxOVV6azdSQkFCQW93U0lSS1lSbnF3b3c0SnpKemVKVDRJRUFBdmQ1RVNtUDdZeXRwVmVxZHlkbklpaUFBQjhKc0xUQUxUU0E5MjFDR0JtZE83T2ZIeHhhY0FBd0RrMWZzODNpRUEyd0FBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "__ASSET__:file_flixel_system_VirtualInputData", data : "YmFzZSA9IDI2NiA0NiA4NCA4NAp0aHVtYiA9IDI2NiAxMzEgNTIgNTIKYSA9IDAgMCAxMzIgNDUKYiA9IDAgNDYgMTMyIDQ1CmMgPSAwIDkyIDEzMiA0NQpkb3duID0gMCAxMzggMTMyIDQ1CmxlZnQgPSAxMzMgMCAxMzIgNDUKcmlnaHQgPSAxMzMgNDYgMTMyIDQ1CnVwID0gMTMzIDkyIDEzMiA0NQp4ID0gMjY2IDAgMTMyIDQ1CnkgPSAxMzMgMTM4IDEzMiA0NQo"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicCloseButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFBQUlDQVlBQUFERUQ3NkxBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFkZ0FBQUhZQlRuc21DQUFBQUJsMFJWaDBVMjltZEhkaGNtVUFkM2QzTG1sdWEzTmpZWEJsTG05eVo1dnVQQm9BQUFCL1NVUkJWQmlWVFkweENzSlFFQVhIYnlTZXdNdWxUV2R2YTZPbGxXSnBDQ0syaWsxT1krY3RRc1lpcS9rREM4dnM3bHZVU3UzVXBVcFdPN1ZDM1RqU3FXVU1EK0dldisxdGlKZDZ5dm95ajl3NzhWQVhLb21SR2JCaW9nY0dBTlNrTm5GNVY0L1IzOVNFMm9hNHF2TjRkdzUzS1lBMzBBRDFQeGJXUUFGOHZwYVlyTldBYU5WMEFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicBitmapLog", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQm1KTFIwUUFBQUFBQUFENVE3dC9BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVIM2dRWkV4c2Fka1ZHNHdBQUFFRkpSRUZVR05PVnpjc0pBREFJQk5FdDFUSnl0UFBKS2VSbnhBd3NlSGlnOUJOUW1mRURBU3REUUdXWTRRdStjQWhQN013cytqaU94cDR5dk9ZWkxrRkFIVzZYWUMwODhkcWRBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicStats", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFBeFNVUkJWSGphWXZ6Ly96OERzWUNKZ1FSQWpPTC9VRXdkaytHbTBkVE5XQlZqdFpvK3ptQWtKUVlCQUFBQS8vOERBTDhIREFscWRHWVJBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileSquare", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBN2EybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MUxXTXdNakVnTnprdU1UVTFOemN5TENBeU1ERTBMekF4THpFekxURTVPalEwT2pBd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRkpsWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sVW1WbUl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uUnBabVk5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmRHbG1aaTh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGxlR2xtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwyVjRhV1l2TVM0d0x5SStDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJ2Y2xSdmIydytRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRRZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTBMVEE0TFRFMVZERTJPakU1T2pBNExUQTFPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRRdE1EZ3RNVFZVTVRZNk16UTZNekl0TURVNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUwTFRBNExURTFWREUyT2pNME9qTXlMVEExT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tSmxPVEZqT1dVd0xXRTNabUV0Wm1JME9TMWlZMlEwTFdVMU5qaGpZV00xWkRNNU5Ud3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T21WbE56TTFPRGhtTFRJMFl6TXRNVEZsTkMwNU9UQmlMV0kyTkRnMk1EQTRNVEpsTXp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdQSE4wVW1WbU9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNMFpHUVRBME9URTRSVEF4TVVVME9UbEJOMEpGUlRRM09ESTVOalk0Tnp3dmMzUlNaV1k2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEb3pNMFpHUVRBMFFURTRSVEF4TVVVME9UbEJOMEpGUlRRM09ESTVOalk0Tnp3dmMzUlNaV1k2Wkc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BDOTRiWEJOVFRwRVpYSnBkbVZrUm5KdmJUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09qTXpSa1pCTURSRE1UaEZNREV4UlRRNU9VRTNRa1ZGTkRjNE1qazJOamczUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K2MyRjJaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzFNMkV6TTJFM05DMWlNVFJrTFdNMk5EQXRPVFE1TVMwd1kyTm1ObVJpWm1abVpUZzhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UUXRNRGd0TVRWVU1UWTZNelE2TXpJdE1EVTZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMElDaFhhVzVrYjNkektUd3ZjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbU5vWVc1blpXUStMend2YzNSRmRuUTZZMmhoYm1kbFpENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBuTmhkbVZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHBibk4wWVc1alpVbEVQbmh0Y0M1cGFXUTZZbVU1TVdNNVpUQXRZVGRtWVMxbVlqUTVMV0pqWkRRdFpUVTJPR05oWXpWa016azFQQzl6ZEVWMmREcHBibk4wWVc1alpVbEVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZkMmhsYmo0eU1ERTBMVEE0TFRFMVZERTJPak0wT2pNeUxUQTFPakF3UEM5emRFVjJkRHAzYUdWdVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5DQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTnpJd01EQXdMekV3TURBd1BDOTBhV1ptT2xoU1pYTnZiSFYwYVc5dVBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwWlVtVnpiMngxZEdsdmJqNDNNakF3TURBdk1UQXdNREE4TDNScFptWTZXVkpsYzI5c2RYUnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4MGFXWm1PbEpsYzI5c2RYUnBiMjVWYm1sMFBqSThMM1JwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1Pa052Ykc5eVUzQmhZMlUrTmpVMU16VThMMlY0YVdZNlEyOXNiM0pUY0dGalpUNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3hZUkdsdFpXNXphVzl1UGpVME5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgralJOUkFBQUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUE3a2xFUVZSNDJ1elp3UTJBSUJRRlFUWDIzL0szQStNTmRXYzZBQTV2RS9hWjJRQ0FuS1VCY0xwL0FNaEZ3TDc2NEFJRUFCRVFHLzgzRUNBQWxDTEErQXNRQUdJUllQd1JJQUN4Q0REK0NCQ0FXQVFZZnhBZ1FDd0NqRDhJRUNBV0FjWWZFQ0FRaXdEakR3Z1FpRVdBOFFjUUlNUWl3UGdEQ0JCaUVXRDhBUkFnc1Fndy9nQUlrRmdFR0g4QWVPajRRUVNNWndRQUFRSUFjT3ZyWHpDK1BRQkFnS1NJSHdBUUlPSUhBQVFJNGdjQUJBamlCd0FCQXVJSFFJQUE0Z2RBZ0FEaUJ4QWdBT0lIRUNBQTRnY0VDQURpQndRSUFPSUhBUUlBNGdjQkFnRGlSNEFBZ1BqcHVBQUFBUC8vQXdERGpoU0RtSUFyY1FBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "__ASSET__:bitmap_flixel_input_mouse__FlxMouse_GraphicCursor", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQWdDQVlBQUFBSVhyZzRBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQW1SSlJFRlVlTnEwbHM5ckUwRVV4Nzg3MllTZ0psVFNTaVdwVnZyRElxaEZVSUtnK0NlSUlncWVGRS9pVFJDOHBMUVhqeUwwNGc5Q29tWFRKSVcwT1ZVRU1UZEJSSWs1VzZXdGtLSlNiR25EcHNuNlprMlczVFFicytua3dkdVpuVm0rbjMwenczc2pCVUxCQ0lBcGRNbGMrL3orZDlScTVMbHVBT1JhTzhrZkR5ZW5XMGJ5YU9LZVl3RGpEMDNUZEFnSlJFUkhJTkVlYUpWS0ZZeEprQ1NKajAzWVJYTC85bVZib2Q2QmtIMEV1bWxTdlNjMEVnTnc1ZXAxakE2UENJY1lnQU0rUDU0OG5zYXh3VUdoRUdaKzJTaFZNSjlLNCtqQUVXRVFDMkM3cEVKakhpeWswd2dGZzBJZ3JIRmdhYm1vaTJkbWt6amMzNzlueUM3QW44MHQvRjdmMFBlQ1F3NzE5UmtRT29xUlBRTzRmVjBwNnUzdzBCQXl5U1FDZ1VESGtLYUE0czkxYkc2VjlQN3hrVkU5a29NOVBSMUJtTjNFVWkwS2JpZkd4akNuS1BEN2ZJNGh0b0RWNGkrbzVSM2ovZlRKVXdSSk9JYllBbmgrK3I2NlpoazdNejRPSlI2SDErdHRHOEphVFg3N3NZWkt0V29aQzU4OWg5U3JtYlloTFFHcXVxTXZWYU9kRDRjeEU0M0M0M2JEVkU4aWpnR05tMjIyU3hjdUl2Nzh4WDhoY2l2eFdTV0dmUDRUYmV4K0VtcitLVjhxdFZ3MlEyQ3U4YmFBVk9JbEZ1YlQvejZTWFdBdTF1N1J0MENhQXJJa25Na2t3UXVjTE11UW1PUTBReGlRWFlEWGkxa2thR2tZWTVEZExqNzBsdnhCaDhuVVl3SGtjbThRaXo0MUw4a2lMM1pVbzdjN3Jja0c0T09IOXlnVThuQVRzMWI4cytUWFNGd1ZVbkMrRkQ3VFh4czNpemtSNGtZRUx1c0o0ZUkzbTRuYkxZT1RWS0dRM3hEeDU1YUxWNjBmSTcvRDg1ekltMTA5Z21ma3QwU0wxMi9YdmRUZTdkYjEvYThBQXdDWlVNUU16UW9keXdBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMinimizeButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQUIyQUFBQWRnRk9leVlJQUFBQUIzUkpUVVVIM2dNSkNSMDFlRVp4RlFBQUFEOUpSRUZVR05OaitQLy8vMzhHQWdDdUJzWkExb1JOREM2QnJoQ1p6L1QvLzM4bWZOWVQ0elR5QUNPNjhZeU1qRmpGbUpBbHNacUVMRWRVOEJBYjRBQzRjRkxGc3d1SW53QUFBQUJKUlU1RXJrSmdnZz09"},{ name : "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoLight", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQVlBQUFDcWFYSGVBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQnE1SlJFRlVlTnJVVzR0dTR6WVE1TktVYzNmcHQvYWYrcE01MjVLNFJRQ3gySnZiRi8xSTJ3Q0VaRWQyTk1QWnQwTGx6Ny9LQzMvb1NkL0RyN3JCOXNXZzZVN0E5Q295MmhjQXB3ZStpNFB2NC84Q0FSUzhSM2VBbE5ld3VBNC9RNCtTMEw0SU9EMWdDcFM0RC81cUFpeEFsSHd2SW9PVHBQQ0VtcDVHQUUwQ0orTzZqQk5rQjlSVFRLSTlDTndDR0wwWDdUd0xnS3lBWlllSUtUVTg2Z1ExSXNaN1ZRRS9TNEE4NzQ0S1h1b0RNdktPVm5XVWdJQ3NSUWNKRkpBeFJVeDdFSHlGY3dSY0EySTg4QU5rRjY5SlVRWTdEalEwaDVZQWI1RkFEdUFxRnNGNWhvQU93UHZ4K1E0cTZBYjR0Qis0eHdscTREWGdKK1cxWmc3c0VERFdMc0NpQ1hqK0ljd1ZXbkwzU1pFK0FwWkFjVlZGRmFSNGRqN0FzZ0MrSDUvWndROGcwRzRvd1EyUjdRNnZYNVhkSHlBYkFHOEtHZmdkMnU0UDRKczR4OWZqZm5ieG5YMDJTclNKM2RkMi9pU09UUnkxZFlMcjBRZDBBRDhBeTRYa2FVUjRvZkkzTWxvaXhkWGlPMG9ld1M2d21xSUdWSUFrUUlKZWp6WCszbVlrUldnS2x2Ui9lZDBtS2poTi9pY0Q5RmtjeitMMzQ5b0t6cENGbzBQZ0RmeUk1ZUZaMmUzeWlBL3draHEwOHdVQXY4SDVJb2lRU2tCUExuZitKcFpHZ0JWQ2krSVV6YWpRa3BWZURhUXZ3WDg3UUkvMVRmeE9tb1NtQUFSL0ZZUlI0RGhMMER0SU9VRnliSitVVUllN1AwQi9QNERMOVNaSWtHYkFRSUFFdjRqZEw0cGlNR21xQWp3Wi9RVFZDVklpSDdETW9BRUJBL0FuQ1QrTzQzZEJ6aG5zZWhBZzdmNFQvRThnQ3NIdlNzSlVJVzBtbzcvSVVSZ2tKd3lpL1dzRWZBSitQd2dZUzVyRzRoRHdDZjRDU2lsR2xyZ2JaS0FTckVZclo0b2hMZDNGMEhkV0NQaHhrUEN1S0dFUkpFb0h1QjdnaDBwSUFhOGxSaWVSTVZZbFd6VHJnMHd4cEJFaGZjRWlTSkFFSUFudmdvQXpSQUpwLzJkbDUyVitzRUtJYk1mN0o1RU00YkljSWJWRTFXZWx2bG9PZ0k0UUNaQ21nQXBZaGRldjRzWXQ4R05wOVlaSHdpOUtpRExCNGhSQUo4TVJuc0VSRG4vd0J4Q3dnTk5hUWZvTXdHVmtXSlQwR2plcVo3ckhUUWtSTldoalJabmdHWlNBSmpITW9JRUNic0lrQnZnQi9BMXlDU3Uxcm80RDU0d1BvQ0FaaWtwZ0xTcThLZUZ4Z0tuQ0I4aW9JTUZmSUwxdWlWTGJhNzJGWVRBVEZTaHdqTTFSeGpDUlJlejRKbXI5TTZUTkMrUU5sdXk5QnF4cEJqTzFnQlVleVZBRGtxRVJVK0hHUmlSb3prNlRrNm5TN0N5eUpZWVRzeDNpQW0xeEN0cG94ZWtZUlUzVnUwQVh1TW1aMlI4N0ZSZzcvVDJyMVYyVWZvRDNXYTk5bmhtcjNhMEE3WTk3N1d4TVQzZFk2MEV3SmtJYnRMMnNuUDllOEdZWUpLZU5aTzF3VDdTeE1HbTVpci9KSWd6dVVQL2Z4R2MyY2R3VVFsQTkzc3pBRElQUkdKcVYzbDBQMmxpeXJKV2xMWW5QVk1nRHJzcTZBUUdhU3Rnd3lSSjFoVnBDTWw3ZkhuY2VnVjlFL0Vid0MrUUJzZ3orT0k2WFl3MHlWa1VORmhIZUlOWE5BNnkrR2twdGQzYitDbVZ0aGZSMmhZS25ReW44QVNSY3dUUlFBWmFQaUtLYW1ncVQ0Z09zY1pVbCtjWG81bGdWWDRmTTd3T1dSOFNtQUk4YzVUOEthY2FPRjRNRWRxUXZuVnd6cXJvVkNDQWdZQld5bCtDUmdCV1VnSW9vR1FjWW1ZQVg0anFFdEhiY21CeVdrTkx4dllGUGtBckFqdEJGVVlFa3dsSUFubk1tQ2hSbnlvbzl0azNKNkc3S0VGVHVyblJ5NkJUeEd1bEFmOExTRklBT2taMlErRnRWT0JNR05UVnNrUGRYQXp6dVBqWkZPNWpCVGV5MGpBWVhKVS9ZamR6QWNvUnVGR0NuZHU0d2t4dm5ZMngxVlZTek83dGZ3UVIyVUFIbUJSZHh0SnhnRDU0eWNVM0E2NkdqS2V4S3I2REF6ck1DQ25jZkJ5TmFQbkZUdlArcWhNTTlDSU4zT1VFckJTYVIxR3lKTWZkTk5FS3QyV0EzU0pESHEyUDdtZDNIOUQ1VkRHbFBjZlNnNVl4Z21taDV6VXlIVjZXbXNNQjNweVpJSzhDZHBSdkFOeU5ibEFTY2xLNU9FVTdRZXo1Z0Qyb0JiL2VuTTBFdkg3Q2V5Y0dFYVFCcHg4MWxtcGRlaldFOUtUSlRLdk1qaVZCSlBKT3p3WmdMbldBTituajRqSkJHUkUvbS96elRGR21KM2ZjYURkM0lGYW80N2tyTHF6Z0U0UENUamVaSWxQV0Z1NS90Q211NUFRNGdHRVpaVlF3cHZhZkROQ2ZibmVKTEE1d3BnKzl1aVZId1hsZUlRSDlnTlRpTEUyVllxZTZpZmlGUE5IZW5HaUxraEVRQ1U4RHFyMExPRUQwMm55R2lPS0dPWnh1aldSTW9Tbmkwd2lRcFQyaVEwNGttQnp3N3RRZ0hOcDhpWW1ZeTVEMTBxRDJwVGNiTWdCTmtsNENFakpON3lmOExjS0tEck8yOE5ZTG53QXk4bHJ5MzAwODFnZG5Ka1VXSU5YVGxoQkl5NzAwUFJlNGx3RXFPTEFkcDNTQWxBSEJ5V0hNWCtHY29nQnhpSWpJeWl1STdydmt5QWlJMXpONGtUeWpqS2VDZlFVQlcyc1dwS1NJbitCTGd6eVlnVXNXak4vNi8rdS94NkticDN3QnEvZnd0d0FDRGVkRE1KazlyRWdBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicConsole", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFCVVNVUkJWSGphdEpIUkNVQWhEQVBqRzhVVjNNbmhuTVZaWE9IOFVTaFBoSW9ZeUUrNXRJRUdRRjU5T3BDRm82UXFLVzFwd0RvRERTaS91WUFGbmk0amxEM3d2SUlOWEcxMmQ0NUFCZEt1V25qMmxENEFLVWJYUXNkOGx3a0FBQUFBU1VWT1JLNUNZSUk9"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicEraserTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROWEcxNHpZQUFBUW5jSEpXVjNpYzdWZGJiNkpBR0lWWGZzV0VmVjBGckZZbGFyT3hhZmJGVGJOdDBzMitVYUNXS0pjQWpiWi9iWlBkOTAzL1MvL0J1bmlqaUZ6bUJ0cVcwMkFyenN5WmM4NDNIL1h2djk4dmpNTTRpOFhpK2ZsNWJqck1FcjJ6dWFPb0U5MEh0L3JZc1ByOHk2OC9QREMwUG4vVEdva2paNmpmRzErZlhQM3E2ZHUxK2pSUnV4cC9OdUI2Y3psWXdOUjlCY3pOcWVYSjh6NnZhUGF0TGdkL0wyOExQRmdOOFNkOS9zdnlBL0JqZEFtR3RxdURWbDJzcWVLcENFNmx1blRTYkxmYm4wRkRsRVJCYkFoU295YTE1Wk9HTElwZ0EzN0FCYTg5Vjd1VHY1OWZiT2lDZDMzKzN2Y2RXUkJtczFsOWRsSzMzYkVnZGJ2ZDVUS05SaTBZVWZNZUxWK1oxeXp2MDNxUjdUcm51cWU2aHVNYnRnV1c3NVZiKzhIdjh6d0hJdGpvTXAyUXlQTHFLNDExMVRhRnVlSUlVbDBVd3BXWGl3ZWo1YUdySzc3dFh0djJkTEJXZm1HNCtzeDJKeDRZWHJXQUZNd0tmcHFkSnJneExNMmVlVDBoUGk5cFNmMDh1QWFCVWMyYTJLbUp6V3VwSTdlYWNsUDZHWm0vSGhTYlBySTE0KzR4YWZxcDNPcHNwa2NHYmEwU1lsN2hlcWlwb1lYT2d6dGRKYVdwZ2o3VlRkM3l2Y0JHYWRkR1RaWHZiTmRVL0lGaEttTmRjS3h4VDNpOW1ibS85ZDJnVW9JaUZjSXFqYXdPbUpJQllxajRTY0J1cmtQeG8rL2dmZm9QNzhENzBuL2cvTkZLbno3L2FnZlkrWE52UG45azlkVDQ5MmhoOTBHSG44MjQ4dms1Y3YwNHBSL3lFK3RuWDMraE9rQ3QvakFOb0pkL3RQclI4aWZseDgyZUZ2OTJEd2ZMbjhBQVN2cFRzaTg2ZnhpTzdERWsvRm1ad3pxQnowOVM5VW44SElILytBNFErRS9GQUtMNnk2ajY0dk9QYlFRVFlQZnhpOElmKzIrbjlQeGplOEVEcmZNUFV3dTArTm53WmVjUDZQMlM4Y2NWUisraG53UlUvZ1MxUkgwQTEzL1U3Tk1jUU9ablU5OWdBVU0veHJtbmwvLytYc2lBNHo5cDlvbjVjNmo2eWJQZjRjZnpQN0tYb3ZOUDc2TG9Ucnl1QmN1ZjFjT2puNk5lc2NkdkNuK09Rb0pTb09FL1EzQUtJUG5wRkhzQ29QV3o5Tld6S1B3RkFkNy9yUHh4MVIrZGZvNTBQZXorbjZJL3IrL3NEVVpFTmo4UysyWUN2ZjVmMktGUDRPY1M5YU03UURWL1ZBT281NS9aOVZKMlFDLy9NaEI3L083eTUzUzlKTkErLzBVamdSOURkUkt5YzgvZ0QyY1Rra01oaVo5SzMwazRDYkQ4Mi9sbElEMS9HaEdnNXM4Qk1zNGRjaWlrNVU5c1AybitKZUZJemo5SFdUOVIvdEZWc0oyQW5KdWZmN0dOSUp1ZmhCdk9PUzVYUDlZbXFPYVB1d002K1JlTC9QeHhhd0J1YmtINjM5SDVMeFk3NUZ3cVA2U2F2S2RkRG4rT2ZwaFZVYk9DNVVmOURrQ2JIMnBoakdJTmc4L21oKzJFYkdRc0F2K1IxSDlPL3JEMVYxaitNT1NJZ09TSDdZVElIZk90NUI4aVNTSEJjd0pQZnhJVDNuTWFuWjhlTndGS0o0d3k3M1ZDU3QrWXlGQVdlNUxTd3lvdkZaVFAveHZHVWFnK0pQdFI1SDFjbmZCRDRmRFZYNkZDaFFvVktueHNMQ3BVb0lCTFJtSEdqTTRBUnFxcTZnUGlQMUhNM1VabjEzZmJBQUFBU0cxclFrYjYzc3IrQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXBwRE9oQUFBNWNHMXJWRk40bk8xOTJYZmJ4cEkrYm02Y1JQSWlPNW1UZVpnWG5UUHpPNytuNUJJTHQwZFJGQ1hGbE1RUWxDM254UWNFaVZnVGVSbFpWdUxod2Y4K1hWWGRXQnFOVmFSRU9iaStVWk5ZRzE5VmY3VjBOWGowdkhlOWVERzJ6eGVPLzJKOGRMN1EvY0Y0TjlLTWZ6MCtYN1NzZWNPejVqUC9iTGpyTFJyK0sycGVIdmE5aGE3N0I0Y1RiTWQ3dHJkb0cvN1lQajFudTN2NzdBb2UvczhmRFlmWGk5NkkvZG5kbVh4Y2FCdmFWSE8xMTlwSW0ydnYyS2R6N2NJL1BENWllemJabm5kc2o2Nzl4UGFlYTMreEl5NzhjZjlrQ3BmY09jWXI3N0FPbS9PTzMrc2ZRaWQ3UjZ6bkhtdndPWHIySGg1a0QzQ2ZmWUJOYjRnYmU4K3gyVDNtRjlnYjRQZnhCQThhOVBEYllJek5NVzIwUitlTGJzdnZUV2puaEs0K3Nla21SM1E5YWc1M29KZkgwS3VHM3ovUnp4Y2QxaGh3bWY2SmljMkFiVFJZWTFCalF1TVhRdWJmVmNobzI5b08yM3JGdnYvRVBsMncxdEUrc2oyejI4Uk12eUZtK3Fvd2U4Z3gyOWN1R1M0ZnREZHMzNVUyejhUR0ltem1HZGcwbE5pNGJneWJSZ1kyYm9ld01ZM1M2T2dXd2VNUVBBN0IweUY0T2dSUHg3ZEh2N0c3VEgzYjV1M29oS0hXZE5nRy9xRVlnTTg0Z0x2YWU2WmM3eG1NVExXWTBrV1BqSUxKTG94b0dzMHNOSjBDYUVxYWxvV21wR25PY2tjblF0aHFLU0MwUnozYVkxTWJoZlE3RG1rUHgrTzU1bkpBdHppZ05nUFRZN3E0clkzWnAwOXMyeXgzMUNxeDFEMXJ1ZVBXZEN1T1c2ZnN1RTNENkZFQ295SGIrNjdLdUpYUkthUnI2NDJPMEtBRHR2MFNCK01OTldqSnRySUVRbzNWNmsrSVVHWDlLY0w3YTRtTm9QUStZdk1HTllQUTJlRG85Sm5XWElFMXZEWFd5ZVJ3MTZvNHNCb0VUWU9nYVJBMERZS21RZEEwQ2tLekZVQVQ3RUUxbXJQdjE5cm5lMG5PZXR4dGFCSk1UWUxKSVpnY2drbnRGQlNGS1J5RldUQVo2dzNURXNmWmt4UmxRazRxajlHZE0xRVdRazFDcUVrSU5Rc2k5RlNKMElUaGM4NTg5WXNjdmw1WFRUS1hya2xxblBwbzlhZjNGaWVqSWs2UE9FNDdURXN1bVczdnNiK2ZBQmVPMW5jY3JXSjhCUDJPd05PeUNCL2NuNHRQeDhxd2J4amJSUkNhM2REMkc0U1FRUWhaaEpCRkNGa1U4SUZVWXhFZlBBYUdLMnhER1F4RjNEeGh1dllYOHhFK1VlQ1hqYVJTMGJLQjFMc2NTbU9hRlR6TFVKWUtueXVEYVhTTGdmbUVnN25MRk80Q1V6Qy9CK21Henh6UWJ6aWdMeG1NVnpFWTJ6UENzUzFTTTJwSElpdU1nVk5qNDlYSTk3Y3F4ekZHcHhpQ1BaNS82RlhDYXlNeWlOK3l6KysxOTlrSkxZNmFiaFlPYmZTR1ZkNU5iVFlJTnVSUEFNN0x5alpVUSs0M1lCYWVkekQxV1duc3NnbFE2RnZISmVUbVMzSTJHbG5PaHJGU1phc0swSytNMTg3aHFCaEFWcE1BMHFlU2JvbHNhWU13Y3JPSURkUWlYN2ZRZ0VSd2F2RVlDSlZxSmFOUzFxMkEyS29PMERIYk84VUIraTVUemZUdWN2WHNMa2d0aXRIREFLTTM2Tkc3REFFblNKdCtHODlnRmFJdWpneXFWYTZIcGhzdWh3ZE1ZRUY0V25OT1huQXlBSVNKMDJKMnM2Q0NqWmxlR2ZNNSs5Qkw2bFUyWmtLamR0SFhBTnJQRHJnbDNQQ2hGS1pTd3EzdGxsY3JpK2VYSGE1WDVzeGFObTZLZ2RrVDJXWnVib29qV2NWN1U3c2RtTVpQQjlNMXlvTVorRzVOZzlBa2JTeUdwajR2N0h5UXR3WWdlaFdVY0lTMjh5cC84bEZTUXM4cTRIaDRWb1d4SzB3RDEwR0VjZmtxQ0pwbkMrY1hiQU41d2VKRERGajhNRlpvNTBZQU1WaU56MmdiNHJ3NFp0di95SWxiTzRSc2w1QkZVeGxCdG5IVHZLTkZ1SkwyZ1pwMHVOSEZtQVNnaGJrc3dOYkl3TGJKczQvTXZGSDgyaVYwV3h6ZUZzZTN4UUdtRVEwZnBwNDBvd1RlOHZnQWpYOHhNTXNGdXZFNEYrT3Rpc24vSW1xYVJMT0FvcHFHU2xGYkhFa09aQnFPZ2FJS0hLVnhuNC9qQktlSFhlMlBNaU8rRUpERnZFRTFrampRd2VoTWwyNnNjY1RqYUJaQWpxTkRuOGdnSFZIQnBBTXNSSUJwdWdrazdxU2hUcWkrVys2MFZNRzhRV001QlFscU9GdUpLZmNlUjlIdUphZllzOEVTdWVJRDlMWGZjSi83RFJxZ1MrVUVPOXBlMU1kR2pDZkpZaWQ0VXVsYW95RXFHdmc2S3dXdlBGUjl0TjUvc0wxSC9KTU1WWXBCS1ROdzllYThTS3BQN1M2dVVzOG8wNWZNcldSakp5WnVob0Y2cGFNbjU2VmNaWGJQeUFqZ3doaWxncSs5TXZDaUpqZDB0TVd3MVR2ekdKN2ZjRHhQRkRVeGtEUUYzeEVtbUcyY3NIRDRoR3EySGpyS2VLK0FJWWJBS2lPWjREcUVwTUU5RzllUXdyMFpkN1RKUzgyeElZd3RDYzhPQjdSRGlMcTgxTWpsbUxvZDJTTERoN0g0a0N5YUdRY2ZoQTg1R25Pck14NExyOUpPUm84cVVXeEdSSEdPRG52ZWJJaFQxdFFJSndqTWI1NE9tNUpQS1d5M2NOWnh1Q1E4U3IxQWlBTmJCMXdhQTVJR1lveW1lUWM5RElRYXFwSEFWRnN0QWxIM2NqSDhRUjB0OGxtQllxaTJLNkpheUh4elQ5MXpwTlFyNXdackdnUFZVb0hhc3RUSzNPUjFBazFlS01EYWVPNmZuS0V4K2o2MlBlYUE4KzhBdE80VkJub3pTQXBkb1E4S0JUc2ZpMWdza2RRV2sxTzZNNy9wNUJTSHRpa3BiSngxd1dHeXNTZzRuU1lFc2xoZllGSUx5Sm91SVl1dGlTMHFMQ3JvbU9OMndIRzBFNzZsQ3IrSEFYNjN3TFhtckJEWFNrbU5nR296cHdWU1FzaUNDQkpsS21rVnZRTFFWb0V5MElLS1N4OXplRjhpakhPZUJzRUN6d3J1dThmVjFJdXJxZWNzaVZadjZvS3FLZFZRaFVQa0NFU05WeEFGeVZNeCtSaVdDeXlOampJRGgyNXFIb3FRU3lzWlY1b2kvUVl1N28zaVNsTUZKSmJGcGhYT1ZvT3hXQjJXTkEwZHhFUEZLaDVLQUNuQ3lXRE1JMlhjS0pHcHJPSU9jbkpocWdPZGYvRmhmQkpoMVFheHFsU01MSElmWTI1MTNtdHZwV0grQ3FPQTdHSGVLWi9xRkxBV0tZM25abjZxckFPVWpMeHltS2Vab3JSY1hEemZEckNoY2JjVFFWVStmRlJMbVczTVRkWHdsaVlSbFdHNjJTaU9IcXA3RXI2cGxaL0tET0NUVXBtZzM0Z2ZmVERwQTdsSkxGb2lOd2srb0J2ZmFwQ2ZoSlpuTEZTVVBOSmltSXBTaVFGNG9pcEU0V0VpdGwyWW5UTEdQVk1mRVVOVmlsanRIWEZNVFJXbWJrZnRkM1o1WE5ybFdjMXVpOXg0VkVDUmNldUYzcWJJd0JWV1RPRXJ3YnFOZDVvSFZTZXdTRWdGcDk3a2VMYmllRG9sckhoTFNac05GVzFTUXJoS0haU3dQdkdWTHdZM1A5aWEySkxpdFRnWHluWTdIYlRRUWY4ZnBuc094a0haWTdwWmRWSzdoSjJoZUNjU1RaYVl0V1cwcVJ6VHNIM0F0dzlvZTZCL2FHSGEzTUMwYVZnTFBjUlJmVUJoa2FxZTdKVGg5dzROK1NjTWNZVHIvaWhReHpjNHN3dkpxWG1pWmtCR3QxVTFWdGVMSitzQ0syNjJ5azlZQ0N1ZXR4YnJRUGcvQjBuL0p3KzZCeHc2VSt0WG1NQnRGeWxqTEpLZU0rUGVZM3p3TWpWUmhPREZ3aHlqbzhoc0hKQzNVd2FuelJBbmJWdmJSdy95ejJ6RWxCYTVXT1duZ0V6UE44bXUwaUxyYzVYMTBHOFZzaDg1WkM4d3krTmlQZkZIWEZFSzh3K3d3RzhiSjhKaDdVeDJEWXN5T1V3VkdVV1JOUE9WVDBJU0k1aGtWcTJVOXBrOENqUjVxVEZyMGJQaGsySTh5MGJ1RGJmTE1jY2JDVE9TSHVyRXMwTXBaYmRwQW5rY0JJenYwYUY4bzMwUWRRalptcnk4R3U4cy9EdktNajZJV3lQd0cyV3lSR21hVEI2NW5UVGVlUWcraVNENEZ3YmQyeGhabHNZUWF6TktGREFIT0ZyNUxsRGwxZVRnNHhTd054Z3N1bTNGdkRoT0hlRUc4VUZvNjRpSFAvQ0lsSUtQeEVOeStpaFBDbUtHSkNDUGtqTWs2cm1tVEVFa3B0aVZmR0oyTy9FNUVrOXB6OVI1ZXFsWXdWV3J0TXExbHhkamg3TWozTGVLWnBhUmJBRDlkcFBRbDRMNW91QVBHTnhRMzFwMmVxb0MrSVdzSWxiTlJiQjNsT2s4WVJlTDVKemxxRXJKSm9LK3g4RWtVeklZTGVwYm5MRHRWMmdjOHhhVExzTzNhQmFmRTVFdzdPWW5TMFN0alJSTVpYa1cvbURZdjE0TW91dHZQWVROeG9UZGVXU0ZxWWR3SGVNTEE5NGlrS2VwZXppTUEzcU9BZG1pQWZWL3NJZXNPUmozOFpEeG1QWWRVSE1HalQrSWhuYlVJYjdjRjBJNHFVdlJQYWVwZTZwMXlhQXVzV1kvNk5FejFoODNlQUhGakx0VlY1SDNLWHdNYkwvTHB6SmhvTHJhSDh4dWlkZFZEUFpmTU9DUGQrbmloK3p6L2dqZXdES2dWNncwOEg5K1pKY3VkdkgzcjhDK1Y3Q3ZjZlByNkJVdklYYXg3d2lkSHhQZFF5NjZYVnlSNUxLQmRxRVEzNWlEbU5TbzZKNXE0ak5KZkdZdHZncmllOExGTjJZQXVleWhJYlh5dXlURUo0R29WTWVjRmppbW1tQWRFcXhUQzdhQ1lEZURjUW1KUkhDb28yYlJpeVFaeGI3VGpIM1ZCR2lSQUsxYWdEY1ltU1NJS3d6eUx3VnMwc2hVSDNOYTRKZ2JVYTZ1MTVLdElOblEvWEx3QldCaFBiUEgwOWhpKzJuSzltcFNhNUxVbXJYUWJpQzBFYnFiYm1UVnVzZERackg5TkdWN05hRzFTV2p0V21nM0VOb0FnWmtGc0FqaGhOdFBVN1pYRTFxSGhOYXBoVlpCYUkrNTBQYjRHdFlQU0hwUi8rVXhGNVBxaU5QY0k2cUp0RXNpN2RZaXJTRFNiN2xJZXpnNSt6RW93dkNDZFZDWHdSaVV0MVlUbDB2aWNtdHhWUkRYUmhBVXdzaWhOL3JJOFh5NFI0N253ejNWUkRjajBjMXEwZDNBNHIzRWlydDV3dUtGMjA5VHRsY1QycHlFTnErRmRvTllmUlJtK29PZ1lEUHdJNlA3VGpQMlZST2dSd0wwWWgxN0ZHalRYSnRxZlpUSUc1eUlFT1VoUW52ay9hYzUrNnQxVXVmWlkyajdlZ1RZUWQrSWZUTmozNnpZdHdrSllCK1Q0bFcwOVFuWFZ0Z3p4VmR0WE9HaUM1aTJpZXByUzYwa1pnZVVLYkxyWjZNVDdqVzZUanUrMTJxR2U2Y3QrZHhXMXFudGpGTjF1VWZ5TUxsLzNWL2U2S3haYklVNGJYR2N4cmhjYVIvTDllRFk1QWd5VlIya2ZzUTFKYUlvOEY5cTcxVkFydW9tYTRJeUZBbTl4N0s5SysyRXIxLzZQVjhqalc3RGFYWlROS250OGc3bWEyU3g2NnpKeUEzR2F6aUc4M0FTd3lxN2MvazRGYnZPSGVQME5NSndiS1R5RWZ3S3kwS3BiaTluN0RhNmpNbU5sR0dWSEhOUjhsS3EzS3B1Y3NjNFA1TndqaUNjeDVJL2gzMlpOZ3pIU1lOaDVySGQ4WjFkK2N4TXRKZDhvelhSN0Qwc2NzWWFFaXpBQ2F5VG4rUFhHUTNUbFExRzZCanAwMjVibjZZNVJ2cmM4dGkzMk43QU1XbzVjN2VocHpsR3lRdnJjbzlrS2Q2Lzd0K3hianprdWdIRldEUzdEUzlkZlp1bkVTb1h3b2p1bEgxaEsreTM0V1E0eXJMejBmaTVFMTQyMVRNUjNTbWtEdXZiOXp2V2hVMnVDNUgzakxGOXVaclFha0V4b0hwd2RScWRKSnpCQ0dtMVpMOGdnaWVjMlBiU0JoZmRPTTMxWXY4dnJBeHIzUDA3MW9lTlNDN2dBL0xEWlVRYkxGV251bTJycFV2bTBneWViRHJydUJLWGRvSzlMZGVZNjJwSTV0NXM2czZTRXIyYkxxeUpWR3g4VGV5MUpCV2xrbmZOTHZNYjA1VGNNdUJmbXBKUG0xTnpxcWNvZWF1VkhEMmhrcy9tOEUrSkJReXNUbEhDWHV2dXJ3bG5VN1NTOUo5VDRySDBidkg0UWhiTURhNnp4THp5M3FCL3ZkZ2JSS1pUNTRqVElkWklnMi9iWTMrdjhRMlpZaDV1SGhTZU85cVZ2emV5cnhmOTNUMzQ4eHp4czFsY0RMSEhpVGJWL3B0OElMKy8rd0pYdVhub0szOWtpUHFSY3piRVNpNFdVME1wKzVYMmhwL3hENjBSTzNJejdFL2kySzgwWFRwNmcvWGxBcmwycmsyMHo5Q21YUGNoOXRyQmhhSi9obHJCai81VyswK3RFZjZUenR4alQrVnhYKzhJM3hWMXFQWDVtZjlQVzJodDNOdGl2V1A5MHd6dEovYlpaVnZnRTJ5YjRZLzlkZGkyTnR0RDkyamlrVzMyVjJkNzRKc3Y0UkMrM1dzSGN6UVh3YlA5azUxamFrMnBsd2ZJYnBTdlVEMmZGLzZUenV4aFBmd1ZWb1RaV0sxNWxZcmpSa1ErMllnL2pod3BxczB1eVU4SzVObVdudUl4dzNvRytTaDgyUVl1M0VWZFk5Rlg2bDFDblByOE5VY09sdGhFMFpKbHVoWFJteU9zUzczaVAxWnlqdFpCM0V1WDdoVklJdmhSczNmWXg0L0JHV2JzakVmNFhyYVAyaCtweDh2OW9yVUpzWEdwbE9hTVhVMmxyVS93SlFaLzh2d3BqT1JaNHZ5TnVMWXpYZktrWGtRMS9wRDFsNVlXbnZPZkthR3JmTTBqbjdtRTBRSHFZUGJkSTdxb3ZEdjlWZ0REaWJHUWcyTXA3eGxrSEo0RmpFTWFmWm1xSDdJTS9qKzcreC9zL2dNY1QzUE1BMTd5Y1hYQ3pyeGdXayt2MlhyTE5PWTk2dlFsMnhiRjdKUWRmMHhMcFBsZEhrWVlkenZDdVVqUkZkaDVqSVZrdjk5YmRwYlpxMmJubXAxcmRxN1orWDZ6OC9lY25XMTJiYkgybTQ3SHFGT2puMm04cjV4dDFKeGRjM2JOMlRWbmYxR2N2WkhrN0h2TDBIck4wRFZEMXd4ZE0vUVh4ZENibktGL1E2My9qZDNqZCthTDNsZU90bXFPcmptNjV1aWFvNzhvamhaZWRJU2o3eTFEbXpWRDF3eGRNM1ROMEY4a1E0OFo4bkEva01kOVplaFd6ZEExUTljTVhUUDBQV1JvaFJiVWxYYzFPOStJbldVdXE5bTVadWVhblFVN2g1SmRCanZYbFhjMU85ZnNYTE56emM3cnhNNTE1VjNOMlRWbjE1eGRjL2I5NGV5NjhxNW02SnFoYTRhdUdYcGRHYnF1dktzNXV1Ym9tcU5yamw1ZmpxNHI3MnFHcmhtNlp1aWFvZGVkb2V2S3U1cWhhNGF1R2JwbTZMdGg2RDQ3Q3JRendsbFNiUWZYcHdRN1ovT2NqRm9yd1pKNVhPZXdNZHZWTFBadnhqRHFMSVhyYnFKdlQyTFBxNVl3MkExRFl0Zm9XZGxWZ2ZGajZTMk1JVU4wTXF4TWtyZE4xcFBtcldpYjBLRHRtQTZWMWJZdHJtM2hMNE84amgxMU0rMXpFclBGWDZMMi9VTnJyMGozc3JLRTY2NTdUN2p1UmJsZTlrYS80OW9IdFJITW8xeXJPbU81MHFHdU1sNG5UOVNVZkpMYUU4MzNSQTJwWDdVbldzMFQxYVYrckpzbitpamtVOGJRa1NlOEFVT1AyUjNPa1dscmhxNFp1Z2hER3pWRDF3eGQ1d3FVRFAwNDVGTnRsc25SV3pHbTJzYmUwcTgvWFVTaXVFZXhWWC9Mak45a1hzbGp2eWJuTkEvWkREaXZ6ZjVaN0hqQmZpYjdCTDlOQ24wUTkra2dYM29ZOVFFSDF2SGI2djBEbGJaVTBiMHRaTE1MdE0yeHEyay93eitGQnVicDBGVHJNaTF3MlYrd2hITzBvQlp5bk5BaHlBdUFCbmxNdzRTbXd0RWQ5aDAwYjhhT2ordlFmN0E3OVJoV0hpSkpuUHFhWVhhSnZBbzgveWY3ZmhYZ0ROcjF2d0ZpRC9ETzIvQTNkdFh2dEZuQmZOUnFKSm1IZmJRSER6Ukgwcml2R0VwTjZSZzNoNStSV1N0b3lXWk01OFErV1RleS9FSjVMT1Zwa1lFczAySGF3R1NCckFQYUFmcFNuWW1LZURFdENkTjhxMjlWdFBwcDF1NG1mTGx1bGxLdE4zRU5mTVM0ZE1ZaWowL1l5KzBJVnVKWDhuWVEwZmRzM3pCQTlHTUZaZ0tkc05oK0QvMTNIYTJienA3WlN2ajJIYzVNRGxwQnNIOHo5aDk0VjkxYllhWW43TGozWUl2UVgzck5aZnFhZmY5ZG02WkljRXM2NXczM3BlTm4vWk05VDFQUzhVMjJINlQybHYxOWpWcjJLWFhXY0NOMkxEemxMT1hJaDdFamY5ZkU3MTBXdTI3ME9lTkhQazE5em5qUFZVLzZMUFZjdVgrcXMrVTdDNmtrbisxMlpxelU0eUxPZUROa3F5dEpIMEtwcVo1elMzbFdFWVN5ZEREdm5tcHNaVzJVSTZTMGNUTFBpRExWbUdTUGtVZVJzNHFNeHNlSzQvT2VKWGxHbm1hcGU1WCs3RStVejU0eWJrcXg5QWJiQW5LNHh1dFg5UjFOeHJYQXNWTzA1WE5reHk2My82SFZoLzN3SEEzMEw0R2h1NWdYbUtFUEtXZGZWc1BRajBMWjROWGVhK2ZvVDN6MDkwY010UDNSNUhweE50eUZYMXQ3UlkwZmJqT2FUZG9LSDN5Sk5iazBsbnJWVGRMVnBWOFQ0dDlsWG5NMVRLblN6YkxhSFdIWXl0b2Q5eitNd1A5bzF2NUg3WC9jTy85RE5TWnEzNlAyUFc3ZjkvZ20rbmFHU3J3TWQ3VXcwOURsY1NGNEV5MEZMemZ1bEpkWE01TGorSlhEL3BsMmdON0t2elFiNTVvKzRUM2h1U0Mvc2h3L2NCYjRnY1lhK29GdmtQOWVoN2szNlR6MUhPb21PNCs4UEFmWHJIOEMveWxsNUlEVlNHSmI1TXlubUYya0dUV2V0eXAwM21yMHJJaXVsTk8rSDVsRUx4TlArQzg1dTdja1BYUURQZFRYVGcrM1VQK2l6MXhNczZZSy9PNU9ROHJKczV5dWJJWmIyRjdxOTRVaWh4M09kZ0lHczR3cWhIeTdNa083NG5BckFiTWVCbFpJeG5QWW9GRk9ySllBWjFLeGhuSyt4Tm0wYjVsa1B1QWNMTWpwYzJCemszUHFEMUtyRGxRWjYxWGxqbFh5aXN2OEFicyt2SjlwSHBIeUFHTlJtcGVsK29NcXVXSVBLendhVERZZ0NSanZIczVSaFRPaERmUUpRRUozRzZ1dENuMFZqbm5vUCtValZid3BhNXZuSjNkWUx6N0FQRk1GU1Jnb0F3UEhrb01lZ010YUMyY1JvOTVaRStkK2lsWGszQ2RKNUdNYWw4clh3VHcyeVNUOFhtVVU2R3lmaHhHT0ZjeVlpTXpjT21Vc1ZvTjlpRjAyeGh2aU8rdlpFVjQ5V1dsWEZtM2piNGUyQ3NWczNKOWdKUTdNNG9PUHZSMmNYejFEQnhJd3NaYURKR0RnOVlGckxQVDdtbWpGQVdlUVU1UHQ2NktYQ0RMeFVBYnVyVWpnZThSVVBMbUlveStWdnR0WHJJZHhpLzFENnRuL3cxcEh1NGg1Q0YrQnR0MkMvTE9sbWEwSlQ3VjlkdFluOUJmUGNhNDdUeHYrRFROKzBUT2lPQWg4UGdVei9kOHpLZitNSGtINnY3S3J0ZUlaNFVhUUVUYi9KaU0rWDJyWlVuK2svYWJCKzk3ZUxtSHNkL21xSmNqN3RJSzR6a0QyaFJWTlU2eGdnbml1aFQ3OWxMVno5TkpuNkoyWTZISGNoaXllc21Qb3FjdU8rMmZLTSs5eXpLZExNSS81UVlZaWQ1QS8xdDlHam80K2Uzb0ZXTmxvcjhuUTdxREgyVUxkK0FtUHB5eWloWGJjUTl1aG80MW9ZcFhjSEhWb3p2YkJFVTRpMmx1Ti9qeExSU05aWTlhOUplYlBrbVpjRTc3bEZXdVhXUEg5TGxoM0c5OWFmdnk3eUxBUTQwSHRHVVY4Vk9XZmpQamFYeUFYeXdnV1FYMkxYZWNkMXZYVG51MmdXazQ5RG45RWZncVBmNDN6YlI5eDNlcFZ3VlVDWmYxb2E0Mzk2Qjh5OEZpR0I1SjFmWlc5YU43S2FNL1RtaUthOXlpKzlVWnhGMVNNR3ZoZms4Ly9kTkVUYUNmMFJkU2FmbGtqUHgxTE9kOXpqSlVlTUpjaHBMQ0QvczkydUtleS96VkhQQnRZdlR2RlBKdUxTSnRvUDEzdUZjUGZKcTZaRXZYQTRIWE4wWGVEbU94Mi9DOEhuL28xdzBvOGRiSHg5SVB5ekUrOGxhdTMwK2FPVnFVRmFiS1V4eU90TzR4WGlJdjNYaHhnajkrdmZKMWh2T3E2L3NVcGdjUDlXMmtZbDJTeEduMjUzaUYvcGFHOCttK2RWaHBDckZWMjFZRmN3Vkt2TmJ6OXRZYWRXMkRscjFOV1RhaFpXTHdmN2hpdkQ3NWVjb1p6MlV3czEvTFZUUHgzWXVMeWE3Ni9MQ1pPcmhXc3VmaExYZmVkeHNYZnNDZTdRTjkveHZSQzFDUkd0MVdaQy9Rd0swanhwc3R6ME4zSVdqVmFSZHRnSEhTM3EyaFhWWk1ZeFMvT1lEQWFQeXZpSlJoVFhZd0NvVmFqSzdHa0cxd3YvY3d1enVhWkJlVDdERFdSbnVBU1J3bG8rUFlOcFQ3RCtZWTIycGt1U3IyRnM0dmRtTlNubURudXhxUU8vM2w0N08za2tGZFZJWmlQNnQzcXd2ZFlEL09aOTRwV1MzOW1ueTB1RFZpTHQ4ZDFKR3BCSWFkTmJGaDlicnFEbG5DT0k1enkweDJjYTRqbXAxdFlCMlBpZkFMOHBlOFc2dFA5MW8wc05LdkxhRXVhZVpoZ2I2RGZkeVVucWhtOHYzTEtRN1M2ckRiUUY3c2tEK1lPNVFQYjdxOThWQ2pHWmZJRDFwYWRhNVFMdGxrZnp2a244TEFodW9oSzVidXdQbkRGTW1relNiU3hNcWVORlRyd3Q0VzJzb25lMGYyVlNSTER1RVFlSXZaenJOeUYrRnhVdzRvcStCRkdXVmZJaVc4MGVyY254RlhYT0s2aTk2N2lsY0RNMlJ4amJ3OGpYWmdmbWVNWlFqb08rcUp0SEI4TnZrckc0SjVybCsyQmlvb3FkY3hwK1lpdjBVOXdJNUdvbkZsWVZYMTZHYVRoZjBjMkU2TC9HLzRkN1V5dUY3M2Q0Zm5DOHp3TC92a0QrdGJBLy9tOVVTRHg3M0FPQk43czZ5QXFiakRqTWczeTdKZVlyUi9pNkp6NzQvN0pkTUd1c1hOOGpvMTl2akRuSGIvWFB6eGY2SDd2Nk9oOE1XY04yK3o0UFhzUEQ3SUh1TTgrd0crOUlUWFBzZGs5NWhmWUcrRDM4UVNQSGZUdzIyQ016VEZ0dEVmc1dOZnZUV2puaEs0K3Nla21SM1E5YWc1M29KZkgwS3VHM3ovUm9UdjlFd011MHo4eHNSbXdqUVpyREdwTWFQeEJGQnNQc1FuZW5oUFlCeStSL1RwTjNjUHhHbENmQi9TVUEraXN3YjdoY3czR2ZUeGtQS1o5QjlTY1FlTlB6bnJYQzdyeEF4WVlrcEY3eHdUKy9Icnhjc1NPNlRUOEE5NU83Ti9ZOVppRUo0ZnNLU2FIL2ZORjI1dFpIcjZOWjNJMldNNkYvTDJ6MGZWaWNEU0JSOWdkanFFWkRmRkpSanVvZ0VQVWpSSHNnb3VNSnZ3N1EwTDNkMFpEYW14NDZKMmRYZnkyMDhmR25vRDZqSVo5T0dFZkx0cndmeG45ZXI1b1FtdlQxeE5xUm5EKy91QVFtbDlzT01aaDdSNTluY0RsZnJGN0NPeHdoSWdlUStmMjdTRnNHOXFuMFBTcEdkb29nVjM3Q0U3YjI3WGhZWTVmMmZCdGFPTzNnd2txMXNHRWlMS1BCQStEOWs5c3NXemFQeHZnc1dkSDJQL0pHQy9Iem9UbXJMK0RGeCtjc1F0by92R1JkYjFnZjg0WExSOGJqeHFkbW9iVXNIWUF4elAxYWZyWU1JTnhiRGZvV3JiT1c0TzNKclo3eDd0dzNHUUhSOXhrOUJLYU0zZ1EzZC90bmVJeHV6M1V1dDNlRG03dDcrQzMvdEgxWWppWWVJdkd6MDEvY2pLaUQrTkR2cVYzd2ovNHUyY0lzWDkwekxwM2ROekhhL3FqL1dNTWFFZWFnK1ptbTVtM3d5TVUyT2h3U0EwYytsODR4QXdNUllIc2RUNzFhaUxWVXlwaWpxUS93MUtMbnpCc05iQXdybzFsc2xNMDVWTW1KZFpqLzNCSXduM0ZKRDNjZWNWbzhQaytiRGdkbzg0TitTaDl5UzR6UlU1ejBDZTg5SWREaE9qSXh1T09kdkV5L1VOVWdOMGhVTUllWEhMM09XemZHOEs5ZlAvRklYdm1GM1NRN3lmdTErRDMyMFIyaGJlbXcxcFhtcnVkeGU3WUtIVEh3NlA5WU1QWnlRRGZla0JOL0IwSU9KaW5OSmFuTkpRNzhaSGNuYnVRVEp6czRHTVVmcEJ2UThCUW9vcEgwRXVDNXUrUCs5ZUwvWk16NlBqK3lTdHNiUGJOYkxIMkZiWENlREZ6NXJFeitzeXgyTy9qUGZmN3p5Tzc5dnNITU1EN0wrQkdKellTN29tTkN1MlArcnZzdG1NMFN5L0dSMFM3dTVGbS9Dc2pxWlkxYjNqV2ZDWWpldGozRmpvYnlhRC9yQjN2MmQ2aWJmaGoreFNOemY0dTJscm93d2llTzJKZ043aUJIZkUwdzNua3B5ckp4SUxPajlqMnZ5RGtMR0pldlF6enF0L1V2SFpiRmMxcnA1QjVMWVRNdjZ1UXdhVW83OUNSL29rSERnNFdEOHh1RXpQOWhwanBxOExzSWNlTURQc0hYUHArbGVPdVdWWGROZGVOWWRQSXdNYnRFRGFtVVJvZDNTSjRISUxISVhnNkJFK0g0T240OW9qeG16djFiWnUzNEI0WXpCV3diZjZoR0lEUE9JRGhha0I2NjJyMHlDaVk3TUtJcHRITVF0TXA3L3htb1NscG1yUGMwWWtRdGxvS0NPMVJqL2JZMUJZSkliWTRvR0pDYTFzYkMrT1hPMnFWV09vc2tGbnF1QzBSU3VnVlFva1NZVmFJVVpFd3F4QTZaUUt0TlVWbkt4R0UzbENEbG13clZ4eUtyaXhNcjh6N2E0bU5vUFErWXZNR05VTUU2b1JPSDFNcFY3ZklPcGtjN2xvVkIxYURvR2tRTkEyQ3BrSFFOQWlhUmtGb3RnSm9najJvUmhUS2ZyNlg1S3pIM1lZbXdkUWttQnlDeVNHWTFFNUJVWmpDVVpnRms3SGVNQzF4bkQxSlVTYmtwUElZM1RrVFpTSFVKSVNhaEZDeklFSlBsUWhOTUZYOEFSUFI5MUdUektWcmtocW5QbHI5NmIzRnlhaUkweU9PMHc3VEV2cTV5RXNzNG44VFRJa1JXc1g0Q1BvZGdhZGxFVDY0UHhlZmpwVmgzekMyaXlBMHU2SHROd2doZ3hDeUNDR0xFTElvNEFPcHhpSStlQXdNVjlpR01oaUt1Qm1tYVA3UzZHVlJlWDZDcVZTMGJDRDFMb2ZTbUdZRnp6S1VwY0xueW1BYTNXSmdQdUZnN3VKc0diM3pTNlFiUGdjVmFRUW81Rml2WWpDMlo0UmpXNlJtMUk1RVZoZ0RwOGJHcTVIdmIxV09ZNHhPTVFSN1BQL1FxNFRYUm1RUVV5M2orK3lFRmtkTk53dUhObnJES3UrbU5oc0VHL0luQU9kbFpSdXFJZmNiTUF2UE81ajZyRFIyMlFRbzlLM2pFbkx6SlRrYmpTeG53MWlwc2xVRjZGZkdhelNWSHdYSWFoSkErbFRTTFpFdGJSQkdiaGF4Z1ZyazZ4WWFrQWhPTFI0RG9WS3RaRlRLdWhVUVc5VUJPc2FpQVJpZzd6TFZUTzh1VjgvdWd0U2lHRDBNTUtMRm15NldibHdFQy9KaUdheEMxTVdSUWJYSzlkQjB3K1h3Z0Frc0NFOXJ6c2tMVGdhQU1IRmF6RzRXVkxBeDB5dGpQbWNmZWttOXlzWk1hTlJ1TUllY0hYQkx1T0ZES1V5bGhGdmJMYTlXRnM4dk8xeXZ6Sm0xYk53VUE3TW5zczNjM0JSSHNvcjNwblk3TUkyZkRxWnJsQWN6OE4yYUJxRkoybGdNVFgxZTJQa2didzFBOUNvbzRZalcydVJQUGtwSzZGa0ZIQS9QcWpCMmhXbmdPb2d3TGw4RlFmTnM0ZnlDYlNBdldIeUlBWXNmeGdydDNBZ2d2c1NaOGZlUkY0VUlxK0ZvZitURXJSMUN0a3ZJb3FtTUlOdTRhZDdSSWx4SiswQk5PdHpvWWt3QzBNSmNGbFVrcFdQYjVObEhadDRvZnUwU3VpME9iNHZqMitJQTA0aUdEMU5QbWxFQ2IzbDhnTWEvR0pqbEF0MTRuSXZ4VnNYa2Z4RTFUYUpaUUZGTlE2V29MWTRrQnpJTngwQlJCWTdTdU0vSGNZTFR3NjcyUjVrUlh3aklZdDZnR2trYzZHQjBwa3MzMWpqaWNUUUxJTWZSb1U5a2tJNm9ZTklCRmlKY1liWDV1ZlpCR3VxRTZydmxUa3NWekJzMGxsT1FvSWF6bFpoeTczRVU3VjV5aWowYkxKRXJQdURMTWNNWGgwTVpsbXFDSFcwdjZtTWp4cE5rc1JNOHFYU3QwUkFWRFh5ZGxZSlhIcW8rV3U4LytQdHI0Sk1NVllwQktUTnc5ZWE4U0twUDdTNnVVczhvMDVmTXJXUmpKeVp1d2xXLzZlakplU2xYbWQwek1nSzRNRWFwNEd1dkRMeW95UTBkYlRGczljNDhodWMzSE04VFJVMU1EK3NXSFcwV1c1MlJITEt5SGpyS2VLK0FJWWJBS2lPWjREcUVwTUU5RzllUXdyMFpkN1RKUzgyeElZd3RDYzhPQjdSRGlMcTgxTWpsbUxvZDJTTERoN0g0a0N5YUdRY2ZoQTg1R25PckE2WGU1RlhheWVoUkpZck5pQ2hvYVhMZWJJaFQxdFFJSndqTWI1NE9tNUpQS1d5M2NOWnh1Q1E4U3IxQWlBTmJCMXdhQTVJR1lveW1lUWM5RElRYXFwSEFWRnN0QWxIM2NqSDhRUjB0OGxtQllxaTJLNkpheUh4elQ5MXpwTlFyNXdackdnUFZVb0hhc3RUSzNPUjFBazFlS01EYWVPNmZuS0V4K2o2MlBlYUE4KzhBdE80VkJub3pTQXJSdXh6ZTRZcmFBaFpMSkxYRjVKVHV6Rzg2T2NXaGJVb0tHMmRkY0poc0xBcE9wd21CTE5ZWG1OUUNzcVpMeUdKcllvc0tpd282NXJnZGNCenRoRytwd3U5aGdOOHRjSzA1SzhTMVVsSWpvTnJNYVlHVUVMSWdna1NaU2xwRnJ3QzBWYUFNdEtEaTBzY2MzcGYwdWhLZUJvbitZRWNaOTkzamF1ckYxZFJ6bGtTck4zVkIxWlJxcU1JaGNnU2l4aXVJZ3VTcG1Id015d1dXUmtlWmdVTTNOUTlGeUtXVmpDdE5rWDRERi9kR2NhV3BBaExMWXRNS1o2dkJXS3dPUzVxR0R1S2hZaFVQSllBVTRXUXc1cEV5YnBUSVZGWnhCem01TU5XQnpyLzRNRDZKc0dxRFdGVXFSaGE1anpHM091KzF0OUl3ZjRWUlFQWXc3NVJQZFFwWWk1VEdjek0vVmRZQlNrWmVPY3pUVEZGYUxpNmVid2ZZMExqYmlhQXFIejZxcGN3MjVxWnFlRXVUaU1vdzNXd1VSdy9WUFFuZjFNcFBaUWJ3U2FsTTBHL0VqejZZOUlIY0pCWXRrWnNFSDlDTmJ6WElUMExMTXhZcVNoNXBNVXhGcWNRQVh6aXVRQlFlSm1MYmhka3BZOXd6OVJFeFZLV0kxZDRSeDlSVVllcDIxSDVubDhlbFhaN1Y3TGJJalVjRkZCbTNYdWh0aWd4Y1ljVVV2aEs5T3d4V1JZTzNkSzZDVTI5eVBGdHhQSjBTVnJ5bHBNMkdpallwSVZ5bERrcFluL2pLRjRPYkgyeE5iRW54V3B3TFpidWREbHJvb05OTCtmRVZhcGxqdWxsMVVydUVuYUY0SnhKTmxwaTFaYlNwSE5Pd2ZjQzNEMmg3b0g5b1lkcmN3TFJwV0FzOXhGRjlRR0dScXA0TVhpMzlUZ3QvWGxDNDdvOENkWHhEUy9yeHRRQnl6WUNNYnF0cXJLNFhUOVlGVnR4c2xaK3dFRlk4YnkzV2dmQi9EcEwrVHg1MER6aDBwdGF2TUlIYkxsTEdXQ1E5WjhhOXgvamdaV3FpQ01HTGhUbEdSNUhaT0NCdnB3eE9teUZPMm5id3JyaE14SlFXdVZqbHA0Qk16emZKcnRJaTYzT1Y5ZEJ2RmJJZk9XVDA4ZzhYNjRrLzhoODNFeStnR2RFTEVYSnFXSlRKWWFySUtJcWttYTk4RXBJWXdTU3phcVcweitSUm9NbExqVm1MbmcyZkZPTlpObkp2dUYyT09kNUltSkgwVUNlZUhVb3B1MDBUeU9NZ1lIeVBEdVViL01YSWo3bExWdlhsMVhobjRkOVJsdkZCM0JxQjN5aVRKVXJUWlBMSTdhVHh6a1B3U1FUQnZ6RG8zc2JJc2pTR1dKdFJvb0E1d05IS2Q0RXFyeVlISDZlQXZjRmcwVzByNXNWeDZnZzNpQTlDVzBjOC9JRkhwQlI4SkI2UzAwZDVVaEF6SkFGNWxKd2hVYzgxWlFvaU1jV3U1Qk96MjRuUGtYaEtlNmJPMDB2RkNxNWFwVld1dmJ3WU81d2Q0YjVWTkxPTVpBUG90NXVFdmhUTUZ3Vi9vRjFnZld2WjZha0s0QmV5aWxnMUY4SGVVYWJ6aEYwc2tuT1dveW9sbXdqNkhnZVRUTWxndEtodlFlOFd2aWp5enFjbCtCYk40bk1pRW9iZC9HU0pxTFdSZ3Frc3o4SWZEUHZYaTdWN0ZkUWdHdHBSaC9oeVh3amhwQzVGOTV5bTdxbldKWU82eEpyOW9FZlBXSC9jNEFVVU0rNVdYVVhlcC9BeHNQMHVuOHE4NE8vRmVSbThybUt3LzRJQkQ2OHRnb3Nmc3MvNzhPNGg5bmszOGdLenlDNWQ3T0x2WDRGOXIyQmY0K2JYMFN0ZVF1eGkzeEU2UHlhNmgxeDB1N2dpeWNYWGlpZkZGL21KU2tsODBUM1Z4R2VTK014YWZCWEU5NFNMYjh6ZnYwZS9aUmNYNHBOQVZLcGpUZ3NjVTAyd0RnbldxUVZiUWJDYndiaUVSQ0k0MUZHejZFV1NqR0xmYWNhK2FnSzBTSUJXTGNBYmpFenhLeEx2MGJmaHNFa2pVMzNNYVlGamJrUzV1bDVMdG9Ka1EvZkx3UmVBaGZYTUhrOWppKzJuS2R1clNhMUpVbXZXUXJ1QjBFYm9icnFSVmVzZUQ1bkY5dE9VN2RXRTFpYWh0V3VoM1VCb0EvbzFuUUFXSVp4dysybks5bXBDNjVEUU9yWFFLZ2p0TVJmYUhsL0QrZ0ZKTCtxL1BPWmlVaDF4bW50RU5aRjJTYVRkV3FRVlJQb3RGMmtQSjJjL0JrVVlYckFPNmpJWWcvTFdhdUp5U1Z4dUxhNEs0dG9JZ2tJWU9mUkdIem1lRC9mSThYeTRwNXJvWmlTNldTMjZHMWk4bHhxOXhGdTJlT0gyMDVUdDFZUTJKNkhOYTZIZElGWWZoWm4rSUNqWURQekk2TDdUakgzVkJPaVJBTDFZeHg0RjJnUnZHTytqUk43Z1JJUW9EeEhhSSs4L3pkbGZyWk02eng1RDI5Y2p3QTc2UnV5YkdmdG14YjVOU0FEN21CU3ZvcTFQdUxiQ25pbSthdU1LRjExYzRHOENodnJhVWl1SjJRRmxpdXo2MmVpRWU0MnUwNDd2dFpyaDNtbExQcmVWZFdvNzQxUmQ3cEU4VE81Zjk1YzNPbXNXV3lGT1d4eW5NUzVYMnNkeVBUZzJPWUpNVlFlcEgzRk5pU2dLL0pmYWV4V1FxN3JKbXFBTVJVTHZzV3p2U2p2aDY1ZCt6OWRJbzl0d210MFVUV3E3dklQNUdsbnNPbXN5Y29QeEdvN2hQSnpFc01ydVhENU94YTV6eHpnOWpUQWNHNmw4QkwvQ3NsQ3EyOHNadTQwdVkzSWpaVmdseDF5VXZKUXF0NnFiM0RIT3p5U2NJd2puc2VUUFlWK21EY054MG1DWWVXeDNmR2RYUGpNVDdTWGZhRTAwZXcrTG5MR0dCQXR3QXV2azUvaDFSc04wWllNUk9rYjZ0TnZXcDJtT2tUNjNQUFl0dGpkd2pGck8zRzNvYVk1UjhzSzYzQ05aaXZldiszZXNHdys1Ym9oZkU2UmYvMzZicHhFcUY4S0k3cFI5WVN2c3QrRmtPTXF5ODlINHVSTmVOdFV6RWQwcHBBN3IyL2M3MW9WTnJndVI5NHl4ZmJtYTBHcEJNYUI2Y0hVYW5TU2N3UWhwdFdTL0lJSW5uTmoyMGdZWDNUak45V0wvTDZ3TWE5ejlPOWFIalVndTRBUHl3MlZFR3l4VnA3cHRxNlZMNXRJTW5tdzY2N2dTbDNhQ3ZTM1htT3RxU09iZWJPck9raEs5bXk2c2lWUnNmRTNzdFNRVnBaSjN6Uzd6RzlPVTNETGdYNXFTVDV0VGM2cW5LSG1ybFJ3OW9aTFA1dkJQaVFVTXJFNVJ3bDdyN3E4SloxTzBrdlNmVStLeDlHN3grRUlXekEydXM4Uzg4dDZnZjcySS9BcnlZL1JaWG11SFdDTU52bTN3aS9EQlBOdzhLRHgzdEt2RWJ4MXZzbkgwQm1PUEUyMnEvVGY1UURtL05id2hWbkt4bUJwSzJhKzBOL3lNZjBpL09id1orWVY2K2Rqa0x4UnZzTDVjSU5mT3RZbjJHZHFVNno3RVhqdTRVUFRQVUN2NDBkOXEvOGwvS3gzL1NXZm0vYlp6Ry9lMjhIZWM0VGViNFpmUFhiYkZDSDdiR1g3c3I4TzJ0ZkczbmVGZkU0OXNzNzg2MndQZmZBbUg4TzFlTzVpakNYL1IrWi80ZStwTnFaY0h5RzZVcjFBOW54ZitrODdzWVQzOEZWYUUyVml0ZVpXSzQwWkVQdG1JUDQ0Y0thck5Mc2xQQ3VUWmxwN2ljZkFiM3ZDeURWeTRpN3JHb3EvVXU0UTQ5Zmxyamh3c3NZbWlKY3QwSzZJM1IxaVhlc1Yvck9RY3JZTzRseTdkSzVCRThLTm03N0NQSDRNenpOZ1pqL0M5YkIrMVAxS1BsL3RGYXhOaTQxSXBUZmdkY1pXMlBzR1hHUHpKODZjd2ttZUo4emZpMnM1MHlhdnd1K0pmODhobkxtRjBnRHFZZmZlSUxpcnZUcjhWd0hCaUxPVGdXTXA3QmhtSFp3SGprRVpmcHVxSExJUFYvT3I1d3dqamJrYzQxNC85Um4xeGRoNWpJZG52OTVhZFpmYXEyYmxtNTVxZGEzYSszK3o4UFdkbm0xMWJyUDJtNHpIcTFPaG5HdThyWnhzMVo5ZWNYWE4yemRsZkZHZHZKRG43M2pLMFhqTjB6ZEExUTljTS9VVXg5Q1puNk45UTYzOWo5L2lkK2FMM2xhT3RtcU5yanE0NXV1Ym9MNHFqaFJjZDRlaDd5OUJtemRBMVE5Y01YVFAwRjhuUVk0WTgzQS9rY1Y4WnVsVXpkTTNRTlVQWERIMFBHVnFoQlhYbFhjM09OMkpubWN0cWRxN1p1V1pud2M2aFpKZkJ6blhsWGMzT05Udlg3Rnl6OHpxeGMxMTVWM04yemRrMVo5ZWNmWDg0dTY2OHF4bTZadWlhb1d1R1hsZUdyaXZ2YW82dU9icm02SnFqMTVlajY4cTdtcUZyaHE0WnVtYm9kV2ZvdXZLdVp1aWFvV3VHcmhuNmJoaTZ6NDRDN1l4d2xsVGJ3ZlVwd2M3WlBDZWoxa3F3WkI3WE9Xek1kaldML1pzeGpEcEw0YnFiNk51VDJQT3FKUXgydzVEWU5YcFdkbFZnL0ZoNkMyUElFSjBNSzVQa2JaUDFwSGtyMmlZMGFEdW1RMlcxYll0clcvakxJSzlqUjkxTSs1ekViUEdYcUgzLzBOb3IwcjJzTE9HNjY5NFRybnRScnBlOTBlKzQ5a0Z0QlBNbzE2ck9XSzUwcUt1TTE4a1ROU1dmcFBaRTh6MVJRK3BYN1lsVzgwUjFxUi9yNW9rK0N2bVVNWFRrQ1cvQTBHTjJoM05rMnBxaGE0WXV3dEJHemRBMVE5ZTVBaVZEUHc3NVZKdGxjdlJXakttMnNiZjA2MDhYa1NqdVVXelYzekxqTjVsWDh0aXZ5VG5OUXpZRHptdXpmeFk3WHJDZnlUN0JiNU5DSDhSOU9zaVhIa1o5d0lGMS9MWjYvMENsTFZWMGJ3dlo3QUp0Yyt4cTJzL3dUNkdCZVRvMDFicE1DMXoyRnl6aEhDMm9oUnduZEFqeUFxQkJIdE13b2Fsd2RJZDlCODJic2VQak92UWY3RTQ5aHBXSFNCS252bWFZWFNLdkFzLy95YjVmQlRpRGR2MXZnTmdEdlBNMi9JMWQ5VHR0VmpBZnRScEo1bUVmN2NFRHpaRTA3aXVHVWxNNnhzM2haMlRXQ2xxeUdkTTVzVS9XalN5L1VCNUxlVnBrSU10MG1EWXdXU0RyZ0hhQXZsUm5vaUplVEV2Q05OL3FXeFd0ZnBxMXV3bGZycHVsVk90TlhBTWZNUzZkc2NqakUvWnlPNEtWK0pXOEhVVDBQZHMzREJEOVdJR1pRQ2NzdHQ5RC8xMUg2NmF6WjdZU3ZuMkhNNU9EVmhEczM0ejlCOTVWOTFhWTZRazc3ajNZSXZTWFhuT1p2bWJmZjllbUtSTGNrczU1dzMzcCtGbi9aTS9UbEhSOGsrMEhxYjFsZjEramxuMUtuVFhjaUIwTFR6bExPZkpoN01qZk5mRjdsOFd1RzMzTytKRlBVNTh6M25QVmt6NUxQVmZ1bitwcytjNUNLc2xudTUwWksvVzRpRFBlRE5ucVN0S0hVR3FxNTl4U25sVUVvU3dkekx1bkdsdFpHK1VJS1cyY3pET2lURFVtMldQa1VlU3NJcVB4c2VMNHZHZEpucEduV2VwZXBULzdFK1d6cDR5YlVpeTl3YmFBSEs3eCtsVjlSNU54TFhEc0ZHMzVITm14eSsxL2FQVmhQenhIQS8xTFlPZ3U1Z1ZtNkVQSzJaZlZNUFNqVURaNHRmZmFPZm9USC8zOUVRTnRmelM1WHB3TmQrSFgxbDVSNDRmYmpHYVR0c0lIWDJKTkxvMmxYbldUZEhYcDE0VDRkNW5YWEExVHFuU3pySFpIR0xheWRzZjlEeVB3UDVxMS8xSDdIL2ZPLzFDTmlkcjNxSDJQMi9jOXZvbStuYUVTTDhOZExjdzBkSGxjQ041RVM4SExqVHZsNWRXTTVEaCs1YkIvcGgyZ3QvSXZ6Y2E1cGs5NFQzZ3V5SzhzeHcrY0JYNmdzWVorNEJ2a3Y5ZGg3azA2VHoySHVzbk9JeS9Qd1RYcm44Qi9TaGs1WURXUzJCWTU4eWxtRjJsR2plZXRDcDIzR2owcm9pdmx0TzlISnRITHhCUCtTODd1TFVrUDNVQVA5YlhUd3kzVXYrZ3pGOU9zcVFLL3U5T1FjdklzcHl1YjRSYTJsL3A5b2NoaGg3T2RnTUVzb3dvaDM2N00wSzQ0M0VyQXJJZUJGWkx4SERab2xCT3JKY0NaVkt5aG5DOXhOdTFiSnBrUE9BY0xjdm9jMk56a25QcUQxS29EVmNaNlZibGpsYnppTW4vQXJnL3ZaNXBIcER6QVdKVG1aYW4rb0VxdTJNTUtqd2FURFVnQ3hydUhjMVRoVEdnRGZRS1EwTjNHYXF0Q1g0VmpIdnBQK1VnVmI4cmE1dm5KSGRhTER6RFBWRUVTQnNyQXdMSGtvQWZnc3RiQ1djU29kOWJFdVo5aUZUbjNTUkw1bU1hbDhuVXdqMDB5Q2I5WEdRVTYyK2RoaEdNRk15WWlNN2RPR1l2VllCOWlsNDN4aHZqT2VuYUVWMDlXMnBWRjIvamJvYTFDTVJ2M0oxaUpBN1A0NEdOdkIrZFh6OUNCQkV5czVTQUpHSGg5NEJvTC9iNG1XbkhBR2VUVVpQdTY2Q1dDVER5VWdYc3JFdmdlTVJWUEx1TG9TNlh2OWhYcllkeGkvNUI2OXYrdzF0RXVZaDdDVjZCdHR5RC9iR2xtYThKVGJaK2Q5UW45eFhPYzY4N1Robi9EakYvMGpDZ09BcDlQd1V6LzkwektQNk5Ia1A2djdHcXRlRWE0RVdTRXpiL0ppTStYV3JiVUgybS9hZkMrdDdkTEdQdGR2bW9KOGo2dElLNHprSDFoUmRNVUs1Z2dubXVoVHo5bDdSeTk5Qmw2SnlaNkhMY2hpNmZzR0hycXN1UCttZkxNdXh6ejZSTE1ZMzZRb2NnZDVJLzF0NUdqbzgrZVhnRldOdHByTXJRNzZIRzJVRGQrd3VNcGkyaWhIZmZRZHVob0k1cFlKVGRISFpxemZYQ0VrNGoyVnFNL3oxTFJTTmFZZFcrSitiT2tHZGVFYjNuRjJpVldmTDhMMXQzR3Q1WWYveTR5TE1SNFVIdEdFUjlWK1NjanZ2WVh5TVV5Z2tWUTMyTFhlWWQxL2JSbk82aVdVNC9ESDVHZnd1TmY0M3piUjF5M2VsVndsVUJaUDlwYVl6LzZod3c4bHVHQlpGMWZaUythdHpMYTg3U21pT1k5aW0rOVVkd0ZGYU1HL3Rmazh6OWQ5QVRhQ1gwUnRhWmYxc2hQeDFMTzl4eGpwUWZNWlFncDdLRC9zeDN1cWV4L3pSSFBCbGJ2VGpIUDVpTFNKdHBQbDN2RjhMZUphNlpFUFRCNFhYUDAzU0FtdXgzL3k4R25mczJ3RWs5ZGJEejlvRHp6RTIvbDZ1MjB1YU5WYVVHYUxPWHhTT3NPNHhYaTRyMFhCOWpqOXl0Zlp4aXZ1cTUvY1VyZ2NQOVdHc1lsV2F4R1g2NTN5RjlwS0svK1c2ZVZoaEJybFYxMUlGZXcxR3NOYjMrdFllY1dXUG5ybEZVVGFoWVc3NGM3eHV1RHI1ZWM0VncyRTh1MWZEVVQvNTJZdVB5YTd5K0xpWk5yQldzdS9sTFhmYWR4OFRmc3lTN1E5NTh4dlJBMWlkRnRWZVlDUGN3S1VyenA4aHgwTjdKV2pWYlJOaGdIM2UwcTJsWFZKRWJ4aXpNWWpNYlBpbmdKeGxRWG8wQ28xZWhLTE9rRzEwcy9zNHV6ZVdZQitUNURUYVFudU1SUkFocStmVU9wejNDK29ZMTJwb3RTYitIc1lqY205U2xtanJzeHFjTi9IaDU3T3pua1ZWVUk1cU42dDdyd1BkYkRmT2E5b3RYU245bG5pMHNEMXVMdGNSMkpXbERJYVJNYlZwK2I3cUFsbk9NSXAveDBCK2Nhb3ZucEZ0YkJtRGlmQUgvcHU0WDZkTDkxSXd2TjZqTGFrbVllSnRnYjZQZGR5WWxxQnUrdm5QSVFyUzZyRGZURkxzbUR1VVA1d0xiN0t4OFZpbkdaL0lDMVplY2E1WUp0MW9kei9nazhiSWd1b2xMNUxxd1BYTEZNMmt3U2Jhek1hV09GRHZ4dG9hMXNvbmQwZjJXU3hEQXVrWWVJL1J3cmR5RStGOVd3b2dwK2hGSFdGWExpRzQzZTdRbHgxVFdPcStpOXEzZ2xNSE0yeDlqYncwZ1g1a2ZtZUlhUWpvTythQnZIUjRPdmtqRzQ1OXBsZTZDaW9rb2RjMW8rNG12MEU5eElKQ3BuRmxaVm4xNEdhZmpmYUdkeXZlanREczhYbnVkWjhNOGYwTGNHL3MvdmpRSXBmNGZ6SHZBMlh3ZVJjSU5abG1tUVc3L0VEUDBRUitUY0gvZFBwZ3QyalozamMyenM4NFU1Ny9pOS91SDVRdmQ3UjBmbml6bHIyR2JINzlsN2VKQTl3SDMyQVg3ckRhbDVqczN1TWIvQTNnQy9qeWQ0N0tDSDN3WmpiSTVwb3oxaXg3cCtiMEk3SjNUMWlVMDNPYUxyVVhPNEE3MDhobDQxL1A2SkR0M3BueGh3bWY2SmljMkFiVFJZWTFCalF1TVBvdGg0aUUzd3hwekFKbmlKak5kcDZoNk8xNEQ2UEtDbkhFQm5EZllObjJzdzd1TWg0ekh0TzZEbURCcC9jdGE3WHRDTkg3QmdrQXpiTy8vSWZuNjllRGxpeDNRYS9nRnZKL1p2N0hwTXdwTkQ5aFNUdy83NW91M05MQS9md0RNNUd5em5RdjdlMmVoNk1UaWF3Q1BzRHNmUWpJYjRKS01kZGpqN2dyb3hnbDF3a2RHRWYyZEk2UDdPYUVpTkRRKzlzN09MMzNiNjJOZ1RVSi9Sc0E4bjdNTkZHLzR2bzEvUEYwMW9iZnA2UXMwSXp0OGZIRUx6aXczSE9LemRvNjhUdU53dmRnK0JIWTRRMFdQbzNMNDloRzFEK3hTYVBqVkRHeVd3YXgvQmFYdTdOanpNOFNzYnZnMXQvSFl3UWNVNm1CQTU5cEhVWWFEK2lTMldTdnRuQXp6MjdBajdQeG5qNWRpWjBKejFkL0RpZ3pOMkFjMC9Qckt1Rit6UCthTGxZK05SbzFQVGtCcldEdUI0cGo1Tkh4dG1KSTd0QmwzTDFubHI4TmJFZHU5NEY0NmI3T0NJbTR4ZVFuTUdENkw3dTcxVFBHYTNoMXEzMjl2QnJmMGQvTlkvdWw0TUJ4TnYwZmk1NlU5T1J2UmhmTWkzOUU3NEIzLzNEQ0gyajQ1Wjk0Nk8rM2hOZjdSL2pFSHNTSFBReEd3emszWjRoQUliSFE2cGdVUC9Dd3ZlWUltRGk0dnVwbGorMnNTWE1GSDVhMHZ6a1B3YmZDRUVUTGwyK09UNUZLZk9ZWnEyeWFURWV1d1BYekVSRDNkZU1mNTd2ZyszT1IyVHRQbENqWjVHcnl5SGhhWTBjVHJ6aDBORTU0ajA0bWdYbS80aHluNTNDR3l3QnhmZGZRN2I5NGJzTm9kSCs4R0dzNU1Cdm5LQW12Z0xDSEJVVFdsUVRXbE1kZUpEcWp0M0laTTMyV0Y5aC8rOU9HUW92cUI3KzM3cWczekwyTmhCRC9ZU29WVThncDc5Q1BuMzB2bTlOcGdWbXpPSXQ4Tjd4dTZuRjRJc2NUOS92ODk4Z3YzK0FRekovZ3M0NHNSR2lqeXhVUVg5L3dNQmZZTnFGQXJlelFBQUFMNXRhMEpUZUp4ZFRzc09nakFRN00zZjhCTUFnK0FSeXNPR3JScW9FYnlCc1FsWFRacVl6ZjY3TFNBSDV6S1RtWjNOeUNvMVdOUjhSSjlhNEJvOTZtYTZpVXhqRU83cEtKUkdQd3Fvemh1TmpwdnJhQS9TMHJiMEFvSU9ERUxTR1V5cmNyRHh0UVpIY0pKdlpCc0dyR2NmOW1RdnRtVSt5V1lLT2RnU3oxMlRWODdJUVJvVXNseU45bHhNbTJiNlczaHA3V3pQbzZNVC9ZTlVjeDh4OWtnSisxR0piTVJJSDRMWXAwV0gwZEQvZEIvczlxc080NUFvVTRsQld2QUZwNlpmV1NEdEJGZ0FBQXExYld0Q1ZQck95djRBZjFlNkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0bk8yZGpaSGJPQXhHVTBnYVNTRXBKSTJra0JTU1JsSklicENiZC9QdUMwakpXYThkMjNnem50WHFoNlFJRXFJQWtQcjVjeGlHWVJpR1lSaUdZUmlHWVhoSnZuLy8vdHZ2eDQ4Zi94MjdKMVdPZTVmaDJmbnc0Y052djY5ZnYvNnE5OXErWi8xWE9hb013L3VCdk0vaTl2Q1cvcm03dG83VmJ5ZC9ya2RYRFhzK2Z2elkxdFZLL3U3L2JILzY5T25YMzIvZnZ2Mzg4dVhMZi9xaTloZTFyL0lwS2kvTzVSam5rVTc5WEs3YXo3SGFiL21UZHAxYmFWcGYxYkZoejByT25mNHZPdmwvL3Z6NTF6YjFULzh0dVpRTWtEa3lZai9uVlA3SUZKblgvbXdYOUd2T0pUKzNFOW9DNVJ2MjdPUmZNdkw0citqa3p6SGtRbisxREpGenRSWDNXZVRITmVBK3ZqcUdQZ0RLWXoweDdObkovNnorVC9sMzd3em9lZVJlZjZzdElOZmF0aXo5ekZqSjMzb0E2UHVWbm5YRDBITk4rU1BYa2xWZDZ6NUlYL2VZd0huNFdaTEhkcm9oMjRuMWpPVmZiY1JwRFA5U2RlTCtjN1FmWGMxWW5HMGZwMTluK3lsWldkNHBEL3B0NWwzWGVTeVhzcXh0MmlCNmhqSEo2cHBoR0laaEdJWmhlRVVZeDkrVFI3RFhwLy96YnkvdldmTGQraDVjNm11Nk52V3VlSVRMNk8xcUI4L21aMGlkOEpiMnZydVc5L09kL00vWThZOThobm1lOTNXK3hDNjlsZnovaHY3ekZseis5TE5oejhPbWprMG0vWGZwMjhNWDVHdnBJNTNQa1Bva1A4NWQrUU5ONTIra2pGeVAvY2krTE5zdjdkL2FwWmZ5dHgvaVVkdEF5dDkrTmg5elB5bDlpYzRzdVNBYmJMN3M1NXowQzlobldDQWo3SFlGNTFIbnRBK1Q5bWUzSGRvTTkwS2VtUmJ5N3V6Wm1WN0szM1gwcU9PQnJ2OERkV2k5NEw1dFA0NTllMTJNMEM1K3lIM1FkbC8zLzBvNzYzam5iOHhuU3ZicjlGbGRrdDZ6NjM5QXR1a0RMdXlyS1puaGIzRi9RNWI4djVNL2ZkOCtRTWY3V0ovQXp0K1k4aWN0L0FEazA4bi9LTDFYa1QvUDl2cWJzckc4aS9URjJ4Zm4rdDdwQnZTSjJ3bTZ4Ym9ZZHY3R2xML1A2K1JQbk1xWjlGTCtuTmY1dy81MjdGdExQMXRCZmFVL0xmMTM5dTNsdGRSdDBkV1IvWDA4UjhoajVVdUVsYjh4ZllpOHAzWGw4WGptVEhyZXBoNGVWZjdETUF6RE1BekRVR05iN0p2OFBENi9aMXc5OW9BWlk3OGZ0bjN4czAyK2l3dTlGWC9EL01ObloyZlQ2dnpnMWdub0RzZUU1OXpBOUMxQ1h1dnphMTluUDh6eW9LOUdQNXlqczZzZy81WGQxM1l3Zkh6WWp0QWIySDg5eDZkSXYxREc3dHRuNTNQc3QrTXZ4MmdmMkpIeFNRM0hkUDNjZmhmWGU1SHk1L3B1WHFkOWdiYnZXdWI0RDdwNVJKN3JsL1BQN0xmek5laUk2Zi9uV01sL3BmOVhkdkQwcGFkUEhSc3A3U0w3c1dNd3poekxkbG5nazlqRkN3ei81MXJ5NzN4KzRMbGZKUy9QQlN6TzlIOXdYSURMeWJsNXpyRG5Xdkl2ME1ucE95OTRoaGZXNGM1ejlmeGY2UWEzT1QvL0hhdFF6Tnl2TmQyN1hPMWJ2ZU41Zk43WkFoakQ1L1hFalRpZDFNL2QrSjluQU9UN3Y4dktzVXg3NUQ4TXd6QU13ekFNNXhoZjRHc3p2c0RuaGo2MGt1UDRBcDhiMjl6R0YvaDY1QnFyeWZnQ1g0T2QvTWNYK1B4Y1UvN2pDM3c4cmluL1lueUJqOFhLNXplK3dHRVlobUVZaG1GNGJpNjFsWFRyaGh4aGZ4SS9iTVQzWGtQamxkOFJkbXV0ck5pOUk2N2cvZHgrWmZ1UTdpbi90RE04TTE3WEI5c2J0cm5DYS9Dc1pHejVZMy9CSnJkcVN5dWJuT1Z2ZnlKbDh2bzhMdVBLbm1DYndlcGVLRE42elBMUDl1aDFDcC9CcG16Ykt6YTcrdDkydE82YlBKbUcxeEREcjRjTnZtczNYZjh2Yk5OakcxdGcvVS9hOXZuUWJuMjkxK2Z5bW9Tcjd3dVJSOHJmNjQ2eEJwclh4SHAwa0JHNFhuYmY1RElwZno4N1YyM0djdlUxbmZ3ZGIrUmo5aCt6bi81SmV1dy8rcjZZajVGUDd2ZDZlUGVNZTdrbTJNY2grNFZsdVhvdS9xbjh1LzJkL05NWDFNVWkwYS9SN2FSLzlBMjUzVEg4Rk5iejVNSHhSMmZYLysxN0s5S1BBN2VTZjljZWJQdDNQQUg5UFgxSDNiM3Mya2JHcUpCZStpa2Y5WjJCdHV4NlNSMXc1RWUvbGZ3THIrTkw3QUNzMXB6T2U4MTcyY25mWmNqdkMvdWFSNVYva1RFeTZjZmJyYS9QY2Erbm1XbDFiV1lYbDVNK3Z5Ni8xZjdkZmF5dXpldnluSzUrbm1Ic1B3ekRNQXpETUF5d21sdDF0TCtiSy9BMytGTjJjYXpENyt6bTFxMzJlYzZGNXdvZHZUL2VncEYvajMwWXRxSGxuQnBZK2VkMzdjVzJrZHAyekQvZjViRGZxZkQzUlBEL2dZLzVXdHVUOEMxeEw1WS8zN1B4UGIvcVBCSEx6SDYyakp1SEkvM2YyZWF0LzlubXV6NjIwOWxHYS8rTTJ5Sngvdmg2c0FGeXJiOVI2RzhKT2NiRWNxWXMrSWp1cmFkdXpWbGJPeHp0cDIvbU9nRXBmMEFQdUMxZzE2Y3QyRGVML0NoN3podXgzNitiVTlMdHA5MzZ1MEN2d3JYbDMvV2ZTK1R2T1Ivbzd2eldvTC9KdUpOL1BnODZuMjdCTStrVjV3cGZXLzlmS24vcmJYU3dZMjNzdzBNKzVIR2svMVArdEkxTWsvZ1F4d2c4c2ovbkVqeHVvby9ScjI0aC84SStQZmZuM1R6eXZEYkhmenY1NDhlcjlIUDg5K2orM0dFWWhtRVlobUVZaG52Z2VNdU1tVnpGZjk2SzNmdnFjQjE0NTdZL01OZUx2QmNqL3pXZTMrRDRldWJIMFkrWmcyTy9YYWF6c3FGNERsNzY2bXlIOHJ5Z2xRL1F4eWdUMTJiNXNmODZmaCtmcHN2VDJhTmVBV3lnYVEvRmJ1YzFHam12czZrWG5sZkh6MzYzWERzVTJ6OTIvbTZPbCsyNzl1ZVNObVhNY3FYZjBmMi84MVZpVTM1MithZitvMTY1OTFVTVR6ZFBLT2w4T3l2NVU4L3BSL1Q4Tkh3LzJHYnRIN1QvMFBlMktqL0hjbzZYOTFkK3p6TFBiOFZPL3BiWm44cC9wZjlUL2puLzEzNWtqbUdyNTVqbjh1N1doOXpKMzIwVVNJczI5dXh0d0ZqL1cvL2RTdjZGL1pCK3puTXU0eExhQTNtYzBmK1FiWU0wMmJaUDNPM3ZGWHhDSHYrdFpQeWU4dmY0TCtmNDJRZVkvc0ZpTmY3YnliL0llZjdkK085VjVEOE13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekM4THNSUUZwZCtEd1FmL2lyV3pqRkFSMXppbjcvazNFdks4TjRRMzNKTFdQK1l0WE15ZitLeEtOK2w4dWU2amtycjdMY1d1amlVam93blB1S1NXRURpbHJ3T3psR3MrMUg5R21LajROcHg5STZkOG5kNGlRdnNZdmNwazcvcjdyaGZ5a3Q4bFkrUmRzNFhJTjdjTWVlTzFVMjhOaEJyQ0dXZlpTMHl4NXZ2K2pYNW56bVg4eDAvUzE2T1JicWtmb2s1OHMreFVlK3hybG11MTBhNU9KYnJmeEVQVGovbGZqczZQVW84bCsvYjMvNmhMZXgwQVBHNnhKSjVUa0hlRzhmcFo3ditRLzZPQ1Z6aCswNzk0bGpLUytxWGN5a242VjVMLzJkY2Z1TG5NbjJiTnUxOTFMTy90K0h2S2JrZTNHNWRUN3Y3Y3Q0ZFhodk05N05xaDM2R0lyZnVleDl3NXJuaStUSTVkNEEybEJ6Vkw5QXVISjk2TFhidE92c3IvY2Yvby9PeVRYdmVWNWNlL1kvN1NsbTVyMXIzcmNycXRhSmdKYmVNRGUzU3BHdzVqNFc4RXVlVjdaNjJtUnpWcjg4alQ4OVZlaXZvd1ZYL1B6dnUvUlA1YzQ3bjNHU2FmaDUyOGVCT3Q1dUhSSjNuTnlvdVdlZXJHeXQyT3RONVpUdjArRGpMZmFaKzZmL2RmSVczc2l2RGtkNkZUdjQ1ZjZQZzNjQjlsWHRDeHA0amRBYXY2WmpYZU82UTQ5V3RjNDlZeWI5cnI0eFRyQjlXN1p2OEw5WG51M1ZLUFcvcURFZjl2L0E4aTlXN1RDZi9vN0x6VEt6eU9nL2tSRjJ5TnR4cXJHYWRtZkpuVEpqckJIcWRMNjhyMkwxYmU0NlozeDI2Y3ZEZFEvUk5ybG5YY2FaKzRlaGJ1eHg3ajNtTHZLT3U4czE1R2dsakJjaDZRYituM3ZTNzlKSGVPOVB1ZCsrRXE3R0F4em1YckJONnlYTjZWNytVKzBpdW5QUHM4MWFIWVhnei93Q2dndm9nNEw4bG93QUFEdGR0YTBKVStzN0svZ0Iva29FQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSGljN1oyTmtSd3BESVVkaUJOeElBN0VpVGdRQitKRUhNaGU2ZW8rMTd0blNVRFB6LzVZcjJwcVo3dHBFQklJMElPZWw1ZkJZREFZREFhRHdXQXdHQXdHZzhIZ1AvejY5ZXZsNTgrZmYzemlPdmVxNStKenBhd0FaZmozd2Y5UjZmbUsvak44Ly83OTVkT25UMzk4NGpyM01uejU4dVhmenk2K2ZmdjJPKyt3TjJVRTlQdEhSdFQ3dEo2Vm5rLzF2d0kyMGY2dTlsLzFVZnAybGFhVDErM2YrWjFkVlBLczVBUmRHcjFlcGN1dVorMjhlejV3YXVlcmV1dnNIK1ZyMzNXNXRHOTdIcG9QZVFXcS9xOTVaZldPKzU4L2YvNzNlK2d0MHYzNDhlUDN2WGlHdXFndkMwUTZ2UjdwTTBUK25pYnlpTHk1RjJXclhrZ1gxL1Y1NnFCcEl5OVBSeDMwZXZ5Tno2ci94OSt2WDcvK2Z1NEtPdnR6VFdYUjhpTk5sTTh6V1o4alBmY3krN3NNVVo3YkNKdkgzOUNacG9udmpGdGNjejFGR3Azek9MUjlSVDZrUnhmSXFlbFU3dmlnQzlxeXloM1hWQitxWnkyZjhYM1gvdnJNRmF6OGYxWm0xdi9wZjUyOGdjeis2bStvVTFaMzdCeDZWbjNSTHVLREw5QStxSDZCUEZaeWRycEFQc29oUC9jVlZaMzkrWkRQeTk4Wi8rOHhGN2pGL3VnOCtpUDE3dVNsL3BYOWZSM2l3TGJZUGY1R1d5Qi8vdmQraHF6MFVkcUxRdk9oVHBrdThMY3VLKzJSdVY1bGYyVFU1NzM4VEc4clcxekZMZmFuSFd1NzcrUU5aUFpYZjRmdnpmb29mZDM5aitvMjduSGQvU1MrSTdNL2V0QTJsdWxDMDZuTmFSZkk3L2JIUC9KTS9PVVp6VGV1SWVNejdFOWZVWDNRbndGMTllL3FieG5mSEpvZW1lbGIrajJlcFE5MGE2WElpL3Y0VGNEL2tjYnZJU2Q5THdQMXhvZGt1dEJ5TXZuSlg4ZEQrb2YvNzdLby9EcVhxZlRwdWgwTUJvUEJZREFZRERvNDk1ZmRmODN5YjhFOXVJUXJPQzN6TkgzRjI1N0NZK1hFcFZqUFpIR0JlMkpWL3VyWkZaL1djWmlQd3FuT3J1aTQ0bTN2SWF2R3RxdG5LczZxOGg5VlhIcTMvRnY1dEVkQjVkWTlFMTZuSzNKMThmeDd0ZXRNVnVYVi9QNEo1MVdsUHluL1ZqNnQwcFB6aHM0cCtoNEY1M2lRaFh5Y0ExbnByTktCeGhXN1p4NXBmL1RqbkZ6RmVXbmNYbVBtVmZyVDhtL2gweW85RWFNTHdMUEM4eUh6eXY3RTdWUVdsYlBUV2FVRHRUOXladkpuL3YvS0hwb1QrMWVjbDNQV3lyMVdITmx1K2RUMUtwOVcyUi91V1BrajVSUTkvOHhHeU56OWY2b0R6NnVTZjVjclc2RWFxK0JHOUg3RmVRVklxMXhNbDM2My9GdjV0TTVQMG9lampHZ1A5RFdlM2JXL2pobWU5bFFIcC9hL0ZlcHY0QnFVZDY5OFUyWVhydnZjd2RPZmxIOHJuOWJwS2JPM3pqc1pGN1RzekVZQjVSYXp0RHM2ZUEzNzY5akp4L2ZpS1MrSVQxUE9DM215NjFYNmsvSnY0ZE15M3M1bEE4b3BWbVV6SjNldWxPZVJaMGRubVk0OTcwcitybDZEd1dBd0dBd0dnOEVLeEw2SStaeUNkU0JybUZVc3Frc1RjOXNkL3VjZTJKRTFnRzRlV2VhdUxQY0c1MkpZZDNzTWZ3WGlINnkvZDlZbTNmcjFtZnNaTTY1UjE1U0IrRTZzOEZGbGR0Y2ZDWTlkQjZpdnhyZTY5cTluWTBpditzdWU1eG51YWIyZDk0cDc3cGYwekVHbU01N3A5RWwvOHppR3gyaXo4bmZ5eW1UTTBuWFhkOHZJOUxpRFZSeEo5K1JYNTNHVWcvQTRyZTdWMStkSm96NEhuU3VYby9GQTVleVVEM0NaOUJ4UnhaL2g4OGhIWS81YWw2cjhuZkpjeHFyTTZ2cU92TVFiVmNZVHJPemZuYmNFWGN6UytTLzRPdTMvNk1yUE0yVG5POG1yT21kQ09jaFNuWTNJOU85OFIxZCtsWmZ1MTNjWnF6S3I2enZ5Wm5vOFFjZVBrZCtLWit6c1grbC81MndSK2Zxbnl4ZDUwUDJPejlMK25zWGlzL0k5cjUyemhGV1oxZlVkZVRNOW5pQWIvNVZiOURaZjdmdTUydjh6WFZYOVg4dnU3TzhjOUtyL2E5NWQvNi9tZjEzLzE3S3JNcXZyTy9MZWF2K0FqaTAraHVHZmRIenArQ3VYYVRYK3E5eHUvNENlNGF2T24yZTZXczFaZkR6MU1VNTV4YXg4UlRmK2EvcXF6T3I2anJ6M3NELzFydGIvZWk5cm05elhQdVE4bXMvL1BZM09rWDFPbjgzbHV4aUJ6b1g1bmdFWi9EN2xkZVZYZWExa3JNcXNycS9TWkhvY0RBYUR3V0F3R0F3cTZOeGNQMWM0d0VlamtzdlhIeDhCeitJQ1didjdIc3pWT29MOTBzOUVGV2VyOW1PK1p6eUxDOHoyTWl1eXVJRHUyZFg5L3lmclY3VVZzVGE5bm5GdTJKOTduZ2R5NkhYbkluZTRQTkpVYS9UT0xwa2U5RnlnY3FTVnZtN2xHMC9nKysvVlBsWHNqNWdUZm1PSEkxUS9vL0VycnV1ZWVmYnZlN3hSK2NJc2p5eGVuWEZHSFM5WXhmdDJPTG91MXFsbkUrSFhNMzN0eUxqaUFrOVErWC9zand4K2JpWGphRlVIM2tjMERxZm4rQ2hmKzRWemJueFhmVlJuSm5oZVkrdjBreXhHN2YyRnRzZjVGYkREMGEyNER2S3I5TFVyNDRvTFBNSEsveU1yZlMvalZYYzRRczVTYUYvUHl1L2swWHk3TXpNaEQyMldjbHczVlRtTWJlcmZLSHZGMFoxd25abStkbVhjNVFKMzBPbGIrNno2ZUsvckRrZW83N1hNK3IrTzMxMy8zN0UvWnp2MUxPZHUzOUs5QTlwdmR6aTZYYTZ6MHRlVi9xL1AzMkovOS8vSTd1TS8rc2RQVnVtOFBmbTRXdGxmODg3Ry94MzdveU8vZG1YOFArSG9kcm5PVGw5WHh2K2RzNDRWcXZXL2N0NVpUSURyMm04N2poRDVzSi9PTWJObnNqbHdWbDZWUjdWK1BwbGJYK0hvZHJoT1Q3ZFQ5eDBabnhVekdBd0dnOEZnTUJpOGY4RG42TnJ2VWJpU3Q3NWI0eDd2dnRmWXdBbDJaWDlQWEJSclhqZ0ExcFNQcUFOMlBBSHJXbUo2dXEreTJ3ZGNBWTdoRkJwUDdIQ2xqcThGWWhhK2JpUitGdkI5ckw0T3gyL29lcFV6R1BIUm1BMXRTK01MNkt2amRsWEd6djVkWHJ0cHRFNjZEOTdsdUZjZFFmYTdJN1QzZUk3cmxLdnBBcEhtYXQvS2RNVDE3QndMY1F1TnN6b0hvNy9QUlQzUURYb2wxb1hmY2ZrcFEyUHgxVmtCdFVYRjBlMmtjWm0wcnNwNVVrZjlMYUVyZFF3b0QwdGNEL3RvckZEVEVTZWwzQ3BlMktHeXYxNnY3Sy94Y2RvOWJSSTllWHhMOC9MNGRzV3JaZnlKMjF6OW1ITElpcDAwQWJXZnh4ODlqcHZ4ZTFmcXVQcmRNZEw3K3dTZE96M2R0K1h5ZUJ6YTZ4TncrenR2UUQ3Nm01VEltT2tHVkZ6VWp2MHJIa094a3dZOUt1K1p5YXQ4bUw5SDhFb2RUN2hEeXVVRFYxMzVsaFY0ampFdXM1bnZ0YUFQT1Y5Rm45Q3hxZUlOdmYxVy9YSEgvZ0gxZjhyaktYYlNLT2VvNDZES2tYM1A3TDliUitVRThma2RkNmljbis3SHVnSWQyL1RqZXkzaWcyLzB2UnpjVXgxazE1VmZ5NTd2enRlRHl2NzRNdVhVSFR0cFZDYWZkeXJmem5mNmg3ZVprem9HMUFhNnA4ZkhaOWV0dHBOVC9rK2g0d2R6ek96ZWFvL2Q2cnJ2SlZxTlczNWZ5NjlrNmRhdXQ2VHhzaXVkbk5ieDlMbk1kMTNaL3pjWURBYUR3V0F3K0x1ZzZ4aGR6OXhySHRudFNZeDFrTDRyWmFkTVhhc1M3ODdXZ3U4QmIwRmVqK2V3N2pzOVIxS2hzeitjQU9sMjdLK3hGdFk3UFBjVzlIbUN0eUJ2Rm84a1R1NHhHK2UwaUQwNjM2VlE3bGJqRlFHZWRaK2pQTFRISUR3bXEveS82ak5McTNrVFE2bTRHQzhYK1RTV294eHl4eWxwUGJYK0tpOTh6bzVla0YzTFVibE8wSjB4Y1k1SHVRaU5wWGMrdzdsNzVaWGhDenhHcXZYejg0M093VmIrbjNLeU1yMXUyZDVzYi8vWWpkaW54M3l4YmJadm03WUNKK0p4WXV5dDdhTFRpOHZ1Y3AxZ1pYL3M2bVZtc2Y4VmorZzJDakFIcUd4NmtwOXpRZDVmc3J5ckdMRHVEOUo0TjdIVzdMZWpLdTVWZlkzdXJWS3VKZk1aSzcyNHYwT3VFNno4djl0ZjV3bTMycDkrU1Z6OVVmYlhmckZyZi93R2VhblBJMSszLzJwdkIzNUVlVlhsRDhDdVhxcjZubUExLzZPZWNJeTZCK1VXKzJ1NTdvZHZ0VDg2cEJ6Vnk2Nzl5VVBIRHJXNTduZlp5UWQvcnZ5ZnkrcytQOU5MZHMvbE9rRzIvdk45UlRxM3lNNWZxMjRjSzN2Ui9uWC93ejNzci9PLzZ0eHlvTE9iOTNITms3N01zMTArUHYvTFpORjlHQ3U5K1B6UDVScDhUTHlGOWVMZzlURDIvN3N4L1A1Z01CZ003b1ZzL2JlS1pZQzM5Szc1am1jNmhhN1h1dkcyaXAyZVlGZlg5eXd6eTAvalA2dTlrUUZkbDc0RlhEbjdVSUg0MSs1K3pWdXdvMnRQL3dqN1YvbHA3RWRqRlg3R0tlTUlIY1F0UEo0T2Q2YThMdjJQTTNITWZaVVA0NTUvSjNhcWRmQjNKRmF4a3F4dUdwUFJkdUh5S0xKeXNyckMvN2l1Tlk3dk1xbTlpRk03VjdpTHl2OXJqRi9QUzlIUGxQT3RPRUl2QjkzQm5XajU2RVhQMWFBZmx5ZUxPZXAzUDM5TE85SjRPdko0Ry9DNkJUeVc3SHhBdGcvYlk3UEV6NzJ1RlllbitWYjY0SG5peGhVSHUyTi85LzlBMjVhT1V4NTN6VGhDQnh5VjhuR3V3KzcvWGZ1akZ6MlA2VElIOUd5UFF0TmxObFo5WmZiM3VZaWVyYXZ5VXYwb3Q5anB3OHZoM2dsVy90OWx5dlphVkJ5aDY0UTAzZnNmNzJGL1pLS3RaVElIM3BMOUsyN3hXZmJQNW4vNFF2V1h1bzhDbjFSeGhLNVQvSC9YL3dPNy9nN2ZsT2s4bThQditIK3RXeWJQUGZ4L1p2K09XM3lHLy9jUDlmZHpzSHJ1VU9jcEdVZm81ZWpad2FwOWUxclhoYzR6cTdPWmJqZkZhdjRYY1B0WDg3L09kMmJsZFBidnVFVy9kOC81MzF2SHZkYzdnL2VGc2Y5Z2JEOFlEQWFEd1dBd0dBd0dnOEZnTUJnTUJvUEJZUEQzNFJGNzBkbjc5SkhCZmhQL3JQYTlzOGZTMzJrUllHOU05bm1FUG5WdnFjUGZhVnh4aWV4TDgzeDkvd2p2QU5JUCt6ZWV5Vk4yZFRuTlIvZnQ4YW5zcjc5andyNGo5dG5wUHJjc3oycHY4SzN5ZDN2MTFZYjZIaENIMWh2ZHNvZE0rd1Q1UGF0dFYranE4c2d5ZFYrazlvMnMvempZcjVibDZaOXFiNTQvdTlvYnNtdC8zc3RFK3ZqZjM3R2g5bjl0dkliOS9YY0gxRDcwd3c3c0k2NmdmYW5ieXhiWDliZEZPcXpzVDl1aFR6czgvNnovYzUzOGVaZWI3cUhVZlpzQjJwdSthNGw5ZnZxTTdySFZmTFZOa29idkp6Z1pRMVFYL3E2aHJHOHJxRnRYbnZxQ3pQYU12ZmlHVlpua3FlL3ZVWm4xL1hJbjl2ZTk3bHpuZjYwbjU1SjBuRlJadU05MzlJck1laTVFODZVOXFOeFhmTlBKZm5FOVg2RytBSG1xdmsyNzNQSG4yZGtCemNmM2xxL2t4NDlyL2dGMHArOWlVejB5NXZ0OHBkS3h6M20wVHRwZmZVK3Y3bVhYK1pUbWtiM2JqL2JnL2ZCMFRPQ2NVemFmY1dCRC8rM01haHhtL2JRemxpUEw2ZHl3c3o5NjFURUwvK250U08ydi9sMzNtcFBuaWYzMVhDTHRWOHZNM2wzbDg2eksvdnhQTzc0eUowQys3T05BZm5SSEc4NzhPcnFyL0tybmUrWGRkWUhLL3VvM0FXMHhpeFhvbVZGZDMxQlhuUjlXNXhzeSsxT3VqdVY2WGMrbGVwL1NjeCtkL1pISjI5Y3owTVZkZHVjV2tlNnEzTjE0ZDlLZTlOMDYycGMrMm5tS3dXRHdvZkVQaUNScW91dDN2UllBQUFEY2JXdENWUHJPeXY0QWY1N0NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCNG5PM1NNUXJBTUF3RVFmLy92ZTRWVWhoQ1VOd2FjbE5NbzBxd042cHFOR3JPMmQzNXY3djljdm9YenJXM2dTeGRleHZJOEd4c0ExbTZ0dHBuMkxYVlBzTlhZKzF6dkZ0cm4yYzExejZYOWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHNYUGJSYkNhRENScE5BQUFFZVcxclFsVDZ6c3IrQUgraU5nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZUp6dG1vbHQ2ekFRQlYxSUdra2hLU1NOcEpBVWtrWlNpRDgyK0dNOGJFalpzV1Q0bWdjTWRKRGlzY3RESXJYZks2V1VVa29wcFpSU1N2M1g5L2YzL3V2cmEwcUYzNE95SHBkTSt4THBYMU5WbjkxdU4rWHo4M1AvK3ZyNmMzN0xkYWNlVmRZdFZiNS9lWGs1MkdQcjlLK3Q5UC83Ky9zdlNuV3NlaitqLzJuN3orRC9tVDQrUG43YUFITUJiYU91SzR4MndYV0YxWkg0RmM2OVdacDF6RGl6dFBxemRVNFowaitrVjFBK3lqRktjNlNLVjJsVy8rZjhrZjFmZFV2d1JSLy9pYys0aUM5eW5NejVvOEtJWCtLYVowdVZWMTNYc1o2WnpVVlpIdkpqYk1yekxGdW1uMVNjV1J0SXUxUyt6K0QvRHJhYitmL3Q3ZTN3am9oOWVLYjN4MHdqZlVHYklMelM0cHoyUi95ZVZoM0xON3lYa1Y3M2ZUNlRhZEtldXJJdDV4ejQ2UDZmYWViLzdEdDlua3hLK0xEc1dPMG14MVRLVVBjei9WVGVJNi8wMzZnZFovK3U4RW9mSDliNWJBNGdIbVhrL1NmdlBZclcrRCtGelpodjZlZjVib0R0c1dIMjYreWI5TDE4TnhpTkZmayttdjAveDVEMFZaWWx5enVyN3hLUG9xMzhqeS94YmZhMW5rNS9MK2pqU1k2MTJmZG04MUhXZy94NmU4anhQTk5rek9rMjZXU1pidms3NksvYXl2K2xzbEcrQTVadCszdDc5elh0SlAzQSt3UnAwYVo0NWhUL1p6ekdKUElpelY2K0pUM3EvSytVVWtvcHBaNVRsOXJuelhUdlpTLzUxcFRySUpld1lYMGJ6YjVyK3ZmVVg3WDJlYlUvckRuVW1zbHN6WHFOMHY5OWJTTy84MGZmL0V0cklheWI5UE5yS01zNTZrZjg0ekc3djVUZTZIcVcxeXl0VWI4bTdtek5hVmJtdjRyOXN0ejdJMS9XUFBLYzlzSXp1YzZlYlNUM1hqbG5EWmQ3T1Nhd2Q3TW12TnM2eTVucmlYV1A5V2JXbXZxNlVvWDNPdGE5VEN0dFY4ZjBHWkJYWHFNZXA4UjZKZmRKbDczdXBUS2ZvKzZYYkcrai9zOWFHN1ptUDc1ck5QWlh2TnpITGVnanJQT3RDVDlXTCt5WFkxNy90eUgzSVJCN0dYWE10Y3EwVmFiWjh4clp0LzhUUVp6Ui9aSC9SMlUrUjMzK1A4WC9HWC8yL3BCMjRweTlHWTc0TS8vSldCTithcjM2bkpkN0F2aDZWS2YwUWJkUFhzL3l5ckRSUGhQM3N6OXpuWG1QeW55dXR2Qi8zMGNwbjFDbVBDOHgxakYrTXBiUm50ZUduMUl2d2hnMytJOEFHOU8rRUhOdDkzOGZjM0tQOHBqLytYOGk4eWoxKzkzL3N6S2ZxMlArejdrZE8vUitrblV0OWZFcGZZTy9pTXM4dGxYNE1idG5HTGJrL1RyblljWnc0bUxudERWN25mZ3o5eWlQbFlOL2EvRWhiU2R0eXA3WnlQK2pNcC96THNoK1c5WXBmVWZmenJwaWo5RllSZHhNcitmWC9kbjd3WnB3d3BicWxXSFVnN21rK3pmbjh0RTNHTS8zNTBaNTlURGFRTitMVEJzVFAvT2VsYm4zdFV0b2FiMUFQYjcwdjFKS0thV1VVa29wcFpSU1NsMU5PeEVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkdSTytRZmg1ZU9hdGs3anB3QUFBRlRiV3RDVlByT3l2NEFmNldGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQjRuTzNXNFdtRFlCU0dVUWR4RVFkeEVCZHhFQWR4RVFleHZJRUx0NlloLzRvSjU0RkRtMC83NjAxc3psT1NKRW1TSkVtU0pFbVNKRW1TSkVtU0pFa2YwWEVjNTc3dlQrYzV5N1YzOTcrNlQvZHZYZGR6SE1kem1xYkh6K3dZL1N6MzFMMTFGc3V5UEY3SE1BeC92b2QwNzdKamxYMnpZWGF0emZzOXRYL1ZONy8ramU1ZnR1dDdWam5ybitWNm5YMzd4dG0vdWw3VC9jdHp2dTlmLzlmbmVYN2FQOWZzLzMxbDIzcnUxKy9idHYzNnpQZm52LzIvci9vZTEvZXI5MEN1MVhmN25FWFZueDNYYTVJa1NaSWtTWklrU2ZyM0JnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBK0VBL0N2bXN1RkxhS21ZQUFDb1hiV3RDVlByT3l2NEFmOVR3QUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQjRuTzE5Szdqc0tOYjJra2dzRW9uRUlwRklKQllaaWNRaUk1RllKQklaaVkyTWpJeU5MSmwvVWZ1YzdwNmU2Zm5VLzlTSVduUHBQbFY3MXdtd0x1KzdMbFRtNTMwMm5nRGFzNUV0eHRkR1lJZWp3d0p3WGNVRmF3RGZoWDdEODJJZDRJRUtFQUcyQ2h2UW5pVEJkOTJUMmJHRXdmSE5mSFA4OFVOdkFKV2IzVUVyMVhFenRyNXNUeFVVNEhpZFFPRW82VER3WWJtdkt6LzNDUktnM0ZRc3BGK05BNjgzZ2JoelhKM2IzcytZWGtKc01TbjhReEh6bGRJUER5dlVhOXNvN2taNVRpSTQ5WlprVUVQTVh6a1d5TkkrVHdZd0pteXJOTGlQU1cwci91N3JicEIzN3R0SEY0OXl4YkQ0alpuZ0FUeFJxb054Q1EvUkZBa3JyNWV5aFVpVGZRejZvYTdCWmFHM0hYOXhqN211Zm42Q1d5a3VvelZqZzRrMkxOYjZ1TVhBd1lKdERwNGRCSFZQb1BqdnFEbHdYUGpUL1R3dkd3OHZQN3o4dDdoT3hEb1NucE5Od3BzRmNDbTJGU0FWOXNTY0xSelZIakp3d0NjUGgzVkxjV0FDdnJUTlg3ZmcydWJBSDlVdnVKbjdOdncwSFR4K0FJVUx0QjQzTjFQcUc0SEg0VTdkMVVKUjErSFc3ZlBycDZpVWRVM2c5M3VQanZzMXlDVXVRcVpPeVlvTEdHczZHQWxybTA3QXZHMkJPZGdQL09jQ0txZDFnVlhGZkRLb2h0a2xPOUh2RVlHYnF4MjRYVWJoWWRlU0tjOExxbEpGSlVoWFl6Qk5ad1BHUHJ2NEtTOTBhV2lUWnBqMTFRblJ1RmlHUHNyS0hLZ1N5MFhMeGZMaktSV1cxRHdQTE9rMjluTTB4ZUhBZjlZMW0zcmdZdkEvcEtKS0gvRGc5bHdiUEJsUEhFMGxUeU1vTitRMjREcW5GajBKbmFycS9kT0xCMWxCby9mQ2cwZ050cXNJa0V5Z2N6YWJ6Z05OZzFqcXlQbENZMWlkSnNlWVNyMFRkQVJsdXk3SzloTDhxTThKTXk0WWFtVW9sTTgvMUR3L25TMHg2U1J3blU4QlBRRDlmM2dVR2hLTUMvL2EvUWtmWFR4S2RNS2h0MVpubTVwZ2ZFa3NQT1M0bFgzZ1J2TU9VV3BkMEc4bFcxQmgwZjBCaURiOUdGZ1NXYi9OUE9FWHFqOFFxRmx2YUFDQVJwNFgvREEyTitHQnJSODJTa2J4bDBkYjhJVUZkM1lwbXM4M1B5d2M1RUIzamdxTkJtNU40TWVtM1JOdHpBWEthejQvOWVqSlROcHE3dyt6RlQyQTNRL2FKWGVEV29ocGVrWlVlQWFCRVBTRUpCR0JyMnRROWppYlJiZVFiZkw0Q1dwQlQ1bngxTmY2M29Dcm5odytmdjZTaHVYYzROaUdrYm9HNlVJNStyWGlDWVlMMXFRQ09GV3RxMHNjRGtQRGRyUnFZdXNQVEF2bzVlZER2QUx2Z0htdkJhRUw1eDZOTzZSdEYyb0xVQzdVQlNDWCtPUHZSR3Z4RmNMcWQvNmhWZjlGd3NLQU0vVGNxTUdVa1pXU09IanJWY0NGU3NyOHVYTVNqNk1TaVo1Y2hMTUlEdWpKbjQ0ck93WjlCd1J6clJoR0VPTWRVU2dlUzBtdDd2ZW1XTjJiaE1hb0Nya3hDOHY2L2l0TGovcW82R1JZakI5ZE8wckVvNDd2WXdpSWVDU2RwMFRSMTdmZUR4Q2VvaE5ZWUduWEhpRHNxT3ZSRUVCc3pJLzdjbTZ3YlNTQnFNWmUxem5PaE85NlFrZlBucUJSUFJYR2JtWVE1R3VFUk9yMnJHVTdDanlvL2ZnV1lkUDhQaXkxNHFLZW0yckc3MnVITUVLZlczQW85ZUlrdngwQXVvZkhvSkhiOXN4dy9UUU1ic3NaeTNGZ2xGakdrL2tKK25iUHRmYm9HTmt1ZVBWSWJvejdqVzl5bjBxK2dNODFyUEhCNFA5STRCeDFxWW54NnV1SGw0OExadUNuRmd6dDE5ZGg3QmlWaG9sYldoY1pPajQ4eDAxQVNxTTU4d0w5QXF6aUpOTnhYUlVCb1FCOVBVaUZGZ3hyQk5EK004YktHTHJqci9ucHNycDB2MUdUUFgrQ0FTd0pOOGJIQnJYZnUvM3M2dWR6RGNRK2tPT2lNL2kyNzk3Y05sdW0wV2VWcUpjTVVreU4ySTJxcVBrUnJUOFh0eWdNalNaMzNTNDNReU4rUW5zSWdsMnYwd3JYNHBkVjFGY0NzZ3czbWRJeGYycHJmb0psbEdOSHU3OXlGc3ZIK1IvUTQwVFlMaHNTUGZUTFM3VGM3dXNJeFVEZFY5M0hzVTBTQS9zdzVZQ1FBK1A3N2Vqa3ZERE9YQWJhOG5oL2tQT3Vkczl4MzA1YW9ncytJd1RHRFlPRWpPQkNSWmNKbWFVcGxZSzZKbm5ZUVgxMDVUOUMrK29MV2V4dEtNSlhTWERoZ2NteDhvRHhDN2g4dlRLWEsrajk0Rnd5dC9ZZzdkNHBrR3pjT0xmV2RHd1lCUnpCUUZvdVFyMkFvKzhZQkpWbDhZV0xqWU5TVTkvMGdjYURiVDVrbUVtQjZmNXMvdlR5SjA0TllZWmt4S0pITTdrbGpZYThJNnNwUCtpOHp5UUZBWE1mSE44SkExODFQUk95N1ZrY3gwSlNJeTFySW5GSFVDM1FaUkwrSXVkbXJjRUl3dUVsMXFrdHo1TXpIamZxME9UTXlEalVUVG1aR1lIUGlobUtMQnVzNk9SZkttNDdTSUxCK3NaRkZrTEdzWVlkMW1Oc3YzNzR6dTZ4NXczTG5WdURqaTl6WVo5bnVFa1ZGMFVJTXVVc2VnUFNNZG9YZElFYk9wSnJUTWJUNTg3QkJxSE43UnpJbVFnUDVhT0xSeW5tSE5SN0VqZktiL0RMeFc1a3FQaWs2TGZ3NFpWN1FITDFVSmcrRU1acnduZU1hOWU5dnFFTEk3Z1BhMWdYWm5tUkV0WkZ4L2VheUVHcHpVTENPY0oxVFJDdzI5NDBVRDI1WHdUVGJKS1F4bWRYajY3WWg5MU9sUlRWSTVaZmJwbUhSKytrY0FOd0N5eGFoUjRTLzFWMW16YklrL2ZEVnFhYjA3QzQ1VEJGUzVFM0tueTMvUmhkcjN1ZC9EYzFSbHpwMUxhNytucFIyQldnZWlIaGdzY0hDWFVWU0lBKzd2L3pwblZ3bXJMYTl2VlUyYU83YnpOUUtZajR0RnZnWHRVMjQ5YmE4K05nSUMyYVpDWVM0U285dGlYRXdNcG1XWkk4djE2U2c5aTNZRjgybmFqZnlIeG9IYmpNNndVejJLRStnSVF5SUJsUXVoRDZjZi9YTndjVno0NnpDLzNWRHZ3c1RuTythcnRHbVQxQ3RZcjhZQXVvN1lHemxVT244dllFYVk1Vmtpa0JVdW1RajBCTXhkOEcwcTZFaS8rSkhRSzN4NmR0WWp3eUUwWklrMUp4c0xJY3c3bEd2UjdsNC9qM1dCeTZhWTNranJMMVQyMnNSMEg5M1JDMzlOSjlPcllxR3I3TEUzVU14R1lGMkRvZFFNcXJVa2laTGdQeTJlK0tzRGJDOGJ5eHd6YU9hcERsQWFkajVrZFBjRTh0RFJENnJUWWRTQmZTL2ZyY3luOUxuY2xLNXR0VndNN3NGanE2U3NlRHZwMksvY2wyUEdkNmp1T002QVR4SVBIL0NERkdLbkZ0bVMwN2t3MUo4bzBVQURjTlB3UGVIdUpQN0NoWmNnM1paR1hIQ3MvSlJnYktGdzNsbVFuUyt0R2wvNVp5eGRoSWxoQWZ5OEZoN01mSDI2SG9wVDRZeGhBQUxLR1Z1Szh6LzRzYlJPeGFDSXU1UmZIS3hxNEIwbkZ4OE96WU4zQWJnVCs0ZzhpTTNrdXNCcEQzeFNVT3lLY2tnVHNQNHJ3L0h2MVJySElZalRhemNGQUROMkM4WVptR3VPbGVQWVFIaFAzSlV1ZTJYeGVHOVptektXMmpoTWMrd0VRekl4N0Nvd3k4WHljTjUwbit3aDNKclhVUHpZdER3Y290VW8xdUVHWGpyNFN6c3MvekgzTnpsY0R1VE0vTVBNaXRMeE8xNEJ0U0tYeE1kRjh4dStueXdUeDE5WDFGQ2tUSWVtekM4U1FVU05NUkRpdnZUZ2dkWHhVeTdMOXpCMk1CMjY4dDhuSklrVll1b0JtenBZajBHdi9PMU5hUEo0Q1I3NHlaaFNoOUMrQnZDYkx0T2wzb3JLZmJOcWRHYUd4M3NZYThRSXpTZXNaN05ycFFYNWsvREFHMkRVWHJHOUxkR05Cb3M2TDIzN21qZzhOMm91Wkxxd3d2KzBMcElrM1MvckpvTzhEWDhmSDZGK2NFMExHaGI3L3JLV2RTQW0wZ3d5U3NOYjhzSUpSRmczajhLRCtxT2hPMlo4QlY2N1dGRjBhOE5KNlo2c0FnQ2VqZ0Znanp0ZCs1dzBVMGpJRUdJWmF6Y1Q4UWJPU1lCNUQxUWE3MURvaWZGbGwydE81ek9tMVNIcW9vUndmL3NGcmZlZHBIY1lRcmR6QVJLVTU2Ky9ibjRYV0lXZlF0eFNhVnA0L293Q0tpV1JBSlBTZEpodjNPSFlNNDhMZm9HSHU3bVcySUcwd3Zmb1M1anhtRHdpSCtqOGY3L3k3alF1K3U0TmpSekVFOXFKNzQ1N3l4V1puTERIeDZCUFR3T21hSkd5UENySDl2YUxreVdHcUIrTWU4U1h3eDF0aHBNeE5CS0h6NXAzWVFaakhGQXhPbDFnMU9TNENJbWt6QXphc2EyaTZmNjlQclA5SnkyVjNEY1VKVG9GNGpieGJ5L2k1c2dDVUVlZ0xpNG9HTERhL0U5MW5TNDM1cGlPU1VnMUN1QUloeEVCN3JkU1kzS0lRRkhQbFZPMElDb1pKc0lIcEc2M2pYamdhemdhS0xUWnYzeS9JTExIeFFaZ3hXOWRhZzltdUNrU2ViVHJyMFlzeVVMNkVrUlU2VnVhb0tTQU5CMTJuZSsxRUxQWUoxTFI4dlZPWlJRVVE1azZPbzBtZlY3RmZ0OE9BbFdWcnZybHlBbjlwaDFLV2s0eldRVDYxcWNxZ1B5OUh4cWZoMUlqbmoxa0xZZW5DRHpLeldkbXlscld3OUM0TVFqeDRWeWJoWjdPakhlWjhWM0w0MWRBUDloYWJTRVF2WGJVV0RnWHFlSy95cUhlOU5HN0craXo2b1RMOXJ4ejJMY25JTU5JMEQrZXpxcC93VUwyZjlENXBGd0hJUy9zQitVSVlZcG01QzMxdWdybHhuV3hWN29hdUhrbWNhbytOWjJ3TjJVcDlYSnh1R2h3cDdSbVd3YlRIdjNnR01ld3NDM1hlK0J3Tk0vOVU3a0IwM3FDWWtrZWYrZVBwajJ2akQwRENmQzRHT25tN2Q5b256N1NZUit0cDF4VUExYzBQb0ZFUFZzVzJjOFI4NFNCaUQ0MlZtOGUrNXhuUU1rczQ4VUVwYS8vU09zRUNEaisrUStjamMvK2dkb2JzV05KMUxmSzZQSTJBT0YzMFhZWjlyRVZKTzR2K2dKNWQrU1ZVaHdtdnlWd0dBZ1V5TW0xclg5VVNZQkU1TGxjR2xCZmZNb1ZYakJneWpuTS9FOS8zZE83U2FaOHdTNzB4K1lTaGQ1YS9lSVVKcWR1Z28wV2J5eC9VZm83KzU5RnkzODBMbEJYMlNRWFZJOTFLaHBLQVJCczRDQU5WbjYvZVk3aHBOSCs0THFEdzNod3hQaTdjNnlPM0tXL2R0Tm5YdGR2YU8zY2M3TTQ3bXRUM0kvTzUzSGVtbmQ0eHVIdWo3ci8vNCtvK1hCS1NrTTNCTC9zNU5vcVMycFlPb3EzdnpMZ0IwQzY0aW9RUHpiblNhR2o4VDRPdU5aR254c0dMTVF6YXo4ejJ3eWtVSnN4bWdIcTBlMVE2RkxJQ2xHOUd1VDhnS3NwejFNTGxvL25hSHkwY1hqNUk3SGoyNjcvVk5WaVdsRS9iM204cXFpSEw4cHdEQTVNSTBuVWdZRFIwNGN1VFoxQVpMN0kyQXlYaTY3VUVjOURyS01nM2FFV1hBTHFtc0FkZmRuekJPUEdlZDYrU0QrSmtuaUtiSzdzMDJvK21ISmNIRFI4d3gxdGEzYlgzdW9WNXFybTd0MHIzVFUvMHdERU42QVl2SDdVeFloalA5bk1oVmcvYUVUVHRlQmVMK1hoVitXR093dlk2QUFXRUJHdWgyQTBkSUJYVWk0ZWNOTVlyemEwN1hTLzFVZ2o4c2lObm5jb005N3R5T2hsaDlOa05DRUZjMjI3c0FrRWJmRjZoYzdqT1diWHMwSVYwNS8rRzdyZGZjU2pSdTZSVFlFelZLMDNPRWQ0TGNYZ3lxUkovM2FLZ1BnbzMwakhyMmdydTJvOS85T1ArVjRCeFE2NVJkbDNxZEYvRHp1akcyRzNpbDRuNFhBUHkxU2pnalk3NGxnYysrRTY2M1kwWjdaUE9YRzkzZkF4MjZ2VzhkOTRoQWQ4VXdpVkZ6VUsvanVSS2FYeFhNZ2M0Z1B3Z3plVUl5eEpCN2ZMNy9CVFd6cDdpSGZjcytlSHR4S0dHL3N0dlJnbUdoUHdXQWp0RCtVWk1sOHFmTWJNR3M5alQwZ3FUUGduaHRWMG5YaG9CSDdhK21RK2dhMHZUc01STHFFcElJMnhKcjExSFcvWXd6YVVwb0c5d3N4LytBK3VQNmlScEx1cHBTaVBmRnhQQ2lGY1RDeVBiSVR3Rmcrc2puaGNxeXU0YVBQQ0h6alZzUW5yaE9kOW4wdG1IRTNQaTJvbHFBanNCNGlWeFNkSGFhQWRKZVdrcnQzV0ZjS0FIS0hzaGFtVkJGbG8vci8rNGdNWXFhM3FNRm9XaU80UGVkN0hrR01QZFRBSkJNSWNoNURzMVJBMUFQeko0UTdTTlNRTk94SmpTdllaODVFQUluTXNrQm5zU0w0TFpKRmF4Rnh6aFl5ZmhKY3RYRUNqU29FNVlxZVo3OVloL1BmNHZMdk5NYUx5T0pEWGl3M2RIY084WXlVbjRYQUtxTEFmWGlHZGJoVHpmUDdhSm83NVBWbUZXTzgxNElwMnNFOUEyN21xWGpweWprdnFBc3BZaWZNaGlIL05jcHowTUg5em9vMlpBN2x4eFJNejY5L2pUaEtmb2xpUG5VWWpidUYwSTRBZjFjb0JRZnN3Qnd0ZldheWV5clpUenF1dTFUNmJrUWtJTFk3Tm9yMDJwejhNUndqSVM0Q044bFBDWVpkSHN6UDR5akNLeDhUZ1lwY0RjUllwblVBbi91NCtrLzFHR2thZVJFRTdWWGJBaC9raFlCb2Izd2lGaVhud0xBV3RvK08zWDRuU21rYTI4REtTTlg0Y2pOVTVwdXJtTlN2WGowbEh0YndITllkakdrckRrMWlSRmZyQnFzTUV2cEdQWEJHSW9SdHRXWk45bytuZ0JVY0tFMWg0dTQyYlNrYkJvenBWUDhJdGlkNmt6dXZZaFlrT3FGNTUyclcrRTFiZmFoK0E0TXVyOVJBRDBpZFgzMmtjWnd6NWdxZUkxaTl0V0p1dTdqbCtNamFVMHJzL2xBdTFvaGtBbit0OCt1Zm1yZzBsbVUzYXdWR0pHaHROSWtIajgxaXBXZ2JRWjA2bldJWFNDSEpZNUFqdmZkaFRvT05HZzQyNE80bUtHN2RIWHNGelBBTy9vS3pwRlBwREZCTDNLTHZ3UyttUVVLRzhZUnoxSXFOY0RIKy8vTDdHbmNKbW9qQkZrZU1qcTZKRm9JS0dHdFpPWkEzejRuZWdxZUZBYUUxMHdRcksrenJOc0NGK3VIdHFtOU5scVEwY0E0ZkdBYnhqYmRJZ0xsakZnQk1kOWZnQTk2QlNjUURlNUdMYW4zdTlHUCt6K3crbGhlQXZJTFFUby9NUWlpQnp2WXpHZ3ZTeGllVmtJbjlRY00vSFpQYmhJZkdjOEVSbFB5Z3J6SkRQVUd4cVRxc08vTTNsRjdQV3RvTjVuQUYwM2xyOEIzV0ZINWNQeGNkdS9Oazg1UEwvKzJMc1gyMnZHNUN2U05Uak8zelVoTFV2REpiSXBMbGlLYmNSMFA4cFFlaVY1WDNBU3phSUc4TVhkMCtSN2pvQXRvUUFjQ3A2elJNL0JsRWg4Mi9rNThscElYdHNHcGkwazdlZTZQOHo4ZkF6aDBXd2FEVytraGtRdjZwYlVrTEIvT3JreXR0MldXSW84RmVxYmxKVW5laGtIcWE5ek1GeEZTNUd3aE0zWDZPT0RhZ1hrVDMrcy9FMStlVjhYcHZTbURRV0pEMHZYcDlVLzVJWEo2djRSaG9xUTFVN0hOYnRhWG83T0lFU1BDRkR6OU5ETjVqOXcySXFvVm9OSlMvZXJSOU4rRFE0R0NVUVRsdnlZK3VGdVB2Q01LUWdCSXpjZTkzM3Qyb1dYZ0JkZHJUOFBYVk1sc2NTaVBWVWdEOE0yMWFJOFBETHZkbERnUXVpeEFkTEMxOXNqRDFZSk0yM3R3Q0xRWmxmd2ZpUy9ZS3N0TUlvMFVaRjk1REIvdmY1OXJMRFR1QzBmTWx2M1JZa1ErTE1IUExtOXJFaUw5UkR1R2ZEZVdXeTRWSExWRTFrUHRGMEdjbnhIa0k0bHB4K2JwYlAvOHI0blBuNkZKMXF6UUZ2SUk0dlBlSDBTL2NiMWRLOTRZWlVVSmxmS1dYNnN0TGFDWmc2WUwyckJqcVJ5YnMram5nRjc0djZWTTlCS1ljYkV4ZmhIckVFT1EzME9ULzVUNG5rT1RPYUdPQ0dkT2pSSGs4LzMvK3hxVDlVaklCRGhDRm10bzZ1ZXJTc0dPSTFxa0xXRDZWb0Z2cDVsTnkyRWdPWElZRVJja0FCUHUxYm9VQTFvdHZHanphMmp5SHdvZlAwT1RKTGNKKzE2VzhYVEVqL2UvT1dRb2tUZ1dVTjJGWGRxMm1xUFhkMXNTb2dGM2JCanB6enUxakdTVjFHNlgxNGIwYjg1THEraU5aUGtNU0JxbTNvUW9SUHF2aGErZm9VbHUvRW5NSUUzdjQveGZLQUQ1Z2J3T0dmQWFuSklZN3ZBMUtUWVNTQy8yOWN4WnpUR0h1Q0N4VVZMbWpHc2ZMRzdMMXZ0WVNMMnRCc3FKOEE2Umc4ckxQeFErL3hpYVpHYVRCQUhuSmphemYvejh2VjVGZnhWS2xtMkxFaFNxNlhUZXlIdWxRNWUxbTczTVE2d0NZMkM5N3Rrd3lvVjJIalVkdzhKNFBPU0Q4MXc1V1FLMzNmOWo0ZnZYME9SOU1kb3dOaUxYdENIV2ovT2Y2em5xWkd3Nko1WU0rekZJSXNFOFNFNjJBaVpkQzhRMXovYVBOclk1eHlFV1NlMHhPeUtReVI3NDdsbDRRYy9YU3kyWGVmVi9iWHhvZngrYURHUWNEYUlpWGZEUDEvL2I2N2tJVmJrdVlXdXJaMkppZHpJMHJJMm0vWmlEd0dvdHVTQlJEcXJNd2dCUFpKWXQxZ1RXd1RwT2loUUpaRWVubDh1bFRkbitwZkhsK1BlaFNRbFcrRWM5czFmNGZ5RUJjamJwbTNmUlNEUHpzUmk3RnZ2U2NDTHhIZGZiaXhjTUFibWhncU1qWnpZcWVLVTVIL0N1aE85cmUwaVFyanhYa0tqMkNPM2NRaFpSMzQxUDU3OFBUVllFRWZtRmUwdG85WjllUE14R2Z4V0pWdzBkUE9TMVRNQ0d4LzA2ZHlSOHNHOVpnSnd0VVYwOEU4cXJ6ZG9oNFNIbG5ybjc4RWJQSG5GQUVIMHpacUZTK0NVZHU1aU5ieFhFdnc5TmpxUFFCbkt2UlBYeThmNFBLOHRPZk94WnpWbjhtWTQyL1dvYmwzSURNZEV4RldzMCtQcHBKMWpKR2Z4bWcxdzYzR1d1M3J6M0lOeCt1VkE1bXVYU01lM2ZqWSt6Q3ZZZmhpWTNqamhSb1dGd1pmWEg4ZStHNlBhSU5TQTViM09tVGRwNWx3bjFTd1F0MGR0MWlxUjFGam5tM0FkQ1pIZzNTSWRXbWI3VzJDYW1YdytvcjUwaFEvS2piQUVZWjB3T0lQOHdOSW14ZjdkNVUvY0NwWDE4L25IWnM5NXIwUERzQWRuNnpHS3Vjem9CWnJvbkw5RDhnc0FPSGVPOHMwQWgvbDBsdVlQY2VpUFhQY1JLcEhQSFlET1hmMWNnWlhvOGpWQkpSL0lQUTVPQ3J2c3dxRURvTk8zSCs3OExBOVhlSHZzMXVBSTFaN1dWZVA5amp1MVV2MGYwM1B0VkdmUWpyMUxVRzBORHhqOTBaSGpISFBTRytFeGdqTWFCT0tmMTYrbGtaM05VNGo4UFRUWjlMQXdDWDUyYWt5QWZsbHlDYTltc0JONzRubXgwem9Sc3IzT2dpenB0SWpMWDR6VzNZZ0ZsWEYwSVhQSU15NXZjNUh0NFlkOU1iN21MVWROL2JGQjNTemVON09rL0QwM3VwWWtBWG1FczFSOWYvbXhpS05UQU1ZYy84Yi9yZ3didDh3N1BNNU1kaE4yTVhqZWkyL1k2OEJDRnk5NkR3OE5ldW5WenJNK2FjVUs1T0NyQmplaG9nRWQ0akIrd1dmNFBRNU50TlFLRFRYN3RlMU1mWjhBNWJ1aVJVbGlXSFVOOVcvbXJpeGVmYUFkUHpuUkRtNWN4STFjejZBY3FtdnM2TzcwbVh4aUhSeFRiMjRLMEpweElmSW5kME9EQjZEV0NUSkdKL3p3MHlZUHY4bHhpQmFiN3gvdS9oaEdYUkQ5ZFprMTdWallxZ2xQa1BJZWIyZHRsbVkwd0xLQWhxOWdOUWJUTDJMNjg1L2FGNUtIMmpFdTRDSjl0cEp4dG5jSEczNDNEY291ZHZVLzNiME9UcmFTYS9Md3lpUW9JSC9kLzF1RWpnOE53SnlTMFJwREx2MEFoMG5zd25oZFdoQkdtV1ZlcDJNSnZaYTBzcVlvbnFvdElKN3EvOTJEbmN2MHh6dUxhNkJXREk1ck52dzlOVWxPV0d0MFFFMW02ajk5L2tscENIZEJveEh5V2VMSzNTUE5BRFRiYldYcHBWeDlzaEhkUkU4RU1FUnpoZllKNWNROFhjK0N0N0xNaFlLdXpIMzU1STZJdFR4amRDOVdScXZhM29VbWlXSlgza0czV3l4RVVmN3orQi9Hb3pIblA4WUhSOVo5ODcvd3FNRzlBb29FYlhkdVRpVjRvWUZBUEVjcHg3YXZDZzNhMnJXVm10d0hwejNidUo1cFBRVDFDZ1BzZWpJUGRnbkRrNzBPVFNpTUt2S2dRRE5hZW5vK24vM0dWNWpXeERWTFJ3KzRYdW9EcmdYZFdKdTJGS1F6VXFZUFpia0J3YisrTjU3SmQzY3g3TTZ4MnRqb0wrZzRZeC9xMWh0N0RXWkhveldZcVlWZnYwbCtISmljS1Ntc3dicVdKb3E5RXVIam9qL3QvQzVSY0wwaVQzTXpKUkF6aGRRUE9jUTlhbGx6YWpFY3I1WlcxV0F0LzdGcWxWRDU2SnhFMytWR0hnWEVSbTRTNWpyNjV5WXp0QWlOTDRsSXU4aTlEazdzSFZ0YmNaOGRSMThpc3FPWHA0L01mWEF2aUVPeGd1TGMvWk56YkZ6RjVzNVRsZFUzYk5zYTFPRnBZWFRqRCtGNXdoYXAzVWVzV1JiN25EU1lJNzR5SHJURVdabklUVXBvRHdVdHArL0huMENRUVI2UVd6aFBUOE5UZG5KMlAyOGNCMEpVWUhveXY4R2d6SjRIQXJzTDRsTGVUQnNkN3ZCd1VBYkdhSGg0N085WitScUQyUys0ek45QnJtaFNXekhVOENIRDJ0V1RLanVYb2lDdERxSDhabXFRSW1ReU5VdUVQa2ZkTmVybkdqK2UvTnhzcGJnRFNnQWlwNWdUMjFDQnNSUU1PUngwYmVjMXN2WWM2RXN5Ui8wbU4zdTJTYngreFF1dzhRVnlPakpwY05vOWs4T2o5UnFiZ2NSL2d6NkhKaFZHSlcrSzFNVHhycU83ZFRzTSszditYVXlWODY0TE8wSlh2Y3dGVWRjWnNaY0gxa21LYVFYMUJ1T3ZtN1JhZXpiVCtNZVA5R3pEQVFYc2Z5VXY1azhxWUd4VFR1cngwYXRFSDhzZlFaQlpNU1QxeW5na1JENkpRVW1meis4ZnpYMHhpdUZLem8ra054WjdyRUd3L3ErS1FsSjRwSWJEV1c2dUpSc0xtQ0cvVzV3dDNhU1lDYTE2VVExWW9kRUJ3L0ZjeTAvZXlEdk43YU5KNGdVaVhSMUp1c2dUTmlZeGxFUVJEWXZwNEJkU0pzSUdxNlRaSHdiT3A5eDJSckkxUmhkWmtNamRjek5pclpKeFRrUnZKUFZ5N1JnS25aaXE4TU9tUkhRUGJvd0RjRGs5UUE1RDZ4elVvY29SYTM1a1RlRkdSRUZvV1BnaWxma2VnUVdVZVRpMzE0L24vYWxuMDNEZVgwcjV1Ty9wdVA5TzVJbEMzcjNqU2ZSYUh0NVVhRmhBZEwrQk81UFlZQU41WE90MktKclNYMTc2RzJUcDRJZ3pxcmFYUmd4QTdoc1JTNXhUdGpwUzVGd3lCcm1Qa200WFJtZld4OGR3Vi9mejlGMFZzYlVmQ3AyRTlqd3NYYUFqeUZzS29Ra2RmNW5XRnM5ZFpibHJzcTYxR1dYTWc5RlhwdFNJVmVrMGJKc3M2eTkxSGJyZ0J6M1h0THZWRVdJa2FnOGsxV0c0VUhKckJvZllDbXp2ZWZiYlVxeVZZVHorOWZqSW0rZDNZSE82NEIwWnlhbXFpRVJpaUhZVTRpSnNMZVVIS3h1UVhLckZYRUFrUm9iTVRpWUNwMGhCSmtOSVJtUGNFa3prdnVhZDFnbUlwOVlGYXMyd1lPdXNNYytHOERya2dPTElJTmNEQVN2V2FQbjcvYWJTQm5JR1EwUE9ZU1R5UWE1M3REc0syRFlqWnBPTmVvbFBYZUpwYmkrZ0hzdFp6RG9DdFIwUVh1T0VXd09Nb2hnQXJpWmNpUmFPNXMwaHUxb1pCWDV2aFhFYXdDMXI1dmRrWkpkTE1HNHVTeE5JLzN2ODBZTFVFckt4M25kY2VYM3ZaTjZFY0hCSzVFQ0wwM1RDcldlMEc4YTVBazJaOW1LVzJ5Zi9ueFZCRmFxOXR5TnAyT3U5UnlCNGRpTDhFNzlMZWNrNityMXQzelBTZGV1QXE5ckdLTlJ3SWkyTS9vbW9mbi8vbEdKU3NsR2FkTjdXMWx6OUxYOUVhVUozUkp5d2djMW9vYjFRTmZKSHF3NU5jTFNYcTZKU1MrMmlFa3V4NWc4SDR4ZlBLWEFsalN5OFhDY3VuV1VmVXU5cVEvb2FORXRGNkptTWlEQ3JIS0N6ZjBYL2MvN2Q1N1VXZmNTaWFlUWVZVy9XOHNoeHhZT1Zob0RkWXhMemQ0SDRRLzhIK3BMNVNycVhRTCtiSmUyaVNhSVh4ekNLbVovakRHaEU5ZHdpWWp2ZmRvUHZWbDRpS2hELzYwK24vekxhUmRSSk9IV2g3M0djWEQvUDZQM1J4cXA2SWJlMHM1YUoxb2x2M1djTHoybTkwL3dhaEsvU0FGQ0dyYUdiYTV5NHlYZXpkdVQrSEpwV2NkMEhoVW9pMHZrYkR4TDdydHI0UlZXV3RncXNISmYyZFpNL0xiQUliczJuNGdZdmEvbkgrbDAxekp1YzJtVmliZHhZdEpzNGVGbG50dm9VektLV3RtVWM1a2F4N1k5ZUJ6TmFzeDc4UFRlYmRPNk9pcmVrY2R0N3crb0J1Z1NLWHpnZ0I3V0sxSGJrcEJMMDhnOWUremR6eGgyVmY4REcyRlIzOG5IRG82UGZuZmZlck1USDAzVVlqa2Q5WldJT0JjQldrY1JRYVhaZmNjNDUvSDVvc1c4SWxLaVljb1FheFFJTWRSTHhtODhQU3VVR0gyWmxtYzVRTXZjc3NxSVBlUHIvK00xblBITlNWRndnNzV6b2phRVZNck5lZFd3RlNUMlNMeWhGZVIrbWFRWTNMcVdiZmZsa2gvY3ZRNUVYbDZoanhDRzRYdHc3MC9EQ3Zmc1hnTDZ0QkR0M3lnUXFXUytWdDk0SUJzUkErWHYvZFYxbWljWVlpdFFFU0U2WGlQQmdJMFlaR2lyTE82eXBqQjdtOU9ocDQyM2VFZktUTm5uZXRseVg5WldoU1o3RGwyUG9CNXR6bVpMODU1N1Q4ekpXcXk4TjJualBBZGcxRVo1bU5hT2MrUGovLzhqUHBpV2lmV1VScmtHZEQ0eWdEeXJrUXdvT3ExSldOOU5kVHlRRzNocXpVbkh6b0RSRXlVY0g4T1RTcEtQRzlQMDlIRkpWUk16U0ZEV2JyWTJPenRsQnZjQU5VZ0ZsaGc1WlhLS00rSDhmL1FLMTA0MWcwaUdEd1RFZW0yWjV3bFFpTHlZVGpZZS9qbXNXd2JCNWNwRnM1Z21QN01qYno0bFVPZnd4Tk5tWXN1b3J5dk1zQUo1c1hwQkdGQnA1RDBOYnhOUGhwUEVUM2JnU3k3NkVqK0hqOGw5Q3pEVWg2TmVlK0QxdXFDckpmcWMvQnQrZ2J0RkYwbk1GdGlYWk95ME5melBGZ29JZDQ2Tkg4NG40TlRXSUlEWE1BRnRjVVVFVjR1NGJIMkljNzRzRDNZMWZCRjR3cWJsd0NtTlkvbWYrUDE3OTJnenBQQ1BXeE0wQm12aCtEd3RKU3p5YkdaZHZ5OWZNZEZlL0hiUVdXVzIzWm5FTUhoSWZxTldZWEtQd01UZGJrMXRsT2FRTy9qbGxZMEhqUXFCT2w1dFU5cHpRS2VjUklHRStSUE9TZU1IeWFqK2QvSEJNejlLWE1FQWpNVy8vMlFnazZmMlF4a1NKYTJVOGtLMHQ0OTJuTWtqM3ZjNWpsU3JqK2dOUm5wb2pJREFWKzMybGJVbm9uaGhpOG1nZkdSeFdlSTY5MmtaZDkyajZsUDFkK2NCK3ZjOCtnUDU3L2E3UGVRZmZYUzhOeXhiWEV4YzVyUUpaSjhIdytYbmp3YzdnLy9WelY4R0FzUkJ2bzVQWE1rZ0dwakxDTyt6V3ZCK21kVndNWGo5djh5VjZqRStqNDUzY0xnRVRUR2JWTkI0amhGdmhZWmw4NFBDVjhIZ0FUT0Yvc21ZbHdFbER6TVlhRjQrNkVWLzdBYkczZmc1aVRpbVkvTko3OXZMczZ2ZkxNZ1ErVFg2UFVsSFlnKzQ4ZCswM2dPMnVlT25ETjFuK3lIdzdpSEkxZjF2bmhjMnJZam5GM1hTUkdoNk45SFAraUZidDVxdzNYMS9zc1loZ24xZWl3VG9mTy9qM1ViN24yMXZUVU1Dd0s5YWpILzdxNzRuNld4azJMSG9QRSt3cFpsVkswaWFVMDRqWXJJWStVZlVCK2RZZHFzR04wblVQVSt1RDFVQzdGV1NqOWVQL1hqbytndmRkNnRUODNFakRHVjFoRzNLTytieHNEakJ1OXQ2K0xNM29PaTRHS2dEQUlmN0FXcmhEQll6aW9VcVBxUjdHaVp4K2JNT0QyRXd3Q3BsU1hWZXNhK1BLRXZic0VpNTEzclNJdk5MUGUxbytQOTcrKzdrTytVV0JiQlh0UHM1TUV1bVBJYnE5ZGxRTzJLNVY3MjN1dDU3emUxYzRMVGhFaGdUT1ZnVHl1M3NkVzdZTHNlWGpwTENGREN1YVpZckl1b09vSWJHYlcxK1hCK0NjT2hOTEJYQ0RYbjg3UDdlUHJaM1VzRU02OHQ3aWFkeTB2RnZUZk05dWwrYnJ4N1U2dzdlSllLSnRqRFlPTzArSnY5VTBSUlBDUmM4b1pvbUczSS93ak1IdGpEY0hJd1BBbHRYVkVWME5DQVJPbFdvQkI2YzFhTnJzczJJL24rM2o5Q3loYUpZZXh0ZGpuZDREUndPR0tTR0lHYUZSaU12bitQQ1QzeGlwandMem1DRzVyOTdPVVgvZlhrSlh3cTlEM3Z5TjdSQ3RDRUR5WkllTEgvRk12dkdmL0E4T1BZUGc1bEswdVhnZGRuNC9EbjVuR1ErM01LejZaN0RQdmd5dVZCZjAxeHV0ZHBBWnhuWWVFeEhDbWFpY0tjcTg1dGJ4R1JNaXNLWDQ2RE9Qb0U3cWZsemxIYmR6c2szZ3lrcVg1TFQ5ekJwWnlZVWNpZVhaVnM0RndZVHRTRHc4Q3ErZmorUGZFZzV3WElNeEJuMXdtRi9xNWt3ci9QNDBqeEFmc2JnbmI3VERhWldXTnZiU1RaSDV2a25IbHRxMnZJUUFoeDdKUVhrZ3BQcjV2dGV2SWtTNnV4THdJa2RTMlBVaDV1eGszdEZPMExVMEN2UXJoUDk3LzlEaDVvMk8yemhHWjM2ZHhFNFI4M0NNSTNqVWkrVExRa1F1SGJMVnRJNWY5VlluUnlnNjc3UDFsL002a3psYUd6c2hpRjAyUUZJT2t6WmdGOTJwQnpHTTNCcjVhSHdya1hUNExOTDFuWXZZS3hCWDk4ZlZ6Q1RKWFVuTVZTMmNEN1RiZUNPYm5EU2R6T0hFZkczcnhWRlJibEZLYlczZkVBTTBwU1l1WE9mZzFlS1dPM0ZkcS9kb05JNVFoYms0cmVsQ1N4TnFVRStJSndVc1FaK0t5d2Q1VVJZd3NCOElCd2ZuSDZ6K3pwWHZwWGxKL3FFVGRwVDIwQkZLbGRWNTZ3NjVqcjVLbnM4d0hwU1pFRHJ3RWlTZHBOelQ0VXhYTFNyMGMzNVNQN1NaSXBlWlZxUnRINExzY1d4SDdndUZqY2dqRHphYUJpano2a291aEh0ZS9maDcraVRSOTJvVVludTFvb3JET082Lzg4bXh3UVZyd3RDV1NXTlJhRmp0MHJsRS9oQk94OS9jZERwN3plWm52YXpFcnhyTjFOc0lkVzZ1cHpOYm9oZ3poUlBXWll6Uy94cHphODlEZEttU0VsVUlqSVgzZS8yVSt4M05oYldpaHVmL3FSek5qWHVjZTVwYzRkVG56dkxXVkcrSzRpTitDejFYcGVZZUhRanRtQ3lKWmtHazkxa1NuQ3ozSzRoeUN3VFNSN1lvbW9ZNlMzdGQ4dmtQOWs5SXp1OFQzbW1kZDJINzgvcHRYWjJvR2FGTkpXRlVPazVFaU1VRTFSaDUvY2pRRzF4SjcvT0hjNjBIa2wrbHNhcDkzdUZUd3p1R1czWFEyUEIzdkwwN0JvQ0NOWFB1azlmT3JVcVYweC9zT21HRjhETVpwcU16TlBvbFVMcHBYYno0Ky8zaU1sYyt2dkZtODVzaDc1N2UzQUcwc0IwcXllMmRuZmNsMmZpbnFYUThYMGVaeklUOTMrT2ozV0p1SmdlYm9tQjVIbDBhd3BXd2hONDZHVlp6V2ZFTnU0UlptNzdPRk9pNUFiWEVscnNIb2g1U3hmOXovMDFJR0YzVS9CeTZXanpxdjZHRkM2N3pXdXN6TUQwVWpSeHlEWnlkNVdLdEU1ZjkxaDFOWHV1U1p4NHBFS1l5WU1qSFgwYlVaaVZhMWlHRm5WNnpnVUk2enNuR052ZWVyejhpU3p3c0R6Ulp6bEI4L2Y4SzJsVURsWnlJcHF1MnE1Nmx6WE5aVTh1TDBlOTRCNnF0bU0yZjNpVzhDMGY3UEhWNFFkenBlNjd3aUFKWGRlN2tZcW1RanN4VVlJYytHZE9COXFTeHV4bmxYUmt0MkNJL0NoRmlVRWpTV2czdzgrNDFDS3dTZzZLN0NPSWhwUFk4dE83UUlzMWdKTlJ4c1BTOTRiT3J6am5lVmx1WDNIVzZ6WGV3Z0NobmdLMVBiMDd3c2U5V2VBSzh2MEpUaVZnQ2grN3NyUER3TjJNd0lwSzdBYnlBZW4rTGU1K2pVaDJWT2NQbGVULy8rRnJ6WitZNVBkZ3R4VXJZZ294TjNTQUZHTS92ZGdkODliLzJQTy94Z2ZtdVNVczhEZDBQZnorMnlsSFhDcHVNWmE2RnFSWmdUZlB1SmNjK3BqdFFVQklKTFZpelBDK0RQS2ovZS8vNTRhK0hjZlZHUWVNRlZ1ZWtUQnB3dlRkdjgzZ1BFd3VHQlBaMExwTld3Y1AyK3l1WTk1NHFRQ0I3T1huajZRaGJMai9jWDN0cExlS3VuMDBEd1c1RHl6a21adnRSWlFsMFdWS3FtNHA2UUI1bVA1Ly82MFV0eEJja3VBdUc5Z0ZEVzIzY2IvN3pEMDBGSFhQU2FWOExQaTRIWTRqbjU0dzdQTWxNZXM1ZmxRVnpvazFsY25OOTVQY2VvOEVkcTk3N002Y2YxMWFMQ1RlNUFHdUtNZE5TQ3RvUjJBMFIvdnZ5RERuck9LN0xaekVJT3hMcGN0NStzL0x6RDFheUY5OW5yTnN2YmE1azJUUDY0eXFiYVV0OWZjdjF1bld4OFZVSFByeEE4RVFxaXVjdDhwckloZ3JnN3VoTEJPSmxmTWR4bjZYUGVqZm5HUTUrSC83L2tJQXMrNmxaQ2lYN21MTGE1cmhtZ3k1aGYveVptbWVUVmFuRHhMMWZaMUkzS2QyRUErVThndkpxd1NBd1NNOG5iKy82K0FVbGdtTWp5ZGRqNUZidjF1REhxemFUSis3Y0l5TS8zLzMvbEsxLzV5bGUrOHBXdmZPVXJYL25LVjc3eWxhOTg1U3RmK2NwWHZ2S1ZyM3psSzEvNXlsZSs4cFd2Zk9VclgvbktWNzd5bGE5ODVTdGYrY3BYdnZLVnIzemxLMS81eWxlKzhwV3ZmT1VyWC9uS1Y3N3lsYTk4NVN0ZitjcFh2dktWcjN6bEsxLzV5bGUrOHBXdmZPVXJYL25LVjc3eWxhOTg1U3RmK2NwWHZ2S1ZyM3psSzEvNXlsZSs4cFd2Zk9VclgvbktWNzd5bGE5ODVTdGYrY3BYdnZLVnIzemxLMS81eWxlKzhoV0Evd2ZkbWhtWmR5bW05d0FBTWlGcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrQ2p4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TUMxak1EWXdJRFl4TGpFek5EYzNOeXdnTWpBeE1DOHdNaTh4TWkweE56b3pNam93TUNBZ0lDQWdJQ0FnSWo0S0lDQWdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBZ0lDQWdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQkdhWEpsZDI5eWEzTWdRMU0xSURFeExqQXVNQzQwT0RRZ1YybHVaRzkzY3p3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5DMHdPQzB3TkZReE9EbzFORG8wTkZvOEwzaHRjRHBEY21WaGRHVkVZWFJsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPazF2WkdsbWVVUmhkR1UrTWpBeE5DMHdPQzB3TkZReE9Ub3dNVG93TWxvOEwzaHRjRHBOYjJScFpubEVZWFJsUGdvZ0lDQWdJQ0E4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRLSUNBZ0lDQWdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWo0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6N0JGZ0ZLQUFBQVZrbEVRVlFZbFkyUndRN0FJQWhESzFmKy8wL2hYRTh1akJVekVxSThDZ1lFU1NpUENIWm1FSmFack9leGo3Z0xhbXczWWVlTDVBUGNmZDJLckFzQm9ONWZURTFkTjFMejQ1b1VIeE9xZ2V3MHZmVHI1NDV2NmNuMUlTSXBCOW9BQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorScaleX", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFUZ0FBQUU0QnNjMGZNd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQlBTVVJCVkJpVmpWQkJEc0F3Q0FLMy8vKzRZNWV5R05hREpoNVVCSlNTTUlrYW9RSW9BSXk1aktrOXRENWJHcmdBRkRVMGVZZGtMbjFXdUFsWHM5SGpzUlVmY3lWRHE4dlNQNWxUYi96SEY2VW9FeGRNWXJPSEFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicDrawDebug", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUU5SlJFRlVlTnEwa01zTkFDQUlRNnRic3FCcjF2Z25haFFQTnVrRlhna3BTS0phZUZhWVFWSGg1WWdWbEFiZjFJN1E1UVRnc0pmZTBlTkJYMkFwajR4V2RxWnV4QUwzUnRJZ0dLdERGR0FBNGg0Vk01NWl5QnNBQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorScaleY", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFUZ0FBQUU0QnNjMGZNd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQkdTVVJCVkJpVmZaQkpEZ0F3Q0FLbDZmKy9iRTl0RVlPY3pFaHdRV2FHNkFJd1hNYWtkVEcyYUdhYklLUTVqcllhamNBUEhZMzhFZDVSanltN2NpS2k2ekVkRFZQSEFlQm5EaFZYand5eEFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicArrowRight", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUQ1SlJFRlVlTnBpK1AvLy96SWdqZ1JpQmtJWVJNQUFRVTNJaWdscXdxWVlweVo4aWpFME1mNEhheUVLTENmSlpJcmRURlJvRUJYT1JNY2dRSUFCQU1xdGZ6aUhGZ2JoQUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicWatch", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFEY1NVUkJWSGphakpBaFM4TmhHTVIvZTFGWkdNSmd3U2FyVnNPS1dSSGJtcGo4Qkg0Q205L0JabDJ3R3NSZ0U5Um1GbHcwQ0NKWUxIZG44UDF2KzZ1SUIwOTU3cmk3NStrazRiOG9BTmdGZXhmN0d2c0ZlNHA5Z2oxb3FaTVFhVDlTSXQxSE9vNTBGdWs5MG1Xa2ZoS1N6TVRUU0xlUnVnMFI2VENTSXgwMHUxSUQxb0VIU3ZsWUNMMEJYb0ZodS9NWHNZYzlxamVzQWtkQXQzS3R6cHVSSGlPOVJicUtkRmR2T0krMDFOVG96RjVuYndEakd0c0hkb0JuWUp0U251Yk9peU90Uk9wRk9xM3VGeitkdjhOZUF5YkFNcVZzQVgrSWY4SG5BTlI0d3BRazlwRnhBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicInteractive", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQndTVVJCVkJpVmpaR3hEWUF3REFSZnpNSTYyU0JTT3RaZ0tBWmdBYW9NUVU5SmRSUUprUXVjOE5MTHNuVitGeGFnanFQdEovbUtrdVphaXpxSkFiaXJvNWNjSlYyU1ZqTXJGNXpFQXpockRXL3liOURDeXdpMDhFNlJDelk0NTR4WitBUWJuRkxDTEN6ZWt3UnNneTgyUDZENlFrZUFUREtHQUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicMoverTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROWEcxNHpZQUFBSnZjSEpXVjNpYzdackxqdE13RklZanNiUDZFRlpZc0NGeG5LYTNxTWtJdFJyTnBtakVWQXhpbHladUoyb1RSMGxHU2ZzMnZBTUxKQ1RZSXg2QXQ1Z1ZXOERwalU0MVlzR2lxZVR6OVdyWHgxLytFeS83N2RlWEJ5VlJrdDhWM3llTkhFL1lMSXdkOWVIelZ4V0hnYVBldGtiR0tCbXd1L0JxbGJLYjFldXh2NXI3dlVDOWNGRy90TXNvaVZqdTRUSmF4SmxkT3FvWDhBbXp4ZmRxbXFoNHZTU2ZPK3FyNmdmOGJuU05CenhsdUtVYm1tKzBEZHltT20xYW5VN25KVFlOYWhEREpOVFVhTWR1bXJaaDRDMnFpOFI3UHcybTlwdmg1VlluUm81NmwrZUpUVWhSRkhyUjFIazZJN1RYNjFYYm1LWW1WbWpaTXM2OVVvdXo1NXROZHZzTVdlYW5ZWktIUE1iVjJKdncrOXhSVllRUDJPYUtrcjBvenZSMVJ0M25FU205aEZEZElQdWRxODNGYW51UU1pL242Wmp6aGJ0SmZobW1yT0RwUE1PRG14YW1va284cks2RmI4TTQ0RVhXSjhkMVQyM0podUxsaWtaWm10SFZER3RNdTdiVnRXbnovVUg5WnRGUitZZ0g0WFQ1UkhtcmFWdnRiZm5Cb2wycnlGR3YvcmVIZ2I5dllYS2ZMdFozS3ZBSlc3Q0l4WGttMmtnZnR6SHc3U2xQSXk5M3c4aWJNWkxFc3o3NU8vblA2OXZNaXBNaURpblpuMUwzMFdVZG9wd1k4TzlCa3VlWDFvOGt6dzkrOElNZi9QWDZrZVQ1cGZVanlmT0RIL3pnQjMrOWZpUjVmbW45U1BMODRBZi8yZmhSelg0TS9ucjhTUEw4MHZxUjVQbkJELzZ6OGFPYS9YWG5sOWFQSk04dnJmLzRqeGluOXRlZEgvemdQeHMva2p5L3RINGtlWDd3Z3gvODRLL1hqeVRQTDYwZjFaNGY5Uy9LeFBQbjdOUitBQUFBQUFBQUFBQUFvQjQraU9lem4wdmwwOXVQalI4di9FYmQxd01BcCtSYThaU1p3aFNzVURIYWZRS3k4QWVWbzZ2ekVKZzhjUUFBQUVodGEwSkcrdDdLL2dBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFLYVF6b1FBQU9TaHRhMVJUZUp6dGZkdHoyOGFTUGpZbmppUDVubXhsSC9aRlZidS8rajNGaDdpUUJCOUZVcFFVVXhJUFFkbHlYbHdnU01UYTJGYU9KQ3ZIeThML3Z0UGRnOXRnY0NVcFVRN0NXRU5pY0JsODNmTk5kMDhQY1BTcWU3TjRQYmJPRjdiM2VueDB2bEM5d2JnWEtjYi9PRDVmTkJ0NlIydWJEZTlzMkhNWERlOHRGVzhPKys1Q1ZiMkR3d21XNHozTFhiUTFiMnlkbnJQcTdqNDdnNHYvZWFQaDhHYlJIYkUvdmQzSjFVTDVYcGtxanZKTzZTcTJjcVdjSzQ1M2VIekV0ajltMnoreDdRZHMrNlV5VTNhVUlhdjlwTXk5Y2Y5a0NpZmRQY1p6NzdJbTYzUFQ2L1lQenhlRzF6MWliWit6QXUra2ErM2hUdFlBYnFGckhlQ3Y3cENLVjFqMGp2a0o5Z2I0ZXp6QmZRZGQvRFVZWTNGTUc2MFIyOWZ4dWhPcW5ORFpKeFpkNUlqT1I4WGhMclR5R0ZyVjhQb25LalNuZjZMQmFmb25PaFlEdGxGamhVYUZEb1ZYQUp0bkNXekd5b1h5bVcyYktYTmx0aXhDNnYxSHlOY2VpK0hpS3RmTGFJL3FHcFgxUjEwU0hYVzkraE9pczZUK2lCaVYwYUE3eHVneHgyaVg0WFBKa09peXY1OFpXdTg1VnQ5enJFSU1zOUNCZGtmZ2FSbUVEOWJuNG1NYU1Yd2FNWHgwTFk3UWJNaytwaEZDR2lGa0VFSUdJV1I0MXVoWGtxcGxzUy9PbEcwNG9kdXdyQlBjVUFiRFJ4ekRDZE91ZnpGOSs4enE4L1JNMTJTS2xnMmsydUZRYWxPbkJKU09TVkRpOXJXQnFYV0tnZm1VZzlsakN2ZUJmYzZWM3hoY3R2S0g4bDc1d2dIZGlpamxSL2I5UXJuSUJGUGx2VmJWQzlPKzJqRGszYmFSMFcyYkRVSVMrUUNRZE8zQ1BWY3pDMk9wbXhwaHFhdXowdGhsZCtqMmpLQXpIVUp1dmlLRG9wRTFYR29WeWE0WVpGVUIrZ2ZycCtld1Z3d2dvMGtBcVZOQnQxd09VWU13Y3JJNktxaEZ2bTRoSVVad0FqWUZuRkNwMWdCVVVyZUNqbHExZzQ1WjdSUTc2S2RNTlZNN3E5V3oxUTZxNjlHejd6aEdiOWhZY0MxRnB5Mm9tR0IwWk5sbGNHZ01IKzNPOGJGR1hXSi9xNXNnL1VjQlh1L1JwbmVZeGpEa0JHM3E0YmdKbFArbEVOMXp2RlROa1NJbUVIN2JLYTlTUm9zZ3N6bG0rc3dvUEhaVzc1VHNnbHJUSmlCaHFDbVA1QWpKLzVxaCthRVVrcTVSWU9SMC9aRVQ3SW1DUUFiY3hvRkVtMlQxT0FKOGxtK05BTG1SV2VKL0FXVEpMdkcvakV0RC9ERHVYSlNCRjhlTVhIY0MxYmswdm5OdW1jREJBSENudFdxQXh3eFhiVDRuek1SQkl4dXpLZ2F5bkJTMVpxYUI3R2psKzNoZ0hqYzFnbzR3TElhZE9pOU1qWUhpYVc0TXVxMEFPaGhCdnVCWVdzVTNpN3RtNkNKVWpIMFU2Y2lheWEwVWRFb0tvcVZyTXJSYWhGYUwwR3BSVnlZQ2hDOVRWK2pLTU1hTUQwcmcrREN3Vm16bDk1d1lpVWtvZGdoRk5ORWlLRGFXUmRFZ0ZFbkZwREEyYmNKUnk4Q3gyZUJoZ0E2UEEzUTRrbHp4V2x6eldrWWFtTFFsQWlZek9zc3A1WVQxZEthU3l1OWxlbkVoclN4bVBjdlZFanN6RE5UVGxmTWZEakRZaDMwZ3g5R1Joc2FlZlBYc1kyZCtqL3dYRDFkRmFncDNlbWtVWVFQQ1ZXckZjRlU2U3MrbEtQVXhzRGRsSm5oMnQ5NVVuTFJid21uQyt2RTVjMC91SzA3NnluSGFDbkM2WUJiSjlTMEdock40ck9NWUZaMDBQaVEwQ0pvR1FkTWdhQm9FVGFNZ05FK2xLc1JuWThxclQ1enJHN2MvKzVKRlJrMUNxRWtJTlplaTdBUDBYbTl5dk5kTm5XSGdLTEVSRzJGcUVreE5nc2ttbUd5Q3laYmEvZ053TjNHNlpRSmNJMUdtUzJaKzdTaEgvTnRjdVN4aWlwVXhIZFRtdk1oa1EwUHE1SmZ1Y25MRGdadXpKa0Zsa3ZGUGN3M3BnWkZzN0E0d3dQU2VCNXJlSTF2RnNRT3JFY09XNEFHaE5Cc3hRNWI4cG9RaEsrMk1xSXRGSStMMldyRXJEcFhmSTRjQlJPbUtKc2JmSEZtUGhLaDFLbTJGUG5xRllOTGE5Q3hxMTRlUkpMQlVNWkpremt2ZytUQm01bjlhN1p4N3dZa3NZV2k4aFc0YWdBVTRSc0g2am9OMUFsTUdIS0x0d0QwSDJ3ckNiWG5XbFYwMU9RRzhtVHlZZE1HMTlGMGhQOVNHQ3Axd0xOVUM0UXpZaWhZV0Iwc3p5ZmRCVDJjWEhUWlV2bGFMUEI4RFNnd241bUw0SW9JaFJJd2cyY05DTzlYbVZsbjJHR0ZMQTJ3RklJVklWc2JVakdNVHFCb0gxZEdFK05xTXg0aG80TTd4TUpucUVxd214OVVrWUIyVGdIVTRzSTRwK3V2d1pleC9pWFZ3cWdxKytBR20wWmo3cE9PeEgrSzBrdUU2bVNqOElOMnR3Sy9QQ3NFdmhPZ0M5RFBuWFZOaUpRYTMrd3pDbmhsSWlEMldPcGFJTktFb1JSb0hjUUFZRlgxTWlsOFUzdTBBM211TXFVQXl5bFVSKzhlZjFQYVRMVlI3WGdEZkl2WlBVMkNNT0xNQzMxcVlLSmNPYnNzb0I2NFBuT29HTVJJRVVNdG5paC9sTVdTZWpsR01mOXNWK2JmUU1NVkRlNjR0NUFod09JMXBqSDROR2YzNmNJbzgwZVIrWEpNN2NxeU1KMTFRRkdwTWdGcGpUczM4TndDdHVsSks5ajJjRVlQeUUvdVdWRmRWK1puVm5qUEljK2VTNHZQa2xhUFBXYjVmQ1JzZ3JxaG0xY0JCRXBuL2tDSEQxSENYYmIxbXYzOW0zOEJRQjg4d2Q1Smp0Wml0MW01YUlXYitNTjlqZy93SDlzL3Z1dEU5WmU0TXVpMnBKcVpkUHJCUXdzQXNQc1FVQWdyN0tmQmZjbXdCeXhOcUxDcUxRZW9QMS90QjRzRTVETmpyU1I5MmlwdnBwYkxOQk91VDA1OU5RTm9FcEprdzFMbnBHYzAyaXdFYUJmQUpCL0FOV2pSelBqV0pPaWhNYUJTTDNnaDVlNEZmWFN5QUExT01KYlV4c0huUVpGcHFXbEtLWkRCbkhrNjBZYXpDL3pJK2lRemJEUnBOQkNVdGpuR3hTU1BObE9rcEJZQldpTEEvWjZUNzg3N040Z0RMZlVwZE5tZUVQVHV0NzVlRHNZeFQ3bkxyMFkxYmo2NWRBTVFpN3VheUFTQzVpbW95Qk1rcmozcEJ3V1NibUNIcDgrV1lXOWdYeWtlQkwyRUkrcVM0a0pRRnc3VU1RN1ZwRUlhdE9JWjJDUWhiVWoyVUdqVTA5VnZGcXZHMU1FNllHbGRETEhVc3FmZTJlUGN0RHBxdmNEUkprdTJ1NkxKT0s2Ukp5a2VYUm5Ickd2azJpZFhVeUo4MEQzd1ZZZEljQ0JieG9pODZmU0g3MnB4eit4cStqSHdNTGQvMUcvc2NTVUdQWXBqNmVZRURjR0ZraUU2Tm1IUHRhMThaN3pwenZFWU1aY2tJY3YrUFk2ckxNSFZNdWNQUzRkRzFEay9xNkxRb1VvUnVpVDlIM2czZEZIL09YSWlPcDRNWWV0UC9aRERhYUZCbXEyZXpxdTFUWWtRaG55OFNleXVSaGNYOFE2bDZ3dllCM3o2ZzdRR1VPRnEzK1dEZEpnMzFJVVVGUFNEWHNGeG5mNHQ0Wm84dThSRzZVTjVnR1Z1U2ErWlVPaGtxZU5MUzBTVXRNSkdXSVJQUHdPU3FpQjV6eWxxUVV3YlZKeHlvUDZNQjdwdmxEemlJdXRLdmtON1dMcktPcG9oTG84ZE5uRGlBVEZVa29ZaGlZVFBObE1TQ0QyaU1Mb1BUZG9nVDh3UDMwY3o1TXhzeDZRQlRiT21SRDVtYXIzT09kSUJSNXpJeVZHOFZzc2VCQmZNZWs2UWg3REJQcE42THNMV3F6am1veFdjQkExOUZiNVZQQ3ZRTndUeXY3OEEzblErU3BuTWVkQytDTWZjRHJ2b29PODBnbnlGY1h2VXduend5ejJCTHJXbGYrWXBFWXNXUldLcDh2a1V6RGlZTGtnWk0wUTU4d3JaZlk4QXJiL25wS2pwd3MzZ0FWc0N3a3o5bytPbXBnam05b3U3cjZ5RGs1cDlqckhEdE9waklwTlNsU3RneDQ1TmRyblRVa004ZkNnbStqcHdDWmZhZ0dNWUpwN200RlJPTlk1TzZzaHRzTjJsWWJwWFQxaWVCNTN5QnJzeDdCanhmSXBHdHM2dExpTXNhcDAzcEVqbUlnMFFRMThyTXdLUnBMZGszVnRJSnpFUHdhUVRCZjJFUVp3Y2pGYVV4eE1CZ2ljV3VBWTVHdml0ZGVYNEFmT1VDZ3hBR0laeTJKQ0VkazN4d2cvL0ZuMzRaY1dNU2JwRW1aQ1BXcFRoem1DZUZuN2dVWHVPTWw0UFpyMWM0K1FBTURESGluWkJneXRNSkxhVXFxdGhTTm9rcnRtQk5ZYWd0eVNXbExGQ2R4NGgwSGxwbkpYSUpGMDkwZkJ0eDRjU0NtU2l0eUZTWkdaOHBBM3ZmR3d6N040dEI5RWtETG9yRndvRGNlU1NKMUVWeEhPT2N4a2NVMUdscURSZkhnQUFaRURjTUNJZkJIbXJ4WU56SFhjWmpxanVnNGd3S2J4RDE0cWhCL0xFUDRMRUpUWXJXbktiV1ZHdVNSazFpeFg3UW9oZXNQVTR3SHpIajJuZ2RtZks1Q3JqWTRUa2ZNUFE1eXUrTVIvelppOEgrYXdiOGNZOU9mc2krNzQvZ0NTd0Rlc1JLQS8veklsV3FYOFdmdndKMWI2R3VzZng1MUlxbjhLdlliNFRPaTRudUVSZGRENThtNExBTy9FRWl2akVITWFsUjBacHE0dE5KZkhvdHZncmllOHJGTjJZQU9leW1JWXJ5bXlERXA0R29aUHVjRnRpbm1tQnRFcXhkQzdhQ1lMZURmZ2tUQkdEZ1JKMGROeko1NE5lZFp0UlZFNkJCQWpScUFTN1JNMGtRMTJnYlhmcXdDVDFUdnM5cGdYMldvbHhWclNWYlFiS2grV1ZqaWsyNEZ0SGxzd0QrOXRPVTdkV2sxaVNwTld1aExTRzBFWnFiVHVTSlV5NlBnL2piVDFPMlZ4TmFtNFRXcm9XMmhOQUdDTXdzZ01VWFRyajlOR1Y3TmFHWkpEU3pGbG9Gb1QzaFF0dmp6Nkw1QTBrdmFyODg0V0tTN1hHYXUwYzFrWFpJcEoxYXBCVkUrcENMdEl0enNWZkJESzBiUEJEaU11aUQ0dFpxNG5KSVhFNHRyZ3JpMmdxY1F1ZzV0TXhhOU9mREd0R2ZEMnVxaVc1R29wdlZvbHRpeEh1RHlaL3p4SWdYYmo5TjJWNU5hSE1TMnJ3VzJoSysraWljT3d1Y2d1M0Fqb3pXbldiVVZST2dTd0owWXcxN0hHalRYSmtxZlpUSWU1emE4K2Z3ZmUwUjYwOXo2cXMxVXVYUll5ajdhZ1RZUVYrTC9kSmp2NHpZcndrSllCK0Q0bFcwOVNuWFZxaVpna21CazU5ZG5JeVA2bXRMcmlTNkNjb1VxWHFwbVdHdDFySGI4VnFqR2RaT1crS3hyYXhEMnhtSHFtS0x4RzV5LzVxL3V0NVpzOWdhY1hyR2NScmpzcGw5ekhhRWZaTTlTSmMxa05vUjE1U0lvc0MvMU5iTGdGelhSVFlFWlpoYnZjRGNxbXZsaEsvVi9DMWZJN1ZPdzI1MlVqU3A3ZkFHNW10a3NmTnNTTThOK212WWgvTnc4cnRWZHVQeWNTcDJuanZHNlhtRTRWaFA1VDM0TGVidVVjcGpUdDl0ZEJpVGF5bmRLdG5ub3VRbFZibDFYZVNPY1g0aDRCeEJPSThsWDRadG1UWTAyMDZEWWVheTZuaGxSend5RSswVlgyaEROSHNQTTFFeFJ3WFRLb1BSeWN1eDY3U0c3b2dEUm1nWXFkTk9XNTJtR1VicTNIRFpyMWh0WUJpMTdMblRVTk1NbytTSlZiRkZvaFR2WC9QdldEY2VjZDJBOUVhYTNZWVhKbnpNMHdpWkNhRkZLMFZiMkFqYnJka1pockpvZkRSZW11RnBVeTBUdnptRjFHRnoyMzdIdXJETmRTSHlTR3BXbDZzSnJSWmtlTW83bDlrd2szQUdQYVRWRXUyQ0NKNXdZTnRONjF4MDRUVFRpLzFmV0JrMnVQbDNyQTlia1ZqQUg4Z1BseEZ0TUdTTjZyU05saW9NbDNwd1o5T1o2UWhjYWdhMUxVZWJxM0pJNXU1czZzeVNFcjJiSm15SVZDeDhKY2FOSUJXcGtuZjBEck1iMDVUYzBPQ1RwdVRUNWxTZnFpbEszbW9sZTArbzVMTTVmS1JZUU1jeWl4TDJSamQvUXppYnZKV2svWnppajZVM2kvc1hvbUNXT004SzQ4cDdnLzdOWW04UW1VNmRJMDZIbUlNTnRtMlgvYjNCQitENDgzRHpZRG1SclZ4N2V5UHJadEh2N2NHZlY0aWZ4ZnhpOEQxT2xLbnlQMlFEZWYzZWExd2c2S0t0Zk1VUTlTTEhiUG1MNEpoUERRdVVycFgzL0loL1V4cXhQYmZEOWlUMi9VWlJoYjIzV0ZzK0lOZk9sWW55QmNxVTh6N0NWdHU0SnZUUFVDdjQzZytWLzFJYTRVYzRjby9kbGN0dHZTTjhrdHVoMHVkSC9qOWxvYlN4dHNWYXg5cW5hTXJQN0x2RHRzQTMyRGJEeCttWWJGdWIxZEExbXJobm0vMVZXUTM4OGdRY3dvYzk3bUtNNWtOd2IzOWp4K2hLVTJqbEFiSWJ4U3RrOStlR0grSElMcTV5dXNhTU1BdXpOYTlUY2R5S3lDY2I4U2VSUGYxc3MwdXlrd0o1dG9XN2VNS3dua0U4Q3A4Q2dldWVVZGVZOTVWNmxSQ25QbjlTbG8wcE5sRzBSSmsraStqTkVlYWxYdk1uU0ovajZPQmZTeFd1RlVnaWVQM2VKMnpqVlhDRUhqdmlNVDZtODByNVBYVi9zVjIwNGl6V0w2WFNuTEd6eWJUMUtUN080RThlUDRXZVBFc2N2eFhYZHFaTHJ0Q0txTVlmc3ZiU2lveHovaXh5T3N1MzNQT1pDeGdkb0E1bVh6MmlpOUtyMDN2UkdFNk1oV3pzUzNuM0lPTHdJbUFjMHVqTFZQMFFaZkQvMmRWL1o5Y2ZZSCthWXh6d2t2ZXJFM2JrQjZiMTlLUzJqMHhqTGxDbkw5bTJLR2FuYlA5aldzZktyL0lvd3JnN0VjNUZpcTdBem1OTUpQdnQzckt6eUY0MU85ZnNYTE56emM3M201MS80T3hzc1hQN2EzRnBmL1E2RlhvVHczM2xiSzNtN0pxemE4NnVPZnVyNHV5dEpHZmZXNFpXYTRhdUdicG02SnFodnlxRzN1WU0vU3RxL2Evc0dyOHhXL1MrY3JSUmMzVE4wVFZIMXh6OVZYRzBiMFZIT1ByZU1yUmVNM1ROMERWRDF3ejlWVEwwbUNFUDF3TjUzRmVHYnRVTVhUTjB6ZEExUTk5RGhwWm9RWjE1VjdQelV1d3NjbG5OempVNzErenNzM01vMlZXd2M1MTVWN056emM0MU85ZnN2RW5zWEdmZTFaeGRjM2JOMlRWbjN4L09yalB2YW9hdUdicG02SnFoTjVXaDY4eTdtcU5yanE0NXV1Ym96ZVhvT3ZPdVp1aWFvV3VHcmhsNjB4bTZ6cnlyR2JwbTZKcWhhNGErRzRidXM3MUFPeU9jSmVSMmNIMUtzSE0yejRtb3RSSXNtY2QxTnV1ekhjVmdueG5EeUZ3SjF5MmpiMDlqOXl1WE1Jd2Jtc0N1MGFPeXN3TGorOUpUR0VPR01ETkdtU1J2NjZ3bHpWdlJObCtEZG1JNlZGYmJubkZ0Qzk4TThpNjIxM0xhWnlkbWk3OUc3ZnMzcGIwbTNjdUtFbTY2N2ozbHVoZmxldEVhL1o1ckgrUkdNSXR5by9LTXhVeUhPc3Q0a3l4UlhiQkpha3MwM3hMVmhIYlZsbWcxUzFRVjJyRnBsdWpqa0U4WlEwZnVjQW1HSHJNcm5DUFQxZ3hkTTNRUmh0WnFocTRadW80VlNCbjZTY2lueWl5VG81L0ZtR29IVzB0dmYvb1E4ZUlleDFiOXJkSi9FM2tsai8yYW5OTmNaRFBndkRiN0dHeC9uLzEwOWczZVRRcHQ4SzlqSWwrNjZQVUJCOWIrMi9ydEE1bTJWTkc5WjhobUgzQnNqcDFOZVFrZmlRYm02ZEJVNlRBdGNOaGZHQW5uT0lJYXlIRytEa0ZjQURUSVpScm1heXJzYmJMZm9Ia3p0bjljaC82VFhhbkxzSElSU2VMVWR3eXpTK1JWNFBrLzJlL3JBR2ZRcnY4TkVIdUFWOTZCdjdHemZxL01Dc2FqMWlQSlBPeWpMWGlnMklMR2ZjTlFhZ3I3T0RuOGpNeGFRVXUyWXpybjE0bTZrV1VYaW4wcFQ0czBaQm1UYVFPVEJiSU9hQWZvUzNVbUttTEZ0QVJNODBkOW8rS29uemJhTGNPWG16WlN5dlVtcm9HUEdaZk9tT2Z4R1Z1NUU4SEtmMHZlTGlKNndlcUdBYUpYRlpnSmRNSmc5UzdhN3lxT2JpcTdaeU5oMjV1Y21Xd2NCV0g4bTdGL1lGMTFib1dabnJMOUxtQXNRbnZwSFpmcE8vYjdOMldhSXNGbndqSHZ1UzBkUCtwdjdINmFnbzV2czNxUTJrZjI5eDFxMmVmVVdjT3QyTDV3bDdPVVBSL0Y5dnhOOGQ5M1dleTgwZnVNNy9rODlUN2pMWmZkNll2VVk4WDJ5WTRXcit4TEpYbHZ0ek5qSmU4WGNjYWJJVnRkQy9vUVNrMTJuOCtrUnhWQktFc0g4NjRweDFiVVJ0RkRTdXNuOHd3dlU0NUpkaDk1SERtcVNHOThJdGsvNzE2U1IrUnBscnhWNmZmK1ZIcnZLZjJtRkV0dnNTMGdoeHM4ZjFYYlVXZGNDeHc3eGJGOGp1elk0ZU4vT09wRFBkeEhBKzFMWU9nT3hnVm1hRU9LMFpmMU1QVGpVRFo0dGd2bEhPMkpLMjkveEVEYkgwMXVGbWZESHJ4dDdTMFZYcmhOYXpacEszenhCTmJrMGxqcFdiZEpWMWQrVHZCL1Yzbk85VENsVERmTGFuZUVZU3RyZDl6KzBBTDdvMW5iSDdYOWNlL3NEMW1mcUcyUDJ2YTRmZHZqdStqVEdTcnhNbHpWd0VoRGgvdUZZRTIwSkx6Y3VGTmVYazlQanVOWER2c1h5Z0ZhSzM5WExKeHIrb3pYaFB1QytNcHE3TUJaWUFkcUcyZ0h2a2YrZXhmRzNvVGo1SE9vMit3NHN2SnNYTFArR2V5bmxKNERvMFlTMnlKSFBzZm9JczJvOGJoVm9lUFdvMmRGZEtXYzl2M0VKSHFadU1PL2k5RzlGZW1oRStpaHVuRjYrQXoxTDNyUHhUUnJLc0h2N2pTa25Eekw2Y3AydUlYVlVycy9TR0xZNFd3bllEREx5RUxJSDFkbU9LN1lmSlNBV1E4Tk15VGpNV3pRS0R1V1M0QXpxWmhET1YvaGJOcERKcGsvY0E0VzVQUWxHSE9UYytvUFVyTU9aQkhyZGNXT1pmS0t5L3dCT3o4OG4ya2VrZklBZlZHYWw2WDhneXF4WWhjelBCcE1OaUFKNk84dXpsR0ZNNkVOdEFsQVFuZnJxNjBMZlJtT2VlZy81ejNWZjFMV0RvOVA3ckpXL0FIelRCVWtvYUVNTk94TE5sb0FEaXNObkVXTVdtZE5uUHNwbHBGem55U1JqMmxjS3Q4Rzg5Z2trL0IzbFY2Z3Nqb1hQUndqbURIeEkzT2JGTEZZRC9ZaGR0a1liL20vV2N1TzhPekpUTHV5YUd0L09iUmxLR2JqL2hRemNXQVdIMnpzbmVENDZoRTZrSUNPdVJ3a0FRM1BEMXhqb04zWHhGRWNjQVk1TlZsZEI2MUVrSW1MTW5CdVJRSS9JS2IrbmZ0KzlLWFVkdnVHdFRBK1l2K1lldlEvV1drckgySVd3amVnYmJjZy8yeHBabXZDYzJXZkhmVVo3Y1Z6bk92TzA0Wi94NGhmOUlnb0RqNCtuNE9aL2grWWxGK2lSWkQrS2J0YUt4NFJiZ1FSWWYwdjB1UHpwWll0OWNmS3J3bzg3KzNqQ3ZwK2g2OWFncmhQSy9Eck5HUmZXTkUweFF3bThPZGFhTk5QV1RsSEszMkcxb21PRnNkdHlPSTUyNGZ1dW15L2Z5RTk4aTc3ZkxvRTg1Z2ZaT2pIRHZMNytzZkkzdEY3VDg4QUsrdnROUm5hSmxxY0xkU05uM0YvaWlJYU9JNjdPSGFvT0VZME1VdHVqam8wWjNXd2g1M3c5dGFqUHk5UzBVam1tSFZ1aWZtenBCblhoSWM4WSswU003NC9CZXR1NDF2TDkzOEhHUlo4UE1nOUk0K1BzdnlUSGwvN0srUmlFY0VpcUQ5ajUvbUVlZjFVc3hOa3k4bjc0VS9JVCtIKzczQys3UXJYclY0WFhDVlExbzQyTnRpTy9qRURqMVZZSUZubmw0MFh6VnZwN1hsYVUwVHpIc2UzTHVWM1FjYW9odithZlA2bmc1WkFPNkV2ZnE3cDE5WHowN0VVNHozSG1Pa0JjeG0rRkhiUi90a0pheXJiWDNQRXM0SFp1MU9Nc3ptSXRJN2pwOE90WXZqYnhEVlRmajR3V0YxenROM0FKN3NkKzh2R3UzN0hzUEx2dWxoLytsRjY1R2RlaXRuYmFYTkg2OUtDTkZtSy9aSFdIY1l6eFAzblhoeGdpeS9XdnM0d25uVmR2M0hLeCtIK3JUU01TN0pZanI2WTc1Qy8wbEJjL2JkSkt3M0IxeXE3NmtETVlLblhHdDcrV2tQekZsajUyNVJWRTNJVzlwOFBkNHpuQjFzdk9jTzVhaVlXYy9scUp2NHJNWEg1TmQ5ZkZ4TW4xd3JXWFB5MXJ2dE80K0x2MkoxOVFOdC94dlRDejBtTWJxc3lGK2hpVkpEOFRZZkhvRHVSdFdxMGlyYkJPT2h1VjlHdUt5Y3hpbCtjd2FBM2ZwSDRTOUNuT3VnRlFxNUdSMkJKSnpoZitwRWRuTTNUQzhqM0JXb2kzY0VsOWhMUThKMGxwVDdEK1lZMmpqTWRsSG9MWnhjN01hbFBNWExjaVVrZC9ybTQ3KzNFa05lVklaaVA2dDNxd2crWUQvT0Z0NHBXUzM5aDN3MHVEVmlMdDhkMUpEcUNRa3liMkxENjNMU0pJK0VjZXpqRnAwMmNhNGpHcDF1WUI2UGpmQUw4cGQ4RzZ0UDkxbzBzTkt2TDZKa3c4ekRCMWtDNzcwcE9sRE40ZitXVWgyaDFXVzJoTFhaSkZzd2R5Z2UyM1YvNXlGQ015K1JIekMwN1Z5Z1diTEUyblBOdllHR0RkeEdWeXZkaGZ1Q2FaZEpta21oalprNGJNM1RnYnd2SHlpWmFSL2RYSmtrTTR4SjVoTmpQTVhNWC9ITS9HOWJQZ2graGwzV05uUGhlb1dkN2dsOTFnLzBxZXUwcVZnbk1uTTNSOTNiUjA0WDVrVGtlNFV2SFJsdTBqZjJqd1ZmSmFOeHk3YkFheUtpb2tzZWNGby80RnUwRUorS0ppcEdGZGVXbmwwRWEvanV5bUJDOVgvSHZhSGR5cytqMmh1Y0wxM1VOK0hnRCt0WEEvN3p1S0pENDl6Z0hBay8ydFJFVko1aHhtUVp4OWt1TTFnK3hkODY5Y2Y5a3VtRG4yRDAreDhJNlgraHowK3YyRDg4WHF0YzlPanBmekZuQk50dGUxOXJEbmF3QjFsa0grS3M3cE9JVkZyMWpmb0s5QWY0ZVQzRGZRUmQvRGNaWUhOTkdhOFQyZGJ6dWhDb25kUGFKUlJjNW92TlJjYmdMclR5R1ZqVzgvb2tLemVtZmFIQ2Evb21PeFlCdDFGaWhVYUZENFEyaTJMaUlUZkQwbkdCOGNCUFJyOVBVR283WGdObzhvTHNjUUdNMTlndnZhekR1NHk3ak1kVWRVSEVHaFRjNTY5NHM2TUlQbUdOSWc5d25KdkJYTjRzM0k3YVAyZkFPZURteGZtWG5ZeEtlSExLN21CejJ6eGR0ZDJhNCtEU2V5ZGxnTlNmeTlzNUdONHZCMFFSdW9UY2NRekVhNHAyTWRsRUJoNmdiSTZpQ2s0d20vRGREUXZWMlIwTXFMTGpwM2QwZS90cnRZMkZOUUgxR3d6NGNzQThuYlhpL2pQNXh2bWhDYWRIUEV5cEdjUHorNEJDS1h5ell4MmJsSHYyY3dPbCtzYm9JN0hDRWlCNUQ0L2F0SVd3YldxZFE5S2tZV2lpQm5uVUVoKzMxTExpWjQ3Y1cvQnBhK090Z2dvcDFNQ0dpN0NQQlE2ZjlFMHRNbS9iT0JyanYyUkcyZnpMRzA3RWpvVGpyNytMSkIyZnNCSXAzZkdUY0xOaWY4MFhMdzhLbFFxV2lJUlNzSE1EK1RIMmFIaFpzd0RpMkduUXVTK1dseGtzZHk3M2pIdXczMmNVZU54bTlnZUlNYmtUMWV0MVQzS2ZYUmEzcmRYZHhhMzhYZi9XUGJoYkR3Y1JkTkY0MnZjbkppTDZNRC9tVzdnbi80dlhPRUdMdjZKZzE3K2k0aitmMFJ2dkg2TkNPRkJ1SG14MDJ2QjBlb2NCR2gwTXFZTmYvNWxQZEhUUjNpT3BibVA1cTgrbFkyRXFwc0JxZktJZGdCRXlIcXpoMWJ1T3lsaG1URW11eGR6Z2s0YjVsa2g3dXZtVTArR29mTnB5T1VlZUd2SmUrWVJlYUlxZlphQk5lZXNNaFFuUms0WDVIUFR4Ti94QVZvRGNFU3RpRFUvWmV3ZmE5SVZ6TDgxNGZzbnQrVFR0NVh1SjZEWDY5YldSWGVHbzZySFdsdWR0WjdJcU5RbGM4UE5vUE5weWREUENwQjFURW40R0FuWGxLZlhsS1hkbU05K1NwYWtNUWRyS0x0MUg0Umg2R2dLRkVKYmVnbGdUTjJ4LzNieGI3SjJmUThQMlR0MWhZN0pmZVl1VmJLdjNCaXcxbkxqdWl6d3lML1Q1ZWM3Ly9LbEsxM3orQUR0NS9EUmM2c1pCd1R5eFVhRy9VNzdITGpuRlllajArSXRydFJZcnhQNDZCWmZTTzFqWVRpQjcyM1lYS2VqTG9QeXZIZTVhN2FHdmUyRHJGd1dhL2gyTXR0R0VFOTcyMkFkYTQvd05zQVd5ZUpiQVorOTFHZ1lYZlN5S2szbitFZk8zeEp3dVcwQjZWbVlkVjlVZGRFaDExdmZvVG9yT2svb2dZbGRHZ084Ym9NY2RvbCtGRHI1eTV4RVNnOTRGYlRWaUZHR2FoQSsyT3dOTXlDQitzejhYSE5HTDROR0w0NkZvY29kbVNmVXdqaERSQ3lDQ0VERUxJOEt6UnJ5UlZDMFpIWjhvMm5OQnRXTllKYmlpRDRTT09JYmg1LzFKb3dYbWVudW1hVE5HeWdWUTdIRXB0NnBTQTBqRUpTdHkrTmpDMVRqRXduM0l3ZStoeDAzTUR3QmVCTllaZkFnOHJWRXFhMzd2STlqdDVyMVgxd3JTdk5neDV0MjFrZE50bWc1QkVQZ0FrWGJ0d3o5WE13bGpxcGtaWTZ1cXNOSGJaSGJvOUkraE1oNUNicjhpZ2FHUU5sMXBGc2lzR1dWV0Evc0g2S1lXM29nQVpUUUpJblFxNjVYS0lHb1NSazlWUlFTM3lkUXNKTVlJVHNDbmdoRXExQnFDU3VoVjAxS29kZEl5Qk5PaWduekxWVE8yc1ZzOVdPNml1UjgrKzR4aUJzM2t0UmFjdHFKaGdkR1RaWlhCb0RCL3R6dkd4UmwxaWY2dWJJUDFIQVY2VUFPNWcrUGVEb0UyOUlLYnlwUkRkYzd4VXpaRWlKaEIrMnltdlVrYUxJTE01WnZyTUtEeDJWdStVN0lKYTB5WWdZYWdwaitTSUVxaGdFck1Va3E1UllPUjAvWkVUN0ltQ1FBYmN4b0ZFbTJUMU9BSjhsbStOQUxtUldlSi9BV1RKTHZHL2pFdEQvRER1WEpTQkY4ZU1YSGNDMWJrMHZuTnVtY0RCQUhDbnRXcUF4d3hYYlQ0bnpNUkJJeHV6S2dheW5CUzFacWFCN0dqbCszaGdIamMxZ280d0xJYWRPaTlNallIaWFXNE11cTBBdWt1TXJsMEVpNC9LK1daeDF3eGRoSXF4anlJZFdUTzVsWUpPU1VHMGRFMkdWb3ZRYWhGYUxlcktSSUR3WmVvS1hSbkdtUEZCQ1J3ZkJ0YUtyZnllRXlNeENjVU9vWWdtV2dURnhySW9Hb1FpcVpnVXhxWk5PR29aT0RZYlBBelE0WEdBRGtlU0sxNkxhMTdMU0FPVHRrVEFaRVpuT2FXYzROTVZIZVgzTXIyNGtGWVdzNTdsYW9tZEdRYnE2Y3I1RHdjWTdNTStrT1BvU0VOalQ3NTY5ckV6djBmK2k0ZXJJaldGTzcwMGlyQUI0U3ExWXJncUhhWG5VcFQ2R05panVmejdpSk4yU3poTk1DdmhqM3VMazc1eW5MWUNuQzV3VmNQdEJZYXplS3pqR0JXZE5ENGtOQWlhQmtIVElHZ2FCRTJqSURSUHBTckVaMlBLcTArYzZ4dTNQL3VTUlVaTlFxaEpDRFdYb3V3RG5nbVE3YjF1Nmd3RFI0bU4yQWhUazJCcUVrdzJ3V1FUVExiVTloOWd6dXcxNW1JeXJwRW8weVV6djNaNFh1RHZPTzlld0JRcll6cW96WG1SeVlhRzFNa3YzZVhraGdNM1owMkN5aVRqbitZYTBnTWoyZGdkOExWTDRWTjJSZXpBYXNTd0pYaEFLTTFHekpBbHZ5bGh5RW83SStwaTBZaTR2VmJzaWtQbDk4aHdtVmU2b29ueE4wZldJeUZxblVwYm9ZOWVJWmkwTmoyTDJ2VmhKQWtzVll3a21mTVNlRDZNbWZtZlZqdm5YbkFpU3hnYWI2R2JCbUFCamxHd3Z1TmduY0NVUWZBTVdOODl2K1NyeGZLc0s3dHFjZ0o0TTNrdzZZSnI2YnRDZnFnTkZUcmhXS29Gd2htd0ZTMHNEcFpta3UrRG5zNHVPbXlvZkswV2VUNEdsQmhPek1Yd1JRVERDMHdHaStaL0oza3VHMUhITEF3cFJMSXlwbVljbTBEVk9LaU9Kc1RYWmp4R1JBTjNqb2ZKVkpkZ05UbXVKZ0hybUFTc3c0RjFUTkZmaHk5ai8wdXNnMU5WOE1VUE1JM0czQ2VGWkZJS2NWckpjSjFNRkg2UTdsYmcxMmVGNEJkQ2RBSDZtZk91S2JFU2c5dDlCbUhQRENURUhrc2RTMFNhVUpRaWpZTTRBSXlLUGliRkx3cnZkZ0F2clcvK2hLdk1DdGcvL3FTMm4yeWgydk1DK0JheGY1b0NZOFNaRmZqV3drUzVkSEJiUmpsd2ZlQlVONGlSSUlCYVBsUDhLSThoODNTTVl2emJyc2kvaFlZcEh0cHpiU0ZIZ01OcFRHUDBhOGpvMTRkVDVJa205K09hM0pGalpUenBncUpRWXdMVUduTnE1cjhCYU5XVlVyTHY0WXo0SXNpa3VzSWltUkhiL3EvOHVhVDRQSG5sNkhPVzcxZkNCb2dycWxrMWNKQkU1ajlreU9DRHNqL2hNcCtmK2JJbUd4OXRsRFBKc1ZyTVZtczNyUkF6ZjVnUEg3VlBYVGU2cDh5ZFFiY2wxY1MweXdjV1NoaVl4WWVZUWtCaFB3WCtTNDR0WUhsQ2pVVmxNVWo5NFhvL1NEekFWVWZyU1I5MmlwdnBwYkxOQk91VDA1OU5RTm9FcEprdzFMbnBHYzAyaXdFYUJmQUpCL0FOUGE2RVQwMUdYOWp4ZmVCa0Y0bmVDSGw3Z1Y5ZExJQURVNHdsdFRHd2VkQmtXbXBhVW9wa01HY2VUclJock1ML01qNkpETnNOR2swRUpTMk9jYkZKSTgyVTZTa0ZnRmFJc0Q5bnBQdnp2czNpQU10OVNsMDJaNFE5TzYzdmw0T3hqRlB1Y3V2UmpWdVBybDBBeENMdTVySUJJTG1LYWpJRXlTdVBla0hCWkp1WUllbno1WmhiMkJmS1I0RXY2UmxEc05RSUhKeHpHWVpxMHlBTVczRU03UklRdHFSNktEVnFhT3EzaWxYamEyR2NNRFd1aGxqcVdGTHZiZkh1V3h3MFgrRm9raVRiWGRGbG5WWklrNVNQTG8zaTFqWHliUktycVpFL2FSNzRLc0trT1JBczRrVmZkUHBDOXJVNTUvWTFmQm41R0ZxKzZ6ZjJPWktDSHNVdzlmTUNCL2lZY1FtaVV5UG1YUHZhVjhhN3poeXZFVU5aTW9MYy8rT1k2akpNSFZQdXNIUjRkSzNEa3pvNkxZb1VvVnZpejVGM1F6ZkZuek1Yb3VQcElJYmVORDFWSHA4QmxxbWV6YXEyVDRrUmhYeStTT3l0UkJZVzh3K2w2Z25iQjN6N2dMWUhVT0pvM2VhRGRaczAxSWNVRmZTQVhNTnluZjB0NHBrOXVzUkg2RUo1ZzJWc1NhNlpVK2xrcU9CSlMwZVh0TUJFV29aTVBBT1RxeUo2ekNsclFlRFIwcCtVOFBXQ3ZsbitnSU9vSy8wSzZXM3RJdXRvaXJnMGV0ekVpUVBJVkVVU2lpZ1dOdE5NU1N6NGdNYm9Namh0aHpneFA5Qi80RmttWXRJQnB0alNJeDh5TlYvbkhPa0FvODVsWktqZUttU1BBd3ZtUFQwdEFwODRJYWJlaTdDMXFzNDVxTVZuQVFOZlJXK1ZUd3IwRGNFOHIrL0FONTBQa3FaekhuUXZnakgzQTY3NktEdk5JSjhoWEY3MU1KODhNczlnUzYxcFgvbUtSR0xGa1ZpcWZMNUZNdzRtQzVJR1RORU9URStoL0ZEazZTQXI2TURONGdGWUFjTk8vcURocDZjSzV2U0t1cSt2Z3lONjhBYk91SzVaQnhPWmxMcFVDVHRtZkxMTGxZNGE4dmxESWNIWGtWT2d6QjRVd3pqaE5CZTNZcUp4YkZKWGRvUHRKZzNMclhMYStpVHduQy9RbFhtUGJ5aTl5bzJZcWF0TGlNc2FwMDNwRWptSWcwUVExOHJNd0tScExkazNWdElKekVQd2FRVEJmMkVRWndjakZhVXh4TUJnaWNXdUFZNUd2aXRkZVg0QWZPVUNneEFHSVp5MkpDRWRrM3h3Zy8vRm4zNFpjV01TYnBFbVpDUFdwVGh6bUNlRm43Z1U2Q2xXRG1hL1h2RzNkUHBQVWdzSXBqeWQwRktxb29vdFpaTzRZZ3ZXRkliYWtseFN5Z0xWZVl4STU2RjFWaUtYY1BGRXg3Y1JGMDRzbUluU2lreVZtZkdaTXJEM3ZjR3dmN1BZdUVkQkRhSmVIRFdJUC9ZQlBEYWhTZEdhMDlTYWFrM1NxRW1zMkE5YTlJSzF4d25tSTJaY0c2OGpVejVYQVJjN1BPZmpBMzh1enB0ZzltS3cvNW9CRDQ4dGdwTWZzdS83OE93aDlyMFhlWUJacEVyMXEvanpWNkR1TGRRMWxqK1BXdkVVZmhYN2pkQjVNZEU5NHFMcjRkTUVISHlzZUZKOGtWZFVDdUtMMWxRVG4wN2kwMnZ4VlJEZlV5NitNWC8rSHIzTExpN0VwNEdvWlB1Y0Z0aW5tbUJ0RXF4ZEM3YUNZTGVEZmdrVEJHRGdSSjBkTnpKNTROZWRadFJWRTZCQkFqUnFBUzdSTS8yM1NGeWc3Y1JoRTNxbWZKL1RBdnNzUmJtcVdrdTJnbVJEODh2R0ZKdHdMYUxMWndIODdhY3AyNnRKclVsU2E5WkNXMEpvSXpRM25jZ1RwMXdlQi9HM242WnNyeWEwTmdtdFhRdHRDYUVONkcwNkFTeStjTUx0cHluYnF3bk5KS0dadGRBcUNPMEpGOW9lZnhiTkgwaDZVZnZsQ1JlVGJJL1QzRDJxaWJSREl1M1VJcTBnMG9kY3BGMmNpNzBLWm1qZDRJRVFsMEVmRkxkV0U1ZEQ0bkpxY1ZVUTExYmdGRUxQb1dYV29qOGYxb2orZkZoVFRYUXpFdDJzRnQwU0k5NGJoUjdpTFk1NDRmYlRsTzNWaERZbm9jMXJvUzNocTQvQ3ViUEFLZGdPN01obzNXbEdYVFVCdWlSQU45YXd4NEUyd1JQRyt5aVI5emkxNTgvaCs5b2oxcC9tMUZkcnBNcWp4MUQyMVFpd2c3NFcrNlhIZmhteFh4TVN3RDRHeGF0bzYxT3VyVkF6QlpNQ0p6KzdPQmtmMWRlV1hFbDBFNVFwVXZWU004TmFyV08zNDdWR002eWR0c1JqVzFtSHRqTU9WY1VXaWQzay9qVi9kYjJ6WnJFMTR2U000elRHWlRQN21PMEkreVo3a0M1cklMVWpyaWtSUllGL3FhMlhBYm11aTJ3SXlqQzNlb0c1VmRmS0NWK3IrVnUrUm1xZGh0M3NwR2hTMitFTnpOZklZdWZaa0o0YjlOZXdEK2ZoNUhlcjdNYmw0MVRzUEhlTTAvTUl3N0dleW52d1c4emRvNVRIbkw3YjZEQW0xMUs2VmJMUFJjbExxbkxydXNnZDQveEN3RG1DY0I1THZnemJNbTFvdHAwR3c4eGwxZkhLam5oa0p0b3J2dENHYVBZZVpxSmlqZ3FtVlFhams1ZGoxMmtOM1JFSGpOQXdVcWVkdGpwTk00elV1ZUd5WDdIYXdEQnEyWE9ub2FZWlJza1RxMktMUkNuZXYrYmZzVzQ4NHJyaHYwMlEzdjc5TVU4alpDYUVGcTBVYldFamJMZG1aeGpLb3ZIUmVHbUdwMDIxVFB6bUZGS0h6VzM3SGV2Q050ZUZ5Q09wV1YydUpyUmFrT0VwNzF4bXcwekNHZlNRVmt1MEN5SjR3b0Z0TjYxejBZWFRUQy8yZjJGbDJPRG0zN0UrYkVWaUFYOGdQMXhHdE1HUU5hclRObHFxTUZ6cXdaMU5aNllqY0trWjFMWWNiYTdLSVptN3M2a3pTMHIwYnBxd0lWS3g4SlVZTjRKVXBFcmUwVHZNYmt4VGNrT0RUNXFTVDV0VGZhcW1LSG1ybGV3OW9aTFA1dkNSWWdFZHl5eEsyQnZkL0EzaGJQSldrdlp6aWorVzNpenVYNGlDV2VJOEs0d3I3dzM2TjR2SVc1Q2ZvTTN5VGpuRUhHeXdiWU0zd2dmemNQTmdPWkd0WENmZWRiek4rdEY3OUQxT2xLbnlQMlFENWJ4cmVNdGZCTWQ4YWxpZ2RLMjg1MGY4bS9ETzRlM0lHK3JGZlpOdktONWliZm1BWER0WEpzb1hLRlBPK3doYmJlT2EwRDlEcmVCN1AxVCtpNzhySFQvQ2tYbnZkbTVqYlF2ZjR3enZiSWJYZkRwc2l4YTgyeGtlcDJPeWJXMTh0ek44bXJobm0vMVZXUTM4OGdRY3dvYzk3bUtNSm55ajg5L3dmZXBOb1pVSHlHNFVyNURkbnh0K2hDTzd1TXJwR2pQQ0xNeld2RTdGY1NzaW4yekVuMFQyOUxQTkxzbE9DdVRaRnU3aVNmQU9iM2dLQks1N1JsMWozbGZxVlVLYyt2eEpXVGFtMkVUUkVtWDZMS0kzUjVpWGVzMmZJSDJPbzROL0xWVzRWaUNKNFBWN243Q05WOEVSZXV5SXgvaVl6aXZsOTlUOXhYYlJpck5ZdjVSS0U5NGpMdFBXcC9nNGd6OTUvQlI2OGl4eC9GWmMyNWt1dVJYZUsvNHQ5M3ptQWtZSHFJUFpWNC9vb3ZUcTlGNDBoaE5qSVJ2N1V0NDlpRGk4Q0JpSE5Qb3lWVDlFR2F6bnJlZVBJb3k3RStGY0wvYU8rbngyM3VMcy9DdHEvYS9zR3IvZFc0YldhNGF1R2JwbTZKcWh2eXFHM2s0eXRLTGRXNDQyYW82dU9icm02SnFqdnlxTzltTWNZMXlPY1g4dGFKRzlhbmF1MmJsbTU1cWQ3emM3K3pHT01VTWVyZ2Z5dUs4TTNhb1p1bWJvbXFGcmh2NnFHUG9IenRBV083Zi96REhhSDJmWEZYcmo1SDNsYkszbTdKcXphODZ1T2Z1cjRtemZxbzV3OXIxbGFMVm02SnFoYTRhdUdmb2VNclJFQytyTXU1cWRsMkpua2N0cWRxN1p1V1pubjUxRHlTN0R6blhtWGMzUU5VUFhERjB6OUtZeWRKMTVWM04wemRFMVI5Y2N2YmtjWFdmZTFleGNzM1BOempVN2J5STcxNWwzTlVQWERGMHpkTTNRbThyUWRlWmR6ZGsxWjllY1hYUDIvZUhzT3ZPdVp1aWFvV3VHcmhuNmJobTZ6L1lDN1l4d1Z2QjBmR0xvOEYwTjcySjdpV3lkelhzaWluYkNyczNqUHB2MTRZNWlzTStNWVdhdWhQdVcwYituc2Z0TmszaGI0TnJvTWRrNWd2Rjk2Wm1NSVY5a3pZUW1XVnhuOTkrOEZkM3o5V2tucGl0bGRjK2ZFZUZjdHFTdXRSSnhyNjlSMThCbTBkYWtiZVk5MXJhblhOdWlYQzlhbzk5emZZT1lBYk1vTnlyUFdJd0ExRm5HbTJTSjZvSk5VbHVpK1phb0pyU3J0a1NyV2FLcTBJNU5zMFFmaDN6S0dEcHloMHN3OUpoZDRSeVp0bWJvbXFHTE1MUldNM1ROMEhXc1FNclFUMEkrVldhWkhQMHN4bFE3MkZwNis5T0hpTisySFZ2MTU5ZUpUSjNGdXFKZm04ZHlHcjVmMUdSOWxuay9UR3JBYUJyN05BS1dnMjJ3RDdUZGw0cUp2T2lpZndkYzU1WG1pSmJBRWZsOXlxallwOUowYVpuK3NHbDZLTmViS2hyNE9IYW1WY2FyeEpFdFR6T2JmRlIxY1R5RlViZk5QZ2JidjdwbTF2R3FkVmlvTW0ycG9udlBzTzkvUUU2TG5VMTVDUitKQnVicDBGVHBNQzF3MkYrd3hlWm93eGs0eXZvNkJMRXAwQ0FYT1k4MEZmWUdGZ1RObTdIOTR6cjBuK3hLWFlhVmkwZ1NBNzFqbUYwaUM0R2w4U2Y3ZlIzZ0ROcjF2d0ZpRC9ES08vQTNkdGJ2bFZuQnFOUjZKSm1IZmJRRkR4UmIwTGh2R0VwTllSOG54MEpBUG81cHlXT215VFBtZVh4R0hIWWluT0svSlc4WE9mK0MxUTBEenIrcW9CZkFEUWFyZDlGK1Y1RmJWSWFwa2JEdFRhNFhObklRc00rTS9RUHJxbk1yZXZHVTdYY0JUSUQyMGpzKzZyeGp2MzlUcGlsTThrdzQ1ajIzcGVOSC9ZM2RUMU9RMmphckI2MzR5UDYrUTA3OG5EcHJ1QlhiRis1eWxyTG5vOWlldnluKyt5NkxuVGQ2bi9FOW42ZmVaN3psc2p0OWtYcXMyRDdaMGVLVmZha2s3KzEyWnF6ay9TSnVrODNRbnJvVzlDR1VtdXcrbjBtUEtvSlFsZzdtWFZPT3JhaU5vb2VVMWsvbUdWNm1ISlBzUHZJNGNsU1IzdmhFc24vZXZTU1B5Tk1zZWF2UzcvMnA5TjVUK2swcGx2NkpzZUJsNEwxeksxNzV1K2dKVkI3VGRjYkN3TDVUdFBiSUd1eXdscW94dXhEcTRRNGJPTzREZDNjd1lqRERzVjJNeTZ5SHU1L2hHQmk5NTNmWWIwRlBQd1cra0NpWkY2emxTZnlLSExrZWRpa256M0s2c2gxNWw5NE9iL2NIaWI4YnhoMEFnMWxHUERCLzVBY05NTkM2Y2RETHRURmkxeEc4Q3RBb094YlZ3NWdHem1mT1YraFZQR1NTK1FPaklTQ25MeG5SclFlcDhUK1pkN3N1UDFNbXIzSXkzMkpiZ0tkdlVKTld3d0x6Z0FYMGpXT0J4eUYzNDlrdWxIUHNOMWZlL29pQnRqK2EzQ3pPaGoxNEcrTmJLcnh3bTlaczBsYjQ0Z202enRsNnBXZmRwckZzNWVlRStOZ3F6N2tlL1picFpqbnRmcUVjb0V6K3pud29pTGgveGl1RHpnQmJya2JiWjRHMmF4dW83ZTl4bnVoZDZQOEp4OGxua3JiWmNhVExSVWJJS3dtMlJZNThqaDd1cG95c1JYU2xuUFo5RjEyMVVja3YxbkIwVkxudS9JeXh0NW5Ta3ZqRmZyVGtidnppOVVna2psL1pjUzNpZTFYdTZmSEloQlpFSnBwMVpLS09UTnk3eUlTc1Q5UlJpVG9xc2Zxb3hBT21wYkJ1Y1I3dzhYUHVvZnByR0hkNGhHeVhuZTBQaUc5WFlHY1lGWFgyRnl3cUc5blpZYVdCc3doUmRtN2lMRlN4bkpEN05EN21ZNW9ubFcxczBTYytXMDVaSVZVaStDN20zVFJRSGk2aTd1SzhUVGc3MkVCSmdMZCt0K1BrdWp4eEdZNXg5TDhOWmhFSisvQjNGYnhWVnVjaWp4bkJqSW52ZVcrU1hiSWV2RVBzc2pIZThuK3psaDNoMlpPWmRtWFIxdjV5YU10UXpNYjl1YkxQenZBWlBicHpuSi9jQ2M0aHQ4WC9IYTI1NkJIK1NIT0pvNVNOTTdLZmd3eVVIeGk2TDVGeDBqOWwxMG5FcmYxR1lPM3JmeEU1NTBzdFcrcFBFVlhmWTg2WCtNZkkzbEZwcDgrOWw0MHZONWxFVEJ6clcrejhMUnlYWE81Qkc5aUhYWXc1cTVpWDBNVDhCTWd5QlN2S3hEMXNSWXd2cjBlaUwxTFJTTTd1ZDI3Rlc4aVdacDRtakhtUGhlaFNuaVlVNlpuQXdEcG0waEFEYTNoK0UrVUlzMDFObENQMFB4Y2xPVU5ieE1DKzZtTGZkRzVGamo4RVhBVjNIcGVqR05mNmhyVXdMc2tmVTQvK0p5dHQ1VU5zWHVJYllLRmIwWVFzYVdacndtUGxWd1ZXeEg5Y2dSWjArQW8yNkwrdElNYXE0VGdNcTl1bTJKdWh2N2R3VG1tS1BkbkZXU1lObzdKZytkK0dGanhuKzlCZGw5V0FGOUlqNzFMNjZSS01TLzRoejFPNnhJenZUOEhheC9qVzhsSjNjS3dGYndLeVk4bTNvQ3ovcEcvUi9ncEhaUkhCSXFnL2ptOWR5dnBWTVJ2UFJUK2ZvdEFkN0lYdGhGWGtaMzUrWGZpblkxbEVFcy9ZR1QvaENndXEyUWt5cStVcytCUHlRN2ovTzR4dlh1RjY5ZXVDNnpYS2VqVEdCbnMwUDJiZ3NRcXZJT3Y4TXI1dTNncm41bW1OR05jNXhwbGNtTVh6Ky84dWpubzdZVTNsVVhlT1VvZk1ieGhoSFl5eU5kRFcraGxycGp4SFEyZllxR2h2MDRvRkdHdm5PR0tEVFhZN282Nk5kLzJPWWVmZmRURXAvaWc5OGpNdnhkelp0Rm5UZGZGUG1pempXdkNkMHNOV2ZtYjdYZ1V6a05GdFZTSWZMdnBCeE9zT3Q3TTZrY3hjeXRodU1GbmZiY2IydW1ZZ28vakZaNStnTjM2UmFBZmtBWFZRNXlFRzJoR1kyUW5PbDM1a0IzMFh2WUI4WCtES0I3cURTeHlkZ05GM2xwVDZERzNxTnRwWUhaUjZDMzJwVGt6cVUvU1ZPekdwd3o4WDk3MGRyM2xkbVFENXFONnRMdnlBY2VZdnZGVzBmdU1MKzI1d2FVRG04UjdYa2VqNkw3RGdhYzFmZFUvY3hHakpISHM0V2VNbVJsZWkxbmdMNTF4MGpLREFYL3B0b0Q3ZGI5M0lRck82akxad2ZMK2tETVU3azgwTXQ5MWYyY2hRckM2VFowTDhhNEt0Z1BiZW5YeWE5M28welVNMExxc2ZjUjd6blB0Y0ZtdlBPZjhHYThodG5POE1wZlY5T08rMlp2bTBtVlRhR0lkc1l6d1Mvclp3ckd5aWRYUi81WlBFTUM2UlI0ajlITE9qd2Y3MU00NzlsUVlqOUV1dmtSUGgyeDhvb1hOa3k1M1l0YXRZSmVDZHp0Rk9kM0hlSHVJUWN6ekNsNDZOdG1nYiswcUQ1OFJwM0hMdHNCcUlHbGJKRlUrejk3OUZPOEdKK0JYaURNVzYxZ0NVUVZxTVV0RFRTZUpyUGYzbmx4NWpHOEFEVHViOXIvcUpKR0pHV2YxdVdzTGgvajJUSkw0YXVzcnpCb284azBSOFRzZ21QWk1FWXZIbG5xQ1FYRWxjUDVma2EzMHV5YmNwejRDUWM3SC90TWdEWk5TTHRmT3dVZlB3WDVpSHhUelV2eG9QaTNaSXpjSjN3Y0xtYmJPd045cWQzQ3k2dmVINXduVmRBejdlZ0g0MThEK3ZPd3A0K251Yzk0Qm5SOXNvQXllWVpaa0dUSDJKRWZvaCtxaHpiOXcvbVM3WU9YYVB6N0d3emhmNjNQUzYvY1B6aGVwMWo0N09GM05Xc00yMjE3WDJjQ2RyZ0hYV0FmN3FEcWw0aFVYdm1KOWdiNEMveHhQY2Q5REZYNE14RnNlMDBScXhmUjJ2TzZIS0NaMTlZdEZGanVoOFZCenVRaXVQb1ZVTnIzK2lRblA2SnhxY3BuK2lZekZnR3pWV2FGVG9VSGlES0RZdVloTThyeVR3S055RVIzR2FXc1B4R2xDYkIzU1hBMmlzeG43aGZRM0dmZHhsUEthNkF5ck9vUEFtWjkyYkJWMzRBUk16aFJVK2VVZldxNXZGbXhIYngyeDRCN3ljV0wreTh6RUpUdzdaWFV3TysrZUx0anN6WEh6K3llUnNzSm9UZVh0bm81dkY0R2dDdDlBYmpxRVlEZkZPUnJ0c2QvWURkV01FVlhDUzBZVC9aa2lvM3U1b1NJVUZONzI3MjhOZnUzMHNyQW1vejJqWWh3UDI0YVFONzVmUlA4NFhUU2d0K25sQ3hRaU8zeDhjUXZHTEJmdllyTnlqbnhNNDNTOVdGNEVkamhEUlkyamN2aldFYlVQckZJbytGVU1MSmRDemp1Q3d2WjRGTjNQODFvSmZRd3QvSFV4UXNRNG1GQzdvNHhBQ25mQlBMREZSM1RzYjRMNW5SOWoreVJoUHg0NkU0cXkvaXljZm5MRVRLTjd4a1hHellIL09GeTBQQzVjS2xZcUdVTEJ5QVBzejlXbDZXTEFCNU5ocTBMa3NsWmNhTDNVczk0NTdzTjlrRjN2Y1pQUUdpak80RWRYcmRVOXhuMTRYdGE3WDNjV3QvVjM4MVQrNldRd0hFM2ZSZU5uMEppY2orakkrNUZ1NkoveUwxenREaUwyalk5YThvK00rbnRNYjdSOWZ3YlRPU0xGeHlOMWh3OTNoRVFwc2REaWtBbmI5YjBiUU5vWUVHeGh3Z2pCSEU0MmVCazdJelRFSUJhRVBNUDQwckhYWWRoZU5IUXFHUU9nUXBNUmE3QTNmTWhFUGQ5OHkvbnUxRDVjNUhaTzArWktBcmtJUHlJZmxKRFJ4T3ZPR1EwVG5pUFRpcUlkRi94QmwzeHNDRyt6QlNYdXZZUHZla0YzbThHZy8ySEIyTXNBbHhWVEVGeGhqcjVwU3A1cFNuekxqWFdxcTJtRFpUSFpaMitHLzE0Y014ZGQwYmM5THZaR0hqSTF0alBWZUlyU1NXMUN6YnlIL1dpcS8xaFlib2Vac05OZ0pyeG03bmxvSXNzVDF2UDArcy8zMyt3ZlFKZnV2WVk4VEN5bnl4RUlWOVA0UG41dUJOVm8vYlQ0QUFBQytiV3RDVTNpY1hVN0xEb0l3RU96TjMvQVRBSVBnRWNyRGhxMGFxQkc4Z2JFSlYwMmFtTTMrdXkwZ0IrY3lrNW1kemNncU5WalVmRVNmV3VBYVBlcG11b2xNWXhEdTZTaVVSajhLcU00YmpZNmI2MmdQMHRLMjlBS0NEZ3hDMGhsTXEzS3c4YlVHUjNDU2IyUWJCcXhuSC9aa0w3WmxQc2xtQ2puWUVzOWRrMWZPeUVFYUZMSmNqZlpjVEp0bStsdDRhZTFzejZPakUvMkRWSE1mTWZaSUNmdFJpV3pFU0IrQzJLZEZoOUhRLzNRZjdQYXJEdU9RS0ZPSlFWcndCYWVtWDFrZzdRUllBQUFLdFcxclFsVDZ6c3IrQUg5WHVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZUp6dG5ZMlIyemdNUmxOSUdra2hLU1NOcEpBVWtrWlNTRzZRbTNmejdndEl5Vm12SGR0NE01N1Y2b2VrQ0JLaUFKRDYrWE1ZaG1FWWhtRVlobUVZaG1GNFNiNS8vLzdiNzhlUEgvOGR1eWRWam51WDRkbjU4T0hEYjcrdlg3LytxdmZhdm1mOVZ6bXFETVA3Z2J6UDR2YndsdjY1dTdhTzFXOG5mNjVIVncxN1BuNzgyTmJWU3Y3dS8yeC8rdlRwMTk5djM3NzkvUExseTMvNm92WVh0YS95S1Nvdnp1VVk1NUZPL1Z5dTJzK3gybS81azNhZFcybGFYOVd4WWM5S3pwMytMenI1Zi83OCtkYzI5VS8vTGJtVURKQTVNbUkvNTFUK3lCU1oxLzVzRi9ScnppVS90eFBhQXVVYjl1emtYekx5K0svbzVNOHg1RUovdFF5UmM3VVY5MW5reHpYZ1ByNDZoajRBeW1NOU1lelp5ZitzL2svNWQrOE02SG5rWG4rckxTRFgycllzL2N4WXlkOTZBT2o3bFo1MXc5QnpUZmtqMTVKVlhlcytTRi8zbU1CNStGbVN4M2E2SWR1SjlZemxYMjNFYVF6L1VuWGkvbk8wSDEzTldKeHRINmRmWi9zcFdWbmVLUS82YmVaZDEza3NsN0tzYmRvZ2VvWXh5ZXFhWVJpR1lSaUdZWGhGR01mZmswZXcxNmYvODI4djcxbnkzZm9lWE9wcnVqYjFybmlFeStqdGFnZlA1bWRJbmZDVzlyNjdsdmZ6bmZ6UDJQR1BmSVo1bnZkMXZzUXV2Wlg4LzRiKzh4WmMvdlN6WWMvRHBvNU5KdjEzNmR2REYrUnI2U09kejVENkpEL09YZmtEVGVkdnBJeGNqLzNJdml6YkwrM2YycVdYOHJjZjRsSGJRTXJmZmpZZmN6OHBmWW5PTExrZ0cyeSs3T2VjOUF2WVoxZ2dJK3gyQmVkUjU3UVBrL1pudHgzYURQZENucGtXOHU3czJabGV5dDkxOUtqamdhNy9BM1ZvdmVDK2JUK09mWHRkak5BdWZzaDkwSFpmOS85S08rdDQ1Mi9NWjByMjYvUlpYWkxlcyt0L1FMYnBBeTdzcXltWjRXOXhmME9XL0wrVFAzM2ZQa0RIKzFpZndNN2ZtUEluTGZ3QTVOUEoveWk5VjVFL3ovYjZtN0t4dkl2MHhkc1g1L3JlNlFiMGlkc0p1c1c2R0hiK3hwUy96K3ZrVDV6S21mUlMvcHpYK2NQK2R1eGJTejliUVgybFB5MzlkL2J0NWJYVWJkSFZrZjE5UEVmSVkrVkxoSlcvTVgySXZLZDE1ZkY0NWt4NjNxWWVIbFgrd3pBTXd6QU13MUJqVyt5Yi9Edyt2MmRjUGZhQUdXTy9IN1o5OGJOTnZvc0x2UlYvdy96RFoyZG4wK3I4NE5ZSjZBN0hoT2Zjd1BRdFFsN3I4MnRmWnovTThxQ3ZSaitjbzdPcklQK1YzZGQyTUh4ODJJN1FHOWgvUGNlblNMOVF4dTdiWitkejdMZmpMOGRvSDlpUjhVa054M1Q5M0g0WDEzdVI4dWY2Ymw2bmZZRzI3MXJtK0ErNmVVU2U2NWZ6eit5Mzh6WG9pT24vNTFqSmY2WC9WM2J3OUtXblR4MGJLZTBpKzdGak1NNGN5M1paNEpQWXhRc00vK2RhOHU5OGZ1QzVYeVV2endVc3p2Ui9jRnlBeThtNWVjNnc1MXJ5TDlESjZUc3ZlSVlYMXVIT2MvWDhYK2tHdHprLy94MnJVTXpjcnpYZHUxenRXNzNqZVh6ZTJRSVl3K2YxeEkwNG5kVFAzZmlmWndEays3L0x5ckZNZStRL0RNTXdETU13RE9jWVgrQnJNNzdBNTRZK3RKTGorQUtmRzl2Y3hoZjRldVFhcThuNEFsK0RuZnpIRi9qOFhGUCs0d3Q4UEs0cC8ySjhnWS9GeXVjM3ZzQmhHSVpoR0laaGVHNHV0WlYwNjRZY1lYOFNQMnpFOTE1RDQ1WGZFWFpycmF6WXZTT3U0UDNjZm1YN2tPNHAvN1F6UEROZTF3ZmJHN2E1d212d3JHUnMrV04vd1NhM2Frc3JtNXpsYjM4aVpmTDZQQzdqeXA1Z204SHFYaWd6ZXN6eXovYm9kUXFmd2FaczJ5czJ1L3JmZHJUdW16eVpodGNRdzYrSERiNXJOMTMvTDJ6VFl4dGJZUDFQMnZiNTBHNTl2ZGZuOHBxRXErOExrVWZLMyt1T3NRYWExOFI2ZEpBUnVGNTIzK1F5S1g4L08xZHR4bkwxTlozOEhXL2tZL1lmczUvK1NYcnNQL3ErbUkrUlQrNzNlbmozakh1NUp0akhJZnVGWmJsNkx2NnAvTHY5bmZ6VEY5VEZJdEd2MGUya2YvUU51ZDB4L0JUVzgrVEI4VWRuMS8vdGV5dlNqd08za24vWEhtejdkendCL1QxOVI5Mjk3TnBHeHFpUVh2b3BIL1dkZ2Jic2Vra2RjT1JIdjVYOEM2L2pTK3dBck5hY3pudk5lOW5KMzJYSTd3djdta2VWZjVFeE11bkgyNjJ2ejNHdnA1bHBkVzFtRjVlVFByOHV2OVgrM1gyc3JzM3I4cHl1ZnA1aDdEOE13ekFNd3pBTXNKcGJkYlMvbXl2d04vaFRkbkdzdysvczV0YXQ5bm5PaGVjS0hiMC8zb0tSZjQ5OUdMYWg1WndhV1BubmQrM0Z0cEhhZHN3LzMrV3czNm53OTBUdy80R1ArVnJiay9BdGNTK1dQOSt6OFQyLzZqd1J5OHgrdG95Ymh5UDkzOW5tcmYvWjVycyt0dFBaUm12L2pOc2ljZjc0ZXJBQmNxMi9VZWh2Q1RuR3hIS21MUGlJN3EybmJzMVpXenNjN2FkdjVqb0JLWDlBRDdndFlOZW5MZGczaS93b2U4NGJzZCt2bTFQUzdhZmQrcnRBcjhLMTVkLzFuMHZrN3prZjZPNzgxcUMveWJpVGZ6NFBPcDl1d1RQcEZlY0tYMXYvWHlwLzYyMTBzR050N01ORFB1UnhwUDlUL3JTTlRKUDRFTWNJUExJLzV4SThicUtQMGE5dUlmL0NQajMzNTkwODhydzJ4Mzg3K2VQSHEvUnovUGZvL3R4aEdJWmhHSVpoR0laNzRIakxqSmxjeFgvZWl0Mzc2bkFkZU9lMlB6RFhpN3dYSS84MW50L2crSHJteDlHUG1ZTmp2MTJtczdLaGVBNWUrdXBzaC9LOG9KVVAwTWNvRTlkbStiSC9PbjRmbjZiTDA5bWpYZ0Zzb0drUHhXN25OUm81cjdPcEY1NVh4ODkrdDF3N0ZOcy9kdjV1anBmdHUvYm5ralpsekhLbDM5SDl2L05WWWxOK2R2bW4vcU5ldWZkVkRFODNUeWpwZkRzcitWUFA2VWYwL0RSOFA5aG03UiswLzlEM3Rpby94M0tPbC9kWGZzOHl6Mi9GVHY2VzJaL0tmNlgvVS80NS85ZCtaSTVocStlWTUvTHUxb2ZjeWQ5dEZFaUxOdmJzYmNCWS8xdi8zVXIraGYyUWZzNXpMdU1TMmdONW5OSC9rRzJETk5tMlQ5enQ3eFY4UWg3L3JXVDhudkwzK0MvbitOa0htUDdCWWpYKzI4bS95SG4rM2ZqdlZlUS9ETU13RE1Nd0RNTXdETU13RE1Nd0RNTXdETU13dkM3RVVCYVhmZzhFSC80cTFzNHhRRWRjNHArLzVOeEx5dkRlRU45eVMxai9tTFZ6TW4vaXNTamZwZkxudW81SzYreTNGcm80bEk2TUp6N2lrbGhBNHBhOERzNVJyUHRSL1JwaW8rRGFjZlNPbmZKM2VJa0w3R0wzS1pPLzYrNjRYOHBMZkpXUGtYYk9GeURlM0RIbmp0Vk52RFlRYXdobG4yVXRNc2ViNy9vMStaODVsL01kUDB0ZWprVzZwSDZKT2ZMUHNWSHZzYTVacnRkR3VUaVc2MzhSRDA0LzVYNDdPajFLUEpmdjI5LytvUzNzZEFEeHVzU1NlVTVCM2h2SDZXZTcva1AramdsYzRmdE8vZUpZeWt2cWwzTXBKK2xlUy85blhIN2k1eko5bXpidGZkU3p2N2ZoN3ltNUh0eHVYVSs3KzNMZUhWNGJ6UGV6YW9kK2hpSzM3bnNmY09hNTR2a3lPWGVBTnBRYzFTL1FMaHlmZWkxMjdUcjdLLzNILzZQenNrMTczbGVYSHYyUCswcFp1YTlhOTYzSzZyV2lZQ1czakEzdDBxUnNPWStGdkJMbmxlMmV0cGtjMWEvUEkwL1BWWG9yNk1GVi96ODc3djBUK1hPTzU5eGttbjRlZHZIZ1RyZWJoMFNkNXpjcUxsbm5xeHNyZGpyVGVXVTc5UGc0eTMybWZ1bi8zWHlGdDdJcnc1SGVoVTcrT1grajROM0FmWlY3UXNhZUkzUUdyK21ZMTNqdWtPUFZyWE9QV01tL2E2K01VNndmVnUyYi9DL1Y1N3QxU2oxdjZneEgvYi93UEl2VnUwd24vNk95ODB5czhqb1A1RVJkc2piY2FxeG1uWm55WjB5WTZ3UjZuUyt2SzlpOVczdU9tZDhkdW5MdzNVUDBUYTVaMTNHbWZ1SG9XN3NjZTQ5NWk3eWpydkxOZVJvSll3WElla0cvcDk3MHUvU1IzanZUN25mdmhLdXhnTWM1bDZ3VGVzbHplbGUvbFB0SXJweno3UE5XaDJGNE0vOEFvSUw2SU9DL0phTUFBQTdYYld0Q1ZQck95djRBZjVLQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0bk8yZGpaRWNLUXlGSFlnVGNTQU94SWs0RUFmaVJCeklYdW5xUHRlN1owbEF6OC8rV0s5cWFtZTdhUkFTQ05DRG5wZVh3V0F3R0F3R2c4RmdNQmdNQm9QQjRELzgrdlhyNWVmUG4zOTg0anIzcXVmaWM2V3NBR1g0OThIL1VlbjVpdjR6ZlAvKy9lWFRwMDkvZk9JNjl6SjgrZkxsMzg4dXZuMzc5anZ2c0RkbEJQVDdSMGJVKzdTZWxaNVA5YjhDTnRIK3J2WmY5Vkg2ZHBXbWs5ZnQzL21kWFZUeXJPUUVYUnE5WHFYTHJtZnR2SHMrY0dybnEzcnI3Qi9sYTk5MXViUnZleDZhRDNrRnF2NnZlV1gxanZ1ZlAzLys5M3ZvTGRMOStQSGo5NzE0aHJxb0x3dEVPcjBlNlRORS9wNG04b2k4dVJkbHExNUlGOWYxZWVxZ2FTTXZUMGNkOUhyOGpjK3EvOGZmcjErLy9uN3VDanI3YzAxbDBmSWpUWlRQTTFtZkl6MzNNdnU3REZHZTJ3aWJ4OS9RbWFhSjc0eGJYSE05UlJxZDh6aTBmVVUrcEVjWHlLbnBWTzc0b0F2YXNzb2QxMVFmcW1jdG4vRjkxLzc2ekJXcy9IOVdadGIvNlgrZHZJSE0vdXB2cUZOV2Qrd2NlbFo5MFM3aWd5L1FQcWgrZ1R4V2NuYTZRRDdLSVQvM0ZWV2QvZm1Rejh2ZkdmL3ZNUmU0eGY3b1BQb2o5ZTdrcGY2Vi9YMGQ0c0MyMkQzK1Jsc2dmLzczZm9hczlGSGFpMEx6b1U2Wkx2QzNMaXZ0a2JsZVpYOWsxT2U5L0V4dksxdGN4UzMycHgxcnUrL2tEV1QyVjMrSDc4MzZLSDNkL1kvcU51NXgzZjBrdmlPelAzclFOcGJwUXRPcHpXa1h5Ty8yeHoveVRQemxHYzAzcmlIak0reFBYMUY5MEo4QmRmWHY2bThaM3h5YUhwbnBXL285bnFVUGRHdWx5SXY3K0UzQS81SEc3eUVuZlM4RDljYUhaTHJRY2pMNXlWL0hRL3FILysreXFQdzZsNm4wNmJvZERBYUR3V0F3R0F3Nk9QZVgzWC9OOG0vQlBiaUVLemd0OHpSOXhkdWV3bVBseEtWWXoyUnhnWHRpVmY3cTJSV2YxbkdZajhLcHpxN291T0p0N3lHcnhyYXJaeXJPcXZJZlZWeDZ0L3hiK2JSSFFlWFdQUk5lcHl0eWRmSDhlN1hyVEZibDFmeitDZWRWcFQ4cC8xWStyZEtUODRiT0tmb2VCZWQ0a0lWOG5BTlo2YXpTZ2NZVnUyY2VhWC8wNDV4Y3hYbHAzRjVqNWxYNjAvSnY0ZE1xUFJHakM4Q3p3dk1oODhyK3hPMVVGcFd6MDFtbEE3VS9jbWJ5Wi83L3loNmFFL3RYbkpkejFzcTlWaHpaYnZuVTlTcWZWdGtmN2xqNUkrVVVQZi9NUnNqYy9YK3FBOCtya24rWEsxdWhHcXZnUnZSK3hYa0ZTS3RjVEpkK3QveGIrYlRPVDlLSG80eG9EL1ExbnQyMXY0NFpudlpVQjZmMnZ4WHFiK0FhbEhldmZGTm1GNjc3M01IVG41Ui9LNS9XNlNtenQ4NDdHUmUwN014R0FlVVdzN1E3T25nTisrdll5Y2YzNGlrdmlFOVR6Z3Q1c3V0VitwUHliK0hUTXQ3T1pRUEtLVlpsTXlkM3JwVG5rV2RIWjVtT1BlOUsvcTVlZzhGZ01CZ01Cb1BCQ3NTK2lQbWNnblVnYTVoVkxLcExFM1BiSGY3bkh0aVJOWUJ1SGxubXJpejNCdWRpV0hkN0RIOEY0aCtzdjNmV0p0MzY5Wm43R1RPdVVkZVVnZmhPclBCUlpYYlhId21QWFFlb3I4YTN1dmF2WjJOSXIvckxudWNaN21tOW5mZUtlKzZYOU14QnBqT2U2ZlJKZi9NNGhzZG9zL0ozOHNwa3pOSjExM2ZMeVBTNGcxVWNTZmZrVitkeGxJUHdPSzN1MWRmblNhTStCNTBybDZQeFFPWHNsQTl3bWZRY1VjV2Y0ZlBJUjJQK1dwZXEvSjN5WE1hcXpPcjZqcnpFRzFYR0U2enMzNTIzQkYzTTB2a3YrRHJ0LytqS3p6Tms1enZKcXpwblFqbklVcDJOeVBUdmZFZFhmcFdYN3RkM0dhc3lxK3M3OG1aNlBFSEhqNUhmaW1mczdGL3BmK2RzRWZuNnA4c1hlZEQ5anMvUy9wN0Y0clB5UGErZHM0UlZtZFgxSFhrelBaNGdHLytWVy9RMlgrMzd1ZHIvTTExVi9WL0w3dXp2SFBTcS8ydmVYZit2NW45ZC85ZXlxektyNnp2eTNtci9nSTR0UG9iaG4zUjg2ZmdybDJrMS9xdmNiditBbnVHcnpwOW51bHJOV1h3ODlURk9lY1dzZkVVMy9tdjZxc3pxK282ODk3QS85YTdXLzNvdmE1dmMxejdrUEpyUC96Mk56cEY5VHAvTjVic1lnYzZGK1o0Qkdmdys1WFhsVjNtdFpLektySzZ2MG1SNkhBd0dnOEZnTUJnTUt1amNYRDlYT01CSG81TEwxeDhmQWMvaUFsbTcreDdNMVRxQy9kTFBSQlZucS9aanZtYzhpd3ZNOWpJcnNyaUE3dG5WL2Y4bjYxZTFGYkUydlo1eGJ0aWZlNTRIY3VoMTV5SjN1RHpTVkd2MHppNlpIdlJjb0hLa2xiNXU1UnRQNFB2djFUNVY3SStZRTM1amh5TlVQNlB4SzY3cm5ubjI3M3U4VWZuQ0xJOHNYcDF4UmgwdldNWDdkamk2THRhcFp4UGgxek45N2NpNDRnSlBVUGwvN0k4TWZtNGw0MmhWQjk1SE5BNm41L2dvWC91RmMyNThWMzFVWnlaNFhtUHI5Sk1zUnUzOWhiYkgrUld3dzlHdHVBN3lxL1MxSytPS0N6ekJ5djhqSzMwdjQxVjNPRUxPVW1oZno4cnY1TkY4dXpNeklROXRsbkpjTjFVNWpHM3EzeWg3eGRHZGNKMlp2blpsM09VQ2Q5RHBXL3VzK25pdjZ3NUhxTysxelBxL2p0OWQvOSt4UDJjNzlTem5idC9TdlFQYWIzYzR1bDJ1czlMWGxmNnZ6OTlpZi9mL3lPN2pQL3JIVDFicHZEMzV1RnJaWC9QT3h2OGQrNk1qdjNabC9EL2g2SGE1ems1ZlY4Yi9uYk9PRmFyMXYzTGVXVXlBNjlwdk80NFErYkNmempHelo3STVjRlplbFVlMWZqNlpXMS9oNkhhNFRrKzNVL2NkR1o4Vk14Z01Cb1BCWURBWXZIL0E1K2phNzFHNGtyZStXK01lNzc3WDJNQUpkbVYvVDF3VWExNDRBTmFVajZnRGRqd0I2MXBpZXJxdnN0c0hYQUdPNFJRYVQreHdwWTZ2QldJV3ZtNGtmaGJ3ZmF5K0RzZHY2SHFWTXhqeDBaZ05iVXZqQytpcjQzWlZ4czcrWFY2N2FiUk91Zy9lNWJoWEhVSDJ1eU8wOTNpTzY1U3I2UUtSNW1yZnluVEU5ZXdjQzNFTGpiTTZCNk8vejBVOTBBMTZKZGFGMzNINUtVTmo4ZFZaQWJWRnhkSHRwSEdadEs3S2VWSkgvUzJoSzNVTUtBOUxYQS83YUt4UTB4RW5wZHdxWHRpaHNyOWVyK3l2OFhIYVBXMFNQWGw4Uy9QeStIYkZxMlg4aWR0Yy9aaHl5SXFkTkFHMW44Y2ZQWTZiOFh0WDZyajYzVEhTKy9zRW5UczkzYmZsOG5nYzJ1c1RjUHM3YjBBKytwdVV5SmpwQmxSYzFJNzlLeDVEc1pNR1BTcnZtY21yZkppL1IvQktIVSs0UThybEExZGQrWllWZUk0eExyT1o3N1dnRHpsZlJaL1FzYW5pRGIzOVZ2MXh4LzRCOVgvSzR5bDIwaWpucU9PZ3lwRjl6K3kvVzBmbEJQSDVIWGVvbkovdXg3b0NIZHYwNDNzdDRvTnY5TDBjM0ZNZFpOZVZYOHVlNzg3WGc4cisrRExsMUIwN2FWUW1uM2NxMzg1MytvZTNtWk02QnRRR3VxZkh4MmZYcmJhVFUvNVBvZU1IYzh6czNtcVAzZXE2N3lWYWpWdCtYOHV2Wk9uV3JyZWs4Yklyblp6VzhmUzV6SGRkMmY4M0dBd0dnOEZnTVBpN29Pc1lYYy9jYXg3WjdVbU1kWkMrSzJXblRGMnJFdS9PMW9MdkFXOUJYby9uc080N1BVZFNvYk0vbkFEcGR1eXZzUmJXT3p6M0Z2UjVncmNnYnhhUEpFN3VNUnZudElnOU90K2xVTzVXNHhVQm5uV2ZvenkweHlBOEpxdjh2K296UzZ0NUUwT3B1Qmd2Ri9rMGxxTWNjc2NwYVQyMS9pb3ZmTTZPWHBCZHkxRzVUdENkTVhHT1I3a0lqYVYzUHNPNWUrV1Y0UXM4UnFyMTgvT056c0ZXL3A5eXNqSzlidG5lYkcvLzJJM1lwOGQ4c1cyMmI1dTJBaWZpY1dMc3JlMmkwNHZMN25LZFlHVi83T3BsWnJIL0ZZL29OZ293QjZoc2VwS2ZjMEhlWDdLOHF4aXc3Zy9TZURleDF1eTNveXJ1VlgyTjdxMVNyaVh6R1N1OXVMOURyaE9zL0wvYlgrY0p0OXFmZmtsYy9WSDIxMzZ4YTMvOEJubXB6eU5mdC85cWJ3ZCtSSGxWNVEvQXJsNnErcDVnTmYram5uQ011Z2ZsRnZ0cnVlNkhiN1UvT3FRYzFjdXUvY2xEeHc2MXVlNTMyY2tIZjY3OG44dnJQai9UUzNiUDVUcEJ0djd6ZlVVNnQ4ak9YNnR1SEN0NzBmNTEvOE05N0svenYrcmNjcUN6bS9keHpaTyt6TE5kUGo3L3kyVFJmUmdydmZqOHorVWFmRXk4aGZYaTRQVXc5dis3TWZ6K1lEQVlETzZGYlAyM2ltV0F0L1N1K1k1bk9vV3UxN3J4dG9xZG5tQlgxL2NzTTh0UDR6K3J2WkVCWFplK0JWdzUrMUNCK05mdWZzMWJzS05yVC84SSsxZjVhZXhIWXhWK3hpbmpDQjNFTFR5ZURuZW12Qzc5anpOeHpIMlZEK09lZnlkMnFuWHdkeVJXc1pLc2JocVQwWGJoOGlpeWNySzZ3dis0cmpXTzd6S3B2WWhUTzFlNGk4ci9hNHhmejB2Uno1VHpyVGhDTHdmZHdaMW8rZWhGejlXZ0g1Y25pem5xZHo5L1N6dlNlRHJ5ZUJ2d3VnVThsdXg4UUxZUDIyT3p4TSs5cmhXSHAvbFcrdUI1NHNZVkI3dGpmL2YvUU51V2psTWVkODA0UWdjY2xmSnhyc1B1LzEzN294YzlqK2t5Qi9Sc2owTFRaVFpXZldYMjk3bUlucTJyOGxMOUtMZlk2Y1BMNGQ0SlZ2N2ZaY3IyV2xRY29ldUVOTjM3SCs5aGYyU2lyV1V5Qjk2Uy9TdHU4Vm4yeitaLytFTDFsN3FQQXA5VWNZU3VVL3gvMS84RHUvNE8zNVRwUEp2RDcvaC9yVnNtenozOGYyYi9qbHQ4aHYvM0QvWDNjN0I2N2xEbktSbEg2T1hvMmNHcWZYdGExNFhPTTZ1em1XNDN4V3IrRjNEN1YvTy96bmRtNVhUMjc3aEZ2M2ZQK2Q5Yng3M1hPNFAzaGJIL1lHdy9HQXdHZzhGZ01CZ01Cb1BCWURBWURBYUR3V0R3OStFUmU5SForL1NSd1g0VC82ejJ2YlBIMHQ5cEVXQnZUUFo1aEQ1MWI2bkQzMmxjY1luc1MvTjhmZjhJN3dEU0QvczNuc2xUZG5VNXpVZjM3ZkdwN0srL1k4SytJL2JaNlQ2M0xNOXFiL0N0OG5kNzlkV0craDRRaDlZYjNiS0hUUHNFK1QycmJWZm82dkxJTW5WZnBQYU5yUDg0MksrVzVlbWZhbStlUDd2YUc3SnJmOTdMUlByNDM5K3hvZlovYmJ5Ry9mMTNCOVErOU1NTzdDT3VvSDJwMjhzVzEvVzNSVHFzN0UvYm9VODdQUCtzLzNPZC9IbVhtKzZoMUgyYkFkcWJ2bXVKZlg3NmpPNngxWHkxVFpLRzd5YzRHVU5VRi82dW9heHZLNmhiVjU3NmdzejJqTDM0aGxXWjVLbnY3MUdaOWYxeUovYjN2ZTVjNTMrdEorZVNkSnhVV2JqUGQvU0t6SG91UlBPbFBhamNWM3pUeVg1eFBWK2h2Z0I1cXI1TnU5eng1OW5aQWMzSDk1YXY1TWVQYS80QmRLZnZZbE05TXViN2ZLWFNzYzk1dEU3YVgzMVByKzVsMS9tVTVwRzkyNC8yNFAzd2RFemduRk0ybjNGZ1EvL3R6R29jWnYyME01WWp5K25jc0xNL2V0VXhDLy9wN1VqdHIvNWQ5NXFUNTRuOTlWd2k3VmZMek41ZDVmT3N5djc4VHp1K01pZEF2dXpqUUg1MFJ4dk8vRHE2cS95cTUzdmwzWFdCeXY3cU53RnRNWXNWNkpsUlhkOVFWNTBmVnVjYk12dFRybzdsZWwzUHBYcWYwbk1mbmYyUnlkdlhNOURGWFhibkZwSHVxdHpkZUhmU252VGRPdHFYUHRwNWlzRmc4S0h4RDRna2FxTHJkNzBXQUFBRWVXMXJRbFQ2enNyK0FIK2lOZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWVKenRtb2x0NnpBUUJWMUlHa2toS1NTTnBKQVVra1pTaUQ4MitHTThiRWpac1dUNG1nY01kSkRpc2N0RElyWGZLNldVVWtvcHBaUlNTdjNYOS9mMy91dnJhMHFGMzRPeUhwZE0reExwWDFOVm45MXVOK1h6ODNQLyt2cjZjMzdMZGFjZVZkWXRWYjUvZVhrNTJHUHI5Syt0OVAvNysvc3ZTbldzZWorai8ybjd6K0QvbVQ0K1BuN2FBSE1CYmFPdUs0eDJ3WFdGMVpINEZjNjlXWnAxekRpenRQcXpkVTRaMGora1YxQSt5akZLYzZTS1YybFcvK2Y4a2YxZmRVdndSUi8vaWMrNGlDOXluTXo1bzhLSVgrS2FaMHVWVjEzWHNaNlp6VVZaSHZKamJNcnpMRnVtbjFTY1dSdEl1MVMreitEL0RyYWIrZi90N2Uzd2pvaDllS2IzeDB3amZVR2JJTHpTNHB6MlIveWVWaDNMTjd5WGtWNzNmVDZUYWRLZXVySXQ1eHo0NlA2ZmFlYi83RHQ5bmt4SytMRHNXTzBteDFUS1VQY3ovVlRlSTYvMDM2Z2RaLyt1OEVvZkg5YjViQTRnSG1Yay9TZnZQWXJXK0QrRnpaaHY2ZWY1Ym9EdHNXSDI2K3liOUwxOE54aU5GZmsrbXYwL3g1RDBWWllseXp1cjd4S1BvcTM4ankveGJmYTFuazUvTCtqalNZNjEyZmRtODFIV2cveDZlOGp4UE5Oa3pPazI2V1NaYnZrNzZLL2F5ditsc2xHK0E1WnQrM3Q3OXpYdEpQM0Erd1JwMGFaNDVoVC9aenpHSlBJaXpWNitKVDNxL0srVVVrb3BwWjVUbDlybnpYVHZaUy81MXBUcklKZXdZWDBiemI1cit2ZlVYN1gyZWJVL3JEblVtc2xzelhxTjB2OTliU08vODBmZi9FdHJJYXliOVBOcktNczU2a2Y4NHpHN3Y1VGU2SHFXMXl5dFViOG03bXpOYVZibXY0cjlzdHo3STEvV1BQS2M5c0l6dWM2ZWJTVDNYamxuRFpkN09TYXdkN01tdk5zNnk1bnJpWFdQOVdiV212cTZVb1gzT3RhOVRDdHRWOGYwR1pCWFhxTWVwOFI2SmZkSmw3M3VwVEtmbys2WGJHK2ovczlhRzdabVA3NXJOUFpYdk56SExlZ2pyUE90Q1Q5V0wreVhZMTcvdHlIM0lSQjdHWFhNdGNxMFZhYlo4eHJadC84VFFaelIvWkgvUjJVK1IzMytQOFgvR1gvMi9wQjI0cHk5R1k3NE0vL0pXQk4rYXIzNm5KZDdBdmg2VktmMFFiZFBYcy95eXJEUlBoUDNzejl6blhtUHlueXV0dkIvMzBjcG4xQ21QQzh4MWpGK01wYlJudGVHbjFJdndoZzMrSThBRzlPK0VITnQ5MzhmYzNLUDhwai8rWDhpOHlqMSs5My9zektmcTJQK3o3a2RPL1Ira25VdDlmRXBmWU8vaU1zOHRsWDRNYnRuR0xiay9Ucm5ZY1p3NG1MbnREVjduZmd6OXlpUGxZTi9hL0VoYlNkdHlwN1p5UCtqTXAvekxzaCtXOVlwZlVmZnpycGlqOUZZUmR4TXIrZlgvZG43d1pwd3dwYnFsV0hVZzdtayt6Zm44dEUzR00vMzUwWjU5VERhUU4rTFRCc1RQL09lbGJuM3RVdG9hYjFBUGI3MHYxSktLYVdVVWtvcHBaUlNTbDFOT3hFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJHUk8rUWZoNWVPYXRrN2pwd0FBQUZUYld0Q1ZQck95djRBZjZXRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0bk8zVzRXbURZQlNHVVFkeEVRZHhFQmR4RUFkeEVRZXh2SUVMdDZZaC80b0o1NEZEbTAvNzYwMXN6bE9TSkVtU0pFbVNKRW1TSkVtU0pFbVNKRWtmMFhFYzU3N3ZUK2M1eTdWMzk3KzZUL2R2WGRkekhNZHptcWJIeit3WS9TejMxTDExRnN1eVBGN0hNQXgvdm9kMDc3SmpsWDJ6WVhhdHpmczl0WC9WTjcvK2plNWZ0dXQ3Vmpucm4rVjZuWDM3eHRtL3VsN1QvY3R6dnU5Zi85Zm5lWDdhUDlmcy8zMWwyM3J1MSsvYnR2MzZ6UGZudi8yL3Ivb2UxL2VyOTBDdTFYZjduRVhWbngzWGE1SWtTWklrU1pJa1NmcjNCZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQStFQS9Ddm1zdUZMYUttWUFBQUVGYld0Q1ZQck95djRBZjdHa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0bk8zWDBRcUNRQkFGVU11Uy92OXZJMkpxUVVrR1g0SnNsam9YRGpqcnk0V2RCeDBpWWtoaTQ0ei9zRTUxRitwMm9Mb0QzM05JYzh4bll3ZmQyTjh0elMzcm5iaDIwSkY5dkpQcXJuemVtTzcyUE0vVDB5VmVPM0xxb0N2N09LYm41YjZuamZmOHZ1aWdBelhhdDJETHZZTXUxR2pKLzRRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEwRHdBbldob051d1pVQm9BQUNvWGJXdENWUHJPeXY0QWY5VHdBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCNG5PMTlLN2pzS05iMmtrZ3NFb25FSXBGSUpCWVppY1FpSTVGWUpCSVppWTJNakl5TkxKbC9VZnVjN3A2ZTZmblUvOVNJV25QcFBsVjcxd213THUrN0xsVG01MzAybmdEYXM1RXR4dGRHWUlland3SndYY1VGYXdEZmhYN0Q4MklkNElFS0VBRzJDaHZRbmlUQmQ5MlQyYkdFd2ZITmZIUDg4VU52QUpXYjNVRXIxWEV6dHI1c1R4VVU0SGlkUU9FbzZURHdZYm12S3ovM0NSS2czRlFzcEYrTkE2ODNnYmh6WEozYjNzK1lYa0pzTVNuOFF4SHpsZElQRHl2VWE5c283a1o1VGlJNDlaWmtVRVBNWHprV3lOSStUd1l3Sm15ck5MaVBTVzByL3U3cmJwQjM3dHRIRjQ5eXhiRDRqWm5nQVR4UnFvTnhDUS9SRkFrcnI1ZXloVWlUZlF6Nm9hN0JaYUczSFg5eGo3bXVmbjZDV3lrdW96VmpnNGsyTE5iNnVNWEF3WUp0RHA0ZEJIVlBvUGp2cURsd1hQalQvVHd2R3c4dlA3ejh0N2hPeERvU25wTk53cHNGY0NtMkZTQVY5c1NjTFJ6VkhqSnd3Q2NQaDNWTGNXQUN2clROWDdmZzJ1YkFIOVV2dUpuN052dzBIVHgrQUlVTHRCNDNOMVBxRzRISDRVN2QxVUpSMStIVzdmUHJwNmlVZFUzZzkzdVBqdnMxeUNVdVFxWk95WW9MR0dzNkdBbHJtMDdBdkcyQk9kZ1AvT2NDS3FkMWdWWEZmREtvaHRrbE85SHZFWUdicXgyNFhVYmhZZGVTS2M4THFsSkZKVWhYWXpCTlp3UEdQcnY0S1M5MGFXaVRacGoxMVFuUnVGaUdQc3JLSEtnU3kwWEx4ZkxqS1JXVzFEd1BMT2syOW5NMHhlSEFmOVkxbTNyZ1l2QS9wS0pLSC9EZzlsd2JQQmxQSEUwbFR5TW9OK1EyNERxbkZqMEpuYXJxL2RPTEIxbEJvL2ZDZzBnTnRxc0lrRXlnY3phYnpnTk5nMWpxeVBsQ1kxaWRKc2VZU3IwVGRBUmx1eTdLOWhMOHFNOEpNeTRZYW1Vb2xNOC8xRHcvblMweDZTUnduVThCUFFEOWYzZ1VHaEtNQy8vYS9Ra2ZYVHhLZE1LaHQxWm5tNXBnZkVrc1BPUzRsWDNnUnZNT1VXcGQwRzhsVzFCaDBmMEJpRGI5R0ZnU1diL05QT0VYcWo4UXFGbHZhQUNBUnA0WC9EQTJOK0dCclI4MlNrYnhsMGRiOElVRmQzWXBtczgzUHl3YzVFQjNqZ3FOQm01TjRNZW0zUk50ekFYS2F6NC85ZWpKVE5wcTd3K3pGVDJBM1EvYUpYZURXb2hwZWtaVWVBYUJFUFNFSkJHQnIydFE5amliUmJlUWJmTDRDV3BCVDVueDFOZjYzb0Nybmh3K2Z2NlNodVhjNE5pR2tib0c2VUk1K3JYaUNZWUwxcVFDT0ZXdHEwc2NEa1BEZHJScVl1c1BUQXZvNWVkRHZBTHZnSG12QmFFTDV4Nk5PNlJ0RjJvTFVDN1VCU0NYK09QdlJHdnhGY0xxZC82aFZmOUZ3c0tBTS9UY3FNR1VrWldTT0hqclZjQ0ZTc3I4dVhNU2o2TVNpWjVjaExNSUR1akpuNDRyT3daOUJ3UnpyUmhHRU9NZFVTZ2VTMG10N3ZlbVdOMmJoTWFvQ3JreEM4djYvaXRMai9xbzZHUllqQjlkTzByRW80N3ZZd2lJZUNTZHAwVFIxN2ZlRHhDZW9oTllZR25YSGlEc3FPdlJFRUJzekkvN2NtNndiU1NCcU1aZTF6bk9oTzk2UWtmUG5xQlJQUlhHYm1ZUTVHdUVST3IyckdVN0NqeW8vZmdXWWRQOFBpeTE0cUtlbTJyRzcydUhNRUtmVzNBbzllSWt2eDBBdW9mSG9KSGI5c3h3L1RRTWJzc1p5M0ZnbEZqR2sva0orbmJQdGZib0dOa3VlUFZJYm96N2pXOXluMHErZ004MXJQSEI0UDlJNEJ4MXFZbng2dXVIbDQ4TFp1Q25GZ3p0MTlkaDdCaVZob2xiV2hjWk9qNDh4MDFBU3FNNTh3TDlBcXppSk5OeFhSVUJvUUI5UFVpRkZneHJCTkQrTThiS0dMcmpyL25wc3JwMHYxR1RQWCtDQVN3Sk44YkhCclhmdS8zczZ1ZHpEY1Era09PaU0vaTI3OTdjTmx1bTBXZVZxSmNNVWt5TjJJMnFxUGtSclQ4WHR5Z01qU1ozM1M0M1F5TitRbnNJZ2wydjB3clg0cGRWMUZjQ3NndzNtZEl4ZjJwcmZvSmxsR05IdTc5eUZzdkgrUi9RNDBUWUxoc1NQZlRMUzdUYzd1c0l4VURkVjkzSHNVMFNBL3N3NVlDUUErUDc3ZWprdkRET1hBYmE4bmgva1BPdWRzOXgzMDVhb2dzK0l3VEdEWU9Fak9CQ1JaY0ptYVVwbFlLNkpubllRWDEwNVQ5Qysrb0xXZXh0S01KWFNYRGhnY214OG9EeEM3aDh2VEtYSytqOTRGd3l0L1lnN2Q0cGtHemNPTGZXZEd3WUJSekJRRm91UXIyQW8rOFlCSlZsOFlXTGpZTlNVOS8wZ2NhRGJUNWttRW1CNmY1cy92VHlKMDROWVlaa3hLSkhNN2tsallhOEk2c3BQK2k4enlRRkFYTWZITjhKQTE4MVBST3k3VmtjeDBKU0l5MXJJbkZIVUMzUVpSTCtJdWRtcmNFSXd1RWwxcWt0ejVNekhqZnEwT1RNeURqVVRUbVpHWUhQaWhtS0xCdXM2T1JmS200N1NJTEIrc1pGRmtMR3NZWWQxbU5zdjM3NHp1Nng1dzNMblZ1RGppOXpZWjludUVrVkYwVUlNdVVzZWdQU01kb1hkSUViT3BKclRNYlQ1ODdCQnFITjdSekltUWdQNWFPTFJ5bm1ITlI3RWpmS2IvREx4VzVrcVBpazZMZnc0WlY3UUhMMVVKZytFTVpyd25lTWE5ZTl2cUVMSTdnUGExZ1habm1SRXRaRngvZWF5RUdwelVMQ09jSjFUUkN3Mjk0MFVEMjVYd1RUYkpLUXhtZFhqNjdZaDkxT2xSVFZJNVpmYnBtSFIrK2tjQU53Q3l4YWhSNFMvMVYxbXpiSWsvZkRWcWFiMDdDNDVUQkZTNUUzS255My9SaGRyM3VkL0RjMVJsenAxTGE3K25wUjJCV2dlaUhoZ3NjSENYVVZTSUErN3YvenBuVndtckxhOXZWVTJhTzdiek5RS1lqNHRGdmdYdFUyNDliYTgrTmdJQzJhWkNZUzRTbzl0aVhFd01wbVdaSTh2MTZTZzlpM1lGODJuYWpmeUh4b0hiak02d1V6MktFK2dJUXlJQmxRdWhENmNmL1hOd2NWejQ2ekMvM1ZEdndzVG5PK2FydEdtVDFDdFlyOFlBdW83WUd6bFVPbjh2WUVhWTVWa2lrQlV1bVFqMEJNeGQ4RzBxNkVpLytKSFFLM3g2ZHRZand5RTBaSWsxSnhzTEljdzdsR3ZSN2w0L2ozV0J5NmFZM2tqckwxVDIyc1IwSDkzUkMzOU5KOU9yWXFHcjdMRTNVTXhHWUYyRG9kUU1xclVraVpMZ1B5MmUrS3NEYkM4Ynl4d3phT2FwRGxBYWRqNWtkUGNFOHREUkQ2clRZZFNCZlMvZnJjeW45TG5jbEs1dHRWd003c0ZqcTZTc2VEdnAySy9jbDJQR2Q2anVPTTZBVHhJUEgvQ0RGR0tuRnRtUzA3a3cxSjhvMFVBRGNOUHdQZUh1SlA3Q2haY2czWlpHWEhDcy9KUmdiS0Z3M2xtUW5TK3RHbC81Wnl4ZGhJbGhBZnk4Rmg3TWZIMjZIb3BUNFl4aEFBTEtHVnVLOHovNHNiUk94YUNJdTVSZkhLeHE0QjBuRng4T3pZTjNBYmdUKzRnOGlNM2t1c0JwRDN4U1VPeUtja2dUc1A0cncvSHYxUnJISVlqVGF6Y0ZBRE4yQzhZWm1HdU9sZVBZUUhoUDNKVXVlMlh4ZUc5Wm16S1cyamhNYyt3RVF6SXg3Q293eThYeWNONTBuK3doM0pyWFVQell0RHdjb3RVbzF1RUdYanI0U3pzcy96SDNOemxjRHVUTS9NUE1pdEx4TzE0QnRTS1h4TWRGOHh1K255d1R4MTlYMUZDa1RJZW16QzhTUVVTTk1SRGl2dlRnZ2RYeFV5N0w5ekIyTUIyNjh0OG5KSWtWWXVvQm16cFlqMEd2L08xTmFQSjRDUjc0eVpoU2g5QytCdkNiTHRPbDNvcktmYk5xZEdhR3gzc1lhOFFJelNlc1o3TnJwUVg1ay9EQUcyRFVYckc5TGRHTkJvczZMMjM3bWpnOE4yb3VaTHF3d3YrMExwSWszUy9ySm9POERYOGZINkYrY0UwTEdoYjcvcktXZFNBbTBnd3lTc05iOHNJSlJGZzNqOEtEK3FPaE8yWjhCVjY3V0ZGMGE4Tko2WjZzQWdDZWpnRmdqenRkKzV3MFUwaklFR0laYXpjVDhRYk9TWUI1RDFRYTcxRG9pZkZsbDJ0TzV6T20xU0hxb29Sd2Yvc0ZyZmVkcEhjWVFyZHpBUktVNTYrL2JuNFhXSVdmUXR4U2FWcDQvb3dDS2lXUkFKUFNkSmh2M09IWU00OExmb0dIdTdtVzJJRzB3dmZvUzVqeG1Ed2lIK2o4ZjcveTdqUXUrdTROalJ6RUU5cUo3NDU3eXhXWm5MREh4NkJQVHdPbWFKR3lQQ3JIOXZhTGt5V0dxQitNZThTWHd4MXRocE14TkJLSHo1cDNZUVpqSEZBeE9sMWcxT1M0Q0lta3pBemFzYTJpNmY2OVByUDlKeTJWM0RjVUpUb0Y0amJ4YnkvaTVzZ0NVRWVnTGk0b0dMRGEvRTkxblM0MzVwaU9TVWcxQ3VBSWh4RUI3cmRTWTNLSVFGSFBsVk8wSUNvWkpzSUhwRzYzalhqZ2F6Z2FLTFRadjN5L0lMTEh4UVpneFc5ZGFnOW11Q2tTZWJUcnIwWXN5VUw2RWtSVTZWdWFvS1NBTkIxMm5lKzFFTFBZSjFMUjh2Vk9aUlFVUTVrNk9vMG1mVjdGZnQ4T0FsV1ZydnJseUFuOXBoMUtXazR6V1FUNjFxY3FnUHk5SHhxZmgxSWpuajFrTFllbkNEekt6V2RteWxyV3c5QzRNUWp4NFZ5YmhaN09qSGVaOFYzTDQxZEFQOWhhYlNFUXZYYlVXRGdYcWVLL3lxSGU5Tkc3RytpejZvVEw5cnh6MkxjbklNTkkwRCtlenFwL3dVTDJmOUQ1cEZ3SElTL3NCK1VJWVlwbTVDMzF1Z3JseG5XeFY3b2F1SGttY2FvK05aMndOMlVwOVhKeHVHaHdwN1JtV3diVEh2M2dHTWV3c0MzWGUrQndOTS85VTdrQjAzcUNZa2tlZitlUHBqMnZqRDBEQ2ZDNEdPbm03ZDlvbno3U1lSK3RwMXhVQTFjMFBvRkVQVnNXMmM4Ujg0U0JpRDQyVm04ZSs1eG5RTWtzNDhVRXBhLy9TT3NFQ0RqKytRK2NqYy8rZ2RvYnNXTkoxTGZLNlBJMkFPRjMwWFlaOXJFVkpPNHYrZ0o1ZCtTVlVod212eVZ3R0FnVXlNbTFyWDlVU1lCRTVMbGNHbEJmZk1vVlhqQmd5am5NL0U5LzNkTzdTYVo4d1M3MHgrWVNoZDVhL2VJVUpxZHVnbzBXYnl4L1VmbzcrNTlGeTM4MExsQlgyU1FYVkk5MUtocEtBUkJzNENBTlZuNi9lWTdocE5IKzRMcUR3M2h3eFBpN2M2eU8zS1cvZHROblh0ZHZhTzNjYzdNNDdtdFQzSS9PNTNIZW1uZDR4dUh1ajdyLy80K28rWEJLU2tNM0JML3M1Tm9xUzJwWU9vcTN2ekxnQjBDNjRpb1FQemJuU2FHajhUNE91TlpHbnhzR0xNUXphejh6Mnd5a1VKc3htZ0hxMGUxUTZGTElDbEc5R3VUOGdLc3B6MU1MbG8vbmFIeTBjWGo1STdIajI2Ny9WTlZpV2xFL2IzbThxcWlITDhwd0RBNU1JMG5VZ1lEUjA0Y3VUWjFBWkw3STJBeVhpNjdVRWM5RHJLTWczYUVXWEFMcW1zQWRmZG56Qk9QR2VkNitTRCtKa25pS2JLN3MwMm8rbUhKY0hEUjh3eDF0YTNiWDN1b1Y1cXJtN3QwcjNUVS8wd0RFTjZBWXZIN1V4WWhqUDluTWhWZy9hRVRUdGVCZUwrWGhWK1dHT3d2WTZBQVdFQkd1aDJBMGRJQlhVaTRlY05NWXJ6YTA3WFMvMVVnajhzaU5ubmNvTTk3dHlPaGxoOU5rTkNFRmMyMjdzQWtFYmZGNmhjN2pPV2JYczBJVjA1LytHN3JkZmNTalJ1NlJUWUV6VkswM09FZDRMY1hneXFSSi8zYUtnUGdvMzBqSHIyZ3J1Mm85LzlPUCtWNEJ4UTY1UmRsM3FkRi9EenVqRzJHM2lsNG40WEFQeTFTamdqWTc0bGdjKytFNjYzWTBaN1pQT1hHOTNmQXgyNnZXOGQ5NGhBZDhVd2lWRnpVSy9qdVJLYVh4WE1nYzRnUHdnemVVSXl4SkI3Zkw3L0JUV3pwN2lIZmNzK2VIdHhLR0cvc3R2UmdtR2hQd1dBanREK1VaTWw4cWZNYk1HczlqVDBncVRQZ25odFYwblhob0JIN2ErbVErZ2EwdlRzTVJMcUVwSUkyeEpyMTFIVy9Zd3phVXBvRzl3c3gvK0ErdVA2aVJwTHVwcFNpUGZGeFBDaUZjVEN5UGJJVHdGZytzam5oY3F5dTRhUFBDSHpqVnNRbnJoT2Q5bjB0bUhFM1BpMm9scUFqc0I0aVZ4U2RIYWFBZEplV2tydDNXRmNLQUhLSHNoYW1WQkZsby9yLys0Z01ZcWEzcU1Gb1dpTzRQZWQ3SGtHTVBkVEFKQk1JY2g1RHMxUkExQVB6SjRRN1NOU1FOT3hKalN2WVo4NUVBSW5Nc2tCbnNTTDRMWkpGYXhGeHpoWXlmaEpjdFhFQ2pTb0U1WXFlWjc5WWgvUGY0dkx2Tk1hTHlPSkRYaXczZEhjTzhZeVVuNFhBS3FMQWZYaUdkYmhUemZQN2FKbzc1UFZtRldPODE0SXAyc0U5QTI3bXFYanB5amt2cUFzcFlpZk1oaUgvTmNwejBNSDl6b28yWkE3bHh4Uk16NjkvalRoS2ZvbGlQblVZamJ1RjBJNEFmMWNvQlFmc3dCd3RmV2F5ZXlyWlR6cXV1MVQ2YmtRa0lMWTdOb3IwMnB6OE1Sd2pJUzRDTjhsUENZWmRIc3pQNHlqQ0t4OFRnWXBjRGNSWXBuVUFuL3U0K2svMUdHa2FlUkVFN1ZYYkFoL2toWUJvYjN3aUZpWG53TEFXdG8rTzNYNG5TbWthMjhES1NOWDRjak5VNXB1cm1OU3ZYajBsSHRid0hOWWRqR2tyRGsxaVJGZnJCcXNNRXZwR1BYQkdJb1J0dFdaTjlvK25nQlVjS0UxaDR1NDJiU2tiQm96cFZQOEl0aWQ2a3p1dlloWWtPcUY1NTJyVytFMWJmYWgrQTRNdXI5UkFEMGlkWDMya2Nad3o1Z3FlSTFpOXRXSnV1N2psK01qYVUwcnMvbEF1MW9oa0FuK3Q4K3VmbXJnMGxtVTNhd1ZHSkdodE5Ja0hqODFpcFdnYlFaMDZuV0lYU0NISlk1QWp2ZmRoVG9PTkdnNDI0TzRtS0c3ZEhYc0Z6UEFPL29LenBGUHBERkJMM0tMdndTK21RVUtHOFlSejFJcU5jREgrLy9MN0duY0ptb2pCRmtlTWpxNkpGb0lLR0d0Wk9aQTN6NG5lZ3FlRkFhRTEwd1FySyt6ck5zQ0YrdUh0cW05TmxxUTBjQTRmR0FieGpiZElnTGxqRmdCTWQ5ZmdBOTZCU2NRRGU1R0xhbjN1OUdQK3ordytsaGVBdklMUVRvL01RaWlCenZZekdndlN4aWVWa0luOVFjTS9IWlBiaElmR2M4RVJsUHlncnpKRFBVR3hxVHFzTy9NM2xGN1BXdG9ONW5BRjAzbHI4QjNXRkg1Y1B4Y2R1L05rODVQTC8rMkxzWDIydkc1Q3ZTTlRqTzN6VWhMVXZESmJJcExsaUtiY1IwUDhwUWVpVjVYM0FTemFJRzhNWGQwK1I3am9BdG9RQWNDcDZ6Uk0vQmxFaDgyL2s1OGxwSVh0c0dwaTBrN2VlNlA4ejhmQXpoMFd3YURXK2toa1F2NnBiVWtMQi9Pcmt5dHQyV1dJbzhGZXFibEpVbmVoa0hxYTl6TUZ4RlM1R3doTTNYNk9PRGFnWGtUMytzL0UxK2VWOFhwdlNtRFFXSkQwdlhwOVUvNUlYSjZ2NFJob3FRMVU3SE5idGFYbzdPSUVTUENGRHo5TkRONWo5dzJJcW9Wb05KUy9lclI5TitEUTRHQ1VRVGx2eVkrdUZ1UHZDTUtRZ0JJemNlOTMzdDJvV1hnQmRkclQ4UFhWTWxzY1NpUFZVZ0Q4TTIxYUk4UERMdmRsRGdRdWl4QWRMQzE5c2pEMVlKTTIzdHdDTFFabGZ3ZmlTL1lLc3RNSW8wVVpGOTVEQi92ZjU5ckxEVHVDMGZNbHYzUllrUStMTUhQTG05ckVpTDlSRHVHZkRlV1d5NFZITFZFMWtQdEYwR2NueEhrSTRscHgrYnBiUC84cjRuUG42RkoxcXpRRnZJSTR2UGVIMFMvY2IxZEs5NFlaVVVKbGZLV1g2c3RMYUNaZzZZTDJyQmpxUnlicytqbmdGNzR2NlZNOUJLWWNiRXhmaEhyRUVPUTMwT1QvNVQ0bmtPVE9hR09DR2RPalJIazgvMy8reHFUOVVqSUJEaENGbXRvNnVlclNzR09JMXFrTFdENlZvRnZwNWxOeTJFZ09YSVlFUmNrQUJQdTFib1VBMW90dkdqemEyanlId29mUDBPVEpMY0orMTZXOFhURWovZS9PV1Fva1RnV1VOMkZYZHEybXFQWGQxc1NvZ0YzYkJqcHp6dTFqR1NWMUc2WDE0YjBiODVMcStpTlpQa01TQnFtM29Rb1JQcXZoYStmb1VsdS9Fbk1JRTN2NC94ZktBRDVnYndPR2ZBYW5KSVk3dkExS1RZU1NDLzI5Y3haelRHSHVDQ3hVVkxtakdzZkxHN0wxdnRZU0wydEJzcUo4QTZSZzhyTFB4USsveGlhWkdhVEJBSG5KamF6Zi96OHZWNUZmeFZLbG0yTEVoU3E2WFRleUh1bFE1ZTFtNzNNUTZ3Q1kyQzk3dGt3eW9WMkhqVWR3OEo0UE9TRDgxdzVXUUszM2Y5ajRmdlgwT1I5TWRvd05pTFh0Q0hXai9PZjZ6bnFaR3c2SjVZTSt6RklJc0U4U0U2MkFpWmRDOFExei9hUE5yWTV4eUVXU2UweE95S1F5Ujc0N2xsNFFjL1hTeTJYZWZWL2JYeG9meCthREdRY0RhSWlYZkRQMS8vYjY3a0lWYmt1WVd1cloySmlkekkwckkybS9aaUR3R290dVNCUkRxck13Z0JQWkpZdDFnVFd3VHBPaWhRSlpFZW5sOHVsVGRuK3BmSGwrUGVoU1FsVytFYzlzMWY0ZnlFQmNqYnBtM2ZSU0RQenNSaTdGdnZTY0NMeEhkZmJpeGNNQWJtaGdxTWpaellxZUtVNUgvQ3VoTzlyZTBpUXJqeFhrS2oyQ08zY1FoWlIzNDFQNTc4UFRWWUVFZm1GZTB0bzlaOWVQTXhHZnhXSlZ3MGRQT1MxVE1DR3gvMDZkeVI4c0c5WmdKd3RVVjA4RThxcnpkb2g0U0hsbnJuNzhFYlBIbkZBRUgwelpxRlMrQ1VkdTVpTmJ4WEV2dzlOanFQUUJuS3ZSUFh5OGY0UEs4dE9mT3haelZuOG1ZNDIvV29ibDNJRE1kRXhGV3MwK1BwcEoxakpHZnhtZzF3NjNHV3UzcnozSU54K3VWQTVtdVhTTWUzZmpZK3pDdllmaGlZM2pqaFJvV0Z3WmZYSDhlK0c2UGFJTlNBNWIzT21UZHA1bHduMVN3UXQwZHQxaXFSMUZqbm0zQWRDWkhnM1NJZFdtYjdXMkNhbVh3K29yNTBoUS9LamJBRVlaMHdPSVA4d05JbXhmN2Q1VS9jQ3BYMTgvbkhaczk1cjBQRHNBZG42ekdLdWN6b0Jacm9uTDlEOGdzQU9IZU84czBBaC9sMGx1WVBjZWlQWFBjUktwSFBIWURPWGYxY2daWG84alZCSlIvSVBRNU9DcnZzd3FFRG9OTzNIKzc4TEE5WGVIdnMxdUFJMVo3V1ZlUDlqanUxVXYwZjAzUHRWR2ZRanIxTFVHME5EeGo5MFpIakhIUFNHK0V4Z2pNYUJPS2YxNitsa1ozTlU0ajhQVFRaOUxBd0NYNTJha3lBZmxseUNhOW1zQk43NG5teDB6b1JzcjNPZ2l6cHRJakxYNHpXM1lnRmxYRjBJWFBJTXk1dmM1SHQ0WWQ5TWI3bUxVZE4vYkZCM1N6ZU43T2svRDAzdXBZa0FYbUVzMVI5Zi9teGlLTlRBTVljLzhiL3Jnd2J0OHc3UE01TWRoTjJNWGplaTIvWTY4QkNGeTk2RHc4TmV1blZ6ck0rYWNVSzVPQ3JCamVob2dFZDRqQit3V2Y0UFE1TnROUUtEVFg3dGUxTWZaOEE1YnVpUlVsaVdIVU45Vy9tcml4ZWZhQWRQem5SRG01Y3hJMWN6NkFjcW12czZPNzBtWHhpSFJ4VGIyNEswSnB4SWZJbmQwT0RCNkRXQ1RKR0ovencweVlQdjhseGlCYWI3eC91L2hoR1hSRDlkWmsxN1ZqWXFnbFBrUEllYjJkdGxtWTB3TEtBaHE5Z05RYlRMMkw2ODUvYUY1S0gyakV1NENKOXRwSnh0bmNIRzM0M0Rjb3VkdlUvM2IwT1RyYVNhL0x3eWlRb0lIL2QvMXVFamc4TndKeVMwUnBETHYwQWgwbnN3bmhkV2hCR21XVmVwMk1KdlphMHNxWW9ucW90SUo3cS85MkRuY3YweHp1TGE2QldESTVyTnZ3OU5VbE9XR3QwUUUxbTZqOTkva2xwQ0hkQm94SHlXZUxLM1NQTkFEVGJiV1hwcFZ4OXNoSGRSRThFTUVSemhmWUo1Y1E4WGMrQ3Q3TE1oWUt1ekgzNTVJNkl0VHhqZEM5V1JxdmEzb1VtaVdKWDNrRzNXeXhFVWY3eitCL0dvekhuUDhZSFI5Wjk4Ny93cU1HOUFvb0ViWGR1VGlWNG9ZRkFQRWNweDdhdkNnM2EycldWbXR3SHB6M2J1SjVwUFFUMUNnUHNlaklQZGduRGs3ME9UU2lNS3ZLZ1FETmFlbm8rbi8zR1Y1ald4RFZMUncrNFh1b0RyZ1hkV0p1MkZLUXpVcVlQWmJrQndiKytONTdKZDNjeDdNNngydGpvTCtnNFl4L3ExaHQ3RFdaSG96V1lxWVZmdjBsK0hKaWNLU21zd2JxV0pvcTlFdUhqb2ovdC9DNVJjTDBpVDNNekpSQXpoZFFQT2NROWFsbHphakVjcjVaVzFXQXQvN0ZxbFZENTZKeEUzK1ZHSGdYRVJtNFM1anI2NXlZenRBaU5MNGxJdThpOURrN3NIVnRiY1o4ZFIxOGlzcU9YcDQvTWZYQXZpRU94Z3VMYy9aTnpiRnpGNXM1VGxkVTNiTnNhMU9GcFlYVGpEK0Y1d2hhcDNVZXNXUmI3bkRTWUk3NHlIclRFV1puSVRVcG9Ed1V0cCsvSG4wQ1FRUjZRV3poUFQ4TlRkbkoyUDI4Y0IwSlVZSG95djhHZ3pKNEhBcnNMNGxMZVRCc2Q3dkJ3VUFiR2FIaDQ3TzlaK1JxRDJTKzR6TjlCcm1oU1d6SFU4Q0hEMnRXVEtqdVhvaUN0RHFIOFptcVFJbVF5TlV1RVBrZmROZXJuR2orZS9OeHNwYmdEU2dBaXA1Z1QyMUNCc1JRTU9SeDBiZWMxc3ZZYzZFc3lSLzBtTjN1MlNieCt4UXV3OFFWeU9qSnBjTm85azhPajlScWJnY1IvZ3o2SEpoVkdKVytLMU1UeHJxTzdkVHNNKzN2K1hVeVY4NjRMTzBKWHZjd0ZVZGNac1pjSDFrbUthUVgxQnVPdm03UmFlemJUK01lUDlHekRBUVhzZnlVdjVrOHFZR3hUVHVyeDBhdEVIOHNmUVpCWk1TVDF5bmdrUkQ2SlFVbWZ6KzhmelgweGl1Rkt6bytrTnhaN3JFR3cvcStLUWxKNHBJYkRXVzZ1SlJzTG1DRy9XNXd0M2FTWUNhMTZVUTFZb2RFQncvRmN5MC9leUR2TjdhTko0Z1VpWFIxSnVzZ1ROaVl4bEVRUkRZdnA0QmRTSnNJR3E2VFpId2JPcDl4MlJySTFSaGRaa01qZGN6TmlyWkp4VGtSdkpQVnk3UmdLblppcThNT21SSFFQYm93RGNEazlRQTVENnh6VW9jb1JhMzVrVGVGR1JFRm9XUGdpbGZrZWdRV1VlVGkzMTQvbi9hbG4wM0RlWDByNXVPL3B1UDlPNUlsQzNyM2pTZlJhSHQ1VWFGaEFkTCtCTzVQWVlBTjVYT3QyS0pyU1gxNzZHMlRwNElnenFyYVhSZ3hBN2hzUlM1eFR0anBTNUZ3eUJybVBrbTRYUm1mV3g4ZHdWL2Z6OUYwVnNiVWZDcDJFOWp3c1hhQWp5RnNLb1FrZGY1bldGczlkWmJscnNxNjFHV1hNZzlGWHB0U0lWZWswYkpzczZ5OTFIYnJnQnozWHRMdlZFV0lrYWc4azFXRzRVSEpyQm9mWUNtenZlZmJiVXF5VllUeis5ZmpJbStkM1lITzY0QjBaeWFtcWlFUmlpSFlVNGlKc0xlVUhLeHVRWEtyRlhFQWtSb2JNVGlZQ3AwaEJKa05JUm1QY0Vremt2dWFkMWdtSXA5WUZhczJ3WU91c01jK0c4RHJrZ09MSUlOY0RBU3ZXYVBuNy9hYlNCbklHUTBQT1lTVHlRYTUzdERzSzJEWWpacE9OZW9sUFhlSnBiaStnSHN0WnpEb0N0UjBRWHVPRVd3T01vaGdBcmlaY2lSYU81czBodTFvWkJYNXZoWEVhd0MxcjV2ZGtaSmRMTUc0dVN4TkkvM3Y4MFlMVUVyS3gzbmRjZVgzdlpONkVjSEJLNUVDTDAzVENyV2UwRzhhNUFrMlo5bUtXMnlmL254VkJGYXE5dHlOcDJPdTlSeUI0ZGlMOEU3OUxlY2s2K3IxdDN6UFNkZXVBcTlyR0tOUndJaTJNL29tb2ZuLy9sR0pTc2xHYWRON1cxbHo5TFg5RWFVSjNSSnl3Z2Mxb29iMVFOZkpIcXc1TmNMU1hxNkpTUysyaUVrdXg1ZzhINHhmUEtYQWxqU3k4WENjdW5XVWZVdTlxUS9vYU5FdEY2Sm1NaURDckhLQ3pmMFgvYy83ZDU3VVdmY1NpYWVRZVlXL1c4c2h4eFlPVmhvRGRZeEx6ZDRINFEvOEgrcEw1U3JxWFFMK2JKZTJpU2FJWHh6Q0ttWi9qREdoRTlkd2lZanZmZG9QdlZsNGlLaEQvNjArbi96TGFSZFJKT0hXaDczR2NYRC9QNlAzUnhxcDZJYmUwczVhSjFvbHYzV2NMejJtOTAvd2FoSy9TQUZDR3JhR2JhNXk0eVhlemR1VCtISnBXY2QwSGhVb2kwdmtiRHhMN3J0cjRSVldXdGdxc0hKZjJkWk0vTGJBSWJzMm40Z1l2YS9uSCtsMDF6SnVjMm1WaWJkeFl0SnM0ZUZsbnR2b1V6S0tXdG1VYzVrYXg3WTllQnpOYXN4NzhQVGViZE82T2lyZWtjZHQ3dytvQnVnU0tYemdnQjdXSzFIYmtwQkwwOGc5ZSt6ZHp4aDJWZjhERzJGUjM4bkhEbzZQZm5mZmVyTVRIMDNVWWprZDlaV0lPQmNCV2tjUlFhWFpmY2M0NS9INW9zVzhJbEtpWWNvUWF4UUlNZFJMeG04OFBTdVVHSDJabG1jNVFNdmNzc3FJUGVQci8rTTFuUEhOU1ZGd2c3NXpvamFFVk1yTmVkV3dGU1QyU0x5aEZlUittYVFZM0xxV2JmZmxraC9jdlE1RVhsNmhqeENHNFh0dzcwL0RDdmZzWGdMNnRCRHQzeWdRcVdTK1Z0OTRJQnNSQStYdi9kVjFtaWNZWWl0UUVTRTZYaVBCZ0kwWVpHaXJMTzZ5cGpCN205T2hwNDIzZUVmS1RObm5ldGx5WDlaV2hTWjdEbDJQb0I1dHptWkw4NTU3VDh6SldxeThOMm5qUEFkZzFFWjVtTmFPYytQai8vOGpQcGlXaWZXVVJya0dkRDR5Z0R5cmtRd29PcTFKV045TmRUeVFHM2hxelVuSHpvRFJFeVVjSDhPVFNwS1BHOVAwOUhGSlZSTXpTRkRXYnJZMk96dGxCdmNBTlVnRmxoZzVaWEtLTStIOGYvUUsxMDQxZzBpR0R3VEVlbTJaNXdsUWlMeVlUalllL2ptc1d3YkI1Y3BGczVnbVA3TWpiejRsVU9md3hOTm1Zc3Vvcnl2TXNBSjVzWHBCR0ZCcDVEME5ieE5QaHBQRVQzYmdTeTc2RWorSGo4bDlDekRVaDZOZWUrRDF1cUNySmZxYy9CdCtnYnRGRjBuTUZ0aVhaT3kwTmZ6UEZnb0lkNDZOSDg0bjROVFdJSURYTUFGdGNVVUVWNHU0YkgySWM3NHNEM1kxZkJGNHdxYmx3Q21OWS9tZitQMTc5Mmd6cFBDUFd4TTBCbXZoK0R3dEpTenliR1pkdnk5Zk1kRmUvSGJRV1dXMjNabkVNSGhJZnFOV1lYS1B3TVRkYmsxdGxPYVFPL2psbFkwSGpRcUJPbDV0VTlwelFLZWNSSUdFK1JQT1NlTUh5YWorZC9IQk16OUtYTUVBak1XLy8yUWdrNmYyUXhrU0phMlU4a0swdDQ5Mm5Na2ozdmM1amxTcmorZ05SbnBvaklEQVYrMzJsYlVub25oaGk4bWdmR1J4V2VJNjkya1pkOTJqNmxQMWQrY0IrdmM4K2dQNTcvYTdQZVFmZlhTOE55eGJYRXhjNXJRSlpKOEh3K1huandjN2cvL1Z6VjhHQXNSQnZvNVBYTWtnR3BqTENPK3pXdkIrbWRWd01Yajl2OHlWNmpFK2o0NTNjTGdFVFRHYlZOQjRqaEZ2aFlabDg0UENWOEhnQVRPRi9zbVlsd0VsRHpNWWFGNCs2RVYvN0FiRzNmZzVpVGltWS9OSjc5dkxzNnZmTE1nUStUWDZQVWxIWWcrNDhkKzAzZ08ydWVPbkROMW4reUh3N2lISTFmMXZuaGMycllqbkYzWFNSR2g2TjlIUCtpRmJ0NXF3M1gxL3NzWWhnbjFlaXdUb2ZPL2ozVWI3bjIxdlRVTUN3SzlhakgvN3E3NG42V3hrMkxIb1BFK3dwWmxWSzBpYVUwNGpZcklZK1VmVUIrZFlkcXNHTjBuVVBVK3VEMVVDN0ZXU2o5ZVAvWGpvK2d2ZGQ2dFQ4M0VqREdWMWhHM0tPK2J4c0RqQnU5dDYrTE0zb09pNEdLZ0RBSWY3QVdyaERCWXppb1VxUHFSN0dpWngrYk1PRDJFd3dDcGxTWFZlc2ErUEtFdmJzRWk1MTNyU0l2TkxQZTFvK1A5NysrN2tPK1VXQmJCWHRQczVNRXVtUElicTlkbFFPMks1VjcyM3V0NTd6ZTFjNExUaEVoZ1RPVmdUeXUzc2RXN1lMc2VYanBMQ0ZEQ3VhWllySXVvT29JYkdiVzErWEIrQ2NPaE5MQlhDRFhuODdQN2VQclozVXNFTTY4dDdpYWR5MHZGdlRmTTl1bCticng3VTZ3N2VKWUtKdGpEWU9PMCtKdjlVMFJSUENSYzhvWm9tRzNJL3dqTUh0akRjSEl3UEFsdFhWRVYwTkNBUk9sV29CQjZjMWFOcnNzMkkvbiszajlDeWhhSllleHRkam5kNERSd09HS1NHSUdhRlJpTXZuK1BDVDN4aXBqd0x6bUNHNXI5N09VWC9mWGtKWHdxOUQzdnlON1JDdENFRHlaSWVMSC9GTXZ2R2YvQThPUFlQZzVsSzB1WGdkZG40L0RuNW5HUSszTUt6Nlo3RFB2Z3l1VkJmMDF4dXRkcEFaeG5ZZUV4SENtYWljS2NxODV0YnhHUk1pc0tYNDZET1BvRTdxZmx6bEhiZHpzazNneWtxWDVMVDl6QnBaeVlVY2llWFpWczRGd1lUdFNEdzhDcStmaitQZkVnNXdYSU14Qm4xd21GL3E1a3dyL1A0MGp4QWZzYmduYjdURGFaV1dOdmJTVFpINXZrbkhsdHEydklRQWh4N0pRWGtncFByNXZ0ZXZJa1M2dXhMd0lrZFMyUFVoNXV4azN0Rk8wTFUwQ3ZRcmhQOTcvOURoNW8yTzJ6aEdaMzZkeEU0UjgzQ01JM2pVaStUTFFrUXVIYkxWdEk1ZjlWWW5SeWc2NzdQMWwvTTZremxhR3pzaGlGMDJRRklPa3paZ0Y5MnBCekdNM0JyNWFId3JrWFQ0TE5MMW5ZdllLeEJYOThmVnpDVEpYVW5NVlMyY0Q3VGJlQ09ibkRTZHpPSEVmRzNyeFZGUmJsRktiVzNmRUFNMHBTWXVYT2ZnMWVLV08zRmRxL2RvTkk1UWhiazRyZWxDU3hOcVVFK0lKd1VzUVorS3l3ZDVVUll3c0I4SUJ3Zm5INnorenBYdnBYbEovcUVUZHBUMjBCRktsZFY1Nnc2NWpyNUtuczh3SHBTWkVEcndFaVNkcE56VDRVeFhMU3IwYzM1U1A3U1pJcGVaVnFSdEg0THNjV3hIN2d1RmpjZ2pEemFhQmlqejZrb3VoSHRlL2ZoNytpVFI5Mm9VWW51MW9vckRPTzYvODhteHdRVnJ3dENXU1dOUmFGanQwcmxFL2hCT3g5L2NkRHA3emVabnZhekVyeHJOMU5zSWRXNnVwek5ib2hnemhSUFdaWXpTL3hwemE4OURkS21TRWxVSWpJWDNlLzJVK3gzTmhiV2lodWYvcVJ6TmpYdWNlNXBjNGRUbnp2TFdWRytLNGlOK0N6MVhwZVllSFFqdG1DeUpaa0drOTFrU25DejNLNGh5Q3dUU1I3WW9tb1k2UzN0ZDh2a1A5azlJenU4VDNtbWRkMkg3OC9wdFhaMm9HYUZOSldGVU9rNUVpTVVFMVJoNS9jalFHMXhKNy9PSGM2MEhrbCtsc2FwOTN1RlR3enVHVzNYUTJQQjN2TDA3Qm9DQ05YUHVrOWZPclVxVjB4L3NPbUdGOERNWnBxTXpOUG9sVUxwcFhiejQrLzNpTWxjK3Z2Rm04NXNoNzU3ZTNBRzBzQjBxeWUyZG5mY2wyZmlucVhROFgwZVp6SVQ5MytPajNXSnVKZ2Vib21CNUhsMGF3cFd3aE40NkdWWnpXZkVOdTRSWm03N09GT2k1QWJYRWxyc0hvaDVTeGY5ei8wMUlHRjNVL0J5NldqenF2NkdGQzY3eld1c3pNRDBValJ4eURaeWQ1V0t0RTVmOTFoMU5YdXVTWng0cEVLWXlZTWpIWDBiVVppVmExaUdGblY2emdVSTZ6c25HTnZlZXJ6OGlTendzRHpSWnpsQjgvZjhLMmxVRGxaeUlwcXUycTU2bHpYTlpVOHVMMGU5NEI2cXRtTTJmM2lXOEMwZjdQSFY0UWR6cGU2N3dpQUpYZGU3a1lxbVFqc3hVWUljK0dkT0I5cVN4dXhubFhSa3QyQ0kvQ2hGaVVFalNXZzN3OCs0MUNLd1NnNks3Q09JaHBQWTh0TzdRSXMxZ0pOUnhzUFM5NGJPcnpqbmVWbHVYM0hXNnpYZXdnQ2huZ0sxUGIwN3dzZTlXZUFLOHYwSlRpVmdDaCs3c3JQRHdOMk13SXBLN0FieUFlbitMZTUralVoMlZPY1BsZVQvLytGcnpaK1k1UGRndHhVcllnb3hOM1NBRkdNL3ZkZ2Q4OWIvMlBPL3hnZm11U1VzOERkMFBmeisyeWxIWENwdU1aYTZGcVJaZ1RmUHVKY2MrcGp0UVVCSUpMVml6UEMrRFBLai9lLy81NGErSGNmVkdRZU1GVnVla1RCcHd2VGR2ODNnUEV3dUdCUFowTHBOV3djUDIreXVZOTU0cVFDQjdPWG5qNlFoYkxqL2NYM3RwTGVLdW4wMER3VzVEeXprbVp2dFJaUWwwV1ZLcW00cDZRQjVtUDUvLzYwVXR4QmNrdUF1RzlnRkRXMjNjYi83ekQwMEZIWFBTYVY4TFBpNEhZNGpuNTR3N1BNbE1lczVmbFFWem9rMWxjbk45NVBjZW84RWRxOTc3TTZjZjExYUxDVGU1QUd1S01kTlNDdG9SMkEwUi92dnlERG5yT0s3TFp6RUlPeExwY3Q1K3MvTHpEMWF5Rjk5bnJOc3ZiYTVrMlRQNjR5cWJhVXQ5ZmN2MXVuV3g4VlVIUHJ4QThFUXFpdWN0OHBySWhncmc3dWhMQk9KbGZNZHhuNlhQZWpmbkdRNStILzcva0lBcys2bFpDaVg3bUxMYTVyaG1neTVoZi95Wm1tZVRWYW5EeEwxZloxSTNLZDJFQStVOGd2SnF3U0F3U004bmIrLzYrQVVsZ21NanlkZGo1RmJ2MXVESHF6YVRKKzdjSXlNLzMvMy9sSzEvNXlsZSs4cFd2Zk9VclgvbktWNzd5bGE5ODVTdGYrY3BYdnZLVnIzemxLMS81eWxlKzhwV3ZmT1VyWC9uS1Y3N3lsYTk4NVN0ZitjcFh2dktWcjN6bEsxLzV5bGUrOHBXdmZPVXJYL25LVjc3eWxhOTg1U3RmK2NwWHZ2S1ZyM3psSzEvNXlsZSs4cFd2Zk9VclgvbktWNzd5bGE5ODVTdGYrY3BYdnZLVnIzemxLMS81eWxlKzhwV3ZmT1VyWC9uS1Y3N3lsYTk4NVN0ZitjcFh2dktWcjN6bEsxLzV5bGUrOGhXQS93ZmRtaG1aZHltbTl3QUFNaUZwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtDang0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNQzFqTURZd0lEWXhMakV6TkRjM055d2dNakF4TUM4d01pOHhNaTB4Tnpvek1qb3dNQ0FnSUNBZ0lDQWdJajRLSUNBZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0FnSUNBZ1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCR2FYSmxkMjl5YTNNZ1ExTTFJREV4TGpBdU1DNDBPRFFnVjJsdVpHOTNjend2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TkMwd09DMHdORlF4T0RvME9Eb3hNMW84TDNodGNEcERjbVZoZEdWRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMXZaR2xtZVVSaGRHVStNakF4TkMwd09DMHdORlF4T0RvMU16bzFNMW84TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNEtJQ0FnSUNBZ1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJajRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1Nm1pbURBQUFBWTBsRVFWUVlsYVdSUVE2QUlBd0VwNEFhLy85YU5WSXZhSnBTdUxpWERjdUVMU0NxU2lBRnhJZHBBRnFmd3VLOGc3dU5sdVVJUGdNWTRHNStBSWdPYmhncEFjWFVDckMyOVFic1pzU2x0Q283MjF0ZFRaYUJLbi9mK1hJTm4yWW5KOXpIUEN3UkhCUDc5aUh6QUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicCursorCross", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJaMFJWaDBRM0psWVhScGIyNGdWR2x0WlFBd05TOHlPUzh4TnJ0VlFGa0FBQUFjZEVWWWRGTnZablIzWVhKbEFFRmtiMkpsSUVacGNtVjNiM0pyY3lCRFV6Ym92TEtNQUFBQUxrbEVRVlFZbFdQOC8vOC9BeGJ3bjRHQmdSRmRrQW1iU2x4Z2tDaG1ZWUI0Qmh2QUVHZGh3T0pyaG1FVUdnQjN1Z2NXZXB2bWtRQUFBQUJKUlU1RXJrSmdnZz09"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQThTVVJCVkJpVlkvei8vejhEQVFCWHdJSXVnQSt3SUxFWkNabk1SSVNCTUVNWWlWRU1CNE5JTWN5M3VJSVBMcytDUXdJclFGZU1MYXpoQmdBQTR2NE1GcEVTdzlBQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:bitmap_flixel_system_GraphicVirtualInput", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVk4QUFBQzNDQVlBQUFEcXhOS1RBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFJLzRTVVJCVkhoZTdWMEhlQlRWMm9aQVFocEo2RFVKRUZJZ0NUV0IwRU12Z3ZUUWV4VlJxaUJGQVJYcjlkcTc2RlV2WEFWQkZPV2lRRUxvSllRV0NFMUV4UUplRkZFUkNQRDkzM3QyWmptemV6YVp0TjBOZjg3enZNOU9kcy9NZWVma20vZWRjNzRwSllqSUZpV3RlT1MxYUVhY2t4Rmw0R0RQenhaRmw2OTd3TUFQeGZZN2hyVithbXBxOUpZdFcrS2NDVzR6ejMxODh1VEphRWFjay9IL0tpWWVlWXFpSDNtUzRweUtweWpQZlZ6VStMb0pEUHhFMmVBWEthQlZBRHhvMFN1ejZPR1hMOURDNTRubVA4ZjRwNVBBYlMxOGdVVGJpMTZaSkxob3ZDU2VPdXo1TG5tRkJCWTdDWHA3S3I3TmU1WUFlTm1lcndXbE5KUjJNdlIyZFI0V3Zsci9va3lkT2xWQS93MzFVbEpTWmlVbkoxOUlUdDVNeWNtYm5BeTBtWHlCT1JqNldPSnAxOGZIangrZnhiaVFtWG1NamgwNzZsU2dUYlROTVBCZHVuUnBDWUNYN2ZocWNLdVkwUHNYcFZiNEV3TDZiNmkzNkhHYTlmQlN1c0NmeEovMDhHTk9BcmVsdFltMkRYMnM4MndZWjRIK1Blcm9mQjk5aWdoZ1FYY0s5TFpVZkJuV3ZyWHRYdzF1RlJNNlQxRWs0N0FRZmZpbGoyZ0cvMmNTeHhIVjcwOFUxYys1UUp1ZEpoRE5RblF3bDlzN0lBU09QKzM1TG42WmFESkgxTkNIaUlZc2RDN1E1aFRtdW9RNTJQSzliUjYzK1ZyK01aNE1MdzFsbkF5OVhYRFFnOFRhdnlpU2NRak9MTm9mYmRyMEpYMzAwVWYwM252djBiLys5UytuQW0ydVdyV1NObTM2aXNBRm5EUnVRdUQ0MDhDWFJmdWpJMGNPMGJadHFiUng0MWYwMVZmT0JkcmN2bjBiWldRY2hva1krRXJtVVNSaVFqWVAvSzE5WDRxRjhLUDVTNGlTUmhGMXZwc1AyVjdPQmRvY01wWm93U05DbEExOURLNlNjVmo1TG4yR1pXVStTOFUwb2tuM094ZG9jemEzRFE0cXZyYjl5M0RibUxDYUIvN1F2aXhGaTE0ZVRiT2ZKR3FZcEJaMlp3SWN3QVdjSk9JYWJ2T0ZjWXg0bUdqd0F0Y0NITUFsTzc2V2Z3VCtNZDVkdW5TcEhSRVIwZHJaQ0FzTGE5V3paODhRY05DNGdKT1ZyMjFNc0ZpUDNyejVLL3JnZy9lVnd1NU1nQU80Z0JPNGFSd05mY3hpUFJxaXZXblRKcVd3T3hQZ29CbUlMVjk4Q3I2TUloY1RpNStnMFF0WnRIdmdQRThoN000RU9DeDhsQTg5NWdSdUdrZERUT0MzeDFpMDc1MUpOUEUrMXdJY1lDRFo4V1VVaVpoQVVPaUV2V2orODRlb3h6MUVrWDNkQTcybThLbkY4enNFTnd0SEdSYStVNTlRaTdrcmNEK2JuWm92bkJ2ZmVWZXJWcTFQNmRLbDk2RHJPMVlPb2I0MTZqb1Y3U3JWeElRbE1ZZHR3Y0hCWGNGSjR3YWVIcll4a1p5Y2ZHajE2bytWWXU0S3JGbXpHbE5ZRG1QaTJMRmpoM2J1M0s0VWMxZGcxNjRkeEp4a3ZySkEyTVZFZ3dZTktDRWh3YW1JaVluSlZVeXdjUndhTVpHb0k0dTNPMkEwUzlaRGo1RERtQURmT1F2Vll1NEtQTWpubVE3NEtuV2lXdlhXRkJMYXphbW9VaTBoeDVoQVVJZ09admhjZitEcExISEdyeEp5VnlCdUtQMDE2OG0vbVp0T0hBY2NPaGhPYU9FNzRpRVdiaDRQdWdQR0xITElsOCtXL2IyOXZkOUNsNy9icWlkZG5jMm5Id3VlSjVyM0hPT2ZUZ0szdGVBRjBmYUxjWjFGY1BqNStURUp3VmVjV2RqR3hJWU5HN0krK09BRHBaQzdBaXRXTEtjdnZ2akNZVXdjUG53NGEvTm0xNDg2ZEtTa0pGTjZlcnJPVitlS1QwTk1USnMyamY3NzMvOXErUjFWM3Fjd3NWbTBQWEhpUkZNeE1mZmg2MW5kKzdGdzkzUVA5R0xKZW1EQlh3NWpBbnp2bmM3Q1BkVTljTjhzeDN6bG1Halg4VVdhL2VEdjlOQ1NHN1J3eVUxYXVOaEo0TFllZXVTR2FMdEY2NlVPWXdKQmdUKzhmWHg4bnFMWi95Q0tnbkQzY1E4MFNxSkw5ejFHL3Y3K2p6RkhId2FDUVFTRWxTOUVlNUNiWVBoRDJmRjlFZDE5cUQrUHBxYTdPcWZFcDQwem5oQmN3RW5qS3dMRE5pWTJidHlvRkhGWEFVYTJkdTFhaHpGeDlPaFJwWWk3Q3BzM2I2YmR1M2ZiOGtWZlcyUGlsVmRlb1kwYmtWUDYwTVU1cFM4Rmw1eGlZaTZmT1dQS1NDWGtyZ0NtcnFiUHZlUXdKc0FYWi93VFdMamRBVlBZeUxMaEsySmk4UEFkTk8vaFc1UTAwb1U1cFRGOHZybm9sdUNpaWdrRWhWZEVSRVE4TDk2Z21VK3JSZHhWNEZIUW4xTWZCZkViVFpzMmpVWG5BdlhyMTI5bTVUdG9udnRnMkVMbSs1Z2QzOGpJeUJibzZpY2J0aVdhNlVZNXBWbFBDazRTWHk5ZU5zUUVCRkFsT0s0QzhoNmZmdnFwdzVqSXlNaFFpcmlyZ0x6SDNyMTdaYjQ0K0h4alltSmFsaXhaa2thT0hDbnlPTzZVVXdJbmlhOWRUTXpod1g2SHU5d0hHQVZObi9PSDRKeVFrTkFBOFFEb01RRytFKzUxSDl3ekRlWmh6emNxS2tyb1JGeXpCVFNmUmR0ZGNrcmdBazdnSzhjRWdvSkhTWlpoRWsxallWT0p1S3ZBQW5mMW5rZEFtbng5ZmQ5Z3JuNE1meDVDdlkwRFQvQlZpYmlyd09aeDlWNWhkZ2ErZkRheEVueC9HYnVBSTkyTmNrbzk3NlZ6SXg0UWZEa0dYbWV1WlhqWkVCTmZmdm1sVW1qeUFwelZBcXJmekFJQ3QyN2RPb2N4Y2VUSUVhV0k1d1ZmZlBHRmdPbzNzNEI1N04rL1grYnJ5eWlyeHdTdVlITzNuQkpHZCtEcktDWm1jeGlyUk54VmdIbE1lK0FLb1Q4NURxd3h3ZjM5dHM1M1BJdTJ1d0JYWGsyYlk4KzNUSmt5SzhGMzRwVHZhTVFFSGxXeGVMc0RSazhpR2pQaHBGMU1JQ2g4UER3OHpvckYrNWF5cVBUT0YwN1g2VVI3UTl0WmNhUldlMlU5VTJnNGtLNVBXaVJJTThkTTVob0FsQzVkK2l3Nlh2Qk5lakJmT04xak11M3ROTXFLSTEzSEtldVp3dEFGZEgzS0VoWGZuOEQzeGd3ZUtibFpUdW5hZlU4SXZxVktsVHFCV09CbFEweHMyTEJCS1RLNXhUUFBQRVB6NTgrbkJRc1c1TXRBWlBOUXhjVGh3NGVWSXA1YnJGbXpodDUvLzMyQi9CaUliQjRhMzdMZzYrbnBLV0lDL2V1R09hVnNZMkltbnllcFJOd1JFdHBsVWx5cnZWYTA2bmhPV2E5bGg3T202dG1pTzRmeWZiUC9GbUxNY1dDTkNabXZTc1FkWWNEUVRPbzljSzhWUTBhZlU5WWJQUEtzcVhxMmdIbmMvNENTNzAvZ08rdkJhOElRVlZOMHJnQnlTdE1mK05NdUpoQVV2dnh4UXl4T2VaUW9na1U3SC9qNjJiZnA0czc5VnB6NzZITzZFczRNRkhWelJBTTJqL0VQQ2RMYzBiOHgxMENBZCtBR09sN3dWWWw0THZEMXU2dm80b0dqVnB4YnY0V3U5Sit0ckpzallCNlRGaHY0Wm1Sa2xHZStOd1hmV2U2WFU3cCszK002MzB0NlVNZ3hnVVNxU21SeWc2VkxsOUtERHo0b0RBUll1SENoc3A0WndEdysrK3d6aHpGeDZOQWhwWWpuQmhnTm9DMFlDQUJ4VjlVekE1aEhXbHFhekRjZ016T3pnaDRUcUdPN2o2NEU5bFUzRDBjeE1YMHVVZnNlNXZIUjZyOXBYOXBGS3g1KzVDZ2xkczh5MUduWDlRbzkvYy9NMi9YMi8wcFAvdk9tb1k0amRPTlF2bmVtVll5dE1TSHpIVGZGUFA3NzFkOTA2UEJGSy83NXdsRWFNem5MVUdmMHhDdjArbHVadCtzZCtaWGVmdSttb1k0ajRMNlBxYk9NZktFVHpQVW0rRDR3NzZhWU1sSUp1U3ZRQTlPQ3M2L1l4WVFlRk9JSG1yUkVMZUltY1Q2c0cyWDkvZ2R2MGxqT3RSbXVySjhqWUI1akYrcWtzZUVnZ0E4ODBmR0M3MENPakR6aS9OMzNVZFlmZndxT2NqbkhiYXJxNTRnaDg5anNIamJ3WGJKa1NiQ1Y3M1QzeXlsZG55SnlOT0NIamtBc0dHSmkvZnIxU3BFeGk4Y2VlNHdlZnZoaE1kcDQ2YVdYNk9XWFg2YlhYMzlkV2RjTVlCNWF6a01aRXdjUEhyUVQ4TndBeHZIdmYvOWJDQ2hHT0o5Ly9ya3dVRlZkTTRCNTdOdTN6MkZNRk9TMFlFRUEvWXQ5MXZncVkrTCtCOVFpN2dneitOQ1F5K1hMV2RTcDV4bERuYnNIWkdpL1dzb2ZmOXlpWGdPTjIzR0VyaHpLOTB5M2lyRTFKbVMrS2hGM2hLZWZFeFNzNVk4L3MyajBoRE9HT2hQdk5mTDk2NjliNGlvcXVZNGpJSGsvWllhUjc2SkZpMEowdnJNZXZLa2NZYmtLR05uZFA4dHFIdGFZTUpvSEN4OUYzSjFuZkR2aElmU2pYVG16K0VWbC9Sd1JPNEN1ajVvbmt6YWFCL2dPbkpObmZMdjRKY0hQdHB4NTVRTmwvUnd4NUVHNlBrWWtscXg4V1NoQ3JYeHhINGhLeEYwRm1NZGtTMDVKRGdydFUzd1BFVldKakJub3hnSERnSEhBUU41ODgwMXhOcStxYndZUU4xeHRKWEUyeE1TQkF3ZVVJbTRHdW5GQVBHRWMySGRNSyszY3VWTlozd3lraExreUpncHFXaEFvNkp5U281aVl5aUxadm52dXNPcVRtN3lKMitXMU4wOVJ1eTVYeEcrdE8xMms1QzNudFY4czVhRkgxTnRSb1N1ZlowNjYzeXJHMXBpUStZNjlKM2Y0Y3BPUjd3ZkxUOUdvQ1ZmRWI4UEdYcVFkdTR4OFgzcGR2UjBWY01YVjVHbEd2b3NYTDY2bDg1MHh4LzNNWStxTW5NeGpESjl4cTBUY0JMTENlNGtwS2xXNW5IR1Nyb1F6QzhWNjJRTG1NWHl1VE5wb0h1QTdnRVU3RDhqcVA1dk9yVThSL0d6TDVaUGYwSlcrTTVYclpZdkJiQjRqaldZM2QrN2NPbGErOXo3T29zMlJuZzhVZUU1cGduV2F6Um9VMnFmNEhrS3FFcG1jb0J2SHE2KythZ1dNQTZPR0R6LzhVTG1PR1VEY1B2bmtFNGN4a1o2ZXJoVHhuQ0NQT0hSQTJIR1o3ZGF0VzVYcm1BSE1ZOCtlUFE1am9pQ21CWUdDekNsSjA0TEttSmd5Z3lpUlJUczM2RG5BTXBxUVN5OGViZUMzQ1ZPTVovRmJkOXl3V3o4N2RPRlFuampWc1htQTc5akp1Y05VWGdlakNibE11Q2REL0Radm9aSHYvdlFiZHV0bkIxeHhOZkUrSTk4NWMrYUU2WHluemM2ZGVSUjJUcWtibThlVWFUbVpCd3NmUmZUS0UzNXN4QzFJNWNiR25kcVNwWnh1UFVTNVhyYUk3VWZYaDh5V1NSdk5BM3dIOEpnMEQvZ3hpYzFCS2pkMkg5YVdMT1gwU0I1cks5YkxGb1Btc3RuTk1mQTFtTWRrTjh3cGpiWG1sS3hCb1gySzczRVdxaEtaN0lBY2g2MXh2UEhHRzJKYksxZXVGRWxvMVhwbUFISER5RVhpYklnSkpLZFZJcDRkVk1ZQlVjZUlZZHUyYlpTY25LeGN6d3hnSGpBZ21hOGNFL21kRmdRS09xY2tUUXNxWTJMU05MV0k1d1E4MGtRdW0zbTBFZC82Q0IwL2NWbjdCZ1p6a3dhUFZxL3ZDRENQY2ZjNk5nL3dIY09pblZ1ODlKcWdaQzBZYmZSSk9rS252NzdOOTgrL2J0SURDOVRyTzRJbGNlN1lQTzZiYVM3WG82T3djMHFZRnB4OFgwN21NWXdGazBjUWVjSFpXVStnTDI4WDNBUW5sWE52ZmFoY0wxdkVzSG13eUlPYlJ0cG9IdUNMNUhZZWNQYnB0d1F2YTdsbnFiWmdLZWRXclZldWx5MlM1dGlabmNFOEpyaFpUaW1XeldPME5hZGtEUXJ0VTN5UHMxQ1Z5RGdDaEd6Um9rVWlyd0hUZU8yMTEyalpzbVZpQktNYlIzNXVoTXZKUEpDY1ZvbTRJOEE0bGk5Zkxzd0NwZ0V4eC9leWNlQkdQOXYxekFMbXNXdlhMb2N4Z1RaVisya1doWkZUc3BrV3RJdUpDZmV4R0hYTEc5SVBHcWVEMXE0N3B5MVpDcVovVk90bEI5elFOdVlleCtZQnZyamNOQzg0ZHR6STk4dU5ScjRyVnFyWHl3N0llNHkxNFN1Yng3M1RjMmNlenNncFRidzNKL01ZekFLSXM5aGM0a3JkN25UK3Yxc0VLWlJyUjArTDcvLytjcnYyRGRHVjczNmt5eXgrdHV0bWk1aStkTDMvTkptMDBUekFWeVhpT2VCS24rbDBmdXNld1F2bDJ0ZmZpZS8vM25sUSs0YjUvblNCTHZlKzMyN2RiQUh6U0pwaDRHc3dqN0Z1bUZNYVlaaG1zeE1LQ0lsS1pGUjQ4c2tucmNZQjA4Q25iQnd3amZ5TU9nQ0kyOGNmZit3d0ppRDZLaEZYWWRXcVZWYmpnR25vaVhIZE9HQWFNQThZZ08yNlpvRjFkK3l3M0tHcmlvbThUZ3NDaFpWVHNwa1d0SXNKaUo5S3hNMWcwQ2dXTng1ZHFFcjZ3UnZLZFhJQ3pHUFVSTWZtQWI2akorWU5zK2RaUmhlcWNpenpobktkbkREdUh2NmM1Tmc4N3JtZnpZTkhWTGxCWWVlVUprekp5VHdHekZTTGVBNDQxMmFZSUtTWDY0KzlJYjYvT2NkNDJjSTMzY2ZiclpzdFlCNTk3cE5KRzgwRGZQdk55alhPalhwUThOSEw5YmZYaU85dnZyUkMrOFpTdnBtOHlHN2RiREh3QWJyZWI3cUJyOEU4UnJsaFRtbW9JYWRrSnhRUUVwWElxUERJSTQ4STA4QVVsUTZZRDg3dThidHVIUGtkZVVEMEpjNkdtRUIrUVNYaUt2em5QLyt4bW9ZT1RESEJPQ0Q2dW5Ia2QrU1JuWG5rWlZvUUtNeWNrczNJemk0bU1QV2lFbkd6ZVBjRDNwcWk1TldVWUI0anhqczJEL0FkeGFLZFYzenltYUJuVng1NlZGMC9KeUJwUG5LQ1kvT1lPUFdtM2RSY1RpanNuTkxZeVRtWlI5OXBMTm9zUXJuRW1jVXZDRkxXa2pqVzhsdlRKTzBMUzdGTVhkbXY3eERSZmVoNnIzdGwwa2J6QU45K01KRGM0Y3hMN3drKzFqTDVNY3R2SXhab1gxakt1WlZmMksyYkxRYk9wdXU5aldabk1JL2hicGhUR21TWVpyTVRpdHlleGNyR0FUejk5Tk9FMFFjTVE0WnFYVE9BdUdFVUkzRTJ4QVRFWHlYaUtrRFlaZU1BVnE5ZUxYNkRZY2l3WGRjczBNYjI3ZHNkeGtSdXB3VUJKK2VVN0dKaUpBdGcyNjU1UjhzT0Y4WFVpbHpXcnZ1Uno1Q3ZLT3ZuQk53VE1YU3NZL01BMzFFVDhvN0JJeStLeTNYbDh1WEdIMm40bUN2Sytqa0JTZk5oNHh5YngvZ3B1VGNQb0RCelNyaXZCZHprbURDYXg5MVRpZXF5YU9jQ1Y4SzY4Wmt2YmpxMGxHdEhUeGwrRjM5ckJWTlg1MnQzTnZ5ZUxlcXplZlNZTEpNMm1nZjQ0cXFvWE9ESzNmZlQ1Wk5uQkIrVWE2ZS9NL3d1L3RiS2xSL1AwM2x1WC80OVd3eGc4K2hwZWRpZ3p0ZGdIa1BjTUtmRW96ZUpyNTFRUUV4VklxTUNoQkRDaFROZ2lCaytIMy84Y1pIQWhZSG85ZDU5OTEzRGVya0J4QTBqR1lteklTYVFYMUNKdUFvWXBXQjBnYXVxWUJ6NGhQanFOd1ZDK0hYWXJtc1dXQmNqR1ptdkhCTVlLYWoyMHhHY2tWUEMvMXppYXhjVHc4ZXJSZHdNMm5USm9uR1REL0htakFWbWNsZmZROHAxY2tLbm5pendveDJiQi9pT1pOSE9DMGFNeTZJSDV0bnpoWm1NbVhoSXVVNU93RWhveUJqSDVqRjI4azNsQ01zTUNpdW5OSEo4VHVaeEY0OGJWU0tlRGM2MjRqTmVxV1F1K2lkdHFON01Ddnd0bDI4bjhObTlZanRLd0R5NldoNFRyWkUybWdmNDlwMlJLNXdkOFlEZ29aZk1GOTZoRFMzN1dZRy81Zkx0d3p5cVVteEhpZjR6N2N6T1lCNUpzMW0wYmFibVRLQlFjMHI5RERrbE82RkFma0VsTWlvZ2Y0QnBJSWpYVzIrOVpUVVE1RUllZXVnaGc0SGtGUkEzVE10SW5BMHhrWnQ3TXJaczJTSVM3QmhaNEdZOTNVQXdMWWFycjFDbklNd0RsL3JLZk9XWUtBSTVKYnVZR0RxV1JidEwzdENoMnhuNjRZY3J2RG43c2pmdElyVklQSzljTHp0MFpLbElHdW5ZUE1CM0pBd2tEeGcrNWd6OS9MT2E3OEZERnlscDJIbmxldGxoekNUa2ZoeWJ4K2dKZVRlUFFza3A4WGttUmxuZ0pzZUUwVHk2OFY3VjdaRXJuSDNXNXFxbEhNcVBtTGRYYkVlSityM3BlcWR4TW1tamVZQnZuK201d3RsM1Znb2Vac3VQWHlRcnQ2TkV2eGxzZGhNTWZBM213ZWFpRlBFY1VHZzVwV2cyRCtNMG01MVFRSlJVSXFQQ08rKzhReXRXckRBWUNNd0RlT0tKSjZ3amtQeU1QQ0NPYUVQaWJJZ0o1QmRVSXE0Q0hqZWZtcHBxTUJDWWgyNGc4Z2pFZGwyendMcG9RK1lyeDBRUnlDblp4UVFFcWcyTGRtN1Jzc05sZXVXTjJ6TVJLTGJ6OU5ObUg2TFduYk9VNnpzQzdrVVlNTXl4ZVlEdkNCNm81eGFEUjE2bTl6NHc4clc5OTJQUkk0ZFlXTE9VNnp2Q3FJbk1kN2hqOHhneEx1L21BUlI0VG9uTlk4aW9uTXlqTTR1UFNzUWQ0SEtkTHVLTU56Y2w2L2ZMZEw1MkorWDI3RkQvYnJyZVliUk0ybWdlNEtzU2NRZTQzSE9LbUlyS1RjSGpTODUzNS8rMlludDJnSGwwR212Z2F6Q1BQbTZZVStwcHlDblpDWVV1VEdZQVU0Q0I2RmN3UWN6ZWZ2dHRZU0lBRENTL0k1RDMzMzlQYkYvaWJJZ0o1QmRVSXE0Q2hCMEdvbzlBOVBzNVlDS0FQQUxKSzlBR3RpL3psV01pTjlPQ2dHd2NRR0hrbEd5bUJlMWlZdUFJdFlqbmhFRWpqSW5iSDMrNktiWWxGMHhmSlhZOXFWemZFV0FlL1lZNk5nKzBvUkx4bkRCMW1wSHZoVjl1MmwwVys4Y2ZXVFJrNUVubCtvNkF2RWQvRzc2eWVRd2JjMU01UFdjV0JaMVR3dk90Qm8zSXlUemFzeWpWN1c0YTMzVGorbmtvWDQ5L1VMazlPOVRyUmRmYmluY0w2S1NONWdHK0VHU1QrR2JpUXRGK2JzdlhELzFUdVQwNzlKdE8xeE9OWm1jd2oxNzM4WDV4cE9jQ2haNVQ2bjZQWFZCb24rTDczRnk1QS9QUW9Sc0l6dDUxQThFbmNpQ1l0MWV0YndZd0R3aTZ4TmtRRThndnFFUmNCUWk3RHBXQjRCTWpMNGlwdkY1dUFITktTVWx4R0JPNW1SWjBWazdKWmxyUUxpYjY4MEM0RFlkWmJ0Q3N6Vmt4TFNXWCsyZGJmbHYybm5HYTVmM2xaNmxGNGtXN2JUaENCejdQN0RQWXNYbUE3M0FXN2R5Zzc2Q3pZbHBLTGt1ZnR2eTJlcTJSNzhkcnpsTFM4SXQyMjNBRTVEMzZEbkZzSGtORzVkMDhDaU9uQlBOSUdwYVRlYlRsOFYwWWk3WkpmUGZtZndReGErR3pXRlU5YW9kM3ZkOHVtTC9QcXNQaklWVmRHVkZzSHEyR3k2U041Z0crdUJmREpMNzdjSjFvMzFxbVA2V3NSeE1XYXhVczVYenFic3BDY2w1VlYwYmZhWFM5amRIc0RPYlJ3dzF6U2wwTU9TVTdvY0RsckNxUlVRR2pEdmxUdjJ0Yk5oQWd2K2FCN1VtY0RUR0JLU0tWaUtzQVlkZEhIL2lFeU9NaGhyWWprUHlhQjZiRVpMNXlUR0IwbzlwUEZaeVZVOEwvWE9KckZ4TjlPU1JiczJpYlJjdU9WK2lwWjIrZkFLR2ticjloL1IyUHY3Q2RweDg3Q2ROWDl0dFNBVGV5M1ozazJEekFkemlmWjVvRnBtaGVmZDNJZDkvK0c5YmY4U3BaMjNzL1pzODlaTmhHZGtEZW8vY2d4K2FSTklMTmcwZFVlVUZoNVpUNkQ4M0pQRnJ4K0U0bDRncWNyOVZSVEVIcEpldjduNVQxZEZ5VnpwQlJmb3p0cGF4bkFNd2pZYWhNMm1nZTRLc1NjUVhPZDV0Z2VJSnUxcysvS092cHVIcjZXNjJtcGZ6WTM2UjUySmlkd1R5NnVtRk9xYU1ocDJRbkZNZ3ZxRVJHQlhua0FRT1JSeURZRGd3RXlFMGV4Ull3RDV4OVM1d05NWUVSaEVyRVZaQkhIcnFCNkNNUTJZUnlNNXF4aGI1ZG1hOGNFMFVncDJRWEU3MEhzV2gzTW84ZWZUSU0weWd3aWdFOEdwRHI0S3hlTHVkWUFPTmFuVGJVY1FUY3lOWnpnR1B6QU45aFk4eGp6UGdNTVIybGx6Ly92RW5USHpEV2VlTnQ3VWV0L1BUekZlbzk0TFNoamlOZzZxclhRTWZtTVdEWVRidXBPVE1vekp4UzM4RTVtVWNML28vaWloMFR1RFRSZUxmejllZmZWOWJUSVg2WHl1K3orYXhmVWMrQXFKNTB2ZGxnbWJUUlBNRDM3dnRNNGRLU1YwUzdlcm0rbkVWV1VVK0grRjBxdi8vakhXVTlBL3JjVDlkYkdNM09ZQjZkZUx5cUVuRUhjRXBPcWYwWXU2RFFQc1gzRUgrVnlLZ0FjZE9oR3dpQUVZaCtPU3hHSW5tNXQwRUh6QVBDS1hFMnhBUkdEeW9SVndIQ3JrTTNFQURid0RPeVlDSVlpZVRteGtOYjZOdVUrY294VVFSeVNuWXhnY2RhcUVSY2hWWWRzeWhsS3paenV5eDdUMTMzNUNuajJmd2J5eTRxNjlrQzV0R2puMlB6QUYrVmlLc3dkRlFXN2Q1ajVMdDZyYnJ1TjJlTmZQL3owVVZsUFZ2QVBPN3E3OWc4K2czSm0za1VaazZwZDFKTzVzRkNyUlJ4RlNZdklYcmhnOXRvaHlrdlJUMGQrRjJ1ai9WVjlXVEFQSm9PbEVrYnpRTjhWU0t1d3VOOEJyOWkvVzJNWDZTdXB3Ty95L1d4dnFxZURCNTlYRzgyeU1EWFlCN3VuMU95RXdvSXYwcGtWTkROQXRDRkRrS0dUd2crNXZlUklNYmZxdlhOQU9LR1Q0bXpJU2IwS1NjejBJVWQwTTFEL3g1VFRiaHlDOUMvend2MGRXVytja3dVZ1p5U1hVemMxVjh0NGlyZ1JVMHdDeG1xZWdBdVlUVmJWd2JNbzFzZngrWUJ2a05adE0wQUR5MzhtTTFDaHFvZU1JOGx3bXhkR2NoN2RPL3IyRHo2Sk4xUzVuYXlRMkhubEhxeDJZR2JIQk5HODhEVk95b1JkeFZnSG8zN3k2U041Z0crS2hGM0ZXQWVObVpuTUkrMm8zbS9PTkpOd2prNXBSRjJRYUY5aXU4aFRpcVJjUlVnYmhCUGliTWhKdkp6TjNoaEFPYUJ2SW5NVjQ2SklwQlRzb3NKdk4raEZZdTJ1MERjQlgyM1kvTUEzNkY4aUxnTGtQZm8ydHV4ZWZRYWNNdVEwOGtKenNncDlXQ3pBemM1Sm96bTBYZ0FpMHBYOTBIVVhYUzlZVitadE5FOHdCZUpiSGRCNzZsMlptY3dqMVlqZWI5c0JOd0JuSmRUR21ZWEZOcW4rQjVUSXlxUmNSVWdiaEJQaWJNaEpqQ0NVSW00cXdEendKU2R6RmVPaVNLUVU3S0xDVHdvcjFWSDkwRTdsb3JPUFIyYkIvaXFSTnhWZ0hsMDd1WFlQTzdxeCtiQnBtZ1d6c2dwZFdPekF6YzVKb3ptMGFBZlVUak9XRzFFM0ZXb3grWVIwMXNtYlRRUDhNVVpmeThXYm5kQW4vdm9lZ09qMlJuTXcvMXpTblpDZ2VrbVFDVTByZ0N1QnNySlBEWnVWQXU1SzdCcFUvYm1VUVJ5U25ZeGdjZFZ0R0ZSVVFtNUs1RElvZHp4THNmbUFiNFE3U0dqM0FNajJEdzYyWmlkYkI3ZCs1ZzNENmZrbExoL3U3RFpnWnNjRTRhZ3VGYVB6MVliY0UvWFllRjJCelRxUTFkNDlBRnVHbW1EVUZ5TDdVUFUvMzRXN252ZEE4emxTcXpSN0F6bTBXeUlXc1JWY0ZwT0tja3VLT1NZd0puczh1WG04eDZGalJVci9pMnVMcEk0RzJJQ0FwcWM3RDVUVnlrcHllTHhJVEpmT1NhS1FFN0pMaVlTdS84bG5pZWxFbkpYQUNPTGR0MStGLzJwTW8vMlBmNFNOK2FwaE53VkdETVJaL05HdnJKNWRPMXQzanlja1ZPQ09XTmtCMjV5VEJpQzR1ZGFIZGhpeGhCRjlGQ0x1VE1SY1JkSHhUajZOaVJSSm0wUWlwOWhkSU5taUROK3BaZzdFMzJadzVDWjlHMkRuZ2ErQnZOb09rZ3Q0cTZDeUNrTnNBc0tPU2FlZSs0NUZxU1AzV0wwQVE1cjFud3M3cXFXT0J0aUFsY3ZiZCsrTFY5SjdvSUNPSUNMVFFMYUVCTkZJS2RrRnhQTjI1MFF6NHZDbFRndFdieGRDZHpFTm13Y1VYenJnNkkvVmViUnV0TUptblRmTFJvKzloYUx0MnN4Z2psTW5uYUxXbll3OHBYTm8zT3ZXOHJjanF1QVI1UmdaQWR1Y2t3WWdtSnJZQXpkaUdUUjdzWTIzWXlGTG9iRnVUNlBScHdKdE5tYzIrNDJucm4wcEs4Q28yWFNCcUhZR3QrVGJtQzBOR29lMGZDNVJBUHdpQkRjNmUxRW9NM2hEd29PNFBKVmsrNEd2ck5temFwdE5ZL0dBMW0wT2RyZEJTS24xTTh1S09TWVlQN2k3SGJ0MmpYaXlpQUlJUVRQbVVDYk1BVThCd3BjcGsxei9JS3dmL3pqSDJMMHNXUEhkbkhQQmhMb21NcHlKdEJtYXVvV3dRRmNjQVdVekZlT2lTS1FVN0tMaWZENnI3Tm9YNk1SNDRsNjlyZGNqWU41Y1dmQ2NnV1E1YkxYZHQyeUtLemVTNkkvVmViUnVQbnJYT2NhM1RmckZwdklUUjZGM0tTUjQ1MEx0SW0ycHpJSDhHMFliK1E3WThhTU9qcmZUbmV4ZWJBeHVndVFVK3JRUFFmejJPQVhTZWtWbWxBV0x1UHNpWHZvcHhEZGZRLy9sNXdFdE5XSDI3eHJBbDJyMjQzMk01ZlZ2dUV5YVlOUWJHamVrOUtiOUtRc0dON1FXVVQzTENMQ0M1d21QZXdjb0szSi9EbDRKbDFqRHZ1WnkrcTRiZ2EraXhZdENyR2FSME9PZG5mTEtjWDJzUXNLT1NhbVRwMUtDeFlzRUZmeHdFRFdyZnVNUHZ2c1U4WmFKd0Z0ZmNadHJ4YlRWZUF5Y2FMakp5M2pTaU84VVE4MzB1M2N1WjEyNzk0bEh0UHVUS0JOdEkzOEE5N3loM3N2Wkw3ejU4OFA4ZkR3RUh3eG1uS0hVWjBPUlU3SkxpWnFoVDlCOVJwOXpDT1BxK0sxcXVQNWtOWGZ6KzBzb00xUjNIYnJ6bjlSdllZcktTUnNrZWhQbFhrMGpIdUM0bHAreklaM2xhWk12MFVQekw5SnN4bXo1amtIYUF1NGg5dHUyK1V2NXJLU1lob2IrUzVjdURCVTU5dWgreTIzeXlrbGRsV2Jodysrd09KSHZuV0ZnV3dKaUthdnE3YWdYME02ME8raEhaMktpeUh0UmR2Slplc0xMc3Q5dzNUU3Z6TFhBSUNGNGs5MC9FZE51Z2dEMmNJamtLOWo3NkpmbzNyUTcwN0d4WG85Uk52SnpBRmNsamZ1SlBNTlpERXB6M3l2Z2U5Vk44d3AvUlZsbldZRFh4OWVOc1RFdUhIamhJSHdtWkU0ZzM3eHhSZUZJRG9UYUJOdFQ1OCtYWEFaTThaNlk2TmRUTEF3Q3dQQjFCYW1YNUFId011Tm5BazhjZ1J0UC9YVVU0TEwzTG5XdHpYYXhRUk0yZDF5U25qc2ljVFhMaWFDNnl3VUJoSlc3MlZxMUh3SE5XLzNQU1VrL3VSVU5HLzNyV2k3VHRRTGdrdHc3WG5nQ3pHMnhvVE9ON3JSUW1FZ2padTlUTTNiN3FDV0hiOW5VZnpKcVdqWjRWdlJkcU5tTHdndTlSc1krQWJ1M0xtelBQOTlEWHpiZFA3RHZYSktMRm10TzEyeWl3a0VoVGZ2UUFZV0gvYXVJUVRibmZCQW1XcUN0S2VuSjE0NlhoYnc4dkxLUU1jL0hCRW5CTnVkOEVCWUl3UGZBd2NPQk9sOGo0VzJkYnVjMHY3Z1ZqSmZiMTQyeEVTUEhqMkVZTHNUT25mdTdEQW1oZzBiSmdUYm5UQmdnQ1d2eEJ6Qk55QXRMUzBRZlBFZFhpZnJiamtsdktWUTZsKzdtS2hjYmJnUWJIZEN4YXBKUW95OXZiMnRNY0Y4ajRKdnJiRGhRckRkQ1NHMWpYelQwOU9EZEw1TkV2YlJrTkh1azFOQ2ZxdGhNOHRyQmVTWVFGQ1U4ZlB6ZXgyTDFUMjg2QlBmY0tXSXV3S2YrVVZRVGVZRWJnRUJBZjlncm40QUw3OGgrSHI3MFNkeDNaUWk3Z3A4RnQrZGFucjdxL2lLL20zcEhVUlpmS1pQM2QwZ3A4UWNia1Qxb25iZTVRVGZzbVhMUG9WWTRHVkRUQVFHQnRLa1NaT1VJdTRLVEo0OG1jcVZzM0JXeFVTRkNoWEVDNU5VSXU0S0xGNjhtQ3BXckNqejlXZjRjbisvaHUvQ3dzTEVGVzN1bEZPS2pJek1OaVk4UFN0UVNOZ1NwWWk3QXFGMUh5RlByMHFDTThmR000Z0h3Ti9mWC9BdFU2WUN4VFpab2hSeFZ5QzJ5U05VeHRzeDM3SUJjZFM2NDFWeFA0aXJjMHJnMExyVGRRb0lhbUVYRXdnS3o5RFEwSzRlSGg3ZjQ4K0VVdjRpejZBU2MyY0NVMmpOU3ZrSnd1Qld0MjdkVHN6VkcrQURycHVWYjdrcUlzK2dFbk5uQWxOb3pZSXFxL2o2UkVSRUpQSjNGL0RiQXdHMTZIbzQvMmQ2VGlUcWU2OXJja3JjOXRYdzdqUWpJTVRLdDM3OStzMFFDL3kzWFV6VXJsMWI1QmxVWXU1TVlBcXRWcTFhT2NaRXZYcjFSSjVCSmViT0JLYlFJalVoQnJmdzhQRE9pQWZ3bFdPaWE5ZXVicEZUd25TVlBxb0QzK3hpd3Rldm5zZ3pxTVRjbWNBVW1vOWZsREltNnRTcFk0MkpnS0I2SXMrZ0VuTm5BbE5vQVlGS3ZqNGNIOWFZcUZaekNyWHM4TGQ0ZlB0NFBteHhtYTB6TVk3YkhEbmhGclZvL3dkVnJUbEpHUk1JaXRKOFFEYm5zNk5KUEl5NmhLOHFsQ3hObzd3cTByUGVJZlNTVDZoVDhZeDNzR2c3c0dRcFFaZzVYYTVjdWZJNFB0amltS3NYd0IyZVlPRHI1VTJqYWtiU3MvVmIwa3N4Ylp5S1orcTFFRzBIZWxwR1NDcStyVnExQ21PK1UvaTNLNmdUNCtsUG4xVnVST2RDRXVsOGFBZW40anR1RTIySGxmWXg4RzNkdW5VSVlvRy9VOFlFbjNWU1FrSUM5ZS9mbjVLU2tweUt2bjM3aXJaOWZJeWNzNHNKUHNzWFFnalRtekpsaWxNeGZ2eDQwVGI2VE1HM0RNTXpQajYramh3VDFhdFhGd2FKcThWd2ViUXpnZndRMnE1VXlYSTJyUFBOS1NaS2xRNmdjaFc2Q0hHcEhqTFZxYWhhYzZKb3U1UjJncWx6WnJPMnhnU2ZVQmhpd3RNcmdLclc2RUoxb3laUlJQMnBUa1ZZNUVUUmR1blNqdm0yYU5IQ29CTStmQklkR2JPY21yWThTWEd0djNVcW1yUTRMdHIyOWc1MUdCTUlDZzhPaWxvY3ZKMXIxS2lSNU9ucHVRTmZ1d05LbFNxVlVhVktsVkhneHVKUWs3bVdBb29ZMzlMcjE2OHZFeHdjM0FhZHozVk9xZFoxQlhTK0lTRWhyZFBTMGp3UkMveDljVXdVSUdTKzBkSFJ3WWdIb0RnbUNnNUZPU2FLc2s0Z0tFcnljTld6ZlBueUxiaENKeWJmaFplbjgxblRNaTh2cjFUc2hEUEJiYVp3MjIrQ0E3aUFFN2lscEtUZ29QTUFpaHBmUnFuRXhNUWcvcTBEeDNQWGN1WEt6WFlYdmxXclZrM3MzcjA3cms1QkFKY3Nqb244d3dUZmtvemltTWdIVFBSeHNVN2tBN1o4VlRFaGdnTGc0VlBab0tDZ3RoVXFWT2lFSFlNcllpWHNoQXgyeWdLRjdmYlJKdG9HQjNBQkp6NWpRNUpSOEN5cWZCa2U2SHl1MTl4ZCtISkF4QThjT0JCY2RVR3pDZ1ZRSEJQbVlMdjlIUGhhK3hyTHhURmhEcmJiejZHUHJTaldDWE93M2I3TTExRk1JQ2lzZ2NHa2NVVkZBMzkvL3c2QmdZRWRzWk02c0pIQ2hOd1cyZ1lIWDEvZnBseDhkWDRhMXlMTGx5SE9McUtpb2lxRWhvYldybG16WmdQZUZvS2tPUSt0RXdvVGVqdmNaaXpham8yTkxhZnhrY1dzT0NieUFibXQ0cGdvSE1odEZjZEV3VU52eDB4TTZLUU41SG00Rk1qT0dNbzdHc003R2g4UUVPQVVvQzF1TXhwdGc0UE9SK09tUXBIa3EwSC9oNGhBY1JMa05tVXVWbzdGTVpFLzVJR3YyNk00SnZLSHZQTFZJQit6cW1PNk1DQzNLWE94Y2l3dXhhVzRGSmZpVWx6eVZtUTMwV0IxbWh0SGwwUXo0cHlNS0prRFE4VlJScEhsNnlZdzhNc3BKbEpUVTZPM2JOa1M1MHh3bTNudTQ1TW5UMFl6NHB5TS93OHg0VXBnS2dYM0d3eGl6R0E4eG5pTzhhWUdMT003L0lZNkNReXNvOXFXUzNCSGxHOW5XOEE3cEFlT3g0Mk1oMmZkeUhqb3dvM2pDK2ptOFhsT3hZM01CU1Rhem5oNEVyam92Q1NlT3V6NW5saENOMDgrNGxTZ1RSWGZzeTkzTEFId3NoMWZEZm9RRVZkYk9CTzJRMVBCUys5ZmxLbFRwd3JvdjZGZVNrcktyT1RrNUF0NFYwWnk4aVluQTIwbVgyQU9oajZXZU5yMThmSGp4MmN4TG1SbUhxTmp4NDQ2RldnVGJUTU1mSmN1WFZvQzRHVTd2aHJjS2liMC9rWGh2L09GL0JSZUgvZEN6R1I4d3ZpV2tkZUNkYkVOYkN0TzI3eFRDcmRYWVAzaE5rVXlEaEc4TnpNZSt1alc2VmxFMy9SaEpETGFPUmxvc3orQkE3aUFrOFpOQ0J4LzJ2UDlkaW5SL3g0aSttMHVZNDZUd1czKzhoRGRPcnZVanE5a0hsYStEQnlzdUZaYTNCakV3RTFqem9UZUxqam93bUh0WHhUSk9BUm5GdTJQTm0zNlVqekN3aFhQWUVLYnExYXRwRTJiOEhLbEZFTWZTK1poNWN1aS9kR1JJNGRvMjdaVWw3eFZFRzNpUFI0WkdZZGhJZ2Era25rVWlaaHdsWG53T3YwWWVJbi9PWWFoWExwMGlmYnYzMDlyUC8yVTNucDdHVDN6ajJmcDBjZVcwcno1QytuQmVmTnA4WkpINk1tbm5xTFhYbnRkUEJoeno1NDk5TnR2djJsckd3cTJqVGI2YWMwV1d1RTI4dFVmYmxsNFIyNEw4ZEZGbzIrZG1zM2kzWkhvREF1NUs4RWNicDE2Z01BSjNEU080R3JrK3cyUFRuK2JSL1FyQzdrcndSekFKVHUrREJ5Y09GaTl1M1RwVWpzaUlxSzFzeEVXRnRhcVo4K2V1RXNVajBRQUYzQ3k4cldOQ1JicjBaczNmMFY0VkxkSzJKMEpjQUFYY0FJM2phT2hqMW1zUjBPMDhWNE5sYkE3RStDZ0dZZ3RYM3dLdm95aUVoUDVncG5DOVpveVhtVWNabGpMc1dPWjlPNi8zcU1ac3g2Z3Uvc09wR1l0MnVRYURadkVVOXZFRGpSbTdEaDY2YVdYNlBCaFF4TW8rQUp0RjhxSWhMZWI2LzV3KzhJN29nZXgxODJNK1lmbzYwRkVYN040dXdQT0RHRXhYckFEM0RTT01peDhmMzZZUngwUHVBZVlpd08rT0p2RGQ5N1ZxbFhyVTdwMDZUM28rbTVOSzFGU20ycE9SY2RHRlJDNWVCVDB0dURnNEs3Z3BIRURUK3ZkeE5yZlhzbkp5WWZ3MUZlVm1Mc0NhOWFzeGhTV3c1ZzRkdXpZSWJ4TFF5WG1yc0N1WFR0WS9JN0pmR1hUc0l1SkJnMGFpRWV4T0JNeE1URm1ZaUpmeUs3dzc0a01UQ2RaeTlHalIrbVpaNStqbnIzN0tjMGd2MmpZcEJrMVQyZ2hIcGQvNE1BQnJWVnJBWmRFalY2QkZONmU2ZjRvTW9WM1JCeDBESityQitkazBkYzg2ampkMWszUWpmNU1tLzAzYzlPREdRY2NoQmhuUnhhK0Z6QnR4TUx0RHJnd3p5RmZQbHYyOS9iMmZndGQvdEhDNW5SMTMweTZjWHcrM1R6K29GTnhJM08rYVB1dDZVMkVZUGo1K1QydjhSVm5tN1l4c1dIRGhpdzhlVlVsNUs3QWloWEw4WklsaHpIQlo1UlptemU3ZnRTaEErOHdUMDlQMS9ucVhQRnBpQW04SFZGLy83bzY3MU9ZMkN6YTFsK3k1U0FtOGdWVjRlK2JNOVl4UlBucnI3L29nMzh2cHlIRFJsSjhRbXVuSWJwQlkwcHMzMEU4NSt2UFAvR3VJMnNCdCtZYTNYd1YzazZPL1ZIa0N1OElBc1RieDhmbnFac1pjNGhPOFJuL0tSWnVkOERwVHZUcjdtbms3KytQS3lmd05GSUloQkFKSzk4THM5MEg1K2RreC9kRmRQZUo1WDNwNXVtWjVNcWMwcTB6L2VqbXFWbUNDemhwZklWWTJNWUUzc090RW5GWEFVYTJkdTFhaHpHQk0xYVZpTHNLZUNYdDd0MjdiZm1pcjYweGdUY2ZidHlJbk5LSExzNHBmU200T0lpSmZFRXUvRGRNZnhsRGxOOHZYNlkzMzFwR25idmRwUlIzWndHamtlaVlCdlRvbzQrS3ZJcFV3TlZMbzUrbnd1czc3SThpVzlBcEVSRVI4Yng0NDJZR0MrQkpGbTEzd2FsTzlNZmUrOURUTjVvMmJSckxYSEh3K2VDeHdGYSs1MmU1RDM1K2dQN1lKOTZ2YmVBYkdSblpBbDM5L09RWUlkcnVrbE82ZVdxMjRDVHhGUWNJUHZXWWdBQ3FCTWRWUU43ajAwOC9kUmdUR1JrWlNoRjNGWkQzMkx0M3I4d1hndXdiRXhQVHNtVEpralJ5NUVpUngzR25uQkk0U1h6MW1NZ1g5TUxMQXhuSEdIVDkrblg2MS9zZlVJZE8zWlJpN2lyRU5tcEtFUkZSNGduSDE2NWRBMVVVY0I2ZzdVYXVDNityN0k4aVhYaEhlT1JzR1RyZnpHQmhPOUhHZlhDeUkxM2RQeFU5VGI2K3ZtOHdWN3cweForSDFXL2p3Qk44ZjNZai9QUUFYVTBYNW1IZ3kyZVlLOEgzMHFZeDVGWTVwYStIMElYMXd3VmZqb0hYbWF2KzRoOXJUSHo1NVpkS29ja05jRFlMcUg3TExTQnc2OWF0Y3hnVFI0NGNVWXA0Ym9CM2p3T3EzM0lMbUFldURKTDQ0ckVVWmZXWXdCVnM3cFpUd3VnT2ZHMWlJbC9RdG1FZGJlemV2WWY2SncxUmlyZTdJQ3c4aWswa0FoZG9hS3hGV1NaMkpwZUYxN1ByanlKZmVFZDhQRHc4em1MeDVwRVpSTWRadEUzaTlGZnh0T0h0bUJ5eDR6OE5SZDJzbzYyVjIzR0lFeDNwK3Y0cElwQ1pZeVp6RmU4bUxsMjY5RmxoSHVENzAwelRPTDFyTEczNFQ3OGNzZU96d2FKdTF2ZlRsZHR4aUI5bjAvVUQ5NnY0L2dTK053NXdIVGZMS1YzZlorRmJxbFNwRTRnRlhqYkV4SVlORzVRaVl4WXdqUVVMRm9nWEl6M3p6RFBLT3JtQmJCNnFtTUJWTkNvUk53dVl4dnZ2dnkrQTk1R3I2dVFHc25sb2ZQR0sxQUJQVDA4UkUraGZOOHdwcVdJaVA4Qmp4Ly9MRUdmeS8vakhQNmtaQkxwNUs3ZEhYSHdMcWxxdHVzaEpYYjE2RmJ1QWduMnBpWDR4VzdpK0FYZEU0UjN4NVk4YldMeDVaSnBheEIzZzRtbmN6Smx6dWZ5L1REcTEveFhhczdwMTdneUV6U05yLzJRUnlIeWc0VUp0UEJjbWtJUDZoc1U4bU8rUEVHMXp1UGpkV3NFbnAzTDUxek4wNnZDSHRPZS9iQ0Rmc1lFb3RxWEVEN01wNjRCbHBLVHp6Y2pJS005OGJ3cStoMmFUVytXVVRuV2lySDFpV2hCOE1jbXJDNFUxSnBCSVZZbU1XU3hjdUZDWUJ2RGdndytLTit5cDZwa0Z6QU52dnRNNDI4WEVvVU9IbENKdUZoQnltQWFBOWpBeVVOVXpDNWhIV2xxYXpEY2dNek96Z2g0VHFHTzdqNjRFOWw4M0Q1dVl5Q3R3dC8xWkJuMzMzWGMwWXZRNGlvTW9GekhVREE2bHVMZzRPblBtREhZRkJUY2NScUZ2ekJTdWE4QWRVWGhISUJRaVdHNGVtVXFVeWFKdEVtYk5ReTh3a1dQL1pmRlViRXVKNHpBUHl4VWdITWgvOENhQ0FEN3c4TGVGN3c4OCtqQUpzK2FoRjVqSXNkVEp5bTJwTVl2TjR4NEQzeVZMbGdSYitSNWlnMUhsZGx3R21NZTlPbDljWm9KWU1NVEUrdlhybFNKakZxKy8vanE5L1BMTDR0cDZqRUllZnZoaGV1eXh4NVIxelFEbW9lVThsREZ4OE9CQk93SFBEV0NXbjMvK3VSamRRRVQxOTN1cjZwb0J6R1Bmdm4wT1k2SWdwZ1VMRXVoZjdML0dWNDZKdkFCWFUvM0ZvSlF0cWRTK1UxZWxNQmNWMUkyb1IwRkJRYUovdElKOU0zVTFGdGN6NEk0b3ZDT1NlVXdod3NqQUpDNmV3aFJ1N3NxUEoxbkFGZHRTNGxnSE5vL3hjaURibUFmenhkU1NTVno4Tm5mbWdmTGptV1RsdHRTWXllWmhlZCt2enBlRkl0VEs5eURYVWVWMlhBWTI1NzFXczFPYUJ3UlVKVEptZ1RQNE45OThVeGdIREFSR2toOERnYmpoYWl1SnN5RW1jTTIrU3NUTll1Zk9uV0lxQ2ZzTkE0RlE1TWRBcElTNU1pYnlPeTBJRkZaT3lTWW1jZ3MrZ0MzbGs3V2ZVdk9XYlpXQ1hOUVFGZDBBOThPSXZwSkthL1JSZG9YckdIQkhGTjRSeVR6NExEdUQvK2NtSVp2SDVmUDdsSFhvOUJpNjhlZEpyUlpSMXJYTDZub3FIRzNQNWpIV29WQUl2cGhXTWduWlBDNy83Nml5RHYzMEROMzQrM3V0RnZoeXM2cDZTc3hnODdDT2xBVGZ1WFBuMXJsdEh2ZmJUODFsZzBMUEtXRmt0OWM2TFNnTGhUVW1JSjYyQXBNYmZQamhoMktrQUFONTlkVlhyY2lyZ1VEY1B2bmtFNGN4a1o2ZXJoUnhzOWk2ZGF1NHRGWTNFQjE1TlJDWUJ4NlBJZk9WWXlLLzA0S0ZrVk9TcGdYbG1NZ05PQkF0NVYvdmZTQkV0Mm16bG5jTVlobzBvY3BWcW9tcnNhU1NyWUh3N3diY0VZVjM1TFo1SEo1SWRJVC83eVp4OGFTTmVTanFBTCtrczhqTFJWRkhpUXcyajdUUkRvVkM4UDEybW1sY1BIdjdKbFpoSG9vNndDK1pUMnUxdEtLb284WjB5a28zanBRTTVuRmdxa0xBSGFQUWMwb3dqejBHczdNekQ1eUZxa1RHTEpCNFhybHlwZGpPRzIrOFlXY2d1YzJCUU53d21wRTRHMklDeVdtVmlKdEZjbkl5YmR1MlRZd1dJT3o1TlJDWUI4eEk1aXZIUkg2bkJRc2pweVJOQzhveFlSYkljZnpPb0xlWHZhc1UzenNCc1EyYmlqNTY0b2tuc0tzbzJPZDY2Q3RWNGQ4TXVDTUs3NGhrSHVPSkRyVXlqWXNuYnB2SHBaLzIwY1d0emUxd2RrTWNIZDJ5UUt2RlovSlhmbEJ1UzRuRGlXd2U0cHB6cFZBSXZ0K3dhSnZFeFc5dW04ZWxDMGZwNG9GSmRqaTdmU3dkM2ZtU1ZvdjUvdjJMY2x0cXdEeU1JeVdEZWFSUFVlZDJIS0RRYzBxWkhTaHJ0OEhzN013RFo2RXFrVEdMOTk1N3oyb2dHTVVzVzdhTVhudnROV0VleUljc1dyUW9WNEtYazNrZ09hMFNjYlBBVFgyeWdlQTdDRHpNQTJheWZQbnlYQmtJekdQWHJsME9Zd0xiVmUybldSUkdUc2xtV2pBMzVoSE1FQTh5L0d6ZDUzZmNpTU1Xa2ZWaXhQOFFKeFZhd2I0SG83OXNDMzl2d0IxUmVFZXNRbkhyOEJpaWd5emFKaUdieCtWZk1tbnYydEYyeU56K0pHVmR2YXpWNHZMVE11VzJsRGlVU0RmU2hqa1VDc0gzelAybUladkg1WXRuYU8rR0JYYkkzUHUyWmFwS0w3K3VWMjVMaldsc0hxTWNDc1hOOUVuMmVaMXNVUGc1SlI3WjdSNmpFZ3ByVEVCSVZDS1RHOEE4WUNLeWdVRDBZQ0s2Z1R6NTVKUEtkVzBCY2NPVFVpWE9ocGpRQlQrdmdOakRQR0Fpc29IQU9HQWl1b0dzV3JYS2JsMFZzTDBkTzNZNGpJbjhUZ3NXUms3SlpsclFySG5nbVYyYkdiUnBjN0s0VDZKSmZJczdIa2lpNDMrSjBacFdraG5pZVdCeTRlOE11Q01LNzRoa0hxT0lEckJvbTRSc0htYkt6NW4vcHN2YkU1VGJVdUlnekdPSVE2RVFmTDltMFRZSjJUek1sSjlQZjBHWEQwOVdia3NObU1jSWgwSnhjLzhFKzd4T05uQktUbW1Yd2V6c3pBTkNvaElaczRCcDRCTUdnaytjdGNPUU1JV2xBeWJ5eUNPUEdOWnpCSWdiaEZ2aWJJZ0o1QmRVSW00V01BM2RRUEFKQThHMEUweERCMHprUC8vNWozSjlXK1JrSHZtZEZpeU1uSkxOeU02c2ViekxvTk5mZjAxdDIzZFdDdTJkaXBvaHRTZ3dNSkF5TTNFYmp5anZvcy9rd3Q4WmNFY1UzaEhKUEVZUXBiYzBqWXZIY1FPcStYTHgzRjdhczZvL1plMXJvZHllSFE2MFkvTVk3RkFvQk45VDk1bkd4VE5yQkErejVlSlBSMmpQdWhtVWRmeGU1ZmJzY1QrYmgzR2taRENQdEhIcTNJNERPQ1dudE5OZ2RuYm1BU0ZSaVl4WndEeGtZTlR4OU5OUEc4d0RVSzJyQXNRTkl4aUpzeUVtSVBRcUVUY0xtSWNNZkxkNjlXcURlUUF3QmR0MVZVQzk3ZHUzTzR5Si9FNExPaUduWk1ZOEJqUG83Ny8vcGdGSlE1VUNlNmNEQ2ZUNjlldlRsU3RYMEJVb1E5QnZldUcvRGJnakN1K0laQjVEaWZhemFKdUViQjQzY01aN09kMGVWMjZmRmFOZ0N1dTdMeE9WMjdORE9zeGpvRU9oRUh4UFRUVU4yVHh1WE9mTmdac3RydDYrMGdvRlUxamZiYjlIdVQxNzNNZm1ZVFE3bzNtTXRzL3JaQU9uNUpSMkRsVUpoVFVtSUp3cWtUR0xkOTk5MTdvTTQwQ0M5L0hISHhkbnloQTdmRUlBellvb3hBMmpGNG16SVNhUVgxQ0p1RmxBN0hYZ2I5dzBCM0hHMVZjd0RYeGlWR0oyaElQdFlQUWk4NVZqQXFNRzFYNmFCUXk1b0hOSytKOUxmTTJZeHlFR1BmSFVNOVE0THVIL0pSbzFiUzc2Yk1xVUtlZ0tsRVBvTjczdzN3YmNFWVYzNUxaNUhPSVRpRFFXYlpPNG1IbmJQQzcvekdmR2lqb0NlR0dUVkw3ZDk3UzZuaTMyczNuczYyODQ4QUNyZVlEdlNSWnRrN2o0OVczenVIemhxTEtPd004ZmFMVXM1ZHRELzFMWHN3T2J4LzVCQnI0Rzg5ZzMwajZ2a3cyY2tWUEsybUV3T3p2elFINUJKVEs1QlVUdG9ZY2VFcmtOM1RqZWV1c3RJWDZZQmtJZVFiV2VMU0J1bUtxUk9CdGlBdmRwcUVUY0xHVGpRQ0lVVTJTNmNlQ0dQb3hHa0pUZnNtV0wzYm9xWUZ1NC9GZm1LOGRFRWNncDVXUWU0cXFPZmR3bk9BTlhDZXYvRjRUV3JpditweGhwYXVWTjlCMEtMeHR3UnhUZUVjazhrb2oydGpDTmk4Y2s4L2hwcjdLT2prcy84dTlheWFtdUZmdmFzbmxZSGh1dUgzakFiZk5ndnBoU01vbUxwMWVMOWxFdVg4aFExdEZ4NlR6L3JwV2M2bHB4WWlxYmgzR2taRENQdmNQczh6clp3Qms1cGF3ZFNTcWhzTVlFQkVrbE1tYUJrWWMrNHNCbGpUQU9RRGFPRlN0VzBEdnZ2S05jM3hZUVN0U1hPQnRpQXZrRmxZaWJoVHppMEkwRGtJMGpOUld2dDkxb3Q2NEsyQjdxeTN6bG1DZ0NPYVhzekNPZVFWbFpXVFJveUFpbG9QNS9RNlhLVmFsaHc0YWlUN1FpM2t6SW53YmNFWVYzUkRLUC9rUjdXTFJOd3M0OEZIV0FjNTgzWlFHMkpwUG9MOHpmSytyWllXOGJObys3SFFxRjRKdUp5MS9Od2M0OEZIV0FjMXRHMGVYL2ZhM1ZaTDY0SjBSUnp3NXNJRm43K3prVWlwdDdodGpuZGJMQlJTZmtsTEsyRDFBSmhUVW1JRVlxa1RFTGZjUUI0NEJoQUcrLy9iWVFPNXpOWThRQjQ1Q250N0xEKysrL0o5YVJPQnRpQW1kOUtoSFBEZlFSQnd3RHdIZVlxdEpISERBTzNXUnlBdXBoSFptdkhCUDVuUmFFZWNoQWYrYzNwMlF6TFppZGVZam5kT0JHUUV6YkZLTTUxWXR1S1BvT0w1YlN5dWVxL3JzakN1K0laQjU5aVhhejhKaUViQjYvc25EdGZTZldEcW12UmRPUnIrWnJ0U3dsNjl4L2xOdXp3eDZZUjAvRGdRZmNOZy9tZTR4RjJ5Ums4L2oxcHlPMGQrVUFPNlMrMzRlT2JMSCs0MFhKT3I5SnVUMDdzSUZrN2U5ajRHczBEeDRwcVhJN0RpQ2JSK0hrbE5xeWVSaEdkbmJtZ1NraWxjaVlCZWJia2VPQVllakdnYk42M1RoZ0dqcFU2OXNDNWdGeGx6Z2JZZ0w1QlpXSW13V0VFNk10TEt1TUEyYWdRMTdQRVdBMGVLUzN6RmVPaWZ4T0M4cjlwby93OHB0VHNwa1dkR1FlUFJqMDIyKy9VZXQySFpWQyt2OFZWYXBXRjFkZlhieDRFVjJFZ3I0eTlOOGRVWGhISlBQb1RiUXJ3VFF1SG4yTlY3Y1VpTmJGNy9mWTRjcnY0cDRoWTBsbjBWZHN6dzU3V3JONTlIQW9GSUp2eGoybWNmSFViZk5BSXZ6aUQ0ZnRjT1h5ZWEyR1ZFNHNWRzdQRGtmdllmTXdqcFFNNXJGN2dEcTM0d0NGbjFOaTg5aldXeVVVMXBqQUpha3FrVEVMbUljODR0Q2YyZ29Ed08vNmRKWDVhYXYzeERZa3pvYVl3QlNSU3NUTkF1WmhPK0xBZ3cxaEFEQU1mZFJoZHRvSzlURGRKZk9WWXdJakhOVis1aGI2Q0s4Z2NrcjRuMHQ4SFptSGVIM3M4eSs4UkkyYU5DdUdCRHkrQkYwMmI5NDhkQkVLK3NyUWYzZEU0UjI1YlI0SGV4SHRaTkUyQ2RrOFRKZFRqeXEzcGNSdU5vKzkzUXdISG1BMUQvQTl3cUp0RWhkUDNqWVAwK1hjZThwdEtjRUdrcFZtSENrWnpHTlhQL3U4VGpZby9KeFNHOHJhMmt2bWEyY2V5QytvUk1Zc2NCWVAwd0N3TFhuRW9VOVg1WGJrZ1ROcGliTWhKc3dtc2gxQkhybkFpT1FSaDI0Y091VDFIRUZmUitZcngwUVJ5Q21wekFOUHk2VkxsMzRYb3c2OHZyVVlSaUQzZ1Nmd1NxK3pSWjlaKy9DT0tMd2prbm5jUmJTRFJkc2tycC9KeGVNemNDTmI1aHpsZGh4aUY4eWpxME9oRUh6eGNFU1R1UDZEOVM3UW5Bc2Vqdmd0bTZOaU93NlJNWm5Od3poU01wb0hqNVJVdVIwSGNFWk9LV3VyZ2ErZGVaZzlZM1VFVEpmb2ovWkE0aGtqRGdpWmJoejZzbmx4czh6dFM1d05NWUVSZ2tyRXpRS1g0R0trQWRQQWM3S3dQUmlBYmdMNk1xQmEzeFo2WFptdkhCTkZJS2VrTW8rM0dmVE91LzlTQ21jeG1sRmsvVmpSaDlMREU5Rm4xajY4SXdydmlHUWUzWWx3dFk1WjdPdkxvamtsWit6dXBGNC9KK3lFZVhRMkhIakFiZk5ndnJnRDNDeU9MeUQ2K3A4NTQrZ005Zm81Z1Ewa0s4MDRVaktZeDA0ZUthbHlPdzdnakp4U1ZxcUJyNTE1Nk5OTGVRV0VDMGxoek8xRDlQRTNCRThYTkh6cVVLMXZDNGdiUGlYT2hwakFOSk5LeE0wQ1FvOHJ0Z0JNTitrbWdjKzhtZ2MrWmI1eVRCU0JuSkt0ZWVBeEpIVHIxaTNxM1hjQU5Xd2NYd3dIOFBYenA4aklTTkZYV2tIZmlYNjhJd3J2aUZVbzZHQlhGbTBlWGJrTGRyWmk4K2pvVUNnRTMwT1QzQWVISjlHTk5PTkl5V0FlTzNpa3BNcnRPRUNoNTVSMnQ2YXNMUWErZHVZQklWS0pqS3NBY1lNUVNwd05NYUhmRmU0dWdIa2dmeUx6bFdPaUNPU1ViTTBqaVVGNzkrNmpCaXlReFhDTTZqVkRSRDlLOTMyZzcwUS8zaEdGZDBReWo4NUUyMWkwM1FVN1lCN3REUWNlY05zOG1POUJGbTEzQVJ2SWpUVGpTTWxnSHR1N0dYTTZPYURRYzBxNzJEeFNPc2w4N2N3RDB4OHFrWEVWSUc0UVFvbXpJU2JNNWlLY0JaZ0hwdXRrdm5KTUZJR2NrcTE1Zk1TZ3h4NS9naG8waWl0R05xZ1gzVUQwNDMzMzNZY3VRMEhmaVg2OEl3cnZpR1FlSFltMnNxaHNaZUYyQndqemFHYzQ4SURiNXNGOEQweG1zSEM3QXc1T1p2TXdqcFNNNXRIRm1OUEpBWVdlVTlvSjgrZ2c4N1V6RDB3MUFTcWhjUVZ3TlZCTzVyRnhvMXJJWFlGTm03STNqeUtRVTVMTnd6cGwxYUZ6ZDRwbGdTeEc5aWpqN1VQVnExZTNtN3E2SXdydmlGVW9idTV1emFMU2ppaVZoZHNkc0xNOVhkL1owcUZRM05qWFhnZzJwVTkwRHh5Nmg2N3ZNWTZVRE9heExaZTVuOExPS2UxZzgwaE9WQW1GTlNad1JydDhlZjd5SGdXSkZTditMYTRta2pnYllnSWltcHpzUGxOWEtTbko0cEVoTWw4NUpvcEFUa2syajJZTU9ucjBxRklvaTJHUGlwV3FpTDQ4ZlBnd3VnNEZmWWd1TGZxRmQ4UXFGSDk5RnNNQ09JRFArbHV3ZVBNK3VoSmJXektYZ2ZUYnFucUdBdy9RRDd5L05yV25XOGNtMHkwZWZkeGk4WFlwd09IWUZQcHR2VUdNYmN5akE0czJtNks3WUVkTE5vKzJNbDg3ODhDZHNxdFhXNFRKVm1pY0RYQllzK1pqY1FlMXhOa1FFN2g2YWZ2MmJhWVQyb1VKY0FBWG13UzBJU2FLUUU1Sk5vK1pESHJ6cmJmRm0vU0trVE5DUXV1SXZuejIyV2ZSZFNqb1EzUnAwUys4STFhaCtHR0pEOTNhMTRyRmNCRGQydEdOYm0xclI3ZTJ0bkV1MENiYVBzQWMwbHJUcVlVK2hnTVAwQSs4YzI5MzREcHQ2ZGJSbVhUekVPUEFWTVlVSjRQYlBEU0xqV01tM2RyZmxrNitZcHhtbXpWclZtMnJlV3hOVk9kMlhJWHRiQjZiVzh0ODdjeUQrWXN6MmJWcjE0Z3JneUNFRUR4bkFtM0NGUEFjS0hDWk5tMmF3NWpBcFpFWWZlellzVjNjbjRFRU9xYXluQW0wbVpxNlJYQUFGMXdOSmZPVlk2SUk1SlJrOHhCUEZwMTYvM1NLWVdFc1JzNklxQmNqK3JKLy8vN29PaFRjYklZdUxmcUZkOFFxRk4vT0xrRVhucTlBTi9lMm9GdEhodEN0UXlOWXhJY3poamtKM0JhM1NVY0cwODNkQ1hUaHVmS1VjWitGbTBvb3pyN2NrYzZ2YUU4MzA5aDBNbG5JTStlNUFBOXkyNVBweHQ0MmRINTVlenJ5ak5FOEZpMWFGR0kxajlTMlBLSkt1SjNUY1RXMnQ2S3NUWVpwUVR2em1EcDFLaTFZc0VCY3pRTURXYmZ1TS9yc3MwOFphNTBFdFBVWnQ3MWFURmVCeThTSmh2ZXVHMklDVngvaHJYcTRPVzduenUyMGUvY3U4WmgyWndKdG9tM2tJdkJtUDl5SElmT2RQMzkraUllSGgrQ0wwWlE3ak9wMEtISktzbmw4eTZET1hYdUl1NmlMWVE3NFg0ZUVoS0RyVU5DSDZOS2lYM2hIZkJBa1dFeWZZakdRY3c5NzBlOGZoTkxWcnhyUXRjMk5uSXFyWDhhS3RyOWY0Q200N0psc05ZOWZtV3NBd0VMeEp3Njg5Q2ZiQ0FQNS9zME9kR2xkTzdySzRueHRXeHVuNHU4dGJVWGIzNy9SUVhEWi9aajFUQjU4QTFsTXlqUGZhK0I3N1N2a0d0d29wN1NqUGYyOXdmSWVBbzJ2RHk4YlltTGN1SEhDUUdiTW1DSE9vRjk4OFVVaGlNNEUya1RiMDZkUEYxekdqTEcrT3RjdUpsaVloWUZnYWd2VEw4Z0Y0T1ZHemdRZU9ZSzJuM3JxS2NGbDd0eTVEbU1DcHV4dU9TVTgya1RpcThjRVRKcCsvLzEzaW1aQkxJWjUrUGo0aXY2VTdqWVBRcDhXK2NJNzRsMjZkT2tNTEw3WjIySWU3b1RuZWxqTXc5UFRjdzl6TFF0NGVYbGw0TUI3WTBJRElkanVoSCtPakRid1BYRGdRSkRPOTh5eUtMcTF0eCtmOWJ0SFR1bld2djUwOU5Wd21hODNMeHRpb2tlUEhrS3czUW1kTzFzdWgxYkZ4TEJodzRSZ3V4TUdETEE4dVpnNWdtOUFXbHBhSVBqaU83d3ExdDF5U25nRG9kUy9la3p3bVEvUnZuMXBGQjNidUJpNVFFQmdrT2hQUEwxQUs4M1FwMFcrOEk2VThmUHpleDJMdFlKSzBMRnBhaEYzQlU1TUwwRjF5bHZNSXlBZ0FQZjUrd0c4L0liZ1c4bUhqajZicUJSeFYrRDRjKzJwVGhYTFdZWU5YOUcvN2VwNVU5YW01bXdnU2E3UEtlMUxvaHViRTZoanJDV25WTFpzMmFjUUM3eHNpQWs4SFhUU3BFbEtFWGNGSmsrZVRPWEtsWE1ZRXhVcVZMQytQYzhkc0hqeFlxcFlzYUxNMTUvaHkvMzlHcjRMQ3dzVFY3UzVVMDRwTWpKU0ZSTkRHTFNhUjFiMVdSQ0xZUjdsSzFRUy9Zbi9yMVlHb1UrTGZPRWQ4UXdORGUzcTRlSHhQZjdzSEZaQzVCbFVZdTVNWUFxdFF4MkxjWUJiM2JwMU96RlhiNEFQdUc1V3ZyRVZSWjVCSmViT0JLYlFPc1JZUk1LR3IwOUVSRVFpZjNjQnZ6M1V2eHhsYll4bjhSNUV0L1lQcDF0cHd4aERuUVJ1YS84d3VzbkdjZTNMcGpTdmorV01DSHpyMTYvUHd4SHk1TC90WXFKMjdkb2l6NkFTYzJjQ1UyaTFhdFhLTVNicTFhc244Z3dxTVhjbU1JVVdxUWt4dUlXSGgzZEdQSUN2SEJOZHUzWjFpNXdTcHF2MFVSMzQyc1RFREFhOS9zYWJTb0VzaG1OVXFsSk45S24wam84WjZOTWlYM2hIU3ZNQjJaelBqaWJ4c1A4U3ZxcnFYNEptdHk1Qkh3OHBRWitQY0M0K0dtUnB1NEt2TmRkeHVYTGx5dVA0WUl0anJsNEFpMGFDZ1c5UUdacmRLNHhXeldoSzYrWTBjeW8rbXRaRXRGM2UzOHNoMzFhdFdvVXgzeW44MnhYVWFSVHFSUnNYMTZRTC82bFB2NjZLY1NwK1hsNVB0QjFSemRQQXQzWHIxc2pvbGVidmxESEJJeEZLU0VnUVY0MGtKU1U1RlgzNzloVnQrL2hZcjd6TE1TYjRMRjhJSVV3UDc1VjJKc2FQSHkvYVJwOHArSlpoZU1iSHg5ZVJZd0kza3NFZ2NiVVlSTWFaUUg0SWJWZXFaRGxEMXZuYXhJUjQ3ditUVHoxTjlXTWFGU01YcUZLdGh1aFhuTkJvNVZIMGFaRXZ2Q01lTEJTMU9IZzcxNmhSSThuVDAzTUh2bllIbENwVktxTktsU3Fqd0kzRm9TWnpMUVVVTWI2bDE2OWZYeVk0T0xnTkRraXVjMHExcml1Zzh3MEpDV21kbHBibWlWamc3NHRqb2dBaDg0Mk9qZzVHUEFCRk1DWmVaTkRDaHg2bWVpeUl4VENQcXRWcmlyN0ZKZVphZVFGOVd1UUw3MGhKSHE1NmxpOWZ2Z1VIVFNjTzZDNjhQSjNQbXBaNWVYbWxJckNkQ1c0emhkdCtFeHpBQlp6QUxTVWxCUWNkYnUzM0tHcDhHYVVTRXhPRCtMY09ySEZkeTVVck45dGQrRmF0V2pXeGUvZnV1R0lKSWx5eU9DYnlEeE44U3pLS1dreUlCNjNOZlhDZWVOVnFNY3lqcWpieXVPZWVlOUNGS01oM0ZmM0NPNEpBTGhrWkdWazJLQ2lvYllVS0ZUb2gySEdtaEVCQ1lNdmdzNzBDaGUzMjBTYmFCZ2R3QVNjK1kwT1NVZkFzcW53WkhqZ2d1VjV6ZCtITEloRS9jT0JBY05VRnpXb2VRSEZNbUlQdDluUGdhKzFyTEJlaG1CRG1NV2Z1Z3hURmdsZ004NmhjdGZvZGF4NVdzZUJBeGxVMkRmejkvVHNFQmdaMlJPRHJRR0FWSnVTMjBEWTQrUHI2TnVYaXEvUFR1Qlpadmd3Y2tLV2lvcUlxaElhRzFxNVpzMllEM2hhRW8zbU5HalVTQ2hONk85eG1MTnFPalkwdHAvR1J4YXc0SnZJQnVhMDdNQ2JFdE5XOCtRc29xbjZEWXVRQyt2T3Q3c1JwS3hraVlIZ0lIY2huUzZFYy9ERWMvUEVCQVFGT0FkcmlOcVBSTmpqb2ZEUnVLaFJKdmhyMGcxU0loNU1ndHlsenNYSXNqb244SVE5ODNSNWFUSWlFK2RLbGoxTWtDMkl4ektOY2VjdFZtSGRjd3J5NEZKZmlVbHh5S2l4NDRsTGRWMTU1bFNMcnhSWWpGeWdiRUNqTUExZTJhZVdPdVZUWEZ2cVpVc2xIemxFMEk4N0ppSkk1TUZRY1pSUlp2bTRDQTcrY1lpSTFOVFY2eTVZdGNjNEV0NW5uUGo1NThtUTBJODdKdUJOalF0d2tpSmRQcVFTeUdJN2g3VzI1eEJ4dmpkVEtFTkdwUmIzNHp0d293RHVrQjQ3SG91OXAxc1BmMDRWNVB4RE4rZEc1UUp0b216bE1BaGVkbDhSVGh4M2ZKVDhSTGZtWmFMR1RnTGJRcG9wdnc4VmZsUUI0Mlk2dkJuMHFTVnk2NlVUWVRtRUpYbnIvb2t5ZE9sVkEvdzMxVWxKU1ppVW5KMS9BdXpLU2t6YzVHV2d6K1FKek1QU3h4Tk91ajQ4ZlB6NkxjU0V6OHhnZE8zYlVxVUNiYUp0aDRMdDA2ZElTQUMvYjhkWGdWakdoOXk4Sy95MGVUN0o3OTI2S1lFRXNobmw0ZUhnSTg3ampIazhpR1ljSTNvZStwNC91WVZHcy93dFJBTVBmeVVDYkRTOFFUV0VPNEFKT0dqY2hjUHhweDNmeHIwU1RyaEVOdmNtVzdtU2d6WHV1c3Brd0IxdStrbmxZK1RKd3NPTDZlWEZ6R3dNM2pUa1RlcnZnb0F1SHRYOVJKT01RbkZtMFA5cTA2VXZ4Q0F0WFBJTUpiYTVhdFpJMmJjTExsVklNZlN5Wmg1VXZpL1pIUjQ0Y29tM2JVbDN5VmtHMGlmZDRaR1FjaG9rWStFcm1VU1JpUWpJUDhXQkVQTnl2ZGxnRVJVVEZGTU1FMEZmb1B1Qk9mRERpYlNFK1I2UHZaZEd1Q0NGbkFYY2x3R0VxRElRNWdadkdFVndOZkJmOWoyakVEYUxCTGdZNGdFdDJmQms0T0hHd2VuZnAwcVYyUkVSRWEyY2pMQ3lzVmMrZVBYSG5NQjdyQVM3Z1pPVnJHeE1zMXFNM2IvNks4S2h1bGJBN0UrQUFMdUFFYmhwSFF4K3pXSStHYU9POUdpcGhkeWJBUVRNUVc3NzRGSHdaUlNVbUFQRkk5cmhtQ1JUT3dsaU1uRkd0UnJBd2pqdjFrZXg2RUhzOStCMGRhbjZleGR0TjBKSXg3enZhQVc0YVJ4bUM3NzEvc1hoZmR3L2N4MXdjOE1YWkhMN3pybGF0V3AvU3BVdnZRZGRYanU5RU5STDdPaFdWR2x2ZWRNZ2N0Z1VIQjNjRko0MGJlRnJ2TU5mKzlrcE9UajZFcDc2cXhOd1ZXTE5tTmFhd0hNYkVzV1BIRHVGZEdpb3hkd1YyN2RwQnpFbm1LNXVHWFV3MGFOQkFQSXJGbVlpSnNieXdLSWVZQU1UTG9FYU1IRVhoa2RIRk1JR2djaFZFMzk2cEw0TVNCeDNEWithWjYxbVZJTng4eHU4T0NHWXUwMC8rOVRkejA0TVpCeHlFR0dkSGd1K0lxeXpjMTl3RG81bXBJNzU4dHV6djdlMzlGcnE4NVNQL29sa25ydExjSDRobS8raGNQTWh0b3UyNE9TK0pvUGJ6ODN0ZTR5dk9ObTFqWXNPR0RWbDQ4cXBLeUYyQkZTdVc0eVZMRG1QaThPSERXWnMzdTM3VW9RUHZNRTlQVDlmNTZsenhhWWdKM0FPZ3YzOWRuZmNwVEd3V2Jlc3YyWElRRTRCNERlM3p6ejlQZFZrWWk1RXp2TXFVRVgxNnA3NkdGZ0hpN2VQajg5UU1IbEQ1LzBUazV5YW93Z1l5SmVNUytmdjc0eHB6UEkwVUFpRkVRdWM3bU0xamtKdGdPRXRFTm54ZlJIZjNYM09ZSnZGKzFkUHlPNnE4VDJGQ3p5a2hyd1V1NEtUeEZXSmhHeE40RDdkS3hGMEZHTm5hdFdzZHhzVFJvMGVWSXU0cTRKVzBTRExiOEVWZlcyTUNiejdjdUJFNXBROWRuRlA2VW5CeEVCTUFuckpMQnc4ZXBGcDF3cWx1UlAxaVpBUDBFYm9PT0hUb0VMb09CWDJJTGkzNmhYZkVLeUlpSXA0WGI5elBZdXpIWjZmdWdzcU15Y2YrUkUvZmFOcTBhU3h6eGNIbmcwZEY2M3dIc1dDN0M0WmRZVkhPdE9jYkdSblpBbDNkNEw0bmFRcWJvcnZrbE1BRm5DUytYcnhzaUFrSW9FcHdYQVhrUFQ3OTlGT0hNWkdSa2FFVWNWY0JlWSs5ZS9mS2ZDSEl2akV4TVMxTGxpeEpJMGVPRkhrY2Q4b3BnWlBFVjQ4SkFGTnVkT3ZXTFlwdDBFZ3BtTVc0allxVnFxSWZ4Uk9UMFdkYVFSK2lTNHQrNFIzaGtiTmw2SHd2ek9PSC9NSDM2RVh5MlhuYUN0OUQ1OG52Mnl4bDNaeFFpYzFqd29tcjRoL2c2K3Y3Qm5QRmkzLzhlVmo5Tmc0ODhCM0VncDBmOVAzaEl0MlZjZHFLM3QrZXA2VExXY3E2T1dIWVgwU1RUdHJ6NVRQTWxlQTdldmYvcUptV3ozRUh0R0FNUy8xQjhPVVllSjI1NmkvK3NjYkVsMTkrcVJRYVZ3RUN0MjdkT29jeGNlVElFYVdJdXdvd2ovMzc5OHQ4OGFpU3NucE00QW8yZDhzcFlYUUh2all4b1FOWGo0bFhBb2V4UUJiRE1ieTExODlPblRvVlhZYUN2aFA5ZUVjVTNoRWZEdytQczFpY2ZKYVB4SE41ZysvdXMrVDk0U2Jxc21rdlBYcjRsQlVEVTlPcHlxcE41TFA1Q1BtZFpSTlJyT3NJbGRoQXhwNjRMdjRCekRHVHVZcjNWWmN1WGZvc0RqendUV0xCemd0NlpwNmxkbDlzb3Z0MzdLVjNqcCt5WXNHZWRPcXhmaE4xM1hlRUJ2NmVwVnpYRVliK1NUVCtwSkx2VCtCNy8ra2I1RTQ1cFpxTWU0OWZFM3hMbFNwMUFySEF5NGFZMkxCaGcxSmtYQVhaUEZReGNmandZYVdJdXdxeWVXaDg4ZHJjQUU5UFR4RVQ2RjgzekNtcFlrTEhZQVp0Mzc2ZGdrUHJVRmg0dldJb2dMNUJ0d0hidG0xRGw2RU1Zb2grdkNNSzc0Z3ZmOXpBNG5pWXgvZTVoOCttSXpRN0xaTXVYY3RDQnluTCsxK2ZveXFmN2lDL1UxZVUyMUNoRWh2SUtNMDgrRUQ3alRlRFp3VUZjbERmd0lFSHZra3MyTGxGMTcxSDZLVWptZlRIZGNkODEzOTdqbnB0M2tIOWY3bWkzSVlLUS84Z0dxT1poODQzSXlPalBQTzlDYjdUbUsrNzVaVHV1ZDIvdUFoZEZ3cHJUQ0NScWhJWlZ3SG1nVGZmYVp6dFlnSnp5eW9SZHhWZ0htbHBhVExmZ016TXpBcDZUS0NPYWo5ZEJSaVpiaDQyTWFIRE9uVVZGOStNNnJCUUZzTWVnVUhsUlI5R1JrYmFUVmtCZDBUaEhZRlFpQjBkL1EyTHluZTVnOCsyMC9UK2FWWjVFK1hzSDFjbzhzczA1WFpVcU1RR011eTRWZHhZbXNXTlNrRjg0T0Z2d1hjZ2Y1c2JkRDk4V2hpRG1mTFRYMWRvNlBZMDVYWlVHSHlaYU1SdE1lWnZLR2pKa2lYQk90K3A2Rjh0bitNT3dMVGd4TnY5eS9ZbllzRVFFK3ZYcjFlS2pLc0E4OUJ5SHNxWVFETFhWc0JkQ1pqSHZuMzdITWFFTzA0TGZ2NzU1NnFZa1BFMlE3ejFNTFIyT05XcEcxVU1DZWdUZEJtQVB0SUsrc3phaDNkRTRSMnhDc1VJaUJ0R0gyWngvQW85ZXZBVWI4SllQdUJEWkNtZlk3MzhPeHVHemNuOW9ZdVh5WGYzT2ZYMmJGQUpWMU1aeGMwZ0ZPQTdrTnN3aTM0L1g2RjNqdG56VGJsT3RQSXEwZWZYaUM3YzFMN1V5c2xMbDZsbjVqbmw5bXd4bU0vVGh0NDJEOEdYaFNKVTV6djVETytYVFY0bnR5am9uTkxZek96TkEyZWhLcEhKRFY1NDRRV2FPWE1tY1YvUSsrL25MekVNY2NQVlZoSm5RMHdjT0hCQUtlSzVBVVkyYjcvOXRuZ1dVWEp5c3JLT1dVZ0pjMlZNdVBPMG9FMU15R2pPb045Kys0MUNhOVZSQ3VqL1orajNkZ1FGQmNsM2xhUFBySDE0UnhUZUVhdFFESUc0d1VCTUltcjdhVjc5ZGpsNzdTYTFnRERaMUlPWnlHVmkraG03T2lwVVpBTVpZQlEzZzFDQTd3QTJLYk1ZZWNqSTkzeldUWnJOb3dYYmVpbHNJbko1K3RnWnV6b3FEUHFWS01uRzdPYk9uVnRINXp2aGE5NHZMWitUV3hSV1RtbjBzZXpOQTJlaEtwRXhDNXg1TFZxMGlGNSsrV1h4cnV5SEgzNDRYNWVqUXR3KytlUVRoekdSbnA2dUZIR3pXTE5tRFMxZnZsenM5K3JWcStuZi8vNjN1TnhXVmRjTVlCNTRwcEhNVjQ0Sk41OFdsR1BDRnVzWU5HL2VQQW9PRGFQYUxKckZpQko5Z2U0QzBEZGFRVjhaK3UrT0tMd2pWcUVZQ0hHRGdaakVTeWRZZ2FUU0RkTWhpbnJBMmI5dkQwRlNmN21zckdPTGltd2dmWTNpWmhBSzhCM0FnbTBXcTg0WStTNkNjU2pxQVQ5TCtadUR2MTVXMXJIRm9JdEUvVzNNVGhhS3NlaGZLYWRqRm9XWlV4cVJnM25nTEZRbE1tWUFzM2owMFVmcGpUZmVvRGZmZkZOODRnWXp2TmRBVmQ4TUlHNFFlSW16SVNhUW5GYUp1Qm5BTEQ3ODhFTWg2QmdSNEJOVFpEQVFtSUJxblp5QTlYQ2ZoOHhYamdrM254YVVZOElXUFJoMDhlSkZxbEV6aEdxSFJSYURFUkJZVHZSZFlHQ2c2QnV0b0s4TS9YZEhGTjRScTFEMGhianh5Ymtwbk1nU09ReTlwUDdHb3FXcXAySE9MMFJidWJvT1ZSMWJWR1ErdmJJeEQvRHQvejl6NlBkekZ2MzA1MjIraHk1ZlVkYlQ4UzYzbG5IOU5sUjFiSkhFKzlnN0cvTVlpZjFTNUhheVEySG5sSVljemQ0OGNCYXFFcG1jOE5SVFQxbU5RemVQMTE5L1hTeS8rT0tMZVRhUW5Nd0R5V21WaU9lRWp6LysyR29jc25rQTZJTzhHZ2pXMmJWcmw4T1lLSWhwd1lJRSt0ZG1XdENSZVFCZk1PakpKNStreWxXcUs4WDAveFBRQitncUFQR3ZsYzlWL1hkSEZONFJxMUQwZ3JpZE1vZHFCL2hVV3lxUC9jRG1vYWlYSDFSa1B0Mk40bVlRQ3ZEdHo0SnRCb05QRy9tdStCK2JoNkplZmpEd0F0RmRObVluQzhWUTdKZE5YaWRiRkhKT3FlSzN6Sm1kVWVKclp4NFFFcFhJWkFlTU9CNTc3REZoR0crOTlaYUFiaUQ2Q0VRM2tIZmZmVmU1RFVlQXVFSG9KYzZHbUVCK1FTWGkyUUVqRHR4dkFjTkFBaHZRRFVRM2tid2FDT3J2MkxIRFlVemtkMW9RS09pY2tzMjBZSGJtMFlwQlY2OWVwZkR3Y0twVkorTC9OZEJOQVBvQ2ZhS1ZscXIrdXlNSzc0aFZLTHJEUEU2YVE5ZmpsM25WMndWL3ErcmxCeFZZTnp0bll4N2cyNDhGMnd6bWZXL2tpNzlWOWZLREFlZTVIN0l4anlUc2wwMWVKenM0STZmVTkwajI1Z0VoVVltTUkrQ01DOGFobXdhQTd6RTlzMnJWS29PaHdFQ1FBN0hkUm5hQXVHRTdFbWREVENDL29CSnhSNEFSd1RoMDB3QWcrQmpCNEY0RzJWRHlZaUE1bVVkK3BnV0J3c2dwMll6c3NqTVA0QjJHdUxBQWw2ZXFSUFgvQS9UcEt2eFAwUmRhZVFkOWg4TExCdHdSaFhmRUtoU2RjV1o4M0J5Nlp0cVlCLyt0cXBjZlZEaEIxTjU0Wm13UUN2RHQ5N001elB2T3hqejRiMVc5L0dEQVQwU2RiTXhPRm9yK3ZEK3EzSTRqT0NPbjFEc0g4NENRcUVSR0JUM0hzV3paTW5HMUVvQ1JoWDdtams4SXYvNGI2dWtHWWxid0lHNTRtNTNFMlJBVHlDK29SRndGUGNjaGY2Y2JCMHhJTnhENWQ5MUF6Q2JSc1Qxc1ErWXJ4d1MycDlwUE0zQlNUaWtuODhDenVuRHpJMDJaTW9YS1Y2aWtGTmM3R2RobmRCR0FQdEFLK2tUY25ZL0N5d2JjRVlWM3hDb1U3V0Vldk10bTBQWEVYN3pxN2RMMTRDL0tldmxCQlRhUXR0bVlCL2oyWmNFMmcvbm5qSHpublBwRldTOC82TS9pbnBpTmVmU0dLV0owWndaT3lpbmRkVGg3ODREQXFrVEdGcGc2MFkwRG93cVlBNzdIaUFNSldDekRPSEFHcnh1SVh1K2xsMTZpUng1NXhMQTlSNEM0WWFRZ2NUYkVCUElMS2hHM0JVUmJOdzV3d3FkdUhMb0JRZlJ4OVpadUlIbzlqQlp3R1MrV2N3SzJpVHVNWmI1eVRPaDlrMXNVWms0Si8zT0piMDdtQVloWDFGNjVjb1hxMTY5UGxhdFdGL2M2L0g4QTloWGRBMkRmLy9yTHFqT0dWODN5M3diY0VZVjN4Q29VYlRDdGNzd2NXdkNacTF3bXBwOVQxdFBodStrcythemNhNFdxamkwcXNJRzBOSjRaRzRRQ2ZQdXlZSnZCVEJaWHVUeDk3Snl5bm82dWU4OVM0dnE5VnFqcTJLTC9EMFN0YmN4T0ZvcTdZQjR3YUJOd1JrNnBBaHRJMXh6TUE5TTZLcEdSQVJOQTBsUWZjZUFUMzJQS3gvYk1XamNRYkJmMWRNQjhYbnZ0TlVOZEZTQnVFSDJKc3lFbWR1N2NxUlJ4R2JxQnlkOUI1SEdsbHUyMGwyNGdtSHFTdjhkK3dSamw3MVRBZHJkdTNlb3dKb3BBVHNtTWVRRHZNdkRpSzNHbFVkVnFOWlZpZXljQis0aXVBYkRQbVprc1dKYnlML1NaWFBnN0ErNkl3anRpRllvV21GWTVhaDV5ZWYva2orUjNPRXRaRDVpOTl6U2wvbmpSZ2d0L0tPdllvandiU0xOc3pBTjgrN0JnbTRWY3Z2am1SK3I5YlpheUh2RGlvZE9VL3ZORmdRTVgvMURXc1VWZlJvSU5YMWtvdW1KRXBlVnpjb0t6Y2tvZEQyVnZIcGdpVW9tTURDUnBZUUR2dlBPT0FCNXhBZU53ZEZhdEd3ak9jUFYxeklvYzJscXhZb1hEbUxBVmVSWDBHLy93dUhrQWY4TTRIRTE1eVFhaXJ3TlRBRlQxWmFCT2FtcXF3NWdvQWprbHMrYUJSMjlzWm9qL2UrblNwYWxHY0cybDZONEp3TDZoV3dEOEw3SFBXa0hDUTd4QVN5NzhuUUYzUk9FZHNRcEZQTXdqd3p3KysrVnZYdDFTY0E5QzFiV0hsUFY4L251YXpsNitQUVdEOVZUMWJGR2VEYVJKTnVZQnZuM09tY2ZPMzI3ei9ZUDU5dHAwU0Ztdjg0N1Q5S04wV1MvV1U5V3pSVjlHWERibTBSRWpLaTJma3hPY2xWTktQSmk5ZVdDS1NDVXlNdlN6Y0l3SVVCL2ltdE1adFg3bWp5a2dtQTIyWVR0S1VlSDk5OThUTi9GSm5BMHhvVTh4WlFjOW40RVJBYWFVY0ZkNlRya1NiQmYxY0RVWHpBYmJNSk9jaDNsczJiTEZZVXlZblJZRW5KVlRzcGtXTkdzZVFEQ0Rqd0lTZWFHeUFVRlV2V1lvaGRTcWUwY0IrK1JmTmxEdkk3R3ZXc0crQjZPL2JBdC9iOEFkVVhoSHJFTFJtQVhGOTRoNVRCUmhjcnQ4K3MxNTh2NWdCL2xzUGtjKzJ5K1NUeXIvdlRLZEh0M0hwN2hTd1hxcTdkbWlIQnRJUStPMGlrRW93TGZQOStieG9uRW1pRksvTzA5dFA5bEIzZmFkb3g1SExsTDNBK2VwL1gvVDZlMURScjVZVDdVOVcvUmxOTGJoS3d0Rk80eW90SHhPVG5CV1RxbjFnZXpOQTRhZ0VobGI0TXdMSW9tejdOeWNUVU5nSWVBWXFhaCt0d1hNQXdlcnhOa1FFOWlXcllDckFMUEE0OXNCczNrU0FBYUNGMDZadlJrUlJwcVNrdUl3SnN4TUN3TE96Q25aVEF2bXhqeUFLTWJ2REhyaWlTZkVkakM5b3hMaG9naDVxZ3JBUG1vRisxeVB2MU1XL3MyQU82THdqbGlGSWhibWNTaDMyUHFIOVltUm9oejg1VEtOVHo1Q25UL2RTd00zcE5Pblo4NXJ2MWpLb2I5dUtyZWpRcm5EUk5IWm1BZjQ5djQyZHpoeXhjajM1TVhMOU5pT0kzVHZsM3RwYmtxNk1CUzVmSDMxcG5JN0t2Umh4R1pqSHEwd29wSnlPdG5CV1RtbGhQVHN6UU9KWVpYSXVBb3dELzE5RTZxWWdIbXBSTnhWZ0huZ3lpeVpyeHdURUhyVmZzcUFDVGd6cDRUL3VjUTN0K1lCdEdhSWd0RVM5ck5TNVdwS01TNUt3RDZnSzdTK29XZWVlVWJiUzFGYW81OGNGZjdkZ0R1aThJNVloYUllaTRudndkeWhHbzhRemw0ekNyS2pjdW5HTGFySG9xWGFqZ3JsMkVBaWpYUHlCcUVBMzk1bmM0ZWgzK0daVnViNC9ubnpGazNnVVpKcU95cjBZZFN6NFNzTFJYUHVLMVZ1eHhIa1VsZzVwYmo5MlpzSDhnc3FrWEVWWUI3SWUwaWNEVEdCMFk5S3hGMEZQVDhpODVWam9namtsUEppSG9EVlFOQTJjaUNCNVNxSVp6OFZSZWdQT3dTd0w5Z25xV1JySENoY3g0QTdvdkNPV0lVaVBBL21BY0JBdHRyY3FHWmI4SHR1akFNSVl2TUl5OFk4d1BmdWIzS1BJVHhDT0hJNy9hRXMrSDM4OStyMXMwTjROdWJSbEVkU3F0eU9JemdqcDlRNExYdnpRSDVCSlRLdUFzd0Q4L2NTWjBOTVlJcElKZUt1QXN3RGtQbktNVkVFY2twNU5RK2dCVU1FSnU2a0R3Z0lvTEpsQTZsbVNCMmxRTHNqd0JXYzBRVUE5Z0g3b2hYc1d3TDZKNmZDOVF5NEl3cnZpRlVvNmtEY0QrUWRDY2VKSHZ2SlloUTZYcnBBMVBXVXVuNU9DR0lEcVcxTTZCcUVBbnp2UHBOM1RPTlJ4WXBmTFVhaDQ5UGZpZWIvcUs1dkJtRTJmR1doYUlqcE9DMmZZd2JPeUNuRjdzdmVQSkJmVUltTXF3Qnh3NmZFMlJBVCtwVlU3Z0lJUFQ1bHZuSk1GSUdjVW43TUEwQU9oRS9YaU02Y09VTnhjWEZpMnhVcVZsR0t0VHNCSE1GVkI3aC8vZlhYMkJVVTdGTVVmMitxY0YwRDdvakNPMklWaWhDWVI3cjdJSWdOSkRnYjh3RGZ1L2wvNlRaZzh3ak54anhpdEZ4T2JsRFlPYVg2T1pnSHpscFZJdU1xUU53d1pTQnhOc1JFZmg2ZlhoaUFlV0FLU2VZcngwUVJ5Q25sMXp5QUVNWi9HZUtaVDNpbk4vWWRWeXhWclJGQ05WbW8zUW5ncEY5TnBmV0Q0Q3c5cjJvREl3VDlZclp3ZlFQdWlNSTdZaFdLR2tmNWovM3VneUEya09yR3E0RU1RZ0crZDU5Mkk3Q0IxTXpHUEtKc3B1WE1vREJ6U3BnV2pOaWJ2WGxnRGx3bE1xNEN4QTF6K0JKblEweVl1ZmZDbVlCNTRLeGY1aXZIUkJISUtSV0VlV0FUK0Z6R0VBVWpSRHhBRUYvamt0NXFNSkdRT2k0Rk9JQUxPT2tBUjB5RlNtVVpmNS9yd3V2WjlVZVJMN3dqVnFHb3ltTHNuOFpmdUFuS3NZRlV5Y1k4d1BmdVUwUzkzQVM5MlVDcVpXTWVkVEVkcHhEeG5GQ1lPYVU2ZTdJM0QrUVg4dk9ndllJR3JnYkt5VHcyYmxRTHVTdXdhVlAyNWxFRWNrb0ZaaDRvdkR5SWtjbWdhOWV1aWF1eGtFZkFULzVsQTZoSzFacEtZUzlNb0UxNXBBR0FFNjZtQWtldDhORkZnL2kzUEJWZVY5a2ZSYnJ3amxpRm91TCthMVFGVTBiNzNBUFZXR3dyN3YxYmNGTUpSWlgwYTlTWEJWc2w1SzRBdUZUWlorUXJDMFZ0OUsyV3o4a0xDaU9uVkd0Mzl1YUJTME9YTDNlZnZNZUtGZjhXZDFGTG5BMHhnUnZsa3BQZForb3FKU1ZaSkZobHZuSk1GSUdjVW9HYUJ3ci9qWWNwaXFmeG91QjF0cmlIcFVJRnl4Vk5ucDVlRkJoVW9WQkhJOWcyMmtCYmFGTUhPSUNMOVBwWUZIQzFQdVF3TDRYWGQ5Z2ZSYmJ3amxpRkl1aUw4OVNZendrQ2NPYXZFSE5uSXBBNU5HVXVnV3UrRTl4VVFsSHp5L1BVNjJ1aVBpZFp2RjJNdml6Z3ZURnQ5Wm1Scnl3VUlaaU8wL0k1N2dDUlU5cVZ2WGs4OTl4enRIcjF4MjR4K2dDSE5XcytGbWVyRW1kRFRPQnFwTzNidDFrVDFhNEVPSUNMN1UyTmNrd1VnWnhTZ1p1SFh2aDdYSTBsWGlpRjh1ZWZmNHFuQXNmR3hvcjJBWWc3UmdWSVhsZXRubmN6d2JyWUJyWmxheGdBMmtTc2c0TlV3TTNVMVZRNUZkNU9qdjFSNUFydmlGVW8vQmJ2WUVHNVFmRThRS3ZGd2xLSkJieUNrNEUyYTNQYjRCQjA2Q2I1TGpCZUl3L29CMTcwUDdaVHVZTTNhUEFab3VGODFqK0FCYndmQzdremdUYlJOamlVWTc1Ump4c3Z5NXcxYTFadG5XOE5LWi9qRGhBNXBSek1nL21MZXd6V3JsMGpyZ3lDRUVMd25BbTBDVlBBVlViZ01tM2FOSWN4Z2ZkYllQU3hZOGQyY1hVU0V1aVl5bkltMEdacTZoYkJBVndlZi94eGh6RlJCSEpLaFdZZWV1SGZFeGxyR2RhQ1o0bk5tREdEcWxXN2ZXTWVVTkxEZzd5OHlwQ1ByNStZNXNKN05QQWVFZHlIQVdBWjMrRTMxRUZkckNOdlF3ZTJqVGJRbGswQmwwU3VVMkNGdDJlNlA0cE00UjJ4Q29YdnpJM2s5L3hCQ2tqUG9vUVRSRzM0ekw4VmkzaExKd0Z0b1UxTXp3U2tYU08vNXc2UXo3MkdWMklhaEtMaDRxOG8vTTBEYkhoWjRxeC8zRGNXakhVUzlMWjZjdHZsOWwrajhEZlNLZVpCdzF2WWdoWXRXaFNpODYzS3h1aDJPYVdkMlpzSHJqSlpzR0NCdU1zWkJySnVIZTRYK0pTeDFrbEFXNTl4MjZ2RmRCVzRUSnc0MFdGTUxGMjZsRjU1NVJWeFg4VE9uZHRwOSs1ZDR2RWp6Z1RhUk50NHhTeGUwb1NuMjhwODU4K2ZIK0xCZ2dhK1JTQ25WT2ptb1JldTE1VHhLdU13UTVSYnQyNEpjWC8yMldlcGI5KytGQklTSXJqbEJWZ1gyOEFKQnJhSmJVc0ZiYUx0T0s1YjRJVzNtK3YrY1B2Q08rS0RJTUdpenowZkN3UHhYYmlWL1A1OWh2dzMvVWIrVzM1M0xqYitLdHIyblo4cXVQaE10RDRxQVUrbUNnQllLUDdFZ1JmOXdDcGhJTkZQcFZMd3FqTlVNZVUzcXJEMWQ2ZWlVdkt2b3UyWUo3WUlMdlZuV3UvT0JkOUFGcFB5elBjYStGYmNkcFdxNEt4Zk1VM25DbFRqRTY2S1c2N0lmSDE0MlJBVDQ4YU5Fd2FDTXpTY1FlTkJleEJFWndKdG91M3AwNmNMTG1QR2pIRVlFeXpNd2tBd3RZWHBGenltQXk4M2NpWndneDdheGhOd3dXWHUzTGtPWXdLbTdHNDVKVHpTWGVLcngwUytrTnZDNi9SanJHVFlGZVJJOEd3eWpJUXgxYlJ3NFVJeEdzVkpCWUJsZklmZlVBZDFzWTZEZ2piNmFjMFdXdUUyOHRVZmJsbDRSN3hMbHk2ZGdjVXlkeSsybUljYndhdWI1Y0R6OVBUY3cxekxBbDVlWGhrNDhHb05XaVFFMjUwUTBuZU9nZStCQXdlQ2RMNkJIMlJTNHlNWVZhbkYzSmtRT1NWd2VXdS96TmVibHcweDBhTkhEeUhZN29UT25UczdqSWxodzRZSndYWW5EQmd3UVBCbGp1QWJrSmFXRmdpKytBNlBWM2UzbkJLZXdpdjFyeDRUK1VKZUM2K0xSNzAzWTh4a2ZNSVFOeHptc1dCZGJHTTJvem5EN3RIcGhWVzRyUUxwRDdjcXZDTmwvUHo4WHNkaXlhRHE1SHZmWjBvUmR3bnUvNXc4eWdXTFFBNElDUGdIYy9VRGVQa05mRmVtZkhXS25mK3BVc1JkZ2RnRjY2aE1SY3RUTjIzNGl2NHRWYjhsQmUzTW9uZ1diWmZubEpoRDBLNGJWRG8yVWZBdFc3YnNVNGdGWGpiRUJGNXlNMm5TSktXSXV3S1RKMCttY3VVczc0dFd4UVN1bGxtMGFKRlN4RjJCeFlzWFU4V0tGV1crL2d4Zjd1L1g4RjFZV0ppNG9zMmRja3FSa1pHcW1IQW5sR01rTUhEWjd3ekdZNHdYR0c5cXdESyt3MitvZzdwWVI3VXRsK0NPS0x3am5xR2hvVjA5UER5K3g1K2x3bHFJUElOU3pKMElUS0dWcXROY0JERzQxYTFidHhOejlRYjRnT3VtOHcySWJDSHlEQ294ZHlZd2hSWVFvZVRyRXhFUmtjamZYY0J2WGtsektHRDdkVXJJSUdwemxNU1RkbHM2Q1dnTGJTWmd4TEgxS25uMW4ybmxXNzkrZlp6ZGVmTGZkakZSdTNadE1SMmdFbk5uQWxOb3RXclZ5akVtNnRXckovSU1LakYzSmpDRkZxa0pNYmlGaDRkM1JqeUFyeHdUWGJ0MmRZdWNFcWFyOUZFZCtNb3hVVnlLaTEzaDRDak5CMlJ6UGp1YXhNUCtTL2lxcEg5RjhtdzFocndIUFVmZXcxNTFMcEtlRlcyWDlMRytiT1Z5NWNxVngvSEJGc2RjdlFBV2pRU1pyMmRBUmFyYVlUVFZIZnRQaXBqNGlsTVJOdm9mb3UzU2ZvNzV0bXJWS296NVR1SGZycUNPUjYxWThsbTZqdnpXL0VCKzZ5NDRGNnUvRjIxN1ZBc3o4RzNkdWpVZUlWR2F2MVBHQkk5RUtDRWhnZnIzNzA5SlNVbE9CWktjYU52SHg4ZDBUUEJadmhCQ21ONlVLVk9jaXZIang0dTIwV2NLdnJqSHdUTStQcjZPSEJQVnExY1hCb2xrTHVicW5RbmtoOUIycFVxVkhNWkVBWmVTREV3WndaZ3dMWWFrZkZrYjREdjhoanFvaTNXS2l6c1ZEZzRQRm9wYUhMeWRhOVNva2VUcDZia0RYN3NEU3BVcWxWR2xTcFZSNE1iaVVKTzVsZ0tLR04vUzY5ZXZMeE1jSE53R0J5VFhPYVZhMXhYUStZYUVoTFJPUzB2elJDenc5OFV4VVlDUStVWkhSK05OZTZXQm9oWVRCVkFnL2pBaW1FSVFveFpqSUdNQjR4M0dLc2FYR3JDTTcvQWI2cUF1MXNHNjJFYXhrYmhENGVBb3ljTlZ6L0xseTdmZ29PbkVBZDJGbDZmeldkTXlMeSt2VkFTMk04RnRwbkRiYjRJRHVJQVR1S1drcE9DZ1EvTE1vNmp4WlpSS1RFd000dDg2c01aMUxWZXUzR3gzNFZ1MWF0WEU3dDI3NDRvbGlMQTRLUEZaSEJONWh3bStKUmxGS2lieVdMQXV6QWQ1RTRoL0U4YVRqQVBjNXEzSXlNaHJIVHAwK0h2dzRNRi9qeG8xK3U5Smt5WmQ0VkhiMzRNR0RmNnJWNjllZi9EbzdFODJzU3VsUzVlK2lYVzBkYkVOYkF2YkxCNlJ1TEpvZ1Z5Uy81RmxnNEtDMmxhb1VLRVRnaDFuU2dna0JMWU1QdHNyVU5odUgyMmliWEFBRjNEaU16WWtHUVhQb3NxWDRZRURrdXMxZHhlK0xCTHhBd2NPQkZkZDBLem1BUlRIaERuWWJqOEh2dGEreG5KUmlZazhGTjAweWpPR001TFpJRy8wN3QzbjZ0S2xqOTk4Ny8zM2J5MWI5ZzY5L3ZycjlOUlR6OURpeFV0b3laSWxOR2ZPWEhyZ2dibmlpcTk1OHhmUXdvVVBpL3pWMEtIRC9temNwTWtsWDEvZjY5aVd0azFzVzVoSXlaTEZIdUwwd3NGaEZRc09aRnhsMDhEZjM3OURZR0JnUndTK0RnUldZVUp1QzIyREF3ZEtVeTYrT2orTmE1SGx5OEFCV1NvcUtxcENhR2hvN1pvMWF6YmdiVUU0bXRlb1VTT2hNS0czdzIzR291M1kyRmhjZlFJK3NwZ1Z4MFErSUxkMXA4VkVMZ3BVSEhtS0FBWUVQaVU4UER4cjRjS0hycTFjdVVyY2dMajA4U2RvNnRUN2FHRFNJT3JZc1RPMWFkT1c0cHNsVUd5RHh0UzRjUk5HVTJyU05KN2F0azJrTGwyNlVzK2V2V0VlTkc3Y0JCb3pkdHl0RGgwNi9zNUdoUHVRdGpCR2FHMmh6V0lIY1daQmNFZ1FBY1AvbUVBK1d3cmw0SS9oNEk4UENBaHdDdEFXdHhtTnRzRkI1Nk54VTZGSTh0V2dINlJDUEp3RXVVMlppNVZqY1V6a0Qzbmc2L2JJUmNGb0EwbnVtb3ozS2xldWZJTkhFTmMvL25nMXZmVFN5elJqeGt6cTJldHVhdGl3Q2RXdVU1ZXFWUSttY3VVclU1V3FOUVRLVjZoS1ZhdlZGTUF5dnNOeTVTbzFLRHdpaXVMaW0xT0hEcDJwVDU5KzFMLy9RSXFQYi9hL01tWEs0SUtEOTdRMjBYWkI1V2lLUzNFcExzV2x1RGlobEdJZ29UMjBaTW1TTFBCOXJ1SWQ2cSsvL2dhUE11NFhONXZXQ1l1Z1NwV3JVVVJFQkZXb1dKVXFWcXBHOWV2WDUrK3FNMnBRVEV5TU1Bb0F5L2dPdjZFTzZnTDRIa2JTUEtFVjNYMzMzVHhxU2N5cVhLWEtUOXd1WEc2WXhnRmNpa3RoRjhXWmhuNm1WREkxTlRWNnk1WXRjYzRFdDRuWFZsbzVNRlFjWlZqcm5qeDVNcG9SNTJUa21hK2J3TUF2cDVoNGxQNFYvZ2k5RytkTW9FMlpBMFBGVVVhUjVlc21NUEF6VVNEV3VMeDJJWSs4Ymk1Y3VQRDZpaFgvb1lVUExhSzc3dXBGRVpIMTJSQ3FpMUZFOVJvaFZJbk5vV1p3YlFvT3FVMVZxZ1ZUU0dnZFJoai9IaUkramN0MVJCM1V4VHBZdDBiTlVQRjlSRVE5YXRhOEphTUZmeGY4RTV2V05YRFF1QlFiU0dHWHFWT25DbWhCQTNpa3BLVE1TazVPdm9EM0lpUW5iM0l5MEdieUJlWXdDVngwWGhKUEhWYSt4NDhmbjhXNGtKbDVqSTRkTytwVW9FMjB6VER3WGJwMGFRbUFsKzM0YXRDbmtzU2xtMDZFN1JTVzRLWDNMMHJRRkc4Qi9iZFhicTN4VzNScjJUOGZ2dlgycFFlelhxYloxNTUzS3RBbTJtWU9UNEtMemt2aWFlaGptZStpckRmb29XdXZPUlZvVThVMzR0NWFKUUNOcTVVdnd5MWpZdUxUaVNXQUhJcHVIRXZMbFN0Mzg0VVhYcnorOXR2TGFNcVVlNmxwMDNnVy9GQXhQWVVSUkkyYXRZUUo2TVlRV2d0VFY2SGlFNmhlSTVScTFRNFh3TEwrdlY1SE54VnNBOXZDUzV4cTF3bW4yQWFOZUhRU1MxV3JWci9FQnZJWGMzbGM0MVJzSUlWWkpPTVF3Y3VpL2RHbVRWK0t4eFc0NG5rN2FIUFZxcFcwYVJOZXBKUHlFVGhwM0lUQThhZUJMNHYyUjBlT0hLSnQyMUpkOGdZNXRJbDNObVJrSElhSkdQaEs1bUhseThEQml1dm54YzF0RE53MDVrem83WUtETGh6Vy9rV1JqRU53WG5qenpRMGpmMTlBRmI1cFJ5VlBOYUVTcHhvN0ZXaXpJcmM5NnZKQ1lpNWZiTDZWQnY2Q3MyUWVCcjRQL1A0czlUNXpMM1U4T1pZNk9CbG9FMjNQWVE2MmZDWHpLQkl4a1lONUlML2d4M2lvZlBueU4xNSsrWlVzM0tVK1pNZ3dpcW9YUTFGUlVjSTBJUElOR2pRUUpsQzlSaTFxMHFTSkVQOGFOV3V6d1RRVm4rYVdMZXRpRzlnV3RsbVZSeVg0UGo0K1hoaUp2My9nYnlWS0NBTjVTT05XbkFNcHJJSUEwUUlGeGpGNjgrYXZDSTlsVmdtN013RU80QUpPNEtaeEJGY3JYeGJyMFJCdHZFTkJKZXpPQkRob0JtTExGNStDTHdNSEp3NVc3eTVkdXRTT2lJaG83V3lFaFlXMTZ0bXpKKzRjeG1NOXdBV2NySHh0WStLaEcyL2VNK0h5SWlwektwNUtuR1F4ZHlIQUFWekFDZHcwam9hWXdHOXpMejlIWFU1T29QWW54cm9VNFBBZ2M4bU9MNk5JeElTaTRIc2txTWY0K1BqY2ZPYVpmMlR4cUlNR0RCaEVFVkgxcVhyTkVLck1waEVjV3B0SERXSDhkMjJxeGVKZU95eUNhZ1RYRVovNVdjYTJzRTFzTzZSV0hmNitGb1ZIUnJHUmhKQ2ZYOWxmbUJlbXNNWm9ISXV2d2lxTW9nVUlBc1VyT1RuNUVKN3dxUkp6VjJETm10V1l3dG9CYmhwSEdWN0hqaDA3aFBjbXFNVGNGZGkxYXdjeEo1bXZMQkQ0enJ0YXRXcDlTcGN1dlFkZGp6TW5QSGJEbVVEQ0VXMHpoMjNCd2NGZHdVbmpKdmhLTVlFelVLKzUxMTg1VXUrNzNsVGlCQXU0RzZEaDl3UG93ZXV2N2dZM2hoNExnSlh2a085bVUvdmpZOXdDdzcrZmt5MWZoaUVtYWphdFNSSGRJcDBLdEpsVFRDZ0tMbzBOUlhKOHpweTVmNy80NGt0aXhGRTNuQVVjcjQ5bE1jZm9BRk5RdGV0RThOOTFxRTVZcEVETjRMQUNXbVlqNFcxYnBybHE4V2NZMWEwYlNlVXJWQ0ZmUDMveDNEQUc3azRIMStKUzBFVUxFQVNLejRZTkc3THdsRTJWa0xzQ0sxWXN4d3QxL21adWVqQkRoSEhRNGV6STUvRGh3MW1iTjd0KzFLRUQ3NnRPVDAvWCtlcGN4WmtsajZEOHZiMjkzMEtYNDMwRCtydTIxWG1md3NSbTBiYitRaVUvUDcvbkpiNWlqaGlmREM5d252SFg4emU5VC9LbzQzZ2p0MEM1MDYxcDJxVm5sVEdoOCsxeVlqeTF6MlR4ZGdQY2RlcWViUGtpSnJ3RHlsRFN5aEYwMzIrUDA3MS9QazZUL25qRXFVQ2JhSHZBOHFFRUxxcVlzQ2t3bEVERys5MjZkYnVDRy8zR2pwMUE5ZW8zRUZOVnlFdEF6QnMxYWlURVBqaWtycGg2d21kaExLTU50RldqWmgzK3V3NUZSMGV6Z1ZTbVVxVktmd3VPR3RmaTZhdUNMbHFBZVBQUTh5bThjMWtsNHE0Q2pHenQyclhrNysrUHh5dmphYVF3RFdFYzRIdjA2RkdsaUxzS2VQMG9Yanhqd3hjSElmaStpTzdHVys0MmJrUk82VU1YNTVTK0ZGekFTZU1yeE1JbUpsNmMvdmR6VkNLVGhkdE40SCt5QmQxei9nbEhNU0g0Smg0YjdUYm9lbUppdG56UjNXUFRwbEhTeFJsVTRadTJWUEowRXlweG1rZFpUZ1Rhck1odEQ3bzRrOGJzdVo4OFBFdlp4WVJVTUFXRXU3cEhWYXBVNmZvTEw3eDRhK2JNMmVJbVB5U3lxMVVQNFJGQVhURWlDQTRKbzdDNlVRSWhvWFVMZFJsdG9VM2tQWkJZeDFWZDVTdFV5bUtldjRPcnhybDQrcW9nQ3dlSFYwUkVSRHd2M29BQXFnVEhWVURlNDlOUFA0WEEzZUN6akZnY2NBQWVGWTN2TWpJeWxDTHVLaUR2c1hmdlhwa3ZEajdmbUppWWxoamVqeHc1VXVSeDNDbW5CRTRTWHk5ZUZqRlJ0MjVkdlBpZjdydnlEeXB4aklYYlRlQjNJb0VtWFhqTUxpWWlJeU5iNkh3VGo3Snd1d202SEIvUGZKYzY1TnZ4MFM0MC9OY0hxTXhwSHQwcExoWndKc0JoK0s5ekJDZUpyNGdKcVdBa2dzZUNiSjA4ZWZMZmp6enlHSFh1MG8xQ2EyT0VnZHhEYmFxTmFTV0llNjF3Q2d1dkorQ01aYlNKdG1zeUQweGxWYWxXZzgrQWZNK0JxOGE1ZVBSUmtJV0RnMGZPbHVtVUw3LzhVaWswcmdJRWJ0MjZkUWhrOHZYMWZZTzU0ckpIZng1V3Z3MHhQbkxraUZMRVhRV1l4Lzc5bGpmemFYenhXSXF5ZklhNUVueHhCWnU3NVpRd3VnTmZqb0hYbVN2T3prUk1lSGw1ZllURmUvNThpa29jWmVGMkUvZ2RUNkR4RjViWXhZVGV4K0NibU1IQzdTYm9ram1lSnZ6eWlFTys0MC9QcFlodmV5b3ZFSEFGb3IvdlEyT1BXdDd6SXNlRVZNU29JelEwOU5vVFR6eUp4NFdJNlNPTU9HQWNtRDZDa0lmV2poRGY0OU9aeTJqYndxR3V1QklyT0RnWWo1ai9IM1BHWTB4czk2VzQ1S2R3Y1BoNGVIaWN4ZUtHRFJ1VUl1TXF5T2JCSERPWnEzaGZkZW5TcGMvaXdEdDgrTEJTeEYwRjJUdzB2bmhGYW9DbnB5ZHVZQkw5NjRZNUpjRzNWS2xTSnhBTHZDeGlndm4rZ01VSmx4K25FaGtzM0dieFZYMHE4ZDk2dDdHbmdib2VJTmNERGpWVTE1UGdsNWxBb3k4c3Nvc0o1djhEK2hoODJ4MFpaUnJOdit4UHpkYjNzNkwxN3FIS2VvQmNEMmg3Y0tTeW5vek94OGJSbUF1TFZURXNZbUxDYjRzdFY3S2Q0UDF6QXdTZGJrVVR6ajlrRnhOYXdiUVBubWk3WmZpSWtYL09uNytBMnJmdnlHZjZ0YWtXaXpXUzJCRHc4SWo2QXJYcVJMcGtHUnd3bFFWT2xhcFVKeDlmdi9QTU9VWGpYangxVlZDRmd3TzM4OS9BSWhLcEtwRnhGV0FlZU1zWnVQR0JoamZZNDFsQmdSelVOM0RnSFRwMFNDbmlyZ0xNSXkwdFRlWWJrSm1aV1lINTNnUmYxRkh0cDZzQUk5UE5nL2xkMG9WaSsvYnR1TUZLeE1UWVMzeldmSVJGM1NTbW4zeVNGdTE3M29wR0crNVcxaXV4UGNaUWI5R1JGeW5vV0d0MVhRbSt4NXJUaUo4WEdHSWlJeU9qdkI0VDROdnVNQXUzU1R4MzRsLzA2cjczclJqeTMvdVU5VnB0RzJ5bzkvcmg1WFRYMFh1VWRXVjBQanFPUnY2OFVNVlh4TVRZUzJ3c2lnc0RYQVcva3drMDlvS1ZyelVtdElKM2FUUXJXN2JzOWZrTEZ0NGFQWHFzdURrUEl3NFlSOTN3ZWtMRUl5S2pCV3FIUmJsa0dSekFCYWpPSTZLS2xhcmNZdDY0OTZPeHRnL0ZwU0FLQndmTVF3VEwrdlhybFNMaktzQTh0SndIQXZrUDVob0U4SUdIdituZ3dZTjJBdTVLd0R6MjdkdG40THRreVpKZ25hODdUZ3QrL3Zubk90OC90VmdvTVhyMDZLcjREaGo1SzUvbEgyYmhOb25SM3ovRW03bGRVbjdZVFNXMnhkalZTOXcwWEt0aEtTbS83N1dybzRMdjBlWTA1TWNISGZZeCtMWTd4Q01DazNqaXU3Y3NCTFN5OTRlRDFHcnJJTHQ2RXpiTjFXcFlTdnJ2UiszcXFOQTVZeXdOKzNHZVE3NmpmdVd6Zk1XRkFhNkM3NG5tTk9wbksxOXJUR2dGeTg4MGI5Nzgwb01QUGtpZE9uVVZ5V2xjL2wwTHlXb1djRXdmMWFsYlQ4Q1Z5K0NDL0FldXZNTHp0SGlrOXgxemYxcmJoK0pTRUVVTERoRXNPQXRWaVl3dDhLcE12RzRUbDV6Kzg1Ly9WTlpSQWMvbHh5V2lDeGN1VlA1dUM0Z2JycllDTnkyUURlWng0TUFCcFlqYllzMmFOZlRxcTYvU20yKytLYmFucXFQQ3YvLzliM3I1NVpmRkdicnFkMXRJQ1hNclh4YUtVSjJ2TzA4THlrTEIvNk5xK0E0WThqOCt5ei9Jd3AwTGZQUDNEN3lwMnlVeGViaXh6cDVZWVNweWFYUWl5VmpIQVh5UE5LT0I1MlliK25qcDBxVWhlaCtEYjlzREkzT0ZILysrWUNHaGxRbWI1eGwrYjcxN0dPMDlkMUQ3MVZMR0hsOW9xT01JSFErUHBhUnpjeHpHeFBDTDg1VVhCcmdLdnNlYjAvQ2ZESHgxc2RXbnJOS1RCZzM2YS9JOVU4UlRibkZsbFppcWlxeFBrZldpS1N3Y256RUNybDJPRnB6QURZOUlLVnMyQUhtUGRHMGZpcWV1Q3FKb3dTR0NCV2VoS3BHUmdmY2R6NW8xaXg1NTVCSHh3aFlZQ0w1VDFaVXhkKzVjbWoxN05qMzIyR1Awd0FNUGlFOVZQUmtRdDA4KytjUnc0QUg2Z1plZW5xNFVjUmw0c3VleVpjdm9QLy81anpBREdBaStVOVdWZ2ZheEhwTGNlQWNCUGxYMVpNQTg5dXpaWStETCsxMUg1K3ZtMDRKV29SZzNibHgxZkFjTXZEQ1hTaHhnNGM0RkVrK040MDNkTHArYytZcEs3STYxL2w1cmZRZnRGMHQ1OXdLZklFanJad2ZmdzgybzczZlREWDBzaXpINHRrMGZrU3ZjZi9KeEN4R3RiRDZ6blZydkdtcjl2ZGNYeHYxWmZ5SFZzSDUyNkhob05QWDd6cEtBVnNYRTRGOTRGR1Z6VVVDMjJGaWZTbXlvZHh0N0c2anJBWEk5QUtNM1ZUMEp2cG5OYWZBUEJuUFd6UU5YS3RYaU0vaWJiQnkzQmc0YVF2VllxTVhkM3BneWlvSnd4MUpZUkxUNGRJZGxjS3JOSTVHUVdtRlVzVkpsVE1QaTBsM2NORmg4MVZWQkZDMDRSTERnTEZRbE1qSndKdjdNTTg4SXczanFxYWVJei9wbyt2VHAyUnJJbkRsemFQNzgrYUtPanBkZWVrbFpWd2JFRGFNR2NOTVBQRUEvOEpDY1ZvbTREQmdpdGdIRCtQampqNFVKdlBYV1c5a2F5THZ2dmt2dnYvKytxS01EZmFPcUt3UG1nZnM4Wkw2eVVMajV0S0JWS0lZT0hScU03NEMrUDdPUXBMTkE1UklwbC9ieTVtNlhXbCswdC95Mkw1YmV6VnlsZldzcHRUSzYyYTN2Q0Q0SDQ2blgyZnNkOWpINHR0M1B3cDFMcEY4NmFpR2pGUmdHdm0remR6aXR6ZHlnZldzcFNVZG0ySzN2Q0IwUGpxYTd6MDV6eUhmZytRZW9SQWFMdWtsTVAvVWtMVXA3M2dxUlUxTFVLN0VqeGxCUDVKUXlXNnZyU3ZBOTFveVN2amVZblc0ZXVOOGpxV3JWcXBmSFQ1aEV2WHIxSWp3aXBGYnRTSEYxVTFoNE5OV05pQkZUUnZoMGgyVndhdHk0c2JnZnBHS2xxcmhnNFRmZWgwSGF2aFNYL0JZdE9FU3c0Q3hVSlRJeUlLeTQwUXdHZ3VrcmZEN3h4QlBDUUdBbXR2VXgybGl3WUlHb3A2L3oybXV2MmRWVElTZnpRSEphSmVJeUlPaTRlUS9iMGJGcTFTcGhJREFUMi9vWWJjQTQ1UG9RZld6SHRxNHRVR2ZYcmwwT2hjTHN0S0N6Z1A2MW1SYTBNNDllUC9KWi9uNFc3bHlpMGJHQnZMbmJCWVpSWW1jTUJhMlAxNzZ4bEhkLzRmWVY2enVDejRGNDZuNW1pc00rQnQ4MmFjTnpqYkhIRmxnSWFXWHRzUTNVYXNjUTZ2REZVTzBiUzFuL1M2cHlmVWZva0Q2SzdqcHpyME8rZlg5aW9WWmNHT0FJbzg4cGNrcmJZK3pxSlc1VzVKUnM2cWpnYzdRWjlmdldZSGE2ZWVBWlVZc2pJNk4rR3pWcURMVnNuU2h1eXNQVlRYVlpwT3ZWYnlnUUhobnJWc3ZnaGl1djhEaDRIalY5ei91d1JOdVg0cExmb2dXSENCWUlpVXBrYkxGaXhRcGF2bnc1UGZ2c3N3SXdCSXdtWnN5WVFVOCsrYVMxSHFhbmtPZlE2eUEvZ3R3RFJGdmVuaU5BM0ZBWDNQUUREOUFQUE9RWFZDSnVpOVRVVk5xeVpZdVlBZ05nQ0JoTndFQmdKSG85VEU5aGFrdXZnLzZBNE8vWXNjT3dQVWVBZWFDdXpGY1dDalBUZ29BemMwbzIwNEoyNXRIdDNGUXFrY2JDblFlOGUzNHRiL0oycWJVMmtSYnR4Wk12TE9XMzY1Y3A2RUFyNWJxTzRKTWVSNTFQV3g2dG91cGo4RzJ6ajRVN0QvamlmS3FGbUZidSttUU12YnIzUGUwdm9zdlgvNlR1NlJPVjZ6cEMrLzJqcU12WGt4enl2ZnNISGtYaEV1VmN3QzZubERMY1dHZXZJcWQwTXNsWXh3RjhqalNqM3Q4WXpFNDNEenloOWwrTkdqVytPR2p3VUlwcjFvTHExSTFrb1VadWdjVTZtc1dhRVJIVndLMld3UTAzRWVLT2N5K3ZNakNQZjJuN1VsenlXN1RnRU1FQ0lWR0pqQW9yVjY0VUJ2TGNjODlaQVFOQlB1VHh4eDhYT1E3a1JKNS8vbmtoZ1BqRU0zQWd5aEJwMVRadEFYR0R1SU9iZnVBQitvR0gvSUpLeEZYWXRtMmJNQkFZZ2c0WUNFWWEyQmUwQitQQU5BNSt3eWR5RkR0MzdpUTh0a1cxVFZ2a1pCNW1wZ1gxUG5SV1Rnbi9ENG12blhsMCtuWXlsZGpId3AwSDFEcmNUUmlFWGo3NStrdjY3ZXJ2Mmw5RWk3NS9WYmxlZHZEWkgwZnRUNDUxMk1mZzIyYnZzRHhoNEtIcHdpRDBzdm5yN1hUNUtpNlFzcFJsMzMrc1hDODd0RThiU1IxT2puZkl0OGM1Rm1ycGdnQXpTRHl0eUNudGliWCticGRUd3VoT1dqODcrQnlPNTVFUy84OXRZb0lMTHQvK21NM2pmSjkrQTZoRml4YmlpaVpNRCtFeDZaSDFHZ3BneXNpZGxzRU5DZlJxTlVMSno4OGY3ejFmcmUxTGNjbHYwWUpEQkF1RVJDVXlqZ0R4UlNJYStRc2RPR3ZHQ0dUUm9rV0c3M0dXRDBFMmF4d0F4QTNDRG03NmdRZm9CeDd5Q3lvUmR3UUlPMFloRUhFZDJHZHdneEhLMytPeVdtemZySEVBTUkvdDI3YzdGQW96MDRJdXppblptVWU3YjFqNElFeDV4S0x2WHVITjJwZmZydjlPUVdrdGxldGtCKzk5VGFuMThWRU8reGg4Y2FOZlhySHN1NDh0QkcwS1RLWGJ2dHh2TzNFdmowQ09qM2JJdDh0M0xOUUgyUmh6Q2J1YzB2cjJsdC8ySzNKS3g3clpyZThJUG9manFOdnBDWFl4d1FXQ3U2RlJveVlYNzc2N0R6VnNIQ2VtcktMcU5SQWlIUjNUV0NDcWZpTzNXZ2EzaU1nWXdsTitmWHo4Y09QckJtMWZpa3QraXhZY0lsaGdCaXFSeVE0UUg0d084SkE5VEVucG44aHI0Qk9BWVVDUWMyTWNBTVFOQ1c1dzB3ODhRRC93a0Y5UWlYaDJ3RWdDQW8vcEtCbklhK2pMTUF4TWllWEdPQUNZQjBZNE1sOVpLR0NlcXYyVTRleWNFdjduRWw4NzgyajFOUXNmcnBUS0k0TDJ0VFNNUHZRaVJoMksram5CZTI5VFNqZzJ6R0VmZ3krdWxNb3JZQkR5NkVNdkdIV282dWVFeEQzRHFlV3g0UTc1ZGpqTFFxMjRNQ0FuTk1wVTVKUjJ4VkRRZnhVNUpjWDZqdUJ6TUk0Nm5SeG5GeE5jaEhuRXhqYjRwWHVQWGhUYktJNGlvcUxGMUZCVWRHT0thZEJFb0Y2TTVkTmRsc0VOVjE0Rmg4QThmSC9FUG1qN1VsenlXN1RnRU1GaU5oZGhDeGdJZ0xlSVlXcEtCbjdIWEg5dWpRT0F1SDM0NFllR0F3L1FEendZZ1VyRWN3TFdBekF0WlFzWVFGNk1BOEM2VzdkdWRTZ1VtQTVUN2FjdFhKaFRzak9QWnFkWStCUWluaHVNL25vaGIvcDIrZWF2YzhwNlpnRHppTXNZNUxDUHdiZjFUaGJ1ZkdEcEtUelM2WGI1OGMvenlucG0wRzczY0lyUEdPeVFiOXN6WSt3dUNqQUxYT0lzbDFxZkpvcTc5ZlVpY2tvSFd5blhkUVR2QTNHVWVNSXdzcFBOWTNWNGVPU1BuYnAwRTIvdUMrY3orcWpvUm1KcXFINXNVd0ZNR2JuVE1yaEZzSG5nVFlSKy92NjR5N3g0MnFxZ2loWWNJbGowdWYrOEFPYUJuQWtNUkFmT29QTnFIQUN1ZW9LUWdwdCs0QUg2Z1djMmthMEN6QU1qRjlrNGNGVldYbzBEZ0hsZ1drem1Ld3RGRWNncDJabEhreE1zZkR0ajhnMjVMRHI2b3JLT0dYanZia3lORHZkMzJNZmdpNnVrOGd1NXZKR3hRbG5IRE5ydUdrYU5EdzkweUxmVjZaSEtDd1BNSU1lYzBqa2UzU25XeXc3ZTZYSFVKdE13VXRMTlF5VE1nNE5EZms1czM0a2FOb2tYWi9TWUdvSkl4emFNRTRodVlQbDBsMlZ3dzlSYWpacWg1RlhHRzAvWUxVNllGMVRSZ2tNRUM2YUlWQ0pqRmppTHhidytwbDR3WXNpUGNRRHZ2LytlRUZCdzB3ODhRRC93TVAya0VuR3pnUGtnNmE2UEdQSmpIQUMyZzZTOHpGY1dpdHhPQ3pvanAyUXpMV2huSGcweUI0aDdCdklMdVN6S1lQTlExREdETXJzYVU4ekJQZzc3R0h4YmJXZmh6aWZrSXN4RFVjY00ydTRjUnJFSCt6cmsyL3prVUhGMVZGNng2UHRzY2tyN1d5clh5UTdlYVUyb3hWSERTRWszRDF6ZXVxUmN1WEkvdG1qWmhwbzBUYUNvK213ZXNZMkZXRGRvWkVGTXczaTNXZ1kzM0hWZXZVWXdMdFhGdEZYeHBib0ZWYlRnRU1FQ3dWZUpURzRBTVVwSlNSSEc4ZmJiYnl2cm1BWE1BMWRBZ1p0KzRBSDZnWWY4Z2tyRWN3TnNBMC9uTlh2WmIzYUE4V0RmWmI2eVVPUmxXckN3YzBvMjA0SjI1bEV2ZzRVYTl4SGtFM0lSNXFHb1l3WmxkamFteVAwOUhmWXgrT0loaHZtRlhONDRzbHhaeHd6YTh1aWozdjVlRHZrMlBUNUllV0dBV2VDaUEyVk9DYU1PUmYyYzRMMnZDVFU3WWhncDZlWWhiaEwwOHZLNjBJaEhIWmkyUWpKYW54cUtiZFJNQUZORzdyUU1iblVqWTZoeTFScTRTUkF2aGlxK1NiQ2dpaFljSWxod2xxc1NHVmNCNXFHL2IwSS84QUQ5d01NVWtVckVYUVdZQjZhK1pMNnlVTUFFVlB1WkV3b3pwNFQvdWNUWHpqekNEN05RNDhHRytZUmNjTGV6cW80WmxOblJtT3FtZFhQWXgrRGJjdXVnZkVNdXI3TjVxT3FZUVp2dGd5azhyYnREdmcyUDhjaE9JZUs1Z1RLbnBLaG5CbVhZUEpvY01rd0w2dVloSGsvQzMyVkZSTmE3RWN0bjlGSDFHNGlrZEd6RFp0U3dzUVVOR2pWM3ErV1lCdkVVVmplU0tsV3FjcFA1RnorZXBDQ0xGaHdpV0pCZlVJbU1xd0R6UU40RDNQUUREOUFQUEV3UnFVVGNWWUI1WU9wSzVpc0xSUkhJS2RtWlIrMkRMSHhiV2JqekNia0k4MURVTVlNeTJ4dFRyYjJkSGZZeCtMWk1aZUhPSitRaXpFTlJ4d3hhOCtpajlsN3haajRsMytpTXZ1SXFxZnhDTGlLbnBLaGpCbVgyTktZR0J3elRncnA1V0IrTVdMNThwZk9SdUVTWHpTTWE1c0ZuK0EyYnNHQXpHalJPY0t2bCtyRk54TE90L01zR1hBSjNiUitLSDR4WUVFVUxEaEVzeUMrb1JNWlZnSGxBSU1GTlAvQUEvY0RERkpGS3hGMEZtQWNnODVXRm9namtsT3pNSXppZGhUbzFPdCtReTZKakxHNktPbWJndGEwaDFkemQzbUVmZzIvTExTemMrWVJjM2ppNlFsbkhERnB2SFV6QnV6czY1QnQ1dUpmeXdvRGNRaTc1dVNDaHpPN0dWTjg0TGFpYkJ3cVcvMUdtalBmWFlXRmg0bjRLVEZ2aCtWRU5tN1FRd0pTUk95M2prZXg0eTJIcDBwNC9NL2ZpUjdJWFpOR0NRd1FMOGdzcWtYRVZJRzc0QkRmOXdBUDBBeTg1T1ZrcDRxNENqQU9mTWw5WktJcEFUc25PUEtydDcwQWx0ckJ3NXhNcHYrMjFZdlR4QmNvNlp1QzF0U0ZWM2RYT1lSK0RiOHVVcEh3ai9iZWpWanlXK2FxeWpobTA1dEZIOVYySkR2bldQZGhEZVdGQWJpR1gvRjZRRUxYUE1NMG1pNjE0R1JUamo1QmE0YmR3bndjUzVwZ21hc1JuK1kyYkpsQ2pwaTNGcHpzc04yZ1VUM1hDNjFPbHlsWHhNcWkvR2NVdmd5cklvZ1dIQ0JaM2VrVXFBSEhEV1RhNDZRY2VvQjk0eUMvWUNyZ3JBZlBBbmVreVgxa29pa0JPeWM0OEt1OXJxeFJ4VndIbVVYbEhLNGQ5REw0dGtwUGNCcTIySkZHVkhhMGQ4cTJWM2xWNVlVQnVJWmY4WFpEUWlPb2FwOWxrODlDbnJyWUVCVlU0aXpmMTFZOXVTTEZzSG8yYk5xY21jUzJvY1Z3cjhla095ekZzYkRWRDZwQ3ZueCtlcGx2OEd0cUNMbHB3aUdEQkhMaEtaRndGaUJ1bVpjQk5QL0FBL2NCRGZrRWw0cTRDekFNdmZKTDV5a0pSQkhKS2R1WlJmZzhMZFFvTHQ1dkFLN1VobGQrVzRMQ1B3VmNsNHE1Q1N6YVBDdHRhT09RYnZMK1Q4c0tBM0VJdStia2d3V3RISTZxOWh6blp4SVJVeWpCR01mK0xlSHRnWlAyRzFLQkJBOHZaUG9zMnBveWF4TGNXY09WeXd5WUo0aWJHeXBVcll6K1E3eGloY1M4dUJWVzA0QkRCZ3Z3Q29CSWFWd0JYQStWa0hoczNxb1hjRmRpMEtYdnpLQUk1SlR2ekNOeVZRQjRwTEN6SkxONXVnREpiR2xGZ2FyekRQZ2JmVmhEdXpRUGRBcTFTa2lnb3RabER2dFgydGFjU1czbmY4Z201aUp5U29vNFpJS2NVdk11UVU3STFqMUtNOG95dDVjcFYrQW1qRDl4TDBhaHhNM0cyMzdSWkcyb2EzOUlDRnkzRFFEQ2RKcDVuNWV1SE53aHUxVGdYWDJWVmtFVUxEaEVzbUVOZnZ0eDk4aDRyVmxqZS9BZHUrb0VINkFjZTdncFBUbmFmcWF1VWxHU1JpNUQ1eWtKUkJISktkdWJobjl5RUFsTGpxTVJtRmhjM1FMbXR6Y2gvVTJPSGZSeVFFa2Z0dGd5aEZwdFl2TjBBN2JjT3BjQk5UUjN5cmJ5bnJmTENnTnpDTHFla3FHTUdtQmFzdm9NNTJjU0VWRER0STBZZi9QdWxrRnAxYm1EMGdXZGROWTVMb0NZUThXWThBZ0dhdDNYSmNnTWVkZFNwRzBFVktsYkc1Ymw0a3U0b2pYUHhsRlZCRmkwNFJMRGdFUmlyVjMvc0ZxTVBjRml6NW1QeFNBNXcwdzg4UUQvd2tEemV2bjJiTlZIdFNvQUR1TmplMUNnTFJSSElLZG1aaDk5L3dxbHhXaC95M055QVNteXE3MUtVU1c1RVRkUDZrdDk3WVE3N3VQeUhzZFJsM3hocXZXa3dKV3djNkZLMDNUeUV1dThiU3hYZVkyRjJ3TGZDN2xaS0VYY1Z4QVVKMncwNUpWdnpRTUVaZkNEamZhOHlaYzdVcWxXTDZzVTJvWVpJV0RkdVRIRUpiUVV3ZmVUczVjYnhyU2c4UEp5cVZLdUJPOHAvQVVlTmEvR29vNkNMRmh3aVdQRGNKTHpmWXUzYU5lTEtJQWdoQk0rWlFKc3dCZHpUQUM1NG53VzQ2UWNlb0I5NGVGUUhSaDg3ZG13WDkzd2dnWTZwTEdjQ2JhYW1iaEVjd0FYUG5aTDVjcC9XMXZrV2daeVNFSW9CQXdiVXhIZEE0TndBOGtwcFFLMzJENkd3SFYycDNKWUVDdGpTektrb245cUM2dTdzU3EzU2g1TFhsb1lVTUN2QVlSL1hubHVIdkZNYVVsTGEvZFIvKzczVWVjc282cGd5d3Fub3NtVTBEZGd4bFpMMjMwOWxtRy9vck5vTytRYnRiS0c4TU1CVlFFNnAwbFpEamtabEhpaTRTMXVjWkFTVksvOGRYcmdVelFiU1dFd2h0YUs0NXEwcHZrVTc4ZW1zNVNieExjUlRmcXZYRENWZlh6L2NUWTc5QU1maU84b0xvMmpCSVlKbDZ0U3A0dkhlZUU0U0RHVGR1cy9vczg4K1pheDFFdERXWjl6MmFqRmRCUzU0TXg2NDZRY2VvQjk0ZU5jRkh0ZUJ4Nm52M0xtZGR1L2VKUjUyNkV5Z1RiU05SN25qWFJ4NHlxM01kLzc4K1NFZUhoNkNieEhJS1FtaEdEVnFWRFY4QndSTjhTYi9wUlY1NUJGRExkT1RxT3ZCc2RUNXdCaW5vc3ZCTWRSaWZ4SjVib3dtLzhjcVVPQjRiME1mTDFxMEtFU1BpWWg3YTFITngrdVMxK1pZdW12L2VCcDdZQzZOTy9BZ2Z6b0hhR3ZNZ1RuVWJmOVlLck14bG1vdXJVdDFKNFE0NUZ0MlJ6UHkyQktqdkRqQUZTaURDeEtNT1JwSDVvRXBJRHdqYWpqamF1VXExWDZyRzFHZllodkZVK09tTFNpdVdXdHF4b0llMzd5TlFMTVdpWVc2REFPcEg5T0lhZ1RYSXYreWdYOHdwK3NNSk1uQnNYaTZxakFLQjRjUGdnU0w0OGFORXdhQ0IrL2hEUHJGRjE4VWd1aE1vRTIwamZkWGdNdVlNV1AwUVA2VnVRWUFmT0Q5aVFNUEwwQ0NnV0JxQzlNdnVJbE9mNVNIczRCSGpxQnQvY1ZOYytmT2xma0dzc0dVWjc3WHdOZnkwaW4zeWluaFRuV0pydzh2bC9qMDAwL0w4dC9YOEgzZ21ETENRQUpuK1pQUGF6WEljM1ZkOGx3YjdseDhIQ2JhRHB6aEo3Z0VqQ3Jqc0kvRHhnWUxBNmt6dXpaVmVEMkNmRmZYSTUrMTlaMEt2NC9yaWJiRFp0YTJjQmtkN0pCdnVjM3hGTEExVG5seGdDdFFibHN6cXJEUmVrR0NOU1ljRkV3RjRRbTFEekgrcUZLdHhxKzRlVEMyY1hPUis4QnpwWnExVEdTMEY5TksrQ3o0NVVScXlzWVJGUlVsTHNzTkNBekNZOWV2YXB6QXJYaTZxckFLQjRkMzZkS2xNN0RZbzBjUElkanVoTTZkTFkraThQVDAzTU5jeXdKZVhsNFpPUENHRFJzbUJOdWRNR0RBQU1HWE9ZSnZRRnBhV2lENDRqdThHdGJkY2twNHJMdlV2K0pwb3l0WHJ2VFhZOEt2bTZjUWJIZUNiMGRQUTB4czI3YXRuQjRUMWJ0WEZvTHRUcWphcWFLQjc0RURCNEowdmpYZmIwU045dlVteitRR1ZHSnpmWmVpVElvbHB4VDhWa083bU1pbTRPb3J2QjlqS2VPdlNsV3EvaElXSGlXZWVZVXJvT0lUTUVKb1M4MWJkUkNmQmJrTUEya2MxNElpNjhkUzlab1ljUVRveHZHNHhnbmNpa3RoRlE2T01uNStmcTlqTVRBd2tDWk5tcVFVY1ZkZzh1VEpWSzVjT1JISUFRRUIvMkN1ZmdBdnY0SHZLbFNvSUI1TnJoSnhWMkR4NHNWVXNhSkZLRFMrL2d6ZnNtWEx2b2J2Y0ZhR0s5cmNLYWNVR1JrcCtETEhweEFMdkZ4aTNicDF2bnBNZUFTV3BNQUphaEYzQlFJbmVwTkhVRWxEVE96WnM0Y1hMVEhoR2VoSmRTZUdLRVhjRlFpZkZFcGVRUmF6MC9rQ3ZDejZ0MnhNSVBra043YmtsSFoycFhLcENSU1Eyc3lwS0wrMUJkWGQxWlU1RENWdk5wQ0Foa0YyTVpGRDBRMWtJZU5xWUZDNTg3VnFoMVA5bU1iVXVHa3ppbXZXaXBxejBEZUgrRE1TMkFEeXU0eHROdVFSRGg1NldLVnFkZkx4OGNHTmdKaXFBb2RpNDNCRzRlRHdEQTBON2VyaDRmRTkvcXhkdTdiSU02akUzSm5BRkJxdTRnQW5jS3RidDI0bjV1b05zQWgzMC9uV3ExZFA1QmxVWXU1TVlBb3RVaE5pY0FzUEQrL01YSDNBTnlJaUlwRy91NERmdW5idDZoWTVKVXhYNmFNNjhLMWZ2MzR6eEFML2paandDZzRPN3FsejlxemxJZklNS2pGM0pqQ0Y1aG5xb1lvSkg0NlZYanBmLzlxK0lzK2dFbk5uQWxOb2ZxRStTcjV5VEZRZVhKTzhOeldrbHZ1VHFNc0I1K2VVZ0lTMEpQTGQySkFxRDZ5aGpBa1RCV0tOL0FoeUlEenlMdk5kdFdyVnFXNWtOTVUwaWhjM0VtS0tDU01IVERjbHRPNG9rTHZsRHVKcXJrWnhMU2tLaWZIcTFhbDh4Y28zU3BVdWZSRnRNcERqQUlkaTQzQkc0ZUFvelFkZWN6NWpuc1REYU55SlNYeldTUWtKQ2RTL2YzOUtTa3B5S3ZyMjdTdmE1ak1KRWNUTTZYTGx5cFhIOGNFV3gxeTlBRDRJRTJTK2ZCWW5oQkNtTjJYS0ZLZGkvUGp4b20zMG1ZSnZHUng4OGZIeGRaanZGUDd0Q3VvZzZHR1F1RnBNZmxPZ000RDhFTnF1VkttU2dXL3IxcTFERUF2OG5Sd1RWczRlZmlYSnUzbHA4dS9yUldVSE9oZitmYnhFMnlWOUxDTU9tejZXWThMS3Q3UmZLYXJZdkJ3Rjk2dEtJVW5WbllyZ3ZsVkYyNlY4U2puazI2cFZxekNacjI4ZFA2cStOSklxcklxbGNwODRGeFZYeG9xMnkxUzNYb2hnRnhNbUMvSUxtT2JDMVhydmxTaFI4bytBd01CZmdrTnFDeE5CUXJ0UjArWVV6eU1IVEdjMWI5bU9XclRwS0Q2elcyN2VxcjI0K1E4dmQ4S1RmSU5EYTFQRlNsWDAwUWFlV2NWdGlUYlJkbkdPdzFtRmc4T0RoYUlXQzFybkdqVnFKSGw2ZXU3QTErNkFVcVZLWlZTcFVtVVV1TEU0MUdTdXBZQ2l3RGM2T2pvWUJ4NndmdjM2TW53bTN3WUhKTmM1cFZyWEZkRDVob1NFdEU1TFMvTkVMUEQzaUlsU1VWRlJvby9kbGJOTlRKUXVhbnlMV2t6a291REtKb3hXQWhnWUNXeGhNL3JOUHlEZzUrbzFRMjdoOGVnUlViRlVqNDNFY21NaEhtdlNncHF3T2VBK0RYeml1eWJOV212djQyZ3EzcE5lcTA0NFZhc1J6S1pSOVphM2o4OWwzaVl1OHRtaXRZRzIwR2J4VlZYT0xCd2NKZDk0NHczUDh1WEx0K0NnNmNRQjNZV1hwL09aOURJdkw2OVVCTFl6d1cybWNOdHZnZ080Z0JPNHBhU2tRSWc5Z0NMR3R5U2pWR0ppWWhELzFvRjlyMnU1Y3VWbXV3dmZxbFdySm5idjNoMVhzVUhVeE1HSFQvUXg4MnlGL1hFM3pvNWlvaWp4WlJTcG1NaERnZWtnWDRMSGdtQXFLNWx4eGRQVDZ5Y2VqVnl2VXEzbVRWeFd5NmJLeGhCQmRlcldvOURRVU1MOUlyWHJSaEtmR0ZLTjROckU5WWg1a2E5ZjJkOUxXNmFuY0JVZ3RvVnRZdHRvbzNpMDRZcUM0QUFpSXlQTEJnVUZ0YTFRb1VJbkJEdk9sQkJJQ0d3WmZQWlVvTERkUHRwRTIrQUFMdURFWi9GSVBBdWVSWXl2Ymg1aUdRY2sxMnZ1TG54WkpPSUhEaHdJcmxhZWNrencrZ0c4UDRsRkpTWjQzU0xGbDFGa1lpS1BCZXZxSm9JbjJqWmhQTWs0d01qeThQRDRyVlRwMHVmTGVIdi96OXZIOTZLdnIvLy9HTCtWOGZiNTFhdE1tVi80dDE4eGhjWjFiMmpyWUYxc0E5dlNUU00vL0lwTGZnb0hoMVVzT0pCeDVWVURmMy8vRG9HQmdSMFIrRG9RV0lVSnVTMjBEUTYrdnI1TnVmanEvRFN1UlpZdlE1eHhSa1ZGVmVDenJObzFhOVpzd051Q2NEVG5NNjJFd29UZURyY1ppN1pqWTJQTGFYeGtnN09MQ1loZVFFQkFmRkhwNDZMR2wxRWtZcUlBQ2tRZStSTWt0Q0grZUIzc1FBYXVqbnFYOFRIakt3MVl4bmY0RFhWUUYrdGdYV3lqMkREY29TQTRKSWlBNFNGMElKOHRoWEx3eDNEd3grTmdkQWJRRnJjWmpiYkJRZWVqY1ZPaHFQRjFlemlLQ1JiRGNrVXBKb29hWHcyNmNBdERjUkxrTm1VdVZvNkZVUFFSQ2ZJVVNITERGSEI1clF4OGg5OVFwM2lFNFhhbFJJbi9BelRGVHVNU1FjMzJBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicArrowLeft", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQm1KTFIwUUFBQUFBQUFENVE3dC9BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVIM2dRWkVqQTAzU0hjY2dBQUFFQkpSRUZVR05Oai9QLy9Qd01SSUpLQmdjR1g0Zi8vLy9odzVQLy8vNWY5aHdLaUZPRlNqRlVSdW1LOGlwQVZFMVJFdHNra3U1bXMwTUNyaVpHVUdBUUFzOU5wbXo4SWloRUFBQUFBU1VWT1JLNUNZSUk9"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorScaleXY", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFUZ0FBQUU0QnNjMGZNd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQlBTVVJCVkJpVmxZOUJFb0F3Q0FNM0hmLy81WGdRMndyMFlJNndKRUcyelNaSkFraGpSZ2QxR3FkRkN5cjAxc2l4QUNVcVlJWEJBcnRyd0xudlZTS2V2WFpud0FWTXRXYmN2NjhQK3BTL0FmNTJIUmZ1cmtCMkFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicLog", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFBa1NVUkJWSGphWXZ6Ly96OERzWUFGaVkxUEZ5TzZZc1pSa3dlSHlRQUFBQUQvL3dNQStmWUlMQWhqbnhZQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:bitmap_flixel_system_debug__Window_GraphicWindowHandle", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUZCSlJFRlVlTnFNandFS0FDQUlBeFgyeWg3b055MmpRa3lwUWJUMGRFU3FTblllRXZoWE5zRE1ZblhlelZHNHdBME5OVlJaSGpLUEgyaDYvNWwxVzBPaXgzTlRFbDFDSjdxS0MvNExraTdBQUQ1WWZydllMZlJQQUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoCorners", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQVlBQUFDcWFYSGVBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQlkxSlJFRlVlTnJrV3d1eW16Z1FsR1Q4d1g1Sk52ZS9UUTYwdFhrdi9tRkFDNjRaMG01TEFwejFPaENxcHJEQnh1NmVuaGtKUnRZWTg2MnhkV1A3eG40MDloM3NIem4yMGRpeHNaTlkwZGlsc2JLeENxd0c4MkQ4M3NDZVg3ZWJoWDFyRHZacVdXTUwyUzhiV3dtT1RXTnZZbDhhKzlyWVg3TC9MTWZiejJ3Yk8yZHljQ2tBQ3JtZ0FTQkZ3QzZ5Ui9BZVNJZ0Jad0lZT0pPQVJDandSZUQ2K1BrTS9sc054OVlDZWlmN055VmdMeGQ5QjYrMzlyZnN2NHNLV2dXY3lmczFlVDRGT3VUOVBnSVFXRWdKQzFCQklZNjhpT20xVVNVWlhIZWhCSnprd0VHQUtoSHZRc0M3a0hRU0FpNEF1b29BcjhuTEtlQkRWR0FEUkRnaTRnSktacy9uNHZWYzNxL1VrVXFBRjVBZllrakNoNUNqM2k4SFNOMzBBQjlDZ0Uwb0FVbXdRa0JKdVVpUHJ5RG1jM205RkNJNkFpcngvZzhnUU1Hci9BdncvcEQ0N2dPYzh2eFFFcFNJQ3ZhbFhKc1Y4Q2J4bndNcFZTYmVMWUVBQkw2WDh5ZUsrMGRCRHdYK0tCRTFPQWdKVUd4YklzQm5VTmEwREI3azlSRkszeGtraGpFK3hMc2h3SDRrZUQrQUNFM0VXc1cwVkI0QW0xWUFMWmMyZzlwK0lQQUhxdmxWSk5iTlNFOC9vZ0QrYm93SXZMWVR4eDBCMTE0STJJZ3RNZ0NxSHp4Q3lWUFpsMVRxbmdteTcxcVdsR1poYjZqOEZZUnRUOGt3eXdUb2lZQVhFZkQxTDRKOGxCZzdrSFF2d0d2NDc1Y0F4b09RMEJHQTRNODB6T1doN2JNOVBsUUZzWE0xNUlRU0JrWWhFbFlaZ01haGJxeld2d0o4MzIvYWdBbzhPSzZDb1R1VFVDTUJPTkJoNzc4YThKakU2R2wwV29FS0NzQjYwaktJRTV3TGxic3hZL2ZmZ1FoV0ErYXVNa0NDeVFMU0x3Zkd2Zm5OeVdBVmxLU0VRc2NCUlVUNmZpS2VUeW1ocGx6QUpGd0pLQlAxZnFvSzRMQ3RZYUtFSkRoSDRLc1pTRDgwTnFnREpGd3R3emNrbWFtSGdROGt3NHBJV0RqeS90UVZFQ01pUmtMbElqYzFwK2oxUGdKOElDRldMbkZuMTgvTSsxWGdIdWFOQXVvQk56dW1Gdis5WWVBQ1NXL29sSGVxT2VER2hpcGc2dU9BS0JFdVVmYm1zREVKRlpQZ1RQcWh4bHhJQ0QybTZ3Z1krOGhxVHZuQXU1bDZQVFl6dkZPRCt3T2tINW9YZE9kY1l2dzg1ZEdnSHhvT3pveDdiaitYSE5BZGMyYittMDlNazQyYmFlSWJzbGtsd1A0cFlFUHZYZVFEcVMvUGFsTUZoR3lPS3Jqck8zSXpCODBLdm51czdoTGVueklwc2NmbmQ2cDNpVENZaStkakpEZ2t3TTI4SW9SYTdib2NNR2NWaE1CamE1M3JYZ1NJbUVNSkRMWGNJdVlGZGxzdUlpVE1EZnhObDZrTGdIZG1Yb21RUTBCYlp6c0N0SWRXRDA1OVlHUURCSEJ2c2JiUVpZN0FZM3hNT1JuYW52aS9VVUJHS3BoVFNXVHBZM2Q1aTNuWm5sanBtNTU4WUNlWStFS0xMQlRyQ2dsWXc0bU13c0JNWkdnY0d2bTVsUGVOdE1sZDI4YUZpQlVSNEdES1hKdGhEWXV2bnV2SEZJREFPd1VnQVdzS0IrNFB0aWJjbWhxN0RXVk11TkY1N08yc01mY2wrbGFWNE5xaXE3VUhOd0owQXlmTzhnVnNqMC9kWDdPSlAydi9ZKzhPbWVveStDVTRkdzFxdjRaQUxuOCtGK05HNlJBQi9oYzkrOHg1UG51ZFBhOXJCWElOQVNWZ0srQnpjN3MyQ0lIR1dtZTVXenNXTGo0U0Zxd2VQd0kwMzlwRHI3UGtOMkJyVkVDN3RZc0plRjBncnI3Z0xqSm53azlmWGxYdWVLaTdCTkNxN3EzNTJTNi9WUVZzNVlzS0h0dmxhMkFZMXduZVBXSXkvOCtUSkp1WTZOaEF0a2ZRT3lLZ2E1ZlBoVFgwUGk0OHhEc29xV2JLWnl1aER6eU84VlgyQ253WEljRXBBVXZ5UEpaQWpDdGRXZnFLbmlMYjQza3VkUnNCck10b1B4RUpMVzZMWlhCbjd0Y0xlQ0lnSXhYRXdpRkZRbXdNMFZmelkwdHBPZXVyOTNQQjlFbE1sYUR5YnovVExTc3pKdDR5YitCSGxrUlFUQWtwRXZ6STBoa2I0ckxzMmZ0YklPQU5iQXRWNExwZVlHZCtManIwZ2RLSGlhVnZQZEV6OGtIb2xyYUwxSHYydmtxL1hVWGVyaUQvVEdxb2NQSDB5ZHl2dXViWXFzejlpbTFWZ251Z01neXArVFl5ekkxTmNIQm1pM01aWFIxL3hLVCtyd0FEQUFKQmFpQW1tNXh3QUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileCircle", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBOE1HbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MUxXTXdNakVnTnprdU1UVTFOemN5TENBeU1ERTBMekF4THpFekxURTVPalEwT2pBd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRkpsWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sVW1WbUl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uUnBabVk5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmRHbG1aaTh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGxlR2xtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwyVjRhV1l2TVM0d0x5SStDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJ2Y2xSdmIydytRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRRZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTBMVEE0TFRBMlZERXpPalU1T2pNMkxUQTFPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRRdE1EZ3RNVFZVTVRZNk16QTZNRFF0TURVNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUwTFRBNExURTFWREUyT2pNd09qQTBMVEExT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tWmxZVEZqWlRRMkxXRmlabUl0Wm1RMFlpMDRaR1prTFRBek9EWXpaVEExWldKaU9Ud3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pSa05HUmxZakUyTFRJMFl6TXRNVEZsTkMwNU9UQmlMV0kyTkRnMk1EQTRNVEpsTXp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdQSE4wVW1WbU9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNMFpHUVRBME9URTRSVEF4TVVVME9UbEJOMEpGUlRRM09ESTVOalk0Tnp3dmMzUlNaV1k2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEb3pNMFpHUVRBMFFURTRSVEF4TVVVME9UbEJOMEpGUlRRM09ESTVOalk0Tnp3dmMzUlNaV1k2Wkc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BDOTRiWEJOVFRwRVpYSnBkbVZrUm5KdmJUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09qTXpSa1pCTURSRE1UaEZNREV4UlRRNU9VRTNRa1ZGTkRjNE1qazJOamczUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K2MyRjJaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGlOVGN3WlRoak55MHpNemhpTFRSbE5HWXRPREF5WkMwNFptSmpObVJoWkRnNFltSThMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UUXRNRGd0TVRWVU1UWTZNekE2TURRdE1EVTZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMElDaFhhVzVrYjNkektUd3ZjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbU5vWVc1blpXUStMend2YzNSRmRuUTZZMmhoYm1kbFpENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBuTmhkbVZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHBibk4wWVc1alpVbEVQbmh0Y0M1cGFXUTZabVZoTVdObE5EWXRZV0ptWWkxbVpEUmlMVGhrWm1RdE1ETTROak5sTURWbFltSTVQQzl6ZEVWMmREcHBibk4wWVc1alpVbEVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZkMmhsYmo0eU1ERTBMVEE0TFRFMVZERTJPak13T2pBMExUQTFPakF3UEM5emRFVjJkRHAzYUdWdVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5DQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBFYjJOMWJXVnVkRUZ1WTJWemRHOXljejRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBDWVdjK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG96TTBaR1FUQTBRekU0UlRBeE1VVTBPVGxCTjBKRlJUUTNPREk1TmpZNE56d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcENZV2MrQ2lBZ0lDQWdJQ0FnSUR3dmNHaHZkRzl6YUc5d09rUnZZM1Z0Wlc1MFFXNWpaWE4wYjNKelBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwUGNtbGxiblJoZEdsdmJqNHhQQzkwYVdabU9rOXlhV1Z1ZEdGMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajQzTWpBd01EQXZNVEF3TURBOEwzUnBabVk2V0ZKbGMyOXNkWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xsU1pYTnZiSFYwYVc5dVBqY3lNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTlRRMFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqTXlQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejQ0OHNzb0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBS1RTVVJCVkhqYTdOek5XdU13REFWUU5PLy96bWJCWmhiTU5HMFNYVHMrWjhsUHBBYXdidTE4MUJqakMyQVJyeGFzQ3RTOHE1ZXJGdWNLMVgyM2o2NWhWTUhhdi9XUUdzSVZyUDNUZ0FBQ0NBQUNRTk13ckhENEVBQW1Jb0FBQXNEOUE3RkNkZC9wSTdVRElRQUlJTURpZ2FDYTZnZ0F6d29BaVJCUTRmQ0JBQUxjTkJobjJYMzRwQi9QSVBUMllBY0NBUVFXRHdNelBmOXdwcWNkbjBGSUJoQUJnQzM5Y1F2Z3JjRThUbncrRVFSR29PYW4xeDVOUDhOaytFZ0dEcGlLSFJCV0RRSlh2ZHUvYzJCVW9PYVpYaHhCOVBkZ0FXWmJka0JZTFhoMDdrQ2NIVTRqVU5PN2JrQUFZWXN3Y01mUVB6dEFSNkRtNm9NL2VRUXhncTkzYkhMUFFRRGhNY0hqNk1kVEMvVlkrUDRhZUlBQXdwSmhJRG5Bbm5BRWN2WHJNUGdCQkpCSEJvK09JSkk0QW1HZVlIbFhUVWNnSUlCd1FSQklMNXJqZ2ZjM2NZM1VRNkJqa1hzS0lJQk1NaHpIUnEvVm9BTmcrd0NTMklINDEzQ2Q1ZDJyd1ErQUFBSUE4TFFBVWwvMy9mZkxWM1dQZkt5amJxSVBBTmc2Z0tURHp5NUR2NXErQndBQmhJTkR0Z0kxZHhuNkZicEdUZnBhQUFRUXBnbytIVUdvYnZwYWV1OWJUZkx6cWdsK1YveWVnZ0RDUlVGa2hnVzdBalZuKzE2RERrQUFvU24wM0JtR2Rub0dwUmE5Tm9BQVFtc1E2ZHFGU1J3QjFTVFhXRDM0dktybENBZ0VFRmdpOUh6NitlNGhVWUdhaGgyd3hvSStobitjQ1FjZC9XT3A1bnBYOW5QM2dsREIydi9yb1hzaHJHRHR2M3N3QUlpeEF3THZMZGlkT3pDSkk2RGtNeWpKbzd6Wkh1YUc1eStvZGtCZ0NlLytvVlp6dlN2N3VXdFJxbERkSTMzWWdVRUFBWllOSTlWVXArTWRmeW9BT1lMcTdjRUFFa0FBTGgrTXMrekNDRUJ6QnlBN01BSUl3T2tCV1lHYVR3dEFxU09vWkFCeUJDV0FBQWhBQWxBa0FIa0daN01BOUEwQUFQLy9Bd0FwRU5ZQU4zRnlhZ0FBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "__ASSET__:bitmap_flixel_addons_transition__TransitionFade_GraphicDiagonalGradient", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FDQUlBQUFCTVhQYWNBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBRHZzYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMalV0WXpBeU1TQTNPUzR4TlRVM056SXNJREl3TVRRdk1ERXZNVE10TVRrNk5EUTZNREFnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZlRzF3VFUwOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXRiUzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25OMFJYWjBQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2YzFSNWNHVXZVbVZ6YjNWeVkyVkZkbVZ1ZENNaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenAwYVdabVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM1JwWm1Zdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WlhocFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzlsZUdsbUx6RXVNQzhpUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMGIzSlViMjlzUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTBJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TkMwd09DMHhPVlF4TmpvME5qb3lOUzB3TlRvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBqSXdNVFF0TURndE1UbFVNVGM2TURBNk16QXRNRFU2TURBOEwzaHRjRHBOWlhSaFpHRjBZVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTBMVEE0TFRFNVZERTNPakF3T2pNd0xUQTFPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yTnpnNVlUUmlPUzAwTURJNUxUUmpOR1F0WVdJM1ppMDNZMlEwTVRSbU5HUmpabUk4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG1Ga2IySmxPbVJ2WTJsa09uQm9iM1J2YzJodmNEbzBNVFpsT0RrNU9TMHlOMlZoTFRFeFpUUXRPR00xWVMxak9XVTRZV1JoTVRKak9XUThMM2h0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEcG1NMkV3TVdKbE1pMHlZVGRoTFdGa05EY3RZV1ExWlMwM05ETTJPVGd6WWpaa1pEWThMM2h0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9raHBjM1J2Y25rK0NpQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNlUyVnhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajVqY21WaGRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwcGJuTjBZVzVqWlVsRVBuaHRjQzVwYVdRNlpqTmhNREZpWlRJdE1tRTNZUzFoWkRRM0xXRmtOV1V0TnpRek5qazRNMkkyWkdRMlBDOXpkRVYyZERwcGJuTjBZVzVqWlVsRVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmQyaGxiajR5TURFMExUQTRMVEU1VkRFMk9qUTJPakkxTFRBMU9qQXdQQzl6ZEVWMmREcDNhR1Z1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TkNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbVF5WXpCa09UZzRMVE5sTm1JdE9UVTBaaTFoWm1JNExXUXdOamMzWlRrMllUQTVNVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOQzB3T0MweE9WUXhOam8wTmpveU5TMHdOVG93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UUWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WTJoaGJtZGxaRDR2UEM5emRFVjJkRHBqYUdGdVoyVmtQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtjMkYyWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yTnpnNVlUUmlPUzAwTURJNUxUUmpOR1F0WVdJM1ppMDNZMlEwTVRSbU5HUmpabUk4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFF0TURndE1UbFVNVGM2TURBNk16QXRNRFU2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTBJQ2hYYVc1a2IzZHpLVHd2YzNSRmRuUTZjMjltZEhkaGNtVkJaMlZ1ZEQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21Ob1lXNW5aV1ErTHp3dmMzUkZkblE2WTJoaGJtZGxaRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ1BDOTRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBOFpHTTZabTl5YldGMFBtbHRZV2RsTDNCdVp6d3ZaR002Wm05eWJXRjBQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0elBDOXdhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tsRFExQnliMlpwYkdVK2MxSkhRaUJKUlVNMk1UazJOaTB5TGpFOEwzQm9iM1J2YzJodmNEcEpRME5RY205bWFXeGxQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajR4UEM5MGFXWm1Pazl5YVdWdWRHRjBhVzl1UGdvZ0lDQWdJQ0FnSUNBOGRHbG1aanBZVW1WemIyeDFkR2x2Ymo0M01qQXdNREF2TVRBd01EQThMM1JwWm1ZNldGSmxjMjlzZFhScGIyNCtDaUFnSUNBZ0lDQWdJRHgwYVdabU9sbFNaWE52YkhWMGFXOXVQamN5TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajR4TWpnOEwyVjRhV1k2VUdsNFpXeFlSR2x0Wlc1emFXOXVQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejRHbjBRVkFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBS3ZTVVJCVkhqYTdOdkpjc0pBREVWUlI4WC9mM0c3eVlLa3l3d0JUR3cvRFZlTFZJZXFMRGd2a215R3IvUDVQQld1ODIvMTY1cm5lZmx6ZWJpcDFscnZ2YlYyT1k5Znh5UGo4WEZZbmsvbzk5NXZBbGlsdnp5djFXK3RHZnBDL1htZURYMkovdmhEUTEraVgzY0V1ZEl2RjRBMy9Wbzd3SlYrdVIzZ1RiL1dDSEtyWDJJRStkU3ZNb0xjNnBmb0FQLzZtVHNnaEg3YUFLTG81eHhCSWZUVEx1RW8rams3SUp4K3FnQWk2dWNaUVVIMWszUkFSUDFSaHI1RVA4bU5XSFQ5MkIyUVFMLzNma0pmcFI4NGdCei8rMUVEU0tNZk1vQk0rdkVDU0tZZjdENGdtZjU0eE5BWDZzZm9nTVQ2QVFMSXJlOTlCQ1hXSDAvRTBKZm9lKytBSXZwT082Q0kvdVVKR3ZvcWZZOGRVRTNmVndBRjlSMk5vSnI2WGdJb3ErL2lNclN5dmo2QTR2cmlFWVQrTkUyR3ZsQmZGZ0Q2ZzhMUUYrb0xBa0QvQnNUUUYrb2ZHZ0Q2RDFrTWZhSCtRUUdnL3dUSDBCZnE3eDRBK2krSkRIMmgvbzRCb1A4bWxLRXYxTjhsQVBSWGNSbjZRdjJOQTBEL0F6UkRYNmkvV1FEb2YweG42QXYxTndnQS9YOENHdnBDL1g4RmdQNG02OVBRRitwL0dBRDZHOTQ4R2ZwQy9kVUJvTC81UzJlR3ZsQi9SUURvNy9UR2lhRXYxSDhyQVBSM2ZkdmMwQmZxdndnQS9RTStOR1hvQy9YL0RBRDl3ejR5YStnTDlSOEVnUDdCWDVndzlJWDZWd0dnUHluSzBCZnEvd1NBL3FRclEzK1NscUd2RHdCOVpRRDl1dEJYQm9DK01nRDBsUUdncnd3QWZXVUE2RHZxQVBTVkhZQytzZ1BRVjNZQStsNUdFUHJLRVlTK2NnU2g3eWdBOUpVQm9LOE1BUDNqNjNSUlJsOThGWVMrY2dTaHJ3d0FmUzlMR0gxbEFPaUxkd0Q2NGgyQXZvc1JoTDV5QktFdkcwSG82M2NBK3ZvN1lmVEZIWUMraXlXTXZuSUpveThlUWVnclJ4RDZ5aEdFdnBjZGdMN2Z5MUQwbFplaDZPOVVwM3YwNSs1RC8vNHdsRy95R0RHZy84bDl3RHY2eTY5YW9yK3F2Z2NBK3hBWW83UTYySThBQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicFlixel", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUF3QUFBQU1DQVlBQUFCV2RWem5BQUFBQkdkQlRVRUFBTEdPZlB0Umt3QUFBQ0JqU0ZKTkFBQ0hEd0FBakE4QUFQMVNBQUNCUUFBQWZYa0FBT21MQUFBODVRQUFHY3h6UElWM0FBQUtPV2xEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBRWpIblpaM1ZGVFhGb2ZQdlhkNm9jMHdBbEtHM3J2QUFOSjdrMTVGWVpnWllDZ0REak0wc1NHaUFoRkZSSm9pU0ZERWdORlFKRlpFc1JBVVZMQUhKQWdvTVJoRlZDeHZSdGFMcnF5ODkvTHkrK09zYisyejk3bjc3TDNQV2hjQWtxY3ZsNWNHU3dHUXloUHdnenljNlJHUlVYVHNBSUFCSG1DQUtRQk1Wa2E2WDdCN0NCREp5ODJGbmlGeUFsOEVBZkI2V0x3Q2NOUFFNNEJPQi8rZnBGbnBmSUhvbUFBUm03TTVHU3dSRjRnNEpVdVFMcmJQaXBnYWx5eG1HQ1ZtdmloQkVjdUpPV0dSRFQ3N0xMS2ptTm1wUExhSXhUbW5zMVBaWXU0VjhiWk1JVWZFaUsrSUN6TzVuQ3dSM3hLeFJvb3dsU3ZpTitMWVZBNHpBd0FVU1d3WGNGaUpJallSTVlrZkV1UWk0dVVBNEVnSlgzSGNWeXpnWkF2RWwzSkpTOC9oY3hNU0JYUWRsaTdkMU5xYVFmZmtaS1Z3QkFMREFDWXJtY2xuMDEzU1V0T1p2QndBRnUvOFdUTGkydEpGUmJZMHRiYTBORFF6TXYycVVQOTE4MjlLM050RmVobjR1V2NRcmYrTDdhLzgwaG9BWU15SmFyUHppeTJ1Q29ET0xRREkzZnRpMHpnQWdLU29ieDNYdjdvUFRUd3ZpUUpCdW8yeGNWWldsaEdYd3pJU0YvUVAvVStIdjZHdnZtY2tQdTZQOHRCZE9mRk1ZWXFBTHE0Ykt5MGxUY2luWjZReldSeTY0WitIK0I4SC9uVWVCa0djZUE2Znd4TkZoSW1tak10TEVMV2J4K1lLdUdrOE9wZjNuNXI0RDhQK3BNVzVGb25TK0JGUVk0eUExSFVxUUg3dEJ5Z0tFU0RSKzhWZC82TnZ2dmd3SUg1NTRTcVRpM1AvN3pmOVo4R2w0aVdEbS9BNXppVW9oTTRTOGpNWDk4VFBFcUFCQVVnQ0twQUh5a0FkNkFCRFlBYXNnQzF3Qkc3QUcvaURFQkFKVmdNV1NBU3BnQSt5UUI3WUJBcEJNZGdKOW9CcVVBY2FRVE5vQmNkQkp6Z0Z6b05MNEJxNEFXNkQrMkFVVElCbllCYThCZ3NRQkdFaE1rU0I1Q0VWU0JQU2g4d2dCbVFQdVVHK1VCQVVDY1ZDQ1JBUEVrSjUwR2FvR0NxRHFxRjZxQm42SGpvSm5ZZXVRSVBRWFdnTW1vWitoOTdCQ0V5Q3FiQVNyQVVid3d6WUNmYUJRK0JWY0FLOEJzNkZDK0FkY0NYY0FCK0ZPK0R6OERYNE5qd0tQNFBuRUlBUUVScWlpaGdpRE1RRjhVZWlrSGlFajZ4SGlwQUtwQUZwUmJxUlB1UW1Nb3JNSUc5UkdCUUZSVWNab214Um5xaFFGQXUxQnJVZVZZS3FSaDFHZGFCNlVUZFJZNmhaMUVjMEdhMkkxa2Zib0wzUUVlZ0VkQmE2RUYyQmJrSzNveStpYjZNbjBLOHhHQXdObzQyeHduaGlJakZKbUxXWUVzdytUQnZtSEdZUU00Nlp3Mkt4OGxoOXJCM1dIOHZFQ3JDRjJDcnNVZXhaN0JCMkF2c0dSOFNwNE14dzdyZ29IQStYajZ2QUhjR2R3UTNoSm5FTGVDbThKdDRHNzQ5bjQzUHdwZmhHZkRmK09uNEN2MENRSm1nVDdBZ2hoQ1RDSmtJbG9aVndrZkNBOEpKSUpLb1JyWW1CUkM1eEk3R1NlSXg0bVRoR2ZFdVNJZW1SWEVqUkpDRnBCK2tRNlJ6cEx1a2xtVXpXSWp1U284Z0M4ZzV5TS9rQytSSDVqUVJGd2tqQ1M0SXRzVUdpUnFKRFlraml1U1JlVWxQU1NYSzFaSzVraGVRSnlldVNNMUo0S1MwcEZ5bW0xSHFwR3FtVFVpTlNjOUlVYVZOcGYrbFU2UkxwSTlKWHBLZGtzREphTW00eWJKa0NtWU15RjJUR0tRaEZuZUpDWVZFMlV4b3BGeWtUVkF4Vm0rcEZUYUlXVTcrakRsQm5aV1ZrbDhtR3lXYkwxc2llbGgybElUUXRtaGN0aFZaS08wNGJwcjFib3JURWFRbG55ZllsclV1R2xzekxMWlZ6bE9QSUZjbTF5ZDJXZXlkUGwzZVRUNWJmSmQ4cC8xQUJwYUNuRUtpUXBiQmY0YUxDekZMcVV0dWxyS1ZGUzQ4dnZhY0lLK29wQmltdVZUeW8ySzg0cDZTczVLR1VybFNsZEVGcFJwbW03S2ljcEZ5dWZFWjVXb1dpWXEvQ1ZTbFhPYXZ5bEM1TGQ2S24wQ3ZwdmZSWlZVVlZUMVdoYXIzcWdPcUNtclphcUZxK1dwdmFRM1dDT2tNOVhyMWN2VWQ5VmtORncwOGpUNk5GNDU0bVhwT2htYWk1VjdOUGMxNUxXeXRjYTZ0V3A5YVV0cHkybDNhdWRvdjJBeDJ5am9QT0dwMEduVnU2R0YyR2JyTHVQdDBiZXJDZWhWNmlYbzNlZFgxWTMxS2ZxNzlQZjlBQWJXQnR3RE5vTUJneEpCazZHV1lhdGhpT0dkR01mSTN5alRxTm5odHJHRWNaN3pMdU0vNW9ZbUdTWXRKb2N0OVV4dFRiTk4rMDIvUjNNejB6bGxtTjJTMXpzcm03K1Fiekx2TVh5L1NYY1pidFgzYkhnbUxoWjdIVm9zZmlnNldWSmQreTFYTGFTc01xMXFyV2FvUkJaUVF3U2hpWHJkSFd6dFlickU5WnY3V3h0QkhZSExmNXpkYlFOdG4yaU8zVWN1M2xuT1dOeThmdDFPeVlkdlYyby9aMCsxajdBL2FqRHFvT1RJY0doOGVPNm81c3h5YkhTU2RkcHlTbm8wN1BuVTJjK2M3dHp2TXVOaTdyWE02NUlxNGVya1d1QTI0eWJxRnUxVzZQM05YY0U5eGIzR2M5TER6V2VwenpSSHY2ZU83eUhQRlM4bUo1Tlh2TmVsdDVyL1B1OVNINUJQdFUrenoyMWZQbCszYjd3WDdlZnJ2OUhxelFYTUZiMGVrUC9MMzhkL3MvRE5BT1dCUHdZeUFtTUNDd0p2QkprR2xRWGxCZk1DVTRKdmhJOE9zUTU1RFNrUHVoT3FIQzBKNHd5YkRvc09hdytYRFg4TEx3MFFqamlIVVIxeUlWSXJtUlhWSFlxTENvcHFpNWxXNHI5NnljaUxhSUxvd2VYcVc5S252VmxkVUtxMU5XbjQ2UmpHSEduSWhGeDRiSEhvbDl6L1JuTmpEbjRyemlhdU5tV1M2c3ZheG5iRWQyT1h1YVk4Y3A0MHpHMjhXWHhVOGwyQ1hzVHBoT2RFaXNTSnpodW5DcnVTK1NQSlBxa3VhVC9aTVBKWDlLQ1U5cFM4V2x4cWFlNU1ud2tubTlhY3BwMldtRDZmcnBoZW1qYTJ6VzdGa3p5L2ZoTjJWQUdhc3l1Z1JVMGM5VXYxQkh1RVU0bG1tZldaUDVKaXNzNjBTMmREWXZ1ejlITDJkN3ptU3VlKzYzYTFGcldXdDc4bFR6TnVXTnJYTmFWNzhlV2grM3ZtZUQrb2FDRFJNYlBUWWUza1RZbEx6cHAzeVQvTEw4VjV2RE4zY1hLQlZzTEJqZjRyR2xwVkNpa0Y4NHN0VjJhOTAyMURidXRvSHQ1dHVydG44c1loZGRMVFlwcmloK1g4SXF1ZnFONlRlVjMzemFFYjlqb05TeWRQOU96RTdlenVGZERyc09sMG1YNVphTjcvYmIzVkZPTHk4cWY3VW5acytWaW1VVmRYc0plNFY3Unl0OUs3dXFOS3AyVnIydlRxeStYZU5jMDFhcldMdTlkbjRmZTkvUWZzZjlyWFZLZGNWMTd3NXdEOXlwOTZqdmFOQnFxRGlJT1poNThFbGpXR1BmdDR4dm01c1Vtb3FiUGh6aUhSbzlISFM0dDltcXVmbUk0cEhTRnJoRjJESjlOUHJvamU5Y3YrdHFOV3l0YjZPMUZSOER4NFRIbm40ZisvM3djWi9qUFNjWUoxcC8wUHlodHAzU1h0UUJkZVIwekhZbWRvNTJSWFlObnZRKzJkTnQyOTMrbzlHUGgwNnBucW81TFh1NjlBemhUTUdaVDJkeno4NmRTejgzY3o3aC9IaFBUTS85Q3hFWGJ2VUc5ZzVjOUxsNCtaTDdwUXQ5VG4xbkw5dGRQblhGNXNySnE0eXJuZGNzcjNYMFcvUzMvMlR4VS91QTVVREhkYXZyWFRlc2IzUVBMaDg4TStRd2RQNm02ODFMdDd4dVhidTk0dmJnY09qd25aSG9rZEU3N0R0VGQxUHV2cmlYZVcvaC9zWUg2QWRGRDZVZVZqeFNmTlR3cys3UGJhT1dvNmZIWE1mNkh3Yy92ai9PR24vMlM4WXY3eWNLbnBDZlZFeXFURFpQbVUyZG1uYWZ2dkYwNWRPSlorblBGbVlLZjVYK3RmYTV6dk1mZm5QOHJYODJZbmJpQmYvRnA5OUxYc3EvUFBScTJhdWV1WUM1UjY5VFh5L01GNzJSZjNQNExlTnQzN3Z3ZDVNTFdlK3g3eXMvNkg3by91ano4Y0duMUUrZi9nVURtUFA4dXNUbzB3QUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJwMFJWaDBVMjltZEhkaGNtVUFVR0ZwYm5RdVRrVlVJSFl6TGpVdU1UQXc5SEtoQUFBQkxFbEVRVlFvVTJQNGY5RG9QeEkrRG1RNy9qOWt4QUFDWDlYOVZJRjRHUkQvQStML0lNeUFwZ0drK2QvSEE0WTdqcnE1emdJcStBbFRpRlBENTRPRy94MTNxLzJYWHFuKy80S3RPOWhVWkF5eTRTck1sbzlBeFhaQXhRdzdsY0JZY3BYYS96TU9LSnErZ1RTNGdaenhBYWpZRWtreFRKUFlHclgvSjV6Y1lMYjBNL3cvWXNUdzdJREJPclBkcW5DVFlZcGh0TWhhdGYrSFhGMi9BSjBtQVE0TjQ0REhDN21XZXVEVXdMQlQ5VC9yNGFYUFdNNys1bVN3ZHZ5dkJzUy9USDFlLytkYzdveEZrOXAvNW1NYi93TVZnM0FPU01NQ0lQNFB3aVorei85enJIUkEwZ1JTdkFtbUdFUS9BbW40RGRNQTFoVHcrRC83S3R2L0RMczBnSXEzSUNzR3MwRWF3S1lqWTZPUXUyK1lqMnk0QlhVR2lpWjBEVitBR3R1QVdCQ29tQldJazRINEFiSkdBSlFUU2ZzMmF1VnlBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorRotate", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFUZ0FBQUU0QnNjMGZNd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQkVTVVJCVkJpVmRjNUpEZ0F3Q0FMQVl2ei9sK25KQkJjOFZaMFNRZkpKYVFOZDVFQndmUmhVaVZSNG9WVnA1cHp2TUhDZDRhQmlWR0k3MmlXSERCeHVVUEg1NFFNNWNROFhwbTRKVmdBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorDefault", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJaMFJWaDBRM0psWVhScGIyNGdWR2x0WlFBd05TOHlPUzh4TnJ0VlFGa0FBQUFjZEVWWWRGTnZablIzWVhKbEFFRmtiMkpsSUVacGNtVjNiM0pyY3lCRFV6Ym92TEtNQUFBQUxrbEVRVlFZbFdQOC8vOC9BeGJ3bjRHQmdSRmRrQW1iU2x4Z2tDaG1ZWUI0Qmh2QUVHZGh3T0pyaG1FVUdnQjN1Z2NXZXB2bWtRQUFBQUJKUlU1RXJrSmdnZz09"}];
var __map_reserved = {};
var ArrayBuffer = $global.ArrayBuffer || js_html_compat_ArrayBuffer;
if(ArrayBuffer.prototype.slice == null) {
ArrayBuffer.prototype.slice = js_html_compat_ArrayBuffer.sliceImpl;
}
var DataView = $global.DataView || js_html_compat_DataView;
var Float32Array = $global.Float32Array || js_html_compat_Float32Array._new;
var Float64Array = $global.Float64Array || ($global.Float32Array ? "notsupported" : null) || js_html_compat_Float64Array._new;
var Uint8Array = $global.Uint8Array || js_html_compat_Uint8Array._new;
var this1 = new Uint32Array(256);
lime_math__$RGBA_RGBA_$Impl_$.__alpha16 = this1;
var _g = 0;
while(_g < 256) {
var i = _g++;
lime_math__$RGBA_RGBA_$Impl_$.__alpha16[i] = Math.ceil(i * 257.00392156862745);
}
var this2 = new Uint8Array(511);
lime_math__$RGBA_RGBA_$Impl_$.__clamp = this2;
var _g1 = 0;
while(_g1 < 255) {
var i1 = _g1++;
lime_math__$RGBA_RGBA_$Impl_$.__clamp[i1] = i1;
}
var _g11 = 255;
var _g2 = 511;
while(_g11 < _g2) {
var i2 = _g11++;
lime_math__$RGBA_RGBA_$Impl_$.__clamp[i2] = 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__$internal_renderer_canvas_CanvasGraphics.hitTestCanvas = typeof(window) != "undefined" ? window.document.createElement("canvas") : null;
openfl__$internal_renderer_canvas_CanvasGraphics.hitTestContext = typeof(window) != "undefined" ? openfl__$internal_renderer_canvas_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;
haxe_ds_ObjectMap.count = 0;
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_Vector_$Impl_$.toObjectVector(null);
},function(stack) {
stack.set_length(0);
});
flixel_addons_transition_FlxTransitionableState.defaultTransIn = null;
flixel_addons_transition_FlxTransitionableState.defaultTransOut = null;
flixel_addons_transition_FlxTransitionableState.skipNextTransIn = false;
flixel_addons_transition_FlxTransitionableState.skipNextTransOut = false;
GameData.CompletedIntro = false;
GameData.CompletedLevels = [];
GameData.LastLevelTried = 16;
GameData.DEFAULT_FONT = "assets/fonts/ChalkboardSE-Light-01.ttf";
GameData.DEFAULT_FONT_COLOR = 2894384;
GameData.CHARGEABLE_POWERS = [2,4,6,7];
GameData.CHARACTER_POWER_DIALOGUE = ["Toadette: \"It looks like Princess Peach just set the dish on fire!\"","ToadetteSwoon: \"Princess Peach is flustering the dish!\"","Toadette: \"It looks like Princess Peach just shot a missile into the dish!\"","Toadette: \"EEK! Princess Peach just scared the dish!\"","Toadette: \"It looks like the Princess is very angry at the dish!\"","ToadetteSwoon: \"Princess Peach just took a big bite out of the dish! Maybe it looked too delicious!\"","ToadetteSwoon: \"It looks like Princess Peach just added some kind of secret sauce!\"","ToadetteWat: \"It looks like the Princess… caught something?\""];
GameData.DIDNT_WORK_DIALOGUE = "\"\nEhh? I’m not sure it worked!\"";
GameData.CHARACTER_CHANGE_DIALOGUE = "Toadette: \"Princess Peach has changed outfits! Even in the heat of cooking, it’s important to stay on top of the latest trends!\"";
GameData.NOVEL_DIALOGUE = "\"\nShe sure is using some novel techniques today!\"";
GameData.CHARACTER_NAMES = ["bowser","shy","bullet","boo","wiggler","piranha","blooper","cheep"];
GameData.NUM_LEVELS = 15;
GameData.MAX_DISH_LENGTH = 20;
GameData.dbf = (function($this) {
var $r;
var _g = new haxe_ds_StringMap();
{
var value = [1,0];
if(__map_reserved["Toadette"] != null) {
_g.setReserved("Toadette",value);
} else {
_g.h["Toadette"] = value;
}
}
{
var value1 = [0,0];
if(__map_reserved["ToadetteAnnounce"] != null) {
_g.setReserved("ToadetteAnnounce",value1);
} else {
_g.h["ToadetteAnnounce"] = value1;
}
}
{
var value2 = [2,0];
if(__map_reserved["ToadetteSwoon"] != null) {
_g.setReserved("ToadetteSwoon",value2);
} else {
_g.h["ToadetteSwoon"] = value2;
}
}
{
var value3 = [3,0];
if(__map_reserved["ToadetteWat"] != null) {
_g.setReserved("ToadetteWat",value3);
} else {
_g.h["ToadetteWat"] = value3;
}
}
$r = new nova_ui_dialog_DialogBoxFactory({ background : { image : "assets/images/textarea.png"}, advanceStyle : nova_ui_dialog_DialogAdvanceStyle.TYPEWRITER, advanceLength : 18, textFormat : { font : "assets/fonts/ChalkboardSE-Light-01.ttf", size : 20}, textPadding : [20,12], speakerSprite : { image : "assets/images/toadette_tiles.png", width : 150, height : 165, offset : [-10,0]}, speakerSpriteMap : _g});
return $r;
}(this));
GameData.IntroText = ["emit hide","emit laugh_shake","\"(invisible)\"","emit show","emit \"assets/images/comic_no_text/intro1.png\"","\"BOWSER: Finally, Peach and Mushroom Kingdom are ALL MINE!\"","emit \"assets/images/comic_no_text/intro2.png\"","\"BOWSER: I just have to impersonate her using this magic crown, and those stupid toads are none the wiser!\"","emit \"assets/images/comic_no_text/intro3.png\"","\"TOADETTE: Princess Peach, you're on to record your cooking show in 5 minutes!\"","emit \"assets/images/comic_no_text/intro4.png\"","\"BOWSER: Uhhh...any of you guys know how to cook?\""];
GameData.IntermissionText = ["Toadette: \"Next, Princess Peach will be making SALAD using only LARD! As always, in 10 steps or fewer!\"","emit \"assets/images/comic_no_text/intermission1_0.png\"","wait 0.5","emit \"assets/images/comic_no_text/intermission1_1.png\"","wait 0.5","emit \"assets/images/comic_no_text/intermission1_2.png\"","wait 0.5","emit \"assets/images/comic_no_text/intermission2.png\"","\"TOADETTE: Oh? Where is she going?\"","emit hide","emit \"assets/images/comic_no_text/intermission3.png\"","\"...\"","emit shake","emit \"assets/images/comic_no_text/intermission4.png\"","\"...\"","emit \"assets/images/comic_no_text/intermission5.png\"","emit show","\"TOADETTE: Princess Peach has brought out her entire royal wardrobe! In high heels, no less! We may be in for a special episode!\"","emit \"assets/images/comic_no_text/intermission6.png\"","\"BOWSER: ONE OF YOU GUYS TAKE THIS THING!!\""];
GameData.EndingText = ["\"BOWSER: PHEW! We made it through somehow...\"","emit \"assets/images/comic_no_text/ending1.png\"","\"BOWSER: Finally, it's time to--\nTOADETTE: Princess Peach! You're on to star in your live action stunt opera in 5 minutes!\"","emit \"assets/images/comic_no_text/ending2.png\"","\"BOWSER: You can have your kingdom back.\""];
GameData.EndingUrlSuffix = "/puzzle/peaches/submit";
GameData.LevelMenuOptions = [new Level("play",{ "level" : 1}),new Level("play",{ "level" : 2}),new Level("play",{ "level" : 3}),new Level("play",{ "level" : 4}),new Level("play",{ "level" : 5}),new Level("play",{ "level" : 6}),new Level("play",{ "level" : 7}),new Level("play",{ "level" : 8}),new Level("play",{ "level" : 9}),new Level("play",{ "level" : 10}),new Level("play",{ "level" : 11}),new Level("play",{ "level" : 12}),new Level("play",{ "level" : 13}),new Level("play",{ "level" : 14}),new Level("play",{ "level" : 15}),new Level("cinematic",{ "background" : "assets/images/controls.png", "name" : "Controls", "dialog" : null}),new Level("cinematic",{ "background" : "assets/images/comic_no_text/intro0.png", "name" : "Intro", "dialog" : GameData.IntroText}),new Level("cinematic",{ "background" : "assets/images/comic_no_text/intermission0.png", "name" : "Intermission", "dialog" : GameData.IntermissionText}),new Level("cinematic",{ "background" : "assets/images/comic_no_text/ending0.png", "name" : "Ending", "dialog" : GameData.EndingText}),new Level("cinematic",{ "background" : "assets/images/comic_no_text/final_bg.png", "name" : "Finale", "dialog" : null})];
GameData.levels = [new LevelInfo("UNAGI","UNI",[0],"ToadetteAnnounce: \"Welcome to Simple Home Cooking with Peach, where recipes are always 10 steps or less!\nFirst up, Princess Peach will be showing us how to make UNI using only UNAGI!\""),new LevelInfo("LARD","SALAD",[0,1,2,6],"ToadetteAnnounce: \"Next, Princess Peach will be showing us how to make SALAD using only LARD!\""),new LevelInfo("CLAMS","EGGS",[0,1,2,6],"ToadetteAnnounce: \"Next up, Princess Peach will be making EGGS using only CLAMS! As always, in 10 or fewer simple steps!\""),new LevelInfo("MAIL","ECLAIR",[0,1,2,4],"ToadetteAnnounce: \"Have so much fan mail you don't know what to do with it all? Next up, Princess Peach will be showing us how to make an ECLAIR using only MAIL!\""),new LevelInfo("GOLD","AIOLI",[0,1,2,3,6],"ToadetteAnnounce: \"Have so much gold you don't know what to do with it all? Next up, Princess Peach will be showing us how to make AIOLI using only GOLD!\""),new LevelInfo("HAY","CANDY HEN",[1,4,5,6,7],"ToadetteAnnounce: \"Next, Princess Peach will be demonstrating how to craft a delicate CANDY HEN using only HAY!\""),new LevelInfo("TURF","PARFAIT",[2,3,4,5,7],"ToadetteAnnounce: \"Next, Princess Peach will be showing us an easy way to use TURF to create a decadent PARFAIT!\""),new LevelInfo("HERON","ONIGIRI",[0,3,4,6,7],"ToadetteAnnounce: \"Next, Princess Peach will show us how to use a HERON to make perfect ONIGIRI!\""),new LevelInfo("EASEL","WATER EEL",[2,4,5,6,7],"ToadetteAnnounce: \"Next, Princess Peach will be using an EASEL to create WATER EEL!\""),new LevelInfo("SHRINE","REFRESHROOM",[0,1,3,4,6,7],"ToadetteAnnounce: \"Next, Princess Peach will be using a SHRINE to make, you guessed it, a REFRESHROOM!\""),new LevelInfo("ETHICS","ANISE TAHINI",[0,3,4,5,6,7],"ToadetteAnnounce: \"We're getting close to the end of the show! Princess Peach will now show us how to create ANISE TAHINI using only ETHICS! Mmmm!\""),new LevelInfo("DEMON","LEMON EGGNOG",[1,2,3,5,6,7],"ToadetteAnnounce: \"Next, Princess Peach will show you one weird trick to turn a DEMON into LEMON EGGNOG!\""),new LevelInfo("SNOW","ASIAN SQUID",[2,3,4,5,6,7],"ToadetteAnnounce: \"If you're ever in Antarctica, be sure to try the following recipe to turn SNOW into ASIAN SQUID!\""),new LevelInfo("DRESS","TONS OF NOODLES",[1,2,3,5,6,7],"ToadetteAnnounce: \"For her penultimate act, Princess Peach will be using only a DRESS to prepare TONS OF NOODLES!\""),new LevelInfo("TIGHTS","CRAZY EIGHT",[0,1,2,4,5,7],"ToadetteAnnounce: \"For her final recipe, the Princess will show us how to make TIGHTS into a decadent CRAZY EIGHT!\"")];
openfl_geom_Rectangle.__pool = new lime_utils_ObjectPool(function() {
return new openfl_geom_Rectangle();
},function(r) {
r.setTo(0,0,0,0);
});
LevelSelectState.LEVEL_TEXT_RECTANGLES = [new openfl_geom_Rectangle(249,47,141,73),new openfl_geom_Rectangle(189,126,133,73),new openfl_geom_Rectangle(322,126,132,73),new openfl_geom_Rectangle(189,209,133,73),new openfl_geom_Rectangle(322,209,132,73),new openfl_geom_Rectangle(128,288,131,73),new openfl_geom_Rectangle(259,288,122,73),new openfl_geom_Rectangle(381,288,133,73),new openfl_geom_Rectangle(128,367,131,73),new openfl_geom_Rectangle(259,367,122,73),new openfl_geom_Rectangle(381,367,133,73),new openfl_geom_Rectangle(67,446,133,73),new openfl_geom_Rectangle(200,446,116,73),new openfl_geom_Rectangle(316,446,125,73),new openfl_geom_Rectangle(441,446,131,73)];
LevelSelectState.MENU_OPTION_RECTANGLES = [new openfl_geom_Rectangle(440,560,135,64),new openfl_geom_Rectangle(17,25,90,50),new openfl_geom_Rectangle(17,75,168,50),new openfl_geom_Rectangle(17,125,110,50),new openfl_geom_Rectangle(283,524,74,80)];
openfl_text_Font.__fontByName = new haxe_ds_StringMap();
openfl_text_Font.__registeredFonts = [];
Xml.Element = 0;
Xml.PCData = 1;
Xml.CData = 2;
Xml.Comment = 3;
Xml.DocType = 4;
Xml.ProcessingInstruction = 5;
Xml.Document = 6;
flixel_math_FlxPoint._pool = new flixel_util_FlxPool_$flixel_$math_$FlxPoint(flixel_math_FlxPoint);
flixel_math_FlxRect._pool = new flixel_util_FlxPool_$flixel_$math_$FlxRect(flixel_math_FlxRect);
lime_math_Matrix3.__identity = new lime_math_Matrix3();
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.drawVertices = openfl__$Vector_Vector_$Impl_$.toFloatVector(null);
flixel_FlxCamera.trianglesSprite = new openfl_display_Sprite();
flixel_FlxCamera.renderPoint = (function($this) {
var $r;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
$r = point;
return $r;
}(this));
flixel_FlxCamera.renderRect = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
flixel_system_FlxVersion.sha = "";
js_Boot.__toStr = ({ }).toString;
flixel_math_FlxRandom._arrayFloatHelper = null;
flixel_math_FlxRandom.MULTIPLIER = 48271.0;
flixel_math_FlxRandom.MODULUS = 2147483647;
flixel_FlxG.autoPause = true;
flixel_FlxG.fixedTimestep = true;
flixel_FlxG.timeScale = 1;
flixel_FlxG.worldDivisions = 6;
flixel_FlxG.VERSION = new flixel_system_FlxVersion(4,6,0);
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();
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
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.initialZoom = 0;
flixel_FlxG.signals = new flixel_system_frontEnds_SignalFrontEnd();
flixel_FlxObject.defaultPixelPerfectPosition = false;
flixel_FlxObject.SEPARATE_BIAS = 4;
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();
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
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();
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
openfl_display_BitmapData.__vertexBufferStride = 14;
openfl_display_BitmapData.__supportsBGRA = null;
openfl_display_BitmapData.__tempVector = new lime_math_Vector2();
flixel_addons_transition_GraphicTransTileCircle.resourceType = "image/png";
flixel_addons_transition_GraphicTransTileCircle.resourceName = "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileCircle";
flixel_addons_transition_GraphicTransTileDiamond.resourceType = "image/png";
flixel_addons_transition_GraphicTransTileDiamond.resourceName = "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileDiamond";
flixel_addons_transition_GraphicTransTileSquare.resourceType = "image/png";
flixel_addons_transition_GraphicTransTileSquare.resourceName = "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileSquare";
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.resourceType = "image/png";
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.resourceName = "__ASSET__:bitmap_flixel_addons_transition__TransitionFade_GraphicDiagonalGradient";
flixel_animation_FlxPrerotatedAnimation.PREROTATED = "prerotated_animation";
flixel_effects_FlxFlicker._pool = new flixel_util_FlxPool_$flixel_$effects_$FlxFlicker(flixel_effects_FlxFlicker);
flixel_effects_FlxFlicker._boundObjects = new haxe_ds_ObjectMap();
flixel_graphics_FlxGraphic.defaultPersist = false;
openfl_geom_Point.__pool = new lime_utils_ObjectPool(function() {
return new openfl_geom_Point();
},function(p) {
p.setTo(0,0);
});
flixel_graphics_atlas_FlxAtlas.point = new openfl_geom_Point();
flixel_graphics_atlas_FlxAtlas.matrix = new openfl_geom_Matrix();
flixel_graphics_atlas_FlxAtlas.defaultMinSize = new flixel_math_FlxPoint(128,128);
flixel_graphics_atlas_FlxAtlas.defaultMaxSize = new flixel_math_FlxPoint(1024,1024);
flixel_graphics_tile_FlxDrawBaseItem.drawCalls = 0;
flixel_graphics_tile_FlxDrawQuadsItem.VERTICES_PER_QUAD = 4;
flixel_graphics_tile_FlxDrawTrianglesItem.point = (function($this) {
var $r;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
$r = point;
return $r;
}(this));
flixel_graphics_tile_FlxDrawTrianglesItem.rect = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
flixel_input_FlxPointer._cachedPoint = new flixel_math_FlxPoint();
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.fromStringMap = (function($this) {
var $r;
var _g = new haxe_ds_StringMap();
if(__map_reserved["ANY"] != null) {
_g.setReserved("ANY",-2);
} else {
_g.h["ANY"] = -2;
}
if(__map_reserved["A"] != null) {
_g.setReserved("A",0);
} else {
_g.h["A"] = 0;
}
if(__map_reserved["B"] != null) {
_g.setReserved("B",1);
} else {
_g.h["B"] = 1;
}
if(__map_reserved["X"] != null) {
_g.setReserved("X",2);
} else {
_g.h["X"] = 2;
}
if(__map_reserved["Y"] != null) {
_g.setReserved("Y",3);
} else {
_g.h["Y"] = 3;
}
if(__map_reserved["LEFT_SHOULDER"] != null) {
_g.setReserved("LEFT_SHOULDER",4);
} else {
_g.h["LEFT_SHOULDER"] = 4;
}
if(__map_reserved["RIGHT_SHOULDER"] != null) {
_g.setReserved("RIGHT_SHOULDER",5);
} else {
_g.h["RIGHT_SHOULDER"] = 5;
}
if(__map_reserved["BACK"] != null) {
_g.setReserved("BACK",6);
} else {
_g.h["BACK"] = 6;
}
if(__map_reserved["START"] != null) {
_g.setReserved("START",7);
} else {
_g.h["START"] = 7;
}
if(__map_reserved["LEFT_STICK_CLICK"] != null) {
_g.setReserved("LEFT_STICK_CLICK",8);
} else {
_g.h["LEFT_STICK_CLICK"] = 8;
}
if(__map_reserved["RIGHT_STICK_CLICK"] != null) {
_g.setReserved("RIGHT_STICK_CLICK",9);
} else {
_g.h["RIGHT_STICK_CLICK"] = 9;
}
if(__map_reserved["GUIDE"] != null) {
_g.setReserved("GUIDE",10);
} else {
_g.h["GUIDE"] = 10;
}
if(__map_reserved["DPAD_UP"] != null) {
_g.setReserved("DPAD_UP",11);
} else {
_g.h["DPAD_UP"] = 11;
}
if(__map_reserved["DPAD_DOWN"] != null) {
_g.setReserved("DPAD_DOWN",12);
} else {
_g.h["DPAD_DOWN"] = 12;
}
if(__map_reserved["DPAD_LEFT"] != null) {
_g.setReserved("DPAD_LEFT",13);
} else {
_g.h["DPAD_LEFT"] = 13;
}
if(__map_reserved["DPAD_RIGHT"] != null) {
_g.setReserved("DPAD_RIGHT",14);
} else {
_g.h["DPAD_RIGHT"] = 14;
}
if(__map_reserved["LEFT_TRIGGER_BUTTON"] != null) {
_g.setReserved("LEFT_TRIGGER_BUTTON",15);
} else {
_g.h["LEFT_TRIGGER_BUTTON"] = 15;
}
if(__map_reserved["RIGHT_TRIGGER_BUTTON"] != null) {
_g.setReserved("RIGHT_TRIGGER_BUTTON",16);
} else {
_g.h["RIGHT_TRIGGER_BUTTON"] = 16;
}
if(__map_reserved["LEFT_TRIGGER"] != null) {
_g.setReserved("LEFT_TRIGGER",17);
} else {
_g.h["LEFT_TRIGGER"] = 17;
}
if(__map_reserved["RIGHT_TRIGGER"] != null) {
_g.setReserved("RIGHT_TRIGGER",18);
} else {
_g.h["RIGHT_TRIGGER"] = 18;
}
if(__map_reserved["LEFT_ANALOG_STICK"] != null) {
_g.setReserved("LEFT_ANALOG_STICK",19);
} else {
_g.h["LEFT_ANALOG_STICK"] = 19;
}
if(__map_reserved["RIGHT_ANALOG_STICK"] != null) {
_g.setReserved("RIGHT_ANALOG_STICK",20);
} else {
_g.h["RIGHT_ANALOG_STICK"] = 20;
}
if(__map_reserved["DPAD"] != null) {
_g.setReserved("DPAD",21);
} else {
_g.h["DPAD"] = 21;
}
if(__map_reserved["TILT_PITCH"] != null) {
_g.setReserved("TILT_PITCH",26);
} else {
_g.h["TILT_PITCH"] = 26;
}
if(__map_reserved["TILT_ROLL"] != null) {
_g.setReserved("TILT_ROLL",27);
} else {
_g.h["TILT_ROLL"] = 27;
}
if(__map_reserved["POINTER_X"] != null) {
_g.setReserved("POINTER_X",28);
} else {
_g.h["POINTER_X"] = 28;
}
if(__map_reserved["POINTER_Y"] != null) {
_g.setReserved("POINTER_Y",29);
} else {
_g.h["POINTER_Y"] = 29;
}
if(__map_reserved["EXTRA_0"] != null) {
_g.setReserved("EXTRA_0",30);
} else {
_g.h["EXTRA_0"] = 30;
}
if(__map_reserved["EXTRA_1"] != null) {
_g.setReserved("EXTRA_1",31);
} else {
_g.h["EXTRA_1"] = 31;
}
if(__map_reserved["EXTRA_2"] != null) {
_g.setReserved("EXTRA_2",32);
} else {
_g.h["EXTRA_2"] = 32;
}
if(__map_reserved["EXTRA_3"] != null) {
_g.setReserved("EXTRA_3",33);
} else {
_g.h["EXTRA_3"] = 33;
}
if(__map_reserved["LEFT_STICK_DIGITAL_UP"] != null) {
_g.setReserved("LEFT_STICK_DIGITAL_UP",34);
} else {
_g.h["LEFT_STICK_DIGITAL_UP"] = 34;
}
if(__map_reserved["LEFT_STICK_DIGITAL_RIGHT"] != null) {
_g.setReserved("LEFT_STICK_DIGITAL_RIGHT",35);
} else {
_g.h["LEFT_STICK_DIGITAL_RIGHT"] = 35;
}
if(__map_reserved["LEFT_STICK_DIGITAL_DOWN"] != null) {
_g.setReserved("LEFT_STICK_DIGITAL_DOWN",36);
} else {
_g.h["LEFT_STICK_DIGITAL_DOWN"] = 36;
}
if(__map_reserved["LEFT_STICK_DIGITAL_LEFT"] != null) {
_g.setReserved("LEFT_STICK_DIGITAL_LEFT",37);
} else {
_g.h["LEFT_STICK_DIGITAL_LEFT"] = 37;
}
if(__map_reserved["RIGHT_STICK_DIGITAL_UP"] != null) {
_g.setReserved("RIGHT_STICK_DIGITAL_UP",38);
} else {
_g.h["RIGHT_STICK_DIGITAL_UP"] = 38;
}
if(__map_reserved["RIGHT_STICK_DIGITAL_RIGHT"] != null) {
_g.setReserved("RIGHT_STICK_DIGITAL_RIGHT",39);
} else {
_g.h["RIGHT_STICK_DIGITAL_RIGHT"] = 39;
}
if(__map_reserved["RIGHT_STICK_DIGITAL_DOWN"] != null) {
_g.setReserved("RIGHT_STICK_DIGITAL_DOWN",40);
} else {
_g.h["RIGHT_STICK_DIGITAL_DOWN"] = 40;
}
if(__map_reserved["RIGHT_STICK_DIGITAL_LEFT"] != null) {
_g.setReserved("RIGHT_STICK_DIGITAL_LEFT",41);
} else {
_g.h["RIGHT_STICK_DIGITAL_LEFT"] = 41;
}
$r = _g;
return $r;
}(this));
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.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_FlxGamepadInputID_$Impl_$.ANY = -2;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.NONE = -1;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.A = 0;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.B = 1;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.X = 2;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.Y = 3;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_SHOULDER = 4;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_SHOULDER = 5;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.BACK = 6;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.START = 7;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_STICK_CLICK = 8;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_STICK_CLICK = 9;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.GUIDE = 10;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.DPAD_UP = 11;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.DPAD_DOWN = 12;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.DPAD_LEFT = 13;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.DPAD_RIGHT = 14;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_TRIGGER_BUTTON = 15;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_TRIGGER_BUTTON = 16;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_TRIGGER = 17;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_TRIGGER = 18;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_ANALOG_STICK = 19;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_ANALOG_STICK = 20;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.DPAD = 21;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.TILT_PITCH = 26;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.TILT_ROLL = 27;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.POINTER_X = 28;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.POINTER_Y = 29;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.EXTRA_0 = 30;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.EXTRA_1 = 31;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.EXTRA_2 = 32;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.EXTRA_3 = 33;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_STICK_DIGITAL_UP = 34;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_STICK_DIGITAL_RIGHT = 35;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_STICK_DIGITAL_DOWN = 36;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.LEFT_STICK_DIGITAL_LEFT = 37;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_STICK_DIGITAL_UP = 38;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_STICK_DIGITAL_RIGHT = 39;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_STICK_DIGITAL_DOWN = 40;
flixel_input_gamepad__$FlxGamepadInputID_FlxGamepadInputID_$Impl_$.RIGHT_STICK_DIGITAL_LEFT = 41;
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 = 0;
flixel_input_gamepad_id_OUYAID.U = 3;
flixel_input_gamepad_id_OUYAID.Y = 4;
flixel_input_gamepad_id_OUYAID.A = 1;
flixel_input_gamepad_id_OUYAID.LB = 6;
flixel_input_gamepad_id_OUYAID.RB = 7;
flixel_input_gamepad_id_OUYAID.LEFT_STICK_CLICK = 10;
flixel_input_gamepad_id_OUYAID.RIGHT_STICK_CLICK = 11;
flixel_input_gamepad_id_OUYAID.HOME = 2;
flixel_input_gamepad_id_OUYAID.LEFT_TRIGGER = 8;
flixel_input_gamepad_id_OUYAID.RIGHT_TRIGGER = 9;
flixel_input_gamepad_id_OUYAID.DPAD_LEFT = 13;
flixel_input_gamepad_id_OUYAID.DPAD_RIGHT = 14;
flixel_input_gamepad_id_OUYAID.DPAD_DOWN = 15;
flixel_input_gamepad_id_OUYAID.DPAD_UP = 16;
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(11,14,{ up : 27, down : 28, left : 29, right : 30});
flixel_input_gamepad_id_OUYAID.LEFT_TRIGGER_ANALOG = 17;
flixel_input_gamepad_id_OUYAID.RIGHT_TRIGGER_ANALOG = 18;
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_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_FlxKey_$Impl_$.fromStringMap = (function($this) {
var $r;
var _g = new haxe_ds_StringMap();
if(__map_reserved["ANY"] != null) {
_g.setReserved("ANY",-2);
} else {
_g.h["ANY"] = -2;
}
if(__map_reserved["A"] != null) {
_g.setReserved("A",65);
} else {
_g.h["A"] = 65;
}
if(__map_reserved["B"] != null) {
_g.setReserved("B",66);
} else {
_g.h["B"] = 66;
}
if(__map_reserved["C"] != null) {
_g.setReserved("C",67);
} else {
_g.h["C"] = 67;
}
if(__map_reserved["D"] != null) {
_g.setReserved("D",68);
} else {
_g.h["D"] = 68;
}
if(__map_reserved["E"] != null) {
_g.setReserved("E",69);
} else {
_g.h["E"] = 69;
}
if(__map_reserved["F"] != null) {
_g.setReserved("F",70);
} else {
_g.h["F"] = 70;
}
if(__map_reserved["G"] != null) {
_g.setReserved("G",71);
} else {
_g.h["G"] = 71;
}
if(__map_reserved["H"] != null) {
_g.setReserved("H",72);
} else {
_g.h["H"] = 72;
}
if(__map_reserved["I"] != null) {
_g.setReserved("I",73);
} else {
_g.h["I"] = 73;
}
if(__map_reserved["J"] != null) {
_g.setReserved("J",74);
} else {
_g.h["J"] = 74;
}
if(__map_reserved["K"] != null) {
_g.setReserved("K",75);
} else {
_g.h["K"] = 75;
}
if(__map_reserved["L"] != null) {
_g.setReserved("L",76);
} else {
_g.h["L"] = 76;
}
if(__map_reserved["M"] != null) {
_g.setReserved("M",77);
} else {
_g.h["M"] = 77;
}
if(__map_reserved["N"] != null) {
_g.setReserved("N",78);
} else {
_g.h["N"] = 78;
}
if(__map_reserved["O"] != null) {
_g.setReserved("O",79);
} else {
_g.h["O"] = 79;
}
if(__map_reserved["P"] != null) {
_g.setReserved("P",80);
} else {
_g.h["P"] = 80;
}
if(__map_reserved["Q"] != null) {
_g.setReserved("Q",81);
} else {
_g.h["Q"] = 81;
}
if(__map_reserved["R"] != null) {
_g.setReserved("R",82);
} else {
_g.h["R"] = 82;
}
if(__map_reserved["S"] != null) {
_g.setReserved("S",83);
} else {
_g.h["S"] = 83;
}
if(__map_reserved["T"] != null) {
_g.setReserved("T",84);
} else {
_g.h["T"] = 84;
}
if(__map_reserved["U"] != null) {
_g.setReserved("U",85);
} else {
_g.h["U"] = 85;
}
if(__map_reserved["V"] != null) {
_g.setReserved("V",86);
} else {
_g.h["V"] = 86;
}
if(__map_reserved["W"] != null) {
_g.setReserved("W",87);
} else {
_g.h["W"] = 87;
}
if(__map_reserved["X"] != null) {
_g.setReserved("X",88);
} else {
_g.h["X"] = 88;
}
if(__map_reserved["Y"] != null) {
_g.setReserved("Y",89);
} else {
_g.h["Y"] = 89;
}
if(__map_reserved["Z"] != null) {
_g.setReserved("Z",90);
} else {
_g.h["Z"] = 90;
}
if(__map_reserved["ZERO"] != null) {
_g.setReserved("ZERO",48);
} else {
_g.h["ZERO"] = 48;
}
if(__map_reserved["ONE"] != null) {
_g.setReserved("ONE",49);
} else {
_g.h["ONE"] = 49;
}
if(__map_reserved["TWO"] != null) {
_g.setReserved("TWO",50);
} else {
_g.h["TWO"] = 50;
}
if(__map_reserved["THREE"] != null) {
_g.setReserved("THREE",51);
} else {
_g.h["THREE"] = 51;
}
if(__map_reserved["FOUR"] != null) {
_g.setReserved("FOUR",52);
} else {
_g.h["FOUR"] = 52;
}
if(__map_reserved["FIVE"] != null) {
_g.setReserved("FIVE",53);
} else {
_g.h["FIVE"] = 53;
}
if(__map_reserved["SIX"] != null) {
_g.setReserved("SIX",54);
} else {
_g.h["SIX"] = 54;
}
if(__map_reserved["SEVEN"] != null) {
_g.setReserved("SEVEN",55);
} else {
_g.h["SEVEN"] = 55;
}
if(__map_reserved["EIGHT"] != null) {
_g.setReserved("EIGHT",56);
} else {
_g.h["EIGHT"] = 56;
}
if(__map_reserved["NINE"] != null) {
_g.setReserved("NINE",57);
} else {
_g.h["NINE"] = 57;
}
if(__map_reserved["PAGEUP"] != null) {
_g.setReserved("PAGEUP",33);
} else {
_g.h["PAGEUP"] = 33;
}
if(__map_reserved["PAGEDOWN"] != null) {
_g.setReserved("PAGEDOWN",34);
} else {
_g.h["PAGEDOWN"] = 34;
}
if(__map_reserved["HOME"] != null) {
_g.setReserved("HOME",36);
} else {
_g.h["HOME"] = 36;
}
if(__map_reserved["END"] != null) {
_g.setReserved("END",35);
} else {
_g.h["END"] = 35;
}
if(__map_reserved["INSERT"] != null) {
_g.setReserved("INSERT",45);
} else {
_g.h["INSERT"] = 45;
}
if(__map_reserved["ESCAPE"] != null) {
_g.setReserved("ESCAPE",27);
} else {
_g.h["ESCAPE"] = 27;
}
if(__map_reserved["MINUS"] != null) {
_g.setReserved("MINUS",189);
} else {
_g.h["MINUS"] = 189;
}
if(__map_reserved["PLUS"] != null) {
_g.setReserved("PLUS",187);
} else {
_g.h["PLUS"] = 187;
}
if(__map_reserved["DELETE"] != null) {
_g.setReserved("DELETE",46);
} else {
_g.h["DELETE"] = 46;
}
if(__map_reserved["BACKSPACE"] != null) {
_g.setReserved("BACKSPACE",8);
} else {
_g.h["BACKSPACE"] = 8;
}
if(__map_reserved["LBRACKET"] != null) {
_g.setReserved("LBRACKET",219);
} else {
_g.h["LBRACKET"] = 219;
}
if(__map_reserved["RBRACKET"] != null) {
_g.setReserved("RBRACKET",221);
} else {
_g.h["RBRACKET"] = 221;
}
if(__map_reserved["BACKSLASH"] != null) {
_g.setReserved("BACKSLASH",220);
} else {
_g.h["BACKSLASH"] = 220;
}
if(__map_reserved["CAPSLOCK"] != null) {
_g.setReserved("CAPSLOCK",20);
} else {
_g.h["CAPSLOCK"] = 20;
}
if(__map_reserved["SEMICOLON"] != null) {
_g.setReserved("SEMICOLON",186);
} else {
_g.h["SEMICOLON"] = 186;
}
if(__map_reserved["QUOTE"] != null) {
_g.setReserved("QUOTE",222);
} else {
_g.h["QUOTE"] = 222;
}
if(__map_reserved["ENTER"] != null) {
_g.setReserved("ENTER",13);
} else {
_g.h["ENTER"] = 13;
}
if(__map_reserved["SHIFT"] != null) {
_g.setReserved("SHIFT",16);
} else {
_g.h["SHIFT"] = 16;
}
if(__map_reserved["COMMA"] != null) {
_g.setReserved("COMMA",188);
} else {
_g.h["COMMA"] = 188;
}
if(__map_reserved["PERIOD"] != null) {
_g.setReserved("PERIOD",190);
} else {
_g.h["PERIOD"] = 190;
}
if(__map_reserved["SLASH"] != null) {
_g.setReserved("SLASH",191);
} else {
_g.h["SLASH"] = 191;
}
if(__map_reserved["GRAVEACCENT"] != null) {
_g.setReserved("GRAVEACCENT",192);
} else {
_g.h["GRAVEACCENT"] = 192;
}
if(__map_reserved["CONTROL"] != null) {
_g.setReserved("CONTROL",17);
} else {
_g.h["CONTROL"] = 17;
}
if(__map_reserved["ALT"] != null) {
_g.setReserved("ALT",18);
} else {
_g.h["ALT"] = 18;
}
if(__map_reserved["SPACE"] != null) {
_g.setReserved("SPACE",32);
} else {
_g.h["SPACE"] = 32;
}
if(__map_reserved["UP"] != null) {
_g.setReserved("UP",38);
} else {
_g.h["UP"] = 38;
}
if(__map_reserved["DOWN"] != null) {
_g.setReserved("DOWN",40);
} else {
_g.h["DOWN"] = 40;
}
if(__map_reserved["LEFT"] != null) {
_g.setReserved("LEFT",37);
} else {
_g.h["LEFT"] = 37;
}
if(__map_reserved["RIGHT"] != null) {
_g.setReserved("RIGHT",39);
} else {
_g.h["RIGHT"] = 39;
}
if(__map_reserved["TAB"] != null) {
_g.setReserved("TAB",9);
} else {
_g.h["TAB"] = 9;
}
if(__map_reserved["PRINTSCREEN"] != null) {
_g.setReserved("PRINTSCREEN",301);
} else {
_g.h["PRINTSCREEN"] = 301;
}
if(__map_reserved["F1"] != null) {
_g.setReserved("F1",112);
} else {
_g.h["F1"] = 112;
}
if(__map_reserved["F2"] != null) {
_g.setReserved("F2",113);
} else {
_g.h["F2"] = 113;
}
if(__map_reserved["F3"] != null) {
_g.setReserved("F3",114);
} else {
_g.h["F3"] = 114;
}
if(__map_reserved["F4"] != null) {
_g.setReserved("F4",115);
} else {
_g.h["F4"] = 115;
}
if(__map_reserved["F5"] != null) {
_g.setReserved("F5",116);
} else {
_g.h["F5"] = 116;
}
if(__map_reserved["F6"] != null) {
_g.setReserved("F6",117);
} else {
_g.h["F6"] = 117;
}
if(__map_reserved["F7"] != null) {
_g.setReserved("F7",118);
} else {
_g.h["F7"] = 118;
}
if(__map_reserved["F8"] != null) {
_g.setReserved("F8",119);
} else {
_g.h["F8"] = 119;
}
if(__map_reserved["F9"] != null) {
_g.setReserved("F9",120);
} else {
_g.h["F9"] = 120;
}
if(__map_reserved["F10"] != null) {
_g.setReserved("F10",121);
} else {
_g.h["F10"] = 121;
}
if(__map_reserved["F11"] != null) {
_g.setReserved("F11",122);
} else {
_g.h["F11"] = 122;
}
if(__map_reserved["F12"] != null) {
_g.setReserved("F12",123);
} else {
_g.h["F12"] = 123;
}
if(__map_reserved["NUMPADZERO"] != null) {
_g.setReserved("NUMPADZERO",96);
} else {
_g.h["NUMPADZERO"] = 96;
}
if(__map_reserved["NUMPADONE"] != null) {
_g.setReserved("NUMPADONE",97);
} else {
_g.h["NUMPADONE"] = 97;
}
if(__map_reserved["NUMPADTWO"] != null) {
_g.setReserved("NUMPADTWO",98);
} else {
_g.h["NUMPADTWO"] = 98;
}
if(__map_reserved["NUMPADTHREE"] != null) {
_g.setReserved("NUMPADTHREE",99);
} else {
_g.h["NUMPADTHREE"] = 99;
}
if(__map_reserved["NUMPADFOUR"] != null) {
_g.setReserved("NUMPADFOUR",100);
} else {
_g.h["NUMPADFOUR"] = 100;
}
if(__map_reserved["NUMPADFIVE"] != null) {
_g.setReserved("NUMPADFIVE",101);
} else {
_g.h["NUMPADFIVE"] = 101;
}
if(__map_reserved["NUMPADSIX"] != null) {
_g.setReserved("NUMPADSIX",102);
} else {
_g.h["NUMPADSIX"] = 102;
}
if(__map_reserved["NUMPADSEVEN"] != null) {
_g.setReserved("NUMPADSEVEN",103);
} else {
_g.h["NUMPADSEVEN"] = 103;
}
if(__map_reserved["NUMPADEIGHT"] != null) {
_g.setReserved("NUMPADEIGHT",104);
} else {
_g.h["NUMPADEIGHT"] = 104;
}
if(__map_reserved["NUMPADNINE"] != null) {
_g.setReserved("NUMPADNINE",105);
} else {
_g.h["NUMPADNINE"] = 105;
}
if(__map_reserved["NUMPADMINUS"] != null) {
_g.setReserved("NUMPADMINUS",109);
} else {
_g.h["NUMPADMINUS"] = 109;
}
if(__map_reserved["NUMPADPLUS"] != null) {
_g.setReserved("NUMPADPLUS",107);
} else {
_g.h["NUMPADPLUS"] = 107;
}
if(__map_reserved["NUMPADPERIOD"] != null) {
_g.setReserved("NUMPADPERIOD",110);
} else {
_g.h["NUMPADPERIOD"] = 110;
}
if(__map_reserved["NUMPADMULTIPLY"] != null) {
_g.setReserved("NUMPADMULTIPLY",106);
} else {
_g.h["NUMPADMULTIPLY"] = 106;
}
$r = _g;
return $r;
}(this));
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.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[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[301] = "PRINTSCREEN";
_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";
$r = _g;
return $r;
}(this));
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.ANY = -2;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NONE = -1;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.A = 65;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.B = 66;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.C = 67;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.D = 68;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.E = 69;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F = 70;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.G = 71;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.H = 72;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.I = 73;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.J = 74;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.K = 75;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.L = 76;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.M = 77;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.N = 78;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.O = 79;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.P = 80;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.Q = 81;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.R = 82;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.S = 83;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.T = 84;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.U = 85;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.V = 86;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.W = 87;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.X = 88;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.Y = 89;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.Z = 90;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.ZERO = 48;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.ONE = 49;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.TWO = 50;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.THREE = 51;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.FOUR = 52;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.FIVE = 53;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.SIX = 54;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.SEVEN = 55;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.EIGHT = 56;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NINE = 57;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.PAGEUP = 33;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.PAGEDOWN = 34;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.HOME = 36;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.END = 35;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.INSERT = 45;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.ESCAPE = 27;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.MINUS = 189;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.PLUS = 187;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.DELETE = 46;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.BACKSPACE = 8;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.LBRACKET = 219;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.RBRACKET = 221;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.BACKSLASH = 220;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.CAPSLOCK = 20;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.SEMICOLON = 186;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.QUOTE = 222;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.ENTER = 13;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.SHIFT = 16;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.COMMA = 188;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.PERIOD = 190;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.SLASH = 191;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.GRAVEACCENT = 192;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.CONTROL = 17;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.ALT = 18;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.SPACE = 32;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.UP = 38;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.DOWN = 40;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.LEFT = 37;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.RIGHT = 39;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.TAB = 9;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.PRINTSCREEN = 301;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F1 = 112;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F2 = 113;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F3 = 114;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F4 = 115;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F5 = 116;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F6 = 117;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F7 = 118;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F8 = 119;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F9 = 120;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F10 = 121;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F11 = 122;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.F12 = 123;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADZERO = 96;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADONE = 97;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADTWO = 98;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADTHREE = 99;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADFOUR = 100;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADFIVE = 101;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADSIX = 102;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADSEVEN = 103;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADEIGHT = 104;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADNINE = 105;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADMINUS = 109;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADPLUS = 107;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADPERIOD = 110;
flixel_input_keyboard__$FlxKey_FlxKey_$Impl_$.NUMPADMULTIPLY = 106;
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__$FlxVector_FlxVector_$Impl_$.EPSILON = 0.0000001;
flixel_math__$FlxVector_FlxVector_$Impl_$.EPSILON_SQUARED = 9.9999999999999984e-015;
flixel_math__$FlxVector_FlxVector_$Impl_$._vector1 = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_math__$FlxVector_FlxVector_$Impl_$._vector2 = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_math__$FlxVector_FlxVector_$Impl_$._vector3 = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
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.defaultObjectEncoding = 10;
openfl_utils_ByteArrayData.__defaultEndian = null;
flixel_system_VirtualInputData.resourceName = "__ASSET__:file_flixel_system_VirtualInputData";
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.WINDOW_AMOUNT = 0;
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_interaction_tools_GraphicEraserTool.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicEraserTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicEraserTool";
flixel_system_debug_interaction_tools_GraphicMoverTool.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicMoverTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_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_GraphicTransformTool.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicTransformTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformTool";
flixel_system_debug_interaction_tools_GraphicTransformCursorDefault.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicTransformCursorDefault.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorDefault";
flixel_system_debug_interaction_tools_GraphicTransformCursorScaleY.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicTransformCursorScaleY.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorScaleY";
flixel_system_debug_interaction_tools_GraphicTransformCursorScaleX.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicTransformCursorScaleX.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorScaleX";
flixel_system_debug_interaction_tools_GraphicTransformCursorScaleXY.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicTransformCursorScaleXY.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicTransformCursorScaleXY";
flixel_system_debug_interaction_tools_GraphicTransformCursorRotate.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicTransformCursorRotate.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_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_text_FlxText.VERTICAL_GUTTER = 4;
flixel_text__$FlxText_FlxTextAlign_$Impl_$.LEFT = "left";
flixel_text__$FlxText_FlxTextAlign_$Impl_$.CENTER = "center";
flixel_text__$FlxText_FlxTextAlign_$Impl_$.RIGHT = "right";
flixel_text__$FlxText_FlxTextAlign_$Impl_$.JUSTIFY = "justify";
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_tweens_FlxEase.PI2 = Math.PI / 2;
flixel_tweens_FlxEase.EL = 2 * Math.PI / .45;
flixel_tweens_FlxEase.B1 = 0.36363636363636365;
flixel_tweens_FlxEase.B2 = 0.72727272727272729;
flixel_tweens_FlxEase.B3 = 0.54545454545454541;
flixel_tweens_FlxEase.B4 = 0.90909090909090906;
flixel_tweens_FlxEase.B5 = 0.81818181818181823;
flixel_tweens_FlxEase.B6 = 0.95454545454545459;
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_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 = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_util_FlxCollision.pointB = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_util_FlxCollision.centerA = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_util_FlxCollision.centerB = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
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_FlxColor_$Impl_$.TRANSPARENT = 0;
flixel_util__$FlxColor_FlxColor_$Impl_$.WHITE = -1;
flixel_util__$FlxColor_FlxColor_$Impl_$.GRAY = -8355712;
flixel_util__$FlxColor_FlxColor_$Impl_$.BLACK = -16777216;
flixel_util__$FlxColor_FlxColor_$Impl_$.GREEN = -16744448;
flixel_util__$FlxColor_FlxColor_$Impl_$.LIME = -16711936;
flixel_util__$FlxColor_FlxColor_$Impl_$.YELLOW = -256;
flixel_util__$FlxColor_FlxColor_$Impl_$.ORANGE = -23296;
flixel_util__$FlxColor_FlxColor_$Impl_$.RED = -65536;
flixel_util__$FlxColor_FlxColor_$Impl_$.PURPLE = -8388480;
flixel_util__$FlxColor_FlxColor_$Impl_$.BLUE = -16776961;
flixel_util__$FlxColor_FlxColor_$Impl_$.BROWN = -7650029;
flixel_util__$FlxColor_FlxColor_$Impl_$.PINK = -16181;
flixel_util__$FlxColor_FlxColor_$Impl_$.MAGENTA = -65281;
flixel_util__$FlxColor_FlxColor_$Impl_$.CYAN = -16711681;
flixel_util__$FlxColor_FlxColor_$Impl_$.colorLookup = (function($this) {
var $r;
var _g = new haxe_ds_StringMap();
if(__map_reserved["TRANSPARENT"] != null) {
_g.setReserved("TRANSPARENT",0);
} else {
_g.h["TRANSPARENT"] = 0;
}
if(__map_reserved["WHITE"] != null) {
_g.setReserved("WHITE",-1);
} else {
_g.h["WHITE"] = -1;
}
if(__map_reserved["GRAY"] != null) {
_g.setReserved("GRAY",-8355712);
} else {
_g.h["GRAY"] = -8355712;
}
if(__map_reserved["BLACK"] != null) {
_g.setReserved("BLACK",-16777216);
} else {
_g.h["BLACK"] = -16777216;
}
if(__map_reserved["GREEN"] != null) {
_g.setReserved("GREEN",-16744448);
} else {
_g.h["GREEN"] = -16744448;
}
if(__map_reserved["LIME"] != null) {
_g.setReserved("LIME",-16711936);
} else {
_g.h["LIME"] = -16711936;
}
if(__map_reserved["YELLOW"] != null) {
_g.setReserved("YELLOW",-256);
} else {
_g.h["YELLOW"] = -256;
}
if(__map_reserved["ORANGE"] != null) {
_g.setReserved("ORANGE",-23296);
} else {
_g.h["ORANGE"] = -23296;
}
if(__map_reserved["RED"] != null) {
_g.setReserved("RED",-65536);
} else {
_g.h["RED"] = -65536;
}
if(__map_reserved["PURPLE"] != null) {
_g.setReserved("PURPLE",-8388480);
} else {
_g.h["PURPLE"] = -8388480;
}
if(__map_reserved["BLUE"] != null) {
_g.setReserved("BLUE",-16776961);
} else {
_g.h["BLUE"] = -16776961;
}
if(__map_reserved["BROWN"] != null) {
_g.setReserved("BROWN",-7650029);
} else {
_g.h["BROWN"] = -7650029;
}
if(__map_reserved["PINK"] != null) {
_g.setReserved("PINK",-16181);
} else {
_g.h["PINK"] = -16181;
}
if(__map_reserved["MAGENTA"] != null) {
_g.setReserved("MAGENTA",-65281);
} else {
_g.h["MAGENTA"] = -65281;
}
if(__map_reserved["CYAN"] != null) {
_g.setReserved("CYAN",-16711681);
} else {
_g.h["CYAN"] = -16711681;
}
$r = _g;
return $r;
}(this));
flixel_util__$FlxColor_FlxColor_$Impl_$.COLOR_REGEX = new EReg("^(0x|#)(([A-F0-9]{2}){3,4})$","i");
flixel_util_FlxPath.FORWARD = 0;
flixel_util_FlxPath.BACKWARD = 1;
flixel_util_FlxPath.LOOP_FORWARD = 16;
flixel_util_FlxPath.LOOP_BACKWARD = 256;
flixel_util_FlxPath.YOYO = 4096;
flixel_util_FlxPath.HORIZONTAL_ONLY = 65536;
flixel_util_FlxPath.VERTICAL_ONLY = 1048576;
flixel_util_FlxPath._point = (function($this) {
var $r;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
$r = point;
return $r;
}(this));
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_$flixel_$util_$LabelValuePair(flixel_util_LabelValuePair);
format_amf3_Amf3Array.__meta__ = { fields : { extra : { optional : null}}};
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_io_FPHelper.i64tmp = (function($this) {
var $r;
var this1 = new haxe__$Int64__$_$_$Int64(0,0);
$r = this1;
return $r;
}(this));
haxe_xml_Parser.escapes = (function($this) {
var $r;
var h = new haxe_ds_StringMap();
if(__map_reserved["lt"] != null) {
h.setReserved("lt","<");
} else {
h.h["lt"] = "<";
}
if(__map_reserved["gt"] != null) {
h.setReserved("gt",">");
} else {
h.h["gt"] = ">";
}
if(__map_reserved["amp"] != null) {
h.setReserved("amp","&");
} else {
h.h["amp"] = "&";
}
if(__map_reserved["quot"] != null) {
h.setReserved("quot","\"");
} else {
h.h["quot"] = "\"";
}
if(__map_reserved["apos"] != null) {
h.setReserved("apos","'");
} else {
h.h["apos"] = "'";
}
$r = h;
return $r;
}(this));
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;
hscript_Parser.p1 = 0;
hscript_Parser.readPos = 0;
hscript_Parser.tokenMin = 0;
hscript_Parser.tokenMax = 0;
js_html_compat_Float32Array.BYTES_PER_ELEMENT = 4;
js_html_compat_Float64Array.BYTES_PER_ELEMENT = 8;
js_html_compat_Uint8Array.BYTES_PER_ELEMENT = 1;
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests = 0;
lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit = 17;
lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue = new List();
lime__$internal_backend_html5_HTML5Window.dummyCharacter = "";
lime__$internal_backend_html5_HTML5Window.windowID = 0;
lime__$internal_unifill_Unicode.minCodePoint = 0;
lime__$internal_unifill_Unicode.maxCodePoint = 1114111;
lime__$internal_unifill_Unicode.minHighSurrogate = 55296;
lime__$internal_unifill_Unicode.maxHighSurrogate = 56319;
lime__$internal_unifill_Unicode.minLowSurrogate = 56320;
lime__$internal_unifill_Unicode.maxLowSurrogate = 57343;
lime_graphics_Image.__base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
lime_graphics_cairo__$CairoFTFontFace_CairoFTFontFace_$Impl_$.FT_LOAD_FORCE_AUTOHINT = 32;
lime_graphics_opengl_GL.DEPTH_BUFFER_BIT = 256;
lime_graphics_opengl_GL.STENCIL_BUFFER_BIT = 1024;
lime_graphics_opengl_GL.COLOR_BUFFER_BIT = 16384;
lime_graphics_opengl_GL.POINTS = 0;
lime_graphics_opengl_GL.LINES = 1;
lime_graphics_opengl_GL.LINE_LOOP = 2;
lime_graphics_opengl_GL.LINE_STRIP = 3;
lime_graphics_opengl_GL.TRIANGLES = 4;
lime_graphics_opengl_GL.TRIANGLE_STRIP = 5;
lime_graphics_opengl_GL.TRIANGLE_FAN = 6;
lime_graphics_opengl_GL.ZERO = 0;
lime_graphics_opengl_GL.ONE = 1;
lime_graphics_opengl_GL.SRC_COLOR = 768;
lime_graphics_opengl_GL.ONE_MINUS_SRC_COLOR = 769;
lime_graphics_opengl_GL.SRC_ALPHA = 770;
lime_graphics_opengl_GL.ONE_MINUS_SRC_ALPHA = 771;
lime_graphics_opengl_GL.DST_ALPHA = 772;
lime_graphics_opengl_GL.ONE_MINUS_DST_ALPHA = 773;
lime_graphics_opengl_GL.DST_COLOR = 774;
lime_graphics_opengl_GL.ONE_MINUS_DST_COLOR = 775;
lime_graphics_opengl_GL.SRC_ALPHA_SATURATE = 776;
lime_graphics_opengl_GL.FUNC_ADD = 32774;
lime_graphics_opengl_GL.BLEND_EQUATION = 32777;
lime_graphics_opengl_GL.BLEND_EQUATION_RGB = 32777;
lime_graphics_opengl_GL.BLEND_EQUATION_ALPHA = 34877;
lime_graphics_opengl_GL.FUNC_SUBTRACT = 32778;
lime_graphics_opengl_GL.FUNC_REVERSE_SUBTRACT = 32779;
lime_graphics_opengl_GL.BLEND_DST_RGB = 32968;
lime_graphics_opengl_GL.BLEND_SRC_RGB = 32969;
lime_graphics_opengl_GL.BLEND_DST_ALPHA = 32970;
lime_graphics_opengl_GL.BLEND_SRC_ALPHA = 32971;
lime_graphics_opengl_GL.CONSTANT_COLOR = 32769;
lime_graphics_opengl_GL.ONE_MINUS_CONSTANT_COLOR = 32770;
lime_graphics_opengl_GL.CONSTANT_ALPHA = 32771;
lime_graphics_opengl_GL.ONE_MINUS_CONSTANT_ALPHA = 32772;
lime_graphics_opengl_GL.BLEND_COLOR = 32773;
lime_graphics_opengl_GL.ARRAY_BUFFER = 34962;
lime_graphics_opengl_GL.ELEMENT_ARRAY_BUFFER = 34963;
lime_graphics_opengl_GL.ARRAY_BUFFER_BINDING = 34964;
lime_graphics_opengl_GL.ELEMENT_ARRAY_BUFFER_BINDING = 34965;
lime_graphics_opengl_GL.STREAM_DRAW = 35040;
lime_graphics_opengl_GL.STATIC_DRAW = 35044;
lime_graphics_opengl_GL.DYNAMIC_DRAW = 35048;
lime_graphics_opengl_GL.BUFFER_SIZE = 34660;
lime_graphics_opengl_GL.BUFFER_USAGE = 34661;
lime_graphics_opengl_GL.CURRENT_VERTEX_ATTRIB = 34342;
lime_graphics_opengl_GL.FRONT = 1028;
lime_graphics_opengl_GL.BACK = 1029;
lime_graphics_opengl_GL.FRONT_AND_BACK = 1032;
lime_graphics_opengl_GL.CULL_FACE = 2884;
lime_graphics_opengl_GL.BLEND = 3042;
lime_graphics_opengl_GL.DITHER = 3024;
lime_graphics_opengl_GL.STENCIL_TEST = 2960;
lime_graphics_opengl_GL.DEPTH_TEST = 2929;
lime_graphics_opengl_GL.SCISSOR_TEST = 3089;
lime_graphics_opengl_GL.POLYGON_OFFSET_FILL = 32823;
lime_graphics_opengl_GL.SAMPLE_ALPHA_TO_COVERAGE = 32926;
lime_graphics_opengl_GL.SAMPLE_COVERAGE = 32928;
lime_graphics_opengl_GL.NO_ERROR = 0;
lime_graphics_opengl_GL.INVALID_ENUM = 1280;
lime_graphics_opengl_GL.INVALID_VALUE = 1281;
lime_graphics_opengl_GL.INVALID_OPERATION = 1282;
lime_graphics_opengl_GL.OUT_OF_MEMORY = 1285;
lime_graphics_opengl_GL.CW = 2304;
lime_graphics_opengl_GL.CCW = 2305;
lime_graphics_opengl_GL.LINE_WIDTH = 2849;
lime_graphics_opengl_GL.ALIASED_POINT_SIZE_RANGE = 33901;
lime_graphics_opengl_GL.ALIASED_LINE_WIDTH_RANGE = 33902;
lime_graphics_opengl_GL.CULL_FACE_MODE = 2885;
lime_graphics_opengl_GL.FRONT_FACE = 2886;
lime_graphics_opengl_GL.DEPTH_RANGE = 2928;
lime_graphics_opengl_GL.DEPTH_WRITEMASK = 2930;
lime_graphics_opengl_GL.DEPTH_CLEAR_VALUE = 2931;
lime_graphics_opengl_GL.DEPTH_FUNC = 2932;
lime_graphics_opengl_GL.STENCIL_CLEAR_VALUE = 2961;
lime_graphics_opengl_GL.STENCIL_FUNC = 2962;
lime_graphics_opengl_GL.STENCIL_FAIL = 2964;
lime_graphics_opengl_GL.STENCIL_PASS_DEPTH_FAIL = 2965;
lime_graphics_opengl_GL.STENCIL_PASS_DEPTH_PASS = 2966;
lime_graphics_opengl_GL.STENCIL_REF = 2967;
lime_graphics_opengl_GL.STENCIL_VALUE_MASK = 2963;
lime_graphics_opengl_GL.STENCIL_WRITEMASK = 2968;
lime_graphics_opengl_GL.STENCIL_BACK_FUNC = 34816;
lime_graphics_opengl_GL.STENCIL_BACK_FAIL = 34817;
lime_graphics_opengl_GL.STENCIL_BACK_PASS_DEPTH_FAIL = 34818;
lime_graphics_opengl_GL.STENCIL_BACK_PASS_DEPTH_PASS = 34819;
lime_graphics_opengl_GL.STENCIL_BACK_REF = 36003;
lime_graphics_opengl_GL.STENCIL_BACK_VALUE_MASK = 36004;
lime_graphics_opengl_GL.STENCIL_BACK_WRITEMASK = 36005;
lime_graphics_opengl_GL.VIEWPORT = 2978;
lime_graphics_opengl_GL.SCISSOR_BOX = 3088;
lime_graphics_opengl_GL.COLOR_CLEAR_VALUE = 3106;
lime_graphics_opengl_GL.COLOR_WRITEMASK = 3107;
lime_graphics_opengl_GL.UNPACK_ALIGNMENT = 3317;
lime_graphics_opengl_GL.PACK_ALIGNMENT = 3333;
lime_graphics_opengl_GL.MAX_TEXTURE_SIZE = 3379;
lime_graphics_opengl_GL.MAX_VIEWPORT_DIMS = 3386;
lime_graphics_opengl_GL.SUBPIXEL_BITS = 3408;
lime_graphics_opengl_GL.RED_BITS = 3410;
lime_graphics_opengl_GL.GREEN_BITS = 3411;
lime_graphics_opengl_GL.BLUE_BITS = 3412;
lime_graphics_opengl_GL.ALPHA_BITS = 3413;
lime_graphics_opengl_GL.DEPTH_BITS = 3414;
lime_graphics_opengl_GL.STENCIL_BITS = 3415;
lime_graphics_opengl_GL.POLYGON_OFFSET_UNITS = 10752;
lime_graphics_opengl_GL.POLYGON_OFFSET_FACTOR = 32824;
lime_graphics_opengl_GL.TEXTURE_BINDING_2D = 32873;
lime_graphics_opengl_GL.SAMPLE_BUFFERS = 32936;
lime_graphics_opengl_GL.SAMPLES = 32937;
lime_graphics_opengl_GL.SAMPLE_COVERAGE_VALUE = 32938;
lime_graphics_opengl_GL.SAMPLE_COVERAGE_INVERT = 32939;
lime_graphics_opengl_GL.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_ColorMatrix_$Impl_$.__identity = [1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0];
lime_math__$Matrix4_Matrix4_$Impl_$.__identity = [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0];
lime_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_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_CFFI.__moduleNames = null;
lime_system_Clipboard.onUpdate = new lime_app__$Event_$Void_$Void();
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_GamepadAxis_$Impl_$.LEFT_X = 0;
lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.LEFT_Y = 1;
lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.RIGHT_X = 2;
lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.RIGHT_Y = 3;
lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.TRIGGER_LEFT = 4;
lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.TRIGGER_RIGHT = 5;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.A = 0;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.B = 1;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.X = 2;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.Y = 3;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.BACK = 4;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.GUIDE = 5;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.START = 6;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.LEFT_STICK = 7;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.RIGHT_STICK = 8;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.LEFT_SHOULDER = 9;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.RIGHT_SHOULDER = 10;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.DPAD_UP = 11;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.DPAD_DOWN = 12;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.DPAD_LEFT = 13;
lime_ui__$GamepadButton_GamepadButton_$Impl_$.DPAD_RIGHT = 14;
lime_ui_Joystick.devices = new haxe_ds_IntMap();
lime_ui_Joystick.onConnect = new lime_app__$Event_$lime_$ui_$Joystick_$Void();
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.CENTER = 0;
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.DOWN = 4;
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.LEFT = 8;
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.RIGHT = 2;
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.UP = 1;
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.DOWN_LEFT = 12;
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.DOWN_RIGHT = 6;
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.UP_LEFT = 9;
lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.UP_RIGHT = 3;
lime_ui__$KeyCode_KeyCode_$Impl_$.UNKNOWN = 0;
lime_ui__$KeyCode_KeyCode_$Impl_$.BACKSPACE = 8;
lime_ui__$KeyCode_KeyCode_$Impl_$.TAB = 9;
lime_ui__$KeyCode_KeyCode_$Impl_$.RETURN = 13;
lime_ui__$KeyCode_KeyCode_$Impl_$.ESCAPE = 27;
lime_ui__$KeyCode_KeyCode_$Impl_$.SPACE = 32;
lime_ui__$KeyCode_KeyCode_$Impl_$.EXCLAMATION = 33;
lime_ui__$KeyCode_KeyCode_$Impl_$.QUOTE = 34;
lime_ui__$KeyCode_KeyCode_$Impl_$.HASH = 35;
lime_ui__$KeyCode_KeyCode_$Impl_$.DOLLAR = 36;
lime_ui__$KeyCode_KeyCode_$Impl_$.PERCENT = 37;
lime_ui__$KeyCode_KeyCode_$Impl_$.AMPERSAND = 38;
lime_ui__$KeyCode_KeyCode_$Impl_$.SINGLE_QUOTE = 39;
lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_PARENTHESIS = 40;
lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_PARENTHESIS = 41;
lime_ui__$KeyCode_KeyCode_$Impl_$.ASTERISK = 42;
lime_ui__$KeyCode_KeyCode_$Impl_$.PLUS = 43;
lime_ui__$KeyCode_KeyCode_$Impl_$.COMMA = 44;
lime_ui__$KeyCode_KeyCode_$Impl_$.MINUS = 45;
lime_ui__$KeyCode_KeyCode_$Impl_$.PERIOD = 46;
lime_ui__$KeyCode_KeyCode_$Impl_$.SLASH = 47;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_0 = 48;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_1 = 49;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_2 = 50;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_3 = 51;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_4 = 52;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_5 = 53;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_6 = 54;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_7 = 55;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_8 = 56;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_9 = 57;
lime_ui__$KeyCode_KeyCode_$Impl_$.COLON = 58;
lime_ui__$KeyCode_KeyCode_$Impl_$.SEMICOLON = 59;
lime_ui__$KeyCode_KeyCode_$Impl_$.LESS_THAN = 60;
lime_ui__$KeyCode_KeyCode_$Impl_$.EQUALS = 61;
lime_ui__$KeyCode_KeyCode_$Impl_$.GREATER_THAN = 62;
lime_ui__$KeyCode_KeyCode_$Impl_$.QUESTION = 63;
lime_ui__$KeyCode_KeyCode_$Impl_$.AT = 64;
lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_BRACKET = 91;
lime_ui__$KeyCode_KeyCode_$Impl_$.BACKSLASH = 92;
lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_BRACKET = 93;
lime_ui__$KeyCode_KeyCode_$Impl_$.CARET = 94;
lime_ui__$KeyCode_KeyCode_$Impl_$.UNDERSCORE = 95;
lime_ui__$KeyCode_KeyCode_$Impl_$.GRAVE = 96;
lime_ui__$KeyCode_KeyCode_$Impl_$.A = 97;
lime_ui__$KeyCode_KeyCode_$Impl_$.B = 98;
lime_ui__$KeyCode_KeyCode_$Impl_$.C = 99;
lime_ui__$KeyCode_KeyCode_$Impl_$.D = 100;
lime_ui__$KeyCode_KeyCode_$Impl_$.E = 101;
lime_ui__$KeyCode_KeyCode_$Impl_$.F = 102;
lime_ui__$KeyCode_KeyCode_$Impl_$.G = 103;
lime_ui__$KeyCode_KeyCode_$Impl_$.H = 104;
lime_ui__$KeyCode_KeyCode_$Impl_$.I = 105;
lime_ui__$KeyCode_KeyCode_$Impl_$.J = 106;
lime_ui__$KeyCode_KeyCode_$Impl_$.K = 107;
lime_ui__$KeyCode_KeyCode_$Impl_$.L = 108;
lime_ui__$KeyCode_KeyCode_$Impl_$.M = 109;
lime_ui__$KeyCode_KeyCode_$Impl_$.N = 110;
lime_ui__$KeyCode_KeyCode_$Impl_$.O = 111;
lime_ui__$KeyCode_KeyCode_$Impl_$.P = 112;
lime_ui__$KeyCode_KeyCode_$Impl_$.Q = 113;
lime_ui__$KeyCode_KeyCode_$Impl_$.R = 114;
lime_ui__$KeyCode_KeyCode_$Impl_$.S = 115;
lime_ui__$KeyCode_KeyCode_$Impl_$.T = 116;
lime_ui__$KeyCode_KeyCode_$Impl_$.U = 117;
lime_ui__$KeyCode_KeyCode_$Impl_$.V = 118;
lime_ui__$KeyCode_KeyCode_$Impl_$.W = 119;
lime_ui__$KeyCode_KeyCode_$Impl_$.X = 120;
lime_ui__$KeyCode_KeyCode_$Impl_$.Y = 121;
lime_ui__$KeyCode_KeyCode_$Impl_$.Z = 122;
lime_ui__$KeyCode_KeyCode_$Impl_$.DELETE = 127;
lime_ui__$KeyCode_KeyCode_$Impl_$.CAPS_LOCK = 1073741881;
lime_ui__$KeyCode_KeyCode_$Impl_$.F1 = 1073741882;
lime_ui__$KeyCode_KeyCode_$Impl_$.F2 = 1073741883;
lime_ui__$KeyCode_KeyCode_$Impl_$.F3 = 1073741884;
lime_ui__$KeyCode_KeyCode_$Impl_$.F4 = 1073741885;
lime_ui__$KeyCode_KeyCode_$Impl_$.F5 = 1073741886;
lime_ui__$KeyCode_KeyCode_$Impl_$.F6 = 1073741887;
lime_ui__$KeyCode_KeyCode_$Impl_$.F7 = 1073741888;
lime_ui__$KeyCode_KeyCode_$Impl_$.F8 = 1073741889;
lime_ui__$KeyCode_KeyCode_$Impl_$.F9 = 1073741890;
lime_ui__$KeyCode_KeyCode_$Impl_$.F10 = 1073741891;
lime_ui__$KeyCode_KeyCode_$Impl_$.F11 = 1073741892;
lime_ui__$KeyCode_KeyCode_$Impl_$.F12 = 1073741893;
lime_ui__$KeyCode_KeyCode_$Impl_$.PRINT_SCREEN = 1073741894;
lime_ui__$KeyCode_KeyCode_$Impl_$.SCROLL_LOCK = 1073741895;
lime_ui__$KeyCode_KeyCode_$Impl_$.PAUSE = 1073741896;
lime_ui__$KeyCode_KeyCode_$Impl_$.INSERT = 1073741897;
lime_ui__$KeyCode_KeyCode_$Impl_$.HOME = 1073741898;
lime_ui__$KeyCode_KeyCode_$Impl_$.PAGE_UP = 1073741899;
lime_ui__$KeyCode_KeyCode_$Impl_$.END = 1073741901;
lime_ui__$KeyCode_KeyCode_$Impl_$.PAGE_DOWN = 1073741902;
lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT = 1073741903;
lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT = 1073741904;
lime_ui__$KeyCode_KeyCode_$Impl_$.DOWN = 1073741905;
lime_ui__$KeyCode_KeyCode_$Impl_$.UP = 1073741906;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUM_LOCK = 1073741907;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_DIVIDE = 1073741908;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MULTIPLY = 1073741909;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MINUS = 1073741910;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_PLUS = 1073741911;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_ENTER = 1073741912;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_1 = 1073741913;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_2 = 1073741914;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_3 = 1073741915;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_4 = 1073741916;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_5 = 1073741917;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_6 = 1073741918;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_7 = 1073741919;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_8 = 1073741920;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_9 = 1073741921;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_0 = 1073741922;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_PERIOD = 1073741923;
lime_ui__$KeyCode_KeyCode_$Impl_$.APPLICATION = 1073741925;
lime_ui__$KeyCode_KeyCode_$Impl_$.POWER = 1073741926;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_EQUALS = 1073741927;
lime_ui__$KeyCode_KeyCode_$Impl_$.F13 = 1073741928;
lime_ui__$KeyCode_KeyCode_$Impl_$.F14 = 1073741929;
lime_ui__$KeyCode_KeyCode_$Impl_$.F15 = 1073741930;
lime_ui__$KeyCode_KeyCode_$Impl_$.F16 = 1073741931;
lime_ui__$KeyCode_KeyCode_$Impl_$.F17 = 1073741932;
lime_ui__$KeyCode_KeyCode_$Impl_$.F18 = 1073741933;
lime_ui__$KeyCode_KeyCode_$Impl_$.F19 = 1073741934;
lime_ui__$KeyCode_KeyCode_$Impl_$.F20 = 1073741935;
lime_ui__$KeyCode_KeyCode_$Impl_$.F21 = 1073741936;
lime_ui__$KeyCode_KeyCode_$Impl_$.F22 = 1073741937;
lime_ui__$KeyCode_KeyCode_$Impl_$.F23 = 1073741938;
lime_ui__$KeyCode_KeyCode_$Impl_$.F24 = 1073741939;
lime_ui__$KeyCode_KeyCode_$Impl_$.EXECUTE = 1073741940;
lime_ui__$KeyCode_KeyCode_$Impl_$.HELP = 1073741941;
lime_ui__$KeyCode_KeyCode_$Impl_$.MENU = 1073741942;
lime_ui__$KeyCode_KeyCode_$Impl_$.SELECT = 1073741943;
lime_ui__$KeyCode_KeyCode_$Impl_$.STOP = 1073741944;
lime_ui__$KeyCode_KeyCode_$Impl_$.AGAIN = 1073741945;
lime_ui__$KeyCode_KeyCode_$Impl_$.UNDO = 1073741946;
lime_ui__$KeyCode_KeyCode_$Impl_$.CUT = 1073741947;
lime_ui__$KeyCode_KeyCode_$Impl_$.COPY = 1073741948;
lime_ui__$KeyCode_KeyCode_$Impl_$.PASTE = 1073741949;
lime_ui__$KeyCode_KeyCode_$Impl_$.FIND = 1073741950;
lime_ui__$KeyCode_KeyCode_$Impl_$.MUTE = 1073741951;
lime_ui__$KeyCode_KeyCode_$Impl_$.VOLUME_UP = 1073741952;
lime_ui__$KeyCode_KeyCode_$Impl_$.VOLUME_DOWN = 1073741953;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_COMMA = 1073741957;
lime_ui__$KeyCode_KeyCode_$Impl_$.ALT_ERASE = 1073741977;
lime_ui__$KeyCode_KeyCode_$Impl_$.SYSTEM_REQUEST = 1073741978;
lime_ui__$KeyCode_KeyCode_$Impl_$.CANCEL = 1073741979;
lime_ui__$KeyCode_KeyCode_$Impl_$.CLEAR = 1073741980;
lime_ui__$KeyCode_KeyCode_$Impl_$.PRIOR = 1073741981;
lime_ui__$KeyCode_KeyCode_$Impl_$.RETURN2 = 1073741982;
lime_ui__$KeyCode_KeyCode_$Impl_$.SEPARATOR = 1073741983;
lime_ui__$KeyCode_KeyCode_$Impl_$.OUT = 1073741984;
lime_ui__$KeyCode_KeyCode_$Impl_$.OPER = 1073741985;
lime_ui__$KeyCode_KeyCode_$Impl_$.CLEAR_AGAIN = 1073741986;
lime_ui__$KeyCode_KeyCode_$Impl_$.CRSEL = 1073741987;
lime_ui__$KeyCode_KeyCode_$Impl_$.EXSEL = 1073741988;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_00 = 1073742000;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_000 = 1073742001;
lime_ui__$KeyCode_KeyCode_$Impl_$.THOUSAND_SEPARATOR = 1073742002;
lime_ui__$KeyCode_KeyCode_$Impl_$.DECIMAL_SEPARATOR = 1073742003;
lime_ui__$KeyCode_KeyCode_$Impl_$.CURRENCY_UNIT = 1073742004;
lime_ui__$KeyCode_KeyCode_$Impl_$.CURRENCY_SUBUNIT = 1073742005;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_LEFT_PARENTHESIS = 1073742006;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_RIGHT_PARENTHESIS = 1073742007;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_LEFT_BRACE = 1073742008;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_RIGHT_BRACE = 1073742009;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_TAB = 1073742010;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_BACKSPACE = 1073742011;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_A = 1073742012;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_B = 1073742013;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_C = 1073742014;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_D = 1073742015;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_E = 1073742016;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_F = 1073742017;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_XOR = 1073742018;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_POWER = 1073742019;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_PERCENT = 1073742020;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_LESS_THAN = 1073742021;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_GREATER_THAN = 1073742022;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_AMPERSAND = 1073742023;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_DOUBLE_AMPERSAND = 1073742024;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_VERTICAL_BAR = 1073742025;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_DOUBLE_VERTICAL_BAR = 1073742026;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_COLON = 1073742027;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_HASH = 1073742028;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_SPACE = 1073742029;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_AT = 1073742030;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_EXCLAMATION = 1073742031;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_STORE = 1073742032;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_RECALL = 1073742033;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_CLEAR = 1073742034;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_ADD = 1073742035;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_SUBTRACT = 1073742036;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_MULTIPLY = 1073742037;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_DIVIDE = 1073742038;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_PLUS_MINUS = 1073742039;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_CLEAR = 1073742040;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_CLEAR_ENTRY = 1073742041;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_BINARY = 1073742042;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_OCTAL = 1073742043;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_DECIMAL = 1073742044;
lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_HEXADECIMAL = 1073742045;
lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_CTRL = 1073742048;
lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_SHIFT = 1073742049;
lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_ALT = 1073742050;
lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_META = 1073742051;
lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_CTRL = 1073742052;
lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_SHIFT = 1073742053;
lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_ALT = 1073742054;
lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_META = 1073742055;
lime_ui__$KeyCode_KeyCode_$Impl_$.MODE = 1073742081;
lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_NEXT = 1073742082;
lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_PREVIOUS = 1073742083;
lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_STOP = 1073742084;
lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_PLAY = 1073742085;
lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_MUTE = 1073742086;
lime_ui__$KeyCode_KeyCode_$Impl_$.MEDIA_SELECT = 1073742087;
lime_ui__$KeyCode_KeyCode_$Impl_$.WWW = 1073742088;
lime_ui__$KeyCode_KeyCode_$Impl_$.MAIL = 1073742089;
lime_ui__$KeyCode_KeyCode_$Impl_$.CALCULATOR = 1073742090;
lime_ui__$KeyCode_KeyCode_$Impl_$.COMPUTER = 1073742091;
lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_SEARCH = 1073742092;
lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_HOME = 1073742093;
lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_BACK = 1073742094;
lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_FORWARD = 1073742095;
lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_STOP = 1073742096;
lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_REFRESH = 1073742097;
lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_BOOKMARKS = 1073742098;
lime_ui__$KeyCode_KeyCode_$Impl_$.BRIGHTNESS_DOWN = 1073742099;
lime_ui__$KeyCode_KeyCode_$Impl_$.BRIGHTNESS_UP = 1073742100;
lime_ui__$KeyCode_KeyCode_$Impl_$.DISPLAY_SWITCH = 1073742101;
lime_ui__$KeyCode_KeyCode_$Impl_$.BACKLIGHT_TOGGLE = 1073742102;
lime_ui__$KeyCode_KeyCode_$Impl_$.BACKLIGHT_DOWN = 1073742103;
lime_ui__$KeyCode_KeyCode_$Impl_$.BACKLIGHT_UP = 1073742104;
lime_ui__$KeyCode_KeyCode_$Impl_$.EJECT = 1073742105;
lime_ui__$KeyCode_KeyCode_$Impl_$.SLEEP = 1073742106;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.NONE = 0;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.LEFT_SHIFT = 1;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.RIGHT_SHIFT = 2;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.LEFT_CTRL = 64;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.RIGHT_CTRL = 128;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.LEFT_ALT = 256;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.RIGHT_ALT = 512;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.LEFT_META = 1024;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.RIGHT_META = 2048;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.NUM_LOCK = 4096;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.CAPS_LOCK = 8192;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.MODE = 16384;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.CTRL = 192;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.SHIFT = 3;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.ALT = 768;
lime_ui__$KeyModifier_KeyModifier_$Impl_$.META = 3072;
lime_ui__$ScanCode_ScanCode_$Impl_$.UNKNOWN = 0;
lime_ui__$ScanCode_ScanCode_$Impl_$.BACKSPACE = 42;
lime_ui__$ScanCode_ScanCode_$Impl_$.TAB = 43;
lime_ui__$ScanCode_ScanCode_$Impl_$.RETURN = 40;
lime_ui__$ScanCode_ScanCode_$Impl_$.ESCAPE = 41;
lime_ui__$ScanCode_ScanCode_$Impl_$.SPACE = 44;
lime_ui__$ScanCode_ScanCode_$Impl_$.SINGLE_QUOTE = 52;
lime_ui__$ScanCode_ScanCode_$Impl_$.COMMA = 54;
lime_ui__$ScanCode_ScanCode_$Impl_$.MINUS = 45;
lime_ui__$ScanCode_ScanCode_$Impl_$.PERIOD = 55;
lime_ui__$ScanCode_ScanCode_$Impl_$.SLASH = 56;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_0 = 39;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_1 = 30;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_2 = 31;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_3 = 32;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_4 = 33;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_5 = 34;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_6 = 35;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_7 = 36;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_8 = 37;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMBER_9 = 38;
lime_ui__$ScanCode_ScanCode_$Impl_$.SEMICOLON = 51;
lime_ui__$ScanCode_ScanCode_$Impl_$.EQUALS = 46;
lime_ui__$ScanCode_ScanCode_$Impl_$.LEFT_BRACKET = 47;
lime_ui__$ScanCode_ScanCode_$Impl_$.BACKSLASH = 49;
lime_ui__$ScanCode_ScanCode_$Impl_$.RIGHT_BRACKET = 48;
lime_ui__$ScanCode_ScanCode_$Impl_$.GRAVE = 53;
lime_ui__$ScanCode_ScanCode_$Impl_$.A = 4;
lime_ui__$ScanCode_ScanCode_$Impl_$.B = 5;
lime_ui__$ScanCode_ScanCode_$Impl_$.C = 6;
lime_ui__$ScanCode_ScanCode_$Impl_$.D = 7;
lime_ui__$ScanCode_ScanCode_$Impl_$.E = 8;
lime_ui__$ScanCode_ScanCode_$Impl_$.F = 9;
lime_ui__$ScanCode_ScanCode_$Impl_$.G = 10;
lime_ui__$ScanCode_ScanCode_$Impl_$.H = 11;
lime_ui__$ScanCode_ScanCode_$Impl_$.I = 12;
lime_ui__$ScanCode_ScanCode_$Impl_$.J = 13;
lime_ui__$ScanCode_ScanCode_$Impl_$.K = 14;
lime_ui__$ScanCode_ScanCode_$Impl_$.L = 15;
lime_ui__$ScanCode_ScanCode_$Impl_$.M = 16;
lime_ui__$ScanCode_ScanCode_$Impl_$.N = 17;
lime_ui__$ScanCode_ScanCode_$Impl_$.O = 18;
lime_ui__$ScanCode_ScanCode_$Impl_$.P = 19;
lime_ui__$ScanCode_ScanCode_$Impl_$.Q = 20;
lime_ui__$ScanCode_ScanCode_$Impl_$.R = 21;
lime_ui__$ScanCode_ScanCode_$Impl_$.S = 22;
lime_ui__$ScanCode_ScanCode_$Impl_$.T = 23;
lime_ui__$ScanCode_ScanCode_$Impl_$.U = 24;
lime_ui__$ScanCode_ScanCode_$Impl_$.V = 25;
lime_ui__$ScanCode_ScanCode_$Impl_$.W = 26;
lime_ui__$ScanCode_ScanCode_$Impl_$.X = 27;
lime_ui__$ScanCode_ScanCode_$Impl_$.Y = 28;
lime_ui__$ScanCode_ScanCode_$Impl_$.Z = 29;
lime_ui__$ScanCode_ScanCode_$Impl_$.DELETE = 76;
lime_ui__$ScanCode_ScanCode_$Impl_$.CAPS_LOCK = 57;
lime_ui__$ScanCode_ScanCode_$Impl_$.F1 = 58;
lime_ui__$ScanCode_ScanCode_$Impl_$.F2 = 59;
lime_ui__$ScanCode_ScanCode_$Impl_$.F3 = 60;
lime_ui__$ScanCode_ScanCode_$Impl_$.F4 = 61;
lime_ui__$ScanCode_ScanCode_$Impl_$.F5 = 62;
lime_ui__$ScanCode_ScanCode_$Impl_$.F6 = 63;
lime_ui__$ScanCode_ScanCode_$Impl_$.F7 = 64;
lime_ui__$ScanCode_ScanCode_$Impl_$.F8 = 65;
lime_ui__$ScanCode_ScanCode_$Impl_$.F9 = 66;
lime_ui__$ScanCode_ScanCode_$Impl_$.F10 = 67;
lime_ui__$ScanCode_ScanCode_$Impl_$.F11 = 68;
lime_ui__$ScanCode_ScanCode_$Impl_$.F12 = 69;
lime_ui__$ScanCode_ScanCode_$Impl_$.PRINT_SCREEN = 70;
lime_ui__$ScanCode_ScanCode_$Impl_$.SCROLL_LOCK = 71;
lime_ui__$ScanCode_ScanCode_$Impl_$.PAUSE = 72;
lime_ui__$ScanCode_ScanCode_$Impl_$.INSERT = 73;
lime_ui__$ScanCode_ScanCode_$Impl_$.HOME = 74;
lime_ui__$ScanCode_ScanCode_$Impl_$.PAGE_UP = 75;
lime_ui__$ScanCode_ScanCode_$Impl_$.END = 77;
lime_ui__$ScanCode_ScanCode_$Impl_$.PAGE_DOWN = 78;
lime_ui__$ScanCode_ScanCode_$Impl_$.RIGHT = 79;
lime_ui__$ScanCode_ScanCode_$Impl_$.LEFT = 80;
lime_ui__$ScanCode_ScanCode_$Impl_$.DOWN = 81;
lime_ui__$ScanCode_ScanCode_$Impl_$.UP = 82;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUM_LOCK = 83;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_DIVIDE = 84;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MULTIPLY = 85;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MINUS = 86;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_PLUS = 87;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_ENTER = 88;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_1 = 89;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_2 = 90;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_3 = 91;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_4 = 92;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_5 = 93;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_6 = 94;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_7 = 95;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_8 = 96;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_9 = 97;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_0 = 98;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_PERIOD = 99;
lime_ui__$ScanCode_ScanCode_$Impl_$.APPLICATION = 101;
lime_ui__$ScanCode_ScanCode_$Impl_$.POWER = 102;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_EQUALS = 103;
lime_ui__$ScanCode_ScanCode_$Impl_$.F13 = 104;
lime_ui__$ScanCode_ScanCode_$Impl_$.F14 = 105;
lime_ui__$ScanCode_ScanCode_$Impl_$.F15 = 106;
lime_ui__$ScanCode_ScanCode_$Impl_$.F16 = 107;
lime_ui__$ScanCode_ScanCode_$Impl_$.F17 = 108;
lime_ui__$ScanCode_ScanCode_$Impl_$.F18 = 109;
lime_ui__$ScanCode_ScanCode_$Impl_$.F19 = 110;
lime_ui__$ScanCode_ScanCode_$Impl_$.F20 = 111;
lime_ui__$ScanCode_ScanCode_$Impl_$.F21 = 112;
lime_ui__$ScanCode_ScanCode_$Impl_$.F22 = 113;
lime_ui__$ScanCode_ScanCode_$Impl_$.F23 = 114;
lime_ui__$ScanCode_ScanCode_$Impl_$.F24 = 115;
lime_ui__$ScanCode_ScanCode_$Impl_$.EXECUTE = 116;
lime_ui__$ScanCode_ScanCode_$Impl_$.HELP = 117;
lime_ui__$ScanCode_ScanCode_$Impl_$.MENU = 118;
lime_ui__$ScanCode_ScanCode_$Impl_$.SELECT = 119;
lime_ui__$ScanCode_ScanCode_$Impl_$.STOP = 120;
lime_ui__$ScanCode_ScanCode_$Impl_$.AGAIN = 121;
lime_ui__$ScanCode_ScanCode_$Impl_$.UNDO = 122;
lime_ui__$ScanCode_ScanCode_$Impl_$.CUT = 123;
lime_ui__$ScanCode_ScanCode_$Impl_$.COPY = 124;
lime_ui__$ScanCode_ScanCode_$Impl_$.PASTE = 125;
lime_ui__$ScanCode_ScanCode_$Impl_$.FIND = 126;
lime_ui__$ScanCode_ScanCode_$Impl_$.MUTE = 127;
lime_ui__$ScanCode_ScanCode_$Impl_$.VOLUME_UP = 128;
lime_ui__$ScanCode_ScanCode_$Impl_$.VOLUME_DOWN = 129;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_COMMA = 133;
lime_ui__$ScanCode_ScanCode_$Impl_$.ALT_ERASE = 153;
lime_ui__$ScanCode_ScanCode_$Impl_$.SYSTEM_REQUEST = 154;
lime_ui__$ScanCode_ScanCode_$Impl_$.CANCEL = 155;
lime_ui__$ScanCode_ScanCode_$Impl_$.CLEAR = 156;
lime_ui__$ScanCode_ScanCode_$Impl_$.PRIOR = 157;
lime_ui__$ScanCode_ScanCode_$Impl_$.RETURN2 = 158;
lime_ui__$ScanCode_ScanCode_$Impl_$.SEPARATOR = 159;
lime_ui__$ScanCode_ScanCode_$Impl_$.OUT = 160;
lime_ui__$ScanCode_ScanCode_$Impl_$.OPER = 161;
lime_ui__$ScanCode_ScanCode_$Impl_$.CLEAR_AGAIN = 162;
lime_ui__$ScanCode_ScanCode_$Impl_$.CRSEL = 163;
lime_ui__$ScanCode_ScanCode_$Impl_$.EXSEL = 164;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_00 = 176;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_000 = 177;
lime_ui__$ScanCode_ScanCode_$Impl_$.THOUSAND_SEPARATOR = 178;
lime_ui__$ScanCode_ScanCode_$Impl_$.DECIMAL_SEPARATOR = 179;
lime_ui__$ScanCode_ScanCode_$Impl_$.CURRENCY_UNIT = 180;
lime_ui__$ScanCode_ScanCode_$Impl_$.CURRENCY_SUBUNIT = 181;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_LEFT_PARENTHESIS = 182;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_RIGHT_PARENTHESIS = 183;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_LEFT_BRACE = 184;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_RIGHT_BRACE = 185;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_TAB = 186;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_BACKSPACE = 187;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_A = 188;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_B = 189;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_C = 190;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_D = 191;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_E = 192;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_F = 193;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_XOR = 194;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_POWER = 195;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_PERCENT = 196;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_LESS_THAN = 197;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_GREATER_THAN = 198;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_AMPERSAND = 199;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_DOUBLE_AMPERSAND = 200;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_VERTICAL_BAR = 201;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_DOUBLE_VERTICAL_BAR = 202;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_COLON = 203;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_HASH = 204;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_SPACE = 205;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_AT = 206;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_EXCLAMATION = 207;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MEM_STORE = 208;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MEM_RECALL = 209;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MEM_CLEAR = 210;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MEM_ADD = 211;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MEM_SUBTRACT = 212;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MEM_MULTIPLY = 213;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_MEM_DIVIDE = 214;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_PLUS_MINUS = 215;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_CLEAR = 216;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_CLEAR_ENTRY = 217;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_BINARY = 218;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_OCTAL = 219;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_DECIMAL = 220;
lime_ui__$ScanCode_ScanCode_$Impl_$.NUMPAD_HEXADECIMAL = 221;
lime_ui__$ScanCode_ScanCode_$Impl_$.LEFT_CTRL = 224;
lime_ui__$ScanCode_ScanCode_$Impl_$.LEFT_SHIFT = 225;
lime_ui__$ScanCode_ScanCode_$Impl_$.LEFT_ALT = 226;
lime_ui__$ScanCode_ScanCode_$Impl_$.LEFT_META = 227;
lime_ui__$ScanCode_ScanCode_$Impl_$.RIGHT_CTRL = 228;
lime_ui__$ScanCode_ScanCode_$Impl_$.RIGHT_SHIFT = 229;
lime_ui__$ScanCode_ScanCode_$Impl_$.RIGHT_ALT = 230;
lime_ui__$ScanCode_ScanCode_$Impl_$.RIGHT_META = 231;
lime_ui__$ScanCode_ScanCode_$Impl_$.MODE = 257;
lime_ui__$ScanCode_ScanCode_$Impl_$.AUDIO_NEXT = 258;
lime_ui__$ScanCode_ScanCode_$Impl_$.AUDIO_PREVIOUS = 259;
lime_ui__$ScanCode_ScanCode_$Impl_$.AUDIO_STOP = 260;
lime_ui__$ScanCode_ScanCode_$Impl_$.AUDIO_PLAY = 261;
lime_ui__$ScanCode_ScanCode_$Impl_$.AUDIO_MUTE = 262;
lime_ui__$ScanCode_ScanCode_$Impl_$.MEDIA_SELECT = 263;
lime_ui__$ScanCode_ScanCode_$Impl_$.WWW = 264;
lime_ui__$ScanCode_ScanCode_$Impl_$.MAIL = 265;
lime_ui__$ScanCode_ScanCode_$Impl_$.CALCULATOR = 266;
lime_ui__$ScanCode_ScanCode_$Impl_$.COMPUTER = 267;
lime_ui__$ScanCode_ScanCode_$Impl_$.APP_CONTROL_SEARCH = 268;
lime_ui__$ScanCode_ScanCode_$Impl_$.APP_CONTROL_HOME = 269;
lime_ui__$ScanCode_ScanCode_$Impl_$.APP_CONTROL_BACK = 270;
lime_ui__$ScanCode_ScanCode_$Impl_$.APP_CONTROL_FORWARD = 271;
lime_ui__$ScanCode_ScanCode_$Impl_$.APP_CONTROL_STOP = 272;
lime_ui__$ScanCode_ScanCode_$Impl_$.APP_CONTROL_REFRESH = 273;
lime_ui__$ScanCode_ScanCode_$Impl_$.APP_CONTROL_BOOKMARKS = 274;
lime_ui__$ScanCode_ScanCode_$Impl_$.BRIGHTNESS_DOWN = 275;
lime_ui__$ScanCode_ScanCode_$Impl_$.BRIGHTNESS_UP = 276;
lime_ui__$ScanCode_ScanCode_$Impl_$.DISPLAY_SWITCH = 277;
lime_ui__$ScanCode_ScanCode_$Impl_$.BACKLIGHT_TOGGLE = 278;
lime_ui__$ScanCode_ScanCode_$Impl_$.BACKLIGHT_DOWN = 279;
lime_ui__$ScanCode_ScanCode_$Impl_$.BACKLIGHT_UP = 280;
lime_ui__$ScanCode_ScanCode_$Impl_$.EJECT = 281;
lime_ui__$ScanCode_ScanCode_$Impl_$.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_Assets.cache = new lime_utils_AssetCache();
lime_utils_Assets.onChange = new lime_app__$Event_$Void_$Void();
lime_utils_Assets.libraries = new haxe_ds_StringMap();
lime_utils_Assets.libraryPaths = new haxe_ds_StringMap();
lime_utils__$Float32Array_Float32Array_$Impl_$.BYTES_PER_ELEMENT = 4;
lime_utils__$Float64Array_Float64Array_$Impl_$.BYTES_PER_ELEMENT = 8;
lime_utils__$Int16Array_Int16Array_$Impl_$.BYTES_PER_ELEMENT = 2;
lime_utils__$Int32Array_Int32Array_$Impl_$.BYTES_PER_ELEMENT = 4;
lime_utils__$Int8Array_Int8Array_$Impl_$.BYTES_PER_ELEMENT = 1;
lime_utils_Log.throwErrors = true;
lime_utils__$LogLevel_LogLevel_$Impl_$.NONE = 0;
lime_utils__$LogLevel_LogLevel_$Impl_$.ERROR = 1;
lime_utils__$LogLevel_LogLevel_$Impl_$.WARN = 2;
lime_utils__$LogLevel_LogLevel_$Impl_$.INFO = 3;
lime_utils__$LogLevel_LogLevel_$Impl_$.DEBUG = 4;
lime_utils__$LogLevel_LogLevel_$Impl_$.VERBOSE = 5;
lime_utils__$UInt16Array_UInt16Array_$Impl_$.BYTES_PER_ELEMENT = 2;
lime_utils__$UInt32Array_UInt32Array_$Impl_$.BYTES_PER_ELEMENT = 4;
lime_utils__$UInt8Array_UInt8Array_$Impl_$.BYTES_PER_ELEMENT = 1;
lime_utils__$UInt8ClampedArray_UInt8ClampedArray_$Impl_$.BYTES_PER_ELEMENT = 1;
nova_animation_Director.instance = new nova_animation_Director();
nova_input_InputController.instance = new nova_input_InputController();
nova_render_NovaEmitter.DEFAULT_PARTICLE_FPS = 9;
nova_ui_dialog_DialogBox.DEFAULT_TEXT_PADDING_X = 6;
nova_ui_dialog_DialogBox.DEFAULT_TEXT_PADDING_Y = 5;
nova_ui_dialog_DialogBox.DIRECTOR_DIALOG_TRANSITION_STR = "__dialogTransition";
nova_ui_dialog_DialogBox.DIRECTOR_SLIDEIN_TRANSITION_STR = "__slideInTransition";
nova_ui_dialog_DialogBox.DEFAULT_FONT_SIZE = 5;
nova_ui_dialog_DialogBoxAddons.parsePercentVariables = nova_ui_dialog_DialogBoxAddons.parseVariableCodes("%");
nova_ui_dialog_DialogParser.RESERVED_STRINGS = ["global","label","define","jump","choice_box","clear","if","emit","wait","else","not","or","and","return","debug"];
nova_ui_dialog_ExpressionNode.FALSE = new nova_ui_dialog_ExpressionNode(nova_ui_dialog_ExpressionNodeType.INTEGER,0);
nova_ui_dialog_ExpressionNode.TRUE = new nova_ui_dialog_ExpressionNode(nova_ui_dialog_ExpressionNodeType.INTEGER,1);
nova_utils__$Pair_Pair_$Impl_$.LEFT = nova_utils__$Pair_Pair_$Impl_$.fromIntArray([-1,0]);
nova_utils__$Pair_Pair_$Impl_$.RIGHT = nova_utils__$Pair_Pair_$Impl_$.fromIntArray([1,0]);
nova_utils__$Pair_Pair_$Impl_$.UP = nova_utils__$Pair_Pair_$Impl_$.fromIntArray([0,-1]);
nova_utils__$Pair_Pair_$Impl_$.DOWN = nova_utils__$Pair_Pair_$Impl_$.fromIntArray([0,1]);
openfl_Lib.__lastTimerID = 0;
openfl_Lib.__sentWarnings = new haxe_ds_StringMap();
openfl_Lib.__timers = new haxe_ds_IntMap();
openfl__$internal_Lib.__sentWarnings = new haxe_ds_StringMap();
openfl__$internal_formats_agal_AGALConverter.limitedProfile = true;
openfl__$internal_formats_html_HTMLParser.__regexAlign = new EReg("align=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexBreakTag = new EReg("
","gi");
openfl__$internal_formats_html_HTMLParser.__regexBlockIndent = new EReg("blockindent=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexColor = new EReg("color=(\"#([^\"]+)\"|'#([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexEntities = [new EReg(""","g"),new EReg("'","g"),new EReg("&","g"),new EReg("<","g"),new EReg(">","g"),new EReg(" ","g")];
openfl__$internal_formats_html_HTMLParser.__regexFace = new EReg("face=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexHTMLTag = new EReg("<.*?>","g");
openfl__$internal_formats_html_HTMLParser.__regexHref = new EReg("href=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexIndent = new EReg(" indent=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexLeading = new EReg("leading=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexLeftMargin = new EReg("leftmargin=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexRightMargin = new EReg("rightmargin=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexSize = new EReg("size=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexTabStops = new EReg("tabstops=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_swf_SWFLite.instances = new haxe_ds_StringMap();
openfl__$internal_renderer_DrawCommandBuffer.empty = new openfl__$internal_renderer_DrawCommandBuffer();
openfl__$internal_renderer_canvas_CanvasGraphics.SIN45 = 0.70710678118654752440084436210485;
openfl__$internal_renderer_canvas_CanvasGraphics.TAN22 = 0.4142135623730950488016887242097;
openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands = new openfl__$internal_renderer_DrawCommandBuffer();
openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands = new openfl__$internal_renderer_DrawCommandBuffer();
openfl__$internal_renderer_context3D_Context3DBuffer.MAX_INDEX_BUFFER_LENGTH = 65535;
openfl__$internal_renderer_context3D_Context3DBuffer.MAX_QUADS_PER_INDEX_BUFFER = 10922;
openfl__$internal_renderer_context3D_Context3DBuffer.MAX_QUAD_INDEX_BUFFER_LENGTH = 65532;
openfl__$internal_renderer_context3D_Context3DGraphics.blankBitmapData = new openfl_display_BitmapData(1,1,false,0);
openfl__$internal_renderer_context3D_Context3DGraphics.tempColorTransform = new openfl_geom_ColorTransform(1,1,1,1,0,0,0,0);
openfl__$internal_renderer_context3D_Context3DMaskShader.opaqueBitmapData = new openfl_display_BitmapData(1,1,false,0);
openfl__$internal_renderer_dom_DOMTextField.__regexColor = new EReg("color=(\"#([^\"]+)\"|'#([^']+)')","i");
openfl__$internal_renderer_dom_DOMTextField.__regexFace = new EReg("face=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_renderer_dom_DOMTextField.__regexFont = new EReg("]+)>","gi");
openfl__$internal_renderer_dom_DOMTextField.__regexCloseFont = new EReg("","gi");
openfl__$internal_renderer_dom_DOMTextField.__regexSize = new EReg("size=(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_text_TextEngine.UTF8_TAB = 9;
openfl__$internal_text_TextEngine.UTF8_ENDLINE = 10;
openfl__$internal_text_TextEngine.UTF8_SPACE = 32;
openfl__$internal_text_TextEngine.UTF8_HYPHEN = 45;
openfl__$internal_text_TextEngine.__defaultFonts = new haxe_ds_StringMap();
openfl__$internal_text_TextLayout.FT_LOAD_DEFAULT = 0;
openfl__$internal_text_TextLayout.FT_LOAD_NO_SCALE = 1;
openfl__$internal_text_TextLayout.FT_LOAD_NO_HINTING = 2;
openfl__$internal_text_TextLayout.FT_LOAD_RENDER = 4;
openfl__$internal_text_TextLayout.FT_LOAD_NO_BITMAP = 8;
openfl__$internal_text_TextLayout.FT_LOAD_VERTICAL_LAYOUT = 16;
openfl__$internal_text_TextLayout.FT_LOAD_FORCE_AUTOHINT = 32;
openfl__$internal_text_TextLayout.FT_LOAD_CROP_BITMAP = 64;
openfl__$internal_text_TextLayout.FT_LOAD_PEDANTIC = 128;
openfl__$internal_text_TextLayout.FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = 256;
openfl__$internal_text_TextLayout.FT_LOAD_NO_RECURSE = 512;
openfl__$internal_text_TextLayout.FT_LOAD_IGNORE_TRANSFORM = 1024;
openfl__$internal_text_TextLayout.FT_LOAD_MONOCHROME = 2048;
openfl__$internal_text_TextLayout.FT_LOAD_LINEAR_DESIGN = 4096;
openfl__$internal_text_TextLayout.FT_LOAD_NO_AUTOHINT = 8192;
openfl__$internal_text_TextLayout.FT_LOAD_COLOR = 16384;
openfl__$internal_text_TextLayout.FT_LOAD_COMPUTE_METRICS = 32768;
openfl__$internal_text_TextLayout.FT_LOAD_BITMAP_METRICS_ONLY = 65536;
openfl__$internal_text_TextLayout.FT_LOAD_TARGET_NORMAL = 0;
openfl__$internal_text_TextLayout.FT_LOAD_TARGET_LIGHT = 0;
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.INVALID = 0;
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.LEFT_TO_RIGHT = 4;
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.RIGHT_TO_LEFT = 5;
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.TOP_TO_BOTTOM = 6;
openfl__$internal_text__$TextLayout_TextDirection_$Impl_$.BOTTOM_TO_TOP = 7;
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.COMMON = "Zyyy";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.INHERITED = "Zinh";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.UNKNOWN = "Zzzz";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.ARABIC = "Arab";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.ARMENIAN = "Armn";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BENGALI = "Beng";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CYRILLIC = "Cyrl";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.DEVANAGARI = "Deva";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.GEORGIAN = "Geor";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.GREEK = "Grek";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.GUJARATI = "Gujr";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.GURMUKHI = "Guru";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.HANGUL = "Hang";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.HAN = "Hani";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.HEBREW = "Hebr";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.HIRAGANA = "Hira";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.KANNADA = "Knda";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.KATAKANA = "Kana";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LAO = "Laoo";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LATIN = "Latn";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MALAYALAM = "Mlym";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.ORIYA = "Orya";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TAMIL = "Taml";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TELUGA = "Telu";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.THAI = "Thai";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TIBETAN = "Tibt";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BOPOMOFO = "Bopo";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BRAILLE = "Brai";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CANADIAN_SYLLABICS = "Cans";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CHEROKEE = "Cher";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.ETHIOPIC = "Ethi";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.KHMER = "Khmr";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MONGOLIAN = "Mong";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MYANMAR = "Mymr";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OGHAM = "Ogam";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.RUNIC = "Runr";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SINHALA = "Sinh";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SYRIAC = "Syrc";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.THAANA = "Thaa";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.YI = "Yiii";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.DESERET = "Dsrt";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.GOTHIC = "Goth";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OLD_ITALIC = "Ital";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BUHID = "Buhd";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.HANUNOO = "Hano";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TAGALOG = "Tglg";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TAGBANWA = "Tagb";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CYPRIOT = "Cprt";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LIMBU = "Limb";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LINEAR_B = "Linb";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OSMANYA = "Osma";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SHAVIAN = "Shaw";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TAI_LE = "Tale";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.UGARITIC = "Ugar";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BUGINESE = "Bugi";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.COPTIC = "Copt";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.GLAGOLITIC = "Glag";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.KHAROSHTHI = "Khar";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.NEW_TAI_LUE = "Talu";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OLD_PERSIAN = "Xpeo";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SYLOTI_NAGRI = "Sylo";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TIFINAGH = "Tfng";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BALINESE = "Bali";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CUNEIFORM = "Xsux";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.NKO = "Nkoo";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.PHAGS_PA = "Phag";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.PHOENICIAN = "Phnx";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CARIAN = "Cari";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CHAM = "Cham";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.KAYAH_LI = "Kali";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LEPCHA = "Lepc";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LYCIAN = "Lyci";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LYDIAN = "Lydi";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OL_CHIKI = "Olck";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.REJANG = "Rjng";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SAURASHTRA = "Saur";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SUNDANESE = "Sund";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.VAI = "Vaii";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.AVESTAN = "Avst";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BAMUM = "Bamu";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.EGYPTIAN_HIEROGLYPHS = "Egyp";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.IMPERIAL_ARAMAIC = "Armi";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.INSCRIPTIONAL_PAHLAVI = "Phli";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.INSCRIPTIONAL_PARTHIAN = "Prti";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.JAVANESE = "Java";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.KAITHI = "Kthi";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LISU = "Lisu";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MEETEI_MAYEK = "Mtei";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OLD_SOUTH_ARABIAN = "Sarb";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OLD_TURKIC = "Orkh";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SAMARITAN = "Samr";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TAI_THAM = "Lana";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TAI_VIET = "Tavt";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BATAK = "Batk";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BRAHMI = "Brah";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MANDAIC = "Mand";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CHAKMA = "Cakm";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MEROITIC_CURSIVE = "Merc";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MEROITIC_HIEROGLYPHS = "Mero";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MIAO = "Plrd";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SHARADA = "Shrd";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SORA_SOMPENG = "Sora";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TAKRI = "Takr";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.BASSA_VAH = "Bass";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.CAUCASIAN_ALBANIAN = "Aghb";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.DUPLOYAN = "Dupl";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.ELBASAN = "Elba";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.GRANTHA = "Gran";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.KHOJKI = "Khoj";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.KHUDAWADI = "Sind";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.LINEAR_A = "Lina";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MAHAJANI = "Mahj";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MANICHAEAN = "Mani";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MENDE_KIKAKUI = "Mend";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MODI = "Modi";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.MRO = "Mroo";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.NABATAEAN = "Nbat";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OLD_NORTH_ARABIAN = "Narb";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.OLD_PERMIC = "Perm";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.PAHAWH_HMONG = "Hmng";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.PALMYRENE = "Palm";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.PAU_CIN_HAU = "Pauc";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.PSALTER_PAHLAVI = "Phlp";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.SIDDHAM = "Sidd";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.TIRHUTA = "Tirh";
openfl__$internal_text__$TextLayout_TextScript_$Impl_$.WARANG_CITI = "Wara";
openfl__$internal_utils_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__$internal_utils_TouchData.__pool = new lime_utils_ObjectPool(function() {
return new openfl__$internal_utils_TouchData();
},function(data) {
data.reset();
});
openfl_display__$BlendMode_BlendMode_$Impl_$.ADD = 0;
openfl_display__$BlendMode_BlendMode_$Impl_$.ALPHA = 1;
openfl_display__$BlendMode_BlendMode_$Impl_$.DARKEN = 2;
openfl_display__$BlendMode_BlendMode_$Impl_$.DIFFERENCE = 3;
openfl_display__$BlendMode_BlendMode_$Impl_$.ERASE = 4;
openfl_display__$BlendMode_BlendMode_$Impl_$.HARDLIGHT = 5;
openfl_display__$BlendMode_BlendMode_$Impl_$.INVERT = 6;
openfl_display__$BlendMode_BlendMode_$Impl_$.LAYER = 7;
openfl_display__$BlendMode_BlendMode_$Impl_$.LIGHTEN = 8;
openfl_display__$BlendMode_BlendMode_$Impl_$.MULTIPLY = 9;
openfl_display__$BlendMode_BlendMode_$Impl_$.NORMAL = 10;
openfl_display__$BlendMode_BlendMode_$Impl_$.OVERLAY = 11;
openfl_display__$BlendMode_BlendMode_$Impl_$.SCREEN = 12;
openfl_display__$BlendMode_BlendMode_$Impl_$.SHADER = 13;
openfl_display__$BlendMode_BlendMode_$Impl_$.SUBTRACT = 14;
openfl_display__$CapsStyle_CapsStyle_$Impl_$.NONE = 0;
openfl_display__$CapsStyle_CapsStyle_$Impl_$.ROUND = 1;
openfl_display__$CapsStyle_CapsStyle_$Impl_$.SQUARE = 2;
openfl_display__$GradientType_GradientType_$Impl_$.LINEAR = 0;
openfl_display__$GradientType_GradientType_$Impl_$.RADIAL = 1;
openfl_display_Graphics.maxTextureHeight = null;
openfl_display_Graphics.maxTextureWidth = null;
openfl_display_GraphicsPath.SIN45 = 0.70710678118654752440084436210485;
openfl_display_GraphicsPath.TAN22 = 0.4142135623730950488016887242097;
openfl_display__$GraphicsPathWinding_GraphicsPathWinding_$Impl_$.EVEN_ODD = 0;
openfl_display__$GraphicsPathWinding_GraphicsPathWinding_$Impl_$.NON_ZERO = 1;
openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.LINEAR_RGB = 0;
openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.RGB = 1;
openfl_display__$JointStyle_JointStyle_$Impl_$.BEVEL = 0;
openfl_display__$JointStyle_JointStyle_$Impl_$.MITER = 1;
openfl_display__$JointStyle_JointStyle_$Impl_$.ROUND = 2;
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.HORIZONTAL = 0;
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.NONE = 1;
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.NORMAL = 2;
openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.VERTICAL = 3;
openfl_display_LoaderInfo.__rootURL = typeof(window) != "undefined" ? window.document.URL : "";
openfl_display_MovieClip.__useParentFPS = false;
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_PixelSnapping_$Impl_$.ALWAYS = 0;
openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.AUTO = 1;
openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.NEVER = 2;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.BOOL = 0;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.BOOL2 = 1;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.BOOL3 = 2;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.BOOL4 = 3;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.FLOAT = 4;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.FLOAT2 = 5;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.FLOAT3 = 6;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.FLOAT4 = 7;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.INT = 8;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.INT2 = 9;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.INT3 = 10;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.INT4 = 11;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX2X2 = 12;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX2X3 = 13;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX2X4 = 14;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX3X2 = 15;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX3X3 = 16;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX3X4 = 17;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX4X2 = 18;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX4X3 = 19;
openfl_display__$ShaderParameterType_ShaderParameterType_$Impl_$.MATRIX4X4 = 20;
openfl_display__$ShaderPrecision_ShaderPrecision_$Impl_$.FAST = 0;
openfl_display__$ShaderPrecision_ShaderPrecision_$Impl_$.FULL = 1;
openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.PAD = 0;
openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.REFLECT = 1;
openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.REPEAT = 2;
openfl_display__$StageAlign_StageAlign_$Impl_$.BOTTOM = 0;
openfl_display__$StageAlign_StageAlign_$Impl_$.BOTTOM_LEFT = 1;
openfl_display__$StageAlign_StageAlign_$Impl_$.BOTTOM_RIGHT = 2;
openfl_display__$StageAlign_StageAlign_$Impl_$.LEFT = 3;
openfl_display__$StageAlign_StageAlign_$Impl_$.RIGHT = 4;
openfl_display__$StageAlign_StageAlign_$Impl_$.TOP = 5;
openfl_display__$StageAlign_StageAlign_$Impl_$.TOP_LEFT = 6;
openfl_display__$StageAlign_StageAlign_$Impl_$.TOP_RIGHT = 7;
openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.FULL_SCREEN = 0;
openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.FULL_SCREEN_INTERACTIVE = 1;
openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.NORMAL = 2;
openfl_display__$StageQuality_StageQuality_$Impl_$.BEST = 0;
openfl_display__$StageQuality_StageQuality_$Impl_$.HIGH = 1;
openfl_display__$StageQuality_StageQuality_$Impl_$.LOW = 2;
openfl_display__$StageQuality_StageQuality_$Impl_$.MEDIUM = 3;
openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.EXACT_FIT = 0;
openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.NO_BORDER = 1;
openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.NO_SCALE = 2;
openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.SHOW_ALL = 3;
openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.NEGATIVE = 0;
openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.NONE = 1;
openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.POSITIVE = 2;
openfl_display3D_Context3D.supportsVideoTexture = true;
openfl_display3D_Context3D.GL_DEPTH_STENCIL = -1;
openfl_display3D_Context3D.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = -1;
openfl_display3D_Context3D.GL_MAX_VIEWPORT_DIMS = -1;
openfl_display3D_Context3D.GL_TEXTURE_MAX_ANISOTROPY_EXT = -1;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.DESTINATION_ALPHA = 0;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.DESTINATION_COLOR = 1;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.ONE = 2;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.ONE_MINUS_DESTINATION_ALPHA = 3;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.ONE_MINUS_DESTINATION_COLOR = 4;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.ONE_MINUS_SOURCE_ALPHA = 5;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.ONE_MINUS_SOURCE_COLOR = 6;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.SOURCE_ALPHA = 7;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.SOURCE_COLOR = 8;
openfl_display3D__$Context3DBlendFactor_Context3DBlendFactor_$Impl_$.ZERO = 9;
openfl_display3D__$Context3DBufferUsage_Context3DBufferUsage_$Impl_$.DYNAMIC_DRAW = 0;
openfl_display3D__$Context3DBufferUsage_Context3DBufferUsage_$Impl_$.STATIC_DRAW = 1;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.ALWAYS = 0;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.EQUAL = 1;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.GREATER = 2;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.GREATER_EQUAL = 3;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.LESS = 4;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.LESS_EQUAL = 5;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.NEVER = 6;
openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.NOT_EQUAL = 7;
openfl_display3D__$Context3DMipFilter_Context3DMipFilter_$Impl_$.MIPLINEAR = 0;
openfl_display3D__$Context3DMipFilter_Context3DMipFilter_$Impl_$.MIPNEAREST = 1;
openfl_display3D__$Context3DMipFilter_Context3DMipFilter_$Impl_$.MIPNONE = 2;
openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$.BASELINE = 0;
openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$.BASELINE_CONSTRAINED = 1;
openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$.BASELINE_EXTENDED = 2;
openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$.STANDARD = 3;
openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$.STANDARD_CONSTRAINED = 4;
openfl_display3D__$Context3DProfile_Context3DProfile_$Impl_$.STANDARD_EXTENDED = 5;
openfl_display3D__$Context3DProgramFormat_Context3DProgramFormat_$Impl_$.AGAL = 0;
openfl_display3D__$Context3DProgramFormat_Context3DProgramFormat_$Impl_$.GLSL = 1;
openfl_display3D__$Context3DProgramType_Context3DProgramType_$Impl_$.FRAGMENT = 0;
openfl_display3D__$Context3DProgramType_Context3DProgramType_$Impl_$.VERTEX = 1;
openfl_display3D__$Context3DRenderMode_Context3DRenderMode_$Impl_$.AUTO = 0;
openfl_display3D__$Context3DRenderMode_Context3DRenderMode_$Impl_$.SOFTWARE = 1;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.DECREMENT_SATURATE = 0;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.DECREMENT_WRAP = 1;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.INCREMENT_SATURATE = 2;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.INCREMENT_WRAP = 3;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.INVERT = 4;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.KEEP = 5;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.SET = 6;
openfl_display3D__$Context3DStencilAction_Context3DStencilAction_$Impl_$.ZERO = 7;
openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$.ANISOTROPIC16X = 0;
openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$.ANISOTROPIC2X = 1;
openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$.ANISOTROPIC4X = 2;
openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$.ANISOTROPIC8X = 3;
openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$.LINEAR = 4;
openfl_display3D__$Context3DTextureFilter_Context3DTextureFilter_$Impl_$.NEAREST = 5;
openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$.BGR_PACKED = 0;
openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$.BGRA = 1;
openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$.BGRA_PACKED = 2;
openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$.COMPRESSED = 3;
openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$.COMPRESSED_ALPHA = 4;
openfl_display3D__$Context3DTextureFormat_Context3DTextureFormat_$Impl_$.RGBA_HALF_FLOAT = 5;
openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.BACK = 0;
openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.FRONT = 1;
openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.FRONT_AND_BACK = 2;
openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.NONE = 3;
openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$.BYTES_4 = 0;
openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$.FLOAT_1 = 1;
openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$.FLOAT_2 = 2;
openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$.FLOAT_3 = 3;
openfl_display3D__$Context3DVertexBufferFormat_Context3DVertexBufferFormat_$Impl_$.FLOAT_4 = 4;
openfl_display3D__$Context3DWrapMode_Context3DWrapMode_$Impl_$.CLAMP = 0;
openfl_display3D__$Context3DWrapMode_Context3DWrapMode_$Impl_$.CLAMP_U_REPEAT_V = 1;
openfl_display3D__$Context3DWrapMode_Context3DWrapMode_$Impl_$.REPEAT = 2;
openfl_display3D__$Context3DWrapMode_Context3DWrapMode_$Impl_$.REPEAT_U_CLAMP_V = 3;
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_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.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_ColorMatrixFilter.__colorMatrixShader = new openfl_filters__$ColorMatrixFilter_ColorMatrixShader();
openfl_filters_GlowFilter.__glowShader = new openfl_filters__$GlowFilter_GlowShader();
openfl_geom__$Orientation3D_Orientation3D_$Impl_$.AXIS_ANGLE = 0;
openfl_geom__$Orientation3D_Orientation3D_$Impl_$.EULER_ANGLES = 1;
openfl_geom__$Orientation3D_Orientation3D_$Impl_$.QUATERNION = 2;
openfl_media_SoundMixer.MAX_ACTIVE_CHANNELS = 32;
openfl_media_SoundMixer.__soundChannels = [];
openfl_media_SoundMixer.__soundTransform = new openfl_media_SoundTransform();
openfl_net_NetConnection.CONNECT_SUCCESS = "NetConnection.Connect.Success";
openfl_net_SharedObject.defaultObjectEncoding = 10;
openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.FLUSHED = 0;
openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.PENDING = 1;
openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.BINARY = 0;
openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.TEXT = 1;
openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.VARIABLES = 2;
openfl_net_URLRequestDefaults.followRedirects = true;
openfl_net_URLRequestDefaults.idleTimeout = 0;
openfl_net_URLRequestDefaults.manageCookies = false;
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.currentDomain = new openfl_system_SecurityDomain();
openfl_system_System.useCodePage = false;
openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.ADVANCED = 0;
openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.NORMAL = 1;
openfl_text__$FontStyle_FontStyle_$Impl_$.BOLD = 0;
openfl_text__$FontStyle_FontStyle_$Impl_$.BOLD_ITALIC = 1;
openfl_text__$FontStyle_FontStyle_$Impl_$.ITALIC = 2;
openfl_text__$FontStyle_FontStyle_$Impl_$.REGULAR = 3;
openfl_text__$FontType_FontType_$Impl_$.DEVICE = 0;
openfl_text__$FontType_FontType_$Impl_$.EMBEDDED = 1;
openfl_text__$FontType_FontType_$Impl_$.EMBEDDED_CFF = 2;
openfl_text__$GridFitType_GridFitType_$Impl_$.NONE = 0;
openfl_text__$GridFitType_GridFitType_$Impl_$.PIXEL = 1;
openfl_text__$GridFitType_GridFitType_$Impl_$.SUBPIXEL = 2;
openfl_text_TextField.__missingFontWarning = new haxe_ds_StringMap();
openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.CENTER = 0;
openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.LEFT = 1;
openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.NONE = 2;
openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.RIGHT = 3;
openfl_text__$TextFieldType_TextFieldType_$Impl_$.DYNAMIC = 0;
openfl_text__$TextFieldType_TextFieldType_$Impl_$.INPUT = 1;
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.CENTER = 0;
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.END = 1;
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.JUSTIFY = 2;
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.LEFT = 3;
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.RIGHT = 4;
openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.START = 5;
openfl_ui_GameInputDevice.MAX_BUFFER_SIZE = 32000;
openfl_ui_Keyboard.NUMBER_0 = 48;
openfl_ui_Keyboard.NUMBER_1 = 49;
openfl_ui_Keyboard.NUMBER_2 = 50;
openfl_ui_Keyboard.NUMBER_3 = 51;
openfl_ui_Keyboard.NUMBER_4 = 52;
openfl_ui_Keyboard.NUMBER_5 = 53;
openfl_ui_Keyboard.NUMBER_6 = 54;
openfl_ui_Keyboard.NUMBER_7 = 55;
openfl_ui_Keyboard.NUMBER_8 = 56;
openfl_ui_Keyboard.NUMBER_9 = 57;
openfl_ui_Keyboard.A = 65;
openfl_ui_Keyboard.B = 66;
openfl_ui_Keyboard.C = 67;
openfl_ui_Keyboard.D = 68;
openfl_ui_Keyboard.E = 69;
openfl_ui_Keyboard.F = 70;
openfl_ui_Keyboard.G = 71;
openfl_ui_Keyboard.H = 72;
openfl_ui_Keyboard.I = 73;
openfl_ui_Keyboard.J = 74;
openfl_ui_Keyboard.K = 75;
openfl_ui_Keyboard.L = 76;
openfl_ui_Keyboard.M = 77;
openfl_ui_Keyboard.N = 78;
openfl_ui_Keyboard.O = 79;
openfl_ui_Keyboard.P = 80;
openfl_ui_Keyboard.Q = 81;
openfl_ui_Keyboard.R = 82;
openfl_ui_Keyboard.S = 83;
openfl_ui_Keyboard.T = 84;
openfl_ui_Keyboard.U = 85;
openfl_ui_Keyboard.V = 86;
openfl_ui_Keyboard.W = 87;
openfl_ui_Keyboard.X = 88;
openfl_ui_Keyboard.Y = 89;
openfl_ui_Keyboard.Z = 90;
openfl_ui_Keyboard.NUMPAD_0 = 96;
openfl_ui_Keyboard.NUMPAD_1 = 97;
openfl_ui_Keyboard.NUMPAD_2 = 98;
openfl_ui_Keyboard.NUMPAD_3 = 99;
openfl_ui_Keyboard.NUMPAD_4 = 100;
openfl_ui_Keyboard.NUMPAD_5 = 101;
openfl_ui_Keyboard.NUMPAD_6 = 102;
openfl_ui_Keyboard.NUMPAD_7 = 103;
openfl_ui_Keyboard.NUMPAD_8 = 104;
openfl_ui_Keyboard.NUMPAD_9 = 105;
openfl_ui_Keyboard.NUMPAD_MULTIPLY = 106;
openfl_ui_Keyboard.NUMPAD_ADD = 107;
openfl_ui_Keyboard.NUMPAD_ENTER = 108;
openfl_ui_Keyboard.NUMPAD_SUBTRACT = 109;
openfl_ui_Keyboard.NUMPAD_DECIMAL = 110;
openfl_ui_Keyboard.NUMPAD_DIVIDE = 111;
openfl_ui_Keyboard.F1 = 112;
openfl_ui_Keyboard.F2 = 113;
openfl_ui_Keyboard.F3 = 114;
openfl_ui_Keyboard.F4 = 115;
openfl_ui_Keyboard.F5 = 116;
openfl_ui_Keyboard.F6 = 117;
openfl_ui_Keyboard.F7 = 118;
openfl_ui_Keyboard.F8 = 119;
openfl_ui_Keyboard.F9 = 120;
openfl_ui_Keyboard.F10 = 121;
openfl_ui_Keyboard.F11 = 122;
openfl_ui_Keyboard.F12 = 123;
openfl_ui_Keyboard.F13 = 124;
openfl_ui_Keyboard.F14 = 125;
openfl_ui_Keyboard.F15 = 126;
openfl_ui_Keyboard.BACKSPACE = 8;
openfl_ui_Keyboard.TAB = 9;
openfl_ui_Keyboard.ALTERNATE = 18;
openfl_ui_Keyboard.ENTER = 13;
openfl_ui_Keyboard.COMMAND = 15;
openfl_ui_Keyboard.SHIFT = 16;
openfl_ui_Keyboard.CONTROL = 17;
openfl_ui_Keyboard.BREAK = 19;
openfl_ui_Keyboard.CAPS_LOCK = 20;
openfl_ui_Keyboard.NUMPAD = 21;
openfl_ui_Keyboard.ESCAPE = 27;
openfl_ui_Keyboard.SPACE = 32;
openfl_ui_Keyboard.PAGE_UP = 33;
openfl_ui_Keyboard.PAGE_DOWN = 34;
openfl_ui_Keyboard.END = 35;
openfl_ui_Keyboard.HOME = 36;
openfl_ui_Keyboard.LEFT = 37;
openfl_ui_Keyboard.RIGHT = 39;
openfl_ui_Keyboard.UP = 38;
openfl_ui_Keyboard.DOWN = 40;
openfl_ui_Keyboard.INSERT = 45;
openfl_ui_Keyboard.DELETE = 46;
openfl_ui_Keyboard.NUMLOCK = 144;
openfl_ui_Keyboard.SEMICOLON = 186;
openfl_ui_Keyboard.EQUAL = 187;
openfl_ui_Keyboard.COMMA = 188;
openfl_ui_Keyboard.MINUS = 189;
openfl_ui_Keyboard.PERIOD = 190;
openfl_ui_Keyboard.SLASH = 191;
openfl_ui_Keyboard.BACKQUOTE = 192;
openfl_ui_Keyboard.LEFTBRACKET = 219;
openfl_ui_Keyboard.BACKSLASH = 220;
openfl_ui_Keyboard.RIGHTBRACKET = 221;
openfl_ui_Keyboard.QUOTE = 222;
openfl_ui_Mouse.supportsCursor = true;
openfl_ui_Mouse.supportsNativeCursor = true;
openfl_ui_Mouse.__cursor = "auto";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.ARROW = "arrow";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.AUTO = "auto";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.BUTTON = "button";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.HAND = "hand";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.IBEAM = "ibeam";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__CROSSHAIR = "crosshair";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__CUSTOM = "custom";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__MOVE = "move";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__RESIZE_NESW = "resize_nesw";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__RESIZE_NS = "resize_ns";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__RESIZE_NWSE = "resize_nwse";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__RESIZE_WE = "resize_we";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__WAIT = "wait";
openfl_ui__$MouseCursor_MouseCursor_$Impl_$.__WAIT_ARROW = "waitarrow";
openfl_ui__$MultitouchInputMode_MultitouchInputMode_$Impl_$.GESTURE = 0;
openfl_ui__$MultitouchInputMode_MultitouchInputMode_$Impl_$.NONE = 1;
openfl_ui__$MultitouchInputMode_MultitouchInputMode_$Impl_$.TOUCH_POINT = 2;
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_Assets.cache = new openfl_utils_AssetCache();
openfl_utils_Assets.dispatcher = new openfl_events_EventDispatcher();
openfl_utils__$ByteArray_ByteArray_$Impl_$.__bytePointer = (function($this) {
var $r;
var this1 = new lime_utils_BytePointerData(null,0);
$r = this1;
return $r;
}(this));
openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.DEFLATE = 0;
openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.LZMA = 1;
openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.ZLIB = 2;
openfl_utils__$Endian_Endian_$Impl_$.BIG_ENDIAN = 0;
openfl_utils__$Endian_Endian_$Impl_$.LITTLE_ENDIAN = 1;
ApplicationMain.main();
})(typeof 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);