// Generated by Construct 2, the HTML5 game and app creator :: http://www.scirra.com
window["c2ejecta"] = true;
(function() {
var cr = {};
cr.plugins_ = {};
cr.behaviors = {};
if (typeof Object.getPrototypeOf !== "function")
{
	if (typeof "test".__proto__ === "object")
	{
		Object.getPrototypeOf = function(object) {
			return object.__proto__;
		};
	}
	else
	{
		Object.getPrototypeOf = function(object) {
			return object.constructor.prototype;
		};
	}
}
(function(){
	cr.logexport = function (msg)
	{
		if (window.console && window.console.log)
			window.console.log(msg);
	};
	cr.seal = function(x)
	{
		return x;
	};
	cr.freeze = function(x)
	{
		return x;
	};
	cr.is_undefined = function (x)
	{
		return typeof x === "undefined";
	};
	cr.is_number = function (x)
	{
		return typeof x === "number";
	};
	cr.is_string = function (x)
	{
		return typeof x === "string";
	};
	cr.isPOT = function (x)
	{
		return x > 0 && ((x - 1) & x) === 0;
	};
	cr.nextHighestPowerOfTwo = function(x) {
		--x;
		for (var i = 1; i < 32; i <<= 1) {
			x = x | x >> i;
		}
		return x + 1;
	}
	cr.abs = function (x)
	{
		return (x < 0 ? -x : x);
	};
	cr.max = function (a, b)
	{
		return (a > b ? a : b);
	};
	cr.min = function (a, b)
	{
		return (a < b ? a : b);
	};
	cr.PI = Math.PI;
	cr.round = function (x)
	{
		return (x + 0.5) | 0;
	};
	cr.floor = function (x)
	{
		if (x >= 0)
			return x | 0;
		else
			return (x | 0) - 1;		// correctly round down when negative
	};
	cr.ceil = function (x)
	{
		var f = x | 0;
		return (f === x ? f : f + 1);
	};
	function Vector2(x, y)
	{
		this.x = x;
		this.y = y;
		cr.seal(this);
	};
	Vector2.prototype.offset = function (px, py)
	{
		this.x += px;
		this.y += py;
		return this;
	};
	Vector2.prototype.mul = function (px, py)
	{
		this.x *= px;
		this.y *= py;
		return this;
	};
	cr.vector2 = Vector2;
	cr.segments_intersect = function(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y)
	{
		var max_ax, min_ax, max_ay, min_ay, max_bx, min_bx, max_by, min_by;
		if (a1x < a2x)
		{
			min_ax = a1x;
			max_ax = a2x;
		}
		else
		{
			min_ax = a2x;
			max_ax = a1x;
		}
		if (b1x < b2x)
		{
			min_bx = b1x;
			max_bx = b2x;
		}
		else
		{
			min_bx = b2x;
			max_bx = b1x;
		}
		if (max_ax < min_bx || min_ax > max_bx)
			return false;
		if (a1y < a2y)
		{
			min_ay = a1y;
			max_ay = a2y;
		}
		else
		{
			min_ay = a2y;
			max_ay = a1y;
		}
		if (b1y < b2y)
		{
			min_by = b1y;
			max_by = b2y;
		}
		else
		{
			min_by = b2y;
			max_by = b1y;
		}
		if (max_ay < min_by || min_ay > max_by)
			return false;
		var dpx = b1x - a1x + b2x - a2x;
		var dpy = b1y - a1y + b2y - a2y;
		var qax = a2x - a1x;
		var qay = a2y - a1y;
		var qbx = b2x - b1x;
		var qby = b2y - b1y;
		var d = cr.abs(qay * qbx - qby * qax);
		var la = qbx * dpy - qby * dpx;
		if (cr.abs(la) > d)
			return false;
		var lb = qax * dpy - qay * dpx;
		return cr.abs(lb) <= d;
	};
	function Rect(left, top, right, bottom)
	{
		this.set(left, top, right, bottom);
		cr.seal(this);
	};
	Rect.prototype.set = function (left, top, right, bottom)
	{
		this.left = left;
		this.top = top;
		this.right = right;
		this.bottom = bottom;
	};
	Rect.prototype.copy = function (r)
	{
		this.left = r.left;
		this.top = r.top;
		this.right = r.right;
		this.bottom = r.bottom;
	};
	Rect.prototype.width = function ()
	{
		return this.right - this.left;
	};
	Rect.prototype.height = function ()
	{
		return this.bottom - this.top;
	};
	Rect.prototype.offset = function (px, py)
	{
		this.left += px;
		this.top += py;
		this.right += px;
		this.bottom += py;
		return this;
	};
	Rect.prototype.normalize = function ()
	{
		var temp = 0;
		if (this.left > this.right)
		{
			temp = this.left;
			this.left = this.right;
			this.right = temp;
		}
		if (this.top > this.bottom)
		{
			temp = this.top;
			this.top = this.bottom;
			this.bottom = temp;
		}
	};
	Rect.prototype.intersects_rect = function (rc)
	{
		return !(rc.right < this.left || rc.bottom < this.top || rc.left > this.right || rc.top > this.bottom);
	};
	Rect.prototype.intersects_rect_off = function (rc, ox, oy)
	{
		return !(rc.right + ox < this.left || rc.bottom + oy < this.top || rc.left + ox > this.right || rc.top + oy > this.bottom);
	};
	Rect.prototype.contains_pt = function (x, y)
	{
		return (x >= this.left && x <= this.right) && (y >= this.top && y <= this.bottom);
	};
	Rect.prototype.equals = function (r)
	{
		return this.left === r.left && this.top === r.top && this.right === r.right && this.bottom === r.bottom;
	};
	cr.rect = Rect;
	function Quad()
	{
		this.tlx = 0;
		this.tly = 0;
		this.trx = 0;
		this.try_ = 0;	// is a keyword otherwise!
		this.brx = 0;
		this.bry = 0;
		this.blx = 0;
		this.bly = 0;
		cr.seal(this);
	};
	Quad.prototype.set_from_rect = function (rc)
	{
		this.tlx = rc.left;
		this.tly = rc.top;
		this.trx = rc.right;
		this.try_ = rc.top;
		this.brx = rc.right;
		this.bry = rc.bottom;
		this.blx = rc.left;
		this.bly = rc.bottom;
	};
	Quad.prototype.set_from_rotated_rect = function (rc, a)
	{
		if (a === 0)
		{
			this.set_from_rect(rc);
		}
		else
		{
			var sin_a = Math.sin(a);
			var cos_a = Math.cos(a);
			var left_sin_a = rc.left * sin_a;
			var top_sin_a = rc.top * sin_a;
			var right_sin_a = rc.right * sin_a;
			var bottom_sin_a = rc.bottom * sin_a;
			var left_cos_a = rc.left * cos_a;
			var top_cos_a = rc.top * cos_a;
			var right_cos_a = rc.right * cos_a;
			var bottom_cos_a = rc.bottom * cos_a;
			this.tlx = left_cos_a - top_sin_a;
			this.tly = top_cos_a + left_sin_a;
			this.trx = right_cos_a - top_sin_a;
			this.try_ = top_cos_a + right_sin_a;
			this.brx = right_cos_a - bottom_sin_a;
			this.bry = bottom_cos_a + right_sin_a;
			this.blx = left_cos_a - bottom_sin_a;
			this.bly = bottom_cos_a + left_sin_a;
		}
	};
	Quad.prototype.offset = function (px, py)
	{
		this.tlx += px;
		this.tly += py;
		this.trx += px;
		this.try_ += py;
		this.brx += px;
		this.bry += py;
		this.blx += px;
		this.bly += py;
		return this;
	};
	var minresult = 0;
	var maxresult = 0;
	function minmax4(a, b, c, d)
	{
		if (a < b)
		{
			if (c < d)
			{
				if (a < c)
					minresult = a;
				else
					minresult = c;
				if (b > d)
					maxresult = b;
				else
					maxresult = d;
			}
			else
			{
				if (a < d)
					minresult = a;
				else
					minresult = d;
				if (b > c)
					maxresult = b;
				else
					maxresult = c;
			}
		}
		else
		{
			if (c < d)
			{
				if (b < c)
					minresult = b;
				else
					minresult = c;
				if (a > d)
					maxresult = a;
				else
					maxresult = d;
			}
			else
			{
				if (b < d)
					minresult = b;
				else
					minresult = d;
				if (a > c)
					maxresult = a;
				else
					maxresult = c;
			}
		}
	};
	Quad.prototype.bounding_box = function (rc)
	{
		minmax4(this.tlx, this.trx, this.brx, this.blx);
		rc.left = minresult;
		rc.right = maxresult;
		minmax4(this.tly, this.try_, this.bry, this.bly);
		rc.top = minresult;
		rc.bottom = maxresult;
	};
	Quad.prototype.contains_pt = function (x, y)
	{
		var v0x = this.trx - this.tlx;
		var v0y = this.try_ - this.tly;
		var v1x = this.brx - this.tlx;
		var v1y = this.bry - this.tly;
		var v2x = x - this.tlx;
		var v2y = y - this.tly;
		var dot00 = v0x * v0x + v0y * v0y
		var dot01 = v0x * v1x + v0y * v1y
		var dot02 = v0x * v2x + v0y * v2y
		var dot11 = v1x * v1x + v1y * v1y
		var dot12 = v1x * v2x + v1y * v2y
		var invDenom = 1.0 / (dot00 * dot11 - dot01 * dot01);
		var u = (dot11 * dot02 - dot01 * dot12) * invDenom;
		var v = (dot00 * dot12 - dot01 * dot02) * invDenom;
		if ((u >= 0.0) && (v > 0.0) && (u + v < 1))
			return true;
		v0x = this.blx - this.tlx;
		v0y = this.bly - this.tly;
		var dot00 = v0x * v0x + v0y * v0y
		var dot01 = v0x * v1x + v0y * v1y
		var dot02 = v0x * v2x + v0y * v2y
		invDenom = 1.0 / (dot00 * dot11 - dot01 * dot01);
		u = (dot11 * dot02 - dot01 * dot12) * invDenom;
		v = (dot00 * dot12 - dot01 * dot02) * invDenom;
		return (u >= 0.0) && (v > 0.0) && (u + v < 1);
	};
	Quad.prototype.at = function (i, xory)
	{
		if (xory)
		{
			switch (i)
			{
				case 0: return this.tlx;
				case 1: return this.trx;
				case 2: return this.brx;
				case 3: return this.blx;
				case 4: return this.tlx;
				default: return this.tlx;
			}
		}
		else
		{
			switch (i)
			{
				case 0: return this.tly;
				case 1: return this.try_;
				case 2: return this.bry;
				case 3: return this.bly;
				case 4: return this.tly;
				default: return this.tly;
			}
		}
	};
	Quad.prototype.midX = function ()
	{
		return (this.tlx + this.trx  + this.brx + this.blx) / 4;
	};
	Quad.prototype.midY = function ()
	{
		return (this.tly + this.try_ + this.bry + this.bly) / 4;
	};
	Quad.prototype.intersects_segment = function (x1, y1, x2, y2)
	{
		if (this.contains_pt(x1, y1) || this.contains_pt(x2, y2))
			return true;
		var a1x, a1y, a2x, a2y;
		var i;
		for (i = 0; i < 4; i++)
		{
			a1x = this.at(i, true);
			a1y = this.at(i, false);
			a2x = this.at(i + 1, true);
			a2y = this.at(i + 1, false);
			if (cr.segments_intersect(x1, y1, x2, y2, a1x, a1y, a2x, a2y))
				return true;
		}
		return false;
	};
	Quad.prototype.intersects_quad = function (rhs)
	{
		var midx = rhs.midX();
		var midy = rhs.midY();
		if (this.contains_pt(midx, midy))
			return true;
		midx = this.midX();
		midy = this.midY();
		if (rhs.contains_pt(midx, midy))
			return true;
		var a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y;
		var i, j;
		for (i = 0; i < 4; i++)
		{
			for (j = 0; j < 4; j++)
			{
				a1x = this.at(i, true);
				a1y = this.at(i, false);
				a2x = this.at(i + 1, true);
				a2y = this.at(i + 1, false);
				b1x = rhs.at(j, true);
				b1y = rhs.at(j, false);
				b2x = rhs.at(j + 1, true);
				b2y = rhs.at(j + 1, false);
				if (cr.segments_intersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y))
					return true;
			}
		}
		return false;
	};
	cr.quad = Quad;
	cr.RGB = function (red, green, blue)
	{
		return Math.max(Math.min(red, 255), 0)
			 | (Math.max(Math.min(green, 255), 0) << 8)
			 | (Math.max(Math.min(blue, 255), 0) << 16);
	};
	cr.GetRValue = function (rgb)
	{
		return rgb & 0xFF;
	};
	cr.GetGValue = function (rgb)
	{
		return (rgb & 0xFF00) >> 8;
	};
	cr.GetBValue = function (rgb)
	{
		return (rgb & 0xFF0000) >> 16;
	};
	cr.shallowCopy = function (a, b, allowOverwrite)
	{
		var attr;
		for (attr in b)
		{
			if (b.hasOwnProperty(attr))
			{
;
				a[attr] = b[attr];
			}
		}
		return a;
	};
	cr.arrayRemove = function (arr, index)
	{
		var i, len;
		index = cr.floor(index);
		if (index < 0 || index >= arr.length)
			return;							// index out of bounds
		if (index === 0)					// removing first item
			arr.shift();
		else if (index === arr.length - 1)	// removing last item
			arr.pop();
		else
		{
			for (i = index, len = arr.length - 1; i < len; i++)
				arr[i] = arr[i + 1];
			arr.length = len;
		}
	};
	cr.shallowAssignArray = function (dest, src)
	{
		dest.length = src.length;
		var i, len;
		for (i = 0, len = src.length; i < len; i++)
			dest[i] = src[i];
	};
	cr.appendArray = function (a, b)
	{
		a.push.apply(a, b);
	};
	cr.arrayFindRemove = function (arr, item)
	{
		var index = arr.indexOf(item);
		if (index !== -1)
			cr.arrayRemove(arr, index);
	};
	cr.clamp = function(x, a, b)
	{
		if (x < a)
			return a;
		else if (x > b)
			return b;
		else
			return x;
	};
	cr.to_radians = function(x)
	{
		return x / (180.0 / cr.PI);
	};
	cr.to_degrees = function(x)
	{
		return x * (180.0 / cr.PI);
	};
	cr.clamp_angle_degrees = function (a)
	{
		a %= 360;       // now in (-360, 360) range
		if (a < 0)
			a += 360;   // now in [0, 360) range
		return a;
	};
	cr.clamp_angle = function (a)
	{
		a %= 2 * cr.PI;       // now in (-2pi, 2pi) range
		if (a < 0)
			a += 2 * cr.PI;   // now in [0, 2pi) range
		return a;
	};
	cr.to_clamped_degrees = function (x)
	{
		return cr.clamp_angle_degrees(cr.to_degrees(x));
	};
	cr.to_clamped_radians = function (x)
	{
		return cr.clamp_angle(cr.to_radians(x));
	};
	cr.angleTo = function(x1, y1, x2, y2)
	{
		var dx = x2 - x1;
        var dy = y2 - y1;
		return Math.atan2(dy, dx);
	};
	cr.angleDiff = function (a1, a2)
	{
		if (a1 === a2)
			return 0;
		var s1 = Math.sin(a1);
		var c1 = Math.cos(a1);
		var s2 = Math.sin(a2);
		var c2 = Math.cos(a2);
		var n = s1 * s2 + c1 * c2;
		if (n >= 1)
			return 0;
		if (n <= -1)
			return cr.PI;
		return Math.acos(n);
	};
	cr.angleRotate = function (start, end, step)
	{
		var ss = Math.sin(start);
		var cs = Math.cos(start);
		var se = Math.sin(end);
		var ce = Math.cos(end);
		if (Math.acos(ss * se + cs * ce) > step)
		{
			if (cs * se - ss * ce > 0)
				return cr.clamp_angle(start + step);
			else
				return cr.clamp_angle(start - step);
		}
		else
			return cr.clamp_angle(end);
	};
	cr.angleClockwise = function (a1, a2)
	{
		var s1 = Math.sin(a1);
		var c1 = Math.cos(a1);
		var s2 = Math.sin(a2);
		var c2 = Math.cos(a2);
		return c1 * s2 - s1 * c2 <= 0;
	};
	cr.rotatePtAround = function (px, py, a, ox, oy, getx)
	{
		if (a === 0)
			return getx ? px : py;
		var sin_a = Math.sin(a);
		var cos_a = Math.cos(a);
		px -= ox;
		py -= oy;
		var left_sin_a = px * sin_a;
		var top_sin_a = py * sin_a;
		var left_cos_a = px * cos_a;
		var top_cos_a = py * cos_a;
		px = left_cos_a - top_sin_a;
		py = top_cos_a + left_sin_a;
		px += ox;
		py += oy;
		return getx ? px : py;
	}
	cr.distanceTo = function(x1, y1, x2, y2)
	{
		var dx = x2 - x1;
        var dy = y2 - y1;
		return Math.sqrt(dx*dx + dy*dy);
	};
	cr.xor = function (x, y)
	{
		return !x !== !y;
	};
	cr.lerp = function (a, b, x)
	{
		return a + (b - a) * x;
	};
	cr.unlerp = function (a, b, c)
	{
		if (a === b)
			return 0;		// avoid divide by 0
		return (c - a) / (b - a);
	};
	cr.anglelerp = function (a, b, x)
	{
		var diff = cr.angleDiff(a, b);
		if (cr.angleClockwise(b, a))
		{
			return a + diff * x;
		}
		else
		{
			return a - diff * x;
		}
	};
	cr.hasAnyOwnProperty = function (o)
	{
		var p;
		for (p in o)
		{
			if (o.hasOwnProperty(p))
				return true;
		}
		return false;
	};
	cr.wipe = function (obj)
	{
		var p;
		for (p in obj)
		{
			if (obj.hasOwnProperty(p))
				delete obj[p];
		}
	};
	var startup_time = +(new Date());
	cr.performance_now = function()
	{
		if (typeof window["performance"] !== "undefined")
		{
			var winperf = window["performance"];
			if (typeof winperf.now !== "undefined")
				return winperf.now();
			else if (typeof winperf["webkitNow"] !== "undefined")
				return winperf["webkitNow"]();
			else if (typeof winperf["mozNow"] !== "undefined")
				return winperf["mozNow"]();
			else if (typeof winperf["msNow"] !== "undefined")
				return winperf["msNow"]();
		}
		return Date.now() - startup_time;
	};
	var supports_set = ((typeof window === "undefined" || !window["c2ejecta"]) && (typeof Set !== "undefined" && typeof Set.prototype["forEach"] !== "undefined"));
	function ObjectSet_()
	{
		this.s = null;
		this.items = null;			// lazy allocated (hopefully results in better GC performance)
		this.item_count = 0;
		if (supports_set)
		{
			this.s = new Set();
		}
		this.values_cache = [];
		this.cache_valid = true;
		cr.seal(this);
	};
	ObjectSet_.prototype.contains = function (x)
	{
		if (this.isEmpty())
			return false;
		if (supports_set)
			return this.s["has"](x);
		else
			return (this.items && this.items.hasOwnProperty(x));
	};
	ObjectSet_.prototype.add = function (x)
	{
		if (supports_set)
		{
			if (!this.s["has"](x))
			{
				this.s["add"](x);
				this.cache_valid = false;
			}
		}
		else
		{
			var str = x.toString();
			var items = this.items;
			if (!items)
			{
				this.items = {};
				this.items[str] = x;
				this.item_count = 1;
				this.cache_valid = false;
			}
			else if (!items.hasOwnProperty(str))
			{
				items[str] = x;
				this.item_count++;
				this.cache_valid = false;
			}
		}
	};
	ObjectSet_.prototype.remove = function (x)
	{
		if (this.isEmpty())
			return;
		if (supports_set)
		{
			if (this.s["has"](x))
			{
				this.s["delete"](x);
				this.cache_valid = false;
			}
		}
		else if (this.items)
		{
			var str = x.toString();
			var items = this.items;
			if (items.hasOwnProperty(str))
			{
				delete items[str];
				this.item_count--;
				this.cache_valid = false;
			}
		}
	};
	ObjectSet_.prototype.clear = function (/*wipe_*/)
	{
		if (this.isEmpty())
			return;
		if (supports_set)
		{
			this.s["clear"]();			// best!
		}
		else
		{
				this.items = null;		// creates garbage; will lazy allocate on next add()
			this.item_count = 0;
		}
		this.values_cache.length = 0;
		this.cache_valid = true;
	};
	ObjectSet_.prototype.isEmpty = function ()
	{
		return this.count() === 0;
	};
	ObjectSet_.prototype.count = function ()
	{
		if (supports_set)
			return this.s["size"];
		else
			return this.item_count;
	};
	var current_arr = null;
	var current_index = 0;
	function set_append_to_arr(x)
	{
		current_arr[current_index++] = x;
	};
	ObjectSet_.prototype.update_cache = function ()
	{
		if (this.cache_valid)
			return;
		if (supports_set)
		{
			this.values_cache.length = this.s["size"];
			current_arr = this.values_cache;
			current_index = 0;
			this.s["forEach"](set_append_to_arr);
;
			current_arr = null;
			current_index = 0;
		}
		else
		{
			var values_cache = this.values_cache;
			values_cache.length = this.item_count;
			var p, n = 0, items = this.items;
			if (items)
			{
				for (p in items)
				{
					if (items.hasOwnProperty(p))
						values_cache[n++] = items[p];
				}
			}
;
		}
		this.cache_valid = true;
	};
	ObjectSet_.prototype.valuesRef = function ()
	{
		this.update_cache();
		return this.values_cache;
	};
	cr.ObjectSet = ObjectSet_;
	function KahanAdder_()
	{
		this.c = 0;
        this.y = 0;
        this.t = 0;
        this.sum = 0;
		cr.seal(this);
	};
	KahanAdder_.prototype.add = function (v)
	{
		this.y = v - this.c;
	    this.t = this.sum + this.y;
	    this.c = (this.t - this.sum) - this.y;
	    this.sum = this.t;
	};
    KahanAdder_.prototype.reset = function ()
    {
        this.c = 0;
        this.y = 0;
        this.t = 0;
        this.sum = 0;
    };
	cr.KahanAdder = KahanAdder_;
	cr.regexp_escape = function(text)
	{
		return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
	};
	function CollisionPoly_(pts_array_)
	{
		this.pts_cache = [];
		this.bboxLeft = 0;
		this.bboxTop = 0;
		this.bboxRight = 0;
		this.bboxBottom = 0;
		this.convexpolys = null;		// for physics behavior to cache separated polys
		this.set_pts(pts_array_);
		cr.seal(this);
	};
	CollisionPoly_.prototype.set_pts = function(pts_array_)
	{
		this.pts_array = pts_array_;
		this.pts_count = pts_array_.length / 2;			// x, y, x, y... in array
		this.pts_cache.length = pts_array_.length;
		this.cache_width = -1;
		this.cache_height = -1;
		this.cache_angle = 0;
	};
	CollisionPoly_.prototype.is_empty = function()
	{
		return !this.pts_array.length;
	};
	CollisionPoly_.prototype.update_bbox = function ()
	{
		var myptscache = this.pts_cache;
		var bboxLeft_ = myptscache[0];
		var bboxRight_ = bboxLeft_;
		var bboxTop_ = myptscache[1];
		var bboxBottom_ = bboxTop_;
		var x, y, i = 1, i2, len = this.pts_count;
		for ( ; i < len; ++i)
		{
			i2 = i*2;
			x = myptscache[i2];
			y = myptscache[i2+1];
			if (x < bboxLeft_)
				bboxLeft_ = x;
			if (x > bboxRight_)
				bboxRight_ = x;
			if (y < bboxTop_)
				bboxTop_ = y;
			if (y > bboxBottom_)
				bboxBottom_ = y;
		}
		this.bboxLeft = bboxLeft_;
		this.bboxRight = bboxRight_;
		this.bboxTop = bboxTop_;
		this.bboxBottom = bboxBottom_;
	};
	CollisionPoly_.prototype.set_from_rect = function(rc, offx, offy)
	{
		this.pts_cache.length = 8;
		this.pts_count = 4;
		var myptscache = this.pts_cache;
		myptscache[0] = rc.left - offx;
		myptscache[1] = rc.top - offy;
		myptscache[2] = rc.right - offx;
		myptscache[3] = rc.top - offy;
		myptscache[4] = rc.right - offx;
		myptscache[5] = rc.bottom - offy;
		myptscache[6] = rc.left - offx;
		myptscache[7] = rc.bottom - offy;
		this.cache_width = rc.right - rc.left;
		this.cache_height = rc.bottom - rc.top;
		this.update_bbox();
	};
	CollisionPoly_.prototype.set_from_quad = function(q, offx, offy, w, h)
	{
		this.pts_cache.length = 8;
		this.pts_count = 4;
		var myptscache = this.pts_cache;
		myptscache[0] = q.tlx - offx;
		myptscache[1] = q.tly - offy;
		myptscache[2] = q.trx - offx;
		myptscache[3] = q.try_ - offy;
		myptscache[4] = q.brx - offx;
		myptscache[5] = q.bry - offy;
		myptscache[6] = q.blx - offx;
		myptscache[7] = q.bly - offy;
		this.cache_width = w;
		this.cache_height = h;
		this.update_bbox();
	};
	CollisionPoly_.prototype.set_from_poly = function (r)
	{
		this.pts_count = r.pts_count;
		cr.shallowAssignArray(this.pts_cache, r.pts_cache);
		this.bboxLeft = r.bboxLeft;
		this.bboxTop - r.bboxTop;
		this.bboxRight = r.bboxRight;
		this.bboxBottom = r.bboxBottom;
	};
	CollisionPoly_.prototype.cache_poly = function(w, h, a)
	{
		if (this.cache_width === w && this.cache_height === h && this.cache_angle === a)
			return;		// cache up-to-date
		this.cache_width = w;
		this.cache_height = h;
		this.cache_angle = a;
		var i, i2, i21, len, x, y;
		var sina = 0;
		var cosa = 1;
		var myptsarray = this.pts_array;
		var myptscache = this.pts_cache;
		if (a !== 0)
		{
			sina = Math.sin(a);
			cosa = Math.cos(a);
		}
		for (i = 0, len = this.pts_count; i < len; i++)
		{
			i2 = i*2;
			i21 = i2+1;
			x = myptsarray[i2] * w;
			y = myptsarray[i21] * h;
			myptscache[i2] = (x * cosa) - (y * sina);
			myptscache[i21] = (y * cosa) + (x * sina);
		}
		this.update_bbox();
	};
	CollisionPoly_.prototype.contains_pt = function (a2x, a2y)
	{
		var myptscache = this.pts_cache;
		if (a2x === myptscache[0] && a2y === myptscache[1])
			return true;
		var i, i2, imod, len = this.pts_count;
		var a1x = this.bboxLeft - 110;
		var a1y = this.bboxTop - 101;
		var a3x = this.bboxRight + 131
		var a3y = this.bboxBottom + 120;
		var b1x, b1y, b2x, b2y;
		var count1 = 0, count2 = 0;
		for (i = 0; i < len; i++)
		{
			i2 = i*2;
			imod = ((i+1)%len)*2;
			b1x = myptscache[i2];
			b1y = myptscache[i2+1];
			b2x = myptscache[imod];
			b2y = myptscache[imod+1];
			if (cr.segments_intersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y))
				count1++;
			if (cr.segments_intersect(a3x, a3y, a2x, a2y, b1x, b1y, b2x, b2y))
				count2++;
		}
		return (count1 % 2 === 1) || (count2 % 2 === 1);
	};
	CollisionPoly_.prototype.intersects_poly = function (rhs, offx, offy)
	{
		var rhspts = rhs.pts_cache;
		var mypts = this.pts_cache;
		if (this.contains_pt(rhspts[0] + offx, rhspts[1] + offy))
			return true;
		if (rhs.contains_pt(mypts[0] - offx, mypts[1] - offy))
			return true;
		var i, i2, imod, leni, j, j2, jmod, lenj;
		var a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y;
		for (i = 0, leni = this.pts_count; i < leni; i++)
		{
			i2 = i*2;
			imod = ((i+1)%leni)*2;
			a1x = mypts[i2];
			a1y = mypts[i2+1];
			a2x = mypts[imod];
			a2y = mypts[imod+1];
			for (j = 0, lenj = rhs.pts_count; j < lenj; j++)
			{
				j2 = j*2;
				jmod = ((j+1)%lenj)*2;
				b1x = rhspts[j2] + offx;
				b1y = rhspts[j2+1] + offy;
				b2x = rhspts[jmod] + offx;
				b2y = rhspts[jmod+1] + offy;
				if (cr.segments_intersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y))
					return true;
			}
		}
		return false;
	};
	CollisionPoly_.prototype.intersects_segment = function (offx, offy, x1, y1, x2, y2)
	{
		var mypts = this.pts_cache;
		if (this.contains_pt(x1 - offx, y1 - offy))
			return true;
		var i, leni, i2, imod;
		var a1x, a1y, a2x, a2y;
		for (i = 0, leni = this.pts_count; i < leni; i++)
		{
			i2 = i*2;
			imod = ((i+1)%leni)*2;
			a1x = mypts[i2] + offx;
			a1y = mypts[i2+1] + offy;
			a2x = mypts[imod] + offx;
			a2y = mypts[imod+1] + offy;
			if (cr.segments_intersect(x1, y1, x2, y2, a1x, a1y, a2x, a2y))
				return true;
		}
		return false;
	};
	CollisionPoly_.prototype.mirror = function (px)
	{
		var i, leni, i2;
		for (i = 0, leni = this.pts_count; i < leni; ++i)
		{
			i2 = i*2;
			this.pts_cache[i2] = px * 2 - this.pts_cache[i2];
		}
	};
	CollisionPoly_.prototype.flip = function (py)
	{
		var i, leni, i21;
		for (i = 0, leni = this.pts_count; i < leni; ++i)
		{
			i21 = i*2+1;
			this.pts_cache[i21] = py * 2 - this.pts_cache[i21];
		}
	};
	CollisionPoly_.prototype.diag = function ()
	{
		var i, leni, i2, i21, temp;
		for (i = 0, leni = this.pts_count; i < leni; ++i)
		{
			i2 = i*2;
			i21 = i2+1;
			temp = this.pts_cache[i2];
			this.pts_cache[i2] = this.pts_cache[i21];
			this.pts_cache[i21] = temp;
		}
	};
	cr.CollisionPoly = CollisionPoly_;
	function SparseGrid_(cellwidth_, cellheight_)
	{
		this.cellwidth = cellwidth_;
		this.cellheight = cellheight_;
		this.cells = {};
	};
	SparseGrid_.prototype.totalCellCount = 0;
	SparseGrid_.prototype.getCell = function (x_, y_, create_if_missing)
	{
		var ret;
		var col = this.cells[x_];
		if (!col)
		{
			if (create_if_missing)
			{
				ret = allocGridCell(this, x_, y_);
				this.cells[x_] = {};
				this.cells[x_][y_] = ret;
				return ret;
			}
			else
				return null;
		}
		ret = col[y_];
		if (ret)
			return ret;
		else if (create_if_missing)
		{
			ret = allocGridCell(this, x_, y_);
			this.cells[x_][y_] = ret;
			return ret;
		}
		else
			return null;
	};
	SparseGrid_.prototype.XToCell = function (x_)
	{
		return cr.floor(x_ / this.cellwidth);
	};
	SparseGrid_.prototype.YToCell = function (y_)
	{
		return cr.floor(y_ / this.cellheight);
	};
	SparseGrid_.prototype.update = function (inst, oldrange, newrange)
	{
		var x, lenx, y, leny, cell;
		if (oldrange)
		{
			for (x = oldrange.left, lenx = oldrange.right; x <= lenx; ++x)
			{
				for (y = oldrange.top, leny = oldrange.bottom; y <= leny; ++y)
				{
					if (newrange && newrange.contains_pt(x, y))
						continue;	// is still in this cell
					cell = this.getCell(x, y, false);	// don't create if missing
					if (!cell)
						continue;	// cell does not exist yet
					cell.remove(inst);
					if (cell.isEmpty())
					{
						freeGridCell(cell);
						this.cells[x][y] = null;
					}
				}
			}
		}
		if (newrange)
		{
			for (x = newrange.left, lenx = newrange.right; x <= lenx; ++x)
			{
				for (y = newrange.top, leny = newrange.bottom; y <= leny; ++y)
				{
					if (oldrange && oldrange.contains_pt(x, y))
						continue;	// is still in this cell
					this.getCell(x, y, true).insert(inst);
				}
			}
		}
	};
	SparseGrid_.prototype.queryRange = function (rc, result)
	{
		var x, lenx, ystart, y, leny, cell;
		x = this.XToCell(rc.left);
		ystart = this.YToCell(rc.top);
		lenx = this.XToCell(rc.right);
		leny = this.YToCell(rc.bottom);
		for ( ; x <= lenx; ++x)
		{
			for (y = ystart; y <= leny; ++y)
			{
				cell = this.getCell(x, y, false);
				if (!cell)
					continue;
				cell.dump(result);
			}
		}
	};
	cr.SparseGrid = SparseGrid_;
	var gridcellcache = [];
	function allocGridCell(grid_, x_, y_)
	{
		var ret;
		SparseGrid_.prototype.totalCellCount++;
		if (gridcellcache.length)
		{
			ret = gridcellcache.pop();
			ret.grid = grid_;
			ret.x = x_;
			ret.y = y_;
			return ret;
		}
		else
			return new cr.GridCell(grid_, x_, y_);
	};
	function freeGridCell(c)
	{
		SparseGrid_.prototype.totalCellCount--;
		c.objects.clear();
		if (gridcellcache.length < 1000)
			gridcellcache.push(c);
	};
	function GridCell_(grid_, x_, y_)
	{
		this.grid = grid_;
		this.x = x_;
		this.y = y_;
		this.objects = new cr.ObjectSet();
	};
	GridCell_.prototype.isEmpty = function ()
	{
		return this.objects.isEmpty();
	};
	GridCell_.prototype.insert = function (inst)
	{
		this.objects.add(inst);
	};
	GridCell_.prototype.remove = function (inst)
	{
		this.objects.remove(inst);
	};
	GridCell_.prototype.dump = function (result)
	{
		cr.appendArray(result, this.objects.valuesRef());
	};
	cr.GridCell = GridCell_;
	var fxNames = [ "lighter",
					"xor",
					"copy",
					"destination-over",
					"source-in",
					"destination-in",
					"source-out",
					"destination-out",
					"source-atop",
					"destination-atop"];
	cr.effectToCompositeOp = function(effect)
	{
		if (effect <= 0 || effect >= 11)
			return "source-over";
		return fxNames[effect - 1];	// not including "none" so offset by 1
	};
	cr.setGLBlend = function(this_, effect, gl)
	{
		if (!gl)
			return;
		this_.srcBlend = gl.ONE;
		this_.destBlend = gl.ONE_MINUS_SRC_ALPHA;
		switch (effect) {
		case 1:		// lighter (additive)
			this_.srcBlend = gl.ONE;
			this_.destBlend = gl.ONE;
			break;
		case 2:		// xor
			break;	// todo
		case 3:		// copy
			this_.srcBlend = gl.ONE;
			this_.destBlend = gl.ZERO;
			break;
		case 4:		// destination-over
			this_.srcBlend = gl.ONE_MINUS_DST_ALPHA;
			this_.destBlend = gl.ONE;
			break;
		case 5:		// source-in
			this_.srcBlend = gl.DST_ALPHA;
			this_.destBlend = gl.ZERO;
			break;
		case 6:		// destination-in
			this_.srcBlend = gl.ZERO;
			this_.destBlend = gl.SRC_ALPHA;
			break;
		case 7:		// source-out
			this_.srcBlend = gl.ONE_MINUS_DST_ALPHA;
			this_.destBlend = gl.ZERO;
			break;
		case 8:		// destination-out
			this_.srcBlend = gl.ZERO;
			this_.destBlend = gl.ONE_MINUS_SRC_ALPHA;
			break;
		case 9:		// source-atop
			this_.srcBlend = gl.DST_ALPHA;
			this_.destBlend = gl.ONE_MINUS_SRC_ALPHA;
			break;
		case 10:	// destination-atop
			this_.srcBlend = gl.ONE_MINUS_DST_ALPHA;
			this_.destBlend = gl.SRC_ALPHA;
			break;
		}
	};
	cr.round6dp = function (x)
	{
		return cr.round(x * 1000000) / 1000000;
	};
	/*
	var localeCompare_options = {
		"usage": "search",
		"sensitivity": "accent"
	};
	var has_localeCompare = !!"a".localeCompare;
	var localeCompare_works1 = (has_localeCompare && "a".localeCompare("A", undefined, localeCompare_options) === 0);
	var localeCompare_works2 = (has_localeCompare && "a".localeCompare("á", undefined, localeCompare_options) !== 0);
	var supports_localeCompare = (has_localeCompare && localeCompare_works1 && localeCompare_works2);
	*/
	cr.equals_nocase = function (a, b)
	{
		if (typeof a !== "string" || typeof b !== "string")
			return false;
		if (a.length !== b.length)
			return false;
		if (a === b)
			return true;
		/*
		if (supports_localeCompare)
		{
			return (a.localeCompare(b, undefined, localeCompare_options) === 0);
		}
		else
		{
		*/
			return a.toLowerCase() === b.toLowerCase();
	};
}());
var MatrixArray=typeof Float32Array!=="undefined"?Float32Array:Array,glMatrixArrayType=MatrixArray,vec3={},mat3={},mat4={},quat4={};vec3.create=function(a){var b=new MatrixArray(3);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2]);return b};vec3.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];return b};vec3.add=function(a,b,c){if(!c||a===c)return a[0]+=b[0],a[1]+=b[1],a[2]+=b[2],a;c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];return c};
vec3.subtract=function(a,b,c){if(!c||a===c)return a[0]-=b[0],a[1]-=b[1],a[2]-=b[2],a;c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];return c};vec3.negate=function(a,b){b||(b=a);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];return b};vec3.scale=function(a,b,c){if(!c||a===c)return a[0]*=b,a[1]*=b,a[2]*=b,a;c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;return c};
vec3.normalize=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=Math.sqrt(c*c+d*d+e*e);if(g){if(g===1)return b[0]=c,b[1]=d,b[2]=e,b}else return b[0]=0,b[1]=0,b[2]=0,b;g=1/g;b[0]=c*g;b[1]=d*g;b[2]=e*g;return b};vec3.cross=function(a,b,c){c||(c=a);var d=a[0],e=a[1],a=a[2],g=b[0],f=b[1],b=b[2];c[0]=e*b-a*f;c[1]=a*g-d*b;c[2]=d*f-e*g;return c};vec3.length=function(a){var b=a[0],c=a[1],a=a[2];return Math.sqrt(b*b+c*c+a*a)};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]};
vec3.direction=function(a,b,c){c||(c=a);var d=a[0]-b[0],e=a[1]-b[1],a=a[2]-b[2],b=Math.sqrt(d*d+e*e+a*a);if(!b)return c[0]=0,c[1]=0,c[2]=0,c;b=1/b;c[0]=d*b;c[1]=e*b;c[2]=a*b;return c};vec3.lerp=function(a,b,c,d){d||(d=a);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+c*(b[2]-a[2]);return d};vec3.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+"]"};
mat3.create=function(a){var b=new MatrixArray(9);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8]);return b};mat3.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return b};mat3.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a};
mat3.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[5];a[1]=a[3];a[2]=a[6];a[3]=c;a[5]=a[7];a[6]=d;a[7]=e;return a}b[0]=a[0];b[1]=a[3];b[2]=a[6];b[3]=a[1];b[4]=a[4];b[5]=a[7];b[6]=a[2];b[7]=a[5];b[8]=a[8];return b};mat3.toMat4=function(a,b){b||(b=mat4.create());b[15]=1;b[14]=0;b[13]=0;b[12]=0;b[11]=0;b[10]=a[8];b[9]=a[7];b[8]=a[6];b[7]=0;b[6]=a[5];b[5]=a[4];b[4]=a[3];b[3]=0;b[2]=a[2];b[1]=a[1];b[0]=a[0];return b};
mat3.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+"]"};mat4.create=function(a){var b=new MatrixArray(16);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8],b[9]=a[9],b[10]=a[10],b[11]=a[11],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]);return b};
mat4.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return b};mat4.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};
mat4.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[3],g=a[6],f=a[7],h=a[11];a[1]=a[4];a[2]=a[8];a[3]=a[12];a[4]=c;a[6]=a[9];a[7]=a[13];a[8]=d;a[9]=g;a[11]=a[14];a[12]=e;a[13]=f;a[14]=h;return a}b[0]=a[0];b[1]=a[4];b[2]=a[8];b[3]=a[12];b[4]=a[1];b[5]=a[5];b[6]=a[9];b[7]=a[13];b[8]=a[2];b[9]=a[6];b[10]=a[10];b[11]=a[14];b[12]=a[3];b[13]=a[7];b[14]=a[11];b[15]=a[15];return b};
mat4.determinant=function(a){var b=a[0],c=a[1],d=a[2],e=a[3],g=a[4],f=a[5],h=a[6],i=a[7],j=a[8],k=a[9],l=a[10],n=a[11],o=a[12],m=a[13],p=a[14],a=a[15];return o*k*h*e-j*m*h*e-o*f*l*e+g*m*l*e+j*f*p*e-g*k*p*e-o*k*d*i+j*m*d*i+o*c*l*i-b*m*l*i-j*c*p*i+b*k*p*i+o*f*d*n-g*m*d*n-o*c*h*n+b*m*h*n+g*c*p*n-b*f*p*n-j*f*d*a+g*k*d*a+j*c*h*a-b*k*h*a-g*c*l*a+b*f*l*a};
mat4.inverse=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=a[4],h=a[5],i=a[6],j=a[7],k=a[8],l=a[9],n=a[10],o=a[11],m=a[12],p=a[13],r=a[14],s=a[15],A=c*h-d*f,B=c*i-e*f,t=c*j-g*f,u=d*i-e*h,v=d*j-g*h,w=e*j-g*i,x=k*p-l*m,y=k*r-n*m,z=k*s-o*m,C=l*r-n*p,D=l*s-o*p,E=n*s-o*r,q=1/(A*E-B*D+t*C+u*z-v*y+w*x);b[0]=(h*E-i*D+j*C)*q;b[1]=(-d*E+e*D-g*C)*q;b[2]=(p*w-r*v+s*u)*q;b[3]=(-l*w+n*v-o*u)*q;b[4]=(-f*E+i*z-j*y)*q;b[5]=(c*E-e*z+g*y)*q;b[6]=(-m*w+r*t-s*B)*q;b[7]=(k*w-n*t+o*B)*q;b[8]=(f*D-h*z+j*x)*q;
b[9]=(-c*D+d*z-g*x)*q;b[10]=(m*v-p*t+s*A)*q;b[11]=(-k*v+l*t-o*A)*q;b[12]=(-f*C+h*y-i*x)*q;b[13]=(c*C-d*y+e*x)*q;b[14]=(-m*u+p*B-r*A)*q;b[15]=(k*u-l*B+n*A)*q;return b};mat4.toRotationMat=function(a,b){b||(b=mat4.create());b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b};
mat4.toMat3=function(a,b){b||(b=mat3.create());b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[4];b[4]=a[5];b[5]=a[6];b[6]=a[8];b[7]=a[9];b[8]=a[10];return b};mat4.toInverseMat3=function(a,b){var c=a[0],d=a[1],e=a[2],g=a[4],f=a[5],h=a[6],i=a[8],j=a[9],k=a[10],l=k*f-h*j,n=-k*g+h*i,o=j*g-f*i,m=c*l+d*n+e*o;if(!m)return null;m=1/m;b||(b=mat3.create());b[0]=l*m;b[1]=(-k*d+e*j)*m;b[2]=(h*d-e*f)*m;b[3]=n*m;b[4]=(k*c-e*i)*m;b[5]=(-h*c+e*g)*m;b[6]=o*m;b[7]=(-j*c+d*i)*m;b[8]=(f*c-d*g)*m;return b};
mat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],f=a[3],h=a[4],i=a[5],j=a[6],k=a[7],l=a[8],n=a[9],o=a[10],m=a[11],p=a[12],r=a[13],s=a[14],a=a[15],A=b[0],B=b[1],t=b[2],u=b[3],v=b[4],w=b[5],x=b[6],y=b[7],z=b[8],C=b[9],D=b[10],E=b[11],q=b[12],F=b[13],G=b[14],b=b[15];c[0]=A*d+B*h+t*l+u*p;c[1]=A*e+B*i+t*n+u*r;c[2]=A*g+B*j+t*o+u*s;c[3]=A*f+B*k+t*m+u*a;c[4]=v*d+w*h+x*l+y*p;c[5]=v*e+w*i+x*n+y*r;c[6]=v*g+w*j+x*o+y*s;c[7]=v*f+w*k+x*m+y*a;c[8]=z*d+C*h+D*l+E*p;c[9]=z*e+C*i+D*n+E*r;c[10]=z*g+C*
j+D*o+E*s;c[11]=z*f+C*k+D*m+E*a;c[12]=q*d+F*h+G*l+b*p;c[13]=q*e+F*i+G*n+b*r;c[14]=q*g+F*j+G*o+b*s;c[15]=q*f+F*k+G*m+b*a;return c};mat4.multiplyVec3=function(a,b,c){c||(c=b);var d=b[0],e=b[1],b=b[2];c[0]=a[0]*d+a[4]*e+a[8]*b+a[12];c[1]=a[1]*d+a[5]*e+a[9]*b+a[13];c[2]=a[2]*d+a[6]*e+a[10]*b+a[14];return c};
mat4.multiplyVec4=function(a,b,c){c||(c=b);var d=b[0],e=b[1],g=b[2],b=b[3];c[0]=a[0]*d+a[4]*e+a[8]*g+a[12]*b;c[1]=a[1]*d+a[5]*e+a[9]*g+a[13]*b;c[2]=a[2]*d+a[6]*e+a[10]*g+a[14]*b;c[3]=a[3]*d+a[7]*e+a[11]*g+a[15]*b;return c};
mat4.translate=function(a,b,c){var d=b[0],e=b[1],b=b[2],g,f,h,i,j,k,l,n,o,m,p,r;if(!c||a===c)return a[12]=a[0]*d+a[4]*e+a[8]*b+a[12],a[13]=a[1]*d+a[5]*e+a[9]*b+a[13],a[14]=a[2]*d+a[6]*e+a[10]*b+a[14],a[15]=a[3]*d+a[7]*e+a[11]*b+a[15],a;g=a[0];f=a[1];h=a[2];i=a[3];j=a[4];k=a[5];l=a[6];n=a[7];o=a[8];m=a[9];p=a[10];r=a[11];c[0]=g;c[1]=f;c[2]=h;c[3]=i;c[4]=j;c[5]=k;c[6]=l;c[7]=n;c[8]=o;c[9]=m;c[10]=p;c[11]=r;c[12]=g*d+j*e+o*b+a[12];c[13]=f*d+k*e+m*b+a[13];c[14]=h*d+l*e+p*b+a[14];c[15]=i*d+n*e+r*b+a[15];
return c};mat4.scale=function(a,b,c){var d=b[0],e=b[1],b=b[2];if(!c||a===c)return a[0]*=d,a[1]*=d,a[2]*=d,a[3]*=d,a[4]*=e,a[5]*=e,a[6]*=e,a[7]*=e,a[8]*=b,a[9]*=b,a[10]*=b,a[11]*=b,a;c[0]=a[0]*d;c[1]=a[1]*d;c[2]=a[2]*d;c[3]=a[3]*d;c[4]=a[4]*e;c[5]=a[5]*e;c[6]=a[6]*e;c[7]=a[7]*e;c[8]=a[8]*b;c[9]=a[9]*b;c[10]=a[10]*b;c[11]=a[11]*b;c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c};
mat4.rotate=function(a,b,c,d){var e=c[0],g=c[1],c=c[2],f=Math.sqrt(e*e+g*g+c*c),h,i,j,k,l,n,o,m,p,r,s,A,B,t,u,v,w,x,y,z;if(!f)return null;f!==1&&(f=1/f,e*=f,g*=f,c*=f);h=Math.sin(b);i=Math.cos(b);j=1-i;b=a[0];f=a[1];k=a[2];l=a[3];n=a[4];o=a[5];m=a[6];p=a[7];r=a[8];s=a[9];A=a[10];B=a[11];t=e*e*j+i;u=g*e*j+c*h;v=c*e*j-g*h;w=e*g*j-c*h;x=g*g*j+i;y=c*g*j+e*h;z=e*c*j+g*h;e=g*c*j-e*h;g=c*c*j+i;d?a!==d&&(d[12]=a[12],d[13]=a[13],d[14]=a[14],d[15]=a[15]):d=a;d[0]=b*t+n*u+r*v;d[1]=f*t+o*u+s*v;d[2]=k*t+m*u+A*
v;d[3]=l*t+p*u+B*v;d[4]=b*w+n*x+r*y;d[5]=f*w+o*x+s*y;d[6]=k*w+m*x+A*y;d[7]=l*w+p*x+B*y;d[8]=b*z+n*e+r*g;d[9]=f*z+o*e+s*g;d[10]=k*z+m*e+A*g;d[11]=l*z+p*e+B*g;return d};mat4.rotateX=function(a,b,c){var d=Math.sin(b),b=Math.cos(b),e=a[4],g=a[5],f=a[6],h=a[7],i=a[8],j=a[9],k=a[10],l=a[11];c?a!==c&&(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[4]=e*b+i*d;c[5]=g*b+j*d;c[6]=f*b+k*d;c[7]=h*b+l*d;c[8]=e*-d+i*b;c[9]=g*-d+j*b;c[10]=f*-d+k*b;c[11]=h*-d+l*b;return c};
mat4.rotateY=function(a,b,c){var d=Math.sin(b),b=Math.cos(b),e=a[0],g=a[1],f=a[2],h=a[3],i=a[8],j=a[9],k=a[10],l=a[11];c?a!==c&&(c[4]=a[4],c[5]=a[5],c[6]=a[6],c[7]=a[7],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[0]=e*b+i*-d;c[1]=g*b+j*-d;c[2]=f*b+k*-d;c[3]=h*b+l*-d;c[8]=e*d+i*b;c[9]=g*d+j*b;c[10]=f*d+k*b;c[11]=h*d+l*b;return c};
mat4.rotateZ=function(a,b,c){var d=Math.sin(b),b=Math.cos(b),e=a[0],g=a[1],f=a[2],h=a[3],i=a[4],j=a[5],k=a[6],l=a[7];c?a!==c&&(c[8]=a[8],c[9]=a[9],c[10]=a[10],c[11]=a[11],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[0]=e*b+i*d;c[1]=g*b+j*d;c[2]=f*b+k*d;c[3]=h*b+l*d;c[4]=e*-d+i*b;c[5]=g*-d+j*b;c[6]=f*-d+k*b;c[7]=h*-d+l*b;return c};
mat4.frustum=function(a,b,c,d,e,g,f){f||(f=mat4.create());var h=b-a,i=d-c,j=g-e;f[0]=e*2/h;f[1]=0;f[2]=0;f[3]=0;f[4]=0;f[5]=e*2/i;f[6]=0;f[7]=0;f[8]=(b+a)/h;f[9]=(d+c)/i;f[10]=-(g+e)/j;f[11]=-1;f[12]=0;f[13]=0;f[14]=-(g*e*2)/j;f[15]=0;return f};mat4.perspective=function(a,b,c,d,e){a=c*Math.tan(a*Math.PI/360);b*=a;return mat4.frustum(-b,b,-a,a,c,d,e)};
mat4.ortho=function(a,b,c,d,e,g,f){f||(f=mat4.create());var h=b-a,i=d-c,j=g-e;f[0]=2/h;f[1]=0;f[2]=0;f[3]=0;f[4]=0;f[5]=2/i;f[6]=0;f[7]=0;f[8]=0;f[9]=0;f[10]=-2/j;f[11]=0;f[12]=-(a+b)/h;f[13]=-(d+c)/i;f[14]=-(g+e)/j;f[15]=1;return f};
mat4.lookAt=function(a,b,c,d){d||(d=mat4.create());var e,g,f,h,i,j,k,l,n=a[0],o=a[1],a=a[2];g=c[0];f=c[1];e=c[2];c=b[1];j=b[2];if(n===b[0]&&o===c&&a===j)return mat4.identity(d);c=n-b[0];j=o-b[1];k=a-b[2];l=1/Math.sqrt(c*c+j*j+k*k);c*=l;j*=l;k*=l;b=f*k-e*j;e=e*c-g*k;g=g*j-f*c;(l=Math.sqrt(b*b+e*e+g*g))?(l=1/l,b*=l,e*=l,g*=l):g=e=b=0;f=j*g-k*e;h=k*b-c*g;i=c*e-j*b;(l=Math.sqrt(f*f+h*h+i*i))?(l=1/l,f*=l,h*=l,i*=l):i=h=f=0;d[0]=b;d[1]=f;d[2]=c;d[3]=0;d[4]=e;d[5]=h;d[6]=j;d[7]=0;d[8]=g;d[9]=i;d[10]=k;d[11]=
0;d[12]=-(b*n+e*o+g*a);d[13]=-(f*n+h*o+i*a);d[14]=-(c*n+j*o+k*a);d[15]=1;return d};mat4.fromRotationTranslation=function(a,b,c){c||(c=mat4.create());var d=a[0],e=a[1],g=a[2],f=a[3],h=d+d,i=e+e,j=g+g,a=d*h,k=d*i;d*=j;var l=e*i;e*=j;g*=j;h*=f;i*=f;f*=j;c[0]=1-(l+g);c[1]=k+f;c[2]=d-i;c[3]=0;c[4]=k-f;c[5]=1-(a+g);c[6]=e+h;c[7]=0;c[8]=d+i;c[9]=e-h;c[10]=1-(a+l);c[11]=0;c[12]=b[0];c[13]=b[1];c[14]=b[2];c[15]=1;return c};
mat4.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+"]"};quat4.create=function(a){var b=new MatrixArray(4);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]);return b};quat4.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b};
quat4.calculateW=function(a,b){var c=a[0],d=a[1],e=a[2];if(!b||a===b)return a[3]=-Math.sqrt(Math.abs(1-c*c-d*d-e*e)),a;b[0]=c;b[1]=d;b[2]=e;b[3]=-Math.sqrt(Math.abs(1-c*c-d*d-e*e));return b};quat4.inverse=function(a,b){if(!b||a===b)return a[0]*=-1,a[1]*=-1,a[2]*=-1,a;b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=a[3];return b};quat4.length=function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)};
quat4.normalize=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=Math.sqrt(c*c+d*d+e*e+g*g);if(f===0)return b[0]=0,b[1]=0,b[2]=0,b[3]=0,b;f=1/f;b[0]=c*f;b[1]=d*f;b[2]=e*f;b[3]=g*f;return b};quat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],a=a[3],f=b[0],h=b[1],i=b[2],b=b[3];c[0]=d*b+a*f+e*i-g*h;c[1]=e*b+a*h+g*f-d*i;c[2]=g*b+a*i+d*h-e*f;c[3]=a*b-d*f-e*h-g*i;return c};
quat4.multiplyVec3=function(a,b,c){c||(c=b);var d=b[0],e=b[1],g=b[2],b=a[0],f=a[1],h=a[2],a=a[3],i=a*d+f*g-h*e,j=a*e+h*d-b*g,k=a*g+b*e-f*d,d=-b*d-f*e-h*g;c[0]=i*a+d*-b+j*-h-k*-f;c[1]=j*a+d*-f+k*-b-i*-h;c[2]=k*a+d*-h+i*-f-j*-b;return c};quat4.toMat3=function(a,b){b||(b=mat3.create());var c=a[0],d=a[1],e=a[2],g=a[3],f=c+c,h=d+d,i=e+e,j=c*f,k=c*h;c*=i;var l=d*h;d*=i;e*=i;f*=g;h*=g;g*=i;b[0]=1-(l+e);b[1]=k+g;b[2]=c-h;b[3]=k-g;b[4]=1-(j+e);b[5]=d+f;b[6]=c+h;b[7]=d-f;b[8]=1-(j+l);return b};
quat4.toMat4=function(a,b){b||(b=mat4.create());var c=a[0],d=a[1],e=a[2],g=a[3],f=c+c,h=d+d,i=e+e,j=c*f,k=c*h;c*=i;var l=d*h;d*=i;e*=i;f*=g;h*=g;g*=i;b[0]=1-(l+e);b[1]=k+g;b[2]=c-h;b[3]=0;b[4]=k-g;b[5]=1-(j+e);b[6]=d+f;b[7]=0;b[8]=c+h;b[9]=d-f;b[10]=1-(j+l);b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b};
quat4.slerp=function(a,b,c,d){d||(d=a);var e=a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3],g,f;if(Math.abs(e)>=1)return d!==a&&(d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=a[3]),d;g=Math.acos(e);f=Math.sqrt(1-e*e);if(Math.abs(f)<0.001)return d[0]=a[0]*0.5+b[0]*0.5,d[1]=a[1]*0.5+b[1]*0.5,d[2]=a[2]*0.5+b[2]*0.5,d[3]=a[3]*0.5+b[3]*0.5,d;e=Math.sin((1-c)*g)/f;c=Math.sin(c*g)/f;d[0]=a[0]*e+b[0]*c;d[1]=a[1]*e+b[1]*c;d[2]=a[2]*e+b[2]*c;d[3]=a[3]*e+b[3]*c;return d};
quat4.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"};
(function()
{
	var MAX_VERTICES = 8000;						// equates to 2500 objects being drawn
	var MAX_INDICES = (MAX_VERTICES / 2) * 3;		// 6 indices for every 4 vertices
	var MAX_POINTS = 8000;
	var MULTI_BUFFERS = 4;							// cycle 4 buffers to try and avoid blocking
	var BATCH_NULL = 0;
	var BATCH_QUAD = 1;
	var BATCH_SETTEXTURE = 2;
	var BATCH_SETOPACITY = 3;
	var BATCH_SETBLEND = 4;
	var BATCH_UPDATEMODELVIEW = 5;
	var BATCH_RENDERTOTEXTURE = 6;
	var BATCH_CLEAR = 7;
	var BATCH_POINTS = 8;
	var BATCH_SETPROGRAM = 9;
	var BATCH_SETPROGRAMPARAMETERS = 10;
	var BATCH_SETTEXTURE1 = 11;
	function GLWrap_(gl, isMobile)
	{
		this.isIE = /msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent);
		this.width = 0;		// not yet known, wait for call to setSize()
		this.height = 0;
		this.cam = vec3.create([0, 0, 100]);			// camera position
		this.look = vec3.create([0, 0, 0]);				// lookat position
		this.up = vec3.create([0, 1, 0]);				// up vector
		this.worldScale = vec3.create([1, 1, 1]);		// world scaling factor
		this.matP = mat4.create();						// perspective matrix
		this.matMV = mat4.create();						// model view matrix
		this.lastMV = mat4.create();
		this.currentMV = mat4.create();
		this.gl = gl;
		this.initState();
	};
	GLWrap_.prototype.initState = function ()
	{
		var gl = this.gl;
		var i, len;
		this.lastOpacity = 1;
		this.lastTexture0 = null;			// last bound to TEXTURE0
		this.lastTexture1 = null;			// last bound to TEXTURE1
		this.currentOpacity = 1;
		gl.clearColor(0, 0, 0, 0);
		gl.clear(gl.COLOR_BUFFER_BIT);
		gl.enable(gl.BLEND);
        gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
		gl.disable(gl.CULL_FACE);
		gl.disable(gl.DEPTH_TEST);
		this.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);
		this.lastSrcBlend = gl.ONE;
		this.lastDestBlend = gl.ONE_MINUS_SRC_ALPHA;
		this.pointBuffer = gl.createBuffer();
		gl.bindBuffer(gl.ARRAY_BUFFER, this.pointBuffer);
		this.vertexBuffers = new Array(MULTI_BUFFERS);
		this.texcoordBuffers = new Array(MULTI_BUFFERS);
		for (i = 0; i < MULTI_BUFFERS; i++)
		{
			this.vertexBuffers[i] = gl.createBuffer();
			gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffers[i]);
			this.texcoordBuffers[i] = gl.createBuffer();
			gl.bindBuffer(gl.ARRAY_BUFFER, this.texcoordBuffers[i]);
		}
		this.curBuffer = 0;
		this.indexBuffer = gl.createBuffer();
		gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
		this.vertexData = new Float32Array(MAX_VERTICES * 2);
		this.texcoordData = new Float32Array(MAX_VERTICES * 2);
		this.pointData = new Float32Array(MAX_POINTS * 4);
		var indexData = new Uint16Array(MAX_INDICES);
		i = 0, len = MAX_INDICES;
		var fv = 0;
		while (i < len)
		{
			indexData[i++] = fv;		// top left
			indexData[i++] = fv + 1;	// top right
			indexData[i++] = fv + 2;	// bottom right (first tri)
			indexData[i++] = fv;		// top left
			indexData[i++] = fv + 2;	// bottom right
			indexData[i++] = fv + 3;	// bottom left
			fv += 4;
		}
		gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indexData, gl.STATIC_DRAW);
		this.vertexPtr = 0;
		this.pointPtr = 0;
		var fsSource, vsSource;
		this.shaderPrograms = [];
		fsSource = [
			"varying mediump vec2 vTex;",
			"uniform lowp float opacity;",
			"uniform lowp sampler2D samplerFront;",
			"void main(void) {",
			"	gl_FragColor = texture2D(samplerFront, vTex);",
			"	gl_FragColor *= opacity;",
			"}"
		].join("\n");
		vsSource = [
			"attribute highp vec2 aPos;",
			"attribute mediump vec2 aTex;",
			"varying mediump vec2 vTex;",
			"uniform highp mat4 matP;",
			"uniform highp mat4 matMV;",
			"void main(void) {",
			"	gl_Position = matP * matMV * vec4(aPos.x, aPos.y, 0.0, 1.0);",
			"	vTex = aTex;",
			"}"
		].join("\n");
		var shaderProg = this.createShaderProgram({src: fsSource}, vsSource, "<default>");
;
		this.shaderPrograms.push(shaderProg);		// Default shader is always shader 0
		fsSource = [
			"uniform mediump sampler2D samplerFront;",
			"varying lowp float opacity;",
			"void main(void) {",
			"	gl_FragColor = texture2D(samplerFront, gl_PointCoord);",
			"	gl_FragColor *= opacity;",
			"}"
		].join("\n");
		var pointVsSource = [
			"attribute vec4 aPos;",
			"varying float opacity;",
			"uniform mat4 matP;",
			"uniform mat4 matMV;",
			"void main(void) {",
			"	gl_Position = matP * matMV * vec4(aPos.x, aPos.y, 0.0, 1.0);",
			"	gl_PointSize = aPos.z;",
			"	opacity = aPos.w;",
			"}"
		].join("\n");
		shaderProg = this.createShaderProgram({src: fsSource}, pointVsSource, "<point>");
;
		this.shaderPrograms.push(shaderProg);		// Point shader is always shader 1
		for (var shader_name in cr.shaders)
		{
			if (cr.shaders.hasOwnProperty(shader_name))
				this.shaderPrograms.push(this.createShaderProgram(cr.shaders[shader_name], vsSource, shader_name));
		}
		gl.activeTexture(gl.TEXTURE0);
		gl.bindTexture(gl.TEXTURE_2D, null);
		this.batch = [];
		this.batchPtr = 0;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
		this.lastProgram = -1;				// start -1 so first switchProgram can do work
		this.currentProgram = -1;			// current program during batch execution
		this.currentShader = null;
		this.fbo = gl.createFramebuffer();
		this.renderToTex = null;
		this.tmpVec3 = vec3.create([0, 0, 0]);
;
;
		var pointsizes = gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE);
		this.minPointSize = pointsizes[0];
		this.maxPointSize = pointsizes[1];
;
		this.switchProgram(0);
		cr.seal(this);
	};
	function GLShaderProgram(gl, shaderProgram, name)
	{
		this.gl = gl;
		this.shaderProgram = shaderProgram;
		this.name = name;
		this.locAPos = gl.getAttribLocation(shaderProgram, "aPos");
		this.locATex = gl.getAttribLocation(shaderProgram, "aTex");
		this.locMatP = gl.getUniformLocation(shaderProgram, "matP");
		this.locMatMV = gl.getUniformLocation(shaderProgram, "matMV");
		this.locOpacity = gl.getUniformLocation(shaderProgram, "opacity");
		this.locSamplerFront = gl.getUniformLocation(shaderProgram, "samplerFront");
		this.locSamplerBack = gl.getUniformLocation(shaderProgram, "samplerBack");
		this.locDestStart = gl.getUniformLocation(shaderProgram, "destStart");
		this.locDestEnd = gl.getUniformLocation(shaderProgram, "destEnd");
		this.locSeconds = gl.getUniformLocation(shaderProgram, "seconds");
		this.locPixelWidth = gl.getUniformLocation(shaderProgram, "pixelWidth");
		this.locPixelHeight = gl.getUniformLocation(shaderProgram, "pixelHeight");
		this.locLayerScale = gl.getUniformLocation(shaderProgram, "layerScale");
		this.locLayerAngle = gl.getUniformLocation(shaderProgram, "layerAngle");
		this.locViewOrigin = gl.getUniformLocation(shaderProgram, "viewOrigin");
		this.hasAnyOptionalUniforms = !!(this.locPixelWidth || this.locPixelHeight || this.locSeconds || this.locSamplerBack || this.locDestStart || this.locDestEnd || this.locLayerScale || this.locLayerAngle || this.locViewOrigin);
		if (this.locOpacity)
			gl.uniform1f(this.locOpacity, 1);
		if (this.locSamplerFront)
			gl.uniform1i(this.locSamplerFront, 0);
		if (this.locSamplerBack)
			gl.uniform1i(this.locSamplerBack, 1);
		if (this.locDestStart)
			gl.uniform2f(this.locDestStart, 0.0, 0.0);
		if (this.locDestEnd)
			gl.uniform2f(this.locDestEnd, 1.0, 1.0);
		if (this.locLayerScale)
			gl.uniform1f(this.locLayerScale, 1.0);
		if (this.locLayerAngle)
			gl.uniform1f(this.locLayerAngle, 0.0);
		if (this.locViewOrigin)
			gl.uniform2f(this.locViewOrigin, 0.0, 0.0);
		this.hasCurrentMatMV = false;		// matMV needs updating
	};
	GLWrap_.prototype.createShaderProgram = function(shaderEntry, vsSource, name)
	{
		var gl = this.gl;
		var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
		gl.shaderSource(fragmentShader, shaderEntry.src);
		gl.compileShader(fragmentShader);
		if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS))
		{
;
			gl.deleteShader(fragmentShader);
			return null;
		}
		var vertexShader = gl.createShader(gl.VERTEX_SHADER);
		gl.shaderSource(vertexShader, vsSource);
		gl.compileShader(vertexShader);
		if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS))
		{
;
			gl.deleteShader(fragmentShader);
			gl.deleteShader(vertexShader);
			return null;
		}
		var shaderProgram = gl.createProgram();
		gl.attachShader(shaderProgram, fragmentShader);
		gl.attachShader(shaderProgram, vertexShader);
		gl.linkProgram(shaderProgram);
		if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS))
		{
;
			gl.deleteShader(fragmentShader);
			gl.deleteShader(vertexShader);
			gl.deleteProgram(shaderProgram);
			return null;
		}
		gl.useProgram(shaderProgram);
;
		gl.deleteShader(fragmentShader);
		gl.deleteShader(vertexShader);
		var ret = new GLShaderProgram(gl, shaderProgram, name);
		ret.extendBoxHorizontal = shaderEntry.extendBoxHorizontal || 0;
		ret.extendBoxVertical = shaderEntry.extendBoxVertical || 0;
		ret.crossSampling = !!shaderEntry.crossSampling;
		ret.animated = !!shaderEntry.animated;
		ret.parameters = shaderEntry.parameters || [];
		var i, len;
		for (i = 0, len = ret.parameters.length; i < len; i++)
		{
			ret.parameters[i][1] = gl.getUniformLocation(shaderProgram, ret.parameters[i][0]);
			gl.uniform1f(ret.parameters[i][1], 0);
		}
		cr.seal(ret);
		return ret;
	};
	GLWrap_.prototype.getShaderIndex = function(name_)
	{
		var i, len;
		for (i = 0, len = this.shaderPrograms.length; i < len; i++)
		{
			if (this.shaderPrograms[i].name === name_)
				return i;
		}
		return -1;
	};
	GLWrap_.prototype.project = function (x, y, out)
	{
		var mv = this.matMV;
		var proj = this.matP;
		var fTempo = [0, 0, 0, 0, 0, 0, 0, 0];
		fTempo[0] = mv[0]*x+mv[4]*y+mv[12];
		fTempo[1] = mv[1]*x+mv[5]*y+mv[13];
		fTempo[2] = mv[2]*x+mv[6]*y+mv[14];
		fTempo[3] = mv[3]*x+mv[7]*y+mv[15];
		fTempo[4] = proj[0]*fTempo[0]+proj[4]*fTempo[1]+proj[8]*fTempo[2]+proj[12]*fTempo[3];
		fTempo[5] = proj[1]*fTempo[0]+proj[5]*fTempo[1]+proj[9]*fTempo[2]+proj[13]*fTempo[3];
		fTempo[6] = proj[2]*fTempo[0]+proj[6]*fTempo[1]+proj[10]*fTempo[2]+proj[14]*fTempo[3];
		fTempo[7] = -fTempo[2];
		if(fTempo[7]===0.0)	//The w value
			return;
		fTempo[7]=1.0/fTempo[7];
		fTempo[4]*=fTempo[7];
		fTempo[5]*=fTempo[7];
		fTempo[6]*=fTempo[7];
		out[0]=(fTempo[4]*0.5+0.5)*this.width;
		out[1]=(fTempo[5]*0.5+0.5)*this.height;
	};
	GLWrap_.prototype.setSize = function(w, h, force)
	{
		if (this.width === w && this.height === h && !force)
			return;
		this.endBatch();
		this.width = w;
		this.height = h;
		this.gl.viewport(0, 0, w, h);
		mat4.perspective(45, w / h, 1, 1000, this.matP);
		mat4.lookAt(this.cam, this.look, this.up, this.matMV);
		var tl = [0, 0];
		var br = [0, 0];
		this.project(0, 0, tl);
		this.project(1, 1, br);
		this.worldScale[0] = 1 / (br[0] - tl[0]);
		this.worldScale[1] = -1 / (br[1] - tl[1]);
		var i, len, s;
		for (i = 0, len = this.shaderPrograms.length; i < len; i++)
		{
			s = this.shaderPrograms[i];
			s.hasCurrentMatMV = false;
			if (s.locMatP)
			{
				this.gl.useProgram(s.shaderProgram);
				this.gl.uniformMatrix4fv(s.locMatP, false, this.matP);
			}
		}
		this.gl.useProgram(this.shaderPrograms[this.lastProgram].shaderProgram);
		this.gl.bindTexture(this.gl.TEXTURE_2D, null);
		this.gl.activeTexture(this.gl.TEXTURE1);
		this.gl.bindTexture(this.gl.TEXTURE_2D, null);
		this.gl.activeTexture(this.gl.TEXTURE0);
		this.lastTexture0 = null;
		this.lastTexture1 = null;
	};
	GLWrap_.prototype.resetModelView = function ()
	{
		mat4.lookAt(this.cam, this.look, this.up, this.matMV);
		mat4.scale(this.matMV, this.worldScale);
	};
	GLWrap_.prototype.translate = function (x, y)
	{
		if (x === 0 && y === 0)
			return;
		this.tmpVec3[0] = x;// * this.worldScale[0];
		this.tmpVec3[1] = y;// * this.worldScale[1];
		this.tmpVec3[2] = 0;
		mat4.translate(this.matMV, this.tmpVec3);
	};
	GLWrap_.prototype.scale = function (x, y)
	{
		if (x === 1 && y === 1)
			return;
		this.tmpVec3[0] = x;
		this.tmpVec3[1] = y;
		this.tmpVec3[2] = 1;
		mat4.scale(this.matMV, this.tmpVec3);
	};
	GLWrap_.prototype.rotateZ = function (a)
	{
		if (a === 0)
			return;
		mat4.rotateZ(this.matMV, a);
	};
	GLWrap_.prototype.updateModelView = function()
	{
		var anydiff = false;
		for (var i = 0; i < 16; i++)
		{
			if (this.lastMV[i] !== this.matMV[i])
			{
				anydiff = true;
				break;
			}
		}
		if (!anydiff)
			return;
		var b = this.pushBatch();
		b.type = BATCH_UPDATEMODELVIEW;
		if (b.mat4param)
			mat4.set(this.matMV, b.mat4param);
		else
			b.mat4param = mat4.create(this.matMV);
		mat4.set(this.matMV, this.lastMV);
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
	};
	/*
	var debugBatch = false;
	jQuery(document).mousedown(
		function(info) {
			if (info.which === 2)
				debugBatch = true;
		}
	);
	*/
	function GLBatchJob(type_, glwrap_)
	{
		this.type = type_;
		this.glwrap = glwrap_;
		this.gl = glwrap_.gl;
		this.opacityParam = 0;		// for setOpacity()
		this.startIndex = 0;		// for quad()
		this.indexCount = 0;		// "
		this.texParam = null;		// for setTexture()
		this.mat4param = null;		// for updateModelView()
		this.shaderParams = [];		// for user parameters
		cr.seal(this);
	};
	GLBatchJob.prototype.doSetTexture = function ()
	{
		this.gl.bindTexture(this.gl.TEXTURE_2D, this.texParam);
	};
	GLBatchJob.prototype.doSetTexture1 = function ()
	{
		var gl = this.gl;
		gl.activeTexture(gl.TEXTURE1);
		gl.bindTexture(gl.TEXTURE_2D, this.texParam);
		gl.activeTexture(gl.TEXTURE0);
	};
	GLBatchJob.prototype.doSetOpacity = function ()
	{
		var o = this.opacityParam;
		var glwrap = this.glwrap;
		glwrap.currentOpacity = o;
		var curProg = glwrap.currentShader;
		if (curProg.locOpacity)
			this.gl.uniform1f(curProg.locOpacity, o);
	};
	GLBatchJob.prototype.doQuad = function ()
	{
		this.gl.drawElements(this.gl.TRIANGLES, this.indexCount, this.gl.UNSIGNED_SHORT, this.startIndex * 2);
	};
	GLBatchJob.prototype.doSetBlend = function ()
	{
		this.gl.blendFunc(this.startIndex, this.indexCount);
	};
	GLBatchJob.prototype.doUpdateModelView = function ()
	{
		var i, len, s, shaderPrograms = this.glwrap.shaderPrograms, currentProgram = this.glwrap.currentProgram;
		for (i = 0, len = shaderPrograms.length; i < len; i++)
		{
			s = shaderPrograms[i];
			if (i === currentProgram && s.locMatMV)
			{
				this.gl.uniformMatrix4fv(s.locMatMV, false, this.mat4param);
				s.hasCurrentMatMV = true;
			}
			else
				s.hasCurrentMatMV = false;
		}
		mat4.set(this.mat4param, this.glwrap.currentMV);
	};
	GLBatchJob.prototype.doRenderToTexture = function ()
	{
		var gl = this.gl;
		var glwrap = this.glwrap;
		if (this.texParam)
		{
			if (glwrap.lastTexture1 === this.texParam)
			{
				gl.activeTexture(gl.TEXTURE1);
				gl.bindTexture(gl.TEXTURE_2D, null);
				glwrap.lastTexture1 = null;
				gl.activeTexture(gl.TEXTURE0);
			}
			gl.bindFramebuffer(gl.FRAMEBUFFER, glwrap.fbo);
			gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.texParam, 0);
		}
		else
		{
			gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, null, 0);
			gl.bindFramebuffer(gl.FRAMEBUFFER, null);
		}
	};
	GLBatchJob.prototype.doClear = function ()
	{
		var gl = this.gl;
		if (this.startIndex === 0)		// clear whole surface
		{
			gl.clearColor(this.mat4param[0], this.mat4param[1], this.mat4param[2], this.mat4param[3]);
			gl.clear(gl.COLOR_BUFFER_BIT);
		}
		else							// clear rectangle
		{
			gl.enable(gl.SCISSOR_TEST);
			gl.scissor(this.mat4param[0], this.mat4param[1], this.mat4param[2], this.mat4param[3]);
			gl.clearColor(0, 0, 0, 0);
			gl.clear(this.gl.COLOR_BUFFER_BIT);
			gl.disable(gl.SCISSOR_TEST);
		}
	};
	GLBatchJob.prototype.doPoints = function ()
	{
		var gl = this.gl;
		var glwrap = this.glwrap;
		var s = glwrap.shaderPrograms[1];
		gl.useProgram(s.shaderProgram);
		if (!s.hasCurrentMatMV && s.locMatMV)
		{
			gl.uniformMatrix4fv(s.locMatMV, false, glwrap.currentMV);
			s.hasCurrentMatMV = true;
		}
		gl.enableVertexAttribArray(s.locAPos);
		gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.pointBuffer);
		gl.vertexAttribPointer(s.locAPos, 4, gl.FLOAT, false, 0, 0);
		gl.drawArrays(gl.POINTS, this.startIndex / 4, this.indexCount);
		s = glwrap.currentShader;
		gl.useProgram(s.shaderProgram);
		if (s.locAPos >= 0)
		{
			gl.enableVertexAttribArray(s.locAPos);
			gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.vertexBuffers[glwrap.curBuffer]);
			gl.vertexAttribPointer(s.locAPos, 2, gl.FLOAT, false, 0, 0);
		}
		if (s.locATex >= 0)
		{
			gl.enableVertexAttribArray(s.locATex);
			gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.texcoordBuffers[glwrap.curBuffer]);
			gl.vertexAttribPointer(s.locATex, 2, gl.FLOAT, false, 0, 0);
		}
	};
	GLBatchJob.prototype.doSetProgram = function ()
	{
		var gl = this.gl;
		var glwrap = this.glwrap;
		var s = glwrap.shaderPrograms[this.startIndex];		// recycled param to save memory
		glwrap.currentProgram = this.startIndex;			// current batch program
		glwrap.currentShader = s;
		gl.useProgram(s.shaderProgram);						// switch to
		if (!s.hasCurrentMatMV && s.locMatMV)
		{
			gl.uniformMatrix4fv(s.locMatMV, false, glwrap.currentMV);
			s.hasCurrentMatMV = true;
		}
		if (s.locOpacity)
			gl.uniform1f(s.locOpacity, glwrap.currentOpacity);
		if (s.locAPos >= 0)
		{
			gl.enableVertexAttribArray(s.locAPos);
			gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.vertexBuffers[glwrap.curBuffer]);
			gl.vertexAttribPointer(s.locAPos, 2, gl.FLOAT, false, 0, 0);
		}
		if (s.locATex >= 0)
		{
			gl.enableVertexAttribArray(s.locATex);
			gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.texcoordBuffers[glwrap.curBuffer]);
			gl.vertexAttribPointer(s.locATex, 2, gl.FLOAT, false, 0, 0);
		}
	}
	GLBatchJob.prototype.doSetProgramParameters = function ()
	{
		var i, len, s = this.glwrap.currentShader;
		var gl = this.gl;
		var mat4param = this.mat4param;
		if (s.locSamplerBack && this.glwrap.lastTexture1 !== this.texParam)
		{
			gl.activeTexture(gl.TEXTURE1);
			gl.bindTexture(gl.TEXTURE_2D, this.texParam);
			this.glwrap.lastTexture1 = this.texParam;
			gl.activeTexture(gl.TEXTURE0);
		}
		if (s.locPixelWidth)
			gl.uniform1f(s.locPixelWidth, mat4param[0]);
		if (s.locPixelHeight)
			gl.uniform1f(s.locPixelHeight, mat4param[1]);
		if (s.locDestStart)
			gl.uniform2f(s.locDestStart, mat4param[2], mat4param[3]);
		if (s.locDestEnd)
			gl.uniform2f(s.locDestEnd, mat4param[4], mat4param[5]);
		if (s.locLayerScale)
			gl.uniform1f(s.locLayerScale, mat4param[6]);
		if (s.locLayerAngle)
			gl.uniform1f(s.locLayerAngle, mat4param[7]);
		if (s.locViewOrigin)
			gl.uniform2f(s.locViewOrigin, mat4param[8], mat4param[9]);
		if (s.locSeconds)
			gl.uniform1f(s.locSeconds, cr.performance_now() / 1000.0);
		if (s.parameters.length)
		{
			for (i = 0, len = s.parameters.length; i < len; i++)
			{
				gl.uniform1f(s.parameters[i][1], this.shaderParams[i]);
			}
		}
	};
	GLWrap_.prototype.pushBatch = function ()
	{
		if (this.batchPtr === this.batch.length)
			this.batch.push(new GLBatchJob(BATCH_NULL, this));
		return this.batch[this.batchPtr++];
	};
	GLWrap_.prototype.endBatch = function ()
	{
		if (this.batchPtr === 0)
			return;
		if (this.gl.isContextLost())
			return;
		var gl = this.gl;
		if (this.pointPtr > 0)
		{
			gl.bindBuffer(gl.ARRAY_BUFFER, this.pointBuffer);
			gl.bufferData(gl.ARRAY_BUFFER, this.pointData.subarray(0, this.pointPtr), gl.STREAM_DRAW);
			if (s && s.locAPos >= 0 && s.name === "<point>")
				gl.vertexAttribPointer(s.locAPos, 4, gl.FLOAT, false, 0, 0);
		}
		if (this.vertexPtr > 0)
		{
			var s = this.currentShader;
			gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffers[this.curBuffer]);
			gl.bufferData(gl.ARRAY_BUFFER, this.vertexData.subarray(0, this.vertexPtr), gl.STREAM_DRAW);
			if (s && s.locAPos >= 0 && s.name !== "<point>")
				gl.vertexAttribPointer(s.locAPos, 2, gl.FLOAT, false, 0, 0);
			gl.bindBuffer(gl.ARRAY_BUFFER, this.texcoordBuffers[this.curBuffer]);
			gl.bufferData(gl.ARRAY_BUFFER, this.texcoordData.subarray(0, this.vertexPtr), gl.STREAM_DRAW);
			if (s && s.locATex >= 0 && s.name !== "<point>")
				gl.vertexAttribPointer(s.locATex, 2, gl.FLOAT, false, 0, 0);
		}
		var i, len, b;
		for (i = 0, len = this.batchPtr; i < len; i++)
		{
			b = this.batch[i];
			switch (b.type) {
			case 1:
				b.doQuad();
				break;
			case 2:
				b.doSetTexture();
				break;
			case 3:
				b.doSetOpacity();
				break;
			case 4:
				b.doSetBlend();
				break;
			case 5:
				b.doUpdateModelView();
				break;
			case 6:
				b.doRenderToTexture();
				break;
			case 7:
				b.doClear();
				break;
			case 8:
				b.doPoints();
				break;
			case 9:
				b.doSetProgram();
				break;
			case 10:
				b.doSetProgramParameters();
				break;
			case 11:
				b.doSetTexture1();
				break;
			}
		}
		this.batchPtr = 0;
		this.vertexPtr = 0;
		this.pointPtr = 0;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
		this.curBuffer++;
		if (this.curBuffer >= MULTI_BUFFERS)
			this.curBuffer = 0;
	};
	GLWrap_.prototype.setOpacity = function (op)
	{
		if (op === this.lastOpacity)
			return;
		var b = this.pushBatch();
		b.type = BATCH_SETOPACITY;
		b.opacityParam = op;
		this.lastOpacity = op;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
	};
	GLWrap_.prototype.setTexture = function (tex)
	{
		if (tex === this.lastTexture0)
			return;
;
		var b = this.pushBatch();
		b.type = BATCH_SETTEXTURE;
		b.texParam = tex;
		this.lastTexture0 = tex;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
	};
	GLWrap_.prototype.setBlend = function (s, d)
	{
		if (s === this.lastSrcBlend && d === this.lastDestBlend)
			return;
		var b = this.pushBatch();
		b.type = BATCH_SETBLEND;
		b.startIndex = s;		// recycle params to save memory
		b.indexCount = d;
		this.lastSrcBlend = s;
		this.lastDestBlend = d;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
	};
	GLWrap_.prototype.isPremultipliedAlphaBlend = function ()
	{
		return (this.lastSrcBlend === this.gl.ONE && this.lastDestBlend === this.gl.ONE_MINUS_SRC_ALPHA);
	};
	GLWrap_.prototype.setAlphaBlend = function ()
	{
		this.setBlend(this.gl.ONE, this.gl.ONE_MINUS_SRC_ALPHA);
	};
	GLWrap_.prototype.setNoPremultiplyAlphaBlend = function ()
	{
		this.setBlend(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA);
	};
	var LAST_VERTEX = MAX_VERTICES * 2 - 8;
	GLWrap_.prototype.quad = function(tlx, tly, trx, try_, brx, bry, blx, bly)
	{
		if (this.vertexPtr >= LAST_VERTEX)
			this.endBatch();
		var v = this.vertexPtr;			// vertex cursor
		var vd = this.vertexData;		// vertex data array
		var td = this.texcoordData;		// texture coord data array
		if (this.hasQuadBatchTop)
		{
			this.batch[this.batchPtr - 1].indexCount += 6;
		}
		else
		{
			var b = this.pushBatch();
			b.type = BATCH_QUAD;
			b.startIndex = (v / 4) * 3;
			b.indexCount = 6;
			this.hasQuadBatchTop = true;
			this.hasPointBatchTop = false;
		}
		vd[v] = tlx;
		td[v++] = 0;
		vd[v] = tly;
		td[v++] = 0;
		vd[v] = trx;
		td[v++] = 1;
		vd[v] = try_;
		td[v++] = 0;
		vd[v] = brx;
		td[v++] = 1;
		vd[v] = bry;
		td[v++] = 1;
		vd[v] = blx;
		td[v++] = 0;
		vd[v] = bly;
		td[v++] = 1;
		this.vertexPtr = v;
	};
	GLWrap_.prototype.quadTex = function(tlx, tly, trx, try_, brx, bry, blx, bly, rcTex)
	{
		if (this.vertexPtr >= LAST_VERTEX)
			this.endBatch();
		var v = this.vertexPtr;			// vertex cursor
		var vd = this.vertexData;		// vertex data array
		var td = this.texcoordData;		// texture coord data array
		if (this.hasQuadBatchTop)
		{
			this.batch[this.batchPtr - 1].indexCount += 6;
		}
		else
		{
			var b = this.pushBatch();
			b.type = BATCH_QUAD;
			b.startIndex = (v / 4) * 3;
			b.indexCount = 6;
			this.hasQuadBatchTop = true;
			this.hasPointBatchTop = false;
		}
		var rc_left = rcTex.left;
		var rc_top = rcTex.top;
		var rc_right = rcTex.right;
		var rc_bottom = rcTex.bottom;
		vd[v] = tlx;
		td[v++] = rc_left;
		vd[v] = tly;
		td[v++] = rc_top;
		vd[v] = trx;
		td[v++] = rc_right;
		vd[v] = try_;
		td[v++] = rc_top;
		vd[v] = brx;
		td[v++] = rc_right;
		vd[v] = bry;
		td[v++] = rc_bottom;
		vd[v] = blx;
		td[v++] = rc_left;
		vd[v] = bly;
		td[v++] = rc_bottom;
		this.vertexPtr = v;
	};
	GLWrap_.prototype.quadTexUV = function(tlx, tly, trx, try_, brx, bry, blx, bly, tlu, tlv, tru, trv, bru, brv, blu, blv)
	{
		if (this.vertexPtr >= LAST_VERTEX)
			this.endBatch();
		var v = this.vertexPtr;			// vertex cursor
		var vd = this.vertexData;		// vertex data array
		var td = this.texcoordData;		// texture coord data array
		if (this.hasQuadBatchTop)
		{
			this.batch[this.batchPtr - 1].indexCount += 6;
		}
		else
		{
			var b = this.pushBatch();
			b.type = BATCH_QUAD;
			b.startIndex = (v / 4) * 3;
			b.indexCount = 6;
			this.hasQuadBatchTop = true;
			this.hasPointBatchTop = false;
		}
		vd[v] = tlx;
		td[v++] = tlu;
		vd[v] = tly;
		td[v++] = tlv;
		vd[v] = trx;
		td[v++] = tru;
		vd[v] = try_;
		td[v++] = trv;
		vd[v] = brx;
		td[v++] = bru;
		vd[v] = bry;
		td[v++] = brv;
		vd[v] = blx;
		td[v++] = blu;
		vd[v] = bly;
		td[v++] = blv;
		this.vertexPtr = v;
	};
	var LAST_POINT = MAX_POINTS - 4;
	GLWrap_.prototype.point = function(x_, y_, size_, opacity_)
	{
		if (this.pointPtr >= LAST_POINT)
			this.endBatch();
		var p = this.pointPtr;			// point cursor
		var pd = this.pointData;		// point data array
		if (this.hasPointBatchTop)
		{
			this.batch[this.batchPtr - 1].indexCount++;
		}
		else
		{
			var b = this.pushBatch();
			b.type = BATCH_POINTS;
			b.startIndex = p;
			b.indexCount = 1;
			this.hasPointBatchTop = true;
			this.hasQuadBatchTop = false;
		}
		pd[p++] = x_;
		pd[p++] = y_;
		pd[p++] = size_;
		pd[p++] = opacity_;
		this.pointPtr = p;
	};
	GLWrap_.prototype.switchProgram = function (progIndex)
	{
		if (this.lastProgram === progIndex)
			return;			// no change
		var shaderProg = this.shaderPrograms[progIndex];
		if (!shaderProg)
		{
			if (this.lastProgram === 0)
				return;								// already on default shader
			progIndex = 0;
			shaderProg = this.shaderPrograms[0];
		}
		var b = this.pushBatch();
		b.type = BATCH_SETPROGRAM;
		b.startIndex = progIndex;
		this.lastProgram = progIndex;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
	};
	GLWrap_.prototype.programUsesDest = function (progIndex)
	{
		var s = this.shaderPrograms[progIndex];
		return !!(s.locDestStart || s.locDestEnd);
	};
	GLWrap_.prototype.programUsesCrossSampling = function (progIndex)
	{
		var s = this.shaderPrograms[progIndex];
		return !!(s.locDestStart || s.locDestEnd || s.crossSampling);
	};
	GLWrap_.prototype.programExtendsBox = function (progIndex)
	{
		var s = this.shaderPrograms[progIndex];
		return s.extendBoxHorizontal !== 0 || s.extendBoxVertical !== 0;
	};
	GLWrap_.prototype.getProgramBoxExtendHorizontal = function (progIndex)
	{
		return this.shaderPrograms[progIndex].extendBoxHorizontal;
	};
	GLWrap_.prototype.getProgramBoxExtendVertical = function (progIndex)
	{
		return this.shaderPrograms[progIndex].extendBoxVertical;
	};
	GLWrap_.prototype.getProgramParameterType = function (progIndex, paramIndex)
	{
		return this.shaderPrograms[progIndex].parameters[paramIndex][2];
	};
	GLWrap_.prototype.programIsAnimated = function (progIndex)
	{
		return this.shaderPrograms[progIndex].animated;
	};
	GLWrap_.prototype.setProgramParameters = function (backTex, pixelWidth, pixelHeight, destStartX, destStartY, destEndX, destEndY, layerScale, layerAngle, viewOriginLeft, viewOriginTop, params)
	{
		var i, len;
		var s = this.shaderPrograms[this.lastProgram];
		var b, mat4param, shaderParams;
		if (s.hasAnyOptionalUniforms || params.length)
		{
			b = this.pushBatch();
			b.type = BATCH_SETPROGRAMPARAMETERS;
			if (b.mat4param)
				mat4.set(this.matMV, b.mat4param);
			else
				b.mat4param = mat4.create();
			mat4param = b.mat4param;
			mat4param[0] = pixelWidth;
			mat4param[1] = pixelHeight;
			mat4param[2] = destStartX;
			mat4param[3] = destStartY;
			mat4param[4] = destEndX;
			mat4param[5] = destEndY;
			mat4param[6] = layerScale;
			mat4param[7] = layerAngle;
			mat4param[8] = viewOriginLeft;
			mat4param[9] = viewOriginTop;
			if (s.locSamplerBack)
			{
;
				b.texParam = backTex;
			}
			else
				b.texParam = null;
			if (params.length)
			{
				shaderParams = b.shaderParams;
				shaderParams.length = params.length;
				for (i = 0, len = params.length; i < len; i++)
					shaderParams[i] = params[i];
			}
			this.hasQuadBatchTop = false;
			this.hasPointBatchTop = false;
		}
	};
	GLWrap_.prototype.clear = function (r, g, b_, a)
	{
		var b = this.pushBatch();
		b.type = BATCH_CLEAR;
		b.startIndex = 0;					// clear all mode
		if (!b.mat4param)
			b.mat4param = mat4.create();
		b.mat4param[0] = r;
		b.mat4param[1] = g;
		b.mat4param[2] = b_;
		b.mat4param[3] = a;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
	};
	GLWrap_.prototype.clearRect = function (x, y, w, h)
	{
		if (w < 0 || h < 0)
			return;							// invalid clear area
		var b = this.pushBatch();
		b.type = BATCH_CLEAR;
		b.startIndex = 1;					// clear rect mode
		if (!b.mat4param)
			b.mat4param = mat4.create();
		b.mat4param[0] = x;
		b.mat4param[1] = y;
		b.mat4param[2] = w;
		b.mat4param[3] = h;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
	};
	GLWrap_.prototype.present = function ()
	{
		this.endBatch();
		this.gl.flush();
		/*
		if (debugBatch)
		{
;
			debugBatch = false;
		}
		*/
	};
	function nextHighestPowerOfTwo(x) {
		--x;
		for (var i = 1; i < 32; i <<= 1) {
			x = x | x >> i;
		}
		return x + 1;
	}
	var all_textures = [];
	var textures_by_src = {};
	var BF_RGBA8 = 0;
	var BF_RGB8 = 1;
	var BF_RGBA4 = 2;
	var BF_RGB5_A1 = 3;
	var BF_RGB565 = 4;
	GLWrap_.prototype.loadTexture = function (img, tiling, linearsampling, pixelformat, tiletype)
	{
		tiling = !!tiling;
		linearsampling = !!linearsampling;
		var tex_key = img.src + "," + tiling + "," + linearsampling + (tiling ? ("," + tiletype) : "");
		var webGL_texture = null;
		if (typeof img.src !== "undefined" && textures_by_src.hasOwnProperty(tex_key))
		{
			webGL_texture = textures_by_src[tex_key];
			webGL_texture.c2refcount++;
			return webGL_texture;
		}
		this.endBatch();
;
		var gl = this.gl;
		var isPOT = (cr.isPOT(img.width) && cr.isPOT(img.height));
		webGL_texture = gl.createTexture();
		gl.bindTexture(gl.TEXTURE_2D, webGL_texture);
		gl.pixelStorei(gl["UNPACK_PREMULTIPLY_ALPHA_WEBGL"], true);
		var internalformat = gl.RGBA;
		var format = gl.RGBA;
		var type = gl.UNSIGNED_BYTE;
		if (pixelformat && !this.isIE)
		{
			switch (pixelformat) {
			case BF_RGB8:
				internalformat = gl.RGB;
				format = gl.RGB;
				break;
			case BF_RGBA4:
				type = gl.UNSIGNED_SHORT_4_4_4_4;
				break;
			case BF_RGB5_A1:
				type = gl.UNSIGNED_SHORT_5_5_5_1;
				break;
			case BF_RGB565:
				internalformat = gl.RGB;
				format = gl.RGB;
				type = gl.UNSIGNED_SHORT_5_6_5;
				break;
			}
		}
		if (!isPOT && tiling)
		{
			var canvas = document.createElement("canvas");
			canvas.width = cr.nextHighestPowerOfTwo(img.width);
			canvas.height = cr.nextHighestPowerOfTwo(img.height);
			var ctx = canvas.getContext("2d");
			ctx["webkitImageSmoothingEnabled"] = linearsampling;
			ctx["mozImageSmoothingEnabled"] = linearsampling;
			ctx["msImageSmoothingEnabled"] = linearsampling;
			ctx["imageSmoothingEnabled"] = linearsampling;
			ctx.drawImage(img,
						  0, 0, img.width, img.height,
						  0, 0, canvas.width, canvas.height);
			gl.texImage2D(gl.TEXTURE_2D, 0, internalformat, format, type, canvas);
		}
		else
			gl.texImage2D(gl.TEXTURE_2D, 0, internalformat, format, type, img);
		if (tiling)
		{
			if (tiletype === "repeat-x")
			{
				gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT);
				gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
			}
			else if (tiletype === "repeat-y")
			{
				gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
				gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT);
			}
			else
			{
				gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT);
				gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT);
			}
		}
		else
		{
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
		}
		if (linearsampling)
		{
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
			if (isPOT)
			{
				gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR);
				gl.generateMipmap(gl.TEXTURE_2D);
			}
			else
				gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
		}
		else
		{
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
		}
		gl.bindTexture(gl.TEXTURE_2D, null);
		this.lastTexture0 = null;
		webGL_texture.c2width = img.width;
		webGL_texture.c2height = img.height;
		webGL_texture.c2refcount = 1;
		webGL_texture.c2texkey = tex_key;
		all_textures.push(webGL_texture);
		textures_by_src[tex_key] = webGL_texture;
		return webGL_texture;
	};
	GLWrap_.prototype.createEmptyTexture = function (w, h, linearsampling, _16bit, tiling)
	{
		this.endBatch();
		var gl = this.gl;
		if (this.isIE)
			_16bit = false;
		var webGL_texture = gl.createTexture();
		gl.bindTexture(gl.TEXTURE_2D, webGL_texture);
		gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, w, h, 0, gl.RGBA, _16bit ? gl.UNSIGNED_SHORT_4_4_4_4 : gl.UNSIGNED_BYTE, null);
		if (tiling)
		{
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT);
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT);
		}
		else
		{
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
			gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
		}
		gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, linearsampling ? gl.LINEAR : gl.NEAREST);
		gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, linearsampling ? gl.LINEAR : gl.NEAREST);
		gl.bindTexture(gl.TEXTURE_2D, null);
		this.lastTexture0 = null;
		webGL_texture.c2width = w;
		webGL_texture.c2height = h;
		all_textures.push(webGL_texture);
		return webGL_texture;
	};
	GLWrap_.prototype.videoToTexture = function (video_, texture_, _16bit)
	{
		this.endBatch();
		var gl = this.gl;
		if (this.isIE)
			_16bit = false;
		gl.bindTexture(gl.TEXTURE_2D, texture_);
		gl.pixelStorei(gl["UNPACK_PREMULTIPLY_ALPHA_WEBGL"], true);
		gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, _16bit ? gl.UNSIGNED_SHORT_4_4_4_4 : gl.UNSIGNED_BYTE, video_);
		gl.bindTexture(gl.TEXTURE_2D, null);
		this.lastTexture0 = null;
	};
	GLWrap_.prototype.deleteTexture = function (tex)
	{
		if (!tex)
			return;
		if (typeof tex.c2refcount !== "undefined" && tex.c2refcount > 1)
		{
			tex.c2refcount--;
			return;
		}
		this.endBatch();
		if (tex === this.lastTexture0)
		{
			this.gl.bindTexture(this.gl.TEXTURE_2D, null);
			this.lastTexture0 = null;
		}
		if (tex === this.lastTexture1)
		{
			this.gl.activeTexture(this.gl.TEXTURE1);
			this.gl.bindTexture(this.gl.TEXTURE_2D, null);
			this.gl.activeTexture(this.gl.TEXTURE0);
			this.lastTexture1 = null;
		}
		cr.arrayFindRemove(all_textures, tex);
		if (typeof tex.c2texkey !== "undefined")
			delete textures_by_src[tex.c2texkey];
		this.gl.deleteTexture(tex);
	};
	GLWrap_.prototype.estimateVRAM = function ()
	{
		var total = this.width * this.height * 4 * 2;
		var i, len, t;
		for (i = 0, len = all_textures.length; i < len; i++)
		{
			t = all_textures[i];
			total += (t.c2width * t.c2height * 4);
		}
		return total;
	};
	GLWrap_.prototype.textureCount = function ()
	{
		return all_textures.length;
	};
	GLWrap_.prototype.setRenderingToTexture = function (tex)
	{
		if (tex === this.renderToTex)
			return;
;
		var b = this.pushBatch();
		b.type = BATCH_RENDERTOTEXTURE;
		b.texParam = tex;
		this.renderToTex = tex;
		this.hasQuadBatchTop = false;
		this.hasPointBatchTop = false;
	};
	cr.GLWrap = GLWrap_;
}());
;
(function()
{
	function Runtime(canvas)
	{
		if (!canvas || (!canvas.getContext && !canvas["dc"]))
			return;
		if (canvas["c2runtime"])
			return;
		else
			canvas["c2runtime"] = this;
		var self = this;
		this.isCrosswalk = /crosswalk/i.test(navigator.userAgent) || /xwalk/i.test(navigator.userAgent) || !!(typeof window["c2isCrosswalk"] !== "undefined" && window["c2isCrosswalk"]);
		this.isPhoneGap = (!this.isCrosswalk && (typeof window["device"] !== "undefined" && (typeof window["device"]["cordova"] !== "undefined" || typeof window["device"]["phonegap"] !== "undefined")));
		this.isDirectCanvas = !!canvas["dc"];
		this.isAppMobi = (typeof window["AppMobi"] !== "undefined" || this.isDirectCanvas);
		this.isCocoonJs = !!window["c2cocoonjs"];
		this.isEjecta = !!window["c2ejecta"];
		if (this.isCocoonJs)
		{
			CocoonJS["App"]["onSuspended"].addEventListener(function() {
				self["setSuspended"](true);
			});
			CocoonJS["App"]["onActivated"].addEventListener(function () {
				self["setSuspended"](false);
			});
		}
		if (this.isEjecta)
		{
			document.addEventListener("pagehide", function() {
				self["setSuspended"](true);
			});
			document.addEventListener("pageshow", function() {
				self["setSuspended"](false);
			});
			document.addEventListener("resize", function () {
				self["setSize"](window.innerWidth, window.innerHeight);
			});
		}
		this.isDomFree = (this.isDirectCanvas || this.isCocoonJs || this.isEjecta);
		this.isTizen = /tizen/i.test(navigator.userAgent);
		this.isAndroid = /android/i.test(navigator.userAgent) && !this.isTizen;		// tizen says "like Android"
		this.isIE = /msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent);
		this.isiPhone = /iphone/i.test(navigator.userAgent) || /ipod/i.test(navigator.userAgent);	// treat ipod as an iphone
		this.isiPad = /ipad/i.test(navigator.userAgent);
		this.isiOS = this.isiPhone || this.isiPad || this.isEjecta;
		this.isiPhoneiOS6 = (this.isiPhone && /os\s6/i.test(navigator.userAgent));
		this.isChrome = /chrome/i.test(navigator.userAgent) || /chromium/i.test(navigator.userAgent);
		this.isAmazonWebApp = /amazonwebappplatform/i.test(navigator.userAgent);
		this.isFirefox = /firefox/i.test(navigator.userAgent);
		this.isSafari = !this.isChrome && /safari/i.test(navigator.userAgent);		// Chrome includes Safari in UA
		this.isWindows = /windows/i.test(navigator.userAgent);
		this.isNodeWebkit = (typeof window["c2nodewebkit"] !== "undefined" || /nodewebkit/i.test(navigator.userAgent));
		this.isArcade = (typeof window["is_scirra_arcade"] !== "undefined");
		this.isWindows8App = !!(typeof window["c2isWindows8"] !== "undefined" && window["c2isWindows8"]);
		this.isWindows8Capable = !!(typeof window["c2isWindows8Capable"] !== "undefined" && window["c2isWindows8Capable"]);
		this.isWindowsPhone8 = !!(typeof window["c2isWindowsPhone8"] !== "undefined" && window["c2isWindowsPhone8"]);
		this.isWindowsPhone81 = !!(typeof window["c2isWindowsPhone81"] !== "undefined" && window["c2isWindowsPhone81"]);
		this.isWinJS = (this.isWindows8App || this.isWindows8Capable || this.isWindowsPhone81);	// note not WP8.0
		this.isBlackberry10 = !!(typeof window["c2isBlackberry10"] !== "undefined" && window["c2isBlackberry10"]);
		this.isAndroidStockBrowser = (this.isAndroid && !this.isChrome && !this.isFirefox && !this.isAmazonWebApp && !this.isDomFree);
		this.devicePixelRatio = 1;
		this.isMobile = (this.isPhoneGap || this.isCrosswalk || this.isAppMobi || this.isCocoonJs || this.isAndroid || this.isiOS || this.isWindowsPhone8 || this.isWindowsPhone81 || this.isBlackberry10 || this.isTizen || this.isEjecta);
		if (!this.isMobile)
		{
			this.isMobile = /(blackberry|bb10|playbook|palm|symbian|nokia|windows\s+ce|phone|mobile|tablet|kindle|silk)/i.test(navigator.userAgent);
		}
		if (typeof cr_is_preview !== "undefined" && !this.isNodeWebkit && (window.location.search === "?nw" || /nodewebkit/i.test(navigator.userAgent)))
		{
			this.isNodeWebkit = true;
		}
		this.isDebug = (typeof cr_is_preview !== "undefined" && window.location.search.indexOf("debug") > -1)
		this.canvas = canvas;
		this.canvasdiv = document.getElementById("c2canvasdiv");
		this.gl = null;
		this.glwrap = null;
		this.ctx = null;
		this.fullscreenOldMarginCss = "";
		this.firstInFullscreen = false;
		this.oldWidth = 0;		// for restoring non-fullscreen canvas after fullscreen
		this.oldHeight = 0;
		this.canvas.oncontextmenu = function (e) { if (e.preventDefault) e.preventDefault(); return false; };
		this.canvas.onselectstart = function (e) { if (e.preventDefault) e.preventDefault(); return false; };
		if (this.isDirectCanvas)
			window["c2runtime"] = this;
		if (this.isNodeWebkit)
		{
			window.ondragover = function(e) { e.preventDefault(); return false; };
			window.ondrop = function(e) { e.preventDefault(); return false; };
			require("nw.gui")["App"]["clearCache"]();
		}
		this.width = canvas.width;
		this.height = canvas.height;
		this.draw_width = this.width;
		this.draw_height = this.height;
		this.cssWidth = this.width;
		this.cssHeight = this.height;
		this.lastWindowWidth = window.innerWidth;
		this.lastWindowHeight = window.innerHeight;
		this.redraw = true;
		this.isSuspended = false;
		if (!Date.now) {
		  Date.now = function now() {
			return +new Date();
		  };
		}
		this.plugins = [];
		this.types = {};
		this.types_by_index = [];
		this.behaviors = [];
		this.layouts = {};
		this.layouts_by_index = [];
		this.eventsheets = {};
		this.eventsheets_by_index = [];
		this.wait_for_textures = [];        // for blocking until textures loaded
		this.triggers_to_postinit = [];
		this.all_global_vars = [];
		this.all_local_vars = [];
		this.solidBehavior = null;
		this.jumpthruBehavior = null;
		this.deathRow = new cr.ObjectSet();
		this.isInClearDeathRow = false;
		this.isInOnDestroy = 0;					// needs to support recursion so increments and decrements and is true if > 0
		this.isRunningEvents = false;
		this.createRow = [];
		this.isLoadingState = false;
		this.saveToSlot = "";
		this.loadFromSlot = "";
		this.loadFromJson = "";
		this.lastSaveJson = "";
		this.signalledContinuousPreview = false;
		this.suspendDrawing = false;		// for hiding display until continuous preview loads
		this.dt = 0;
        this.dt1 = 0;
		this.logictime = 0;			// used to calculate CPUUtilisation
		this.cpuutilisation = 0;
		this.zeroDtCount = 0;
        this.timescale = 1.0;
        this.kahanTime = new cr.KahanAdder();
		this.last_tick_time = 0;
		this.measuring_dt = true;
		this.fps = 0;
		this.last_fps_time = 0;
		this.tickcount = 0;
		this.execcount = 0;
		this.framecount = 0;        // for fps
		this.objectcount = 0;
		this.changelayout = null;
		this.destroycallbacks = [];
		this.event_stack = [];
		this.event_stack_index = -1;
		this.localvar_stack = [[]];
		this.localvar_stack_index = 0;
		this.trigger_depth = 0;		// recursion depth for triggers
		this.pushEventStack(null);
		this.loop_stack = [];
		this.loop_stack_index = -1;
		this.next_uid = 0;
		this.next_puid = 0;		// permanent unique ids
		this.layout_first_tick = true;
		this.family_count = 0;
		this.suspend_events = [];
		this.raf_id = -1;
		this.timeout_id = -1;
		this.isloading = true;
		this.loadingprogress = 0;
		this.isNodeFullscreen = false;
		this.stackLocalCount = 0;	// number of stack-based local vars for recursion
		this.halfFramerateMode = false;
		this.lastRafTime = 0;		// time of last requestAnimationFrame call
		this.ranLastRaf = false;	// false if last requestAnimationFrame was skipped for half framerate mode
		this.had_a_click = false;
		this.isInUserInputEvent = false;
        this.objects_to_tick = new cr.ObjectSet();
		this.objects_to_tick2 = new cr.ObjectSet();
		this.registered_collisions = [];
		this.temp_poly = new cr.CollisionPoly([]);
		this.temp_poly2 = new cr.CollisionPoly([]);
		this.allGroups = [];				// array of all event groups
        this.groups_by_name = {};
		this.cndsBySid = {};
		this.actsBySid = {};
		this.varsBySid = {};
		this.blocksBySid = {};
		this.running_layout = null;			// currently running layout
		this.layer_canvas = null;			// for layers "render-to-texture"
		this.layer_ctx = null;
		this.layer_tex = null;
		this.layout_tex = null;
		this.layout_canvas = null;
		this.layout_ctx = null;
		this.is_WebGL_context_lost = false;
		this.uses_background_blending = false;	// if any shader uses background blending, so entire layout renders to texture
		this.fx_tex = [null, null];
		this.fullscreen_scaling = 0;
		this.files_subfolder = "";			// path with project files
		this.objectsByUid = {};				// maps every in-use UID (as a string) to its instance
		this.loaderlogo = null;
		this.snapshotCanvas = null;
		this.snapshotData = "";
		this.load();
		this.isRetina = ((!this.isDomFree || this.isEjecta) && this.useHighDpi && !this.isAndroidStockBrowser);
		this.devicePixelRatio = (this.isRetina ? (window["devicePixelRatio"] || window["webkitDevicePixelRatio"] || window["mozDevicePixelRatio"] || window["msDevicePixelRatio"] || 1) : 1);
		this.ClearDeathRow();
		var attribs;
		var alpha_canvas = this.alphaBackground && !(this.isNodeWebkit || this.isWinJS || this.isWindowsPhone8 || this.isCrosswalk);
		if (this.fullscreen_mode > 0)
			this["setSize"](window.innerWidth, window.innerHeight, true);
		try {
			if (this.enableWebGL && (this.isCocoonJs || this.isEjecta || !this.isDomFree))
			{
				attribs = {
					"alpha": alpha_canvas,
					"depth": false,
					"antialias": false,
					"failIfMajorPerformanceCaveat": true
				};
				this.gl = (canvas.getContext("webgl", attribs) || canvas.getContext("experimental-webgl", attribs));
			}
		}
		catch (e) {
		}
		if (this.gl)
		{
;
			if (!this.isDomFree)
			{
				this.overlay_canvas = document.createElement("canvas");
				jQuery(this.overlay_canvas).appendTo(this.canvas.parentNode);
				this.overlay_canvas.oncontextmenu = function (e) { return false; };
				this.overlay_canvas.onselectstart = function (e) { return false; };
				this.overlay_canvas.width = this.cssWidth;
				this.overlay_canvas.height = this.cssHeight;
				jQuery(this.overlay_canvas).css({"width": this.cssWidth + "px",
												"height": this.cssHeight + "px"});
				this.positionOverlayCanvas();
				this.overlay_ctx = this.overlay_canvas.getContext("2d");
			}
			this.glwrap = new cr.GLWrap(this.gl, this.isMobile);
			this.glwrap.setSize(canvas.width, canvas.height);
			this.ctx = null;
			this.canvas.addEventListener("webglcontextlost", function (ev) {
				ev.preventDefault();
				self.onContextLost();
				console.log("[Construct 2] WebGL context lost");
				window["cr_setSuspended"](true);		// stop rendering
			}, false);
			this.canvas.addEventListener("webglcontextrestored", function (ev) {
				self.glwrap.initState();
				self.glwrap.setSize(self.glwrap.width, self.glwrap.height, true);
				self.layer_tex = null;
				self.layout_tex = null;
				self.fx_tex[0] = null;
				self.fx_tex[1] = null;
				self.onContextRestored();
				self.redraw = true;
				console.log("[Construct 2] WebGL context restored");
				window["cr_setSuspended"](false);		// resume rendering
			}, false);
			var i, len, j, lenj, k, lenk, t, s, l, y;
			for (i = 0, len = this.types_by_index.length; i < len; i++)
			{
				t = this.types_by_index[i];
				for (j = 0, lenj = t.effect_types.length; j < lenj; j++)
				{
					s = t.effect_types[j];
					s.shaderindex = this.glwrap.getShaderIndex(s.id);
					this.uses_background_blending = this.uses_background_blending || this.glwrap.programUsesDest(s.shaderindex);
				}
			}
			for (i = 0, len = this.layouts_by_index.length; i < len; i++)
			{
				l = this.layouts_by_index[i];
				for (j = 0, lenj = l.effect_types.length; j < lenj; j++)
				{
					s = l.effect_types[j];
					s.shaderindex = this.glwrap.getShaderIndex(s.id);
				}
				for (j = 0, lenj = l.layers.length; j < lenj; j++)
				{
					y = l.layers[j];
					for (k = 0, lenk = y.effect_types.length; k < lenk; k++)
					{
						s = y.effect_types[k];
						s.shaderindex = this.glwrap.getShaderIndex(s.id);
						this.uses_background_blending = this.uses_background_blending || this.glwrap.programUsesDest(s.shaderindex);
					}
				}
			}
		}
		else
		{
			if (this.fullscreen_mode > 0 && this.isDirectCanvas)
			{
;
				this.canvas = null;
				document.oncontextmenu = function (e) { return false; };
				document.onselectstart = function (e) { return false; };
				this.ctx = AppMobi["canvas"]["getContext"]("2d");
				try {
					this.ctx["samplingMode"] = this.linearSampling ? "smooth" : "sharp";
					this.ctx["globalScale"] = 1;
					this.ctx["HTML5CompatibilityMode"] = true;
					this.ctx["imageSmoothingEnabled"] = this.linearSampling;
				} catch(e){}
				if (this.width !== 0 && this.height !== 0)
				{
					this.ctx.width = this.width;
					this.ctx.height = this.height;
				}
			}
			if (!this.ctx)
			{
;
				if (this.isCocoonJs)
				{
					attribs = {
						"antialias": !!this.linearSampling,
						"alpha": alpha_canvas
					};
					this.ctx = canvas.getContext("2d", attribs);
				}
				else
				{
					attribs = {
						"alpha": alpha_canvas
					};
					this.ctx = canvas.getContext("2d", attribs);
				}
				this.ctx["webkitImageSmoothingEnabled"] = this.linearSampling;
				this.ctx["mozImageSmoothingEnabled"] = this.linearSampling;
				this.ctx["msImageSmoothingEnabled"] = this.linearSampling;
				this.ctx["imageSmoothingEnabled"] = this.linearSampling;
			}
			this.overlay_canvas = null;
			this.overlay_ctx = null;
		}
		this.tickFunc = function () { self.tick(false); };
		if (window != window.top && !this.isDomFree && !this.isWinJS && !this.isWindowsPhone8)
		{
			document.addEventListener("mousedown", function () {
				window.focus();
			}, true);
			document.addEventListener("touchstart", function () {
				window.focus();
			}, true);
		}
		if (typeof cr_is_preview !== "undefined")
		{
			if (this.isCocoonJs)
				console.log("[Construct 2] In preview-over-wifi via CocoonJS mode");
			if (window.location.search.indexOf("continuous") > -1)
			{
				cr.logexport("Reloading for continuous preview");
				this.loadFromSlot = "__c2_continuouspreview";
				this.suspendDrawing = true;
			}
			if (this.pauseOnBlur && !this.isMobile)
			{
				jQuery(window).focus(function ()
				{
					self["setSuspended"](false);
				});
				jQuery(window).blur(function ()
				{
					self["setSuspended"](true);
				});
			}
		}
		if (this.fullscreen_mode === 0 && this.isRetina && this.devicePixelRatio > 1)
		{
			this["setSize"](this.original_width, this.original_height, true);
		}
		this.tryLockOrientation();
		this.go();			// run loading screen
		this.extra = {};
		cr.seal(this);
	};
	var webkitRepaintFlag = false;
	Runtime.prototype["setSize"] = function (w, h, force)
	{
		var offx = 0, offy = 0;
		var neww = 0, newh = 0, intscale = 0;
		var tryHideAddressBar = (this.isiPhoneiOS6 && this.isSafari && !navigator["standalone"] && !this.isDomFree && !this.isPhoneGap);
		if (tryHideAddressBar)
			h += 60;		// height of Safari iPhone iOS 6 address bar
		if (this.lastWindowWidth === w && this.lastWindowHeight === h && !force)
			return;
		this.lastWindowWidth = w;
		this.lastWindowHeight = h;
		var mode = this.fullscreen_mode;
		var orig_aspect, cur_aspect;
		var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || !!document["msFullscreenElement"] || document["fullScreen"] || this.isNodeFullscreen);
		if (!isfullscreen && this.fullscreen_mode === 0 && !force)
			return;			// ignore size events when not fullscreen and not using a fullscreen-in-browser mode
		if (isfullscreen && this.fullscreen_scaling > 0)
			mode = this.fullscreen_scaling;
		if (mode >= 4)
		{
			orig_aspect = this.original_width / this.original_height;
			cur_aspect = w / h;
			if (cur_aspect > orig_aspect)
			{
				neww = h * orig_aspect;
				if (mode === 5)	// integer scaling
				{
					intscale = neww / this.original_width;
					if (intscale > 1)
						intscale = Math.floor(intscale);
					else if (intscale < 1)
						intscale = 1 / Math.ceil(1 / intscale);
					neww = this.original_width * intscale;
					newh = this.original_height * intscale;
					offx = (w - neww) / 2;
					offy = (h - newh) / 2;
					w = neww;
					h = newh;
				}
				else
				{
					offx = (w - neww) / 2;
					w = neww;
				}
			}
			else
			{
				newh = w / orig_aspect;
				if (mode === 5)	// integer scaling
				{
					intscale = newh / this.original_height;
					if (intscale > 1)
						intscale = Math.floor(intscale);
					else if (intscale < 1)
						intscale = 1 / Math.ceil(1 / intscale);
					neww = this.original_width * intscale;
					newh = this.original_height * intscale;
					offx = (w - neww) / 2;
					offy = (h - newh) / 2;
					w = neww;
					h = newh;
				}
				else
				{
					offy = (h - newh) / 2;
					h = newh;
				}
			}
			if (isfullscreen && !this.isNodeWebkit)
			{
				offx = 0;
				offy = 0;
			}
			offx = Math.floor(offx);
			offy = Math.floor(offy);
			w = Math.floor(w);
			h = Math.floor(h);
		}
		else if (this.isNodeWebkit && this.isNodeFullscreen && this.fullscreen_mode_set === 0)
		{
			offx = Math.floor((w - this.original_width) / 2);
			offy = Math.floor((h - this.original_height) / 2);
			w = this.original_width;
			h = this.original_height;
		}
		if (mode < 2)
			this.aspect_scale = this.devicePixelRatio;
		if (this.isRetina && this.isiPad && this.devicePixelRatio > 1)	// don't apply to iPad 1-2
		{
			if (w >= 1024)
				w = 1023;		// 2046 retina pixels
			if (h >= 1024)
				h = 1023;
		}
		var multiplier = this.devicePixelRatio;
		this.cssWidth = w;
		this.cssHeight = h;
		this.width = Math.round(w * multiplier);
		this.height = Math.round(h * multiplier);
		this.redraw = true;
		if (this.wantFullscreenScalingQuality)
		{
			this.draw_width = this.width;
			this.draw_height = this.height;
			this.fullscreenScalingQuality = true;
		}
		else
		{
			if ((this.width < this.original_width && this.height < this.original_height) || mode === 1)
			{
				this.draw_width = this.width;
				this.draw_height = this.height;
				this.fullscreenScalingQuality = true;
			}
			else
			{
				this.draw_width = this.original_width;
				this.draw_height = this.original_height;
				this.fullscreenScalingQuality = false;
				/*var orig_aspect = this.original_width / this.original_height;
				var cur_aspect = this.width / this.height;
				if ((this.fullscreen_mode !== 2 && cur_aspect > orig_aspect) || (this.fullscreen_mode === 2 && cur_aspect < orig_aspect))
					this.aspect_scale = this.height / this.original_height;
				else
					this.aspect_scale = this.width / this.original_width;*/
				if (mode === 2)		// scale inner
				{
					orig_aspect = this.original_width / this.original_height;
					cur_aspect = this.lastWindowWidth / this.lastWindowHeight;
					if (cur_aspect < orig_aspect)
						this.draw_width = this.draw_height * cur_aspect;
					else if (cur_aspect > orig_aspect)
						this.draw_height = this.draw_width / cur_aspect;
				}
				else if (mode === 3)
				{
					orig_aspect = this.original_width / this.original_height;
					cur_aspect = this.lastWindowWidth / this.lastWindowHeight;
					if (cur_aspect > orig_aspect)
						this.draw_width = this.draw_height * cur_aspect;
					else if (cur_aspect < orig_aspect)
						this.draw_height = this.draw_width / cur_aspect;
				}
			}
		}
		if (this.canvasdiv && !this.isDomFree)
		{
			jQuery(this.canvasdiv).css({"width": w + "px",
										"height": h + "px",
										"margin-left": offx,
										"margin-top": offy});
			if (typeof cr_is_preview !== "undefined")
			{
				jQuery("#borderwrap").css({"width": w + "px",
											"height": h + "px"});
			}
		}
		if (this.canvas)
		{
			this.canvas.width = Math.round(w * multiplier);
			this.canvas.height = Math.round(h * multiplier);
			if (this.isEjecta)
			{
				this.canvas.style.left = offx + "px";
				this.canvas.style.top = offy + "px";
				this.canvas.style.width = w + "px";
				this.canvas.style.height = h + "px";
			}
			else if (this.isRetina && !this.isDomFree)
			{
				jQuery(this.canvas).css({"width": w + "px",
										"height": h + "px"});
			}
		}
		if (this.overlay_canvas)
		{
			this.overlay_canvas.width = w;
			this.overlay_canvas.height = h;
			jQuery(this.overlay_canvas).css({"width": w + "px",
											"height": h + "px"});
		}
		if (this.glwrap)
		{
			this.glwrap.setSize(Math.round(w * multiplier), Math.round(h * multiplier));
		}
		if (this.isDirectCanvas && this.ctx)
		{
			this.ctx.width = w;
			this.ctx.height = h;
		}
		if (this.ctx)
		{
			this.ctx["webkitImageSmoothingEnabled"] = this.linearSampling;
			this.ctx["mozImageSmoothingEnabled"] = this.linearSampling;
			this.ctx["msImageSmoothingEnabled"] = this.linearSampling;
			this.ctx["imageSmoothingEnabled"] = this.linearSampling;
		}
		this.tryLockOrientation();
		if (!this.isDomFree && (tryHideAddressBar || this.isiPhone))
		{
			window.setTimeout(function () {
				window.scrollTo(0, 1);
			}, 100);
		}
	};
	Runtime.prototype.tryLockOrientation = function ()
	{
		if (!this.autoLockOrientation || this.orientations === 0)
			return;
		var orientation = "portrait";
		if (this.orientations === 2)
			orientation = "landscape";
		if (screen["lockOrientation"])
			screen["lockOrientation"](orientation);
		else if (screen["webkitLockOrientation"])
			screen["webkitLockOrientation"](orientation);
		else if (screen["mozLockOrientation"])
			screen["mozLockOrientation"](orientation);
		else if (screen["msLockOrientation"])
			screen["msLockOrientation"](orientation);
	};
	Runtime.prototype.onContextLost = function ()
	{
		this.is_WebGL_context_lost = true;
		var i, len, t;
		for (i = 0, len = this.types_by_index.length; i < len; i++)
		{
			t = this.types_by_index[i];
			if (t.onLostWebGLContext)
				t.onLostWebGLContext();
		}
	};
	Runtime.prototype.onContextRestored = function ()
	{
		this.is_WebGL_context_lost = false;
		var i, len, t;
		for (i = 0, len = this.types_by_index.length; i < len; i++)
		{
			t = this.types_by_index[i];
			if (t.onRestoreWebGLContext)
				t.onRestoreWebGLContext();
		}
	};
	Runtime.prototype.positionOverlayCanvas = function()
	{
		if (this.isDomFree)
			return;
		var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || document["fullScreen"] || !!document["msFullscreenElement"] || this.isNodeFullscreen);
		var overlay_position = isfullscreen ? jQuery(this.canvas).offset() : jQuery(this.canvas).position();
		overlay_position.position = "absolute";
		jQuery(this.overlay_canvas).css(overlay_position);
	};
	var caf = window["cancelAnimationFrame"] ||
	  window["mozCancelAnimationFrame"]    ||
	  window["webkitCancelAnimationFrame"] ||
	  window["msCancelAnimationFrame"]     ||
	  window["oCancelAnimationFrame"];
	Runtime.prototype["setSuspended"] = function (s)
	{
		var i, len;
		if (s && !this.isSuspended)
		{
			cr.logexport("[Construct 2] Suspending");
			this.isSuspended = true;			// next tick will be last
			if (this.raf_id !== -1 && caf)		// note: CocoonJS does not implement cancelAnimationFrame
				caf(this.raf_id);
			if (this.timeout_id !== -1)
				clearTimeout(this.timeout_id);
			for (i = 0, len = this.suspend_events.length; i < len; i++)
				this.suspend_events[i](true);
		}
		else if (!s && this.isSuspended)
		{
			cr.logexport("[Construct 2] Resuming");
			this.isSuspended = false;
			this.last_tick_time = cr.performance_now();	// ensure first tick is a zero-dt one
			this.last_fps_time = cr.performance_now();	// reset FPS counter
			this.framecount = 0;
			this.logictime = 0;
			for (i = 0, len = this.suspend_events.length; i < len; i++)
				this.suspend_events[i](false);
			this.tick(false);						// kick off runtime again
		}
	};
	Runtime.prototype.addSuspendCallback = function (f)
	{
		this.suspend_events.push(f);
	};
	Runtime.prototype.load = function ()
	{
;
		var pm = cr.getProjectModel();
		this.name = pm[0];
		this.first_layout = pm[1];
		this.fullscreen_mode = pm[11];	// 0 = off, 1 = crop, 2 = scale inner, 3 = scale outer, 4 = letterbox scale, 5 = integer letterbox scale
		this.fullscreen_mode_set = pm[11];
		this.original_width = pm[9];
		this.original_height = pm[10];
		this.parallax_x_origin = this.original_width / 2;
		this.parallax_y_origin = this.original_height / 2;
		if (this.isDomFree && !this.isEjecta && (pm[11] >= 4 || pm[11] === 0))
		{
			cr.logexport("[Construct 2] Letterbox scale fullscreen modes are not supported on this platform - falling back to 'Scale outer'");
			this.fullscreen_mode = 3;
			this.fullscreen_mode_set = 3;
		}
		this.uses_loader_layout = pm[17];
		this.loaderstyle = pm[18];
		if (this.loaderstyle === 0)
		{
			this.loaderlogo = new Image();
			this.loaderlogo.src = "loading-logo.png";
		}
		this.next_uid = pm[20];
		this.system = new cr.system_object(this);
		var i, len, j, lenj, k, lenk, idstr, m, b, t, f;
		var plugin, plugin_ctor;
		for (i = 0, len = pm[2].length; i < len; i++)
		{
			m = pm[2][i];
;
			cr.add_common_aces(m);
			plugin = new m[0](this);
			plugin.singleglobal = m[1];
			plugin.is_world = m[2];
			plugin.must_predraw = m[9];
			if (plugin.onCreate)
				plugin.onCreate();  // opportunity to override default ACEs
			cr.seal(plugin);
			this.plugins.push(plugin);
		}
		pm = cr.getProjectModel();
		for (i = 0, len = pm[3].length; i < len; i++)
		{
			m = pm[3][i];
			plugin_ctor = m[1];
;
			plugin = null;
			for (j = 0, lenj = this.plugins.length; j < lenj; j++)
			{
				if (this.plugins[j] instanceof plugin_ctor)
				{
					plugin = this.plugins[j];
					break;
				}
			}
;
;
			var type_inst = new plugin.Type(plugin);
;
			type_inst.name = m[0];
			type_inst.is_family = m[2];
			type_inst.instvar_sids = m[3].slice(0);
			type_inst.vars_count = m[3].length;
			type_inst.behs_count = m[4];
			type_inst.fx_count = m[5];
			type_inst.sid = m[11];
			if (type_inst.is_family)
			{
				type_inst.members = [];				// types in this family
				type_inst.family_index = this.family_count++;
				type_inst.families = null;
			}
			else
			{
				type_inst.members = null;
				type_inst.family_index = -1;
				type_inst.families = [];			// families this type belongs to
			}
			type_inst.family_var_map = null;
			type_inst.family_beh_map = null;
			type_inst.family_fx_map = null;
			type_inst.is_contained = false;
			type_inst.container = null;
			if (m[6])
			{
				type_inst.texture_file = m[6][0];
				type_inst.texture_filesize = m[6][1];
				type_inst.texture_pixelformat = m[6][2];
			}
			else
			{
				type_inst.texture_file = null;
				type_inst.texture_filesize = 0;
				type_inst.texture_pixelformat = 0;		// rgba8
			}
			if (m[7])
			{
				type_inst.animations = m[7];
			}
			else
			{
				type_inst.animations = null;
			}
			type_inst.index = i;                                // save index in to types array in type
			type_inst.instances = [];                           // all instances of this type
			type_inst.deadCache = [];							// destroyed instances to recycle next create
			type_inst.solstack = [new cr.selection(type_inst)]; // initialise SOL stack with one empty SOL
			type_inst.cur_sol = 0;
			type_inst.default_instance = null;
			type_inst.default_layerindex = 0;
			type_inst.stale_iids = true;
			type_inst.updateIIDs = cr.type_updateIIDs;
			type_inst.getFirstPicked = cr.type_getFirstPicked;
			type_inst.getPairedInstance = cr.type_getPairedInstance;
			type_inst.getCurrentSol = cr.type_getCurrentSol;
			type_inst.pushCleanSol = cr.type_pushCleanSol;
			type_inst.pushCopySol = cr.type_pushCopySol;
			type_inst.popSol = cr.type_popSol;
			type_inst.getBehaviorByName = cr.type_getBehaviorByName;
			type_inst.getBehaviorIndexByName = cr.type_getBehaviorIndexByName;
			type_inst.getEffectIndexByName = cr.type_getEffectIndexByName;
			type_inst.applySolToContainer = cr.type_applySolToContainer;
			type_inst.getInstanceByIID = cr.type_getInstanceByIID;
			type_inst.collision_grid = new cr.SparseGrid(this.original_width, this.original_height);
			type_inst.any_cell_changed = true;
			type_inst.any_instance_parallaxed = false;
			type_inst.extra = {};
			type_inst.toString = cr.type_toString;
			type_inst.behaviors = [];
			for (j = 0, lenj = m[8].length; j < lenj; j++)
			{
				b = m[8][j];
				var behavior_ctor = b[1];
				var behavior_plugin = null;
				for (k = 0, lenk = this.behaviors.length; k < lenk; k++)
				{
					if (this.behaviors[k] instanceof behavior_ctor)
					{
						behavior_plugin = this.behaviors[k];
						break;
					}
				}
				if (!behavior_plugin)
				{
					behavior_plugin = new behavior_ctor(this);
					behavior_plugin.my_types = [];						// types using this behavior
					behavior_plugin.my_instances = new cr.ObjectSet(); 	// instances of this behavior
					if (behavior_plugin.onCreate)
						behavior_plugin.onCreate();
					cr.seal(behavior_plugin);
					this.behaviors.push(behavior_plugin);
					if (cr.behaviors.solid && behavior_plugin instanceof cr.behaviors.solid)
						this.solidBehavior = behavior_plugin;
					if (cr.behaviors.jumpthru && behavior_plugin instanceof cr.behaviors.jumpthru)
						this.jumpthruBehavior = behavior_plugin;
				}
				if (behavior_plugin.my_types.indexOf(type_inst) === -1)
					behavior_plugin.my_types.push(type_inst);
				var behavior_type = new behavior_plugin.Type(behavior_plugin, type_inst);
				behavior_type.name = b[0];
				behavior_type.sid = b[2];
				behavior_type.onCreate();
				cr.seal(behavior_type);
				type_inst.behaviors.push(behavior_type);
			}
			type_inst.global = m[9];
			type_inst.isOnLoaderLayout = m[10];
			type_inst.effect_types = [];
			for (j = 0, lenj = m[12].length; j < lenj; j++)
			{
				type_inst.effect_types.push({
					id: m[12][j][0],
					name: m[12][j][1],
					shaderindex: -1,
					active: true,
					index: j
				});
			}
			type_inst.tile_poly_data = m[13];
			if (!this.uses_loader_layout || type_inst.is_family || type_inst.isOnLoaderLayout || !plugin.is_world)
			{
				type_inst.onCreate();
				cr.seal(type_inst);
			}
			if (type_inst.name)
				this.types[type_inst.name] = type_inst;
			this.types_by_index.push(type_inst);
			if (plugin.singleglobal)
			{
				var instance = new plugin.Instance(type_inst);
				instance.uid = this.next_uid++;
				instance.puid = this.next_puid++;
				instance.iid = 0;
				instance.get_iid = cr.inst_get_iid;
				instance.toString = cr.inst_toString;
				instance.properties = m[14];
				instance.onCreate();
				cr.seal(instance);
				type_inst.instances.push(instance);
				this.objectsByUid[instance.uid.toString()] = instance;
			}
		}
		for (i = 0, len = pm[4].length; i < len; i++)
		{
			var familydata = pm[4][i];
			var familytype = this.types_by_index[familydata[0]];
			var familymember;
			for (j = 1, lenj = familydata.length; j < lenj; j++)
			{
				familymember = this.types_by_index[familydata[j]];
				familymember.families.push(familytype);
				familytype.members.push(familymember);
			}
		}
		for (i = 0, len = pm[23].length; i < len; i++)
		{
			var containerdata = pm[23][i];
			var containertypes = [];
			for (j = 0, lenj = containerdata.length; j < lenj; j++)
				containertypes.push(this.types_by_index[containerdata[j]]);
			for (j = 0, lenj = containertypes.length; j < lenj; j++)
			{
				containertypes[j].is_contained = true;
				containertypes[j].container = containertypes;
			}
		}
		if (this.family_count > 0)
		{
			for (i = 0, len = this.types_by_index.length; i < len; i++)
			{
				t = this.types_by_index[i];
				if (t.is_family || !t.families.length)
					continue;
				t.family_var_map = new Array(this.family_count);
				t.family_beh_map = new Array(this.family_count);
				t.family_fx_map = new Array(this.family_count);
				var all_fx = [];
				var varsum = 0;
				var behsum = 0;
				var fxsum = 0;
				for (j = 0, lenj = t.families.length; j < lenj; j++)
				{
					f = t.families[j];
					t.family_var_map[f.family_index] = varsum;
					varsum += f.vars_count;
					t.family_beh_map[f.family_index] = behsum;
					behsum += f.behs_count;
					t.family_fx_map[f.family_index] = fxsum;
					fxsum += f.fx_count;
					for (k = 0, lenk = f.effect_types.length; k < lenk; k++)
						all_fx.push(cr.shallowCopy({}, f.effect_types[k]));
				}
				t.effect_types = all_fx.concat(t.effect_types);
				for (j = 0, lenj = t.effect_types.length; j < lenj; j++)
					t.effect_types[j].index = j;
			}
		}
		for (i = 0, len = pm[5].length; i < len; i++)
		{
			m = pm[5][i];
			var layout = new cr.layout(this, m);
			cr.seal(layout);
			this.layouts[layout.name] = layout;
			this.layouts_by_index.push(layout);
		}
		for (i = 0, len = pm[6].length; i < len; i++)
		{
			m = pm[6][i];
			var sheet = new cr.eventsheet(this, m);
			cr.seal(sheet);
			this.eventsheets[sheet.name] = sheet;
			this.eventsheets_by_index.push(sheet);
		}
		for (i = 0, len = this.eventsheets_by_index.length; i < len; i++)
			this.eventsheets_by_index[i].postInit();
		for (i = 0, len = this.eventsheets_by_index.length; i < len; i++)
			this.eventsheets_by_index[i].updateDeepIncludes();
		for (i = 0, len = this.triggers_to_postinit.length; i < len; i++)
			this.triggers_to_postinit[i].postInit();
		this.triggers_to_postinit.length = 0;
		this.files_subfolder = pm[7];
		this.pixel_rounding = pm[8];
		this.aspect_scale = 1.0;
		this.enableWebGL = pm[12];
		this.linearSampling = pm[13];
		this.alphaBackground = pm[14];
		this.versionstr = pm[15];
		this.useHighDpi = pm[16];
		this.orientations = pm[19];		// 0 = any, 1 = portrait, 2 = landscape
		this.autoLockOrientation = (this.orientations > 0);
		this.pauseOnBlur = pm[21];
		this.wantFullscreenScalingQuality = pm[22];		// false = low quality, true = high quality
		this.fullscreenScalingQuality = this.wantFullscreenScalingQuality;
		this.start_time = Date.now();
	};
	var anyImageHadError = false;
	Runtime.prototype.waitForImageLoad = function (img_)
	{
		img_.onerror = function (e)
		{
			img_.c2error = true;
			anyImageHadError = true;
			if (console && console.error)
				console.error("Error loading image '" + img_.src + "': ", e);
		};
		this.wait_for_textures.push(img_);
	};
	Runtime.prototype.findWaitingTexture = function (src_)
	{
		var i, len;
		for (i = 0, len = this.wait_for_textures.length; i < len; i++)
		{
			if (this.wait_for_textures[i].cr_src === src_)
				return this.wait_for_textures[i];
		}
		return null;
	};
	Runtime.prototype.areAllTexturesLoaded = function ()
	{
		var totalsize = 0;
		var completedsize = 0;
		var ret = true;
		var i, len, img;
		for (i = 0, len = this.wait_for_textures.length; i < len; i++)
		{
			img = this.wait_for_textures[i];
			var filesize = img.cr_filesize;
			if (!filesize || filesize <= 0)
				filesize = 50000;
			totalsize += filesize;
			if ((img.complete || img["loaded"]) && !img.c2error)
				completedsize += filesize;
			else
				ret = false;    // not all textures loaded
		}
		if (totalsize == 0)
			this.progress = 0;
		else
			this.progress = (completedsize / totalsize);
		return ret;
	};
	Runtime.prototype.go = function ()
	{
		if (!this.ctx && !this.glwrap)
			return;
		var ctx = this.ctx || this.overlay_ctx;
		if (this.overlay_canvas)
			this.positionOverlayCanvas();
		this.progress = 0;
		this.last_progress = -1;
		if (this.areAllTexturesLoaded())
			this.go_textures_done();
		else
		{
			var ms_elapsed = Date.now() - this.start_time;
			if (ctx)
			{
				var overlay_width = this.width;
				var overlay_height = this.height;
				var multiplier = this.devicePixelRatio;
				if (this.overlay_canvas)
				{
					overlay_width = this.cssWidth;
					overlay_height = this.cssHeight;
					multiplier = 1;
				}
				if (this.loaderstyle !== 3 && (this.isCocoonJs || (ms_elapsed >= 500 && this.last_progress != this.progress)))
				{
					ctx.clearRect(0, 0, overlay_width, overlay_height);
					var mx = overlay_width / 2;
					var my = overlay_height / 2;
					var haslogo = (this.loaderstyle === 0 && this.loaderlogo.complete);
					var hlw = 40 * multiplier;
					var hlh = 0;
					var logowidth = 80 * multiplier;
					var logoheight;
					if (haslogo)
					{
						logowidth = this.loaderlogo.width * multiplier;
						logoheight = this.loaderlogo.height * multiplier;
						hlw = logowidth / 2;
						hlh = logoheight / 2;
						ctx.drawImage(this.loaderlogo, cr.floor(mx - hlw), cr.floor(my - hlh), logowidth, logoheight);
					}
					if (this.loaderstyle <= 1)
					{
						my += hlh + (haslogo ? 12 * multiplier : 0);
						mx -= hlw;
						mx = cr.floor(mx) + 0.5;
						my = cr.floor(my) + 0.5;
						ctx.fillStyle = anyImageHadError ? "red" : "DodgerBlue";
						ctx.fillRect(mx, my, Math.floor(logowidth * this.progress), 6 * multiplier);
						ctx.strokeStyle = "black";
						ctx.strokeRect(mx, my, logowidth, 6 * multiplier);
						ctx.strokeStyle = "white";
						ctx.strokeRect(mx - 1 * multiplier, my - 1 * multiplier, logowidth + 2 * multiplier, 8 * multiplier);
					}
					else if (this.loaderstyle === 2)
					{
						ctx.font = (this.isEjecta ? "12pt ArialMT" : "12pt Arial");
						ctx.fillStyle = anyImageHadError ? "#f00" : "#999";
						ctx.textBaseLine = "middle";
						var percent_text = Math.round(this.progress * 100) + "%";
						var text_dim = ctx.measureText ? ctx.measureText(percent_text) : null;
						var text_width = text_dim ? text_dim.width : 0;
						ctx.fillText(percent_text, mx - (text_width / 2), my);
					}
				}
				this.last_progress = this.progress;
			}
			setTimeout((function (self) { return function () { self.go(); }; })(this), (this.isCocoonJs ? 10 : 100));
		}
	};
	Runtime.prototype.go_textures_done = function ()
	{
		if (this.overlay_canvas)
		{
			this.canvas.parentNode.removeChild(this.overlay_canvas);
			this.overlay_ctx = null;
			this.overlay_canvas = null;
		}
		this.start_time = Date.now();
		this.last_fps_time = cr.performance_now();       // for counting framerate
		var i, len, t;
		if (this.uses_loader_layout)
		{
			for (i = 0, len = this.types_by_index.length; i < len; i++)
			{
				t = this.types_by_index[i];
				if (!t.is_family && !t.isOnLoaderLayout && t.plugin.is_world)
				{
					t.onCreate();
					cr.seal(t);
				}
			}
		}
		else
			this.isloading = false;
		for (i = 0, len = this.layouts_by_index.length; i < len; i++)
		{
			this.layouts_by_index[i].createGlobalNonWorlds();
		}
		if (this.fullscreen_mode >= 2)
		{
			var orig_aspect = this.original_width / this.original_height;
			var cur_aspect = this.width / this.height;
			if ((this.fullscreen_mode !== 2 && cur_aspect > orig_aspect) || (this.fullscreen_mode === 2 && cur_aspect < orig_aspect))
				this.aspect_scale = this.height / this.original_height;
			else
				this.aspect_scale = this.width / this.original_width;
		}
		if (this.first_layout)
			this.layouts[this.first_layout].startRunning();
		else
			this.layouts_by_index[0].startRunning();
;
		if (!this.uses_loader_layout)
		{
			this.loadingprogress = 1;
			this.trigger(cr.system_object.prototype.cnds.OnLoadFinished, null);
		}
		if (navigator["splashscreen"] && navigator["splashscreen"]["hide"])
			navigator["splashscreen"]["hide"]();
		for (i = 0, len = this.types_by_index.length; i < len; i++)
		{
			t = this.types_by_index[i];
			if (t.onAppBegin)
				t.onAppBegin();
		}
		this.tick(false);
		if (this.isDirectCanvas)
			AppMobi["webview"]["execute"]("onGameReady();");
	};
	var raf = window["requestAnimationFrame"] ||
	  window["mozRequestAnimationFrame"]    ||
	  window["webkitRequestAnimationFrame"] ||
	  window["msRequestAnimationFrame"]     ||
	  window["oRequestAnimationFrame"];
	Runtime.prototype.tick = function (background_wake)
	{
		if (!this.running_layout)
			return;
		var logic_start = cr.performance_now();
		if (this.halfFramerateMode && this.ranLastRaf)
		{
			if (logic_start - this.lastRafTime < 29)
			{
				this.ranLastRaf = false;
				this.lastRafTime = logic_start;
				if (raf)
					this.raf_id = raf(this.tickFunc, this.canvas);
				else	// no idea if this works without raf/hi res timers but let's hope for the best
					this.timeout_id = setTimeout(this.tickFunc, this.isMobile ? 1 : 16);
				return;		// skipped this frame
			}
		}
		this.ranLastRaf = true;
		this.lastRafTime = logic_start;
		var fsmode = this.fullscreen_mode;
		var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || document["fullScreen"] || !!document["msFullscreenElement"]);
		if ((isfullscreen || this.isNodeFullscreen) && this.fullscreen_scaling > 0)
			fsmode = this.fullscreen_scaling;
		if (fsmode > 0 && (!this.isiPhone || window.self !== window.top))
		{
			var curwidth = window.innerWidth;
			var curheight = window.innerHeight;
			if (this.lastWindowWidth !== curwidth || this.lastWindowHeight !== curheight)
			{
					this["setSize"](curwidth, curheight);
			}
		}
		if (!this.isDomFree)
		{
			if (isfullscreen)
			{
				if (!this.firstInFullscreen)
				{
					this.fullscreenOldMarginCss = jQuery(this.canvas).css("margin") || "0";
					this.firstInFullscreen = true;
				}
				if (!this.isChrome && !this.isNodeWebkit)
				{
					jQuery(this.canvas).css({
						"margin-left": "" + Math.floor((screen.width - (this.width / this.devicePixelRatio)) / 2) + "px",
						"margin-top": "" + Math.floor((screen.height - (this.height / this.devicePixelRatio)) / 2) + "px"
					});
				}
			}
			else
			{
				if (this.firstInFullscreen)
				{
					if (!this.isChrome && !this.isNodeWebkit)
					{
						jQuery(this.canvas).css("margin", this.fullscreenOldMarginCss);
					}
					this.fullscreenOldMarginCss = "";
					this.firstInFullscreen = false;
					if (this.fullscreen_mode === 0)
					{
						this["setSize"](Math.round(this.oldWidth / this.devicePixelRatio), Math.round(this.oldHeight / this.devicePixelRatio), true);
					}
				}
				else
				{
					this.oldWidth = this.width;
					this.oldHeight = this.height;
				}
			}
		}
		if (this.isloading)
		{
			var done = this.areAllTexturesLoaded();		// updates this.progress
			this.loadingprogress = this.progress;
			if (done)
			{
				this.isloading = false;
				this.progress = 1;
				this.trigger(cr.system_object.prototype.cnds.OnLoadFinished, null);
			}
		}
		this.logic();
		if ((this.redraw || this.isCocoonJs) && !this.is_WebGL_context_lost && !this.suspendDrawing && !background_wake)
		{
			this.redraw = false;
			if (this.glwrap)
				this.drawGL();
			else
				this.draw();
			if (this.snapshotCanvas)
			{
				if (this.canvas && this.canvas.toDataURL)
				{
					this.snapshotData = this.canvas.toDataURL(this.snapshotCanvas[0], this.snapshotCanvas[1]);
					this.trigger(cr.system_object.prototype.cnds.OnCanvasSnapshot, null);
				}
				this.snapshotCanvas = null;
			}
		}
		if (!this.hit_breakpoint)
		{
			this.tickcount++;
			this.execcount++;
			this.framecount++;
		}
		this.logictime += cr.performance_now() - logic_start;
		if (this.isSuspended || background_wake)
			return;
		if (raf)
			this.raf_id = raf(this.tickFunc, this.canvas);
		else
		{
			this.timeout_id = setTimeout(this.tickFunc, this.isMobile ? 1 : 16);
		}
	};
	Runtime.prototype.logic = function ()
	{
		var i, leni, j, lenj, k, lenk, type, inst, binst;
		var cur_time = cr.performance_now();
		if (cur_time - this.last_fps_time >= 1000)  // every 1 second
		{
			this.last_fps_time += 1000;
			this.fps = this.framecount;
			this.framecount = 0;
			this.cpuutilisation = this.logictime;
			this.logictime = 0;
		}
		if (this.measuring_dt)
		{
			if (this.last_tick_time !== 0)
			{
				var ms_diff = cur_time - this.last_tick_time;
				if (ms_diff === 0 && !this.isDebug)
				{
					this.zeroDtCount++;
					if (this.zeroDtCout >= 10)
						this.measuring_dt = false;
					this.dt1 = 1.0 / 60.0;            // 60fps assumed (0.01666...)
				}
				else
				{
					this.dt1 = ms_diff / 1000.0; // dt measured in seconds
					if (this.dt1 > 0.5)
						this.dt1 = 0;
					else if (this.dt1 > 0.1)
						this.dt1 = 0.1;
				}
			}
			this.last_tick_time = cur_time;
		}
        this.dt = this.dt1 * this.timescale;
        this.kahanTime.add(this.dt);
		var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || document["fullScreen"] || !!document["msFullscreenElement"] || this.isNodeFullscreen);
		if (this.fullscreen_mode >= 2 /* scale */ || (isfullscreen && this.fullscreen_scaling > 0))
		{
			var orig_aspect = this.original_width / this.original_height;
			var cur_aspect = this.width / this.height;
			var mode = this.fullscreen_mode;
			if (isfullscreen && this.fullscreen_scaling > 0)
				mode = this.fullscreen_scaling;
			if ((mode !== 2 && cur_aspect > orig_aspect) || (mode === 2 && cur_aspect < orig_aspect))
			{
				this.aspect_scale = this.height / this.original_height;
			}
			else
			{
				this.aspect_scale = this.width / this.original_width;
			}
			if (this.running_layout)
			{
				this.running_layout.scrollToX(this.running_layout.scrollX);
				this.running_layout.scrollToY(this.running_layout.scrollY);
			}
		}
		else
			this.aspect_scale = (this.isRetina ? this.devicePixelRatio : 1);
		this.ClearDeathRow();
		this.isInOnDestroy++;
		this.system.runWaits();		// prevent instance list changing
		this.isInOnDestroy--;
		this.ClearDeathRow();		// allow instance list changing
		this.isInOnDestroy++;
		for (i = 0, leni = this.types_by_index.length; i < leni; i++)
		{
			type = this.types_by_index[i];
			if (type.is_family || (!type.behaviors.length && !type.families.length))
				continue;
			for (j = 0, lenj = type.instances.length; j < lenj; j++)
			{
				inst = type.instances[j];
				for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++)
				{
					inst.behavior_insts[k].tick();
				}
			}
		}
		for (i = 0, leni = this.types_by_index.length; i < leni; i++)
		{
			type = this.types_by_index[i];
			if (type.is_family || (!type.behaviors.length && !type.families.length))
				continue;	// type doesn't have any behaviors
			for (j = 0, lenj = type.instances.length; j < lenj; j++)
			{
				inst = type.instances[j];
				for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++)
				{
					binst = inst.behavior_insts[k];
					if (binst.posttick)
						binst.posttick();
				}
			}
		}
        var tickarr = this.objects_to_tick.valuesRef();
        for (i = 0, leni = tickarr.length; i < leni; i++)
            tickarr[i].tick();
		this.isInOnDestroy--;		// end preventing instance lists from being changed
		this.handleSaveLoad();		// save/load now if queued
		i = 0;
		while (this.changelayout && i++ < 10)
		{
			this.doChangeLayout(this.changelayout);
		}
        for (i = 0, leni = this.eventsheets_by_index.length; i < leni; i++)
            this.eventsheets_by_index[i].hasRun = false;
		if (this.running_layout.event_sheet)
			this.running_layout.event_sheet.run();
		this.registered_collisions.length = 0;
		this.layout_first_tick = false;
		this.isInOnDestroy++;		// prevent instance lists from being changed
		for (i = 0, leni = this.types_by_index.length; i < leni; i++)
		{
			type = this.types_by_index[i];
			if (type.is_family || (!type.behaviors.length && !type.families.length))
				continue;	// type doesn't have any behaviors
			for (j = 0, lenj = type.instances.length; j < lenj; j++)
			{
				var inst = type.instances[j];
				for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++)
				{
					binst = inst.behavior_insts[k];
					if (binst.tick2)
						binst.tick2();
				}
			}
		}
        tickarr = this.objects_to_tick2.valuesRef();
        for (i = 0, leni = tickarr.length; i < leni; i++)
            tickarr[i].tick2();
		this.isInOnDestroy--;		// end preventing instance lists from being changed
	};
	Runtime.prototype.doChangeLayout = function (changeToLayout)
	{
;
		var prev_layout = this.running_layout;
		this.running_layout.stopRunning();
		var i, len, j, lenj, k, lenk, type, inst, binst;
		if (this.glwrap)
		{
			for (i = 0, len = this.types_by_index.length; i < len; i++)
			{
				type = this.types_by_index[i];
				if (type.is_family)
					continue;
				if (type.unloadTextures && (!type.global || type.instances.length === 0) && changeToLayout.initial_types.indexOf(type) === -1)
				{
					type.unloadTextures();
				}
			}
		}
		if (prev_layout == changeToLayout)
			this.system.waits.length = 0;
		changeToLayout.startRunning();
		for (i = 0, len = this.types_by_index.length; i < len; i++)
		{
			type = this.types_by_index[i];
			if (!type.global && !type.plugin.singleglobal)
				continue;
			for (j = 0, lenj = type.instances.length; j < lenj; j++)
			{
				inst = type.instances[j];
				if (inst.onLayoutChange)
					inst.onLayoutChange();
				if (inst.behavior_insts)
				{
					for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++)
					{
						binst = inst.behavior_insts[k];
						if (binst.onLayoutChange)
							binst.onLayoutChange();
					}
				}
			}
		}
		this.redraw = true;
		this.layout_first_tick = true;
		this.ClearDeathRow();
	};
    Runtime.prototype.tickMe = function (inst)
    {
        this.objects_to_tick.add(inst);
    };
	Runtime.prototype.untickMe = function (inst)
	{
		this.objects_to_tick.remove(inst);
	};
	Runtime.prototype.tick2Me = function (inst)
    {
        this.objects_to_tick2.add(inst);
    };
	Runtime.prototype.untick2Me = function (inst)
	{
		this.objects_to_tick2.remove(inst);
	};
    Runtime.prototype.getDt = function (inst)
    {
        if (!inst || inst.my_timescale === -1.0)
            return this.dt;
        return this.dt1 * inst.my_timescale;
    };
	Runtime.prototype.draw = function ()
	{
		this.running_layout.draw(this.ctx);
		if (this.isDirectCanvas)
			this.ctx["present"]();
	};
	Runtime.prototype.drawGL = function ()
	{
		this.running_layout.drawGL(this.glwrap);
		this.glwrap.present();
	};
	Runtime.prototype.addDestroyCallback = function (f)
	{
		if (f)
			this.destroycallbacks.push(f);
	};
	Runtime.prototype.removeDestroyCallback = function (f)
	{
		cr.arrayFindRemove(this.destroycallbacks, f);
	};
	Runtime.prototype.getObjectByUID = function (uid_)
	{
;
		var uidstr = uid_.toString();
		if (this.objectsByUid.hasOwnProperty(uidstr))
			return this.objectsByUid[uidstr];
		else
			return null;
	};
	Runtime.prototype.DestroyInstance = function (inst)
	{
		var i, len;
		if (!this.deathRow.contains(inst))
		{
			this.deathRow.add(inst);
			if (inst.is_contained)
			{
				for (i = 0, len = inst.siblings.length; i < len; i++)
				{
					this.DestroyInstance(inst.siblings[i]);
				}
			}
			if (this.isInClearDeathRow)
				this.deathRow.values_cache.push(inst);
			this.isInOnDestroy++;		// support recursion
			this.trigger(Object.getPrototypeOf(inst.type.plugin).cnds.OnDestroyed, inst);
			this.isInOnDestroy--;
		}
	};
	Runtime.prototype.ClearDeathRow = function ()
	{
		var inst, index, type, instances, binst;
		var i, j, k, leni, lenj, lenk;
		var w, f;
		this.isInClearDeathRow = true;
		for (i = 0, leni = this.createRow.length; i < leni; i++)
		{
			inst = this.createRow[i];
			type = inst.type;
			type.instances.push(inst);
			for (j = 0, lenj = type.families.length; j < lenj; j++)
			{
				type.families[j].instances.push(inst);
				type.families[j].stale_iids = true;
			}
		}
		this.createRow.length = 0;
		var arr = this.deathRow.valuesRef();	// get array of items from set
		for (i = 0; i < arr.length; i++)		// check array length every time in case it changes
		{
			inst = arr[i];
			type = inst.type;
			instances = type.instances;
			for (j = 0, lenj = this.destroycallbacks.length; j < lenj; j++)
				this.destroycallbacks[j](inst);
			cr.arrayFindRemove(instances, inst);
			if (instances.length === 0)
				type.any_instance_parallaxed = false;
			if (inst.collcells)
			{
				type.collision_grid.update(inst, inst.collcells, null);
			}
			if (inst.layer)
			{
				cr.arrayRemove(inst.layer.instances, inst.get_zindex());
				inst.layer.zindices_stale = true;
			}
			for (j = 0, lenj = type.families.length; j < lenj; j++)
			{
				cr.arrayFindRemove(type.families[j].instances, inst);
				type.families[j].stale_iids = true;
			}
			if (inst.behavior_insts)
			{
				for (j = 0, lenj = inst.behavior_insts.length; j < lenj; j++)
				{
					binst = inst.behavior_insts[j];
					if (binst.onDestroy)
						binst.onDestroy();
					binst.behavior.my_instances.remove(inst);
				}
			}
            this.objects_to_tick.remove(inst);
			this.objects_to_tick2.remove(inst);
			for (j = 0, lenj = this.system.waits.length; j < lenj; j++)
			{
				w = this.system.waits[j];
				if (w.sols.hasOwnProperty(type.index))
					cr.arrayFindRemove(w.sols[type.index].insts, inst);
				if (!type.is_family)
				{
					for (k = 0, lenk = type.families.length; k < lenk; k++)
					{
						f = type.families[k];
						if (w.sols.hasOwnProperty(f.index))
							cr.arrayFindRemove(w.sols[f.index].insts, inst);
					}
				}
			}
			if (inst.onDestroy)
				inst.onDestroy();
			if (this.objectsByUid.hasOwnProperty(inst.uid.toString()))
				delete this.objectsByUid[inst.uid.toString()];
			this.objectcount--;
			if (type.deadCache.length < 64)
				type.deadCache.push(inst);
			type.stale_iids = true;
		}
		if (!this.deathRow.isEmpty())
			this.redraw = true;
		this.deathRow.clear();
		this.isInClearDeathRow = false;
	};
	Runtime.prototype.createInstance = function (type, layer, sx, sy)
	{
		if (type.is_family)
		{
			var i = cr.floor(Math.random() * type.members.length);
			return this.createInstance(type.members[i], layer, sx, sy);
		}
		if (!type.default_instance)
		{
			return null;
		}
		return this.createInstanceFromInit(type.default_instance, layer, false, sx, sy, false);
	};
	var all_behaviors = [];
	Runtime.prototype.createInstanceFromInit = function (initial_inst, layer, is_startup_instance, sx, sy, skip_siblings)
	{
		var i, len, j, lenj, p, effect_fallback, x, y;
		if (!initial_inst)
			return null;
		var type = this.types_by_index[initial_inst[1]];
;
;
		var is_world = type.plugin.is_world;
;
		if (this.isloading && is_world && !type.isOnLoaderLayout)
			return null;
		if (is_world && !this.glwrap && initial_inst[0][11] === 11)
			return null;
		var original_layer = layer;
		if (!is_world)
			layer = null;
		var inst;
		if (type.deadCache.length)
		{
			inst = type.deadCache.pop();
			inst.recycled = true;
			type.plugin.Instance.call(inst, type);
		}
		else
		{
			inst = new type.plugin.Instance(type);
			inst.recycled = false;
		}
		if (is_startup_instance && !skip_siblings)
			inst.uid = initial_inst[2];
		else
			inst.uid = this.next_uid++;
		this.objectsByUid[inst.uid.toString()] = inst;
		inst.puid = this.next_puid++;
		inst.iid = type.instances.length;
		for (i = 0, len = this.createRow.length; i < len; ++i)
		{
			if (this.createRow[i].type === type)
				inst.iid++;
		}
		inst.get_iid = cr.inst_get_iid;
		var initial_vars = initial_inst[3];
		if (inst.recycled)
		{
			cr.wipe(inst.extra);
		}
		else
		{
			inst.extra = {};
			if (typeof cr_is_preview !== "undefined")
			{
				inst.instance_var_names = [];
				inst.instance_var_names.length = initial_vars.length;
				for (i = 0, len = initial_vars.length; i < len; i++)
					inst.instance_var_names[i] = initial_vars[i][1];
			}
			inst.instance_vars = [];
			inst.instance_vars.length = initial_vars.length;
		}
		for (i = 0, len = initial_vars.length; i < len; i++)
			inst.instance_vars[i] = initial_vars[i][0];
		if (is_world)
		{
			var wm = initial_inst[0];
;
			inst.x = cr.is_undefined(sx) ? wm[0] : sx;
			inst.y = cr.is_undefined(sy) ? wm[1] : sy;
			inst.z = wm[2];
			inst.width = wm[3];
			inst.height = wm[4];
			inst.depth = wm[5];
			inst.angle = wm[6];
			inst.opacity = wm[7];
			inst.hotspotX = wm[8];
			inst.hotspotY = wm[9];
			inst.blend_mode = wm[10];
			effect_fallback = wm[11];
			if (!this.glwrap && type.effect_types.length)	// no WebGL renderer and shaders used
				inst.blend_mode = effect_fallback;			// use fallback blend mode - destroy mode was handled above
			inst.compositeOp = cr.effectToCompositeOp(inst.blend_mode);
			if (this.gl)
				cr.setGLBlend(inst, inst.blend_mode, this.gl);
			if (inst.recycled)
			{
				for (i = 0, len = wm[12].length; i < len; i++)
				{
					for (j = 0, lenj = wm[12][i].length; j < lenj; j++)
						inst.effect_params[i][j] = wm[12][i][j];
				}
				inst.bbox.set(0, 0, 0, 0);
				inst.collcells.set(0, 0, -1, -1);
				inst.bquad.set_from_rect(inst.bbox);
				inst.bbox_changed_callbacks.length = 0;
			}
			else
			{
				inst.effect_params = wm[12].slice(0);
				for (i = 0, len = inst.effect_params.length; i < len; i++)
					inst.effect_params[i] = wm[12][i].slice(0);
				inst.active_effect_types = [];
				inst.active_effect_flags = [];
				inst.active_effect_flags.length = type.effect_types.length;
				inst.bbox = new cr.rect(0, 0, 0, 0);
				inst.collcells = new cr.rect(0, 0, -1, -1);
				inst.bquad = new cr.quad();
				inst.bbox_changed_callbacks = [];
				inst.set_bbox_changed = cr.set_bbox_changed;
				inst.add_bbox_changed_callback = cr.add_bbox_changed_callback;
				inst.contains_pt = cr.inst_contains_pt;
				inst.update_bbox = cr.update_bbox;
				inst.update_collision_cell = cr.update_collision_cell;
				inst.get_zindex = cr.inst_get_zindex;
			}
			inst.tilemap_exists = false;
			inst.tilemap_width = 0;
			inst.tilemap_height = 0;
			inst.tilemap_data = null;
			if (wm.length === 14)
			{
				inst.tilemap_exists = true;
				inst.tilemap_width = wm[13][0];
				inst.tilemap_height = wm[13][1];
				inst.tilemap_data = wm[13][2];
			}
			for (i = 0, len = type.effect_types.length; i < len; i++)
				inst.active_effect_flags[i] = true;
			inst.updateActiveEffects = cr.inst_updateActiveEffects;
			inst.updateActiveEffects();
			inst.uses_shaders = !!inst.active_effect_types.length;
			inst.bbox_changed = true;
			inst.cell_changed = true;
			type.any_cell_changed = true;
			inst.visible = true;
            inst.my_timescale = -1.0;
			inst.layer = layer;
			inst.zindex = layer.instances.length;	// will be placed at top of current layer
			if (typeof inst.collision_poly === "undefined")
				inst.collision_poly = null;
			inst.collisionsEnabled = true;
			this.redraw = true;
		}
		inst.toString = cr.inst_toString;
		var initial_props, binst;
		all_behaviors.length = 0;
		for (i = 0, len = type.families.length; i < len; i++)
		{
			all_behaviors.push.apply(all_behaviors, type.families[i].behaviors);
		}
		all_behaviors.push.apply(all_behaviors, type.behaviors);
		if (inst.recycled)
		{
			for (i = 0, len = all_behaviors.length; i < len; i++)
			{
				var btype = all_behaviors[i];
				binst = inst.behavior_insts[i];
				binst.recycled = true;
				btype.behavior.Instance.call(binst, btype, inst);
				initial_props = initial_inst[4][i];
				for (j = 0, lenj = initial_props.length; j < lenj; j++)
					binst.properties[j] = initial_props[j];
				binst.onCreate();
				btype.behavior.my_instances.add(inst);
			}
		}
		else
		{
			inst.behavior_insts = [];
			for (i = 0, len = all_behaviors.length; i < len; i++)
			{
				var btype = all_behaviors[i];
				var binst = new btype.behavior.Instance(btype, inst);
				binst.recycled = false;
				binst.properties = initial_inst[4][i].slice(0);
				binst.onCreate();
				cr.seal(binst);
				inst.behavior_insts.push(binst);
				btype.behavior.my_instances.add(inst);
			}
		}
		initial_props = initial_inst[5];
		if (inst.recycled)
		{
			for (i = 0, len = initial_props.length; i < len; i++)
				inst.properties[i] = initial_props[i];
		}
		else
			inst.properties = initial_props.slice(0);
		this.createRow.push(inst);
		if (layer)
		{
;
			layer.instances.push(inst);
			if (layer.parallaxX !== 1 || layer.parallaxY !== 1)
				type.any_instance_parallaxed = true;
		}
		this.objectcount++;
		if (type.is_contained)
		{
			inst.is_contained = true;
			if (inst.recycled)
				inst.siblings.length = 0;
			else
				inst.siblings = [];			// note: should not include self in siblings
			if (!is_startup_instance && !skip_siblings)	// layout links initial instances
			{
				for (i = 0, len = type.container.length; i < len; i++)
				{
					if (type.container[i] === type)
						continue;
					if (!type.container[i].default_instance)
					{
						return null;
					}
					inst.siblings.push(this.createInstanceFromInit(type.container[i].default_instance, original_layer, false, is_world ? inst.x : sx, is_world ? inst.y : sy, true));
				}
				for (i = 0, len = inst.siblings.length; i < len; i++)
				{
					inst.siblings[i].siblings.push(inst);
					for (j = 0; j < len; j++)
					{
						if (i !== j)
							inst.siblings[i].siblings.push(inst.siblings[j]);
					}
				}
			}
		}
		else
		{
			inst.is_contained = false;
			inst.siblings = null;
		}
		inst.onCreate();
		if (!inst.recycled)
			cr.seal(inst);
		for (i = 0, len = inst.behavior_insts.length; i < len; i++)
		{
			if (inst.behavior_insts[i].postCreate)
				inst.behavior_insts[i].postCreate();
		}
		return inst;
	};
	Runtime.prototype.getLayerByName = function (layer_name)
	{
		var i, len;
		for (i = 0, len = this.running_layout.layers.length; i < len; i++)
		{
			var layer = this.running_layout.layers[i];
			if (cr.equals_nocase(layer.name, layer_name))
				return layer;
		}
		return null;
	};
	Runtime.prototype.getLayerByNumber = function (index)
	{
		index = cr.floor(index);
		if (index < 0)
			index = 0;
		if (index >= this.running_layout.layers.length)
			index = this.running_layout.layers.length - 1;
		return this.running_layout.layers[index];
	};
	Runtime.prototype.getLayer = function (l)
	{
		if (cr.is_number(l))
			return this.getLayerByNumber(l);
		else
			return this.getLayerByName(l.toString());
	};
	Runtime.prototype.clearSol = function (solModifiers)
	{
		var i, len;
		for (i = 0, len = solModifiers.length; i < len; i++)
		{
			solModifiers[i].getCurrentSol().select_all = true;
		}
	};
	Runtime.prototype.pushCleanSol = function (solModifiers)
	{
		var i, len;
		for (i = 0, len = solModifiers.length; i < len; i++)
		{
			solModifiers[i].pushCleanSol();
		}
	};
	Runtime.prototype.pushCopySol = function (solModifiers)
	{
		var i, len;
		for (i = 0, len = solModifiers.length; i < len; i++)
		{
			solModifiers[i].pushCopySol();
		}
	};
	Runtime.prototype.popSol = function (solModifiers)
	{
		var i, len;
		for (i = 0, len = solModifiers.length; i < len; i++)
		{
			solModifiers[i].popSol();
		}
	};
	Runtime.prototype.updateAllCells = function (type)
	{
		if (!type.any_cell_changed)
			return;		// all instances must already be up-to-date
		var i, len, instances = type.instances;
		for (i = 0, len = instances.length; i < len; ++i)
		{
			instances[i].update_collision_cell();
		}
		var createRow = this.createRow;
		for (i = 0, len = createRow.length; i < len; ++i)
		{
			if (createRow[i].type === type)
				createRow[i].update_collision_cell();
		}
		type.any_cell_changed = false;
	};
	Runtime.prototype.getCollisionCandidates = function (layer, rtype, bbox, candidates)
	{
		var i, len, t;
		var is_parallaxed = (layer ? (layer.parallaxX !== 1 || layer.parallaxY !== 1) : false);
		if (rtype.is_family)
		{
			for (i = 0, len = rtype.members.length; i < len; ++i)
			{
				t = rtype.members[i];
				if (is_parallaxed || t.any_instance_parallaxed)
				{
					cr.appendArray(candidates, t.instances);
				}
				else
				{
					this.updateAllCells(t);
					t.collision_grid.queryRange(bbox, candidates);
				}
			}
		}
		else
		{
			if (is_parallaxed || rtype.any_instance_parallaxed)
			{
				cr.appendArray(candidates, rtype.instances);
			}
			else
			{
				this.updateAllCells(rtype);
				rtype.collision_grid.queryRange(bbox, candidates);
			}
		}
	};
	Runtime.prototype.getTypesCollisionCandidates = function (layer, types, bbox, candidates)
	{
		var i, len;
		for (i = 0, len = types.length; i < len; ++i)
		{
			this.getCollisionCandidates(layer, types[i], bbox, candidates);
		}
	};
	Runtime.prototype.getSolidCollisionCandidates = function (layer, bbox, candidates)
	{
		var solid = this.getSolidBehavior();
		if (!solid)
			return null;
		this.getTypesCollisionCandidates(layer, solid.my_types, bbox, candidates);
	};
	Runtime.prototype.getJumpthruCollisionCandidates = function (layer, bbox, candidates)
	{
		var jumpthru = this.getJumpthruBehavior();
		if (!jumpthru)
			return null;
		this.getTypesCollisionCandidates(layer, jumpthru.my_types, bbox, candidates);
	};
	Runtime.prototype.testAndSelectCanvasPointOverlap = function (type, ptx, pty, inverted)
	{
		var sol = type.getCurrentSol();
		var i, j, inst, len;
		var lx, ly;
		if (sol.select_all)
		{
			if (!inverted)
			{
				sol.select_all = false;
				sol.instances.length = 0;   // clear contents
			}
			for (i = 0, len = type.instances.length; i < len; i++)
			{
				inst = type.instances[i];
				inst.update_bbox();
				lx = inst.layer.canvasToLayer(ptx, pty, true);
				ly = inst.layer.canvasToLayer(ptx, pty, false);
				if (inst.contains_pt(lx, ly))
				{
					if (inverted)
						return false;
					else
						sol.instances.push(inst);
				}
			}
		}
		else
		{
			j = 0;
			for (i = 0, len = sol.instances.length; i < len; i++)
			{
				inst = sol.instances[i];
				inst.update_bbox();
				lx = inst.layer.canvasToLayer(ptx, pty, true);
				ly = inst.layer.canvasToLayer(ptx, pty, false);
				if (inst.contains_pt(lx, ly))
				{
					if (inverted)
						return false;
					else
					{
						sol.instances[j] = sol.instances[i];
						j++;
					}
				}
			}
			if (!inverted)
				sol.instances.length = j;
		}
		type.applySolToContainer();
		if (inverted)
			return true;		// did not find anything overlapping
		else
			return sol.hasObjects();
	};
	Runtime.prototype.testOverlap = function (a, b)
	{
		if (!a || !b || a === b || !a.collisionsEnabled || !b.collisionsEnabled)
			return false;
		a.update_bbox();
		b.update_bbox();
		var layera = a.layer;
		var layerb = b.layer;
		var different_layers = (layera !== layerb && (layera.parallaxX !== layerb.parallaxX || layerb.parallaxY !== layerb.parallaxY || layera.scale !== layerb.scale || layera.angle !== layerb.angle || layera.zoomRate !== layerb.zoomRate));
		var i, len, i2, i21, x, y, haspolya, haspolyb, polya, polyb;
		if (!different_layers)	// same layers: easy check
		{
			if (!a.bbox.intersects_rect(b.bbox))
				return false;
			if (!a.bquad.intersects_quad(b.bquad))
				return false;
			if (a.tilemap_exists && b.tilemap_exists)
				return false;
			if (a.tilemap_exists)
				return this.testTilemapOverlap(a, b);
			if (b.tilemap_exists)
				return this.testTilemapOverlap(b, a);
			haspolya = (a.collision_poly && !a.collision_poly.is_empty());
			haspolyb = (b.collision_poly && !b.collision_poly.is_empty());
			if (!haspolya && !haspolyb)
				return true;
			if (haspolya)
			{
				a.collision_poly.cache_poly(a.width, a.height, a.angle);
				polya = a.collision_poly;
			}
			else
			{
				this.temp_poly.set_from_quad(a.bquad, a.x, a.y, a.width, a.height);
				polya = this.temp_poly;
			}
			if (haspolyb)
			{
				b.collision_poly.cache_poly(b.width, b.height, b.angle);
				polyb = b.collision_poly;
			}
			else
			{
				this.temp_poly.set_from_quad(b.bquad, b.x, b.y, b.width, b.height);
				polyb = this.temp_poly;
			}
			return polya.intersects_poly(polyb, b.x - a.x, b.y - a.y);
		}
		else	// different layers: need to do full translated check
		{
			haspolya = (a.collision_poly && !a.collision_poly.is_empty());
			haspolyb = (b.collision_poly && !b.collision_poly.is_empty());
			if (haspolya)
			{
				a.collision_poly.cache_poly(a.width, a.height, a.angle);
				this.temp_poly.set_from_poly(a.collision_poly);
			}
			else
			{
				this.temp_poly.set_from_quad(a.bquad, a.x, a.y, a.width, a.height);
			}
			polya = this.temp_poly;
			if (haspolyb)
			{
				b.collision_poly.cache_poly(b.width, b.height, b.angle);
				this.temp_poly2.set_from_poly(b.collision_poly);
			}
			else
			{
				this.temp_poly2.set_from_quad(b.bquad, b.x, b.y, b.width, b.height);
			}
			polyb = this.temp_poly2;
			for (i = 0, len = polya.pts_count; i < len; i++)
			{
				i2 = i * 2;
				i21 = i2 + 1;
				x = polya.pts_cache[i2];
				y = polya.pts_cache[i21];
				polya.pts_cache[i2] = layera.layerToCanvas(x + a.x, y + a.y, true);
				polya.pts_cache[i21] = layera.layerToCanvas(x + a.x, y + a.y, false);
			}
			polya.update_bbox();
			for (i = 0, len = polyb.pts_count; i < len; i++)
			{
				i2 = i * 2;
				i21 = i2 + 1;
				x = polyb.pts_cache[i2];
				y = polyb.pts_cache[i21];
				polyb.pts_cache[i2] = layerb.layerToCanvas(x + b.x, y + b.y, true);
				polyb.pts_cache[i21] = layerb.layerToCanvas(x + b.x, y + b.y, false);
			}
			polyb.update_bbox();
			return polya.intersects_poly(polyb, 0, 0);
		}
	};
	var tmpQuad = new cr.quad();
	var tmpRect = new cr.rect(0, 0, 0, 0);
	var collrect_candidates = [];
	Runtime.prototype.testTilemapOverlap = function (tm, a)
	{
		var i, len, c, rc;
		var bbox = a.bbox;
		var tmx = tm.x;
		var tmy = tm.y;
		tm.getCollisionRectCandidates(bbox, collrect_candidates);
		var collrects = collrect_candidates;
		var haspolya = (a.collision_poly && !a.collision_poly.is_empty());
		for (i = 0, len = collrects.length; i < len; ++i)
		{
			c = collrects[i];
			rc = c.rc;
			if (bbox.intersects_rect_off(rc, tmx, tmy))
			{
				tmpQuad.set_from_rect(rc);
				tmpQuad.offset(tmx, tmy);
				if (tmpQuad.intersects_quad(a.bquad))
				{
					if (haspolya)
					{
						a.collision_poly.cache_poly(a.width, a.height, a.angle);
						if (c.poly)
						{
							if (c.poly.intersects_poly(a.collision_poly, a.x - (tmx + rc.left), a.y - (tmy + rc.top)))
							{
								collrect_candidates.length = 0;
								return true;
							}
						}
						else
						{
							this.temp_poly.set_from_quad(tmpQuad, 0, 0, rc.right - rc.left, rc.bottom - rc.top);
							if (this.temp_poly.intersects_poly(a.collision_poly, a.x, a.y))
							{
								collrect_candidates.length = 0;
								return true;
							}
						}
					}
					else
					{
						if (c.poly)
						{
							this.temp_poly.set_from_quad(a.bquad, 0, 0, a.width, a.height);
							if (c.poly.intersects_poly(this.temp_poly, -(tmx + rc.left), -(tmy + rc.top)))
							{
								collrect_candidates.length = 0;
								return true;
							}
						}
						else
						{
							collrect_candidates.length = 0;
							return true;
						}
					}
				}
			}
		}
		collrect_candidates.length = 0;
		return false;
	};
	Runtime.prototype.testRectOverlap = function (r, b)
	{
		if (!b || !b.collisionsEnabled)
			return false;
		b.update_bbox();
		var layerb = b.layer;
		var haspolyb, polyb;
		if (!b.bbox.intersects_rect(r))
			return false;
		if (b.tilemap_exists)
		{
			b.getCollisionRectCandidates(r, collrect_candidates);
			var collrects = collrect_candidates;
			var i, len, c, tilerc;
			var tmx = b.x;
			var tmy = b.y;
			for (i = 0, len = collrects.length; i < len; ++i)
			{
				c = collrects[i];
				tilerc = c.rc;
				if (r.intersects_rect_off(tilerc, tmx, tmy))
				{
					if (c.poly)
					{
						this.temp_poly.set_from_rect(r, 0, 0);
						if (c.poly.intersects_poly(this.temp_poly, -(tmx + tilerc.left), -(tmy + tilerc.top)))
						{
							collrect_candidates.length = 0;
							return true;
						}
					}
					else
					{
						collrect_candidates.length = 0;
						return true;
					}
				}
			}
			collrect_candidates.length = 0;
			return false;
		}
		else
		{
			tmpQuad.set_from_rect(r);
			if (!b.bquad.intersects_quad(tmpQuad))
				return false;
			haspolyb = (b.collision_poly && !b.collision_poly.is_empty());
			if (!haspolyb)
				return true;
			b.collision_poly.cache_poly(b.width, b.height, b.angle);
			tmpQuad.offset(-r.left, -r.top);
			this.temp_poly.set_from_quad(tmpQuad, 0, 0, 1, 1);
			return b.collision_poly.intersects_poly(this.temp_poly, r.left - b.x, r.top - b.y);
		}
	};
	Runtime.prototype.testSegmentOverlap = function (x1, y1, x2, y2, b)
	{
		if (!b || !b.collisionsEnabled)
			return false;
		b.update_bbox();
		var layerb = b.layer;
		var haspolyb, polyb;
		tmpRect.set(cr.min(x1, x2), cr.min(y1, y2), cr.max(x1, x2), cr.max(y1, y2));
		if (!b.bbox.intersects_rect(tmpRect))
			return false;
		if (b.tilemap_exists)
		{
			b.getCollisionRectCandidates(tmpRect, collrect_candidates);
			var collrects = collrect_candidates;
			var i, len, c, tilerc;
			var tmx = b.x;
			var tmy = b.y;
			for (i = 0, len = collrects.length; i < len; ++i)
			{
				c = collrects[i];
				tilerc = c.rc;
				if (tmpRect.intersects_rect_off(tilerc, tmx, tmy))
				{
					tmpQuad.set_from_rect(tilerc);
					tmpQuad.offset(tmx, tmy);
					if (tmpQuad.intersects_segment(x1, y1, x2, y2))
					{
						if (c.poly)
						{
							if (c.poly.intersects_segment(tmx + tilerc.left, tmy + tilerc.top, x1, y1, x2, y2))
							{
								collrect_candidates.length = 0;
								return true;
							}
						}
						else
						{
							collrect_candidates.length = 0;
							return true;
						}
					}
				}
			}
			collrect_candidates.length = 0;
			return false;
		}
		else
		{
			if (!b.bquad.intersects_segment(x1, y1, x2, y2))
				return false;
			haspolyb = (b.collision_poly && !b.collision_poly.is_empty());
			if (!haspolyb)
				return true;
			b.collision_poly.cache_poly(b.width, b.height, b.angle);
			return b.collision_poly.intersects_segment(b.x, b.y, x1, y1, x2, y2);
		}
	};
	Runtime.prototype.typeHasBehavior = function (t, b)
	{
		if (!b)
			return false;
		var i, len, j, lenj, f;
		for (i = 0, len = t.behaviors.length; i < len; i++)
		{
			if (t.behaviors[i].behavior instanceof b)
				return true;
		}
		if (!t.is_family)
		{
			for (i = 0, len = t.families.length; i < len; i++)
			{
				f = t.families[i];
				for (j = 0, lenj = f.behaviors.length; j < lenj; j++)
				{
					if (f.behaviors[j].behavior instanceof b)
						return true;
				}
			}
		}
		return false;
	};
	Runtime.prototype.typeHasNoSaveBehavior = function (t)
	{
		return this.typeHasBehavior(t, cr.behaviors.NoSave);
	};
	Runtime.prototype.typeHasPersistBehavior = function (t)
	{
		return this.typeHasBehavior(t, cr.behaviors.Persist);
	};
	Runtime.prototype.getSolidBehavior = function ()
	{
		return this.solidBehavior;
	};
	Runtime.prototype.getJumpthruBehavior = function ()
	{
		return this.jumpthruBehavior;
	};
	var candidates = [];
	Runtime.prototype.testOverlapSolid = function (inst)
	{
		var i, len, s;
		inst.update_bbox();
		this.getSolidCollisionCandidates(inst.layer, inst.bbox, candidates);
		for (i = 0, len = candidates.length; i < len; ++i)
		{
			s = candidates[i];
			if (!s.extra.solidEnabled)
				continue;
			if (this.testOverlap(inst, s))
			{
				candidates.length = 0;
				return s;
			}
		}
		candidates.length = 0;
		return null;
	};
	Runtime.prototype.testRectOverlapSolid = function (r)
	{
		var i, len, s;
		this.getSolidCollisionCandidates(null, r, candidates);
		for (i = 0, len = candidates.length; i < len; ++i)
		{
			s = candidates[i];
			if (!s.extra.solidEnabled)
				continue;
			if (this.testRectOverlap(r, s))
			{
				candidates.length = 0;
				return s;
			}
		}
		candidates.length = 0;
		return null;
	};
	var jumpthru_array_ret = [];
	Runtime.prototype.testOverlapJumpThru = function (inst, all)
	{
		var ret = null;
		if (all)
		{
			ret = jumpthru_array_ret;
			ret.length = 0;
		}
		inst.update_bbox();
		this.getJumpthruCollisionCandidates(inst.layer, inst.bbox, candidates);
		var i, len, j;
		for (i = 0, len = candidates.length; i < len; ++i)
		{
			j = candidates[i];
			if (!j.extra.jumpthruEnabled)
				continue;
			if (this.testOverlap(inst, j))
			{
				if (all)
					ret.push(j);
				else
				{
					candidates.length = 0;
					return j;
				}
			}
		}
		candidates.length = 0;
		return ret;
	};
	Runtime.prototype.pushOutSolid = function (inst, xdir, ydir, dist, include_jumpthrus, specific_jumpthru)
	{
		var push_dist = dist || 50;
		var oldx = inst.x
		var oldy = inst.y;
		var i;
		var last_overlapped = null, secondlast_overlapped = null;
		for (i = 0; i < push_dist; i++)
		{
			inst.x = (oldx + (xdir * i));
			inst.y = (oldy + (ydir * i));
			inst.set_bbox_changed();
			if (!this.testOverlap(inst, last_overlapped))
			{
				last_overlapped = this.testOverlapSolid(inst);
				if (last_overlapped)
					secondlast_overlapped = last_overlapped;
				if (!last_overlapped)
				{
					if (include_jumpthrus)
					{
						if (specific_jumpthru)
							last_overlapped = (this.testOverlap(inst, specific_jumpthru) ? specific_jumpthru : null);
						else
							last_overlapped = this.testOverlapJumpThru(inst);
						if (last_overlapped)
							secondlast_overlapped = last_overlapped;
					}
					if (!last_overlapped)
					{
						if (secondlast_overlapped)
							this.pushInFractional(inst, xdir, ydir, secondlast_overlapped, 16);
						return true;
					}
				}
			}
		}
		inst.x = oldx;
		inst.y = oldy;
		inst.set_bbox_changed();
		return false;
	};
	Runtime.prototype.pushOut = function (inst, xdir, ydir, dist, otherinst)
	{
		var push_dist = dist || 50;
		var oldx = inst.x
		var oldy = inst.y;
		var i;
		for (i = 0; i < push_dist; i++)
		{
			inst.x = (oldx + (xdir * i));
			inst.y = (oldy + (ydir * i));
			inst.set_bbox_changed();
			if (!this.testOverlap(inst, otherinst))
				return true;
		}
		inst.x = oldx;
		inst.y = oldy;
		inst.set_bbox_changed();
		return false;
	};
	Runtime.prototype.pushInFractional = function (inst, xdir, ydir, obj, limit)
	{
		var divisor = 2;
		var frac;
		var forward = false;
		var overlapping = false;
		var bestx = inst.x;
		var besty = inst.y;
		while (divisor <= limit)
		{
			frac = 1 / divisor;
			divisor *= 2;
			inst.x += xdir * frac * (forward ? 1 : -1);
			inst.y += ydir * frac * (forward ? 1 : -1);
			inst.set_bbox_changed();
			if (this.testOverlap(inst, obj))
			{
				forward = true;
				overlapping = true;
			}
			else
			{
				forward = false;
				overlapping = false;
				bestx = inst.x;
				besty = inst.y;
			}
		}
		if (overlapping)
		{
			inst.x = bestx;
			inst.y = besty;
			inst.set_bbox_changed();
		}
	};
	Runtime.prototype.pushOutSolidNearest = function (inst, max_dist_)
	{
		var max_dist = (cr.is_undefined(max_dist_) ? 100 : max_dist_);
		var dist = 0;
		var oldx = inst.x
		var oldy = inst.y;
		var dir = 0;
		var dx = 0, dy = 0;
		var last_overlapped = this.testOverlapSolid(inst);
		if (!last_overlapped)
			return true;		// already clear of solids
		while (dist <= max_dist)
		{
			switch (dir) {
			case 0:		dx = 0; dy = -1; dist++; break;
			case 1:		dx = 1; dy = -1; break;
			case 2:		dx = 1; dy = 0; break;
			case 3:		dx = 1; dy = 1; break;
			case 4:		dx = 0; dy = 1; break;
			case 5:		dx = -1; dy = 1; break;
			case 6:		dx = -1; dy = 0; break;
			case 7:		dx = -1; dy = -1; break;
			}
			dir = (dir + 1) % 8;
			inst.x = cr.floor(oldx + (dx * dist));
			inst.y = cr.floor(oldy + (dy * dist));
			inst.set_bbox_changed();
			if (!this.testOverlap(inst, last_overlapped))
			{
				last_overlapped = this.testOverlapSolid(inst);
				if (!last_overlapped)
					return true;
			}
		}
		inst.x = oldx;
		inst.y = oldy;
		inst.set_bbox_changed();
		return false;
	};
	Runtime.prototype.registerCollision = function (a, b)
	{
		if (!a.collisionsEnabled || !b.collisionsEnabled)
			return;
		this.registered_collisions.push([a, b]);
	};
	Runtime.prototype.checkRegisteredCollision = function (a, b)
	{
		var i, len, x;
		for (i = 0, len = this.registered_collisions.length; i < len; i++)
		{
			x = this.registered_collisions[i];
			if ((x[0] == a && x[1] == b) || (x[0] == b && x[1] == a))
				return true;
		}
		return false;
	};
	Runtime.prototype.calculateSolidBounceAngle = function(inst, startx, starty, obj)
	{
		var objx = inst.x;
		var objy = inst.y;
		var radius = cr.max(10, cr.distanceTo(startx, starty, objx, objy));
		var startangle = cr.angleTo(startx, starty, objx, objy);
		var firstsolid = obj || this.testOverlapSolid(inst);
		if (!firstsolid)
			return cr.clamp_angle(startangle + cr.PI);
		var cursolid = firstsolid;
		var i, curangle, anticlockwise_free_angle, clockwise_free_angle;
		var increment = cr.to_radians(5);	// 5 degree increments
		for (i = 1; i < 36; i++)
		{
			curangle = startangle - i * increment;
			inst.x = startx + Math.cos(curangle) * radius;
			inst.y = starty + Math.sin(curangle) * radius;
			inst.set_bbox_changed();
			if (!this.testOverlap(inst, cursolid))
			{
				cursolid = obj ? null : this.testOverlapSolid(inst);
				if (!cursolid)
				{
					anticlockwise_free_angle = curangle;
					break;
				}
			}
		}
		if (i === 36)
			anticlockwise_free_angle = cr.clamp_angle(startangle + cr.PI);
		var cursolid = firstsolid;
		for (i = 1; i < 36; i++)
		{
			curangle = startangle + i * increment;
			inst.x = startx + Math.cos(curangle) * radius;
			inst.y = starty + Math.sin(curangle) * radius;
			inst.set_bbox_changed();
			if (!this.testOverlap(inst, cursolid))
			{
				cursolid = obj ? null : this.testOverlapSolid(inst);
				if (!cursolid)
				{
					clockwise_free_angle = curangle;
					break;
				}
			}
		}
		if (i === 36)
			clockwise_free_angle = cr.clamp_angle(startangle + cr.PI);
		inst.x = objx;
		inst.y = objy;
		inst.set_bbox_changed();
		if (clockwise_free_angle === anticlockwise_free_angle)
			return clockwise_free_angle;
		var half_diff = cr.angleDiff(clockwise_free_angle, anticlockwise_free_angle) / 2;
		var normal;
		if (cr.angleClockwise(clockwise_free_angle, anticlockwise_free_angle))
		{
			normal = cr.clamp_angle(anticlockwise_free_angle + half_diff + cr.PI);
		}
		else
		{
			normal = cr.clamp_angle(clockwise_free_angle + half_diff);
		}
;
		var vx = Math.cos(startangle);
		var vy = Math.sin(startangle);
		var nx = Math.cos(normal);
		var ny = Math.sin(normal);
		var v_dot_n = vx * nx + vy * ny;
		var rx = vx - 2 * v_dot_n * nx;
		var ry = vy - 2 * v_dot_n * ny;
		return cr.angleTo(0, 0, rx, ry);
	};
	var triggerSheetIndex = -1;
	Runtime.prototype.trigger = function (method, inst, value /* for fast triggers */)
	{
;
		if (!this.running_layout)
			return false;
		var sheet = this.running_layout.event_sheet;
		if (!sheet)
			return false;     // no event sheet active; nothing to trigger
		var ret = false;
		var r, i, len;
		triggerSheetIndex++;
		var deep_includes = sheet.deep_includes;
		for (i = 0, len = deep_includes.length; i < len; ++i)
		{
			r = this.triggerOnSheet(method, inst, deep_includes[i], value);
			ret = ret || r;
		}
		r = this.triggerOnSheet(method, inst, sheet, value);
		ret = ret || r;
		triggerSheetIndex--;
		return ret;
    };
    Runtime.prototype.triggerOnSheet = function (method, inst, sheet, value)
    {
        var ret = false;
		var i, leni, r, families;
		if (!inst)
		{
			r = this.triggerOnSheetForTypeName(method, inst, "system", sheet, value);
			ret = ret || r;
		}
		else
		{
			r = this.triggerOnSheetForTypeName(method, inst, inst.type.name, sheet, value);
			ret = ret || r;
			families = inst.type.families;
			for (i = 0, leni = families.length; i < leni; ++i)
			{
				r = this.triggerOnSheetForTypeName(method, inst, families[i].name, sheet, value);
				ret = ret || r;
			}
		}
		return ret;             // true if anything got triggered
	};
	Runtime.prototype.triggerOnSheetForTypeName = function (method, inst, type_name, sheet, value)
	{
		var i, leni;
		var ret = false, ret2 = false;
		var trig, index;
		var fasttrigger = (typeof value !== "undefined");
		var triggers = (fasttrigger ? sheet.fasttriggers : sheet.triggers);
		var obj_entry = triggers[type_name];
		if (!obj_entry)
			return ret;
		var triggers_list = null;
		for (i = 0, leni = obj_entry.length; i < leni; ++i)
		{
			if (obj_entry[i].method == method)
			{
				triggers_list = obj_entry[i].evs;
				break;
			}
		}
		if (!triggers_list)
			return ret;
		var triggers_to_fire;
		if (fasttrigger)
		{
			triggers_to_fire = triggers_list[value];
		}
		else
		{
			triggers_to_fire = triggers_list;
		}
		if (!triggers_to_fire)
			return null;
		for (i = 0, leni = triggers_to_fire.length; i < leni; i++)
		{
			trig = triggers_to_fire[i][0];
			index = triggers_to_fire[i][1];
			ret2 = this.executeSingleTrigger(inst, type_name, trig, index);
			ret = ret || ret2;
		}
		return ret;
	};
	Runtime.prototype.executeSingleTrigger = function (inst, type_name, trig, index)
	{
		var i, leni;
		var ret = false;
		this.trigger_depth++;
		var current_event = this.getCurrentEventStack().current_event;
		if (current_event)
			this.pushCleanSol(current_event.solModifiersIncludingParents);
		var isrecursive = (this.trigger_depth > 1);		// calling trigger from inside another trigger
		this.pushCleanSol(trig.solModifiersIncludingParents);
		if (isrecursive)
			this.pushLocalVarStack();
		var event_stack = this.pushEventStack(trig);
		event_stack.current_event = trig;
		if (inst)
		{
			var sol = this.types[type_name].getCurrentSol();
			sol.select_all = false;
			sol.instances.length = 1;
			sol.instances[0] = inst;
			this.types[type_name].applySolToContainer();
		}
		var ok_to_run = true;
		if (trig.parent)
		{
			var temp_parents_arr = event_stack.temp_parents_arr;
			var cur_parent = trig.parent;
			while (cur_parent)
			{
				temp_parents_arr.push(cur_parent);
				cur_parent = cur_parent.parent;
			}
			temp_parents_arr.reverse();
			for (i = 0, leni = temp_parents_arr.length; i < leni; i++)
			{
				if (!temp_parents_arr[i].run_pretrigger())   // parent event failed
				{
					ok_to_run = false;
					break;
				}
			}
		}
		if (ok_to_run)
		{
			this.execcount++;
			if (trig.orblock)
				trig.run_orblocktrigger(index);
			else
				trig.run();
			ret = ret || event_stack.last_event_true;
		}
		this.popEventStack();
		if (isrecursive)
			this.popLocalVarStack();
		this.popSol(trig.solModifiersIncludingParents);
		if (current_event)
			this.popSol(current_event.solModifiersIncludingParents);
		if (this.isInOnDestroy === 0 && triggerSheetIndex === 0 && !this.isRunningEvents && (!this.deathRow.isEmpty() || this.createRow.length))
		{
			this.ClearDeathRow();
		}
		this.trigger_depth--;
		return ret;
	};
	Runtime.prototype.getCurrentCondition = function ()
	{
		var evinfo = this.getCurrentEventStack();
		return evinfo.current_event.conditions[evinfo.cndindex];
	};
	Runtime.prototype.getCurrentAction = function ()
	{
		var evinfo = this.getCurrentEventStack();
		return evinfo.current_event.actions[evinfo.actindex];
	};
	Runtime.prototype.pushLocalVarStack = function ()
	{
		this.localvar_stack_index++;
		if (this.localvar_stack_index >= this.localvar_stack.length)
			this.localvar_stack.push([]);
	};
	Runtime.prototype.popLocalVarStack = function ()
	{
;
		this.localvar_stack_index--;
	};
	Runtime.prototype.getCurrentLocalVarStack = function ()
	{
		return this.localvar_stack[this.localvar_stack_index];
	};
	Runtime.prototype.pushEventStack = function (cur_event)
	{
		this.event_stack_index++;
		if (this.event_stack_index >= this.event_stack.length)
			this.event_stack.push(new cr.eventStackFrame());
		var ret = this.getCurrentEventStack();
		ret.reset(cur_event);
		return ret;
	};
	Runtime.prototype.popEventStack = function ()
	{
;
		this.event_stack_index--;
	};
	Runtime.prototype.getCurrentEventStack = function ()
	{
		return this.event_stack[this.event_stack_index];
	};
	Runtime.prototype.pushLoopStack = function (name_)
	{
		this.loop_stack_index++;
		if (this.loop_stack_index >= this.loop_stack.length)
		{
			this.loop_stack.push(cr.seal({ name: name_, index: 0, stopped: false }));
		}
		var ret = this.getCurrentLoop();
		ret.name = name_;
		ret.index = 0;
		ret.stopped = false;
		return ret;
	};
	Runtime.prototype.popLoopStack = function ()
	{
;
		this.loop_stack_index--;
	};
	Runtime.prototype.getCurrentLoop = function ()
	{
		return this.loop_stack[this.loop_stack_index];
	};
	Runtime.prototype.getEventVariableByName = function (name, scope)
	{
		var i, leni, j, lenj, sheet, e;
		while (scope)
		{
			for (i = 0, leni = scope.subevents.length; i < leni; i++)
			{
				e = scope.subevents[i];
				if (e instanceof cr.eventvariable && cr.equals_nocase(name, e.name))
					return e;
			}
			scope = scope.parent;
		}
		for (i = 0, leni = this.eventsheets_by_index.length; i < leni; i++)
		{
			sheet = this.eventsheets_by_index[i];
			for (j = 0, lenj = sheet.events.length; j < lenj; j++)
			{
				e = sheet.events[j];
				if (e instanceof cr.eventvariable && cr.equals_nocase(name, e.name))
					return e;
			}
		}
		return null;
	};
	Runtime.prototype.getLayoutBySid = function (sid_)
	{
		var i, len;
		for (i = 0, len = this.layouts_by_index.length; i < len; i++)
		{
			if (this.layouts_by_index[i].sid === sid_)
				return this.layouts_by_index[i];
		}
		return null;
	};
	Runtime.prototype.getObjectTypeBySid = function (sid_)
	{
		var i, len;
		for (i = 0, len = this.types_by_index.length; i < len; i++)
		{
			if (this.types_by_index[i].sid === sid_)
				return this.types_by_index[i];
		}
		return null;
	};
	Runtime.prototype.getGroupBySid = function (sid_)
	{
		var i, len;
		for (i = 0, len = this.allGroups.length; i < len; i++)
		{
			if (this.allGroups[i].sid === sid_)
				return this.allGroups[i];
		}
		return null;
	};
	function makeSaveDb(e)
	{
		var db = e.target.result;
		db.createObjectStore("saves", { keyPath: "slot" });
	};
	function IndexedDB_WriteSlot(slot_, data_, oncomplete_, onerror_)
	{
		var request = indexedDB.open("_C2SaveStates");
		request.onupgradeneeded = makeSaveDb;
		request.onerror = onerror_;
		request.onsuccess = function (e)
		{
			var db = e.target.result;
			db.onerror = onerror_;
			var transaction = db.transaction(["saves"], "readwrite");
			var objectStore = transaction.objectStore("saves");
			var putReq = objectStore.put({"slot": slot_, "data": data_ });
			putReq.onsuccess = oncomplete_;
		};
	};
	function IndexedDB_ReadSlot(slot_, oncomplete_, onerror_)
	{
		var request = indexedDB.open("_C2SaveStates");
		request.onupgradeneeded = makeSaveDb;
		request.onerror = onerror_;
		request.onsuccess = function (e)
		{
			var db = e.target.result;
			db.onerror = onerror_;
			var transaction = db.transaction(["saves"]);
			var objectStore = transaction.objectStore("saves");
			var readReq = objectStore.get(slot_);
			readReq.onsuccess = function (e)
			{
				if (readReq.result)
					oncomplete_(readReq.result["data"]);
				else
					oncomplete_(null);
			};
		};
	};
	Runtime.prototype.signalContinuousPreview = function ()
	{
		this.signalledContinuousPreview = true;
	};
	function doContinuousPreviewReload()
	{
		cr.logexport("Reloading for continuous preview");
		if (!!window["c2cocoonjs"])
		{
			CocoonJS["App"]["reload"]();
		}
		else
		{
			if (window.location.search.indexOf("continuous") > -1)
				window.location.reload(true);
			else
				window.location = window.location + "?continuous";
		}
	};
	Runtime.prototype.handleSaveLoad = function ()
	{
		var self = this;
		var savingToSlot = this.saveToSlot;
		var savingJson = this.lastSaveJson;
		var loadingFromSlot = this.loadFromSlot;
		var continuous = false;
		if (this.signalledContinuousPreview)
		{
			continuous = true;
			savingToSlot = "__c2_continuouspreview";
			this.signalledContinuousPreview = false;
		}
		if (savingToSlot.length)
		{
			this.ClearDeathRow();
			savingJson = this.saveToJSONString();
			if (window.indexedDB && !this.isCocoonJs)
			{
				IndexedDB_WriteSlot(savingToSlot, savingJson, function ()
				{
					cr.logexport("Saved state to IndexedDB storage (" + savingJson.length + " bytes)");
					self.lastSaveJson = savingJson;
					self.trigger(cr.system_object.prototype.cnds.OnSaveComplete, null);
					self.lastSaveJson = "";
					if (continuous)
						doContinuousPreviewReload();
				}, function (e)
				{
					try {
						localStorage.setItem("__c2save_" + savingToSlot, savingJson);
						cr.logexport("Saved state to WebStorage (" + savingJson.length + " bytes)");
						self.lastSaveJson = savingJson;
						self.trigger(cr.system_object.prototype.cnds.OnSaveComplete, null);
						self.lastSaveJson = "";
						if (continuous)
							doContinuousPreviewReload();
					}
					catch (f)
					{
						cr.logexport("Failed to save game state: " + e + "; " + f);
					}
				});
			}
			else
			{
				try {
					localStorage.setItem("__c2save_" + savingToSlot, savingJson);
					cr.logexport("Saved state to WebStorage (" + savingJson.length + " bytes)");
					self.lastSaveJson = savingJson;
					this.trigger(cr.system_object.prototype.cnds.OnSaveComplete, null);
					self.lastSaveJson = "";
					if (continuous)
						doContinuousPreviewReload();
				}
				catch (e)
				{
					cr.logexport("Error saving to WebStorage: " + e);
				}
			}
			this.saveToSlot = "";
			this.loadFromSlot = "";
			this.loadFromJson = "";
		}
		if (loadingFromSlot.length)
		{
			if (window.indexedDB && !this.isCocoonJs)
			{
				IndexedDB_ReadSlot(loadingFromSlot, function (result_)
				{
					if (result_)
					{
						self.loadFromJson = result_;
						cr.logexport("Loaded state from IndexedDB storage (" + self.loadFromJson.length + " bytes)");
					}
					else
					{
						self.loadFromJson = localStorage.getItem("__c2save_" + loadingFromSlot) || "";
						cr.logexport("Loaded state from WebStorage (" + self.loadFromJson.length + " bytes)");
					}
					self.suspendDrawing = false;
					if (!self.loadFromJson.length)
						self.trigger(cr.system_object.prototype.cnds.OnLoadFailed, null);
				}, function (e)
				{
					self.loadFromJson = localStorage.getItem("__c2save_" + loadingFromSlot) || "";
					cr.logexport("Loaded state from WebStorage (" + self.loadFromJson.length + " bytes)");
					self.suspendDrawing = false;
					if (!self.loadFromJson.length)
						self.trigger(cr.system_object.prototype.cnds.OnLoadFailed, null);
				});
			}
			else
			{
				this.loadFromJson = localStorage.getItem("__c2save_" + loadingFromSlot) || "";
				cr.logexport("Loaded state from WebStorage (" + this.loadFromJson.length + " bytes)");
				this.suspendDrawing = false;
				if (!self.loadFromJson.length)
					self.trigger(cr.system_object.prototype.cnds.OnLoadFailed, null);
			}
			this.loadFromSlot = "";
			this.saveToSlot = "";
		}
		if (this.loadFromJson.length)
		{
			this.ClearDeathRow();
			this.loadFromJSONString(this.loadFromJson);
			this.lastSaveJson = this.loadFromJson;
			this.trigger(cr.system_object.prototype.cnds.OnLoadComplete, null);
			this.lastSaveJson = "";
			this.loadFromJson = "";
		}
	};
	function CopyExtraObject(extra)
	{
		var p, ret = {};
		for (p in extra)
		{
			if (extra.hasOwnProperty(p))
			{
				if (extra[p] instanceof cr.ObjectSet)
					continue;
				if (extra[p] && typeof extra[p].c2userdata !== "undefined")
					continue;
				ret[p] = extra[p];
			}
		}
		return ret;
	};
	Runtime.prototype.saveToJSONString = function()
	{
		var i, len, j, lenj, type, layout, typeobj, g, c, a, v, p;
		var o = {
			"c2save":				true,
			"version":				1,
			"rt": {
				"time":				this.kahanTime.sum,
				"timescale":		this.timescale,
				"tickcount":		this.tickcount,
				"execcount":		this.execcount,
				"next_uid":			this.next_uid,
				"running_layout":	this.running_layout.sid,
				"start_time_offset": (Date.now() - this.start_time)
			},
			"types": {},
			"layouts": {},
			"events": {
				"groups": {},
				"cnds": {},
				"acts": {},
				"vars": {}
			}
		};
		for (i = 0, len = this.types_by_index.length; i < len; i++)
		{
			type = this.types_by_index[i];
			if (type.is_family || this.typeHasNoSaveBehavior(type))
				continue;
			typeobj = {
				"instances": []
			};
			if (cr.hasAnyOwnProperty(type.extra))
				typeobj["ex"] = CopyExtraObject(type.extra);
			for (j = 0, lenj = type.instances.length; j < lenj; j++)
			{
				typeobj["instances"].push(this.saveInstanceToJSON(type.instances[j]));
			}
			o["types"][type.sid.toString()] = typeobj;
		}
		for (i = 0, len = this.layouts_by_index.length; i < len; i++)
		{
			layout = this.layouts_by_index[i];
			o["layouts"][layout.sid.toString()] = layout.saveToJSON();
		}
		var ogroups = o["events"]["groups"];
		for (i = 0, len = this.allGroups.length; i < len; i++)
		{
			g = this.allGroups[i];
			ogroups[g.sid.toString()] = this.groups_by_name[g.group_name].group_active;
		}
		var ocnds = o["events"]["cnds"];
		for (p in this.cndsBySid)
		{
			if (this.cndsBySid.hasOwnProperty(p))
			{
				c = this.cndsBySid[p];
				if (cr.hasAnyOwnProperty(c.extra))
					ocnds[p] = { "ex": CopyExtraObject(c.extra) };
			}
		}
		var oacts = o["events"]["acts"];
		for (p in this.actsBySid)
		{
			if (this.actsBySid.hasOwnProperty(p))
			{
				a = this.actsBySid[p];
				if (cr.hasAnyOwnProperty(a.extra))
					oacts[p] = { "ex": a.extra };
			}
		}
		var ovars = o["events"]["vars"];
		for (p in this.varsBySid)
		{
			if (this.varsBySid.hasOwnProperty(p))
			{
				v = this.varsBySid[p];
				if (!v.is_constant && (!v.parent || v.is_static))
					ovars[p] = v.data;
			}
		}
		o["system"] = this.system.saveToJSON();
		return JSON.stringify(o);
	};
	Runtime.prototype.refreshUidMap = function ()
	{
		var i, len, type, j, lenj, inst;
		this.objectsByUid = {};
		for (i = 0, len = this.types_by_index.length; i < len; i++)
		{
			type = this.types_by_index[i];
			if (type.is_family)
				continue;
			for (j = 0, lenj = type.instances.length; j < lenj; j++)
			{
				inst = type.instances[j];
				this.objectsByUid[inst.uid.toString()] = inst;
			}
		}
	};
	Runtime.prototype.loadFromJSONString = function (str)
	{
		var o = JSON.parse(str);
		if (!o["c2save"])
			return;		// probably not a c2 save state
		if (o["version"] > 1)
			return;		// from future version of c2; assume not compatible
		var rt = o["rt"];
		this.kahanTime.reset();
		this.kahanTime.sum = rt["time"];
		this.timescale = rt["timescale"];
		this.tickcount = rt["tickcount"];
		this.start_time = Date.now() - rt["start_time_offset"];
		var layout_sid = rt["running_layout"];
		if (layout_sid !== this.running_layout.sid)
		{
			var changeToLayout = this.getLayoutBySid(layout_sid);
			if (changeToLayout)
				this.doChangeLayout(changeToLayout);
			else
				return;		// layout that was saved on has gone missing (deleted?)
		}
		this.isLoadingState = true;
		var i, len, j, lenj, k, lenk, p, type, existing_insts, load_insts, inst, binst, layout, layer, g, iid, t;
		var otypes = o["types"];
		for (p in otypes)
		{
			if (otypes.hasOwnProperty(p))
			{
				type = this.getObjectTypeBySid(parseInt(p, 10));
				if (!type || type.is_family || this.typeHasNoSaveBehavior(type))
					continue;
				if (otypes[p]["ex"])
					type.extra = otypes[p]["ex"];
				else
					cr.wipe(type.extra);
				existing_insts = type.instances;
				load_insts = otypes[p]["instances"];
				for (i = 0, len = cr.min(existing_insts.length, load_insts.length); i < len; i++)
				{
					this.loadInstanceFromJSON(existing_insts[i], load_insts[i]);
				}
				for (i = load_insts.length, len = existing_insts.length; i < len; i++)
					this.DestroyInstance(existing_insts[i]);
				for (i = existing_insts.length, len = load_insts.length; i < len; i++)
				{
					layer = null;
					if (type.plugin.is_world)
					{
						layer = this.running_layout.getLayerBySid(load_insts[i]["w"]["l"]);
						if (!layer)
							continue;
					}
					inst = this.createInstanceFromInit(type.default_instance, layer, false, 0, 0, true);
					this.loadInstanceFromJSON(inst, load_insts[i]);
				}
				type.stale_iids = true;
			}
		}
		this.ClearDeathRow();
		this.refreshUidMap();
		var olayouts = o["layouts"];
		for (p in olayouts)
		{
			if (olayouts.hasOwnProperty(p))
			{
				layout = this.getLayoutBySid(parseInt(p, 10));
				if (!layout)
					continue;		// must've gone missing
				layout.loadFromJSON(olayouts[p]);
			}
		}
		var ogroups = o["events"]["groups"];
		for (p in ogroups)
		{
			if (ogroups.hasOwnProperty(p))
			{
				g = this.getGroupBySid(parseInt(p, 10));
				if (g && this.groups_by_name[g.group_name])
					this.groups_by_name[g.group_name].group_active = ogroups[p];
			}
		}
		var ocnds = o["events"]["cnds"];
		for (p in ocnds)
		{
			if (ocnds.hasOwnProperty(p) && this.cndsBySid.hasOwnProperty(p))
			{
				this.cndsBySid[p].extra = ocnds[p]["ex"];
			}
		}
		var oacts = o["events"]["acts"];
		for (p in oacts)
		{
			if (oacts.hasOwnProperty(p) && this.actsBySid.hasOwnProperty(p))
			{
				this.actsBySid[p].extra = oacts[p]["ex"];
			}
		}
		var ovars = o["events"]["vars"];
		for (p in ovars)
		{
			if (ovars.hasOwnProperty(p) && this.varsBySid.hasOwnProperty(p))
			{
				this.varsBySid[p].data = ovars[p];
			}
		}
		this.next_uid = rt["next_uid"];
		this.isLoadingState = false;
		this.system.loadFromJSON(o["system"]);
		for (i = 0, len = this.types_by_index.length; i < len; i++)
		{
			type = this.types_by_index[i];
			if (type.is_family)
				continue;
			for (j = 0, lenj = type.instances.length; j < lenj; j++)
			{
				inst = type.instances[j];
				if (type.is_contained)
				{
					iid = inst.get_iid();
					inst.siblings.length = 0;
					for (k = 0, lenk = type.container.length; k < lenk; k++)
					{
						t = type.container[k];
						if (type === t)
							continue;
;
						inst.siblings.push(t.instances[iid]);
					}
				}
				if (inst.afterLoad)
					inst.afterLoad();
				if (inst.behavior_insts)
				{
					for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++)
					{
						binst = inst.behavior_insts[k];
						if (binst.afterLoad)
							binst.afterLoad();
					}
				}
			}
		}
		this.redraw = true;
	};
	Runtime.prototype.saveInstanceToJSON = function(inst, state_only)
	{
		var i, len, world, behinst, et;
		var type = inst.type;
		var plugin = type.plugin;
		var o = {};
		if (state_only)
			o["c2"] = true;		// mark as known json data from Construct 2
		else
			o["uid"] = inst.uid;
		if (cr.hasAnyOwnProperty(inst.extra))
			o["ex"] = CopyExtraObject(inst.extra);
		if (inst.instance_vars && inst.instance_vars.length)
		{
			o["ivs"] = {};
			for (i = 0, len = inst.instance_vars.length; i < len; i++)
			{
				o["ivs"][inst.type.instvar_sids[i].toString()] = inst.instance_vars[i];
			}
		}
		if (plugin.is_world)
		{
			world = {
				"x": inst.x,
				"y": inst.y,
				"w": inst.width,
				"h": inst.height,
				"l": inst.layer.sid,
				"zi": inst.get_zindex()
			};
			if (inst.angle !== 0)
				world["a"] = inst.angle;
			if (inst.opacity !== 1)
				world["o"] = inst.opacity;
			if (inst.hotspotX !== 0.5)
				world["hX"] = inst.hotspotX;
			if (inst.hotspotY !== 0.5)
				world["hY"] = inst.hotspotY;
			if (inst.blend_mode !== 0)
				world["bm"] = inst.blend_mode;
			if (!inst.visible)
				world["v"] = inst.visible;
			if (!inst.collisionsEnabled)
				world["ce"] = inst.collisionsEnabled;
			if (inst.my_timescale !== -1)
				world["mts"] = inst.my_timescale;
			if (type.effect_types.length)
			{
				world["fx"] = [];
				for (i = 0, len = type.effect_types.length; i < len; i++)
				{
					et = type.effect_types[i];
					world["fx"].push({"name": et.name,
									  "active": inst.active_effect_flags[et.index],
									  "params": inst.effect_params[et.index] });
				}
			}
			o["w"] = world;
		}
		if (inst.behavior_insts && inst.behavior_insts.length)
		{
			o["behs"] = {};
			for (i = 0, len = inst.behavior_insts.length; i < len; i++)
			{
				behinst = inst.behavior_insts[i];
				if (behinst.saveToJSON)
					o["behs"][behinst.type.sid.toString()] = behinst.saveToJSON();
			}
		}
		if (inst.saveToJSON)
			o["data"] = inst.saveToJSON();
		return o;
	};
	Runtime.prototype.getInstanceVarIndexBySid = function (type, sid_)
	{
		var i, len;
		for (i = 0, len = type.instvar_sids.length; i < len; i++)
		{
			if (type.instvar_sids[i] === sid_)
				return i;
		}
		return -1;
	};
	Runtime.prototype.getBehaviorIndexBySid = function (inst, sid_)
	{
		var i, len;
		for (i = 0, len = inst.behavior_insts.length; i < len; i++)
		{
			if (inst.behavior_insts[i].type.sid === sid_)
				return i;
		}
		return -1;
	};
	Runtime.prototype.loadInstanceFromJSON = function(inst, o, state_only)
	{
		var p, i, len, iv, oivs, world, fxindex, obehs, behindex;
		var oldlayer;
		var type = inst.type;
		var plugin = type.plugin;
		if (state_only)
		{
			if (!o["c2"])
				return;
		}
		else
			inst.uid = o["uid"];
		if (o["ex"])
			inst.extra = o["ex"];
		else
			cr.wipe(inst.extra);
		oivs = o["ivs"];
		if (oivs)
		{
			for (p in oivs)
			{
				if (oivs.hasOwnProperty(p))
				{
					iv = this.getInstanceVarIndexBySid(type, parseInt(p, 10));
					if (iv < 0 || iv >= inst.instance_vars.length)
						continue;		// must've gone missing
					inst.instance_vars[iv] = oivs[p];
				}
			}
		}
		if (plugin.is_world)
		{
			world = o["w"];
			if (inst.layer.sid !== world["l"])
			{
				oldlayer = inst.layer;
				inst.layer = this.running_layout.getLayerBySid(world["l"]);
				if (inst.layer)
				{
					inst.layer.instances.push(inst);
					inst.layer.zindices_stale = true;
					cr.arrayFindRemove(oldlayer.instances, inst);
					oldlayer.zindices_stale = true;
				}
				else
				{
					inst.layer = oldlayer;
					this.DestroyInstance(inst);
				}
			}
			inst.x = world["x"];
			inst.y = world["y"];
			inst.width = world["w"];
			inst.height = world["h"];
			inst.zindex = world["zi"];
			inst.angle = world.hasOwnProperty("a") ? world["a"] : 0;
			inst.opacity = world.hasOwnProperty("o") ? world["o"] : 1;
			inst.hotspotX = world.hasOwnProperty("hX") ? world["hX"] : 0.5;
			inst.hotspotY = world.hasOwnProperty("hY") ? world["hY"] : 0.5;
			inst.visible = world.hasOwnProperty("v") ? world["v"] : true;
			inst.collisionsEnabled = world.hasOwnProperty("ce") ? world["ce"] : true;
			inst.my_timescale = world.hasOwnProperty("mts") ? world["mts"] : -1;
			inst.blend_mode = world.hasOwnProperty("bm") ? world["bm"] : 0;;
			inst.compositeOp = cr.effectToCompositeOp(inst.blend_mode);
			if (this.gl)
				cr.setGLBlend(inst, inst.blend_mode, this.gl);
			inst.set_bbox_changed();
			if (world.hasOwnProperty("fx"))
			{
				for (i = 0, len = world["fx"].length; i < len; i++)
				{
					fxindex = type.getEffectIndexByName(world["fx"][i]["name"]);
					if (fxindex < 0)
						continue;		// must've gone missing
					inst.active_effect_flags[fxindex] = world["fx"][i]["active"];
					inst.effect_params[fxindex] = world["fx"][i]["params"];
				}
			}
			inst.updateActiveEffects();
		}
		obehs = o["behs"];
		if (obehs)
		{
			for (p in obehs)
			{
				if (obehs.hasOwnProperty(p))
				{
					behindex = this.getBehaviorIndexBySid(inst, parseInt(p, 10));
					if (behindex < 0)
						continue;		// must've gone missing
					inst.behavior_insts[behindex].loadFromJSON(obehs[p]);
				}
			}
		}
		if (o["data"])
			inst.loadFromJSON(o["data"]);
	};
	cr.runtime = Runtime;
	cr.createRuntime = function (canvasid)
	{
		return new Runtime(document.getElementById(canvasid));
	};
	cr.createDCRuntime = function (w, h)
	{
		return new Runtime({ "dc": true, "width": w, "height": h });
	};
	window["cr_createRuntime"] = cr.createRuntime;
	window["cr_createDCRuntime"] = cr.createDCRuntime;
	window["createCocoonJSRuntime"] = function ()
	{
		window["c2cocoonjs"] = true;
		var canvas = document.createElement("screencanvas") || document.createElement("canvas");
		canvas.screencanvas = true;
		document.body.appendChild(canvas);
		var rt = new Runtime(canvas);
		window["c2runtime"] = rt;
		window.addEventListener("orientationchange", function () {
			window["c2runtime"]["setSize"](window.innerWidth, window.innerHeight);
		});
		window["c2runtime"]["setSize"](window.innerWidth, window.innerHeight);
		return rt;
	};
	window["createEjectaRuntime"] = function ()
	{
		var canvas = document.getElementById("canvas");
		var rt = new Runtime(canvas);
		window["c2runtime"] = rt;
		window["c2runtime"]["setSize"](window.innerWidth, window.innerHeight);
		return rt;
	};
}());
window["cr_getC2Runtime"] = function()
{
	var canvas = document.getElementById("c2canvas");
	if (canvas)
		return canvas["c2runtime"];
	else if (window["c2runtime"])
		return window["c2runtime"];
	else
		return null;
}
window["cr_sizeCanvas"] = function(w, h)
{
	if (w === 0 || h === 0)
		return;
	var runtime = window["cr_getC2Runtime"]();
	if (runtime)
		runtime["setSize"](w, h);
}
window["cr_setSuspended"] = function(s)
{
	var runtime = window["cr_getC2Runtime"]();
	if (runtime)
		runtime["setSuspended"](s);
}
;
(function()
{
	function Layout(runtime, m)
	{
		this.runtime = runtime;
		this.event_sheet = null;
		this.scrollX = (this.runtime.original_width / 2);
		this.scrollY = (this.runtime.original_height / 2);
		this.scale = 1.0;
		this.angle = 0;
		this.first_visit = true;
		this.name = m[0];
		this.width = m[1];
		this.height = m[2];
		this.unbounded_scrolling = m[3];
		this.sheetname = m[4];
		this.sid = m[5];
		var lm = m[6];
		var i, len;
		this.layers = [];
		this.initial_types = [];
		for (i = 0, len = lm.length; i < len; i++)
		{
			var layer = new cr.layer(this, lm[i]);
			layer.number = i;
			cr.seal(layer);
			this.layers.push(layer);
		}
		var im = m[7];
		this.initial_nonworld = [];
		for (i = 0, len = im.length; i < len; i++)
		{
			var inst = im[i];
			var type = this.runtime.types_by_index[inst[1]];
;
			if (!type.default_instance)
				type.default_instance = inst;
			this.initial_nonworld.push(inst);
			if (this.initial_types.indexOf(type) === -1)
				this.initial_types.push(type);
		}
		this.effect_types = [];
		this.active_effect_types = [];
		this.effect_params = [];
		for (i = 0, len = m[8].length; i < len; i++)
		{
			this.effect_types.push({
				id: m[8][i][0],
				name: m[8][i][1],
				shaderindex: -1,
				active: true,
				index: i
			});
			this.effect_params.push(m[8][i][2].slice(0));
		}
		this.updateActiveEffects();
		this.rcTex = new cr.rect(0, 0, 1, 1);
		this.rcTex2 = new cr.rect(0, 0, 1, 1);
		this.persist_data = {};
	};
	Layout.prototype.saveObjectToPersist = function (inst)
	{
		var sidStr = inst.type.sid.toString();
		if (!this.persist_data.hasOwnProperty(sidStr))
			this.persist_data[sidStr] = [];
		var type_persist = this.persist_data[sidStr];
		type_persist.push(this.runtime.saveInstanceToJSON(inst));
	};
	Layout.prototype.hasOpaqueBottomLayer = function ()
	{
		var layer = this.layers[0];
		return !layer.transparent && layer.opacity === 1.0 && !layer.forceOwnTexture && layer.visible;
	};
	Layout.prototype.updateActiveEffects = function ()
	{
		this.active_effect_types.length = 0;
		var i, len, et;
		for (i = 0, len = this.effect_types.length; i < len; i++)
		{
			et = this.effect_types[i];
			if (et.active)
				this.active_effect_types.push(et);
		}
	};
	Layout.prototype.getEffectByName = function (name_)
	{
		var i, len, et;
		for (i = 0, len = this.effect_types.length; i < len; i++)
		{
			et = this.effect_types[i];
			if (et.name === name_)
				return et;
		}
		return null;
	};
	var created_instances = [];
	Layout.prototype.startRunning = function ()
	{
		if (this.sheetname)
		{
			this.event_sheet = this.runtime.eventsheets[this.sheetname];
;
			this.event_sheet.updateDeepIncludes();
		}
		this.runtime.running_layout = this;
		this.scrollX = (this.runtime.original_width / 2);
		this.scrollY = (this.runtime.original_height / 2);
		var i, k, len, lenk, type, type_instances, inst, iid, t, s, p, q, type_data, layer;
		for (i = 0, len = this.runtime.types_by_index.length; i < len; i++)
		{
			type = this.runtime.types_by_index[i];
			if (type.is_family)
				continue;		// instances are only transferred for their real type
			type_instances = type.instances;
			for (k = 0, lenk = type_instances.length; k < lenk; k++)
			{
				inst = type_instances[k];
				if (inst.layer)
				{
					var num = inst.layer.number;
					if (num >= this.layers.length)
						num = this.layers.length - 1;
					inst.layer = this.layers[num];
					inst.layer.instances.push(inst);
					inst.layer.zindices_stale = true;
				}
			}
		}
		var layer;
		created_instances.length = 0;
		this.boundScrolling();
		for (i = 0, len = this.layers.length; i < len; i++)
		{
			layer = this.layers[i];
			layer.createInitialInstances();		// fills created_instances
			layer.disableAngle = true;
			var px = layer.canvasToLayer(0, 0, true, true);
			var py = layer.canvasToLayer(0, 0, false, true);
			layer.disableAngle = false;
			if (this.runtime.pixel_rounding)
			{
				px = (px + 0.5) | 0;
				py = (py + 0.5) | 0;
			}
			layer.rotateViewport(px, py, null);
		}
		var uids_changed = false;
		if (!this.first_visit)
		{
			for (p in this.persist_data)
			{
				if (this.persist_data.hasOwnProperty(p))
				{
					type = this.runtime.getObjectTypeBySid(parseInt(p, 10));
					if (!type || type.is_family || !this.runtime.typeHasPersistBehavior(type))
						continue;
					type_data = this.persist_data[p];
					for (i = 0, len = type_data.length; i < len; i++)
					{
						layer = null;
						if (type.plugin.is_world)
						{
							layer = this.getLayerBySid(type_data[i]["w"]["l"]);
							if (!layer)
								continue;
						}
						inst = this.runtime.createInstanceFromInit(type.default_instance, layer, false, 0, 0, true);
						this.runtime.loadInstanceFromJSON(inst, type_data[i]);
						uids_changed = true;
						created_instances.push(inst);
					}
					type_data.length = 0;
				}
			}
			for (i = 0, len = this.layers.length; i < len; i++)
			{
				this.layers[i].instances.sort(sortInstanceByZIndex);
				this.layers[i].zindices_stale = true;		// in case of duplicates/holes
			}
		}
		if (uids_changed)
		{
			this.runtime.ClearDeathRow();
			this.runtime.refreshUidMap();
		}
		for (i = 0; i < created_instances.length; i++)
		{
			inst = created_instances[i];
			if (!inst.type.is_contained)
				continue;
			iid = inst.get_iid();
			for (k = 0, lenk = inst.type.container.length; k < lenk; k++)
			{
				t = inst.type.container[k];
				if (inst.type === t)
					continue;
				if (t.instances.length > iid)
					inst.siblings.push(t.instances[iid]);
				else
				{
					if (!t.default_instance)
					{
					}
					else
					{
						s = this.runtime.createInstanceFromInit(t.default_instance, inst.layer, true, inst.x, inst.y, true);
						this.runtime.ClearDeathRow();
						t.updateIIDs();
						inst.siblings.push(s);
						created_instances.push(s);		// come back around and link up its own instances too
					}
				}
			}
		}
		for (i = 0, len = this.initial_nonworld.length; i < len; i++)
		{
			inst = this.runtime.createInstanceFromInit(this.initial_nonworld[i], null, true);
;
		}
		this.runtime.changelayout = null;
		this.runtime.ClearDeathRow();
		if (this.runtime.ctx && !this.runtime.isDomFree)
		{
			for (i = 0, len = this.runtime.types_by_index.length; i < len; i++)
			{
				t = this.runtime.types_by_index[i];
				if (t.is_family || !t.instances.length || !t.preloadCanvas2D)
					continue;
				t.preloadCanvas2D(this.runtime.ctx);
			}
		}
		/*
		if (this.runtime.glwrap)
		{
			console.log("Estimated VRAM at layout start: " + this.runtime.glwrap.textureCount() + " textures, approx. " + Math.round(this.runtime.glwrap.estimateVRAM() / 1024) + " kb");
		}
		*/
		for (i = 0, len = created_instances.length; i < len; i++)
		{
			inst = created_instances[i];
			this.runtime.trigger(Object.getPrototypeOf(inst.type.plugin).cnds.OnCreated, inst);
		}
		created_instances.length = 0;
		this.runtime.trigger(cr.system_object.prototype.cnds.OnLayoutStart, null);
		this.first_visit = false;
	};
	Layout.prototype.createGlobalNonWorlds = function ()
	{
		var i, k, len, initial_inst, inst, type;
		for (i = 0, k = 0, len = this.initial_nonworld.length; i < len; i++)
		{
			initial_inst = this.initial_nonworld[i];
			type = this.runtime.types_by_index[initial_inst[1]];
			if (type.global)
				inst = this.runtime.createInstanceFromInit(initial_inst, null, true);
			else
			{
				this.initial_nonworld[k] = initial_inst;
				k++;
			}
		}
		this.initial_nonworld.length = k;
	};
	Layout.prototype.stopRunning = function ()
	{
;
		/*
		if (this.runtime.glwrap)
		{
			console.log("Estimated VRAM at layout end: " + this.runtime.glwrap.textureCount() + " textures, approx. " + Math.round(this.runtime.glwrap.estimateVRAM() / 1024) + " kb");
		}
		*/
		this.runtime.trigger(cr.system_object.prototype.cnds.OnLayoutEnd, null);
		this.runtime.system.waits.length = 0;
		var i, leni, j, lenj;
		var layer_instances, inst, type;
		for (i = 0, leni = this.layers.length; i < leni; i++)
		{
			layer_instances = this.layers[i].instances;
			for (j = 0, lenj = layer_instances.length; j < lenj; j++)
			{
				inst = layer_instances[j];
				if (!inst.type.global)
				{
					if (this.runtime.typeHasPersistBehavior(inst.type))
						this.saveObjectToPersist(inst);
					this.runtime.DestroyInstance(inst);
				}
			}
			this.runtime.ClearDeathRow();
			layer_instances.length = 0;
			this.layers[i].zindices_stale = true;
		}
		for (i = 0, leni = this.runtime.types_by_index.length; i < leni; i++)
		{
			type = this.runtime.types_by_index[i];
			if (type.global || type.plugin.is_world || type.plugin.singleglobal || type.is_family)
				continue;
			for (j = 0, lenj = type.instances.length; j < lenj; j++)
				this.runtime.DestroyInstance(type.instances[j]);
			this.runtime.ClearDeathRow();
		}
	};
	Layout.prototype.draw = function (ctx)
	{
		var layout_canvas;
		var layout_ctx = ctx;
		var ctx_changed = false;
		var render_offscreen = !this.runtime.fullscreenScalingQuality;
		if (render_offscreen)
		{
			if (!this.runtime.layout_canvas)
			{
				this.runtime.layout_canvas = document.createElement("canvas");
				layout_canvas = this.runtime.layout_canvas;
				layout_canvas.width = this.runtime.draw_width;
				layout_canvas.height = this.runtime.draw_height;
				this.runtime.layout_ctx = layout_canvas.getContext("2d");
				ctx_changed = true;
			}
			layout_canvas = this.runtime.layout_canvas;
			layout_ctx = this.runtime.layout_ctx;
			if (layout_canvas.width !== this.runtime.draw_width)
			{
				layout_canvas.width = this.runtime.draw_width;
				ctx_changed = true;
			}
			if (layout_canvas.height !== this.runtime.draw_height)
			{
				layout_canvas.height = this.runtime.draw_height;
				ctx_changed = true;
			}
			if (ctx_changed)
			{
				layout_ctx["webkitImageSmoothingEnabled"] = this.runtime.linearSampling;
				layout_ctx["mozImageSmoothingEnabled"] = this.runtime.linearSampling;
				layout_ctx["msImageSmoothingEnabled"] = this.runtime.linearSampling;
				layout_ctx["imageSmoothingEnabled"] = this.runtime.linearSampling;
			}
		}
		layout_ctx.globalAlpha = 1;
		layout_ctx.globalCompositeOperation = "source-over";
		if (this.runtime.alphaBackground && !this.hasOpaqueBottomLayer())
			layout_ctx.clearRect(0, 0, this.runtime.draw_width, this.runtime.draw_height);
		var i, len, l;
		for (i = 0, len = this.layers.length; i < len; i++)
		{
			l = this.layers[i];
			if (l.visible && l.opacity > 0 && l.blend_mode !== 11)
				l.draw(layout_ctx);
		}
		if (render_offscreen)
		{
			ctx.drawImage(layout_canvas, 0, 0, this.runtime.width, this.runtime.height);
		}
	};
	Layout.prototype.drawGL = function (glw)
	{
		var render_to_texture = (this.active_effect_types.length > 0 ||
								 this.runtime.uses_background_blending ||
								 !this.runtime.fullscreenScalingQuality);
		if (render_to_texture)
		{
			if (!this.runtime.layout_tex)
			{
				this.runtime.layout_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling);
			}
			if (this.runtime.layout_tex.c2width !== this.runtime.draw_width || this.runtime.layout_tex.c2height !== this.runtime.draw_height)
			{
				glw.deleteTexture(this.runtime.layout_tex);
				this.runtime.layout_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling);
			}
			glw.setRenderingToTexture(this.runtime.layout_tex);
			if (!this.runtime.fullscreenScalingQuality)
			{
				glw.setSize(this.runtime.draw_width, this.runtime.draw_height);
			}
		}
		else
		{
			if (this.runtime.layout_tex)
			{
				glw.setRenderingToTexture(null);
				glw.deleteTexture(this.runtime.layout_tex);
				this.runtime.layout_tex = null;
			}
		}
		if (this.runtime.alphaBackground && !this.hasOpaqueBottomLayer())
			glw.clear(0, 0, 0, 0);
		var i, len;
		for (i = 0, len = this.layers.length; i < len; i++)
		{
			if (this.layers[i].visible && this.layers[i].opacity > 0)
				this.layers[i].drawGL(glw);
		}
		if (render_to_texture)
		{
			if (this.active_effect_types.length === 0 ||
				(this.active_effect_types.length === 1 && this.runtime.fullscreenScalingQuality))
			{
				if (this.active_effect_types.length === 1)
				{
					var etindex = this.active_effect_types[0].index;
					glw.switchProgram(this.active_effect_types[0].shaderindex);
					glw.setProgramParameters(null,								// backTex
											 1.0 / this.runtime.draw_width,		// pixelWidth
											 1.0 / this.runtime.draw_height,	// pixelHeight
											 0.0, 0.0,							// destStart
											 1.0, 1.0,							// destEnd
											 this.scale,						// layerScale
											 this.angle,						// layerAngle
											 0.0, 0.0,							// viewOrigin
											 this.effect_params[etindex]);		// fx parameters
					if (glw.programIsAnimated(this.active_effect_types[0].shaderindex))
						this.runtime.redraw = true;
				}
				else
					glw.switchProgram(0);
				if (!this.runtime.fullscreenScalingQuality)
				{
					glw.setSize(this.runtime.width, this.runtime.height);
				}
				glw.setRenderingToTexture(null);				// to backbuffer
				glw.setOpacity(1);
				glw.setTexture(this.runtime.layout_tex);
				glw.setAlphaBlend();
				glw.resetModelView();
				glw.updateModelView();
				var halfw = this.runtime.width / 2;
				var halfh = this.runtime.height / 2;
				glw.quad(-halfw, halfh, halfw, halfh, halfw, -halfh, -halfw, -halfh);
				glw.setTexture(null);
			}
			else
			{
				this.renderEffectChain(glw, null, null, null);
			}
		}
	};
	Layout.prototype.getRenderTarget = function()
	{
		return (this.active_effect_types.length > 0 ||
				this.runtime.uses_background_blending ||
				!this.runtime.fullscreenScalingQuality) ? this.runtime.layout_tex : null;
	};
	Layout.prototype.getMinLayerScale = function ()
	{
		var m = this.layers[0].getScale();
		var i, len, l;
		for (i = 1, len = this.layers.length; i < len; i++)
		{
			l = this.layers[i];
			if (l.parallaxX === 0 && l.parallaxY === 0)
				continue;
			if (l.getScale() < m)
				m = l.getScale();
		}
		return m;
	};
	Layout.prototype.scrollToX = function (x)
	{
		if (!this.unbounded_scrolling)
		{
			var widthBoundary = (this.runtime.draw_width * (1 / this.getMinLayerScale()) / 2);
			if (x > this.width - widthBoundary)
				x = this.width - widthBoundary;
			if (x < widthBoundary)
				x = widthBoundary;
		}
		if (this.scrollX !== x)
		{
			this.scrollX = x;
			this.runtime.redraw = true;
		}
	};
	Layout.prototype.scrollToY = function (y)
	{
		if (!this.unbounded_scrolling)
		{
			var heightBoundary = (this.runtime.draw_height * (1 / this.getMinLayerScale()) / 2);
			if (y > this.height - heightBoundary)
				y = this.height - heightBoundary;
			if (y < heightBoundary)
				y = heightBoundary;
		}
		if (this.scrollY !== y)
		{
			this.scrollY = y;
			this.runtime.redraw = true;
		}
	};
	Layout.prototype.boundScrolling = function ()
	{
		this.scrollToX(this.scrollX);
		this.scrollToY(this.scrollY);
	};
	Layout.prototype.renderEffectChain = function (glw, layer, inst, rendertarget)
	{
		var active_effect_types = inst ?
							inst.active_effect_types :
							layer ?
								layer.active_effect_types :
								this.active_effect_types;
		var layerScale = 1, layerAngle = 0, viewOriginLeft = 0, viewOriginTop = 0;
		if (inst)
		{
			layerScale = inst.layer.getScale();
			layerAngle = inst.layer.getAngle();
			viewOriginLeft = inst.layer.viewLeft;
			viewOriginTop = inst.layer.viewTop;
		}
		else if (layer)
		{
			layerScale = layer.getScale();
			layerAngle = layer.getAngle();
			viewOriginLeft = layer.viewLeft;
			viewOriginTop = layer.viewTop;
		}
		var fx_tex = this.runtime.fx_tex;
		var i, len, last, temp, fx_index = 0, other_fx_index = 1;
		var y, h;
		var windowWidth = this.runtime.draw_width;
		var windowHeight = this.runtime.draw_height;
		var halfw = windowWidth / 2;
		var halfh = windowHeight / 2;
		var rcTex = layer ? layer.rcTex : this.rcTex;
		var rcTex2 = layer ? layer.rcTex2 : this.rcTex2;
		var screenleft = 0, clearleft = 0;
		var screentop = 0, cleartop = 0;
		var screenright = windowWidth, clearright = windowWidth;
		var screenbottom = windowHeight, clearbottom = windowHeight;
		var boxExtendHorizontal = 0;
		var boxExtendVertical = 0;
		var inst_layer_angle = inst ? inst.layer.getAngle() : 0;
		if (inst)
		{
			for (i = 0, len = active_effect_types.length; i < len; i++)
			{
				boxExtendHorizontal += glw.getProgramBoxExtendHorizontal(active_effect_types[i].shaderindex);
				boxExtendVertical += glw.getProgramBoxExtendVertical(active_effect_types[i].shaderindex);
			}
			var bbox = inst.bbox;
			screenleft = layer.layerToCanvas(bbox.left, bbox.top, true, true);
			screentop = layer.layerToCanvas(bbox.left, bbox.top, false, true);
			screenright = layer.layerToCanvas(bbox.right, bbox.bottom, true, true);
			screenbottom = layer.layerToCanvas(bbox.right, bbox.bottom, false, true);
			if (inst_layer_angle !== 0)
			{
				var screentrx = layer.layerToCanvas(bbox.right, bbox.top, true, true);
				var screentry = layer.layerToCanvas(bbox.right, bbox.top, false, true);
				var screenblx = layer.layerToCanvas(bbox.left, bbox.bottom, true, true);
				var screenbly = layer.layerToCanvas(bbox.left, bbox.bottom, false, true);
				temp = Math.min(screenleft, screenright, screentrx, screenblx);
				screenright = Math.max(screenleft, screenright, screentrx, screenblx);
				screenleft = temp;
				temp = Math.min(screentop, screenbottom, screentry, screenbly);
				screenbottom = Math.max(screentop, screenbottom, screentry, screenbly);
				screentop = temp;
			}
			screenleft -= boxExtendHorizontal;
			screentop -= boxExtendVertical;
			screenright += boxExtendHorizontal;
			screenbottom += boxExtendVertical;
			rcTex2.left = screenleft / windowWidth;
			rcTex2.top = 1 - screentop / windowHeight;
			rcTex2.right = screenright / windowWidth;
			rcTex2.bottom = 1 - screenbottom / windowHeight;
			clearleft = screenleft = cr.floor(screenleft);
			cleartop = screentop = cr.floor(screentop);
			clearright = screenright = cr.ceil(screenright);
			clearbottom = screenbottom = cr.ceil(screenbottom);
			clearleft -= boxExtendHorizontal;
			cleartop -= boxExtendVertical;
			clearright += boxExtendHorizontal;
			clearbottom += boxExtendVertical;
			if (screenleft < 0)					screenleft = 0;
			if (screentop < 0)					screentop = 0;
			if (screenright > windowWidth)		screenright = windowWidth;
			if (screenbottom > windowHeight)	screenbottom = windowHeight;
			if (clearleft < 0)					clearleft = 0;
			if (cleartop < 0)					cleartop = 0;
			if (clearright > windowWidth)		clearright = windowWidth;
			if (clearbottom > windowHeight)		clearbottom = windowHeight;
			rcTex.left = screenleft / windowWidth;
			rcTex.top = 1 - screentop / windowHeight;
			rcTex.right = screenright / windowWidth;
			rcTex.bottom = 1 - screenbottom / windowHeight;
		}
		else
		{
			rcTex.left = rcTex2.left = 0;
			rcTex.top = rcTex2.top = 0;
			rcTex.right = rcTex2.right = 1;
			rcTex.bottom = rcTex2.bottom = 1;
		}
		var pre_draw = (inst && (((inst.angle || inst_layer_angle) && glw.programUsesDest(active_effect_types[0].shaderindex)) || boxExtendHorizontal !== 0 || boxExtendVertical !== 0 || inst.opacity !== 1 || inst.type.plugin.must_predraw)) || (layer && !inst && layer.opacity !== 1);
		glw.setAlphaBlend();
		if (pre_draw)
		{
			if (!fx_tex[fx_index])
			{
				fx_tex[fx_index] = glw.createEmptyTexture(windowWidth, windowHeight, this.runtime.linearSampling);
			}
			if (fx_tex[fx_index].c2width !== windowWidth || fx_tex[fx_index].c2height !== windowHeight)
			{
				glw.deleteTexture(fx_tex[fx_index]);
				fx_tex[fx_index] = glw.createEmptyTexture(windowWidth, windowHeight, this.runtime.linearSampling);
			}
			glw.switchProgram(0);
			glw.setRenderingToTexture(fx_tex[fx_index]);
			h = clearbottom - cleartop;
			y = (windowHeight - cleartop) - h;
			glw.clearRect(clearleft, y, clearright - clearleft, h);
			if (inst)
			{
				inst.drawGL(glw);
			}
			else
			{
				glw.setTexture(this.runtime.layer_tex);
				glw.setOpacity(layer.opacity);
				glw.resetModelView();
				glw.translate(-halfw, -halfh);
				glw.updateModelView();
				glw.quadTex(screenleft, screenbottom, screenright, screenbottom, screenright, screentop, screenleft, screentop, rcTex);
			}
			rcTex2.left = rcTex2.top = 0;
			rcTex2.right = rcTex2.bottom = 1;
			if (inst)
			{
				temp = rcTex.top;
				rcTex.top = rcTex.bottom;
				rcTex.bottom = temp;
			}
			fx_index = 1;
			other_fx_index = 0;
		}
		glw.setOpacity(1);
		var last = active_effect_types.length - 1;
		var post_draw = glw.programUsesCrossSampling(active_effect_types[last].shaderindex) ||
						(!layer && !inst && !this.runtime.fullscreenScalingQuality);
		var etindex = 0;
		for (i = 0, len = active_effect_types.length; i < len; i++)
		{
			if (!fx_tex[fx_index])
			{
				fx_tex[fx_index] = glw.createEmptyTexture(windowWidth, windowHeight, this.runtime.linearSampling);
			}
			if (fx_tex[fx_index].c2width !== windowWidth || fx_tex[fx_index].c2height !== windowHeight)
			{
				glw.deleteTexture(fx_tex[fx_index]);
				fx_tex[fx_index] = glw.createEmptyTexture(windowWidth, windowHeight, this.runtime.linearSampling);
			}
			glw.switchProgram(active_effect_types[i].shaderindex);
			etindex = active_effect_types[i].index;
			if (glw.programIsAnimated(active_effect_types[i].shaderindex))
				this.runtime.redraw = true;
			if (i == 0 && !pre_draw)
			{
				glw.setRenderingToTexture(fx_tex[fx_index]);
				h = clearbottom - cleartop;
				y = (windowHeight - cleartop) - h;
				glw.clearRect(clearleft, y, clearright - clearleft, h);
				if (inst)
				{
					glw.setProgramParameters(rendertarget,					// backTex
											 1.0 / inst.width,				// pixelWidth
											 1.0 / inst.height,				// pixelHeight
											 rcTex2.left, rcTex2.top,		// destStart
											 rcTex2.right, rcTex2.bottom,	// destEnd
											 layerScale,
											 layerAngle,
											 viewOriginLeft, viewOriginTop,
											 inst.effect_params[etindex]);	// fx params
					inst.drawGL(glw);
				}
				else
				{
					glw.setProgramParameters(rendertarget,					// backTex
											 1.0 / windowWidth,				// pixelWidth
											 1.0 / windowHeight,			// pixelHeight
											 0.0, 0.0,						// destStart
											 1.0, 1.0,						// destEnd
											 layerScale,
											 layerAngle,
											 viewOriginLeft, viewOriginTop,
											 layer ?						// fx params
												layer.effect_params[etindex] :
												this.effect_params[etindex]);
					glw.setTexture(layer ? this.runtime.layer_tex : this.runtime.layout_tex);
					glw.resetModelView();
					glw.translate(-halfw, -halfh);
					glw.updateModelView();
					glw.quadTex(screenleft, screenbottom, screenright, screenbottom, screenright, screentop, screenleft, screentop, rcTex);
				}
				rcTex2.left = rcTex2.top = 0;
				rcTex2.right = rcTex2.bottom = 1;
				if (inst && !post_draw)
				{
					temp = screenbottom;
					screenbottom = screentop;
					screentop = temp;
				}
			}
			else
			{
				glw.setProgramParameters(rendertarget,						// backTex
										 1.0 / windowWidth,					// pixelWidth
										 1.0 / windowHeight,				// pixelHeight
										 rcTex2.left, rcTex2.top,			// destStart
										 rcTex2.right, rcTex2.bottom,		// destEnd
										 layerScale,
										 layerAngle,
										 viewOriginLeft, viewOriginTop,
										 inst ?								// fx params
											inst.effect_params[etindex] :
											layer ?
												layer.effect_params[etindex] :
												this.effect_params[etindex]);
				glw.setTexture(null);
				if (i === last && !post_draw)
				{
					if (inst)
						glw.setBlend(inst.srcBlend, inst.destBlend);
					else if (layer)
						glw.setBlend(layer.srcBlend, layer.destBlend);
					glw.setRenderingToTexture(rendertarget);
				}
				else
				{
					glw.setRenderingToTexture(fx_tex[fx_index]);
					h = clearbottom - cleartop;
					y = (windowHeight - cleartop) - h;
					glw.clearRect(clearleft, y, clearright - clearleft, h);
				}
				glw.setTexture(fx_tex[other_fx_index]);
				glw.resetModelView();
				glw.translate(-halfw, -halfh);
				glw.updateModelView();
				glw.quadTex(screenleft, screenbottom, screenright, screenbottom, screenright, screentop, screenleft, screentop, rcTex);
				if (i === last && !post_draw)
					glw.setTexture(null);
			}
			fx_index = (fx_index === 0 ? 1 : 0);
			other_fx_index = (fx_index === 0 ? 1 : 0);		// will be opposite to fx_index since it was just assigned
		}
		if (post_draw)
		{
			glw.switchProgram(0);
			if (inst)
				glw.setBlend(inst.srcBlend, inst.destBlend);
			else if (layer)
				glw.setBlend(layer.srcBlend, layer.destBlend);
			else
			{
				if (!this.runtime.fullscreenScalingQuality)
				{
					glw.setSize(this.runtime.width, this.runtime.height);
					halfw = this.runtime.width / 2;
					halfh = this.runtime.height / 2;
					screenleft = 0;
					screentop = 0;
					screenright = this.runtime.width;
					screenbottom = this.runtime.height;
				}
			}
			glw.setRenderingToTexture(rendertarget);
			glw.setTexture(fx_tex[other_fx_index]);
			glw.resetModelView();
			glw.translate(-halfw, -halfh);
			glw.updateModelView();
			if (inst && active_effect_types.length === 1 && !pre_draw)
				glw.quadTex(screenleft, screentop, screenright, screentop, screenright, screenbottom, screenleft, screenbottom, rcTex);
			else
				glw.quadTex(screenleft, screenbottom, screenright, screenbottom, screenright, screentop, screenleft, screentop, rcTex);
			glw.setTexture(null);
		}
	};
	Layout.prototype.getLayerBySid = function (sid_)
	{
		var i, len;
		for (i = 0, len = this.layers.length; i < len; i++)
		{
			if (this.layers[i].sid === sid_)
				return this.layers[i];
		}
		return null;
	};
	Layout.prototype.saveToJSON = function ()
	{
		var i, len, layer, et;
		var o = {
			"sx": this.scrollX,
			"sy": this.scrollY,
			"s": this.scale,
			"a": this.angle,
			"w": this.width,
			"h": this.height,
			"fv": this.first_visit,			// added r127
			"persist": this.persist_data,
			"fx": [],
			"layers": {}
		};
		for (i = 0, len = this.effect_types.length; i < len; i++)
		{
			et = this.effect_types[i];
			o["fx"].push({"name": et.name, "active": et.active, "params": this.effect_params[et.index] });
		}
		for (i = 0, len = this.layers.length; i < len; i++)
		{
			layer = this.layers[i];
			o["layers"][layer.sid.toString()] = layer.saveToJSON();
		}
		return o;
	};
	Layout.prototype.loadFromJSON = function (o)
	{
		var i, len, fx, p, layer;
		this.scrollX = o["sx"];
		this.scrollY = o["sy"];
		this.scale = o["s"];
		this.angle = o["a"];
		this.width = o["w"];
		this.height = o["h"];
		this.persist_data = o["persist"];
		if (typeof o["fv"] !== "undefined")
			this.first_visit = o["fv"];
		var ofx = o["fx"];
		for (i = 0, len = ofx.length; i < len; i++)
		{
			fx = this.getEffectByName(ofx[i]["name"]);
			if (!fx)
				continue;		// must've gone missing
			fx.active = ofx[i]["active"];
			this.effect_params[fx.index] = ofx[i]["params"];
		}
		this.updateActiveEffects();
		var olayers = o["layers"];
		for (p in olayers)
		{
			if (olayers.hasOwnProperty(p))
			{
				layer = this.getLayerBySid(parseInt(p, 10));
				if (!layer)
					continue;		// must've gone missing
				layer.loadFromJSON(olayers[p]);
			}
		}
	};
	cr.layout = Layout;
	function Layer(layout, m)
	{
		this.layout = layout;
		this.runtime = layout.runtime;
		this.instances = [];        // running instances
		this.scale = 1.0;
		this.angle = 0;
		this.disableAngle = false;
		this.tmprect = new cr.rect(0, 0, 0, 0);
		this.tmpquad = new cr.quad();
		this.viewLeft = 0;
		this.viewRight = 0;
		this.viewTop = 0;
		this.viewBottom = 0;
		this.zindices_stale = false;
		this.name = m[0];
		this.index = m[1];
		this.sid = m[2];
		this.visible = m[3];		// initially visible
		this.background_color = m[4];
		this.transparent = m[5];
		this.parallaxX = m[6];
		this.parallaxY = m[7];
		this.opacity = m[8];
		this.forceOwnTexture = m[9];
		this.zoomRate = m[10];
		this.blend_mode = m[11];
		this.effect_fallback = m[12];
		this.compositeOp = "source-over";
		this.srcBlend = 0;
		this.destBlend = 0;
		this.render_offscreen = false;
		var im = m[13];
		var i, len;
		this.initial_instances = [];
		for (i = 0, len = im.length; i < len; i++)
		{
			var inst = im[i];
			var type = this.runtime.types_by_index[inst[1]];
;
			if (!type.default_instance)
			{
				type.default_instance = inst;
				type.default_layerindex = this.index;
			}
			this.initial_instances.push(inst);
			if (this.layout.initial_types.indexOf(type) === -1)
				this.layout.initial_types.push(type);
		}
		this.effect_types = [];
		this.active_effect_types = [];
		this.effect_params = [];
		for (i = 0, len = m[14].length; i < len; i++)
		{
			this.effect_types.push({
				id: m[14][i][0],
				name: m[14][i][1],
				shaderindex: -1,
				active: true,
				index: i
			});
			this.effect_params.push(m[14][i][2].slice(0));
		}
		this.updateActiveEffects();
		this.rcTex = new cr.rect(0, 0, 1, 1);
		this.rcTex2 = new cr.rect(0, 0, 1, 1);
	};
	Layer.prototype.updateActiveEffects = function ()
	{
		this.active_effect_types.length = 0;
		var i, len, et;
		for (i = 0, len = this.effect_types.length; i < len; i++)
		{
			et = this.effect_types[i];
			if (et.active)
				this.active_effect_types.push(et);
		}
	};
	Layer.prototype.getEffectByName = function (name_)
	{
		var i, len, et;
		for (i = 0, len = this.effect_types.length; i < len; i++)
		{
			et = this.effect_types[i];
			if (et.name === name_)
				return et;
		}
		return null;
	};
	Layer.prototype.createInitialInstances = function ()
	{
		var i, k, len, inst, initial_inst, type, keep, hasPersistBehavior;
		for (i = 0, k = 0, len = this.initial_instances.length; i < len; i++)
		{
			initial_inst = this.initial_instances[i];
			type = this.runtime.types_by_index[initial_inst[1]];
;
			hasPersistBehavior = this.runtime.typeHasPersistBehavior(type);
			keep = true;
			if (!hasPersistBehavior || this.layout.first_visit)
			{
				inst = this.runtime.createInstanceFromInit(initial_inst, this, true);
;
				created_instances.push(inst);
				if (inst.type.global)
					keep = false;
			}
			if (keep)
			{
				this.initial_instances[k] = this.initial_instances[i];
				k++;
			}
		}
		this.initial_instances.length = k;
		this.runtime.ClearDeathRow();		// flushes creation row so IIDs will be correct
		if (!this.runtime.glwrap && this.effect_types.length)	// no WebGL renderer and shaders used
			this.blend_mode = this.effect_fallback;				// use fallback blend mode
		this.compositeOp = cr.effectToCompositeOp(this.blend_mode);
		if (this.runtime.gl)
			cr.setGLBlend(this, this.blend_mode, this.runtime.gl);
	};
	Layer.prototype.updateZIndices = function ()
	{
		if (!this.zindices_stale)
			return;
		var i, len;
		for (i = 0, len = this.instances.length; i < len; i++)
		{
;
;
			this.instances[i].zindex = i;
		}
		this.zindices_stale = false;
	};
	Layer.prototype.getScale = function (include_aspect)
	{
		return this.getNormalScale() * (this.runtime.fullscreenScalingQuality || include_aspect ? this.runtime.aspect_scale : 1);
	};
	Layer.prototype.getNormalScale = function ()
	{
		return ((this.scale * this.layout.scale) - 1) * this.zoomRate + 1;
	};
	Layer.prototype.getAngle = function ()
	{
		if (this.disableAngle)
			return 0;
		return cr.clamp_angle(this.layout.angle + this.angle);
	};
	Layer.prototype.draw = function (ctx)
	{
		this.render_offscreen = (this.forceOwnTexture || this.opacity !== 1.0 || this.blend_mode !== 0);
		var layer_canvas = this.runtime.canvas;
		var layer_ctx = ctx;
		var ctx_changed = false;
		if (this.render_offscreen)
		{
			if (!this.runtime.layer_canvas)
			{
				this.runtime.layer_canvas = document.createElement("canvas");
;
				layer_canvas = this.runtime.layer_canvas;
				layer_canvas.width = this.runtime.draw_width;
				layer_canvas.height = this.runtime.draw_height;
				this.runtime.layer_ctx = layer_canvas.getContext("2d");
;
				ctx_changed = true;
			}
			layer_canvas = this.runtime.layer_canvas;
			layer_ctx = this.runtime.layer_ctx;
			if (layer_canvas.width !== this.runtime.draw_width)
			{
				layer_canvas.width = this.runtime.draw_width;
				ctx_changed = true;
			}
			if (layer_canvas.height !== this.runtime.draw_height)
			{
				layer_canvas.height = this.runtime.draw_height;
				ctx_changed = true;
			}
			if (ctx_changed)
			{
				layer_ctx["webkitImageSmoothingEnabled"] = this.runtime.linearSampling;
				layer_ctx["mozImageSmoothingEnabled"] = this.runtime.linearSampling;
				layer_ctx["msImageSmoothingEnabled"] = this.runtime.linearSampling;
				layer_ctx["imageSmoothingEnabled"] = this.runtime.linearSampling;
			}
			if (this.transparent)
				layer_ctx.clearRect(0, 0, this.runtime.draw_width, this.runtime.draw_height);
		}
		layer_ctx.globalAlpha = 1;
		layer_ctx.globalCompositeOperation = "source-over";
		if (!this.transparent)
		{
			layer_ctx.fillStyle = "rgb(" + this.background_color[0] + "," + this.background_color[1] + "," + this.background_color[2] + ")";
			layer_ctx.fillRect(0, 0, this.runtime.draw_width, this.runtime.draw_height);
		}
		layer_ctx.save();
		this.disableAngle = true;
		var px = this.canvasToLayer(0, 0, true, true);
		var py = this.canvasToLayer(0, 0, false, true);
		this.disableAngle = false;
		if (this.runtime.pixel_rounding)
		{
			px = (px + 0.5) | 0;
			py = (py + 0.5) | 0;
		}
		this.rotateViewport(px, py, layer_ctx);
		var myscale = this.getScale();
		layer_ctx.scale(myscale, myscale);
		layer_ctx.translate(-px, -py);
		var i, len, inst, bbox;
		for (i = 0, len = this.instances.length; i < len; i++)
		{
			inst = this.instances[i];
			if (!inst.visible || inst.width === 0 || inst.height === 0)
				continue;
			inst.update_bbox();
			bbox = inst.bbox;
			if (bbox.right < this.viewLeft || bbox.bottom < this.viewTop || bbox.left > this.viewRight || bbox.top > this.viewBottom)
				continue;
			layer_ctx.globalCompositeOperation = inst.compositeOp;
			inst.draw(layer_ctx);
		}
		layer_ctx.restore();
		if (this.render_offscreen)
		{
			ctx.globalCompositeOperation = this.compositeOp;
			ctx.globalAlpha = this.opacity;
			ctx.drawImage(layer_canvas, 0, 0);
		}
	};
	Layer.prototype.rotateViewport = function (px, py, ctx)
	{
		var myscale = this.getScale();
		this.viewLeft = px;
		this.viewTop = py;
		this.viewRight = px + (this.runtime.draw_width * (1 / myscale));
		this.viewBottom = py + (this.runtime.draw_height * (1 / myscale));
		var myAngle = this.getAngle();
		if (myAngle !== 0)
		{
			if (ctx)
			{
				ctx.translate(this.runtime.draw_width / 2, this.runtime.draw_height / 2);
				ctx.rotate(-myAngle);
				ctx.translate(this.runtime.draw_width / -2, this.runtime.draw_height / -2);
			}
			this.tmprect.set(this.viewLeft, this.viewTop, this.viewRight, this.viewBottom);
			this.tmprect.offset((this.viewLeft + this.viewRight) / -2, (this.viewTop + this.viewBottom) / -2);
			this.tmpquad.set_from_rotated_rect(this.tmprect, myAngle);
			this.tmpquad.bounding_box(this.tmprect);
			this.tmprect.offset((this.viewLeft + this.viewRight) / 2, (this.viewTop + this.viewBottom) / 2);
			this.viewLeft = this.tmprect.left;
			this.viewTop = this.tmprect.top;
			this.viewRight = this.tmprect.right;
			this.viewBottom = this.tmprect.bottom;
		}
	}
	Layer.prototype.drawGL = function (glw)
	{
		var windowWidth = this.runtime.draw_width;
		var windowHeight = this.runtime.draw_height;
		var shaderindex = 0;
		var etindex = 0;
		this.render_offscreen = (this.forceOwnTexture || this.opacity !== 1.0 || this.active_effect_types.length > 0 || this.blend_mode !== 0);
		if (this.render_offscreen)
		{
			if (!this.runtime.layer_tex)
			{
				this.runtime.layer_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling);
			}
			if (this.runtime.layer_tex.c2width !== this.runtime.draw_width || this.runtime.layer_tex.c2height !== this.runtime.draw_height)
			{
				glw.deleteTexture(this.runtime.layer_tex);
				this.runtime.layer_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling);
			}
			glw.setRenderingToTexture(this.runtime.layer_tex);
			if (this.transparent)
				glw.clear(0, 0, 0, 0);
		}
		if (!this.transparent)
		{
			glw.clear(this.background_color[0] / 255, this.background_color[1] / 255, this.background_color[2] / 255, 1);
		}
		this.disableAngle = true;
		var px = this.canvasToLayer(0, 0, true, true);
		var py = this.canvasToLayer(0, 0, false, true);
		this.disableAngle = false;
		if (this.runtime.pixel_rounding)
		{
			px = (px + 0.5) | 0;
			py = (py + 0.5) | 0;
		}
		this.rotateViewport(px, py, null);
		var myscale = this.getScale();
		glw.resetModelView();
		glw.scale(myscale, myscale);
		glw.rotateZ(-this.getAngle());
		glw.translate((this.viewLeft + this.viewRight) / -2, (this.viewTop + this.viewBottom) / -2);
		glw.updateModelView();
		var i, len, inst, bbox;
		for (i = 0, len = this.instances.length; i < len; i++)
		{
			inst = this.instances[i];
			if (!inst.visible || inst.width === 0 || inst.height === 0)
				continue;
			inst.update_bbox();
			bbox = inst.bbox;
			if (bbox.right < this.viewLeft || bbox.bottom < this.viewTop || bbox.left > this.viewRight || bbox.top > this.viewBottom)
				continue;
			if (inst.uses_shaders)
			{
				shaderindex = inst.active_effect_types[0].shaderindex;
				etindex = inst.active_effect_types[0].index;
				if (inst.active_effect_types.length === 1 && !glw.programUsesCrossSampling(shaderindex) &&
					!glw.programExtendsBox(shaderindex) && ((!inst.angle && !inst.layer.getAngle()) || !glw.programUsesDest(shaderindex)) &&
					inst.opacity === 1 && !inst.type.plugin.must_predraw)
				{
					glw.switchProgram(shaderindex);
					glw.setBlend(inst.srcBlend, inst.destBlend);
					if (glw.programIsAnimated(shaderindex))
						this.runtime.redraw = true;
					var destStartX = 0, destStartY = 0, destEndX = 0, destEndY = 0;
					if (glw.programUsesDest(shaderindex))
					{
						var bbox = inst.bbox;
						var screenleft = this.layerToCanvas(bbox.left, bbox.top, true, true);
						var screentop = this.layerToCanvas(bbox.left, bbox.top, false, true);
						var screenright = this.layerToCanvas(bbox.right, bbox.bottom, true, true);
						var screenbottom = this.layerToCanvas(bbox.right, bbox.bottom, false, true);
						destStartX = screenleft / windowWidth;
						destStartY = 1 - screentop / windowHeight;
						destEndX = screenright / windowWidth;
						destEndY = 1 - screenbottom / windowHeight;
					}
					glw.setProgramParameters(this.render_offscreen ? this.runtime.layer_tex : this.layout.getRenderTarget(), // backTex
											 1.0 / inst.width,			// pixelWidth
											 1.0 / inst.height,			// pixelHeight
											 destStartX, destStartY,
											 destEndX, destEndY,
											 this.getScale(),
											 this.getAngle(),
											 this.viewLeft, this.viewTop,
											 inst.effect_params[etindex]);
					inst.drawGL(glw);
				}
				else
				{
					this.layout.renderEffectChain(glw, this, inst, this.render_offscreen ? this.runtime.layer_tex : this.layout.getRenderTarget());
					glw.resetModelView();
					glw.scale(myscale, myscale);
					glw.rotateZ(-this.getAngle());
					glw.translate((this.viewLeft + this.viewRight) / -2, (this.viewTop + this.viewBottom) / -2);
					glw.updateModelView();
				}
			}
			else
			{
				glw.switchProgram(0);		// un-set any previously set shader
				glw.setBlend(inst.srcBlend, inst.destBlend);
				inst.drawGL(glw);
			}
		}
		if (this.render_offscreen)
		{
			shaderindex = this.active_effect_types.length ? this.active_effect_types[0].shaderindex : 0;
			etindex = this.active_effect_types.length ? this.active_effect_types[0].index : 0;
			if (this.active_effect_types.length === 0 || (this.active_effect_types.length === 1 &&
				!glw.programUsesCrossSampling(shaderindex) && this.opacity === 1))
			{
				if (this.active_effect_types.length === 1)
				{
					glw.switchProgram(shaderindex);
					glw.setProgramParameters(this.layout.getRenderTarget(),		// backTex
											 1.0 / this.runtime.draw_width,		// pixelWidth
											 1.0 / this.runtime.draw_height,	// pixelHeight
											 0.0, 0.0,							// destStart
											 1.0, 1.0,							// destEnd
											 this.getScale(),					// layerScale
											 this.getAngle(),
											 this.viewLeft, this.viewTop,
											 this.effect_params[etindex]);		// fx parameters
					if (glw.programIsAnimated(shaderindex))
						this.runtime.redraw = true;
				}
				else
					glw.switchProgram(0);
				glw.setRenderingToTexture(this.layout.getRenderTarget());
				glw.setOpacity(this.opacity);
				glw.setTexture(this.runtime.layer_tex);
				glw.setBlend(this.srcBlend, this.destBlend);
				glw.resetModelView();
				glw.updateModelView();
				var halfw = this.runtime.draw_width / 2;
				var halfh = this.runtime.draw_height / 2;
				glw.quad(-halfw, halfh, halfw, halfh, halfw, -halfh, -halfw, -halfh);
				glw.setTexture(null);
			}
			else
			{
				this.layout.renderEffectChain(glw, this, null, this.layout.getRenderTarget());
			}
		}
	};
	Layer.prototype.canvasToLayer = function (ptx, pty, getx, using_draw_area)
	{
		var multiplier = this.runtime.devicePixelRatio;
		if (this.runtime.isRetina)
		{
			ptx *= multiplier;
			pty *= multiplier;
		}
		var ox = this.runtime.parallax_x_origin;
		var oy = this.runtime.parallax_y_origin;
		var x = ((this.layout.scrollX - ox) * this.parallaxX) + ox;
		var y = ((this.layout.scrollY - oy) * this.parallaxY) + oy;
		var invScale = 1 / this.getScale(!using_draw_area);
		if (using_draw_area)
		{
			x -= (this.runtime.draw_width * invScale) / 2;
			y -= (this.runtime.draw_height * invScale) / 2;
		}
		else
		{
			x -= (this.runtime.width * invScale) / 2;
			y -= (this.runtime.height * invScale) / 2;
		}
		x += ptx * invScale;
		y += pty * invScale;
		var a = this.getAngle();
		if (a !== 0)
		{
			x -= this.layout.scrollX;
			y -= this.layout.scrollY;
			var cosa = Math.cos(a);
			var sina = Math.sin(a);
			var x_temp = (x * cosa) - (y * sina);
			y = (y * cosa) + (x * sina);
			x = x_temp;
			x += this.layout.scrollX;
			y += this.layout.scrollY;
		}
		return getx ? x : y;
	};
	Layer.prototype.layerToCanvas = function (ptx, pty, getx, using_draw_area)
	{
		var a = this.getAngle();
		if (a !== 0)
		{
			ptx -= this.layout.scrollX;
			pty -= this.layout.scrollY;
			var cosa = Math.cos(-a);
			var sina = Math.sin(-a);
			var x_temp = (ptx * cosa) - (pty * sina);
			pty = (pty * cosa) + (ptx * sina);
			ptx = x_temp;
			ptx += this.layout.scrollX;
			pty += this.layout.scrollY;
		}
		var ox = this.runtime.parallax_x_origin;
		var oy = this.runtime.parallax_y_origin;
		var x = ((this.layout.scrollX - ox) * this.parallaxX) + ox;
		var y = ((this.layout.scrollY - oy) * this.parallaxY) + oy;
		var invScale = 1 / this.getScale(!using_draw_area);
		if (using_draw_area)
		{
			x -= (this.runtime.draw_width * invScale) / 2;
			y -= (this.runtime.draw_height * invScale) / 2;
		}
		else
		{
			x -= (this.runtime.width * invScale) / 2;
			y -= (this.runtime.height * invScale) / 2;
		}
		x = (ptx - x) / invScale;
		y = (pty - y) / invScale;
		var multiplier = this.runtime.devicePixelRatio;
		if (this.runtime.isRetina)
		{
			x /= multiplier;
			y /= multiplier;
		}
		return getx ? x : y;
	};
	Layer.prototype.rotatePt = function (x_, y_, getx)
	{
		if (this.getAngle() === 0)
			return getx ? x_ : y_;
		var nx = this.layerToCanvas(x_, y_, true);
		var ny = this.layerToCanvas(x_, y_, false);
		this.disableAngle = true;
		var px = this.canvasToLayer(nx, ny, true);
		var py = this.canvasToLayer(nx, ny, true);
		this.disableAngle = false;
		return getx ? px : py;
	};
	Layer.prototype.saveToJSON = function ()
	{
		var i, len, et;
		var o = {
			"s": this.scale,
			"a": this.angle,
			"vl": this.viewLeft,
			"vt": this.viewTop,
			"vr": this.viewRight,
			"vb": this.viewBottom,
			"v": this.visible,
			"bc": this.background_color,
			"t": this.transparent,
			"px": this.parallaxX,
			"py": this.parallaxY,
			"o": this.opacity,
			"zr": this.zoomRate,
			"fx": [],
			"instances": []
		};
		for (i = 0, len = this.effect_types.length; i < len; i++)
		{
			et = this.effect_types[i];
			o["fx"].push({"name": et.name, "active": et.active, "params": this.effect_params[et.index] });
		}
		return o;
	};
	function sortInstanceByZIndex(a, b)
	{
		return a.zindex - b.zindex;
	};
	Layer.prototype.loadFromJSON = function (o)
	{
		var i, len, p, inst, fx;
		this.scale = o["s"];
		this.angle = o["a"];
		this.viewLeft = o["vl"];
		this.viewTop = o["vt"];
		this.viewRight = o["vr"];
		this.viewBottom = o["vb"];
		this.visible = o["v"];
		this.background_color = o["bc"];
		this.transparent = o["t"];
		this.parallaxX = o["px"];
		this.parallaxY = o["py"];
		this.opacity = o["o"];
		this.zoomRate = o["zr"];
		var ofx = o["fx"];
		for (i = 0, len = ofx.length; i < len; i++)
		{
			fx = this.getEffectByName(ofx[i]["name"]);
			if (!fx)
				continue;		// must've gone missing
			fx.active = ofx[i]["active"];
			this.effect_params[fx.index] = ofx[i]["params"];
		}
		this.updateActiveEffects();
		this.instances.sort(sortInstanceByZIndex);
		this.zindices_stale = true;
	};
	cr.layer = Layer;
}());
;
(function()
{
	var allUniqueSolModifiers = [];
	function testSolsMatch(arr1, arr2)
	{
		var i, len = arr1.length;
		switch (len) {
		case 0:
			return true;
		case 1:
			return arr1[0] === arr2[0];
		case 2:
			return arr1[0] === arr2[0] && arr1[1] === arr2[1];
		default:
			for (i = 0; i < len; i++)
			{
				if (arr1[i] !== arr2[i])
					return false;
			}
			return true;
		}
	};
	function solArraySorter(t1, t2)
	{
		return t1.index - t2.index;
	};
	function findMatchingSolModifier(arr)
	{
		var i, len, u, temp, subarr;
		if (arr.length === 2)
		{
			if (arr[0].index > arr[1].index)
			{
				temp = arr[0];
				arr[0] = arr[1];
				arr[1] = temp;
			}
		}
		else if (arr.length > 2)
			arr.sort(solArraySorter);		// so testSolsMatch compares in same order
		if (arr.length >= allUniqueSolModifiers.length)
			allUniqueSolModifiers.length = arr.length + 1;
		if (!allUniqueSolModifiers[arr.length])
			allUniqueSolModifiers[arr.length] = [];
		subarr = allUniqueSolModifiers[arr.length];
		for (i = 0, len = subarr.length; i < len; i++)
		{
			u = subarr[i];
			if (testSolsMatch(arr, u))
				return u;
		}
		subarr.push(arr);
		return arr;
	};
	function EventSheet(runtime, m)
	{
		this.runtime = runtime;
		this.triggers = {};
		this.fasttriggers = {};
        this.hasRun = false;
        this.includes = new cr.ObjectSet(); 	// all event sheets included by this sheet, at first-level indirection only
		this.deep_includes = [];				// all includes from this sheet recursively, in trigger order
		this.already_included_sheets = [];		// used while building deep_includes
		this.name = m[0];
		var em = m[1];		// events model
		this.events = [];       // triggers won't make it to this array
		var i, len;
		for (i = 0, len = em.length; i < len; i++)
			this.init_event(em[i], null, this.events);
	};
    EventSheet.prototype.toString = function ()
    {
        return this.name;
    };
	EventSheet.prototype.init_event = function (m, parent, nontriggers)
	{
		switch (m[0]) {
		case 0:	// event block
		{
			var block = new cr.eventblock(this, parent, m);
			cr.seal(block);
			if (block.orblock)
			{
				nontriggers.push(block);
				var i, len;
				for (i = 0, len = block.conditions.length; i < len; i++)
				{
					if (block.conditions[i].trigger)
						this.init_trigger(block, i);
				}
			}
			else
			{
				if (block.is_trigger())
					this.init_trigger(block, 0);
				else
					nontriggers.push(block);
			}
			break;
		}
		case 1: // variable
		{
			var v = new cr.eventvariable(this, parent, m);
			cr.seal(v);
			nontriggers.push(v);
			break;
		}
        case 2:	// include
        {
            var inc = new cr.eventinclude(this, parent, m);
			cr.seal(inc);
            nontriggers.push(inc);
			break;
        }
		default:
;
		}
	};
	EventSheet.prototype.postInit = function ()
	{
		var i, len;
		for (i = 0, len = this.events.length; i < len; i++)
		{
			this.events[i].postInit(i < len - 1 && this.events[i + 1].is_else_block);
		}
	};
	EventSheet.prototype.updateDeepIncludes = function ()
	{
		this.deep_includes.length = 0;
		this.already_included_sheets.length = 0;
		this.addDeepIncludes(this);
		this.already_included_sheets.length = 0;
	};
	EventSheet.prototype.addDeepIncludes = function (root_sheet)
	{
		var i, len, inc, sheet;
		var deep_includes = root_sheet.deep_includes;
		var already_included_sheets = root_sheet.already_included_sheets;
		var arr = this.includes.valuesRef();
		for (i = 0, len = arr.length; i < len; ++i)
		{
			inc = arr[i];
			sheet = inc.include_sheet;
			if (!inc.isActive() || root_sheet === sheet || already_included_sheets.indexOf(sheet) > -1)
				continue;
			already_included_sheets.push(sheet);
			sheet.addDeepIncludes(root_sheet);
			deep_includes.push(sheet);
		}
	};
	EventSheet.prototype.run = function (from_include)
	{
		if (!this.runtime.resuming_breakpoint)
		{
			this.hasRun = true;
			if (!from_include)
				this.runtime.isRunningEvents = true;
		}
		var i, len;
		for (i = 0, len = this.events.length; i < len; i++)
		{
			var ev = this.events[i];
			ev.run();
				this.runtime.clearSol(ev.solModifiers);
				if (!this.runtime.deathRow.isEmpty() || this.runtime.createRow.length)
					this.runtime.ClearDeathRow();
		}
			if (!from_include)
				this.runtime.isRunningEvents = false;
	};
	function isPerformanceSensitiveTrigger(method)
	{
		if (cr.plugins_.Sprite && method === cr.plugins_.Sprite.prototype.cnds.OnFrameChanged)
		{
			return true;
		}
		return false;
	};
	EventSheet.prototype.init_trigger = function (trig, index)
	{
		if (!trig.orblock)
			this.runtime.triggers_to_postinit.push(trig);	// needs to be postInit'd later
		var i, len;
		var cnd = trig.conditions[index];
		var type_name;
		if (cnd.type)
			type_name = cnd.type.name;
		else
			type_name = "system";
		var fasttrigger = cnd.fasttrigger;
		var triggers = (fasttrigger ? this.fasttriggers : this.triggers);
		if (!triggers[type_name])
			triggers[type_name] = [];
		var obj_entry = triggers[type_name];
		var method = cnd.func;
		if (fasttrigger)
		{
			if (!cnd.parameters.length)				// no parameters
				return;
			var firstparam = cnd.parameters[0];
			if (firstparam.type !== 1 ||			// not a string param
				firstparam.expression.type !== 2)	// not a string literal node
			{
				return;
			}
			var fastevs;
			var firstvalue = firstparam.expression.value.toLowerCase();
			var i, len;
			for (i = 0, len = obj_entry.length; i < len; i++)
			{
				if (obj_entry[i].method == method)
				{
					fastevs = obj_entry[i].evs;
					if (!fastevs[firstvalue])
						fastevs[firstvalue] = [[trig, index]];
					else
						fastevs[firstvalue].push([trig, index]);
					return;
				}
			}
			fastevs = {};
			fastevs[firstvalue] = [[trig, index]];
			obj_entry.push({ method: method, evs: fastevs });
		}
		else
		{
			for (i = 0, len = obj_entry.length; i < len; i++)
			{
				if (obj_entry[i].method == method)
				{
					obj_entry[i].evs.push([trig, index]);
					return;
				}
			}
			if (isPerformanceSensitiveTrigger(method))
				obj_entry.unshift({ method: method, evs: [[trig, index]]});
			else
				obj_entry.push({ method: method, evs: [[trig, index]]});
		}
	};
	cr.eventsheet = EventSheet;
	function Selection(type)
	{
		this.type = type;
		this.instances = [];        // subset of picked instances
		this.else_instances = [];	// subset of unpicked instances
		this.select_all = true;
	};
	Selection.prototype.hasObjects = function ()
	{
		if (this.select_all)
			return this.type.instances.length;
		else
			return this.instances.length;
	};
	Selection.prototype.getObjects = function ()
	{
		if (this.select_all)
			return this.type.instances;
		else
			return this.instances;
	};
	/*
	Selection.prototype.ensure_picked = function (inst, skip_siblings)
	{
		var i, len;
		var orblock = inst.runtime.getCurrentEventStack().current_event.orblock;
		if (this.select_all)
		{
			this.select_all = false;
			if (orblock)
			{
				cr.shallowAssignArray(this.else_instances, inst.type.instances);
				cr.arrayFindRemove(this.else_instances, inst);
			}
			this.instances.length = 1;
			this.instances[0] = inst;
		}
		else
		{
			if (orblock)
			{
				i = this.else_instances.indexOf(inst);
				if (i !== -1)
				{
					this.instances.push(this.else_instances[i]);
					this.else_instances.splice(i, 1);
				}
			}
			else
			{
				if (this.instances.indexOf(inst) === -1)
					this.instances.push(inst);
			}
		}
		if (!skip_siblings)
		{
		}
	};
	*/
	Selection.prototype.pick_one = function (inst)
	{
		if (!inst)
			return;
		if (inst.runtime.getCurrentEventStack().current_event.orblock)
		{
			if (this.select_all)
			{
				this.instances.length = 0;
				cr.shallowAssignArray(this.else_instances, inst.type.instances);
				this.select_all = false;
			}
			var i = this.else_instances.indexOf(inst);
			if (i !== -1)
			{
				this.instances.push(this.else_instances[i]);
				this.else_instances.splice(i, 1);
			}
		}
		else
		{
			this.select_all = false;
			this.instances.length = 1;
			this.instances[0] = inst;
		}
	};
	cr.selection = Selection;
	function EventBlock(sheet, parent, m)
	{
		this.sheet = sheet;
		this.parent = parent;
		this.runtime = sheet.runtime;
		this.solModifiers = [];
		this.solModifiersIncludingParents = [];
		this.solWriterAfterCnds = false;	// block does not change SOL after running its conditions
		this.group = false;					// is group of events
		this.initially_activated = false;	// if a group, is active on startup
		this.toplevelevent = false;			// is an event block parented only by a top-level group
		this.toplevelgroup = false;			// is parented only by other groups or is top-level (i.e. not in a subevent)
		this.has_else_block = false;		// is followed by else
;
		this.conditions = [];
		this.actions = [];
		this.subevents = [];
		this.group_name = "";
		this.group = false;
		this.initially_activated = false;
		this.group_active = false;
		this.contained_includes = null;
        if (m[1])
        {
			this.group_name = m[1][1].toLowerCase();
			this.group = true;
			this.initially_activated = !!m[1][0];
			this.contained_includes = [];
			this.group_active = this.initially_activated;
			this.runtime.allGroups.push(this);
            this.runtime.groups_by_name[this.group_name] = this;
        }
		this.orblock = m[2];
		this.sid = m[4];
		if (!this.group)
			this.runtime.blocksBySid[this.sid.toString()] = this;
		var i, len;
		var cm = m[5];
		for (i = 0, len = cm.length; i < len; i++)
		{
			var cnd = new cr.condition(this, cm[i]);
			cnd.index = i;
			cr.seal(cnd);
			this.conditions.push(cnd);
			/*
			if (cnd.is_logical())
				this.is_logical = true;
			if (cnd.type && !cnd.type.plugin.singleglobal && this.cndReferences.indexOf(cnd.type) === -1)
				this.cndReferences.push(cnd.type);
			*/
			this.addSolModifier(cnd.type);
		}
		var am = m[6];
		for (i = 0, len = am.length; i < len; i++)
		{
			var act = new cr.action(this, am[i]);
			act.index = i;
			cr.seal(act);
			this.actions.push(act);
		}
		if (m.length === 8)
		{
			var em = m[7];
			for (i = 0, len = em.length; i < len; i++)
				this.sheet.init_event(em[i], this, this.subevents);
		}
		this.is_else_block = false;
		if (this.conditions.length)
		{
			this.is_else_block = (this.conditions[0].type == null && this.conditions[0].func == cr.system_object.prototype.cnds.Else);
		}
	};
	window["_c2hh_"] = "8DC69F21DE7B0A1CC83AB9F037EA2ED0E0C910DE";
	EventBlock.prototype.postInit = function (hasElse/*, prevBlock_*/)
	{
		var i, len;
		var p = this.parent;
		if (this.group)
		{
			this.toplevelgroup = true;
			while (p)
			{
				if (!p.group)
				{
					this.toplevelgroup = false;
					break;
				}
				p = p.parent;
			}
		}
		this.toplevelevent = !this.is_trigger() && (!this.parent || (this.parent.group && this.parent.toplevelgroup));
		this.has_else_block = !!hasElse;
		this.solModifiersIncludingParents = this.solModifiers.slice(0);
		p = this.parent;
		while (p)
		{
			for (i = 0, len = p.solModifiers.length; i < len; i++)
				this.addParentSolModifier(p.solModifiers[i]);
			p = p.parent;
		}
		this.solModifiers = findMatchingSolModifier(this.solModifiers);
		this.solModifiersIncludingParents = findMatchingSolModifier(this.solModifiersIncludingParents);
		var i, len/*, s*/;
		for (i = 0, len = this.conditions.length; i < len; i++)
			this.conditions[i].postInit();
		for (i = 0, len = this.actions.length; i < len; i++)
			this.actions[i].postInit();
		for (i = 0, len = this.subevents.length; i < len; i++)
		{
			this.subevents[i].postInit(i < len - 1 && this.subevents[i + 1].is_else_block);
		}
		/*
		if (this.is_else_block && this.prev_block)
		{
			for (i = 0, len = this.prev_block.solModifiers.length; i < len; i++)
			{
				s = this.prev_block.solModifiers[i];
				if (this.solModifiers.indexOf(s) === -1)
					this.solModifiers.push(s);
			}
		}
		*/
	};
	EventBlock.prototype.setGroupActive = function (a)
	{
		if (this.group_active === !!a)
			return;		// same state
		this.group_active = !!a;
		var i, len;
		for (i = 0, len = this.contained_includes.length; i < len; ++i)
		{
			this.contained_includes[i].updateActive();
		}
		if (len > 0 && this.runtime.running_layout.event_sheet)
			this.runtime.running_layout.event_sheet.updateDeepIncludes();
	};
	function addSolModifierToList(type, arr)
	{
		var i, len, t;
		if (!type)
			return;
		if (arr.indexOf(type) === -1)
			arr.push(type);
		if (type.is_contained)
		{
			for (i = 0, len = type.container.length; i < len; i++)
			{
				t = type.container[i];
				if (type === t)
					continue;		// already handled
				if (arr.indexOf(t) === -1)
					arr.push(t);
			}
		}
	};
	EventBlock.prototype.addSolModifier = function (type)
	{
		addSolModifierToList(type, this.solModifiers);
	};
	EventBlock.prototype.addParentSolModifier = function (type)
	{
		addSolModifierToList(type, this.solModifiersIncludingParents);
	};
	EventBlock.prototype.setSolWriterAfterCnds = function ()
	{
		this.solWriterAfterCnds = true;
		if (this.parent)
			this.parent.setSolWriterAfterCnds();
	};
	EventBlock.prototype.is_trigger = function ()
	{
		if (!this.conditions.length)    // no conditions
			return false;
		else
			return this.conditions[0].trigger;
	};
	EventBlock.prototype.run = function ()
	{
		var i, len, any_true = false, cnd_result;
		var runtime = this.runtime;
		var evinfo = this.runtime.getCurrentEventStack();
		evinfo.current_event = this;
		var conditions = this.conditions;
			if (!this.is_else_block)
				evinfo.else_branch_ran = false;
		if (this.orblock)
		{
			if (conditions.length === 0)
				any_true = true;		// be sure to run if empty block
				evinfo.cndindex = 0
			for (len = conditions.length; evinfo.cndindex < len; evinfo.cndindex++)
			{
				if (conditions[evinfo.cndindex].trigger)		// skip triggers when running OR block
					continue;
				cnd_result = conditions[evinfo.cndindex].run();
				if (cnd_result)			// make sure all conditions run and run if any were true
					any_true = true;
			}
			evinfo.last_event_true = any_true;
			if (any_true)
				this.run_actions_and_subevents();
		}
		else
		{
				evinfo.cndindex = 0
			for (len = conditions.length; evinfo.cndindex < len; evinfo.cndindex++)
			{
				cnd_result = conditions[evinfo.cndindex].run();
				if (!cnd_result)    // condition failed
				{
					evinfo.last_event_true = false;
					if (this.toplevelevent && (!runtime.deathRow.isEmpty() || runtime.createRow.length))
						runtime.ClearDeathRow();
					return;		// bail out now
				}
			}
			evinfo.last_event_true = true;
			this.run_actions_and_subevents();
		}
		this.end_run(evinfo);
	};
	EventBlock.prototype.end_run = function (evinfo)
	{
		if (evinfo.last_event_true && this.has_else_block)
			evinfo.else_branch_ran = true;
		if (this.toplevelevent && (!this.runtime.deathRow.isEmpty() || this.runtime.createRow.length))
			this.runtime.ClearDeathRow();
	};
	EventBlock.prototype.run_orblocktrigger = function (index)
	{
		var evinfo = this.runtime.getCurrentEventStack();
		evinfo.current_event = this;
		if (this.conditions[index].run())
		{
			this.run_actions_and_subevents();
			this.runtime.getCurrentEventStack().last_event_true = true;
		}
	};
	EventBlock.prototype.run_actions_and_subevents = function ()
	{
		var evinfo = this.runtime.getCurrentEventStack();
		var len;
		for (evinfo.actindex = 0, len = this.actions.length; evinfo.actindex < len; evinfo.actindex++)
		{
			if (this.actions[evinfo.actindex].run())
				return;
		}
		this.run_subevents();
	};
	EventBlock.prototype.resume_actions_and_subevents = function ()
	{
		var evinfo = this.runtime.getCurrentEventStack();
		var len;
		for (len = this.actions.length; evinfo.actindex < len; evinfo.actindex++)
		{
			if (this.actions[evinfo.actindex].run())
				return;
		}
		this.run_subevents();
	};
	EventBlock.prototype.run_subevents = function ()
	{
		if (!this.subevents.length)
			return;
		var i, len, subev, pushpop/*, skipped_pop = false, pop_modifiers = null*/;
		var last = this.subevents.length - 1;
			this.runtime.pushEventStack(this);
		if (this.solWriterAfterCnds)
		{
			for (i = 0, len = this.subevents.length; i < len; i++)
			{
				subev = this.subevents[i];
					pushpop = (!this.toplevelgroup || (!this.group && i < last));
					if (pushpop)
						this.runtime.pushCopySol(subev.solModifiers);
				subev.run();
					if (pushpop)
						this.runtime.popSol(subev.solModifiers);
					else
						this.runtime.clearSol(subev.solModifiers);
			}
		}
		else
		{
			for (i = 0, len = this.subevents.length; i < len; i++)
			{
				this.subevents[i].run();
			}
		}
			this.runtime.popEventStack();
	};
	EventBlock.prototype.run_pretrigger = function ()
	{
		var evinfo = this.runtime.getCurrentEventStack();
		evinfo.current_event = this;
		var any_true = false;
		var i, len;
		for (evinfo.cndindex = 0, len = this.conditions.length; evinfo.cndindex < len; evinfo.cndindex++)
		{
;
			if (this.conditions[evinfo.cndindex].run())
				any_true = true;
			else if (!this.orblock)			// condition failed (let OR blocks run all conditions anyway)
				return false;               // bail out
		}
		return this.orblock ? any_true : true;
	};
	EventBlock.prototype.retrigger = function ()
	{
		this.runtime.execcount++;
		var prevcndindex = this.runtime.getCurrentEventStack().cndindex;
		var len;
		var evinfo = this.runtime.pushEventStack(this);
		if (!this.orblock)
		{
			for (evinfo.cndindex = prevcndindex + 1, len = this.conditions.length; evinfo.cndindex < len; evinfo.cndindex++)
			{
				if (!this.conditions[evinfo.cndindex].run())    // condition failed
				{
					this.runtime.popEventStack();               // moving up level of recursion
					return false;                               // bail out
				}
			}
		}
		this.run_actions_and_subevents();
		this.runtime.popEventStack();
		return true;		// ran an iteration
	};
	EventBlock.prototype.isFirstConditionOfType = function (cnd)
	{
		var cndindex = cnd.index;
		if (cndindex === 0)
			return true;
		--cndindex;
		for ( ; cndindex >= 0; --cndindex)
		{
			if (this.conditions[cndindex].type === cnd.type)
				return false;
		}
		return true;
	};
	cr.eventblock = EventBlock;
	function Condition(block, m)
	{
		this.block = block;
		this.sheet = block.sheet;
		this.runtime = block.runtime;
		this.parameters = [];
		this.results = [];
		this.extra = {};		// for plugins to stow away some custom info
		this.index = -1;
		this.anyParamVariesPerInstance = false;
		this.func = m[1];
;
		this.trigger = (m[3] > 0);
		this.fasttrigger = (m[3] === 2);
		this.looping = m[4];
		this.inverted = m[5];
		this.isstatic = m[6];
		this.sid = m[7];
		this.runtime.cndsBySid[this.sid.toString()] = this;
		if (m[0] === -1)		// system object
		{
			this.type = null;
			this.run = this.run_system;
			this.behaviortype = null;
			this.beh_index = -1;
		}
		else
		{
			this.type = this.runtime.types_by_index[m[0]];
;
			if (this.isstatic)
				this.run = this.run_static;
			else
				this.run = this.run_object;
			if (m[2])
			{
				this.behaviortype = this.type.getBehaviorByName(m[2]);
;
				this.beh_index = this.type.getBehaviorIndexByName(m[2]);
;
			}
			else
			{
				this.behaviortype = null;
				this.beh_index = -1;
			}
			if (this.block.parent)
				this.block.parent.setSolWriterAfterCnds();
		}
		if (this.fasttrigger)
			this.run = this.run_true;
		if (m.length === 10)
		{
			var i, len;
			var em = m[9];
			for (i = 0, len = em.length; i < len; i++)
			{
				var param = new cr.parameter(this, em[i]);
				cr.seal(param);
				this.parameters.push(param);
			}
			this.results.length = em.length;
		}
	};
	Condition.prototype.postInit = function ()
	{
		var i, len, p;
		for (i = 0, len = this.parameters.length; i < len; i++)
		{
			p = this.parameters[i];
			p.postInit();
			if (p.variesPerInstance)
				this.anyParamVariesPerInstance = true;
		}
	};
	/*
	Condition.prototype.is_logical = function ()
	{
		return !this.type || this.type.plugin.singleglobal;
	};
	*/
	Condition.prototype.run_true = function ()
	{
		return true;
	};
	Condition.prototype.run_system = function ()
	{
		var i, len;
		for (i = 0, len = this.parameters.length; i < len; i++)
			this.results[i] = this.parameters[i].get();
		return cr.xor(this.func.apply(this.runtime.system, this.results), this.inverted);
	};
	Condition.prototype.run_static = function ()
	{
		var i, len;
		for (i = 0, len = this.parameters.length; i < len; i++)
			this.results[i] = this.parameters[i].get();
		var ret = this.func.apply(this.behaviortype ? this.behaviortype : this.type, this.results);
		this.type.applySolToContainer();
		return ret;
	};
	Condition.prototype.run_object = function ()
	{
		var i, j, k, leni, lenj, p, ret, met, inst, s, sol2;
		var type = this.type;
		var sol = type.getCurrentSol();
		var is_orblock = this.block.orblock && !this.trigger;		// triggers in OR blocks need to work normally
		var offset = 0;
		var is_contained = type.is_contained;
		var is_family = type.is_family;
		var family_index = type.family_index;
		var beh_index = this.beh_index;
		var is_beh = (beh_index > -1);
		var params_vary = this.anyParamVariesPerInstance;
		var parameters = this.parameters;
		var results = this.results;
		var inverted = this.inverted;
		var func = this.func;
		var arr, container;
		if (params_vary)
		{
			for (j = 0, lenj = parameters.length; j < lenj; ++j)
			{
				p = parameters[j];
				if (!p.variesPerInstance)
					results[j] = p.get(0);
			}
		}
		else
		{
			for (j = 0, lenj = parameters.length; j < lenj; ++j)
				results[j] = parameters[j].get(0);
		}
		if (sol.select_all) {
			sol.instances.length = 0;       // clear contents
			sol.else_instances.length = 0;
			arr = type.instances;
			for (i = 0, leni = arr.length; i < leni; ++i)
			{
				inst = arr[i];
;
				if (params_vary)
				{
					for (j = 0, lenj = parameters.length; j < lenj; ++j)
					{
						p = parameters[j];
						if (p.variesPerInstance)
							results[j] = p.get(i);        // default SOL index is current object
					}
				}
				if (is_beh)
				{
					offset = 0;
					if (is_family)
					{
						offset = inst.type.family_beh_map[family_index];
					}
					ret = func.apply(inst.behavior_insts[beh_index + offset], results);
				}
				else
					ret = func.apply(inst, results);
				met = cr.xor(ret, inverted);
				if (met)
					sol.instances.push(inst);
				else if (is_orblock)					// in OR blocks, keep the instances not meeting the condition for subsequent testing
					sol.else_instances.push(inst);
			}
			if (type.finish)
				type.finish(true);
			sol.select_all = false;
			type.applySolToContainer();
			return sol.hasObjects();
		}
		else {
			k = 0;
			var using_else_instances = (is_orblock && !this.block.isFirstConditionOfType(this));
			arr = (using_else_instances ? sol.else_instances : sol.instances);
			var any_true = false;
			for (i = 0, leni = arr.length; i < leni; ++i)
			{
				inst = arr[i];
;
				if (params_vary)
				{
					for (j = 0, lenj = parameters.length; j < lenj; ++j)
					{
						p = parameters[j];
						if (p.variesPerInstance)
							results[j] = p.get(i);        // default SOL index is current object
					}
				}
				if (is_beh)
				{
					offset = 0;
					if (is_family)
					{
						offset = inst.type.family_beh_map[family_index];
					}
					ret = func.apply(inst.behavior_insts[beh_index + offset], results);
				}
				else
					ret = func.apply(inst, results);
				if (cr.xor(ret, inverted))
				{
					any_true = true;
					if (using_else_instances)
					{
						sol.instances.push(inst);
						if (is_contained)
						{
							for (j = 0, lenj = inst.siblings.length; j < lenj; j++)
							{
								s = inst.siblings[j];
								s.type.getCurrentSol().instances.push(s);
							}
						}
					}
					else
					{
						arr[k] = inst;
						if (is_contained)
						{
							for (j = 0, lenj = inst.siblings.length; j < lenj; j++)
							{
								s = inst.siblings[j];
								s.type.getCurrentSol().instances[k] = s;
							}
						}
						k++;
					}
				}
				else
				{
					if (using_else_instances)
					{
						arr[k] = inst;
						if (is_contained)
						{
							for (j = 0, lenj = inst.siblings.length; j < lenj; j++)
							{
								s = inst.siblings[j];
								s.type.getCurrentSol().else_instances[k] = s;
							}
						}
						k++;
					}
					else if (is_orblock)
					{
						sol.else_instances.push(inst);
						if (is_contained)
						{
							for (j = 0, lenj = inst.siblings.length; j < lenj; j++)
							{
								s = inst.siblings[j];
								s.type.getCurrentSol().else_instances.push(s);
							}
						}
					}
				}
			}
			arr.length = k;
			if (is_contained)
			{
				container = type.container;
				for (i = 0, leni = container.length; i < leni; i++)
				{
					sol2 = container[i].getCurrentSol();
					if (using_else_instances)
						sol2.else_instances.length = k;
					else
						sol2.instances.length = k;
				}
			}
			var pick_in_finish = any_true;		// don't pick in finish() if we're only doing the logic test below
			if (using_else_instances && !any_true)
			{
				for (i = 0, leni = sol.instances.length; i < leni; i++)
				{
					inst = sol.instances[i];
					if (params_vary)
					{
						for (j = 0, lenj = parameters.length; j < lenj; j++)
						{
							p = parameters[j];
							if (p.variesPerInstance)
								results[j] = p.get(i);
						}
					}
					if (is_beh)
						ret = func.apply(inst.behavior_insts[beh_index], results);
					else
						ret = func.apply(inst, results);
					if (cr.xor(ret, inverted))
					{
						any_true = true;
						break;		// got our flag, don't need to test any more
					}
				}
			}
			if (type.finish)
				type.finish(pick_in_finish || is_orblock);
			return is_orblock ? any_true : sol.hasObjects();
		}
	};
	cr.condition = Condition;
	function Action(block, m)
	{
		this.block = block;
		this.sheet = block.sheet;
		this.runtime = block.runtime;
		this.parameters = [];
		this.results = [];
		this.extra = {};		// for plugins to stow away some custom info
		this.index = -1;
		this.anyParamVariesPerInstance = false;
		this.func = m[1];
;
		if (m[0] === -1)	// system
		{
			this.type = null;
			this.run = this.run_system;
			this.behaviortype = null;
			this.beh_index = -1;
		}
		else
		{
			this.type = this.runtime.types_by_index[m[0]];
;
			this.run = this.run_object;
			if (m[2])
			{
				this.behaviortype = this.type.getBehaviorByName(m[2]);
;
				this.beh_index = this.type.getBehaviorIndexByName(m[2]);
;
			}
			else
			{
				this.behaviortype = null;
				this.beh_index = -1;
			}
		}
		this.sid = m[3];
		this.runtime.actsBySid[this.sid.toString()] = this;
		if (m.length === 6)
		{
			var i, len;
			var em = m[5];
			for (i = 0, len = em.length; i < len; i++)
			{
				var param = new cr.parameter(this, em[i]);
				cr.seal(param);
				this.parameters.push(param);
			}
			this.results.length = em.length;
		}
	};
	Action.prototype.postInit = function ()
	{
		var i, len, p;
		for (i = 0, len = this.parameters.length; i < len; i++)
		{
			p = this.parameters[i];
			p.postInit();
			if (p.variesPerInstance)
				this.anyParamVariesPerInstance = true;
		}
	};
	Action.prototype.run_system = function ()
	{
		var i, len;
		for (i = 0, len = this.parameters.length; i < len; i++)
			this.results[i] = this.parameters[i].get();
		return this.func.apply(this.runtime.system, this.results);
	};
	Action.prototype.run_object = function ()
	{
		var instances = this.type.getCurrentSol().getObjects();
		var is_family = this.type.is_family;
		var family_index = this.type.family_index;
		var beh_index = this.beh_index;
		var is_beh = (beh_index > -1);
		var params_vary = this.anyParamVariesPerInstance;
		var parameters = this.parameters;
		var results = this.results;
		var func = this.func;
		var i, j, leni, lenj, p, inst, offset;
		if (params_vary)
		{
			for (j = 0, lenj = parameters.length; j < lenj; ++j)
			{
				p = parameters[j];
				if (!p.variesPerInstance)
					results[j] = p.get(0);
			}
		}
		else
		{
			for (j = 0, lenj = parameters.length; j < lenj; ++j)
				results[j] = parameters[j].get(0);
		}
		for (i = 0, leni = instances.length; i < leni; ++i)
		{
			inst = instances[i];
			if (params_vary)
			{
				for (j = 0, lenj = parameters.length; j < lenj; ++j)
				{
					p = parameters[j];
					if (p.variesPerInstance)
						results[j] = p.get(i);    // pass i to use as default SOL index
				}
			}
			if (is_beh)
			{
				offset = 0;
				if (is_family)
				{
					offset = inst.type.family_beh_map[family_index];
				}
				func.apply(inst.behavior_insts[beh_index + offset], results);
			}
			else
				func.apply(inst, results);
		}
		return false;
	};
	cr.action = Action;
	var tempValues = [];
	var tempValuesPtr = -1;
	function Parameter(owner, m)
	{
		this.owner = owner;
		this.block = owner.block;
		this.sheet = owner.sheet;
		this.runtime = owner.runtime;
		this.type = m[0];
		this.expression = null;
		this.solindex = 0;
		this.get = null;
		this.combosel = 0;
		this.layout = null;
		this.key = 0;
		this.object = null;
		this.index = 0;
		this.varname = null;
		this.eventvar = null;
		this.fileinfo = null;
		this.subparams = null;
		this.variadicret = null;
		this.subparams = null;
		this.variadicret = null;
		this.variesPerInstance = false;
		var i, len, param;
		switch (m[0])
		{
			case 0:		// number
			case 7:		// any
				this.expression = new cr.expNode(this, m[1]);
				this.solindex = 0;
				this.get = this.get_exp;
				break;
			case 1:		// string
				this.expression = new cr.expNode(this, m[1]);
				this.solindex = 0;
				this.get = this.get_exp_str;
				break;
			case 5:		// layer
				this.expression = new cr.expNode(this, m[1]);
				this.solindex = 0;
				this.get = this.get_layer;
				break;
			case 3:		// combo
			case 8:		// cmp
				this.combosel = m[1];
				this.get = this.get_combosel;
				break;
			case 6:		// layout
				this.layout = this.runtime.layouts[m[1]];
;
				this.get = this.get_layout;
				break;
			case 9:		// keyb
				this.key = m[1];
				this.get = this.get_key;
				break;
			case 4:		// object
				this.object = this.runtime.types_by_index[m[1]];
;
				this.get = this.get_object;
				this.block.addSolModifier(this.object);
				if (this.owner instanceof cr.action)
					this.block.setSolWriterAfterCnds();
				else if (this.block.parent)
					this.block.parent.setSolWriterAfterCnds();
				break;
			case 10:	// instvar
				this.index = m[1];
				if (owner.type.is_family)
				{
					this.get = this.get_familyvar;
					this.variesPerInstance = true;
				}
				else
					this.get = this.get_instvar;
				break;
			case 11:	// eventvar
				this.varname = m[1];
				this.eventvar = null;
				this.get = this.get_eventvar;
				break;
			case 2:		// audiofile	["name", ismusic]
			case 12:	// fileinfo		"name"
				this.fileinfo = m[1];
				this.get = this.get_audiofile;
				break;
			case 13:	// variadic
				this.get = this.get_variadic;
				this.subparams = [];
				this.variadicret = [];
				for (i = 1, len = m.length; i < len; i++)
				{
					param = new cr.parameter(this.owner, m[i]);
					cr.seal(param);
					this.subparams.push(param);
					this.variadicret.push(0);
				}
				break;
			default:
;
		}
	};
	Parameter.prototype.postInit = function ()
	{
		var i, len;
		if (this.type === 11)		// eventvar
		{
			this.eventvar = this.runtime.getEventVariableByName(this.varname, this.block.parent);
;
		}
		else if (this.type === 13)	// variadic, postInit all sub-params
		{
			for (i = 0, len = this.subparams.length; i < len; i++)
				this.subparams[i].postInit();
		}
		if (this.expression)
			this.expression.postInit();
	};
	Parameter.prototype.maybeVaryForType = function (t)
	{
		if (this.variesPerInstance)
			return;				// already varies per instance, no need to check again
		if (!t)
			return;				// never vary for system type
		if (!t.plugin.singleglobal)
		{
			this.variesPerInstance = true;
			return;
		}
	};
	Parameter.prototype.setVaries = function ()
	{
		this.variesPerInstance = true;
	};
	Parameter.prototype.pushTempValue = function ()
	{
		tempValuesPtr++;
		if (tempValues.length === tempValuesPtr)
			tempValues.push(new cr.expvalue());
		return tempValues[tempValuesPtr];
	};
	Parameter.prototype.popTempValue = function ()
	{
		tempValuesPtr--;
	};
	Parameter.prototype.get_exp = function (solindex)
	{
		this.solindex = solindex || 0;   // default SOL index to use
		var temp = this.pushTempValue();
		this.expression.get(temp);
		this.popTempValue();
		return temp.data;      			// return actual JS value, not expvalue
	};
	Parameter.prototype.get_exp_str = function (solindex)
	{
		this.solindex = solindex || 0;   // default SOL index to use
		var temp = this.pushTempValue();
		this.expression.get(temp);
		this.popTempValue();
		if (cr.is_string(temp.data))
			return temp.data;
		else
			return "";
	};
	Parameter.prototype.get_object = function ()
	{
		return this.object;
	};
	Parameter.prototype.get_combosel = function ()
	{
		return this.combosel;
	};
	Parameter.prototype.get_layer = function (solindex)
	{
		this.solindex = solindex || 0;   // default SOL index to use
		var temp = this.pushTempValue();
		this.expression.get(temp);
		this.popTempValue();
		if (temp.is_number())
			return this.runtime.getLayerByNumber(temp.data);
		else
			return this.runtime.getLayerByName(temp.data);
	}
	Parameter.prototype.get_layout = function ()
	{
		return this.layout;
	};
	Parameter.prototype.get_key = function ()
	{
		return this.key;
	};
	Parameter.prototype.get_instvar = function ()
	{
		return this.index;
	};
	Parameter.prototype.get_familyvar = function (solindex_)
	{
		var solindex = solindex_ || 0;
		var familytype = this.owner.type;
		var realtype = null;
		var sol = familytype.getCurrentSol();
		var objs = sol.getObjects();
		if (objs.length)
			realtype = objs[solindex % objs.length].type;
		else if (sol.else_instances.length)
			realtype = sol.else_instances[solindex % sol.else_instances.length].type;
		else if (familytype.instances.length)
			realtype = familytype.instances[solindex % familytype.instances.length].type;
		else
			return 0;
		return this.index + realtype.family_var_map[familytype.family_index];
	};
	Parameter.prototype.get_eventvar = function ()
	{
		return this.eventvar;
	};
	Parameter.prototype.get_audiofile = function ()
	{
		return this.fileinfo;
	};
	Parameter.prototype.get_variadic = function ()
	{
		var i, len;
		for (i = 0, len = this.subparams.length; i < len; i++)
		{
			this.variadicret[i] = this.subparams[i].get();
		}
		return this.variadicret;
	};
	cr.parameter = Parameter;
	function EventVariable(sheet, parent, m)
	{
		this.sheet = sheet;
		this.parent = parent;
		this.runtime = sheet.runtime;
		this.solModifiers = [];
		this.name = m[1];
		this.vartype = m[2];
		this.initial = m[3];
		this.is_static = !!m[4];
		this.is_constant = !!m[5];
		this.sid = m[6];
		this.runtime.varsBySid[this.sid.toString()] = this;
		this.data = this.initial;	// note: also stored in event stack frame for local nonstatic nonconst vars
		if (this.parent)			// local var
		{
			if (this.is_static || this.is_constant)
				this.localIndex = -1;
			else
				this.localIndex = this.runtime.stackLocalCount++;
			this.runtime.all_local_vars.push(this);
		}
		else						// global var
		{
			this.localIndex = -1;
			this.runtime.all_global_vars.push(this);
		}
	};
	EventVariable.prototype.postInit = function ()
	{
		this.solModifiers = findMatchingSolModifier(this.solModifiers);
	};
	EventVariable.prototype.setValue = function (x)
	{
;
		var lvs = this.runtime.getCurrentLocalVarStack();
		if (!this.parent || this.is_static || !lvs)
			this.data = x;
		else	// local nonstatic variable: use event stack to keep value at this level of recursion
		{
			if (this.localIndex >= lvs.length)
				lvs.length = this.localIndex + 1;
			lvs[this.localIndex] = x;
		}
	};
	EventVariable.prototype.getValue = function ()
	{
		var lvs = this.runtime.getCurrentLocalVarStack();
		if (!this.parent || this.is_static || !lvs || this.is_constant)
			return this.data;
		else	// local nonstatic variable
		{
			if (this.localIndex >= lvs.length)
			{
;
				return this.initial;
			}
			if (typeof lvs[this.localIndex] === "undefined")
			{
;
				return this.initial;
			}
			return lvs[this.localIndex];
		}
	};
	EventVariable.prototype.run = function ()
	{
			if (this.parent && !this.is_static && !this.is_constant)
				this.setValue(this.initial);
	};
	cr.eventvariable = EventVariable;
	function EventInclude(sheet, parent, m)
	{
		this.sheet = sheet;
		this.parent = parent;
		this.runtime = sheet.runtime;
		this.solModifiers = [];
		this.include_sheet = null;		// determined in postInit
		this.include_sheet_name = m[1];
		this.active = true;
	};
	EventInclude.prototype.toString = function ()
	{
		return "include:" + this.include_sheet.toString();
	};
	EventInclude.prototype.postInit = function ()
	{
        this.include_sheet = this.runtime.eventsheets[this.include_sheet_name];
;
;
        this.sheet.includes.add(this);
		this.solModifiers = findMatchingSolModifier(this.solModifiers);
		var p = this.parent;
		while (p)
		{
			if (p.group)
				p.contained_includes.push(this);
			p = p.parent;
		}
		this.updateActive();
	};
	EventInclude.prototype.run = function ()
	{
			if (this.parent)
				this.runtime.pushCleanSol(this.runtime.types_by_index);
        if (!this.include_sheet.hasRun)
            this.include_sheet.run(true);			// from include
			if (this.parent)
				this.runtime.popSol(this.runtime.types_by_index);
	};
	EventInclude.prototype.updateActive = function ()
	{
		var p = this.parent;
		while (p)
		{
			if (p.group && !p.group_active)
			{
				this.active = false;
				return;
			}
			p = p.parent;
		}
		this.active = true;
	};
	EventInclude.prototype.isActive = function ()
	{
		return this.active;
	};
	cr.eventinclude = EventInclude;
	function EventStackFrame()
	{
		this.temp_parents_arr = [];
		this.reset(null);
		cr.seal(this);
	};
	EventStackFrame.prototype.reset = function (cur_event)
	{
		this.current_event = cur_event;
		this.cndindex = 0;
		this.actindex = 0;
		this.temp_parents_arr.length = 0;
		this.last_event_true = false;
		this.else_branch_ran = false;
		this.any_true_state = false;
	};
	EventStackFrame.prototype.isModifierAfterCnds = function ()
	{
		if (this.current_event.solWriterAfterCnds)
			return true;
		if (this.cndindex < this.current_event.conditions.length - 1)
			return !!this.current_event.solModifiers.length;
		return false;
	};
	cr.eventStackFrame = EventStackFrame;
}());
(function()
{
	function ExpNode(owner_, m)
	{
		this.owner = owner_;
		this.runtime = owner_.runtime;
		this.type = m[0];
;
		this.get = [this.eval_int,
					this.eval_float,
					this.eval_string,
					this.eval_unaryminus,
					this.eval_add,
					this.eval_subtract,
					this.eval_multiply,
					this.eval_divide,
					this.eval_mod,
					this.eval_power,
					this.eval_and,
					this.eval_or,
					this.eval_equal,
					this.eval_notequal,
					this.eval_less,
					this.eval_lessequal,
					this.eval_greater,
					this.eval_greaterequal,
					this.eval_conditional,
					this.eval_system_exp,
					this.eval_object_behavior_exp,
					this.eval_instvar_exp,
					this.eval_object_behavior_exp,
					this.eval_eventvar_exp][this.type];
		var paramsModel = null;
		this.value = null;
		this.first = null;
		this.second = null;
		this.third = null;
		this.func = null;
		this.results = null;
		this.parameters = null;
		this.object_type = null;
		this.beh_index = -1;
		this.instance_expr = null;
		this.varindex = -1;
		this.behavior_type = null;
		this.varname = null;
		this.eventvar = null;
		this.return_string = false;
		switch (this.type) {
		case 0:		// int
		case 1:		// float
		case 2:		// string
			this.value = m[1];
			break;
		case 3:		// unaryminus
			this.first = new cr.expNode(owner_, m[1]);
			break;
		case 18:	// conditional
			this.first = new cr.expNode(owner_, m[1]);
			this.second = new cr.expNode(owner_, m[2]);
			this.third = new cr.expNode(owner_, m[3]);
			break;
		case 19:	// system_exp
			this.func = m[1];
;
			if (this.func === cr.system_object.prototype.exps.random
			 || this.func === cr.system_object.prototype.exps.choose)
			{
				this.owner.setVaries();
			}
			this.results = [];
			this.parameters = [];
			if (m.length === 3)
			{
				paramsModel = m[2];
				this.results.length = paramsModel.length + 1;	// must also fit 'ret'
			}
			else
				this.results.length = 1;      // to fit 'ret'
			break;
		case 20:	// object_exp
			this.object_type = this.runtime.types_by_index[m[1]];
;
			this.beh_index = -1;
			this.func = m[2];
			this.return_string = m[3];
			if (cr.plugins_.Function && this.func === cr.plugins_.Function.prototype.exps.Call)
			{
				this.owner.setVaries();
			}
			if (m[4])
				this.instance_expr = new cr.expNode(owner_, m[4]);
			else
				this.instance_expr = null;
			this.results = [];
			this.parameters = [];
			if (m.length === 6)
			{
				paramsModel = m[5];
				this.results.length = paramsModel.length + 1;
			}
			else
				this.results.length = 1;	// to fit 'ret'
			break;
		case 21:		// instvar_exp
			this.object_type = this.runtime.types_by_index[m[1]];
;
			this.return_string = m[2];
			if (m[3])
				this.instance_expr = new cr.expNode(owner_, m[3]);
			else
				this.instance_expr = null;
			this.varindex = m[4];
			break;
		case 22:		// behavior_exp
			this.object_type = this.runtime.types_by_index[m[1]];
;
			this.behavior_type = this.object_type.getBehaviorByName(m[2]);
;
			this.beh_index = this.object_type.getBehaviorIndexByName(m[2]);
			this.func = m[3];
			this.return_string = m[4];
			if (m[5])
				this.instance_expr = new cr.expNode(owner_, m[5]);
			else
				this.instance_expr = null;
			this.results = [];
			this.parameters = [];
			if (m.length === 7)
			{
				paramsModel = m[6];
				this.results.length = paramsModel.length + 1;
			}
			else
				this.results.length = 1;	// to fit 'ret'
			break;
		case 23:		// eventvar_exp
			this.varname = m[1];
			this.eventvar = null;	// assigned in postInit
			break;
		}
		this.owner.maybeVaryForType(this.object_type);
		if (this.type >= 4 && this.type <= 17)
		{
			this.first = new cr.expNode(owner_, m[1]);
			this.second = new cr.expNode(owner_, m[2]);
		}
		if (paramsModel)
		{
			var i, len;
			for (i = 0, len = paramsModel.length; i < len; i++)
				this.parameters.push(new cr.expNode(owner_, paramsModel[i]));
		}
		cr.seal(this);
	};
	ExpNode.prototype.postInit = function ()
	{
		if (this.type === 23)	// eventvar_exp
		{
			this.eventvar = this.owner.runtime.getEventVariableByName(this.varname, this.owner.block.parent);
;
		}
		if (this.first)
			this.first.postInit();
		if (this.second)
			this.second.postInit();
		if (this.third)
			this.third.postInit();
		if (this.instance_expr)
			this.instance_expr.postInit();
		if (this.parameters)
		{
			var i, len;
			for (i = 0, len = this.parameters.length; i < len; i++)
				this.parameters[i].postInit();
		}
	};
	ExpNode.prototype.eval_system_exp = function (ret)
	{
		this.results[0] = ret;
		var temp = this.owner.pushTempValue();
		var i, len;
		for (i = 0, len = this.parameters.length; i < len; i++)
		{
			this.parameters[i].get(temp);
			this.results[i + 1] = temp.data;   // passing actual javascript value as argument instead of expvalue
		}
		this.owner.popTempValue();
		this.func.apply(this.runtime.system, this.results);
	};
	ExpNode.prototype.eval_object_behavior_exp = function (ret)
	{
		var sol = this.object_type.getCurrentSol();
		var instances = sol.getObjects();
		if (!instances.length)
		{
			if (sol.else_instances.length)
				instances = sol.else_instances;
			else
			{
				if (this.return_string)
					ret.set_string("");
				else
					ret.set_int(0);
				return;
			}
		}
		this.results[0] = ret;
		ret.object_class = this.object_type;		// so expression can access family type if need be
		var temp = this.owner.pushTempValue();
		var i, len;
		for (i = 0, len = this.parameters.length; i < len; i++) {
			this.parameters[i].get(temp);
			this.results[i + 1] = temp.data;   // passing actual javascript value as argument instead of expvalue
		}
		var index = this.owner.solindex;
		if (this.instance_expr) {
			this.instance_expr.get(temp);
			if (temp.is_number()) {
				index = temp.data;
				instances = this.object_type.instances;    // pick from all instances, not SOL
			}
		}
		this.owner.popTempValue();
		index %= instances.length;      // wraparound
		if (index < 0)
			index += instances.length;
		var returned_val;
		var inst = instances[index];
		if (this.beh_index > -1)
		{
			var offset = 0;
			if (this.object_type.is_family)
			{
				offset = inst.type.family_beh_map[this.object_type.family_index];
			}
			returned_val = this.func.apply(inst.behavior_insts[this.beh_index + offset], this.results);
		}
		else
			returned_val = this.func.apply(inst, this.results);
;
	};
	ExpNode.prototype.eval_instvar_exp = function (ret)
	{
		var sol = this.object_type.getCurrentSol();
		var instances = sol.getObjects();
		if (!instances.length)
		{
			if (sol.else_instances.length)
				instances = sol.else_instances;
			else
			{
				if (this.return_string)
					ret.set_string("");
				else
					ret.set_int(0);
				return;
			}
		}
		var index = this.owner.solindex;
		if (this.instance_expr)
		{
			var temp = this.owner.pushTempValue();
			this.instance_expr.get(temp);
			if (temp.is_number())
			{
				index = temp.data;
				var type_instances = this.object_type.instances;
				index %= type_instances.length;     // wraparound
				if (index < 0)                      // offset
					index += type_instances.length;
				var to_ret = type_instances[index].instance_vars[this.varindex];
				if (cr.is_string(to_ret))
					ret.set_string(to_ret);
				else
					ret.set_float(to_ret);
				this.owner.popTempValue();
				return;         // done
			}
			this.owner.popTempValue();
		}
		index %= instances.length;      // wraparound
		if (index < 0)
			index += instances.length;
		var inst = instances[index];
		var offset = 0;
		if (this.object_type.is_family)
		{
			offset = inst.type.family_var_map[this.object_type.family_index];
		}
		var to_ret = inst.instance_vars[this.varindex + offset];
		if (cr.is_string(to_ret))
			ret.set_string(to_ret);
		else
			ret.set_float(to_ret);
	};
	ExpNode.prototype.eval_int = function (ret)
	{
		ret.type = cr.exptype.Integer;
		ret.data = this.value;
	};
	ExpNode.prototype.eval_float = function (ret)
	{
		ret.type = cr.exptype.Float;
		ret.data = this.value;
	};
	ExpNode.prototype.eval_string = function (ret)
	{
		ret.type = cr.exptype.String;
		ret.data = this.value;
	};
	ExpNode.prototype.eval_unaryminus = function (ret)
	{
		this.first.get(ret);                // retrieve operand
		if (ret.is_number())
			ret.data = -ret.data;
	};
	ExpNode.prototype.eval_add = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		if (ret.is_number() && temp.is_number())
		{
			ret.data += temp.data;          // both operands numbers: add
			if (temp.is_float())
				ret.make_float();
		}
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_subtract = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		if (ret.is_number() && temp.is_number())
		{
			ret.data -= temp.data;          // both operands numbers: subtract
			if (temp.is_float())
				ret.make_float();
		}
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_multiply = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		if (ret.is_number() && temp.is_number())
		{
			ret.data *= temp.data;          // both operands numbers: multiply
			if (temp.is_float())
				ret.make_float();
		}
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_divide = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		if (ret.is_number() && temp.is_number())
		{
			ret.data /= temp.data;          // both operands numbers: divide
			ret.make_float();
		}
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_mod = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		if (ret.is_number() && temp.is_number())
		{
			ret.data %= temp.data;          // both operands numbers: modulo
			if (temp.is_float())
				ret.make_float();
		}
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_power = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		if (ret.is_number() && temp.is_number())
		{
			ret.data = Math.pow(ret.data, temp.data);   // both operands numbers: raise to power
			if (temp.is_float())
				ret.make_float();
		}
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_and = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		if (ret.is_number())
		{
			if (temp.is_string())
			{
				ret.set_string(ret.data.toString() + temp.data);
			}
			else
			{
				if (ret.data && temp.data)
					ret.set_int(1);
				else
					ret.set_int(0);
			}
		}
		else if (ret.is_string())
		{
			if (temp.is_string())
				ret.data += temp.data;
			else
			{
				ret.data += (Math.round(temp.data * 1e10) / 1e10).toString();
			}
		}
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_or = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		if (ret.is_number() && temp.is_number())
		{
			if (ret.data || temp.data)
				ret.set_int(1);
			else
				ret.set_int(0);
		}
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_conditional = function (ret)
	{
		this.first.get(ret);                // condition operand
		if (ret.data)                       // is true
			this.second.get(ret);           // evaluate second operand to ret
		else
			this.third.get(ret);            // evaluate third operand to ret
	};
	ExpNode.prototype.eval_equal = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		ret.set_int(ret.data === temp.data ? 1 : 0);
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_notequal = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		ret.set_int(ret.data !== temp.data ? 1 : 0);
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_less = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		ret.set_int(ret.data < temp.data ? 1 : 0);
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_lessequal = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		ret.set_int(ret.data <= temp.data ? 1 : 0);
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_greater = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		ret.set_int(ret.data > temp.data ? 1 : 0);
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_greaterequal = function (ret)
	{
		this.first.get(ret);                // left operand
		var temp = this.owner.pushTempValue();
		this.second.get(temp);			// right operand
		ret.set_int(ret.data >= temp.data ? 1 : 0);
		this.owner.popTempValue();
	};
	ExpNode.prototype.eval_eventvar_exp = function (ret)
	{
		var val = this.eventvar.getValue();
		if (cr.is_number(val))
			ret.set_float(val);
		else
			ret.set_string(val);
	};
	cr.expNode = ExpNode;
	function ExpValue(type, data)
	{
		this.type = type || cr.exptype.Integer;
		this.data = data || 0;
		this.object_class = null;
;
;
;
		if (this.type == cr.exptype.Integer)
			this.data = Math.floor(this.data);
		cr.seal(this);
	};
	ExpValue.prototype.is_int = function ()
	{
		return this.type === cr.exptype.Integer;
	};
	ExpValue.prototype.is_float = function ()
	{
		return this.type === cr.exptype.Float;
	};
	ExpValue.prototype.is_number = function ()
	{
		return this.type === cr.exptype.Integer || this.type === cr.exptype.Float;
	};
	ExpValue.prototype.is_string = function ()
	{
		return this.type === cr.exptype.String;
	};
	ExpValue.prototype.make_int = function ()
	{
		if (!this.is_int())
		{
			if (this.is_float())
				this.data = Math.floor(this.data);      // truncate float
			else if (this.is_string())
				this.data = parseInt(this.data, 10);
			this.type = cr.exptype.Integer;
		}
	};
	ExpValue.prototype.make_float = function ()
	{
		if (!this.is_float())
		{
			if (this.is_string())
				this.data = parseFloat(this.data);
			this.type = cr.exptype.Float;
		}
	};
	ExpValue.prototype.make_string = function ()
	{
		if (!this.is_string())
		{
			this.data = this.data.toString();
			this.type = cr.exptype.String;
		}
	};
	ExpValue.prototype.set_int = function (val)
	{
;
		this.type = cr.exptype.Integer;
		this.data = Math.floor(val);
	};
	ExpValue.prototype.set_float = function (val)
	{
;
		this.type = cr.exptype.Float;
		this.data = val;
	};
	ExpValue.prototype.set_string = function (val)
	{
;
		this.type = cr.exptype.String;
		this.data = val;
	};
	ExpValue.prototype.set_any = function (val)
	{
		if (cr.is_number(val))
		{
			this.type = cr.exptype.Float;
			this.data = val;
		}
		else if (cr.is_string(val))
		{
			this.type = cr.exptype.String;
			this.data = val.toString();
		}
		else
		{
			this.type = cr.exptype.Integer;
			this.data = 0;
		}
	};
	cr.expvalue = ExpValue;
	cr.exptype = {
		Integer: 0,     // emulated; no native integer support in javascript
		Float: 1,
		String: 2
	};
}());
;
cr.system_object = function (runtime)
{
    this.runtime = runtime;
	this.waits = [];
};
cr.system_object.prototype.saveToJSON = function ()
{
	var o = {};
	var i, len, j, lenj, p, w, t, sobj;
	o["waits"] = [];
	var owaits = o["waits"];
	var waitobj;
	for (i = 0, len = this.waits.length; i < len; i++)
	{
		w = this.waits[i];
		waitobj = {
			"t": w.time,
			"ev": w.ev.sid,
			"sm": [],
			"sols": {}
		};
		if (w.ev.actions[w.actindex])
			waitobj["act"] = w.ev.actions[w.actindex].sid;
		for (j = 0, lenj = w.solModifiers.length; j < lenj; j++)
			waitobj["sm"].push(w.solModifiers[j].sid);
		for (p in w.sols)
		{
			if (w.sols.hasOwnProperty(p))
			{
				t = this.runtime.types_by_index[parseInt(p, 10)];
;
				sobj = {
					"sa": w.sols[p].sa,
					"insts": []
				};
				for (j = 0, lenj = w.sols[p].insts.length; j < lenj; j++)
					sobj["insts"].push(w.sols[p].insts[j].uid);
				waitobj["sols"][t.sid.toString()] = sobj;
			}
		}
		owaits.push(waitobj);
	}
	return o;
};
cr.system_object.prototype.loadFromJSON = function (o)
{
	var owaits = o["waits"];
	var i, len, j, lenj, p, w, addWait, e, aindex, t, savedsol, nusol, inst;
	this.waits.length = 0;
	for (i = 0, len = owaits.length; i < len; i++)
	{
		w = owaits[i];
		e = this.runtime.blocksBySid[w["ev"].toString()];
		if (!e)
			continue;	// event must've gone missing
		aindex = -1;
		for (j = 0, lenj = e.actions.length; j < lenj; j++)
		{
			if (e.actions[j].sid === w["act"])
			{
				aindex = j;
				break;
			}
		}
		if (aindex === -1)
			continue;	// action must've gone missing
		addWait = {};
		addWait.sols = {};
		addWait.solModifiers = [];
		addWait.deleteme = false;
		addWait.time = w["t"];
		addWait.ev = e;
		addWait.actindex = aindex;
		for (j = 0, lenj = w["sm"].length; j < lenj; j++)
		{
			t = this.runtime.getObjectTypeBySid(w["sm"][j]);
			if (t)
				addWait.solModifiers.push(t);
		}
		for (p in w["sols"])
		{
			if (w["sols"].hasOwnProperty(p))
			{
				t = this.runtime.getObjectTypeBySid(parseInt(p, 10));
				if (!t)
					continue;		// type must've been deleted
				savedsol = w["sols"][p];
				nusol = {
					sa: savedsol["sa"],
					insts: []
				};
				for (j = 0, lenj = savedsol["insts"].length; j < lenj; j++)
				{
					inst = this.runtime.getObjectByUID(savedsol["insts"][j]);
					if (inst)
						nusol.insts.push(inst);
				}
				addWait.sols[t.index.toString()] = nusol;
			}
		}
		this.waits.push(addWait);
	}
};
(function ()
{
	var sysProto = cr.system_object.prototype;
	function SysCnds() {};
    SysCnds.prototype.EveryTick = function()
    {
        return true;
    };
    SysCnds.prototype.OnLayoutStart = function()
    {
        return true;
    };
    SysCnds.prototype.OnLayoutEnd = function()
    {
        return true;
    };
    SysCnds.prototype.Compare = function(x, cmp, y)
    {
        return cr.do_cmp(x, cmp, y);
    };
    SysCnds.prototype.CompareTime = function (cmp, t)
    {
        var elapsed = this.runtime.kahanTime.sum;
        if (cmp === 0)
        {
            var cnd = this.runtime.getCurrentCondition();
            if (!cnd.extra.CompareTime_executed)
            {
                if (elapsed >= t)
                {
                    cnd.extra.CompareTime_executed = true;
                    return true;
                }
            }
            return false;
        }
        return cr.do_cmp(elapsed, cmp, t);
    };
    SysCnds.prototype.LayerVisible = function (layer)
    {
        if (!layer)
            return false;
        else
            return layer.visible;
    };
	SysCnds.prototype.LayerCmpOpacity = function (layer, cmp, opacity_)
	{
		if (!layer)
			return false;
		return cr.do_cmp(layer.opacity * 100, cmp, opacity_);
	};
    SysCnds.prototype.Repeat = function (count)
    {
		var current_frame = this.runtime.getCurrentEventStack();
        var current_event = current_frame.current_event;
		var solModifierAfterCnds = current_frame.isModifierAfterCnds();
        var current_loop = this.runtime.pushLoopStack();
        var i;
		if (solModifierAfterCnds)
		{
			for (i = 0; i < count && !current_loop.stopped; i++)
			{
				this.runtime.pushCopySol(current_event.solModifiers);
				current_loop.index = i;
				current_event.retrigger();
				this.runtime.popSol(current_event.solModifiers);
			}
		}
		else
		{
			for (i = 0; i < count && !current_loop.stopped; i++)
			{
				current_loop.index = i;
				current_event.retrigger();
			}
		}
        this.runtime.popLoopStack();
		return false;
    };
	SysCnds.prototype.While = function (count)
    {
		var current_frame = this.runtime.getCurrentEventStack();
        var current_event = current_frame.current_event;
		var solModifierAfterCnds = current_frame.isModifierAfterCnds();
        var current_loop = this.runtime.pushLoopStack();
        var i;
		if (solModifierAfterCnds)
		{
			for (i = 0; !current_loop.stopped; i++)
			{
				this.runtime.pushCopySol(current_event.solModifiers);
				current_loop.index = i;
				if (!current_event.retrigger())		// one of the other conditions returned false
					current_loop.stopped = true;	// break
				this.runtime.popSol(current_event.solModifiers);
			}
		}
		else
		{
			for (i = 0; !current_loop.stopped; i++)
			{
				current_loop.index = i;
				if (!current_event.retrigger())
					current_loop.stopped = true;
			}
		}
        this.runtime.popLoopStack();
		return false;
    };
    SysCnds.prototype.For = function (name, start, end)
    {
        var current_frame = this.runtime.getCurrentEventStack();
        var current_event = current_frame.current_event;
		var solModifierAfterCnds = current_frame.isModifierAfterCnds();
        var current_loop = this.runtime.pushLoopStack(name);
        var i;
		if (end < start)
		{
			if (solModifierAfterCnds)
			{
				for (i = start; i >= end && !current_loop.stopped; --i)  // inclusive to end
				{
					this.runtime.pushCopySol(current_event.solModifiers);
					current_loop.index = i;
					current_event.retrigger();
					this.runtime.popSol(current_event.solModifiers);
				}
			}
			else
			{
				for (i = start; i >= end && !current_loop.stopped; --i)  // inclusive to end
				{
					current_loop.index = i;
					current_event.retrigger();
				}
			}
		}
		else
		{
			if (solModifierAfterCnds)
			{
				for (i = start; i <= end && !current_loop.stopped; ++i)  // inclusive to end
				{
					this.runtime.pushCopySol(current_event.solModifiers);
					current_loop.index = i;
					current_event.retrigger();
					this.runtime.popSol(current_event.solModifiers);
				}
			}
			else
			{
				for (i = start; i <= end && !current_loop.stopped; ++i)  // inclusive to end
				{
					current_loop.index = i;
					current_event.retrigger();
				}
			}
		}
        this.runtime.popLoopStack();
		return false;
    };
	var foreach_instancestack = [];
	var foreach_instanceptr = -1;
    SysCnds.prototype.ForEach = function (obj)
    {
        var sol = obj.getCurrentSol();
		foreach_instanceptr++;
		if (foreach_instancestack.length === foreach_instanceptr)
			foreach_instancestack.push([]);
		var instances = foreach_instancestack[foreach_instanceptr];
		cr.shallowAssignArray(instances, sol.getObjects());
        var current_frame = this.runtime.getCurrentEventStack();
        var current_event = current_frame.current_event;
		var solModifierAfterCnds = current_frame.isModifierAfterCnds();
        var current_loop = this.runtime.pushLoopStack();
        var i, len, j, lenj, inst, s, sol2;
		var is_contained = obj.is_contained;
		if (solModifierAfterCnds)
		{
			for (i = 0, len = instances.length; i < len && !current_loop.stopped; i++)
			{
				this.runtime.pushCopySol(current_event.solModifiers);
				inst = instances[i];
				sol = obj.getCurrentSol();
				sol.select_all = false;
				sol.instances.length = 1;
				sol.instances[0] = inst;
				if (is_contained)
				{
					for (j = 0, lenj = inst.siblings.length; j < lenj; j++)
					{
						s = inst.siblings[j];
						sol2 = s.type.getCurrentSol();
						sol2.select_all = false;
						sol2.instances.length = 1;
						sol2.instances[0] = s;
					}
				}
				current_loop.index = i;
				current_event.retrigger();
				this.runtime.popSol(current_event.solModifiers);
			}
		}
		else
		{
			sol.select_all = false;
			sol.instances.length = 1;
			for (i = 0, len = instances.length; i < len && !current_loop.stopped; i++)
			{
				inst = instances[i];
				sol.instances[0] = inst;
				if (is_contained)
				{
					for (j = 0, lenj = inst.siblings.length; j < lenj; j++)
					{
						s = inst.siblings[j];
						sol2 = s.type.getCurrentSol();
						sol2.select_all = false;
						sol2.instances.length = 1;
						sol2.instances[0] = s;
					}
				}
				current_loop.index = i;
				current_event.retrigger();
			}
		}
		instances.length = 0;
        this.runtime.popLoopStack();
		foreach_instanceptr--;
		return false;
    };
	function foreach_sortinstances(a, b)
	{
		var va = a.extra.c2_foreachordered_val;
		var vb = b.extra.c2_foreachordered_val;
		if (cr.is_number(va) && cr.is_number(vb))
			return va - vb;
		else
		{
			va = "" + va;
			vb = "" + vb;
			if (va < vb)
				return -1;
			else if (va > vb)
				return 1;
			else
				return 0;
		}
	};
	SysCnds.prototype.ForEachOrdered = function (obj, exp, order)
    {
        var sol = obj.getCurrentSol();
		foreach_instanceptr++;
		if (foreach_instancestack.length === foreach_instanceptr)
			foreach_instancestack.push([]);
		var instances = foreach_instancestack[foreach_instanceptr];
		cr.shallowAssignArray(instances, sol.getObjects());
        var current_frame = this.runtime.getCurrentEventStack();
        var current_event = current_frame.current_event;
		var current_condition = this.runtime.getCurrentCondition();
		var solModifierAfterCnds = current_frame.isModifierAfterCnds();
        var current_loop = this.runtime.pushLoopStack();
		var i, len, j, lenj, inst, s, sol2;
		for (i = 0, len = instances.length; i < len; i++)
		{
			instances[i].extra.c2_foreachordered_val = current_condition.parameters[1].get(i);
		}
		instances.sort(foreach_sortinstances);
		if (order === 1)
			instances.reverse();
		var is_contained = obj.is_contained;
		if (solModifierAfterCnds)
		{
			for (i = 0, len = instances.length; i < len && !current_loop.stopped; i++)
			{
				this.runtime.pushCopySol(current_event.solModifiers);
				inst = instances[i];
				sol = obj.getCurrentSol();
				sol.select_all = false;
				sol.instances.length = 1;
				sol.instances[0] = inst;
				if (is_contained)
				{
					for (j = 0, lenj = inst.siblings.length; j < lenj; j++)
					{
						s = inst.siblings[j];
						sol2 = s.type.getCurrentSol();
						sol2.select_all = false;
						sol2.instances.length = 1;
						sol2.instances[0] = s;
					}
				}
				current_loop.index = i;
				current_event.retrigger();
				this.runtime.popSol(current_event.solModifiers);
			}
		}
		else
		{
			sol.select_all = false;
			sol.instances.length = 1;
			for (i = 0, len = instances.length; i < len && !current_loop.stopped; i++)
			{
				inst = instances[i];
				sol.instances[0] = inst;
				if (is_contained)
				{
					for (j = 0, lenj = inst.siblings.length; j < lenj; j++)
					{
						s = inst.siblings[j];
						sol2 = s.type.getCurrentSol();
						sol2.select_all = false;
						sol2.instances.length = 1;
						sol2.instances[0] = s;
					}
				}
				current_loop.index = i;
				current_event.retrigger();
			}
		}
		instances.length = 0;
        this.runtime.popLoopStack();
		foreach_instanceptr--;
		return false;
    };
	SysCnds.prototype.PickByComparison = function (obj_, exp_, cmp_, val_)
	{
		var i, len, k, inst;
		if (!obj_)
			return;
		foreach_instanceptr++;
		if (foreach_instancestack.length === foreach_instanceptr)
			foreach_instancestack.push([]);
		var tmp_instances = foreach_instancestack[foreach_instanceptr];
		var sol = obj_.getCurrentSol();
		cr.shallowAssignArray(tmp_instances, sol.getObjects());
		if (sol.select_all)
			sol.else_instances.length = 0;
		var current_condition = this.runtime.getCurrentCondition();
		for (i = 0, k = 0, len = tmp_instances.length; i < len; i++)
		{
			inst = tmp_instances[i];
			tmp_instances[k] = inst;
			exp_ = current_condition.parameters[1].get(i);
			val_ = current_condition.parameters[3].get(i);
			if (cr.do_cmp(exp_, cmp_, val_))
			{
				k++;
			}
			else
			{
				sol.else_instances.push(inst);
			}
		}
		tmp_instances.length = k;
		sol.select_all = false;
		cr.shallowAssignArray(sol.instances, tmp_instances);
		tmp_instances.length = 0;
		foreach_instanceptr--;
		obj_.applySolToContainer();
		return !!sol.instances.length;
	};
	SysCnds.prototype.PickByEvaluate = function (obj_, exp_)
	{
		var i, len, k, inst;
		if (!obj_)
			return;
		foreach_instanceptr++;
		if (foreach_instancestack.length === foreach_instanceptr)
			foreach_instancestack.push([]);
		var tmp_instances = foreach_instancestack[foreach_instanceptr];
		var sol = obj_.getCurrentSol();
		cr.shallowAssignArray(tmp_instances, sol.getObjects());
		if (sol.select_all)
			sol.else_instances.length = 0;
		var current_condition = this.runtime.getCurrentCondition();
		for (i = 0, k = 0, len = tmp_instances.length; i < len; i++)
		{
			inst = tmp_instances[i];
			tmp_instances[k] = inst;
			exp_ = current_condition.parameters[1].get(i);
			if (exp_)
			{
				k++;
			}
			else
			{
				sol.else_instances.push(inst);
			}
		}
		tmp_instances.length = k;
		sol.select_all = false;
		cr.shallowAssignArray(sol.instances, tmp_instances);
		tmp_instances.length = 0;
		foreach_instanceptr--;
		obj_.applySolToContainer();
		return !!sol.instances.length;
	};
    SysCnds.prototype.TriggerOnce = function ()
    {
        var cndextra = this.runtime.getCurrentCondition().extra;
		if (typeof cndextra.TriggerOnce_lastTick === "undefined")
			cndextra.TriggerOnce_lastTick = -1;
        var last_tick = cndextra.TriggerOnce_lastTick;
        var cur_tick = this.runtime.tickcount;
        cndextra.TriggerOnce_lastTick = cur_tick;
        return this.runtime.layout_first_tick || last_tick !== cur_tick - 1;
    };
    SysCnds.prototype.Every = function (seconds)
    {
        var cnd = this.runtime.getCurrentCondition();
        var last_time = cnd.extra.Every_lastTime || 0;
        var cur_time = this.runtime.kahanTime.sum;
		if (typeof cnd.extra.Every_seconds === "undefined")
			cnd.extra.Every_seconds = seconds;
		var this_seconds = cnd.extra.Every_seconds;
        if (cur_time >= last_time + this_seconds)
        {
            cnd.extra.Every_lastTime = last_time + this_seconds;
			if (cur_time >= cnd.extra.Every_lastTime + 0.04)
			{
				cnd.extra.Every_lastTime = cur_time;
			}
			cnd.extra.Every_seconds = seconds;
            return true;
        }
		else if (cur_time < last_time - 0.1)
		{
			cnd.extra.Every_lastTime = cur_time;
		}
		return false;
    };
    SysCnds.prototype.PickNth = function (obj, index)
    {
        if (!obj)
            return false;
        var sol = obj.getCurrentSol();
        var instances = sol.getObjects();
		index = cr.floor(index);
        if (index < 0 || index >= instances.length)
            return false;
		var inst = instances[index];
        sol.pick_one(inst);
		obj.applySolToContainer();
        return true;
    };
	SysCnds.prototype.PickRandom = function (obj)
    {
        if (!obj)
            return false;
        var sol = obj.getCurrentSol();
        var instances = sol.getObjects();
		var index = cr.floor(Math.random() * instances.length);
        if (index >= instances.length)
            return false;
		var inst = instances[index];
        sol.pick_one(inst);
		obj.applySolToContainer();
        return true;
    };
	SysCnds.prototype.CompareVar = function (v, cmp, val)
    {
        return cr.do_cmp(v.getValue(), cmp, val);
    };
    SysCnds.prototype.IsGroupActive = function (group)
    {
		var g = this.runtime.groups_by_name[group.toLowerCase()];
        return g && g.group_active;
    };
	SysCnds.prototype.IsPreview = function ()
	{
		return typeof cr_is_preview !== "undefined";
	};
	SysCnds.prototype.PickAll = function (obj)
    {
        if (!obj)
            return false;
		if (!obj.instances.length)
			return false;
        var sol = obj.getCurrentSol();
        sol.select_all = true;
		obj.applySolToContainer();
        return true;
    };
	SysCnds.prototype.IsMobile = function ()
	{
		return this.runtime.isMobile;
	};
	SysCnds.prototype.CompareBetween = function (x, a, b)
	{
		return x >= a && x <= b;
	};
	SysCnds.prototype.Else = function ()
	{
		var current_frame = this.runtime.getCurrentEventStack();
		if (current_frame.else_branch_ran)
			return false;		// another event in this else-if chain has run
		else
			return !current_frame.last_event_true;
		/*
		var current_frame = this.runtime.getCurrentEventStack();
        var current_event = current_frame.current_event;
		var prev_event = current_event.prev_block;
		if (!prev_event)
			return false;
		if (prev_event.is_logical)
			return !this.runtime.last_event_true;
		var i, len, j, lenj, s, sol, temp, inst, any_picked = false;
		for (i = 0, len = prev_event.cndReferences.length; i < len; i++)
		{
			s = prev_event.cndReferences[i];
			sol = s.getCurrentSol();
			if (sol.select_all || sol.instances.length === s.instances.length)
			{
				sol.select_all = false;
				sol.instances.length = 0;
			}
			else
			{
				if (sol.instances.length === 1 && sol.else_instances.length === 0 && s.instances.length >= 2)
				{
					inst = sol.instances[0];
					sol.instances.length = 0;
					for (j = 0, lenj = s.instances.length; j < lenj; j++)
					{
						if (s.instances[j] != inst)
							sol.instances.push(s.instances[j]);
					}
					any_picked = true;
				}
				else
				{
					temp = sol.instances;
					sol.instances = sol.else_instances;
					sol.else_instances = temp;
					any_picked = true;
				}
			}
		}
		return any_picked;
		*/
	};
	SysCnds.prototype.OnLoadFinished = function ()
	{
		return true;
	};
	SysCnds.prototype.OnCanvasSnapshot = function ()
	{
		return true;
	};
	SysCnds.prototype.EffectsSupported = function ()
	{
		return !!this.runtime.glwrap;
	};
	SysCnds.prototype.OnSaveComplete = function ()
	{
		return true;
	};
	SysCnds.prototype.OnLoadComplete = function ()
	{
		return true;
	};
	SysCnds.prototype.OnLoadFailed = function ()
	{
		return true;
	};
	SysCnds.prototype.ObjectUIDExists = function (u)
	{
		return !!this.runtime.getObjectByUID(u);
	};
	SysCnds.prototype.IsOnPlatform = function (p)
	{
		var rt = this.runtime;
		switch (p) {
		case 0:		// HTML5 website
			return !rt.isDomFree && !rt.isNodeWebkit && !rt.isPhoneGap && !rt.isCrosswalk && !rt.isWinJS && !rt.isWindowsPhone8 && !rt.isBlackberry10 && !rt.isAmazonWebApp;
		case 1:		// iOS
			return rt.isiOS;
		case 2:		// Android
			return rt.isAndroid;
		case 3:		// Windows 8
			return rt.isWindows8App;
		case 4:		// Windows Phone 8
			return rt.isWindowsPhone8;
		case 5:		// Blackberry 10
			return rt.isBlackberry10;
		case 6:		// Tizen
			return rt.isTizen;
		case 7:		// CocoonJS
			return rt.isCocoonJs;
		case 8:		// PhoneGap
			return rt.isPhoneGap;
		case 9:	// Scirra Arcade
			return rt.isArcade;
		case 10:	// node-webkit
			return rt.isNodeWebkit;
		case 11:	// crosswalk
			return rt.isCrosswalk;
		case 12:	// amazon webapp
			return rt.isAmazonWebApp;
		default:	// should not be possible
			return false;
		}
	};
	var cacheRegex = null;
	var lastRegex = "";
	var lastFlags = "";
	function getRegex(regex_, flags_)
	{
		if (!cacheRegex || regex_ !== lastRegex || flags_ !== lastFlags)
		{
			cacheRegex = new RegExp(regex_, flags_);
			lastRegex = regex_;
			lastFlags = flags_;
		}
		cacheRegex.lastIndex = 0;		// reset
		return cacheRegex;
	};
	SysCnds.prototype.RegexTest = function (str_, regex_, flags_)
	{
		var regex = getRegex(regex_, flags_);
		return regex.test(str_);
	};
	var tmp_arr = [];
	SysCnds.prototype.PickOverlappingPoint = function (obj_, x_, y_)
	{
		if (!obj_)
            return false;
        var sol = obj_.getCurrentSol();
        var instances = sol.getObjects();
		var current_event = this.runtime.getCurrentEventStack().current_event;
		var orblock = current_event.orblock;
		var cnd = this.runtime.getCurrentCondition();
		var i, len, inst, pick;
		if (sol.select_all)
		{
			cr.shallowAssignArray(tmp_arr, instances);
			sol.else_instances.length = 0;
			sol.select_all = false;
			sol.instances.length = 0;
		}
		else
		{
			if (orblock)
			{
				cr.shallowAssignArray(tmp_arr, sol.else_instances);
				sol.else_instances.length = 0;
			}
			else
			{
				cr.shallowAssignArray(tmp_arr, instances);
				sol.instances.length = 0;
			}
		}
		for (i = 0, len = tmp_arr.length; i < len; ++i)
		{
			inst = tmp_arr[i];
			inst.update_bbox();
			pick = cr.xor(inst.contains_pt(x_, y_), cnd.inverted);
			if (pick)
				sol.instances.push(inst);
			else
				sol.else_instances.push(inst);
		}
		obj_.applySolToContainer();
		return cr.xor(!!sol.instances.length, cnd.inverted);
	};
	sysProto.cnds = new SysCnds();
    function SysActs() {};
    SysActs.prototype.GoToLayout = function(to)
    {
		if (this.runtime.isloading)
			return;		// cannot change layout while loading on loader layout
		if (this.runtime.changelayout)
			return;		// already changing to a different layout
;
        this.runtime.changelayout = to;
    };
    SysActs.prototype.CreateObject = function (obj, layer, x, y)
    {
        if (!layer || !obj)
            return;
        var inst = this.runtime.createInstance(obj, layer, x, y);
		if (!inst)
			return;
		this.runtime.isInOnDestroy++;
		var i, len, s;
		this.runtime.trigger(Object.getPrototypeOf(obj.plugin).cnds.OnCreated, inst);
		if (inst.is_contained)
		{
			for (i = 0, len = inst.siblings.length; i < len; i++)
			{
				s = inst.siblings[i];
				this.runtime.trigger(Object.getPrototypeOf(s.type.plugin).cnds.OnCreated, s);
			}
		}
		this.runtime.isInOnDestroy--;
        var sol = obj.getCurrentSol();
        sol.select_all = false;
		sol.instances.length = 1;
		sol.instances[0] = inst;
		if (inst.is_contained)
		{
			for (i = 0, len = inst.siblings.length; i < len; i++)
			{
				s = inst.siblings[i];
				sol = s.type.getCurrentSol();
				sol.select_all = false;
				sol.instances.length = 1;
				sol.instances[0] = s;
			}
		}
    };
    SysActs.prototype.SetLayerVisible = function (layer, visible_)
    {
        if (!layer)
            return;
		if (layer.visible !== visible_)
		{
			layer.visible = visible_;
			this.runtime.redraw = true;
		}
    };
	SysActs.prototype.SetLayerOpacity = function (layer, opacity_)
	{
		if (!layer)
			return;
		opacity_ = cr.clamp(opacity_ / 100, 0, 1);
		if (layer.opacity !== opacity_)
		{
			layer.opacity = opacity_;
			this.runtime.redraw = true;
		}
	};
	SysActs.prototype.SetLayerScaleRate = function (layer, sr)
	{
		if (!layer)
			return;
		if (layer.zoomRate !== sr)
		{
			layer.zoomRate = sr;
			this.runtime.redraw = true;
		}
	};
	SysActs.prototype.SetLayoutScale = function (s)
	{
		if (!this.runtime.running_layout)
			return;
		if (this.runtime.running_layout.scale !== s)
		{
			this.runtime.running_layout.scale = s;
			this.runtime.running_layout.boundScrolling();
			this.runtime.redraw = true;
		}
	};
    SysActs.prototype.ScrollX = function(x)
    {
        this.runtime.running_layout.scrollToX(x);
    };
    SysActs.prototype.ScrollY = function(y)
    {
        this.runtime.running_layout.scrollToY(y);
    };
    SysActs.prototype.Scroll = function(x, y)
    {
        this.runtime.running_layout.scrollToX(x);
        this.runtime.running_layout.scrollToY(y);
    };
    SysActs.prototype.ScrollToObject = function(obj)
    {
        var inst = obj.getFirstPicked();
        if (inst)
        {
            this.runtime.running_layout.scrollToX(inst.x);
            this.runtime.running_layout.scrollToY(inst.y);
        }
    };
	SysActs.prototype.SetVar = function(v, x)
	{
;
		if (v.vartype === 0)
		{
			if (cr.is_number(x))
				v.setValue(x);
			else
				v.setValue(parseFloat(x));
		}
		else if (v.vartype === 1)
			v.setValue(x.toString());
	};
	SysActs.prototype.AddVar = function(v, x)
	{
;
		if (v.vartype === 0)
		{
			if (cr.is_number(x))
				v.setValue(v.getValue() + x);
			else
				v.setValue(v.getValue() + parseFloat(x));
		}
		else if (v.vartype === 1)
			v.setValue(v.getValue() + x.toString());
	};
	SysActs.prototype.SubVar = function(v, x)
	{
;
		if (v.vartype === 0)
		{
			if (cr.is_number(x))
				v.setValue(v.getValue() - x);
			else
				v.setValue(v.getValue() - parseFloat(x));
		}
	};
    SysActs.prototype.SetGroupActive = function (group, active)
    {
		var g = this.runtime.groups_by_name[group.toLowerCase()];
		if (!g)
			return;
		switch (active) {
		case 0:
			g.setGroupActive(false);
			break;
		case 1:
			g.setGroupActive(true);
			break;
		case 2:
			g.setGroupActive(!g.group_active);
			break;
		}
    };
    SysActs.prototype.SetTimescale = function (ts_)
    {
        var ts = ts_;
        if (ts < 0)
            ts = 0;
        this.runtime.timescale = ts;
    };
    SysActs.prototype.SetObjectTimescale = function (obj, ts_)
    {
        var ts = ts_;
        if (ts < 0)
            ts = 0;
        if (!obj)
            return;
        var sol = obj.getCurrentSol();
        var instances = sol.getObjects();
        var i, len;
        for (i = 0, len = instances.length; i < len; i++)
        {
            instances[i].my_timescale = ts;
        }
    };
    SysActs.prototype.RestoreObjectTimescale = function (obj)
    {
        if (!obj)
            return false;
        var sol = obj.getCurrentSol();
        var instances = sol.getObjects();
        var i, len;
        for (i = 0, len = instances.length; i < len; i++)
        {
            instances[i].my_timescale = -1.0;
        }
    };
	var waitobjrecycle = [];
	function allocWaitObject()
	{
		var w;
		if (waitobjrecycle.length)
			w = waitobjrecycle.pop();
		else
		{
			w = {};
			w.sols = {};
			w.solModifiers = [];
		}
		w.deleteme = false;
		return w;
	};
	function freeWaitObject(w)
	{
		cr.wipe(w.sols);
		w.solModifiers.length = 0;
		waitobjrecycle.push(w);
	};
	var solstateobjects = [];
	function allocSolStateObject()
	{
		var s;
		if (solstateobjects.length)
			s = solstateobjects.pop();
		else
		{
			s = {};
			s.insts = [];
		}
		s.sa = false;
		return s;
	};
	function freeSolStateObject(s)
	{
		s.insts.length = 0;
		solstateobjects.push(s);
	};
	SysActs.prototype.Wait = function (seconds)
	{
		if (seconds < 0)
			return;
		var i, len, s, t, ss;
		var evinfo = this.runtime.getCurrentEventStack();
		var waitobj = allocWaitObject();
		waitobj.time = this.runtime.kahanTime.sum + seconds;
		waitobj.ev = evinfo.current_event;
		waitobj.actindex = evinfo.actindex + 1;	// pointing at next action
		for (i = 0, len = this.runtime.types_by_index.length; i < len; i++)
		{
			t = this.runtime.types_by_index[i];
			s = t.getCurrentSol();
			if (s.select_all && evinfo.current_event.solModifiers.indexOf(t) === -1)
				continue;
			waitobj.solModifiers.push(t);
			ss = allocSolStateObject();
			ss.sa = s.select_all;
			cr.shallowAssignArray(ss.insts, s.instances);
			waitobj.sols[i.toString()] = ss;
		}
		this.waits.push(waitobj);
		return true;
	};
	SysActs.prototype.SetLayerScale = function (layer, scale)
    {
        if (!layer)
            return;
		if (layer.scale === scale)
			return;
        layer.scale = scale;
        this.runtime.redraw = true;
    };
	SysActs.prototype.ResetGlobals = function ()
	{
		var i, len, g;
		for (i = 0, len = this.runtime.all_global_vars.length; i < len; i++)
		{
			g = this.runtime.all_global_vars[i];
			g.data = g.initial;
		}
	};
	SysActs.prototype.SetLayoutAngle = function (a)
	{
		a = cr.to_radians(a);
		a = cr.clamp_angle(a);
		if (this.runtime.running_layout)
		{
			if (this.runtime.running_layout.angle !== a)
			{
				this.runtime.running_layout.angle = a;
				this.runtime.redraw = true;
			}
		}
	};
	SysActs.prototype.SetLayerAngle = function (layer, a)
    {
        if (!layer)
            return;
		a = cr.to_radians(a);
		a = cr.clamp_angle(a);
		if (layer.angle === a)
			return;
        layer.angle = a;
        this.runtime.redraw = true;
    };
	SysActs.prototype.SetLayerParallax = function (layer, px, py)
    {
        if (!layer)
            return;
		if (layer.parallaxX === px / 100 && layer.parallaxY === py / 100)
			return;
        layer.parallaxX = px / 100;
		layer.parallaxY = py / 100;
		if (layer.parallaxX !== 1 || layer.parallaxY !== 1)
		{
			var i, len, instances = layer.instances;
			for (i = 0, len = instances.length; i < len; ++i)
			{
				instances[i].type.any_instance_parallaxed = true;
			}
		}
        this.runtime.redraw = true;
    };
	SysActs.prototype.SetLayerBackground = function (layer, c)
    {
        if (!layer)
            return;
		var r = cr.GetRValue(c);
		var g = cr.GetGValue(c);
		var b = cr.GetBValue(c);
		if (layer.background_color[0] === r && layer.background_color[1] === g && layer.background_color[2] === b)
			return;
        layer.background_color[0] = r;
		layer.background_color[1] = g;
		layer.background_color[2] = b;
        this.runtime.redraw = true;
    };
	SysActs.prototype.SetLayerTransparent = function (layer, t)
    {
        if (!layer)
            return;
		if (!!t === !!layer.transparent)
			return;
		layer.transparent = !!t;
        this.runtime.redraw = true;
    };
	SysActs.prototype.StopLoop = function ()
	{
		if (this.runtime.loop_stack_index < 0)
			return;		// no loop currently running
		this.runtime.getCurrentLoop().stopped = true;
	};
	SysActs.prototype.GoToLayoutByName = function (layoutname)
	{
		if (this.runtime.isloading)
			return;		// cannot change layout while loading on loader layout
		if (this.runtime.changelayout)
			return;		// already changing to different layout
;
		var l;
		for (l in this.runtime.layouts)
		{
			if (this.runtime.layouts.hasOwnProperty(l) && cr.equals_nocase(l, layoutname))
			{
				this.runtime.changelayout = this.runtime.layouts[l];
				return;
			}
		}
	};
	SysActs.prototype.RestartLayout = function (layoutname)
	{
		if (this.runtime.isloading)
			return;		// cannot restart loader layouts
		if (this.runtime.changelayout)
			return;		// already changing to a different layout
;
		if (!this.runtime.running_layout)
			return;
		this.runtime.changelayout = this.runtime.running_layout;
		var i, len, g;
		for (i = 0, len = this.runtime.allGroups.length; i < len; i++)
		{
			g = this.runtime.allGroups[i];
			g.setGroupActive(g.initially_activated);
		}
	};
	SysActs.prototype.SnapshotCanvas = function (format_, quality_)
	{
		this.runtime.snapshotCanvas = [format_ === 0 ? "image/png" : "image/jpeg", quality_ / 100];
		this.runtime.redraw = true;		// force redraw so snapshot is always taken
	};
	SysActs.prototype.SetCanvasSize = function (w, h)
	{
		if (w <= 0 || h <= 0)
			return;
		var mode = this.runtime.fullscreen_mode;
		var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || !!document["msFullscreenElement"] || document["fullScreen"] || this.runtime.isNodeFullscreen);
		if (isfullscreen && this.runtime.fullscreen_scaling > 0)
			mode = this.runtime.fullscreen_scaling;
		if (mode === 0)
		{
			this.runtime["setSize"](w, h, true);
		}
		else
		{
			this.runtime.original_width = w;
			this.runtime.original_height = h;
			this.runtime["setSize"](this.runtime.lastWindowWidth, this.runtime.lastWindowHeight, true);
		}
	};
	SysActs.prototype.SetLayoutEffectEnabled = function (enable_, effectname_)
	{
		if (!this.runtime.running_layout || !this.runtime.glwrap)
			return;
		var et = this.runtime.running_layout.getEffectByName(effectname_);
		if (!et)
			return;		// effect name not found
		var enable = (enable_ === 1);
		if (et.active == enable)
			return;		// no change
		et.active = enable;
		this.runtime.running_layout.updateActiveEffects();
		this.runtime.redraw = true;
	};
	SysActs.prototype.SetLayerEffectEnabled = function (layer, enable_, effectname_)
	{
		if (!layer || !this.runtime.glwrap)
			return;
		var et = layer.getEffectByName(effectname_);
		if (!et)
			return;		// effect name not found
		var enable = (enable_ === 1);
		if (et.active == enable)
			return;		// no change
		et.active = enable;
		layer.updateActiveEffects();
		this.runtime.redraw = true;
	};
	SysActs.prototype.SetLayoutEffectParam = function (effectname_, index_, value_)
	{
		if (!this.runtime.running_layout || !this.runtime.glwrap)
			return;
		var et = this.runtime.running_layout.getEffectByName(effectname_);
		if (!et)
			return;		// effect name not found
		var params = this.runtime.running_layout.effect_params[et.index];
		index_ = Math.floor(index_);
		if (index_ < 0 || index_ >= params.length)
			return;		// effect index out of bounds
		if (this.runtime.glwrap.getProgramParameterType(et.shaderindex, index_) === 1)
			value_ /= 100.0;
		if (params[index_] === value_)
			return;		// no change
		params[index_] = value_;
		if (et.active)
			this.runtime.redraw = true;
	};
	SysActs.prototype.SetLayerEffectParam = function (layer, effectname_, index_, value_)
	{
		if (!layer || !this.runtime.glwrap)
			return;
		var et = layer.getEffectByName(effectname_);
		if (!et)
			return;		// effect name not found
		var params = layer.effect_params[et.index];
		index_ = Math.floor(index_);
		if (index_ < 0 || index_ >= params.length)
			return;		// effect index out of bounds
		if (this.runtime.glwrap.getProgramParameterType(et.shaderindex, index_) === 1)
			value_ /= 100.0;
		if (params[index_] === value_)
			return;		// no change
		params[index_] = value_;
		if (et.active)
			this.runtime.redraw = true;
	};
	SysActs.prototype.SaveState = function (slot_)
	{
		this.runtime.saveToSlot = slot_;
	};
	SysActs.prototype.LoadState = function (slot_)
	{
		this.runtime.loadFromSlot = slot_;
	};
	SysActs.prototype.LoadStateJSON = function (jsonstr_)
	{
		this.runtime.loadFromJson = jsonstr_;
	};
	SysActs.prototype.SetHalfFramerateMode = function (set_)
	{
		this.runtime.halfFramerateMode = (set_ !== 0);
	};
	SysActs.prototype.SetFullscreenQuality = function (q)
	{
		var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || !!document["msFullscreenElement"] || document["fullScreen"] || this.isNodeFullscreen);
		if (!isfullscreen && this.runtime.fullscreen_mode === 0)
			return;
		this.runtime.wantFullscreenScalingQuality = (q !== 0);
		this.runtime["setSize"](this.runtime.lastWindowWidth, this.runtime.lastWindowHeight, true);
	};
	sysProto.acts = new SysActs();
    function SysExps() {};
    SysExps.prototype["int"] = function(ret, x)
    {
        if (cr.is_string(x))
        {
            ret.set_int(parseInt(x, 10));
            if (isNaN(ret.data))
                ret.data = 0;
        }
        else
            ret.set_int(x);
    };
    SysExps.prototype["float"] = function(ret, x)
    {
        if (cr.is_string(x))
        {
            ret.set_float(parseFloat(x));
            if (isNaN(ret.data))
                ret.data = 0;
        }
        else
            ret.set_float(x);
    };
    SysExps.prototype.str = function(ret, x)
    {
        if (cr.is_string(x))
            ret.set_string(x);
        else
            ret.set_string(x.toString());
    };
    SysExps.prototype.len = function(ret, x)
    {
        ret.set_int(x.length || 0);
    };
    SysExps.prototype.random = function (ret, a, b)
    {
        if (b === undefined)
        {
            ret.set_float(Math.random() * a);
        }
        else
        {
            ret.set_float(Math.random() * (b - a) + a);
        }
    };
    SysExps.prototype.sqrt = function(ret, x)
    {
        ret.set_float(Math.sqrt(x));
    };
    SysExps.prototype.abs = function(ret, x)
    {
        ret.set_float(Math.abs(x));
    };
    SysExps.prototype.round = function(ret, x)
    {
        ret.set_int(Math.round(x));
    };
    SysExps.prototype.floor = function(ret, x)
    {
        ret.set_int(Math.floor(x));
    };
    SysExps.prototype.ceil = function(ret, x)
    {
        ret.set_int(Math.ceil(x));
    };
    SysExps.prototype.sin = function(ret, x)
    {
        ret.set_float(Math.sin(cr.to_radians(x)));
    };
    SysExps.prototype.cos = function(ret, x)
    {
        ret.set_float(Math.cos(cr.to_radians(x)));
    };
    SysExps.prototype.tan = function(ret, x)
    {
        ret.set_float(Math.tan(cr.to_radians(x)));
    };
    SysExps.prototype.asin = function(ret, x)
    {
        ret.set_float(cr.to_degrees(Math.asin(x)));
    };
    SysExps.prototype.acos = function(ret, x)
    {
        ret.set_float(cr.to_degrees(Math.acos(x)));
    };
    SysExps.prototype.atan = function(ret, x)
    {
        ret.set_float(cr.to_degrees(Math.atan(x)));
    };
    SysExps.prototype.exp = function(ret, x)
    {
        ret.set_float(Math.exp(x));
    };
    SysExps.prototype.ln = function(ret, x)
    {
        ret.set_float(Math.log(x));
    };
    SysExps.prototype.log10 = function(ret, x)
    {
        ret.set_float(Math.log(x) / Math.LN10);
    };
    SysExps.prototype.max = function(ret)
    {
		var max_ = arguments[1];
		var i, len;
		for (i = 2, len = arguments.length; i < len; i++)
		{
			if (max_ < arguments[i])
				max_ = arguments[i];
		}
		ret.set_float(max_);
    };
    SysExps.prototype.min = function(ret)
    {
        var min_ = arguments[1];
		var i, len;
		for (i = 2, len = arguments.length; i < len; i++)
		{
			if (min_ > arguments[i])
				min_ = arguments[i];
		}
		ret.set_float(min_);
    };
    SysExps.prototype.dt = function(ret)
    {
        ret.set_float(this.runtime.dt);
    };
    SysExps.prototype.timescale = function(ret)
    {
        ret.set_float(this.runtime.timescale);
    };
    SysExps.prototype.wallclocktime = function(ret)
    {
        ret.set_float((Date.now() - this.runtime.start_time) / 1000.0);
    };
    SysExps.prototype.time = function(ret)
    {
        ret.set_float(this.runtime.kahanTime.sum);
    };
    SysExps.prototype.tickcount = function(ret)
    {
        ret.set_int(this.runtime.tickcount);
    };
    SysExps.prototype.objectcount = function(ret)
    {
        ret.set_int(this.runtime.objectcount);
    };
    SysExps.prototype.fps = function(ret)
    {
        ret.set_int(this.runtime.fps);
    };
    SysExps.prototype.loopindex = function(ret, name_)
    {
		var loop, i, len;
        if (!this.runtime.loop_stack.length)
        {
            ret.set_int(0);
            return;
        }
        if (name_)
        {
            for (i = 0, len = this.runtime.loop_stack.length; i < len; i++)
            {
                loop = this.runtime.loop_stack[i];
                if (loop.name === name_)
                {
                    ret.set_int(loop.index);
                    return;
                }
            }
            ret.set_int(0);
        }
        else
        {
			loop = this.runtime.getCurrentLoop();
			ret.set_int(loop ? loop.index : -1);
        }
    };
    SysExps.prototype.distance = function(ret, x1, y1, x2, y2)
    {
        ret.set_float(cr.distanceTo(x1, y1, x2, y2));
    };
    SysExps.prototype.angle = function(ret, x1, y1, x2, y2)
    {
        ret.set_float(cr.to_degrees(cr.angleTo(x1, y1, x2, y2)));
    };
    SysExps.prototype.scrollx = function(ret)
    {
        ret.set_float(this.runtime.running_layout.scrollX);
    };
    SysExps.prototype.scrolly = function(ret)
    {
        ret.set_float(this.runtime.running_layout.scrollY);
    };
    SysExps.prototype.newline = function(ret)
    {
        ret.set_string("\n");
    };
    SysExps.prototype.lerp = function(ret, a, b, x)
    {
        ret.set_float(cr.lerp(a, b, x));
    };
    SysExps.prototype.windowwidth = function(ret)
    {
        ret.set_int(this.runtime.width);
    };
    SysExps.prototype.windowheight = function(ret)
    {
        ret.set_int(this.runtime.height);
    };
	SysExps.prototype.uppercase = function(ret, str)
	{
		ret.set_string(cr.is_string(str) ? str.toUpperCase() : "");
	};
	SysExps.prototype.lowercase = function(ret, str)
	{
		ret.set_string(cr.is_string(str) ? str.toLowerCase() : "");
	};
	SysExps.prototype.clamp = function(ret, x, l, u)
	{
		if (x < l)
			ret.set_float(l);
		else if (x > u)
			ret.set_float(u);
		else
			ret.set_float(x);
	};
	SysExps.prototype.layerscale = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		if (!layer)
			ret.set_float(0);
		else
			ret.set_float(layer.scale);
	};
	SysExps.prototype.layeropacity = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		if (!layer)
			ret.set_float(0);
		else
			ret.set_float(layer.opacity * 100);
	};
	SysExps.prototype.layerscalerate = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		if (!layer)
			ret.set_float(0);
		else
			ret.set_float(layer.zoomRate);
	};
	SysExps.prototype.layerparallaxx = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		if (!layer)
			ret.set_float(0);
		else
			ret.set_float(layer.parallaxX * 100);
	};
	SysExps.prototype.layerparallaxy = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		if (!layer)
			ret.set_float(0);
		else
			ret.set_float(layer.parallaxY * 100);
	};
	SysExps.prototype.layoutscale = function (ret)
	{
		if (this.runtime.running_layout)
			ret.set_float(this.runtime.running_layout.scale);
		else
			ret.set_float(0);
	};
	SysExps.prototype.layoutangle = function (ret)
	{
		ret.set_float(cr.to_degrees(this.runtime.running_layout.angle));
	};
	SysExps.prototype.layerangle = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		if (!layer)
			ret.set_float(0);
		else
			ret.set_float(cr.to_degrees(layer.angle));
	};
	SysExps.prototype.layoutwidth = function (ret)
	{
		ret.set_int(this.runtime.running_layout.width);
	};
	SysExps.prototype.layoutheight = function (ret)
	{
		ret.set_int(this.runtime.running_layout.height);
	};
	SysExps.prototype.find = function (ret, text, searchstr)
	{
		if (cr.is_string(text) && cr.is_string(searchstr))
			ret.set_int(text.search(new RegExp(cr.regexp_escape(searchstr), "i")));
		else
			ret.set_int(-1);
	};
	SysExps.prototype.left = function (ret, text, n)
	{
		ret.set_string(cr.is_string(text) ? text.substr(0, n) : "");
	};
	SysExps.prototype.right = function (ret, text, n)
	{
		ret.set_string(cr.is_string(text) ? text.substr(text.length - n) : "");
	};
	SysExps.prototype.mid = function (ret, text, index_, length_)
	{
		ret.set_string(cr.is_string(text) ? text.substr(index_, length_) : "");
	};
	SysExps.prototype.tokenat = function (ret, text, index_, sep)
	{
		if (cr.is_string(text) && cr.is_string(sep))
		{
			var arr = text.split(sep);
			var i = cr.floor(index_);
			if (i < 0 || i >= arr.length)
				ret.set_string("");
			else
				ret.set_string(arr[i]);
		}
		else
			ret.set_string("");
	};
	SysExps.prototype.tokencount = function (ret, text, sep)
	{
		if (cr.is_string(text) && text.length)
			ret.set_int(text.split(sep).length);
		else
			ret.set_int(0);
	};
	SysExps.prototype.replace = function (ret, text, find_, replace_)
	{
		if (cr.is_string(text) && cr.is_string(find_) && cr.is_string(replace_))
			ret.set_string(text.replace(new RegExp(cr.regexp_escape(find_), "gi"), replace_));
		else
			ret.set_string(cr.is_string(text) ? text : "");
	};
	SysExps.prototype.trim = function (ret, text)
	{
		ret.set_string(cr.is_string(text) ? text.trim() : "");
	};
	SysExps.prototype.pi = function (ret)
	{
		ret.set_float(cr.PI);
	};
	SysExps.prototype.layoutname = function (ret)
	{
		if (this.runtime.running_layout)
			ret.set_string(this.runtime.running_layout.name);
		else
			ret.set_string("");
	};
	SysExps.prototype.renderer = function (ret)
	{
		ret.set_string(this.runtime.gl ? "webgl" : "canvas2d");
	};
	SysExps.prototype.anglediff = function (ret, a, b)
	{
		ret.set_float(cr.to_degrees(cr.angleDiff(cr.to_radians(a), cr.to_radians(b))));
	};
	SysExps.prototype.choose = function (ret)
	{
		var index = cr.floor(Math.random() * (arguments.length - 1));
		ret.set_any(arguments[index + 1]);
	};
	SysExps.prototype.rgb = function (ret, r, g, b)
	{
		ret.set_int(cr.RGB(r, g, b));
	};
	SysExps.prototype.projectversion = function (ret)
	{
		ret.set_string(this.runtime.versionstr);
	};
	SysExps.prototype.anglelerp = function (ret, a, b, x)
	{
		a = cr.to_radians(a);
		b = cr.to_radians(b);
		var diff = cr.angleDiff(a, b);
		if (cr.angleClockwise(b, a))
		{
			ret.set_float(cr.to_clamped_degrees(a + diff * x));
		}
		else
		{
			ret.set_float(cr.to_clamped_degrees(a - diff * x));
		}
	};
	SysExps.prototype.anglerotate = function (ret, a, b, c)
	{
		a = cr.to_radians(a);
		b = cr.to_radians(b);
		c = cr.to_radians(c);
		ret.set_float(cr.to_clamped_degrees(cr.angleRotate(a, b, c)));
	};
	SysExps.prototype.zeropad = function (ret, n, d)
	{
		var s = (n < 0 ? "-" : "");
		if (n < 0) n = -n;
		var zeroes = d - n.toString().length;
		for (var i = 0; i < zeroes; i++)
			s += "0";
		ret.set_string(s + n.toString());
	};
	SysExps.prototype.cpuutilisation = function (ret)
	{
		ret.set_float(this.runtime.cpuutilisation / 1000);
	};
	SysExps.prototype.viewportleft = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		ret.set_float(layer ? layer.viewLeft : 0);
	};
	SysExps.prototype.viewporttop = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		ret.set_float(layer ? layer.viewTop : 0);
	};
	SysExps.prototype.viewportright = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		ret.set_float(layer ? layer.viewRight : 0);
	};
	SysExps.prototype.viewportbottom = function (ret, layerparam)
	{
		var layer = this.runtime.getLayer(layerparam);
		ret.set_float(layer ? layer.viewBottom : 0);
	};
	SysExps.prototype.loadingprogress = function (ret)
	{
		ret.set_float(this.runtime.loadingprogress);
	};
	SysExps.prototype.unlerp = function(ret, a, b, y)
    {
        ret.set_float(cr.unlerp(a, b, y));
    };
	SysExps.prototype.canvassnapshot = function (ret)
	{
		ret.set_string(this.runtime.snapshotData);
	};
	SysExps.prototype.urlencode = function (ret, s)
	{
		ret.set_string(encodeURIComponent(s));
	};
	SysExps.prototype.urldecode = function (ret, s)
	{
		ret.set_string(decodeURIComponent(s));
	};
	SysExps.prototype.canvastolayerx = function (ret, layerparam, x, y)
	{
		var layer = this.runtime.getLayer(layerparam);
		ret.set_float(layer ? layer.canvasToLayer(x, y, true) : 0);
	};
	SysExps.prototype.canvastolayery = function (ret, layerparam, x, y)
	{
		var layer = this.runtime.getLayer(layerparam);
		ret.set_float(layer ? layer.canvasToLayer(x, y, false) : 0);
	};
	SysExps.prototype.layertocanvasx = function (ret, layerparam, x, y)
	{
		var layer = this.runtime.getLayer(layerparam);
		ret.set_float(layer ? layer.layerToCanvas(x, y, true) : 0);
	};
	SysExps.prototype.layertocanvasy = function (ret, layerparam, x, y)
	{
		var layer = this.runtime.getLayer(layerparam);
		ret.set_float(layer ? layer.layerToCanvas(x, y, false) : 0);
	};
	SysExps.prototype.savestatejson = function (ret)
	{
		ret.set_string(this.runtime.lastSaveJson);
	};
	SysExps.prototype.imagememoryusage = function (ret)
	{
		if (this.runtime.glwrap)
			ret.set_float(Math.round(100 * this.runtime.glwrap.estimateVRAM() / (1024 * 1024)) / 100);
		else
			ret.set_float(0);
	};
	SysExps.prototype.regexsearch = function (ret, str_, regex_, flags_)
	{
		var regex = getRegex(regex_, flags_);
		ret.set_int(str_ ? str_.search(regex) : -1);
	};
	SysExps.prototype.regexreplace = function (ret, str_, regex_, flags_, replace_)
	{
		var regex = getRegex(regex_, flags_);
		ret.set_string(str_ ? str_.replace(regex, replace_) : "");
	};
	var regexMatches = [];
	var lastMatchesStr = "";
	var lastMatchesRegex = "";
	var lastMatchesFlags = "";
	function updateRegexMatches(str_, regex_, flags_)
	{
		if (str_ === lastMatchesStr && regex_ === lastMatchesRegex && flags_ === lastMatchesFlags)
			return;
		var regex = getRegex(regex_, flags_);
		regexMatches = str_.match(regex);
		lastMatchesStr = str_;
		lastMatchesRegex = regex_;
		lastMatchesFlags = flags_;
	};
	SysExps.prototype.regexmatchcount = function (ret, str_, regex_, flags_)
	{
		var regex = getRegex(regex_, flags_);
		updateRegexMatches(str_, regex_, flags_);
		ret.set_int(regexMatches ? regexMatches.length : 0);
	};
	SysExps.prototype.regexmatchat = function (ret, str_, regex_, flags_, index_)
	{
		index_ = Math.floor(index_);
		var regex = getRegex(regex_, flags_);
		updateRegexMatches(str_, regex_, flags_);
		if (!regexMatches || index_ < 0 || index_ >= regexMatches.length)
			ret.set_string("");
		else
			ret.set_string(regexMatches[index_]);
	};
	SysExps.prototype.infinity = function (ret)
	{
		ret.set_float(Infinity);
	};
	SysExps.prototype.setbit = function (ret, n, b, v)
	{
		n = n | 0;
		b = b | 0;
		v = (v !== 0 ? 1 : 0);
		ret.set_int((n & ~(1 << b)) | (v << b));
	};
	SysExps.prototype.togglebit = function (ret, n, b)
	{
		n = n | 0;
		b = b | 0;
		ret.set_int(n ^ (1 << b));
	};
	SysExps.prototype.getbit = function (ret, n, b)
	{
		n = n | 0;
		b = b | 0;
		ret.set_int((n & (1 << b)) ? 1 : 0);
	};
	sysProto.exps = new SysExps();
	sysProto.runWaits = function ()
	{
		var i, j, len, w, k, s, ss;
		var evinfo = this.runtime.getCurrentEventStack();
		for (i = 0, len = this.waits.length; i < len; i++)
		{
			w = this.waits[i];
			if (w.time > this.runtime.kahanTime.sum)
				continue;
			evinfo.current_event = w.ev;
			evinfo.actindex = w.actindex;
			evinfo.cndindex = 0;
			for (k in w.sols)
			{
				if (w.sols.hasOwnProperty(k))
				{
					s = this.runtime.types_by_index[parseInt(k, 10)].getCurrentSol();
					ss = w.sols[k];
					s.select_all = ss.sa;
					cr.shallowAssignArray(s.instances, ss.insts);
					freeSolStateObject(ss);
				}
			}
			w.ev.resume_actions_and_subevents();
			this.runtime.clearSol(w.solModifiers);
			w.deleteme = true;
		}
		for (i = 0, j = 0, len = this.waits.length; i < len; i++)
		{
			w = this.waits[i];
			this.waits[j] = w;
			if (w.deleteme)
				freeWaitObject(w);
			else
				j++;
		}
		this.waits.length = j;
	};
}());
;
(function () {
	cr.add_common_aces = function (m)
	{
		var pluginProto = m[0].prototype;
		var singleglobal_ = m[1];
		var position_aces = m[3];
		var size_aces = m[4];
		var angle_aces = m[5];
		var appearance_aces = m[6];
		var zorder_aces = m[7];
		var effects_aces = m[8];
		if (!pluginProto.cnds)
			pluginProto.cnds = {};
		if (!pluginProto.acts)
			pluginProto.acts = {};
		if (!pluginProto.exps)
			pluginProto.exps = {};
		var cnds = pluginProto.cnds;
		var acts = pluginProto.acts;
		var exps = pluginProto.exps;
		if (position_aces)
		{
			cnds.CompareX = function (cmp, x)
			{
				return cr.do_cmp(this.x, cmp, x);
			};
			cnds.CompareY = function (cmp, y)
			{
				return cr.do_cmp(this.y, cmp, y);
			};
			cnds.IsOnScreen = function ()
			{
				var layer = this.layer;
				this.update_bbox();
				var bbox = this.bbox;
				return !(bbox.right < layer.viewLeft || bbox.bottom < layer.viewTop || bbox.left > layer.viewRight || bbox.top > layer.viewBottom);
			};
			cnds.IsOutsideLayout = function ()
			{
				this.update_bbox();
				var bbox = this.bbox;
				var layout = this.runtime.running_layout;
				return (bbox.right < 0 || bbox.bottom < 0 || bbox.left > layout.width || bbox.top > layout.height);
			};
			cnds.PickDistance = function (which, x, y)
			{
				var sol = this.getCurrentSol();
				var instances = sol.getObjects();
				if (!instances.length)
					return false;
				var inst = instances[0];
				var pickme = inst;
				var dist = cr.distanceTo(inst.x, inst.y, x, y);
				var i, len, d;
				for (i = 1, len = instances.length; i < len; i++)
				{
					inst = instances[i];
					d = cr.distanceTo(inst.x, inst.y, x, y);
					if ((which === 0 && d < dist) || (which === 1 && d > dist))
					{
						dist = d;
						pickme = inst;
					}
				}
				sol.pick_one(pickme);
				return true;
			};
			acts.SetX = function (x)
			{
				if (this.x !== x)
				{
					this.x = x;
					this.set_bbox_changed();
				}
			};
			acts.SetY = function (y)
			{
				if (this.y !== y)
				{
					this.y = y;
					this.set_bbox_changed();
				}
			};
			acts.SetPos = function (x, y)
			{
				if (this.x !== x || this.y !== y)
				{
					this.x = x;
					this.y = y;
					this.set_bbox_changed();
				}
			};
			acts.SetPosToObject = function (obj, imgpt)
			{
				var inst = obj.getPairedInstance(this);
				if (!inst)
					return;
				var newx, newy;
				if (inst.getImagePoint)
				{
					newx = inst.getImagePoint(imgpt, true);
					newy = inst.getImagePoint(imgpt, false);
				}
				else
				{
					newx = inst.x;
					newy = inst.y;
				}
				if (this.x !== newx || this.y !== newy)
				{
					this.x = newx;
					this.y = newy;
					this.set_bbox_changed();
				}
			};
			acts.MoveForward = function (dist)
			{
				if (dist !== 0)
				{
					this.x += Math.cos(this.angle) * dist;
					this.y += Math.sin(this.angle) * dist;
					this.set_bbox_changed();
				}
			};
			acts.MoveAtAngle = function (a, dist)
			{
				if (dist !== 0)
				{
					this.x += Math.cos(cr.to_radians(a)) * dist;
					this.y += Math.sin(cr.to_radians(a)) * dist;
					this.set_bbox_changed();
				}
			};
			exps.X = function (ret)
			{
				ret.set_float(this.x);
			};
			exps.Y = function (ret)
			{
				ret.set_float(this.y);
			};
			exps.dt = function (ret)
			{
				ret.set_float(this.runtime.getDt(this));
			};
		}
		if (size_aces)
		{
			cnds.CompareWidth = function (cmp, w)
			{
				return cr.do_cmp(this.width, cmp, w);
			};
			cnds.CompareHeight = function (cmp, h)
			{
				return cr.do_cmp(this.height, cmp, h);
			};
			acts.SetWidth = function (w)
			{
				if (this.width !== w)
				{
					this.width = w;
					this.set_bbox_changed();
				}
			};
			acts.SetHeight = function (h)
			{
				if (this.height !== h)
				{
					this.height = h;
					this.set_bbox_changed();
				}
			};
			acts.SetSize = function (w, h)
			{
				if (this.width !== w || this.height !== h)
				{
					this.width = w;
					this.height = h;
					this.set_bbox_changed();
				}
			};
			exps.Width = function (ret)
			{
				ret.set_float(this.width);
			};
			exps.Height = function (ret)
			{
				ret.set_float(this.height);
			};
			exps.BBoxLeft = function (ret)
			{
				this.update_bbox();
				ret.set_float(this.bbox.left);
			};
			exps.BBoxTop = function (ret)
			{
				this.update_bbox();
				ret.set_float(this.bbox.top);
			};
			exps.BBoxRight = function (ret)
			{
				this.update_bbox();
				ret.set_float(this.bbox.right);
			};
			exps.BBoxBottom = function (ret)
			{
				this.update_bbox();
				ret.set_float(this.bbox.bottom);
			};
		}
		if (angle_aces)
		{
			cnds.AngleWithin = function (within, a)
			{
				return cr.angleDiff(this.angle, cr.to_radians(a)) <= cr.to_radians(within);
			};
			cnds.IsClockwiseFrom = function (a)
			{
				return cr.angleClockwise(this.angle, cr.to_radians(a));
			};
			cnds.IsBetweenAngles = function (a, b)
			{
				var lower = cr.to_clamped_radians(a);
				var upper = cr.to_clamped_radians(b);
				var angle = cr.clamp_angle(this.angle);
				var obtuse = (!cr.angleClockwise(upper, lower));
				if (obtuse)
					return !(!cr.angleClockwise(angle, lower) && cr.angleClockwise(angle, upper));
				else
					return cr.angleClockwise(angle, lower) && !cr.angleClockwise(angle, upper);
			};
			acts.SetAngle = function (a)
			{
				var newangle = cr.to_radians(cr.clamp_angle_degrees(a));
				if (isNaN(newangle))
					return;
				if (this.angle !== newangle)
				{
					this.angle = newangle;
					this.set_bbox_changed();
				}
			};
			acts.RotateClockwise = function (a)
			{
				if (a !== 0 && !isNaN(a))
				{
					this.angle += cr.to_radians(a);
					this.angle = cr.clamp_angle(this.angle);
					this.set_bbox_changed();
				}
			};
			acts.RotateCounterclockwise = function (a)
			{
				if (a !== 0 && !isNaN(a))
				{
					this.angle -= cr.to_radians(a);
					this.angle = cr.clamp_angle(this.angle);
					this.set_bbox_changed();
				}
			};
			acts.RotateTowardAngle = function (amt, target)
			{
				var newangle = cr.angleRotate(this.angle, cr.to_radians(target), cr.to_radians(amt));
				if (isNaN(newangle))
					return;
				if (this.angle !== newangle)
				{
					this.angle = newangle;
					this.set_bbox_changed();
				}
			};
			acts.RotateTowardPosition = function (amt, x, y)
			{
				var dx = x - this.x;
				var dy = y - this.y;
				var target = Math.atan2(dy, dx);
				var newangle = cr.angleRotate(this.angle, target, cr.to_radians(amt));
				if (isNaN(newangle))
					return;
				if (this.angle !== newangle)
				{
					this.angle = newangle;
					this.set_bbox_changed();
				}
			};
			acts.SetTowardPosition = function (x, y)
			{
				var dx = x - this.x;
				var dy = y - this.y;
				var newangle = Math.atan2(dy, dx);
				if (isNaN(newangle))
					return;
				if (this.angle !== newangle)
				{
					this.angle = newangle;
					this.set_bbox_changed();
				}
			};
			exps.Angle = function (ret)
			{
				ret.set_float(cr.to_clamped_degrees(this.angle));
			};
		}
		if (!singleglobal_)
		{
			cnds.CompareInstanceVar = function (iv, cmp, val)
			{
				return cr.do_cmp(this.instance_vars[iv], cmp, val);
			};
			cnds.IsBoolInstanceVarSet = function (iv)
			{
				return this.instance_vars[iv];
			};
			cnds.PickInstVarHiLow = function (which, iv)
			{
				var sol = this.getCurrentSol();
				var instances = sol.getObjects();
				if (!instances.length)
					return false;
				var inst = instances[0];
				var pickme = inst;
				var val = inst.instance_vars[iv];
				var i, len, v;
				for (i = 1, len = instances.length; i < len; i++)
				{
					inst = instances[i];
					v = inst.instance_vars[iv];
					if ((which === 0 && v < val) || (which === 1 && v > val))
					{
						val = v;
						pickme = inst;
					}
				}
				sol.pick_one(pickme);
				return true;
			};
			cnds.PickByUID = function (u)
			{
				var i, len, j, inst, families, instances, sol;
				var cnd = this.runtime.getCurrentCondition();
				if (cnd.inverted)
				{
					sol = this.getCurrentSol();
					if (sol.select_all)
					{
						sol.select_all = false;
						sol.instances.length = 0;
						sol.else_instances.length = 0;
						instances = this.instances;
						for (i = 0, len = instances.length; i < len; i++)
						{
							inst = instances[i];
							if (inst.uid === u)
								sol.else_instances.push(inst);
							else
								sol.instances.push(inst);
						}
						this.applySolToContainer();
						return !!sol.instances.length;
					}
					else
					{
						for (i = 0, j = 0, len = sol.instances.length; i < len; i++)
						{
							inst = sol.instances[i];
							sol.instances[j] = inst;
							if (inst.uid === u)
							{
								sol.else_instances.push(inst);
							}
							else
								j++;
						}
						sol.instances.length = j;
						this.applySolToContainer();
						return !!sol.instances.length;
					}
				}
				else
				{
					inst = this.runtime.getObjectByUID(u);
					if (!inst)
						return false;
					sol = this.getCurrentSol();
					if (!sol.select_all && sol.instances.indexOf(inst) === -1)
						return false;		// not picked
					if (this.is_family)
					{
						families = inst.type.families;
						for (i = 0, len = families.length; i < len; i++)
						{
							if (families[i] === this)
							{
								sol.pick_one(inst);
								this.applySolToContainer();
								return true;
							}
						}
					}
					else if (inst.type === this)
					{
						sol.pick_one(inst);
						this.applySolToContainer();
						return true;
					}
					return false;
				}
			};
			cnds.OnCreated = function ()
			{
				return true;
			};
			cnds.OnDestroyed = function ()
			{
				return true;
			};
			acts.SetInstanceVar = function (iv, val)
			{
				var myinstvars = this.instance_vars;
				if (cr.is_number(myinstvars[iv]))
				{
					if (cr.is_number(val))
						myinstvars[iv] = val;
					else
						myinstvars[iv] = parseFloat(val);
				}
				else if (cr.is_string(myinstvars[iv]))
				{
					if (cr.is_string(val))
						myinstvars[iv] = val;
					else
						myinstvars[iv] = val.toString();
				}
				else
;
			};
			acts.AddInstanceVar = function (iv, val)
			{
				var myinstvars = this.instance_vars;
				if (cr.is_number(myinstvars[iv]))
				{
					if (cr.is_number(val))
						myinstvars[iv] += val;
					else
						myinstvars[iv] += parseFloat(val);
				}
				else if (cr.is_string(myinstvars[iv]))
				{
					if (cr.is_string(val))
						myinstvars[iv] += val;
					else
						myinstvars[iv] += val.toString();
				}
				else
;
			};
			acts.SubInstanceVar = function (iv, val)
			{
				var myinstvars = this.instance_vars;
				if (cr.is_number(myinstvars[iv]))
				{
					if (cr.is_number(val))
						myinstvars[iv] -= val;
					else
						myinstvars[iv] -= parseFloat(val);
				}
				else
;
			};
			acts.SetBoolInstanceVar = function (iv, val)
			{
				this.instance_vars[iv] = val ? 1 : 0;
			};
			acts.ToggleBoolInstanceVar = function (iv)
			{
				this.instance_vars[iv] = 1 - this.instance_vars[iv];
			};
			acts.Destroy = function ()
			{
				this.runtime.DestroyInstance(this);
			};
			if (!acts.LoadFromJsonString)
			{
				acts.LoadFromJsonString = function (str_)
				{
					var o, i, len, binst;
					try {
						o = JSON.parse(str_);
					}
					catch (e) {
						return;
					}
					this.runtime.loadInstanceFromJSON(this, o, true);
					if (this.afterLoad)
						this.afterLoad();
					if (this.behavior_insts)
					{
						for (i = 0, len = this.behavior_insts.length; i < len; ++i)
						{
							binst = this.behavior_insts[i];
							if (binst.afterLoad)
								binst.afterLoad();
						}
					}
				};
			}
			exps.Count = function (ret)
			{
				var count = ret.object_class.instances.length;
				var i, len, inst;
				for (i = 0, len = this.runtime.createRow.length; i < len; i++)
				{
					inst = this.runtime.createRow[i];
					if (ret.object_class.is_family)
					{
						if (inst.type.families.indexOf(ret.object_class) >= 0)
							count++;
					}
					else
					{
						if (inst.type === ret.object_class)
							count++;
					}
				}
				ret.set_int(count);
			};
			exps.PickedCount = function (ret)
			{
				ret.set_int(ret.object_class.getCurrentSol().getObjects().length);
			};
			exps.UID = function (ret)
			{
				ret.set_int(this.uid);
			};
			exps.IID = function (ret)
			{
				ret.set_int(this.get_iid());
			};
			if (!exps.AsJSON)
			{
				exps.AsJSON = function (ret)
				{
					ret.set_string(JSON.stringify(this.runtime.saveInstanceToJSON(this, true)));
				};
			}
		}
		if (appearance_aces)
		{
			cnds.IsVisible = function ()
			{
				return this.visible;
			};
			acts.SetVisible = function (v)
			{
				if (!v !== !this.visible)
				{
					this.visible = v;
					this.runtime.redraw = true;
				}
			};
			cnds.CompareOpacity = function (cmp, x)
			{
				return cr.do_cmp(cr.round6dp(this.opacity * 100), cmp, x);
			};
			acts.SetOpacity = function (x)
			{
				var new_opacity = x / 100.0;
				if (new_opacity < 0)
					new_opacity = 0;
				else if (new_opacity > 1)
					new_opacity = 1;
				if (new_opacity !== this.opacity)
				{
					this.opacity = new_opacity;
					this.runtime.redraw = true;
				}
			};
			exps.Opacity = function (ret)
			{
				ret.set_float(cr.round6dp(this.opacity * 100.0));
			};
		}
		if (zorder_aces)
		{
			cnds.IsOnLayer = function (layer_)
			{
				if (!layer_)
					return false;
				return this.layer === layer_;
			};
			cnds.PickTopBottom = function (which_)
			{
				var sol = this.getCurrentSol();
				var instances = sol.getObjects();
				if (!instances.length)
					return false;
				var inst = instances[0];
				var pickme = inst;
				var i, len;
				for (i = 1, len = instances.length; i < len; i++)
				{
					inst = instances[i];
					if (which_ === 0)
					{
						if (inst.layer.index > pickme.layer.index || (inst.layer.index === pickme.layer.index && inst.get_zindex() > pickme.get_zindex()))
						{
							pickme = inst;
						}
					}
					else
					{
						if (inst.layer.index < pickme.layer.index || (inst.layer.index === pickme.layer.index && inst.get_zindex() < pickme.get_zindex()))
						{
							pickme = inst;
						}
					}
				}
				sol.pick_one(pickme);
				return true;
			};
			acts.MoveToTop = function ()
			{
				var zindex = this.get_zindex();
				if (zindex === this.layer.instances.length - 1)
					return;
				cr.arrayRemove(this.layer.instances, zindex);
				this.layer.instances.push(this);
				this.runtime.redraw = true;
				this.layer.zindices_stale = true;
			};
			acts.MoveToBottom = function ()
			{
				var zindex = this.get_zindex();
				if (zindex === 0)
					return;
				cr.arrayRemove(this.layer.instances, zindex);
				this.layer.instances.unshift(this);
				this.runtime.redraw = true;
				this.layer.zindices_stale = true;
			};
			acts.MoveToLayer = function (layerMove)
			{
				if (!layerMove || layerMove == this.layer)
					return;
				cr.arrayRemove(this.layer.instances, this.get_zindex());
				this.layer.zindices_stale = true;
				this.layer = layerMove;
				this.zindex = layerMove.instances.length;
				layerMove.instances.push(this);
				this.runtime.redraw = true;
			};
			acts.ZMoveToObject = function (where_, obj_)
			{
				var isafter = (where_ === 0);
				if (!obj_)
					return;
				var other = obj_.getFirstPicked(this);
				if (!other || other.uid === this.uid)
					return;
				if (this.layer.index !== other.layer.index)
				{
					cr.arrayRemove(this.layer.instances, this.get_zindex());
					this.layer.zindices_stale = true;
					this.layer = other.layer;
					this.zindex = other.layer.instances.length;
					other.layer.instances.push(this);
				}
				var myZ = this.get_zindex();
				var insertZ = other.get_zindex();
				cr.arrayRemove(this.layer.instances, myZ);
				if (myZ < insertZ)
					insertZ--;
				if (isafter)
					insertZ++;
				if (insertZ === this.layer.instances.length)
					this.layer.instances.push(this);
				else
					this.layer.instances.splice(insertZ, 0, this);
				this.layer.zindices_stale = true;
				this.runtime.redraw = true;
			};
			exps.LayerNumber = function (ret)
			{
				ret.set_int(this.layer.number);
			};
			exps.LayerName = function (ret)
			{
				ret.set_string(this.layer.name);
			};
			exps.ZIndex = function (ret)
			{
				ret.set_int(this.get_zindex());
			};
		}
		if (effects_aces)
		{
			acts.SetEffectEnabled = function (enable_, effectname_)
			{
				if (!this.runtime.glwrap)
					return;
				var i = this.type.getEffectIndexByName(effectname_);
				if (i < 0)
					return;		// effect name not found
				var enable = (enable_ === 1);
				if (this.active_effect_flags[i] === enable)
					return;		// no change
				this.active_effect_flags[i] = enable;
				this.updateActiveEffects();
				this.runtime.redraw = true;
			};
			acts.SetEffectParam = function (effectname_, index_, value_)
			{
				if (!this.runtime.glwrap)
					return;
				var i = this.type.getEffectIndexByName(effectname_);
				if (i < 0)
					return;		// effect name not found
				var et = this.type.effect_types[i];
				var params = this.effect_params[i];
				index_ = Math.floor(index_);
				if (index_ < 0 || index_ >= params.length)
					return;		// effect index out of bounds
				if (this.runtime.glwrap.getProgramParameterType(et.shaderindex, index_) === 1)
					value_ /= 100.0;
				if (params[index_] === value_)
					return;		// no change
				params[index_] = value_;
				if (et.active)
					this.runtime.redraw = true;
			};
		}
	};
	cr.set_bbox_changed = function ()
	{
		this.bbox_changed = true;      		// will recreate next time box requested
		this.cell_changed = true;
		this.type.any_cell_changed = true;	// avoid unnecessary updateAllBBox() calls
		this.runtime.redraw = true;     	// assume runtime needs to redraw
		var i, len, callbacks = this.bbox_changed_callbacks;
		for (i = 0, len = callbacks.length; i < len; ++i)
		{
			callbacks[i](this);
		}
	};
	cr.add_bbox_changed_callback = function (f)
	{
		if (f)
		{
			this.bbox_changed_callbacks.push(f);
		}
	};
	cr.update_bbox = function ()
	{
		if (!this.bbox_changed)
			return;                 // bounding box not changed
		var bbox = this.bbox;
		var bquad = this.bquad;
		bbox.set(this.x, this.y, this.x + this.width, this.y + this.height);
		bbox.offset(-this.hotspotX * this.width, -this.hotspotY * this.height);
		if (!this.angle)
		{
			bquad.set_from_rect(bbox);    // make bounding quad from box
		}
		else
		{
			bbox.offset(-this.x, -this.y);       			// translate to origin
			bquad.set_from_rotated_rect(bbox, this.angle);	// rotate around origin
			bquad.offset(this.x, this.y);      				// translate back to original position
			bquad.bounding_box(bbox);
		}
		bbox.normalize();
		this.bbox_changed = false;  // bounding box up to date
	};
	var tmprc = new cr.rect(0, 0, 0, 0);
	cr.update_collision_cell = function ()
	{
		if (!this.cell_changed || !this.collisionsEnabled)
			return;
		this.update_bbox();
		var mygrid = this.type.collision_grid;
		var collcells = this.collcells;
		var bbox = this.bbox;
		tmprc.set(mygrid.XToCell(bbox.left), mygrid.YToCell(bbox.top), mygrid.XToCell(bbox.right), mygrid.YToCell(bbox.bottom));
		if (collcells.equals(tmprc))
			return;
		if (collcells.right < collcells.left)
			mygrid.update(this, null, tmprc);		// first insertion with invalid rect: don't provide old range
		else
			mygrid.update(this, collcells, tmprc);
		collcells.copy(tmprc);
		this.cell_changed = false;
	};
	cr.inst_contains_pt = function (x, y)
	{
		if (!this.bbox.contains_pt(x, y))
			return false;
		if (!this.bquad.contains_pt(x, y))
			return false;
		if (this.collision_poly && !this.collision_poly.is_empty())
		{
			this.collision_poly.cache_poly(this.width, this.height, this.angle);
			return this.collision_poly.contains_pt(x - this.x, y - this.y);
		}
		else
			return true;
	};
	cr.inst_get_iid = function ()
	{
		this.type.updateIIDs();
		return this.iid;
	};
	cr.inst_get_zindex = function ()
	{
		this.layer.updateZIndices();
		return this.zindex;
	};
	cr.inst_updateActiveEffects = function ()
	{
		this.active_effect_types.length = 0;
		var i, len, et, inst;
		for (i = 0, len = this.active_effect_flags.length; i < len; i++)
		{
			if (this.active_effect_flags[i])
				this.active_effect_types.push(this.type.effect_types[i]);
		}
		this.uses_shaders = !!this.active_effect_types.length;
	};
	cr.inst_toString = function ()
	{
		return "Inst" + this.puid;
	};
	cr.type_getFirstPicked = function (frominst)
	{
		if (frominst && frominst.is_contained && frominst.type != this)
		{
			var i, len, s;
			for (i = 0, len = frominst.siblings.length; i < len; i++)
			{
				s = frominst.siblings[i];
				if (s.type == this)
					return s;
			}
		}
		var instances = this.getCurrentSol().getObjects();
		if (instances.length)
			return instances[0];
		else
			return null;
	};
	cr.type_getPairedInstance = function (inst)
	{
		var instances = this.getCurrentSol().getObjects();
		if (instances.length)
			return instances[inst.get_iid() % instances.length];
		else
			return null;
	};
	cr.type_updateIIDs = function ()
	{
		if (!this.stale_iids || this.is_family)
			return;		// up to date or is family - don't want family to overwrite IIDs
		var i, len;
		for (i = 0, len = this.instances.length; i < len; i++)
			this.instances[i].iid = i;
		var next_iid = i;
		var createRow = this.runtime.createRow;
		for (i = 0, len = createRow.length; i < len; ++i)
		{
			if (createRow[i].type === this)
				createRow[i].iid = next_iid++;
		}
		this.stale_iids = false;
	};
	cr.type_getInstanceByIID = function (i)
	{
		if (i < this.instances.length)
			return this.instances[i];
		i -= this.instances.length;
		var createRow = this.runtime.createRow;
		var j, lenj;
		for (j = 0, lenj = createRow.length; j < lenj; ++j)
		{
			if (createRow[j].type === this)
			{
				if (i === 0)
					return createRow[j];
				--i;
			}
		}
;
		return null;
	};
	cr.type_getCurrentSol = function ()
	{
		return this.solstack[this.cur_sol];
	};
	cr.type_pushCleanSol = function ()
	{
		this.cur_sol++;
		if (this.cur_sol === this.solstack.length)
			this.solstack.push(new cr.selection(this));
		else
			this.solstack[this.cur_sol].select_all = true;  // else clear next SOL
	};
	cr.type_pushCopySol = function ()
	{
		this.cur_sol++;
		if (this.cur_sol === this.solstack.length)
			this.solstack.push(new cr.selection(this));
		var clonesol = this.solstack[this.cur_sol];
		var prevsol = this.solstack[this.cur_sol - 1];
		if (prevsol.select_all)
			clonesol.select_all = true;
		else
		{
			clonesol.select_all = false;
			cr.shallowAssignArray(clonesol.instances, prevsol.instances);
			cr.shallowAssignArray(clonesol.else_instances, prevsol.else_instances);
		}
	};
	cr.type_popSol = function ()
	{
;
		this.cur_sol--;
	};
	cr.type_getBehaviorByName = function (behname)
	{
		var i, len, j, lenj, f, index = 0;
		if (!this.is_family)
		{
			for (i = 0, len = this.families.length; i < len; i++)
			{
				f = this.families[i];
				for (j = 0, lenj = f.behaviors.length; j < lenj; j++)
				{
					if (behname === f.behaviors[j].name)
					{
						this.extra.lastBehIndex = index;
						return f.behaviors[j];
					}
					index++;
				}
			}
		}
		for (i = 0, len = this.behaviors.length; i < len; i++) {
			if (behname === this.behaviors[i].name)
			{
				this.extra.lastBehIndex = index;
				return this.behaviors[i];
			}
			index++;
		}
		return null;
	};
	cr.type_getBehaviorIndexByName = function (behname)
	{
		var b = this.getBehaviorByName(behname);
		if (b)
			return this.extra.lastBehIndex;
		else
			return -1;
	};
	cr.type_getEffectIndexByName = function (name_)
	{
		var i, len;
		for (i = 0, len = this.effect_types.length; i < len; i++)
		{
			if (this.effect_types[i].name === name_)
				return i;
		}
		return -1;
	};
	cr.type_applySolToContainer = function ()
	{
		if (!this.is_contained || this.is_family)
			return;
		var i, len, j, lenj, t, sol, sol2;
		this.updateIIDs();
		sol = this.getCurrentSol();
		var select_all = sol.select_all;
		var es = this.runtime.getCurrentEventStack();
		var orblock = es && es.current_event && es.current_event.orblock;
		for (i = 0, len = this.container.length; i < len; i++)
		{
			t = this.container[i];
			if (t === this)
				continue;
			t.updateIIDs();
			sol2 = t.getCurrentSol();
			sol2.select_all = select_all;
			if (!select_all)
			{
				sol2.instances.length = sol.instances.length;
				for (j = 0, lenj = sol.instances.length; j < lenj; j++)
					sol2.instances[j] = t.getInstanceByIID(sol.instances[j].iid);
				if (orblock)
				{
					sol2.else_instances.length = sol.else_instances.length;
					for (j = 0, lenj = sol.else_instances.length; j < lenj; j++)
						sol2.else_instances[j] = t.getInstanceByIID(sol.else_instances[j].iid);
				}
			}
		}
	};
	cr.type_toString = function ()
	{
		return "Type" + this.sid;
	};
	cr.do_cmp = function (x, cmp, y)
	{
		if (typeof x === "undefined" || typeof y === "undefined")
			return false;
		switch (cmp)
		{
			case 0:     // equal
				return x === y;
			case 1:     // not equal
				return x !== y;
			case 2:     // less
				return x < y;
			case 3:     // less/equal
				return x <= y;
			case 4:     // greater
				return x > y;
			case 5:     // greater/equal
				return x >= y;
			default:
;
				return false;
		}
	};
})();
cr.shaders = {};
cr.shaders["highlightshadow"] = {src: ["varying mediump vec2 vTex;",
"uniform lowp sampler2D samplerFront;",
"uniform lowp float shadows;",
"uniform lowp float highlights;",
"const mediump vec3 luminanceWeighting = vec3(0.3, 0.3, 0.3);",
"void main(void)",
"{",
"lowp vec4 front = texture2D(samplerFront, vTex);",
"mediump float luminance = dot(front.rgb, luminanceWeighting);",
"mediump float shadow = clamp((pow(luminance, 1.0 / (shadows + 1.0)) + (-0.76) * pow(luminance, 2.0 / (shadows + 1.0))) - luminance, 0.0, 1.0);",
"mediump float highlight = clamp((1.0 - (pow(1.0 - luminance, 1.0 / (2.0 - highlights)) + (-0.8) * pow(1.0 - luminance, 2.0 / (2.0 - highlights)))) - luminance, -1.0, 0.0);",
"lowp vec3 result = vec3(0.0, 0.0, 0.0) + ((luminance + shadow + highlight) - 0.0) * ((front.rgb - vec3(0.0, 0.0, 0.0)) / (luminance - 0.0));",
"gl_FragColor = vec4(result.rgb, front.a);",
"}"
].join("\n"),
	extendBoxHorizontal: 0,
	extendBoxVertical: 0,
	crossSampling: false,
	animated: false,
	parameters: [["shadows", 0, 1], ["highlights", 0, 1]] }
cr.shaders["lighten"] = {src: ["varying mediump vec2 vTex;",
"uniform lowp sampler2D samplerFront;",
"uniform lowp sampler2D samplerBack;",
"uniform mediump vec2 destStart;",
"uniform mediump vec2 destEnd;",
"void main(void)",
"{",
"lowp vec4 front = texture2D(samplerFront, vTex);",
"front.rgb /= front.a;",
"lowp vec4 back = texture2D(samplerBack, mix(destStart, destEnd, vTex));",
"back.rgb /= back.a;",
"front.rgb = max(front.rgb, back.rgb) * front.a;",
"gl_FragColor = front * back.a;",
"}"
].join("\n"),
	extendBoxHorizontal: 0,
	extendBoxVertical: 0,
	crossSampling: true,
	animated: false,
	parameters: [] }
;
;
cr.plugins_.AJAX = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var isNodeWebkit = false;
	var path = null;
	var fs = null;
	var nw_appfolder = "";
	var pluginProto = cr.plugins_.AJAX.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
		this.lastData = "";
		this.curTag = "";
		this.progress = 0;
		this.timeout = -1;
		isNodeWebkit = this.runtime.isNodeWebkit;
		if (isNodeWebkit)
		{
			path = require("path");
			fs = require("fs");
			nw_appfolder = path["dirname"](process["execPath"]) + "\\";
		}
	};
	var instanceProto = pluginProto.Instance.prototype;
	var theInstance = null;
	window["C2_AJAX_DCSide"] = function (event_, tag_, param_)
	{
		if (!theInstance)
			return;
		if (event_ === "success")
		{
			theInstance.curTag = tag_;
			theInstance.lastData = param_;
			theInstance.runtime.trigger(cr.plugins_.AJAX.prototype.cnds.OnComplete, theInstance);
		}
		else if (event_ === "error")
		{
			theInstance.curTag = tag_;
			theInstance.runtime.trigger(cr.plugins_.AJAX.prototype.cnds.OnError, theInstance);
		}
		else if (event_ === "progress")
		{
			theInstance.progress = param_;
			theInstance.curTag = tag_;
			theInstance.runtime.trigger(cr.plugins_.AJAX.prototype.cnds.OnProgress, theInstance);
		}
	};
	instanceProto.onCreate = function()
	{
		theInstance = this;
	};
	instanceProto.saveToJSON = function ()
	{
		return { "lastData": this.lastData };
	};
	instanceProto.loadFromJSON = function (o)
	{
		this.lastData = o["lastData"];
		this.curTag = "";
		this.progress = 0;
	};
	instanceProto.doRequest = function (tag_, url_, method_, data_)
	{
		if (this.runtime.isDirectCanvas)
		{
			AppMobi["webview"]["execute"]('C2_AJAX_WebSide("' + tag_ + '", "' + url_ + '", "' + method_ + '", ' + (data_ ? '"' + data_ + '"' : "null") + ');');
			return;
		}
		var self = this;
		var request = null;
		var doErrorFunc = function ()
		{
			self.curTag = tag_;
			self.runtime.trigger(cr.plugins_.AJAX.prototype.cnds.OnError, self);
		};
		var errorFunc = function ()
		{
			if (isNodeWebkit)
			{
				var filepath = nw_appfolder + url_;
				if (fs["existsSync"](filepath))
				{
					fs["readFile"](filepath, {"encoding": "utf8"}, function (err, data) {
						if (err)
						{
							doErrorFunc();
							return;
						}
						self.lastData = data.replace(/\r\n/g, "\n")
						self.runtime.trigger(cr.plugins_.AJAX.prototype.cnds.OnComplete, self);
					});
				}
				else
					doErrorFunc();
			}
			else
				doErrorFunc();
		};
		var progressFunc = function (e)
		{
			if (!e["lengthComputable"])
				return;
			self.progress = e.loaded / e.total;
			self.curTag = tag_;
			self.runtime.trigger(cr.plugins_.AJAX.prototype.cnds.OnProgress, self);
		};
		try
		{
			if (this.runtime.isWindowsPhone8)
				request = new ActiveXObject("Microsoft.XMLHTTP");
			else
				request = new XMLHttpRequest();
			request.onreadystatechange = function()
			{
				if (request.readyState === 4)
				{
					self.curTag = tag_;
					if (request.responseText)
						self.lastData = request.responseText.replace(/\r\n/g, "\n");		// fix windows style line endings
					else
						self.lastData = "";
					if (request.status >= 400)
						self.runtime.trigger(cr.plugins_.AJAX.prototype.cnds.OnError, self);
					else
					{
						if (!isNodeWebkit || self.lastData.length)
							self.runtime.trigger(cr.plugins_.AJAX.prototype.cnds.OnComplete, self);
					}
				}
			};
			if (!this.runtime.isWindowsPhone8)
			{
				request.onerror = errorFunc;
				request.ontimeout = errorFunc;
				request.onabort = errorFunc;
				request["onprogress"] = progressFunc;
				if (this.timeout >= 0 && typeof request["timeout"] !== "undefined")
					request["timeout"] = this.timeout;
			}
			request.open(method_, url_);
			try {
				request.responseType = "text";
			} catch (e) {}
			if (method_ === "POST" && data_)
			{
				if (request["setRequestHeader"])
				{
					request["setRequestHeader"]("Content-Type", "application/x-www-form-urlencoded");
				}
				request.send(data_);
			}
			else
				request.send();
		}
		catch (e)
		{
			errorFunc();
		}
	};
	function Cnds() {};
	Cnds.prototype.OnComplete = function (tag)
	{
		return cr.equals_nocase(tag, this.curTag);
	};
	Cnds.prototype.OnError = function (tag)
	{
		return cr.equals_nocase(tag, this.curTag);
	};
	Cnds.prototype.OnProgress = function (tag)
	{
		return cr.equals_nocase(tag, this.curTag);
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.Request = function (tag_, url_)
	{
		this.doRequest(tag_, url_, "GET");
	};
	Acts.prototype.RequestFile = function (tag_, file_)
	{
		this.doRequest(tag_, file_, "GET");
	};
	Acts.prototype.Post = function (tag_, url_, data_)
	{
		this.doRequest(tag_, url_, "POST", data_);
	};
	Acts.prototype.SetTimeout = function (t)
	{
		this.timeout = t * 1000;
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.LastData = function (ret)
	{
		ret.set_string(this.lastData);
	};
	Exps.prototype.Progress = function (ret)
	{
		ret.set_float(this.progress);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Arr = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Arr.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
	};
	var instanceProto = pluginProto.Instance.prototype;
	var arrCache = [];
	function allocArray()
	{
		if (arrCache.length)
			return arrCache.pop();
		else
			return [];
	};
	if (!Array.isArray)
	{
		Array.isArray = function (vArg) {
			return Object.prototype.toString.call(vArg) === "[object Array]";
		};
	}
	function freeArray(a)
	{
		var i, len;
		for (i = 0, len = a.length; i < len; i++)
		{
			if (Array.isArray(a[i]))
				freeArray(a[i]);
		}
		a.length = 0;
		arrCache.push(a);
	};
	instanceProto.onCreate = function()
	{
		this.cx = this.properties[0];
		this.cy = this.properties[1];
		this.cz = this.properties[2];
		if (!this.recycled)
			this.arr = allocArray();
		var a = this.arr;
		a.length = this.cx;
		var x, y, z;
		for (x = 0; x < this.cx; x++)
		{
			if (!a[x])
				a[x] = allocArray();
			a[x].length = this.cy;
			for (y = 0; y < this.cy; y++)
			{
				if (!a[x][y])
					a[x][y] = allocArray();
				a[x][y].length = this.cz;
				for (z = 0; z < this.cz; z++)
					a[x][y][z] = 0;
			}
		}
		this.forX = 0;
		this.forY = 0;
		this.forZ = 0;
	};
	instanceProto.onDestroy = function ()
	{
		var x;
		for (x = 0; x < this.cx; x++)
			freeArray(this.arr[x]);		// will recurse down and recycle other arrays
		this.arr.length = 0;
	};
	instanceProto.at = function (x, y, z)
	{
		x = Math.floor(x);
		y = Math.floor(y);
		z = Math.floor(z);
		if (isNaN(x) || x < 0 || x > this.cx - 1)
			return 0;
		if (isNaN(y) || y < 0 || y > this.cy - 1)
			return 0;
		if (isNaN(z) || z < 0 || z > this.cz - 1)
			return 0;
		return this.arr[x][y][z];
	};
	instanceProto.set = function (x, y, z, val)
	{
		x = Math.floor(x);
		y = Math.floor(y);
		z = Math.floor(z);
		if (isNaN(x) || x < 0 || x > this.cx - 1)
			return;
		if (isNaN(y) || y < 0 || y > this.cy - 1)
			return;
		if (isNaN(z) || z < 0 || z > this.cz - 1)
			return;
		this.arr[x][y][z] = val;
	};
	instanceProto.getAsJSON = function ()
	{
		return JSON.stringify({
			"c2array": true,
			"size": [this.cx, this.cy, this.cz],
			"data": this.arr
		});
	};
	instanceProto.saveToJSON = function ()
	{
		return {
			"size": [this.cx, this.cy, this.cz],
			"data": this.arr
		};
	};
	instanceProto.loadFromJSON = function (o)
	{
		var sz = o["size"];
		this.cx = sz[0];
		this.cy = sz[1];
		this.cz = sz[2];
		this.arr = o["data"];
	};
	instanceProto.setSize = function (w, h, d)
	{
		if (w < 0) w = 0;
		if (h < 0) h = 0;
		if (d < 0) d = 0;
		if (this.cx === w && this.cy === h && this.cz === d)
			return;		// no change
		this.cx = w;
		this.cy = h;
		this.cz = d;
		var x, y, z;
		var a = this.arr;
		a.length = w;
		for (x = 0; x < this.cx; x++)
		{
			if (cr.is_undefined(a[x]))
				a[x] = allocArray();
			a[x].length = h;
			for (y = 0; y < this.cy; y++)
			{
				if (cr.is_undefined(a[x][y]))
					a[x][y] = allocArray();
				a[x][y].length = d;
				for (z = 0; z < this.cz; z++)
				{
					if (cr.is_undefined(a[x][y][z]))
						a[x][y][z] = 0;
				}
			}
		}
	};
	function Cnds() {};
	Cnds.prototype.CompareX = function (x, cmp, val)
	{
		return cr.do_cmp(this.at(x, 0, 0), cmp, val);
	};
	Cnds.prototype.CompareXY = function (x, y, cmp, val)
	{
		return cr.do_cmp(this.at(x, y, 0), cmp, val);
	};
	Cnds.prototype.CompareXYZ = function (x, y, z, cmp, val)
	{
		return cr.do_cmp(this.at(x, y, z), cmp, val);
	};
	instanceProto.doForEachTrigger = function (current_event)
	{
		this.runtime.pushCopySol(current_event.solModifiers);
		current_event.retrigger();
		this.runtime.popSol(current_event.solModifiers);
	};
	Cnds.prototype.ArrForEach = function (dims)
	{
        var current_event = this.runtime.getCurrentEventStack().current_event;
		this.forX = 0;
		this.forY = 0;
		this.forZ = 0;
		switch (dims) {
		case 0:
			for (this.forX = 0; this.forX < this.cx; this.forX++)
			{
				for (this.forY = 0; this.forY < this.cy; this.forY++)
				{
					for (this.forZ = 0; this.forZ < this.cz; this.forZ++)
					{
						this.doForEachTrigger(current_event);
					}
				}
			}
			break;
		case 1:
			for (this.forX = 0; this.forX < this.cx; this.forX++)
			{
				for (this.forY = 0; this.forY < this.cy; this.forY++)
				{
					this.doForEachTrigger(current_event);
				}
			}
			break;
		case 2:
			for (this.forX = 0; this.forX < this.cx; this.forX++)
			{
				this.doForEachTrigger(current_event);
			}
			break;
		}
		this.forX = 0;
		this.forY = 0;
		this.forZ = 0;
		return false;
	};
	Cnds.prototype.CompareCurrent = function (cmp, val)
	{
		return cr.do_cmp(this.at(this.forX, this.forY, this.forZ), cmp, val);
	};
	Cnds.prototype.Contains = function(val)
	{
		var x, y, z;
		for (x = 0; x < this.cx; x++)
		{
			for (y = 0; y < this.cy; y++)
			{
				for (z = 0; z < this.cz; z++)
				{
					if (this.arr[x][y][z] === val)
						return true;
				}
			}
		}
		return false;
	};
	Cnds.prototype.IsEmpty = function ()
	{
		return this.cx === 0 || this.cy === 0 || this.cz === 0;
	};
	Cnds.prototype.CompareSize = function (axis, cmp, value)
	{
		var s = 0;
		switch (axis) {
		case 0:
			s = this.cx;
			break;
		case 1:
			s = this.cy;
			break;
		case 2:
			s = this.cz;
			break;
		}
		return cr.do_cmp(s, cmp, value);
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.Clear = function ()
	{
		var x, y, z;
		for (x = 0; x < this.cx; x++)
			for (y = 0; y < this.cy; y++)
				for (z = 0; z < this.cz; z++)
					this.arr[x][y][z] = 0;
	};
	Acts.prototype.SetSize = function (w, h, d)
	{
		this.setSize(w, h, d);
	};
	Acts.prototype.SetX = function (x, val)
	{
		this.set(x, 0, 0, val);
	};
	Acts.prototype.SetXY = function (x, y, val)
	{
		this.set(x, y, 0, val);
	};
	Acts.prototype.SetXYZ = function (x, y, z, val)
	{
		this.set(x, y, z, val);
	};
	Acts.prototype.Push = function (where, value, axis)
	{
		var x = 0, y = 0, z = 0;
		var a = this.arr;
		switch (axis) {
		case 0:	// X axis
			if (where === 0)	// back
			{
				x = a.length;
				a.push(allocArray());
			}
			else				// front
			{
				x = 0;
				a.unshift(allocArray());
			}
			a[x].length = this.cy;
			for ( ; y < this.cy; y++)
			{
				a[x][y] = allocArray();
				a[x][y].length = this.cz;
				for (z = 0; z < this.cz; z++)
					a[x][y][z] = value;
			}
			this.cx++;
			break;
		case 1: // Y axis
			for ( ; x < this.cx; x++)
			{
				if (where === 0)	// back
				{
					y = a[x].length;
					a[x].push(allocArray());
				}
				else				// front
				{
					y = 0;
					a[x].unshift(allocArray());
				}
				a[x][y].length = this.cz;
				for (z = 0; z < this.cz; z++)
					a[x][y][z] = value;
			}
			this.cy++;
			break;
		case 2:	// Z axis
			for ( ; x < this.cx; x++)
			{
				for (y = 0; y < this.cy; y++)
				{
					if (where === 0)	// back
					{
						a[x][y].push(value);
					}
					else				// front
					{
						a[x][y].unshift(value);
					}
				}
			}
			this.cz++;
			break;
		}
	};
	Acts.prototype.Pop = function (where, axis)
	{
		var x = 0, y = 0, z = 0;
		var a = this.arr;
		switch (axis) {
		case 0:	// X axis
			if (this.cx === 0)
				break;
			if (where === 0)	// back
			{
				freeArray(a.pop());
			}
			else				// front
			{
				freeArray(a.shift());
			}
			this.cx--;
			break;
		case 1: // Y axis
			if (this.cy === 0)
				break;
			for ( ; x < this.cx; x++)
			{
				if (where === 0)	// back
				{
					freeArray(a[x].pop());
				}
				else				// front
				{
					freeArray(a[x].shift());
				}
			}
			this.cy--;
			break;
		case 2:	// Z axis
			if (this.cz === 0)
				break;
			for ( ; x < this.cx; x++)
			{
				for (y = 0; y < this.cy; y++)
				{
					if (where === 0)	// back
					{
						a[x][y].pop();
					}
					else				// front
					{
						a[x][y].shift();
					}
				}
			}
			this.cz--;
			break;
		}
	};
	Acts.prototype.Reverse = function (axis)
	{
		var x = 0, y = 0, z = 0;
		var a = this.arr;
		if (this.cx === 0 || this.cy === 0 || this.cz === 0)
			return;		// no point reversing empty array
		switch (axis) {
		case 0:	// X axis
			a.reverse();
			break;
		case 1: // Y axis
			for ( ; x < this.cx; x++)
				a[x].reverse();
			break;
		case 2:	// Z axis
			for ( ; x < this.cx; x++)
				for (y = 0; y < this.cy; y++)
					a[x][y].reverse();
			this.cz--;
			break;
		}
	};
	function compareValues(va, vb)
	{
		if (cr.is_number(va) && cr.is_number(vb))
			return va - vb;
		else
		{
			var sa = "" + va;
			var sb = "" + vb;
			if (sa < sb)
				return -1;
			else if (sa > sb)
				return 1;
			else
				return 0;
		}
	}
	Acts.prototype.Sort = function (axis)
	{
		var x = 0, y = 0, z = 0;
		var a = this.arr;
		if (this.cx === 0 || this.cy === 0 || this.cz === 0)
			return;		// no point sorting empty array
		switch (axis) {
		case 0:	// X axis
			a.sort(function (a, b) {
				return compareValues(a[0][0], b[0][0]);
			});
			break;
		case 1: // Y axis
			for ( ; x < this.cx; x++)
			{
				a[x].sort(function (a, b) {
					return compareValues(a[0], b[0]);
				});
			}
			break;
		case 2:	// Z axis
			for ( ; x < this.cx; x++)
			{
				for (y = 0; y < this.cy; y++)
				{
					a[x][y].sort(compareValues);
				}
			}
			break;
		}
	};
	Acts.prototype.Delete = function (index, axis)
	{
		var x = 0, y = 0, z = 0;
		index = Math.floor(index);
		var a = this.arr;
		if (index < 0)
			return;
		switch (axis) {
		case 0:	// X axis
			if (index >= this.cx)
				break;
			freeArray(a[index]);
			a.splice(index, 1);
			this.cx--;
			break;
		case 1: // Y axis
			if (index >= this.cy)
				break;
			for ( ; x < this.cx; x++)
			{
				freeArray(a[x][index]);
				a[x].splice(index, 1);
			}
			this.cy--;
			break;
		case 2:	// Z axis
			if (index >= this.cz)
				break;
			for ( ; x < this.cx; x++)
			{
				for (y = 0; y < this.cy; y++)
				{
					a[x][y].splice(index, 1);
				}
			}
			this.cz--;
			break;
		}
	};
	Acts.prototype.Insert = function (value, index, axis)
	{
		var x = 0, y = 0, z = 0;
		index = Math.floor(index);
		var a = this.arr;
		if (index < 0)
			return;
		switch (axis) {
		case 0:	// X axis
			if (index > this.cx)
				return;
			x = index;
			a.splice(x, 0, allocArray());
			a[x].length = this.cy;
			for ( ; y < this.cy; y++)
			{
				a[x][y] = allocArray();
				a[x][y].length = this.cz;
				for (z = 0; z < this.cz; z++)
					a[x][y][z] = value;
			}
			this.cx++;
			break;
		case 1: // Y axis
			if (index > this.cy)
				return;
			for ( ; x < this.cx; x++)
			{
				y = index;
				a[x].splice(y, 0, allocArray());
				a[x][y].length = this.cz;
				for (z = 0; z < this.cz; z++)
					a[x][y][z] = value;
			}
			this.cy++;
			break;
		case 2:	// Z axis
			if (index > this.cz)
				return;
			for ( ; x < this.cx; x++)
			{
				for (y = 0; y < this.cy; y++)
				{
					a[x][y].splice(index, 0, value);
				}
			}
			this.cz++;
			break;
		}
	};
	Acts.prototype.JSONLoad = function (json_)
	{
		var o;
		try {
			o = JSON.parse(json_);
		}
		catch(e) { return; }
		if (!o["c2array"])		// presumably not a c2array object
			return;
		var sz = o["size"];
		this.cx = sz[0];
		this.cy = sz[1];
		this.cz = sz[2];
		this.arr = o["data"];
	};
	Acts.prototype.JSONDownload = function (filename)
	{
		var a = document.createElement("a");
		if (typeof a.download === "undefined")
		{
			var str = 'data:text/html,' + encodeURIComponent("<p><a download='" + filename + "' href=\"data:application/json,"
				+ encodeURIComponent(this.getAsJSON())
				+ "\">Download link</a></p>");
			window.open(str);
		}
		else
		{
			var body = document.getElementsByTagName("body")[0];
			a.textContent = filename;
			a.href = "data:application/json," + encodeURIComponent(this.getAsJSON());
			a.download = filename;
			body.appendChild(a);
			var clickEvent = document.createEvent("MouseEvent");
			clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
			a.dispatchEvent(clickEvent);
			body.removeChild(a);
		}
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.At = function (ret, x, y_, z_)
	{
		var y = y_ || 0;
		var z = z_ || 0;
		ret.set_any(this.at(x, y, z));
	};
	Exps.prototype.Width = function (ret)
	{
		ret.set_int(this.cx);
	};
	Exps.prototype.Height = function (ret)
	{
		ret.set_int(this.cy);
	};
	Exps.prototype.Depth = function (ret)
	{
		ret.set_int(this.cz);
	};
	Exps.prototype.CurX = function (ret)
	{
		ret.set_int(this.forX);
	};
	Exps.prototype.CurY = function (ret)
	{
		ret.set_int(this.forY);
	};
	Exps.prototype.CurZ = function (ret)
	{
		ret.set_int(this.forZ);
	};
	Exps.prototype.CurValue = function (ret)
	{
		ret.set_any(this.at(this.forX, this.forY, this.forZ));
	};
	Exps.prototype.Front = function (ret)
	{
		ret.set_any(this.at(0, 0, 0));
	};
	Exps.prototype.Back = function (ret)
	{
		ret.set_any(this.at(this.cx - 1, 0, 0));
	};
	Exps.prototype.IndexOf = function (ret, v)
	{
		for (var i = 0; i < this.cx; i++)
		{
			if (this.arr[i][0][0] === v)
			{
				ret.set_int(i);
				return;
			}
		}
		ret.set_int(-1);
	};
	Exps.prototype.LastIndexOf = function (ret, v)
	{
		for (var i = this.cx - 1; i >= 0; i--)
		{
			if (this.arr[i][0][0] === v)
			{
				ret.set_int(i);
				return;
			}
		}
		ret.set_int(-1);
	};
	Exps.prototype.AsJSON = function (ret)
	{
		ret.set_string(this.getAsJSON());
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Audio = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Audio.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	var audRuntime = null;
	var audInst = null;
	var audTag = "";
	var appPath = "";			// for PhoneGap only
	var API_HTML5 = 0;
	var API_WEBAUDIO = 1;
	var API_PHONEGAP = 2;
	var API_APPMOBI = 3;
	var api = API_HTML5;
	var context = null;
	var audioBuffers = [];		// cache of buffers
	var audioInstances = [];	// cache of instances
	var lastAudio = null;
	var useOgg = false;			// determined at create time
	var timescale_mode = 0;
	var silent = false;
	var masterVolume = 1;
	var listenerX = 0;
	var listenerY = 0;
	var panningModel = 1;		// HRTF
	var distanceModel = 1;		// Inverse
	var refDistance = 10;
	var maxDistance = 10000;
	var rolloffFactor = 1;
	var micSource = null;
	var micTag = "";
	var isMusicWorkaround = false;
	var musicPlayNextTouch = [];
	function dbToLinear(x)
	{
		var v = dbToLinear_nocap(x);
		if (v < 0)
			v = 0;
		if (v > 1)
			v = 1;
		return v;
	};
	function linearToDb(x)
	{
		if (x < 0)
			x = 0;
		if (x > 1)
			x = 1;
		return linearToDb_nocap(x);
	};
	function dbToLinear_nocap(x)
	{
		return Math.pow(10, x / 20);
	};
	function linearToDb_nocap(x)
	{
		return (Math.log(x) / Math.log(10)) * 20;
	};
	var effects = {};
	function getDestinationForTag(tag)
	{
		tag = tag.toLowerCase();
		if (effects.hasOwnProperty(tag))
		{
			if (effects[tag].length)
				return effects[tag][0].getInputNode();
		}
		return context["destination"];
	};
	function createGain()
	{
		if (context["createGain"])
			return context["createGain"]();
		else
			return context["createGainNode"]();
	};
	function createDelay(d)
	{
		if (context["createDelay"])
			return context["createDelay"](d);
		else
			return context["createDelayNode"](d);
	};
	function startSource(s)
	{
		if (s["start"])
			s["start"](0);
		else
			s["noteOn"](0);
	};
	function startSourceAt(s, x, d)
	{
		if (s["start"])
			s["start"](0, x);
		else
			s["noteGrainOn"](0, x, d - x);
	};
	function stopSource(s)
	{
		try {
			if (s["stop"])
				s["stop"](0);
			else
				s["noteOff"](0);
		}
		catch (e) {}
	};
	function setAudioParam(ap, value, ramp, time)
	{
		if (!ap)
			return;		// iOS is missing some parameters
		ap["cancelScheduledValues"](0);
		if (time === 0)
		{
			ap["value"] = value;
			return;
		}
		var curTime = context["currentTime"];
		time += curTime;
		switch (ramp) {
		case 0:		// step
			ap["setValueAtTime"](value, time);
			break;
		case 1:		// linear
			ap["setValueAtTime"](ap["value"], curTime);		// to set what to ramp from
			ap["linearRampToValueAtTime"](value, time);
			break;
		case 2:		// exponential
			ap["setValueAtTime"](ap["value"], curTime);		// to set what to ramp from
			ap["exponentialRampToValueAtTime"](value, time);
			break;
		}
	};
	var filterTypes = ["lowpass", "highpass", "bandpass", "lowshelf", "highshelf", "peaking", "notch", "allpass"];
	function FilterEffect(type, freq, detune, q, gain, mix)
	{
		this.type = "filter";
		this.params = [type, freq, detune, q, gain, mix];
		this.inputNode = createGain();
		this.wetNode = createGain();
		this.wetNode["gain"]["value"] = mix;
		this.dryNode = createGain();
		this.dryNode["gain"]["value"] = 1 - mix;
		this.filterNode = context["createBiquadFilter"]();
		if (typeof this.filterNode["type"] === "number")
			this.filterNode["type"] = type;
		else
			this.filterNode["type"] = filterTypes[type];
		this.filterNode["frequency"]["value"] = freq;
		if (this.filterNode["detune"])		// iOS 6 doesn't have detune yet
			this.filterNode["detune"]["value"] = detune;
		this.filterNode["Q"]["value"] = q;
		this.filterNode["gain"]["value"] = gain;
		this.inputNode["connect"](this.filterNode);
		this.inputNode["connect"](this.dryNode);
		this.filterNode["connect"](this.wetNode);
	};
	FilterEffect.prototype.connectTo = function (node)
	{
		this.wetNode["disconnect"]();
		this.wetNode["connect"](node);
		this.dryNode["disconnect"]();
		this.dryNode["connect"](node);
	};
	FilterEffect.prototype.remove = function ()
	{
		this.inputNode["disconnect"]();
		this.filterNode["disconnect"]();
		this.wetNode["disconnect"]();
		this.dryNode["disconnect"]();
	};
	FilterEffect.prototype.getInputNode = function ()
	{
		return this.inputNode;
	};
	FilterEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 0:		// mix
			value = value / 100;
			if (value < 0) value = 0;
			if (value > 1) value = 1;
			this.params[5] = value;
			setAudioParam(this.wetNode["gain"], value, ramp, time);
			setAudioParam(this.dryNode["gain"], 1 - value, ramp, time);
			break;
		case 1:		// filter frequency
			this.params[1] = value;
			setAudioParam(this.filterNode["frequency"], value, ramp, time);
			break;
		case 2:		// filter detune
			this.params[2] = value;
			setAudioParam(this.filterNode["detune"], value, ramp, time);
			break;
		case 3:		// filter Q
			this.params[3] = value;
			setAudioParam(this.filterNode["Q"], value, ramp, time);
			break;
		case 4:		// filter/delay gain (note value is in dB here)
			this.params[4] = value;
			setAudioParam(this.filterNode["gain"], value, ramp, time);
			break;
		}
	};
	function DelayEffect(delayTime, delayGain, mix)
	{
		this.type = "delay";
		this.params = [delayTime, delayGain, mix];
		this.inputNode = createGain();
		this.wetNode = createGain();
		this.wetNode["gain"]["value"] = mix;
		this.dryNode = createGain();
		this.dryNode["gain"]["value"] = 1 - mix;
		this.mainNode = createGain();
		this.delayNode = createDelay(delayTime);
		this.delayNode["delayTime"]["value"] = delayTime;
		this.delayGainNode = createGain();
		this.delayGainNode["gain"]["value"] = delayGain;
		this.inputNode["connect"](this.mainNode);
		this.inputNode["connect"](this.dryNode);
		this.mainNode["connect"](this.wetNode);
		this.mainNode["connect"](this.delayNode);
		this.delayNode["connect"](this.delayGainNode);
		this.delayGainNode["connect"](this.mainNode);
	};
	DelayEffect.prototype.connectTo = function (node)
	{
		this.wetNode["disconnect"]();
		this.wetNode["connect"](node);
		this.dryNode["disconnect"]();
		this.dryNode["connect"](node);
	};
	DelayEffect.prototype.remove = function ()
	{
		this.inputNode["disconnect"]();
		this.mainNode["disconnect"]();
		this.delayNode["disconnect"]();
		this.delayGainNode["disconnect"]();
		this.wetNode["disconnect"]();
		this.dryNode["disconnect"]();
	};
	DelayEffect.prototype.getInputNode = function ()
	{
		return this.inputNode;
	};
	DelayEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 0:		// mix
			value = value / 100;
			if (value < 0) value = 0;
			if (value > 1) value = 1;
			this.params[2] = value;
			setAudioParam(this.wetNode["gain"], value, ramp, time);
			setAudioParam(this.dryNode["gain"], 1 - value, ramp, time);
			break;
		case 4:		// filter/delay gain (note value is passed in dB but needs to be linear here)
			this.params[1] = dbToLinear(value);
			setAudioParam(this.delayGainNode["gain"], dbToLinear(value), ramp, time);
			break;
		case 5:		// delay time
			this.params[0] = value;
			setAudioParam(this.delayNode["delayTime"], value, ramp, time);
			break;
		}
	};
	function ConvolveEffect(buffer, normalize, mix, src)
	{
		this.type = "convolve";
		this.params = [normalize, mix, src];
		this.inputNode = createGain();
		this.wetNode = createGain();
		this.wetNode["gain"]["value"] = mix;
		this.dryNode = createGain();
		this.dryNode["gain"]["value"] = 1 - mix;
		this.convolveNode = context["createConvolver"]();
		if (buffer)
		{
			this.convolveNode["normalize"] = normalize;
			this.convolveNode["buffer"] = buffer;
		}
		this.inputNode["connect"](this.convolveNode);
		this.inputNode["connect"](this.dryNode);
		this.convolveNode["connect"](this.wetNode);
	};
	ConvolveEffect.prototype.connectTo = function (node)
	{
		this.wetNode["disconnect"]();
		this.wetNode["connect"](node);
		this.dryNode["disconnect"]();
		this.dryNode["connect"](node);
	};
	ConvolveEffect.prototype.remove = function ()
	{
		this.inputNode["disconnect"]();
		this.convolveNode["disconnect"]();
		this.wetNode["disconnect"]();
		this.dryNode["disconnect"]();
	};
	ConvolveEffect.prototype.getInputNode = function ()
	{
		return this.inputNode;
	};
	ConvolveEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 0:		// mix
			value = value / 100;
			if (value < 0) value = 0;
			if (value > 1) value = 1;
			this.params[1] = value;
			setAudioParam(this.wetNode["gain"], value, ramp, time);
			setAudioParam(this.dryNode["gain"], 1 - value, ramp, time);
			break;
		}
	};
	function FlangerEffect(delay, modulation, freq, feedback, mix)
	{
		this.type = "flanger";
		this.params = [delay, modulation, freq, feedback, mix];
		this.inputNode = createGain();
		this.dryNode = createGain();
		this.dryNode["gain"]["value"] = 1 - (mix / 2);
		this.wetNode = createGain();
		this.wetNode["gain"]["value"] = mix / 2;
		this.feedbackNode = createGain();
		this.feedbackNode["gain"]["value"] = feedback;
		this.delayNode = createDelay(delay + modulation);
		this.delayNode["delayTime"]["value"] = delay;
		this.oscNode = context["createOscillator"]();
		this.oscNode["frequency"]["value"] = freq;
		this.oscGainNode = createGain();
		this.oscGainNode["gain"]["value"] = modulation;
		this.inputNode["connect"](this.delayNode);
		this.inputNode["connect"](this.dryNode);
		this.delayNode["connect"](this.wetNode);
		this.delayNode["connect"](this.feedbackNode);
		this.feedbackNode["connect"](this.delayNode);
		this.oscNode["connect"](this.oscGainNode);
		this.oscGainNode["connect"](this.delayNode["delayTime"]);
		startSource(this.oscNode);
	};
	FlangerEffect.prototype.connectTo = function (node)
	{
		this.dryNode["disconnect"]();
		this.dryNode["connect"](node);
		this.wetNode["disconnect"]();
		this.wetNode["connect"](node);
	};
	FlangerEffect.prototype.remove = function ()
	{
		this.inputNode["disconnect"]();
		this.delayNode["disconnect"]();
		this.oscNode["disconnect"]();
		this.oscGainNode["disconnect"]();
		this.dryNode["disconnect"]();
		this.wetNode["disconnect"]();
		this.feedbackNode["disconnect"]();
	};
	FlangerEffect.prototype.getInputNode = function ()
	{
		return this.inputNode;
	};
	FlangerEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 0:		// mix
			value = value / 100;
			if (value < 0) value = 0;
			if (value > 1) value = 1;
			this.params[4] = value;
			setAudioParam(this.wetNode["gain"], value / 2, ramp, time);
			setAudioParam(this.dryNode["gain"], 1 - (value / 2), ramp, time);
			break;
		case 6:		// modulation
			this.params[1] = value / 1000;
			setAudioParam(this.oscGainNode["gain"], value / 1000, ramp, time);
			break;
		case 7:		// modulation frequency
			this.params[2] = value;
			setAudioParam(this.oscNode["frequency"], value, ramp, time);
			break;
		case 8:		// feedback
			this.params[3] = value / 100;
			setAudioParam(this.feedbackNode["gain"], value / 100, ramp, time);
			break;
		}
	};
	function PhaserEffect(freq, detune, q, modulation, modfreq, mix)
	{
		this.type = "phaser";
		this.params = [freq, detune, q, modulation, modfreq, mix];
		this.inputNode = createGain();
		this.dryNode = createGain();
		this.dryNode["gain"]["value"] = 1 - (mix / 2);
		this.wetNode = createGain();
		this.wetNode["gain"]["value"] = mix / 2;
		this.filterNode = context["createBiquadFilter"]();
		if (typeof this.filterNode["type"] === "number")
			this.filterNode["type"] = 7;	// all-pass
		else
			this.filterNode["type"] = "allpass";
		this.filterNode["frequency"]["value"] = freq;
		if (this.filterNode["detune"])		// iOS 6 doesn't have detune yet
			this.filterNode["detune"]["value"] = detune;
		this.filterNode["Q"]["value"] = q;
		this.oscNode = context["createOscillator"]();
		this.oscNode["frequency"]["value"] = modfreq;
		this.oscGainNode = createGain();
		this.oscGainNode["gain"]["value"] = modulation;
		this.inputNode["connect"](this.filterNode);
		this.inputNode["connect"](this.dryNode);
		this.filterNode["connect"](this.wetNode);
		this.oscNode["connect"](this.oscGainNode);
		this.oscGainNode["connect"](this.filterNode["frequency"]);
		startSource(this.oscNode);
	};
	PhaserEffect.prototype.connectTo = function (node)
	{
		this.dryNode["disconnect"]();
		this.dryNode["connect"](node);
		this.wetNode["disconnect"]();
		this.wetNode["connect"](node);
	};
	PhaserEffect.prototype.remove = function ()
	{
		this.inputNode["disconnect"]();
		this.filterNode["disconnect"]();
		this.oscNode["disconnect"]();
		this.oscGainNode["disconnect"]();
		this.dryNode["disconnect"]();
		this.wetNode["disconnect"]();
	};
	PhaserEffect.prototype.getInputNode = function ()
	{
		return this.inputNode;
	};
	PhaserEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 0:		// mix
			value = value / 100;
			if (value < 0) value = 0;
			if (value > 1) value = 1;
			this.params[5] = value;
			setAudioParam(this.wetNode["gain"], value / 2, ramp, time);
			setAudioParam(this.dryNode["gain"], 1 - (value / 2), ramp, time);
			break;
		case 1:		// filter frequency
			this.params[0] = value;
			setAudioParam(this.filterNode["frequency"], value, ramp, time);
			break;
		case 2:		// filter detune
			this.params[1] = value;
			setAudioParam(this.filterNode["detune"], value, ramp, time);
			break;
		case 3:		// filter Q
			this.params[2] = value;
			setAudioParam(this.filterNode["Q"], value, ramp, time);
			break;
		case 6:		// modulation
			this.params[3] = value;
			setAudioParam(this.oscGainNode["gain"], value, ramp, time);
			break;
		case 7:		// modulation frequency
			this.params[4] = value;
			setAudioParam(this.oscNode["frequency"], value, ramp, time);
			break;
		}
	};
	function GainEffect(g)
	{
		this.type = "gain";
		this.params = [g];
		this.node = createGain();
		this.node["gain"]["value"] = g;
	};
	GainEffect.prototype.connectTo = function (node_)
	{
		this.node["disconnect"]();
		this.node["connect"](node_);
	};
	GainEffect.prototype.remove = function ()
	{
		this.node["disconnect"]();
	};
	GainEffect.prototype.getInputNode = function ()
	{
		return this.node;
	};
	GainEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 4:		// gain
			this.params[0] = dbToLinear(value);
			setAudioParam(this.node["gain"], dbToLinear(value), ramp, time);
			break;
		}
	};
	function TremoloEffect(freq, mix)
	{
		this.type = "tremolo";
		this.params = [freq, mix];
		this.node = createGain();
		this.node["gain"]["value"] = 1 - (mix / 2);
		this.oscNode = context["createOscillator"]();
		this.oscNode["frequency"]["value"] = freq;
		this.oscGainNode = createGain();
		this.oscGainNode["gain"]["value"] = mix / 2;
		this.oscNode["connect"](this.oscGainNode);
		this.oscGainNode["connect"](this.node["gain"]);
		startSource(this.oscNode);
	};
	TremoloEffect.prototype.connectTo = function (node_)
	{
		this.node["disconnect"]();
		this.node["connect"](node_);
	};
	TremoloEffect.prototype.remove = function ()
	{
		this.oscNode["disconnect"]();
		this.oscGainNode["disconnect"]();
		this.node["disconnect"]();
	};
	TremoloEffect.prototype.getInputNode = function ()
	{
		return this.node;
	};
	TremoloEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 0:		// mix
			value = value / 100;
			if (value < 0) value = 0;
			if (value > 1) value = 1;
			this.params[1] = value;
			setAudioParam(this.node["gain"]["value"], 1 - (value / 2), ramp, time);
			setAudioParam(this.oscGainNode["gain"]["value"], value / 2, ramp, time);
			break;
		case 7:		// modulation frequency
			this.params[0] = value;
			setAudioParam(this.oscNode["frequency"], value, ramp, time);
			break;
		}
	};
	function RingModulatorEffect(freq, mix)
	{
		this.type = "ringmod";
		this.params = [freq, mix];
		this.inputNode = createGain();
		this.wetNode = createGain();
		this.wetNode["gain"]["value"] = mix;
		this.dryNode = createGain();
		this.dryNode["gain"]["value"] = 1 - mix;
		this.ringNode = createGain();
		this.ringNode["gain"]["value"] = 0;
		this.oscNode = context["createOscillator"]();
		this.oscNode["frequency"]["value"] = freq;
		this.oscNode["connect"](this.ringNode["gain"]);
		startSource(this.oscNode);
		this.inputNode["connect"](this.ringNode);
		this.inputNode["connect"](this.dryNode);
		this.ringNode["connect"](this.wetNode);
	};
	RingModulatorEffect.prototype.connectTo = function (node_)
	{
		this.wetNode["disconnect"]();
		this.wetNode["connect"](node_);
		this.dryNode["disconnect"]();
		this.dryNode["connect"](node_);
	};
	RingModulatorEffect.prototype.remove = function ()
	{
		this.oscNode["disconnect"]();
		this.ringNode["disconnect"]();
		this.inputNode["disconnect"]();
		this.wetNode["disconnect"]();
		this.dryNode["disconnect"]();
	};
	RingModulatorEffect.prototype.getInputNode = function ()
	{
		return this.inputNode;
	};
	RingModulatorEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 0:		// mix
			value = value / 100;
			if (value < 0) value = 0;
			if (value > 1) value = 1;
			this.params[1] = value;
			setAudioParam(this.wetNode["gain"], value, ramp, time);
			setAudioParam(this.dryNode["gain"], 1 - value, ramp, time);
			break;
		case 7:		// modulation frequency
			this.params[0] = value;
			setAudioParam(this.oscNode["frequency"], value, ramp, time);
			break;
		}
	};
	function DistortionEffect(threshold, headroom, drive, makeupgain, mix)
	{
		this.type = "distortion";
		this.params = [threshold, headroom, drive, makeupgain, mix];
		this.inputNode = createGain();
		this.preGain = createGain();
		this.postGain = createGain();
		this.setDrive(drive, dbToLinear_nocap(makeupgain));
		this.wetNode = createGain();
		this.wetNode["gain"]["value"] = mix;
		this.dryNode = createGain();
		this.dryNode["gain"]["value"] = 1 - mix;
		this.waveShaper = context["createWaveShaper"]();
		this.curve = new Float32Array(65536);
		this.generateColortouchCurve(threshold, headroom);
		this.waveShaper.curve = this.curve;
		this.inputNode["connect"](this.preGain);
		this.inputNode["connect"](this.dryNode);
		this.preGain["connect"](this.waveShaper);
		this.waveShaper["connect"](this.postGain);
		this.postGain["connect"](this.wetNode);
	};
	DistortionEffect.prototype.setDrive = function (drive, makeupgain)
	{
		if (drive < 0.01)
			drive = 0.01;
		this.preGain["gain"]["value"] = drive;
		this.postGain["gain"]["value"] = Math.pow(1 / drive, 0.6) * makeupgain;
	};
	function e4(x, k)
	{
		return 1.0 - Math.exp(-k * x);
	}
	DistortionEffect.prototype.shape = function (x, linearThreshold, linearHeadroom)
	{
		var maximum = 1.05 * linearHeadroom * linearThreshold;
		var kk = (maximum - linearThreshold);
		var sign = x < 0 ? -1 : +1;
		var absx = x < 0 ? -x : x;
		var shapedInput = absx < linearThreshold ? absx : linearThreshold + kk * e4(absx - linearThreshold, 1.0 / kk);
		shapedInput *= sign;
		return shapedInput;
	};
	DistortionEffect.prototype.generateColortouchCurve = function (threshold, headroom)
	{
		var linearThreshold = dbToLinear_nocap(threshold);
		var linearHeadroom = dbToLinear_nocap(headroom);
		var n = 65536;
		var n2 = n / 2;
		var x = 0;
		for (var i = 0; i < n2; ++i) {
			x = i / n2;
			x = this.shape(x, linearThreshold, linearHeadroom);
			this.curve[n2 + i] = x;
			this.curve[n2 - i - 1] = -x;
		}
	};
	DistortionEffect.prototype.connectTo = function (node)
	{
		this.wetNode["disconnect"]();
		this.wetNode["connect"](node);
		this.dryNode["disconnect"]();
		this.dryNode["connect"](node);
	};
	DistortionEffect.prototype.remove = function ()
	{
		this.inputNode["disconnect"]();
		this.preGain["disconnect"]();
		this.waveShaper["disconnect"]();
		this.postGain["disconnect"]();
		this.wetNode["disconnect"]();
		this.dryNode["disconnect"]();
	};
	DistortionEffect.prototype.getInputNode = function ()
	{
		return this.inputNode;
	};
	DistortionEffect.prototype.setParam = function(param, value, ramp, time)
	{
		switch (param) {
		case 0:		// mix
			value = value / 100;
			if (value < 0) value = 0;
			if (value > 1) value = 1;
			this.params[4] = value;
			setAudioParam(this.wetNode["gain"], value, ramp, time);
			setAudioParam(this.dryNode["gain"], 1 - value, ramp, time);
			break;
		}
	};
	function CompressorEffect(threshold, knee, ratio, attack, release)
	{
		this.type = "compressor";
		this.params = [threshold, knee, ratio, attack, release];
		this.node = context["createDynamicsCompressor"]();
		try {
			this.node["threshold"]["value"] = threshold;
			this.node["knee"]["value"] = knee;
			this.node["ratio"]["value"] = ratio;
			this.node["attack"]["value"] = attack;
			this.node["release"]["value"] = release;
		}
		catch (e) {}
	};
	CompressorEffect.prototype.connectTo = function (node_)
	{
		this.node["disconnect"]();
		this.node["connect"](node_);
	};
	CompressorEffect.prototype.remove = function ()
	{
		this.node["disconnect"]();
	};
	CompressorEffect.prototype.getInputNode = function ()
	{
		return this.node;
	};
	CompressorEffect.prototype.setParam = function(param, value, ramp, time)
	{
	};
	function AnalyserEffect(fftSize, smoothing)
	{
		this.type = "analyser";
		this.params = [fftSize, smoothing];
		this.node = context["createAnalyser"]();
		this.node["fftSize"] = fftSize;
		this.node["smoothingTimeConstant"] = smoothing;
		this.freqBins = new Float32Array(this.node["frequencyBinCount"]);
		this.signal = new Uint8Array(fftSize);
		this.peak = 0;
		this.rms = 0;
	};
	AnalyserEffect.prototype.tick = function ()
	{
		this.node["getFloatFrequencyData"](this.freqBins);
		this.node["getByteTimeDomainData"](this.signal);
		var fftSize = this.node["fftSize"];
		var i = 0;
		this.peak = 0;
		var rmsSquaredSum = 0;
		var s = 0;
		for ( ; i < fftSize; i++)
		{
			s = (this.signal[i] - 128) / 128;
			if (s < 0)
				s = -s;
			if (this.peak < s)
				this.peak = s;
			rmsSquaredSum += s * s;
		}
		this.peak = linearToDb(this.peak);
		this.rms = linearToDb(Math.sqrt(rmsSquaredSum / fftSize));
	};
	AnalyserEffect.prototype.connectTo = function (node_)
	{
		this.node["disconnect"]();
		this.node["connect"](node_);
	};
	AnalyserEffect.prototype.remove = function ()
	{
		this.node["disconnect"]();
	};
	AnalyserEffect.prototype.getInputNode = function ()
	{
		return this.node;
	};
	AnalyserEffect.prototype.setParam = function(param, value, ramp, time)
	{
	};
	var OT_POS_SAMPLES = 4;
	function ObjectTracker()
	{
		this.obj = null;
		this.loadUid = 0;
		this.speeds = [];
		this.lastX = 0;
		this.lastY = 0;
		this.moveAngle = 0;
	};
	ObjectTracker.prototype.setObject = function (obj_)
	{
		this.obj = obj_;
		if (this.obj)
		{
			this.lastX = this.obj.x;
			this.lastY = this.obj.y;
		}
		this.speeds.length = 0;
	};
	ObjectTracker.prototype.hasObject = function ()
	{
		return !!this.obj;
	};
	ObjectTracker.prototype.tick = function (dt)
	{
		if (!this.obj || dt === 0)
			return;
		this.moveAngle = cr.angleTo(this.lastX, this.lastY, this.obj.x, this.obj.y);
		var s = cr.distanceTo(this.lastX, this.lastY, this.obj.x, this.obj.y) / dt;
		if (this.speeds.length < OT_POS_SAMPLES)
			this.speeds.push(s);
		else
		{
			this.speeds.shift();
			this.speeds.push(s);
		}
		this.lastX = this.obj.x;
		this.lastY = this.obj.y;
	};
	ObjectTracker.prototype.getSpeed = function ()
	{
		if (!this.speeds.length)
			return 0;
		var i, len, sum = 0;
		for (i = 0, len = this.speeds.length; i < len; i++)
		{
			sum += this.speeds[i];
		}
		return sum / this.speeds.length;
	};
	ObjectTracker.prototype.getVelocityX = function ()
	{
		return Math.cos(this.moveAngle) * this.getSpeed();
	};
	ObjectTracker.prototype.getVelocityY = function ()
	{
		return Math.sin(this.moveAngle) * this.getSpeed();
	};
	var iOShadtouch = false;	// has had touch input on iOS to work around web audio API muting
	function C2AudioBuffer(src_, is_music)
	{
		this.src = src_;
		this.myapi = api;
		this.is_music = is_music;
		this.added_end_listener = false;
		var self = this;
		this.outNode = null;
		this.mediaSourceNode = null;
		this.panWhenReady = [];		// for web audio API positioned sounds
		this.seekWhenReady = 0;
		this.pauseWhenReady = false;
		this.supportWebAudioAPI = false;
		if (api === API_WEBAUDIO && is_music)
		{
			this.myapi = API_HTML5;
			this.outNode = createGain();
		}
		this.bufferObject = null;			// actual audio object
		this.audioData = null;				// web audio api: ajax request result (compressed audio that needs decoding)
		var request;
		switch (this.myapi) {
		case API_HTML5:
			this.bufferObject = new Audio();
			if (api === API_WEBAUDIO && context["createMediaElementSource"] && !audRuntime.isFirefox && !/wiiu/i.test(navigator.userAgent))
			{
				this.supportWebAudioAPI = true;		// can be routed through web audio api
				this.bufferObject.addEventListener("canplay", function ()
				{
					if (!self.mediaSourceNode)		// protect against this event firing twice
					{
						self.mediaSourceNode = context["createMediaElementSource"](self.bufferObject);
						self.mediaSourceNode["connect"](self.outNode);
					}
				});
			}
			this.bufferObject.autoplay = false;	// this is only a source buffer, not an instance
			this.bufferObject.preload = "auto";
			this.bufferObject.src = src_;
			break;
		case API_WEBAUDIO:
			request = new XMLHttpRequest();
			request.open("GET", src_, true);
			request.responseType = "arraybuffer";
			request.onload = function () {
				self.audioData = request.response;
				self.decodeAudioBuffer();
			};
			request.send();
			break;
		case API_PHONEGAP:
			this.bufferObject = true;
			break;
		case API_APPMOBI:
			this.bufferObject = true;
			break;
		}
	};
	C2AudioBuffer.prototype.decodeAudioBuffer = function ()
	{
		if (this.bufferObject || !this.audioData)
			return;		// audio already decoded or AJAX request not yet complete
		var self = this;
		if (context["decodeAudioData"])
		{
			context["decodeAudioData"](this.audioData, function (buffer) {
					self.bufferObject = buffer;
					var p, i, len, a;
					if (!cr.is_undefined(self.playTagWhenReady) && !silent)
					{
						if (self.panWhenReady.length)
						{
							for (i = 0, len = self.panWhenReady.length; i < len; i++)
							{
								p = self.panWhenReady[i];
								a = new C2AudioInstance(self, p.thistag);
								a.setPannerEnabled(true);
								if (typeof p.objUid !== "undefined")
								{
									p.obj = audRuntime.getObjectByUID(p.objUid);
									if (!p.obj)
										continue;
								}
								if (p.obj)
								{
									var px = cr.rotatePtAround(p.obj.x, p.obj.y, -p.obj.layer.getAngle(), listenerX, listenerY, true);
									var py = cr.rotatePtAround(p.obj.x, p.obj.y, -p.obj.layer.getAngle(), listenerX, listenerY, false);
									a.setPan(px, py, cr.to_degrees(p.obj.angle - p.obj.layer.getAngle()), p.ia, p.oa, p.og);
									a.setObject(p.obj);
								}
								else
								{
									a.setPan(p.x, p.y, p.a, p.ia, p.oa, p.og);
								}
								a.play(self.loopWhenReady, self.volumeWhenReady, self.seekWhenReady);
								if (self.pauseWhenReady)
									a.pause();
								audioInstances.push(a);
							}
							self.panWhenReady.length = 0;
						}
						else
						{
							a = new C2AudioInstance(self, self.playTagWhenReady);
							a.play(self.loopWhenReady, self.volumeWhenReady, self.seekWhenReady);
							if (self.pauseWhenReady)
								a.pause();
							audioInstances.push(a);
						}
					}
					else if (!cr.is_undefined(self.convolveWhenReady))
					{
						var convolveNode = self.convolveWhenReady.convolveNode;
						convolveNode["normalize"] = self.normalizeWhenReady;
						convolveNode["buffer"] = buffer;
					}
			});
		}
		else
		{
			this.bufferObject = context["createBuffer"](this.audioData, false);
			if (!cr.is_undefined(this.playTagWhenReady) && !silent)
			{
				var a = new C2AudioInstance(this, this.playTagWhenReady);
				a.play(this.loopWhenReady, this.volumeWhenReady, this.seekWhenReady);
				if (this.pauseWhenReady)
					a.pause();
				audioInstances.push(a);
			}
			else if (!cr.is_undefined(this.convolveWhenReady))
			{
				var convolveNode = this.convolveWhenReady.convolveNode;
				convolveNode["normalize"] = this.normalizeWhenReady;
				convolveNode["buffer"] = this.bufferObject;
			}
		}
	};
	C2AudioBuffer.prototype.isLoaded = function ()
	{
		switch (this.myapi) {
		case API_HTML5:
			return this.bufferObject["readyState"] === 4;	// HAVE_ENOUGH_DATA
		case API_WEBAUDIO:
			return !!this.audioData;			// null until AJAX request completes
		case API_PHONEGAP:
			return true;
		case API_APPMOBI:
			return true;
		}
		return false;
	};
	function C2AudioInstance(buffer_, tag_)
	{
		var self = this;
		this.tag = tag_;
		this.fresh = true;
		this.stopped = true;
		this.src = buffer_.src;
		this.buffer = buffer_;
		this.myapi = api;
		this.is_music = buffer_.is_music;
		this.playbackRate = 1;
		this.pgended = true;			// for PhoneGap only: ended flag
		this.resume_me = false;			// make sure resumes when leaving suspend
		this.is_paused = false;
		this.resume_position = 0;		// for web audio api to resume from correct playback position
		this.looping = false;
		this.is_muted = false;
		this.is_silent = false;
		this.volume = 1;
		this.mutevol = 1;
		this.startTime = audRuntime.kahanTime.sum;
		this.gainNode = null;
		this.pannerNode = null;
		this.pannerEnabled = false;
		this.objectTracker = null;
		this.panX = 0;
		this.panY = 0;
		this.panAngle = 0;
		this.panConeInner = 0;
		this.panConeOuter = 0;
		this.panConeOuterGain = 0;
		this.instanceObject = null;
		var add_end_listener = false;
		if (this.myapi === API_WEBAUDIO && this.buffer.myapi === API_HTML5 && !this.buffer.supportWebAudioAPI)
			this.myapi = API_HTML5;
		switch (this.myapi) {
		case API_HTML5:
			if (this.is_music)
			{
				this.instanceObject = buffer_.bufferObject;
				add_end_listener = !buffer_.added_end_listener;
				buffer_.added_end_listener = true;
			}
			else
			{
				this.instanceObject = new Audio();
				this.instanceObject.autoplay = false;
				this.instanceObject.src = buffer_.bufferObject.src;
				add_end_listener = true;
			}
			if (add_end_listener)
			{
				this.instanceObject.addEventListener('ended', function () {
						audTag = self.tag;
						self.stopped = true;
						audRuntime.trigger(cr.plugins_.Audio.prototype.cnds.OnEnded, audInst);
				});
			}
			break;
		case API_WEBAUDIO:
			this.gainNode = createGain();
			this.gainNode["connect"](getDestinationForTag(tag_));
			if (this.buffer.myapi === API_WEBAUDIO)
			{
				if (buffer_.bufferObject)
				{
					this.instanceObject = context["createBufferSource"]();
					this.instanceObject["buffer"] = buffer_.bufferObject;
					this.instanceObject["connect"](this.gainNode);
				}
			}
			else
			{
				this.instanceObject = this.buffer.bufferObject;		// reference the audio element
				this.buffer.outNode["connect"](this.gainNode);
			}
			break;
		case API_PHONEGAP:
			this.instanceObject = new window["Media"](appPath + this.src, null, null, function (status) {
					if (status === window["Media"]["MEDIA_STOPPED"])
					{
						self.pgended = true;
						self.stopped = true;
						audTag = self.tag;
						audRuntime.trigger(cr.plugins_.Audio.prototype.cnds.OnEnded, audInst);
					}
			});
			break;
		case API_APPMOBI:
			this.instanceObject = true;
			break;
		}
	};
	C2AudioInstance.prototype.hasEnded = function ()
	{
		switch (this.myapi) {
		case API_HTML5:
			return this.instanceObject.ended;
		case API_WEBAUDIO:
			if (this.buffer.myapi === API_WEBAUDIO)
			{
				if (!this.fresh && !this.stopped && this.instanceObject["loop"])
					return false;
				if (this.is_paused)
					return false;
				return (audRuntime.kahanTime.sum - this.startTime) > this.buffer.bufferObject["duration"];
			}
			else
				return this.instanceObject.ended;
		case API_PHONEGAP:
			return this.pgended;
		case API_APPMOBI:
			true;	// recycling an AppMobi sound does not matter because it will just do another throwaway playSound
		}
		return true;
	};
	C2AudioInstance.prototype.canBeRecycled = function ()
	{
		if (this.fresh || this.stopped)
			return true;		// not yet used or is not playing
		return this.hasEnded();
	};
	C2AudioInstance.prototype.setPannerEnabled = function (enable_)
	{
		if (api !== API_WEBAUDIO)
			return;
		if (!this.pannerEnabled && enable_)
		{
			if (!this.gainNode)
				return;
			if (!this.pannerNode)
			{
				this.pannerNode = context["createPanner"]();
				if (typeof this.pannerNode["panningModel"] === "number")
					this.pannerNode["panningModel"] = panningModel;
				else
					this.pannerNode["panningModel"] = ["equalpower", "HRTF", "soundfield"][panningModel];
				if (typeof this.pannerNode["distanceModel"] === "number")
					this.pannerNode["distanceModel"] = distanceModel;
				else
					this.pannerNode["distanceModel"] = ["linear", "inverse", "exponential"][distanceModel];
				this.pannerNode["refDistance"] = refDistance;
				this.pannerNode["maxDistance"] = maxDistance;
				this.pannerNode["rolloffFactor"] = rolloffFactor;
			}
			this.gainNode["disconnect"]();
			this.gainNode["connect"](this.pannerNode);
			this.pannerNode["connect"](getDestinationForTag(this.tag));
			this.pannerEnabled = true;
		}
		else if (this.pannerEnabled && !enable_)
		{
			if (!this.gainNode)
				return;
			this.pannerNode["disconnect"]();
			this.gainNode["disconnect"]();
			this.gainNode["connect"](getDestinationForTag(this.tag));
			this.pannerEnabled = false;
		}
	};
	C2AudioInstance.prototype.setPan = function (x, y, angle, innerangle, outerangle, outergain)
	{
		if (!this.pannerEnabled || api !== API_WEBAUDIO)
			return;
		this.pannerNode["setPosition"](x, y, 0);
		this.pannerNode["setOrientation"](Math.cos(cr.to_radians(angle)), Math.sin(cr.to_radians(angle)), 0);
		this.pannerNode["coneInnerAngle"] = innerangle;
		this.pannerNode["coneOuterAngle"] = outerangle;
		this.pannerNode["coneOuterGain"] = outergain;
		this.panX = x;
		this.panY = y;
		this.panAngle = angle;
		this.panConeInner = innerangle;
		this.panConeOuter = outerangle;
		this.panConeOuterGain = outergain;
	};
	C2AudioInstance.prototype.setObject = function (o)
	{
		if (!this.pannerEnabled || api !== API_WEBAUDIO)
			return;
		if (!this.objectTracker)
			this.objectTracker = new ObjectTracker();
		this.objectTracker.setObject(o);
	};
	C2AudioInstance.prototype.tick = function (dt)
	{
		if (!this.pannerEnabled || api !== API_WEBAUDIO || !this.objectTracker || !this.objectTracker.hasObject() || !this.isPlaying())
		{
			return;
		}
		this.objectTracker.tick(dt);
		var inst = this.objectTracker.obj;
		var px = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, true);
		var py = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, false);
		this.pannerNode["setPosition"](px, py, 0);
		var a = 0;
		if (typeof this.objectTracker.obj.angle !== "undefined")
		{
			a = inst.angle - inst.layer.getAngle();
			this.pannerNode["setOrientation"](Math.cos(a), Math.sin(a), 0);
		}
		px = cr.rotatePtAround(this.objectTracker.getVelocityX(), this.objectTracker.getVelocityY(), -inst.layer.getAngle(), 0, 0, true);
		py = cr.rotatePtAround(this.objectTracker.getVelocityX(), this.objectTracker.getVelocityY(), -inst.layer.getAngle(), 0, 0, false);
		this.pannerNode["setVelocity"](px, py, 0);
	};
	C2AudioInstance.prototype.play = function (looping, vol, fromPosition)
	{
		var instobj = this.instanceObject;
		this.looping = looping;
		this.volume = vol;
		var seekPos = fromPosition || 0;
		switch (this.myapi) {
		case API_HTML5:
			if (instobj.playbackRate !== 1.0)
				instobj.playbackRate = 1.0;
			if (instobj.volume !== vol * masterVolume)
				instobj.volume = vol * masterVolume;
			if (instobj.loop !== looping)
				instobj.loop = looping;
			if (instobj.muted)
				instobj.muted = false;
			if (instobj.currentTime !== seekPos)
			{
				try {
					instobj.currentTime = seekPos;
				}
				catch (err)
				{
;
				}
			}
			if (this.is_music && isMusicWorkaround && !audRuntime.isInUserInputEvent)
				musicPlayNextTouch.push(this);
			else
			{
				try {
					this.instanceObject.play();
				}
				catch (e) {}	// sometimes throws on WP8.1... try not to kill the app
			}
			break;
		case API_WEBAUDIO:
			this.muted = false;
			this.mutevol = 1;
			if (this.buffer.myapi === API_WEBAUDIO)
			{
				if (!this.fresh)
				{
					this.instanceObject = context["createBufferSource"]();
					this.instanceObject["buffer"] = this.buffer.bufferObject;
					this.instanceObject["connect"](this.gainNode);
				}
				this.instanceObject.loop = looping;
				this.gainNode["gain"]["value"] = vol * masterVolume;
				if (seekPos === 0)
					startSource(this.instanceObject);
				else
					startSourceAt(this.instanceObject, seekPos, this.getDuration());
			}
			else
			{
				if (instobj.playbackRate !== 1.0)
					instobj.playbackRate = 1.0;
				if (instobj.loop !== looping)
					instobj.loop = looping;
				this.gainNode["gain"]["value"] = vol * masterVolume;
				if (instobj.currentTime !== seekPos)
				{
					try {
						instobj.currentTime = seekPos;
					}
					catch (err)
					{
;
					}
				}
				if (this.is_music && isMusicWorkaround && !audRuntime.isInUserInputEvent)
					musicPlayNextTouch.push(this);
				else
					instobj.play();
			}
			break;
		case API_PHONEGAP:
			if ((!this.fresh && this.stopped) || seekPos !== 0)
				instobj["seekTo"](seekPos);
			instobj["play"]();
			this.pgended = false;
			break;
		case API_APPMOBI:
			if (audRuntime.isDirectCanvas)
				AppMobi["context"]["playSound"](this.src, looping);
			else
				AppMobi["player"]["playSound"](this.src, looping);
			break;
		}
		this.playbackRate = 1;
		this.startTime = audRuntime.kahanTime.sum - seekPos;
		this.fresh = false;
		this.stopped = false;
		this.is_paused = false;
	};
	C2AudioInstance.prototype.stop = function ()
	{
		switch (this.myapi) {
		case API_HTML5:
			if (!this.instanceObject.paused)
				this.instanceObject.pause();
			break;
		case API_WEBAUDIO:
			if (this.buffer.myapi === API_WEBAUDIO)
				stopSource(this.instanceObject);
			else
			{
				if (!this.instanceObject.paused)
					this.instanceObject.pause();
			}
			break;
		case API_PHONEGAP:
			this.instanceObject["stop"]();
			break;
		case API_APPMOBI:
			if (audRuntime.isDirectCanvas)
				AppMobi["context"]["stopSound"](this.src);
			break;
		}
		this.stopped = true;
		this.is_paused = false;
	};
	C2AudioInstance.prototype.pause = function ()
	{
		if (this.fresh || this.stopped || this.hasEnded() || this.is_paused)
			return;
		switch (this.myapi) {
		case API_HTML5:
			if (!this.instanceObject.paused)
				this.instanceObject.pause();
			break;
		case API_WEBAUDIO:
			if (this.buffer.myapi === API_WEBAUDIO)
			{
				this.resume_position = this.getPlaybackTime();
				if (this.looping)
					this.resume_position = this.resume_position % this.getDuration();
				stopSource(this.instanceObject);
			}
			else
			{
				if (!this.instanceObject.paused)
					this.instanceObject.pause();
			}
			break;
		case API_PHONEGAP:
			this.instanceObject["pause"]();
			break;
		case API_APPMOBI:
			if (audRuntime.isDirectCanvas)
				AppMobi["context"]["stopSound"](this.src);
			break;
		}
		this.is_paused = true;
	};
	C2AudioInstance.prototype.resume = function ()
	{
		if (this.fresh || this.stopped || this.hasEnded() || !this.is_paused)
			return;
		switch (this.myapi) {
		case API_HTML5:
			this.instanceObject.play();
			break;
		case API_WEBAUDIO:
			if (this.buffer.myapi === API_WEBAUDIO)
			{
				this.instanceObject = context["createBufferSource"]();
				this.instanceObject["buffer"] = this.buffer.bufferObject;
				this.instanceObject["connect"](this.gainNode);
				this.instanceObject.loop = this.looping;
				this.gainNode["gain"]["value"] = masterVolume * this.volume * this.mutevol;
				this.startTime = audRuntime.kahanTime.sum - this.resume_position;
				startSourceAt(this.instanceObject, this.resume_position, this.getDuration());
			}
			else
			{
				this.instanceObject.play();
			}
			break;
		case API_PHONEGAP:
			this.instanceObject["play"]();
			break;
		case API_APPMOBI:
			if (audRuntime.isDirectCanvas)
				AppMobi["context"]["resumeSound"](this.src);
			break;
		}
		this.is_paused = false;
	};
	C2AudioInstance.prototype.seek = function (pos)
	{
		if (this.fresh || this.stopped || this.hasEnded())
			return;
		switch (this.myapi) {
		case API_HTML5:
			try {
				this.instanceObject.currentTime = pos;
			}
			catch (e) {}
			break;
		case API_WEBAUDIO:
			if (this.buffer.myapi === API_WEBAUDIO)
			{
				if (this.is_paused)
					this.resume_position = pos;
				else
				{
					this.pause();
					this.resume_position = pos;
					this.resume();
				}
			}
			else
			{
				try {
					this.instanceObject.currentTime = pos;
				}
				catch (e) {}
			}
			break;
		case API_PHONEGAP:
			break;
		case API_APPMOBI:
			if (audRuntime.isDirectCanvas)
				AppMobi["context"]["seekSound"](this.src, pos);
			break;
		}
	};
	C2AudioInstance.prototype.reconnect = function (toNode)
	{
		if (this.myapi !== API_WEBAUDIO)
			return;
		if (this.pannerEnabled)
		{
			this.pannerNode["disconnect"]();
			this.pannerNode["connect"](toNode);
		}
		else
		{
			this.gainNode["disconnect"]();
			this.gainNode["connect"](toNode);
		}
	};
	C2AudioInstance.prototype.getDuration = function ()
	{
		switch (this.myapi) {
		case API_HTML5:
			if (typeof this.instanceObject.duration !== "undefined")
				return this.instanceObject.duration;
			else
				return 0;
		case API_WEBAUDIO:
			return this.buffer.bufferObject["duration"];
		case API_PHONEGAP:
			return this.instanceObject["getDuration"]();
		case API_APPMOBI:
			if (audRuntime.isDirectCanvas)
				return AppMobi["context"]["getDurationSound"](this.src);
			else
				return 0;
		}
		return 0;
	};
	C2AudioInstance.prototype.getPlaybackTime = function ()
	{
		var duration = this.getDuration();
		var ret = 0;
		switch (this.myapi) {
		case API_HTML5:
			if (typeof this.instanceObject.currentTime !== "undefined")
				ret = this.instanceObject.currentTime;
			break;
		case API_WEBAUDIO:
			if (this.buffer.myapi === API_WEBAUDIO)
			{
				if (this.is_paused)
					return this.resume_position;
				else
					ret = audRuntime.kahanTime.sum - this.startTime;
			}
			else if (typeof this.instanceObject.currentTime !== "undefined")
				ret = this.instanceObject.currentTime;
			break;
		case API_PHONEGAP:
			break;
		case API_APPMOBI:
			if (audRuntime.isDirectCanvas)
				ret = AppMobi["context"]["getPlaybackTimeSound"](this.src);
			break;
		}
		if (!this.looping && ret > duration)
			ret = duration;
		return ret;
	};
	C2AudioInstance.prototype.isPlaying = function ()
	{
		return !this.is_paused && !this.fresh && !this.stopped && !this.hasEnded();
	};
	C2AudioInstance.prototype.setVolume = function (v)
	{
		this.volume = v;
		this.updateVolume();
	};
	C2AudioInstance.prototype.updateVolume = function ()
	{
		var volToSet = this.volume * masterVolume;
		switch (this.myapi) {
		case API_HTML5:
			if (this.instanceObject.volume && this.instanceObject.volume !== volToSet)
				this.instanceObject.volume = volToSet;
			break;
		case API_WEBAUDIO:
			this.gainNode["gain"]["value"] = volToSet * this.mutevol;
			break;
		case API_PHONEGAP:
			break;
		case API_APPMOBI:
			break;
		}
	};
	C2AudioInstance.prototype.getVolume = function ()
	{
		return this.volume;
	};
	C2AudioInstance.prototype.doSetMuted = function (m)
	{
		switch (this.myapi) {
		case API_HTML5:
			if (this.instanceObject.muted !== !!m)
				this.instanceObject.muted = !!m;
			break;
		case API_WEBAUDIO:
			this.mutevol = (m ? 0 : 1);
			this.gainNode["gain"]["value"] = masterVolume * this.volume * this.mutevol;
			break;
		case API_PHONEGAP:
			break;
		case API_APPMOBI:
			break;
		}
	};
	C2AudioInstance.prototype.setMuted = function (m)
	{
		this.is_muted = !!m;
		this.doSetMuted(this.is_muted || this.is_silent);
	};
	C2AudioInstance.prototype.setSilent = function (m)
	{
		this.is_silent = !!m;
		this.doSetMuted(this.is_muted || this.is_silent);
	};
	C2AudioInstance.prototype.setLooping = function (l)
	{
		this.looping = l;
		switch (this.myapi) {
		case API_HTML5:
			if (this.instanceObject.loop !== !!l)
				this.instanceObject.loop = !!l;
			break;
		case API_WEBAUDIO:
			if (this.instanceObject.loop !== !!l)
				this.instanceObject.loop = !!l;
			break;
		case API_PHONEGAP:
			break;
		case API_APPMOBI:
			if (audRuntime.isDirectCanvas)
				AppMobi["context"]["setLoopingSound"](this.src, l);
			break;
		}
	};
	C2AudioInstance.prototype.setPlaybackRate = function (r)
	{
		this.playbackRate = r;
		this.updatePlaybackRate();
	};
	C2AudioInstance.prototype.updatePlaybackRate = function ()
	{
		var r = this.playbackRate;
		if ((timescale_mode === 1 && !this.is_music) || timescale_mode === 2)
			r *= audRuntime.timescale;
		switch (this.myapi) {
		case API_HTML5:
			if (this.instanceObject.playbackRate !== r)
				this.instanceObject.playbackRate = r;
			break;
		case API_WEBAUDIO:
			if (this.buffer.myapi === API_WEBAUDIO)
			{
				if (this.instanceObject["playbackRate"]["value"] !== r)
					this.instanceObject["playbackRate"]["value"] = r;
			}
			else
			{
				if (this.instanceObject.playbackRate !== r)
					this.instanceObject.playbackRate = r;
			}
			break;
		case API_PHONEGAP:
			break;
		case API_APPMOBI:
			break;
		}
	};
	C2AudioInstance.prototype.setSuspended = function (s)
	{
		switch (this.myapi) {
		case API_HTML5:
			if (s)
			{
				if (this.isPlaying())
				{
					this.instanceObject["pause"]();
					this.resume_me = true;
				}
				else
					this.resume_me = false;
			}
			else
			{
				if (this.resume_me)
					this.instanceObject["play"]();
			}
			break;
		case API_WEBAUDIO:
			if (s)
			{
				if (this.isPlaying())
				{
					if (this.buffer.myapi === API_WEBAUDIO)
					{
						this.resume_position = this.getPlaybackTime();
						if (this.looping)
							this.resume_position = this.resume_position % this.getDuration();
						stopSource(this.instanceObject);
					}
					else
						this.instanceObject["pause"]();
					this.resume_me = true;
				}
				else
					this.resume_me = false;
			}
			else
			{
				if (this.resume_me)
				{
					if (this.buffer.myapi === API_WEBAUDIO)
					{
						this.instanceObject = context["createBufferSource"]();
						this.instanceObject["buffer"] = this.buffer.bufferObject;
						this.instanceObject["connect"](this.gainNode);
						this.instanceObject.loop = this.looping;
						this.gainNode["gain"]["value"] = masterVolume * this.volume * this.mutevol;
						this.startTime = audRuntime.kahanTime.sum - this.resume_position;
						startSourceAt(this.instanceObject, this.resume_position, this.getDuration());
					}
					else
					{
						this.instanceObject["play"]();
					}
				}
			}
			break;
		case API_PHONEGAP:
			if (s)
			{
				if (this.isPlaying())
				{
					this.instanceObject["pause"]();
					this.resume_me = true;
				}
				else
					this.resume_me = false;
			}
			else
			{
				if (this.resume_me)
					this.instanceObject["play"]();
			}
			break;
		case API_APPMOBI:
			break;
		}
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
		audRuntime = this.runtime;
		audInst = this;
		this.listenerTracker = null;
		this.listenerZ = -600;
		if ((this.runtime.isiOS || (this.runtime.isAndroid && (this.runtime.isChrome || this.runtime.isAndroidStockBrowser))) && !this.runtime.isCrosswalk && !this.runtime.isDomFree)
		{
			isMusicWorkaround = true;
		}
		context = null;
		if (typeof AudioContext !== "undefined")
		{
			api = API_WEBAUDIO;
			context = new AudioContext();
		}
		else if (typeof webkitAudioContext !== "undefined")
		{
			api = API_WEBAUDIO;
			context = new webkitAudioContext();
		}
		if ((this.runtime.isiOS && api === API_WEBAUDIO) || isMusicWorkaround)
		{
			document.addEventListener("touchstart", function ()
			{
				var i, len, m;
				if (!iOShadtouch && context)
				{
					var buffer = context["createBuffer"](1, 1, 22050);
					var source = context["createBufferSource"]();
					source["buffer"] = buffer;
					source["connect"](context["destination"]);
					startSource(source);
					iOShadtouch = true;
				}
				if (isMusicWorkaround)
				{
					if (!silent)
					{
						for (i = 0, len = musicPlayNextTouch.length; i < len; ++i)
						{
							m = musicPlayNextTouch[i];
							if (!m.stopped && !m.is_paused)
								m.instanceObject.play();
						}
					}
					musicPlayNextTouch.length = 0;
				}
			}, true);
		}
		if (api !== API_WEBAUDIO)
		{
			if (this.runtime.isPhoneGap)
				api = API_PHONEGAP;
			else if (this.runtime.isAppMobi)
				api = API_APPMOBI;
		}
		if (api === API_PHONEGAP)
		{
			appPath = location.href;
			var i = appPath.lastIndexOf("/");
			if (i > -1)
				appPath = appPath.substr(0, i + 1);
			appPath = appPath.replace("file://", "");
		}
		if (this.runtime.isSafari && this.runtime.isWindows && typeof Audio === "undefined")
		{
			alert("It looks like you're using Safari for Windows without Quicktime.  Audio cannot be played until Quicktime is installed.");
			this.runtime.DestroyInstance(this);
		}
		else
		{
			if (this.runtime.isDirectCanvas)
				useOgg = this.runtime.isAndroid;		// AAC on iOS, OGG on Android
			else
			{
				try {
					useOgg = !!(new Audio().canPlayType('audio/ogg; codecs="vorbis"'));
				}
				catch (e)
				{
					useOgg = false;
				}
			}
			switch (api) {
			case API_HTML5:
;
				break;
			case API_WEBAUDIO:
;
				break;
			case API_PHONEGAP:
;
				break;
			case API_APPMOBI:
;
				break;
			default:
;
			}
			this.runtime.tickMe(this);
		}
	};
	var instanceProto = pluginProto.Instance.prototype;
	instanceProto.onCreate = function ()
	{
		timescale_mode = this.properties[0];	// 0 = off, 1 = sounds only, 2 = all
		this.saveload = this.properties[1];		// 0 = all, 1 = sounds only, 2 = music only, 3 = none
		panningModel = this.properties[2];		// 0 = equalpower, 1 = hrtf, 3 = soundfield
		distanceModel = this.properties[3];		// 0 = linear, 1 = inverse, 2 = exponential
		this.listenerZ = -this.properties[4];
		refDistance = this.properties[5];
		maxDistance = this.properties[6];
		rolloffFactor = this.properties[7];
		this.listenerTracker = new ObjectTracker();
		if (api === API_WEBAUDIO)
		{
			context["listener"]["speedOfSound"] = this.properties[8];
			context["listener"]["dopplerFactor"] = this.properties[9];
			context["listener"]["setPosition"](this.runtime.draw_width / 2, this.runtime.draw_height / 2, this.listenerZ);
			context["listener"]["setOrientation"](0, 0, 1, 0, -1, 0);
			window["c2OnAudioMicStream"] = function (localMediaStream, tag)
			{
				if (micSource)
					micSource["disconnect"]();
				micTag = tag.toLowerCase();
				micSource = context["createMediaStreamSource"](localMediaStream);
				micSource["connect"](getDestinationForTag(micTag));
			};
		}
		this.runtime.addSuspendCallback(function(s)
		{
			audInst.onSuspend(s);
		});
		var self = this;
		this.runtime.addDestroyCallback(function (inst)
		{
			self.onInstanceDestroyed(inst);
		});
	};
	instanceProto.onInstanceDestroyed = function (inst)
	{
		var i, len, a;
		for (i = 0, len = audioInstances.length; i < len; i++)
		{
			a = audioInstances[i];
			if (a.objectTracker)
			{
				if (a.objectTracker.obj === inst)
				{
					a.objectTracker.obj = null;
					if (a.pannerEnabled && a.isPlaying() && a.looping)
						a.stop();
				}
			}
		}
		if (this.listenerTracker.obj === inst)
			this.listenerTracker.obj = null;
	};
	instanceProto.saveToJSON = function ()
	{
		var o = {
			"silent": silent,
			"masterVolume": masterVolume,
			"listenerZ": this.listenerZ,
			"listenerUid": this.listenerTracker.hasObject() ? this.listenerTracker.obj.uid : -1,
			"playing": [],
			"effects": {}
		};
		var playingarr = o["playing"];
		var i, len, a, d, p, panobj, playbackTime;
		for (i = 0, len = audioInstances.length; i < len; i++)
		{
			a = audioInstances[i];
			if (!a.isPlaying())
				continue;				// no need to save stopped sounds
			if (this.saveload === 3)	// not saving/loading any sounds/music
				continue;
			if (a.is_music && this.saveload === 1)	// not saving/loading music
				continue;
			if (!a.is_music && this.saveload === 2)	// not saving/loading sound
				continue;
			playbackTime = a.getPlaybackTime();
			if (a.looping)
				playbackTime = playbackTime % a.getDuration();
			d = {
				"tag": a.tag,
				"buffersrc": a.buffer.src,
				"is_music": a.is_music,
				"playbackTime": playbackTime,
				"volume": a.volume,
				"looping": a.looping,
				"muted": a.is_muted,
				"playbackRate": a.playbackRate,
				"paused": a.is_paused,
				"resume_position": a.resume_position
			};
			if (a.pannerEnabled)
			{
				d["pan"] = {};
				panobj = d["pan"];
				if (a.objectTracker && a.objectTracker.hasObject())
				{
					panobj["objUid"] = a.objectTracker.obj.uid;
				}
				else
				{
					panobj["x"] = a.panX;
					panobj["y"] = a.panY;
					panobj["a"] = a.panAngle;
				}
				panobj["ia"] = a.panConeInner;
				panobj["oa"] = a.panConeOuter;
				panobj["og"] = a.panConeOuterGain;
			}
			playingarr.push(d);
		}
		var fxobj = o["effects"];
		var fxarr;
		for (p in effects)
		{
			if (effects.hasOwnProperty(p))
			{
				fxarr = [];
				for (i = 0, len = effects[p].length; i < len; i++)
				{
					fxarr.push({ "type": effects[p][i].type, "params": effects[p][i].params });
				}
				fxobj[p] = fxarr;
			}
		}
		return o;
	};
	var objectTrackerUidsToLoad = [];
	instanceProto.loadFromJSON = function (o)
	{
		var setSilent = o["silent"];
		masterVolume = o["masterVolume"];
		this.listenerZ = o["listenerZ"];
		this.listenerTracker.setObject(null);
		var listenerUid = o["listenerUid"];
		if (listenerUid !== -1)
		{
			this.listenerTracker.loadUid = listenerUid;
			objectTrackerUidsToLoad.push(this.listenerTracker);
		}
		var playingarr = o["playing"];
		var i, len, d, src, is_music, tag, playbackTime, looping, vol, b, a, p, pan, panObjUid;
		if (this.saveload !== 3)
		{
			for (i = 0, len = audioInstances.length; i < len; i++)
			{
				a = audioInstances[i];
				if (a.is_music && this.saveload === 1)
					continue;		// only saving/loading sound: leave music playing
				if (!a.is_music && this.saveload === 2)
					continue;		// only saving/loading music: leave sound playing
				a.stop();
			}
		}
		var fxarr, fxtype, fxparams, fx;
		for (p in effects)
		{
			if (effects.hasOwnProperty(p))
			{
				for (i = 0, len = effects[p].length; i < len; i++)
					effects[p][i].remove();
			}
		}
		cr.wipe(effects);
		for (p in o["effects"])
		{
			if (o["effects"].hasOwnProperty(p))
			{
				fxarr = o["effects"][p];
				for (i = 0, len = fxarr.length; i < len; i++)
				{
					fxtype = fxarr[i]["type"];
					fxparams = fxarr[i]["params"];
					switch (fxtype) {
					case "filter":
						addEffectForTag(p, new FilterEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4], fxparams[5]));
						break;
					case "delay":
						addEffectForTag(p, new DelayEffect(fxparams[0], fxparams[1], fxparams[2]));
						break;
					case "convolve":
						src = fxparams[2];
						b = this.getAudioBuffer(src, false);
						if (b.bufferObject)
						{
							fx = new ConvolveEffect(b.bufferObject, fxparams[0], fxparams[1], src);
						}
						else
						{
							fx = new ConvolveEffect(null, fxparams[0], fxparams[1], src);
							b.normalizeWhenReady = fxparams[0];
							b.convolveWhenReady = fx;
						}
						addEffectForTag(p, fx);
						break;
					case "flanger":
						addEffectForTag(p, new FlangerEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4]));
						break;
					case "phaser":
						addEffectForTag(p, new PhaserEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4], fxparams[5]));
						break;
					case "gain":
						addEffectForTag(p, new GainEffect(fxparams[0]));
						break;
					case "tremolo":
						addEffectForTag(p, new TremoloEffect(fxparams[0], fxparams[1]));
						break;
					case "ringmod":
						addEffectForTag(p, new RingModulatorEffect(fxparams[0], fxparams[1]));
						break;
					case "distortion":
						addEffectForTag(p, new DistortionEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4]));
						break;
					case "compressor":
						addEffectForTag(p, new CompressorEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4]));
						break;
					case "analyser":
						addEffectForTag(p, new AnalyserEffect(fxparams[0], fxparams[1]));
						break;
					}
				}
			}
		}
		for (i = 0, len = playingarr.length; i < len; i++)
		{
			if (this.saveload === 3)	// not saving/loading any sounds/music
				continue;
			d = playingarr[i];
			src = d["buffersrc"];
			is_music = d["is_music"];
			tag = d["tag"];
			playbackTime = d["playbackTime"];
			looping = d["looping"];
			vol = d["volume"];
			pan = d["pan"];
			panObjUid = (pan && pan.hasOwnProperty("objUid")) ? pan["objUid"] : -1;
			if (is_music && this.saveload === 1)	// not saving/loading music
				continue;
			if (!is_music && this.saveload === 2)	// not saving/loading sound
				continue;
			a = this.getAudioInstance(src, tag, is_music, looping, vol);
			if (!a)
			{
				b = this.getAudioBuffer(src, is_music);
				b.seekWhenReady = playbackTime;
				b.pauseWhenReady = d["paused"];
				if (pan)
				{
					if (panObjUid !== -1)
					{
						b.panWhenReady.push({ objUid: panObjUid, ia: pan["ia"], oa: pan["oa"], og: pan["og"], thistag: tag });
					}
					else
					{
						b.panWhenReady.push({ x: pan["x"], y: pan["y"], a: pan["a"], ia: pan["ia"], oa: pan["oa"], og: pan["og"], thistag: tag });
					}
				}
				continue;
			}
			a.resume_position = d["resume_position"];
			a.setPannerEnabled(!!pan);
			a.play(looping, vol, playbackTime);
			a.updatePlaybackRate();
			a.updateVolume();
			a.doSetMuted(a.is_muted || a.is_silent);
			if (d["paused"])
				a.pause();
			if (d["muted"])
				a.setMuted(true);
			a.doSetMuted(a.is_muted || a.is_silent);
			if (pan)
			{
				if (panObjUid !== -1)
				{
					a.objectTracker = a.objectTracker || new ObjectTracker();
					a.objectTracker.loadUid = panObjUid;
					objectTrackerUidsToLoad.push(a.objectTracker);
				}
				else
				{
					a.setPan(pan["x"], pan["y"], pan["a"], pan["ia"], pan["oa"], pan["og"]);
				}
			}
		}
		if (setSilent && !silent)			// setting silent
		{
			for (i = 0, len = audioInstances.length; i < len; i++)
				audioInstances[i].setSilent(true);
			silent = true;
		}
		else if (!setSilent && silent)		// setting not silent
		{
			for (i = 0, len = audioInstances.length; i < len; i++)
				audioInstances[i].setSilent(false);
			silent = false;
		}
	};
	instanceProto.afterLoad = function ()
	{
		var i, len, ot, inst;
		for (i = 0, len = objectTrackerUidsToLoad.length; i < len; i++)
		{
			ot = objectTrackerUidsToLoad[i];
			inst = this.runtime.getObjectByUID(ot.loadUid);
			ot.setObject(inst);
			ot.loadUid = -1;
			if (inst)
			{
				listenerX = inst.x;
				listenerY = inst.y;
			}
		}
		objectTrackerUidsToLoad.length = 0;
	};
	instanceProto.onSuspend = function (s)
	{
		var i, len;
		for (i = 0, len = audioInstances.length; i < len; i++)
			audioInstances[i].setSuspended(s);
	};
	instanceProto.tick = function ()
	{
		var dt = this.runtime.dt;
		var i, len, a;
		for (i = 0, len = audioInstances.length; i < len; i++)
		{
			a = audioInstances[i];
			a.tick(dt);
			if (a.myapi !== API_HTML5 && a.myapi !== API_APPMOBI)
			{
				if (!a.fresh && !a.stopped && a.hasEnded())
				{
					a.stopped = true;
					audTag = a.tag;
					audRuntime.trigger(cr.plugins_.Audio.prototype.cnds.OnEnded, audInst);
				}
			}
			if (timescale_mode !== 0)
				a.updatePlaybackRate();
		}
		var p, arr, f;
		for (p in effects)
		{
			if (effects.hasOwnProperty(p))
			{
				arr = effects[p];
				for (i = 0, len = arr.length; i < len; i++)
				{
					f = arr[i];
					if (f.tick)
						f.tick();
				}
			}
		}
		if (api === API_WEBAUDIO && this.listenerTracker.hasObject())
		{
			this.listenerTracker.tick(dt);
			listenerX = this.listenerTracker.obj.x;
			listenerY = this.listenerTracker.obj.y;
			context["listener"]["setPosition"](this.listenerTracker.obj.x, this.listenerTracker.obj.y, this.listenerZ);
			context["listener"]["setVelocity"](this.listenerTracker.getVelocityX(), this.listenerTracker.getVelocityY(), 0);
		}
	};
	instanceProto.getAudioBuffer = function (src_, is_music)
	{
		var i, len, a, ret = null, j, k, lenj, ai;
		for (i = 0, len = audioBuffers.length; i < len; i++)
		{
			a = audioBuffers[i];
			if (a.src === src_)
			{
				ret = a;
				break;
			}
		}
		if (!ret)
		{
			ret = new C2AudioBuffer(src_, is_music);
			audioBuffers.push(ret);
		}
		return ret;
	};
	instanceProto.getAudioInstance = function (src_, tag, is_music, looping, vol)
	{
		var i, len, a;
		for (i = 0, len = audioInstances.length; i < len; i++)
		{
			a = audioInstances[i];
			if (a.src === src_ && (a.canBeRecycled() || is_music))
			{
				a.tag = tag;
				return a;
			}
		}
		var b = this.getAudioBuffer(src_, is_music);
		if (!b.bufferObject)
		{
			if (tag !== "<preload>")
			{
				b.playTagWhenReady = tag;
				b.loopWhenReady = looping;
				b.volumeWhenReady = vol;
			}
			return null;
		}
		a = new C2AudioInstance(b, tag);
		audioInstances.push(a);
		return a;
	};
	var taggedAudio = [];
	function getAudioByTag(tag)
	{
		taggedAudio.length = 0;
		if (!tag.length)
		{
			if (!lastAudio || lastAudio.hasEnded())
				return;
			else
			{
				taggedAudio.length = 1;
				taggedAudio[0] = lastAudio;
				return;
			}
		}
		var i, len, a;
		for (i = 0, len = audioInstances.length; i < len; i++)
		{
			a = audioInstances[i];
			if (cr.equals_nocase(tag, a.tag))
				taggedAudio.push(a);
		}
	};
	function reconnectEffects(tag)
	{
		var i, len, arr, n, toNode = context["destination"];
		if (effects.hasOwnProperty(tag))
		{
			arr = effects[tag];
			if (arr.length)
			{
				toNode = arr[0].getInputNode();
				for (i = 0, len = arr.length; i < len; i++)
				{
					n = arr[i];
					if (i + 1 === len)
						n.connectTo(context["destination"]);
					else
						n.connectTo(arr[i + 1].getInputNode());
				}
			}
		}
		getAudioByTag(tag);
		for (i = 0, len = taggedAudio.length; i < len; i++)
			taggedAudio[i].reconnect(toNode);
		if (micSource && micTag === tag)
		{
			micSource["disconnect"]();
			micSource["connect"](toNode);
		}
	};
	function addEffectForTag(tag, fx)
	{
		if (!effects.hasOwnProperty(tag))
			effects[tag] = [fx];
		else
			effects[tag].push(fx);
		reconnectEffects(tag);
	};
	function Cnds() {};
	Cnds.prototype.OnEnded = function (t)
	{
		return cr.equals_nocase(audTag, t);
	};
	Cnds.prototype.PreloadsComplete = function ()
	{
		var i, len;
		for (i = 0, len = audioBuffers.length; i < len; i++)
		{
			if (!audioBuffers[i].isLoaded())
				return false;
		}
		return true;
	};
	Cnds.prototype.AdvancedAudioSupported = function ()
	{
		return api === API_WEBAUDIO;
	};
	Cnds.prototype.IsSilent = function ()
	{
		return silent;
	};
	Cnds.prototype.IsAnyPlaying = function ()
	{
		var i, len;
		for (i = 0, len = audioInstances.length; i < len; i++)
		{
			if (audioInstances[i].isPlaying())
				return true;
		}
		return false;
	};
	Cnds.prototype.IsTagPlaying = function (tag)
	{
		getAudioByTag(tag);
		var i, len;
		for (i = 0, len = taggedAudio.length; i < len; i++)
		{
			if (taggedAudio[i].isPlaying())
				return true;
		}
		return false;
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.Play = function (file, looping, vol, tag)
	{
		if (silent)
			return;
		var v = dbToLinear(vol);
		var is_music = file[1];
		var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a");
		lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v);
		if (!lastAudio)
			return;
		lastAudio.setPannerEnabled(false);
		lastAudio.play(looping!==0, v);
	};
	Acts.prototype.PlayAtPosition = function (file, looping, vol, x_, y_, angle_, innerangle_, outerangle_, outergain_, tag)
	{
		if (silent)
			return;
		var v = dbToLinear(vol);
		var is_music = file[1];
		var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a");
		lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v);
		if (!lastAudio)
		{
			var b = this.getAudioBuffer(src, is_music);
			b.panWhenReady.push({ x: x_, y: y_, a: angle_, ia: innerangle_, oa: outerangle_, og: dbToLinear(outergain_), thistag: tag });
			return;
		}
		lastAudio.setPannerEnabled(true);
		lastAudio.setPan(x_, y_, angle_, innerangle_, outerangle_, dbToLinear(outergain_));
		lastAudio.play(looping!==0, v);
	};
	Acts.prototype.PlayAtObject = function (file, looping, vol, obj, innerangle, outerangle, outergain, tag)
	{
		if (silent || !obj)
			return;
		var inst = obj.getFirstPicked();
		if (!inst)
			return;
		var v = dbToLinear(vol);
		var is_music = file[1];
		var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a");
		lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v);
		if (!lastAudio)
		{
			var b = this.getAudioBuffer(src, is_music);
			b.panWhenReady.push({ obj: inst, ia: innerangle, oa: outerangle, og: dbToLinear(outergain), thistag: tag });
			return;
		}
		lastAudio.setPannerEnabled(true);
		var px = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, true);
		var py = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, false);
		lastAudio.setPan(px, py, cr.to_degrees(inst.angle - inst.layer.getAngle()), innerangle, outerangle, dbToLinear(outergain));
		lastAudio.setObject(inst);
		lastAudio.play(looping!==0, v);
	};
	Acts.prototype.PlayByName = function (folder, filename, looping, vol, tag)
	{
		if (silent)
			return;
		var v = dbToLinear(vol);
		var is_music = (folder === 1);
		var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a");
		lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v);
		if (!lastAudio)
			return;
		lastAudio.setPannerEnabled(false);
		lastAudio.play(looping!==0, v);
	};
	Acts.prototype.PlayAtPositionByName = function (folder, filename, looping, vol, x_, y_, angle_, innerangle_, outerangle_, outergain_, tag)
	{
		if (silent)
			return;
		var v = dbToLinear(vol);
		var is_music = (folder === 1);
		var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a");
		lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v);
		if (!lastAudio)
		{
			var b = this.getAudioBuffer(src, is_music);
			b.panWhenReady.push({ x: x_, y: y_, a: angle_, ia: innerangle_, oa: outerangle_, og: dbToLinear(outergain_), thistag: tag });
			return;
		}
		lastAudio.setPannerEnabled(true);
		lastAudio.setPan(x_, y_, angle_, innerangle_, outerangle_, dbToLinear(outergain_));
		lastAudio.play(looping!==0, v);
	};
	Acts.prototype.PlayAtObjectByName = function (folder, filename, looping, vol, obj, innerangle, outerangle, outergain, tag)
	{
		if (silent || !obj)
			return;
		var inst = obj.getFirstPicked();
		if (!inst)
			return;
		var v = dbToLinear(vol);
		var is_music = (folder === 1);
		var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a");
		lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v);
		if (!lastAudio)
		{
			var b = this.getAudioBuffer(src, is_music);
			b.panWhenReady.push({ obj: inst, ia: innerangle, oa: outerangle, og: dbToLinear(outergain), thistag: tag });
			return;
		}
		lastAudio.setPannerEnabled(true);
		var px = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, true);
		var py = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, false);
		lastAudio.setPan(px, py, cr.to_degrees(inst.angle - inst.layer.getAngle()), innerangle, outerangle, dbToLinear(outergain));
		lastAudio.setObject(inst);
		lastAudio.play(looping!==0, v);
	};
	Acts.prototype.SetLooping = function (tag, looping)
	{
		getAudioByTag(tag);
		var i, len;
		for (i = 0, len = taggedAudio.length; i < len; i++)
			taggedAudio[i].setLooping(looping === 0);
	};
	Acts.prototype.SetMuted = function (tag, muted)
	{
		getAudioByTag(tag);
		var i, len;
		for (i = 0, len = taggedAudio.length; i < len; i++)
			taggedAudio[i].setMuted(muted === 0);
	};
	Acts.prototype.SetVolume = function (tag, vol)
	{
		getAudioByTag(tag);
		var v = dbToLinear(vol);
		var i, len;
		for (i = 0, len = taggedAudio.length; i < len; i++)
			taggedAudio[i].setVolume(v);
	};
	Acts.prototype.Preload = function (file)
	{
		if (silent)
			return;
		var is_music = file[1];
		var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a");
		if (api === API_APPMOBI)
		{
			if (this.runtime.isDirectCanvas)
				AppMobi["context"]["loadSound"](src);
			else
				AppMobi["player"]["loadSound"](src);
			return;
		}
		else if (api === API_PHONEGAP)
		{
			return;
		}
		this.getAudioInstance(src, "<preload>", is_music, false);
	};
	Acts.prototype.PreloadByName = function (folder, filename)
	{
		if (silent)
			return;
		var is_music = (folder === 1);
		var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a");
		if (api === API_APPMOBI)
		{
			if (this.runtime.isDirectCanvas)
				AppMobi["context"]["loadSound"](src);
			else
				AppMobi["player"]["loadSound"](src);
			return;
		}
		else if (api === API_PHONEGAP)
		{
			return;
		}
		this.getAudioInstance(src, "<preload>", is_music, false);
	};
	Acts.prototype.SetPlaybackRate = function (tag, rate)
	{
		getAudioByTag(tag);
		if (rate < 0.0)
			rate = 0;
		var i, len;
		for (i = 0, len = taggedAudio.length; i < len; i++)
			taggedAudio[i].setPlaybackRate(rate);
	};
	Acts.prototype.Stop = function (tag)
	{
		getAudioByTag(tag);
		var i, len;
		for (i = 0, len = taggedAudio.length; i < len; i++)
			taggedAudio[i].stop();
	};
	Acts.prototype.StopAll = function ()
	{
		var i, len;
		for (i = 0, len = audioInstances.length; i < len; i++)
			audioInstances[i].stop();
	};
	Acts.prototype.SetPaused = function (tag, state)
	{
		getAudioByTag(tag);
		var i, len;
		for (i = 0, len = taggedAudio.length; i < len; i++)
		{
			if (state === 0)
				taggedAudio[i].pause();
			else
				taggedAudio[i].resume();
		}
	};
	Acts.prototype.Seek = function (tag, pos)
	{
		getAudioByTag(tag);
		var i, len;
		for (i = 0, len = taggedAudio.length; i < len; i++)
		{
			taggedAudio[i].seek(pos);
		}
	};
	Acts.prototype.SetSilent = function (s)
	{
		var i, len;
		if (s === 2)					// toggling
			s = (silent ? 1 : 0);		// choose opposite state
		if (s === 0 && !silent)			// setting silent
		{
			for (i = 0, len = audioInstances.length; i < len; i++)
				audioInstances[i].setSilent(true);
			silent = true;
		}
		else if (s === 1 && silent)		// setting not silent
		{
			for (i = 0, len = audioInstances.length; i < len; i++)
				audioInstances[i].setSilent(false);
			silent = false;
		}
	};
	Acts.prototype.SetMasterVolume = function (vol)
	{
		masterVolume = dbToLinear(vol);
		var i, len;
		for (i = 0, len = audioInstances.length; i < len; i++)
			audioInstances[i].updateVolume();
	};
	Acts.prototype.AddFilterEffect = function (tag, type, freq, detune, q, gain, mix)
	{
		if (api !== API_WEBAUDIO || type < 0 || type >= filterTypes.length || !context["createBiquadFilter"])
			return;
		tag = tag.toLowerCase();
		mix = mix / 100;
		if (mix < 0) mix = 0;
		if (mix > 1) mix = 1;
		addEffectForTag(tag, new FilterEffect(type, freq, detune, q, gain, mix));
	};
	Acts.prototype.AddDelayEffect = function (tag, delay, gain, mix)
	{
		if (api !== API_WEBAUDIO)
			return;
		tag = tag.toLowerCase();
		mix = mix / 100;
		if (mix < 0) mix = 0;
		if (mix > 1) mix = 1;
		addEffectForTag(tag, new DelayEffect(delay, dbToLinear(gain), mix));
	};
	Acts.prototype.AddFlangerEffect = function (tag, delay, modulation, freq, feedback, mix)
	{
		if (api !== API_WEBAUDIO || !context["createOscillator"])
			return;
		tag = tag.toLowerCase();
		mix = mix / 100;
		if (mix < 0) mix = 0;
		if (mix > 1) mix = 1;
		addEffectForTag(tag, new FlangerEffect(delay / 1000, modulation / 1000, freq, feedback / 100, mix));
	};
	Acts.prototype.AddPhaserEffect = function (tag, freq, detune, q, mod, modfreq, mix)
	{
		if (api !== API_WEBAUDIO || !context["createOscillator"])
			return;
		tag = tag.toLowerCase();
		mix = mix / 100;
		if (mix < 0) mix = 0;
		if (mix > 1) mix = 1;
		addEffectForTag(tag, new PhaserEffect(freq, detune, q, mod, modfreq, mix));
	};
	Acts.prototype.AddConvolutionEffect = function (tag, file, norm, mix)
	{
		if (api !== API_WEBAUDIO || !context["createConvolver"])
			return;
		var doNormalize = (norm === 0);
		var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a");
		var b = this.getAudioBuffer(src, false);
		tag = tag.toLowerCase();
		mix = mix / 100;
		if (mix < 0) mix = 0;
		if (mix > 1) mix = 1;
		var fx;
		if (b.bufferObject)
		{
			fx = new ConvolveEffect(b.bufferObject, doNormalize, mix, src);
		}
		else
		{
			fx = new ConvolveEffect(null, doNormalize, mix, src);
			b.normalizeWhenReady = doNormalize;
			b.convolveWhenReady = fx;
		}
		addEffectForTag(tag, fx);
	};
	Acts.prototype.AddGainEffect = function (tag, g)
	{
		if (api !== API_WEBAUDIO)
			return;
		tag = tag.toLowerCase();
		addEffectForTag(tag, new GainEffect(dbToLinear(g)));
	};
	Acts.prototype.AddMuteEffect = function (tag)
	{
		if (api !== API_WEBAUDIO)
			return;
		tag = tag.toLowerCase();
		addEffectForTag(tag, new GainEffect(0));	// re-use gain effect with 0 gain
	};
	Acts.prototype.AddTremoloEffect = function (tag, freq, mix)
	{
		if (api !== API_WEBAUDIO || !context["createOscillator"])
			return;
		tag = tag.toLowerCase();
		mix = mix / 100;
		if (mix < 0) mix = 0;
		if (mix > 1) mix = 1;
		addEffectForTag(tag, new TremoloEffect(freq, mix));
	};
	Acts.prototype.AddRingModEffect = function (tag, freq, mix)
	{
		if (api !== API_WEBAUDIO || !context["createOscillator"])
			return;
		tag = tag.toLowerCase();
		mix = mix / 100;
		if (mix < 0) mix = 0;
		if (mix > 1) mix = 1;
		addEffectForTag(tag, new RingModulatorEffect(freq, mix));
	};
	Acts.prototype.AddDistortionEffect = function (tag, threshold, headroom, drive, makeupgain, mix)
	{
		if (api !== API_WEBAUDIO || !context["createWaveShaper"])
			return;
		tag = tag.toLowerCase();
		mix = mix / 100;
		if (mix < 0) mix = 0;
		if (mix > 1) mix = 1;
		addEffectForTag(tag, new DistortionEffect(threshold, headroom, drive, makeupgain, mix));
	};
	Acts.prototype.AddCompressorEffect = function (tag, threshold, knee, ratio, attack, release)
	{
		if (api !== API_WEBAUDIO || !context["createDynamicsCompressor"])
			return;
		tag = tag.toLowerCase();
		addEffectForTag(tag, new CompressorEffect(threshold, knee, ratio, attack / 1000, release / 1000));
	};
	Acts.prototype.AddAnalyserEffect = function (tag, fftSize, smoothing)
	{
		if (api !== API_WEBAUDIO)
			return;
		tag = tag.toLowerCase();
		addEffectForTag(tag, new AnalyserEffect(fftSize, smoothing));
	};
	Acts.prototype.RemoveEffects = function (tag)
	{
		if (api !== API_WEBAUDIO)
			return;
		tag = tag.toLowerCase();
		var i, len, arr;
		if (effects.hasOwnProperty(tag))
		{
			arr = effects[tag];
			if (arr.length)
			{
				for (i = 0, len = arr.length; i < len; i++)
					arr[i].remove();
				arr.length = 0;
				reconnectEffects(tag);
			}
		}
	};
	Acts.prototype.SetEffectParameter = function (tag, index, param, value, ramp, time)
	{
		if (api !== API_WEBAUDIO)
			return;
		tag = tag.toLowerCase();
		index = Math.floor(index);
		var arr;
		if (!effects.hasOwnProperty(tag))
			return;
		arr = effects[tag];
		if (index < 0 || index >= arr.length)
			return;
		arr[index].setParam(param, value, ramp, time);
	};
	Acts.prototype.SetListenerObject = function (obj_)
	{
		if (!obj_ || api !== API_WEBAUDIO)
			return;
		var inst = obj_.getFirstPicked();
		if (!inst)
			return;
		this.listenerTracker.setObject(inst);
		listenerX = inst.x;
		listenerY = inst.y;
	};
	Acts.prototype.SetListenerZ = function (z)
	{
		this.listenerZ = z;
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.Duration = function (ret, tag)
	{
		getAudioByTag(tag);
		if (taggedAudio.length)
			ret.set_float(taggedAudio[0].getDuration());
		else
			ret.set_float(0);
	};
	Exps.prototype.PlaybackTime = function (ret, tag)
	{
		getAudioByTag(tag);
		if (taggedAudio.length)
			ret.set_float(taggedAudio[0].getPlaybackTime());
		else
			ret.set_float(0);
	};
	Exps.prototype.Volume = function (ret, tag)
	{
		getAudioByTag(tag);
		if (taggedAudio.length)
		{
			var v = taggedAudio[0].getVolume();
			ret.set_float(linearToDb(v));
		}
		else
			ret.set_float(0);
	};
	Exps.prototype.MasterVolume = function (ret)
	{
		ret.set_float(masterVolume);
	};
	Exps.prototype.EffectCount = function (ret, tag)
	{
		tag = tag.toLowerCase();
		var arr = null;
		if (effects.hasOwnProperty(tag))
			arr = effects[tag];
		ret.set_int(arr ? arr.length : 0);
	};
	function getAnalyser(tag, index)
	{
		var arr = null;
		if (effects.hasOwnProperty(tag))
			arr = effects[tag];
		if (arr && index >= 0 && index < arr.length && arr[index].freqBins)
			return arr[index];
		else
			return null;
	};
	Exps.prototype.AnalyserFreqBinCount = function (ret, tag, index)
	{
		tag = tag.toLowerCase();
		index = Math.floor(index);
		var analyser = getAnalyser(tag, index);
		ret.set_int(analyser ? analyser.node["frequencyBinCount"] : 0);
	};
	Exps.prototype.AnalyserFreqBinAt = function (ret, tag, index, bin)
	{
		tag = tag.toLowerCase();
		index = Math.floor(index);
		bin = Math.floor(bin);
		var analyser = getAnalyser(tag, index);
		if (!analyser)
			ret.set_float(0);
		else if (bin < 0 || bin >= analyser.node["frequencyBinCount"])
			ret.set_float(0);
		else
			ret.set_float(analyser.freqBins[bin]);
	};
	Exps.prototype.AnalyserPeakLevel = function (ret, tag, index)
	{
		tag = tag.toLowerCase();
		index = Math.floor(index);
		var analyser = getAnalyser(tag, index);
		if (analyser)
			ret.set_float(analyser.peak);
		else
			ret.set_float(0);
	};
	Exps.prototype.AnalyserRMSLevel = function (ret, tag, index)
	{
		tag = tag.toLowerCase();
		index = Math.floor(index);
		var analyser = getAnalyser(tag, index);
		if (analyser)
			ret.set_float(analyser.rms);
		else
			ret.set_float(0);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Browser = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Browser.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
	};
	var instanceProto = pluginProto.Instance.prototype;
	instanceProto.onCreate = function()
	{
		var self = this;
		window.addEventListener("resize", function () {
			self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnResize, self);
		});
		if (typeof navigator.onLine !== "undefined")
		{
			window.addEventListener("online", function() {
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnOnline, self);
			});
			window.addEventListener("offline", function() {
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnOffline, self);
			});
		}
		if (typeof window.applicationCache !== "undefined")
		{
			window.applicationCache.addEventListener('updateready', function() {
				self.runtime.loadingprogress = 1;
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnUpdateReady, self);
			});
			window.applicationCache.addEventListener('progress', function(e) {
				self.runtime.loadingprogress = e["loaded"] / e["total"];
			});
		}
		if (!this.runtime.isDirectCanvas)
		{
			document.addEventListener("appMobi.device.update.available", function() {
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnUpdateReady, self);
			});
			document.addEventListener("backbutton", function() {
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnBackButton, self);
			});
			document.addEventListener("menubutton", function() {
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnMenuButton, self);
			});
			document.addEventListener("searchbutton", function() {
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnSearchButton, self);
			});
			document.addEventListener("tizenhwkey", function (e) {
				var ret;
				switch (e["keyName"]) {
				case "back":
					ret = self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnBackButton, self);
					if (!ret)
					{
						if (window["tizen"])
							window["tizen"]["application"]["getCurrentApplication"]()["exit"]();
					}
					break;
				case "menu":
					ret = self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnMenuButton, self);
					if (!ret)
						e.preventDefault();
					break;
				}
			});
		}
		if (this.runtime.isWindowsPhone81)
		{
			WinJS["Application"]["onbackclick"] = function (e)
			{
				return !!self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnBackButton, self);
			};
		}
		this.runtime.addSuspendCallback(function(s) {
			if (s)
			{
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnPageHidden, self);
			}
			else
			{
				self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnPageVisible, self);
			}
		});
		this.is_arcade = (typeof window["is_scirra_arcade"] !== "undefined");
	};
	function Cnds() {};
	Cnds.prototype.CookiesEnabled = function()
	{
		return navigator ? navigator.cookieEnabled : false;
	};
	Cnds.prototype.IsOnline = function()
	{
		return navigator ? navigator.onLine : false;
	};
	Cnds.prototype.HasJava = function()
	{
		return navigator ? navigator.javaEnabled() : false;
	};
	Cnds.prototype.OnOnline = function()
	{
		return true;
	};
	Cnds.prototype.OnOffline = function()
	{
		return true;
	};
	Cnds.prototype.IsDownloadingUpdate = function ()
	{
		if (typeof window["applicationCache"] === "undefined")
			return false;
		else
			return window["applicationCache"]["status"] === window["applicationCache"]["DOWNLOADING"];
	};
	Cnds.prototype.OnUpdateReady = function ()
	{
		return true;
	};
	Cnds.prototype.PageVisible = function ()
	{
		return !this.runtime.isSuspended;
	};
	Cnds.prototype.OnPageVisible = function ()
	{
		return true;
	};
	Cnds.prototype.OnPageHidden = function ()
	{
		return true;
	};
	Cnds.prototype.OnResize = function ()
	{
		return true;
	};
	Cnds.prototype.IsFullscreen = function ()
	{
		return !!(document["mozFullScreen"] || document["webkitIsFullScreen"] || document["fullScreen"] || this.runtime.isNodeFullscreen);
	};
	Cnds.prototype.OnBackButton = function ()
	{
		return true;
	};
	Cnds.prototype.OnMenuButton = function ()
	{
		return true;
	};
	Cnds.prototype.OnSearchButton = function ()
	{
		return true;
	};
	Cnds.prototype.IsMetered = function ()
	{
		var connection = navigator["connection"] || navigator["mozConnection"] || navigator["webkitConnection"];
		if (!connection)
			return false;
		return connection["metered"];
	};
	Cnds.prototype.IsCharging = function ()
	{
		var battery = navigator["battery"] || navigator["mozBattery"] || navigator["webkitBattery"];
		if (!battery)
			return true;
		return battery["charging"];
	};
	Cnds.prototype.IsPortraitLandscape = function (p)
	{
		var current = (window.innerWidth <= window.innerHeight ? 0 : 1);
		return current === p;
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.Alert = function (msg)
	{
		if (!this.runtime.isDomFree)
			alert(msg.toString());
	};
	Acts.prototype.Close = function ()
	{
		if (this.runtime.isCocoonJs)
			CocoonJS["App"]["forceToFinish"]();
		else if (window["tizen"])
			window["tizen"]["application"]["getCurrentApplication"]()["exit"]();
		else if (navigator["app"] && navigator["app"]["exitApp"])
			navigator["app"]["exitApp"]();
		else if (navigator["device"] && navigator["device"]["exitApp"])
			navigator["device"]["exitApp"]();
		else if (!this.is_arcade && !this.runtime.isDomFree)
			window.close();
	};
	Acts.prototype.Focus = function ()
	{
		if (this.runtime.isNodeWebkit)
		{
			var win = window["nwgui"]["Window"]["get"]();
			win["focus"]();
		}
		else if (!this.is_arcade && !this.runtime.isDomFree)
			window.focus();
	};
	Acts.prototype.Blur = function ()
	{
		if (this.runtime.isNodeWebkit)
		{
			var win = window["nwgui"]["Window"]["get"]();
			win["blur"]();
		}
		else if (!this.is_arcade && !this.runtime.isDomFree)
			window.blur();
	};
	Acts.prototype.GoBack = function ()
	{
		if (navigator["app"] && navigator["app"]["backHistory"])
			navigator["app"]["backHistory"]();
		else if (!this.is_arcade && !this.runtime.isDomFree && window.back)
			window.back();
	};
	Acts.prototype.GoForward = function ()
	{
		if (!this.is_arcade && !this.runtime.isDomFree && window.forward)
			window.forward();
	};
	Acts.prototype.GoHome = function ()
	{
		if (!this.is_arcade && !this.runtime.isDomFree && window.home)
			window.home();
	};
	Acts.prototype.GoToURL = function (url)
	{
		if (this.runtime.isCocoonJs)
			CocoonJS["App"]["openURL"](url);
		else if (this.runtime.isEjecta)
			ejecta["openURL"](url);
		else if (this.runtime.isWinJS)
			Windows["System"]["Launcher"]["launchUriAsync"](new Windows["Foundation"]["Uri"](url));
		else if (!this.is_arcade && !this.runtime.isDomFree)
			window.location = url;
	};
	Acts.prototype.GoToURLWindow = function (url, tag)
	{
		if (this.runtime.isCocoonJs)
			CocoonJS["App"]["openURL"](url);
		else if (this.runtime.isEjecta)
			ejecta["openURL"](url);
		else if (this.runtime.isWinJS)
			Windows["System"]["Launcher"]["launchUriAsync"](new Windows["Foundation"]["Uri"](url));
		else if (!this.is_arcade && !this.runtime.isDomFree)
			window.open(url, tag);
	};
	Acts.prototype.Reload = function ()
	{
		if (!this.is_arcade && !this.runtime.isDomFree)
			window.location.reload();
	};
	var firstRequestFullscreen = true;
	var crruntime = null;
	function onFullscreenError()
	{
		if (typeof jQuery !== "undefined")
		{
			crruntime["setSize"](jQuery(window).width(), jQuery(window).height());
		}
	};
	Acts.prototype.RequestFullScreen = function (stretchmode)
	{
		if (this.runtime.isDomFree)
		{
			cr.logexport("[Construct 2] Requesting fullscreen is not supported on this platform - the request has been ignored");
			return;
		}
		if (stretchmode >= 2)
			stretchmode += 1;
		if (stretchmode === 6)
			stretchmode = 2;
		if (this.runtime.isNodeWebkit)
		{
			if (!this.runtime.isNodeFullscreen)
			{
				window["nwgui"]["Window"]["get"]()["enterFullscreen"]();
				this.runtime.isNodeFullscreen = true;
				this.runtime.fullscreen_scaling = (stretchmode >= 2 ? stretchmode : 0);
			}
		}
		else
		{
			if (document["mozFullScreen"] || document["webkitIsFullScreen"] || !!document["msFullscreenElement"] || document["fullScreen"])
			{
				return;
			}
			this.runtime.fullscreen_scaling = (stretchmode >= 2 ? stretchmode : 0);
			var elem = this.runtime.canvasdiv || this.runtime.canvas;
			if (firstRequestFullscreen)
			{
				firstRequestFullscreen = false;
				crruntime = this.runtime;
				elem.addEventListener("mozfullscreenerror", onFullscreenError);
				elem.addEventListener("webkitfullscreenerror", onFullscreenError);
				elem.addEventListener("msfullscreenerror", onFullscreenError);
				elem.addEventListener("fullscreenerror", onFullscreenError);
			}
			if (!cr.is_undefined(elem["requestFullscreen"]))
				elem["requestFullscreen"]();
			else if (!cr.is_undefined(elem["webkitRequestFullScreen"]))
			{
				if (typeof Element !== "undefined" && typeof Element["ALLOW_KEYBOARD_INPUT"] !== "undefined")
					elem["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]);
				else
					elem["webkitRequestFullScreen"]();
			}
			else if (!cr.is_undefined(elem["mozRequestFullScreen"]))
				elem["mozRequestFullScreen"]();
			else if (!cr.is_undefined(elem["msRequestFullscreen"]))
				elem["msRequestFullscreen"]();
		}
	};
	Acts.prototype.CancelFullScreen = function ()
	{
		if (this.runtime.isDomFree)
		{
			cr.logexport("[Construct 2] Exiting fullscreen is not supported on this platform - the request has been ignored");
			return;
		}
		if (this.runtime.isNodeWebkit)
		{
			if (this.runtime.isNodeFullscreen)
			{
				window["nwgui"]["Window"]["get"]()["leaveFullscreen"]();
				this.runtime.isNodeFullscreen = false;
			}
		}
		else
		{
			if (!cr.is_undefined(document["exitFullscreen"]))
				document["exitFullscreen"]();
			else if (!cr.is_undefined(document["webkitCancelFullScreen"]))
				document["webkitCancelFullScreen"]();
			else if (!cr.is_undefined(document["mozCancelFullScreen"]))
				document["mozCancelFullScreen"]();
			else if (!cr.is_undefined(document["msExitFullscreen"]))
				document["msExitFullscreen"]();
		}
	};
	Acts.prototype.Vibrate = function (pattern_)
	{
		try {
			var arr = pattern_.split(",");
			var i, len;
			for (i = 0, len = arr.length; i < len; i++)
			{
				arr[i] = parseInt(arr[i], 10);
			}
			if (navigator["vibrate"])
				navigator["vibrate"](arr);
			else if (navigator["mozVibrate"])
				navigator["mozVibrate"](arr);
			else if (navigator["webkitVibrate"])
				navigator["webkitVibrate"](arr);
			else if (navigator["msVibrate"])
				navigator["msVibrate"](arr);
		}
		catch (e) {}
	};
	Acts.prototype.InvokeDownload = function (url_, filename_)
	{
		var a = document.createElement("a");
		if (typeof a["download"] === "undefined")
		{
			window.open(url_);
		}
		else
		{
			var body = document.getElementsByTagName("body")[0];
			a.textContent = filename_;
			a.href = url_;
			a["download"] = filename_;
			body.appendChild(a);
			var clickEvent = document.createEvent("MouseEvent");
			clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
			a.dispatchEvent(clickEvent);
			body.removeChild(a);
		}
	};
	Acts.prototype.InvokeDownloadString = function (str_, mimetype_, filename_)
	{
		var datauri = "data:" + mimetype_ + "," + encodeURIComponent(str_);
		var a = document.createElement("a");
		if (typeof a["download"] === "undefined")
		{
			window.open(datauri);
		}
		else
		{
			var body = document.getElementsByTagName("body")[0];
			a.textContent = filename_;
			a.href = datauri;
			a["download"] = filename_;
			body.appendChild(a);
			var clickEvent = document.createEvent("MouseEvent");
			clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
			a.dispatchEvent(clickEvent);
			body.removeChild(a);
		}
	};
	Acts.prototype.ConsoleLog = function (type_, msg_)
	{
		if (typeof console === "undefined")
			return;
		if (type_ === 0 && console.log)
			console.log(msg_.toString());
		if (type_ === 1 && console.warn)
			console.warn(msg_.toString());
		if (type_ === 2 && console.error)
			console.error(msg_.toString());
	};
	Acts.prototype.ConsoleGroup = function (name_)
	{
		if (console && console.group)
			console.group(name_);
	};
	Acts.prototype.ConsoleGroupEnd = function ()
	{
		if (console && console.groupEnd)
			console.groupEnd();
	};
	Acts.prototype.ExecJs = function (js_)
	{
		if (eval)
			eval(js_);
	};
	var orientations = [
		"portrait",
		"landscape",
		"portrait-primary",
		"portrait-secondary",
		"landscape-primary",
		"landscape-secondary"
	];
	Acts.prototype.LockOrientation = function (o)
	{
		o = Math.floor(o);
		if (o < 0 || o >= orientations.length)
			return;
		this.runtime.autoLockOrientation = false;
		var orientation = orientations[o];
		if (screen["lockOrientation"])
			screen["lockOrientation"](orientation);
		else if (screen["webkitLockOrientation"])
			screen["webkitLockOrientation"](orientation);
		else if (screen["mozLockOrientation"])
			screen["mozLockOrientation"](orientation);
		else if (screen["msLockOrientation"])
			screen["msLockOrientation"](orientation);
	};
	Acts.prototype.UnlockOrientation = function ()
	{
		this.runtime.autoLockOrientation = false;
		if (screen["unlockOrientation"])
			screen["unlockOrientation"]();
		else if (screen["webkitUnlockOrientation"])
			screen["webkitUnlockOrientation"]();
		else if (screen["mozUnlockOrientation"])
			screen["mozUnlockOrientation"]();
		else if (screen["msUnlockOrientation"])
			screen["msUnlockOrientation"]();
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.URL = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : window.location.toString());
	};
	Exps.prototype.Protocol = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : window.location.protocol);
	};
	Exps.prototype.Domain = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : window.location.hostname);
	};
	Exps.prototype.PathName = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : window.location.pathname);
	};
	Exps.prototype.Hash = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : window.location.hash);
	};
	Exps.prototype.Referrer = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : document.referrer);
	};
	Exps.prototype.Title = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : document.title);
	};
	Exps.prototype.Name = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : navigator.appName);
	};
	Exps.prototype.Version = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : navigator.appVersion);
	};
	Exps.prototype.Language = function (ret)
	{
		if (navigator && navigator.language)
			ret.set_string(navigator.language);
		else
			ret.set_string("");
	};
	Exps.prototype.Platform = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : navigator.platform);
	};
	Exps.prototype.Product = function (ret)
	{
		if (navigator && navigator.product)
			ret.set_string(navigator.product);
		else
			ret.set_string("");
	};
	Exps.prototype.Vendor = function (ret)
	{
		if (navigator && navigator.vendor)
			ret.set_string(navigator.vendor);
		else
			ret.set_string("");
	};
	Exps.prototype.UserAgent = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : navigator.userAgent);
	};
	Exps.prototype.QueryString = function (ret)
	{
		ret.set_string(this.runtime.isDomFree ? "" : window.location.search);
	};
	Exps.prototype.QueryParam = function (ret, paramname)
	{
		if (this.runtime.isDomFree)
		{
			ret.set_string("");
			return;
		}
		var match = RegExp('[?&]' + paramname + '=([^&]*)').exec(window.location.search);
		if (match)
			ret.set_string(decodeURIComponent(match[1].replace(/\+/g, ' ')));
		else
			ret.set_string("");
	};
	Exps.prototype.Bandwidth = function (ret)
	{
		var connection = navigator["connection"] || navigator["mozConnection"] || navigator["webkitConnection"];
		if (!connection)
			ret.set_float(Number.POSITIVE_INFINITY);
		else
			ret.set_float(connection["bandwidth"]);
	};
	Exps.prototype.BatteryLevel = function (ret)
	{
		var battery = navigator["battery"] || navigator["mozBattery"] || navigator["webkitBattery"];
		if (!battery)
			ret.set_float(1);
		else
			ret.set_float(battery["level"]);
	};
	Exps.prototype.BatteryTimeLeft = function (ret)
	{
		var battery = navigator["battery"] || navigator["mozBattery"] || navigator["webkitBattery"];
		if (!battery)
			ret.set_float(Number.POSITIVE_INFINITY);
		else
			ret.set_float(battery["dischargingTime"]);
	};
	Exps.prototype.ExecJS = function (ret, js_)
	{
		if (!eval)
		{
			ret.set_any(0);
			return;
		}
		var result = eval(js_);
		if (typeof result === "number")
			ret.set_any(result);
		else if (typeof result === "string")
			ret.set_any(result);
		else if (typeof result === "boolean")
			ret.set_any(result ? 1 : 0);
		else
			ret.set_any(0);
	};
	Exps.prototype.ScreenWidth = function (ret)
	{
		ret.set_int(screen.width);
	};
	Exps.prototype.ScreenHeight = function (ret)
	{
		ret.set_int(screen.height);
	};
	Exps.prototype.DevicePixelRatio = function (ret)
	{
		ret.set_float(this.runtime.devicePixelRatio);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Dictionary = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Dictionary.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
	};
	var instanceProto = pluginProto.Instance.prototype;
	instanceProto.onCreate = function()
	{
		this.dictionary = {};
		this.cur_key = "";		// current key in for-each loop
		this.key_count = 0;
	};
	instanceProto.saveToJSON = function ()
	{
		return this.dictionary;
	};
	instanceProto.loadFromJSON = function (o)
	{
		this.dictionary = o;
		this.key_count = 0;
		for (var p in this.dictionary)
		{
			if (this.dictionary.hasOwnProperty(p))
				this.key_count++;
		}
	};
	function Cnds() {};
	Cnds.prototype.CompareValue = function (key_, cmp_, value_)
	{
		return cr.do_cmp(this.dictionary[key_], cmp_, value_);
	};
	Cnds.prototype.ForEachKey = function ()
	{
		var current_event = this.runtime.getCurrentEventStack().current_event;
		for (var p in this.dictionary)
		{
			if (this.dictionary.hasOwnProperty(p))
			{
				this.cur_key = p;
				this.runtime.pushCopySol(current_event.solModifiers);
				current_event.retrigger();
				this.runtime.popSol(current_event.solModifiers);
			}
		}
		this.cur_key = "";
		return false;
	};
	Cnds.prototype.CompareCurrentValue = function (cmp_, value_)
	{
		return cr.do_cmp(this.dictionary[this.cur_key], cmp_, value_);
	};
	Cnds.prototype.HasKey = function (key_)
	{
		return this.dictionary.hasOwnProperty(key_);
	};
	Cnds.prototype.IsEmpty = function ()
	{
		return this.key_count === 0;
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.AddKey = function (key_, value_)
	{
		if (!this.dictionary.hasOwnProperty(key_))
			this.key_count++;
		this.dictionary[key_] = value_;
	};
	Acts.prototype.SetKey = function (key_, value_)
	{
		if (this.dictionary.hasOwnProperty(key_))
			this.dictionary[key_] = value_;
	};
	Acts.prototype.DeleteKey = function (key_)
	{
		if (this.dictionary.hasOwnProperty(key_))
		{
			delete this.dictionary[key_];
			this.key_count--;
		}
	};
	Acts.prototype.Clear = function ()
	{
		cr.wipe(this.dictionary);		// avoid garbaging
		this.key_count = 0;
	};
	Acts.prototype.JSONLoad = function (json_)
	{
		var o;
		try {
			o = JSON.parse(json_);
		}
		catch(e) { return; }
		if (!o["c2dictionary"])		// presumably not a c2dictionary object
			return;
		this.dictionary = o["data"];
		this.key_count = 0;
		for (var p in this.dictionary)
		{
			if (this.dictionary.hasOwnProperty(p))
				this.key_count++;
		}
	};
	Acts.prototype.JSONDownload = function (filename)
	{
		var a = document.createElement("a");
		if (typeof a.download === "undefined")
		{
			var str = 'data:text/html,' + encodeURIComponent("<p><a download='data.json' href=\"data:application/json,"
				+ encodeURIComponent(JSON.stringify({
						"c2dictionary": true,
						"data": this.dictionary
					}))
				+ "\">Download link</a></p>");
			window.open(str);
		}
		else
		{
			var body = document.getElementsByTagName("body")[0];
			a.textContent = filename;
			a.href = "data:application/json," + encodeURIComponent(JSON.stringify({
						"c2dictionary": true,
						"data": this.dictionary
					}));
			a.download = filename;
			body.appendChild(a);
			var clickEvent = document.createEvent("MouseEvent");
			clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
			a.dispatchEvent(clickEvent);
			body.removeChild(a);
		}
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.Get = function (ret, key_)
	{
		if (this.dictionary.hasOwnProperty(key_))
			ret.set_any(this.dictionary[key_]);
		else
			ret.set_int(0);
	};
	Exps.prototype.KeyCount = function (ret)
	{
		ret.set_int(this.key_count);
	};
	Exps.prototype.CurrentKey = function (ret)
	{
		ret.set_string(this.cur_key);
	};
	Exps.prototype.CurrentValue = function (ret)
	{
		if (this.dictionary.hasOwnProperty(this.cur_key))
			ret.set_any(this.dictionary[this.cur_key]);
		else
			ret.set_int(0);
	};
	Exps.prototype.AsJSON = function (ret)
	{
		ret.set_string(JSON.stringify({
			"c2dictionary": true,
			"data": this.dictionary
		}));
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Function = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Function.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
	};
	var instanceProto = pluginProto.Instance.prototype;
	var funcStack = [];
	var funcStackPtr = -1;
	var isInPreview = false;	// set in onCreate
	function FuncStackEntry()
	{
		this.name = "";
		this.retVal = 0;
		this.params = [];
	};
	function pushFuncStack()
	{
		funcStackPtr++;
		if (funcStackPtr === funcStack.length)
			funcStack.push(new FuncStackEntry());
		return funcStack[funcStackPtr];
	};
	function getCurrentFuncStack()
	{
		if (funcStackPtr < 0)
			return null;
		return funcStack[funcStackPtr];
	};
	function getOneAboveFuncStack()
	{
		if (!funcStack.length)
			return null;
		var i = funcStackPtr + 1;
		if (i >= funcStack.length)
			i = funcStack.length - 1;
		return funcStack[i];
	};
	function popFuncStack()
	{
;
		funcStackPtr--;
	};
	instanceProto.onCreate = function()
	{
		isInPreview = (typeof cr_is_preview !== "undefined");
	};
	function Cnds() {};
	Cnds.prototype.OnFunction = function (name_)
	{
		var fs = getCurrentFuncStack();
		if (!fs)
			return false;
		return cr.equals_nocase(name_, fs.name);
	};
	Cnds.prototype.CompareParam = function (index_, cmp_, value_)
	{
		var fs = getCurrentFuncStack();
		if (!fs)
			return false;
		index_ = cr.floor(index_);
		if (index_ < 0 || index_ >= fs.params.length)
			return false;
		return cr.do_cmp(fs.params[index_], cmp_, value_);
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.CallFunction = function (name_, params_)
	{
		var fs = pushFuncStack();
		fs.name = name_.toLowerCase();
		fs.retVal = 0;
		cr.shallowAssignArray(fs.params, params_);
		var ran = this.runtime.trigger(cr.plugins_.Function.prototype.cnds.OnFunction, this, fs.name);
		if (isInPreview && !ran)
		{
;
		}
		popFuncStack();
	};
	Acts.prototype.SetReturnValue = function (value_)
	{
		var fs = getCurrentFuncStack();
		if (fs)
			fs.retVal = value_;
		else
;
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.ReturnValue = function (ret)
	{
		var fs = getOneAboveFuncStack();
		if (fs)
			ret.set_any(fs.retVal);
		else
			ret.set_int(0);
	};
	Exps.prototype.ParamCount = function (ret)
	{
		var fs = getCurrentFuncStack();
		if (fs)
			ret.set_int(fs.params.length);
		else
		{
;
			ret.set_int(0);
		}
	};
	Exps.prototype.Param = function (ret, index_)
	{
		index_ = cr.floor(index_);
		var fs = getCurrentFuncStack();
		if (fs)
		{
			if (index_ >= 0 && index_ < fs.params.length)
			{
				ret.set_any(fs.params[index_]);
			}
			else
			{
;
				ret.set_int(0);
			}
		}
		else
		{
;
			ret.set_int(0);
		}
	};
	Exps.prototype.Call = function (ret, name_)
	{
		var fs = pushFuncStack();
		fs.name = name_.toLowerCase();
		fs.retVal = 0;
		fs.params.length = 0;
		var i, len;
		for (i = 2, len = arguments.length; i < len; i++)
			fs.params.push(arguments[i]);
		var ran = this.runtime.trigger(cr.plugins_.Function.prototype.cnds.OnFunction, this, fs.name);
		if (isInPreview && !ran)
		{
;
		}
		popFuncStack();
		ret.set_any(fs.retVal);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Keyboard = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Keyboard.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
		this.keyMap = new Array(256);	// stores key up/down state
		this.usedKeys = new Array(256);
		this.triggerKey = 0;
	};
	var instanceProto = pluginProto.Instance.prototype;
	instanceProto.onCreate = function()
	{
		var self = this;
		if (!this.runtime.isDomFree)
		{
			jQuery(document).keydown(
				function(info) {
					self.onKeyDown(info);
				}
			);
			jQuery(document).keyup(
				function(info) {
					self.onKeyUp(info);
				}
			);
		}
	};
	var keysToBlockWhenFramed = [32, 33, 34, 35, 36, 37, 38, 39, 40, 44];
	instanceProto.onKeyDown = function (info)
	{
		var alreadyPreventedDefault = false;
		if (window != window.top && keysToBlockWhenFramed.indexOf(info.which) > -1)
		{
			info.preventDefault();
			alreadyPreventedDefault = true;
			info.stopPropagation();
		}
		if (this.keyMap[info.which])
		{
			if (this.usedKeys[info.which] && !alreadyPreventedDefault)
				info.preventDefault();
			return;
		}
		this.keyMap[info.which] = true;
		this.triggerKey = info.which;
		this.runtime.isInUserInputEvent = true;
		this.runtime.trigger(cr.plugins_.Keyboard.prototype.cnds.OnAnyKey, this);
		var eventRan = this.runtime.trigger(cr.plugins_.Keyboard.prototype.cnds.OnKey, this);
		var eventRan2 = this.runtime.trigger(cr.plugins_.Keyboard.prototype.cnds.OnKeyCode, this);
		this.runtime.isInUserInputEvent = false;
		if (eventRan || eventRan2)
		{
			this.usedKeys[info.which] = true;
			if (!alreadyPreventedDefault)
				info.preventDefault();
		}
	};
	instanceProto.onKeyUp = function (info)
	{
		this.keyMap[info.which] = false;
		this.triggerKey = info.which;
		this.runtime.isInUserInputEvent = true;
		this.runtime.trigger(cr.plugins_.Keyboard.prototype.cnds.OnAnyKeyReleased, this);
		var eventRan = this.runtime.trigger(cr.plugins_.Keyboard.prototype.cnds.OnKeyReleased, this);
		var eventRan2 = this.runtime.trigger(cr.plugins_.Keyboard.prototype.cnds.OnKeyCodeReleased, this);
		this.runtime.isInUserInputEvent = false;
		if (eventRan || eventRan2 || this.usedKeys[info.which])
		{
			this.usedKeys[info.which] = true;
			info.preventDefault();
		}
	};
	instanceProto.saveToJSON = function ()
	{
		return { "triggerKey": this.triggerKey };
	};
	instanceProto.loadFromJSON = function (o)
	{
		this.triggerKey = o["triggerKey"];
	};
	function Cnds() {};
	Cnds.prototype.IsKeyDown = function(key)
	{
		return this.keyMap[key];
	};
	Cnds.prototype.OnKey = function(key)
	{
		return (key === this.triggerKey);
	};
	Cnds.prototype.OnAnyKey = function(key)
	{
		return true;
	};
	Cnds.prototype.OnAnyKeyReleased = function(key)
	{
		return true;
	};
	Cnds.prototype.OnKeyReleased = function(key)
	{
		return (key === this.triggerKey);
	};
	Cnds.prototype.IsKeyCodeDown = function(key)
	{
		key = Math.floor(key);
		if (key < 0 || key >= this.keyMap.length)
			return false;
		return this.keyMap[key];
	};
	Cnds.prototype.OnKeyCode = function(key)
	{
		return (key === this.triggerKey);
	};
	Cnds.prototype.OnKeyCodeReleased = function(key)
	{
		return (key === this.triggerKey);
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.LastKeyCode = function (ret)
	{
		ret.set_int(this.triggerKey);
	};
	function fixedStringFromCharCode(kc)
	{
		kc = Math.floor(kc);
		switch (kc) {
		case 8:		return "backspace";
		case 9:		return "tab";
		case 13:	return "enter";
		case 16:	return "shift";
		case 17:	return "control";
		case 18:	return "alt";
		case 19:	return "pause";
		case 20:	return "capslock";
		case 27:	return "esc";
		case 33:	return "pageup";
		case 34:	return "pagedown";
		case 35:	return "end";
		case 36:	return "home";
		case 37:	return "←";
		case 38:	return "↑";
		case 39:	return "→";
		case 40:	return "↓";
		case 45:	return "insert";
		case 46:	return "del";
		case 91:	return "left window key";
		case 92:	return "right window key";
		case 93:	return "select";
		case 96:	return "numpad 0";
		case 97:	return "numpad 1";
		case 98:	return "numpad 2";
		case 99:	return "numpad 3";
		case 100:	return "numpad 4";
		case 101:	return "numpad 5";
		case 102:	return "numpad 6";
		case 103:	return "numpad 7";
		case 104:	return "numpad 8";
		case 105:	return "numpad 9";
		case 106:	return "numpad *";
		case 107:	return "numpad +";
		case 109:	return "numpad -";
		case 110:	return "numpad .";
		case 111:	return "numpad /";
		case 112:	return "F1";
		case 113:	return "F2";
		case 114:	return "F3";
		case 115:	return "F4";
		case 116:	return "F5";
		case 117:	return "F6";
		case 118:	return "F7";
		case 119:	return "F8";
		case 120:	return "F9";
		case 121:	return "F10";
		case 122:	return "F11";
		case 123:	return "F12";
		case 144:	return "numlock";
		case 145:	return "scroll lock";
		case 186:	return ";";
		case 187:	return "=";
		case 188:	return ",";
		case 189:	return "-";
		case 190:	return ".";
		case 191:	return "/";
		case 192:	return "'";
		case 219:	return "[";
		case 220:	return "\\";
		case 221:	return "]";
		case 222:	return "#";
		case 223:	return "`";
		default:	return String.fromCharCode(kc);
		}
	};
	Exps.prototype.StringFromKeyCode = function (ret, kc)
	{
		ret.set_string(fixedStringFromCharCode(kc));
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Sprite = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Sprite.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	function frame_getDataUri()
	{
		if (this.datauri.length === 0)
		{
			var tmpcanvas = document.createElement("canvas");
			tmpcanvas.width = this.width;
			tmpcanvas.height = this.height;
			var tmpctx = tmpcanvas.getContext("2d");
			if (this.spritesheeted)
			{
				tmpctx.drawImage(this.texture_img, this.offx, this.offy, this.width, this.height,
										 0, 0, this.width, this.height);
			}
			else
			{
				tmpctx.drawImage(this.texture_img, 0, 0, this.width, this.height);
			}
			this.datauri = tmpcanvas.toDataURL("image/png");
		}
		return this.datauri;
	};
	typeProto.onCreate = function()
	{
		if (this.is_family)
			return;
		var i, leni, j, lenj;
		var anim, frame, animobj, frameobj, wt, uv;
		this.all_frames = [];
		this.has_loaded_textures = false;
		for (i = 0, leni = this.animations.length; i < leni; i++)
		{
			anim = this.animations[i];
			animobj = {};
			animobj.name = anim[0];
			animobj.speed = anim[1];
			animobj.loop = anim[2];
			animobj.repeatcount = anim[3];
			animobj.repeatto = anim[4];
			animobj.pingpong = anim[5];
			animobj.sid = anim[6];
			animobj.frames = [];
			for (j = 0, lenj = anim[7].length; j < lenj; j++)
			{
				frame = anim[7][j];
				frameobj = {};
				frameobj.texture_file = frame[0];
				frameobj.texture_filesize = frame[1];
				frameobj.offx = frame[2];
				frameobj.offy = frame[3];
				frameobj.width = frame[4];
				frameobj.height = frame[5];
				frameobj.duration = frame[6];
				frameobj.hotspotX = frame[7];
				frameobj.hotspotY = frame[8];
				frameobj.image_points = frame[9];
				frameobj.poly_pts = frame[10];
				frameobj.pixelformat = frame[11];
				frameobj.spritesheeted = (frameobj.width !== 0);
				frameobj.datauri = "";		// generated on demand and cached
				frameobj.getDataUri = frame_getDataUri;
				uv = {};
				uv.left = 0;
				uv.top = 0;
				uv.right = 1;
				uv.bottom = 1;
				frameobj.sheetTex = uv;
				frameobj.webGL_texture = null;
				wt = this.runtime.findWaitingTexture(frame[0]);
				if (wt)
				{
					frameobj.texture_img = wt;
				}
				else
				{
					frameobj.texture_img = new Image();
					frameobj.texture_img["idtkLoadDisposed"] = true;
					frameobj.texture_img.src = frame[0];
					frameobj.texture_img.cr_src = frame[0];
					frameobj.texture_img.cr_filesize = frame[1];
					frameobj.texture_img.c2webGL_texture = null;
					this.runtime.waitForImageLoad(frameobj.texture_img);
				}
				cr.seal(frameobj);
				animobj.frames.push(frameobj);
				this.all_frames.push(frameobj);
			}
			cr.seal(animobj);
			this.animations[i] = animobj;		// swap array data for object
		}
	};
	typeProto.updateAllCurrentTexture = function ()
	{
		var i, len, inst;
		for (i = 0, len = this.instances.length; i < len; i++)
		{
			inst = this.instances[i];
			inst.curWebGLTexture = inst.curFrame.webGL_texture;
		}
	};
	typeProto.onLostWebGLContext = function ()
	{
		if (this.is_family)
			return;
		var i, len, frame;
		for (i = 0, len = this.all_frames.length; i < len; ++i)
		{
			frame = this.all_frames[i];
			frame.texture_img.c2webGL_texture = null;
			frame.webGL_texture = null;
		}
	};
	typeProto.onRestoreWebGLContext = function ()
	{
		if (this.is_family || !this.instances.length)
			return;
		var i, len, frame;
		for (i = 0, len = this.all_frames.length; i < len; ++i)
		{
			frame = this.all_frames[i];
			frame.webGL_texture = this.runtime.glwrap.loadTexture(frame.texture_img, false, this.runtime.linearSampling, frame.pixelformat);
		}
		this.updateAllCurrentTexture();
	};
	typeProto.loadTextures = function ()
	{
		if (this.is_family || this.has_loaded_textures || !this.runtime.glwrap)
			return;
		var i, len, frame;
		for (i = 0, len = this.all_frames.length; i < len; ++i)
		{
			frame = this.all_frames[i];
			frame.webGL_texture = this.runtime.glwrap.loadTexture(frame.texture_img, false, this.runtime.linearSampling, frame.pixelformat);
		}
		this.has_loaded_textures = true;
	};
	typeProto.unloadTextures = function ()
	{
		if (this.is_family || this.instances.length || !this.has_loaded_textures)
			return;
		var i, len, frame;
		for (i = 0, len = this.all_frames.length; i < len; ++i)
		{
			frame = this.all_frames[i];
			this.runtime.glwrap.deleteTexture(frame.webGL_texture);
			frame.webGL_texture = null;
		}
		this.has_loaded_textures = false;
	};
	var already_drawn_images = [];
	typeProto.preloadCanvas2D = function (ctx)
	{
		var i, len, frameimg;
		already_drawn_images.length = 0;
		for (i = 0, len = this.all_frames.length; i < len; ++i)
		{
			frameimg = this.all_frames[i].texture_img;
			if (already_drawn_images.indexOf(frameimg) !== -1)
					continue;
			ctx.drawImage(frameimg, 0, 0);
			already_drawn_images.push(frameimg);
		}
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
		var poly_pts = this.type.animations[0].frames[0].poly_pts;
		if (this.recycled)
			this.collision_poly.set_pts(poly_pts);
		else
			this.collision_poly = new cr.CollisionPoly(poly_pts);
	};
	var instanceProto = pluginProto.Instance.prototype;
	instanceProto.onCreate = function()
	{
		this.visible = (this.properties[0] === 0);	// 0=visible, 1=invisible
		this.isTicking = false;
		this.inAnimTrigger = false;
		this.collisionsEnabled = (this.properties[3] !== 0);
		if (!(this.type.animations.length === 1 && this.type.animations[0].frames.length === 1) && this.type.animations[0].speed !== 0)
		{
			this.runtime.tickMe(this);
			this.isTicking = true;
		}
		this.cur_animation = this.getAnimationByName(this.properties[1]) || this.type.animations[0];
		this.cur_frame = this.properties[2];
		if (this.cur_frame < 0)
			this.cur_frame = 0;
		if (this.cur_frame >= this.cur_animation.frames.length)
			this.cur_frame = this.cur_animation.frames.length - 1;
		var curanimframe = this.cur_animation.frames[this.cur_frame];
		this.collision_poly.set_pts(curanimframe.poly_pts);
		this.hotspotX = curanimframe.hotspotX;
		this.hotspotY = curanimframe.hotspotY;
		this.cur_anim_speed = this.cur_animation.speed;
		if (this.recycled)
			this.animTimer.reset();
		else
			this.animTimer = new cr.KahanAdder();
		this.frameStart = this.getNowTime();
		this.animPlaying = true;
		this.animRepeats = 0;
		this.animForwards = true;
		this.animTriggerName = "";
		this.changeAnimName = "";
		this.changeAnimFrom = 0;
		this.changeAnimFrame = -1;
		this.type.loadTextures();
		var i, leni, j, lenj;
		var anim, frame, uv, maintex;
		for (i = 0, leni = this.type.animations.length; i < leni; i++)
		{
			anim = this.type.animations[i];
			for (j = 0, lenj = anim.frames.length; j < lenj; j++)
			{
				frame = anim.frames[j];
				if (frame.width === 0)
				{
					frame.width = frame.texture_img.width;
					frame.height = frame.texture_img.height;
				}
				if (frame.spritesheeted)
				{
					maintex = frame.texture_img;
					uv = frame.sheetTex;
					uv.left = frame.offx / maintex.width;
					uv.top = frame.offy / maintex.height;
					uv.right = (frame.offx + frame.width) / maintex.width;
					uv.bottom = (frame.offy + frame.height) / maintex.height;
					if (frame.offx === 0 && frame.offy === 0 && frame.width === maintex.width && frame.height === maintex.height)
					{
						frame.spritesheeted = false;
					}
				}
			}
		}
		this.curFrame = this.cur_animation.frames[this.cur_frame];
		this.curWebGLTexture = this.curFrame.webGL_texture;
	};
	instanceProto.saveToJSON = function ()
	{
		var o = {
			"a": this.cur_animation.sid,
			"f": this.cur_frame,
			"cas": this.cur_anim_speed,
			"fs": this.frameStart,
			"ar": this.animRepeats,
			"at": this.animTimer.sum
		};
		if (!this.animPlaying)
			o["ap"] = this.animPlaying;
		if (!this.animForwards)
			o["af"] = this.animForwards;
		return o;
	};
	instanceProto.loadFromJSON = function (o)
	{
		var anim = this.getAnimationBySid(o["a"]);
		if (anim)
			this.cur_animation = anim;
		this.cur_frame = o["f"];
		if (this.cur_frame < 0)
			this.cur_frame = 0;
		if (this.cur_frame >= this.cur_animation.frames.length)
			this.cur_frame = this.cur_animation.frames.length - 1;
		this.cur_anim_speed = o["cas"];
		this.frameStart = o["fs"];
		this.animRepeats = o["ar"];
		this.animTimer.reset();
		this.animTimer.sum = o["at"];
		this.animPlaying = o.hasOwnProperty("ap") ? o["ap"] : true;
		this.animForwards = o.hasOwnProperty("af") ? o["af"] : true;
		this.curFrame = this.cur_animation.frames[this.cur_frame];
		this.curWebGLTexture = this.curFrame.webGL_texture;
		this.collision_poly.set_pts(this.curFrame.poly_pts);
		this.hotspotX = this.curFrame.hotspotX;
		this.hotspotY = this.curFrame.hotspotY;
	};
	instanceProto.animationFinish = function (reverse)
	{
		this.cur_frame = reverse ? 0 : this.cur_animation.frames.length - 1;
		this.animPlaying = false;
		this.animTriggerName = this.cur_animation.name;
		this.inAnimTrigger = true;
		this.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnAnyAnimFinished, this);
		this.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnAnimFinished, this);
		this.inAnimTrigger = false;
		this.animRepeats = 0;
	};
	instanceProto.getNowTime = function()
	{
		return this.animTimer.sum;
	};
	instanceProto.tick = function()
	{
		this.animTimer.add(this.runtime.getDt(this));
		if (this.changeAnimName.length)
			this.doChangeAnim();
		if (this.changeAnimFrame >= 0)
			this.doChangeAnimFrame();
		var now = this.getNowTime();
		var cur_animation = this.cur_animation;
		var prev_frame = cur_animation.frames[this.cur_frame];
		var next_frame;
		var cur_frame_time = prev_frame.duration / this.cur_anim_speed;
		if (this.animPlaying && now >= this.frameStart + cur_frame_time)
		{
			if (this.animForwards)
			{
				this.cur_frame++;
			}
			else
			{
				this.cur_frame--;
			}
			this.frameStart += cur_frame_time;
			if (this.cur_frame >= cur_animation.frames.length)
			{
				if (cur_animation.pingpong)
				{
					this.animForwards = false;
					this.cur_frame = cur_animation.frames.length - 2;
				}
				else if (cur_animation.loop)
				{
					this.cur_frame = cur_animation.repeatto;
				}
				else
				{
					this.animRepeats++;
					if (this.animRepeats >= cur_animation.repeatcount)
					{
						this.animationFinish(false);
					}
					else
					{
						this.cur_frame = cur_animation.repeatto;
					}
				}
			}
			if (this.cur_frame < 0)
			{
				if (cur_animation.pingpong)
				{
					this.cur_frame = 1;
					this.animForwards = true;
					if (!cur_animation.loop)
					{
						this.animRepeats++;
						if (this.animRepeats >= cur_animation.repeatcount)
						{
							this.animationFinish(true);
						}
					}
				}
				else
				{
					if (cur_animation.loop)
					{
						this.cur_frame = cur_animation.repeatto;
					}
					else
					{
						this.animRepeats++;
						if (this.animRepeats >= cur_animation.repeatcount)
						{
							this.animationFinish(true);
						}
						else
						{
							this.cur_frame = cur_animation.repeatto;
						}
					}
				}
			}
			if (this.cur_frame < 0)
				this.cur_frame = 0;
			else if (this.cur_frame >= cur_animation.frames.length)
				this.cur_frame = cur_animation.frames.length - 1;
			if (now > this.frameStart + (cur_animation.frames[this.cur_frame].duration / this.cur_anim_speed))
			{
				this.frameStart = now;
			}
			next_frame = cur_animation.frames[this.cur_frame];
			this.OnFrameChanged(prev_frame, next_frame);
			this.runtime.redraw = true;
		}
	};
	instanceProto.getAnimationByName = function (name_)
	{
		var i, len, a;
		for (i = 0, len = this.type.animations.length; i < len; i++)
		{
			a = this.type.animations[i];
			if (cr.equals_nocase(a.name, name_))
				return a;
		}
		return null;
	};
	instanceProto.getAnimationBySid = function (sid_)
	{
		var i, len, a;
		for (i = 0, len = this.type.animations.length; i < len; i++)
		{
			a = this.type.animations[i];
			if (a.sid === sid_)
				return a;
		}
		return null;
	};
	instanceProto.doChangeAnim = function ()
	{
		var prev_frame = this.cur_animation.frames[this.cur_frame];
		var anim = this.getAnimationByName(this.changeAnimName);
		this.changeAnimName = "";
		if (!anim)
			return;
		if (cr.equals_nocase(anim.name, this.cur_animation.name) && this.animPlaying)
			return;
		this.cur_animation = anim;
		this.cur_anim_speed = anim.speed;
		if (this.cur_frame < 0)
			this.cur_frame = 0;
		if (this.cur_frame >= this.cur_animation.frames.length)
			this.cur_frame = this.cur_animation.frames.length - 1;
		if (this.changeAnimFrom === 1)
			this.cur_frame = 0;
		this.animPlaying = true;
		this.frameStart = this.getNowTime();
		this.animForwards = true;
		this.OnFrameChanged(prev_frame, this.cur_animation.frames[this.cur_frame]);
		this.runtime.redraw = true;
	};
	instanceProto.doChangeAnimFrame = function ()
	{
		var prev_frame = this.cur_animation.frames[this.cur_frame];
		var prev_frame_number = this.cur_frame;
		this.cur_frame = cr.floor(this.changeAnimFrame);
		if (this.cur_frame < 0)
			this.cur_frame = 0;
		if (this.cur_frame >= this.cur_animation.frames.length)
			this.cur_frame = this.cur_animation.frames.length - 1;
		if (prev_frame_number !== this.cur_frame)
		{
			this.OnFrameChanged(prev_frame, this.cur_animation.frames[this.cur_frame]);
			this.frameStart = this.getNowTime();
			this.runtime.redraw = true;
		}
		this.changeAnimFrame = -1;
	};
	instanceProto.OnFrameChanged = function (prev_frame, next_frame)
	{
		var oldw = prev_frame.width;
		var oldh = prev_frame.height;
		var neww = next_frame.width;
		var newh = next_frame.height;
		if (oldw != neww)
			this.width *= (neww / oldw);
		if (oldh != newh)
			this.height *= (newh / oldh);
		this.hotspotX = next_frame.hotspotX;
		this.hotspotY = next_frame.hotspotY;
		this.collision_poly.set_pts(next_frame.poly_pts);
		this.set_bbox_changed();
		this.curFrame = next_frame;
		this.curWebGLTexture = next_frame.webGL_texture;
		var i, len, b;
		for (i = 0, len = this.behavior_insts.length; i < len; i++)
		{
			b = this.behavior_insts[i];
			if (b.onSpriteFrameChanged)
				b.onSpriteFrameChanged(prev_frame, next_frame);
		}
		this.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnFrameChanged, this);
	};
	instanceProto.draw = function(ctx)
	{
		ctx.globalAlpha = this.opacity;
		var cur_frame = this.curFrame;
		var spritesheeted = cur_frame.spritesheeted;
		var cur_image = cur_frame.texture_img;
		var myx = this.x;
		var myy = this.y;
		var w = this.width;
		var h = this.height;
		if (this.angle === 0 && w >= 0 && h >= 0)
		{
			myx -= this.hotspotX * w;
			myy -= this.hotspotY * h;
			if (this.runtime.pixel_rounding)
			{
				myx = (myx + 0.5) | 0;
				myy = (myy + 0.5) | 0;
			}
			if (spritesheeted)
			{
				ctx.drawImage(cur_image, cur_frame.offx, cur_frame.offy, cur_frame.width, cur_frame.height,
										 myx, myy, w, h);
			}
			else
			{
				ctx.drawImage(cur_image, myx, myy, w, h);
			}
		}
		else
		{
			if (this.runtime.pixel_rounding)
			{
				myx = (myx + 0.5) | 0;
				myy = (myy + 0.5) | 0;
			}
			ctx.save();
			var widthfactor = w > 0 ? 1 : -1;
			var heightfactor = h > 0 ? 1 : -1;
			ctx.translate(myx, myy);
			if (widthfactor !== 1 || heightfactor !== 1)
				ctx.scale(widthfactor, heightfactor);
			ctx.rotate(this.angle * widthfactor * heightfactor);
			var drawx = 0 - (this.hotspotX * cr.abs(w))
			var drawy = 0 - (this.hotspotY * cr.abs(h));
			if (spritesheeted)
			{
				ctx.drawImage(cur_image, cur_frame.offx, cur_frame.offy, cur_frame.width, cur_frame.height,
										 drawx, drawy, cr.abs(w), cr.abs(h));
			}
			else
			{
				ctx.drawImage(cur_image, drawx, drawy, cr.abs(w), cr.abs(h));
			}
			ctx.restore();
		}
		/*
		ctx.strokeStyle = "#f00";
		ctx.lineWidth = 3;
		ctx.beginPath();
		this.collision_poly.cache_poly(this.width, this.height, this.angle);
		var i, len, ax, ay, bx, by;
		for (i = 0, len = this.collision_poly.pts_count; i < len; i++)
		{
			ax = this.collision_poly.pts_cache[i*2] + this.x;
			ay = this.collision_poly.pts_cache[i*2+1] + this.y;
			bx = this.collision_poly.pts_cache[((i+1)%len)*2] + this.x;
			by = this.collision_poly.pts_cache[((i+1)%len)*2+1] + this.y;
			ctx.moveTo(ax, ay);
			ctx.lineTo(bx, by);
		}
		ctx.stroke();
		ctx.closePath();
		*/
		/*
		if (this.behavior_insts.length >= 1 && this.behavior_insts[0].draw)
		{
			this.behavior_insts[0].draw(ctx);
		}
		*/
	};
	instanceProto.drawGL = function(glw)
	{
		glw.setTexture(this.curWebGLTexture);
		glw.setOpacity(this.opacity);
		var cur_frame = this.curFrame;
		var q = this.bquad;
		if (this.runtime.pixel_rounding)
		{
			var ox = ((this.x + 0.5) | 0) - this.x;
			var oy = ((this.y + 0.5) | 0) - this.y;
			if (cur_frame.spritesheeted)
				glw.quadTex(q.tlx + ox, q.tly + oy, q.trx + ox, q.try_ + oy, q.brx + ox, q.bry + oy, q.blx + ox, q.bly + oy, cur_frame.sheetTex);
			else
				glw.quad(q.tlx + ox, q.tly + oy, q.trx + ox, q.try_ + oy, q.brx + ox, q.bry + oy, q.blx + ox, q.bly + oy);
		}
		else
		{
			if (cur_frame.spritesheeted)
				glw.quadTex(q.tlx, q.tly, q.trx, q.try_, q.brx, q.bry, q.blx, q.bly, cur_frame.sheetTex);
			else
				glw.quad(q.tlx, q.tly, q.trx, q.try_, q.brx, q.bry, q.blx, q.bly);
		}
	};
	instanceProto.getImagePointIndexByName = function(name_)
	{
		var cur_frame = this.curFrame;
		var i, len;
		for (i = 0, len = cur_frame.image_points.length; i < len; i++)
		{
			if (cr.equals_nocase(name_, cur_frame.image_points[i][0]))
				return i;
		}
		return -1;
	};
	instanceProto.getImagePoint = function(imgpt, getX)
	{
		var cur_frame = this.curFrame;
		var image_points = cur_frame.image_points;
		var index;
		if (cr.is_string(imgpt))
			index = this.getImagePointIndexByName(imgpt);
		else
			index = imgpt - 1;	// 0 is origin
		index = cr.floor(index);
		if (index < 0 || index >= image_points.length)
			return getX ? this.x : this.y;	// return origin
		var x = (image_points[index][1] - cur_frame.hotspotX) * this.width;
		var y = image_points[index][2];
		y = (y - cur_frame.hotspotY) * this.height;
		var cosa = Math.cos(this.angle);
		var sina = Math.sin(this.angle);
		var x_temp = (x * cosa) - (y * sina);
		y = (y * cosa) + (x * sina);
		x = x_temp;
		x += this.x;
		y += this.y;
		return getX ? x : y;
	};
	function Cnds() {};
	var arrCache = [];
	function allocArr()
	{
		if (arrCache.length)
			return arrCache.pop();
		else
			return [0, 0, 0];
	};
	function freeArr(a)
	{
		a[0] = 0;
		a[1] = 0;
		a[2] = 0;
		arrCache.push(a);
	};
	function makeCollKey(a, b)
	{
		if (a < b)
			return "" + a + "," + b;
		else
			return "" + b + "," + a;
	};
	function collmemory_add(collmemory, a, b, tickcount)
	{
		var a_uid = a.uid;
		var b_uid = b.uid;
		var key = makeCollKey(a_uid, b_uid);
		if (collmemory.hasOwnProperty(key))
		{
			collmemory[key][2] = tickcount;
			return;
		}
		var arr = allocArr();
		arr[0] = a_uid;
		arr[1] = b_uid;
		arr[2] = tickcount;
		collmemory[key] = arr;
	};
	function collmemory_remove(collmemory, a, b)
	{
		var key = makeCollKey(a.uid, b.uid);
		if (collmemory.hasOwnProperty(key))
		{
			freeArr(collmemory[key]);
			delete collmemory[key];
		}
	};
	function collmemory_removeInstance(collmemory, inst)
	{
		var uid = inst.uid;
		var p, entry;
		for (p in collmemory)
		{
			if (collmemory.hasOwnProperty(p))
			{
				entry = collmemory[p];
				if (entry[0] === uid || entry[1] === uid)
				{
					freeArr(collmemory[p]);
					delete collmemory[p];
				}
			}
		}
	};
	var last_coll_tickcount = -2;
	function collmemory_has(collmemory, a, b)
	{
		var key = makeCollKey(a.uid, b.uid);
		if (collmemory.hasOwnProperty(key))
		{
			last_coll_tickcount = collmemory[key][2];
			return true;
		}
		else
		{
			last_coll_tickcount = -2;
			return false;
		}
	};
	var candidates = [];
	Cnds.prototype.OnCollision = function (rtype)
	{
		if (!rtype)
			return false;
		var runtime = this.runtime;
		var cnd = runtime.getCurrentCondition();
		var ltype = cnd.type;
		if (!cnd.extra.collmemory)
		{
			cnd.extra.collmemory = {};
			runtime.addDestroyCallback((function (collmemory) {
				return function(inst) {
					collmemory_removeInstance(collmemory, inst);
				};
			})(cnd.extra.collmemory));
		}
		var collmemory = cnd.extra.collmemory;
		var lsol = ltype.getCurrentSol();
		var rsol = rtype.getCurrentSol();
		var linstances = lsol.getObjects();
		var rinstances;
		var l, linst, r, rinst;
		var curlsol, currsol;
		var tickcount = this.runtime.tickcount;
		var lasttickcount = tickcount - 1;
		var exists, run;
		var current_event = runtime.getCurrentEventStack().current_event;
		var orblock = current_event.orblock;
		for (l = 0; l < linstances.length; l++)
		{
			linst = linstances[l];
			if (rsol.select_all)
			{
				linst.update_bbox();
				this.runtime.getCollisionCandidates(linst.layer, rtype, linst.bbox, candidates);
				rinstances = candidates;
			}
			else
				rinstances = rsol.getObjects();
			for (r = 0; r < rinstances.length; r++)
			{
				rinst = rinstances[r];
				if (runtime.testOverlap(linst, rinst) || runtime.checkRegisteredCollision(linst, rinst))
				{
					exists = collmemory_has(collmemory, linst, rinst);
					run = (!exists || (last_coll_tickcount < lasttickcount));
					collmemory_add(collmemory, linst, rinst, tickcount);
					if (run)
					{
						runtime.pushCopySol(current_event.solModifiers);
						curlsol = ltype.getCurrentSol();
						currsol = rtype.getCurrentSol();
						curlsol.select_all = false;
						currsol.select_all = false;
						if (ltype === rtype)
						{
							curlsol.instances.length = 2;	// just use lsol, is same reference as rsol
							curlsol.instances[0] = linst;
							curlsol.instances[1] = rinst;
							ltype.applySolToContainer();
						}
						else
						{
							curlsol.instances.length = 1;
							currsol.instances.length = 1;
							curlsol.instances[0] = linst;
							currsol.instances[0] = rinst;
							ltype.applySolToContainer();
							rtype.applySolToContainer();
						}
						current_event.retrigger();
						runtime.popSol(current_event.solModifiers);
					}
				}
				else
				{
					collmemory_remove(collmemory, linst, rinst);
				}
			}
			candidates.length = 0;
		}
		return false;
	};
	var rpicktype = null;
	var rtopick = new cr.ObjectSet();
	var needscollisionfinish = false;
	function DoOverlapCondition(rtype, offx, offy)
	{
		if (!rtype)
			return false;
		var do_offset = (offx !== 0 || offy !== 0);
		var oldx, oldy, ret = false, r, lenr, rinst;
		var cnd = this.runtime.getCurrentCondition();
		var ltype = cnd.type;
		var inverted = cnd.inverted;
		var rsol = rtype.getCurrentSol();
		var orblock = this.runtime.getCurrentEventStack().current_event.orblock;
		var rinstances;
		if (rsol.select_all)
		{
			this.update_bbox();
			this.runtime.getCollisionCandidates(this.layer, rtype, this.bbox, candidates);
			rinstances = candidates;
		}
		else if (orblock)
			rinstances = rsol.else_instances;
		else
			rinstances = rsol.instances;
		rpicktype = rtype;
		needscollisionfinish = (ltype !== rtype && !inverted);
		if (do_offset)
		{
			oldx = this.x;
			oldy = this.y;
			this.x += offx;
			this.y += offy;
			this.set_bbox_changed();
		}
		for (r = 0, lenr = rinstances.length; r < lenr; r++)
		{
			rinst = rinstances[r];
			if (this.runtime.testOverlap(this, rinst))
			{
				ret = true;
				if (inverted)
					break;
				if (ltype !== rtype)
					rtopick.add(rinst);
			}
		}
		if (do_offset)
		{
			this.x = oldx;
			this.y = oldy;
			this.set_bbox_changed();
		}
		candidates.length = 0;
		return ret;
	};
	typeProto.finish = function (do_pick)
	{
		if (!needscollisionfinish)
			return;
		if (do_pick)
		{
			var orblock = this.runtime.getCurrentEventStack().current_event.orblock;
			var sol = rpicktype.getCurrentSol();
			var topick = rtopick.valuesRef();
			var i, len, inst;
			if (sol.select_all)
			{
				sol.select_all = false;
				sol.instances.length = topick.length;
				for (i = 0, len = topick.length; i < len; i++)
				{
					sol.instances[i] = topick[i];
				}
				if (orblock)
				{
					sol.else_instances.length = 0;
					for (i = 0, len = rpicktype.instances.length; i < len; i++)
					{
						inst = rpicktype.instances[i];
						if (!rtopick.contains(inst))
							sol.else_instances.push(inst);
					}
				}
			}
			else
			{
				if (orblock)
				{
					var initsize = sol.instances.length;
					sol.instances.length = initsize + topick.length;
					for (i = 0, len = topick.length; i < len; i++)
					{
						sol.instances[initsize + i] = topick[i];
						cr.arrayFindRemove(sol.else_instances, topick[i]);
					}
				}
				else
				{
					cr.shallowAssignArray(sol.instances, topick);
				}
			}
			rpicktype.applySolToContainer();
		}
		rtopick.clear();
		needscollisionfinish = false;
	};
	Cnds.prototype.IsOverlapping = function (rtype)
	{
		return DoOverlapCondition.call(this, rtype, 0, 0);
	};
	Cnds.prototype.IsOverlappingOffset = function (rtype, offx, offy)
	{
		return DoOverlapCondition.call(this, rtype, offx, offy);
	};
	Cnds.prototype.IsAnimPlaying = function (animname)
	{
		if (this.changeAnimName.length)
			return cr.equals_nocase(this.changeAnimName, animname);
		else
			return cr.equals_nocase(this.cur_animation.name, animname);
	};
	Cnds.prototype.CompareFrame = function (cmp, framenum)
	{
		return cr.do_cmp(this.cur_frame, cmp, framenum);
	};
	Cnds.prototype.CompareAnimSpeed = function (cmp, x)
	{
		var s = (this.animForwards ? this.cur_anim_speed : -this.cur_anim_speed);
		return cr.do_cmp(s, cmp, x);
	};
	Cnds.prototype.OnAnimFinished = function (animname)
	{
		return cr.equals_nocase(this.animTriggerName, animname);
	};
	Cnds.prototype.OnAnyAnimFinished = function ()
	{
		return true;
	};
	Cnds.prototype.OnFrameChanged = function ()
	{
		return true;
	};
	Cnds.prototype.IsMirrored = function ()
	{
		return this.width < 0;
	};
	Cnds.prototype.IsFlipped = function ()
	{
		return this.height < 0;
	};
	Cnds.prototype.OnURLLoaded = function ()
	{
		return true;
	};
	Cnds.prototype.IsCollisionEnabled = function ()
	{
		return this.collisionsEnabled;
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.Spawn = function (obj, layer, imgpt)
	{
		if (!obj || !layer)
			return;
		var inst = this.runtime.createInstance(obj, layer, this.getImagePoint(imgpt, true), this.getImagePoint(imgpt, false));
		if (!inst)
			return;
		if (typeof inst.angle !== "undefined")
		{
			inst.angle = this.angle;
			inst.set_bbox_changed();
		}
		this.runtime.isInOnDestroy++;
		var i, len, s;
		this.runtime.trigger(Object.getPrototypeOf(obj.plugin).cnds.OnCreated, inst);
		if (inst.is_contained)
		{
			for (i = 0, len = inst.siblings.length; i < len; i++)
			{
				s = inst.siblings[i];
				this.runtime.trigger(Object.getPrototypeOf(s.type.plugin).cnds.OnCreated, s);
			}
		}
		this.runtime.isInOnDestroy--;
		var cur_act = this.runtime.getCurrentAction();
		var reset_sol = false;
		if (cr.is_undefined(cur_act.extra.Spawn_LastExec) || cur_act.extra.Spawn_LastExec < this.runtime.execcount)
		{
			reset_sol = true;
			cur_act.extra.Spawn_LastExec = this.runtime.execcount;
		}
		var sol;
		if (obj != this.type)
		{
			sol = obj.getCurrentSol();
			sol.select_all = false;
			if (reset_sol)
			{
				sol.instances.length = 1;
				sol.instances[0] = inst;
			}
			else
				sol.instances.push(inst);
			if (inst.is_contained)
			{
				for (i = 0, len = inst.siblings.length; i < len; i++)
				{
					s = inst.siblings[i];
					sol = s.type.getCurrentSol();
					sol.select_all = false;
					if (reset_sol)
					{
						sol.instances.length = 1;
						sol.instances[0] = s;
					}
					else
						sol.instances.push(s);
				}
			}
		}
	};
	Acts.prototype.SetEffect = function (effect)
	{
		this.compositeOp = cr.effectToCompositeOp(effect);
		cr.setGLBlend(this, effect, this.runtime.gl);
		this.runtime.redraw = true;
	};
	Acts.prototype.StopAnim = function ()
	{
		this.animPlaying = false;
	};
	Acts.prototype.StartAnim = function (from)
	{
		this.animPlaying = true;
		this.frameStart = this.getNowTime();
		if (from === 1 && this.cur_frame !== 0)
		{
			this.changeAnimFrame = 0;
			if (!this.inAnimTrigger)
				this.doChangeAnimFrame();
		}
		if (!this.isTicking)
		{
			this.runtime.tickMe(this);
			this.isTicking = true;
		}
	};
	Acts.prototype.SetAnim = function (animname, from)
	{
		this.changeAnimName = animname;
		this.changeAnimFrom = from;
		if (!this.isTicking)
		{
			this.runtime.tickMe(this);
			this.isTicking = true;
		}
		if (!this.inAnimTrigger)
			this.doChangeAnim();
	};
	Acts.prototype.SetAnimFrame = function (framenumber)
	{
		this.changeAnimFrame = framenumber;
		if (!this.isTicking)
		{
			this.runtime.tickMe(this);
			this.isTicking = true;
		}
		if (!this.inAnimTrigger)
			this.doChangeAnimFrame();
	};
	Acts.prototype.SetAnimSpeed = function (s)
	{
		this.cur_anim_speed = cr.abs(s);
		this.animForwards = (s >= 0);
		if (!this.isTicking)
		{
			this.runtime.tickMe(this);
			this.isTicking = true;
		}
	};
	Acts.prototype.SetMirrored = function (m)
	{
		var neww = cr.abs(this.width) * (m === 0 ? -1 : 1);
		if (this.width === neww)
			return;
		this.width = neww;
		this.set_bbox_changed();
	};
	Acts.prototype.SetFlipped = function (f)
	{
		var newh = cr.abs(this.height) * (f === 0 ? -1 : 1);
		if (this.height === newh)
			return;
		this.height = newh;
		this.set_bbox_changed();
	};
	Acts.prototype.SetScale = function (s)
	{
		var cur_frame = this.curFrame;
		var mirror_factor = (this.width < 0 ? -1 : 1);
		var flip_factor = (this.height < 0 ? -1 : 1);
		var new_width = cur_frame.width * s * mirror_factor;
		var new_height = cur_frame.height * s * flip_factor;
		if (this.width !== new_width || this.height !== new_height)
		{
			this.width = new_width;
			this.height = new_height;
			this.set_bbox_changed();
		}
	};
	Acts.prototype.LoadURL = function (url_, resize_)
	{
		var img = new Image();
		var self = this;
		var curFrame_ = this.curFrame;
		img.onload = function ()
		{
			if (curFrame_.texture_img.src === img.src)
			{
				if (self.runtime.glwrap && self.curFrame === curFrame_)
					self.curWebGLTexture = curFrame_.webGL_texture;
				self.runtime.redraw = true;
				self.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnURLLoaded, self);
				return;
			}
			curFrame_.texture_img = img;
			curFrame_.offx = 0;
			curFrame_.offy = 0;
			curFrame_.width = img.width;
			curFrame_.height = img.height;
			curFrame_.spritesheeted = false;
			curFrame_.datauri = "";
			if (self.runtime.glwrap)
			{
				if (curFrame_.webGL_texture)
					self.runtime.glwrap.deleteTexture(curFrame_.webGL_texture);
				curFrame_.webGL_texture = self.runtime.glwrap.loadTexture(img, false, self.runtime.linearSampling);
				if (self.curFrame === curFrame_)
					self.curWebGLTexture = curFrame_.webGL_texture;
				self.type.updateAllCurrentTexture();
			}
			if (resize_ === 0)		// resize to image size
			{
				self.width = img.width;
				self.height = img.height;
				self.set_bbox_changed();
			}
			self.runtime.redraw = true;
			self.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnURLLoaded, self);
		};
		if (url_.substr(0, 5) !== "data:")
			img.crossOrigin = 'anonymous';
		img.src = url_;
	};
	Acts.prototype.SetCollisions = function (set_)
	{
		if (this.collisionsEnabled === (set_ !== 0))
			return;		// no change
		this.collisionsEnabled = (set_ !== 0);
		if (this.collisionsEnabled)
			this.set_bbox_changed();		// needs to be added back to cells
		else
		{
			if (this.collcells.right >= this.collcells.left)
				this.type.collision_grid.update(this, this.collcells, null);
			this.collcells.set(0, 0, -1, -1);
		}
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.AnimationFrame = function (ret)
	{
		ret.set_int(this.cur_frame);
	};
	Exps.prototype.AnimationFrameCount = function (ret)
	{
		ret.set_int(this.cur_animation.frames.length);
	};
	Exps.prototype.AnimationName = function (ret)
	{
		ret.set_string(this.cur_animation.name);
	};
	Exps.prototype.AnimationSpeed = function (ret)
	{
		ret.set_float(this.animForwards ? this.cur_anim_speed : -this.cur_anim_speed);
	};
	Exps.prototype.ImagePointX = function (ret, imgpt)
	{
		ret.set_float(this.getImagePoint(imgpt, true));
	};
	Exps.prototype.ImagePointY = function (ret, imgpt)
	{
		ret.set_float(this.getImagePoint(imgpt, false));
	};
	Exps.prototype.ImagePointCount = function (ret)
	{
		ret.set_int(this.curFrame.image_points.length);
	};
	Exps.prototype.ImageWidth = function (ret)
	{
		ret.set_float(this.curFrame.width);
	};
	Exps.prototype.ImageHeight = function (ret)
	{
		ret.set_float(this.curFrame.height);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Text = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Text.prototype;
	pluginProto.onCreate = function ()
	{
		pluginProto.acts.SetWidth = function (w)
		{
			if (this.width !== w)
			{
				this.width = w;
				this.text_changed = true;	// also recalculate text wrapping
				this.set_bbox_changed();
			}
		};
	};
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	typeProto.onLostWebGLContext = function ()
	{
		if (this.is_family)
			return;
		var i, len, inst;
		for (i = 0, len = this.instances.length; i < len; i++)
		{
			inst = this.instances[i];
			inst.mycanvas = null;
			inst.myctx = null;
			inst.mytex = null;
		}
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
		if (this.recycled)
			this.lines.length = 0;
		else
			this.lines = [];		// for word wrapping
		this.text_changed = true;
	};
	var instanceProto = pluginProto.Instance.prototype;
	var requestedWebFonts = {};		// already requested web fonts have an entry here
	instanceProto.onCreate = function()
	{
		this.text = this.properties[0];
		this.visible = (this.properties[1] === 0);		// 0=visible, 1=invisible
		this.font = this.properties[2];
		this.color = this.properties[3];
		this.halign = this.properties[4];				// 0=left, 1=center, 2=right
		this.valign = this.properties[5];				// 0=top, 1=center, 2=bottom
		this.wrapbyword = (this.properties[7] === 0);	// 0=word, 1=character
		this.lastwidth = this.width;
		this.lastwrapwidth = this.width;
		this.lastheight = this.height;
		this.line_height_offset = this.properties[8];
		this.facename = "";
		this.fontstyle = "";
		this.ptSize = 0;
		this.textWidth = 0;
		this.textHeight = 0;
		this.parseFont();
		this.mycanvas = null;
		this.myctx = null;
		this.mytex = null;
		this.need_text_redraw = false;
		this.last_render_tick = this.runtime.tickcount;
		if (this.recycled)
			this.rcTex.set(0, 0, 1, 1);
		else
			this.rcTex = new cr.rect(0, 0, 1, 1);
		if (this.runtime.glwrap)
			this.runtime.tickMe(this);
;
	};
	instanceProto.parseFont = function ()
	{
		var arr = this.font.split(" ");
		var i;
		for (i = 0; i < arr.length; i++)
		{
			if (arr[i].substr(arr[i].length - 2, 2) === "pt")
			{
				this.ptSize = parseInt(arr[i].substr(0, arr[i].length - 2));
				this.pxHeight = Math.ceil((this.ptSize / 72.0) * 96.0) + 4;	// assume 96dpi...
				if (i > 0)
					this.fontstyle = arr[i - 1];
				this.facename = arr[i + 1];
				for (i = i + 2; i < arr.length; i++)
					this.facename += " " + arr[i];
				break;
			}
		}
	};
	instanceProto.saveToJSON = function ()
	{
		return {
			"t": this.text,
			"f": this.font,
			"c": this.color,
			"ha": this.halign,
			"va": this.valign,
			"wr": this.wrapbyword,
			"lho": this.line_height_offset,
			"fn": this.facename,
			"fs": this.fontstyle,
			"ps": this.ptSize,
			"pxh": this.pxHeight,
			"tw": this.textWidth,
			"th": this.textHeight,
			"lrt": this.last_render_tick
		};
	};
	instanceProto.loadFromJSON = function (o)
	{
		this.text = o["t"];
		this.font = o["f"];
		this.color = o["c"];
		this.halign = o["ha"];
		this.valign = o["va"];
		this.wrapbyword = o["wr"];
		this.line_height_offset = o["lho"];
		this.facename = o["fn"];
		this.fontstyle = o["fs"];
		this.ptSize = o["ps"];
		this.pxHeight = o["pxh"];
		this.textWidth = o["tw"];
		this.textHeight = o["th"];
		this.last_render_tick = o["lrt"];
		this.text_changed = true;
		this.lastwidth = this.width;
		this.lastwrapwidth = this.width;
		this.lastheight = this.height;
	};
	instanceProto.tick = function ()
	{
		if (this.runtime.glwrap && this.mytex && (this.runtime.tickcount - this.last_render_tick >= 300))
		{
			var layer = this.layer;
            this.update_bbox();
            var bbox = this.bbox;
            if (bbox.right < layer.viewLeft || bbox.bottom < layer.viewTop || bbox.left > layer.viewRight || bbox.top > layer.viewBottom)
			{
				this.runtime.glwrap.deleteTexture(this.mytex);
				this.mytex = null;
				this.myctx = null;
				this.mycanvas = null;
			}
		}
	};
	instanceProto.onDestroy = function ()
	{
		this.myctx = null;
		this.mycanvas = null;
		if (this.runtime.glwrap && this.mytex)
			this.runtime.glwrap.deleteTexture(this.mytex);
		this.mytex = null;
	};
	instanceProto.updateFont = function ()
	{
		this.font = this.fontstyle + " " + this.ptSize.toString() + "pt " + this.facename;
		this.text_changed = true;
		this.runtime.redraw = true;
	};
	instanceProto.draw = function(ctx, glmode)
	{
		ctx.font = this.font;
		ctx.textBaseline = "top";
		ctx.fillStyle = this.color;
		ctx.globalAlpha = glmode ? 1 : this.opacity;
		var myscale = 1;
		if (glmode)
		{
			myscale = this.layer.getScale();
			ctx.save();
			ctx.scale(myscale, myscale);
		}
		if (this.text_changed || this.width !== this.lastwrapwidth)
		{
			this.type.plugin.WordWrap(this.text, this.lines, ctx, this.width, this.wrapbyword);
			this.text_changed = false;
			this.lastwrapwidth = this.width;
		}
		this.update_bbox();
		var penX = glmode ? 0 : this.bquad.tlx;
		var penY = glmode ? 0 : this.bquad.tly;
		if (this.runtime.pixel_rounding)
		{
			penX = (penX + 0.5) | 0;
			penY = (penY + 0.5) | 0;
		}
		if (this.angle !== 0 && !glmode)
		{
			ctx.save();
			ctx.translate(penX, penY);
			ctx.rotate(this.angle);
			penX = 0;
			penY = 0;
		}
		var endY = penY + this.height;
		var line_height = this.pxHeight;
		line_height += this.line_height_offset;
		var drawX;
		var i;
		if (this.valign === 1)		// center
			penY += Math.max(this.height / 2 - (this.lines.length * line_height) / 2, 0);
		else if (this.valign === 2)	// bottom
			penY += Math.max(this.height - (this.lines.length * line_height) - 2, 0);
		for (i = 0; i < this.lines.length; i++)
		{
			drawX = penX;
			if (this.halign === 1)		// center
				drawX = penX + (this.width - this.lines[i].width) / 2;
			else if (this.halign === 2)	// right
				drawX = penX + (this.width - this.lines[i].width);
			ctx.fillText(this.lines[i].text, drawX, penY);
			penY += line_height;
			if (penY >= endY - line_height)
				break;
		}
		if (this.angle !== 0 || glmode)
			ctx.restore();
		this.last_render_tick = this.runtime.tickcount;
	};
	instanceProto.drawGL = function(glw)
	{
		if (this.width < 1 || this.height < 1)
			return;
		var need_redraw = this.text_changed || this.need_text_redraw;
		this.need_text_redraw = false;
		var layer_scale = this.layer.getScale();
		var layer_angle = this.layer.getAngle();
		var rcTex = this.rcTex;
		var floatscaledwidth = layer_scale * this.width;
		var floatscaledheight = layer_scale * this.height;
		var scaledwidth = Math.ceil(floatscaledwidth);
		var scaledheight = Math.ceil(floatscaledheight);
		var halfw = this.runtime.draw_width / 2;
		var halfh = this.runtime.draw_height / 2;
		if (!this.myctx)
		{
			this.mycanvas = document.createElement("canvas");
			this.mycanvas.width = scaledwidth;
			this.mycanvas.height = scaledheight;
			this.lastwidth = scaledwidth;
			this.lastheight = scaledheight;
			need_redraw = true;
			this.myctx = this.mycanvas.getContext("2d");
		}
		if (scaledwidth !== this.lastwidth || scaledheight !== this.lastheight)
		{
			this.mycanvas.width = scaledwidth;
			this.mycanvas.height = scaledheight;
			if (this.mytex)
			{
				glw.deleteTexture(this.mytex);
				this.mytex = null;
			}
			need_redraw = true;
		}
		if (need_redraw)
		{
			this.myctx.clearRect(0, 0, scaledwidth, scaledheight);
			this.draw(this.myctx, true);
			if (!this.mytex)
				this.mytex = glw.createEmptyTexture(scaledwidth, scaledheight, this.runtime.linearSampling, this.runtime.isMobile);
			glw.videoToTexture(this.mycanvas, this.mytex, this.runtime.isMobile);
		}
		this.lastwidth = scaledwidth;
		this.lastheight = scaledheight;
		glw.setTexture(this.mytex);
		glw.setOpacity(this.opacity);
		glw.resetModelView();
		glw.translate(-halfw, -halfh);
		glw.updateModelView();
		var q = this.bquad;
		var old_dpr = this.runtime.devicePixelRatio;
		this.runtime.devicePixelRatio = 1;
		var tlx = this.layer.layerToCanvas(q.tlx, q.tly, true, true);
		var tly = this.layer.layerToCanvas(q.tlx, q.tly, false, true);
		var trx = this.layer.layerToCanvas(q.trx, q.try_, true, true);
		var try_ = this.layer.layerToCanvas(q.trx, q.try_, false, true);
		var brx = this.layer.layerToCanvas(q.brx, q.bry, true, true);
		var bry = this.layer.layerToCanvas(q.brx, q.bry, false, true);
		var blx = this.layer.layerToCanvas(q.blx, q.bly, true, true);
		var bly = this.layer.layerToCanvas(q.blx, q.bly, false, true);
		this.runtime.devicePixelRatio = old_dpr;
		if (this.runtime.pixel_rounding || (this.angle === 0 && layer_angle === 0))
		{
			var ox = ((tlx + 0.5) | 0) - tlx;
			var oy = ((tly + 0.5) | 0) - tly
			tlx += ox;
			tly += oy;
			trx += ox;
			try_ += oy;
			brx += ox;
			bry += oy;
			blx += ox;
			bly += oy;
		}
		if (this.angle === 0 && layer_angle === 0)
		{
			trx = tlx + scaledwidth;
			try_ = tly;
			brx = trx;
			bry = tly + scaledheight;
			blx = tlx;
			bly = bry;
			rcTex.right = 1;
			rcTex.bottom = 1;
		}
		else
		{
			rcTex.right = floatscaledwidth / scaledwidth;
			rcTex.bottom = floatscaledheight / scaledheight;
		}
		glw.quadTex(tlx, tly, trx, try_, brx, bry, blx, bly, rcTex);
		glw.resetModelView();
		glw.scale(layer_scale, layer_scale);
		glw.rotateZ(-this.layer.getAngle());
		glw.translate((this.layer.viewLeft + this.layer.viewRight) / -2, (this.layer.viewTop + this.layer.viewBottom) / -2);
		glw.updateModelView();
		this.last_render_tick = this.runtime.tickcount;
	};
	var wordsCache = [];
	pluginProto.TokeniseWords = function (text)
	{
		wordsCache.length = 0;
		var cur_word = "";
		var ch;
		var i = 0;
		while (i < text.length)
		{
			ch = text.charAt(i);
			if (ch === "\n")
			{
				if (cur_word.length)
				{
					wordsCache.push(cur_word);
					cur_word = "";
				}
				wordsCache.push("\n");
				++i;
			}
			else if (ch === " " || ch === "\t" || ch === "-")
			{
				do {
					cur_word += text.charAt(i);
					i++;
				}
				while (i < text.length && (text.charAt(i) === " " || text.charAt(i) === "\t"));
				wordsCache.push(cur_word);
				cur_word = "";
			}
			else if (i < text.length)
			{
				cur_word += ch;
				i++;
			}
		}
		if (cur_word.length)
			wordsCache.push(cur_word);
	};
	var linesCache = [];
	function allocLine()
	{
		if (linesCache.length)
			return linesCache.pop();
		else
			return {};
	};
	function freeLine(l)
	{
		linesCache.push(l);
	};
	function freeAllLines(arr)
	{
		var i, len;
		for (i = 0, len = arr.length; i < len; i++)
		{
			freeLine(arr[i]);
		}
		arr.length = 0;
	};
	pluginProto.WordWrap = function (text, lines, ctx, width, wrapbyword)
	{
		if (!text || !text.length)
		{
			freeAllLines(lines);
			return;
		}
		if (width <= 2.0)
		{
			freeAllLines(lines);
			return;
		}
		if (text.length <= 100 && text.indexOf("\n") === -1)
		{
			var all_width = ctx.measureText(text).width;
			if (all_width <= width)
			{
				freeAllLines(lines);
				lines.push(allocLine());
				lines[0].text = text;
				lines[0].width = all_width;
				return;
			}
		}
		this.WrapText(text, lines, ctx, width, wrapbyword);
	};
	pluginProto.WrapText = function (text, lines, ctx, width, wrapbyword)
	{
		var wordArray;
		if (wrapbyword)
		{
			this.TokeniseWords(text);	// writes to wordsCache
			wordArray = wordsCache;
		}
		else
			wordArray = text;
		var cur_line = "";
		var prev_line;
		var line_width;
		var i;
		var lineIndex = 0;
		var line;
		for (i = 0; i < wordArray.length; i++)
		{
			if (wordArray[i] === "\n")
			{
				if (lineIndex >= lines.length)
					lines.push(allocLine());
				line = lines[lineIndex];
				line.text = cur_line;
				line.width = ctx.measureText(cur_line).width;
				lineIndex++;
				cur_line = "";
				continue;
			}
			prev_line = cur_line;
			cur_line += wordArray[i];
			line_width = ctx.measureText(cur_line).width;
			if (line_width >= width)
			{
				if (lineIndex >= lines.length)
					lines.push(allocLine());
				line = lines[lineIndex];
				line.text = prev_line;
				line.width = ctx.measureText(prev_line).width;
				lineIndex++;
				cur_line = wordArray[i];
				if (!wrapbyword && cur_line === " ")
					cur_line = "";
			}
		}
		if (cur_line.length)
		{
			if (lineIndex >= lines.length)
				lines.push(allocLine());
			line = lines[lineIndex];
			line.text = cur_line;
			line.width = ctx.measureText(cur_line).width;
			lineIndex++;
		}
		for (i = lineIndex; i < lines.length; i++)
			freeLine(lines[i]);
		lines.length = lineIndex;
	};
	function Cnds() {};
	Cnds.prototype.CompareText = function(text_to_compare, case_sensitive)
	{
		if (case_sensitive)
			return this.text == text_to_compare;
		else
			return cr.equals_nocase(this.text, text_to_compare);
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.SetText = function(param)
	{
		if (cr.is_number(param) && param < 1e9)
			param = Math.round(param * 1e10) / 1e10;	// round to nearest ten billionth - hides floating point errors
		var text_to_set = param.toString();
		if (this.text !== text_to_set)
		{
			this.text = text_to_set;
			this.text_changed = true;
			this.runtime.redraw = true;
		}
	};
	Acts.prototype.AppendText = function(param)
	{
		if (cr.is_number(param))
			param = Math.round(param * 1e10) / 1e10;	// round to nearest ten billionth - hides floating point errors
		var text_to_append = param.toString();
		if (text_to_append)	// not empty
		{
			this.text += text_to_append;
			this.text_changed = true;
			this.runtime.redraw = true;
		}
	};
	Acts.prototype.SetFontFace = function (face_, style_)
	{
		var newstyle = "";
		switch (style_) {
		case 1: newstyle = "bold"; break;
		case 2: newstyle = "italic"; break;
		case 3: newstyle = "bold italic"; break;
		}
		if (face_ === this.facename && newstyle === this.fontstyle)
			return;		// no change
		this.facename = face_;
		this.fontstyle = newstyle;
		this.updateFont();
	};
	Acts.prototype.SetFontSize = function (size_)
	{
		if (this.ptSize === size_)
			return;
		this.ptSize = size_;
		this.pxHeight = Math.ceil((this.ptSize / 72.0) * 96.0) + 4;	// assume 96dpi...
		this.updateFont();
	};
	Acts.prototype.SetFontColor = function (rgb)
	{
		var newcolor = "rgb(" + cr.GetRValue(rgb).toString() + "," + cr.GetGValue(rgb).toString() + "," + cr.GetBValue(rgb).toString() + ")";
		if (newcolor === this.color)
			return;
		this.color = newcolor;
		this.need_text_redraw = true;
		this.runtime.redraw = true;
	};
	Acts.prototype.SetWebFont = function (familyname_, cssurl_)
	{
		if (this.runtime.isDomFree)
		{
			cr.logexport("[Construct 2] Text plugin: 'Set web font' not supported on this platform - the action has been ignored");
			return;		// DC todo
		}
		var self = this;
		var refreshFunc = (function () {
							self.runtime.redraw = true;
							self.text_changed = true;
						});
		if (requestedWebFonts.hasOwnProperty(cssurl_))
		{
			var newfacename = "'" + familyname_ + "'";
			if (this.facename === newfacename)
				return;	// no change
			this.facename = newfacename;
			this.updateFont();
			for (var i = 1; i < 10; i++)
			{
				setTimeout(refreshFunc, i * 100);
				setTimeout(refreshFunc, i * 1000);
			}
			return;
		}
		var wf = document.createElement("link");
		wf.href = cssurl_;
		wf.rel = "stylesheet";
		wf.type = "text/css";
		wf.onload = refreshFunc;
		document.getElementsByTagName('head')[0].appendChild(wf);
		requestedWebFonts[cssurl_] = true;
		this.facename = "'" + familyname_ + "'";
		this.updateFont();
		for (var i = 1; i < 10; i++)
		{
			setTimeout(refreshFunc, i * 100);
			setTimeout(refreshFunc, i * 1000);
		}
;
	};
	Acts.prototype.SetEffect = function (effect)
	{
		this.compositeOp = cr.effectToCompositeOp(effect);
		cr.setGLBlend(this, effect, this.runtime.gl);
		this.runtime.redraw = true;
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.Text = function(ret)
	{
		ret.set_string(this.text);
	};
	Exps.prototype.FaceName = function (ret)
	{
		ret.set_string(this.facename);
	};
	Exps.prototype.FaceSize = function (ret)
	{
		ret.set_int(this.ptSize);
	};
	Exps.prototype.TextWidth = function (ret)
	{
		var w = 0;
		var i, len, x;
		for (i = 0, len = this.lines.length; i < len; i++)
		{
			x = this.lines[i].width;
			if (w < x)
				w = x;
		}
		ret.set_int(w);
	};
	Exps.prototype.TextHeight = function (ret)
	{
		ret.set_int(this.lines.length * (this.pxHeight + this.line_height_offset) - this.line_height_offset);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.TextBox = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.TextBox.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
	};
	var instanceProto = pluginProto.Instance.prototype;
	var elemTypes = ["text", "password", "email", "number", "tel", "url"];
	if (navigator.userAgent.indexOf("MSIE 9") > -1)
	{
		elemTypes[2] = "text";
		elemTypes[3] = "text";
		elemTypes[4] = "text";
		elemTypes[5] = "text";
	}
	instanceProto.onCreate = function()
	{
		if (this.runtime.isDomFree)
		{
			cr.logexport("[Construct 2] Textbox plugin not supported on this platform - the object will not be created");
			return;
		}
		if (this.properties[7] === 6)	// textarea
		{
			this.elem = document.createElement("textarea");
			jQuery(this.elem).css("resize", "none");
		}
		else
		{
			this.elem = document.createElement("input");
			this.elem.type = elemTypes[this.properties[7]];
		}
		this.elem.id = this.properties[9];
		jQuery(this.elem).appendTo(this.runtime.canvasdiv ? this.runtime.canvasdiv : "body");
		this.elem["autocomplete"] = "off";
		this.elem.value = this.properties[0];
		this.elem["placeholder"] = this.properties[1];
		this.elem.title = this.properties[2];
		this.elem.disabled = (this.properties[4] === 0);
		this.elem["readOnly"] = (this.properties[5] === 1);
		this.elem["spellcheck"] = (this.properties[6] === 1);
		this.autoFontSize = (this.properties[8] !== 0);
		this.element_hidden = false;
		if (this.properties[3] === 0)
		{
			jQuery(this.elem).hide();
			this.visible = false;
			this.element_hidden = true;
		}
		var onchangetrigger = (function (self) {
			return function() {
				self.runtime.trigger(cr.plugins_.TextBox.prototype.cnds.OnTextChanged, self);
			};
		})(this);
		this.elem["oninput"] = onchangetrigger;
		if (navigator.userAgent.indexOf("MSIE") !== -1)
			this.elem["oncut"] = onchangetrigger;
		this.elem.onclick = (function (self) {
			return function(e) {
				e.stopPropagation();
				self.runtime.isInUserInputEvent = true;
				self.runtime.trigger(cr.plugins_.TextBox.prototype.cnds.OnClicked, self);
				self.runtime.isInUserInputEvent = false;
			};
		})(this);
		this.elem.ondblclick = (function (self) {
			return function(e) {
				e.stopPropagation();
				self.runtime.isInUserInputEvent = true;
				self.runtime.trigger(cr.plugins_.TextBox.prototype.cnds.OnDoubleClicked, self);
				self.runtime.isInUserInputEvent = false;
			};
		})(this);
		this.elem.addEventListener("touchstart", function (e) {
			e.stopPropagation();
		}, false);
		this.elem.addEventListener("touchmove", function (e) {
			e.stopPropagation();
		}, false);
		this.elem.addEventListener("touchend", function (e) {
			e.stopPropagation();
		}, false);
		jQuery(this.elem).mousedown(function (e) {
			e.stopPropagation();
		});
		jQuery(this.elem).mouseup(function (e) {
			e.stopPropagation();
		});
		jQuery(this.elem).keydown(function (e) {
			if (e.which !== 13 && e.which != 27)	// allow enter and escape
				e.stopPropagation();
		});
		jQuery(this.elem).keyup(function (e) {
			if (e.which !== 13 && e.which != 27)	// allow enter and escape
				e.stopPropagation();
		});
		this.lastLeft = 0;
		this.lastTop = 0;
		this.lastRight = 0;
		this.lastBottom = 0;
		this.lastWinWidth = 0;
		this.lastWinHeight = 0;
		this.updatePosition(true);
		this.runtime.tickMe(this);
	};
	instanceProto.saveToJSON = function ()
	{
		return {
			"text": this.elem.value,
			"placeholder": this.elem.placeholder,
			"tooltip": this.elem.title,
			"disabled": !!this.elem.disabled,
			"readonly": !!this.elem.readOnly,
			"spellcheck": !!this.elem["spellcheck"]
		};
	};
	instanceProto.loadFromJSON = function (o)
	{
		this.elem.value = o["text"];
		this.elem.placeholder = o["placeholder"];
		this.elem.title = o["tooltip"];
		this.elem.disabled = o["disabled"];
		this.elem.readOnly = o["readonly"];
		this.elem["spellcheck"] = o["spellcheck"];
	};
	instanceProto.onDestroy = function ()
	{
		if (this.runtime.isDomFree)
				return;
		jQuery(this.elem).remove();
		this.elem = null;
	};
	instanceProto.tick = function ()
	{
		this.updatePosition();
	};
	instanceProto.updatePosition = function (first)
	{
		if (this.runtime.isDomFree)
			return;
		var left = this.layer.layerToCanvas(this.x, this.y, true);
		var top = this.layer.layerToCanvas(this.x, this.y, false);
		var right = this.layer.layerToCanvas(this.x + this.width, this.y + this.height, true);
		var bottom = this.layer.layerToCanvas(this.x + this.width, this.y + this.height, false);
		if (!this.visible || !this.layer.visible || right <= 0 || bottom <= 0 || left >= this.runtime.width || top >= this.runtime.height)
		{
			if (!this.element_hidden)
				jQuery(this.elem).hide();
			this.element_hidden = true;
			return;
		}
		if (left < 1)
			left = 1;
		if (top < 1)
			top = 1;
		if (right >= this.runtime.width)
			right = this.runtime.width - 1;
		if (bottom >= this.runtime.height)
			bottom = this.runtime.height - 1;
		var curWinWidth = window.innerWidth;
		var curWinHeight = window.innerHeight;
		if (!first && this.lastLeft === left && this.lastTop === top && this.lastRight === right && this.lastBottom === bottom && this.lastWinWidth === curWinWidth && this.lastWinHeight === curWinHeight)
		{
			if (this.element_hidden)
			{
				jQuery(this.elem).show();
				this.element_hidden = false;
			}
			return;
		}
		this.lastLeft = left;
		this.lastTop = top;
		this.lastRight = right;
		this.lastBottom = bottom;
		this.lastWinWidth = curWinWidth;
		this.lastWinHeight = curWinHeight;
		if (this.element_hidden)
		{
			jQuery(this.elem).show();
			this.element_hidden = false;
		}
		var offx = Math.round(left) + jQuery(this.runtime.canvas).offset().left;
		var offy = Math.round(top) + jQuery(this.runtime.canvas).offset().top;
		jQuery(this.elem).css("position", "absolute");
		jQuery(this.elem).offset({left: offx, top: offy});
		jQuery(this.elem).width(Math.round(right - left));
		jQuery(this.elem).height(Math.round(bottom - top));
		if (this.autoFontSize)
			jQuery(this.elem).css("font-size", ((this.layer.getScale(true) / this.runtime.devicePixelRatio) - 0.2) + "em");
	};
	instanceProto.draw = function(ctx)
	{
	};
	instanceProto.drawGL = function(glw)
	{
	};
	function Cnds() {};
	Cnds.prototype.CompareText = function (text, case_)
	{
		if (this.runtime.isDomFree)
			return false;
		if (case_ === 0)	// insensitive
			return cr.equals_nocase(this.elem.value, text);
		else
			return this.elem.value === text;
	};
	Cnds.prototype.OnTextChanged = function ()
	{
		return true;
	};
	Cnds.prototype.OnClicked = function ()
	{
		return true;
	};
	Cnds.prototype.OnDoubleClicked = function ()
	{
		return true;
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.SetText = function (text)
	{
		if (this.runtime.isDomFree)
			return;
		this.elem.value = text;
	};
	Acts.prototype.SetPlaceholder = function (text)
	{
		if (this.runtime.isDomFree)
			return;
		this.elem.placeholder = text;
	};
	Acts.prototype.SetTooltip = function (text)
	{
		if (this.runtime.isDomFree)
			return;
		this.elem.title = text;
	};
	Acts.prototype.SetVisible = function (vis)
	{
		if (this.runtime.isDomFree)
			return;
		this.visible = (vis !== 0);
	};
	Acts.prototype.SetEnabled = function (en)
	{
		if (this.runtime.isDomFree)
			return;
		this.elem.disabled = (en === 0);
	};
	Acts.prototype.SetReadOnly = function (ro)
	{
		if (this.runtime.isDomFree)
			return;
		this.elem.readOnly = (ro === 0);
	};
	Acts.prototype.SetFocus = function ()
	{
		if (this.runtime.isDomFree)
			return;
		this.elem.focus();
	};
	Acts.prototype.SetBlur = function ()
	{
		if (this.runtime.isDomFree)
			return;
		this.elem.blur();
	};
	Acts.prototype.SetCSSStyle = function (p, v)
	{
		if (this.runtime.isDomFree)
			return;
		jQuery(this.elem).css(p, v);
	};
	Acts.prototype.ScrollToBottom = function ()
	{
		if (this.runtime.isDomFree)
			return;
		this.elem.scrollTop = this.elem.scrollHeight;
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.Text = function (ret)
	{
		if (this.runtime.isDomFree)
		{
			ret.set_string("");
			return;
		}
		ret.set_string(this.elem.value);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.TiledBg = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.TiledBg.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
		if (this.is_family)
			return;
		this.texture_img = new Image();
		this.texture_img["idtkLoadDisposed"] = true;
		this.texture_img.src = this.texture_file;
		this.texture_img.cr_filesize = this.texture_filesize;
		this.runtime.waitForImageLoad(this.texture_img);
		this.pattern = null;
		this.webGL_texture = null;
	};
	typeProto.onLostWebGLContext = function ()
	{
		if (this.is_family)
			return;
		this.webGL_texture = null;
	};
	typeProto.onRestoreWebGLContext = function ()
	{
		if (this.is_family || !this.instances.length)
			return;
		if (!this.webGL_texture)
		{
			this.webGL_texture = this.runtime.glwrap.loadTexture(this.texture_img, true, this.runtime.linearSampling, this.texture_pixelformat);
		}
		var i, len;
		for (i = 0, len = this.instances.length; i < len; i++)
			this.instances[i].webGL_texture = this.webGL_texture;
	};
	typeProto.loadTextures = function ()
	{
		if (this.is_family || this.webGL_texture || !this.runtime.glwrap)
			return;
		this.webGL_texture = this.runtime.glwrap.loadTexture(this.texture_img, true, this.runtime.linearSampling, this.texture_pixelformat);
	};
	typeProto.unloadTextures = function ()
	{
		if (this.is_family || this.instances.length || !this.webGL_texture)
			return;
		this.runtime.glwrap.deleteTexture(this.webGL_texture);
		this.webGL_texture = null;
	};
	typeProto.preloadCanvas2D = function (ctx)
	{
		ctx.drawImage(this.texture_img, 0, 0);
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
	};
	var instanceProto = pluginProto.Instance.prototype;
	instanceProto.onCreate = function()
	{
		this.visible = (this.properties[0] === 0);							// 0=visible, 1=invisible
		this.rcTex = new cr.rect(0, 0, 0, 0);
		this.has_own_texture = false;										// true if a texture loaded in from URL
		this.texture_img = this.type.texture_img;
		if (this.runtime.glwrap)
		{
			this.type.loadTextures();
			this.webGL_texture = this.type.webGL_texture;
		}
		else
		{
			if (!this.type.pattern)
				this.type.pattern = this.runtime.ctx.createPattern(this.type.texture_img, "repeat");
			this.pattern = this.type.pattern;
		}
	};
	instanceProto.afterLoad = function ()
	{
		this.has_own_texture = false;
		this.texture_img = this.type.texture_img;
	};
	instanceProto.onDestroy = function ()
	{
		if (this.runtime.glwrap && this.has_own_texture && this.webGL_texture)
		{
			this.runtime.glwrap.deleteTexture(this.webGL_texture);
			this.webGL_texture = null;
		}
	};
	instanceProto.draw = function(ctx)
	{
		ctx.globalAlpha = this.opacity;
		ctx.save();
		ctx.fillStyle = this.pattern;
		var myx = this.x;
		var myy = this.y;
		if (this.runtime.pixel_rounding)
		{
			myx = (myx + 0.5) | 0;
			myy = (myy + 0.5) | 0;
		}
		var drawX = -(this.hotspotX * this.width);
		var drawY = -(this.hotspotY * this.height);
		var offX = drawX % this.texture_img.width;
		var offY = drawY % this.texture_img.height;
		if (offX < 0)
			offX += this.texture_img.width;
		if (offY < 0)
			offY += this.texture_img.height;
		ctx.translate(myx, myy);
		ctx.rotate(this.angle);
		ctx.translate(offX, offY);
		ctx.fillRect(drawX - offX,
					 drawY - offY,
					 this.width,
					 this.height);
		ctx.restore();
	};
	instanceProto.drawGL = function(glw)
	{
		glw.setTexture(this.webGL_texture);
		glw.setOpacity(this.opacity);
		var rcTex = this.rcTex;
		rcTex.right = this.width / this.texture_img.width;
		rcTex.bottom = this.height / this.texture_img.height;
		var q = this.bquad;
		if (this.runtime.pixel_rounding)
		{
			var ox = ((this.x + 0.5) | 0) - this.x;
			var oy = ((this.y + 0.5) | 0) - this.y;
			glw.quadTex(q.tlx + ox, q.tly + oy, q.trx + ox, q.try_ + oy, q.brx + ox, q.bry + oy, q.blx + ox, q.bly + oy, rcTex);
		}
		else
			glw.quadTex(q.tlx, q.tly, q.trx, q.try_, q.brx, q.bry, q.blx, q.bly, rcTex);
	};
	function Cnds() {};
	Cnds.prototype.OnURLLoaded = function ()
	{
		return true;
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.SetEffect = function (effect)
	{
		this.compositeOp = cr.effectToCompositeOp(effect);
		cr.setGLBlend(this, effect, this.runtime.gl);
		this.runtime.redraw = true;
	};
	Acts.prototype.LoadURL = function (url_)
	{
		var img = new Image();
		var self = this;
		img.onload = function ()
		{
			self.texture_img = img;
			if (self.runtime.glwrap)
			{
				if (self.has_own_texture && self.webGL_texture)
					self.runtime.glwrap.deleteTexture(self.webGL_texture);
				self.webGL_texture = self.runtime.glwrap.loadTexture(img, true, self.runtime.linearSampling);
			}
			else
			{
				self.pattern = self.runtime.ctx.createPattern(img, "repeat");
			}
			self.has_own_texture = true;
			self.runtime.redraw = true;
			self.runtime.trigger(cr.plugins_.TiledBg.prototype.cnds.OnURLLoaded, self);
		};
		if (url_.substr(0, 5) !== "data:")
			img.crossOrigin = 'anonymous';
		img.src = url_;
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.ImageWidth = function (ret)
	{
		ret.set_float(this.texture_img.width);
	};
	Exps.prototype.ImageHeight = function (ret)
	{
		ret.set_float(this.texture_img.height);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.Touch = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.Touch.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
		this.touches = [];
		this.mouseDown = false;
	};
	var instanceProto = pluginProto.Instance.prototype;
	var dummyoffset = {left: 0, top: 0};
	instanceProto.findTouch = function (id)
	{
		var i, len;
		for (i = 0, len = this.touches.length; i < len; i++)
		{
			if (this.touches[i]["id"] === id)
				return i;
		}
		return -1;
	};
	var appmobi_accx = 0;
	var appmobi_accy = 0;
	var appmobi_accz = 0;
	function AppMobiGetAcceleration(evt)
	{
		appmobi_accx = evt.x;
		appmobi_accy = evt.y;
		appmobi_accz = evt.z;
	};
	var pg_accx = 0;
	var pg_accy = 0;
	var pg_accz = 0;
	function PhoneGapGetAcceleration(evt)
	{
		pg_accx = evt.x;
		pg_accy = evt.y;
		pg_accz = evt.z;
	};
	var theInstance = null;
	instanceProto.onCreate = function()
	{
		theInstance = this;
		this.isWindows8 = !!(typeof window["c2isWindows8"] !== "undefined" && window["c2isWindows8"]);
		this.orient_alpha = 0;
		this.orient_beta = 0;
		this.orient_gamma = 0;
		this.acc_g_x = 0;
		this.acc_g_y = 0;
		this.acc_g_z = 0;
		this.acc_x = 0;
		this.acc_y = 0;
		this.acc_z = 0;
		this.curTouchX = 0;
		this.curTouchY = 0;
		this.trigger_index = 0;
		this.trigger_id = 0;
		this.useMouseInput = (this.properties[0] !== 0);
		var elem = (this.runtime.fullscreen_mode > 0) ? document : this.runtime.canvas;
		var elem2 = document;
		if (this.runtime.isDirectCanvas)
			elem2 = elem = window["Canvas"];
		else if (this.runtime.isCocoonJs)
			elem2 = elem = window;
		var self = this;
		if (window.navigator["pointerEnabled"])
		{
			elem.addEventListener("pointerdown",
				function(info) {
					self.onPointerStart(info);
				},
				false
			);
			elem.addEventListener("pointermove",
				function(info) {
					self.onPointerMove(info);
				},
				false
			);
			elem2.addEventListener("pointerup",
				function(info) {
					self.onPointerEnd(info);
				},
				false
			);
			elem2.addEventListener("pointercancel",
				function(info) {
					self.onPointerEnd(info);
				},
				false
			);
			if (this.runtime.canvas)
			{
				this.runtime.canvas.addEventListener("MSGestureHold", function(e) {
					e.preventDefault();
				}, false);
				document.addEventListener("MSGestureHold", function(e) {
					e.preventDefault();
				}, false);
				this.runtime.canvas.addEventListener("gesturehold", function(e) {
					e.preventDefault();
				}, false);
				document.addEventListener("gesturehold", function(e) {
					e.preventDefault();
				}, false);
			}
		}
		else if (window.navigator["msPointerEnabled"])
		{
			elem.addEventListener("MSPointerDown",
				function(info) {
					self.onPointerStart(info);
				},
				false
			);
			elem.addEventListener("MSPointerMove",
				function(info) {
					self.onPointerMove(info);
				},
				false
			);
			elem2.addEventListener("MSPointerUp",
				function(info) {
					self.onPointerEnd(info);
				},
				false
			);
			elem2.addEventListener("MSPointerCancel",
				function(info) {
					self.onPointerEnd(info);
				},
				false
			);
			if (this.runtime.canvas)
			{
				this.runtime.canvas.addEventListener("MSGestureHold", function(e) {
					e.preventDefault();
				}, false);
				document.addEventListener("MSGestureHold", function(e) {
					e.preventDefault();
				}, false);
			}
		}
		else
		{
			elem.addEventListener("touchstart",
				function(info) {
					self.onTouchStart(info);
				},
				false
			);
			elem.addEventListener("touchmove",
				function(info) {
					self.onTouchMove(info);
				},
				false
			);
			elem2.addEventListener("touchend",
				function(info) {
					self.onTouchEnd(info);
				},
				false
			);
			elem2.addEventListener("touchcancel",
				function(info) {
					self.onTouchEnd(info);
				},
				false
			);
		}
		if (this.isWindows8)
		{
			var win8accelerometerFn = function(e) {
					var reading = e["reading"];
					self.acc_x = reading["accelerationX"];
					self.acc_y = reading["accelerationY"];
					self.acc_z = reading["accelerationZ"];
				};
			var win8inclinometerFn = function(e) {
					var reading = e["reading"];
					self.orient_alpha = reading["yawDegrees"];
					self.orient_beta = reading["pitchDegrees"];
					self.orient_gamma = reading["rollDegrees"];
				};
			var accelerometer = Windows["Devices"]["Sensors"]["Accelerometer"]["getDefault"]();
            if (accelerometer)
			{
                accelerometer["reportInterval"] = Math.max(accelerometer["minimumReportInterval"], 16);
				accelerometer.addEventListener("readingchanged", win8accelerometerFn);
            }
			var inclinometer = Windows["Devices"]["Sensors"]["Inclinometer"]["getDefault"]();
			if (inclinometer)
			{
				inclinometer["reportInterval"] = Math.max(inclinometer["minimumReportInterval"], 16);
				inclinometer.addEventListener("readingchanged", win8inclinometerFn);
			}
			document.addEventListener("visibilitychange", function(e) {
				if (document["hidden"] || document["msHidden"])
				{
					if (accelerometer)
						accelerometer.removeEventListener("readingchanged", win8accelerometerFn);
					if (inclinometer)
						inclinometer.removeEventListener("readingchanged", win8inclinometerFn);
				}
				else
				{
					if (accelerometer)
						accelerometer.addEventListener("readingchanged", win8accelerometerFn);
					if (inclinometer)
						inclinometer.addEventListener("readingchanged", win8inclinometerFn);
				}
			}, false);
		}
		else
		{
			window.addEventListener("deviceorientation", function (eventData) {
				self.orient_alpha = eventData["alpha"] || 0;
				self.orient_beta = eventData["beta"] || 0;
				self.orient_gamma = eventData["gamma"] || 0;
			}, false);
			window.addEventListener("devicemotion", function (eventData) {
				if (eventData["accelerationIncludingGravity"])
				{
					self.acc_g_x = eventData["accelerationIncludingGravity"]["x"] || 0;
					self.acc_g_y = eventData["accelerationIncludingGravity"]["y"] || 0;
					self.acc_g_z = eventData["accelerationIncludingGravity"]["z"] || 0;
				}
				if (eventData["acceleration"])
				{
					self.acc_x = eventData["acceleration"]["x"] || 0;
					self.acc_y = eventData["acceleration"]["y"] || 0;
					self.acc_z = eventData["acceleration"]["z"] || 0;
				}
			}, false);
		}
		if (this.useMouseInput && !this.runtime.isDomFree)
		{
			jQuery(document).mousemove(
				function(info) {
					self.onMouseMove(info);
				}
			);
			jQuery(document).mousedown(
				function(info) {
					self.onMouseDown(info);
				}
			);
			jQuery(document).mouseup(
				function(info) {
					self.onMouseUp(info);
				}
			);
		}
		if (this.runtime.isAppMobi && !this.runtime.isDirectCanvas)
		{
			AppMobi["accelerometer"]["watchAcceleration"](AppMobiGetAcceleration, { "frequency": 40, "adjustForRotation": true });
		}
		if (this.runtime.isPhoneGap && navigator["accelerometer"] && navigator["accelerometer"]["watchAcceleration"])
		{
			navigator["accelerometer"]["watchAcceleration"](PhoneGapGetAcceleration, null, { "frequency": 40 });
		}
		this.runtime.tick2Me(this);
	};
	instanceProto.onPointerMove = function (info)
	{
		if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse")
			return;
		if (info.preventDefault)
			info.preventDefault();
		var i = this.findTouch(info["pointerId"]);
		var nowtime = cr.performance_now();
		if (i >= 0)
		{
			var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset();
			var t = this.touches[i];
			if (nowtime - t.time < 2)
				return;
			t.lasttime = t.time;
			t.lastx = t.x;
			t.lasty = t.y;
			t.time = nowtime;
			t.x = info.pageX - offset.left;
			t.y = info.pageY - offset.top;
		}
	};
	instanceProto.onPointerStart = function (info)
	{
		if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse")
			return;
		if (info.preventDefault)
			info.preventDefault();
		var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset();
		var touchx = info.pageX - offset.left;
		var touchy = info.pageY - offset.top;
		var nowtime = cr.performance_now();
		this.trigger_index = this.touches.length;
		this.trigger_id = info["pointerId"];
		this.touches.push({ time: nowtime,
							x: touchx,
							y: touchy,
							lasttime: nowtime,
							lastx: touchx,
							lasty: touchy,
							"id": info["pointerId"],
							startindex: this.trigger_index
						});
		this.runtime.isInUserInputEvent = true;
		this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnNthTouchStart, this);
		this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchStart, this);
		this.curTouchX = touchx;
		this.curTouchY = touchy;
		this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchObject, this);
		this.runtime.isInUserInputEvent = false;
	};
	instanceProto.onPointerEnd = function (info)
	{
		if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse")
			return;
		if (info.preventDefault)
			info.preventDefault();
		var i = this.findTouch(info["pointerId"]);
		this.trigger_index = (i >= 0 ? this.touches[i].startindex : -1);
		this.trigger_id = (i >= 0 ? this.touches[i]["id"] : -1);
		this.runtime.isInUserInputEvent = true;
		this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnNthTouchEnd, this);
		this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchEnd, this);
		this.runtime.isInUserInputEvent = false;
		if (i >= 0)
		{
			this.touches.splice(i, 1);
		}
	};
	instanceProto.onTouchMove = function (info)
	{
		if (info.preventDefault)
			info.preventDefault();
		var nowtime = cr.performance_now();
		var i, len, t, u;
		for (i = 0, len = info.changedTouches.length; i < len; i++)
		{
			t = info.changedTouches[i];
			var j = this.findTouch(t["identifier"]);
			if (j >= 0)
			{
				var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset();
				u = this.touches[j];
				if (nowtime - u.time < 2)
					continue;
				u.lasttime = u.time;
				u.lastx = u.x;
				u.lasty = u.y;
				u.time = nowtime;
				u.x = t.pageX - offset.left;
				u.y = t.pageY - offset.top;
			}
		}
	};
	instanceProto.onTouchStart = function (info)
	{
		if (info.preventDefault)
			info.preventDefault();
		var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset();
		var nowtime = cr.performance_now();
		this.runtime.isInUserInputEvent = true;
		var i, len, t, j;
		for (i = 0, len = info.changedTouches.length; i < len; i++)
		{
			t = info.changedTouches[i];
			j = this.findTouch(t["identifier"]);
			if (j !== -1)
				continue;
			var touchx = t.pageX - offset.left;
			var touchy = t.pageY - offset.top;
			this.trigger_index = this.touches.length;
			this.trigger_id = t["identifier"];
			this.touches.push({ time: nowtime,
								x: touchx,
								y: touchy,
								lasttime: nowtime,
								lastx: touchx,
								lasty: touchy,
								"id": t["identifier"],
								startindex: this.trigger_index
							});
			this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnNthTouchStart, this);
			this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchStart, this);
			this.curTouchX = touchx;
			this.curTouchY = touchy;
			this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchObject, this);
		}
		this.runtime.isInUserInputEvent = false;
	};
	instanceProto.onTouchEnd = function (info)
	{
		if (info.preventDefault)
			info.preventDefault();
		this.runtime.isInUserInputEvent = true;
		var i, len, t, j;
		for (i = 0, len = info.changedTouches.length; i < len; i++)
		{
			t = info.changedTouches[i];
			j = this.findTouch(t["identifier"]);
			if (j >= 0)
			{
				this.trigger_index = this.touches[j].startindex;
				this.trigger_id = this.touches[j]["id"];
				this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnNthTouchEnd, this);
				this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchEnd, this);
				this.touches.splice(j, 1);
			}
		}
		this.runtime.isInUserInputEvent = false;
	};
	instanceProto.getAlpha = function ()
	{
		if (this.runtime.isAppMobi && this.orient_alpha === 0 && appmobi_accz !== 0)
			return appmobi_accz * 90;
		else if (this.runtime.isPhoneGap  && this.orient_alpha === 0 && pg_accz !== 0)
			return pg_accz * 90;
		else
			return this.orient_alpha;
	};
	instanceProto.getBeta = function ()
	{
		if (this.runtime.isAppMobi && this.orient_beta === 0 && appmobi_accy !== 0)
			return appmobi_accy * -90;
		else if (this.runtime.isPhoneGap  && this.orient_beta === 0 && pg_accy !== 0)
			return pg_accy * -90;
		else
			return this.orient_beta;
	};
	instanceProto.getGamma = function ()
	{
		if (this.runtime.isAppMobi && this.orient_gamma === 0 && appmobi_accx !== 0)
			return appmobi_accx * 90;
		else if (this.runtime.isPhoneGap  && this.orient_gamma === 0 && pg_accx !== 0)
			return pg_accx * 90;
		else
			return this.orient_gamma;
	};
	var noop_func = function(){};
	instanceProto.onMouseDown = function(info)
	{
		if (info.preventDefault && this.runtime.had_a_click && !this.runtime.isMobile)
			info.preventDefault();
		var t = { pageX: info.pageX, pageY: info.pageY, "identifier": 0 };
		var fakeinfo = { changedTouches: [t] };
		this.onTouchStart(fakeinfo);
		this.mouseDown = true;
	};
	instanceProto.onMouseMove = function(info)
	{
		if (!this.mouseDown)
			return;
		var t = { pageX: info.pageX, pageY: info.pageY, "identifier": 0 };
		var fakeinfo = { changedTouches: [t] };
		this.onTouchMove(fakeinfo);
	};
	instanceProto.onMouseUp = function(info)
	{
		if (info.preventDefault && this.runtime.had_a_click && !this.runtime.isMobile)
			info.preventDefault();
		this.runtime.had_a_click = true;
		var t = { pageX: info.pageX, pageY: info.pageY, "identifier": 0 };
		var fakeinfo = { changedTouches: [t] };
		this.onTouchEnd(fakeinfo);
		this.mouseDown = false;
	};
	instanceProto.tick2 = function()
	{
		var i, len, t;
		var nowtime = cr.performance_now();
		for (i = 0, len = this.touches.length; i < len; i++)
		{
			t = this.touches[i];
			if (t.time <= nowtime - 50)
				t.lasttime = nowtime;
		}
	};
	function Cnds() {};
	Cnds.prototype.OnTouchStart = function ()
	{
		return true;
	};
	Cnds.prototype.OnTouchEnd = function ()
	{
		return true;
	};
	Cnds.prototype.IsInTouch = function ()
	{
		return this.touches.length;
	};
	Cnds.prototype.OnTouchObject = function (type)
	{
		if (!type)
			return false;
		return this.runtime.testAndSelectCanvasPointOverlap(type, this.curTouchX, this.curTouchY, false);
	};
	Cnds.prototype.IsTouchingObject = function (type)
	{
		if (!type)
			return false;
		var sol = type.getCurrentSol();
		var instances = sol.getObjects();
		var px, py;
		var touching = [];
		var i, leni, j, lenj;
		for (i = 0, leni = instances.length; i < leni; i++)
		{
			var inst = instances[i];
			inst.update_bbox();
			for (j = 0, lenj = this.touches.length; j < lenj; j++)
			{
				var touch = this.touches[j];
				px = inst.layer.canvasToLayer(touch.x, touch.y, true);
				py = inst.layer.canvasToLayer(touch.x, touch.y, false);
				if (inst.contains_pt(px, py))
				{
					touching.push(inst);
					break;
				}
			}
		}
		if (touching.length)
		{
			sol.select_all = false;
			sol.instances = touching;
			type.applySolToContainer();
			return true;
		}
		else
			return false;
	};
	Cnds.prototype.CompareTouchSpeed = function (index, cmp, s)
	{
		index = Math.floor(index);
		if (index < 0 || index >= this.touches.length)
			return false;
		var t = this.touches[index];
		var dist = cr.distanceTo(t.x, t.y, t.lastx, t.lasty);
		var timediff = (t.time - t.lasttime) / 1000;
		var speed = 0;
		if (timediff > 0)
			speed = dist / timediff;
		return cr.do_cmp(speed, cmp, s);
	};
	Cnds.prototype.OrientationSupported = function ()
	{
		return typeof window["DeviceOrientationEvent"] !== "undefined";
	};
	Cnds.prototype.MotionSupported = function ()
	{
		return typeof window["DeviceMotionEvent"] !== "undefined";
	};
	Cnds.prototype.CompareOrientation = function (orientation_, cmp_, angle_)
	{
		var v = 0;
		if (orientation_ === 0)
			v = this.getAlpha();
		else if (orientation_ === 1)
			v = this.getBeta();
		else
			v = this.getGamma();
		return cr.do_cmp(v, cmp_, angle_);
	};
	Cnds.prototype.CompareAcceleration = function (acceleration_, cmp_, angle_)
	{
		var v = 0;
		if (acceleration_ === 0)
			v = this.acc_g_x;
		else if (acceleration_ === 1)
			v = this.acc_g_y;
		else if (acceleration_ === 2)
			v = this.acc_g_z;
		else if (acceleration_ === 3)
			v = this.acc_x;
		else if (acceleration_ === 4)
			v = this.acc_y;
		else if (acceleration_ === 5)
			v = this.acc_z;
		return cr.do_cmp(v, cmp_, angle_);
	};
	Cnds.prototype.OnNthTouchStart = function (touch_)
	{
		touch_ = Math.floor(touch_);
		return touch_ === this.trigger_index;
	};
	Cnds.prototype.OnNthTouchEnd = function (touch_)
	{
		touch_ = Math.floor(touch_);
		return touch_ === this.trigger_index;
	};
	Cnds.prototype.HasNthTouch = function (touch_)
	{
		touch_ = Math.floor(touch_);
		return this.touches.length >= touch_ + 1;
	};
	pluginProto.cnds = new Cnds();
	function Exps() {};
	Exps.prototype.TouchCount = function (ret)
	{
		ret.set_int(this.touches.length);
	};
	Exps.prototype.X = function (ret, layerparam)
	{
		if (this.touches.length)
		{
			var layer, oldScale, oldZoomRate, oldParallaxX, oldAngle;
			if (cr.is_undefined(layerparam))
			{
				layer = this.runtime.getLayerByNumber(0);
				oldScale = layer.scale;
				oldZoomRate = layer.zoomRate;
				oldParallaxX = layer.parallaxX;
				oldAngle = layer.angle;
				layer.scale = this.runtime.running_layout.scale;
				layer.zoomRate = 1.0;
				layer.parallaxX = 1.0;
				layer.angle = this.runtime.running_layout.angle;
				ret.set_float(layer.canvasToLayer(this.touches[0].x, this.touches[0].y, true));
				layer.scale = oldScale;
				layer.zoomRate = oldZoomRate;
				layer.parallaxX = oldParallaxX;
				layer.angle = oldAngle;
			}
			else
			{
				if (cr.is_number(layerparam))
					layer = this.runtime.getLayerByNumber(layerparam);
				else
					layer = this.runtime.getLayerByName(layerparam);
				if (layer)
					ret.set_float(layer.canvasToLayer(this.touches[0].x, this.touches[0].y, true));
				else
					ret.set_float(0);
			}
		}
		else
			ret.set_float(0);
	};
	Exps.prototype.XAt = function (ret, index, layerparam)
	{
		index = Math.floor(index);
		if (index < 0 || index >= this.touches.length)
		{
			ret.set_float(0);
			return;
		}
		var layer, oldScale, oldZoomRate, oldParallaxX, oldAngle;
		if (cr.is_undefined(layerparam))
		{
			layer = this.runtime.getLayerByNumber(0);
			oldScale = layer.scale;
			oldZoomRate = layer.zoomRate;
			oldParallaxX = layer.parallaxX;
			oldAngle = layer.angle;
			layer.scale = this.runtime.running_layout.scale;
			layer.zoomRate = 1.0;
			layer.parallaxX = 1.0;
			layer.angle = this.runtime.running_layout.angle;
			ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, true));
			layer.scale = oldScale;
			layer.zoomRate = oldZoomRate;
			layer.parallaxX = oldParallaxX;
			layer.angle = oldAngle;
		}
		else
		{
			if (cr.is_number(layerparam))
				layer = this.runtime.getLayerByNumber(layerparam);
			else
				layer = this.runtime.getLayerByName(layerparam);
			if (layer)
				ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, true));
			else
				ret.set_float(0);
		}
	};
	Exps.prototype.XForID = function (ret, id, layerparam)
	{
		var index = this.findTouch(id);
		if (index < 0)
		{
			ret.set_float(0);
			return;
		}
		var touch = this.touches[index];
		var layer, oldScale, oldZoomRate, oldParallaxX, oldAngle;
		if (cr.is_undefined(layerparam))
		{
			layer = this.runtime.getLayerByNumber(0);
			oldScale = layer.scale;
			oldZoomRate = layer.zoomRate;
			oldParallaxX = layer.parallaxX;
			oldAngle = layer.angle;
			layer.scale = this.runtime.running_layout.scale;
			layer.zoomRate = 1.0;
			layer.parallaxX = 1.0;
			layer.angle = this.runtime.running_layout.angle;
			ret.set_float(layer.canvasToLayer(touch.x, touch.y, true));
			layer.scale = oldScale;
			layer.zoomRate = oldZoomRate;
			layer.parallaxX = oldParallaxX;
			layer.angle = oldAngle;
		}
		else
		{
			if (cr.is_number(layerparam))
				layer = this.runtime.getLayerByNumber(layerparam);
			else
				layer = this.runtime.getLayerByName(layerparam);
			if (layer)
				ret.set_float(layer.canvasToLayer(touch.x, touch.y, true));
			else
				ret.set_float(0);
		}
	};
	Exps.prototype.Y = function (ret, layerparam)
	{
		if (this.touches.length)
		{
			var layer, oldScale, oldZoomRate, oldParallaxY, oldAngle;
			if (cr.is_undefined(layerparam))
			{
				layer = this.runtime.getLayerByNumber(0);
				oldScale = layer.scale;
				oldZoomRate = layer.zoomRate;
				oldParallaxY = layer.parallaxY;
				oldAngle = layer.angle;
				layer.scale = this.runtime.running_layout.scale;
				layer.zoomRate = 1.0;
				layer.parallaxY = 1.0;
				layer.angle = this.runtime.running_layout.angle;
				ret.set_float(layer.canvasToLayer(this.touches[0].x, this.touches[0].y, false));
				layer.scale = oldScale;
				layer.zoomRate = oldZoomRate;
				layer.parallaxY = oldParallaxY;
				layer.angle = oldAngle;
			}
			else
			{
				if (cr.is_number(layerparam))
					layer = this.runtime.getLayerByNumber(layerparam);
				else
					layer = this.runtime.getLayerByName(layerparam);
				if (layer)
					ret.set_float(layer.canvasToLayer(this.touches[0].x, this.touches[0].y, false));
				else
					ret.set_float(0);
			}
		}
		else
			ret.set_float(0);
	};
	Exps.prototype.YAt = function (ret, index, layerparam)
	{
		index = Math.floor(index);
		if (index < 0 || index >= this.touches.length)
		{
			ret.set_float(0);
			return;
		}
		var layer, oldScale, oldZoomRate, oldParallaxY, oldAngle;
		if (cr.is_undefined(layerparam))
		{
			layer = this.runtime.getLayerByNumber(0);
			oldScale = layer.scale;
			oldZoomRate = layer.zoomRate;
			oldParallaxY = layer.parallaxY;
			oldAngle = layer.angle;
			layer.scale = this.runtime.running_layout.scale;
			layer.zoomRate = 1.0;
			layer.parallaxY = 1.0;
			layer.angle = this.runtime.running_layout.angle;
			ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, false));
			layer.scale = oldScale;
			layer.zoomRate = oldZoomRate;
			layer.parallaxY = oldParallaxY;
			layer.angle = oldAngle;
		}
		else
		{
			if (cr.is_number(layerparam))
				layer = this.runtime.getLayerByNumber(layerparam);
			else
				layer = this.runtime.getLayerByName(layerparam);
			if (layer)
				ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, false));
			else
				ret.set_float(0);
		}
	};
	Exps.prototype.YForID = function (ret, id, layerparam)
	{
		var index = this.findTouch(id);
		if (index < 0)
		{
			ret.set_float(0);
			return;
		}
		var touch = this.touches[index];
		var layer, oldScale, oldZoomRate, oldParallaxY, oldAngle;
		if (cr.is_undefined(layerparam))
		{
			layer = this.runtime.getLayerByNumber(0);
			oldScale = layer.scale;
			oldZoomRate = layer.zoomRate;
			oldParallaxY = layer.parallaxY;
			oldAngle = layer.angle;
			layer.scale = this.runtime.running_layout.scale;
			layer.zoomRate = 1.0;
			layer.parallaxY = 1.0;
			layer.angle = this.runtime.running_layout.angle;
			ret.set_float(layer.canvasToLayer(touch.x, touch.y, false));
			layer.scale = oldScale;
			layer.zoomRate = oldZoomRate;
			layer.parallaxY = oldParallaxY;
			layer.angle = oldAngle;
		}
		else
		{
			if (cr.is_number(layerparam))
				layer = this.runtime.getLayerByNumber(layerparam);
			else
				layer = this.runtime.getLayerByName(layerparam);
			if (layer)
				ret.set_float(layer.canvasToLayer(touch.x, touch.y, false));
			else
				ret.set_float(0);
		}
	};
	Exps.prototype.AbsoluteX = function (ret)
	{
		if (this.touches.length)
			ret.set_float(this.touches[0].x);
		else
			ret.set_float(0);
	};
	Exps.prototype.AbsoluteXAt = function (ret, index)
	{
		index = Math.floor(index);
		if (index < 0 || index >= this.touches.length)
		{
			ret.set_float(0);
			return;
		}
		ret.set_float(this.touches[index].x);
	};
	Exps.prototype.AbsoluteXForID = function (ret, id)
	{
		var index = this.findTouch(id);
		if (index < 0)
		{
			ret.set_float(0);
			return;
		}
		var touch = this.touches[index];
		ret.set_float(touch.x);
	};
	Exps.prototype.AbsoluteY = function (ret)
	{
		if (this.touches.length)
			ret.set_float(this.touches[0].y);
		else
			ret.set_float(0);
	};
	Exps.prototype.AbsoluteYAt = function (ret, index)
	{
		index = Math.floor(index);
		if (index < 0 || index >= this.touches.length)
		{
			ret.set_float(0);
			return;
		}
		ret.set_float(this.touches[index].y);
	};
	Exps.prototype.AbsoluteYForID = function (ret, id)
	{
		var index = this.findTouch(id);
		if (index < 0)
		{
			ret.set_float(0);
			return;
		}
		var touch = this.touches[index];
		ret.set_float(touch.y);
	};
	Exps.prototype.SpeedAt = function (ret, index)
	{
		index = Math.floor(index);
		if (index < 0 || index >= this.touches.length)
		{
			ret.set_float(0);
			return;
		}
		var t = this.touches[index];
		var dist = cr.distanceTo(t.x, t.y, t.lastx, t.lasty);
		var timediff = (t.time - t.lasttime) / 1000;
		if (timediff === 0)
			ret.set_float(0);
		else
			ret.set_float(dist / timediff);
	};
	Exps.prototype.SpeedForID = function (ret, id)
	{
		var index = this.findTouch(id);
		if (index < 0)
		{
			ret.set_float(0);
			return;
		}
		var touch = this.touches[index];
		var dist = cr.distanceTo(touch.x, touch.y, touch.lastx, touch.lasty);
		var timediff = (touch.time - touch.lasttime) / 1000;
		if (timediff === 0)
			ret.set_float(0);
		else
			ret.set_float(dist / timediff);
	};
	Exps.prototype.AngleAt = function (ret, index)
	{
		index = Math.floor(index);
		if (index < 0 || index >= this.touches.length)
		{
			ret.set_float(0);
			return;
		}
		var t = this.touches[index];
		ret.set_float(cr.to_degrees(cr.angleTo(t.lastx, t.lasty, t.x, t.y)));
	};
	Exps.prototype.AngleForID = function (ret, id)
	{
		var index = this.findTouch(id);
		if (index < 0)
		{
			ret.set_float(0);
			return;
		}
		var touch = this.touches[index];
		ret.set_float(cr.to_degrees(cr.angleTo(touch.lastx, touch.lasty, touch.x, touch.y)));
	};
	Exps.prototype.Alpha = function (ret)
	{
		ret.set_float(this.getAlpha());
	};
	Exps.prototype.Beta = function (ret)
	{
		ret.set_float(this.getBeta());
	};
	Exps.prototype.Gamma = function (ret)
	{
		ret.set_float(this.getGamma());
	};
	Exps.prototype.AccelerationXWithG = function (ret)
	{
		ret.set_float(this.acc_g_x);
	};
	Exps.prototype.AccelerationYWithG = function (ret)
	{
		ret.set_float(this.acc_g_y);
	};
	Exps.prototype.AccelerationZWithG = function (ret)
	{
		ret.set_float(this.acc_g_z);
	};
	Exps.prototype.AccelerationX = function (ret)
	{
		ret.set_float(this.acc_x);
	};
	Exps.prototype.AccelerationY = function (ret)
	{
		ret.set_float(this.acc_y);
	};
	Exps.prototype.AccelerationZ = function (ret)
	{
		ret.set_float(this.acc_z);
	};
	Exps.prototype.TouchIndex = function (ret)
	{
		ret.set_int(this.trigger_index);
	};
	Exps.prototype.TouchID = function (ret)
	{
		ret.set_float(this.trigger_id);
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.WebStorage = function(runtime)
{
	this.runtime = runtime;
};
(function()
{
	var pluginProto = cr.plugins_.WebStorage.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
	};
	var instanceProto = pluginProto.Instance.prototype;
	var prefix = "";
	var is_arcade = (typeof window["is_scirra_arcade"] !== "undefined");
	if (is_arcade)
		prefix = "arcade" + window["scirra_arcade_id"];
	var logged_sessionnotsupported = false;
	function LogSessionNotSupported()
	{
		if (logged_sessionnotsupported)
			return;
		cr.logexport("[Construct 2] Webstorage plugin: session storage is not supported on this platform. Try using local storage or global variables instead.");
		logged_sessionnotsupported = true;
	};
	instanceProto.onCreate = function()
	{
	};
	function Cnds() {};
	Cnds.prototype.LocalStorageEnabled = function()
	{
		return true;
	};
	Cnds.prototype.SessionStorageEnabled = function()
	{
		return true;
	};
	Cnds.prototype.LocalStorageExists = function(key)
	{
		return localStorage.getItem(prefix + key) != null;
	};
	Cnds.prototype.SessionStorageExists = function(key)
	{
		if (this.runtime.isCocoonJs || !sessionStorage)
		{
			LogSessionNotSupported();
			return false;
		}
		return sessionStorage.getItem(prefix + key) != null;
	};
	Cnds.prototype.OnQuotaExceeded = function ()
	{
		return true;
	};
	Cnds.prototype.CompareKeyText = function (key, text_to_compare, case_sensitive)
	{
		var value = localStorage.getItem(prefix + key) || "";
		if (case_sensitive)
			return value == text_to_compare;
		else
			return cr.equals_nocase(value, text_to_compare);
	};
	Cnds.prototype.CompareKeyNumber = function (key, cmp, x)
	{
		var value = localStorage.getItem(prefix + key) || "";
		return cr.do_cmp(parseFloat(value), cmp, x);
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.StoreLocal = function(key, data)
	{
		try {
			localStorage.setItem(prefix + key, data);
		}
		catch (e)
		{
			this.runtime.trigger(cr.plugins_.WebStorage.prototype.cnds.OnQuotaExceeded, this);
		}
	};
	Acts.prototype.StoreSession = function(key,data)
	{
		if (this.runtime.isCocoonJs || !sessionStorage)
		{
			LogSessionNotSupported();
			return;
		}
		try {
			sessionStorage.setItem(prefix + key, data);
		}
		catch (e)
		{
			this.runtime.trigger(cr.plugins_.WebStorage.prototype.cnds.OnQuotaExceeded, this);
		}
	};
	Acts.prototype.RemoveLocal = function(key)
	{
		localStorage.removeItem(prefix + key);
	};
	Acts.prototype.RemoveSession = function(key)
	{
		if (this.runtime.isCocoonJs || !sessionStorage)
		{
			LogSessionNotSupported();
			return;
		}
		sessionStorage.removeItem(prefix + key);
	};
	Acts.prototype.ClearLocal = function()
	{
		if (!is_arcade)
			localStorage.clear();
	};
	Acts.prototype.ClearSession = function()
	{
		if (this.runtime.isCocoonJs || !sessionStorage)
		{
			LogSessionNotSupported();
			return;
		}
		if (!is_arcade)
			sessionStorage.clear();
	};
	Acts.prototype.JSONLoad = function (json_, mode_)
	{
		var d;
		try {
			d = JSON.parse(json_);
		}
		catch(e) { return; }
		if (!d["c2dictionary"])			// presumably not a c2dictionary object
			return;
		var o = d["data"];
		if (mode_ === 0 && !is_arcade)	// 'set' mode: must clear webstorage first
			localStorage.clear();
		var p;
		for (p in o)
		{
			if (o.hasOwnProperty(p))
			{
				try {
					localStorage.setItem(prefix + p, o[p]);
				}
				catch (e)
				{
					this.runtime.trigger(cr.plugins_.WebStorage.prototype.cnds.OnQuotaExceeded, this);
					return;
				}
			}
		}
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.LocalValue = function(ret,key)
	{
		ret.set_string(localStorage.getItem(prefix + key) || "");
	};
	Exps.prototype.SessionValue = function(ret,key)
	{
		if (this.runtime.isCocoonJs || !sessionStorage)
		{
			LogSessionNotSupported();
			ret.set_string("");
			return;
		}
		ret.set_string(sessionStorage.getItem(prefix + key) || "");
	};
	Exps.prototype.LocalCount = function(ret)
	{
		ret.set_int(is_arcade ? 0 : localStorage.length);
	};
	Exps.prototype.SessionCount = function(ret)
	{
		if (this.runtime.isCocoonJs || !sessionStorage)
		{
			LogSessionNotSupported();
			ret.set_int(0);
			return;
		}
		ret.set_int(is_arcade ? 0 : sessionStorage.length);
	};
	Exps.prototype.LocalAt = function(ret,n)
	{
		if (is_arcade)
			ret.set_string("");
		else
			ret.set_string(localStorage.getItem(localStorage.key(n)) || "");
	};
	Exps.prototype.SessionAt = function(ret,n)
	{
		if (this.runtime.isCocoonJs || !sessionStorage)
		{
			LogSessionNotSupported();
			ret.set_string("");
			return;
		}
		if (is_arcade)
			ret.set_string("");
		else
			ret.set_string(sessionStorage.getItem(sessionStorage.key(n)) || "");
	};
	Exps.prototype.LocalKeyAt = function(ret,n)
	{
		if (is_arcade)
			ret.set_string("");
		else
			ret.set_string(localStorage.key(n) || "");
	};
	Exps.prototype.SessionKeyAt = function(ret,n)
	{
		if (this.runtime.isCocoonJs || !sessionStorage)
		{
			LogSessionNotSupported();
			ret.set_string("");
			return;
		}
		if (is_arcade)
			ret.set_string("");
		else
			ret.set_string(sessionStorage.key(n) || "");
	};
	Exps.prototype.AsJSON = function (ret)
	{
		var o = {}, i, len, k;
		for (i = 0, len = localStorage.length; i < len; i++)
		{
			k = localStorage.key(i);
			if (is_arcade)
			{
				if (k.substr(0, prefix.length) === prefix)
				{
					o[k.substr(prefix.length)] = localStorage.getItem(k);
				}
			}
			else
				o[k] = localStorage.getItem(k);
		}
		ret.set_string(JSON.stringify({
			"c2dictionary": true,
			"data": o
		}));
	};
	pluginProto.exps = new Exps();
}());
;
;
cr.plugins_.appMobi = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var pluginProto = cr.plugins_.appMobi.prototype;
	pluginProto.Type = function(plugin)
	{
		this.plugin = plugin;
		this.runtime = plugin.runtime;
	};
	var typeProto = pluginProto.Type.prototype;
	typeProto.onCreate = function()
	{
	};
	var appMobiEnabled=false;
	var appMobiObj={};
	var evtRemoteDataResponse='';
	var evtBarCodeResponse='';
	var evtConnection='';
	var evtRemoteStatus='idle';
	var accelerometer={x:0,y:0,z:0};
	var appMobiRuntime = null;
	var appMobiInst = null;
	var awex = null;
	pluginProto.Instance = function(type)
	{
		this.type = type;
		this.runtime = type.runtime;
	};
	var amev = {};
	var isDC = false;
	amev.getRemoteDataEvent = function(event)
	{
		try {
			if(event.success)
			{
				evtRemoteDataResponse=event.response;
				appMobiRuntime.trigger(cr.plugins_.appMobi.prototype.cnds.OnRemoteData, appMobiInst);
			}
		} catch(e){}
	};
	amev.barcodeScanned = function(event)
	{
		try {
			if(event.success)
			{
				evtBarCodeResponse=event.codedata;
				appMobiRuntime.trigger(cr.plugins_.appMobi.prototype.cnds.OnBarcodeScanned, appMobiInst);
			}
		} catch(e){}
	};
	amev.connectionUpdate = function(event)
	{
		try {
			if(event.success)
			{
				evtConnection=event.connection;
			}
		} catch(e){}
	};
	amev.remoteClosed = function(event)
	{
		try {
			if(event.success)
			{
				evtRemoteStatus='closed';
				appMobiRuntime.trigger(cr.plugins_.appMobi.prototype.cnds.OnRemoteSiteClosed, appMobiInst);
			}
		} catch(e){}
	};
	amev.onBack = function(event)
	{
		appMobiRuntime.trigger(cr.plugins_.appMobi.prototype.cnds.OnBack, appMobiInst);
	};
	amev.barcodeScanned = function(event){ try{ if(event.success){ evtBarCodeResponse=event.codedata; } }catch(e){} }
	amev.connectionUpdate = function(event){ try{ if(event.success){ evtConnection=event.connection; } }catch(e){} }
	amev.remoteClosed = function(event){ try{ evtRemoteStatus='closed'; }catch(e){} }
	var instanceProto = pluginProto.Instance.prototype;
	instanceProto.onCreate = function()
	{
		appMobiRuntime = this.runtime;
		appMobiInst = this;
		isDC = this.runtime.isDirectCanvas;
		if (isDC)
			awex = AppMobi["webview"]["execute"];
		if (typeof window["AppMobi"] !== "undefined" && !isDC)
		{
			appMobiObj = window["AppMobi"];
			appMobiEnabled = true;
			document.addEventListener("appMobi.device.remote.data", amev.getRemoteDataEvent,false);
			document.addEventListener("appMobi.device.barcode.scan", amev.barcodeScanned, false);
			document.addEventListener("appMobi.device.connection.update", amev.connectionUpdate, false);
			document.addEventListener("appMobi.device.remote.close", amev.remoteClosed, false);
			document.addEventListener("appMobi.device.hardware.back", amev.onBack, false);
		}
	};
	instanceProto.onLayoutChange = function ()
	{
	};
	function Cnds() {};
	/*********************************************************
		DEVICE
	*********************************************************/
	Cnds.prototype.deviceHasCaching = function ()
	{
		if (!appMobiEnabled || isDC)
			return false;
		return appMobiObj['device']['hasCaching'];
	};
	Cnds.prototype.deviceHasPush = function ()
	{
		if (!appMobiEnabled || isDC)
			return false;
		return appMobiObj['device']['hasPush'];
	};
	Cnds.prototype.deviceHasStreaming = function ()
	{
		if (!appMobiEnabled || isDC)
			return false;
		return appMobiObj['device']['hasStreaming'];
	};
	Cnds.prototype.deviceHasUpdates = function ()
	{
		if (!appMobiEnabled || isDC)
			return false;
		return appMobiObj['device']['hasUpdates'];
	};
	Cnds.prototype.isInAppMobi = function ()
	{
		return appMobiEnabled || isDC;
	};
	var orients_array = [0, -90, 90, 180];
	Cnds.prototype.compareOrientation = function (o)
	{
		if (!appMobiEnabled || isDC)
			return (o === 0);	// assume portrait when not in appMobi
		return orients_array[o] === parseInt(appMobiObj['device']['orientation']);
	};
	Cnds.prototype.compareInitialOrientation = function (o)
	{
		if (!appMobiEnabled || isDC)
			return (o === 0);	// assume was in portrait when not in appMobi
		return orients_array[o] === parseInt(appMobiObj['device']['initialOrientation']);
	};
	Cnds.prototype.OnBarcodeScanned = function ()
	{
		return true;
	};
	Cnds.prototype.OnRemoteSiteClosed = function ()
	{
		return true;
	};
	Cnds.prototype.OnRemoteData = function ()
	{
		return true;
	};
	Cnds.prototype.OnBack = function ()
	{
		return true;
	};
	pluginProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.deviceCloseRemoteSite = function ()
	{
		try {
			if (isDC)
				awex("AppMobi['device']['closeRemoteSite']();");
			else
				appMobiObj['device']['closeRemoteSite']();
		} catch(e) {}
	};
	Acts.prototype.deviceGetRemoteData = function (method, url, body, id)
	{
		if (isDC)
			return;
		try {
			evtRemoteDataResponse='';
			var parameters = new appMobiObj['Device']['RemoteDataParameters']();
			parameters.url = url;
			parameters.id = id;
			parameters.method = method;
			parameters.body = body;
			appMobiObj['device']['getRemoteDataExt'](parameters);
		} catch(e) {}
	}
	Acts.prototype.deviceHideSplashScreen = function ()
	{
		try {
			if (isDC)
				awex("AppMobi['device']['hideSplashScreen']();");
			else
				appMobiObj['device']['hideSplashScreen']();
		} catch(e) {}
	};
	Acts.prototype.deviceInstallUpdate = function ()
	{
		try {
			if (isDC)
				awex("AppMobi['device']['installUpdate']();");
			else
				appMobiObj['device']['installUpdate']();
		} catch(e) {}
	};
	Acts.prototype.deviceLaunchExternal = function (url)
	{
		try {
			if (isDC)
				awex("AppMobi['device']['launchExternal']('" + url + "');");
			else
				appMobiObj['device']['launchExternal'](url);
		} catch(e) {}
	};
	Acts.prototype.deviceMainViewExecute = function (cmd)
	{
		try {
			appMobiObj['device']['mainViewExecute'](cmd);
		} catch(e) {}
	};
	Acts.prototype.deviceScanBarcode = function ()
	{
		if (isDC)
			return;
		try {
			evtBarCodeResponse=''; appMobiObj['device']['scanBarcode']();
		} catch(e) {}
	};
	Acts.prototype.deviceUpdateConnection = function ()
	{
		if (isDC)
			return;
		try {
			evtConnection=''; appMobiObj['device']['updateConnection']();
		} catch(e) {}
	};
	Acts.prototype.deviceShowRemoteSite = function (url, w, h, px, py, lx, ly)
	{
		if (isDC)
			return;
		try {
			evtRemoteStatus='open'; appMobiObj['device']['showRemoteSiteExt'](url, px, py, lx, ly, w, h);
		} catch(e) {}
	};
	Acts.prototype.deviceSetAutoRotate = function (allow)
	{
		if (!appMobiEnabled && !isDC)
			return;
		if (isDC)
			awex("AppMobi['device']['setAutoRotate'](" + (allow ? "true" : "false") + ");");
		else
			appMobiObj['device']['setAutoRotate'](allow !== 0);
	};
	Acts.prototype.deviceSetRotateOrientation = function (orientation)
	{
		if (!appMobiEnabled && !isDC)
			return;
		if (isDC)
			awex("AppMobi['device']['setRotateOrientation'](" + (orientation === 0 ? "'portrait'" : "'landscape'") + ");");
		else
			appMobiObj['device']['setRotateOrientation'](orientation === 0 ? "portrait" : "landscape");
	};
	/*********************************************************
		ANALYTICS
	*********************************************************/
	Acts.prototype.analyticsLogEvent=function(event, qs){
		try{
			event="/application/" + event + ".event";
			if (isDC)
				awex("AppMobi['analytics']['logPageEvent']('" + event + "', '" + qs + "', 200, 'GET', 0, 'index.html');");
			else
				appMobiObj['analytics']['logPageEvent'](event, qs, 200, 'GET', 0, 'index.html');
		}catch(e){ console.log(e); }
	};
	/*********************************************************
		CACHE
	*********************************************************/
	Acts.prototype.cacheAddToMediaCache=function(url)
	{
		if (isDC)
			return;
		try{
			appMobiObj['cache']['addToMediaCache'](url);
		}catch(e){ console.log(e); }
	}
	Acts.prototype.cacheClearAllCookies=function()
	{
		if (isDC)
			return;
		try{
			appMobiObj['cache']['clearAllCookies']();
		}catch(e){ console.log(e); }
	}
	Acts.prototype.cacheClearMediaCache=function()
	{
		if (isDC)
			return;
		try{
			appMobiObj['cache']['clearMediaCache']();
		}catch(e){ console.log(e); }
	}
	Acts.prototype.cacheRemoveCookie=function(v)
	{
		if (isDC)
			return;
		try{
			appMobiObj['cache']['removeCookie'](v);
		}catch(e){ console.log(e); }
	}
	Acts.prototype.cacheRemoveFromMediaCache=function(v)
	{
		if (isDC)
			return;
		try{
			appMobiObj['cache']['removeFromMediaCache'](v);
		}catch(e){ console.log(e); }
	}
	Acts.prototype.cacheSetCookie=function(name, value, expires)
	{
		if (isDC)
			return;
		try{
			appMobiObj['cache']['setCookie'](name, value, expires);
		}catch(e){ console.log(e); }
	}
	Acts.prototype.AddVirtualPage = function ()
	{
		if (!appMobiEnabled && !isDC)
			return;
		if (isDC)
			awex("AppMobi['device']['addVirtualPage']();");
		else
			appMobiObj['device']['addVirtualPage']();
	};
	Acts.prototype.RemoveVirtualPage = function ()
	{
		if (!appMobiEnabled && !isDC)
			return;
		if (isDC)
			awex("AppMobi['device']['removeVirtualPage']();");
		else
			appMobiObj['device']['removeVirtualPage']();
	};
	Acts.prototype.HideStatusBar = function ()
	{
		try {
			if (isDC)
				awex("AppMobi['device']['hideStatusBar']();");
			else
				appMobiObj['device']['hideStatusBar']();
		} catch(e) {}
	};
	pluginProto.acts = new Acts();
	function Exps() {};
	/*********************************************************
		DEVICE
	*********************************************************/
	Exps.prototype.AppMobiVersion = function(ret){ try{ret.set_string(appMobiObj['device']['appmobiversion']);}catch(e){ret.set_string('');}	}
	Exps.prototype.DeviceConnection = function(ret){ try{ret.set_string(appMobiObj['device']['connection']);}catch(e){ret.set_string('');}	}
	Exps.prototype.InitialOrientation = function(ret){ try{ret.set_int(parseInt(appMobiObj['device']['initialOrientation']));}catch(e){ret.set_int(0);}	}
	Exps.prototype.DeviceLastStation = function(ret){ try{ret.set_string(appMobiObj['device']['lastStation']);}catch(e){ret.set_string('');}	}
	Exps.prototype.DeviceModel = function(ret){ try{ret.set_string(appMobiObj['device']['model']);}catch(e){ret.set_string('');}	}
	Exps.prototype.Orientation = function(ret){ try{ret.set_int(parseInt(appMobiObj['device']['orientation']));}catch(e){ret.set_int(0);}	}
	Exps.prototype.DeviceOSVersion = function(ret){ try{ret.set_string(appMobiObj['device']['osversion']);}catch(e){ret.set_string('');}	}
	Exps.prototype.DevicePhonegapVersion = function(ret){ try{ret.set_string(appMobiObj['device']['phonegapversion']);}catch(e){ret.set_string('');}	}
	Exps.prototype.DevicePlatform = function(ret){ try{ret.set_string(appMobiObj['device']['platform']);}catch(e){ret.set_string('');}	}
	Exps.prototype.DeviceQueryString = function(ret){ try{ret.set_string(appMobiObj['device']['queryString']);}catch(e){ret.set_string('');}	}
	Exps.prototype.DeviceUUID = function(ret){ try{ret.set_string(appMobiObj['device']['uuid']);}catch(e){ret.set_string('');}	}
	Exps.prototype.DeviceRemoteData = function(ret){ try{ret.set_string(evtRemoteDataResponse);}catch(e){ret.set_string('');}	}
	Exps.prototype.DeviceBarcodeData = function(ret){ try{ret.set_string(evtBarCodeResponse);}catch(e){ret.set_string('');} }
	Exps.prototype.DeviceRemoteStatus = function(ret){ try{ret.set_string(evtRemoteStatus);}catch(e){ret.set_string('');} }
	/*********************************************************
		CACHE
	*********************************************************/
	Exps.prototype.Cookie = function(ret, p){
		try{
			ret.set_string(appMobiObj['cache']['getCookie'](p));
		}catch(e){ ret.set_string(''); }
	}
	Exps.prototype.LocalMediaCacheURL = function(ret, p){
		try{
			ret.set_string(appMobiObj['cache']['getMediaCacheLocalURL'](p));
		}catch(e){ ret.set_string(''); }
	}
	pluginProto.exps = new Exps();
}());
;
;
cr.behaviors.Anchor = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.Anchor.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.anch_left = this.properties[0];		// 0 = left, 1 = right
		this.anch_top = this.properties[1];			// 0 = top, 1 = bottom
		this.anch_right = this.properties[2];		// 0 = none, 1 = right
		this.anch_bottom = this.properties[3];		// 0 = none, 1 = bottom
		this.inst.update_bbox();
		this.xleft = this.inst.bbox.left;
		this.ytop = this.inst.bbox.top;
		this.xright = this.runtime.original_width - this.inst.bbox.left;
		this.ybottom = this.runtime.original_height - this.inst.bbox.top;
		this.rdiff = this.runtime.original_width - this.inst.bbox.right;
		this.bdiff = this.runtime.original_height - this.inst.bbox.bottom;
		this.enabled = (this.properties[4] !== 0);
	};
	behinstProto.saveToJSON = function ()
	{
		return {
			"xleft": this.xleft,
			"ytop": this.ytop,
			"xright": this.xright,
			"ybottom": this.ybottom,
			"rdiff": this.rdiff,
			"bdiff": this.bdiff,
			"enabled": this.enabled
		};
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.xleft = o["xleft"];
		this.ytop = o["ytop"];
		this.xright = o["xright"];
		this.ybottom = o["ybottom"];
		this.rdiff = o["rdiff"];
		this.bdiff = o["bdiff"];
		this.enabled = o["enabled"];
	};
	behinstProto.tick = function ()
	{
		if (!this.enabled)
			return;
		var n;
		var layer = this.inst.layer;
		var inst = this.inst;
		var bbox = this.inst.bbox;
		if (this.anch_left === 0)
		{
			inst.update_bbox();
			n = (layer.viewLeft + this.xleft) - bbox.left;
			if (n !== 0)
			{
				inst.x += n;
				inst.set_bbox_changed();
			}
		}
		else if (this.anch_left === 1)
		{
			inst.update_bbox();
			n = (layer.viewRight - this.xright) - bbox.left;
			if (n !== 0)
			{
				inst.x += n;
				inst.set_bbox_changed();
			}
		}
		if (this.anch_top === 0)
		{
			inst.update_bbox();
			n = (layer.viewTop + this.ytop) - bbox.top;
			if (n !== 0)
			{
				inst.y += n;
				inst.set_bbox_changed();
			}
		}
		else if (this.anch_top === 1)
		{
			inst.update_bbox();
			n = (layer.viewBottom - this.ybottom) - bbox.top;
			if (n !== 0)
			{
				inst.y += n;
				inst.set_bbox_changed();
			}
		}
		if (this.anch_right === 1)
		{
			inst.update_bbox();
			n = (layer.viewRight - this.rdiff) - bbox.right;
			if (n !== 0)
			{
				inst.width += n;
				if (inst.width < 0)
					inst.width = 0;
				inst.set_bbox_changed();
			}
		}
		if (this.anch_bottom === 1)
		{
			inst.update_bbox();
			n = (layer.viewBottom - this.bdiff) - bbox.bottom;
			if (n !== 0)
			{
				inst.height += n;
				if (inst.height < 0)
					inst.height = 0;
				inst.set_bbox_changed();
			}
		}
	};
	function Cnds() {};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.SetEnabled = function (e)
	{
		if (this.enabled && e === 0)
			this.enabled = false;
		else if (!this.enabled && e !== 0)
		{
			this.inst.update_bbox();
			this.xleft = this.inst.bbox.left;
			this.ytop = this.inst.bbox.top;
			this.xright = this.runtime.original_width - this.inst.bbox.left;
			this.ybottom = this.runtime.original_height - this.inst.bbox.top;
			this.rdiff = this.runtime.original_width - this.inst.bbox.right;
			this.bdiff = this.runtime.original_height - this.inst.bbox.bottom;
			this.enabled = true;
		}
	};
	behaviorProto.acts = new Acts();
	function Exps() {};
	behaviorProto.exps = new Exps();
}());
;
;
cr.behaviors.Bullet = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.Bullet.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		var speed = this.properties[0];
		this.acc = this.properties[1];
		this.g = this.properties[2];
		this.bounceOffSolid = (this.properties[3] !== 0);
		this.setAngle = (this.properties[4] !== 0);
		this.dx = Math.cos(this.inst.angle) * speed;
		this.dy = Math.sin(this.inst.angle) * speed;
		this.lastx = this.inst.x;
		this.lasty = this.inst.y;
		this.lastKnownAngle = this.inst.angle;
		this.travelled = 0;
		this.enabled = (this.properties[5] !== 0);
	};
	behinstProto.saveToJSON = function ()
	{
		return {
			"acc": this.acc,
			"g": this.g,
			"dx": this.dx,
			"dy": this.dy,
			"lx": this.lastx,
			"ly": this.lasty,
			"lka": this.lastKnownAngle,
			"t": this.travelled,
			"e": this.enabled
		};
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.acc = o["acc"];
		this.g = o["g"];
		this.dx = o["dx"];
		this.dy = o["dy"];
		this.lastx = o["lx"];
		this.lasty = o["ly"];
		this.lastKnownAngle = o["lka"];
		this.travelled = o["t"];
		this.enabled = o["e"];
	};
	behinstProto.tick = function ()
	{
		if (!this.enabled)
			return;
		var dt = this.runtime.getDt(this.inst);
		var s, a;
		var bounceSolid, bounceAngle;
		if (this.inst.angle !== this.lastKnownAngle)
		{
			if (this.setAngle)
			{
				s = cr.distanceTo(0, 0, this.dx, this.dy);
				this.dx = Math.cos(this.inst.angle) * s;
				this.dy = Math.sin(this.inst.angle) * s;
			}
			this.lastKnownAngle = this.inst.angle;
		}
		if (this.acc !== 0)
		{
			s = cr.distanceTo(0, 0, this.dx, this.dy);
			if (this.dx === 0 && this.dy === 0)
				a = this.inst.angle;
			else
				a = cr.angleTo(0, 0, this.dx, this.dy);
			s += this.acc * dt;
			if (s < 0)
				s = 0;
			this.dx = Math.cos(a) * s;
			this.dy = Math.sin(a) * s;
		}
		if (this.g !== 0)
			this.dy += this.g * dt;
		this.lastx = this.inst.x;
		this.lasty = this.inst.y;
		if (this.dx !== 0 || this.dy !== 0)
		{
			this.inst.x += this.dx * dt;
			this.inst.y += this.dy * dt;
			this.travelled += cr.distanceTo(0, 0, this.dx * dt, this.dy * dt)
			if (this.setAngle)
			{
				this.inst.angle = cr.angleTo(0, 0, this.dx, this.dy);
				this.inst.set_bbox_changed();
				this.lastKnownAngle = this.inst.angle;
			}
			this.inst.set_bbox_changed();
			if (this.bounceOffSolid)
			{
				bounceSolid = this.runtime.testOverlapSolid(this.inst);
				if (bounceSolid)
				{
					this.runtime.registerCollision(this.inst, bounceSolid);
					s = cr.distanceTo(0, 0, this.dx, this.dy);
					bounceAngle = this.runtime.calculateSolidBounceAngle(this.inst, this.lastx, this.lasty);
					this.dx = Math.cos(bounceAngle) * s;
					this.dy = Math.sin(bounceAngle) * s;
					this.inst.x += this.dx * dt;			// move out for one tick since the object can't have spent a tick in the solid
					this.inst.y += this.dy * dt;
					this.inst.set_bbox_changed();
					if (this.setAngle)
					{
						this.inst.angle = bounceAngle;
						this.lastKnownAngle = bounceAngle;
						this.inst.set_bbox_changed();
					}
					if (!this.runtime.pushOutSolid(this.inst, this.dx / s, this.dy / s, Math.max(s * 2.5 * dt, 30)))
						this.runtime.pushOutSolidNearest(this.inst, 100);
				}
			}
		}
	};
	function Cnds() {};
	Cnds.prototype.CompareSpeed = function (cmp, s)
	{
		return cr.do_cmp(cr.distanceTo(0, 0, this.dx, this.dy), cmp, s);
	};
	Cnds.prototype.CompareTravelled = function (cmp, d)
	{
		return cr.do_cmp(this.travelled, cmp, d);
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.SetSpeed = function (s)
	{
		var a = cr.angleTo(0, 0, this.dx, this.dy);
		this.dx = Math.cos(a) * s;
		this.dy = Math.sin(a) * s;
	};
	Acts.prototype.SetAcceleration = function (a)
	{
		this.acc = a;
	};
	Acts.prototype.SetGravity = function (g)
	{
		this.g = g;
	};
	Acts.prototype.SetAngleOfMotion = function (a)
	{
		a = cr.to_radians(a);
		var s = cr.distanceTo(0, 0, this.dx, this.dy)
		this.dx = Math.cos(a) * s;
		this.dy = Math.sin(a) * s;
	};
	Acts.prototype.Bounce = function (objtype)
	{
		if (!objtype)
			return;
		var otherinst = objtype.getFirstPicked(this.inst);
		if (!otherinst)
			return;
		var dt = this.runtime.getDt(this.inst);
		var s = cr.distanceTo(0, 0, this.dx, this.dy);
		var bounceAngle = this.runtime.calculateSolidBounceAngle(this.inst, this.lastx, this.lasty, otherinst);
		this.dx = Math.cos(bounceAngle) * s;
		this.dy = Math.sin(bounceAngle) * s;
		this.inst.x += this.dx * dt;			// move out for one tick since the object can't have spent a tick in the solid
		this.inst.y += this.dy * dt;
		this.inst.set_bbox_changed();
		if (this.setAngle)
		{
			this.inst.angle = bounceAngle;
			this.lastKnownAngle = bounceAngle;
			this.inst.set_bbox_changed();
		}
		if (this.bounceOffSolid)
		{
			if (!this.runtime.pushOutSolid(this.inst, this.dx / s, this.dy / s, Math.max(s * 2.5 * dt, 30)))
				this.runtime.pushOutSolidNearest(this.inst, 100);
		}
		else
		{
			this.runtime.pushOut(this.inst, this.dx / s, this.dy / s, Math.max(s * 2.5 * dt, 30), otherinst)
		}
	};
	Acts.prototype.SetEnabled = function (en)
	{
		this.enabled = (en === 1);
	};
	behaviorProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.Speed = function (ret)
	{
		var s = cr.distanceTo(0, 0, this.dx, this.dy);
		s = cr.round6dp(s);
		ret.set_float(s);
	};
	Exps.prototype.Acceleration = function (ret)
	{
		ret.set_float(this.acc);
	};
	Exps.prototype.AngleOfMotion = function (ret)
	{
		ret.set_float(cr.to_degrees(cr.angleTo(0, 0, this.dx, this.dy)));
	};
	Exps.prototype.DistanceTravelled = function (ret)
	{
		ret.set_float(this.travelled);
	};
	behaviorProto.exps = new Exps();
}());
;
;
cr.behaviors.DragnDrop = function(runtime)
{
	this.runtime = runtime;
	var self = this;
	if (!this.runtime.isDomFree)
	{
		jQuery(document).mousemove(
			function(info) {
				self.onMouseMove(info);
			}
		);
		jQuery(document).mousedown(
			function(info) {
				self.onMouseDown(info);
			}
		);
		jQuery(document).mouseup(
			function(info) {
				self.onMouseUp(info);
			}
		);
	}
	var elem = (this.runtime.fullscreen_mode > 0) ? document : this.runtime.canvas;
	if (this.runtime.isDirectCanvas)
		elem = window["Canvas"];
	else if (this.runtime.isCocoonJs)
		elem = window;
	if (window.navigator["pointerEnabled"])
	{
		elem.addEventListener("pointerdown",
			function(info) {
				self.onPointerStart(info);
			},
			false
		);
		elem.addEventListener("pointermove",
			function(info) {
				self.onPointerMove(info);
			},
			false
		);
		elem.addEventListener("pointerup",
			function(info) {
				self.onPointerEnd(info);
			},
			false
		);
		elem.addEventListener("pointercancel",
			function(info) {
				self.onPointerEnd(info);
			},
			false
		);
	}
	else if (window.navigator["msPointerEnabled"])
	{
		elem.addEventListener("MSPointerDown",
			function(info) {
				self.onPointerStart(info);
			},
			false
		);
		elem.addEventListener("MSPointerMove",
			function(info) {
				self.onPointerMove(info);
			},
			false
		);
		elem.addEventListener("MSPointerUp",
			function(info) {
				self.onPointerEnd(info);
			},
			false
		);
		elem.addEventListener("MSPointerCancel",
			function(info) {
				self.onPointerEnd(info);
			},
			false
		);
	}
	else
	{
		elem.addEventListener("touchstart",
			function(info) {
				self.onTouchStart(info);
			},
			false
		);
		elem.addEventListener("touchmove",
			function(info) {
				self.onTouchMove(info);
			},
			false
		);
		elem.addEventListener("touchend",
			function(info) {
				self.onTouchEnd(info);
			},
			false
		);
		elem.addEventListener("touchcancel",
			function(info) {
				self.onTouchEnd(info);
			},
			false
		);
	}
};
(function ()
{
	var behaviorProto = cr.behaviors.DragnDrop.prototype;
	var dummyoffset = {left: 0, top: 0};
	function GetDragDropBehavior(inst)
	{
		var i, len;
		for (i = 0, len = inst.behavior_insts.length; i < len; i++)
		{
			if (inst.behavior_insts[i] instanceof behaviorProto.Instance)
				return inst.behavior_insts[i];
		}
		return null;
	};
	behaviorProto.onMouseDown = function (info)
	{
		if (info.which !== 1)
			return;		// not left mouse button
		this.onInputDown("leftmouse", info.pageX, info.pageY);
	};
	behaviorProto.onMouseMove = function (info)
	{
		if (info.which !== 1)
			return;		// not left mouse button
		this.onInputMove("leftmouse", info.pageX, info.pageY);
	};
	behaviorProto.onMouseUp = function (info)
	{
		if (info.which !== 1)
			return;		// not left mouse button
		this.onInputUp("leftmouse");
	};
	behaviorProto.onTouchStart = function (info)
	{
		if (info.preventDefault)
			info.preventDefault();
		var i, len, t, id;
		for (i = 0, len = info.changedTouches.length; i < len; i++)
		{
			t = info.changedTouches[i];
			id = t.identifier;
			this.onInputDown(id ? id.toString() : "<none>", t.pageX, t.pageY);
		}
	};
	behaviorProto.onTouchMove = function (info)
	{
		if (info.preventDefault)
			info.preventDefault();
		var i, len, t, id;
		for (i = 0, len = info.changedTouches.length; i < len; i++)
		{
			t = info.changedTouches[i];
			id = t.identifier;
			this.onInputMove(id ? id.toString() : "<none>", t.pageX, t.pageY);
		}
	};
	behaviorProto.onTouchEnd = function (info)
	{
		if (info.preventDefault)
			info.preventDefault();
		var i, len, t, id;
		for (i = 0, len = info.changedTouches.length; i < len; i++)
		{
			t = info.changedTouches[i];
			id = t.identifier;
			this.onInputUp(id ? id.toString() : "<none>");
		}
	};
	behaviorProto.onPointerStart = function (info)
	{
		if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse")
			return;
		if (info.preventDefault)
			info.preventDefault();
		this.onInputDown(info["pointerId"].toString(), info.pageX, info.pageY);
	};
	behaviorProto.onPointerMove = function (info)
	{
		if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse")
			return;
		if (info.preventDefault)
			info.preventDefault();
		this.onInputMove(info["pointerId"].toString(), info.pageX, info.pageY);
	};
	behaviorProto.onPointerEnd = function (info)
	{
		if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse")
			return;
		if (info.preventDefault)
			info.preventDefault();
		this.onInputUp(info["pointerId"].toString());
	};
	behaviorProto.onInputDown = function (src, pageX, pageY)
	{
		var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset();
		var x = pageX - offset.left;
		var y = pageY - offset.top;
		var lx, ly, topx, topy;
		var arr = this.my_instances.valuesRef();
		var i, len, b, inst, topmost = null;
		for (i = 0, len = arr.length; i < len; i++)
		{
			inst = arr[i];
			b = GetDragDropBehavior(inst);
			if (!b.enabled || b.dragging)
				continue;		// don't consider disabled or already-dragging instances
			lx = inst.layer.canvasToLayer(x, y, true);
			ly = inst.layer.canvasToLayer(x, y, false);
			inst.update_bbox();
			if (!inst.contains_pt(lx, ly))
				continue;		// don't consider instances not over this point
			if (!topmost)
			{
				topmost = inst;
				topx = lx;
				topy = ly;
				continue;
			}
			if (inst.layer.index > topmost.layer.index)
			{
				topmost = inst;
				topx = lx;
				topy = ly;
				continue;
			}
			if (inst.layer.index === topmost.layer.index && inst.get_zindex() > topmost.get_zindex())
			{
				topmost = inst;
				topx = lx;
				topy = ly;
				continue;
			}
		}
		if (topmost)
			GetDragDropBehavior(topmost).onDown(src, topx, topy);
	};
	behaviorProto.onInputMove = function (src, pageX, pageY)
	{
		var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset();
		var x = pageX - offset.left;
		var y = pageY - offset.top;
		var lx, ly;
		var arr = this.my_instances.valuesRef();
		var i, len, b, inst;
		for (i = 0, len = arr.length; i < len; i++)
		{
			inst = arr[i];
			b = GetDragDropBehavior(inst);
			if (!b.enabled || !b.dragging || (b.dragging && b.dragsource !== src))
				continue;		// don't consider disabled, not-dragging, or dragging by other sources
			lx = inst.layer.canvasToLayer(x, y, true);
			ly = inst.layer.canvasToLayer(x, y, false);
			b.onMove(lx, ly);
		}
	};
	behaviorProto.onInputUp = function (src)
	{
		var arr = this.my_instances.valuesRef();
		var i, len, b, inst;
		for (i = 0, len = arr.length; i < len; i++)
		{
			inst = arr[i];
			b = GetDragDropBehavior(inst);
			if (b.dragging && b.dragsource === src)
				b.onUp();
		}
	};
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.dragging = false;
		this.dx = 0;
		this.dy = 0;
		this.dragsource = "<none>";
		this.axes = this.properties[0];
		this.enabled = (this.properties[1] !== 0);
	};
	behinstProto.saveToJSON = function ()
	{
		return { "enabled": this.enabled };
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.enabled = o["enabled"];
		this.dragging = false;
	};
	behinstProto.onDown = function(src, x, y)
	{
		this.dx = x - this.inst.x;
		this.dy = y - this.inst.y;
		this.dragging = true;
		this.dragsource = src;
		this.runtime.isInUserInputEvent = true;
		this.runtime.trigger(cr.behaviors.DragnDrop.prototype.cnds.OnDragStart, this.inst);
		this.runtime.isInUserInputEvent = false;
	};
	behinstProto.onMove = function(x, y)
	{
		var newx = x - this.dx;
		var newy = y - this.dy;
		if (this.axes === 0)		// both
		{
			if (this.inst.x !== newx || this.inst.y !== newy)
			{
				this.inst.x = newx;
				this.inst.y = newy;
				this.inst.set_bbox_changed();
			}
		}
		else if (this.axes === 1)	// horizontal
		{
			if (this.inst.x !== newx)
			{
				this.inst.x = newx;
				this.inst.set_bbox_changed();
			}
		}
		else if (this.axes === 2)	// vertical
		{
			if (this.inst.y !== newy)
			{
				this.inst.y = newy;
				this.inst.set_bbox_changed();
			}
		}
	};
	behinstProto.onUp = function()
	{
		this.dragging = false;
		this.runtime.isInUserInputEvent = true;
		this.runtime.trigger(cr.behaviors.DragnDrop.prototype.cnds.OnDrop, this.inst);
		this.runtime.isInUserInputEvent = false;
	};
	behinstProto.tick = function ()
	{
	};
	function Cnds() {};
	Cnds.prototype.IsDragging = function ()
	{
		return this.dragging;
	};
	Cnds.prototype.OnDragStart = function ()
	{
		return true;
	};
	Cnds.prototype.OnDrop = function ()
	{
		return true;
	};
	Cnds.prototype.IsEnabled = function ()
	{
		return !!this.enabled;
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.SetEnabled = function (s)
	{
		this.enabled = (s !== 0);
		if (!this.enabled)
			this.dragging = false;
	};
	Acts.prototype.Drop = function ()
	{
		if (this.dragging)
			this.onUp();
	};
	behaviorProto.acts = new Acts();
	function Exps() {};
	behaviorProto.exps = new Exps();
}());
;
;
cr.behaviors.EightDir = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.EightDir.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
		this.upkey = false;
		this.downkey = false;
		this.leftkey = false;
		this.rightkey = false;
		this.ignoreInput = false;
		this.simup = false;
		this.simdown = false;
		this.simleft = false;
		this.simright = false;
		this.lastuptick = -1;
		this.lastdowntick = -1;
		this.lastlefttick = -1;
		this.lastrighttick = -1;
		this.dx = 0;
		this.dy = 0;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.maxspeed = this.properties[0];
		this.acc = this.properties[1];
		this.dec = this.properties[2];
		this.directions = this.properties[3];	// 0=Up & down, 1=Left & right, 2=4 directions, 3=8 directions"
		this.angleMode = this.properties[4];	// 0=No,1=90-degree intervals, 2=45-degree intervals, 3=360 degree (smooth)
		this.defaultControls = (this.properties[5] === 1);	// 0=no, 1=yes
		this.enabled = (this.properties[6] !== 0);
		if (this.defaultControls && !this.runtime.isDomFree)
		{
			jQuery(document).keydown(
				(function (self) {
					return function(info) {
						self.onKeyDown(info);
					};
				})(this)
			);
			jQuery(document).keyup(
				(function (self) {
					return function(info) {
						self.onKeyUp(info);
					};
				})(this)
			);
		}
	};
	behinstProto.saveToJSON = function ()
	{
		return {
			"dx": this.dx,
			"dy": this.dy,
			"enabled": this.enabled,
			"maxspeed": this.maxspeed,
			"acc": this.acc,
			"dec": this.dec,
			"ignoreInput": this.ignoreInput
		};
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.dx = o["dx"];
		this.dy = o["dy"];
		this.enabled = o["enabled"];
		this.maxspeed = o["maxspeed"];
		this.acc = o["acc"];
		this.dec = o["dec"];
		this.ignoreInput = o["ignoreInput"];
		this.upkey = false;
		this.downkey = false;
		this.leftkey = false;
		this.rightkey = false;
		this.simup = false;
		this.simdown = false;
		this.simleft = false;
		this.simright = false;
		this.lastuptick = -1;
		this.lastdowntick = -1;
		this.lastlefttick = -1;
		this.lastrighttick = -1;
	};
	behinstProto.onKeyDown = function (info)
	{
		var tickcount = this.runtime.tickcount;
		switch (info.which) {
		case 37:	// left
			info.preventDefault();
			if (this.lastlefttick < tickcount)
				this.leftkey = true;
			break;
		case 38:	// up
			info.preventDefault();
			if (this.lastuptick < tickcount)
				this.upkey = true;
			break;
		case 39:	// right
			info.preventDefault();
			if (this.lastrighttick < tickcount)
				this.rightkey = true;
			break;
		case 40:	// down
			info.preventDefault();
			if (this.lastdowntick < tickcount)
				this.downkey = true;
			break;
		}
	};
	behinstProto.onKeyUp = function (info)
	{
		var tickcount = this.runtime.tickcount;
		switch (info.which) {
		case 37:	// left
			info.preventDefault();
			this.leftkey = false;
			this.lastlefttick = tickcount;
			break;
		case 38:	// up
			info.preventDefault();
			this.upkey = false;
			this.lastuptick = tickcount;
			break;
		case 39:	// right
			info.preventDefault();
			this.rightkey = false;
			this.lastrighttick = tickcount;
			break;
		case 40:	// down
			info.preventDefault();
			this.downkey = false;
			this.lastdowntick = tickcount;
			break;
		}
	};
	behinstProto.tick = function ()
	{
		var dt = this.runtime.getDt(this.inst);
		var left = this.leftkey || this.simleft;
		var right = this.rightkey || this.simright;
		var up = this.upkey || this.simup;
		var down = this.downkey || this.simdown;
		this.simleft = false;
		this.simright = false;
		this.simup = false;
		this.simdown = false;
		if (!this.enabled)
			return;
		var collobj = this.runtime.testOverlapSolid(this.inst);
		if (collobj)
		{
			this.runtime.registerCollision(this.inst, collobj);
			if (!this.runtime.pushOutSolidNearest(this.inst))
				return;		// must be stuck in solid
		}
		if (this.ignoreInput)
		{
			left = false;
			right = false;
			up = false;
			down = false;
		}
		if (this.directions === 0)
		{
			left = false;
			right = false;
		}
		else if (this.directions === 1)
		{
			up = false;
			down = false;
		}
		if (this.directions === 2 && (up || down))
		{
			left = false;
			right = false;
		}
		if (left == right)	// both up or both down
		{
			if (this.dx < 0)
			{
				this.dx += this.dec * dt;
				if (this.dx > 0)
					this.dx = 0;
			}
			else if (this.dx > 0)
			{
				this.dx -= this.dec * dt;
				if (this.dx < 0)
					this.dx = 0;
			}
		}
		if (up == down)
		{
			if (this.dy < 0)
			{
				this.dy += this.dec * dt;
				if (this.dy > 0)
					this.dy = 0;
			}
			else if (this.dy > 0)
			{
				this.dy -= this.dec * dt;
				if (this.dy < 0)
					this.dy = 0;
			}
		}
		if (left && !right)
		{
			if (this.dx > 0)
				this.dx -= (this.acc + this.dec) * dt;
			else
				this.dx -= this.acc * dt;
		}
		if (right && !left)
		{
			if (this.dx < 0)
				this.dx += (this.acc + this.dec) * dt;
			else
				this.dx += this.acc * dt;
		}
		if (up && !down)
		{
			if (this.dy > 0)
				this.dy -= (this.acc + this.dec) * dt;
			else
				this.dy -= this.acc * dt;
		}
		if (down && !up)
		{
			if (this.dy < 0)
				this.dy += (this.acc + this.dec) * dt;
			else
				this.dy += this.acc * dt;
		}
		var ax, ay;
		if (this.dx !== 0 || this.dy !== 0)
		{
			var speed = Math.sqrt(this.dx * this.dx + this.dy * this.dy);
			if (speed > this.maxspeed)
			{
				var a = Math.atan2(this.dy, this.dx);
				this.dx = this.maxspeed * Math.cos(a);
				this.dy = this.maxspeed * Math.sin(a);
			}
			var oldx = this.inst.x;
			var oldy = this.inst.y;
			var oldangle = this.inst.angle;
			this.inst.x += this.dx * dt;
			this.inst.set_bbox_changed();
			collobj = this.runtime.testOverlapSolid(this.inst);
			if (collobj)
			{
				this.inst.x = oldx;
				this.dx = 0;
				this.inst.set_bbox_changed();
				this.runtime.registerCollision(this.inst, collobj);
			}
			this.inst.y += this.dy * dt;
			this.inst.set_bbox_changed();
			collobj = this.runtime.testOverlapSolid(this.inst);
			if (collobj)
			{
				this.inst.y = oldy;
				this.dy = 0;
				this.inst.set_bbox_changed();
				this.runtime.registerCollision(this.inst, collobj);
			}
			ax = cr.round6dp(this.dx);
			ay = cr.round6dp(this.dy);
			if (ax !== 0 || ay !== 0)
			{
				if (this.angleMode === 1)	// 90 degree intervals
					this.inst.angle = cr.to_clamped_radians(Math.round(cr.to_degrees(Math.atan2(ay, ax)) / 90.0) * 90.0);
				else if (this.angleMode === 2)	// 45 degree intervals
					this.inst.angle = cr.to_clamped_radians(Math.round(cr.to_degrees(Math.atan2(ay, ax)) / 45.0) * 45.0);
				else if (this.angleMode === 3)	// 360 degree
					this.inst.angle = Math.atan2(ay, ax);
			}
			this.inst.set_bbox_changed();
			if (this.inst.angle != oldangle)
			{
				collobj = this.runtime.testOverlapSolid(this.inst);
				if (collobj)
				{
					this.inst.angle = oldangle;
					this.inst.set_bbox_changed();
					this.runtime.registerCollision(this.inst, collobj);
				}
			}
		}
	};
	function Cnds() {};
	Cnds.prototype.IsMoving = function ()
	{
		return this.dx !== 0 || this.dy !== 0;
	};
	Cnds.prototype.CompareSpeed = function (cmp, s)
	{
		var speed = Math.sqrt(this.dx * this.dx + this.dy * this.dy);
		return cr.do_cmp(speed, cmp, s);
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.Stop = function ()
	{
		this.dx = 0;
		this.dy = 0;
	};
	Acts.prototype.Reverse = function ()
	{
		this.dx *= -1;
		this.dy *= -1;
	};
	Acts.prototype.SetIgnoreInput = function (ignoring)
	{
		this.ignoreInput = ignoring;
	};
	Acts.prototype.SetSpeed = function (speed)
	{
		if (speed < 0)
			speed = 0;
		if (speed > this.maxspeed)
			speed = this.maxspeed;
		var a = Math.atan2(this.dy, this.dx);
		this.dx = speed * Math.cos(a);
		this.dy = speed * Math.sin(a);
	};
	Acts.prototype.SetMaxSpeed = function (maxspeed)
	{
		this.maxspeed = maxspeed;
		if (this.maxspeed < 0)
			this.maxspeed = 0;
	};
	Acts.prototype.SetAcceleration = function (acc)
	{
		this.acc = acc;
		if (this.acc < 0)
			this.acc = 0;
	};
	Acts.prototype.SetDeceleration = function (dec)
	{
		this.dec = dec;
		if (this.dec < 0)
			this.dec = 0;
	};
	Acts.prototype.SimulateControl = function (ctrl)
	{
		switch (ctrl) {
		case 0:		this.simleft = true;	break;
		case 1:		this.simright = true;	break;
		case 2:		this.simup = true;		break;
		case 3:		this.simdown = true;	break;
		}
	};
	Acts.prototype.SetEnabled = function (en)
	{
		this.enabled = (en === 1);
	};
	Acts.prototype.SetVectorX = function (x_)
	{
		this.dx = x_;
	};
	Acts.prototype.SetVectorY = function (y_)
	{
		this.dy = y_;
	};
	behaviorProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.Speed = function (ret)
	{
		ret.set_float(Math.sqrt(this.dx * this.dx + this.dy * this.dy));
	};
	Exps.prototype.MaxSpeed = function (ret)
	{
		ret.set_float(this.maxspeed);
	};
	Exps.prototype.Acceleration = function (ret)
	{
		ret.set_float(this.acc);
	};
	Exps.prototype.Deceleration = function (ret)
	{
		ret.set_float(this.dec);
	};
	Exps.prototype.MovingAngle = function (ret)
	{
		ret.set_float(cr.to_degrees(Math.atan2(this.dy, this.dx)));
	};
	Exps.prototype.VectorX = function (ret)
	{
		ret.set_float(this.dx);
	};
	Exps.prototype.VectorY = function (ret)
	{
		ret.set_float(this.dy);
	};
	behaviorProto.exps = new Exps();
}());
;
;
cr.behaviors.Fade = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.Fade.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		var active_at_start = this.properties[0] === 1;
		this.fadeInTime = this.properties[1];
		this.waitTime = this.properties[2];
		this.fadeOutTime = this.properties[3];
		this.destroy = this.properties[4];			// 0 = no, 1 = after fade out
		this.stage = active_at_start ? 0 : 3;		// 0 = fade in, 1 = wait, 2 = fade out, 3 = done
		if (this.recycled)
			this.stageTime.reset();
		else
			this.stageTime = new cr.KahanAdder();
		this.maxOpacity = (this.inst.opacity ? this.inst.opacity : 1.0);
		if (active_at_start)
		{
			if (this.fadeInTime === 0)
			{
				this.stage = 1;
				if (this.waitTime === 0)
					this.stage = 2;
			}
			else
			{
				this.inst.opacity = 0;
				this.runtime.redraw = true;
			}
		}
	};
	behinstProto.saveToJSON = function ()
	{
		return {
			"fit": this.fadeInTime,
			"wt": this.waitTime,
			"fot": this.fadeOutTime,
			"s": this.stage,
			"st": this.stageTime.sum,
			"mo": this.maxOpacity,
		};
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.fadeInTime = o["fit"];
		this.waitTime = o["wt"];
		this.fadeOutTime = o["fot"];
		this.stage = o["s"];
		this.stageTime.reset();
		this.stageTime.sum = o["st"];
		this.maxOpacity = o["mo"];
	};
	behinstProto.tick = function ()
	{
		this.stageTime.add(this.runtime.getDt(this.inst));
		if (this.stage === 0)
		{
			this.inst.opacity = (this.stageTime.sum / this.fadeInTime) * this.maxOpacity;
			this.runtime.redraw = true;
			if (this.inst.opacity >= this.maxOpacity)
			{
				this.inst.opacity = this.maxOpacity;
				this.stage = 1;	// wait stage
				this.stageTime.reset();
			}
		}
		if (this.stage === 1)
		{
			if (this.stageTime.sum >= this.waitTime)
			{
				this.stage = 2;	// fade out stage
				this.stageTime.reset();
			}
		}
		if (this.stage === 2)
		{
			if (this.fadeOutTime !== 0)
			{
				this.inst.opacity = this.maxOpacity - ((this.stageTime.sum / this.fadeOutTime) * this.maxOpacity);
				this.runtime.redraw = true;
				if (this.inst.opacity < 0)
				{
					this.inst.opacity = 0;
					this.stage = 3;	// done
					this.stageTime.reset();
					this.runtime.trigger(cr.behaviors.Fade.prototype.cnds.OnFadeOutEnd, this.inst);
					if (this.destroy === 1)
						this.runtime.DestroyInstance(this.inst);
				}
			}
		}
	};
	behinstProto.doStart = function ()
	{
		this.stage = 0;
		this.stageTime.reset();
		if (this.fadeInTime === 0)
		{
			this.stage = 1;
			if (this.waitTime === 0)
				this.stage = 2;
		}
		else
		{
			this.inst.opacity = 0;
			this.runtime.redraw = true;
		}
	};
	function Cnds() {};
	Cnds.prototype.OnFadeOutEnd = function ()
	{
		return true;
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.StartFade = function ()
	{
		if (this.stage === 3)
			this.doStart();
	};
	Acts.prototype.RestartFade = function ()
	{
		this.doStart();
	};
	behaviorProto.acts = new Acts();
}());
var Box2D = {};
Box2D.Dynamics         = {};
Box2D.Dynamics.Joints  = {};
Box2D.Common           = {};
Box2D.Common.Math      = {};
Box2D.Collision        = {};
Box2D.Collision.Shapes = {};
function c2inherit(derived, base)
{
	for (var i in base.prototype)
	{
		if (base.prototype.hasOwnProperty(i))
			derived.prototype[i] = base.prototype[i];
	}
};
if (navigator["isCocoonJS"] && typeof window["cr_cjs_accelerated_physics"] !== "undefined")
{
	cr.logexport("Using CocoonJS native physics");
	if ( !window.ext || typeof window.ext.IDTK_SRV_BOX2D === 'undefined' ){
		console.log("The CocoonJS binding for Box2D has been ignored because ext.IDTK_SRV_BOX2D is not available");
	}else
	{
	(function (){
		var B2Vec2 = function (x_, y_) {
			if (x_ === undefined){x_ = 0;}
			if (y_ === undefined){y_ = 0;}
			this.x = x_;
			this.y = y_;
		};
		Box2D.Common.Math.b2Vec2 = B2Vec2;
		B2Vec2._freeCache = [];
		B2Vec2.Get = function(x, y) {
			if (Box2D.Common.Math.b2Vec2._freeCache.length > 0) {
				var vec = Box2D.Common.Math.b2Vec2._freeCache.pop();
				vec.Set(x, y);
				return vec;
			}
			return new Box2D.Common.Math.b2Vec2(x, y);
		};
		B2Vec2.Free = function(vec) {
			if (Box2D.Common.Math.b2Vec2._freeCache.length < 10000)
				Box2D.Common.Math.b2Vec2._freeCache.push(vec);
		}
		B2Vec2.prototype.SetZero = function () {
			this.x = 0.0;
			this.y = 0.0;
		};
		B2Vec2.prototype.Set = function (x_, y_) {
			if (x_ === undefined){x_ = 0;}
			if (y_ === undefined){y_ = 0;}
			this.x = x_;
			this.y = y_;
		};
		B2Vec2.prototype.SetV = function (v) {
			this.x = v.x;
			this.y = v.y;
		};
		B2Vec2.Make = function (x_, y_) {
			if (x_ === undefined){x_ = 0;}
			if (y_ === undefined){y_ = 0;}
			return B2Vec2.Get(x_, y_);
		};
		B2Vec2.prototype.Copy = function () {
			return B2Vec2.Get(this.x, this.y);
		};
		B2Vec2.prototype.Add = function (v) {
			this.x += v.x;
			this.y += v.y;
		};
		B2Vec2.prototype.Subtract = function (v) {
			this.x -= v.x;
			this.y -= v.y;
		};
		B2Vec2.prototype.Multiply = function (a) {
			if (a === undefined){
				a = 0;
			}
			this.x *= a;
			this.y *= a;
		};
		B2Vec2.prototype.Length = function () {
			return Math.sqrt(this.x * this.x + this.y * this.y);
		};
		B2Vec2.prototype.LengthSquared = function () {
			return (this.x * this.x + this.y * this.y);
		};
		B2Vec2.prototype.Normalize = function () {
			var length = Math.sqrt(this.x * this.x + this.y * this.y);
			if (length < Number.MIN_VALUE) {
				return 0.0;
			}
			var invLength = 1.0 / length;
			this.x *= invLength;
			this.y *= invLength;
			return length;
		};
		B2Vec2.prototype.NegativeSelf = function () {
			this.x = (-this.x);
			this.y = (-this.y);
		};
		var B2Mat22 = function () {
			this.col1 = B2Vec2.Get(0,0);
			this.col2 = B2Vec2.Get(0,0);
			this.SetIdentity();
		};
		Box2D.Common.Math.b2Mat22 = B2Mat22 ;
		B2Mat22.FromAngle = function (angle) {
			if (angle === undefined){
				angle = 0;
			}
			var mat = new B2Mat22();
			mat.Set(angle);
			return mat;
		};
		B2Mat22.FromVV = function (c1, c2) {
			var mat = new B2Mat22();
			mat.SetVV(c1, c2);
			return mat;
		};
		B2Mat22.prototype.Set = function (angle) {
			if (angle === undefined){
				angle = 0;
			}
			var c = Math.cos(angle);
			var s = Math.sin(angle);
			this.col1.x = c;
			this.col2.x = (-s);
			this.col1.y = s;
			this.col2.y = c;
		};
		B2Mat22.prototype.SetVV = function (c1, c2) {
			this.col1.SetV(c1);
			this.col2.SetV(c2);
		};
		B2Mat22.prototype.Copy = function () {
			var mat = new B2Mat22();
			mat.SetM(this);
			return mat;
		};
		B2Mat22.prototype.SetM = function (m) {
			this.col1.SetV(m.col1);
			this.col2.SetV(m.col2);
		};
		B2Mat22.prototype.AddM = function (m) {
			this.col1.x += m.col1.x;
			this.col1.y += m.col1.y;
			this.col2.x += m.col2.x;
			this.col2.y += m.col2.y;
		};
		B2Mat22.prototype.SetIdentity = function () {
			this.col1.x = 1.0;
			this.col2.x = 0.0;
			this.col1.y = 0.0;
			this.col2.y = 1.0;
		};
		B2Mat22.prototype.SetZero = function () {
			this.col1.x = 0.0;
			this.col2.x = 0.0;
			this.col1.y = 0.0;
			this.col2.y = 0.0;
		};
		B2Mat22.prototype.GetAngle = function () {
			return Math.atan2(this.col1.y, this.col1.x);
		};
		B2Mat22.prototype.GetInverse = function (out) {
			var a = this.col1.x;
			var b = this.col2.x;
			var c = this.col1.y;
			var d = this.col2.y;
			var det = a * d - b * c;
			if (det !== 0.0) {
				det = 1.0 / det;
			}
			out.col1.x = det * d;
			out.col2.x = (-det * b);
			out.col1.y = (-det * c);
			out.col2.y = det * a;
			return out;
		};
		B2Mat22.prototype.Solve = function (out, bX, bY) {
			if (bX === undefined){bX = 0;}
			if (bY === undefined){bY = 0;}
			var a11 = this.col1.x;
			var a12 = this.col2.x;
			var a21 = this.col1.y;
			var a22 = this.col2.y;
			var det = a11 * a22 - a12 * a21;
			if (det !== 0.0) {
				det = 1.0 / det;
			}
			out.x = det * (a22 * bX - a12 * bY);
			out.y = det * (a11 * bY - a21 * bX);
			return out;
		};
		B2Mat22.prototype.Abs = function () {
			this.col1.Abs();
			this.col2.Abs();
		};
		var B2Transform = function (pos, r) {
			this.position = B2Vec2.Get(0,0);
			this.R = new B2Mat22();
			if (pos === undefined){pos = null;}
			if (r === undefined){r = null;}
			if (pos) {
				this.position.SetV(pos);
				this.R.SetM(r);
			}
		};
		Box2D.Common.Math.b2Transform = B2Transform ;
		B2Transform.prototype.Initialize = function (pos, r) {
			this.position.SetV(pos);
			this.R.SetM(r);
		};
		B2Transform.prototype.SetIdentity = function () {
			this.position.SetZero();
			this.R.SetIdentity();
		};
		B2Transform.prototype.Set = function (x) {
			this.position.SetV(x.position);
			this.R.SetM(x.R);
		};
		B2Transform.prototype.SetAngle = function () {
			return Math.atan2(this.R.col1.y, this.R.col1.x);
		};
		var b2Math = function () {};
		Box2D.Common.Math.b2Math = b2Math ;
		b2Math.IsValid = function (x) {
			if (x === undefined){
				x = 0;
			}
			return isFinite(x);
		};
		b2Math.Dot = function (a, b) {
			return a.x * b.x + a.y * b.y;
		};
		b2Math.CrossVV = function (a, b) {
			return a.x * b.y - a.y * b.x;
		};
		b2Math.CrossVF = function (a, s) {
			if (s === undefined){
				s = 0;
			}
			var v = B2Vec2.Get(s * a.y, (-s * a.x));
			return v;
		};
		b2Math.CrossFV = function (s, a) {
			if (s === undefined){
				s = 0;
			}
			var v = B2Vec2.Get((-s * a.y), s * a.x);
			return v;
		};
		b2Math.MulMV = function (A, v) {
			var u = B2Vec2.Get(A.col1.x * v.x + A.col2.x * v.y, A.col1.y * v.x + A.col2.y * v.y);
			return u;
		};
		b2Math.MulTMV = function (A, v) {
			var u = B2Vec2.Get(b2Math.Dot(v, A.col1), b2Math.Dot(v, A.col2));
			return u;
		};
		b2Math.MulX = function (T, v) {
			var a = b2Math.MulMV(T.R, v);
			a.x += T.position.x;
			a.y += T.position.y;
			return a;
		};
		b2Math.MulXT = function (T, v) {
			var a = b2Math.SubtractVV(v, T.position);
			var tX = (a.x * T.R.col1.x + a.y * T.R.col1.y);
			a.y = (a.x * T.R.col2.x + a.y * T.R.col2.y);
			a.x = tX;
			return a;
		};
		b2Math.AddVV = function (a, b) {
			var v = B2Vec2.Get(a.x + b.x, a.y + b.y);
			return v;
		};
		b2Math.SubtractVV = function (a, b) {
			var v = B2Vec2.Get(a.x - b.x, a.y - b.y);
			return v;
		};
		b2Math.Distance = function (a, b) {
			var cX = a.x - b.x;
			var cY = a.y - b.y;
			return Math.sqrt(cX * cX + cY * cY);
		};
		b2Math.DistanceSquared = function (a, b) {
			var cX = a.x - b.x;
			var cY = a.y - b.y;
			return (cX * cX + cY * cY);
		};
		b2Math.MulFV = function (s, a) {
			if (s === undefined){
				s = 0;
			}
			var v = B2Vec2.Get(s * a.x, s * a.y);
			return v;
		};
		b2Math.AddMM = function (A, B) {
			var C = B2Mat22.FromVV(b2Math.AddVV(A.col1, B.col1), b2Math.AddVV(A.col2, B.col2));
			return C;
		};
		b2Math.MulMM = function (A, B) {
			var C = B2Mat22.FromVV(b2Math.MulMV(A, B.col1), b2Math.MulMV(A, B.col2));
			return C;
		};
		b2Math.MulTMM = function (A, B) {
			var c1 = B2Vec2.Get(b2Math.Dot(A.col1, B.col1), b2Math.Dot(A.col2, B.col1));
			var c2 = B2Vec2.Get(b2Math.Dot(A.col1, B.col2), b2Math.Dot(A.col2, B.col2));
			var C = B2Mat22.FromVV(c1, c2);
			return C;
		};
		b2Math.Abs = function (a) {
			if (a === undefined){
				a = 0;
			}
			return a > 0.0 ? a : (-a);
		};
		b2Math.AbsV = function (a) {
			var b = B2Vec2.Get(b2Math.Abs(a.x), b2Math.Abs(a.y));
			return b;
		};
		b2Math.AbsM = function (A) {
			var B = B2Mat22.FromVV(b2Math.AbsV(A.col1), b2Math.AbsV(A.col2));
			return B;
		};
		b2Math.Min = function (a, b) {
			if (a === undefined){a = 0;}
			if (b === undefined){b = 0;}
			return a < b ? a : b;
		};
		b2Math.MinV = function (a, b) {
			var c = B2Vec2.Get(b2Math.Min(a.x, b.x), b2Math.Min(a.y, b.y));
			return c;
		};
		b2Math.Max = function (a, b) {
			if (a === undefined){a = 0;}
			if (b === undefined){b = 0;}
			return a > b ? a : b;
		};
		b2Math.MaxV = function (a, b) {
			var c = B2Vec2.Get(b2Math.Max(a.x, b.x), b2Math.Max(a.y, b.y));
			return c;
		};
		b2Math.Clamp = function (a, low, high) {
			if (a === undefined){a = 0;}
			if (low === undefined){low = 0;}
			if (high === undefined){high = 0;}
			return a < low ? low : a > high ? high : a;
		};
		b2Math.ClampV = function (a, low, high) {
			return b2Math.MaxV(low, b2Math.MinV(a, high));
		};
		b2Math.Swap = function (a, b) {
			var tmp = a[0];
			a[0] = b[0];
			b[0] = tmp;
		};
		b2Math.Random = function () {
			return Math.random() * 2 - 1;
		};
		b2Math.RandomRange = function (lo, hi) {
			if (lo === undefined){lo = 0;}
			if (hi === undefined){hi = 0;}
			var r = Math.random();
			r = (hi - lo) * r + lo;
			return r;
		};
		/* jshint -W016 */
		b2Math.NextPowerOfTwo = function (x) {
			if (x === undefined){x = 0;}
			x |= (x >> 1) & 0x7FFFFFFF;
			x |= (x >> 2) & 0x3FFFFFFF;
			x |= (x >> 4) & 0x0FFFFFFF;
			x |= (x >> 8) & 0x00FFFFFF;
			x |= (x >> 16) & 0x0000FFFF;
			return x + 1;
		};
		b2Math.IsPowerOfTwo = function (x) {
			if (x === undefined){x = 0;}
			var result = x > 0 && (x & (x - 1)) === 0;
			return result;
		};
		/* jshint +W016 */
		b2Math.b2Vec2_zero = new B2Vec2(0.0, 0.0);
		b2Math.b2Mat22_identity = B2Mat22.FromVV(new B2Vec2(1.0, 0.0), new B2Vec2(0.0, 1.0));
		b2Math.b2Transform_identity = new B2Transform(b2Math.b2Vec2_zero, b2Math.b2Mat22_identity);
		var B2DebugDraw = function(){
			this.e_aabbBit = 0x0004;
			this.e_centerOfMassBit = 0x0010;
			this.e_controllerBit = 0x0020;
			this.e_jointBit = 0x0002;
			this.e_pairBit  = 0x0008;
			this.e_shapeBit = 0x000;
		};
		Box2D.Dynamics.b2DebugDraw = B2DebugDraw ;
		B2DebugDraw.prototype.AppendFlags      = function(){};
		B2DebugDraw.prototype.ClearFlags       = function(){};
		B2DebugDraw.prototype.DrawCircle       = function(){};
		B2DebugDraw.prototype.DrawPolygon      = function(){};
		B2DebugDraw.prototype.DrawSegment      = function(){};
		B2DebugDraw.prototype.DrawSolidCircle  = function(){};
		B2DebugDraw.prototype.DrawSolidPolygon = function(){};
		B2DebugDraw.prototype.DrawTransform    = function(){};
		B2DebugDraw.prototype.GetAlpha         = function(){};
		B2DebugDraw.prototype.GetDrawScale     = function(){};
		B2DebugDraw.prototype.GetFillAlpha     = function(){};
		B2DebugDraw.prototype.GetFlags         = function(){};
		B2DebugDraw.prototype.GetLineThickness = function(){};
		B2DebugDraw.prototype.GetSprite        = function(){};
		B2DebugDraw.prototype.GetXFormScale    = function(){};
		B2DebugDraw.prototype.SetAlpha         = function(){};
		B2DebugDraw.prototype.SetDrawScale     = function(){};
		B2DebugDraw.prototype.SetFillAlpha     = function(){};
		B2DebugDraw.prototype.SetFlags         = function(){};
		B2DebugDraw.prototype.SetLineThickness = function(){};
		B2DebugDraw.prototype.SetSprite        = function(){};
		B2DebugDraw.prototype.SetXFormScale    = function(){};
		var B2BodyDef  = function () {
			this.position = B2Vec2.Get(0,0);
			this.linearVelocity = B2Vec2.Get(0,0);
			this.userData = null;
			this.angle = 0.0;
			this.linearVelocity.Set(0, 0);
			this.angularVelocity = 0.0;
			this.linearDamping = 0.0;
			this.angularDamping = 0.0;
			this.allowSleep = true;
			this.awake = true;
			this.fixedRotation = false;
			this.bullet = false;
			this.type = B2Body.b2_staticBody;
			this.active = true;
			this.inertiaScale = 1.0;
		};
		Box2D.Dynamics.b2BodyDef = B2BodyDef;
		var B2Fixture = function(body,userData, fixtureID, def ) {
			this.m_body = body ;
			this.m_userData = userData ;
			this.m_fixtureID = fixtureID ;
			this.m_shape = {} ;
			this.m_shape.m_centroid = B2Vec2.Get(0,0) ;
			this.m_isSensor = false ;
			this.m_density  = def.density ;
			this.m_friction = def.friction ;
			this.m_restitution = def.restitution ;
			this.m_isSensor = def.isSensor ;
		};
		Box2D.Dynamics.b2Fixture = B2Fixture ;
		B2Fixture.prototype.GetBody = function(){ return this.m_body ; } ;
		B2Fixture.prototype.GetShape = function() {
			console.log( "fixture.GetShape not yet supported in CocoonJS Box2D binding" ) ;
			return null ;
		} ;
		B2Fixture.prototype.GetUserData = function() { return this.m_userData ; } ;
		B2Fixture.prototype.SetSensor = function(isSensor) {
			this.m_isSensor = isSensor;
			window.ext.IDTK_SRV_BOX2D.makeCall( "setSensor" , this.m_body.m_world.m_worldID , this.m_fixtureID , this.m_isSensor) ;
		};
		B2Fixture.prototype.IsSensor = function() { return this.m_isSensor ; } ;
		B2Fixture.prototype.SetDensity     = function( density     ) { window.ext.IDTK_SRV_BOX2D.makeCall( "setDensity"     , this.m_body.m_world.m_worldID , this.m_fixtureID , density     ) ; this.m_density = density         ; } ;
		B2Fixture.prototype.SetFriction    = function( friction    ) { window.ext.IDTK_SRV_BOX2D.makeCall( "setFriction"    , this.m_body.m_world.m_worldID , this.m_fixtureID , friction    ) ; this.m_friction = friction       ; } ;
		B2Fixture.prototype.SetRestitution = function( restitution ) { window.ext.IDTK_SRV_BOX2D.makeCall( "setRestitution" , this.m_body.m_world.m_worldID , this.m_fixtureID , restitution ) ; this.m_restitution = restitution ; } ;
		B2Fixture.prototype.GetDensity     = function() { return this.m_density     ; } ;
		B2Fixture.prototype.GetFriction    = function() { return this.m_friction    ; } ;
		B2Fixture.prototype.GetRestitution = function() { return this.m_restitution ; } ;
		var B2Body = function (bd, world) {
			var userData = bd.userData ;
			bd.userData = null;
			this.m_world    = world;
			this.m_xf       = new B2Transform( bd.position , B2Mat22.FromAngle(bd.angle));
			this.m_fixtures = [] ;
			this.m_active   = bd.active ;
			if( bd.type === B2Body.b2_staticBody ){
				bd.density = 0;
			}
			this.m_bodyID = window.ext.IDTK_SRV_BOX2D.makeCall( "createBody" , world.m_worldID , bd ) ;
			this.m_userData = userData;
			bd.userData = userData ;
		};
		Box2D.Dynamics.b2Body = B2Body ;
		B2Body.prototype.CreateFixture = function (def) {
			var userData = def.userData;
			def.userData = null ;
			var fixtureID = window.ext.IDTK_SRV_BOX2D.makeCall( "createFixture" , this.m_world.m_worldID , this.m_bodyID , def ) ;
			def.userData = userData;
			var fixture = new B2Fixture( this , userData , fixtureID , def ) ;
			this.m_world.m_fixturesList[fixtureID] = fixture ;
			this.m_fixtures.push( fixture ) ;
			return fixture;
		};
		B2Body.prototype.GetFixtureList = function(){
			if( this.m_fixtures.length === 0 ){
				return null ;
			}
			return this.m_fixtures[0] ;
		};
		B2Body.prototype.DestroyFixture = function( fixture ){
			window.ext.IDTK_SRV_BOX2D.makeCall( "deleteFixture" , this.m_world.m_worldID , fixture.m_fixtureID ) ;
			delete this.m_world.m_fixturesList[fixture.m_fixtureID] ;
		};
		B2Body.prototype.SetPositionAndAngle = function (position, angle) {
			window.ext.IDTK_SRV_BOX2D.makeCall( "setBodyTransform" , this.m_world.m_worldID , this.m_bodyID , position.x , position.y , angle ) ;
			this.m_xf.R.Set(angle) ;
			this.m_xf.position.SetV(position) ;
		};
		B2Body.prototype.GetPosition = function () { return this.m_xf.position ; } ;
		B2Body.prototype.SetPosition = function (position) { this.SetPositionAndAngle(position, this.GetAngle()) ; } ;
		B2Body.prototype.GetLinearVelocity  = function(){
			var v = window.ext.IDTK_SRV_BOX2D.makeCall( "getLinearVelocity" , this.m_world.m_worldID , this.m_bodyID ) ;
			return B2Vec2.Get(v[0],v[1]);
		};
		B2Body.prototype.GetWorldCenter = function(){
			var p = window.ext.IDTK_SRV_BOX2D.makeCall( "getWorldCenter"  , this.m_world.m_worldID , this.m_bodyID ) ;
			return B2Vec2.Get(p[0],p[1]);
		};
		B2Body.prototype.GetLocalCenter = function(){
			var p = window.ext.IDTK_SRV_BOX2D.makeCall( "getLocalCenter"  , this.m_world.m_worldID , this.m_bodyID ) ;
			return B2Vec2.Get(p[0],p[1]);
		};
		B2Body.prototype.GetLocalPoint = function (worldPoint) {
			return b2Math.MulXT(this.m_xf, worldPoint);
		};
		B2Body.prototype.ApplyImpulse = function( impulse , point , wake ) {
			window.ext.IDTK_SRV_BOX2D.makeCall( "applyImpulse" , this.m_world.m_worldID , this.m_bodyID , impulse.x , impulse.y , point.x , point.y , wake ) ;
		};
		B2Body.prototype.GetMass			= function( )			   { return window.ext.IDTK_SRV_BOX2D.makeCall( "getMass" , this.m_world.m_worldID , this.m_bodyID ) ; }
		B2Body.prototype.IsAwake			= function( )			   { return window.ext.IDTK_SRV_BOX2D.makeCall( "isAwake"			, this.m_world.m_worldID , this.m_bodyID ) ; } ;
		B2Body.prototype.GetAngularVelocity = function( )			   { return window.ext.IDTK_SRV_BOX2D.makeCall( "getAngularVelocity" , this.m_world.m_worldID , this.m_bodyID ) ; } ;
		B2Body.prototype.SetFixedRotation   = function( fixed )				{ window.ext.IDTK_SRV_BOX2D.makeCall( "setFixedRotation"   , this.m_world.m_worldID , this.m_bodyID , fixed   ) ; } ;
		B2Body.prototype.SetAwake		   = function( state )				{ window.ext.IDTK_SRV_BOX2D.makeCall( "setAwake"		   , this.m_world.m_worldID , this.m_bodyID , state   ) ; } ;
		B2Body.prototype.SetLinearVelocity  = function( vel   )                { window.ext.IDTK_SRV_BOX2D.makeCall( "setLinearVelocity"  , this.m_world.m_worldID , this.m_bodyID , vel.x   , vel.y ) ; } ;
		B2Body.prototype.ApplyForceToCenter = function( force , wake )         { window.ext.IDTK_SRV_BOX2D.makeCall( "applyForceToCenter" , this.m_world.m_worldID , this.m_bodyID , force.x , force.y , wake ) ; } ;
		B2Body.prototype.ApplyForce         = function( force , point , wake ) { window.ext.IDTK_SRV_BOX2D.makeCall( "applyForce"         , this.m_world.m_worldID , this.m_bodyID , force.x , force.y , point.x , point.y , wake ) ; } ;
		B2Body.prototype.ApplyTorque        = function( torque, wake )         { window.ext.IDTK_SRV_BOX2D.makeCall( "applyTorque"        , this.m_world.m_worldID , this.m_bodyID , torque , wake ) ; } ;
		B2Body.prototype.SetLinearDamping   = function( damp  )                { window.ext.IDTK_SRV_BOX2D.makeCall( "setLinearDamping"   , this.m_world.m_worldID , this.m_bodyID , damp    ) ; } ;
		B2Body.prototype.SetAngularVelocity = function( angvel)                { window.ext.IDTK_SRV_BOX2D.makeCall( "setAngularVelocity" , this.m_world.m_worldID , this.m_bodyID , angvel  ) ; } ;
		B2Body.prototype.SetType            = function( type  )                { window.ext.IDTK_SRV_BOX2D.makeCall( "setType"            , this.m_world.m_worldID , this.m_bodyID , type    ) } ;
		B2Body.prototype.SetActive          = function( state )                { window.ext.IDTK_SRV_BOX2D.makeCall( "setActive"          , this.m_world.m_worldID , this.m_bodyID , state   ) ; this.m_active = state ; } ;
		B2Body.prototype.IsActive           = function( ) { return this.m_active ; } ;
		B2Body.prototype.GetAngle = function () { return this.m_xf.R.GetAngle() ; } ;
		B2Body.prototype.SetAngle = function (angle) {
			if (angle === undefined){
				angle = 0;
			}
			this.SetPositionAndAngle(this.GetPosition(), angle);
		};
		B2Body.prototype.GetContactList = function () {
			var contacts = window.ext.IDTK_SRV_BOX2D.makeCall( "getObjectContacts" , this.m_world.m_worldID , this.m_bodyID ) ;
			var result = [];
			for(var i = 0 ; i < contacts.length ; i++){
				result.push(this.m_world.m_bodyList[contacts[i]]);
			}
			return result;
		};
		B2Body.prototype.SetUserData = function (data) { this.m_userData = data ; } ;
		B2Body.prototype.GetUserData = function () { return this.m_userData ; } ;
		B2Body.prototype.GetWorld    = function () { return this.m_world ; } ;
		Box2D.Dynamics.b2Body.b2_staticBody    = 0;
		Box2D.Dynamics.b2Body.b2_kinematicBody = 1;
		Box2D.Dynamics.b2Body.b2_dynamicBody   = 2;
		var B2Contact = function (fixtureA , fixtureB , touching ) {
			this.m_fixtureA = fixtureA ;
			this.m_fixtureB = fixtureB ;
			this.m_touching = touching ;
		};
		Box2D.Dynamics.b2Contact = B2Contact ;
		B2Contact.prototype.GetFixtureA = function(){ return this.m_fixtureA ; } ;
		B2Contact.prototype.GetFixtureB = function(){ return this.m_fixtureB ; } ;
		B2Contact.prototype.IsTouching  = function(){ return this.m_touching ; } ;
		var B2ContactListener = function () {};
		Box2D.Dynamics.b2ContactListener = B2ContactListener ;
		B2ContactListener.prototype.BeginContact = function (/*contact*/) {} ;// NOTE: Only this one is called at the moment
		B2ContactListener.prototype.EndContact   = function (/*contact*/) {} ;
		B2ContactListener.prototype.PreSolve     = function (/*contact, oldManifold*/) {} ;
		B2ContactListener.prototype.PostSolve    = function (/*contact, impulse*/) {} ;
		Box2D.Dynamics.b2ContactListener.b2_defaultListener = new B2ContactListener();
		var B2ContactFilter = function() {} ;
		Box2D.Dynamics.b2ContactFilter = B2ContactFilter ;
		var B2World = function (gravity, doSleep) {
			this.m_bodyList = [];
			this.m_jointList = [];
			this.m_fixturesList = [];
			this.m_contactListener = null ;
			this.m_jointsList = [] ;
			this.m_worldID = window.ext.IDTK_SRV_BOX2D.makeCall( "createWorld" , gravity.x , gravity.y , doSleep );
		};
		Box2D.Dynamics.b2World = B2World;
		B2World.prototype.SetContactListener = function (listener) { this.m_contactListener = listener ; } ;
		B2World.prototype.SetContactFilter = function(filter){
			var _filter = filter ;
			var world = this ;
			var callbackFunc = function(a , b){
				var fa = world.m_fixturesList[a];
				var fb = world.m_fixturesList[b];
				return _filter.ShouldCollide(fa,fb);
			}
			window.ext.IDTK_SRV_BOX2D.makeCall("setContactFilter", this.m_worldID, callbackFunc ) ;
		};
		B2World.prototype.CreateBody = function (def) {
			var b = new B2Body(def, this);
			this.m_bodyList[b.m_bodyID] = b;
			return b;
		};
		B2World.prototype.DestroyBody = function (b) {
			window.ext.IDTK_SRV_BOX2D.makeCall( "deleteBody" , this.m_worldID , b.m_bodyID ) ;
			delete this.m_bodyList[b.m_bodyID];
			for( var i =0 ; i < b.m_fixtures.length ; ++i ){
				delete this.m_fixturesList[b.m_fixtures[i].m_fixtureID] ;
			}
		};
		B2World.prototype.CreateJoint = function (def) {
			if( def.bodyA.m_bodyID === def.bodyB.m_bodyID ){
				return ;
			}
			var bodyA = def.bodyA ;
			var bodyB = def.bodyB ;
			def.bodyA = bodyA.m_bodyID ;
			def.bodyB = bodyB.m_bodyID ;
			var jointFunc = "createDistanceJoint" ;
			if( def.type === B2Joint.e_revoluteJoint ) {
				jointFunc = "createRevoluteJoint" ;
			}
			var joint = new B2Joint(def) ;
			joint.m_jointID = window.ext.IDTK_SRV_BOX2D.makeCall( jointFunc , this.m_worldID , def ) ;
			def.bodyA = bodyA ;
			def.bodyB = bodyB ;
			this.m_jointsList.push( joint ) ;
			return joint ;
		};
		B2World.prototype.DestroyJoint = function (joint) {
			window.ext.IDTK_SRV_BOX2D.makeCall( "destroyJoint" , this.m_worldID , joint.m_jointID ) ;
		};
		B2World.prototype.GetJointList = function () {
			if( this.m_jointsList.length === 0 ){
				return null ;
			}
			for( var i = 0 ; i < this.m_jointsList.length - 1 ; ++i ){
				this.m_jointsList[i].next = this.m_jointsList[i+1] ;
			}
			this.m_jointsList[this.m_jointsList.length-1].next = null ;
			return this.m_jointsList[0];
		};
		B2World.prototype.SetContinuousPhysics = function (continuous) { window.ext.IDTK_SRV_BOX2D.makeCall( "setContinuous" , this.m_worldID, continuous ) ; } ;
		B2World.prototype.SetGravity           = function (gravity) { window.ext.IDTK_SRV_BOX2D.makeCall( "setGravity" , this.m_worldID, gravity.x , gravity.y ) ; } ;
		B2World.prototype.Step = function (dt, velocityIterations, positionIterations) {
			var i;
			var transforms = window.ext.IDTK_SRV_BOX2D.makeCall( "step" , this.m_worldID, dt , velocityIterations , positionIterations );
			var count = transforms[0]; // Array returns [ <number of elements> , elem1.bodyID , elem1.posX , elem1.posY , elem1.angle, elem2.bodyID , ....]
			for( i = 1; i <= count * 4 ; i+=4 ){
				var body = this.m_bodyList[ transforms[i+0] ];
				if( body === null ){ // end of the transforms array
					break ;
				}
				body.m_xf.position.Set(transforms[i+1] ,transforms[i+2] ) ;
				body.m_xf.R.Set(transforms[i+3]);
			}
			if( this.m_contactListener !== null ){
				var contacts = window.ext.IDTK_SRV_BOX2D.makeCall( "getLastContacts" , this.m_worldID );
				count = contacts[0];
				for( i = 1 ; i<= count*3 ; i+=3 ){
					var f1 = contacts[i+0];
					var f2 = contacts[i+1];
					var touching = contacts[i+2];
					var fix1 = this.m_fixturesList[f1];
					var fix2 = this.m_fixturesList[f2];
					if( (typeof(fix1) === 'undefined' ) || (typeof(fix2) === 'undefined' ) ){
						console.log("One of the fixtures in a contact DOESN'T EXIST!!");
						continue ;
					}
					this.m_contactListener.BeginContact( new B2Contact(fix1,fix2,touching) ) ;
				}
			}
		};
		B2World.prototype.ClearForces = function () {
			window.ext.IDTK_SRV_BOX2D.makeCall( "clearForces" , this.m_worldID );
		};
		B2World.prototype.SetDebugDraw = function(/*d*/){} ;
		B2World.prototype.DrawDebugData = function(){};
		Box2D.Collision.Shapes.b2CircleShape = function (radius)
		{
			this.radius = radius ;
			this.type = "circle";
		};
		Box2D.Collision.Shapes.b2PolygonShape = function ()
		{
		};
		Box2D.Collision.Shapes.b2PolygonShape.prototype.SetAsBox = function (width,height)
		{
			this.type = "box";
			this.width  = width  ;
			this.height = height ;
		};
		Box2D.Collision.Shapes.b2PolygonShape.prototype.SetAsEdge = function (v1, v2)
		{
			this.type = "edge";
			this.p1x = v1.x;
			this.p1y = v1.y;
			this.p2x = v2.x;
			this.p2y = v2.y;
		};
		Box2D.Collision.Shapes.b2PolygonShape.prototype.SetAsArray = function ( vec , length )
		{
			this.type = "polygon";
			this.vertices = [] ;
			for( var i = 0; i < length ; i++ )
			{
				this.vertices.push( vec[i].x );
				this.vertices.push( vec[i].y );
			}
		};
		var b2FixtureDef = function () {
			this.shape = null;
			this.userData = null;
			this.friction = 0.2;
			this.restitution = 0.0;
			this.density = 0.0;
			this.isSensor = false;
			this.filter = {
				categoryBits : 1 ,
				maskBits : 0xFFFF ,
				groupIndex : 0
			} ;
		};
		Box2D.Dynamics.b2FixtureDef = b2FixtureDef ;
		var B2Joint = function( def ) {
			this.bodyA = def.bodyA;
			this.bodyB = def.bodyB;
			this.userData = def.userData ;
			this.type = def.type ;
			this.next = null ;
		};
		Box2D.Dynamics.Joints.b2Joint = B2Joint ;
		B2Joint.prototype.GetBodyA    = function() { return this.bodyA    ; } ;
		B2Joint.prototype.GetBodyB    = function() { return this.bodyB    ; } ;
		B2Joint.prototype.GetUserData = function() { return this.userData ; } ;
		B2Joint.prototype.GetType     = function() { return this.type     ; } ;
		B2Joint.prototype.GetNext     = function() { return this.next     ; } ;
		B2Joint.e_distanceJoint = 0 ;
		B2Joint.e_revoluteJoint = 1 ;
		var B2DistanceJointDef = function( bA , bB , anchorA , anchorB ) {
			this.type = B2Joint.e_distanceJoint ;
			this.localAnchorA = B2Vec2.Get(0,0) ;
			this.localAnchorB = B2Vec2.Get(0,0) ;
			this.userData = null ;
			if( bA !== undefined ){this.bodyA = bA ;}
			if( bB !== undefined ){this.bodyB = bB ;}
			if( anchorA !== undefined ){this.localAnchorA.SetV(anchorA) ;}
			if( anchorB !== undefined ){this.localAnchorB.SetV(anchorB) ;}
			if( anchorA !== undefined && anchorB !== undefined ){
				var dX = anchorB.x - anchorA.x ;
				var dY = anchorB.y - anchorA.y ;
				this.length = Math.sqrt(dX * dX + dY * dY) ;
			}
			this.frequencyHz  = 0.0 ;
			this.dampingRatio = 0.0 ;
		};
		Box2D.Dynamics.Joints.b2DistanceJointDef = B2DistanceJointDef ;
		var B2RevoluteJointDef = function( bA , bB , anchorA , anchorB ) {
			this.type = B2Joint.e_revoluteJoint ;
			this.localAnchorA = new B2Vec2() ;
			this.localAnchorB = new B2Vec2() ;
			this.userData = null ;
			if( bA !== undefined ){this.bodyA = bA ;}
			if( bB !== undefined ){this.bodyB = bB ;}
			if( anchorA !== undefined ){this.localAnchorA.SetV(anchorA) ;}
			if( anchorB !== undefined ){this.localAnchorB.SetV(anchorB) ;}
			this.referenceAngle = 0.0;
			this.lowerAngle = 0.0;
			this.upperAngle = 0.0;
			this.maxMotorTorque = 0.0;
			this.motorSpeed = 0.0;
			this.enableLimit = false;
			this.enableMotor = false;
		};
		B2RevoluteJointDef.prototype.Initialize = function (bA, bB, anchor) {
			this.bodyA = bA;
			this.bodyB = bB;
			this.localAnchorA = this.bodyA.GetLocalPoint(anchor);
			this.localAnchorB = this.bodyB.GetLocalPoint(anchor);
			this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle();
		};
		Box2D.Dynamics.Joints.b2RevoluteJointDef = B2RevoluteJointDef ;
	})();
	}
}
else
{
	Box2D.Collision.b2Collision = {};
	Box2D.Collision.b2Distance = {};
	Box2D.Common.b2Settings = {};
	Box2D.Common.Math.b2Math = {};
	Box2D.Consts = {};
	Box2D.Dynamics.Contacts = {};
	Box2D.Dynamics.Controllers = {};
	/**
	 * Creates a callback function
	 * @param {!Object} context The context ('this' variable) of the callback function
	 * @param {function(...[*])} fn The function to execute with the given context for the returned callback
	 * @return {function()} The callback function
	 */
	Box2D.generateCallback = function(context, fn) {
		return function() {
			fn.apply(context, arguments);
		};
	};
	/**
	 * @type {number}
	 * @const
	 */
	Box2D.Consts.MIN_VALUE_SQUARED = Number.MIN_VALUE * Number.MIN_VALUE;
	/**
	 * @param {number} friction1
	 * @param {number} friction2
	 */
	Box2D.Common.b2Settings.b2MixFriction = function (friction1, friction2) {
		return Math.sqrt(friction1 * friction2);
	};
	/**
	 * @param {number} restitution1
	 * @param {number} restitution2
	 */
	Box2D.Common.b2Settings.b2MixRestitution = function (restitution1, restitution2) {
		return restitution1 > restitution2 ? restitution1 : restitution2;
	};
	Box2D.Common.b2Settings.VERSION = "2.1alpha-illandril";
	Box2D.Common.b2Settings.USHRT_MAX = 0x0000ffff;
	Box2D.Common.b2Settings.b2_maxManifoldPoints = 2;
	Box2D.Common.b2Settings.b2_aabbExtension = 0.1;
	Box2D.Common.b2Settings.b2_aabbMultiplier = 2.0;
	Box2D.Common.b2Settings.b2_polygonRadius = 2.0 * Box2D.Common.b2Settings.b2_linearSlop;
	Box2D.Common.b2Settings.b2_linearSlop = 0.005;
	Box2D.Common.b2Settings.b2_angularSlop = 2.0 / 180.0 * Math.PI;
	Box2D.Common.b2Settings.b2_toiSlop = 8.0 * Box2D.Common.b2Settings.b2_linearSlop;
	Box2D.Common.b2Settings.b2_maxTOIContactsPerIsland = 32;
	Box2D.Common.b2Settings.b2_maxTOIJointsPerIsland = 32;
	Box2D.Common.b2Settings.b2_velocityThreshold = 1.0;
	Box2D.Common.b2Settings.b2_maxLinearCorrection = 0.2;
	Box2D.Common.b2Settings.b2_maxAngularCorrection = 8.0 / 180.0 * Math.PI;
	Box2D.Common.b2Settings.b2_maxTranslation = 2.0;
	Box2D.Common.b2Settings.b2_maxTranslationSquared = Box2D.Common.b2Settings.b2_maxTranslation * Box2D.Common.b2Settings.b2_maxTranslation;
	Box2D.Common.b2Settings.b2_maxRotation = 0.5 * Math.PI;
	Box2D.Common.b2Settings.b2_maxRotationSquared = Box2D.Common.b2Settings.b2_maxRotation * Box2D.Common.b2Settings.b2_maxRotation;
	Box2D.Common.b2Settings.b2_contactBaumgarte = 0.2;
	Box2D.Common.b2Settings.b2_timeToSleep = 0.5;
	Box2D.Common.b2Settings.b2_linearSleepTolerance = 0.01;
	Box2D.Common.b2Settings.b2_linearSleepToleranceSquared = Box2D.Common.b2Settings.b2_linearSleepTolerance * Box2D.Common.b2Settings.b2_linearSleepTolerance;
	Box2D.Common.b2Settings.b2_angularSleepTolerance = 2.0 / 180.0 * Math.PI;
	Box2D.Common.b2Settings.b2_angularSleepToleranceSquared = Box2D.Common.b2Settings.b2_angularSleepTolerance * Box2D.Common.b2Settings.b2_angularSleepTolerance;
	Box2D.Common.b2Settings.MIN_VALUE_SQUARED = Number.MIN_VALUE * Number.MIN_VALUE;
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @param {!Box2D.Common.Math.b2Vec2} b
	 * @return {number}
	 */
	Box2D.Common.Math.b2Math.Dot = function (a, b) {
	  return a.x * b.x + a.y * b.y;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @param {!Box2D.Common.Math.b2Vec2} b
	 * @return {number}
	 */
	Box2D.Common.Math.b2Math.CrossVV = function (a, b) {
	  return a.x * b.y - a.y * b.x;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @param {number} s
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.CrossVF = function (a, s) {
	  return Box2D.Common.Math.b2Vec2.Get(s * a.y, (-s * a.x));
	};
	/**
	 * @param {number} s
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.CrossFV = function (s, a) {
	  return Box2D.Common.Math.b2Vec2.Get((-s * a.y), s * a.x);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} A
	 * @param {!Box2D.Common.Math.b2Vec2} v
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.MulMV = function (A, v) {
	  return Box2D.Common.Math.b2Vec2.Get(A.col1.x * v.x + A.col2.x * v.y, A.col1.y * v.x + A.col2.y * v.y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} A
	 * @param {!Box2D.Common.Math.b2Vec2} v
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.MulTMV = function (A, v) {
	  return Box2D.Common.Math.b2Vec2.Get(Box2D.Common.Math.b2Math.Dot(v, A.col1), Box2D.Common.Math.b2Math.Dot(v, A.col2));
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} T
	 * @param {!Box2D.Common.Math.b2Vec2} v
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.MulX = function (T, v) {
	  var a = Box2D.Common.Math.b2Math.MulMV(T.R, v);
	  a.x += T.position.x;
	  a.y += T.position.y;
	  return a;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} T
	 * @param {!Box2D.Common.Math.b2Vec2} v
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.MulXT = function (T, v) {
	  var a = Box2D.Common.Math.b2Math.SubtractVV(v, T.position);
	  var tX = (a.x * T.R.col1.x + a.y * T.R.col1.y);
	  a.y = (a.x * T.R.col2.x + a.y * T.R.col2.y);
	  a.x = tX;
	  return a;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @param {!Box2D.Common.Math.b2Vec2} b
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.AddVV = function (a, b) {
	  return Box2D.Common.Math.b2Vec2.Get(a.x + b.x, a.y + b.y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @param {!Box2D.Common.Math.b2Vec2} b
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.SubtractVV = function (a, b) {
	  return Box2D.Common.Math.b2Vec2.Get(a.x - b.x, a.y - b.y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @param {!Box2D.Common.Math.b2Vec2} b
	 * @return {number}
	 */
	Box2D.Common.Math.b2Math.Distance = function (a, b) {
	  var cX = a.x - b.x;
	  var cY = a.y - b.y;
	  return Math.sqrt(Box2D.Common.Math.b2Math.DistanceSquared(a,b));
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @param {!Box2D.Common.Math.b2Vec2} b
	 * @return {number}
	 */
	Box2D.Common.Math.b2Math.DistanceSquared = function (a, b) {
	  var cX = a.x - b.x;
	  var cY = a.y - b.y;
	  return (cX * cX + cY * cY);
	};
	/**
	 * @param {number} s
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.MulFV = function (s, a) {
	  return Box2D.Common.Math.b2Vec2.Get(s * a.x, s * a.y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} A
	 * @param {!Box2D.Common.Math.b2Mat22} B
	 * @return {!Box2D.Common.Math.b2Mat22}
	 */
	Box2D.Common.Math.b2Math.AddMM = function (A, B) {
	  return Box2D.Common.Math.b2Mat22.FromVV(Box2D.Common.Math.b2Math.AddVV(A.col1, B.col1), Box2D.Common.Math.b2Math.AddVV(A.col2, B.col2));
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} A
	 * @param {!Box2D.Common.Math.b2Mat22} B
	 * @return {!Box2D.Common.Math.b2Mat22}
	 */
	Box2D.Common.Math.b2Math.MulMM = function (A, B) {
	  return Box2D.Common.Math.b2Mat22.FromVV(Box2D.Common.Math.b2Math.MulMV(A, B.col1), Box2D.Common.Math.b2Math.MulMV(A, B.col2));
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} A
	 * @param {!Box2D.Common.Math.b2Mat22} B
	 * @return {!Box2D.Common.Math.b2Mat22}
	 */
	Box2D.Common.Math.b2Math.MulTMM = function (A, B) {
	  var c1 = Box2D.Common.Math.b2Vec2.Get(Box2D.Common.Math.b2Math.Dot(A.col1, B.col1), Box2D.Common.Math.b2Math.Dot(A.col2, B.col1));
	  var c2 = Box2D.Common.Math.b2Vec2.Get(Box2D.Common.Math.b2Math.Dot(A.col1, B.col2), Box2D.Common.Math.b2Math.Dot(A.col2, B.col2));
	  return Box2D.Common.Math.b2Mat22.FromVV(c1, c2);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.AbsV = function (a) {
	  return Box2D.Common.Math.b2Vec2.Get(Math.abs(a.x), Math.abs(a.y));
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} A
	 * @return {!Box2D.Common.Math.b2Mat22}
	 */
	Box2D.Common.Math.b2Math.AbsM = function (A) {
	  return Box2D.Common.Math.b2Mat22.FromVV(Box2D.Common.Math.b2Math.AbsV(A.col1), Box2D.Common.Math.b2Math.AbsV(A.col2));
	};
	/**
	 * @param {number} a
	 * @param {number} low
	 * @param {number} high
	 * @return {number}
	 */
	Box2D.Common.Math.b2Math.Clamp = function (a, low, high) {
	  return a < low ? low : a > high ? high : a;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} a
	 * @param {!Box2D.Common.Math.b2Vec2} low
	 * @param {!Box2D.Common.Math.b2Vec2} high
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Math.ClampV = function (a, low, high) {
		var x = Box2D.Common.Math.b2Math.Clamp(a.x, low.x, high.x);
		var y = Box2D.Common.Math.b2Math.Clamp(a.y, low.y, high.y);
	  return Box2D.Common.Math.b2Vec2.Get(x, y);
	};
	/**
	 * @constructor
	 */
	Box2D.Common.Math.b2Mat22 = function() {
		this.col1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.col2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.SetIdentity();
	};
	/**
	 * @param {number} angle
	 * @return {!Box2D.Common.Math.b2Mat22}
	 */
	Box2D.Common.Math.b2Mat22.FromAngle = function(angle) {
		var mat = new Box2D.Common.Math.b2Mat22();
		mat.Set(angle);
		return mat;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} c1
	 * @param {!Box2D.Common.Math.b2Vec2} c2
	 * @return {!Box2D.Common.Math.b2Mat22}
	 */
	Box2D.Common.Math.b2Mat22.FromVV = function(c1, c2) {
		var mat = new Box2D.Common.Math.b2Mat22();
		mat.SetVV(c1, c2);
		return mat;
	};
	/**
	 * @param {number} angle
	 */
	Box2D.Common.Math.b2Mat22.prototype.Set = function(angle) {
		var c = Math.cos(angle);
		var s = Math.sin(angle);
		this.col1.Set(c, s);
		this.col2.Set(-s, c);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} c1
	 * @param {!Box2D.Common.Math.b2Vec2} c2
	 */
	Box2D.Common.Math.b2Mat22.prototype.SetVV = function(c1, c2) {
		this.col1.SetV(c1);
		this.col2.SetV(c2);
	};
	/**
	 * @return {!Box2D.Common.Math.b2Mat22}
	 */
	Box2D.Common.Math.b2Mat22.prototype.Copy = function() {
		var mat = new Box2D.Common.Math.b2Mat22();
		mat.SetM(this);
		return mat;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} m
	 */
	Box2D.Common.Math.b2Mat22.prototype.SetM = function(m) {
		this.col1.SetV(m.col1);
		this.col2.SetV(m.col2);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} m
	 */
	Box2D.Common.Math.b2Mat22.prototype.AddM = function(m) {
		this.col1.Add(m.col1);
		this.col2.Add(m.col2);
	};
	Box2D.Common.Math.b2Mat22.prototype.SetIdentity = function() {
		this.col1.Set(1, 0);
		this.col2.Set(0, 1);
	};
	Box2D.Common.Math.b2Mat22.prototype.SetZero = function() {
		this.col1.Set(0, 0);
		this.col2.Set(0, 0);
	};
	/**
	 * @return {number}
	 */
	Box2D.Common.Math.b2Mat22.prototype.GetAngle = function() {
		return Math.atan2(this.col1.y, this.col1.x);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat22} out
	 * @return {!Box2D.Common.Math.b2Mat22}
	 */
	Box2D.Common.Math.b2Mat22.prototype.GetInverse = function(out) {
		var det = this.col1.x * this.col2.y - this.col2.x * this.col1.y;
		if (det !== 0) {
			det = 1 / det;
		}
		out.col1.x = det * this.col2.y;
		out.col2.x = -det * this.col2.x;
		out.col1.y = -det * this.col1.y;
		out.col2.y = det * this.col1.x;
		return out;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} out
	 * @param {number} bX
	 * @param {number} bY
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Mat22.prototype.Solve = function(out, bX, bY) {
		var det = this.col1.x * this.col2.y - this.col2.x * this.col1.y;
		if (det !== 0) {
			det = 1 / det;
		}
		out.x = det * (this.col2.y * bX - this.col2.x * bY);
		out.y = det * (this.col1.x * bY - this.col1.y * bX);
		return out;
	};
	Box2D.Common.Math.b2Mat22.prototype.Abs = function() {
		this.col1.Abs();
		this.col2.Abs();
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec3=} c1
	 * @param {!Box2D.Common.Math.b2Vec3=} c2
	 * @param {!Box2D.Common.Math.b2Vec3=} c3
	 * @constructor
	 */
	Box2D.Common.Math.b2Mat33 = function(c1, c2, c3) {
		this.col1 = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		this.col2 = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		this.col3 = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		if (c1) {
			this.col1.SetV(c1);
		}
		if (c2) {
			this.col2.SetV(c2);
		}
		if (c3) {
			this.col3.SetV(c3);
		}
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec3} c1
	 * @param {!Box2D.Common.Math.b2Vec3} c2
	 * @param {!Box2D.Common.Math.b2Vec3} c3
	 */
	Box2D.Common.Math.b2Mat33.prototype.SetVVV = function(c1, c2, c3) {
		this.col1.SetV(c1);
		this.col2.SetV(c2);
		this.col3.SetV(c3);
	};
	/**
	 * @return {!Box2D.Common.Math.b2Mat33}
	 */
	Box2D.Common.Math.b2Mat33.prototype.Copy = function() {
		return new Box2D.Common.Math.b2Mat33(this.col1, this.col2, this.col3);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat33} m
	 */
	Box2D.Common.Math.b2Mat33.prototype.SetM = function(m) {
		this.col1.SetV(m.col1);
		this.col2.SetV(m.col2);
		this.col3.SetV(m.col3);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Mat33} m
	 */
	Box2D.Common.Math.b2Mat33.prototype.AddM = function(m) {
		this.col1.x += m.col1.x;
		this.col1.y += m.col1.y;
		this.col1.z += m.col1.z;
		this.col2.x += m.col2.x;
		this.col2.y += m.col2.y;
		this.col2.z += m.col2.z;
		this.col3.x += m.col3.x;
		this.col3.y += m.col3.y;
		this.col3.z += m.col3.z;
	};
	Box2D.Common.Math.b2Mat33.prototype.SetIdentity = function() {
		this.col1.Set(1,0,0);
		this.col2.Set(0,1,0);
		this.col3.Set(0,0,1);
	};
	Box2D.Common.Math.b2Mat33.prototype.SetZero = function() {
		this.col1.Set(0,0,0);
		this.col2.Set(0,0,0);
		this.col3.Set(0,0,0);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} out
	 * @param {number} bX
	 * @param {number} bY
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Mat33.prototype.Solve22 = function(out, bX, bY) {
		var a11 = this.col1.x;
		var a12 = this.col2.x;
		var a21 = this.col1.y;
		var a22 = this.col2.y;
		var det = a11 * a22 - a12 * a21;
		if (det != 0.0) {
			det = 1.0 / det;
		}
		out.x = det * (a22 * bX - a12 * bY);
		out.y = det * (a11 * bY - a21 * bX);
		return out;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec3} out
	 * @param {number} bX
	 * @param {number} bY
	 * @param {number} bZ
	 * @return {!Box2D.Common.Math.b2Vec3}
	 */
	Box2D.Common.Math.b2Mat33.prototype.Solve33 = function(out, bX, bY, bZ) {
		var a11 = this.col1.x;
		var a21 = this.col1.y;
		var a31 = this.col1.z;
		var a12 = this.col2.x;
		var a22 = this.col2.y;
		var a32 = this.col2.z;
		var a13 = this.col3.x;
		var a23 = this.col3.y;
		var a33 = this.col3.z;
		var det = a11 * (a22 * a33 - a32 * a23) + a21 * (a32 * a13 - a12 * a33) + a31 * (a12 * a23 - a22 * a13);
		if (det != 0.0) {
			det = 1.0 / det;
		}
		out.x = det * (bX * (a22 * a33 - a32 * a23) + bY * (a32 * a13 - a12 * a33) + bZ * (a12 * a23 - a22 * a13));
		out.y = det * (a11 * (bY * a33 - bZ * a23) + a21 * (bZ * a13 - bX * a33) + a31 * (bX * a23 - bY * a13));
		out.z = det * (a11 * (a22 * bZ - a32 * bY) + a21 * (a32 * bX - a12 * bZ) + a31 * (a12 * bY - a22 * bX));
		return out;
	}
	/**
	 * @constructor
	 */
	Box2D.Common.Math.b2Sweep = function() {
		this.localCenter = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.c0 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.c = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	Box2D.Common.Math.b2Sweep.prototype.Set = function(other) {
		this.localCenter.SetV(other.localCenter);
		this.c0.SetV(other.c0);
		this.c.SetV(other.c);
		this.a0 = other.a0;
		this.a = other.a;
		this.t0 = other.t0;
	};
	Box2D.Common.Math.b2Sweep.prototype.Copy = function() {
		var copy = new Box2D.Common.Math.b2Sweep();
		copy.localCenter.SetV(this.localCenter);
		copy.c0.SetV(this.c0);
		copy.c.SetV(this.c);
		copy.a0 = this.a0;
		copy.a = this.a;
		copy.t0 = this.t0;
		return copy;
	};
	Box2D.Common.Math.b2Sweep.prototype.GetTransform = function(xf, alpha) {
		if (alpha === undefined) alpha = 0;
		xf.position.x = (1.0 - alpha) * this.c0.x + alpha * this.c.x;
		xf.position.y = (1.0 - alpha) * this.c0.y + alpha * this.c.y;
		var angle = (1.0 - alpha) * this.a0 + alpha * this.a;
		xf.R.Set(angle);
		var tMat = xf.R;
		xf.position.x -= (tMat.col1.x * this.localCenter.x + tMat.col2.x * this.localCenter.y);
		xf.position.y -= (tMat.col1.y * this.localCenter.x + tMat.col2.y * this.localCenter.y);
	};
	Box2D.Common.Math.b2Sweep.prototype.Advance = function(t) {
		if (t === undefined) t = 0;
		if (this.t0 < t && 1.0 - this.t0 > Number.MIN_VALUE) {
			var alpha = (t - this.t0) / (1.0 - this.t0);
			this.c0.x = (1.0 - alpha) * this.c0.x + alpha * this.c.x;
			this.c0.y = (1.0 - alpha) * this.c0.y + alpha * this.c.y;
			this.a0 = (1.0 - alpha) * this.a0 + alpha * this.a;
			this.t0 = t;
		}
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2=} pos
	 * @param {!Box2D.Common.Math.b2Mat22=} r
	 * @constructor
	 */
	Box2D.Common.Math.b2Transform = function(pos, r) {
		this.position = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.R = new Box2D.Common.Math.b2Mat22();
		if (pos) {
			this.position.SetV(pos);
		}
		if (r) {
			this.R.SetM(r);
		}
	};
	Box2D.Common.Math.b2Transform.prototype.Initialize = function(pos, r) {
		this.position.SetV(pos);
		this.R.SetM(r);
	};
	Box2D.Common.Math.b2Transform.prototype.SetIdentity = function() {
		this.position.SetZero();
		this.R.SetIdentity();
	};
	Box2D.Common.Math.b2Transform.prototype.Set = function(x) {
		this.position.SetV(x.position);
		this.R.SetM(x.R);
	};
	Box2D.Common.Math.b2Transform.prototype.GetAngle = function() {
		return Math.atan2(this.R.col1.y, this.R.col1.x);
	};
	/**
	 * @private
	 * @param {number} x
	 * @param {number} y
	 * @constructor
	 */
	Box2D.Common.Math.b2Vec2 = function(x, y) {
		this.x = x;
		this.y = y;
	};
	/**
	 * @private
	 * @type {Array.<!Box2D.Common.Math.b2Vec2>}
	 */
	Box2D.Common.Math.b2Vec2._freeCache = [];
	/**
	 * @param {number} x
	 * @param {number} y
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Vec2.Get = function(x, y) {
		if (Box2D.Common.Math.b2Vec2._freeCache.length > 0) {
			var vec = Box2D.Common.Math.b2Vec2._freeCache.pop();
			vec.Set(x, y);
			return vec;
		}
		return new Box2D.Common.Math.b2Vec2(x, y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} vec
	 */
	Box2D.Common.Math.b2Vec2.Free = function(vec) {
		Box2D.Common.Math.b2Vec2._freeCache.push(vec);
	};
	Box2D.Common.Math.b2Vec2.prototype.SetZero = function() {
		this.x = 0.0;
		this.y = 0.0;
	};
	/**
	 * @param {number} x
	 * @param {number} y
	 */
	Box2D.Common.Math.b2Vec2.prototype.Set = function(x, y) {
		this.x = x;
		this.y = y;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} v
	 */
	Box2D.Common.Math.b2Vec2.prototype.SetV = function(v) {
		this.x = v.x;
		this.y = v.y;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Vec2.prototype.GetNegative = function() {
		return Box2D.Common.Math.b2Vec2.Get((-this.x), (-this.y));
	};
	Box2D.Common.Math.b2Vec2.prototype.NegativeSelf = function() {
		this.x = (-this.x);
		this.y = (-this.y);
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Common.Math.b2Vec2.prototype.Copy = function() {
		return Box2D.Common.Math.b2Vec2.Get(this.x, this.y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} v
	 */
	Box2D.Common.Math.b2Vec2.prototype.Add = function(v) {
		this.x += v.x;
		this.y += v.y;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} v
	 */
	Box2D.Common.Math.b2Vec2.prototype.Subtract = function(v) {
		this.x -= v.x;
		this.y -= v.y;
	};
	/**
	 * @param {number} a
	 */
	Box2D.Common.Math.b2Vec2.prototype.Multiply = function(a) {
		this.x *= a;
		this.y *= a;
	};
	/**
	 * @param {Box2D.Common.Math.b2Mat22} A
	 */
	Box2D.Common.Math.b2Vec2.prototype.MulM = function(A) {
		var tX = this.x;
		this.x = A.col1.x * tX + A.col2.x * this.y;
		this.y = A.col1.y * tX + A.col2.y * this.y;
	};
	/**
	 * @param {Box2D.Common.Math.b2Mat22} A
	 */
	Box2D.Common.Math.b2Vec2.prototype.MulTM = function(A) {
		var tX = this.x * A.col1.x + this.y * A.col1.y;
		this.y = this.x * A.col2.x + this.y * A.col2.y;
		this.x = tX;
	};
	/**
	 * @param {number} s
	 */
	Box2D.Common.Math.b2Vec2.prototype.CrossVF = function(s) {
		var tX = this.x;
		this.x = s * this.y;
		this.y = (-s * tX);
	};
	/**
	 * @param {number} s
	 */
	Box2D.Common.Math.b2Vec2.prototype.CrossFV = function(s) {
		var tX = this.x;
		this.x = (-s * this.y);
		this.y = s * tX;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} b
	 */
	Box2D.Common.Math.b2Vec2.prototype.MinV = function(b) {
		this.x = Math.min(this.x, b.x);
		this.y = Math.min(this.y, b.y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} b
	 */
	Box2D.Common.Math.b2Vec2.prototype.MaxV = function(b) {
		this.x = Math.max(this.x, b.x);
		this.y = Math.max(this.y, b.y);
	};
	Box2D.Common.Math.b2Vec2.prototype.Abs = function() {
		this.x = Math.abs(this.x);
		this.y = Math.abs(this.y);
	};
	/**
	 * @return {number}
	 */
	Box2D.Common.Math.b2Vec2.prototype.Length = function() {
		return Math.sqrt(this.LengthSquared());
	};
	/**
	 * @return {number}
	 */
	Box2D.Common.Math.b2Vec2.prototype.LengthSquared = function() {
		return (this.x * this.x + this.y * this.y);
	};
	/**
	 * @return {number}
	 */
	Box2D.Common.Math.b2Vec2.prototype.Normalize = function() {
		var length = this.Length();
		if (length < Number.MIN_VALUE) {
			return 0.0;
		}
		var invLength = 1.0 / length;
		this.x *= invLength;
		this.y *= invLength;
		return length;
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Common.Math.b2Vec2.prototype.IsValid = function () {
	  return isFinite(this.x) && isFinite(this.y);
	};
	/**
	 * @param {number} x
	 * @param {number} y
	 * @param {number} z
	 * @constructor
	 */
	Box2D.Common.Math.b2Vec3 = function(x, y, z) {
		this.x = x;
		this.y = y;
		this.z = z;
	};
	Box2D.Common.Math.b2Vec3.prototype.SetZero = function() {
		this.x = 0;
		this.y = 0;
		this.z = 0;
	};
	/**
	 * @param {number} x
	 * @param {number} y
	 * @param {number} z
	 */
	Box2D.Common.Math.b2Vec3.prototype.Set = function(x, y, z) {
		this.x = x;
		this.y = y;
		this.z = z;
	}
	/**
	 * @param {!Box2D.Common.Math.b2Vec3} v
	 */
	Box2D.Common.Math.b2Vec3.prototype.SetV = function(v) {
		this.x = v.x;
		this.y = v.y;
		this.z = v.z;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec3}
	 */
	Box2D.Common.Math.b2Vec3.prototype.GetNegative = function() {
		return new Box2D.Common.Math.b2Vec3((-this.x), (-this.y), (-this.z));
	};
	Box2D.Common.Math.b2Vec3.prototype.NegativeSelf = function() {
		this.x = (-this.x);
		this.y = (-this.y);
		this.z = (-this.z);
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec3}
	 */
	Box2D.Common.Math.b2Vec3.prototype.Copy = function() {
		return new Box2D.Common.Math.b2Vec3(this.x, this.y, this.z);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec3} v
	 */
	Box2D.Common.Math.b2Vec3.prototype.Add = function(v) {
		this.x += v.x;
		this.y += v.y;
		this.z += v.z;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec3} v
	 */
	Box2D.Common.Math.b2Vec3.prototype.Subtract = function(v) {
		this.x -= v.x;
		this.y -= v.y;
		this.z -= v.z;
	};
	/**
	 * @param {number} a
	 */
	Box2D.Common.Math.b2Vec3.prototype.Multiply = function(a) {
		this.x *= a;
		this.y *= a;
		this.z *= a;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.Shapes.b2Shape = function() {
		this.m_radius = Box2D.Common.b2Settings.b2_linearSlop;
	};
	/**
	 * @return {string}
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.GetTypeName = function(){};
	/**
	 * @return {!Box2D.Collision.Shapes.b2Shape}
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.Copy = function(){};
	/**
	 * @param {!Box2D.Collision.Shapes.b2Shape} other
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.Set = function(other) {
		this.m_radius = other.m_radius;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @param {!Box2D.Common.Math.b2Vec2} p
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.TestPoint = function(){};
	/**
	 * @param {!Box2D.Collision.b2RayCastOutput} output
	 * @param {!Box2D.Collision.b2RayCastInput} input
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.RayCast = function(){};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.ComputeAABB = function(){};
	/**
	 * @param {!Box2D.Collision.Shapes.b2MassData} massData
	 * @param {number} density
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.ComputeMass = function(){};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} normal
	 * @param {number} offset
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @param {!Box2D.Common.Math.b2Vec2} c
	 * @return {number}
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.ComputeSubmergedArea = function(){};
	/**
	 * @param {!Box2D.Collision.b2DistanceProxy} proxy
	 */
	Box2D.Collision.Shapes.b2Shape.prototype.SetDistanceProxy = function(){};
	/**
	 * @param {!Box2D.Collision.Shapes.b2Shape} shape1
	 * @param {!Box2D.Common.Math.b2Transform} transform1
	 * @param {!Box2D.Collision.Shapes.b2Shape} shape2
	 * @param {!Box2D.Common.Math.b2Transform} transform2
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2Shape.TestOverlap = function(shape1, transform1, shape2, transform2) {
		var input = new Box2D.Collision.b2DistanceInput();
		input.proxyA = new Box2D.Collision.b2DistanceProxy();
		input.proxyA.Set(shape1);
		input.proxyB = new Box2D.Collision.b2DistanceProxy();
		input.proxyB.Set(shape2);
		input.transformA = transform1;
		input.transformB = transform2;
		input.useRadii = true;
		var simplexCache = new Box2D.Collision.b2SimplexCache();
		simplexCache.count = 0;
		var output = new Box2D.Collision.b2DistanceOutput();
		Box2D.Collision.b2Distance.Distance(output, simplexCache, input);
		return output.distance < 10.0 * Number.MIN_VALUE;
	};
	/**
	 * @const
	 * @type {number}
	 */
	Box2D.Collision.Shapes.b2Shape.e_startsInsideCollide = -1;
	/**
	 * @const
	 * @type {number}
	 */
	Box2D.Collision.Shapes.b2Shape.e_missCollide = 0;
	/**
	 * @const
	 * @type {number}
	 */
	Box2D.Collision.Shapes.b2Shape.e_hitCollide = 1;
	/**
	 * @param {number} radius
	 * @constructor
	 * @extends {Box2D.Collision.Shapes.b2Shape}
	 */
	Box2D.Collision.Shapes.b2CircleShape = function(radius) {
		Box2D.Collision.Shapes.b2Shape.call(this);
		/** @type {number} */
		this.m_radius = radius;
		/** @type {number} */
		this.m_radiusSquared = radius * radius;
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_p = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	c2inherit(Box2D.Collision.Shapes.b2CircleShape, Box2D.Collision.Shapes.b2Shape);
	/**
	 * @return {string}
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.GetTypeName = function() {
		return Box2D.Collision.Shapes.b2CircleShape.NAME;
	};
	/**
	 * @return {!Box2D.Collision.Shapes.b2CircleShape}
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.Copy = function() {
		var s = new Box2D.Collision.Shapes.b2CircleShape(this.m_radius);
		s.Set(this);
		return s;
	};
	/**
	 * @param {!Box2D.Collision.Shapes.b2Shape} other
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.Set = function(other) {
		Box2D.Collision.Shapes.b2Shape.prototype.Set.call(this, other);
		if (other instanceof Box2D.Collision.Shapes.b2CircleShape) {
			this.m_p.SetV(other.m_p);
		}
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 * @param {!Box2D.Common.Math.b2Vec2} p
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.TestPoint = function(transform, p) {
		var tMat = transform.R;
		var dX = p.x - (transform.position.x + (transform.R.col1.x * this.m_p.x + transform.R.col2.x * this.m_p.y));
		var dY = p.y - (transform.position.y + (transform.R.col1.y * this.m_p.x + transform.R.col2.y * this.m_p.y));
		return (dX * dX + dY * dY) <= this.m_radiusSquared;
	};
	/**
	 * @param {!Box2D.Collision.b2RayCastOutput} output
	 * @param {!Box2D.Collision.b2RayCastInput} input
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.RayCast = function(output, input, transform) {
		var tMat = transform.R;
		var positionX = transform.position.x + (tMat.col1.x * this.m_p.x + tMat.col2.x * this.m_p.y);
		var positionY = transform.position.y + (tMat.col1.y * this.m_p.x + tMat.col2.y * this.m_p.y);
		var sX = input.p1.x - positionX;
		var sY = input.p1.y - positionY;
		var b = (sX * sX + sY * sY) - this.m_radiusSquared;
		var rX = input.p2.x - input.p1.x;
		var rY = input.p2.y - input.p1.y;
		var c = (sX * rX + sY * rY);
		var rr = (rX * rX + rY * rY);
		var sigma = c * c - rr * b;
		if (sigma < 0.0 || rr < Number.MIN_VALUE) {
			return false;
		}
		var a = (-(c + Math.sqrt(sigma)));
		if (0.0 <= a && a <= input.maxFraction * rr) {
			a /= rr;
			output.fraction = a;
			output.normal.x = sX + a * rX;
			output.normal.y = sY + a * rY;
			output.normal.Normalize();
			return true;
		}
		return false;
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.ComputeAABB = function(aabb, transform) {
		var tMat = transform.R;
		var pX = transform.position.x + (tMat.col1.x * this.m_p.x + tMat.col2.x * this.m_p.y);
		var pY = transform.position.y + (tMat.col1.y * this.m_p.x + tMat.col2.y * this.m_p.y);
		aabb.lowerBound_.Set(pX - this.m_radius, pY - this.m_radius);
		aabb.upperBound_.Set(pX + this.m_radius, pY + this.m_radius);
	};
	/**
	 * @param {!Box2D.Collision.Shapes.b2MassData} massData
	 * @param {number} density
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.ComputeMass = function(massData, density) {
		massData.mass = density * Math.PI * this.m_radiusSquared;
		massData.center.SetV(this.m_p);
		massData.I = massData.mass * (0.5 * this.m_radiusSquared + (this.m_p.x * this.m_p.x + this.m_p.y * this.m_p.y));
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} normal
	 * @param {number} offset
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @param {!Box2D.Common.Math.b2Vec2} c
	 * @return {number}
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.ComputeSubmergedArea = function(normal, offset, xf, c) {
		var p = Box2D.Common.Math.b2Math.MulX(xf, this.m_p);
		var l = (-(Box2D.Common.Math.b2Math.Dot(normal, p) - offset));
		if (l < (-this.m_radius) + Number.MIN_VALUE) {
			return 0;
		}
		if (l > this.m_radius) {
			c.SetV(p);
			return Math.PI * this.m_radiusSquared;
		}
		var l2 = l * l;
		var area = this.m_radiusSquared * (Math.asin(l / this.m_radius) + Math.PI / 2) + l * Math.sqrt(this.m_radiusSquared - l2);
		var com = (-2 / 3 * Math.pow(this.m_radiusSquared - l2, 1.5) / area);
		c.x = p.x + normal.x * com;
		c.y = p.y + normal.y * com;
		return area;
	};
	/**
	 * @param {!Box2D.Collision.b2DistanceProxy} proxy
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.SetDistanceProxy = function(proxy) {
		proxy.m_vertices = [this.m_p];
		proxy.m_count = 1;
		proxy.m_radius = this.m_radius;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.GetLocalPosition = function() {
		return this.m_p;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} position
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.SetLocalPosition = function(position) {
		this.m_p.SetV(position);
	};
	/**
	 * @return {number}
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.GetRadius = function() {
		return this.m_radius;
	};
	/**
	 * @param {number} radius
	 */
	Box2D.Collision.Shapes.b2CircleShape.prototype.SetRadius = function(radius) {
		this.m_radius = radius;
		this.m_radiusSquared = radius * radius;
	};
	/**
	 * @const
	 * @type {string}
	 */
	Box2D.Collision.Shapes.b2CircleShape.NAME = 'b2CircleShape';
	/**
	 * @constructor
	 */
	Box2D.Collision.Shapes.b2EdgeChainDef = function() {
		/** @type {number} */
		this.vertexCount = 0;
		/** @type {boolean} */
		this.isALoop = true;
		/** @type {Array.<Box2D.Common.Math.b2Vec2} */
		this.vertices = [];
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} v1
	 * @param {!Box2D.Common.Math.b2Vec2} v2
	 * @constructor
	 * @extends {Box2D.Collision.Shapes.b2Shape}
	 */
	Box2D.Collision.Shapes.b2EdgeShape = function(v1, v2) {
		Box2D.Collision.Shapes.b2Shape.call(this);
		/** @type {Box2D.Collision.Shapes.b2EdgeShape} */
		this.m_prevEdge = null;
		/** @type {Box2D.Collision.Shapes.b2EdgeShape} */
		this.m_nextEdge = null;
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_v1 = v1;
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_v2 = v2;
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_direction = Box2D.Common.Math.b2Vec2.Get(this.m_v2.x - this.m_v1.x, this.m_v2.y - this.m_v1.y);
		/** @type {number} */
		this.m_length = this.m_direction.Normalize();
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_normal = Box2D.Common.Math.b2Vec2.Get(this.m_direction.y, -this.m_direction.x);
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_coreV1 = Box2D.Common.Math.b2Vec2.Get((-Box2D.Common.b2Settings.b2_toiSlop * (this.m_normal.x - this.m_direction.x)) + this.m_v1.x, (-Box2D.Common.b2Settings.b2_toiSlop * (this.m_normal.y - this.m_direction.y)) + this.m_v1.y);
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_coreV2 = Box2D.Common.Math.b2Vec2.Get((-Box2D.Common.b2Settings.b2_toiSlop * (this.m_normal.x + this.m_direction.x)) + this.m_v2.x, (-Box2D.Common.b2Settings.b2_toiSlop * (this.m_normal.y + this.m_direction.y)) + this.m_v2.y);
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_cornerDir1 = this.m_normal;
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_cornerDir2 = Box2D.Common.Math.b2Vec2.Get(-this.m_normal.x, -this.m_normal.y);
		/** @type {boolean} */
		this.m_cornerConvex1 = false;
		/** @type {boolean} */
		this.m_cornerConvex2 = false;
	};
	c2inherit(Box2D.Collision.Shapes.b2EdgeShape, Box2D.Collision.Shapes.b2Shape);
	/**
	 * @return {string}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetTypeName = function() {
		return Box2D.Collision.Shapes.b2EdgeShape.NAME;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 * @param {!Box2D.Common.Math.b2Vec2} p
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.TestPoint = function(transform, p) {
		return false;
	};
	/**
	 * @param {!Box2D.Collision.b2RayCastOutput} output
	 * @param {!Box2D.Collision.b2RayCastInput} input
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.RayCast = function(output, input, transform) {
		var rX = input.p2.x - input.p1.x;
		var rY = input.p2.y - input.p1.y;
		var tMat = transform.R;
		var v1X = transform.position.x + (tMat.col1.x * this.m_v1.x + tMat.col2.x * this.m_v1.y);
		var v1Y = transform.position.y + (tMat.col1.y * this.m_v1.x + tMat.col2.y * this.m_v1.y);
		var nX = transform.position.y + (tMat.col1.y * this.m_v2.x + tMat.col2.y * this.m_v2.y) - v1Y;
		var nY = (-(transform.position.x + (tMat.col1.x * this.m_v2.x + tMat.col2.x * this.m_v2.y) - v1X));
		var k_slop = 100.0 * Number.MIN_VALUE;
		var denom = (-(rX * nX + rY * nY));
		if (denom > k_slop) {
			var bX = input.p1.x - v1X;
			var bY = input.p1.y - v1Y;
			var a = (bX * nX + bY * nY);
			if (0.0 <= a && a <= input.maxFraction * denom) {
				var mu2 = (-rX * bY) + rY * bX;
				if ((-k_slop * denom) <= mu2 && mu2 <= denom * (1.0 + k_slop)) {
					a /= denom;
					output.fraction = a;
					var nLen = Math.sqrt(nX * nX + nY * nY);
					output.normal.x = nX / nLen;
					output.normal.y = nY / nLen;
					return true;
				}
			}
		}
		return false;
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.ComputeAABB = function(aabb, transform) {
		var tMat = transform.R;
		var v1X = transform.position.x + (tMat.col1.x * this.m_v1.x + tMat.col2.x * this.m_v1.y);
		var v1Y = transform.position.y + (tMat.col1.y * this.m_v1.x + tMat.col2.y * this.m_v1.y);
		var v2X = transform.position.x + (tMat.col1.x * this.m_v2.x + tMat.col2.x * this.m_v2.y);
		var v2Y = transform.position.y + (tMat.col1.y * this.m_v2.x + tMat.col2.y * this.m_v2.y);
		if (v1X < v2X) {
			aabb.lowerBound_.x = v1X;
			aabb.upperBound_.x = v2X;
		} else {
			aabb.lowerBound_.x = v2X;
			aabb.upperBound_.x = v1X;
		}
		if (v1Y < v2Y) {
			aabb.lowerBound_.y = v1Y;
			aabb.upperBound_.y = v2Y;
		} else {
			aabb.lowerBound_.y = v2Y;
			aabb.upperBound_.y = v1Y;
		}
	};
	/**
	 * @param {!Box2D.Collision.Shapes.b2MassData} massData
	 * @param {number} density
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.ComputeMass = function(massData, density) {
		massData.mass = 0;
		massData.center.SetV(this.m_v1);
		massData.I = 0;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} normal
	 * @param {number} offset
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @param {!Box2D.Common.Math.b2Vec2} c
	 * @return {number}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.ComputeSubmergedArea = function(normal, offset, xf, c) {
		if (offset === undefined) offset = 0;
		var v0 = Box2D.Common.Math.b2Vec2.Get(normal.x * offset, normal.y * offset);
		var v1 = Box2D.Common.Math.b2Math.MulX(xf, this.m_v1);
		var v2 = Box2D.Common.Math.b2Math.MulX(xf, this.m_v2);
		var d1 = Box2D.Common.Math.b2Math.Dot(normal, v1) - offset;
		var d2 = Box2D.Common.Math.b2Math.Dot(normal, v2) - offset;
		if (d1 > 0) {
			if (d2 > 0) {
				return 0;
			} else {
				v1.x = (-d2 / (d1 - d2) * v1.x) + d1 / (d1 - d2) * v2.x;
				v1.y = (-d2 / (d1 - d2) * v1.y) + d1 / (d1 - d2) * v2.y;
			}
		} else {
			if (d2 > 0) {
				v2.x = (-d2 / (d1 - d2) * v1.x) + d1 / (d1 - d2) * v2.x;
				v2.y = (-d2 / (d1 - d2) * v1.y) + d1 / (d1 - d2) * v2.y;
			}
		}
		c.x = (v0.x + v1.x + v2.x) / 3;
		c.y = (v0.y + v1.y + v2.y) / 3;
		return 0.5 * ((v1.x - v0.x) * (v2.y - v0.y) - (v1.y - v0.y) * (v2.x - v0.x));
	};
	/**
	 * @return {number}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetLength = function() {
		return this.m_length;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetVertex1 = function() {
		return this.m_v1;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetVertex2 = function() {
		return this.m_v2;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetCoreVertex1 = function() {
		return this.m_coreV1;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetCoreVertex2 = function() {
		return this.m_coreV2;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetNormalVector = function() {
		return this.m_normal;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetDirectionVector = function() {
		return this.m_direction;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetCorner1Vector = function() {
		return this.m_cornerDir1;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetCorner2Vector = function() {
		return this.m_cornerDir2;
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.Corner1IsConvex = function() {
		return this.m_cornerConvex1;
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.Corner2IsConvex = function() {
		return this.m_cornerConvex2;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetFirstVertex = function(xf) {
		var tMat = xf.R;
		return Box2D.Common.Math.b2Vec2.Get(xf.position.x + (tMat.col1.x * this.m_coreV1.x + tMat.col2.x * this.m_coreV1.y), xf.position.y + (tMat.col1.y * this.m_coreV1.x + tMat.col2.y * this.m_coreV1.y));
	};
	/**
	 * @return {Box2D.Collision.Shapes.b2EdgeShape}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetNextEdge = function() {
		return this.m_nextEdge;
	};
	/**
	 * @return {Box2D.Collision.Shapes.b2EdgeShape}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.GetPrevEdge = function() {
		return this.m_prevEdge;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @param {number} dX
	 * @param {number} dY
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.Support = function(xf, dX, dY) {
		var tMat = xf.R;
		var v1X = xf.position.x + (tMat.col1.x * this.m_coreV1.x + tMat.col2.x * this.m_coreV1.y);
		var v1Y = xf.position.y + (tMat.col1.y * this.m_coreV1.x + tMat.col2.y * this.m_coreV1.y);
		var v2X = xf.position.x + (tMat.col1.x * this.m_coreV2.x + tMat.col2.x * this.m_coreV2.y);
		var v2Y = xf.position.y + (tMat.col1.y * this.m_coreV2.x + tMat.col2.y * this.m_coreV2.y);
		if ((v1X * dX + v1Y * dY) > (v2X * dX + v2Y * dY)) {
			return Box2D.Common.Math.b2Vec2.Get(v1X, v1Y);
		} else {
			return Box2D.Common.Math.b2Vec2.Get(v2X, v2Y);
		}
	};
	/**
	 * @param {Box2D.Collision.Shapes.b2EdgeShape} edge
	 * @param {!Box2D.Common.Math.b2Vec2} core
	 * @param {!Box2D.Common.Math.b2Vec2} cornerDir
	 * @param {boolean} convex
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.SetPrevEdge = function(edge, core, cornerDir, convex) {
		this.m_prevEdge = edge;
		this.m_coreV1 = core;
		this.m_cornerDir1 = cornerDir;
		this.m_cornerConvex1 = convex;
	};
	/**
	 * @param {Box2D.Collision.Shapes.b2EdgeShape} edge
	 * @param {!Box2D.Common.Math.b2Vec2} core
	 * @param {!Box2D.Common.Math.b2Vec2} cornerDir
	 * @param {boolean} convex
	 */
	Box2D.Collision.Shapes.b2EdgeShape.prototype.SetNextEdge = function(edge, core, cornerDir, convex) {
		this.m_nextEdge = edge;
		this.m_coreV2 = core;
		this.m_cornerDir2 = cornerDir;
		this.m_cornerConvex2 = convex;
	};
	/**
	 * @const
	 * @type {string}
	 */
	Box2D.Collision.Shapes.b2EdgeShape.NAME = 'b2EdgeShape';
	/**
	 * @constructor
	 */
	Box2D.Collision.Shapes.b2MassData = function() {
		/** @type {number} */
		this.mass = 0;
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.center = Box2D.Common.Math.b2Vec2.Get(0, 0);
		/** @type {number} */
		this.I = 0;
	};
	/**
	 * @constructor
	 * @extends {Box2D.Collision.Shapes.b2Shape}
	 */
	Box2D.Collision.Shapes.b2PolygonShape = function() {
		Box2D.Collision.Shapes.b2Shape.call(this);
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.m_centroid = Box2D.Common.Math.b2Vec2.Get(0, 0);
		/** @type {Array.<!Box2D.Common.Math.b2Vec2>} */
		this.m_vertices = [];
		/** @type {Array.<!Box2D.Common.Math.b2Vec2>} */
		this.m_normals = [];
	};
	c2inherit(Box2D.Collision.Shapes.b2PolygonShape, Box2D.Collision.Shapes.b2Shape);
	/**
	 * @return {string}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.GetTypeName = function() {
		return Box2D.Collision.Shapes.b2PolygonShape.NAME;
	};
	/**
	 * @return {!Box2D.Collision.Shapes.b2PolygonShape}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.Copy = function() {
		var s = new Box2D.Collision.Shapes.b2PolygonShape();
		s.Set(this);
		return s;
	};
	/**
	 * @param {!Box2D.Collision.Shapes.b2Shape} other
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.Set = function(other) {
		Box2D.Collision.Shapes.b2Shape.prototype.Set.call(this, other);
		if (other instanceof Box2D.Collision.Shapes.b2PolygonShape) {
			this.m_centroid.SetV(other.m_centroid);
			this.m_vertexCount = other.m_vertexCount;
			this.Reserve(this.m_vertexCount);
			for (var i = 0; i < this.m_vertexCount; i++) {
				this.m_vertices[i].SetV(other.m_vertices[i]);
				this.m_normals[i].SetV(other.m_normals[i]);
			}
		}
	};
	/**
	 * @param {Array.<Box2D.Common.Math.b2Vec2>} vertices
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.SetAsArray = function(vertices) {
		this.SetAsVector(vertices);
	};
	/**
	 * @param {Array.<Box2D.Common.Math.b2Vec2>} vertices
	 * @return {!Box2D.Collision.Shapes.b2PolygonShape}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.AsArray = function(vertices) {
		var polygonShape = new Box2D.Collision.Shapes.b2PolygonShape();
		polygonShape.SetAsArray(vertices);
		return polygonShape;
	};
	/**
	 * @param {Array.<!Box2D.Common.Math.b2Vec2>} vertices
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.SetAsVector = function(vertices) {
		var vertexCount = vertices.length;
;
		this.m_vertexCount = vertexCount;
		this.Reserve(vertexCount);
		var i = 0;
		for (i = 0; i < this.m_vertexCount; i++) {
			this.m_vertices[i].SetV(vertices[i]);
		}
		for (i = 0; i < this.m_vertexCount; ++i) {
			var i1 = i;
			var i2 = i + 1 < this.m_vertexCount ? i + 1 : 0;
			var edge = Box2D.Common.Math.b2Math.SubtractVV(this.m_vertices[i2], this.m_vertices[i1]);
;
			this.m_normals[i].SetV(Box2D.Common.Math.b2Math.CrossVF(edge, 1.0));
			this.m_normals[i].Normalize();
		}
		this.m_centroid = Box2D.Collision.Shapes.b2PolygonShape.ComputeCentroid(this.m_vertices, this.m_vertexCount);
	};
	/**
	 * @param {Array.<Box2D.Common.Math.b2Vec2>} vertices
	 * @return {!Box2D.Collision.Shapes.b2PolygonShape}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.AsVector = function(vertices) {
		var polygonShape = new Box2D.Collision.Shapes.b2PolygonShape();
		polygonShape.SetAsVector(vertices);
		return polygonShape;
	};
	/**
	 * @param {number} hx
	 * @param {number} hy
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.SetAsBox = function(hx, hy) {
		this.m_vertexCount = 4;
		this.Reserve(4);
		this.m_vertices[0].Set((-hx), (-hy));
		this.m_vertices[1].Set(hx, (-hy));
		this.m_vertices[2].Set(hx, hy);
		this.m_vertices[3].Set((-hx), hy);
		this.m_normals[0].Set(0.0, (-1.0));
		this.m_normals[1].Set(1.0, 0.0);
		this.m_normals[2].Set(0.0, 1.0);
		this.m_normals[3].Set((-1.0), 0.0);
		this.m_centroid.SetZero();
	};
	/**
	 * @param {number} hx
	 * @param {number} hy
	 * @return {!Box2D.Collision.Shapes.b2PolygonShape}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.AsBox = function(hx, hy) {
		var polygonShape = new Box2D.Collision.Shapes.b2PolygonShape();
		polygonShape.SetAsBox(hx, hy);
		return polygonShape;
	};
	/**
	 * @param {number} hx
	 * @param {number} hy
	 * @param {!Box2D.Common.Math.b2Vec2} center
	 * @param {number} angle
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.SetAsOrientedBox = function(hx, hy, center, angle) {
		this.m_vertexCount = 4;
		this.Reserve(4);
		this.m_vertices[0].Set((-hx), (-hy));
		this.m_vertices[1].Set(hx, (-hy));
		this.m_vertices[2].Set(hx, hy);
		this.m_vertices[3].Set((-hx), hy);
		this.m_normals[0].Set(0.0, (-1.0));
		this.m_normals[1].Set(1.0, 0.0);
		this.m_normals[2].Set(0.0, 1.0);
		this.m_normals[3].Set((-1.0), 0.0);
		this.m_centroid = center;
		var mat = new Box2D.Common.Math.b2Mat22();
		mat.Set(angle);
		var xf = new Box2D.Common.Math.b2Transform(center, mat);
		for (var i = 0; i < this.m_vertexCount; ++i) {
			this.m_vertices[i] = Box2D.Common.Math.b2Math.MulX(xf, this.m_vertices[i]);
			this.m_normals[i] = Box2D.Common.Math.b2Math.MulMV(xf.R, this.m_normals[i]);
		}
	};
	/**
	 * @param {number} hx
	 * @param {number} hy
	 * @param {!Box2D.Common.Math.b2Vec2} center
	 * @param {number} angle
	 * @return {!Box2D.Collision.Shapes.b2PolygonShape}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.AsOrientedBox = function(hx, hy, center, angle) {
		var polygonShape = new Box2D.Collision.Shapes.b2PolygonShape();
		polygonShape.SetAsOrientedBox(hx, hy, center, angle);
		return polygonShape;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} v1
	 * @param {!Box2D.Common.Math.b2Vec2} v2
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.SetAsEdge = function(v1, v2) {
		this.m_vertexCount = 2;
		this.Reserve(2);
		this.m_vertices[0].SetV(v1);
		this.m_vertices[1].SetV(v2);
		this.m_centroid.x = 0.5 * (v1.x + v2.x);
		this.m_centroid.y = 0.5 * (v1.y + v2.y);
		this.m_normals[0] = Box2D.Common.Math.b2Math.CrossVF(Box2D.Common.Math.b2Math.SubtractVV(v2, v1), 1.0);
		this.m_normals[0].Normalize();
		this.m_normals[1].x = (-this.m_normals[0].x);
		this.m_normals[1].y = (-this.m_normals[0].y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} v1
	 * @param {!Box2D.Common.Math.b2Vec2} v2
	 * @return {!Box2D.Collision.Shapes.b2PolygonShape}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.AsEdge = function(v1, v2) {
		var polygonShape = new Box2D.Collision.Shapes.b2PolygonShape();
		polygonShape.SetAsEdge(v1, v2);
		return polygonShape;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @param {!Box2D.Common.Math.b2Vec2} p
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.TestPoint = function(xf, p) {
		var tVec;
		var tMat = xf.R;
		var tX = p.x - xf.position.x;
		var tY = p.y - xf.position.y;
		var pLocalX = (tX * tMat.col1.x + tY * tMat.col1.y);
		var pLocalY = (tX * tMat.col2.x + tY * tMat.col2.y);
		for (var i = 0; i < this.m_vertexCount; ++i) {
			tVec = this.m_vertices[i];
			tX = pLocalX - tVec.x;
			tY = pLocalY - tVec.y;
			tVec = this.m_normals[i];
			var dot = (tVec.x * tX + tVec.y * tY);
			if (dot > 0.0) {
				return false;
			}
		}
		return true;
	};
	/**
	 * @param {!Box2D.Collision.b2RayCastOutput} output
	 * @param {!Box2D.Collision.b2RayCastInput} input
	 * @param {!Box2D.Common.Math.b2Transform} transform
	 * @return {boolean}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.RayCast = function(output, input, transform) {
		var lower = 0.0;
		var upper = input.maxFraction;
		var tX = 0;
		var tY = 0;
		var tMat;
		var tVec;
		tX = input.p1.x - transform.position.x;
		tY = input.p1.y - transform.position.y;
		tMat = transform.R;
		var p1X = (tX * tMat.col1.x + tY * tMat.col1.y);
		var p1Y = (tX * tMat.col2.x + tY * tMat.col2.y);
		tX = input.p2.x - transform.position.x;
		tY = input.p2.y - transform.position.y;
		tMat = transform.R;
		var p2X = (tX * tMat.col1.x + tY * tMat.col1.y);
		var p2Y = (tX * tMat.col2.x + tY * tMat.col2.y);
		var dX = p2X - p1X;
		var dY = p2Y - p1Y;
		var index = -1;
		for (var i = 0; i < this.m_vertexCount; ++i) {
			tVec = this.m_vertices[i];
			tX = tVec.x - p1X;
			tY = tVec.y - p1Y;
			tVec = this.m_normals[i];
			var numerator = (tVec.x * tX + tVec.y * tY);
			var denominator = (tVec.x * dX + tVec.y * dY);
			if (denominator == 0.0) {
				if (numerator < 0.0) {
					return false;
				}
			} else {
				if (denominator < 0.0 && numerator < lower * denominator) {
					lower = numerator / denominator;
					index = i;
				} else if (denominator > 0.0 && numerator < upper * denominator) {
					upper = numerator / denominator;
				}
			}
			if (upper < lower - Number.MIN_VALUE) {
				return false;
			}
		}
		if (index >= 0) {
			output.fraction = lower;
			tMat = transform.R;
			tVec = this.m_normals[index];
			output.normal.x = (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
			output.normal.y = (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
			return true;
		}
		return false;
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.ComputeAABB = function(aabb, xf) {
		var tMat = xf.R;
		var tVec = this.m_vertices[0];
		var lowerX = xf.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
		var lowerY = xf.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
		var upperX = lowerX;
		var upperY = lowerY;
		for (var i = 1; i < this.m_vertexCount; ++i) {
			tVec = this.m_vertices[i];
			var vX = xf.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
			var vY = xf.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
			lowerX = lowerX < vX ? lowerX : vX;
			lowerY = lowerY < vY ? lowerY : vY;
			upperX = upperX > vX ? upperX : vX;
			upperY = upperY > vY ? upperY : vY;
		}
		aabb.lowerBound_.x = lowerX - this.m_radius;
		aabb.lowerBound_.y = lowerY - this.m_radius;
		aabb.upperBound_.x = upperX + this.m_radius;
		aabb.upperBound_.y = upperY + this.m_radius;
	};
	/**
	 * @param {!Box2D.Collision.Shapes.b2MassData} massData
	 * @param {number} density
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.ComputeMass = function(massData, density) {
		if (this.m_vertexCount == 2) {
			massData.center.x = 0.5 * (this.m_vertices[0].x + this.m_vertices[1].x);
			massData.center.y = 0.5 * (this.m_vertices[0].y + this.m_vertices[1].y);
			massData.mass = 0.0;
			massData.I = 0.0;
			return;
		}
		var centerX = 0.0;
		var centerY = 0.0;
		var area = 0.0;
		var I = 0.0;
		var p1X = 0.0;
		var p1Y = 0.0;
		var k_inv3 = 1.0 / 3.0;
		for (var i = 0; i < this.m_vertexCount; ++i) {
			var p2 = this.m_vertices[i];
			var p3 = i + 1 < this.m_vertexCount ? this.m_vertices[i + 1] : this.m_vertices[0];
			var e1X = p2.x - p1X;
			var e1Y = p2.y - p1Y;
			var e2X = p3.x - p1X;
			var e2Y = p3.y - p1Y;
			var D = e1X * e2Y - e1Y * e2X;
			var triangleArea = 0.5 * D;
			area += triangleArea;
			centerX += triangleArea * k_inv3 * (p1X + p2.x + p3.x);
			centerY += triangleArea * k_inv3 * (p1Y + p2.y + p3.y);
			var px = p1X;
			var py = p1Y;
			var ex1 = e1X;
			var ey1 = e1Y;
			var ex2 = e2X;
			var ey2 = e2Y;
			var intx2 = k_inv3 * (0.25 * (ex1 * ex1 + ex2 * ex1 + ex2 * ex2) + (px * ex1 + px * ex2)) + 0.5 * px * px;
			var inty2 = k_inv3 * (0.25 * (ey1 * ey1 + ey2 * ey1 + ey2 * ey2) + (py * ey1 + py * ey2)) + 0.5 * py * py;
			I += D * (intx2 + inty2);
		}
		massData.mass = density * area;
		centerX *= 1.0 / area;
		centerY *= 1.0 / area;
		massData.center.Set(centerX, centerY);
		massData.I = density * I;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} normal
	 * @param {number} offset
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @param {!Box2D.Common.Math.b2Vec2} c
	 * @return {number}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.ComputeSubmergedArea = function(normal, offset, xf, c) {
		var normalL = Box2D.Common.Math.b2Math.MulTMV(xf.R, normal);
		var offsetL = offset - Box2D.Common.Math.b2Math.Dot(normal, xf.position);
		var depths = [];
		var diveCount = 0;
		var intoIndex = -1;
		var outoIndex = -1;
		var lastSubmerged = false;
		var i = 0;
		for (i = 0; i < this.m_vertexCount; ++i) {
			depths[i] = Box2D.Common.Math.b2Math.Dot(normalL, this.m_vertices[i]) - offsetL;
			var isSubmerged = depths[i] < (-Number.MIN_VALUE);
			if (i > 0) {
				if (isSubmerged) {
					if (!lastSubmerged) {
						intoIndex = i - 1;
						diveCount++;
					}
				} else {
					if (lastSubmerged) {
						outoIndex = i - 1;
						diveCount++;
					}
				}
			}
			lastSubmerged = isSubmerged;
		}
		switch (diveCount) {
		case 0:
			if (lastSubmerged) {
				var md = new Box2D.Collision.Shapes.b2MassData();
				this.ComputeMass(md, 1);
				c.SetV(Box2D.Common.Math.b2Math.MulX(xf, md.center));
				return md.mass;
			} else {
				return 0;
			}
			break;
		case 1:
			if (intoIndex == (-1)) {
				intoIndex = this.m_vertexCount - 1;
			} else {
				outoIndex = this.m_vertexCount - 1;
			}
			break;
		}
		var intoIndex2 = ((intoIndex + 1) % this.m_vertexCount);
		var outoIndex2 = ((outoIndex + 1) % this.m_vertexCount);
		var intoLamdda = (0 - depths[intoIndex]) / (depths[intoIndex2] - depths[intoIndex]);
		var outoLamdda = (0 - depths[outoIndex]) / (depths[outoIndex2] - depths[outoIndex]);
		var intoVec = Box2D.Common.Math.b2Vec2.Get(this.m_vertices[intoIndex].x * (1 - intoLamdda) + this.m_vertices[intoIndex2].x * intoLamdda, this.m_vertices[intoIndex].y * (1 - intoLamdda) + this.m_vertices[intoIndex2].y * intoLamdda);
		var outoVec = Box2D.Common.Math.b2Vec2.Get(this.m_vertices[outoIndex].x * (1 - outoLamdda) + this.m_vertices[outoIndex2].x * outoLamdda, this.m_vertices[outoIndex].y * (1 - outoLamdda) + this.m_vertices[outoIndex2].y * outoLamdda);
		var area = 0;
		var center = Box2D.Common.Math.b2Vec2.Get(0, 0);
		var p2 = this.m_vertices[intoIndex2];
		var p3;
		i = intoIndex2;
		while (i != outoIndex2) {
			i = (i + 1) % this.m_vertexCount;
			if (i == outoIndex2) p3 = outoVec;
			else p3 = this.m_vertices[i];
			var triangleArea = 0.5 * ((p2.x - intoVec.x) * (p3.y - intoVec.y) - (p2.y - intoVec.y) * (p3.x - intoVec.x));
			area += triangleArea;
			center.x += triangleArea * (intoVec.x + p2.x + p3.x) / 3;
			center.y += triangleArea * (intoVec.y + p2.y + p3.y) / 3;
			p2 = p3;
		}
		center.Multiply(1 / area);
		c.SetV(Box2D.Common.Math.b2Math.MulX(xf, center));
		return area;
	};
	/**
	 * @param {!Box2D.Collision.b2DistanceProxy} proxy
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.SetDistanceProxy = function(proxy) {
		proxy.m_vertices = this.m_vertices;
		proxy.m_count = this.m_vertexCount;
		proxy.m_radius = this.m_radius;
	};
	/**
	 * @return {number}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.GetVertexCount = function() {
		return this.m_vertexCount;
	};
	/**
	 * @return {Array.<!Box2D.Common.Math.b2Vec2>}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.GetVertices = function() {
		return this.m_vertices;
	};
	/**
	 * @return {Array.<!Box2D.Common.Math.b2Vec2>}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.GetNormals = function() {
		return this.m_normals;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} d
	 * return {number}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.GetSupport = function(d) {
		var bestIndex = 0;
		var bestValue = this.m_vertices[0].x * d.x + this.m_vertices[0].y * d.y;
		for (var i = 1; i < this.m_vertexCount; ++i) {
			var value = this.m_vertices[i].x * d.x + this.m_vertices[i].y * d.y;
			if (value > bestValue) {
				bestIndex = i;
				bestValue = value;
			}
		}
		return bestIndex;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} d
	 * return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.GetSupportVertex = function(d) {
		var bestIndex = 0;
		var bestValue = this.m_vertices[0].x * d.x + this.m_vertices[0].y * d.y;
		for (var i = 1; i < this.m_vertexCount; ++i) {
			var value = this.m_vertices[i].x * d.x + this.m_vertices[i].y * d.y;
			if (value > bestValue) {
				bestIndex = i;
				bestValue = value;
			}
		}
		return this.m_vertices[bestIndex];
	};
	/**
	 * @param {number} count
	 */
	Box2D.Collision.Shapes.b2PolygonShape.prototype.Reserve = function(count) {
		this.m_vertices = [];
		this.m_normals = [];
		for (var i = this.m_vertices.length; i < count; i++) {
			this.m_vertices[i] = Box2D.Common.Math.b2Vec2.Get(0, 0);
			this.m_normals[i] = Box2D.Common.Math.b2Vec2.Get(0, 0);
		}
	};
	/**
	 * @param {Array.<!Box2D.Common.Math.b2Vec2>} vs
	 * @param {number} count
	 * return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.ComputeCentroid = function(vs, count) {
		var c = Box2D.Common.Math.b2Vec2.Get(0, 0);
		var area = 0.0;
		var p1X = 0.0;
		var p1Y = 0.0;
		var inv3 = 1.0 / 3.0;
		for (var i = 0; i < count; ++i) {
			var p2 = vs[i];
			var p3 = i + 1 < count ? vs[i + 1] : vs[0];
			var e1X = p2.x - p1X;
			var e1Y = p2.y - p1Y;
			var e2X = p3.x - p1X;
			var e2Y = p3.y - p1Y;
			var D = (e1X * e2Y - e1Y * e2X);
			var triangleArea = 0.5 * D;
			area += triangleArea;
			c.x += triangleArea * inv3 * (p1X + p2.x + p3.x);
			c.y += triangleArea * inv3 * (p1Y + p2.y + p3.y);
		}
		c.x *= 1.0 / area;
		c.y *= 1.0 / area;
		return c;
	};
	/** @type {!Box2D.Common.Math.b2Mat22} */
	Box2D.Collision.Shapes.b2PolygonShape.s_mat = new Box2D.Common.Math.b2Mat22();
	/**
	 * @const
	 * @type {string}
	 */
	Box2D.Collision.Shapes.b2PolygonShape.NAME = 'b2PolygonShape';
	/**
	 * @constructor
	 */
	Box2D.Collision.b2ContactID = function() {
		/** @type {number} */
		this._key = 0;
		/** @type {number} */
		this._referenceEdge = 0;
		/** @type {number} */
		this._incidentEdge = 0;
		/** @type {number} */
		this._incidentVertex = 0;
	};
	/**
	 * @return {number}
	 */
	Box2D.Collision.b2ContactID.prototype.GetKey = function () {
		return this._key;
	};
	/**
	 * @param {number} key
	 */
	Box2D.Collision.b2ContactID.prototype.SetKey = function (key) {
		this._key = key;
		this._referenceEdge = this._key & 0x000000ff;
		this._incidentEdge = ((this._key & 0x0000ff00) >> 8) & 0x000000ff;
		this._incidentVertex = ((this._key & 0x00ff0000) >> 16) & 0x000000ff;
		this._flip = ((this._key & 0xff000000) >> 24) & 0x000000ff;
	};
	/**
	 * @param {!Box2D.Collision.b2ContactID} id
	 */
	Box2D.Collision.b2ContactID.prototype.Set = function (id) {
		this.SetKey(id._key);
	};
	/**
	 * @param {number} edge
	 */
	Box2D.Collision.b2ContactID.prototype.SetReferenceEdge = function(edge) {
		this._referenceEdge = edge;
		this._key = (this._key & 0xffffff00) | (this._referenceEdge & 0x000000ff);
	};
	/**
	 * @param {number} edge
	 */
	Box2D.Collision.b2ContactID.prototype.SetIncidentEdge = function(edge) {
		this._incidentEdge = edge;
		this._key = (this._key & 0xffff00ff) | ((this._incidentEdge << 8) & 0x0000ff00);
	};
	/**
	 * @param {number} vertex
	 */
	Box2D.Collision.b2ContactID.prototype.SetIncidentVertex = function(vertex) {
		this._incidentVertex = vertex;
		this._key = (this._key & 0xff00ffff) | ((this._incidentVertex << 16) & 0x00ff0000);
	};
	/**
	 * @param {number} flip
	 */
	Box2D.Collision.b2ContactID.prototype.SetFlip = function(flip) {
		this._flip = flip;
		this._key = (this._key & 0x00ffffff) | ((this._flip << 24) & 0xff000000);
	};
	Box2D.Collision.b2ContactID.prototype.Copy = function () {
	  var id = new Box2D.Collision.b2ContactID();
	  id.Set(this);
	  return id;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.ClipVertex = function() {
		this.v = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.id = new Box2D.Collision.b2ContactID();
	};
	Box2D.Collision.ClipVertex.prototype.Set = function(other) {
		this.v.SetV(other.v);
		this.id.Set(other.id);
	};
	/**
	 * @const
	 * @type {string}
	 */
	Box2D.Collision.IBroadPhase = 'Box2D.Collision.IBroadPhase';
	/**
	 * @private
	 * @constructor
	 */
	Box2D.Collision.b2AABB = function() {
		this.lowerBound_ = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.upperBound_ = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	/**
	 * @private
	 * @type {Array.<!Box2D.Collision.b2AABB>}
	 */
	Box2D.Collision.b2AABB._freeCache = [];
	/**
	 * @return {!Box2D.Collision.b2AABB}
	 */
	Box2D.Collision.b2AABB.Get = function() {
		if (Box2D.Collision.b2AABB._freeCache.length > 0) {
			var aabb = Box2D.Collision.b2AABB._freeCache.pop();
			aabb.SetZero();
			return aabb;
		}
		return new Box2D.Collision.b2AABB();
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb
	 */
	Box2D.Collision.b2AABB.Free = function(aabb) {
		Box2D.Collision.b2AABB._freeCache.push(aabb);
	};
	Box2D.Collision.b2AABB.prototype.SetZero = function() {
		this.lowerBound_.Set(0, 0);
		this.upperBound_.Set(0, 0);
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Collision.b2AABB.prototype.IsValid = function() {
		var dX = this.upperBound_.x - this.lowerBound_.x;
		if (dX < 0) {
			return false;
		}
		var dY = this.upperBound_.y - this.lowerBound_.y;
		if (dY < 0) {
			return false;
		}
		return this.lowerBound_.IsValid() && this.upperBound_.IsValid();
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.b2AABB.prototype.GetCenter = function() {
		return Box2D.Common.Math.b2Vec2.Get((this.lowerBound_.x + this.upperBound_.x) / 2, (this.lowerBound_.y + this.upperBound_.y) / 2);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} newCenter
	 */
	Box2D.Collision.b2AABB.prototype.SetCenter = function(newCenter) {
		var oldCenter = this.GetCenter();
		this.lowerBound_.Subtract(oldCenter);
		this.upperBound_.Subtract(oldCenter);
		this.lowerBound_.Add(newCenter);
		this.upperBound_.Add(newCenter);
		Box2D.Common.Math.b2Vec2.Free(oldCenter);
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Collision.b2AABB.prototype.GetExtents = function() {
		return Box2D.Common.Math.b2Vec2.Get((this.upperBound_.x - this.lowerBound_.x) / 2, (this.upperBound_.y - this.lowerBound_.y) / 2);
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @return {boolean}
	 */
	Box2D.Collision.b2AABB.prototype.Contains = function(aabb) {
		var result = true;
		result = result && this.lowerBound_.x <= aabb.lowerBound_.x;
		result = result && this.lowerBound_.y <= aabb.lowerBound_.y;
		result = result && aabb.upperBound_.x <= this.upperBound_.x;
		result = result && aabb.upperBound_.y <= this.upperBound_.y;
		return result;
	};
	/**
	 * @param {!Box2D.Collision.b2RayCastOutput} output
	 * @param {!Box2D.Collision.b2RayCastInput} input
	 * @return {boolean}
	 */
	Box2D.Collision.b2AABB.prototype.RayCast = function(output, input) {
		var tmin = (-Number.MAX_VALUE);
		var tmax = Number.MAX_VALUE;
		var dX = input.p2.x - input.p1.x;
		var absDX = Math.abs(dX);
		if (absDX < Number.MIN_VALUE) {
			if (input.p1.x < this.lowerBound_.x || this.upperBound_.x < input.p1.x) {
				return false;
			}
		} else {
			var inv_d = 1.0 / dX;
			var t1 = (this.lowerBound_.x - input.p1.x) * inv_d;
			var t2 = (this.upperBound_.x - input.p1.x) * inv_d;
			var s = (-1.0);
			if (t1 > t2) {
				var t3 = t1;
				t1 = t2;
				t2 = t3;
				s = 1.0;
			}
			if (t1 > tmin) {
				output.normal.x = s;
				output.normal.y = 0;
				tmin = t1;
			}
			tmax = Math.min(tmax, t2);
			if (tmin > tmax) return false;
		}
		var dY = input.p2.y - input.p1.y;
		var absDY = Math.abs(dY);
		if (absDY < Number.MIN_VALUE) {
			if (input.p1.y < this.lowerBound_.y || this.upperBound_.y < input.p1.y) {
				return false;
			}
		} else {
			var inv_d = 1.0 / dY;
			var t1 = (this.lowerBound_.y - input.p1.y) * inv_d;
			var t2 = (this.upperBound_.y - input.p1.y) * inv_d;
			var s = (-1.0);
			if (t1 > t2) {
				var t3 = t1;
				t1 = t2;
				t2 = t3;
				s = 1.0;
			}
			if (t1 > tmin) {
				output.normal.y = s;
				output.normal.x = 0;
				tmin = t1;
			}
			tmax = Math.min(tmax, t2);
			if (tmin > tmax) {
				return false;
			}
		}
		output.fraction = tmin;
		return true;
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} other
	 * @return {boolean}
	 */
	Box2D.Collision.b2AABB.prototype.TestOverlap = function(other) {
		if ( other.lowerBound_.x - this.upperBound_.x > 0 ) { return false; }
		if ( other.lowerBound_.y - this.upperBound_.y > 0 ) { return false; }
		if ( this.lowerBound_.x - other.upperBound_.x > 0 ) { return false; }
		if ( this.lowerBound_.y - other.upperBound_.y > 0 ) { return false; }
		return true;
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb1
	 * @param {!Box2D.Collision.b2AABB} aabb2
	 * @return {!Box2D.Collision.b2AABB}
	 */
	Box2D.Collision.b2AABB.Combine = function(aabb1, aabb2) {
		var aabb = Box2D.Collision.b2AABB.Get();
		aabb.Combine(aabb1, aabb2);
		return aabb;
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb1
	 * @param {!Box2D.Collision.b2AABB} aabb2
	 */
	Box2D.Collision.b2AABB.prototype.Combine = function(aabb1, aabb2) {
		this.lowerBound_.x = Math.min(aabb1.lowerBound_.x, aabb2.lowerBound_.x);
		this.lowerBound_.y = Math.min(aabb1.lowerBound_.y, aabb2.lowerBound_.y);
		this.upperBound_.x = Math.max(aabb1.upperBound_.x, aabb2.upperBound_.x);
		this.upperBound_.y = Math.max(aabb1.upperBound_.y, aabb2.upperBound_.y);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} vOut
	 * @param {!Box2D.Common.Math.b2Vec2} vIn
	 * @param {!Box2D.Common.Math.b2Vec2} normal
	 * @param {number} offset
	 */
	Box2D.Collision.b2Collision.ClipSegmentToLine = function(vOut, vIn, normal, offset) {
		var numOut = 0;
		var vIn0 = vIn[0].v;
		var vIn1 = vIn[1].v;
		var distance0 = normal.x * vIn0.x + normal.y * vIn0.y - offset;
		var distance1 = normal.x * vIn1.x + normal.y * vIn1.y - offset;
		if (distance0 <= 0.0) {
			vOut[numOut++].Set(vIn[0]);
		}
		if (distance1 <= 0.0) {
			vOut[numOut++].Set(vIn[1]);
		}
		if (distance0 * distance1 < 0.0) {
			var interp = distance0 / (distance0 - distance1);
			var tVec = vOut[numOut].v;
			tVec.x = vIn0.x + interp * (vIn1.x - vIn0.x);
			tVec.y = vIn0.y + interp * (vIn1.y - vIn0.y);
			if (distance0 > 0.0) {
				vOut[numOut].id = vIn[0].id;
			} else {
				vOut[numOut].id = vIn[1].id;
			}
			numOut++;
		}
		return numOut;
	};
	/**
	 * @param {!Box2D.Collision.Shapes.b2PolygonShape} poly1
	 * @param {!Box2D.Common.Math.b2Transform} xf1
	 * @param {number} edge1
	 * @param {!Box2D.Collision.Shapes.b2PolygonShape} poly2
	 * @param {!Box2D.Common.Math.b2Transform} xf1
	 * @return {number}
	 */
	Box2D.Collision.b2Collision.EdgeSeparation = function(poly1, xf1, edge1, poly2, xf2) {
		var normal1WorldX = (xf1.R.col1.x * poly1.m_normals[edge1].x + xf1.R.col2.x * poly1.m_normals[edge1].y);
		var normal1WorldY = (xf1.R.col1.y * poly1.m_normals[edge1].x + xf1.R.col2.y * poly1.m_normals[edge1].y);
		var normal1X = (xf2.R.col1.x * normal1WorldX + xf2.R.col1.y * normal1WorldY);
		var normal1Y = (xf2.R.col2.x * normal1WorldX + xf2.R.col2.y * normal1WorldY);
		var index = 0;
		var minDot = Number.MAX_VALUE;
		for (var i = 0; i < poly2.m_vertexCount; i++) {
			var dot = poly2.m_vertices[i].x * normal1X + poly2.m_vertices[i].y * normal1Y;
			if (dot < minDot) {
				minDot = dot;
				index = i;
			}
		}
		var v1X = xf1.position.x + (xf1.R.col1.x * poly1.m_vertices[edge1].x + xf1.R.col2.x * poly1.m_vertices[edge1].y);
		var v1Y = xf1.position.y + (xf1.R.col1.y * poly1.m_vertices[edge1].x + xf1.R.col2.y * poly1.m_vertices[edge1].y);
		var v2X = xf2.position.x + (xf2.R.col1.x * poly2.m_vertices[index].x + xf2.R.col2.x * poly2.m_vertices[index].y);
		var v2Y = xf2.position.y + (xf2.R.col1.y * poly2.m_vertices[index].x + xf2.R.col2.y * poly2.m_vertices[index].y);
		var separation = (v2X - v1X) * normal1WorldX + (v2Y - v1Y) * normal1WorldY;
		return separation;
	};
	/**
	 * @param {!Box2D.Collision.Shapes.b2PolygonShape} poly1
	 * @param {!Box2D.Common.Math.b2Transform} xf1
	 * @param {!Box2D.Collision.Shapes.b2PolygonShape} poly2
	 * @param {!Box2D.Common.Math.b2Transform} xf1
	 * @return {{bestEdge: number, separation: number}}
	 */
	Box2D.Collision.b2Collision.FindMaxSeparation = function(poly1, xf1, poly2, xf2) {
		var dX = xf2.position.x + (xf2.R.col1.x * poly2.m_centroid.x + xf2.R.col2.x * poly2.m_centroid.y);
		var dY = xf2.position.y + (xf2.R.col1.y * poly2.m_centroid.x + xf2.R.col2.y * poly2.m_centroid.y);
		dX -= xf1.position.x + (xf1.R.col1.x * poly1.m_centroid.x + xf1.R.col2.x * poly1.m_centroid.y);
		dY -= xf1.position.y + (xf1.R.col1.y * poly1.m_centroid.x + xf1.R.col2.y * poly1.m_centroid.y);
		var dLocal1X = (dX * xf1.R.col1.x + dY * xf1.R.col1.y);
		var dLocal1Y = (dX * xf1.R.col2.x + dY * xf1.R.col2.y);
		var edge = 0;
		var maxDot = (-Number.MAX_VALUE);
		for (var i = 0; i < poly1.m_vertexCount; ++i) {
			var dot = (poly1.m_normals[i].x * dLocal1X + poly1.m_normals[i].y * dLocal1Y);
			if (dot > maxDot) {
				maxDot = dot;
				edge = i;
			}
		}
		var s = Box2D.Collision.b2Collision.EdgeSeparation(poly1, xf1, edge, poly2, xf2);
		var prevEdge = edge - 1;
		if (prevEdge < 0) {
			prevEdge = poly1.m_vertexCount - 1;
		}
		var sPrev = Box2D.Collision.b2Collision.EdgeSeparation(poly1, xf1, prevEdge, poly2, xf2);
		var nextEdge = edge + 1;
		if (nextEdge >= poly1.m_vertexCount) {
			nextEdge = 0;
		}
		var sNext = Box2D.Collision.b2Collision.EdgeSeparation(poly1, xf1, nextEdge, poly2, xf2);
		var bestEdge = 0;
		var bestSeparation = 0;
		if (sPrev > s && sPrev > sNext) {
			bestEdge = prevEdge;
			bestSeparation = sPrev;
			while (true) {
				edge = bestEdge - 1;
				if (edge < 0) {
					edge = poly1.m_vertexCount - 1;
				}
				s = Box2D.Collision.b2Collision.EdgeSeparation(poly1, xf1, edge, poly2, xf2);
				if (s > bestSeparation) {
					bestEdge = edge;
					bestSeparation = s;
				} else {
					break;
				}
			}
		} else if (sNext > s) {
			bestEdge = nextEdge;
			bestSeparation = sNext;
			while (true) {
				edge = bestEdge + 1;
				if (edge >= poly1.m_vertexCount) {
					edge = 0;
				}
				s = Box2D.Collision.b2Collision.EdgeSeparation(poly1, xf1, edge, poly2, xf2);
				if (s > bestSeparation) {
					bestEdge = edge;
					bestSeparation = s;
				} else {
					break;
				}
			}
		} else {
			bestEdge = edge;
			bestSeparation = s;
		}
		return {bestEdge: bestEdge, separation: bestSeparation};
	};
	Box2D.Collision.b2Collision.FindIncidentEdge = function(c, poly1, xf1, edge1, poly2, xf2) {
		if (edge1 === undefined) edge1 = 0;
		var normal1X = (xf1.R.col1.x * poly1.m_normals[edge1].x + xf1.R.col2.x * poly1.m_normals[edge1].y);
		var normal1Y = (xf1.R.col1.y * poly1.m_normals[edge1].x + xf1.R.col2.y * poly1.m_normals[edge1].y);
		var tX = (xf2.R.col1.x * normal1X + xf2.R.col1.y * normal1Y);
		normal1Y = (xf2.R.col2.x * normal1X + xf2.R.col2.y * normal1Y);
		normal1X = tX;
		var i1 = 0;
		var minDot = Number.MAX_VALUE;
		for (var i = 0; i < poly2.m_vertexCount; i++) {
			var dot = (normal1X * poly2.m_normals[i].x + normal1Y * poly2.m_normals[i].y);
			if (dot < minDot) {
				minDot = dot;
				i1 = i;
			}
		}
		var i2 = i1 + 1;
		if (i2 >= poly2.m_vertexCount) {
			i2 = 0;
		}
		c[0].v.x = xf2.position.x + (xf2.R.col1.x * poly2.m_vertices[i1].x + xf2.R.col2.x * poly2.m_vertices[i1].y);
		c[0].v.y = xf2.position.y + (xf2.R.col1.y * poly2.m_vertices[i1].x + xf2.R.col2.y * poly2.m_vertices[i1].y);
		c[0].id.SetReferenceEdge(edge1);
		c[0].id.SetIncidentEdge(i1);
		c[0].id.SetIncidentVertex(0);
		c[1].v.x = xf2.position.x + (xf2.R.col1.x * poly2.m_vertices[i2].x + xf2.R.col2.x * poly2.m_vertices[i2].y);
		c[1].v.y = xf2.position.y + (xf2.R.col1.y * poly2.m_vertices[i2].x + xf2.R.col2.y * poly2.m_vertices[i2].y);
		c[1].id.SetReferenceEdge(edge1);
		c[1].id.SetIncidentEdge(i2);
		c[1].id.SetIncidentVertex(1);
	};
	Box2D.Collision.b2Collision.MakeClipPointVector = function() {
		return [new Box2D.Collision.ClipVertex(), new Box2D.Collision.ClipVertex()];
	};
	Box2D.Collision.b2Collision.CollidePolygons = function(manifold, polyA, xfA, polyB, xfB) {
		manifold.m_pointCount = 0;
		var totalRadius = polyA.m_radius + polyB.m_radius;
		var separationEdgeA = Box2D.Collision.b2Collision.FindMaxSeparation(polyA, xfA, polyB, xfB);
		var edge1 = separationEdgeA.bestEdge;
		if (separationEdgeA.separation > totalRadius) {
			return;
		}
		var separationEdgeB = Box2D.Collision.b2Collision.FindMaxSeparation(polyB, xfB, polyA, xfA);
		if (separationEdgeB.separation > totalRadius) {
			return;
		}
		var poly1 = polyA;
		var poly2 = polyB;
		var xf1 = xfA;
		var xf2 = xfB;
		var flip = 0;
		manifold.m_type = Box2D.Collision.b2Manifold.e_faceA;
		if (separationEdgeB.separation > 0.98 /* k_relativeTol */ * separationEdgeA.separation + 0.001 /* k_absoluteTol */ ) {
			poly1 = polyB;
			poly2 = polyA;
			xf1 = xfB;
			xf2 = xfA;
			edge1 = separationEdgeB.bestEdge;
			manifold.m_type = Box2D.Collision.b2Manifold.e_faceB;
			flip = 1;
		}
		var incidentEdge = Box2D.Collision.b2Collision.s_incidentEdge;
		Box2D.Collision.b2Collision.FindIncidentEdge(incidentEdge, poly1, xf1, edge1, poly2, xf2);
		var local_v11 = poly1.m_vertices[edge1];
		var local_v12;
		if (edge1 + 1 < poly1.m_vertexCount) {
			local_v12 = poly1.m_vertices[edge1 + 1];
		} else {
			local_v12 = poly1.m_vertices[0];
		}
		Box2D.Collision.b2Collision.s_localTangent.Set(local_v12.x - local_v11.x, local_v12.y - local_v11.y);
		Box2D.Collision.b2Collision.s_localTangent.Normalize();
		Box2D.Collision.b2Collision.s_localNormal.x = Box2D.Collision.b2Collision.s_localTangent.y;
		Box2D.Collision.b2Collision.s_localNormal.y = (-Box2D.Collision.b2Collision.s_localTangent.x);
		Box2D.Collision.b2Collision.s_planePoint.Set(0.5 * (local_v11.x + local_v12.x), 0.5 * (local_v11.y + local_v12.y));
		Box2D.Collision.b2Collision.s_tangent.x = (xf1.R.col1.x * Box2D.Collision.b2Collision.s_localTangent.x + xf1.R.col2.x * Box2D.Collision.b2Collision.s_localTangent.y);
		Box2D.Collision.b2Collision.s_tangent.y = (xf1.R.col1.y * Box2D.Collision.b2Collision.s_localTangent.x + xf1.R.col2.y * Box2D.Collision.b2Collision.s_localTangent.y);
		Box2D.Collision.b2Collision.s_tangent2.x = (-Box2D.Collision.b2Collision.s_tangent.x);
		Box2D.Collision.b2Collision.s_tangent2.y = (-Box2D.Collision.b2Collision.s_tangent.y);
		Box2D.Collision.b2Collision.s_normal.x = Box2D.Collision.b2Collision.s_tangent.y;
		Box2D.Collision.b2Collision.s_normal.y = (-Box2D.Collision.b2Collision.s_tangent.x);
		Box2D.Collision.b2Collision.s_v11.x = xf1.position.x + (xf1.R.col1.x * local_v11.x + xf1.R.col2.x * local_v11.y);
		Box2D.Collision.b2Collision.s_v11.y = xf1.position.y + (xf1.R.col1.y * local_v11.x + xf1.R.col2.y * local_v11.y);
		Box2D.Collision.b2Collision.s_v12.x = xf1.position.x + (xf1.R.col1.x * local_v12.x + xf1.R.col2.x * local_v12.y);
		Box2D.Collision.b2Collision.s_v12.y = xf1.position.y + (xf1.R.col1.y * local_v12.x + xf1.R.col2.y * local_v12.y);
		var sideOffset1 = (-Box2D.Collision.b2Collision.s_tangent.x * Box2D.Collision.b2Collision.s_v11.x) - Box2D.Collision.b2Collision.s_tangent.y * Box2D.Collision.b2Collision.s_v11.y + totalRadius;
		if (Box2D.Collision.b2Collision.ClipSegmentToLine(Box2D.Collision.b2Collision.s_clipPoints1, incidentEdge, Box2D.Collision.b2Collision.s_tangent2, sideOffset1) < 2) {
			return;
		}
		var sideOffset2 = Box2D.Collision.b2Collision.s_tangent.x * Box2D.Collision.b2Collision.s_v12.x + Box2D.Collision.b2Collision.s_tangent.y * Box2D.Collision.b2Collision.s_v12.y + totalRadius;
		if (Box2D.Collision.b2Collision.ClipSegmentToLine(Box2D.Collision.b2Collision.s_clipPoints2, Box2D.Collision.b2Collision.s_clipPoints1, Box2D.Collision.b2Collision.s_tangent, sideOffset2) < 2) {
			return;
		}
		manifold.m_localPlaneNormal.SetV(Box2D.Collision.b2Collision.s_localNormal);
		manifold.m_localPoint.SetV(Box2D.Collision.b2Collision.s_planePoint);
		var frontOffset = Box2D.Collision.b2Collision.s_normal.x * Box2D.Collision.b2Collision.s_v11.x + Box2D.Collision.b2Collision.s_normal.y * Box2D.Collision.b2Collision.s_v11.y;
		var pointCount = 0;
		for (var i = 0; i < Box2D.Common.b2Settings.b2_maxManifoldPoints; ++i) {
			var separation = Box2D.Collision.b2Collision.s_normal.x * Box2D.Collision.b2Collision.s_clipPoints2[i].v.x + Box2D.Collision.b2Collision.s_normal.y * Box2D.Collision.b2Collision.s_clipPoints2[i].v.y - frontOffset;
			if (separation <= totalRadius) {
				var tX = Box2D.Collision.b2Collision.s_clipPoints2[i].v.x - xf2.position.x;
				var tY = Box2D.Collision.b2Collision.s_clipPoints2[i].v.y - xf2.position.y;
				manifold.m_points[pointCount].m_localPoint.x = (tX * xf2.R.col1.x + tY * xf2.R.col1.y);
				manifold.m_points[pointCount].m_localPoint.y = (tX * xf2.R.col2.x + tY * xf2.R.col2.y);
				manifold.m_points[pointCount].m_id.Set(Box2D.Collision.b2Collision.s_clipPoints2[i].id);
				manifold.m_points[pointCount].m_id.SetFlip(flip);
				pointCount++;
			}
		}
		manifold.m_pointCount = pointCount;
	};
	Box2D.Collision.b2Collision.CollideCircles = function(manifold, circle1, xf1, circle2, xf2) {
		manifold.m_pointCount = 0;
		var p1X = xf1.position.x + (xf1.R.col1.x * circle1.m_p.x + xf1.R.col2.x * circle1.m_p.y);
		var p1Y = xf1.position.y + (xf1.R.col1.y * circle1.m_p.x + xf1.R.col2.y * circle1.m_p.y);
		var p2X = xf2.position.x + (xf2.R.col1.x * circle2.m_p.x + xf2.R.col2.x * circle2.m_p.y);
		var p2Y = xf2.position.y + (xf2.R.col1.y * circle2.m_p.x + xf2.R.col2.y * circle2.m_p.y);
		var dX = p2X - p1X;
		var dY = p2Y - p1Y;
		var distSqr = dX * dX + dY * dY;
		var radius = circle1.m_radius + circle2.m_radius;
		if (distSqr > radius * radius) {
			return;
		}
		manifold.m_type = Box2D.Collision.b2Manifold.e_circles;
		manifold.m_localPoint.SetV(circle1.m_p);
		manifold.m_localPlaneNormal.SetZero();
		manifold.m_pointCount = 1;
		manifold.m_points[0].m_localPoint.SetV(circle2.m_p);
		manifold.m_points[0].m_id.SetKey(0);
	};
	Box2D.Collision.b2Collision.CollidePolygonAndCircle = function(manifold, polygon, xf1, circle, xf2) {
		manifold.m_pointCount = 0;
		var dX = xf2.position.x + (xf2.R.col1.x * circle.m_p.x + xf2.R.col2.x * circle.m_p.y) - xf1.position.x;
		var dY = xf2.position.y + (xf2.R.col1.y * circle.m_p.x + xf2.R.col2.y * circle.m_p.y) - xf1.position.y;
		var cLocalX = (dX * xf1.R.col1.x + dY * xf1.R.col1.y);
		var cLocalY = (dX * xf1.R.col2.x + dY * xf1.R.col2.y);
		var normalIndex = 0;
		var separation = (-Number.MAX_VALUE);
		var radius = polygon.m_radius + circle.m_radius;
		for (var i = 0; i < polygon.m_vertexCount; ++i) {
			var s = polygon.m_normals[i].x * (cLocalX - polygon.m_vertices[i].x) + polygon.m_normals[i].y * (cLocalY - polygon.m_vertices[i].y);
			if (s > radius) {
				return;
			}
			if (s > separation) {
				separation = s;
				normalIndex = i;
			}
		}
		var vertIndex2 = normalIndex + 1;
		if (vertIndex2 >= polygon.m_vertexCount) {
			vertIndex2 = 0;
		}
		var v1 = polygon.m_vertices[normalIndex];
		var v2 = polygon.m_vertices[vertIndex2];
		if (separation < Number.MIN_VALUE) {
			manifold.m_pointCount = 1;
			manifold.m_type = Box2D.Collision.b2Manifold.e_faceA;
			manifold.m_localPlaneNormal.SetV(polygon.m_normals[normalIndex]);
			manifold.m_localPoint.x = 0.5 * (v1.x + v2.x);
			manifold.m_localPoint.y = 0.5 * (v1.y + v2.y);
			manifold.m_points[0].m_localPoint.SetV(circle.m_p);
			manifold.m_points[0].m_id.SetKey(0);
		} else {
			var u1 = (cLocalX - v1.x) * (v2.x - v1.x) + (cLocalY - v1.y) * (v2.y - v1.y);
			if (u1 <= 0.0) {
				if ((cLocalX - v1.x) * (cLocalX - v1.x) + (cLocalY - v1.y) * (cLocalY - v1.y) > radius * radius) return;
				manifold.m_pointCount = 1;
				manifold.m_type = Box2D.Collision.b2Manifold.e_faceA;
				manifold.m_localPlaneNormal.x = cLocalX - v1.x;
				manifold.m_localPlaneNormal.y = cLocalY - v1.y;
				manifold.m_localPlaneNormal.Normalize();
				manifold.m_localPoint.SetV(v1);
				manifold.m_points[0].m_localPoint.SetV(circle.m_p);
				manifold.m_points[0].m_id.SetKey(0);
			} else {
				var u2 = (cLocalX - v2.x) * (v1.x - v2.x) + (cLocalY - v2.y) * (v1.y - v2.y);
				if (u2 <= 0) {
					if ((cLocalX - v2.x) * (cLocalX - v2.x) + (cLocalY - v2.y) * (cLocalY - v2.y) > radius * radius) return;
					manifold.m_pointCount = 1;
					manifold.m_type = Box2D.Collision.b2Manifold.e_faceA;
					manifold.m_localPlaneNormal.x = cLocalX - v2.x;
					manifold.m_localPlaneNormal.y = cLocalY - v2.y;
					manifold.m_localPlaneNormal.Normalize();
					manifold.m_localPoint.SetV(v2);
					manifold.m_points[0].m_localPoint.SetV(circle.m_p);
					manifold.m_points[0].m_id.SetKey(0);
				} else {
					var faceCenterX = 0.5 * (v1.x + v2.x);
					var faceCenterY = 0.5 * (v1.y + v2.y);
					separation = (cLocalX - faceCenterX) * polygon.m_normals[normalIndex].x + (cLocalY - faceCenterY) * polygon.m_normals[normalIndex].y;
					if (separation > radius) return;
					manifold.m_pointCount = 1;
					manifold.m_type = Box2D.Collision.b2Manifold.e_faceA;
					manifold.m_localPlaneNormal.x = polygon.m_normals[normalIndex].x;
					manifold.m_localPlaneNormal.y = polygon.m_normals[normalIndex].y;
					manifold.m_localPlaneNormal.Normalize();
					manifold.m_localPoint.Set(faceCenterX, faceCenterY);
					manifold.m_points[0].m_localPoint.SetV(circle.m_p);
					manifold.m_points[0].m_id.SetKey(0);
				}
			}
		}
	};
	Box2D.Collision.b2Collision.TestOverlap = function(a, b) {
		if (b.lowerBound_.x - a.upperBound_.x > 0) {
			return false;
		}
		if (b.lowerBound_.y - a.upperBound_.y > 0) {
			return false;
		}
		if (a.lowerBound_.x - b.upperBound_.x > 0) {
			return false;
		}
		if (a.lowerBound_.y - b.upperBound_.y > 0) {
			return false;
		}
		return true;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2ContactPoint = function() {
		this.position = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.velocity = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.normal = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.id = new Box2D.Collision.b2ContactID();
	};
	/**
	 * @param {!Box2D.Collision.b2DistanceOutput} output
	 * @param {!Box2D.Collision.b2SimplexCache} cache
	 * @param {!Box2D.Collision.b2DistanceInput} input
	 */
	Box2D.Collision.b2Distance.Distance = function(output, cache, input) {
		var s_simplex = new Box2D.Collision.b2Simplex();
		s_simplex.ReadCache(cache, input.proxyA, input.transformA, input.proxyB, input.transformB);
		if (s_simplex.m_count < 1 || s_simplex.m_count > 3) {
;
		}
		var iter = 0;
		while (iter < 20) {
			var save = [];
			for (var i = 0; i < s_simplex.m_count; i++) {
				save[i] = {};
				save[i].indexA = s_simplex.m_vertices[i].indexA;
				save[i].indexB = s_simplex.m_vertices[i].indexB;
			}
			if (s_simplex.m_count == 2) {
				s_simplex.Solve2();
			} else if (s_simplex.m_count == 3) {
				s_simplex.Solve3();
			}
			if (s_simplex.m_count == 3) {
				break;
			}
			var d = s_simplex.GetSearchDirection();
			if (d.LengthSquared() < Box2D.Common.b2Settings.MIN_VALUE_SQUARED) {
				break;
			}
			var negD = d.GetNegative();
			s_simplex.m_vertices[s_simplex.m_count].indexA = input.proxyA.GetSupport(Box2D.Common.Math.b2Math.MulTMV(input.transformA.R, negD));
			s_simplex.m_vertices[s_simplex.m_count].wA = Box2D.Common.Math.b2Math.MulX(input.transformA, input.proxyA.GetVertex(s_simplex.m_vertices[s_simplex.m_count].indexA));
			s_simplex.m_vertices[s_simplex.m_count].indexB = input.proxyB.GetSupport(Box2D.Common.Math.b2Math.MulTMV(input.transformB.R, d));
			s_simplex.m_vertices[s_simplex.m_count].wB = Box2D.Common.Math.b2Math.MulX(input.transformB, input.proxyB.GetVertex(s_simplex.m_vertices[s_simplex.m_count].indexB));
			s_simplex.m_vertices[s_simplex.m_count].w = Box2D.Common.Math.b2Math.SubtractVV(s_simplex.m_vertices[s_simplex.m_count].wB, s_simplex.m_vertices[s_simplex.m_count].wA);
			Box2D.Common.Math.b2Vec2.Free(d);
			Box2D.Common.Math.b2Vec2.Free(negD);
			iter++;
			var duplicate = false;
			for (var i = 0; i < save.length; i++) {
				if (s_simplex.m_vertices[s_simplex.m_count].indexA == save[i].indexA && s_simplex.m_vertices[s_simplex.m_count].indexB == save[i].indexB) {
					duplicate = true;
					break;
				}
			}
			if (duplicate) {
				break;
			}
			s_simplex.m_count++;
		}
		s_simplex.GetWitnessPoints(output.pointA, output.pointB);
		output.distance = Box2D.Common.Math.b2Math.SubtractVV(output.pointA, output.pointB).Length();
		s_simplex.WriteCache(cache);
		if (input.useRadii) {
			var rA = input.proxyA.m_radius;
			var rB = input.proxyB.m_radius;
			if (output.distance > rA + rB && output.distance > Number.MIN_VALUE) {
				output.distance -= rA + rB;
				var normal = Box2D.Common.Math.b2Math.SubtractVV(output.pointB, output.pointA);
				normal.Normalize();
				output.pointA.x += rA * normal.x;
				output.pointA.y += rA * normal.y;
				output.pointB.x -= rB * normal.x;
				output.pointB.y -= rB * normal.y;
				Box2D.Common.Math.b2Vec2.Free(normal);
			} else {
				var p = Box2D.Common.Math.b2Vec2.Get(0, 0);
				p.x = 0.5 * (output.pointA.x + output.pointB.x);
				p.y = 0.5 * (output.pointA.y + output.pointB.y);
				output.pointA.x = output.pointB.x = p.x;
				output.pointA.y = output.pointB.y = p.y;
				output.distance = 0.0;
				Box2D.Common.Math.b2Vec2.Free(p);
			}
		}
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2DistanceInput = function () {};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2DistanceOutput = function () {
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.pointA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.pointB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		/** @type {number} */
		this.distance = 0;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2DistanceProxy = function() {};
	Box2D.Collision.b2DistanceProxy.prototype.Set = function (shape) {
		shape.SetDistanceProxy(this);
	};
	Box2D.Collision.b2DistanceProxy.prototype.GetSupport = function (d) {
		var bestIndex = 0;
		var bestValue = this.m_vertices[0].x * d.x + this.m_vertices[0].y * d.y;
		for (var i = 1; i < this.m_count; i++) {
			var value = this.m_vertices[i].x * d.x + this.m_vertices[i].y * d.y;
			if (value > bestValue) {
				bestIndex = i;
				bestValue = value;
			}
		}
		return bestIndex;
	};
	Box2D.Collision.b2DistanceProxy.prototype.GetSupportVertex = function (d) {
		return this.m_vertices[this.GetSupport(d)];
	};
	Box2D.Collision.b2DistanceProxy.prototype.GetVertexCount = function () {
		return this.m_count;
	};
	Box2D.Collision.b2DistanceProxy.prototype.GetVertex = function (index) {
		if (index === undefined) index = 0;
;
		return this.m_vertices[index];
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2DynamicTree = function() {
		/** @type {Box2D.Collision.b2DynamicTreeNode} */
		this.m_root = null;
		/** @type {number} */
		this.m_path = 0;
		/** @type {number} */
		this.m_insertionCount = 0;
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @param {Box2D.Dynamics.b2Fixture} fixture
	 * @return {!Box2D.Collision.b2DynamicTreeNode}
	 */
	Box2D.Collision.b2DynamicTree.prototype.CreateProxy = function(aabb, fixture) {
		var node = Box2D.Collision.b2DynamicTreeNode.Get(fixture);
		var extendX = Box2D.Common.b2Settings.b2_aabbExtension;
		var extendY = Box2D.Common.b2Settings.b2_aabbExtension;
		node.aabb.lowerBound_.x = aabb.lowerBound_.x - extendX;
		node.aabb.lowerBound_.y = aabb.lowerBound_.y - extendY;
		node.aabb.upperBound_.x = aabb.upperBound_.x + extendX;
		node.aabb.upperBound_.y = aabb.upperBound_.y + extendY;
		this.InsertLeaf(node);
		return node;
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} proxy
	 */
	Box2D.Collision.b2DynamicTree.prototype.DestroyProxy = function(proxy) {
		this.RemoveLeaf(proxy);
		proxy.Destroy();
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} proxy
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @param {!Box2D.Common.Math.b2Vec2} displacement
	 * @return {boolean}
	 */
	Box2D.Collision.b2DynamicTree.prototype.MoveProxy = function(proxy, aabb, displacement) {
;
		if (proxy.aabb.Contains(aabb)) {
			return false;
		}
		this.RemoveLeaf(proxy);
		var extendX = Box2D.Common.b2Settings.b2_aabbExtension + Box2D.Common.b2Settings.b2_aabbMultiplier * Math.abs(displacement.x);
		var extendY = Box2D.Common.b2Settings.b2_aabbExtension + Box2D.Common.b2Settings.b2_aabbMultiplier * Math.abs(displacement.y);
		proxy.aabb.lowerBound_.x = aabb.lowerBound_.x - extendX;
		proxy.aabb.lowerBound_.y = aabb.lowerBound_.y - extendY;
		proxy.aabb.upperBound_.x = aabb.upperBound_.x + extendX;
		proxy.aabb.upperBound_.y = aabb.upperBound_.y + extendY;
		this.InsertLeaf(proxy);
		return true;
	};
	/**
	 * @param {number} iterations
	 */
	Box2D.Collision.b2DynamicTree.prototype.Rebalance = function(iterations) {
		if (this.m_root !== null) {
			for (var i = 0; i < iterations; i++) {
				var node = this.m_root;
				var bit = 0;
				while (!node.IsLeaf()) {
					node = (this.m_path >> bit) & 1 ? node.child2 : node.child1;
					bit = (bit + 1) & 31;
				}
				this.m_path++;
				this.RemoveLeaf(node);
				this.InsertLeaf(node);
			}
		}
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} proxy
	 * @return {!Box2D.Collision.b2AABB}
	 */
	Box2D.Collision.b2DynamicTree.prototype.GetFatAABB = function(proxy) {
		return proxy.aabb;
	};
	/**
	 * @param {function(!Box2D.Dynamics.b2Fixture): boolean} callback
	 * @param {!Box2D.Collision.b2AABB} aabb
	 */
	Box2D.Collision.b2DynamicTree.prototype.Query = function(callback, aabb) {
		if (this.m_root !== null) {
			var stack = [];
			stack.push(this.m_root);
			while (stack.length > 0) {
				var node = stack.pop();
				if (node.aabb.TestOverlap(aabb)) {
					if (node.IsLeaf()) {
						if (!callback(node.fixture)) {
							return;
						}
					} else {
						stack.push(node.child1);
						stack.push(node.child2);
					}
				}
			}
		}
	};
	/**
	 * @param {function(!Box2D.Collision.b2RayCastInput, !Box2D.Dynamics.b2Fixture): number} callback
	 * @param {!Box2D.Collision.b2RayCastInput} input
	 */
	Box2D.Collision.b2DynamicTree.prototype.RayCast = function(callback, input) {
		if (this.m_root === null) {
			return;
		}
		var r = Box2D.Common.Math.b2Math.SubtractVV(input.p1, input.p2);
		r.Normalize();
		var v = Box2D.Common.Math.b2Math.CrossFV(1.0, r);
		var abs_v = Box2D.Common.Math.b2Math.AbsV(v);
		var maxFraction = input.maxFraction;
		var tX = input.p1.x + maxFraction * (input.p2.x - input.p1.x);
		var tY = input.p1.y + maxFraction * (input.p2.y - input.p1.y);
		var segmentAABB = Box2D.Collision.b2AABB.Get();
		segmentAABB.lowerBound_.x = Math.min(input.p1.x, tX);
		segmentAABB.lowerBound_.y = Math.min(input.p1.y, tY);
		segmentAABB.upperBound_.x = Math.max(input.p1.x, tX);
		segmentAABB.upperBound_.y = Math.max(input.p1.y, tY);
		var stack = [];
		stack.push(this.m_root);
		while (stack.length > 0) {
			var node = stack.pop();
			if (!node.aabb.TestOverlap(segmentAABB)) {
				continue;
			}
			var c = node.aabb.GetCenter();
			var h = node.aabb.GetExtents();
			var separation = Math.abs(v.x * (input.p1.x - c.x) + v.y * (input.p1.y - c.y)) - abs_v.x * h.x - abs_v.y * h.y;
			if (separation > 0.0) {
				continue;
			}
			if (node.IsLeaf()) {
				var subInput = new Box2D.Collision.b2RayCastInput(input.p1, input.p2, input.maxFraction);
				maxFraction = callback(input, node.fixture);
				if (maxFraction == 0.0) {
					break;
				}
				if (maxFraction > 0.0) {
					tX = input.p1.x + maxFraction * (input.p2.x - input.p1.x);
					tY = input.p1.y + maxFraction * (input.p2.y - input.p1.y);
					segmentAABB.lowerBound_.x = Math.min(input.p1.x, tX);
					segmentAABB.lowerBound_.y = Math.min(input.p1.y, tY);
					segmentAABB.upperBound_.x = Math.max(input.p1.x, tX);
					segmentAABB.upperBound_.y = Math.max(input.p1.y, tY);
				}
			} else {
				stack.push(node.child1);
				stack.push(node.child2);
			}
		}
		Box2D.Collision.b2AABB.Free(segmentAABB);
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} leaf
	 */
	Box2D.Collision.b2DynamicTree.prototype.InsertLeaf = function(leaf) {
		this.m_insertionCount++;
		if (this.m_root === null) {
			this.m_root = leaf;
			this.m_root.parent = null;
			return;
		}
		var sibling = this.GetBestSibling(leaf);
		var parent = sibling.parent;
		var node2 = Box2D.Collision.b2DynamicTreeNode.Get();
		node2.parent = parent;
		node2.aabb.Combine(leaf.aabb, sibling.aabb);
		if (parent) {
			if (sibling.parent.child1 == sibling) {
				parent.child1 = node2;
			} else {
				parent.child2 = node2;
			}
			node2.child1 = sibling;
			node2.child2 = leaf;
			sibling.parent = node2;
			leaf.parent = node2;
			while (parent) {
				if (parent.aabb.Contains(node2.aabb)) {
					break;
				}
				parent.aabb.Combine(parent.child1.aabb, parent.child2.aabb);
				node2 = parent;
				parent = parent.parent;
			}
		} else {
			node2.child1 = sibling;
			node2.child2 = leaf;
			sibling.parent = node2;
			leaf.parent = node2;
			this.m_root = node2;
		}
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} leaf
	 * @return {!Box2D.Collision.b2DynamicTreeNode}
	 */
	Box2D.Collision.b2DynamicTree.prototype.GetBestSibling = function(leaf) {
		var center = leaf.aabb.GetCenter();
		var sibling = this.m_root;
		while(!sibling.IsLeaf()) {
			var child1 = sibling.child1;
			var child2 = sibling.child2;
			var norm1 = Math.abs((child1.aabb.lowerBound_.x + child1.aabb.upperBound_.x) / 2 - center.x) + Math.abs((child1.aabb.lowerBound_.y + child1.aabb.upperBound_.y) / 2 - center.y);
			var norm2 = Math.abs((child2.aabb.lowerBound_.x + child2.aabb.upperBound_.x) / 2 - center.x) + Math.abs((child2.aabb.lowerBound_.y + child2.aabb.upperBound_.y) / 2 - center.y);
			if (norm1 < norm2) {
				sibling = child1;
			} else {
				sibling = child2;
			}
		}
		Box2D.Common.Math.b2Vec2.Free(center);
		return sibling;
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} leaf
	 */
	Box2D.Collision.b2DynamicTree.prototype.RemoveLeaf = function(leaf) {
		if (leaf == this.m_root) {
			this.m_root = null;
			return;
		}
		var node2 = leaf.parent;
		var node1 = node2.parent;
		var sibling;
		if (node2.child1 == leaf) {
			sibling = node2.child2;
		} else {
			sibling = node2.child1;
		}
		if (node1) {
			if (node1.child1 == node2) {
				node1.child1 = sibling;
			} else {
				node1.child2 = sibling;
			}
			sibling.parent = node1;
			while (node1) {
				var oldAABB = node1.aabb;
				node1.aabb.Combine(node1.child1.aabb, node1.child2.aabb);
				if (oldAABB.Contains(node1.aabb)) {
					break;
				}
				node1 = node1.parent;
			}
		} else {
			this.m_root = sibling;
			sibling.parent = null;
		}
		node2.Destroy();
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase = function() {
		/**
		 * @private
		 * @type {!Box2D.Collision.b2DynamicTree}
		 */
		this.m_tree = new Box2D.Collision.b2DynamicTree();
		/**
		 * @private
		 * @type {Array.<!Box2D.Collision.b2DynamicTreeNode>}
		 */
		this.m_moveBuffer = [];
	};
	/**
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @param {Box2D.Dynamics.b2Fixture} fixture
	 * @return {!Box2D.Collision.b2DynamicTreeNode}
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.CreateProxy = function(aabb, fixture) {
		var proxy = this.m_tree.CreateProxy(aabb, fixture);
		this.BufferMove(proxy);
		return proxy;
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} proxy
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.DestroyProxy = function(proxy) {
		this.UnBufferMove(proxy);
		this.m_tree.DestroyProxy(proxy);
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} proxy
	 * @param {!Box2D.Collision.b2AABB} aabb
	 * @param {!Box2D.Common.Math.b2Vec2} displacement
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.MoveProxy = function(proxy, aabb, displacement) {
		var buffer = this.m_tree.MoveProxy(proxy, aabb, displacement);
		if (buffer) {
			this.BufferMove(proxy);
		}
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} proxyA
	 * @param {!Box2D.Collision.b2DynamicTreeNode} proxyB
	 * @return {boolean}
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.TestOverlap = function(proxyA, proxyB) {
		var aabbA = this.m_tree.GetFatAABB(proxyA);
		var aabbB = this.m_tree.GetFatAABB(proxyB);
		return aabbA.TestOverlap(aabbB);
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeNode} proxy
	 * @return {!Box2D.Collision.b2AABB}
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.GetFatAABB = function(proxy) {
		return this.m_tree.GetFatAABB(proxy);
	};
	/**
	 * @return {number}
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.GetProxyCount = function() {
		return this.m_tree.length;
	};
	/**
	 * @param {function(!Box2D.Dynamics.b2Fixture, !Box2D.Dynamics.b2Fixture)} callback
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.UpdatePairs = function(callback) {
		var __this = this;
		var pairs = [];
		while (this.m_moveBuffer.length > 0) {
			var queryProxy = this.m_moveBuffer.pop();
			var QueryCallback = function(fixture) {
				if (fixture != queryProxy.fixture) {
					pairs.push(new Box2D.Collision.b2DynamicTreePair(queryProxy.fixture, fixture));
				}
				return true;
			};
			var fatAABB = this.m_tree.GetFatAABB(queryProxy);
			this.m_tree.Query(QueryCallback, fatAABB);
		}
		var i = 0;
		while(i < pairs.length) {
			var primaryPair = pairs[i];
			callback(primaryPair.fixtureA, primaryPair.fixtureB);
			i++;
			while(i < pairs.length) {
				var pair = pairs[i];
				if (!(pair.fixtureA == primaryPair.fixtureA && pair.fixtureB == primaryPair.fixtureB)
					&& !(pair.fixtureA == primaryPair.fixtureB && pair.fixtureB == primaryPair.fixtureA)) {
					break;
				}
				i++;
			}
		}
	};
	/**
	 * @param {function(!Box2D.Dynamics.b2Fixture): boolean} callback
	 * @param {!Box2D.Collision.b2AABB} aabb
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.Query = function(callback, aabb) {
		this.m_tree.Query(callback, aabb);
	};
	/**
	 * @param {function(!Box2D.Collision.b2RayCastInput, !Box2D.Dynamics.b2Fixture): number} callback
	 * @param {!Box2D.Collision.b2RayCastInput} input
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.RayCast = function(callback, input) {
		this.m_tree.RayCast(callback, input);
	};
	/**
	 * @param {number} iterations
	 */
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.Rebalance = function(iterations) {
		this.m_tree.Rebalance(iterations);
	};
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.BufferMove = function(proxy) {
		this.m_moveBuffer.push(proxy);
	};
	Box2D.Collision.b2DynamicTreeBroadPhase.prototype.UnBufferMove = function(proxy) {
		cr.arrayFindRemove(this.m_moveBuffer, proxy);
	};
	Box2D.Collision.b2DynamicTreeBroadPhase.__implements = {};
	Box2D.Collision.b2DynamicTreeBroadPhase.__implements[Box2D.Collision.IBroadPhase] = true;
	/**
	 * @private
	 * @param {Box2D.Dynamics.b2Fixture=} fixture
	 * @constructor
	 */
	Box2D.Collision.b2DynamicTreeNode = function(fixture) {
		/** @type {!Box2D.Collision.b2AABB} */
		this.aabb = Box2D.Collision.b2AABB.Get();
		/** @type {Box2D.Collision.b2DynamicTreeNode} */
		this.child1 = null;
		/** @type {Box2D.Collision.b2DynamicTreeNode} */
		this.child2 = null;
		/** @type {Box2D.Collision.b2DynamicTreeNode} */
		this.parent = null;
		/** @type {Box2D.Dynamics.b2Fixture} */
		this.fixture = null;
		if (typeof(fixture) != "undefined") {
			this.fixture = fixture;
		}
	};
	/**
	 * @private
	 * @type {Array.<!Box2D.Collision.b2DynamicTreeNode>}
	 */
	Box2D.Collision.b2DynamicTreeNode._freeCache = [];
	/**
	 * @param {Box2D.Dynamics.b2Fixture=} fixture
	 * @return {!Box2D.Collision.b2DynamicTreeNode}
	 */
	Box2D.Collision.b2DynamicTreeNode.Get = function(fixture) {
		if (Box2D.Collision.b2DynamicTreeNode._freeCache.length > 0) {
			var node = Box2D.Collision.b2DynamicTreeNode._freeCache.pop();
			if (typeof(fixture) != "undefined") {
				node.fixture = fixture;
			}
			node.aabb.SetZero();
			return node;
		}
		return new Box2D.Collision.b2DynamicTreeNode(fixture);
	};
	Box2D.Collision.b2DynamicTreeNode.prototype.Destroy = function() {
		this.child1 = null;
		this.child2 = null;
		this.parent = null;
		this.fixture = null;
		Box2D.Collision.b2DynamicTreeNode._freeCache.push(this);
	};
	/**
	 * @return boolean
	 */
	Box2D.Collision.b2DynamicTreeNode.prototype.IsLeaf = function () {
		return this.child1 === null;
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 * @constructor
	 */
	Box2D.Collision.b2DynamicTreePair = function(fixtureA, fixtureB) {
		/** @type {!Box2D.Dynamics.b2Fixture} */
		this.fixtureA = fixtureA;
		/** @type {!Box2D.Dynamics.b2Fixture} */
		this.fixtureB = fixtureB;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2Manifold = function() {
		this.m_pointCount = 0;
		this.m_type = 0;
		this.m_points = [];
		for (var i = 0; i < Box2D.Common.b2Settings.b2_maxManifoldPoints; i++) {
			this.m_points[i] = new Box2D.Collision.b2ManifoldPoint();
		}
		this.m_localPlaneNormal = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localPoint = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	Box2D.Collision.b2Manifold.prototype.Reset = function() {
		for (var i = 0; i < Box2D.Common.b2Settings.b2_maxManifoldPoints; i++) {
			this.m_points[i].Reset();
		}
		this.m_localPlaneNormal.SetZero();
		this.m_localPoint.SetZero();
		this.m_type = 0;
		this.m_pointCount = 0;
	};
	Box2D.Collision.b2Manifold.prototype.Set = function(m) {
		this.m_pointCount = m.m_pointCount;
		for (var i = 0; i < Box2D.Common.b2Settings.b2_maxManifoldPoints; i++) {
			this.m_points[i].Set(m.m_points[i]);
		}
		this.m_localPlaneNormal.SetV(m.m_localPlaneNormal);
		this.m_localPoint.SetV(m.m_localPoint);
		this.m_type = m.m_type;
	};
	Box2D.Collision.b2Manifold.prototype.Copy = function() {
		var copy = new Box2D.Collision.b2Manifold();
		copy.Set(this);
		return copy;
	};
	Box2D.Collision.b2Manifold.e_circles = 0x0001;
	Box2D.Collision.b2Manifold.e_faceA = 0x0002;
	Box2D.Collision.b2Manifold.e_faceB = 0x0004;
	/**
	 * @constructor
	 */
	Box2D.Collision.b2ManifoldPoint = function() {
		this.m_localPoint = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_id = new Box2D.Collision.b2ContactID();
		this.Reset();
	};
	Box2D.Collision.b2ManifoldPoint.prototype.Reset = function() {
		this.m_localPoint.SetZero();
		this.m_normalImpulse = 0.0;
		this.m_tangentImpulse = 0.0;
		this.m_id.SetKey(0);
	};
	Box2D.Collision.b2ManifoldPoint.prototype.Set = function(m) {
		this.m_localPoint.SetV(m.m_localPoint);
		this.m_normalImpulse = m.m_normalImpulse;
		this.m_tangentImpulse = m.m_tangentImpulse;
		this.m_id.Set(m.m_id);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} p1
	 * @param {!Box2D.Common.Math.b2Vec2} p2
	 * @param {number} maxFraction
	 * @constructor
	 */
	Box2D.Collision.b2RayCastInput = function(p1, p2, maxFraction) {
		  this.p1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		  this.p2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		  if (maxFraction === undefined) maxFraction = 1;
		  if (p1) this.p1.SetV(p1);
		  if (p2) this.p2.SetV(p2);
		  this.maxFraction = maxFraction;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2RayCastOutput = function() {
		this.normal = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2Segment = function() {
		this.p1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.p2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	Box2D.Collision.b2Segment.prototype.TestSegment = function(lambda, normal, segment, maxLambda) {
		if (maxLambda === undefined) maxLambda = 0;
		var s = segment.p1;
		var rX = segment.p2.x - s.x;
		var rY = segment.p2.y - s.y;
		var dX = this.p2.x - this.p1.x;
		var dY = this.p2.y - this.p1.y;
		var nX = dY;
		var nY = (-dX);
		var k_slop = 100.0 * Number.MIN_VALUE;
		var denom = (-(rX * nX + rY * nY));
		if (denom > k_slop) {
			var bX = s.x - this.p1.x;
			var bY = s.y - this.p1.y;
			var a = (bX * nX + bY * nY);
			if (0.0 <= a && a <= maxLambda * denom) {
				var mu2 = (-rX * bY) + rY * bX;
				if ((-k_slop * denom) <= mu2 && mu2 <= denom * (1.0 + k_slop)) {
					a /= denom;
					var nLen = Math.sqrt(nX * nX + nY * nY);
					nX /= nLen;
					nY /= nLen;
					lambda[0] = a;
					normal.Set(nX, nY);
					return true;
				}
			}
		}
		return false;
	};
	Box2D.Collision.b2Segment.prototype.Extend = function(aabb) {
		this.ExtendForward(aabb);
		this.ExtendBackward(aabb);
	};
	Box2D.Collision.b2Segment.prototype.ExtendForward = function(aabb) {
		var dX = this.p2.x - this.p1.x;
		var dY = this.p2.y - this.p1.y;
		var lambda = Math.min(dX > 0 ? (aabb.upperBound_.x - this.p1.x) / dX : dX < 0 ? (aabb.lowerBound_.x - this.p1.x) / dX : Number.POSITIVE_INFINITY, dY > 0 ? (aabb.upperBound_.y - this.p1.y) / dY : dY < 0 ? (aabb.lowerBound_.y - this.p1.y) / dY : Number.POSITIVE_INFINITY);
		this.p2.x = this.p1.x + dX * lambda;
		this.p2.y = this.p1.y + dY * lambda;
	};
	Box2D.Collision.b2Segment.prototype.ExtendBackward = function(aabb) {
		var dX = (-this.p2.x) + this.p1.x;
		var dY = (-this.p2.y) + this.p1.y;
		var lambda = Math.min(dX > 0 ? (aabb.upperBound_.x - this.p2.x) / dX : dX < 0 ? (aabb.lowerBound_.x - this.p2.x) / dX : Number.POSITIVE_INFINITY, dY > 0 ? (aabb.upperBound_.y - this.p2.y) / dY : dY < 0 ? (aabb.lowerBound_.y - this.p2.y) / dY : Number.POSITIVE_INFINITY);
		this.p1.x = this.p2.x + dX * lambda;
		this.p1.y = this.p2.y + dY * lambda;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2SeparationFunction = function() {
		this.m_localPoint = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_axis = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	Box2D.Collision.b2SeparationFunction.prototype.Initialize = function(cache, proxyA, transformA, proxyB, transformB) {
		this.m_proxyA = proxyA;
		this.m_proxyB = proxyB;
		var count = cache.count;
;
		var localPointA;
		var localPointA1;
		var localPointA2;
		var localPointB;
		var localPointB1;
		var localPointB2;
		var pointAX = 0;
		var pointAY = 0;
		var pointBX = 0;
		var pointBY = 0;
		var normalX = 0;
		var normalY = 0;
		var tMat;
		var tVec;
		var s = 0;
		var sgn = 0;
		if (count == 1) {
			this.m_type = Box2D.Collision.b2SeparationFunction.e_points;
			localPointA = this.m_proxyA.GetVertex(cache.indexA[0]);
			localPointB = this.m_proxyB.GetVertex(cache.indexB[0]);
			tVec = localPointA;
			tMat = transformA.R;
			pointAX = transformA.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
			pointAY = transformA.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
			tVec = localPointB;
			tMat = transformB.R;
			pointBX = transformB.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
			pointBY = transformB.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
			this.m_axis.x = pointBX - pointAX;
			this.m_axis.y = pointBY - pointAY;
			this.m_axis.Normalize();
		} else if (cache.indexB[0] == cache.indexB[1]) {
			this.m_type = Box2D.Collision.b2SeparationFunction.e_faceA;
			localPointA1 = this.m_proxyA.GetVertex(cache.indexA[0]);
			localPointA2 = this.m_proxyA.GetVertex(cache.indexA[1]);
			localPointB = this.m_proxyB.GetVertex(cache.indexB[0]);
			this.m_localPoint.x = 0.5 * (localPointA1.x + localPointA2.x);
			this.m_localPoint.y = 0.5 * (localPointA1.y + localPointA2.y);
			this.m_axis = Box2D.Common.Math.b2Math.CrossVF(Box2D.Common.Math.b2Math.SubtractVV(localPointA2, localPointA1), 1.0);
			this.m_axis.Normalize();
			tVec = this.m_axis;
			tMat = transformA.R;
			normalX = tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
			normalY = tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
			tVec = this.m_localPoint;
			tMat = transformA.R;
			pointAX = transformA.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
			pointAY = transformA.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
			tVec = localPointB;
			tMat = transformB.R;
			pointBX = transformB.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
			pointBY = transformB.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
			s = (pointBX - pointAX) * normalX + (pointBY - pointAY) * normalY;
			if (s < 0.0) {
				this.m_axis.NegativeSelf();
			}
		} else if (cache.indexA[0] == cache.indexA[0]) {
			this.m_type = Box2D.Collision.b2SeparationFunction.e_faceB;
			localPointB1 = this.m_proxyB.GetVertex(cache.indexB[0]);
			localPointB2 = this.m_proxyB.GetVertex(cache.indexB[1]);
			localPointA = this.m_proxyA.GetVertex(cache.indexA[0]);
			this.m_localPoint.x = 0.5 * (localPointB1.x + localPointB2.x);
			this.m_localPoint.y = 0.5 * (localPointB1.y + localPointB2.y);
			this.m_axis = Box2D.Common.Math.b2Math.CrossVF(Box2D.Common.Math.b2Math.SubtractVV(localPointB2, localPointB1), 1.0);
			this.m_axis.Normalize();
			tVec = this.m_axis;
			tMat = transformB.R;
			normalX = tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
			normalY = tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
			tVec = this.m_localPoint;
			tMat = transformB.R;
			pointBX = transformB.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
			pointBY = transformB.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
			tVec = localPointA;
			tMat = transformA.R;
			pointAX = transformA.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
			pointAY = transformA.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
			s = (pointAX - pointBX) * normalX + (pointAY - pointBY) * normalY;
			if (s < 0.0) {
				this.m_axis.NegativeSelf();
			}
		} else {
			localPointA1 = this.m_proxyA.GetVertex(cache.indexA[0]);
			localPointA2 = this.m_proxyA.GetVertex(cache.indexA[1]);
			localPointB1 = this.m_proxyB.GetVertex(cache.indexB[0]);
			localPointB2 = this.m_proxyB.GetVertex(cache.indexB[1]);
			var dA = Box2D.Common.Math.b2Math.MulMV(transformA.R, Box2D.Common.Math.b2Math.SubtractVV(localPointA2, localPointA1));
			var dB = Box2D.Common.Math.b2Math.MulMV(transformB.R, Box2D.Common.Math.b2Math.SubtractVV(localPointB2, localPointB1));
			var a = dA.x * dA.x + dA.y * dA.y;
			var e = dB.x * dB.x + dB.y * dB.y;
			var r = Box2D.Common.Math.b2Math.SubtractVV(dB, dA);
			var c = dA.x * r.x + dA.y * r.y;
			var f = dB.x * r.x + dB.y * r.y;
			var b = dA.x * dB.x + dA.y * dB.y;
			var denom = a * e - b * b;
			s = 0.0;
			if (denom != 0.0) {
				s = Box2D.Common.Math.b2Math.Clamp((b * f - c * e) / denom, 0.0, 1.0);
			}
			var t = (b * s + f) / e;
			if (t < 0.0) {
				t = 0.0;
				s = Box2D.Common.Math.b2Math.Clamp((b - c) / a, 0.0, 1.0);
			}
			localPointA = Box2D.Common.Math.b2Vec2.Get(0, 0);
			localPointA.x = localPointA1.x + s * (localPointA2.x - localPointA1.x);
			localPointA.y = localPointA1.y + s * (localPointA2.y - localPointA1.y);
			localPointB = Box2D.Common.Math.b2Vec2.Get(0, 0);
			localPointB.x = localPointB1.x + s * (localPointB2.x - localPointB1.x);
			localPointB.y = localPointB1.y + s * (localPointB2.y - localPointB1.y);
			if (s == 0.0 || s == 1.0) {
				this.m_type = Box2D.Collision.b2SeparationFunction.e_faceB;
				this.m_axis = Box2D.Common.Math.b2Math.CrossVF(Box2D.Common.Math.b2Math.SubtractVV(localPointB2, localPointB1), 1.0);
				this.m_axis.Normalize();
				this.m_localPoint = localPointB;
				tVec = this.m_axis;
				tMat = transformB.R;
				normalX = tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
				normalY = tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
				tVec = this.m_localPoint;
				tMat = transformB.R;
				pointBX = transformB.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
				pointBY = transformB.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
				tVec = localPointA;
				tMat = transformA.R;
				pointAX = transformA.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
				pointAY = transformA.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
				sgn = (pointAX - pointBX) * normalX + (pointAY - pointBY) * normalY;
				if (s < 0.0) {
					this.m_axis.NegativeSelf();
				}
			} else {
				this.m_type = Box2D.Collision.b2SeparationFunction.e_faceA;
				this.m_axis = Box2D.Common.Math.b2Math.CrossVF(Box2D.Common.Math.b2Math.SubtractVV(localPointA2, localPointA1), 1.0);
				this.m_localPoint = localPointA;
				tVec = this.m_axis;
				tMat = transformA.R;
				normalX = tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
				normalY = tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
				tVec = this.m_localPoint;
				tMat = transformA.R;
				pointAX = transformA.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
				pointAY = transformA.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
				tVec = localPointB;
				tMat = transformB.R;
				pointBX = transformB.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
				pointBY = transformB.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
				sgn = (pointBX - pointAX) * normalX + (pointBY - pointAY) * normalY;
				if (s < 0.0) {
					this.m_axis.NegativeSelf();
				}
			}
		}
	};
	Box2D.Collision.b2SeparationFunction.prototype.Evaluate = function(transformA, transformB) {
		var axisA;
		var axisB;
		var localPointA;
		var localPointB;
		var pointA;
		var pointB;
		var seperation = 0;
		var normal;
		switch (this.m_type) {
		case Box2D.Collision.b2SeparationFunction.e_points:
			axisA = Box2D.Common.Math.b2Math.MulTMV(transformA.R, this.m_axis);
			axisB = Box2D.Common.Math.b2Math.MulTMV(transformB.R, this.m_axis.GetNegative());
			localPointA = this.m_proxyA.GetSupportVertex(axisA);
			localPointB = this.m_proxyB.GetSupportVertex(axisB);
			pointA = Box2D.Common.Math.b2Math.MulX(transformA, localPointA);
			pointB = Box2D.Common.Math.b2Math.MulX(transformB, localPointB);
			seperation = (pointB.x - pointA.x) * this.m_axis.x + (pointB.y - pointA.y) * this.m_axis.y;
			break;
		case Box2D.Collision.b2SeparationFunction.e_faceA:
			normal = Box2D.Common.Math.b2Math.MulMV(transformA.R, this.m_axis);
			pointA = Box2D.Common.Math.b2Math.MulX(transformA, this.m_localPoint);
			axisB = Box2D.Common.Math.b2Math.MulTMV(transformB.R, normal.GetNegative());
			localPointB = this.m_proxyB.GetSupportVertex(axisB);
			pointB = Box2D.Common.Math.b2Math.MulX(transformB, localPointB);
			seperation = (pointB.x - pointA.x) * normal.x + (pointB.y - pointA.y) * normal.y;
			break;
		case Box2D.Collision.b2SeparationFunction.e_faceB:
			normal = Box2D.Common.Math.b2Math.MulMV(transformB.R, this.m_axis);
			pointB = Box2D.Common.Math.b2Math.MulX(transformB, this.m_localPoint);
			axisA = Box2D.Common.Math.b2Math.MulTMV(transformA.R, normal.GetNegative());
			localPointA = this.m_proxyA.GetSupportVertex(axisA);
			pointA = Box2D.Common.Math.b2Math.MulX(transformA, localPointA);
			seperation = (pointA.x - pointB.x) * normal.x + (pointA.y - pointB.y) * normal.y;
			break;
		default:
;
			break;
		}
		return seperation;
	};
	Box2D.Collision.b2SeparationFunction.e_points = 0x01;
	Box2D.Collision.b2SeparationFunction.e_faceA = 0x02;
	Box2D.Collision.b2SeparationFunction.e_faceB = 0x04;
	/**
	 * @constructor
	 */
	Box2D.Collision.b2Simplex = function() {
		this.m_v1 = new Box2D.Collision.b2SimplexVertex();
		this.m_v2 = new Box2D.Collision.b2SimplexVertex();
		this.m_v3 = new Box2D.Collision.b2SimplexVertex();
		this.m_vertices = [this.m_v1, this.m_v2, this.m_v3];
	};
	Box2D.Collision.b2Simplex.prototype.ReadCache = function(cache, proxyA, transformA, proxyB, transformB) {
;
		var wALocal;
		var wBLocal;
		this.m_count = cache.count;
		var vertices = this.m_vertices;
		for (var i = 0; i < this.m_count; i++) {
			var v = vertices[i];
			v.indexA = cache.indexA[i];
			v.indexB = cache.indexB[i];
			wALocal = proxyA.GetVertex(v.indexA);
			wBLocal = proxyB.GetVertex(v.indexB);
			v.wA = Box2D.Common.Math.b2Math.MulX(transformA, wALocal);
			v.wB = Box2D.Common.Math.b2Math.MulX(transformB, wBLocal);
			v.w = Box2D.Common.Math.b2Math.SubtractVV(v.wB, v.wA);
			v.a = 0;
		}
		if (this.m_count > 1) {
			var metric1 = cache.metric;
			var metric2 = this.GetMetric();
			if (metric2 < .5 * metric1 || 2.0 * metric1 < metric2 || metric2 < Number.MIN_VALUE) {
				this.m_count = 0;
			}
		}
		if (this.m_count == 0) {
			v = vertices[0];
			v.indexA = 0;
			v.indexB = 0;
			wALocal = proxyA.GetVertex(0);
			wBLocal = proxyB.GetVertex(0);
			v.wA = Box2D.Common.Math.b2Math.MulX(transformA, wALocal);
			v.wB = Box2D.Common.Math.b2Math.MulX(transformB, wBLocal);
			v.w = Box2D.Common.Math.b2Math.SubtractVV(v.wB, v.wA);
			this.m_count = 1;
		}
	};
	Box2D.Collision.b2Simplex.prototype.WriteCache = function(cache) {
		cache.metric = this.GetMetric();
		cache.count = this.m_count;
		var vertices = this.m_vertices;
		for (var i = 0; i < this.m_count; i++) {
			cache.indexA[i] = vertices[i].indexA;
			cache.indexB[i] = vertices[i].indexB;
		}
	};
	Box2D.Collision.b2Simplex.prototype.GetSearchDirection = function() {
		if (this.m_count == 1) {
			return this.m_v1.w.GetNegative();
		} else if (this.m_count == 2) {
				var e12 = Box2D.Common.Math.b2Math.SubtractVV(this.m_v2.w, this.m_v1.w);
				var sgn = Box2D.Common.Math.b2Math.CrossVV(e12, this.m_v1.w.GetNegative());
				if (sgn > 0.0) {
					return Box2D.Common.Math.b2Math.CrossFV(1.0, e12);
				}
				else {
					return Box2D.Common.Math.b2Math.CrossVF(e12, 1.0);
				}
		} else {
;
			return Box2D.Common.Math.b2Vec2.Get(0, 0);
		}
	};
	Box2D.Collision.b2Simplex.prototype.GetClosestPoint = function() {
		if (this.m_count == 1) {
			return this.m_v1.w;
		} else if (this.m_count == 2) {
			return Box2D.Common.Math.b2Vec2.Get(this.m_v1.a * this.m_v1.w.x + this.m_v2.a * this.m_v2.w.x, this.m_v1.a * this.m_v1.w.y + this.m_v2.a * this.m_v2.w.y);
		} else {
;
			return Box2D.Common.Math.b2Vec2.Get(0, 0);
		}
	};
	Box2D.Collision.b2Simplex.prototype.GetWitnessPoints = function(pA, pB) {
		if (this.m_count == 1) {
			pA.SetV(this.m_v1.wA);
			pB.SetV(this.m_v1.wB);
		} else if (this.m_count == 2) {
			pA.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x;
			pA.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y;
			pB.x = this.m_v1.a * this.m_v1.wB.x + this.m_v2.a * this.m_v2.wB.x;
			pB.y = this.m_v1.a * this.m_v1.wB.y + this.m_v2.a * this.m_v2.wB.y;
		} else if (this.m_count == 3) {
			pB.x = pA.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x + this.m_v3.a * this.m_v3.wA.x;
			pB.y = pA.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y + this.m_v3.a * this.m_v3.wA.y;
		} else {
;
		}
	};
	Box2D.Collision.b2Simplex.prototype.GetMetric = function() {
		if (this.m_count == 1) {
			return 0.0;
		} else if (this.m_count == 2) {
			return Box2D.Common.Math.b2Math.SubtractVV(this.m_v1.w, this.m_v2.w).Length();
		} else if (this.m_count == 3) {
			return Box2D.Common.Math.b2Math.CrossVV(Box2D.Common.Math.b2Math.SubtractVV(this.m_v2.w, this.m_v1.w), Box2D.Common.Math.b2Math.SubtractVV(this.m_v3.w, this.m_v1.w));
		} else {
;
			return 0.0;
		}
	};
	Box2D.Collision.b2Simplex.prototype.Solve2 = function() {
		var w1 = this.m_v1.w;
		var w2 = this.m_v2.w;
		var e12 = Box2D.Common.Math.b2Math.SubtractVV(w2, w1);
		var d12_2 = (-(w1.x * e12.x + w1.y * e12.y));
		if (d12_2 <= 0.0) {
			this.m_v1.a = 1.0;
			this.m_count = 1;
			return;
		}
		var d12_1 = (w2.x * e12.x + w2.y * e12.y);
		if (d12_1 <= 0.0) {
			this.m_v2.a = 1.0;
			this.m_count = 1;
			this.m_v1.Set(this.m_v2);
			return;
		}
		var inv_d12 = 1.0 / (d12_1 + d12_2);
		this.m_v1.a = d12_1 * inv_d12;
		this.m_v2.a = d12_2 * inv_d12;
		this.m_count = 2;
	};
	Box2D.Collision.b2Simplex.prototype.Solve3 = function() {
		var w1 = this.m_v1.w;
		var w2 = this.m_v2.w;
		var w3 = this.m_v3.w;
		var e12 = Box2D.Common.Math.b2Math.SubtractVV(w2, w1);
		var w1e12 = Box2D.Common.Math.b2Math.Dot(w1, e12);
		var w2e12 = Box2D.Common.Math.b2Math.Dot(w2, e12);
		var d12_1 = w2e12;
		var d12_2 = (-w1e12);
		var e13 = Box2D.Common.Math.b2Math.SubtractVV(w3, w1);
		var w1e13 = Box2D.Common.Math.b2Math.Dot(w1, e13);
		var w3e13 = Box2D.Common.Math.b2Math.Dot(w3, e13);
		var d13_1 = w3e13;
		var d13_2 = (-w1e13);
		var e23 = Box2D.Common.Math.b2Math.SubtractVV(w3, w2);
		var w2e23 = Box2D.Common.Math.b2Math.Dot(w2, e23);
		var w3e23 = Box2D.Common.Math.b2Math.Dot(w3, e23);
		var d23_1 = w3e23;
		var d23_2 = (-w2e23);
		var n123 = Box2D.Common.Math.b2Math.CrossVV(e12, e13);
		var d123_1 = n123 * Box2D.Common.Math.b2Math.CrossVV(w2, w3);
		var d123_2 = n123 * Box2D.Common.Math.b2Math.CrossVV(w3, w1);
		var d123_3 = n123 * Box2D.Common.Math.b2Math.CrossVV(w1, w2);
		if (d12_2 <= 0.0 && d13_2 <= 0.0) {
			this.m_v1.a = 1.0;
			this.m_count = 1;
			return;
		}
		if (d12_1 > 0.0 && d12_2 > 0.0 && d123_3 <= 0.0) {
			var inv_d12 = 1.0 / (d12_1 + d12_2);
			this.m_v1.a = d12_1 * inv_d12;
			this.m_v2.a = d12_2 * inv_d12;
			this.m_count = 2;
			return;
		}
		if (d13_1 > 0.0 && d13_2 > 0.0 && d123_2 <= 0.0) {
			var inv_d13 = 1.0 / (d13_1 + d13_2);
			this.m_v1.a = d13_1 * inv_d13;
			this.m_v3.a = d13_2 * inv_d13;
			this.m_count = 2;
			this.m_v2.Set(this.m_v3);
			return;
		}
		if (d12_1 <= 0.0 && d23_2 <= 0.0) {
			this.m_v2.a = 1.0;
			this.m_count = 1;
			this.m_v1.Set(this.m_v2);
			return;
		}
		if (d13_1 <= 0.0 && d23_1 <= 0.0) {
			this.m_v3.a = 1.0;
			this.m_count = 1;
			this.m_v1.Set(this.m_v3);
			return;
		}
		if (d23_1 > 0.0 && d23_2 > 0.0 && d123_1 <= 0.0) {
			var inv_d23 = 1.0 / (d23_1 + d23_2);
			this.m_v2.a = d23_1 * inv_d23;
			this.m_v3.a = d23_2 * inv_d23;
			this.m_count = 2;
			this.m_v1.Set(this.m_v3);
			return;
		}
		var inv_d123 = 1.0 / (d123_1 + d123_2 + d123_3);
		this.m_v1.a = d123_1 * inv_d123;
		this.m_v2.a = d123_2 * inv_d123;
		this.m_v3.a = d123_3 * inv_d123;
		this.m_count = 3;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2SimplexCache = function() {
		this.indexA = [0, 0, 0];
		this.indexB = [0, 0, 0];
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2SimplexVertex = function() {};
	Box2D.Collision.b2SimplexVertex.prototype.Set = function(other) {
		this.wA.SetV(other.wA);
		this.wB.SetV(other.wB);
		this.w.SetV(other.w);
		this.a = other.a;
		this.indexA = other.indexA;
		this.indexB = other.indexB;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2TOIInput = function() {
		this.proxyA = new Box2D.Collision.b2DistanceProxy();
		this.proxyB = new Box2D.Collision.b2DistanceProxy();
		this.sweepA = new Box2D.Common.Math.b2Sweep();
		this.sweepB = new Box2D.Common.Math.b2Sweep();
	};
	Box2D.Collision.b2TimeOfImpact = {};
	Box2D.Collision.b2TimeOfImpact.TimeOfImpact = function(input) {
		Box2D.Collision.b2TimeOfImpact.b2_toiCalls++;
		var proxyA = input.proxyA;
		var proxyB = input.proxyB;
		var sweepA = input.sweepA;
		var sweepB = input.sweepB;
;
;
		var radius = proxyA.m_radius + proxyB.m_radius;
		var tolerance = input.tolerance;
		var alpha = 0.0;
		var k_maxIterations = 1000;
		var iter = 0;
		var target = 0.0;
		Box2D.Collision.b2TimeOfImpact.s_cache.count = 0;
		Box2D.Collision.b2TimeOfImpact.s_distanceInput.useRadii = false;
		for (;;) {
			sweepA.GetTransform(Box2D.Collision.b2TimeOfImpact.s_xfA, alpha);
			sweepB.GetTransform(Box2D.Collision.b2TimeOfImpact.s_xfB, alpha);
			Box2D.Collision.b2TimeOfImpact.s_distanceInput.proxyA = proxyA;
			Box2D.Collision.b2TimeOfImpact.s_distanceInput.proxyB = proxyB;
			Box2D.Collision.b2TimeOfImpact.s_distanceInput.transformA = Box2D.Collision.b2TimeOfImpact.s_xfA;
			Box2D.Collision.b2TimeOfImpact.s_distanceInput.transformB = Box2D.Collision.b2TimeOfImpact.s_xfB;
			Box2D.Collision.b2Distance.Distance(Box2D.Collision.b2TimeOfImpact.s_distanceOutput, Box2D.Collision.b2TimeOfImpact.s_cache, Box2D.Collision.b2TimeOfImpact.s_distanceInput);
			if (Box2D.Collision.b2TimeOfImpact.s_distanceOutput.distance <= 0.0) {
				alpha = 1.0;
				break;
			}
			Box2D.Collision.b2TimeOfImpact.s_fcn.Initialize(Box2D.Collision.b2TimeOfImpact.s_cache, proxyA, Box2D.Collision.b2TimeOfImpact.s_xfA, proxyB, Box2D.Collision.b2TimeOfImpact.s_xfB);
			var separation = Box2D.Collision.b2TimeOfImpact.s_fcn.Evaluate(Box2D.Collision.b2TimeOfImpact.s_xfA, Box2D.Collision.b2TimeOfImpact.s_xfB);
			if (separation <= 0.0) {
				alpha = 1.0;
				break;
			}
			if (iter == 0) {
				if (separation > radius) {
					target = Math.max(radius - tolerance, 0.75 * radius);
				} else {
					target = Math.max(separation - tolerance, 0.02 * radius);
				}
			}
			if (separation - target < 0.5 * tolerance) {
				if (iter == 0) {
					alpha = 1.0;
					break;
				}
				break;
			}
			var newAlpha = alpha; {
				var x1 = alpha;
				var x2 = 1.0;
				var f1 = separation;
				sweepA.GetTransform(Box2D.Collision.b2TimeOfImpact.s_xfA, x2);
				sweepB.GetTransform(Box2D.Collision.b2TimeOfImpact.s_xfB, x2);
				var f2 = Box2D.Collision.b2TimeOfImpact.s_fcn.Evaluate(Box2D.Collision.b2TimeOfImpact.s_xfA, Box2D.Collision.b2TimeOfImpact.s_xfB);
				if (f2 >= target) {
					alpha = 1.0;
					break;
				}
				var rootIterCount = 0;
				for (;;) {
					var x = 0;
					if (rootIterCount & 1) {
						x = x1 + (target - f1) * (x2 - x1) / (f2 - f1);
					} else {
						x = 0.5 * (x1 + x2);
					}
					sweepA.GetTransform(Box2D.Collision.b2TimeOfImpact.s_xfA, x);
					sweepB.GetTransform(Box2D.Collision.b2TimeOfImpact.s_xfB, x);
					var f = Box2D.Collision.b2TimeOfImpact.s_fcn.Evaluate(Box2D.Collision.b2TimeOfImpact.s_xfA, Box2D.Collision.b2TimeOfImpact.s_xfB);
					if (Math.abs(f - target) < 0.025 * tolerance) {
						newAlpha = x;
						break;
					}
					if (f > target) {
						x1 = x;
						f1 = f;
					} else {
						x2 = x;
						f2 = f;
					}
					rootIterCount++;
					Box2D.Collision.b2TimeOfImpact.b2_toiRootIters++;
					if (rootIterCount == 50) {
						break;
					}
				}
				Box2D.Collision.b2TimeOfImpact.b2_toiMaxRootIters = Math.max(Box2D.Collision.b2TimeOfImpact.b2_toiMaxRootIters, rootIterCount);
			}
			if (newAlpha < (1.0 + 100.0 * Number.MIN_VALUE) * alpha) {
				break;
			}
			alpha = newAlpha;
			iter++;
			Box2D.Collision.b2TimeOfImpact.b2_toiIters++;
			if (iter == k_maxIterations) {
				break;
			}
		}
		Box2D.Collision.b2TimeOfImpact.b2_toiMaxIters = Math.max(Box2D.Collision.b2TimeOfImpact.b2_toiMaxIters, iter);
		return alpha;
	};
	/**
	 * @constructor
	 */
	Box2D.Collision.b2WorldManifold = function() {
		/** @type  {!Box2D.Common.Math.b2Vec2} */
		this.m_normal = Box2D.Common.Math.b2Vec2.Get(0, 0);
		/** @type {Array.<!Box2D.Common.Math.b2Vec2>} */
		this.m_points = [];
		/** @type {number} */
		this.m_pointCount = 0;
		for (var i = 0; i < Box2D.Common.b2Settings.b2_maxManifoldPoints; i++) {
			this.m_points[i] = Box2D.Common.Math.b2Vec2.Get(0, 0);
		}
	};
	/**
	 * @param {!Box2D.Collision.b2Manifold} manifold
	 * @param {!Box2D.Common.Math.b2Transform} xfA
	 * @param {number} radiusA
	 * @param {!Box2D.Common.Math.b2Transform} xfB
	 * @param {number} radiusB
	 */
	Box2D.Collision.b2WorldManifold.prototype.Initialize = function(manifold, xfA, radiusA, xfB, radiusB) {
		if (manifold.m_pointCount == 0) {
			return;
		}
		var i = 0;
		var tVec;
		var tMat;
		var normalX = 0;
		var normalY = 0;
		var planePointX = 0;
		var planePointY = 0;
		var clipPointX = 0;
		var clipPointY = 0;
		switch (manifold.m_type) {
			case Box2D.Collision.b2Manifold.e_circles:
				tMat = xfA.R;
				tVec = manifold.m_localPoint;
				var pointAX = xfA.position.x + tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
				var pointAY = xfA.position.y + tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
				tMat = xfB.R;
				tVec = manifold.m_points[0].m_localPoint;
				var pointBX = xfB.position.x + tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
				var pointBY = xfB.position.y + tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
				var dX = pointBX - pointAX;
				var dY = pointBY - pointAY;
				var d2 = dX * dX + dY * dY;
				if (d2 > Box2D.Common.b2Settings.MIN_VALUE_SQUARED) {
					var d = Math.sqrt(d2);
					this.m_normal.x = dX / d;
					this.m_normal.y = dY / d;
				} else {
					this.m_normal.x = 1;
					this.m_normal.y = 0;
				}
				var cAX = pointAX + radiusA * this.m_normal.x;
				var cAY = pointAY + radiusA * this.m_normal.y;
				var cBX = pointBX - radiusB * this.m_normal.x;
				var cBY = pointBY - radiusB * this.m_normal.y;
				this.m_points[0].x = 0.5 * (cAX + cBX);
				this.m_points[0].y = 0.5 * (cAY + cBY);
				break;
			case Box2D.Collision.b2Manifold.e_faceA:
				tMat = xfA.R;
				tVec = manifold.m_localPlaneNormal;
				normalX = tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
				normalY = tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
				tMat = xfA.R;
				tVec = manifold.m_localPoint;
				planePointX = xfA.position.x + tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
				planePointY = xfA.position.y + tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
				this.m_normal.x = normalX;
				this.m_normal.y = normalY;
				for (i = 0; i < manifold.m_pointCount; i++) {
					tMat = xfB.R;
					tVec = manifold.m_points[i].m_localPoint;
					clipPointX = xfB.position.x + tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
					clipPointY = xfB.position.y + tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
					this.m_points[i].x = clipPointX + 0.5 * (radiusA - (clipPointX - planePointX) * normalX - (clipPointY - planePointY) * normalY - radiusB) * normalX;
					this.m_points[i].y = clipPointY + 0.5 * (radiusA - (clipPointX - planePointX) * normalX - (clipPointY - planePointY) * normalY - radiusB) * normalY;
				}
				break;
			case Box2D.Collision.b2Manifold.e_faceB:
				tMat = xfB.R;
				tVec = manifold.m_localPlaneNormal;
				normalX = tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
				normalY = tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
				tMat = xfB.R;
				tVec = manifold.m_localPoint;
				planePointX = xfB.position.x + tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
				planePointY = xfB.position.y + tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
				this.m_normal.x = (-normalX);
				this.m_normal.y = (-normalY);
				for (i = 0; i < manifold.m_pointCount; i++) {
					tMat = xfA.R;
					tVec = manifold.m_points[i].m_localPoint;
					clipPointX = xfA.position.x + tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
					clipPointY = xfA.position.y + tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
					this.m_points[i].x = clipPointX + 0.5 * (radiusB - (clipPointX - planePointX) * normalX - (clipPointY - planePointY) * normalY - radiusA) * normalX;
					this.m_points[i].y = clipPointY + 0.5 * (radiusB - (clipPointX - planePointX) * normalX - (clipPointY - planePointY) * normalY - radiusA) * normalY;
				}
				break;
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2BodyDef} bd
	 * @param {!Box2D.Dynamics.b2World} world
	 * @constructor
	 */
	Box2D.Dynamics.b2Body = function(bd, world) {
		/**
		 * @const
		 * @private
		 * @type {string}
		 */
		this.ID = "Body" + Box2D.Dynamics.b2Body.NEXT_ID++;
		/**
		 * @private
		 * @type {!Box2D.Common.Math.b2Transform}
		 */
		this.m_xf = new Box2D.Common.Math.b2Transform();
		this.m_xf.position.SetV(bd.position);
		this.m_xf.R.Set(bd.angle);
		/**
		 * @private
		 * @type {!Box2D.Common.Math.b2Sweep}
		 */
		this.m_sweep = new Box2D.Common.Math.b2Sweep();
		this.m_sweep.localCenter.SetZero();
		this.m_sweep.t0 = 1.0;
		this.m_sweep.a0 = this.m_sweep.a = bd.angle;
		this.m_sweep.c.x = (this.m_xf.R.col1.x * this.m_sweep.localCenter.x + this.m_xf.R.col2.x * this.m_sweep.localCenter.y);
		this.m_sweep.c.y = (this.m_xf.R.col1.y * this.m_sweep.localCenter.x + this.m_xf.R.col2.y * this.m_sweep.localCenter.y);
		this.m_sweep.c.x += this.m_xf.position.x;
		this.m_sweep.c.y += this.m_xf.position.y;
		this.m_sweep.c0.SetV(this.m_sweep.c);
		/**
		  * @private
		  * @type {!Box2D.Common.Math.b2Vec2}
		  */
		this.m_linearVelocity = bd.linearVelocity.Copy();
		/**
		  * @private
		  * @type {!Box2D.Common.Math.b2Vec2}
		  */
		this.m_force = Box2D.Common.Math.b2Vec2.Get(0, 0);
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_bullet = bd.bullet;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_fixedRotation = bd.fixedRotation;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_allowSleep = bd.allowSleep;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_awake = bd.awake;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_active = bd.active;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2World}
		 */
		this.m_world = world;
		/**
		 * @private
		 * @type {Box2D.Dynamics.Joints.b2Joint}
		 */
		this.m_jointList = null;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Contacts.b2ContactList}
		 */
		 this.contactList = new Box2D.Dynamics.Contacts.b2ContactList();
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Controllers.b2ControllerList}
		 */
		this.controllerList = new Box2D.Dynamics.Controllers.b2ControllerList();
		/**
		 * @private
		 * @type {number}
		 */
		this.m_controllerCount = 0;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_angularVelocity = bd.angularVelocity;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_linearDamping = bd.linearDamping;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_angularDamping = bd.angularDamping;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_torque = 0;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_sleepTime = 0;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_type = bd.type;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_mass = this.m_type == Box2D.Dynamics.b2BodyDef.b2_dynamicBody ? 1 : 0;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_invMass = this.m_type == Box2D.Dynamics.b2BodyDef.b2_dynamicBody ? 1 : 0;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_I = 0;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_invI = 0;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_inertiaScale = bd.inertiaScale;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2FixtureList}
		 */
		this.fixtureList = new Box2D.Dynamics.b2FixtureList();
		/**
		 * @private
		 * @type {Array.<!Box2D.Dynamics.b2BodyList>}
		 */
		 this.m_lists = [];
	};
	/**
	 * @param {!Box2D.Dynamics.b2FixtureDef} def
	 */
	Box2D.Dynamics.b2Body.prototype.CreateFixture = function(def) {
;
		var fixture = new Box2D.Dynamics.b2Fixture(this, this.m_xf, def);
		if (this.m_active) {
			var broadPhase = this.m_world.m_contactManager.m_broadPhase;
			fixture.CreateProxy(broadPhase, this.m_xf);
		}
		this.fixtureList.AddFixture(fixture);
		fixture.m_body = this;
		if (fixture.m_density > 0.0) {
			this.ResetMassData();
		}
		this.m_world.m_newFixture = true;
		return fixture;
	};
	Box2D.Dynamics.b2Body.prototype.CreateFixture2 = function(shape, density) {
		if (density === undefined) density = 0.0;
		var def = new Box2D.Dynamics.b2FixtureDef();
		def.shape = shape;
		def.density = density;
		return this.CreateFixture(def);
	};
	Box2D.Dynamics.b2Body.prototype.Destroy = function() {
		Box2D.Common.Math.b2Vec2.Free(this.m_linearVelocity);
		Box2D.Common.Math.b2Vec2.Free(this.m_force);
	};
	Box2D.Dynamics.b2Body.prototype.DestroyFixture = function(fixture) {
;
		this.fixtureList.RemoveFixture(fixture);
		for (var contactNode = this.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			if (fixture == contactNode.contact.m_fixtureA || fixture == contactNode.contact.m_fixtureB) {
				this.m_world.m_contactManager.Destroy(contactNode.contact);
			}
		}
		if (this.m_active) {
			var broadPhase = this.m_world.m_contactManager.m_broadPhase;
			fixture.DestroyProxy(broadPhase);
		}
		fixture.Destroy();
		fixture.m_body = null;
		this.ResetMassData();
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} position
	 * @param {number} angle
	 */
	Box2D.Dynamics.b2Body.prototype.SetPositionAndAngle = function(position, angle) {
;
		this.m_xf.R.Set(angle);
		this.m_xf.position.SetV(position);
		var tMat = this.m_xf.R;
		var tVec = this.m_sweep.localCenter;
		this.m_sweep.c.x = (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
		this.m_sweep.c.y = (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
		this.m_sweep.c.x += this.m_xf.position.x;
		this.m_sweep.c.y += this.m_xf.position.y;
		this.m_sweep.c0.SetV(this.m_sweep.c);
		this.m_sweep.a0 = this.m_sweep.a = angle;
		var broadPhase = this.m_world.m_contactManager.m_broadPhase;
		for (var node = this.fixtureList.GetFirstNode(); node; node = node.GetNextNode()) {
			node.fixture.Synchronize(broadPhase, this.m_xf, this.m_xf);
		}
		this.m_world.m_contactManager.FindNewContacts();
	};
	/**
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 */
	Box2D.Dynamics.b2Body.prototype.SetTransform = function(xf) {
		this.SetPositionAndAngle(xf.position, xf.GetAngle());
	};
	/**
	 * @return {!Box2D.Common.Math.b2Transform}
	 */
	Box2D.Dynamics.b2Body.prototype.GetTransform = function() {
		return this.m_xf;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Dynamics.b2Body.prototype.GetPosition = function() {
		return this.m_xf.position;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} position
	 */
	Box2D.Dynamics.b2Body.prototype.SetPosition = function(position) {
		this.SetPositionAndAngle(position, this.GetAngle());
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2Body.prototype.GetAngle = function() {
		return this.m_sweep.a;
	};
	/**
	 * @param {number} angle
	 */
	Box2D.Dynamics.b2Body.prototype.SetAngle = function(angle) {
		this.SetPositionAndAngle(this.GetPosition(), angle);
	};
	Box2D.Dynamics.b2Body.prototype.GetWorldCenter = function() {
		return this.m_sweep.c;
	};
	Box2D.Dynamics.b2Body.prototype.GetLocalCenter = function() {
		return this.m_sweep.localCenter;
	};
	Box2D.Dynamics.b2Body.prototype.SetLinearVelocity = function(v) {
		if (this.m_type == Box2D.Dynamics.b2BodyDef.b2_staticBody) {
			return;
		}
		this.m_linearVelocity.SetV(v);
	};
	Box2D.Dynamics.b2Body.prototype.GetLinearVelocity = function() {
		return this.m_linearVelocity;
	};
	Box2D.Dynamics.b2Body.prototype.SetAngularVelocity = function(omega) {
		if (omega === undefined) omega = 0;
		if (this.m_type == Box2D.Dynamics.b2BodyDef.b2_staticBody) {
			return;
		}
		this.m_angularVelocity = omega;
	};
	Box2D.Dynamics.b2Body.prototype.GetAngularVelocity = function() {
		return this.m_angularVelocity;
	};
	Box2D.Dynamics.b2Body.prototype.GetDefinition = function() {
		var bd = new Box2D.Dynamics.b2BodyDef();
		bd.type = this.GetType();
		bd.allowSleep = this.m_allowSleep;
		bd.angle = this.GetAngle();
		bd.angularDamping = this.m_angularDamping;
		bd.angularVelocity = this.m_angularVelocity;
		bd.fixedRotation = this.m_fixedRotation;
		bd.bullet = this.m_bullet;
		bd.active = this.m_active;
		bd.awake = this.m_awake;
		bd.linearDamping = this.m_linearDamping;
		bd.linearVelocity.SetV(this.GetLinearVelocity());
		bd.position = this.GetPosition();
		return bd;
	};
	Box2D.Dynamics.b2Body.prototype.ApplyForce = function(force, point) {
		if (this.m_type != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
			return;
		}
		this.SetAwake(true);
		this.m_force.x += force.x;
		this.m_force.y += force.y;
		this.m_torque += ((point.x - this.m_sweep.c.x) * force.y - (point.y - this.m_sweep.c.y) * force.x);
	};
	Box2D.Dynamics.b2Body.prototype.ApplyTorque = function(torque) {
		if (torque === undefined) torque = 0;
		if (this.m_type != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
			return;
		}
		this.SetAwake(true);
		this.m_torque += torque;
	};
	Box2D.Dynamics.b2Body.prototype.ApplyImpulse = function(impulse, point) {
		if (this.m_type != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
			return;
		}
		this.SetAwake(true);
		this.m_linearVelocity.x += this.m_invMass * impulse.x;
		this.m_linearVelocity.y += this.m_invMass * impulse.y;
		this.m_angularVelocity += this.m_invI * ((point.x - this.m_sweep.c.x) * impulse.y - (point.y - this.m_sweep.c.y) * impulse.x);
	};
	Box2D.Dynamics.b2Body.prototype.Split = function(callback) {
		var linearVelocity = this.GetLinearVelocity().Copy();
		var angularVelocity = this.GetAngularVelocity();
		var center = this.GetWorldCenter();
		var body1 = this;
		var body2 = this.m_world.CreateBody(this.GetDefinition());
		var prev;
		for (var node = body1.fixtureList.GetFirstNode(); node; node = node.GetNextNode()) {
			var f = node.fixture;
			if (callback(f)) {
				body1.fixtureList.RemoveFixture(f);
				body2.fixtureList.AddFixture(f);
			}
		}
		body1.ResetMassData();
		body2.ResetMassData();
		var center1 = body1.GetWorldCenter();
		var center2 = body2.GetWorldCenter();
		var velocity1 = Box2D.Common.Math.b2Math.AddVV(linearVelocity, Box2D.Common.Math.b2Math.CrossFV(angularVelocity, Box2D.Common.Math.b2Math.SubtractVV(center1, center)));
		var velocity2 = Box2D.Common.Math.b2Math.AddVV(linearVelocity, Box2D.Common.Math.b2Math.CrossFV(angularVelocity, Box2D.Common.Math.b2Math.SubtractVV(center2, center)));
		body1.SetLinearVelocity(velocity1);
		body2.SetLinearVelocity(velocity2);
		body1.SetAngularVelocity(angularVelocity);
		body2.SetAngularVelocity(angularVelocity);
		body1.SynchronizeFixtures();
		body2.SynchronizeFixtures();
		return body2;
	};
	Box2D.Dynamics.b2Body.prototype.Merge = function(other) {
		for (var node = other.fixtureList.GetFirstNode(); node; node = node.GetNextNode()) {
			this.fixtureList.AddFixture(node.fixture);
			other.fixtureList.RemoveFixture(node.fixture);
		}
		other.ResetMassData();
		this.ResetMassData();
		this.SynchronizeFixtures();
	};
	Box2D.Dynamics.b2Body.prototype.GetMass = function() {
		return this.m_mass;
	};
	Box2D.Dynamics.b2Body.prototype.GetInertia = function() {
		return this.m_I;
	};
	/**
	 * @param {Box2D.Collision.Shapes.b2MassData=} massData
	 * @return {!Box2D.Collision.Shapes.b2MassData}
	 */
	Box2D.Dynamics.b2Body.prototype.GetMassData = function(massData) {
		if (!massData) {
			massData = new Box2D.Collision.Shapes.b2MassData();
		}
		massData.mass = this.m_mass;
		massData.I = this.m_I;
		massData.center.SetV(this.m_sweep.localCenter);
		return massData;
	};
	/**
	 * @param {!Box2D.Collision.Shapes.b2MassData} massData
	 */
	Box2D.Dynamics.b2Body.prototype.SetMassData = function(massData) {
;
		if (this.m_type != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
			return;
		}
		this.m_invMass = 0.0;
		this.m_I = 0.0;
		this.m_invI = 0.0;
		this.m_mass = massData.mass;
		if (this.m_mass <= 0.0) {
			this.m_mass = 1.0;
		}
		this.m_invMass = 1.0 / this.m_mass;
		if (massData.I > 0.0 && !this.m_fixedRotation) {
			this.m_I = massData.I - this.m_mass * (massData.center.x * massData.center.x + massData.center.y * massData.center.y);
			this.m_invI = 1.0 / this.m_I;
		}
		var oldCenter = this.m_sweep.c.Copy();
		this.m_sweep.localCenter.SetV(massData.center);
		this.m_sweep.c0.SetV(Box2D.Common.Math.b2Math.MulX(this.m_xf, this.m_sweep.localCenter));
		this.m_sweep.c.SetV(this.m_sweep.c0);
		this.m_linearVelocity.x += this.m_angularVelocity * (-(this.m_sweep.c.y - oldCenter.y));
		this.m_linearVelocity.y += this.m_angularVelocity * (+(this.m_sweep.c.x - oldCenter.x));
	};
	Box2D.Dynamics.b2Body.prototype.ResetMassData = function() {
		this.m_mass = 0.0;
		this.m_invMass = 0.0;
		this.m_I = 0.0;
		this.m_invI = 0.0;
		this.m_sweep.localCenter.SetZero();
		if (this.m_type == Box2D.Dynamics.b2BodyDef.b2_staticBody || this.m_type == Box2D.Dynamics.b2BodyDef.b2_kinematicBody) {
			return;
		}
		var center = Box2D.Common.Math.b2Vec2.Get(0, 0);
		for (var node = this.fixtureList.GetFirstNode(); node; node = node.GetNextNode()) {
			var f = node.fixture;
			if (f.m_density == 0.0) {
				continue;
			}
			var massData = f.GetMassData();
			this.m_mass += massData.mass;
			center.x += massData.center.x * massData.mass;
			center.y += massData.center.y * massData.mass;
			this.m_I += massData.I;
		}
		if (this.m_mass > 0.0) {
			this.m_invMass = 1.0 / this.m_mass;
			center.x *= this.m_invMass;
			center.y *= this.m_invMass;
		} else {
			this.m_mass = 1.0;
			this.m_invMass = 1.0;
		}
		if (this.m_I > 0.0 && !this.m_fixedRotation) {
			this.m_I -= this.m_mass * (center.x * center.x + center.y * center.y);
			this.m_I *= this.m_inertiaScale;
;
			this.m_invI = 1.0 / this.m_I;
		} else {
			this.m_I = 0.0;
			this.m_invI = 0.0;
		}
		var oldCenter = this.m_sweep.c.Copy();
		this.m_sweep.localCenter.SetV(center);
		this.m_sweep.c0.SetV(Box2D.Common.Math.b2Math.MulX(this.m_xf, this.m_sweep.localCenter));
		this.m_sweep.c.SetV(this.m_sweep.c0);
		this.m_linearVelocity.x += this.m_angularVelocity * (-(this.m_sweep.c.y - oldCenter.y));
		this.m_linearVelocity.y += this.m_angularVelocity * (+(this.m_sweep.c.x - oldCenter.x));
		Box2D.Common.Math.b2Vec2.Free(center);
		Box2D.Common.Math.b2Vec2.Free(oldCenter);
	};
	Box2D.Dynamics.b2Body.prototype.GetWorldPoint = function(localPoint) {
		var A = this.m_xf.R;
		var u = Box2D.Common.Math.b2Vec2.Get(A.col1.x * localPoint.x + A.col2.x * localPoint.y, A.col1.y * localPoint.x + A.col2.y * localPoint.y);
		u.x += this.m_xf.position.x;
		u.y += this.m_xf.position.y;
		return u;
	};
	Box2D.Dynamics.b2Body.prototype.GetWorldVector = function(localVector) {
		return Box2D.Common.Math.b2Math.MulMV(this.m_xf.R, localVector);
	};
	Box2D.Dynamics.b2Body.prototype.GetLocalPoint = function(worldPoint) {
		return Box2D.Common.Math.b2Math.MulXT(this.m_xf, worldPoint);
	};
	Box2D.Dynamics.b2Body.prototype.GetLocalVector = function(worldVector) {
		return Box2D.Common.Math.b2Math.MulTMV(this.m_xf.R, worldVector);
	};
	Box2D.Dynamics.b2Body.prototype.GetLinearVelocityFromWorldPoint = function(worldPoint) {
		return Box2D.Common.Math.b2Vec2.Get(this.m_linearVelocity.x - this.m_angularVelocity * (worldPoint.y - this.m_sweep.c.y), this.m_linearVelocity.y + this.m_angularVelocity * (worldPoint.x - this.m_sweep.c.x));
	};
	Box2D.Dynamics.b2Body.prototype.GetLinearVelocityFromLocalPoint = function(localPoint) {
		var A = this.m_xf.R;
		var worldPoint = Box2D.Common.Math.b2Vec2.Get(A.col1.x * localPoint.x + A.col2.x * localPoint.y, A.col1.y * localPoint.x + A.col2.y * localPoint.y);
		worldPoint.x += this.m_xf.position.x;
		worldPoint.y += this.m_xf.position.y;
		var velocity = Box2D.Common.Math.b2Vec2.Get(this.m_linearVelocity.x - this.m_angularVelocity * (worldPoint.y - this.m_sweep.c.y), this.m_linearVelocity.y + this.m_angularVelocity * (worldPoint.x - this.m_sweep.c.x));
		Box2D.Common.Math.b2Vec2.Free(worldPoint);
		return velocity;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2Body.prototype.GetLinearDamping = function() {
		return this.m_linearDamping;
	};
	/**
	 * @param {number} linearDamping
	 */
	Box2D.Dynamics.b2Body.prototype.SetLinearDamping = function(linearDamping) {
		this.m_linearDamping = linearDamping;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2Body.prototype.GetAngularDamping = function() {
		return this.m_angularDamping;
	};
	/**
	 * @param {number} angularDamping
	 */
	Box2D.Dynamics.b2Body.prototype.SetAngularDamping = function(angularDamping) {
		this.m_angularDamping = angularDamping;
	};
	/**
	 * @param {number} type
	 */
	Box2D.Dynamics.b2Body.prototype.SetType = function(type) {
		if (this.m_type == type) {
			return;
		}
		this.m_type = type;
		this.ResetMassData();
		if (this.m_type == Box2D.Dynamics.b2BodyDef.b2_staticBody) {
			this.m_linearVelocity.SetZero();
			this.m_angularVelocity = 0.0;
		}
		this.SetAwake(true);
		this.m_force.SetZero();
		this.m_torque = 0.0;
		for (var contactNode = this.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			contactNode.contact.FlagForFiltering();
		}
		for (var i = 0; i < this.m_lists.length; i++) {
			this.m_lists[i].UpdateBody(this);
		}
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2Body.prototype.GetType = function() {
		return this.m_type;
	};
	/**
	 * @param {boolean} flag
	 */
	Box2D.Dynamics.b2Body.prototype.SetBullet = function(flag) {
		this.m_bullet = flag;
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2Body.prototype.IsBullet = function() {
		return this.m_bullet;
	};
	/**
	 * @param {boolean} flag
	 */
	Box2D.Dynamics.b2Body.prototype.SetSleepingAllowed = function(flag) {
		this.m_allowSleep = flag;
		if (!flag) {
			this.SetAwake(true);
		}
	};
	/**
	 * @param {boolean} flag
	 */
	Box2D.Dynamics.b2Body.prototype.SetAwake = function(flag) {
		if (this.m_awake != flag) {
			this.m_awake = flag;
			this.m_sleepTime = 0;
			if (!flag) {
				this.m_linearVelocity.SetZero();
				this.m_angularVelocity = 0.0;
				this.m_force.SetZero();
				this.m_torque = 0.0;
			}
			for (var i = 0; i < this.m_lists.length; i++) {
				this.m_lists[i].UpdateBody(this);
			}
		}
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2Body.prototype.IsAwake = function() {
		return this.m_awake;
	};
	/**
	 * @param {boolean} fixed
	 */
	Box2D.Dynamics.b2Body.prototype.SetFixedRotation = function(fixed) {
		this.m_fixedRotation = fixed;
		this.ResetMassData();
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2Body.prototype.IsFixedRotation = function() {
		return this.m_fixedRotation;
	};
	/**
	 * @param {boolean} flag
	 */
	Box2D.Dynamics.b2Body.prototype.SetActive = function(flag) {
		if (flag == this.m_active) {
			return;
		}
		if (flag) {
			this.m_active = true;
			var broadPhase = this.m_world.m_contactManager.m_broadPhase;
			for (var node = this.fixtureList.GetFirstNode(); node; node = node.GetNextNode()) {
				node.fixture.CreateProxy(broadPhase, this.m_xf);
			}
		} else {
			this.m_active = false;
			var broadPhase = this.m_world.m_contactManager.m_broadPhase;
			for (var node = this.fixtureList.GetFirstNode(); node; node = node.GetNextNode()) {
				node.fixture.DestroyProxy(broadPhase);
			}
			for (var contactNode = this.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
				this.m_world.m_contactManager.Destroy(contactNode.contact);
			}
		}
		for (var i = 0; i < this.m_lists.length; i++) {
			this.m_lists[i].UpdateBody(this);
		}
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2Body.prototype.IsActive = function() {
		return this.m_active;
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2Body.prototype.IsSleepingAllowed = function() {
		return this.m_allowSleep;
	};
	Box2D.Dynamics.b2Body.prototype.GetFixtureList = function() {
		return this.fixtureList;
	};
	Box2D.Dynamics.b2Body.prototype.GetJointList = function() {
		return this.m_jointList;
	};
	Box2D.Dynamics.b2Body.prototype.GetControllerList = function() {
		return this.controllerList;
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} controller
	 */
	Box2D.Dynamics.b2Body.prototype.AddController = function(controller) {
		this.controllerList.AddController(controller);
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} controller
	 */
	Box2D.Dynamics.b2Body.prototype.RemoveController = function(controller) {
		this.controllerList.RemoveController(controller);
	};
	Box2D.Dynamics.b2Body.prototype.GetContactList = function() {
		return this.contactList;
	};
	Box2D.Dynamics.b2Body.prototype.GetWorld = function() {
		return this.m_world;
	};
	Box2D.Dynamics.b2Body.prototype.SynchronizeFixtures = function() {
		var xf1 = Box2D.Dynamics.b2Body.s_xf1;
		xf1.R.Set(this.m_sweep.a0);
		var tMat = xf1.R;
		var tVec = this.m_sweep.localCenter;
		xf1.position.x = this.m_sweep.c0.x - (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
		xf1.position.y = this.m_sweep.c0.y - (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
		var f;
		var broadPhase = this.m_world.m_contactManager.m_broadPhase;
		for (var node = this.fixtureList.GetFirstNode(); node; node = node.GetNextNode()) {
			node.fixture.Synchronize(broadPhase, xf1, this.m_xf);
		}
	};
	Box2D.Dynamics.b2Body.prototype.SynchronizeTransform = function() {
		this.m_xf.R.Set(this.m_sweep.a);
		var tMat = this.m_xf.R;
		var tVec = this.m_sweep.localCenter;
		this.m_xf.position.x = this.m_sweep.c.x - (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
		this.m_xf.position.y = this.m_sweep.c.y - (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
	};
	Box2D.Dynamics.b2Body.prototype.ShouldCollide = function(other) {
		if (this.m_type != Box2D.Dynamics.b2BodyDef.b2_dynamicBody && other.m_type != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
			return false;
		}
		for (var jn = this.m_jointList; jn; jn = jn.next) {
			if (jn.other == other) if (jn.joint.m_collideConnected == false) {
				return false;
			}
		}
		return true;
	};
	/**
	 * @param {number} t
	 */
	Box2D.Dynamics.b2Body.prototype.Advance = function(t) {
		this.m_sweep.Advance(t);
		this.m_sweep.c.SetV(this.m_sweep.c0);
		this.m_sweep.a = this.m_sweep.a0;
		this.SynchronizeTransform();
	};
	/**
	 * @type {number}
	 * @private
	 */
	Box2D.Dynamics.b2Body.NEXT_ID = 0;
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2BodyDef = function() {
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.position = Box2D.Common.Math.b2Vec2.Get(0, 0);
		/** @type {!Box2D.Common.Math.b2Vec2} */
		this.linearVelocity = Box2D.Common.Math.b2Vec2.Get(0, 0);
		/** @type {number} */
		this.angle = 0.0;
		/** @type {number} */
		this.angularVelocity = 0.0;
		/** @type {number} */
		this.linearDamping = 0.0;
		/** @type {number} */
		this.angularDamping = 0.0;
		/** @type {boolean} */
		this.allowSleep = true;
		/** @type {boolean} */
		this.awake = true;
		/** @type {boolean} */
		this.fixedRotation = false;
		/** @type {boolean} */
		this.bullet = false;
		/** @type {number} */
		this.type = Box2D.Dynamics.b2BodyDef.b2_staticBody;
		/** @type {boolean} */
		this.active = true;
		/** @type {number} */
		this.inertiaScale = 1.0;
	};
	/**
	 * @const
	 * @type {number}
	 */
	Box2D.Dynamics.b2BodyDef.b2_staticBody = 0;
	/**
	 * @const
	 * @type {number}
	 */
	Box2D.Dynamics.b2BodyDef.b2_kinematicBody = 1;
	/**
	 * @const
	 * @type {number}
	 */
	Box2D.Dynamics.b2BodyDef.b2_dynamicBody = 2;
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2BodyList = function() {
		/**
		 * @private
		 * @type {Array.<Box2D.Dynamics.b2BodyListNode>}
		 */
		this.bodyFirstNodes = [];
		for(var i = 0; i <= Box2D.Dynamics.b2BodyList.TYPES.allBodies; i++) {
			this.bodyFirstNodes[i] = null;
		}
		/**
		 * @private
		 * @type {Array.<Box2D.Dynamics.b2BodyListNode>}
		 */
		this.bodyLastNodes = [];
		for(var i = 0; i <= Box2D.Dynamics.b2BodyList.TYPES.allBodies; i++) {
			this.bodyLastNodes[i] = null;
		}
		/**
		 * @private
		 * @type {Object.<Array.<Box2D.Dynamics.b2BodyListNode>>}
		 */
		this.bodyNodeLookup = {};
		/**
		 * @private
		 * @type {number}
		 */
		this.bodyCount = 0;
	};
	/**
	 * @param {number} type
	 * @return {Box2D.Dynamics.b2BodyListNode}
	 */
	Box2D.Dynamics.b2BodyList.prototype.GetFirstNode = function(type) {
		return this.bodyFirstNodes[type];
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 */
	Box2D.Dynamics.b2BodyList.prototype.AddBody = function(body) {
		var bodyID = body.ID;
		if (this.bodyNodeLookup[bodyID] == null) {
			this.CreateNode(body, bodyID, Box2D.Dynamics.b2BodyList.TYPES.allBodies);
			this.UpdateBody(body);
			body.m_lists.push(this);
			this.bodyCount++;
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 */
	Box2D.Dynamics.b2BodyList.prototype.UpdateBody = function(body) {
		var type = body.GetType();
		var bodyID = body.ID;
		var awake = body.IsAwake();
		var active = body.IsActive();
		if (type == Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
			this.CreateNode(body, bodyID, Box2D.Dynamics.b2BodyList.TYPES.dynamicBodies);
		} else {
			this.RemoveNode(bodyID, Box2D.Dynamics.b2BodyList.TYPES.dynamicBodies);
		}
		if (type != Box2D.Dynamics.b2BodyDef.b2_staticBody) {
			this.CreateNode(body, bodyID, Box2D.Dynamics.b2BodyList.TYPES.nonStaticBodies);
		} else {
			this.RemoveNode(bodyID, Box2D.Dynamics.b2BodyList.TYPES.nonStaticBodies);
		}
		if (type != Box2D.Dynamics.b2BodyDef.b2_staticBody && active && awake) {
			this.CreateNode(body, bodyID, Box2D.Dynamics.b2BodyList.TYPES.nonStaticActiveAwakeBodies);
		} else {
			this.RemoveNode(bodyID, Box2D.Dynamics.b2BodyList.TYPES.nonStaticActiveAwakeBodies);
		}
		if (awake) {
			this.CreateNode(body, bodyID, Box2D.Dynamics.b2BodyList.TYPES.awakeBodies);
		} else {
			this.RemoveNode(bodyID, Box2D.Dynamics.b2BodyList.TYPES.awakeBodies);
		}
		if (active) {
			this.CreateNode(body, bodyID, Box2D.Dynamics.b2BodyList.TYPES.activeBodies);
		} else {
			this.RemoveNode(bodyID, Box2D.Dynamics.b2BodyList.TYPES.activeBodies);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 */
	Box2D.Dynamics.b2BodyList.prototype.RemoveBody = function(body) {
		var bodyID = body.ID;
		if (this.bodyNodeLookup[bodyID] != null) {
			cr.arrayFindRemove(body.m_lists, this);
			for(var i = 0; i <= Box2D.Dynamics.b2BodyList.TYPES.allBodies; i++) {
				this.RemoveNode(bodyID, i);
			}
			delete this.bodyNodeLookup[bodyID];
			this.bodyCount--;
		}
	};
	/**
	 * @param {string} bodyID
	 * @param {number} type
	 */
	Box2D.Dynamics.b2BodyList.prototype.RemoveNode = function(bodyID, type) {
		var nodeList = this.bodyNodeLookup[bodyID];
		if (nodeList == null) {
			return;
		}
		var node = nodeList[type];
		if (node == null) {
			return;
		}
		nodeList[type] = null;
		var prevNode = node.GetPreviousNode();
		var nextNode = node.GetNextNode();
		if (prevNode == null) {
			this.bodyFirstNodes[type] = nextNode;
		} else {
			prevNode.SetNextNode(nextNode);
		}
		if (nextNode == null) {
			this.bodyLastNodes[type] = prevNode;
		} else {
			nextNode.SetPreviousNode(prevNode);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 * @param {string} bodyID
	 * @param {number} type
	 */
	Box2D.Dynamics.b2BodyList.prototype.CreateNode = function(body, bodyID, type) {
		var nodeList = this.bodyNodeLookup[bodyID];
		if (nodeList == null) {
			nodeList = [];
			for(var i = 0; i <= Box2D.Dynamics.b2BodyList.TYPES.allBodies; i++) {
				nodeList[i] = null;
			}
			this.bodyNodeLookup[bodyID] = nodeList;
		}
		if (nodeList[type] == null) {
			nodeList[type] = new Box2D.Dynamics.b2BodyListNode(body);
			var prevNode = this.bodyLastNodes[type];
			if (prevNode != null) {
				prevNode.SetNextNode(nodeList[type]);
			} else {
				this.bodyFirstNodes[type] = nodeList[type];
			}
			nodeList[type].SetPreviousNode(prevNode);
			this.bodyLastNodes[type] = nodeList[type];
		}
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2BodyList.prototype.GetBodyCount = function() {
		return this.bodyCount;
	};
	/**
	 * @enum {number}
	 */
	Box2D.Dynamics.b2BodyList.TYPES = {
		dynamicBodies: 0,
		nonStaticBodies: 1,
		activeBodies: 2,
		nonStaticActiveAwakeBodies: 3,
		awakeBodies: 4,
		allBodies: 5 // Assumed to be last by above code
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 * @constructor
	 */
	Box2D.Dynamics.b2BodyListNode = function(body) {
		/**
		 * @const
		 * @type {!Box2D.Dynamics.b2Body}
		 */
		this.body = body;
		/**
		 * @private
		 * @type {Box2D.Dynamics.b2BodyListNode}
		 */
		this.next = null;
		/**
		 * @private
		 * @type {Box2D.Dynamics.b2BodyListNode}
		 */
		this.previous = null;
	};
	/**
	 * @param {Box2D.Dynamics.b2BodyListNode} node
	 */
	Box2D.Dynamics.b2BodyListNode.prototype.SetNextNode = function(node) {
		this.next = node;
	};
	/**
	 * @param {Box2D.Dynamics.b2BodyListNode} node
	 */
	Box2D.Dynamics.b2BodyListNode.prototype.SetPreviousNode = function(node) {
		this.previous = node;
	};
	/**
	 * @return {Box2D.Dynamics.b2Body}
	 */
	Box2D.Dynamics.b2BodyListNode.prototype.GetBody = function() {
		return this.body;
	};
	/**
	 * @return {Box2D.Dynamics.b2BodyListNode}
	 */
	Box2D.Dynamics.b2BodyListNode.prototype.GetNextNode = function() {
		return this.next;
	};
	/**
	 * @return {Box2D.Dynamics.b2BodyListNode}
	 */
	Box2D.Dynamics.b2BodyListNode.prototype.GetPreviousNode = function() {
		return this.previous;
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2ContactFilter = function() {};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2ContactFilter.prototype.ShouldCollide = function(fixtureA, fixtureB) {
		var filter1 = fixtureA.GetFilterData();
		var filter2 = fixtureB.GetFilterData();
		if (filter1.groupIndex == filter2.groupIndex && filter1.groupIndex != 0) {
			return filter1.groupIndex > 0;
		}
		return (filter1.maskBits & filter2.categoryBits) != 0 && (filter1.categoryBits & filter2.maskBits) != 0;
	};
	/** @type {!Box2D.Dynamics.b2ContactFilter} */
	Box2D.Dynamics.b2ContactFilter.b2_defaultFilter = new Box2D.Dynamics.b2ContactFilter();
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2ContactImpulse = function () {
		this.normalImpulses = [];
		this.tangentImpulses = [];
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2ContactListener = function () {};
	Box2D.Dynamics.b2ContactListener.prototype.BeginContact = function (contact) {};
	Box2D.Dynamics.b2ContactListener.prototype.EndContact = function (contact) {};
	Box2D.Dynamics.b2ContactListener.prototype.PreSolve = function (contact, oldManifold) {};
	Box2D.Dynamics.b2ContactListener.prototype.PostSolve = function (contact, impulse) {};
	/**
	 * @param {!Box2D.Dynamics.b2World} world
	 * @constructor
	 */
	Box2D.Dynamics.b2ContactManager = function(world) {
		/**
		 * @private
		 * @const
		 * @type {!Box2D.Dynamics.b2World}
		 */
		this.m_world = world;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2ContactFilter}
		 */
		this.m_contactFilter = Box2D.Dynamics.b2ContactFilter.b2_defaultFilter;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2ContactListener}
		 */
		this.m_contactListener = Box2D.Dynamics.b2ContactListener.b2_defaultListener;
		/**
		 * @private
		 * @const
		 * @type {!Box2D.Dynamics.Contacts.b2ContactFactory}
		 */
		this.m_contactFactory = new Box2D.Dynamics.Contacts.b2ContactFactory();
		/**
		 * @private
		 * @type {!Box2D.Collision.b2DynamicTreeBroadPhase}
		 */
		this.m_broadPhase = new Box2D.Collision.b2DynamicTreeBroadPhase();
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 */
	Box2D.Dynamics.b2ContactManager.prototype.AddPair = function (fixtureA, fixtureB) {
	  var bodyA = fixtureA.GetBody();
	  var bodyB = fixtureB.GetBody();
	  if (bodyA == bodyB) {
		  return;
	  }
	  if (!bodyB.ShouldCollide(bodyA)) {
		 return;
	  }
	  if (!this.m_contactFilter.ShouldCollide(fixtureA, fixtureB)) {
		 return;
	  }
	  for (var contactNode = bodyB.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
		var fA = contactNode.contact.m_fixtureA;
		if (fA == fixtureA) {
			var fB = contactNode.contact.m_fixtureB;
			if (fB == fixtureB) {
				return;
			}
		} else if (fA == fixtureB) {
			var fB = contactNode.contact.m_fixtureB;
			if (fB == fixtureA) {
				return;
			}
		}
	  }
	  var c = this.m_contactFactory.Create(fixtureA, fixtureB);
	};
	Box2D.Dynamics.b2ContactManager.prototype.FindNewContacts = function () {
		var self = this;
		/** @type {function(!Box2D.Dynamics.b2Fixture, !Box2D.Dynamics.b2Fixture)} */
		var addPairCallback = function(fixtureA, fixtureB) {
			self.AddPair(fixtureA, fixtureB)
		};
		this.m_broadPhase.UpdatePairs(addPairCallback);
	};
	Box2D.Dynamics.b2ContactManager.prototype.Destroy = function (c) {
		var fixtureA = c.m_fixtureA;
		var fixtureB = c.m_fixtureB;
		var bodyA = fixtureA.GetBody();
		var bodyB = fixtureB.GetBody();
		if (c.touching) {
			this.m_contactListener.EndContact(c);
		}
		if (c.m_manifold.m_pointCount > 0) {
			c.m_fixtureA.GetBody().SetAwake(true);
			c.m_fixtureB.GetBody().SetAwake(true);
		}
		c.RemoveFromLists();
		this.m_contactFactory.Destroy(c);
	};
	Box2D.Dynamics.b2ContactManager.prototype.Collide = function() {
		for (var contactNode = this.m_world.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			var c = contactNode.contact;
			var fixtureA = c.m_fixtureA;
			var fixtureB = c.m_fixtureB;
			var bodyA = fixtureA.GetBody();
			var bodyB = fixtureB.GetBody();
			if (bodyA.IsAwake() == false && bodyB.IsAwake() == false) {
				continue;
			}
			if (c.IsFiltering()) {
				if (bodyB.ShouldCollide(bodyA) == false) {
					this.Destroy(c);
					continue;
				}
				if (this.m_contactFilter.ShouldCollide(fixtureA, fixtureB) == false) {
					this.Destroy(c);
					continue;
				}
				c.ClearFiltering();
			}
			var proxyA = fixtureA.m_proxy;
			var proxyB = fixtureB.m_proxy;
			var overlap = this.m_broadPhase.TestOverlap(proxyA, proxyB);
			if (overlap == false) {
				this.Destroy(c);
				continue;
			}
			c.Update(this.m_contactListener);
		}
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2DestructionListener = function () {};
	Box2D.Dynamics.b2DestructionListener.prototype.SayGoodbyeJoint = function (joint) {};
	Box2D.Dynamics.b2DestructionListener.prototype.SayGoodbyeFixture = function (fixture) {};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2FilterData = function () {
	  this.categoryBits = 0x0001;
	  this.maskBits = 0xFFFF;
	  this.groupIndex = 0;
	};
	/**
	 * @return {!Box2D.Dynamics.b2FilterData}
	 */
	Box2D.Dynamics.b2FilterData.prototype.Copy = function () {
	  var copy = new Box2D.Dynamics.b2FilterData();
	  copy.categoryBits = this.categoryBits;
	  copy.maskBits = this.maskBits;
	  copy.groupIndex = this.groupIndex;
	  return copy;
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 * @param {!Box2D.Dynamics.b2FixtureDef} def
	 * @constructor
	 */
	Box2D.Dynamics.b2Fixture = function(body, xf, def) {
		/**
		 * @const
		 * @private
		 * @type {string}
		 */
		this.ID = "Fixture" + Box2D.Dynamics.b2Fixture.NEXT_ID++;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2FilterData}
		 */
		this.m_filter = def.filter.Copy();
		/**
		 * @private
		 * @type {!Box2D.Collision.b2AABB}
		 */
		this.m_aabb = Box2D.Collision.b2AABB.Get();
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2Body}
		 */
		this.m_body = body;
		/**
		 * @private
		 * @type {!Box2D.Collision.Shapes.b2Shape}
		 */
		this.m_shape = def.shape.Copy();
		/**
		 * @private
		 * @type {number}
		 */
		this.m_density = def.density;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_friction = def.friction;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_restitution = def.restitution;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_isSensor = def.isSensor;
	};
	/**
	 * @return {!Box2D.Collision.Shapes.b2Shape}
	 */
	Box2D.Dynamics.b2Fixture.prototype.GetShape = function() {
		return this.m_shape;
	};
	/**
	 * @param {boolean} sensor
	 */
	Box2D.Dynamics.b2Fixture.prototype.SetSensor = function(sensor) {
		if (this.m_isSensor == sensor) {
			return;
		}
		this.m_isSensor = sensor;
		if (this.m_body == null) {
			return;
		}
		for (var contactNode = this.m_body.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			var fixtureA = contactNode.contact.m_fixtureA;
			var fixtureB = contactNode.contact.m_fixtureB;
			if (fixtureA == this || fixtureB == this) {
				contactNode.contact.SetSensor(fixtureA.sensor || fixtureB.sensor);
			}
		}
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2Fixture.prototype.IsSensor = function() {
		return this.m_isSensor;
	};
	/**
	 * @param {!Box2D.Dynamics.b2FilterData} filter
	 */
	Box2D.Dynamics.b2Fixture.prototype.SetFilterData = function(filter) {
		this.m_filter = filter.Copy();
		if (this.m_body == null) {
			return;
		}
		for (var contactNode = this.m_body.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			if (contactNode.contact.m_fixtureA == this || contactNode.contact.m_fixtureB == this) {
				contactNode.contact.FlagForFiltering();
			}
		}
	};
	/**
	 * @return {!Box2D.Dynamics.b2FilterData}
	 */
	Box2D.Dynamics.b2Fixture.prototype.GetFilterData = function() {
		return this.m_filter.Copy();
	};
	/**
	 * @return {Box2D.Dynamics.b2Body}
	 */
	Box2D.Dynamics.b2Fixture.prototype.GetBody = function() {
		return this.m_body;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} p
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2Fixture.prototype.TestPoint = function(p) {
		return this.m_shape.TestPoint(this.m_body.GetTransform(), p);
	};
	/**
	 * @param {!Box2D.Collision.b2RayCastOutput} output
	 * @param {!Box2D.Collision.b2RayCastInput} input
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2Fixture.prototype.RayCast = function(output, input) {
		return this.m_shape.RayCast(output, input, this.m_body.GetTransform());
	};
	/**
	 * @param {Box2D.Collision.Shapes.b2MassData=} massData
	 * @return {!Box2D.Collision.Shapes.b2MassData}
	 */
	Box2D.Dynamics.b2Fixture.prototype.GetMassData = function(massData) {
		if (!massData) {
			massData = new Box2D.Collision.Shapes.b2MassData();
		}
		this.m_shape.ComputeMass(massData, this.m_density);
		return massData;
	};
	/**
	 * @param {number} density
	 */
	Box2D.Dynamics.b2Fixture.prototype.SetDensity = function(density) {
		this.m_density = density;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2Fixture.prototype.GetDensity = function() {
		return this.m_density;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2Fixture.prototype.GetFriction = function() {
		return this.m_friction;
	};
	/**
	 * @param {number} friction
	 */
	Box2D.Dynamics.b2Fixture.prototype.SetFriction = function(friction) {
		this.m_friction = friction;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2Fixture.prototype.GetRestitution = function() {
		return this.m_restitution;
	};
	/**
	 * @param {number} restitution
	 */
	Box2D.Dynamics.b2Fixture.prototype.SetRestitution = function(restitution) {
		this.m_restitution = restitution;
	};
	/**
	 * @return {!Box2D.Collision.b2AABB}
	 */
	Box2D.Dynamics.b2Fixture.prototype.GetAABB = function() {
		return this.m_aabb;
	};
	Box2D.Dynamics.b2Fixture.prototype.Destroy = function() {
		Box2D.Collision.b2AABB.Free(this.m_aabb);
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeBroadPhase} broadPhase
	 * @param {!Box2D.Common.Math.b2Transform} xf
	 */
	Box2D.Dynamics.b2Fixture.prototype.CreateProxy = function(broadPhase, xf) {
		this.m_shape.ComputeAABB(this.m_aabb, xf);
		this.m_proxy = broadPhase.CreateProxy(this.m_aabb, this);
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeBroadPhase} broadPhase
	 */
	Box2D.Dynamics.b2Fixture.prototype.DestroyProxy = function(broadPhase) {
		if (this.m_proxy == null) {
			return;
		}
		broadPhase.DestroyProxy(this.m_proxy);
		this.m_proxy = null;
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeBroadPhase} broadPhase
	 * @param {!Box2D.Common.Math.b2Transform} transform1
	 * @param {!Box2D.Common.Math.b2Transform} transform2
	 */
	Box2D.Dynamics.b2Fixture.prototype.Synchronize = function(broadPhase, transform1, transform2) {
		if (!this.m_proxy) return;
		var aabb1 = Box2D.Collision.b2AABB.Get();
		var aabb2 = Box2D.Collision.b2AABB.Get();
		this.m_shape.ComputeAABB(aabb1, transform1);
		this.m_shape.ComputeAABB(aabb2, transform2);
		this.m_aabb.Combine(aabb1, aabb2);
		Box2D.Collision.b2AABB.Free(aabb1);
		Box2D.Collision.b2AABB.Free(aabb2);
		var displacement = Box2D.Common.Math.b2Math.SubtractVV(transform2.position, transform1.position);
		broadPhase.MoveProxy(this.m_proxy, this.m_aabb, displacement);
		Box2D.Common.Math.b2Vec2.Free(displacement);
	};
	/**
	 * @type {number}
	 * @private
	 */
	Box2D.Dynamics.b2Fixture.NEXT_ID = 0;
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2FixtureDef = function () {
		/**
		 * @type {!Box2D.Dynamics.b2FilterData}
		 */
		this.filter = new Box2D.Dynamics.b2FilterData();
		this.filter.categoryBits = 0x0001;
		this.filter.maskBits = 0xFFFF;
		this.filter.groupIndex = 0;
		/**
		 * @type {Box2D.Collision.Shapes.b2Shape}
		 */
		this.shape = null;
		/**
		 * @type {number}
		 */
		this.friction = 0.2;
		/**
		 * @type {number}
		 */
		this.restitution = 0.0;
		/**
		 * @type {number}
		 */
		this.density = 0.0;
		/**
		 * @type {boolean}
		 */
		this.isSensor = false;
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.b2FixtureList = function() {
		/**
		 * @private
		 * @type {Box2D.Dynamics.b2FixtureListNode}
		 */
		this.fixtureFirstNode = null;
		/**
		 * @private
		 * @type {Box2D.Dynamics.b2FixtureListNode}
		 */
		this.fixtureLastNode = null;
		/**
		 * @private
		 * @type {Object.<Box2D.Dynamics.b2FixtureListNode>}
		 */
		this.fixtureNodeLookup = {};
		/**
		 * @private
		 * @type {number}
		 */
		this.fixtureCount = 0;
	};
	/**
	 * @return {Box2D.Dynamics.b2FixtureListNode}
	 */
	Box2D.Dynamics.b2FixtureList.prototype.GetFirstNode = function() {
		return this.fixtureFirstNode;
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixture
	 */
	Box2D.Dynamics.b2FixtureList.prototype.AddFixture = function(fixture) {
		var fixtureID = fixture.ID;
		if (this.fixtureNodeLookup[fixtureID] == null) {
			var node = new Box2D.Dynamics.b2FixtureListNode(fixture);
			var prevNode = this.fixtureLastNode;
			if (prevNode != null) {
				prevNode.SetNextNode(node);
			} else {
				this.fixtureFirstNode = node;
			}
			node.SetPreviousNode(prevNode);
			this.fixtureLastNode = node;
			this.fixtureNodeLookup[fixtureID] = node;
			this.fixtureCount++;
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixture
	 */
	Box2D.Dynamics.b2FixtureList.prototype.RemoveFixture = function(fixture) {
		var fixtureID = fixture.ID;
		var node = this.fixtureNodeLookup[fixtureID];
		if (node == null) {
			return;
		}
		var prevNode = node.GetPreviousNode();
		var nextNode = node.GetNextNode();
		if (prevNode == null) {
			this.fixtureFirstNode = nextNode;
		} else {
			prevNode.SetNextNode(nextNode);
		}
		if (nextNode == null) {
			this.fixtureLastNode = prevNode;
		} else {
			nextNode.SetPreviousNode(prevNode);
		}
		delete this.fixtureNodeLookup[fixtureID];
		this.fixtureCount--;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2FixtureList.prototype.GetFixtureCount = function() {
		return this.fixtureCount;
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixture
	 * @constructor
	 */
	Box2D.Dynamics.b2FixtureListNode = function(fixture) {
		/**
		 * @const
		 * @type {!Box2D.Dynamics.b2Fixture}
		 */
		this.fixture = fixture;
		/**
		 * @private
		 * @type {Box2D.Dynamics.b2FixtureListNode}
		 */
		this.next = null;
		/**
		 * @private
		 * @type {Box2D.Dynamics.b2FixtureListNode}
		 */
		this.previous = null;
	};
	/**
	 * @param {Box2D.Dynamics.b2FixtureListNode} node
	 */
	Box2D.Dynamics.b2FixtureListNode.prototype.SetNextNode = function(node) {
		this.next = node;
	};
	/**
	 * @param {Box2D.Dynamics.b2FixtureListNode} node
	 */
	Box2D.Dynamics.b2FixtureListNode.prototype.SetPreviousNode = function(node) {
		this.previous = node;
	};
	/**
	 * @return {Box2D.Dynamics.b2FixtureListNode}
	 */
	Box2D.Dynamics.b2FixtureListNode.prototype.GetNextNode = function() {
		return this.next;
	};
	/**
	 * @return {Box2D.Dynamics.b2FixtureListNode}
	 */
	Box2D.Dynamics.b2FixtureListNode.prototype.GetPreviousNode = function() {
		return this.previous;
	};
	/**
	 * @param {!Box2D.Dynamics.b2ContactListener} listener
	 * @param {!Box2D.Dynamics.Contacts.b2ContactSolver} contactSolver
	 * @constructor
	 */
	Box2D.Dynamics.b2Island = function(listener, contactSolver) {
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2ContactListener}
		 */
		this.m_listener = listener;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Contacts.b2ContactSolver}
		 */
		this.m_contactSolver = contactSolver;
		/**
		 * @private
		 * @type {Array.<!Box2D.Dynamics.b2Body>}
		 */
		this.m_bodies = [];
		/**
		 * @private
		 * @type {Array.<!Box2D.Dynamics.b2Body>}
		 */
		this.m_dynamicBodies = [];
		/**
		 * @private
		 * @type {Array.<!Box2D.Dynamics.b2Body>}
		 */
		this.m_nonStaticBodies = [];
		/**
		 * @private
		 * @type {Array.<!Box2D.Dynamics.Contacts.b2Contact>}
		 */
		this.m_contacts = [];
		/**
		 * @private
		 * @type {Array.<!Box2D.Dynamics.Joints.b2Joint>}
		 */
		this.m_joints = [];
	};
	Box2D.Dynamics.b2Island.prototype.Clear = function() {
		this.m_bodies = [];
		this.m_dynamicBodies = [];
		this.m_nonStaticBodies = [];
		this.m_contacts = [];
		this.m_joints = [];
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @param {!Box2D.Common.Math.b2Vec2} gravity
	 * @param {boolean} allowSleep
	 */
	Box2D.Dynamics.b2Island.prototype.Solve = function(step, gravity, allowSleep) {
		this._InitializeVelocities(step, gravity);
		this.m_contactSolver.Initialize(step, this.m_contacts, this.m_contacts.length);
		this._SolveVelocityConstraints(step);
		this._SolveBodies(step);
		this._SolvePositionConstraints(step);
		this.Report(this.m_contactSolver.m_constraints);
		if (allowSleep) {
			this._SleepIfTired(step);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @param {!Box2D.Common.Math.b2Vec2} gravity
	 * @private
	 */
	Box2D.Dynamics.b2Island.prototype._InitializeVelocities = function(step, gravity) {
		for (var i = 0; i < this.m_dynamicBodies.length; i++) {
			var b = this.m_dynamicBodies[i];
			b.m_linearVelocity.x += step.dt * (gravity.x + b.m_invMass * b.m_force.x);
			b.m_linearVelocity.y += step.dt * (gravity.y + b.m_invMass * b.m_force.y);
			b.m_angularVelocity += step.dt * b.m_invI * b.m_torque;
			b.m_linearVelocity.Multiply(Box2D.Common.Math.b2Math.Clamp(1.0 - step.dt * b.m_linearDamping, 0.0, 1.0));
			b.m_angularVelocity *= Box2D.Common.Math.b2Math.Clamp(1.0 - step.dt * b.m_angularDamping, 0.0, 1.0);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @private
	 */
	Box2D.Dynamics.b2Island.prototype._SolveVelocityConstraints = function(step) {
		this.m_contactSolver.InitVelocityConstraints(step);
		for (var jointInitIdx = 0; jointInitIdx < this.m_joints.length; jointInitIdx++) {
			this.m_joints[jointInitIdx].InitVelocityConstraints(step);
		}
		for (var velocityIterationCnt = 0; velocityIterationCnt < step.velocityIterations; velocityIterationCnt++) {
			for (var jointSolveIdx = 0; jointSolveIdx < this.m_joints.length; jointSolveIdx++) {
				this.m_joints[jointSolveIdx].SolveVelocityConstraints(step);
			}
			this.m_contactSolver.SolveVelocityConstraints();
		}
		for (var jointFinalizeIdx = 0; jointFinalizeIdx < this.m_joints.length; jointFinalizeIdx++) {
			this.m_joints[jointFinalizeIdx].FinalizeVelocityConstraints();
		}
		this.m_contactSolver.FinalizeVelocityConstraints();
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @private
	 */
	Box2D.Dynamics.b2Island.prototype._SolveBodies = function(step) {
		for (var i = 0; i < this.m_nonStaticBodies.length; ++i) {
			var b = this.m_nonStaticBodies[i];
			var translationX = step.dt * b.m_linearVelocity.x;
			var translationY = step.dt * b.m_linearVelocity.y;
			if ((translationX * translationX + translationY * translationY) > Box2D.Common.b2Settings.b2_maxTranslationSquared) {
				b.m_linearVelocity.Normalize();
				b.m_linearVelocity.x *= Box2D.Common.b2Settings.b2_maxTranslation * step.inv_dt;
				b.m_linearVelocity.y *= Box2D.Common.b2Settings.b2_maxTranslation * step.inv_dt;
			}
			var rotation = step.dt * b.m_angularVelocity;
			if (rotation * rotation > Box2D.Common.b2Settings.b2_maxRotationSquared) {
				if (b.m_angularVelocity < 0.0) {
					b.m_angularVelocity = -Box2D.Common.b2Settings.b2_maxRotation * step.inv_dt;
				} else {
					b.m_angularVelocity = Box2D.Common.b2Settings.b2_maxRotation * step.inv_dt;
				}
			}
			b.m_sweep.c0.SetV(b.m_sweep.c);
			b.m_sweep.a0 = b.m_sweep.a;
			b.m_sweep.c.x += step.dt * b.m_linearVelocity.x;
			b.m_sweep.c.y += step.dt * b.m_linearVelocity.y;
			b.m_sweep.a += step.dt * b.m_angularVelocity;
			b.SynchronizeTransform();
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @private
	 */
	Box2D.Dynamics.b2Island.prototype._SolvePositionConstraints = function(step) {
		for (var i = 0; i < step.positionIterations; i++) {
			var contactsOkay = this.m_contactSolver.SolvePositionConstraints(Box2D.Common.b2Settings.b2_contactBaumgarte);
			var jointsOkay = true;
			for (var j = 0; j < this.m_joints.length; j++) {
				var jointOkay = this.m_joints[j].SolvePositionConstraints(Box2D.Common.b2Settings.b2_contactBaumgarte);
				jointsOkay = jointsOkay && jointOkay;
			}
			if (contactsOkay && jointsOkay) {
				break;
			}
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @private
	 */
	Box2D.Dynamics.b2Island.prototype._SleepIfTired = function(step) {
		var minSleepTime = Number.MAX_VALUE;
		for (var nonstaticBodyIdx = 0; nonstaticBodyIdx < this.m_nonStaticBodies.length; nonstaticBodyIdx++) {
			var b = this.m_nonStaticBodies[nonstaticBodyIdx];
			if (!b.m_allowSleep || Math.abs(b.m_angularVelocity) > Box2D.Common.b2Settings.b2_angularSleepTolerance || Box2D.Common.Math.b2Math.Dot(b.m_linearVelocity, b.m_linearVelocity) > Box2D.Common.b2Settings.b2_linearSleepToleranceSquared) {
				b.m_sleepTime = 0.0;
				minSleepTime = 0.0;
			} else {
				b.m_sleepTime += step.dt;
				minSleepTime = Math.min(minSleepTime, b.m_sleepTime);
			}
		}
		if (minSleepTime >= Box2D.Common.b2Settings.b2_timeToSleep) {
			for (var bodyIdx = 0; bodyIdx < this.m_bodies.length; bodyIdx++) {
				this.m_bodies[bodyIdx].SetAwake(false);
			}
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} subStep
	 */
	Box2D.Dynamics.b2Island.prototype.SolveTOI = function(subStep) {
		var i = 0;
		var j = 0;
		this.m_contactSolver.Initialize(subStep, this.m_contacts, this.m_contacts.length);
		var contactSolver = this.m_contactSolver;
		for (i = 0; i < this.m_joints.length; ++i) {
			this.m_joints[i].InitVelocityConstraints(subStep);
		}
		for (i = 0; i < subStep.velocityIterations; ++i) {
			contactSolver.SolveVelocityConstraints();
			for (j = 0; j < this.m_joints.length; ++j) {
				this.m_joints[j].SolveVelocityConstraints(subStep);
			}
		}
		for (i = 0; i < this.m_nonStaticBodies.length; ++i) {
			var b = this.m_nonStaticBodies[i];
			var translationX = subStep.dt * b.m_linearVelocity.x;
			var translationY = subStep.dt * b.m_linearVelocity.y;
			if ((translationX * translationX + translationY * translationY) > Box2D.Common.b2Settings.b2_maxTranslationSquared) {
				b.m_linearVelocity.Normalize();
				b.m_linearVelocity.x *= Box2D.Common.b2Settings.b2_maxTranslation * subStep.inv_dt;
				b.m_linearVelocity.y *= Box2D.Common.b2Settings.b2_maxTranslation * subStep.inv_dt;
			}
			var rotation = subStep.dt * b.m_angularVelocity;
			if (rotation * rotation > Box2D.Common.b2Settings.b2_maxRotationSquared) {
				if (b.m_angularVelocity < 0.0) {
					b.m_angularVelocity = (-Box2D.Common.b2Settings.b2_maxRotation * subStep.inv_dt);
				} else {
					b.m_angularVelocity = Box2D.Common.b2Settings.b2_maxRotation * subStep.inv_dt;
				}
			}
			b.m_sweep.c0.SetV(b.m_sweep.c);
			b.m_sweep.a0 = b.m_sweep.a;
			b.m_sweep.c.x += subStep.dt * b.m_linearVelocity.x;
			b.m_sweep.c.y += subStep.dt * b.m_linearVelocity.y;
			b.m_sweep.a += subStep.dt * b.m_angularVelocity;
			b.SynchronizeTransform();
		}
		var k_toiBaumgarte = 0.75;
		for (i = 0; i < subStep.positionIterations; ++i) {
			var contactsOkay = contactSolver.SolvePositionConstraints(k_toiBaumgarte);
			var jointsOkay = true;
			for (j = 0; j < this.m_joints.length; ++j) {
				var jointOkay = this.m_joints[j].SolvePositionConstraints(Box2D.Common.b2Settings.b2_contactBaumgarte);
				jointsOkay = jointsOkay && jointOkay;
			}
			if (contactsOkay && jointsOkay) {
				break;
			}
		}
		this.Report(contactSolver.m_constraints);
	};
	/**
	 * @param {Array.<!Box2D.Dynamics.Contacts.b2ContactConstraint>} constraints
	 */
	Box2D.Dynamics.b2Island.prototype.Report = function(constraints) {
		if (this.m_listener == null) {
			return;
		}
		for (var i = 0; i < this.m_contacts.length; ++i) {
			var c = this.m_contacts[i];
			var cc = constraints[i];
			var impulse = new Box2D.Dynamics.b2ContactImpulse();
			for (var j = 0; j < cc.pointCount; ++j) {
				impulse.normalImpulses[j] = cc.points[j].normalImpulse;
				impulse.tangentImpulses[j] = cc.points[j].tangentImpulse;
			}
			this.m_listener.PostSolve(c, impulse);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 */
	Box2D.Dynamics.b2Island.prototype.AddBody = function(body) {
		this.m_bodies.push(body);
		if (body.GetType() != Box2D.Dynamics.b2BodyDef.b2_staticBody) {
			this.m_nonStaticBodies.push(body);
			if (body.GetType() == Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
				this.m_dynamicBodies.push(body);
			}
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2Contact} contact
	 */
	Box2D.Dynamics.b2Island.prototype.AddContact = function(contact) {
		this.m_contacts.push(contact);
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2Joint} joint
	 */
	Box2D.Dynamics.b2Island.prototype.AddJoint = function(joint) {
		this.m_joints.push(joint);
	};
	/**
	 * @param {number} dt
	 * @param {number} dtRatio
	 * @param {number} positionIterations
	 * @param {number} velocityIterations
	 * @param {boolean} warmStarting
	 * @constructor
	 */
	Box2D.Dynamics.b2TimeStep = function(dt, dtRatio, positionIterations, velocityIterations, warmStarting) {
		/**
		 * @const
		 * @type {number}
		 */
		this.dt = dt;
		var invDT = 0;
		if (dt > 0) {
			invDT = 1 / dt;
		}
		/**
		 * @const
		 * @type {number}
		 */
		this.inv_dt = invDT;
		/**
		 * @const
		 * @type {number}
		 */
		this.dtRatio = dtRatio;
		/**
		 * @const
		 * @type {number}
		 */
		this.positionIterations = positionIterations;
		/**
		 * @const
		 * @type {number}
		 */
		this.velocityIterations = velocityIterations;
		/**
		 * @const
		 * @type {boolean}
		 */
		this.warmStarting = warmStarting;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} gravity
	 * @param {boolean} doSleep
	 * @constructor
	 */
	Box2D.Dynamics.b2World = function(gravity, doSleep) {
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2ContactManager}
		 */
		this.m_contactManager = new Box2D.Dynamics.b2ContactManager(this);
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Contacts.b2ContactSolver}
		 */
		this.m_contactSolver = new Box2D.Dynamics.Contacts.b2ContactSolver();
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_isLocked = false;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_newFixture = false;
		/**
		 * @private
		 * @type {Box2D.Dynamics.b2DestructionListener}
		 */
		this.m_destructionListener = null;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2BodyList}
		 */
		this.bodyList = new Box2D.Dynamics.b2BodyList();
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Contacts.b2ContactList}
		 */
		 this.contactList = new Box2D.Dynamics.Contacts.b2ContactList();
		/**
		 * @private
		 * @type {Box2D.Dynamics.Joints.b2Joint}
		 */
		this.m_jointList = null;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Controllers.b2ControllerList}
		 */
		this.controllerList = new Box2D.Dynamics.Controllers.b2ControllerList();
		/**
		 * @private
		 * @type {number}
		 */
		this.m_jointCount = 0;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_warmStarting = true;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_continuousPhysics = true;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.m_allowSleep = doSleep;
		/**
		 * @private
		 * @type {!Box2D.Common.Math.b2Vec2}
		 */
		this.m_gravity = gravity;
		/**
		 * @private
		 * @type {number}
		 */
		this.m_inv_dt0 = 0.0;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2Body}
		 */
		this.m_groundBody = this.CreateBody(new Box2D.Dynamics.b2BodyDef());
	};
	/**
	 * @const
	 * @type {number}
	 */
	Box2D.Dynamics.b2World.MAX_TOI = 1.0 - 100.0 * Number.MIN_VALUE;
	/**
	 * @param {!Box2D.Dynamics.b2DestructionListener} listener
	 */
	Box2D.Dynamics.b2World.prototype.SetDestructionListener = function(listener) {
		this.m_destructionListener = listener;
	};
	/**
	 * @param {!Box2D.Dynamics.b2ContactFilter} filter
	 */
	Box2D.Dynamics.b2World.prototype.SetContactFilter = function(filter) {
		this.m_contactManager.m_contactFilter = filter;
	};
	/**
	 * @param {!Box2D.Dynamics.b2ContactListener} listener
	 */
	Box2D.Dynamics.b2World.prototype.SetContactListener = function(listener) {
		this.m_contactManager.m_contactListener = listener;
	};
	/**
	 * @param {!Box2D.Collision.b2DynamicTreeBroadPhase} broadPhase
	 */
	Box2D.Dynamics.b2World.prototype.SetBroadPhase = function(broadPhase) {
		var oldBroadPhase = this.m_contactManager.m_broadPhase;
		this.m_contactManager.m_broadPhase = broadPhase;
		for (var node = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.allBodies); node; node = node.GetNextNode()) {
			for (var fixtureNode = node.body.GetFixtureList().GetFirstNode(); fixtureNode; fixtureNode = fixtureNode.GetNextNode()) {
				var f = fixtureNode.fixture;
				f.m_proxy = broadPhase.CreateProxy(oldBroadPhase.GetFatAABB(f.m_proxy), f);
			}
		}
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2World.prototype.GetProxyCount = function() {
		return this.m_contactManager.m_broadPhase.GetProxyCount();
	};
	/**
	 * @param {!Box2D.Dynamics.b2BodyDef} def
	 * @return {!Box2D.Dynamics.b2Body}
	 */
	Box2D.Dynamics.b2World.prototype.CreateBody = function(def) {
;
		var b = new Box2D.Dynamics.b2Body(def, this);
		this.bodyList.AddBody(b);
		return b;
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} b
	 */
	Box2D.Dynamics.b2World.prototype.DestroyBody = function(b) {
;
		var jn = b.m_jointList;
		while (jn) {
			var jn0 = jn;
			jn = jn.next;
			if (this.m_destructionListener) {
				this.m_destructionListener.SayGoodbyeJoint(jn0.joint);
			}
			this.DestroyJoint(jn0.joint);
		}
		for (var node = b.GetControllerList().GetFirstNode(); node; node = node.GetNextNode()) {
			node.controller.RemoveBody(b);
		}
		for (var contactNode = b.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			this.m_contactManager.Destroy(contactNode.contact);
		}
		for (var fixtureNode = b.GetFixtureList().GetFirstNode(); fixtureNode; fixtureNode = fixtureNode.GetNextNode()) {
			if (this.m_destructionListener) {
				this.m_destructionListener.SayGoodbyeFixture(fixtureNode.fixture);
			}
			b.DestroyFixture(fixtureNode.fixture);
		}
		b.Destroy();
		this.bodyList.RemoveBody(b);
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2JointDef} def
	 * @return {!Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.b2World.prototype.CreateJoint = function(def) {
		var j = Box2D.Dynamics.Joints.b2Joint.Create(def);
		j.m_prev = null;
		j.m_next = this.m_jointList;
		if (this.m_jointList) {
			this.m_jointList.m_prev = j;
		}
		this.m_jointList = j;
		this.m_jointCount++;
		j.m_edgeA.joint = j;
		j.m_edgeA.other = j.m_bodyB;
		j.m_edgeA.prev = null;
		j.m_edgeA.next = j.m_bodyA.m_jointList;
		if (j.m_bodyA.m_jointList) {
			j.m_bodyA.m_jointList.prev = j.m_edgeA;
		}
		j.m_bodyA.m_jointList = j.m_edgeA;
		j.m_edgeB.joint = j;
		j.m_edgeB.other = j.m_bodyA;
		j.m_edgeB.prev = null;
		j.m_edgeB.next = j.m_bodyB.m_jointList;
		if (j.m_bodyB.m_jointList) {
			j.m_bodyB.m_jointList.prev = j.m_edgeB;
		}
		j.m_bodyB.m_jointList = j.m_edgeB;
		var bodyA = def.bodyA;
		var bodyB = def.bodyB;
		if (!def.collideConnected) {
			for (var contactNode = bodyB.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
				if (contactNode.contact.GetOther(bodyB) == bodyA) {
					contactNode.contact.FlagForFiltering();
				}
			}
		}
		return j;
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2Joint} j
	 */
	Box2D.Dynamics.b2World.prototype.DestroyJoint = function(j) {
		var collideConnected = j.m_collideConnected;
		if (j.m_prev) {
			j.m_prev.m_next = j.m_next;
		}
		if (j.m_next) {
			j.m_next.m_prev = j.m_prev;
		}
		if (j == this.m_jointList) {
			this.m_jointList = j.m_next;
		}
		var bodyA = j.m_bodyA;
		var bodyB = j.m_bodyB;
		bodyA.SetAwake(true);
		bodyB.SetAwake(true);
		if (j.m_edgeA.prev) {
			j.m_edgeA.prev.next = j.m_edgeA.next;
		}
		if (j.m_edgeA.next) {
			j.m_edgeA.next.prev = j.m_edgeA.prev;
		}
		if (j.m_edgeA == bodyA.m_jointList) {
			bodyA.m_jointList = j.m_edgeA.next;
		}
		j.m_edgeA.prev = null;
		j.m_edgeA.next = null;
		if (j.m_edgeB.prev) {
			j.m_edgeB.prev.next = j.m_edgeB.next;
		}
		if (j.m_edgeB.next) {
			j.m_edgeB.next.prev = j.m_edgeB.prev;
		}
		if (j.m_edgeB == bodyB.m_jointList) {
			bodyB.m_jointList = j.m_edgeB.next;
		}
		j.m_edgeB.prev = null;
		j.m_edgeB.next = null;
		this.m_jointCount--;
		if (!collideConnected) {
			for (var contactNode = bodyB.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
				if (contactNode.contact.GetOther(bodyB) == bodyA) {
					contactNode.contact.FlagForFiltering();
				}
			}
		}
	};
	/**
	 * @return {!Box2D.Dynamics.Controllers.b2ControllerList}
	 */
	Box2D.Dynamics.b2World.prototype.GetControllerList = function() {
		return this.controllerList;
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} c
	 * @return {!Box2D.Dynamics.Controllers.b2Controller}
	 */
	Box2D.Dynamics.b2World.prototype.AddController = function(c) {
		if (c.m_world !== null && c.m_world != this) {
			throw new Error("Controller can only be a member of one world");
		}
		this.controllerList.AddController(c);
		c.m_world = this;
		return c;
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} c
	 */
	Box2D.Dynamics.b2World.prototype.RemoveController = function(c) {
		this.controllerList.RemoveController(c);
		c.m_world = null;
		c.Clear();
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} controller
	 * @return {!Box2D.Dynamics.Controllers.b2Controller}
	 */
	Box2D.Dynamics.b2World.prototype.CreateController = function(controller) {
		return this.AddController(controller);
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} controller
	 */
	Box2D.Dynamics.b2World.prototype.DestroyController = function(controller) {
		this.RemoveController(controller);
	};
	/**
	 * @param {boolean} flag
	 */
	Box2D.Dynamics.b2World.prototype.SetWarmStarting = function(flag) {
		this.m_warmStarting = flag;
	};
	/**
	 * @param {boolean} flag
	 */
	Box2D.Dynamics.b2World.prototype.SetContinuousPhysics = function(flag) {
		this.m_continuousPhysics = flag;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2World.prototype.GetBodyCount = function() {
		return this.bodyList.GetBodyCount();
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2World.prototype.GetJointCount = function() {
		return this.m_jointCount;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.b2World.prototype.GetContactCount = function() {
		return this.contactList.GetContactCount();
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} gravity
	 */
	Box2D.Dynamics.b2World.prototype.SetGravity = function(gravity) {
		this.m_gravity = gravity;
	};
	/**
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Dynamics.b2World.prototype.GetGravity = function() {
		return this.m_gravity;
	};
	/**
	 * @return {!Box2D.Dynamics.b2Body}
	 */
	Box2D.Dynamics.b2World.prototype.GetGroundBody = function() {
		return this.m_groundBody;
	};
	/**
	 * @param {number} dt
	 * @param {number} velocityIterations
	 * @param {number} positionIterations
	 */
	Box2D.Dynamics.b2World.prototype.Step = function(dt, velocityIterations, positionIterations) {
		if (this.m_newFixture) {
			this.m_contactManager.FindNewContacts();
			this.m_newFixture = false;
		}
		this.m_isLocked = true;
		var step = new Box2D.Dynamics.b2TimeStep(dt, this.m_inv_dt0 * dt /* dtRatio */, velocityIterations, positionIterations, this.m_warmStarting);
		this.m_contactManager.Collide();
		if (step.dt > 0.0) {
			this.Solve(step);
			if (this.m_continuousPhysics) {
				this.SolveTOI(step);
			}
			this.m_inv_dt0 = step.inv_dt;
		}
		this.m_isLocked = false;
	};
	Box2D.Dynamics.b2World.prototype.ClearForces = function() {
		for (var node = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.dynamicBodies); node; node = node.GetNextNode()) {
			node.body.m_force.SetZero();
			node.body.m_torque = 0.0;
		}
	};
	/**
	 * @param {function(!Box2D.Dynamics.b2Fixture):boolean} callback
	 * @param {!Box2D.Collision.b2AABB} aabb
	 */
	Box2D.Dynamics.b2World.prototype.QueryAABB = function(callback, aabb) {
		this.m_contactManager.m_broadPhase.Query(callback, aabb);
	};
	/**
	 * @param {function(!Box2D.Dynamics.b2Fixture): boolean} callback
	 * @param {!Box2D.Common.Math.b2Vec2} p
	 */
	Box2D.Dynamics.b2World.prototype.QueryPoint = function(callback, p) {
		/** @type {function(!Box2D.Dynamics.b2Fixture): boolean} */
		var WorldQueryWrapper = function(fixture) {
			if (fixture.TestPoint(p)) {
				return callback(fixture);
			} else {
				return true;
			}
		};
		var aabb = Box2D.Collision.b2AABB.Get();
		aabb.lowerBound_.Set(p.x - Box2D.Common.b2Settings.b2_linearSlop, p.y - Box2D.Common.b2Settings.b2_linearSlop);
		aabb.upperBound_.Set(p.x + Box2D.Common.b2Settings.b2_linearSlop, p.y + Box2D.Common.b2Settings.b2_linearSlop);
		this.m_contactManager.m_broadPhase.Query(WorldQueryWrapper, aabb);
		Box2D.Collision.b2AABB.Free(aabb);
	};
	/**
	 * @param {function(!Box2D.Dynamics.b2Fixture, !Box2D.Common.Math.b2Vec2, !Box2D.Common.Math.b2Vec2, number): number} callback
	 * @param {!Box2D.Common.Math.b2Vec2} point1
	 * @param {!Box2D.Common.Math.b2Vec2} point2
	 */
	Box2D.Dynamics.b2World.prototype.RayCast = function(callback, point1, point2) {
		var broadPhase = this.m_contactManager.m_broadPhase;
		var output = new Box2D.Collision.b2RayCastOutput();
		/**
		 * @param {!Box2D.Collision.b2RayCastInput} input
		 * @param {!Box2D.Dynamics.b2Fixture} fixture
		 */
		var RayCastWrapper = function(input, fixture) {
				var hit = fixture.RayCast(output, input);
				if (hit) {
					var flipFrac = 1 - output.fraction;
					var point = Box2D.Common.Math.b2Vec2.Get(flipFrac * point1.x + output.fraction * point2.x, flipFrac * point1.y + output.fraction * point2.y);
					var retVal = callback(fixture, point, output.normal, output.fraction);
					Box2D.Common.Math.b2Vec2.Free(point);
					return retVal;
				} else {
					return input.maxFraction;
				}
			};
		var input = new Box2D.Collision.b2RayCastInput(point1, point2, 1 /* maxFraction */ );
		broadPhase.RayCast(RayCastWrapper, input);
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} point1
	 * @param {!Box2D.Common.Math.b2Vec2} point2
	 * @return {Box2D.Dynamics.b2Fixture}
	 */
	Box2D.Dynamics.b2World.prototype.RayCastOne = function(point1, point2) {
		var result = null;
		/**
		 * @param {!Box2D.Dynamics.b2Fixture} fixture
		 * @param {!Box2D.Common.Math.b2Vec2} point
		 * @param {!Box2D.Common.Math.b2Vec2} normal
		 * @param {number} fraction
		 * @return {number}
		 */
		var RayCastOneWrapper = function(fixture, point, normal, fraction) {
			result = fixture;
			return fraction;
		};
		this.RayCast(RayCastOneWrapper, point1, point2);
		return result;
	};
	/**
	 * @param {!Box2D.Common.Math.b2Vec2} point1
	 * @param {!Box2D.Common.Math.b2Vec2} point2
	 * @return {Array.<Box2D.Dynamics.b2Fixture>}
	 */
	Box2D.Dynamics.b2World.prototype.RayCastAll = function(point1, point2) {
		var result = [];
		/**
		 * @param {!Box2D.Dynamics.b2Fixture} fixture
		 * @param {!Box2D.Common.Math.b2Vec2} point
		 * @param {!Box2D.Common.Math.b2Vec2} normal
		 * @param {number} fraction
		 * @return {number}
		 */
		var RayCastAllWrapper = function(fixture, point, normal, fraction) {
			result.push(fixture);
			return 1;
		};
		this.RayCast(RayCastAllWrapper, point1, point2);
		return result;
	};
	/**
	 * @return {!Box2D.Dynamics.b2BodyList}
	 */
	Box2D.Dynamics.b2World.prototype.GetBodyList = function() {
		return this.bodyList;
	};
	/**
	 * @return {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.b2World.prototype.GetJointList = function() {
		return this.m_jointList;
	};
	/**
	 * @return {Box2D.Dynamics.Contacts.b2Contact}
	 */
	Box2D.Dynamics.b2World.prototype.GetContactList = function() {
		return this.contactList;
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2World.prototype.IsLocked = function() {
		return this.m_isLocked;
	};
	var b2solvearray = [];
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 */
	Box2D.Dynamics.b2World.prototype.Solve = function(step) {
		for (var controllerNode = this.controllerList.GetFirstNode(); controllerNode; controllerNode = controllerNode.GetNextNode()) {
			controllerNode.controller.Step(step);
		}
		var m_island = new Box2D.Dynamics.b2Island(this.m_contactManager.m_contactListener, this.m_contactSolver);
		for (var bodyNode = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.allBodies); bodyNode; bodyNode = bodyNode.GetNextNode()) {
			bodyNode.body.m_islandFlag = false;
		}
		for (var contactNode = this.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			contactNode.contact.m_islandFlag = false;
		}
		for (var j = this.m_jointList; j; j = j.m_next) {
			j.m_islandFlag = false;
		}
		for (var bodyNode = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.nonStaticActiveAwakeBodies); bodyNode; bodyNode = bodyNode.GetNextNode()) {
			var seed = bodyNode.body;
			if (seed.m_islandFlag) {
				continue;
			}
			m_island.Clear();
			b2solvearray.length = 0;
			var stack = b2solvearray;
			stack.push(seed);
			seed.m_islandFlag = true;
			while (stack.length > 0) {
				var b = stack.pop();
				m_island.AddBody(b);
				if (!b.IsAwake()) {
					b.SetAwake(true);
				}
				if (b.GetType() == Box2D.Dynamics.b2BodyDef.b2_staticBody) {
					continue;
				}
				for (var contactNode = b.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.nonSensorEnabledTouchingContacts); contactNode; contactNode = contactNode.GetNextNode()) {
					var contact = contactNode.contact;
					if (contact.m_islandFlag) {
						continue;
					}
					m_island.AddContact(contact);
					contact.m_islandFlag = true;
					var other = contact.GetOther(b);
					if (other.m_islandFlag) {
						continue;
					}
					stack.push(other);
					other.m_islandFlag = true;
				}
				for (var jn = b.m_jointList; jn; jn = jn.next) {
					if (jn.joint.m_islandFlag || !jn.other.IsActive()) {
						continue;
					}
					m_island.AddJoint(jn.joint);
					jn.joint.m_islandFlag = true;
					if (jn.other.m_islandFlag) {
						continue;
					}
					stack.push(jn.other);
					jn.other.m_islandFlag = true;
				}
			}
			m_island.Solve(step, this.m_gravity, this.m_allowSleep);
		}
		for (var bodyNode = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.nonStaticActiveAwakeBodies); bodyNode; bodyNode = bodyNode.GetNextNode()) {
			bodyNode.body.SynchronizeFixtures();
		}
		this.m_contactManager.FindNewContacts();
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 */
	Box2D.Dynamics.b2World.prototype.SolveTOI = function(step) {
		var m_island = new Box2D.Dynamics.b2Island(this.m_contactManager.m_contactListener, this.m_contactSolver);
		for (var bodyNode = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.allBodies); bodyNode; bodyNode = bodyNode.GetNextNode()) {
			var b = bodyNode.body;
			b.m_islandFlag = false;
			b.m_sweep.t0 = 0.0;
		}
		for (var contactNode = this.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			contactNode.contact.m_islandFlag = false;
			contactNode.contact.m_toi = null;
		}
		for (var j = this.m_jointList; j; j = j.m_next) {
			j.m_islandFlag = false;
		}
		while (true) {
			var toi2 = this._SolveTOI2(step);
			var minContact = toi2.minContact;
			var minTOI = toi2.minTOI;
			if (minContact === null || Box2D.Dynamics.b2World.MAX_TOI < minTOI) {
				break;
			}
			var fixtureABody = minContact.m_fixtureA.GetBody();
			var fixtureBBody =  minContact.m_fixtureB.GetBody();
			Box2D.Dynamics.b2World.s_backupA.Set(fixtureABody.m_sweep);
			Box2D.Dynamics.b2World.s_backupB.Set(fixtureBBody.m_sweep);
			fixtureABody.Advance(minTOI);
			fixtureBBody.Advance(minTOI);
			minContact.Update(this.m_contactManager.m_contactListener);
			minContact.m_toi = null;
			if (minContact.sensor || !minContact.enabled) {
				fixtureABody.m_sweep.Set(Box2D.Dynamics.b2World.s_backupA);
				fixtureBBody.m_sweep.Set(Box2D.Dynamics.b2World.s_backupB);
				fixtureABody.SynchronizeTransform();
				fixtureBBody.SynchronizeTransform();
				continue;
			}
			if (!minContact.touching) {
				continue;
			}
			var seed = fixtureABody;
			if (seed.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
				seed = fixtureBBody;
			}
			m_island.Clear();
			b2solvearray.length = 0;
			var queue = b2solvearray;
			queue.push(seed);
			seed.m_islandFlag = true;
			while (queue.length > 0) {
				var b = queue.pop();
				m_island.AddBody(b);
				if (!b.IsAwake()) {
					b.SetAwake(true);
				}
				if (b.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
					continue;
				}
				for (var contactNode = b.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.nonSensorEnabledTouchingContacts); contactNode; contactNode = contactNode.GetNextNode()) {
					if (m_island.m_contactCount == Box2D.Common.b2Settings.b2_maxTOIContactsPerIsland) {
						break;
					}
					var contact = contactNode.contact;
					if (contact.m_islandFlag) {
						continue;
					}
					m_island.AddContact(contact);
					contact.m_islandFlag = true;
					var other = contact.GetOther(b);
					if (other.m_islandFlag) {
						continue;
					}
					if (other.GetType() != Box2D.Dynamics.b2BodyDef.b2_staticBody) {
						other.Advance(minTOI);
						other.SetAwake(true);
						queue.push(other);
					}
					other.m_islandFlag = true;
				}
				for (var jEdge = b.m_jointList; jEdge; jEdge = jEdge.next) {
					if (m_island.m_jointCount == Box2D.Common.b2Settings.b2_maxTOIJointsPerIsland) {
						continue;
					}
					if (jEdge.joint.m_islandFlag || !jEdge.other.IsActive()) {
						continue;
					}
					m_island.AddJoint(jEdge.joint);
					jEdge.joint.m_islandFlag = true;
					if (jEdge.other.m_islandFlag) {
						continue;
					}
					if (jEdge.other.GetType() != Box2D.Dynamics.b2BodyDef.b2_staticBody) {
						jEdge.other.Advance(minTOI);
						jEdge.other.SetAwake(true);
						queue.push(jEdge.other);
					}
					jEdge.other.m_islandFlag = true;
				}
			}
			m_island.SolveTOI(new Box2D.Dynamics.b2TimeStep((1.0 - minTOI) * step.dt /* dt */, 0 /* dtRatio */, step.velocityIterations, step.positionIterations, false /* warmStarting */));
			for (var i = 0; i < m_island.m_bodies.length; i++) {
				m_island.m_bodies[i].m_islandFlag = false;
				if (!m_island.m_bodies[i].IsAwake() || m_island.m_bodies[i].GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) {
					continue;
				}
				m_island.m_bodies[i].SynchronizeFixtures();
				for (var contactNode = m_island.m_bodies[i].contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts); contactNode; contactNode = contactNode.GetNextNode()) {
					contactNode.contact.m_toi = null;
				}
			}
			for (var i = 0; i < m_island.m_contactCount; i++) {
				m_island.m_contacts[i].m_islandFlag = false;
				m_island.m_contacts[i].m_toi = null;
			}
			for (var i = 0; i < m_island.m_jointCount; i++) {
				m_island.m_joints[i].m_islandFlag = false;
			}
			this.m_contactManager.FindNewContacts();
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @return {{minContact: Box2D.Dynamics.Contacts.b2Contact, minTOI: number}}
	 */
	Box2D.Dynamics.b2World.prototype._SolveTOI2 = function(step) {
		var minContact = null;
		var minTOI = 1.0;
		var contacts = 0;
		for (var contactNode = this.contactList.GetFirstNode(Box2D.Dynamics.Contacts.b2ContactList.TYPES.nonSensorEnabledContinuousContacts); contactNode; contactNode = contactNode.GetNextNode()) {
			var c = contactNode.contact;
			if (this._SolveTOI2SkipContact(step, c)) {
				continue;
			}
			var toi = 1.0;
			if (c.m_toi != null) {
				toi = c.m_toi;
			} else if (c.touching) {
				toi = 1;
				c.m_toi = toi;
			} else {
				var fixtureABody = c.m_fixtureA.GetBody();
				var fixtureBBody = c.m_fixtureB.GetBody();
				var t0 = fixtureABody.m_sweep.t0;
				if (fixtureABody.m_sweep.t0 < fixtureBBody.m_sweep.t0) {
					t0 = fixtureBBody.m_sweep.t0;
					fixtureABody.m_sweep.Advance(t0);
				} else if (fixtureBBody.m_sweep.t0 < fixtureABody.m_sweep.t0) {
					t0 = fixtureABody.m_sweep.t0;
					fixtureBBody.m_sweep.Advance(t0);
				}
				toi = c.ComputeTOI(fixtureABody.m_sweep, fixtureBBody.m_sweep);
;
				if (toi > 0.0 && toi < 1.0) {
					toi = (1.0 - toi) * t0 + toi;
				}
				c.m_toi = toi;
			}
			if (Number.MIN_VALUE < toi && toi < minTOI) {
				minContact = c;
				minTOI = toi;
			}
		}
		return {
			minContact: minContact,
			minTOI: minTOI
		};
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @param {!Box2D.Dynamics.Contacts.b2Contact} c
	 * @return {boolean}
	 */
	Box2D.Dynamics.b2World.prototype._SolveTOI2SkipContact = function(step, c) {
		var fixtureABody = c.m_fixtureA.GetBody();
		var fixtureBBody = c.m_fixtureB.GetBody();
		if ((fixtureABody.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody || !fixtureABody.IsAwake()) && (fixtureBBody.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody || !fixtureBBody.IsAwake())) {
			return true;
		}
		return false;
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2Contact = function(fixtureA, fixtureB) {
		/**
		 * @const
		 * @private
		 * @type {string}
		 */
		this.ID = "Contact" + Box2D.Dynamics.Contacts.b2Contact.NEXT_ID++;
		/**
		 * @private
		 * @type {!Box2D.Collision.b2Manifold}
		 */
		this.m_manifold = new Box2D.Collision.b2Manifold();
		/**
		 * @private
		 * @type {!Box2D.Collision.b2Manifold}
		 */
		this.m_oldManifold = new Box2D.Collision.b2Manifold();
		/**
		 * @private
		 * @type {boolean}
		 */
		this.touching = false;
		var bodyA = fixtureA.GetBody();
		var bodyB = fixtureB.GetBody();
		/**
		 * @private
		 * @type {boolean}
		 */
		this.continuous = (bodyA.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) ||
						  bodyA.IsBullet() ||
						  (bodyB.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) ||
						  bodyB.IsBullet();
		/**
		 * @private
		 * @type {boolean}
		 */
		this.sensor = fixtureA.IsSensor() || fixtureB.IsSensor();
		/**
		 * @private
		 * @type {boolean}
		 */
		this.filtering = false;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2Fixture}
		 */
		this.m_fixtureA = fixtureA;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2Fixture}
		 */
		this.m_fixtureB = fixtureB;
		/**
		 * @private
		 * @type {boolean}
		 */
		this.enabled = true;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Contacts.b2ContactList}
		 */
		this.bodyAList = bodyA.GetContactList();
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Contacts.b2ContactList}
		 */
		this.bodyBList = bodyB.GetContactList();
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Contacts.b2ContactList}
		 */
		this.worldList = bodyB.GetWorld().GetContactList();
		this.AddToLists();
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.Reset = function(fixtureA, fixtureB) {
		this.m_manifold.Reset();
		this.m_oldManifold.Reset();
		this.touching = false;
		var bodyA = fixtureA.GetBody();
		var bodyB = fixtureB.GetBody();
		this.continuous = (bodyA.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) ||
						  bodyA.IsBullet() ||
						  (bodyB.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody) ||
						  bodyB.IsBullet();
		this.sensor = fixtureA.IsSensor() || fixtureB.IsSensor();
		this.filtering = false;
		this.m_fixtureA = fixtureA;
		this.m_fixtureB = fixtureB;
		this.enabled = true;
		this.bodyAList = bodyA.GetContactList();
		this.bodyBList = bodyB.GetContactList();
		this.worldList = bodyB.GetWorld().GetContactList();
		this.AddToLists();
	};
	Box2D.Dynamics.Contacts.b2Contact.prototype.AddToLists = function () {
		this.bodyAList.AddContact(this);
		this.bodyBList.AddContact(this);
		this.worldList.AddContact(this);
		this.UpdateLists();
	};
	Box2D.Dynamics.Contacts.b2Contact.prototype.UpdateLists = function () {
		var nonSensorEnabledTouching = false;
		var nonSensorEnabledContinuous = false;
		if (!this.IsSensor() && this.IsEnabled()) {
			if (this.IsTouching()) {
				nonSensorEnabledTouching = true;
			}
			if (this.IsContinuous()) {
				nonSensorEnabledContinuous = true;
			}
		}
		this.bodyAList.UpdateContact(this, nonSensorEnabledTouching, nonSensorEnabledContinuous);
		this.bodyBList.UpdateContact(this, nonSensorEnabledTouching, nonSensorEnabledContinuous);
		this.worldList.UpdateContact(this, nonSensorEnabledTouching, nonSensorEnabledContinuous);
	};
	Box2D.Dynamics.Contacts.b2Contact.prototype.RemoveFromLists = function () {
		this.bodyAList.RemoveContact(this);
		this.bodyBList.RemoveContact(this);
		this.worldList.RemoveContact(this);
	};
	/**
	 * @return {!Box2D.Collision.b2Manifold}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.GetManifold = function () {
	  return this.m_manifold;
	};
	/**
	 * @param {!Box2D.Collision.b2WorldManifold} worldManifold
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.GetWorldManifold = function (worldManifold) {
		var bodyA = this.m_fixtureA.GetBody();
		var bodyB = this.m_fixtureB.GetBody();
		var shapeA = this.m_fixtureA.GetShape();
		var shapeB = this.m_fixtureB.GetShape();
		worldManifold.Initialize(this.m_manifold, bodyA.GetTransform(), shapeA.m_radius, bodyB.GetTransform(), shapeB.m_radius);
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.IsTouching = function () {
	  return this.touching;
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.IsContinuous = function () {
	  return this.continuous;
	};
	/**
	 * @param {boolean} sensor
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.SetSensor = function (sensor) {
	   this.sensor = sensor;
	   this.UpdateLists();
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.IsSensor = function () {
	  return this.sensor;
	};
	/**
	 * @param {boolean} flag
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.SetEnabled = function (flag) {
	   this.enabled = flag;
	   this.UpdateLists();
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.IsEnabled = function () {
	   return this.enabled;
	};
	/**
	 * @return {Box2D.Dynamics.Contacts.b2Contact}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.GetNext = function () {
	  return this.m_next;
	};
	/**
	 * @return {!Box2D.Dynamics.b2Fixture}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.GetFixtureA = function () {
	  return this.m_fixtureA;
	};
	/**
	 * @return {!Box2D.Dynamics.b2Fixture}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.GetFixtureB = function () {
	  return this.m_fixtureB;
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 * @return {!Box2D.Dynamics.b2Body}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.GetOther = function (body) {
		var bodyA = this.m_fixtureA.GetBody();
		if (bodyA != body) {
			return bodyA;
		} else {
			return this.m_fixtureB.GetBody();
		}
	};
	Box2D.Dynamics.Contacts.b2Contact.prototype.FlagForFiltering = function () {
	   this.filtering = true;
	};
	Box2D.Dynamics.Contacts.b2Contact.prototype.ClearFiltering = function () {
	   this.filtering = false;
	};
	/**
	 * @return {boolean}
	 */
	Box2D.Dynamics.Contacts.b2Contact.prototype.IsFiltering = function () {
	   return this.filtering;
	};
	Box2D.Dynamics.Contacts.b2Contact.prototype.Update = function (listener) {
	  var tManifold = this.m_oldManifold;
	  this.m_oldManifold = this.m_manifold;
	  this.m_manifold = tManifold;
	  this.enabled = true;
	  var touching = false;
	  var wasTouching = this.IsTouching();
	  var bodyA = this.m_fixtureA.GetBody();
	  var bodyB = this.m_fixtureB.GetBody();
	  var aabbOverlap = this.m_fixtureA.m_aabb.TestOverlap(this.m_fixtureB.m_aabb);
	  if (this.sensor) {
		 if (aabbOverlap) {
			touching = Box2D.Collision.Shapes.b2Shape.TestOverlap(this.m_fixtureA.GetShape(), bodyA.GetTransform(), this.m_fixtureB.GetShape(), bodyB.GetTransform());
		 }
		 this.m_manifold.m_pointCount = 0;
	  } else {
		 if (bodyA.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody || bodyA.IsBullet() || bodyB.GetType() != Box2D.Dynamics.b2BodyDef.b2_dynamicBody || bodyB.IsBullet()) {
			this.continuous = true;
		 } else {
			this.continuous = false;
		 }
		 if (aabbOverlap) {
			this.Evaluate();
			touching = this.m_manifold.m_pointCount > 0;
			for (var i = 0; i < this.m_manifold.m_pointCount; i++) {
			   var mp2 = this.m_manifold.m_points[i];
			   mp2.m_normalImpulse = 0.0;
			   mp2.m_tangentImpulse = 0.0;
			   for (var j = 0; j < this.m_oldManifold.m_pointCount; j++) {
				  var mp1 = this.m_oldManifold.m_points[j];
				  if (mp1.m_id.GetKey() == mp2.m_id.GetKey()) {
					 mp2.m_normalImpulse = mp1.m_normalImpulse;
					 mp2.m_tangentImpulse = mp1.m_tangentImpulse;
					 break;
				  }
			   }
			}
		 } else {
			this.m_manifold.m_pointCount = 0;
		 }
		 if (touching != wasTouching) {
			bodyA.SetAwake(true);
			bodyB.SetAwake(true);
		 }
	  }
	  this.touching = touching;
	  if (touching != wasTouching) {
		 this.UpdateLists();
	  }
	  if (!wasTouching && touching) {
		 listener.BeginContact(this);
	  }
	  if (wasTouching && !touching) {
		 listener.EndContact(this);
	  }
	  if (!this.sensor) {
		 listener.PreSolve(this, this.m_oldManifold);
	  }
	};
	Box2D.Dynamics.Contacts.b2Contact.prototype.Evaluate = function () {};
	Box2D.Dynamics.Contacts.b2Contact.prototype.ComputeTOI = function (sweepA, sweepB) {
	  Box2D.Dynamics.Contacts.b2Contact.s_input.proxyA.Set(this.m_fixtureA.GetShape());
	  Box2D.Dynamics.Contacts.b2Contact.s_input.proxyB.Set(this.m_fixtureB.GetShape());
	  Box2D.Dynamics.Contacts.b2Contact.s_input.sweepA = sweepA;
	  Box2D.Dynamics.Contacts.b2Contact.s_input.sweepB = sweepB;
	  Box2D.Dynamics.Contacts.b2Contact.s_input.tolerance = Box2D.Common.b2Settings.b2_linearSlop;
	  return Box2D.Collision.b2TimeOfImpact.TimeOfImpact(Box2D.Dynamics.Contacts.b2Contact.s_input);
	};
	Box2D.Dynamics.Contacts.b2Contact.s_input = new Box2D.Collision.b2TOIInput();
	/**
	 * @type {number}
	 * @private
	 */
	Box2D.Dynamics.Contacts.b2Contact.NEXT_ID = 0;
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 * @constructor
	 * @extends {Box2D.Dynamics.Contacts.b2Contact}
	 */
	Box2D.Dynamics.Contacts.b2CircleContact = function(fixtureA, fixtureB) {
		Box2D.Dynamics.Contacts.b2Contact.call(this, fixtureA, fixtureB);
	};
	c2inherit(Box2D.Dynamics.Contacts.b2CircleContact, Box2D.Dynamics.Contacts.b2Contact);
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 */
	Box2D.Dynamics.Contacts.b2CircleContact.prototype.Reset = function(fixtureA, fixtureB) {
		Box2D.Dynamics.Contacts.b2Contact.prototype.Reset.call(this, fixtureA, fixtureB);
	};
	Box2D.Dynamics.Contacts.b2CircleContact.prototype.Evaluate = function() {
		Box2D.Collision.b2Collision.CollideCircles(this.m_manifold, this.m_fixtureA.GetShape(), this.m_fixtureA.GetBody().m_xf, this.m_fixtureB.GetShape(), this.m_fixtureB.GetBody().m_xf);
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2ContactConstraint = function() {
		this.localPlaneNormal = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localPoint = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.normal = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.normalMass = new Box2D.Common.Math.b2Mat22();
		this.K = new Box2D.Common.Math.b2Mat22();
		this.points = [];
		for (var i = 0; i < Box2D.Common.b2Settings.b2_maxManifoldPoints; i++) {
			this.points[i] = new Box2D.Dynamics.Contacts.b2ContactConstraintPoint();
		}
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2ContactConstraintPoint = function() {
		  this.localPoint = Box2D.Common.Math.b2Vec2.Get(0, 0);
		  this.rA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		  this.rB = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	Box2D.Dynamics.Contacts.b2ContactConstraintPoint.prototype.Reset = function() {
		this.localPoint.Set(0, 0);
		this.rA.Set(0, 0);
		this.rB.Set(0, 0);
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2ContactFactory = function() {
		/**
		 * @private
		 */
		this.m_registers = {};
		/**
		 * @private
		 * @type {Object.<Object.<Array.<!Box2D.Dynamics.b2Contact>>>}
		 */
		this.m_freeContacts = {};
		this.AddType(Box2D.Dynamics.Contacts.b2CircleContact, Box2D.Collision.Shapes.b2CircleShape.NAME, Box2D.Collision.Shapes.b2CircleShape.NAME);
		this.AddType(Box2D.Dynamics.Contacts.b2PolyAndCircleContact, Box2D.Collision.Shapes.b2PolygonShape.NAME, Box2D.Collision.Shapes.b2CircleShape.NAME);
		this.AddType(Box2D.Dynamics.Contacts.b2PolygonContact, Box2D.Collision.Shapes.b2PolygonShape.NAME, Box2D.Collision.Shapes.b2PolygonShape.NAME);
		this.AddType(Box2D.Dynamics.Contacts.b2EdgeAndCircleContact, Box2D.Collision.Shapes.b2EdgeShape.NAME, Box2D.Collision.Shapes.b2CircleShape.NAME);
		this.AddType(Box2D.Dynamics.Contacts.b2PolyAndEdgeContact, Box2D.Collision.Shapes.b2PolygonShape.NAME, Box2D.Collision.Shapes.b2EdgeShape.NAME);
	};
	Box2D.Dynamics.Contacts.b2ContactFactory.prototype.AddType = function(ctor, type1, type2) {
		this.m_freeContacts[type1] = this.m_freeContacts[type1] || {};
		this.m_freeContacts[type1][type2] = this.m_freeContacts[type1][type2] || [];
		this.m_registers[type1] = this.m_registers[type1] || {};
		this.m_registers[type1][type2] = new Box2D.Dynamics.Contacts.b2ContactRegister();
		this.m_registers[type1][type2].ctor = ctor;
		this.m_registers[type1][type2].primary = true;
		if (type1 != type2) {
			this.m_registers[type2] = this.m_registers[type2] || {};
			this.m_registers[type2][type1] = new Box2D.Dynamics.Contacts.b2ContactRegister();
			this.m_registers[type2][type1].ctor = ctor;
			this.m_registers[type2][type1].primary = false;
		}
	};
	Box2D.Dynamics.Contacts.b2ContactFactory.prototype.Create = function(fixtureA, fixtureB) {
		var type1 = fixtureA.GetShape().GetTypeName();
		var type2 = fixtureB.GetShape().GetTypeName();
		var reg = this.m_registers[type1][type2];
		var ctor = reg.ctor;
		if (ctor != null) {
			if (reg.primary) {
				if (this.m_freeContacts[type1][type2].length > 0) {
					var c = this.m_freeContacts[type1][type2].pop();
					c.Reset(fixtureA, fixtureB);
					return c;
				}
				return new ctor(fixtureA, fixtureB);
			} else {
				if (this.m_freeContacts[type2][type1].length > 0) {
					var c = this.m_freeContacts[type2][type1].pop();
					c.Reset(fixtureB, fixtureA);
					return c;
				}
				return new ctor(fixtureB, fixtureA);
			}
		} else {
			return null;
		}
	};
	Box2D.Dynamics.Contacts.b2ContactFactory.prototype.Destroy = function(contact) {
		var type1 = contact.m_fixtureA.GetShape().GetTypeName();
		var type2 = contact.m_fixtureB.GetShape().GetTypeName();
		this.m_freeContacts[type1][type2].push(contact);
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2ContactList = function() {
		/**
		 * @private
		 * @type {Array.<Box2D.Dynamics.Contacts.b2ContactListNode>}
		 */
		this.contactFirstNodes = [];
		for(var i = 0; i <= Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts; i++) {
			this.contactFirstNodes[i] = null;
		}
		/**
		 * @private
		 * @type {Array.<Box2D.Dynamics.Contacts.b2ContactListNode>}
		 */
		this.contactLastNodes = [];
		for(var i = 0; i <= Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts; i++) {
			this.contactLastNodes[i] = null;
		}
		/**
		 * @private
		 * @type {Object.<Array.<Box2D.Dynamics.Contacts.b2ContactListNode>>}
		 */
		this.contactNodeLookup = {};
		/**
		 * @private
		 * @type {number}
		 */
		this.contactCount = 0;
	};
	/**
	 * @param {number} type
	 * @return {Box2D.Dynamics.Contacts.b2ContactListNode}
	 */
	Box2D.Dynamics.Contacts.b2ContactList.prototype.GetFirstNode = function(type) {
		return this.contactFirstNodes[type];
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2Contact} contact
	 */
	Box2D.Dynamics.Contacts.b2ContactList.prototype.AddContact = function(contact) {
		var contactID = contact.ID;
		if (this.contactNodeLookup[contactID] == null) {
			this.contactNodeLookup[contactID] = [];
			for(var i = 0; i <= Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts; i++) {
				this.contactNodeLookup[contactID][i] = null;
			}
			this.CreateNode(contact, contactID, Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts);
			this.contactCount++;
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2Contact} contact
	 */
	Box2D.Dynamics.Contacts.b2ContactList.prototype.UpdateContact = function(contact, nonSensorEnabledTouching, nonSensorEnabledContinuous) {
		if (nonSensorEnabledTouching) {
			this.CreateNode(contact, contact.ID, Box2D.Dynamics.Contacts.b2ContactList.TYPES.nonSensorEnabledTouchingContacts);
		} else {
			this.RemoveNode(contact.ID, Box2D.Dynamics.Contacts.b2ContactList.TYPES.nonSensorEnabledTouchingContacts);
		}
		if (nonSensorEnabledContinuous) {
			this.CreateNode(contact, contact.ID, Box2D.Dynamics.Contacts.b2ContactList.TYPES.nonSensorEnabledContinuousContacts);
		} else {
			this.RemoveNode(contact.ID, Box2D.Dynamics.Contacts.b2ContactList.TYPES.nonSensorEnabledContinuousContacts);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2Contact} contact
	 */
	Box2D.Dynamics.Contacts.b2ContactList.prototype.RemoveContact = function(contact) {
		var contactID = contact.ID;
		if (this.contactNodeLookup[contactID] != null) {
			for(var i = 0; i <= Box2D.Dynamics.Contacts.b2ContactList.TYPES.allContacts; i++) {
				this.RemoveNode(contactID, i);
			}
			delete this.contactNodeLookup[contactID];
			this.contactCount--;
		}
	};
	/**
	 * @param {string} contactID
	 * @param {number} type
	 */
	Box2D.Dynamics.Contacts.b2ContactList.prototype.RemoveNode = function(contactID, type) {
		var nodeList = this.contactNodeLookup[contactID];
		if (nodeList == null) {
			return;
		}
		var node = nodeList[type];
		if (node == null) {
			return;
		}
		nodeList[type] = null;
		var prevNode = node.GetPreviousNode();
		var nextNode = node.GetNextNode();
		if (prevNode == null) {
			this.contactFirstNodes[type] = nextNode;
		} else {
			prevNode.SetNextNode(nextNode);
		}
		if (nextNode == null) {
			this.contactLastNodes[type] = prevNode;
		} else {
			nextNode.SetPreviousNode(prevNode);
		}
		Box2D.Dynamics.Contacts.b2ContactListNode.FreeNode(node);
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2Contact} contact
	 * @param {string} contactID
	 * @param {number} type
	 */
	Box2D.Dynamics.Contacts.b2ContactList.prototype.CreateNode = function(contact, contactID, type) {
		var nodeList = this.contactNodeLookup[contactID];
		if (nodeList[type] == null) {
			nodeList[type] = Box2D.Dynamics.Contacts.b2ContactListNode.GetNode(contact);
			var prevNode = this.contactLastNodes[type];
			if (prevNode != null) {
				prevNode.SetNextNode(nodeList[type]);
				nodeList[type].SetPreviousNode(prevNode);
			} else {
				this.contactFirstNodes[type] = nodeList[type];
			}
			this.contactLastNodes[type] = nodeList[type];
		}
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.Contacts.b2ContactList.prototype.GetContactCount = function() {
		return this.contactCount;
	};
	/**
	 * @enum {number}
	 */
	Box2D.Dynamics.Contacts.b2ContactList.TYPES = {
		nonSensorEnabledTouchingContacts: 0,
		nonSensorEnabledContinuousContacts: 1,
		allContacts: 2 // Assumed to be last by above code
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2Contact} contact
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode = function(contact) {
		/**
		 * @private
		 * @type {!Box2D.Dynamics.Contacts.b2Contact}
		 */
		this.contact = contact;
		/**
		 * @private
		 * @type {Box2D.Dynamics.Contacts.b2ContactListNode}
		 */
		this.next = null;
		/**
		 * @private
		 * @type {Box2D.Dynamics.Contacts.b2ContactListNode}
		 */
		this.previous = null;
	};
	/**
	 * @private
	 * @type {Array.<!Box2D.Dynamics.Contacts.b2ContactListNode>
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode.freeNodes = [];
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2Contact} contact
	 * @return {!Box2D.Dynamics.Contacts.b2ContactListNode}
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode.GetNode = function(contact) {
		if (Box2D.Dynamics.Contacts.b2ContactListNode.freeNodes.length > 0) {
			var node = Box2D.Dynamics.Contacts.b2ContactListNode.freeNodes.pop();
			node.next = null;
			node.previous = null;
			node.contact = contact;
			return node;
		} else {
			return new Box2D.Dynamics.Contacts.b2ContactListNode(contact);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2ContactListNode} node
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode.FreeNode = function(node) {
		Box2D.Dynamics.Contacts.b2ContactListNode.freeNodes.push(node);
	};
	/**
	 * @param {Box2D.Dynamics.Contacts.b2ContactListNode} node
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode.prototype.SetNextNode = function(node) {
		this.next = node;
	};
	/**
	 * @param {Box2D.Dynamics.Contacts.b2ContactListNode} node
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode.prototype.SetPreviousNode = function(node) {
		this.previous = node;
	};
	/**
	 * @return {!Box2D.Dynamics.Contacts.b2Contact}
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode.prototype.GetContact = function() {
		return this.contact;
	};
	/**
	 * @return {Box2D.Dynamics.Contacts.b2ContactListNode}
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode.prototype.GetNextNode = function() {
		return this.next;
	};
	/**
	 * @return {Box2D.Dynamics.Contacts.b2ContactListNode}
	 */
	Box2D.Dynamics.Contacts.b2ContactListNode.prototype.GetPreviousNode = function() {
		return this.previous;
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2ContactRegister = function () {
		this.pool = null;
		this.poolCount = 0;
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2PositionSolverManifold = function() {
		this.m_normal = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_separations = [];
		this.m_points = [];
		for (var i = 0; i < Box2D.Common.b2Settings.b2_maxManifoldPoints; i++) {
			this.m_points[i] = Box2D.Common.Math.b2Vec2.Get(0, 0);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraint} cc
	 */
	Box2D.Dynamics.Contacts.b2PositionSolverManifold.prototype.Initialize = function(cc) {
;
		switch (cc.type) {
			case Box2D.Collision.b2Manifold.e_circles:
				this._InitializeCircles(cc);
				break;
			case Box2D.Collision.b2Manifold.e_faceA:
				this._InitializeFaceA(cc);
				break;
			case Box2D.Collision.b2Manifold.e_faceB:
				this._InitializeFaceB(cc);
				break;
		}
	};
	/**
	 * @private
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraint} cc
	 */
	Box2D.Dynamics.Contacts.b2PositionSolverManifold.prototype._InitializeCircles = function(cc) {
		var tMat = cc.bodyA.m_xf.R;
		var tVec = cc.localPoint;
		var pointAX = cc.bodyA.m_xf.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
		var pointAY = cc.bodyA.m_xf.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
		tMat = cc.bodyB.m_xf.R;
		tVec = cc.points[0].localPoint;
		var pointBX = cc.bodyB.m_xf.position.x + (tMat.col1.x * tVec.x + tMat.col2.x * tVec.y);
		var pointBY = cc.bodyB.m_xf.position.y + (tMat.col1.y * tVec.x + tMat.col2.y * tVec.y);
		var dX = pointBX - pointAX;
		var dY = pointBY - pointAY;
		var d2 = dX * dX + dY * dY;
		if (d2 > Box2D.Common.b2Settings.MIN_VALUE_SQUARED) {
			var d = Math.sqrt(d2);
			this.m_normal.x = dX / d;
			this.m_normal.y = dY / d;
		} else {
			this.m_normal.x = 1.0;
			this.m_normal.y = 0.0;
		}
		this.m_points[0].x = 0.5 * (pointAX + pointBX);
		this.m_points[0].y = 0.5 * (pointAY + pointBY);
		this.m_separations[0] = dX * this.m_normal.x + dY * this.m_normal.y - cc.radius;
	};
	/**
	 * @private
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraint} cc
	 */
	Box2D.Dynamics.Contacts.b2PositionSolverManifold.prototype._InitializeFaceA = function(cc) {
		this.m_normal.x = cc.bodyA.m_xf.R.col1.x * cc.localPlaneNormal.x + cc.bodyA.m_xf.R.col2.x * cc.localPlaneNormal.y;
		this.m_normal.y = cc.bodyA.m_xf.R.col1.y * cc.localPlaneNormal.x + cc.bodyA.m_xf.R.col2.y * cc.localPlaneNormal.y;
		var planePointX = cc.bodyA.m_xf.position.x + (cc.bodyA.m_xf.R.col1.x * cc.localPoint.x + cc.bodyA.m_xf.R.col2.x * cc.localPoint.y);
		var planePointY = cc.bodyA.m_xf.position.y + (cc.bodyA.m_xf.R.col1.y * cc.localPoint.x + cc.bodyA.m_xf.R.col2.y * cc.localPoint.y);
		for (var i = 0; i < cc.pointCount; i++) {
			var clipPointX = cc.bodyB.m_xf.position.x + (cc.bodyB.m_xf.R.col1.x * cc.points[i].localPoint.x + cc.bodyB.m_xf.R.col2.x * cc.points[i].localPoint.y);
			var clipPointY = cc.bodyB.m_xf.position.y + (cc.bodyB.m_xf.R.col1.y * cc.points[i].localPoint.x + cc.bodyB.m_xf.R.col2.y * cc.points[i].localPoint.y);
			this.m_separations[i] = (clipPointX - planePointX) * this.m_normal.x + (clipPointY - planePointY) * this.m_normal.y - cc.radius;
			this.m_points[i].x = clipPointX;
			this.m_points[i].y = clipPointY;
		}
	};
	/**
	 * @private
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraint} cc
	 */
	Box2D.Dynamics.Contacts.b2PositionSolverManifold.prototype._InitializeFaceB = function(cc) {
		this.m_normal.x = cc.bodyB.m_xf.R.col1.x * cc.localPlaneNormal.x + cc.bodyB.m_xf.R.col2.x * cc.localPlaneNormal.y;
		this.m_normal.y = cc.bodyB.m_xf.R.col1.y * cc.localPlaneNormal.x + cc.bodyB.m_xf.R.col2.y * cc.localPlaneNormal.y;
		var planePointX = cc.bodyB.m_xf.position.x + (cc.bodyB.m_xf.R.col1.x * cc.localPoint.x + cc.bodyB.m_xf.R.col2.x * cc.localPoint.y);
		var planePointY = cc.bodyB.m_xf.position.y + (cc.bodyB.m_xf.R.col1.y * cc.localPoint.x + cc.bodyB.m_xf.R.col2.y * cc.localPoint.y);
		for (var i = 0; i < cc.pointCount; i++) {
			var clipPointX = cc.bodyA.m_xf.position.x + (cc.bodyA.m_xf.R.col1.x * cc.points[i].localPoint.x + cc.bodyA.m_xf.R.col2.x * cc.points[i].localPoint.y);
			var clipPointY = cc.bodyA.m_xf.position.y + (cc.bodyA.m_xf.R.col1.y * cc.points[i].localPoint.x + cc.bodyA.m_xf.R.col2.y * cc.points[i].localPoint.y);
			this.m_separations[i] = (clipPointX - planePointX) * this.m_normal.x + (clipPointY - planePointY) * this.m_normal.y - cc.radius;
			this.m_points[i].Set(clipPointX, clipPointY);
		}
		this.m_normal.x *= -1;
		this.m_normal.y *= -1;
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Contacts.b2ContactSolver = function() {
		/**
		 * @private
		 * @type {Array.<!Box2D.Dynamics.Contacts.b2ContactConstraint>}
		 */
		this.m_constraints = [];
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 * @param {Array.<!Box2D.Dynamics.Contacts.b2Contact>} contacts
	 * @param {number} contactCount
	 */
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.Initialize = function(step, contacts, contactCount) {
		this.m_constraintCount = contactCount;
		while (this.m_constraints.length < this.m_constraintCount) {
			this.m_constraints[this.m_constraints.length] = new Box2D.Dynamics.Contacts.b2ContactConstraint();
		}
		for (var i = 0; i < contactCount; i++) {
			var contact = contacts[i];
			var fixtureA = contact.m_fixtureA;
			var fixtureB = contact.m_fixtureB;
			var shapeA = fixtureA.m_shape;
			var shapeB = fixtureB.m_shape;
			var radiusA = shapeA.m_radius;
			var radiusB = shapeB.m_radius;
			var bodyA = fixtureA.GetBody();
			var bodyB = fixtureB.GetBody();
			var manifold = contact.GetManifold();
			var friction = Box2D.Common.b2Settings.b2MixFriction(fixtureA.GetFriction(), fixtureB.GetFriction());
			var restitution = Box2D.Common.b2Settings.b2MixRestitution(fixtureA.GetRestitution(), fixtureB.GetRestitution());
			var vAX = bodyA.m_linearVelocity.x;
			var vAY = bodyA.m_linearVelocity.y;
			var vBX = bodyB.m_linearVelocity.x;
			var vBY = bodyB.m_linearVelocity.y;
			var wA = bodyA.m_angularVelocity;
			var wB = bodyB.m_angularVelocity;
;
			Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold.Initialize(manifold, bodyA.m_xf, radiusA, bodyB.m_xf, radiusB);
			var normalX = Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold.m_normal.x;
			var normalY = Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold.m_normal.y;
			var cc = this.m_constraints[i];
			cc.bodyA = bodyA;
			cc.bodyB = bodyB;
			cc.manifold = manifold;
			cc.normal.x = normalX;
			cc.normal.y = normalY;
			cc.pointCount = manifold.m_pointCount;
			cc.friction = friction;
			cc.restitution = restitution;
			cc.localPlaneNormal.x = manifold.m_localPlaneNormal.x;
			cc.localPlaneNormal.y = manifold.m_localPlaneNormal.y;
			cc.localPoint.x = manifold.m_localPoint.x;
			cc.localPoint.y = manifold.m_localPoint.y;
			cc.radius = radiusA + radiusB;
			cc.type = manifold.m_type;
			for (var k = 0; k < cc.pointCount; ++k) {
				var cp = manifold.m_points[k];
				var ccp = cc.points[k];
				ccp.normalImpulse = cp.m_normalImpulse;
				ccp.tangentImpulse = cp.m_tangentImpulse;
				ccp.localPoint.SetV(cp.m_localPoint);
				var rAX = ccp.rA.x = Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold.m_points[k].x - bodyA.m_sweep.c.x;
				var rAY = ccp.rA.y = Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold.m_points[k].y - bodyA.m_sweep.c.y;
				var rBX = ccp.rB.x = Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold.m_points[k].x - bodyB.m_sweep.c.x;
				var rBY = ccp.rB.y = Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold.m_points[k].y - bodyB.m_sweep.c.y;
				var rnA = rAX * normalY - rAY * normalX;
				var rnB = rBX * normalY - rBY * normalX;
				rnA *= rnA;
				rnB *= rnB;
				var kNormal = bodyA.m_invMass + bodyB.m_invMass + bodyA.m_invI * rnA + bodyB.m_invI * rnB;
				ccp.normalMass = 1.0 / kNormal;
				var kEqualized = bodyA.m_mass * bodyA.m_invMass + bodyB.m_mass * bodyB.m_invMass;
				kEqualized += bodyA.m_mass * bodyA.m_invI * rnA + bodyB.m_mass * bodyB.m_invI * rnB;
				ccp.equalizedMass = 1.0 / kEqualized;
				var tangentX = normalY;
				var tangentY = (-normalX);
				var rtA = rAX * tangentY - rAY * tangentX;
				var rtB = rBX * tangentY - rBY * tangentX;
				rtA *= rtA;
				rtB *= rtB;
				var kTangent = bodyA.m_invMass + bodyB.m_invMass + bodyA.m_invI * rtA + bodyB.m_invI * rtB;
				ccp.tangentMass = 1.0 / kTangent;
				ccp.velocityBias = 0.0;
				var tX = vBX + ((-wB * rBY)) - vAX - ((-wA * rAY));
				var tY = vBY + (wB * rBX) - vAY - (wA * rAX);
				var vRel = cc.normal.x * tX + cc.normal.y * tY;
				if (vRel < (-Box2D.Common.b2Settings.b2_velocityThreshold)) {
					ccp.velocityBias += (-cc.restitution * vRel);
				}
			}
			if (cc.pointCount == 2) {
				var ccp1 = cc.points[0];
				var ccp2 = cc.points[1];
				var invMassA = bodyA.m_invMass;
				var invIA = bodyA.m_invI;
				var invMassB = bodyB.m_invMass;
				var invIB = bodyB.m_invI;
				var rn1A = ccp1.rA.x * normalY - ccp1.rA.y * normalX;
				var rn1B = ccp1.rB.x * normalY - ccp1.rB.y * normalX;
				var rn2A = ccp2.rA.x * normalY - ccp2.rA.y * normalX;
				var rn2B = ccp2.rB.x * normalY - ccp2.rB.y * normalX;
				var k11 = invMassA + invMassB + invIA * rn1A * rn1A + invIB * rn1B * rn1B;
				var k22 = invMassA + invMassB + invIA * rn2A * rn2A + invIB * rn2B * rn2B;
				var k12 = invMassA + invMassB + invIA * rn1A * rn2A + invIB * rn1B * rn2B;
				var k_maxConditionNumber = 100.0;
				if (k11 * k11 < k_maxConditionNumber * (k11 * k22 - k12 * k12)) {
					cc.K.col1.Set(k11, k12);
					cc.K.col2.Set(k12, k22);
					cc.K.GetInverse(cc.normalMass);
				} else {
					cc.pointCount = 1;
				}
			}
		}
	};
	/**
	 * @param {!Box2D.Dynamics.b2TimeStep} step
	 */
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.InitVelocityConstraints = function(step) {
		for (var i = 0; i < this.m_constraintCount; ++i) {
			var c = this.m_constraints[i];
			var bodyA = c.bodyA;
			var bodyB = c.bodyB;
			var invMassA = bodyA.m_invMass;
			var invIA = bodyA.m_invI;
			var invMassB = bodyB.m_invMass;
			var invIB = bodyB.m_invI;
			var normalX = c.normal.x;
			var normalY = c.normal.y;
			var tangentX = normalY;
			var tangentY = (-normalX);
			var tX = 0;
			var j = 0;
			var tCount = 0;
			if (step.warmStarting) {
				tCount = c.pointCount;
				for (j = 0; j < tCount; ++j) {
					var ccp = c.points[j];
					ccp.normalImpulse *= step.dtRatio;
					ccp.tangentImpulse *= step.dtRatio;
					var PX = ccp.normalImpulse * normalX + ccp.tangentImpulse * tangentX;
					var PY = ccp.normalImpulse * normalY + ccp.tangentImpulse * tangentY;
					bodyA.m_angularVelocity -= invIA * (ccp.rA.x * PY - ccp.rA.y * PX);
					bodyA.m_linearVelocity.x -= invMassA * PX;
					bodyA.m_linearVelocity.y -= invMassA * PY;
					bodyB.m_angularVelocity += invIB * (ccp.rB.x * PY - ccp.rB.y * PX);
					bodyB.m_linearVelocity.x += invMassB * PX;
					bodyB.m_linearVelocity.y += invMassB * PY;
				}
			} else {
				tCount = c.pointCount;
				for (j = 0; j < tCount; ++j) {
					var ccp2 = c.points[j];
					ccp2.normalImpulse = 0.0;
					ccp2.tangentImpulse = 0.0;
				}
			}
		}
	};
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.SolveVelocityConstraints = function() {
		for (var i = 0; i < this.m_constraintCount; i++) {
			this.SolveVelocityConstraints_Constraint(this.m_constraints[i]);
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraint} c
	 */
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.SolveVelocityConstraints_Constraint = function(c) {
		var normalX = c.normal.x;
		var normalY = c.normal.y;
		for (var j = 0; j < c.pointCount; j++) {
			Box2D.Dynamics.Contacts.b2ContactSolver.prototype.SolveVelocityConstraints_ConstraintPoint(c, c.points[j]);
		}
		if (c.pointCount == 1) {
			var ccp = c.points[0];
			var dvX = c.bodyB.m_linearVelocity.x - (c.bodyB.m_angularVelocity * ccp.rB.y) - c.bodyA.m_linearVelocity.x + (c.bodyA.m_angularVelocity * ccp.rA.y);
			var dvY = c.bodyB.m_linearVelocity.y + (c.bodyB.m_angularVelocity * ccp.rB.x) - c.bodyA.m_linearVelocity.y - (c.bodyA.m_angularVelocity * ccp.rA.x);
			var vn = dvX * normalX + dvY * normalY;
			var newImpulse = ccp.normalImpulse - (ccp.normalMass * (vn - ccp.velocityBias));
			newImpulse = newImpulse > 0 ? newImpulse : 0.0;
			var impulseLambda = newImpulse - ccp.normalImpulse;
			var PX = impulseLambda * normalX;
			var PY = impulseLambda * normalY;
			c.bodyA.m_linearVelocity.x -= c.bodyA.m_invMass * PX;
			c.bodyA.m_linearVelocity.y -= c.bodyA.m_invMass * PY;
			c.bodyA.m_angularVelocity -= c.bodyA.m_invI * (ccp.rA.x * PY - ccp.rA.y * PX);
			c.bodyB.m_linearVelocity.x += c.bodyB.m_invMass * PX;
			c.bodyB.m_linearVelocity.y += c.bodyB.m_invMass * PY;
			c.bodyB.m_angularVelocity += c.bodyB.m_invI * (ccp.rB.x * PY - ccp.rB.y * PX);
			ccp.normalImpulse = newImpulse;
		} else {
			var cp1 = c.points[0];
			var cp2 = c.points[1];
			var aX = cp1.normalImpulse;
			var aY = cp2.normalImpulse;
			var dv1X = c.bodyB.m_linearVelocity.x - c.bodyB.m_angularVelocity * cp1.rB.y - c.bodyA.m_linearVelocity.x + c.bodyA.m_angularVelocity * cp1.rA.y;
			var dv1Y = c.bodyB.m_linearVelocity.y + c.bodyB.m_angularVelocity * cp1.rB.x - c.bodyA.m_linearVelocity.y - c.bodyA.m_angularVelocity * cp1.rA.x;
			var dv2X = c.bodyB.m_linearVelocity.x - c.bodyB.m_angularVelocity * cp2.rB.y - c.bodyA.m_linearVelocity.x + c.bodyA.m_angularVelocity * cp2.rA.y;
			var dv2Y = c.bodyB.m_linearVelocity.y + c.bodyB.m_angularVelocity * cp2.rB.x - c.bodyA.m_linearVelocity.y - c.bodyA.m_angularVelocity * cp2.rA.x;
			var bX = (dv1X * normalX + dv1Y * normalY) - cp1.velocityBias;
			var bY = (dv2X * normalX + dv2Y * normalY) - cp2.velocityBias;
			bX -= c.K.col1.x * aX + c.K.col2.x * aY;
			bY -= c.K.col1.y * aX + c.K.col2.y * aY;
			for (;;) {
				var firstX = (-(c.normalMass.col1.x * bX + c.normalMass.col2.x * bY));
				if (firstX >= 0) {
					var firstY = (-(c.normalMass.col1.y * bX + c.normalMass.col2.y * bY));
					if(firstY >= 0) {
						var dX = firstX - aX;
						var dY = firstY - aY;
						this.SolveVelocityConstraints_ConstraintPointUpdate(c, cp1, cp2, firstX - aX, firstY - aY);
						cp1.normalImpulse = firstX;
						cp2.normalImpulse = firstY;
						break;
					}
				}
				var secondX = (-cp1.normalMass * bX);
				if (secondX >= 0) {
					if ((c.K.col1.y * secondX + bY) >= 0) {
						var dX = secondX - aX;
						var dY = -aY;
						this.SolveVelocityConstraints_ConstraintPointUpdate(c, cp1, cp2, secondX - aX, -aY);
						cp1.normalImpulse = secondX;
						cp2.normalImpulse = 0;
						break;
					}
				}
				var secondY = (-cp2.normalMass * bY);
				if (secondY >= 0) {
					if ((c.K.col2.x * secondY + bX) >= 0) {
						this.SolveVelocityConstraints_ConstraintPointUpdate(c, cp1, cp2, -aX, secondY - aY);
						cp1.normalImpulse = 0;
						cp2.normalImpulse = secondY;
						break;
					}
				}
				if (bX >= 0 && bY >= 0) {
					this.SolveVelocityConstraints_ConstraintPointUpdate(c, cp1, cp2, -aX, -aY);
					cp1.normalImpulse = 0;
					cp2.normalImpulse = 0;
					break;
				}
				break;
			}
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraint} c
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraintPoint} ccp
	 */
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.SolveVelocityConstraints_ConstraintPoint = function(c, ccp) {
		var tangentX = c.normal.y;
		var tangentY = -c.normal.x;
		var dvX = c.bodyB.m_linearVelocity.x - c.bodyB.m_angularVelocity * ccp.rB.y - c.bodyA.m_linearVelocity.x + c.bodyA.m_angularVelocity * ccp.rA.y;
		var dvY = c.bodyB.m_linearVelocity.y + c.bodyB.m_angularVelocity * ccp.rB.x - c.bodyA.m_linearVelocity.y - c.bodyA.m_angularVelocity * ccp.rA.x;
		var vt = dvX * tangentX + dvY * tangentY;
		var maxFriction = c.friction * ccp.normalImpulse;
		var newImpulse = Box2D.Common.Math.b2Math.Clamp(ccp.tangentImpulse - ccp.tangentMass * vt, -maxFriction, maxFriction);
		var impulseLambda = newImpulse - ccp.tangentImpulse;
		var PX = impulseLambda * tangentX;
		var PY = impulseLambda * tangentY;
		c.bodyA.m_linearVelocity.x -= c.bodyA.m_invMass * PX;
		c.bodyA.m_linearVelocity.y -= c.bodyA.m_invMass * PY;
		c.bodyA.m_angularVelocity -= c.bodyA.m_invI * (ccp.rA.x * PY - ccp.rA.y * PX);
		c.bodyB.m_linearVelocity.x += c.bodyB.m_invMass * PX;
		c.bodyB.m_linearVelocity.y += c.bodyB.m_invMass * PY;
		c.bodyB.m_angularVelocity += c.bodyB.m_invI * (ccp.rB.x * PY - ccp.rB.y * PX);
		ccp.tangentImpulse = newImpulse;
	};
	/**
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraint} c
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraintPoint} cp1
	 * @param {!Box2D.Dynamics.Contacts.b2ContactConstraintPoint} cp2
	 * @param {number} dX
	 * @param {number} dY
	 */
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.SolveVelocityConstraints_ConstraintPointUpdate = function(c, cp1, cp2, dX, dY) {
		var P1X = dX * c.normal.x;
		var P1Y = dX * c.normal.y;
		var P2X = dY * c.normal.x;
		var P2Y = dY * c.normal.y;
		c.bodyA.m_linearVelocity.x -= c.bodyA.m_invMass * (P1X + P2X);
		c.bodyA.m_linearVelocity.y -= c.bodyA.m_invMass * (P1Y + P2Y);
		c.bodyA.m_angularVelocity -= c.bodyA.m_invI * (cp1.rA.x * P1Y - cp1.rA.y * P1X + cp2.rA.x * P2Y - cp2.rA.y * P2X);
		c.bodyB.m_linearVelocity.x += c.bodyB.m_invMass * (P1X + P2X);
		c.bodyB.m_linearVelocity.y += c.bodyB.m_invMass * (P1Y + P2Y);
		c.bodyB.m_angularVelocity += c.bodyB.m_invI * (cp1.rB.x * P1Y - cp1.rB.y * P1X + cp2.rB.x * P2Y - cp2.rB.y * P2X);
		cp1.normalImpulse = 0;
		cp2.normalImpulse = 0;
	};
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.FinalizeVelocityConstraints = function() {
		for (var i = 0; i < this.m_constraintCount; ++i) {
			var c = this.m_constraints[i];
			var m = c.manifold;
			for (var j = 0; j < c.pointCount; ++j) {
				var point1 = m.m_points[j];
				var point2 = c.points[j];
				point1.m_normalImpulse = point2.normalImpulse;
				point1.m_tangentImpulse = point2.tangentImpulse;
			}
		}
	};
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.SolvePositionConstraints = function(baumgarte) {
		if (baumgarte === undefined) baumgarte = 0;
		var minSeparation = 0.0;
		for (var i = 0; i < this.m_constraintCount; i++) {
			var c = this.m_constraints[i];
			var bodyA = c.bodyA;
			var bodyB = c.bodyB;
			var invMassA = bodyA.m_mass * bodyA.m_invMass;
			var invIA = bodyA.m_mass * bodyA.m_invI;
			var invMassB = bodyB.m_mass * bodyB.m_invMass;
			var invIB = bodyB.m_mass * bodyB.m_invI;
			Box2D.Dynamics.Contacts.b2ContactSolver.s_psm.Initialize(c);
			var normal = Box2D.Dynamics.Contacts.b2ContactSolver.s_psm.m_normal;
			for (var j = 0; j < c.pointCount; j++) {
				var ccp = c.points[j];
				var point = Box2D.Dynamics.Contacts.b2ContactSolver.s_psm.m_points[j];
				var separation = Box2D.Dynamics.Contacts.b2ContactSolver.s_psm.m_separations[j];
				var rAX = point.x - bodyA.m_sweep.c.x;
				var rAY = point.y - bodyA.m_sweep.c.y;
				var rBX = point.x - bodyB.m_sweep.c.x;
				var rBY = point.y - bodyB.m_sweep.c.y;
				minSeparation = minSeparation < separation ? minSeparation : separation;
				var C = Box2D.Common.Math.b2Math.Clamp(baumgarte * (separation + Box2D.Common.b2Settings.b2_linearSlop), (-Box2D.Common.b2Settings.b2_maxLinearCorrection), 0.0);
				var impulse = (-ccp.equalizedMass * C);
				var PX = impulse * normal.x;
				var PY = impulse * normal.y;
				bodyA.m_sweep.c.x -= invMassA * PX;
				bodyA.m_sweep.c.y -= invMassA * PY;
				bodyA.m_sweep.a -= invIA * (rAX * PY - rAY * PX);
				bodyA.SynchronizeTransform();
				bodyB.m_sweep.c.x += invMassB * PX;
				bodyB.m_sweep.c.y += invMassB * PY;
				bodyB.m_sweep.a += invIB * (rBX * PY - rBY * PX);
				bodyB.SynchronizeTransform();
			}
		}
		return minSeparation > (-1.5 * Box2D.Common.b2Settings.b2_linearSlop);
	};
	Box2D.Dynamics.Contacts.b2ContactSolver.prototype.SolvePositionConstraints_NEW = function(baumgarte) {
		if (baumgarte === undefined) baumgarte = 0;
		var minSeparation = 0.0;
		for (var i = 0; i < this.m_constraintCount; i++) {
			var c = this.m_constraints[i];
			var bodyA = c.bodyA;
			var bodyB = c.bodyB;
			var invMassA = bodyA.m_mass * bodyA.m_invMass;
			var invIA = bodyA.m_mass * bodyA.m_invI;
			var invMassB = bodyB.m_mass * bodyB.m_invMass;
			var invIB = bodyB.m_mass * bodyB.m_invI;
			Box2D.Dynamics.Contacts.b2ContactSolver.s_psm.Initialize(c);
			var normal = Box2D.Dynamics.Contacts.b2ContactSolver.s_psm.m_normal;
			for (var j = 0; j < c.pointCount; j++) {
				var ccp = c.points[j];
				var point = Box2D.Dynamics.Contacts.b2ContactSolver.s_psm.m_points[j];
				var separation = Box2D.Dynamics.Contacts.b2ContactSolver.s_psm.m_separations[j];
				var rAX = point.x - bodyA.m_sweep.c.x;
				var rAY = point.y - bodyA.m_sweep.c.y;
				var rBX = point.x - bodyB.m_sweep.c.x;
				var rBY = point.y - bodyB.m_sweep.c.y;
				if (separation < minSeparation) {
					minSeparation = separation;
				}
				var C = 0;
				if (baumgarte != 0) {
					Box2D.Common.Math.b2Math.Clamp(baumgarte * (separation + Box2D.Common.b2Settings.b2_linearSlop), (-Box2D.Common.b2Settings.b2_maxLinearCorrection), 0.0);
				}
				var impulse = (-ccp.equalizedMass * C);
				var PX = impulse * normal.x;
				var PY = impulse * normal.y;
				bodyA.m_sweep.c.x -= invMassA * PX;
				bodyA.m_sweep.c.y -= invMassA * PY;
				bodyA.m_sweep.a -= invIA * (rAX * PY - rAY * PX);
				bodyA.SynchronizeTransform();
				bodyB.m_sweep.c.x += invMassB * PX;
				bodyB.m_sweep.c.y += invMassB * PY;
				bodyB.m_sweep.a += invIB * (rBX * PY - rBY * PX);
				bodyB.SynchronizeTransform();
			}
		}
		return minSeparation > (-1.5 * Box2D.Common.b2Settings.b2_linearSlop);
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 * @constructor
	 * @extends {Box2D.Dynamics.Contacts.b2Contact}
	 */
	Box2D.Dynamics.Contacts.b2EdgeAndCircleContact = function(fixtureA, fixtureB) {
		Box2D.Dynamics.Contacts.b2Contact.call(this, fixtureA, fixtureB);
	};
	c2inherit(Box2D.Dynamics.Contacts.b2EdgeAndCircleContact, Box2D.Dynamics.Contacts.b2Contact);
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 */
	Box2D.Dynamics.Contacts.b2EdgeAndCircleContact.prototype.Reset = function(fixtureA, fixtureB) {
		Box2D.Dynamics.Contacts.b2Contact.prototype.Reset.call(this, fixtureA, fixtureB);
	};
	Box2D.Dynamics.Contacts.b2EdgeAndCircleContact.prototype.Evaluate = function() {
		var bA = this.m_fixtureA.GetBody();
		var bB = this.m_fixtureB.GetBody();
		this.b2CollideEdgeAndCircle(this.m_manifold, this.m_fixtureA.GetShape(), this.m_fixtureA.GetBody().m_xf, this.m_fixtureB.GetShape(), this.m_fixtureB.GetBody().m_xf);
	};
	Box2D.Dynamics.Contacts.b2EdgeAndCircleContact.prototype.b2CollideEdgeAndCircle = function(manifold, edge, xf1, circle, xf2) {};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 * @constructor
	 * @extends {Box2D.Dynamics.Contacts.b2Contact}
	 */
	Box2D.Dynamics.Contacts.b2PolyAndCircleContact = function(fixtureA, fixtureB) {
;
;
		Box2D.Dynamics.Contacts.b2Contact.call(this, fixtureA, fixtureB);
	};
	c2inherit(Box2D.Dynamics.Contacts.b2PolyAndCircleContact, Box2D.Dynamics.Contacts.b2Contact);
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 */
	Box2D.Dynamics.Contacts.b2PolyAndCircleContact.prototype.Reset = function(fixtureA, fixtureB) {
;
;
		Box2D.Dynamics.Contacts.b2Contact.prototype.Reset.call(this, fixtureA, fixtureB);
	};
	Box2D.Dynamics.Contacts.b2PolyAndCircleContact.prototype.Evaluate = function() {
		Box2D.Collision.b2Collision.CollidePolygonAndCircle(this.m_manifold, this.m_fixtureA.GetShape(), this.m_fixtureA.GetBody().m_xf, this.m_fixtureB.GetShape(), this.m_fixtureB.GetBody().m_xf);
	};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 * @constructor
	 * @extends {Box2D.Dynamics.Contacts.b2Contact}
	 */
	Box2D.Dynamics.Contacts.b2PolyAndEdgeContact = function(fixtureA, fixtureB) {
;
;
		Box2D.Dynamics.Contacts.b2Contact.call(this, fixtureA, fixtureB);
	};
	c2inherit(Box2D.Dynamics.Contacts.b2PolyAndEdgeContact, Box2D.Dynamics.Contacts.b2Contact);
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 */
	Box2D.Dynamics.Contacts.b2PolyAndEdgeContact.prototype.Reset = function(fixtureA, fixtureB) {
;
;
		Box2D.Dynamics.Contacts.b2Contact.prototype.Reset.call(this, fixtureA, fixtureB);
	};
	Box2D.Dynamics.Contacts.b2PolyAndEdgeContact.prototype.Evaluate = function() {
		this.b2CollidePolyAndEdge(this.m_manifold, this.m_fixtureA.GetShape(), this.m_fixtureA.GetBody().m_xf, this.m_fixtureB.GetShape(), this.m_fixtureB.GetBody().m_xf);
	};
	Box2D.Dynamics.Contacts.b2PolyAndEdgeContact.prototype.b2CollidePolyAndEdge = function (manifold, polygon, xf1, edge, xf2) {};
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 * @constructor
	 * @extends {Box2D.Dynamics.Contacts.b2Contact}
	 */
	Box2D.Dynamics.Contacts.b2PolygonContact = function(fixtureA, fixtureB) {
		Box2D.Dynamics.Contacts.b2Contact.call(this, fixtureA, fixtureB);
	};
	c2inherit(Box2D.Dynamics.Contacts.b2PolygonContact, Box2D.Dynamics.Contacts.b2Contact);
	/**
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureA
	 * @param {!Box2D.Dynamics.b2Fixture} fixtureB
	 */
	Box2D.Dynamics.Contacts.b2PolygonContact.prototype.Reset = function(fixtureA, fixtureB) {
		Box2D.Dynamics.Contacts.b2Contact.prototype.Reset.call(this, fixtureA, fixtureB);
	};
	Box2D.Dynamics.Contacts.b2PolygonContact.prototype.Evaluate = function() {
		Box2D.Collision.b2Collision.CollidePolygons(this.m_manifold, this.m_fixtureA.GetShape(), this.m_fixtureA.GetBody().m_xf, this.m_fixtureB.GetShape(), this.m_fixtureB.GetBody().m_xf);
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Controllers.b2Controller = function() {
		/**
		 * @const
		 * @private
		 * @type {string}
		 */
		this.ID = "Controller" + Box2D.Dynamics.Controllers.b2Controller.NEXT_ID++;
		/**
		 * @type {Box2D.Dynamics.b2World}
		 */
		this.m_world = null;
		/**
		 * @private
		 * @type {!Box2D.Dynamics.b2BodyList}
		 */
		this.bodyList = new Box2D.Dynamics.b2BodyList();
	};
	Box2D.Dynamics.Controllers.b2Controller.prototype.Step = function(step) {};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 */
	Box2D.Dynamics.Controllers.b2Controller.prototype.AddBody = function(body) {
		this.bodyList.AddBody(body);
		body.AddController(this);
	};
	/**
	 * @param {!Box2D.Dynamics.b2Body} body
	 */
	Box2D.Dynamics.Controllers.b2Controller.prototype.RemoveBody = function(body) {
		this.bodyList.RemoveBody(body);
		body.RemoveController(this);
	};
	Box2D.Dynamics.Controllers.b2Controller.prototype.Clear = function() {
		for (var node = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.allBodies); node; node = node.GetNextNode()) {
			this.RemoveBody(node.body);
		}
	};
	/**
	 * @return {!Box2D.Dynamics.b2BodyList}
	 */
	Box2D.Dynamics.Controllers.b2Controller.prototype.GetBodyList = function() {
		return this.bodyList;
	};
	/**
	 * @type {number}
	 * @private
	 */
	Box2D.Dynamics.Controllers.b2Controller.NEXT_ID = 0;
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Controllers.b2Controller}
	 */
	Box2D.Dynamics.Controllers.b2BuoyancyController = function() {
		Box2D.Dynamics.Controllers.b2Controller.call(this);
		this.normal = Box2D.Common.Math.b2Vec2.Get(0, -1);
		this.offset = 0;
		this.density = 0;
		this.velocity = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.linearDrag = 2;
		this.angularDrag = 1;
		this.useDensity = false;
		this.useWorldGravity = true;
		this.gravity = null;
	};
	c2inherit(Box2D.Dynamics.Controllers.b2BuoyancyController, Box2D.Dynamics.Controllers.b2Controller);
	Box2D.Dynamics.Controllers.b2BuoyancyController.prototype.Step = function(step) {
		if (this.useWorldGravity) {
			this.gravity = this.m_world.GetGravity().Copy();
		}
		for (var bodyNode = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.awakeBodies); bodyNode; bodyNode = bodyNode.GetNextNode()) {
			var body = bodyNode.body;
			var areac = Box2D.Common.Math.b2Vec2.Get(0, 0);
			var massc = Box2D.Common.Math.b2Vec2.Get(0, 0);
			var area = 0.0;
			var mass = 0.0;
			for (var fixtureNode = body.GetFixtureList().GetFirstNode(); fixtureNode; fixtureNode = fixtureNode.GetNextNode()) {
				var sc = Box2D.Common.Math.b2Vec2.Get(0, 0);
				var sarea = fixtureNode.fixture.GetShape().ComputeSubmergedArea(this.normal, this.offset, body.GetTransform(), sc);
				area += sarea;
				areac.x += sarea * sc.x;
				areac.y += sarea * sc.y;
				var shapeDensity = 0;
				if (this.useDensity) {
					shapeDensity = 1;
				} else {
					shapeDensity = 1;
				}
				mass += sarea * shapeDensity;
				massc.x += sarea * sc.x * shapeDensity;
				massc.y += sarea * sc.y * shapeDensity;
			}
			if (area < Number.MIN_VALUE) {
				continue;
			}
			areac.x /= area;
			areac.y /= area;
			massc.x /= mass;
			massc.y /= mass;
			var buoyancyForce = this.gravity.GetNegative();
			buoyancyForce.Multiply(this.density * area);
			body.ApplyForce(buoyancyForce, massc);
			var dragForce = body.GetLinearVelocityFromWorldPoint(areac);
			dragForce.Subtract(this.velocity);
			dragForce.Multiply((-this.linearDrag * area));
			body.ApplyForce(dragForce, areac);
			body.ApplyTorque((-body.GetInertia() / body.GetMass() * area * body.GetAngularVelocity() * this.angularDrag));
			Box2D.Common.Math.b2Vec2.Free(areac);
			Box2D.Common.Math.b2Vec2.Free(massc);
		}
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Controllers.b2Controller}
	 */
	Box2D.Dynamics.Controllers.b2ConstantAccelController = function() {
		Box2D.Dynamics.Controllers.b2Controller.call(this);
		this.A = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	c2inherit(Box2D.Dynamics.Controllers.b2ConstantAccelController, Box2D.Dynamics.Controllers.b2Controller);
	Box2D.Dynamics.Controllers.b2ConstantAccelController.prototype.Step = function(step) {
		var smallA = Box2D.Common.Math.b2Vec2.Get(this.A.x * step.dt, this.A.y * step.dt);
		for (var bodyNode = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.awakeBodies); bodyNode; bodyNode = bodyNode.GetNextNode()) {
			var body = bodyNode.body;
			var oldVelocity = body.GetLinearVelocity();
			body.SetLinearVelocity(Box2D.Common.Math.b2Vec2.Get(oldVelocity.x + smallA.x, oldVelocity.y + smallA.y));
		}
		Box2D.Common.Math.b2Vec2.Free(smallA);
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Controllers.b2Controller}
	 */
	Box2D.Dynamics.Controllers.b2ConstantForceController = function() {
		Box2D.Dynamics.Controllers.b2Controller.call(this);
		this.F = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	c2inherit(Box2D.Dynamics.Controllers.b2ConstantForceController, Box2D.Dynamics.Controllers.b2Controller);
	Box2D.Dynamics.Controllers.b2ConstantForceController.prototype.Step = function(step) {
		for (var bodyNode = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.awakeBodies); bodyNode; bodyNode = bodyNode.GetNextNode()) {
			var body = bodyNode.body;
			body.ApplyForce(this.F, body.GetWorldCenter());
		}
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Controllers.b2ControllerList = function() {
		/**
		 * @private
		 * @type {Box2D.Dynamics.Controllers.b2ControllerListNode}
		 */
		this.controllerFirstNode = null;
		/**
		 * @private
		 * @type {Box2D.Dynamics.Controllers.b2ControllerListNode}
		 */
		this.controllerLastNode = null;
		/**
		 * @private
		 * @type {Object.<Box2D.Dynamics.Controllers.b2ControllerListNode>}
		 */
		this.controllerNodeLookup = {};
		/**
		 * @private
		 * @type {number}
		 */
		this.controllerCount = 0;
	};
	/**
	 * @return {Box2D.Dynamics.Controllers.b2ControllerListNode}
	 */
	Box2D.Dynamics.Controllers.b2ControllerList.prototype.GetFirstNode = function() {
		return this.controllerFirstNode;
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} controller
	 */
	Box2D.Dynamics.Controllers.b2ControllerList.prototype.AddController = function(controller) {
		var controllerID = controller.ID;
		if (this.controllerNodeLookup[controllerID] == null) {
			var node = new Box2D.Dynamics.Controllers.b2ControllerListNode(controller);
			var prevNode = this.controllerLastNode;
			if (prevNode != null) {
				prevNode.SetNextNode(node);
			} else {
				this.controllerFirstNode = node;
			}
			node.SetPreviousNode(prevNode);
			this.controllerLastNode = node;
			this.controllerNodeLookup[controllerID] = node;
			this.controllerCount++;
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} controller
	 */
	Box2D.Dynamics.Controllers.b2ControllerList.prototype.RemoveController = function(controller) {
		var controllerID = controller.ID;
		var node = this.controllerNodeLookup[controllerID];
		if (node == null) {
			return;
		}
		var prevNode = node.GetPreviousNode();
		var nextNode = node.GetNextNode();
		if (prevNode == null) {
			this.controllerFirstNode = nextNode;
		} else {
			prevNode.SetNextNode(nextNode);
		}
		if (nextNode == null) {
			this.controllerLastNode = prevNode;
		} else {
			nextNode.SetPreviousNode(prevNode);
		}
		delete this.controllerNodeLookup[controllerID];
		this.controllerCount--;
	};
	/**
	 * @return {number}
	 */
	Box2D.Dynamics.Controllers.b2ControllerList.prototype.GetControllerCount = function() {
		return this.controllerCount;
	};
	/**
	 * @param {!Box2D.Dynamics.Controllers.b2Controller} controller
	 * @constructor
	 */
	Box2D.Dynamics.Controllers.b2ControllerListNode = function(controller) {
		/**
		 * @const
		 * @type {!Box2D.Dynamics.Controllers.b2Controller}
		 */
		this.controller = controller;
		/**
		 * @private
		 * @type {Box2D.Dynamics.Controllers.b2ControllerListNode}
		 */
		this.next = null;
		/**
		 * @private
		 * @type {Box2D.Dynamics.Controllers.b2ControllerListNode}
		 */
		this.previous = null;
	};
	/**
	 * @param {Box2D.Dynamics.Controllers.b2ControllerListNode} node
	 */
	Box2D.Dynamics.Controllers.b2ControllerListNode.prototype.SetNextNode = function(node) {
		this.next = node;
	};
	/**
	 * @param {Box2D.Dynamics.Controllers.b2ControllerListNode} node
	 */
	Box2D.Dynamics.Controllers.b2ControllerListNode.prototype.SetPreviousNode = function(node) {
		this.previous = node;
	};
	/**
	 * @return {Box2D.Dynamics.Controllers.b2ControllerListNode}
	 */
	Box2D.Dynamics.Controllers.b2ControllerListNode.prototype.GetNextNode = function() {
		return this.next;
	};
	/**
	 * @return {Box2D.Dynamics.Controllers.b2ControllerListNode}
	 */
	Box2D.Dynamics.Controllers.b2ControllerListNode.prototype.GetPreviousNode = function() {
		return this.previous;
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Controllers.b2Controller}
	 */
	Box2D.Dynamics.Controllers.b2GravityController = function() {
		Box2D.Dynamics.Controllers.b2Controller.call(this);
		this.G = 1;
		this.invSqr = true;
	};
	c2inherit(Box2D.Dynamics.Controllers.b2GravityController, Box2D.Dynamics.Controllers.b2Controller);
	Box2D.Dynamics.Controllers.b2GravityController.prototype.Step = function(step) {
		var i = null;
		var body1 = null;
		var p1 = null;
		var mass1 = 0;
		var j = null;
		var body2 = null;
		var p2 = null;
		var dx = 0;
		var dy = 0;
		var r2 = 0;
		var f = null;
		if (this.invSqr) {
			for (var body1Node = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.allBodies); body1Node; body1Node = body1Node.GetNextNode()) {
				var body1 = body1Node.body;
				var p1 = body1.GetWorldCenter();
				var mass1 = body1.GetMass();
				for (var body2Node = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.allBodies); body2Node; body2Node = body2Node.GetNextNode()) {
					var body2 = body2Node.body;
					if ( !body1.IsAwake() && !body2.IsAwake() ) {
						continue;
					}
					var p2 = body2.GetWorldCenter();
					var dx = p2.x - p1.x;
					var dy = p2.y - p1.y;
					var r2 = dx * dx + dy * dy;
					if (r2 < Number.MIN_VALUE) {
						continue;
					}
					var f = Box2D.Common.Math.b2Vec2.Get(dx, dy);
					f.Multiply(this.G / r2 / Math.sqrt(r2) * mass1 * body2.GetMass());
					if (body1.IsAwake()) {
						body1.ApplyForce(f, p1);
					}
					f.Multiply(-1);
					if (body2.IsAwake()) {
						body2.ApplyForce(f, p2);
					}
					Box2D.Common.Math.b2Vec2.Free(f);
				}
			}
		} else {
			for (var body1Node = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.allBodies); body1Node; body1Node = body1Node.GetNextNode()) {
				var body1 = bodyNode.body;
				var p1 = body1.GetWorldCenter();
				var mass1 = body1.GetMass();
				for (var body2Node = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.allBodies); body2Node; body2Node = body2Node.GetNextNode()) {
					var body2 = bodyNode.body;
					if ( !body1.IsAwake() && !body2.IsAwake() ) {
						continue;
					}
					var p2 = body2.GetWorldCenter();
					var dx = p2.x - p1.x;
					var dy = p2.y - p1.y;
					var r2 = dx * dx + dy * dy;
					if (r2 < Number.MIN_VALUE) {
						continue;
					}
					var f = Box2D.Common.Math.b2Vec2.Get(dx, dy);
					f.Multiply(this.G / r2 * mass1 * body2.GetMass());
					if (body1.IsAwake()) {
						body1.ApplyForce(f, p1);
					}
					f.Multiply(-1);
					if (body2.IsAwake()) {
						body2.ApplyForce(f, p2);
					}
					Box2D.Common.Math.b2Vec2.Free(f);
				}
			}
		}
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Controllers.b2Controller}
	 */
	Box2D.Dynamics.Controllers.b2TensorDampingController = function() {
		Box2D.Dynamics.Controllers.b2Controller.call(this);
		this.T = new Box2D.Common.Math.b2Mat22();
		this.maxTimestep = 0;
	};
	c2inherit(Box2D.Dynamics.Controllers.b2TensorDampingController, Box2D.Dynamics.Controllers.b2Controller);
	/**
	 * @param {number} xDamping
	 * @param {number} yDamping
	 */
	Box2D.Dynamics.Controllers.b2TensorDampingController.prototype.SetAxisAligned = function(xDamping, yDamping) {
		this.T.col1.x = (-xDamping);
		this.T.col1.y = 0;
		this.T.col2.x = 0;
		this.T.col2.y = (-yDamping);
		if (xDamping > 0 || yDamping > 0) {
			this.maxTimestep = 1 / Math.max(xDamping, yDamping);
		} else {
			this.maxTimestep = 0;
		}
	};
	Box2D.Dynamics.Controllers.b2TensorDampingController.prototype.Step = function(step) {
		var timestep = step.dt;
		if (timestep <= Number.MIN_VALUE) return;
		if (timestep > this.maxTimestep && this.maxTimestep > 0) timestep = this.maxTimestep;
		for (var bodyNode = this.bodyList.GetFirstNode(Box2D.Dynamics.b2BodyList.TYPES.awakeBodies); bodyNode; bodyNode = bodyNode.GetNextNode()) {
			var body = bodyNode.body;
			var damping = body.GetWorldVector(Box2D.Common.Math.b2Math.MulMV(this.T, body.GetLocalVector(body.GetLinearVelocity())));
			body.SetLinearVelocity(Box2D.Common.Math.b2Vec2.Get(body.GetLinearVelocity().x + damping.x * timestep, body.GetLinearVelocity().y + damping.y * timestep));
		}
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2JointDef} def
	 * @constructor
	 */
	Box2D.Dynamics.Joints.b2Joint = function(def) {
		this.m_edgeA = new Box2D.Dynamics.Joints.b2JointEdge();
		this.m_edgeB = new Box2D.Dynamics.Joints.b2JointEdge();
		this.m_localCenterA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localCenterB = Box2D.Common.Math.b2Vec2.Get(0, 0);
;
		this.m_type = def.type;
		this.m_prev = null;
		this.m_next = null;
		this.m_bodyA = def.bodyA;
		this.m_bodyB = def.bodyB;
		this.m_collideConnected = def.collideConnected;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.GetType = function() {
		return this.m_type;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.GetAnchorA = function() {
		return null;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.GetAnchorB = function() {
		return null;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.GetReactionForce = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return null;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.GetReactionTorque = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return 0.0;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.GetBodyA = function() {
		return this.m_bodyA;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.GetBodyB = function() {
		return this.m_bodyB;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.GetNext = function() {
		return this.m_next;
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.IsActive = function() {
		return this.m_bodyA.IsActive() && this.m_bodyB.IsActive();
	};
	Box2D.Dynamics.Joints.b2Joint.Create = function(def) {
		return def.Create();
	};
	Box2D.Dynamics.Joints.b2Joint.prototype.InitVelocityConstraints = function(step) {};
	Box2D.Dynamics.Joints.b2Joint.prototype.SolveVelocityConstraints = function(step) {};
	Box2D.Dynamics.Joints.b2Joint.prototype.FinalizeVelocityConstraints = function() {};
	Box2D.Dynamics.Joints.b2Joint.prototype.SolvePositionConstraints = function(baumgarte) {
		return false;
	};
	Box2D.Dynamics.Joints.b2Joint.e_unknownJoint = 0;
	Box2D.Dynamics.Joints.b2Joint.e_revoluteJoint = 1;
	Box2D.Dynamics.Joints.b2Joint.e_prismaticJoint = 2;
	Box2D.Dynamics.Joints.b2Joint.e_distanceJoint = 3;
	Box2D.Dynamics.Joints.b2Joint.e_pulleyJoint = 4;
	Box2D.Dynamics.Joints.b2Joint.e_mouseJoint = 5;
	Box2D.Dynamics.Joints.b2Joint.e_gearJoint = 6;
	Box2D.Dynamics.Joints.b2Joint.e_lineJoint = 7;
	Box2D.Dynamics.Joints.b2Joint.e_weldJoint = 8;
	Box2D.Dynamics.Joints.b2Joint.e_frictionJoint = 9;
	Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit = 0;
	Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit = 1;
	Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit = 2;
	Box2D.Dynamics.Joints.b2Joint.e_equalLimits = 3;
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Joints.b2JointDef = function () {
		this.type = Box2D.Dynamics.Joints.b2Joint.e_unknownJoint;
		this.bodyA = null;
		this.bodyB = null;
		this.collideConnected = false;
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Joints.b2JointEdge = function () {};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2DistanceJointDef} def
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.Joints.b2DistanceJoint = function(def) {
		Box2D.Dynamics.Joints.b2Joint.call(this, def);
		this.m_localAnchor1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_u = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor1.SetV(def.localAnchorA);
		this.m_localAnchor2.SetV(def.localAnchorB);
		this.m_length = def.length;
		this.m_frequencyHz = def.frequencyHz;
		this.m_dampingRatio = def.dampingRatio;
		this.m_impulse = 0.0;
		this.m_gamma = 0.0;
		this.m_bias = 0.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2DistanceJoint, Box2D.Dynamics.Joints.b2Joint);
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.GetAnchorA = function() {
		return this.m_bodyA.GetWorldPoint(this.m_localAnchor1);
	};
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.GetAnchorB = function() {
		return this.m_bodyB.GetWorldPoint(this.m_localAnchor2);
	};
	/**
	 * @param {number} inv_dt
	 */
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.GetReactionForce = function(inv_dt) {
		return Box2D.Common.Math.b2Vec2.Get(inv_dt * this.m_impulse * this.m_u.x, inv_dt * this.m_impulse * this.m_u.y);
	};
	/**
	 * @param {number} inv_dt
	 */
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.GetReactionTorque = function(inv_dt) {
		return 0.0;
	};
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.GetLength = function() {
		return this.m_length;
	};
	/**
	 * @param {number} length
	 */
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.SetLength = function(length) {
		this.m_length = length;
	};
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.GetFrequency = function() {
		return this.m_frequencyHz;
	};
	/**
	 * @param {number} hz
	 */
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.SetFrequency = function(hz) {
		this.m_frequencyHz = hz;
	};
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.GetDampingRatio = function() {
		return this.m_dampingRatio;
	};
	/**
	 * @param {number} ratio
	 */
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.SetDampingRatio = function(ratio) {
		this.m_dampingRatio = ratio;
	};
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.InitVelocityConstraints = function(step) {
		var tMat;
		var tX = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		this.m_u.x = bB.m_sweep.c.x + r2X - bA.m_sweep.c.x - r1X;
		this.m_u.y = bB.m_sweep.c.y + r2Y - bA.m_sweep.c.y - r1Y;
		var length = Math.sqrt(this.m_u.x * this.m_u.x + this.m_u.y * this.m_u.y);
		if (length > Box2D.Common.b2Settings.b2_linearSlop) {
			this.m_u.Multiply(1.0 / length);
		} else {
			this.m_u.SetZero();
		}
		var cr1u = (r1X * this.m_u.y - r1Y * this.m_u.x);
		var cr2u = (r2X * this.m_u.y - r2Y * this.m_u.x);
		var invMass = bA.m_invMass + bA.m_invI * cr1u * cr1u + bB.m_invMass + bB.m_invI * cr2u * cr2u;
		this.m_mass = invMass != 0.0 ? 1.0 / invMass : 0.0;
		if (this.m_frequencyHz > 0.0) {
			var C = length - this.m_length;
			var omega = 2.0 * Math.PI * this.m_frequencyHz;
			var d = 2.0 * this.m_mass * this.m_dampingRatio * omega;
			var k = this.m_mass * omega * omega;
			this.m_gamma = step.dt * (d + step.dt * k);
			this.m_gamma = this.m_gamma != 0.0 ? 1 / this.m_gamma : 0.0;
			this.m_bias = C * step.dt * k * this.m_gamma;
			this.m_mass = invMass + this.m_gamma;
			this.m_mass = this.m_mass != 0.0 ? 1.0 / this.m_mass : 0.0;
		}
		if (step.warmStarting) {
			this.m_impulse *= step.dtRatio;
			var PX = this.m_impulse * this.m_u.x;
			var PY = this.m_impulse * this.m_u.y;
			bA.m_linearVelocity.x -= bA.m_invMass * PX;
			bA.m_linearVelocity.y -= bA.m_invMass * PY;
			bA.m_angularVelocity -= bA.m_invI * (r1X * PY - r1Y * PX);
			bB.m_linearVelocity.x += bB.m_invMass * PX;
			bB.m_linearVelocity.y += bB.m_invMass * PY;
			bB.m_angularVelocity += bB.m_invI * (r2X * PY - r2Y * PX);
		} else {
			this.m_impulse = 0.0;
		}
	};
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.SolveVelocityConstraints = function(step) {
		var r1X = this.m_localAnchor1.x - this.m_bodyA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - this.m_bodyA.m_sweep.localCenter.y;
		var tX = (this.m_bodyA.m_xf.R.col1.x * r1X + this.m_bodyA.m_xf.R.col2.x * r1Y);
		r1Y = (this.m_bodyA.m_xf.R.col1.y * r1X + this.m_bodyA.m_xf.R.col2.y * r1Y);
		r1X = tX;
		var r2X = this.m_localAnchor2.x - this.m_bodyB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - this.m_bodyB.m_sweep.localCenter.y;
		tX = (this.m_bodyB.m_xf.R.col1.x * r2X + this.m_bodyB.m_xf.R.col2.x * r2Y);
		r2Y = (this.m_bodyB.m_xf.R.col1.y * r2X + this.m_bodyB.m_xf.R.col2.y * r2Y);
		r2X = tX;
		var v1X = this.m_bodyA.m_linearVelocity.x - this.m_bodyA.m_angularVelocity * r1Y;
		var v1Y = this.m_bodyA.m_linearVelocity.y + this.m_bodyA.m_angularVelocity * r1X;
		var v2X = this.m_bodyB.m_linearVelocity.x - this.m_bodyB.m_angularVelocity * r2Y;
		var v2Y = this.m_bodyB.m_linearVelocity.y + this.m_bodyB.m_angularVelocity * r2X;
		var Cdot = (this.m_u.x * (v2X - v1X) + this.m_u.y * (v2Y - v1Y));
		var impulse = -this.m_mass * (Cdot + this.m_bias + this.m_gamma * this.m_impulse);
		this.m_impulse += impulse;
		var PX = impulse * this.m_u.x;
		var PY = impulse * this.m_u.y;
		this.m_bodyA.m_linearVelocity.x -= this.m_bodyA.m_invMass * PX;
		this.m_bodyA.m_linearVelocity.y -= this.m_bodyA.m_invMass * PY;
		this.m_bodyA.m_angularVelocity -= this.m_bodyA.m_invI * (r1X * PY - r1Y * PX);
		this.m_bodyB.m_linearVelocity.x += this.m_bodyB.m_invMass * PX;
		this.m_bodyB.m_linearVelocity.y += this.m_bodyB.m_invMass * PY;
		this.m_bodyB.m_angularVelocity += this.m_bodyB.m_invI * (r2X * PY - r2Y * PX);
	};
	/**
	 * @param {number} baumgarte
	 */
	Box2D.Dynamics.Joints.b2DistanceJoint.prototype.SolvePositionConstraints = function(baumgarte) {
		if (this.m_frequencyHz > 0.0) {
			return true;
		}
		var r1X = this.m_localAnchor1.x - this.m_bodyA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - this.m_bodyA.m_sweep.localCenter.y;
		var tX = (this.m_bodyA.m_xf.R.col1.x * r1X + this.m_bodyA.m_xf.R.col2.x * r1Y);
		r1Y = (this.m_bodyA.m_xf.R.col1.y * r1X + this.m_bodyA.m_xf.R.col2.y * r1Y);
		r1X = tX;
		var r2X = this.m_localAnchor2.x - this.m_bodyB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - this.m_bodyB.m_sweep.localCenter.y;
		tX = (this.m_bodyB.m_xf.R.col1.x * r2X + this.m_bodyB.m_xf.R.col2.x * r2Y);
		r2Y = (this.m_bodyB.m_xf.R.col1.y * r2X + this.m_bodyB.m_xf.R.col2.y * r2Y);
		r2X = tX;
		var dX = this.m_bodyB.m_sweep.c.x + r2X - this.m_bodyA.m_sweep.c.x - r1X;
		var dY = this.m_bodyB.m_sweep.c.y + r2Y - this.m_bodyA.m_sweep.c.y - r1Y;
		var length = Math.sqrt(dX * dX + dY * dY);
		dX /= length;
		dY /= length;
		var C = Box2D.Common.Math.b2Math.Clamp(length - this.m_length, -Box2D.Common.b2Settings.b2_maxLinearCorrection, Box2D.Common.b2Settings.b2_maxLinearCorrection);
		var impulse = -this.m_mass * C;
		this.m_u.Set(dX, dY);
		var PX = impulse * this.m_u.x;
		var PY = impulse * this.m_u.y;
		this.m_bodyA.m_sweep.c.x -= this.m_bodyA.m_invMass * PX;
		this.m_bodyA.m_sweep.c.y -= this.m_bodyA.m_invMass * PY;
		this.m_bodyA.m_sweep.a -= this.m_bodyA.m_invI * (r1X * PY - r1Y * PX);
		this.m_bodyB.m_sweep.c.x += this.m_bodyB.m_invMass * PX;
		this.m_bodyB.m_sweep.c.y += this.m_bodyB.m_invMass * PY;
		this.m_bodyB.m_sweep.a += this.m_bodyB.m_invI * (r2X * PY - r2Y * PX);
		this.m_bodyA.SynchronizeTransform();
		this.m_bodyB.SynchronizeTransform();
		return Math.abs(C) < Box2D.Common.b2Settings.b2_linearSlop;
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2JointDef}
	 */
	Box2D.Dynamics.Joints.b2DistanceJointDef = function() {
		Box2D.Dynamics.Joints.b2JointDef.call(this);
		this.localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.type = Box2D.Dynamics.Joints.b2Joint.e_distanceJoint;
		this.length = 1.0;
		this.frequencyHz = 0.0;
		this.dampingRatio = 0.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2DistanceJointDef, Box2D.Dynamics.Joints.b2JointDef);
	Box2D.Dynamics.Joints.b2DistanceJointDef.prototype.Initialize = function(bA, bB, anchorA, anchorB) {
		this.bodyA = bA;
		this.bodyB = bB;
		this.localAnchorA.SetV(this.bodyA.GetLocalPoint(anchorA));
		this.localAnchorB.SetV(this.bodyB.GetLocalPoint(anchorB));
		var dX = anchorB.x - anchorA.x;
		var dY = anchorB.y - anchorA.y;
		this.length = Math.sqrt(dX * dX + dY * dY);
		this.frequencyHz = 0.0;
		this.dampingRatio = 0.0;
	};
	Box2D.Dynamics.Joints.b2DistanceJointDef.prototype.Create = function() {
		return new Box2D.Dynamics.Joints.b2DistanceJoint(this);
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2FrictionJointDef} def
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.Joints.b2FrictionJoint = function(def) {
		Box2D.Dynamics.Joints.b2Joint.call(this, def);
		this.m_localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_linearMass = new Box2D.Common.Math.b2Mat22();
		this.m_linearImpulse = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchorA.SetV(def.localAnchorA);
		this.m_localAnchorB.SetV(def.localAnchorB);
		this.m_linearMass.SetZero();
		this.m_angularMass = 0.0;
		this.m_linearImpulse.SetZero();
		this.m_angularImpulse = 0.0;
		this.m_maxForce = def.maxForce;
		this.m_maxTorque = def.maxTorque;
	};
	c2inherit(Box2D.Dynamics.Joints.b2FrictionJoint, Box2D.Dynamics.Joints.b2Joint);
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.GetAnchorA = function() {
		return this.m_bodyA.GetWorldPoint(this.m_localAnchorA);
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.GetAnchorB = function() {
		return this.m_bodyB.GetWorldPoint(this.m_localAnchorB);
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.GetReactionForce = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return new b2Vec2(inv_dt * this.m_linearImpulse.x, inv_dt * this.m_linearImpulse.y);
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.GetReactionTorque = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return inv_dt * this.m_angularImpulse;
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.SetMaxForce = function(force) {
		if (force === undefined) force = 0;
		this.m_maxForce = force;
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.GetMaxForce = function() {
		return this.m_maxForce;
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.SetMaxTorque = function(torque) {
		if (torque === undefined) torque = 0;
		this.m_maxTorque = torque;
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.GetMaxTorque = function() {
		return this.m_maxTorque;
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.InitVelocityConstraints = function(step) {
		var tMat;
		var tX = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		tMat = bA.m_xf.R;
		var rAX = this.m_localAnchorA.x - bA.m_sweep.localCenter.x;
		var rAY = this.m_localAnchorA.y - bA.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rAX + tMat.col2.x * rAY);
		rAY = (tMat.col1.y * rAX + tMat.col2.y * rAY);
		rAX = tX;
		tMat = bB.m_xf.R;
		var rBX = this.m_localAnchorB.x - bB.m_sweep.localCenter.x;
		var rBY = this.m_localAnchorB.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rBX + tMat.col2.x * rBY);
		rBY = (tMat.col1.y * rBX + tMat.col2.y * rBY);
		rBX = tX;
		var mA = bA.m_invMass;
		var mB = bB.m_invMass;
		var iA = bA.m_invI;
		var iB = bB.m_invI;
		var K = new Box2D.Common.Math.b2Mat22();
		K.col1.x = mA + mB;
		K.col2.x = 0.0;
		K.col1.y = 0.0;
		K.col2.y = mA + mB;
		K.col1.x += iA * rAY * rAY;
		K.col2.x += (-iA * rAX * rAY);
		K.col1.y += (-iA * rAX * rAY);
		K.col2.y += iA * rAX * rAX;
		K.col1.x += iB * rBY * rBY;
		K.col2.x += (-iB * rBX * rBY);
		K.col1.y += (-iB * rBX * rBY);
		K.col2.y += iB * rBX * rBX;
		K.GetInverse(this.m_linearMass);
		this.m_angularMass = iA + iB;
		if (this.m_angularMass > 0.0) {
			this.m_angularMass = 1.0 / this.m_angularMass;
		}
		if (step.warmStarting) {
			this.m_linearImpulse.x *= step.dtRatio;
			this.m_linearImpulse.y *= step.dtRatio;
			this.m_angularImpulse *= step.dtRatio;
			var P = this.m_linearImpulse;
			bA.m_linearVelocity.x -= mA * P.x;
			bA.m_linearVelocity.y -= mA * P.y;
			bA.m_angularVelocity -= iA * (rAX * P.y - rAY * P.x + this.m_angularImpulse);
			bB.m_linearVelocity.x += mB * P.x;
			bB.m_linearVelocity.y += mB * P.y;
			bB.m_angularVelocity += iB * (rBX * P.y - rBY * P.x + this.m_angularImpulse);
		} else {
			this.m_linearImpulse.SetZero();
			this.m_angularImpulse = 0.0;
		}
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.SolveVelocityConstraints = function(step) {
		var tMat;
		var tX = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var vA = bA.m_linearVelocity;
		var wA = bA.m_angularVelocity;
		var vB = bB.m_linearVelocity;
		var wB = bB.m_angularVelocity;
		var mA = bA.m_invMass;
		var mB = bB.m_invMass;
		var iA = bA.m_invI;
		var iB = bB.m_invI;
		tMat = bA.m_xf.R;
		var rAX = this.m_localAnchorA.x - bA.m_sweep.localCenter.x;
		var rAY = this.m_localAnchorA.y - bA.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rAX + tMat.col2.x * rAY);
		rAY = (tMat.col1.y * rAX + tMat.col2.y * rAY);
		rAX = tX;
		tMat = bB.m_xf.R;
		var rBX = this.m_localAnchorB.x - bB.m_sweep.localCenter.x;
		var rBY = this.m_localAnchorB.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rBX + tMat.col2.x * rBY);
		rBY = (tMat.col1.y * rBX + tMat.col2.y * rBY);
		rBX = tX;
		var maxImpulse = 0;
		var Cdot = wB - wA;
		var impulse = (-this.m_angularMass * Cdot);
		var oldImpulse = this.m_angularImpulse;
		maxImpulse = step.dt * this.m_maxTorque;
		this.m_angularImpulse = Box2D.Common.Math.b2Math.Clamp(this.m_angularImpulse + impulse, (-maxImpulse), maxImpulse);
		impulse = this.m_angularImpulse - oldImpulse;
		wA -= iA * impulse;
		wB += iB * impulse;
		var CdotX = vB.x - wB * rBY - vA.x + wA * rAY;
		var CdotY = vB.y + wB * rBX - vA.y - wA * rAX;
		var impulseV = Box2D.Common.Math.b2Math.MulMV(this.m_linearMass, Box2D.Common.Math.b2Vec2.Get((-CdotX), (-CdotY)));
		var oldImpulseV = this.m_linearImpulse.Copy();
		this.m_linearImpulse.Add(impulseV);
		maxImpulse = step.dt * this.m_maxForce;
		if (this.m_linearImpulse.LengthSquared() > maxImpulse * maxImpulse) {
			this.m_linearImpulse.Normalize();
			this.m_linearImpulse.Multiply(maxImpulse);
		}
		impulseV = Box2D.Common.Math.b2Math.SubtractVV(this.m_linearImpulse, oldImpulseV);
		vA.x -= mA * impulseV.x;
		vA.y -= mA * impulseV.y;
		wA -= iA * (rAX * impulseV.y - rAY * impulseV.x);
		vB.x += mB * impulseV.x;
		vB.y += mB * impulseV.y;
		wB += iB * (rBX * impulseV.y - rBY * impulseV.x);
		bA.m_angularVelocity = wA;
		bB.m_angularVelocity = wB;
	};
	Box2D.Dynamics.Joints.b2FrictionJoint.prototype.SolvePositionConstraints = function(baumgarte) {
		return true;
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2JointDef}
	 */
	Box2D.Dynamics.Joints.b2FrictionJointDef = function() {
		Box2D.Dynamics.Joints.b2JointDef.call(this);
		this.localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.type = Box2D.Dynamics.Joints.b2Joint.e_frictionJoint;
		this.maxForce = 0.0;
		this.maxTorque = 0.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2FrictionJointDef, Box2D.Dynamics.Joints.b2JointDef);
	Box2D.Dynamics.Joints.b2FrictionJointDef.prototype.Initialize = function (bA, bB, anchor) {
		this.bodyA = bA;
		this.bodyB = bB;
		this.localAnchorA.SetV(this.bodyA.GetLocalPoint(anchor));
		this.localAnchorB.SetV(this.bodyB.GetLocalPoint(anchor));
	};
	Box2D.Dynamics.Joints.b2FrictionJointDef.prototype.Create = function() {
		return new Box2D.Dynamics.Joints.b2FrictionJoint(this);
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2GearJointDef} def
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.Joints.b2GearJoint = function(def) {
		Box2D.Dynamics.Joints.b2Joint.call(this, def);
		this.m_groundAnchor1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_groundAnchor2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_J = new Box2D.Dynamics.Joints.b2Jacobian();
		var type1 = def.joint1.m_type;
		var type2 = def.joint2.m_type;
		this.m_revolute1 = null;
		this.m_prismatic1 = null;
		this.m_revolute2 = null;
		this.m_prismatic2 = null;
		var coordinate1 = 0;
		var coordinate2 = 0;
		this.m_ground1 = def.joint1.GetBodyA();
		this.m_bodyA = def.joint1.GetBodyB();
		if (type1 == Box2D.Dynamics.Joints.b2Joint.e_revoluteJoint) {
			this.m_revolute1 = def.joint1;
			this.m_groundAnchor1.SetV(this.m_revolute1.m_localAnchor1);
			this.m_localAnchor1.SetV(this.m_revolute1.m_localAnchor2);
			coordinate1 = this.m_revolute1.GetJointAngle();
		} else {
			this.m_prismatic1 = def.joint1;
			this.m_groundAnchor1.SetV(this.m_prismatic1.m_localAnchor1);
			this.m_localAnchor1.SetV(this.m_prismatic1.m_localAnchor2);
			coordinate1 = this.m_prismatic1.GetJointTranslation();
		}
		this.m_ground2 = def.joint2.GetBodyA();
		this.m_bodyB = def.joint2.GetBodyB();
		if (type2 == Box2D.Dynamics.Joints.b2Joint.e_revoluteJoint) {
			this.m_revolute2 = def.joint2;
			this.m_groundAnchor2.SetV(this.m_revolute2.m_localAnchor1);
			this.m_localAnchor2.SetV(this.m_revolute2.m_localAnchor2);
			coordinate2 = this.m_revolute2.GetJointAngle();
		} else {
			this.m_prismatic2 = def.joint2;
			this.m_groundAnchor2.SetV(this.m_prismatic2.m_localAnchor1);
			this.m_localAnchor2.SetV(this.m_prismatic2.m_localAnchor2);
			coordinate2 = this.m_prismatic2.GetJointTranslation();
		}
		this.m_ratio = def.ratio;
		this.m_constant = coordinate1 + this.m_ratio * coordinate2;
		this.m_impulse = 0.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2GearJoint, Box2D.Dynamics.Joints.b2Joint);
	Box2D.Dynamics.Joints.b2GearJoint.prototype.GetAnchorA = function() {
		return this.m_bodyA.GetWorldPoint(this.m_localAnchor1);
	};
	Box2D.Dynamics.Joints.b2GearJoint.prototype.GetAnchorB = function() {
		return this.m_bodyB.GetWorldPoint(this.m_localAnchor2);
	};
	Box2D.Dynamics.Joints.b2GearJoint.prototype.GetReactionForce = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return Box2D.Common.Math.b2Vec2.Get(inv_dt * this.m_impulse * this.m_J.linearB.x, inv_dt * this.m_impulse * this.m_J.linearB.y);
	};
	Box2D.Dynamics.Joints.b2GearJoint.prototype.GetReactionTorque = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		var tMat = this.m_bodyB.m_xf.R;
		var rX = this.m_localAnchor1.x - this.m_bodyB.m_sweep.localCenter.x;
		var rY = this.m_localAnchor1.y - this.m_bodyB.m_sweep.localCenter.y;
		var tX = tMat.col1.x * rX + tMat.col2.x * rY;
		rY = tMat.col1.y * rX + tMat.col2.y * rY;
		rX = tX;
		var PX = this.m_impulse * this.m_J.linearB.x;
		var PY = this.m_impulse * this.m_J.linearB.y;
		return inv_dt * (this.m_impulse * this.m_J.angularB - rX * PY + rY * PX);
	};
	Box2D.Dynamics.Joints.b2GearJoint.prototype.GetRatio = function() {
		return this.m_ratio;
	};
	Box2D.Dynamics.Joints.b2GearJoint.prototype.SetRatio = function(ratio) {
		if (ratio === undefined) ratio = 0;
		this.m_ratio = ratio;
	};
	Box2D.Dynamics.Joints.b2GearJoint.prototype.InitVelocityConstraints = function(step) {
		var g1 = this.m_ground1;
		var g2 = this.m_ground2;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var ugX = 0;
		var ugY = 0;
		var rX = 0;
		var rY = 0;
		var tMat;
		var tVec;
		var crug = 0;
		var tX = 0;
		var K = 0.0;
		this.m_J.SetZero();
		if (this.m_revolute1) {
			this.m_J.angularA = (-1.0);
			K += bA.m_invI;
		} else {
			tMat = g1.m_xf.R;
			tVec = this.m_prismatic1.m_localXAxis1;
			ugX = tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
			ugY = tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
			tMat = bA.m_xf.R;
			rX = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
			rY = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
			tX = tMat.col1.x * rX + tMat.col2.x * rY;
			rY = tMat.col1.y * rX + tMat.col2.y * rY;
			rX = tX;
			crug = rX * ugY - rY * ugX;
			this.m_J.linearA.Set((-ugX), (-ugY));
			this.m_J.angularA = (-crug);
			K += bA.m_invMass + bA.m_invI * crug * crug;
		}
		if (this.m_revolute2) {
			this.m_J.angularB = (-this.m_ratio);
			K += this.m_ratio * this.m_ratio * bB.m_invI;
		} else {
			tMat = g2.m_xf.R;
			tVec = this.m_prismatic2.m_localXAxis1;
			ugX = tMat.col1.x * tVec.x + tMat.col2.x * tVec.y;
			ugY = tMat.col1.y * tVec.x + tMat.col2.y * tVec.y;
			tMat = bB.m_xf.R;
			rX = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
			rY = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
			tX = tMat.col1.x * rX + tMat.col2.x * rY;
			rY = tMat.col1.y * rX + tMat.col2.y * rY;
			rX = tX;
			crug = rX * ugY - rY * ugX;
			this.m_J.linearB.Set((-this.m_ratio * ugX), (-this.m_ratio * ugY));
			this.m_J.angularB = (-this.m_ratio * crug);
			K += this.m_ratio * this.m_ratio * (bB.m_invMass + bB.m_invI * crug * crug);
		}
		this.m_mass = K > 0.0 ? 1.0 / K : 0.0;
		if (step.warmStarting) {
			bA.m_linearVelocity.x += bA.m_invMass * this.m_impulse * this.m_J.linearA.x;
			bA.m_linearVelocity.y += bA.m_invMass * this.m_impulse * this.m_J.linearA.y;
			bA.m_angularVelocity += bA.m_invI * this.m_impulse * this.m_J.angularA;
			bB.m_linearVelocity.x += bB.m_invMass * this.m_impulse * this.m_J.linearB.x;
			bB.m_linearVelocity.y += bB.m_invMass * this.m_impulse * this.m_J.linearB.y;
			bB.m_angularVelocity += bB.m_invI * this.m_impulse * this.m_J.angularB;
		} else {
			this.m_impulse = 0.0;
		}
	};
	Box2D.Dynamics.Joints.b2GearJoint.prototype.SolveVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var Cdot = this.m_J.Compute(bA.m_linearVelocity, bA.m_angularVelocity, bB.m_linearVelocity, bB.m_angularVelocity);
		var impulse = (-this.m_mass * Cdot);
		this.m_impulse += impulse;
		bA.m_linearVelocity.x += bA.m_invMass * impulse * this.m_J.linearA.x;
		bA.m_linearVelocity.y += bA.m_invMass * impulse * this.m_J.linearA.y;
		bA.m_angularVelocity += bA.m_invI * impulse * this.m_J.angularA;
		bB.m_linearVelocity.x += bB.m_invMass * impulse * this.m_J.linearB.x;
		bB.m_linearVelocity.y += bB.m_invMass * impulse * this.m_J.linearB.y;
		bB.m_angularVelocity += bB.m_invI * impulse * this.m_J.angularB;
	};
	Box2D.Dynamics.Joints.b2GearJoint.prototype.SolvePositionConstraints = function(baumgarte) {
		if (baumgarte === undefined) baumgarte = 0;
		var linearError = 0.0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var coordinate1 = 0;
		var coordinate2 = 0;
		if (this.m_revolute1) {
			coordinate1 = this.m_revolute1.GetJointAngle();
		} else {
			coordinate1 = this.m_prismatic1.GetJointTranslation();
		}
		if (this.m_revolute2) {
			coordinate2 = this.m_revolute2.GetJointAngle();
		} else {
			coordinate2 = this.m_prismatic2.GetJointTranslation();
		}
		var C = this.m_constant - (coordinate1 + this.m_ratio * coordinate2);
		var impulse = (-this.m_mass * C);
		bA.m_sweep.c.x += bA.m_invMass * impulse * this.m_J.linearA.x;
		bA.m_sweep.c.y += bA.m_invMass * impulse * this.m_J.linearA.y;
		bA.m_sweep.a += bA.m_invI * impulse * this.m_J.angularA;
		bB.m_sweep.c.x += bB.m_invMass * impulse * this.m_J.linearB.x;
		bB.m_sweep.c.y += bB.m_invMass * impulse * this.m_J.linearB.y;
		bB.m_sweep.a += bB.m_invI * impulse * this.m_J.angularB;
		bA.SynchronizeTransform();
		bB.SynchronizeTransform();
		return linearError < Box2D.Common.b2Settings.b2_linearSlop;
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2JointDef}
	 */
	 Box2D.Dynamics.Joints.b2GearJointDef = function() {
		Box2D.Dynamics.Joints.b2JointDef.call(this);
		this.type = Box2D.Dynamics.Joints.b2Joint.e_gearJoint;
		this.joint1 = null;
		this.joint2 = null;
		this.ratio = 1.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2GearJointDef, Box2D.Dynamics.Joints.b2JointDef);
	Box2D.Dynamics.Joints.b2GearJointDef.prototype.Initialize = function(joint1, joint2, ratio) {
		this.joint1 = joint1;
		this.bodyA = joint1.GetBodyA();
		this.joint2 = joint2;
		this.bodyB = joint2.GetBodyA();
		this.ratio = ratio;
	};
	Box2D.Dynamics.Joints.b2GearJointDef.prototype.Create = function() {
		return new Box2D.Dynamics.Joints.b2GearJoint(this);
	};
	/**
	 * @constructor
	 */
	Box2D.Dynamics.Joints.b2Jacobian = function() {
		this.linearA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.linearB = Box2D.Common.Math.b2Vec2.Get(0, 0);
	};
	Box2D.Dynamics.Joints.b2Jacobian.prototype.SetZero = function() {
		this.linearA.SetZero();
		this.angularA = 0.0;
		this.linearB.SetZero();
		this.angularB = 0.0;
	};
	Box2D.Dynamics.Joints.b2Jacobian.prototype.Set = function(x1, a1, x2, a2) {
		if (a1 === undefined) a1 = 0;
		if (a2 === undefined) a2 = 0;
		this.linearA.SetV(x1);
		this.angularA = a1;
		this.linearB.SetV(x2);
		this.angularB = a2;
	};
	Box2D.Dynamics.Joints.b2Jacobian.prototype.Compute = function(x1, a1, x2, a2) {
		if (a1 === undefined) a1 = 0;
		if (a2 === undefined) a2 = 0;
		return (this.linearA.x * x1.x + this.linearA.y * x1.y) + this.angularA * a1 + (this.linearB.x * x2.x + this.linearB.y * x2.y) + this.angularB * a2;
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2LineJointDef} def
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.Joints.b2LineJoint = function(def) {
		Box2D.Dynamics.Joints.b2Joint.call(this, def);
		this.m_localAnchor1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localXAxis1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localYAxis1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_axis = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_perp = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_K = new Box2D.Common.Math.b2Mat22();
		this.m_impulse = Box2D.Common.Math.b2Vec2.Get(0, 0);
		var tMat;
		var tX = 0;
		var tY = 0;
		this.m_localAnchor1.SetV(def.localAnchorA);
		this.m_localAnchor2.SetV(def.localAnchorB);
		this.m_localXAxis1.SetV(def.localAxisA);
		this.m_localYAxis1.x = (-this.m_localXAxis1.y);
		this.m_localYAxis1.y = this.m_localXAxis1.x;
		this.m_impulse.SetZero();
		this.m_motorMass = 0.0;
		this.m_motorImpulse = 0.0;
		this.m_lowerTranslation = def.lowerTranslation;
		this.m_upperTranslation = def.upperTranslation;
		this.m_maxMotorForce = def.maxMotorForce;
		this.m_motorSpeed = def.motorSpeed;
		this.m_enableLimit = def.enableLimit;
		this.m_enableMotor = def.enableMotor;
		this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
		this.m_axis.SetZero();
		this.m_perp.SetZero();
	};
	c2inherit(Box2D.Dynamics.Joints.b2LineJoint, Box2D.Dynamics.Joints.b2Joint);
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetAnchorA = function() {
		return this.m_bodyA.GetWorldPoint(this.m_localAnchor1);
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetAnchorB = function() {
		return this.m_bodyB.GetWorldPoint(this.m_localAnchor2);
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetReactionForce = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return Box2D.Common.Math.b2Vec2.Get(inv_dt * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.x), inv_dt * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.y));
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetReactionTorque = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return inv_dt * this.m_impulse.y;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetJointTranslation = function() {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		var p1 = bA.GetWorldPoint(this.m_localAnchor1);
		var p2 = bB.GetWorldPoint(this.m_localAnchor2);
		var dX = p2.x - p1.x;
		var dY = p2.y - p1.y;
		var axis = bA.GetWorldVector(this.m_localXAxis1);
		var translation = axis.x * dX + axis.y * dY;
		return translation;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetJointSpeed = function() {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
		var tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var p1X = bA.m_sweep.c.x + r1X;
		var p1Y = bA.m_sweep.c.y + r1Y;
		var p2X = bB.m_sweep.c.x + r2X;
		var p2Y = bB.m_sweep.c.y + r2Y;
		var dX = p2X - p1X;
		var dY = p2Y - p1Y;
		var axis = bA.GetWorldVector(this.m_localXAxis1);
		var v1 = bA.m_linearVelocity;
		var v2 = bB.m_linearVelocity;
		var w1 = bA.m_angularVelocity;
		var w2 = bB.m_angularVelocity;
		var speed = (dX * ((-w1 * axis.y)) + dY * (w1 * axis.x)) + (axis.x * (((v2.x + ((-w2 * r2Y))) - v1.x) - ((-w1 * r1Y))) + axis.y * (((v2.y + (w2 * r2X)) - v1.y) - (w1 * r1X)));
		return speed;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.IsLimitEnabled = function() {
		return this.m_enableLimit;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.EnableLimit = function(flag) {
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_enableLimit = flag;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetLowerLimit = function() {
		return this.m_lowerTranslation;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetUpperLimit = function() {
		return this.m_upperTranslation;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.SetLimits = function(lower, upper) {
		if (lower === undefined) lower = 0;
		if (upper === undefined) upper = 0;
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_lowerTranslation = lower;
		this.m_upperTranslation = upper;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.IsMotorEnabled = function() {
		return this.m_enableMotor;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.EnableMotor = function(flag) {
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_enableMotor = flag;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.SetMotorSpeed = function(speed) {
		if (speed === undefined) speed = 0;
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_motorSpeed = speed;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetMotorSpeed = function() {
		return this.m_motorSpeed;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.SetMaxMotorForce = function(force) {
		if (force === undefined) force = 0;
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_maxMotorForce = force;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetMaxMotorForce = function() {
		return this.m_maxMotorForce;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.GetMotorForce = function() {
		return this.m_motorImpulse;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.InitVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		var tX = 0;
		this.m_localCenterA.SetV(bA.GetLocalCenter());
		this.m_localCenterB.SetV(bB.GetLocalCenter());
		var xf1 = bA.GetTransform();
		var xf2 = bB.GetTransform();
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - this.m_localCenterA.x;
		var r1Y = this.m_localAnchor1.y - this.m_localCenterA.y;
		tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - this.m_localCenterB.x;
		var r2Y = this.m_localAnchor2.y - this.m_localCenterB.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var dX = bB.m_sweep.c.x + r2X - bA.m_sweep.c.x - r1X;
		var dY = bB.m_sweep.c.y + r2Y - bA.m_sweep.c.y - r1Y;
		this.m_invMassA = bA.m_invMass;
		this.m_invMassB = bB.m_invMass;
		this.m_invIA = bA.m_invI;
		this.m_invIB = bB.m_invI;
		this.m_axis.SetV(Box2D.Common.Math.b2Math.MulMV(xf1.R, this.m_localXAxis1));
		this.m_a1 = (dX + r1X) * this.m_axis.y - (dY + r1Y) * this.m_axis.x;
		this.m_a2 = r2X * this.m_axis.y - r2Y * this.m_axis.x;
		this.m_motorMass = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_a1 * this.m_a1 + this.m_invIB * this.m_a2 * this.m_a2;
		this.m_motorMass = this.m_motorMass > Number.MIN_VALUE ? 1.0 / this.m_motorMass : 0.0;
		this.m_perp.SetV(Box2D.Common.Math.b2Math.MulMV(xf1.R, this.m_localYAxis1));
		this.m_s1 = (dX + r1X) * this.m_perp.y - (dY + r1Y) * this.m_perp.x;
		this.m_s2 = r2X * this.m_perp.y - r2Y * this.m_perp.x;
		var m1 = this.m_invMassA;
		var m2 = this.m_invMassB;
		var i1 = this.m_invIA;
		var i2 = this.m_invIB;
		this.m_K.col1.x = m1 + m2 + i1 * this.m_s1 * this.m_s1 + i2 * this.m_s2 * this.m_s2;
		this.m_K.col1.y = i1 * this.m_s1 * this.m_a1 + i2 * this.m_s2 * this.m_a2;
		this.m_K.col2.x = this.m_K.col1.y;
		this.m_K.col2.y = m1 + m2 + i1 * this.m_a1 * this.m_a1 + i2 * this.m_a2 * this.m_a2;
		if (this.m_enableLimit) {
			var jointTransition = this.m_axis.x * dX + this.m_axis.y * dY;
			if (Math.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2.0 * Box2D.Common.b2Settings.b2_linearSlop) {
				this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_equalLimits;
			} else if (jointTransition <= this.m_lowerTranslation) {
				if (this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit) {
					this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit;
					this.m_impulse.y = 0.0;
				}
			} else if (jointTransition >= this.m_upperTranslation) {
				if (this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
					this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit;
					this.m_impulse.y = 0.0;
				}
			} else {
				this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
				this.m_impulse.y = 0.0;
			}
		} else {
			this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
		}
		if (this.m_enableMotor == false) {
			this.m_motorImpulse = 0.0;
		}
		if (step.warmStarting) {
			this.m_impulse.x *= step.dtRatio;
			this.m_impulse.y *= step.dtRatio;
			this.m_motorImpulse *= step.dtRatio;
			var PX = this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.x;
			var PY = this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.y;
			var L1 = this.m_impulse.x * this.m_s1 + (this.m_motorImpulse + this.m_impulse.y) * this.m_a1;
			var L2 = this.m_impulse.x * this.m_s2 + (this.m_motorImpulse + this.m_impulse.y) * this.m_a2;
			bA.m_linearVelocity.x -= this.m_invMassA * PX;
			bA.m_linearVelocity.y -= this.m_invMassA * PY;
			bA.m_angularVelocity -= this.m_invIA * L1;
			bB.m_linearVelocity.x += this.m_invMassB * PX;
			bB.m_linearVelocity.y += this.m_invMassB * PY;
			bB.m_angularVelocity += this.m_invIB * L2;
		} else {
			this.m_impulse.SetZero();
			this.m_motorImpulse = 0.0;
		}
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.SolveVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var v1 = bA.m_linearVelocity;
		var w1 = bA.m_angularVelocity;
		var v2 = bB.m_linearVelocity;
		var w2 = bB.m_angularVelocity;
		var PX = 0;
		var PY = 0;
		var L1 = 0;
		var L2 = 0;
		if (this.m_enableMotor && this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_equalLimits) {
			var Cdot = this.m_axis.x * (v2.x - v1.x) + this.m_axis.y * (v2.y - v1.y) + this.m_a2 * w2 - this.m_a1 * w1;
			var impulse = this.m_motorMass * (this.m_motorSpeed - Cdot);
			var oldImpulse = this.m_motorImpulse;
			var maxImpulse = step.dt * this.m_maxMotorForce;
			this.m_motorImpulse = Box2D.Common.Math.b2Math.Clamp(this.m_motorImpulse + impulse, (-maxImpulse), maxImpulse);
			impulse = this.m_motorImpulse - oldImpulse;
			PX = impulse * this.m_axis.x;
			PY = impulse * this.m_axis.y;
			L1 = impulse * this.m_a1;
			L2 = impulse * this.m_a2;
			v1.x -= this.m_invMassA * PX;
			v1.y -= this.m_invMassA * PY;
			w1 -= this.m_invIA * L1;
			v2.x += this.m_invMassB * PX;
			v2.y += this.m_invMassB * PY;
			w2 += this.m_invIB * L2;
		}
		var Cdot1 = this.m_perp.x * (v2.x - v1.x) + this.m_perp.y * (v2.y - v1.y) + this.m_s2 * w2 - this.m_s1 * w1;
		if (this.m_enableLimit && this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit) {
			var Cdot2 = this.m_axis.x * (v2.x - v1.x) + this.m_axis.y * (v2.y - v1.y) + this.m_a2 * w2 - this.m_a1 * w1;
			var f1 = this.m_impulse.Copy();
			var df = this.m_K.Solve(Box2D.Common.Math.b2Vec2.Get(0, 0), (-Cdot1), (-Cdot2));
			this.m_impulse.Add(df);
			if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit) {
				this.m_impulse.y = Math.max(this.m_impulse.y, 0.0);
			} else if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
				this.m_impulse.y = Math.min(this.m_impulse.y, 0.0);
			}
			var b = (-Cdot1) - (this.m_impulse.y - f1.y) * this.m_K.col2.x;
			var f2r = 0;
			if (this.m_K.col1.x != 0.0) {
				f2r = b / this.m_K.col1.x + f1.x;
			} else {
				f2r = f1.x;
			}
			this.m_impulse.x = f2r;
			df.x = this.m_impulse.x - f1.x;
			df.y = this.m_impulse.y - f1.y;
			PX = df.x * this.m_perp.x + df.y * this.m_axis.x;
			PY = df.x * this.m_perp.y + df.y * this.m_axis.y;
			L1 = df.x * this.m_s1 + df.y * this.m_a1;
			L2 = df.x * this.m_s2 + df.y * this.m_a2;
			v1.x -= this.m_invMassA * PX;
			v1.y -= this.m_invMassA * PY;
			w1 -= this.m_invIA * L1;
			v2.x += this.m_invMassB * PX;
			v2.y += this.m_invMassB * PY;
			w2 += this.m_invIB * L2;
		} else {
			var df2 = 0;
			if (this.m_K.col1.x != 0.0) {
				df2 = ((-Cdot1)) / this.m_K.col1.x;
			} else {
				df2 = 0.0;
			}
			this.m_impulse.x += df2;
			PX = df2 * this.m_perp.x;
			PY = df2 * this.m_perp.y;
			L1 = df2 * this.m_s1;
			L2 = df2 * this.m_s2;
			v1.x -= this.m_invMassA * PX;
			v1.y -= this.m_invMassA * PY;
			w1 -= this.m_invIA * L1;
			v2.x += this.m_invMassB * PX;
			v2.y += this.m_invMassB * PY;
			w2 += this.m_invIB * L2;
		}
		bA.m_linearVelocity.SetV(v1);
		bA.m_angularVelocity = w1;
		bB.m_linearVelocity.SetV(v2);
		bB.m_angularVelocity = w2;
	};
	Box2D.Dynamics.Joints.b2LineJoint.prototype.SolvePositionConstraints = function(baumgarte) {
		if (baumgarte === undefined) baumgarte = 0;
		var limitC = 0;
		var oldLimitImpulse = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var c1 = bA.m_sweep.c;
		var a1 = bA.m_sweep.a;
		var c2 = bB.m_sweep.c;
		var a2 = bB.m_sweep.a;
		var tMat;
		var tX = 0;
		var m1 = 0;
		var m2 = 0;
		var i1 = 0;
		var i2 = 0;
		var linearError = 0.0;
		var angularError = 0.0;
		var active = false;
		var C2 = 0.0;
		var R1 = Box2D.Common.Math.b2Mat22.FromAngle(a1);
		var R2 = Box2D.Common.Math.b2Mat22.FromAngle(a2);
		tMat = R1;
		var r1X = this.m_localAnchor1.x - this.m_localCenterA.x;
		var r1Y = this.m_localAnchor1.y - this.m_localCenterA.y;
		tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = R2;
		var r2X = this.m_localAnchor2.x - this.m_localCenterB.x;
		var r2Y = this.m_localAnchor2.y - this.m_localCenterB.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var dX = c2.x + r2X - c1.x - r1X;
		var dY = c2.y + r2Y - c1.y - r1Y;
		if (this.m_enableLimit) {
			this.m_axis = Box2D.Common.Math.b2Math.MulMV(R1, this.m_localXAxis1);
			this.m_a1 = (dX + r1X) * this.m_axis.y - (dY + r1Y) * this.m_axis.x;
			this.m_a2 = r2X * this.m_axis.y - r2Y * this.m_axis.x;
			var translation = this.m_axis.x * dX + this.m_axis.y * dY;
			if (Math.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2.0 * Box2D.Common.b2Settings.b2_linearSlop) {
				C2 = Box2D.Common.Math.b2Math.Clamp(translation, (-Box2D.Common.b2Settings.b2_maxLinearCorrection), Box2D.Common.b2Settings.b2_maxLinearCorrection);
				linearError = Math.abs(translation);
				active = true;
			} else if (translation <= this.m_lowerTranslation) {
				C2 = Box2D.Common.Math.b2Math.Clamp(translation - this.m_lowerTranslation + Box2D.Common.b2Settings.b2_linearSlop, (-Box2D.Common.b2Settings.b2_maxLinearCorrection), 0.0);
				linearError = this.m_lowerTranslation - translation;
				active = true;
			} else if (translation >= this.m_upperTranslation) {
				C2 = Box2D.Common.Math.b2Math.Clamp(translation - this.m_upperTranslation + Box2D.Common.b2Settings.b2_linearSlop, 0.0, Box2D.Common.b2Settings.b2_maxLinearCorrection);
				linearError = translation - this.m_upperTranslation;
				active = true;
			}
		}
		this.m_perp = Box2D.Common.Math.b2Math.MulMV(R1, this.m_localYAxis1);
		this.m_s1 = (dX + r1X) * this.m_perp.y - (dY + r1Y) * this.m_perp.x;
		this.m_s2 = r2X * this.m_perp.y - r2Y * this.m_perp.x;
		var impulse = Box2D.Common.Math.b2Vec2.Get(0, 0);
		var C1 = this.m_perp.x * dX + this.m_perp.y * dY;
		linearError = Math.max(linearError, Math.abs(C1));
		angularError = 0.0;
		if (active) {
			m1 = this.m_invMassA;
			m2 = this.m_invMassB;
			i1 = this.m_invIA;
			i2 = this.m_invIB;
			this.m_K.col1.x = m1 + m2 + i1 * this.m_s1 * this.m_s1 + i2 * this.m_s2 * this.m_s2;
			this.m_K.col1.y = i1 * this.m_s1 * this.m_a1 + i2 * this.m_s2 * this.m_a2;
			this.m_K.col2.x = this.m_K.col1.y;
			this.m_K.col2.y = m1 + m2 + i1 * this.m_a1 * this.m_a1 + i2 * this.m_a2 * this.m_a2;
			this.m_K.Solve(impulse, (-C1), (-C2));
		} else {
			m1 = this.m_invMassA;
			m2 = this.m_invMassB;
			i1 = this.m_invIA;
			i2 = this.m_invIB;
			var k11 = m1 + m2 + i1 * this.m_s1 * this.m_s1 + i2 * this.m_s2 * this.m_s2;
			var impulse1 = 0;
			if (k11 != 0.0) {
				impulse1 = ((-C1)) / k11;
			} else {
				impulse1 = 0.0;
			}
			impulse.x = impulse1;
			impulse.y = 0.0;
		}
		var PX = impulse.x * this.m_perp.x + impulse.y * this.m_axis.x;
		var PY = impulse.x * this.m_perp.y + impulse.y * this.m_axis.y;
		var L1 = impulse.x * this.m_s1 + impulse.y * this.m_a1;
		var L2 = impulse.x * this.m_s2 + impulse.y * this.m_a2;
		c1.x -= this.m_invMassA * PX;
		c1.y -= this.m_invMassA * PY;
		a1 -= this.m_invIA * L1;
		c2.x += this.m_invMassB * PX;
		c2.y += this.m_invMassB * PY;
		a2 += this.m_invIB * L2;
		bA.m_sweep.a = a1;
		bB.m_sweep.a = a2;
		bA.SynchronizeTransform();
		bB.SynchronizeTransform();
		return linearError <= Box2D.Common.b2Settings.b2_linearSlop && angularError <= Box2D.Common.b2Settings.b2_angularSlop;
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2JointDef}
	 */
	Box2D.Dynamics.Joints.b2LineJointDef = function() {
		Box2D.Dynamics.Joints.b2JointDef.call(this);
		this.localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAxisA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.type = Box2D.Dynamics.Joints.b2Joint.e_lineJoint;
		this.localAxisA.Set(1.0, 0.0);
		this.enableLimit = false;
		this.lowerTranslation = 0.0;
		this.upperTranslation = 0.0;
		this.enableMotor = false;
		this.maxMotorForce = 0.0;
		this.motorSpeed = 0.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2LineJointDef, Box2D.Dynamics.Joints.b2JointDef);
	Box2D.Dynamics.Joints.b2LineJointDef.prototype.Initialize = function(bA, bB, anchor, axis) {
		this.bodyA = bA;
		this.bodyB = bB;
		this.localAnchorA = this.bodyA.GetLocalPoint(anchor);
		this.localAnchorB = this.bodyB.GetLocalPoint(anchor);
		this.localAxisA = this.bodyA.GetLocalVector(axis);
	};
	Box2D.Dynamics.Joints.b2LineJointDef.prototype.Create = function() {
		return new Box2D.Dynamics.Joints.b2LineJoint(this);
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2PrismaticJointDef} def
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.Joints.b2PrismaticJoint = function(def) {
		Box2D.Dynamics.Joints.b2Joint.call(this, def);
		this.m_localAnchor1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localXAxis1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localYAxis1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_axis = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_perp = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_K = new Box2D.Common.Math.b2Mat33();
		this.m_impulse = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		this.m_localAnchor1.SetV(def.localAnchorA);
		this.m_localAnchor2.SetV(def.localAnchorB);
		this.m_localXAxis1.SetV(def.localAxisA);
		this.m_localYAxis1.x = (-this.m_localXAxis1.y);
		this.m_localYAxis1.y = this.m_localXAxis1.x;
		this.m_refAngle = def.referenceAngle;
		this.m_impulse.SetZero();
		this.m_motorMass = 0.0;
		this.m_motorImpulse = 0.0;
		this.m_lowerTranslation = def.lowerTranslation;
		this.m_upperTranslation = def.upperTranslation;
		this.m_maxMotorForce = def.maxMotorForce;
		this.m_motorSpeed = def.motorSpeed;
		this.m_enableLimit = def.enableLimit;
		this.m_enableMotor = def.enableMotor;
		this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
		this.m_axis.SetZero();
		this.m_perp.SetZero();
	};
	c2inherit(Box2D.Dynamics.Joints.b2PrismaticJoint, Box2D.Dynamics.Joints.b2Joint);
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetAnchorA = function() {
		return this.m_bodyA.GetWorldPoint(this.m_localAnchor1);
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetAnchorB = function() {
		return this.m_bodyB.GetWorldPoint(this.m_localAnchor2);
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetReactionForce = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return Box2D.Common.Math.b2Vec2.Get(inv_dt * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x), inv_dt * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y));
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetReactionTorque = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return inv_dt * this.m_impulse.y;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetJointTranslation = function() {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		var p1 = bA.GetWorldPoint(this.m_localAnchor1);
		var p2 = bB.GetWorldPoint(this.m_localAnchor2);
		var dX = p2.x - p1.x;
		var dY = p2.y - p1.y;
		var axis = bA.GetWorldVector(this.m_localXAxis1);
		var translation = axis.x * dX + axis.y * dY;
		return translation;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetJointSpeed = function() {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
		var tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var p1X = bA.m_sweep.c.x + r1X;
		var p1Y = bA.m_sweep.c.y + r1Y;
		var p2X = bB.m_sweep.c.x + r2X;
		var p2Y = bB.m_sweep.c.y + r2Y;
		var dX = p2X - p1X;
		var dY = p2Y - p1Y;
		var axis = bA.GetWorldVector(this.m_localXAxis1);
		var v1 = bA.m_linearVelocity;
		var v2 = bB.m_linearVelocity;
		var w1 = bA.m_angularVelocity;
		var w2 = bB.m_angularVelocity;
		var speed = (dX * ((-w1 * axis.y)) + dY * (w1 * axis.x)) + (axis.x * (((v2.x + ((-w2 * r2Y))) - v1.x) - ((-w1 * r1Y))) + axis.y * (((v2.y + (w2 * r2X)) - v1.y) - (w1 * r1X)));
		return speed;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.IsLimitEnabled = function() {
		return this.m_enableLimit;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.EnableLimit = function(flag) {
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_enableLimit = flag;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetLowerLimit = function() {
		return this.m_lowerTranslation;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetUpperLimit = function() {
		return this.m_upperTranslation;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.SetLimits = function(lower, upper) {
		if (lower === undefined) lower = 0;
		if (upper === undefined) upper = 0;
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_lowerTranslation = lower;
		this.m_upperTranslation = upper;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.IsMotorEnabled = function() {
		return this.m_enableMotor;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.EnableMotor = function(flag) {
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_enableMotor = flag;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.SetMotorSpeed = function(speed) {
		if (speed === undefined) speed = 0;
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_motorSpeed = speed;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetMotorSpeed = function() {
		return this.m_motorSpeed;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.SetMaxMotorForce = function(force) {
		if (force === undefined) force = 0;
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_maxMotorForce = force;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.GetMotorForce = function() {
		return this.m_motorImpulse;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.InitVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		var tX = 0;
		this.m_localCenterA.SetV(bA.GetLocalCenter());
		this.m_localCenterB.SetV(bB.GetLocalCenter());
		var xf1 = bA.GetTransform();
		var xf2 = bB.GetTransform();
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - this.m_localCenterA.x;
		var r1Y = this.m_localAnchor1.y - this.m_localCenterA.y;
		tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - this.m_localCenterB.x;
		var r2Y = this.m_localAnchor2.y - this.m_localCenterB.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var dX = bB.m_sweep.c.x + r2X - bA.m_sweep.c.x - r1X;
		var dY = bB.m_sweep.c.y + r2Y - bA.m_sweep.c.y - r1Y;
		this.m_invMassA = bA.m_invMass;
		this.m_invMassB = bB.m_invMass;
		this.m_invIA = bA.m_invI;
		this.m_invIB = bB.m_invI;
		this.m_axis.SetV(Box2D.Common.Math.b2Math.MulMV(xf1.R, this.m_localXAxis1));
		this.m_a1 = (dX + r1X) * this.m_axis.y - (dY + r1Y) * this.m_axis.x;
		this.m_a2 = r2X * this.m_axis.y - r2Y * this.m_axis.x;
		this.m_motorMass = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_a1 * this.m_a1 + this.m_invIB * this.m_a2 * this.m_a2;
		if (this.m_motorMass > Number.MIN_VALUE) this.m_motorMass = 1.0 / this.m_motorMass;
		this.m_perp.SetV(Box2D.Common.Math.b2Math.MulMV(xf1.R, this.m_localYAxis1));
		this.m_s1 = (dX + r1X) * this.m_perp.y - (dY + r1Y) * this.m_perp.x;
		this.m_s2 = r2X * this.m_perp.y - r2Y * this.m_perp.x;
		var m1 = this.m_invMassA;
		var m2 = this.m_invMassB;
		var i1 = this.m_invIA;
		var i2 = this.m_invIB;
		this.m_K.col1.x = m1 + m2 + i1 * this.m_s1 * this.m_s1 + i2 * this.m_s2 * this.m_s2;
		this.m_K.col1.y = i1 * this.m_s1 + i2 * this.m_s2;
		this.m_K.col1.z = i1 * this.m_s1 * this.m_a1 + i2 * this.m_s2 * this.m_a2;
		this.m_K.col2.x = this.m_K.col1.y;
		this.m_K.col2.y = i1 + i2;
		this.m_K.col2.z = i1 * this.m_a1 + i2 * this.m_a2;
		this.m_K.col3.x = this.m_K.col1.z;
		this.m_K.col3.y = this.m_K.col2.z;
		this.m_K.col3.z = m1 + m2 + i1 * this.m_a1 * this.m_a1 + i2 * this.m_a2 * this.m_a2;
		if (this.m_enableLimit) {
			var jointTransition = this.m_axis.x * dX + this.m_axis.y * dY;
			if (Math.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2.0 * Box2D.Common.b2Settings.b2_linearSlop) {
				this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_equalLimits;
			} else if (jointTransition <= this.m_lowerTranslation) {
				if (this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit) {
					this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit;
					this.m_impulse.z = 0.0;
				}
			} else if (jointTransition >= this.m_upperTranslation) {
				if (this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
					this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit;
					this.m_impulse.z = 0.0;
				}
			} else {
				this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
				this.m_impulse.z = 0.0;
			}
		} else {
			this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
		}
		if (this.m_enableMotor == false) {
			this.m_motorImpulse = 0.0;
		}
		if (step.warmStarting) {
			this.m_impulse.x *= step.dtRatio;
			this.m_impulse.y *= step.dtRatio;
			this.m_motorImpulse *= step.dtRatio;
			var PX = this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x;
			var PY = this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y;
			var L1 = this.m_impulse.x * this.m_s1 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a1;
			var L2 = this.m_impulse.x * this.m_s2 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a2;
			bA.m_linearVelocity.x -= this.m_invMassA * PX;
			bA.m_linearVelocity.y -= this.m_invMassA * PY;
			bA.m_angularVelocity -= this.m_invIA * L1;
			bB.m_linearVelocity.x += this.m_invMassB * PX;
			bB.m_linearVelocity.y += this.m_invMassB * PY;
			bB.m_angularVelocity += this.m_invIB * L2;
		} else {
			this.m_impulse.SetZero();
			this.m_motorImpulse = 0.0;
		}
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.SolveVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var v1 = bA.m_linearVelocity;
		var w1 = bA.m_angularVelocity;
		var v2 = bB.m_linearVelocity;
		var w2 = bB.m_angularVelocity;
		var PX = 0;
		var PY = 0;
		var L1 = 0;
		var L2 = 0;
		if (this.m_enableMotor && this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_equalLimits) {
			var Cdot = this.m_axis.x * (v2.x - v1.x) + this.m_axis.y * (v2.y - v1.y) + this.m_a2 * w2 - this.m_a1 * w1;
			var impulse = this.m_motorMass * (this.m_motorSpeed - Cdot);
			var oldImpulse = this.m_motorImpulse;
			var maxImpulse = step.dt * this.m_maxMotorForce;
			this.m_motorImpulse = Box2D.Common.Math.b2Math.Clamp(this.m_motorImpulse + impulse, (-maxImpulse), maxImpulse);
			impulse = this.m_motorImpulse - oldImpulse;
			PX = impulse * this.m_axis.x;
			PY = impulse * this.m_axis.y;
			L1 = impulse * this.m_a1;
			L2 = impulse * this.m_a2;
			v1.x -= this.m_invMassA * PX;
			v1.y -= this.m_invMassA * PY;
			w1 -= this.m_invIA * L1;
			v2.x += this.m_invMassB * PX;
			v2.y += this.m_invMassB * PY;
			w2 += this.m_invIB * L2;
		}
		var Cdot1X = this.m_perp.x * (v2.x - v1.x) + this.m_perp.y * (v2.y - v1.y) + this.m_s2 * w2 - this.m_s1 * w1;
		var Cdot1Y = w2 - w1;
		if (this.m_enableLimit && this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit) {
			var Cdot2 = this.m_axis.x * (v2.x - v1.x) + this.m_axis.y * (v2.y - v1.y) + this.m_a2 * w2 - this.m_a1 * w1;
			var f1 = this.m_impulse.Copy();
			var df = this.m_K.Solve33(new Box2D.Common.Math.b2Vec3(0, 0, 0), (-Cdot1X), (-Cdot1Y), (-Cdot2));
			this.m_impulse.Add(df);
			if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit) {
				this.m_impulse.z = Math.max(this.m_impulse.z, 0.0);
			} else if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
				this.m_impulse.z = Math.min(this.m_impulse.z, 0.0);
			}
			var bX = (-Cdot1X) - (this.m_impulse.z - f1.z) * this.m_K.col3.x;
			var bY = (-Cdot1Y) - (this.m_impulse.z - f1.z) * this.m_K.col3.y;
			var f2r = this.m_K.Solve22(Box2D.Common.Math.b2Vec2.Get(0, 0), bX, bY);
			f2r.x += f1.x;
			f2r.y += f1.y;
			this.m_impulse.x = f2r.x;
			this.m_impulse.y = f2r.y;
			df.x = this.m_impulse.x - f1.x;
			df.y = this.m_impulse.y - f1.y;
			df.z = this.m_impulse.z - f1.z;
			PX = df.x * this.m_perp.x + df.z * this.m_axis.x;
			PY = df.x * this.m_perp.y + df.z * this.m_axis.y;
			L1 = df.x * this.m_s1 + df.y + df.z * this.m_a1;
			L2 = df.x * this.m_s2 + df.y + df.z * this.m_a2;
			v1.x -= this.m_invMassA * PX;
			v1.y -= this.m_invMassA * PY;
			w1 -= this.m_invIA * L1;
			v2.x += this.m_invMassB * PX;
			v2.y += this.m_invMassB * PY;
			w2 += this.m_invIB * L2;
		} else {
			var df2 = this.m_K.Solve22(Box2D.Common.Math.b2Vec2.Get(0, 0), (-Cdot1X), (-Cdot1Y));
			this.m_impulse.x += df2.x;
			this.m_impulse.y += df2.y;
			PX = df2.x * this.m_perp.x;
			PY = df2.x * this.m_perp.y;
			L1 = df2.x * this.m_s1 + df2.y;
			L2 = df2.x * this.m_s2 + df2.y;
			v1.x -= this.m_invMassA * PX;
			v1.y -= this.m_invMassA * PY;
			w1 -= this.m_invIA * L1;
			v2.x += this.m_invMassB * PX;
			v2.y += this.m_invMassB * PY;
			w2 += this.m_invIB * L2;
		}
		bA.m_linearVelocity.SetV(v1);
		bA.m_angularVelocity = w1;
		bB.m_linearVelocity.SetV(v2);
		bB.m_angularVelocity = w2;
	};
	Box2D.Dynamics.Joints.b2PrismaticJoint.prototype.SolvePositionConstraints = function(baumgarte) {
		if (baumgarte === undefined) baumgarte = 0;
		var limitC = 0;
		var oldLimitImpulse = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var c1 = bA.m_sweep.c;
		var a1 = bA.m_sweep.a;
		var c2 = bB.m_sweep.c;
		var a2 = bB.m_sweep.a;
		var tMat;
		var tX = 0;
		var m1 = 0;
		var m2 = 0;
		var i1 = 0;
		var i2 = 0;
		var linearError = 0.0;
		var angularError = 0.0;
		var active = false;
		var C2 = 0.0;
		var R1 = Box2D.Common.Math.b2Mat22.FromAngle(a1);
		var R2 = Box2D.Common.Math.b2Mat22.FromAngle(a2);
		tMat = R1;
		var r1X = this.m_localAnchor1.x - this.m_localCenterA.x;
		var r1Y = this.m_localAnchor1.y - this.m_localCenterA.y;
		tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = R2;
		var r2X = this.m_localAnchor2.x - this.m_localCenterB.x;
		var r2Y = this.m_localAnchor2.y - this.m_localCenterB.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var dX = c2.x + r2X - c1.x - r1X;
		var dY = c2.y + r2Y - c1.y - r1Y;
		if (this.m_enableLimit) {
			this.m_axis = Box2D.Common.Math.b2Math.MulMV(R1, this.m_localXAxis1);
			this.m_a1 = (dX + r1X) * this.m_axis.y - (dY + r1Y) * this.m_axis.x;
			this.m_a2 = r2X * this.m_axis.y - r2Y * this.m_axis.x;
			var translation = this.m_axis.x * dX + this.m_axis.y * dY;
			if (Math.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2.0 * Box2D.Common.b2Settings.b2_linearSlop) {
				C2 = Box2D.Common.Math.b2Math.Clamp(translation, (-Box2D.Common.b2Settings.b2_maxLinearCorrection), Box2D.Common.b2Settings.b2_maxLinearCorrection);
				linearError = Math.abs(translation);
				active = true;
			} else if (translation <= this.m_lowerTranslation) {
				C2 = Box2D.Common.Math.b2Math.Clamp(translation - this.m_lowerTranslation + Box2D.Common.b2Settings.b2_linearSlop, (-Box2D.Common.b2Settings.b2_maxLinearCorrection), 0.0);
				linearError = this.m_lowerTranslation - translation;
				active = true;
			} else if (translation >= this.m_upperTranslation) {
				C2 = Box2D.Common.Math.b2Math.Clamp(translation - this.m_upperTranslation + Box2D.Common.b2Settings.b2_linearSlop, 0.0, Box2D.Common.b2Settings.b2_maxLinearCorrection);
				linearError = translation - this.m_upperTranslation;
				active = true;
			}
		}
		this.m_perp = Box2D.Common.Math.b2Math.MulMV(R1, this.m_localYAxis1);
		this.m_s1 = (dX + r1X) * this.m_perp.y - (dY + r1Y) * this.m_perp.x;
		this.m_s2 = r2X * this.m_perp.y - r2Y * this.m_perp.x;
		var impulse = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		var C1X = this.m_perp.x * dX + this.m_perp.y * dY;
		var C1Y = a2 - a1 - this.m_refAngle;
		linearError = Math.max(linearError, Math.abs(C1X));
		angularError = Math.abs(C1Y);
		if (active) {
			m1 = this.m_invMassA;
			m2 = this.m_invMassB;
			i1 = this.m_invIA;
			i2 = this.m_invIB;
			this.m_K.col1.x = m1 + m2 + i1 * this.m_s1 * this.m_s1 + i2 * this.m_s2 * this.m_s2;
			this.m_K.col1.y = i1 * this.m_s1 + i2 * this.m_s2;
			this.m_K.col1.z = i1 * this.m_s1 * this.m_a1 + i2 * this.m_s2 * this.m_a2;
			this.m_K.col2.x = this.m_K.col1.y;
			this.m_K.col2.y = i1 + i2;
			this.m_K.col2.z = i1 * this.m_a1 + i2 * this.m_a2;
			this.m_K.col3.x = this.m_K.col1.z;
			this.m_K.col3.y = this.m_K.col2.z;
			this.m_K.col3.z = m1 + m2 + i1 * this.m_a1 * this.m_a1 + i2 * this.m_a2 * this.m_a2;
			this.m_K.Solve33(impulse, (-C1X), (-C1Y), (-C2));
		} else {
			m1 = this.m_invMassA;
			m2 = this.m_invMassB;
			i1 = this.m_invIA;
			i2 = this.m_invIB;
			var k11 = m1 + m2 + i1 * this.m_s1 * this.m_s1 + i2 * this.m_s2 * this.m_s2;
			var k12 = i1 * this.m_s1 + i2 * this.m_s2;
			var k22 = i1 + i2;
			this.m_K.col1.Set(k11, k12, 0.0);
			this.m_K.col2.Set(k12, k22, 0.0);
			var impulse1 = this.m_K.Solve22(Box2D.Common.Math.b2Vec2.Get(0, 0), (-C1X), (-C1Y));
			impulse.x = impulse1.x;
			impulse.y = impulse1.y;
			impulse.z = 0.0;
		}
		var PX = impulse.x * this.m_perp.x + impulse.z * this.m_axis.x;
		var PY = impulse.x * this.m_perp.y + impulse.z * this.m_axis.y;
		var L1 = impulse.x * this.m_s1 + impulse.y + impulse.z * this.m_a1;
		var L2 = impulse.x * this.m_s2 + impulse.y + impulse.z * this.m_a2;
		c1.x -= this.m_invMassA * PX;
		c1.y -= this.m_invMassA * PY;
		a1 -= this.m_invIA * L1;
		c2.x += this.m_invMassB * PX;
		c2.y += this.m_invMassB * PY;
		a2 += this.m_invIB * L2;
		bA.m_sweep.a = a1;
		bB.m_sweep.a = a2;
		bA.SynchronizeTransform();
		bB.SynchronizeTransform();
		return linearError <= Box2D.Common.b2Settings.b2_linearSlop && angularError <= Box2D.Common.b2Settings.b2_angularSlop;
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2JointDef}
	 */
	Box2D.Dynamics.Joints.b2PrismaticJointDef = function() {
		Box2D.Dynamics.Joints.b2JointDef.call(this);
		this.localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAxisA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.type = Box2D.Dynamics.Joints.b2Joint.e_prismaticJoint;
		this.localAxisA.Set(1.0, 0.0);
		this.referenceAngle = 0.0;
		this.enableLimit = false;
		this.lowerTranslation = 0.0;
		this.upperTranslation = 0.0;
		this.enableMotor = false;
		this.maxMotorForce = 0.0;
		this.motorSpeed = 0.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2PrismaticJointDef, Box2D.Dynamics.Joints.b2JointDef);
	Box2D.Dynamics.Joints.b2PrismaticJointDef.prototype.Initialize = function(bA, bB, anchor, axis) {
		this.bodyA = bA;
		this.bodyB = bB;
		this.localAnchorA = this.bodyA.GetLocalPoint(anchor);
		this.localAnchorB = this.bodyB.GetLocalPoint(anchor);
		this.localAxisA = this.bodyA.GetLocalVector(axis);
		this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle();
	};
	Box2D.Dynamics.Joints.b2PrismaticJointDef.prototype.Create = function() {
		return new Box2D.Dynamics.Joints.b2PrismaticJoint(this);
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2PulleyJointDef} def
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.Joints.b2PulleyJoint = function(def) {
		Box2D.Dynamics.Joints.b2Joint.call(this, def);
		this.m_groundAnchor1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_groundAnchor2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_u1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_u2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_ground = this.m_bodyA.m_world.m_groundBody;
		this.m_groundAnchor1.x = def.groundAnchorA.x - this.m_ground.m_xf.position.x;
		this.m_groundAnchor1.y = def.groundAnchorA.y - this.m_ground.m_xf.position.y;
		this.m_groundAnchor2.x = def.groundAnchorB.x - this.m_ground.m_xf.position.x;
		this.m_groundAnchor2.y = def.groundAnchorB.y - this.m_ground.m_xf.position.y;
		this.m_localAnchor1.SetV(def.localAnchorA);
		this.m_localAnchor2.SetV(def.localAnchorB);
		this.m_ratio = def.ratio;
		this.m_constant = def.lengthA + this.m_ratio * def.lengthB;
		this.m_maxLength1 = Math.min(def.maxLengthA, this.m_constant - this.m_ratio * Box2D.Dynamics.Joints.b2PulleyJoint.b2_minPulleyLength);
		this.m_maxLength2 = Math.min(def.maxLengthB, (this.m_constant - Box2D.Dynamics.Joints.b2PulleyJoint.b2_minPulleyLength) / this.m_ratio);
		this.m_impulse = 0.0;
		this.m_limitImpulse1 = 0.0;
		this.m_limitImpulse2 = 0.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2PulleyJoint, Box2D.Dynamics.Joints.b2Joint);
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetAnchorA = function() {
		return this.m_bodyA.GetWorldPoint(this.m_localAnchor1);
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetAnchorB = function() {
		return this.m_bodyB.GetWorldPoint(this.m_localAnchor2);
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetReactionForce = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return Box2D.Common.Math.b2Vec2.Get(inv_dt * this.m_impulse * this.m_u2.x, inv_dt * this.m_impulse * this.m_u2.y);
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetReactionTorque = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return 0.0;
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetGroundAnchorA = function() {
		var a = this.m_ground.m_xf.position.Copy();
		a.Add(this.m_groundAnchor1);
		return a;
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetGroundAnchorB = function() {
		var a = this.m_ground.m_xf.position.Copy();
		a.Add(this.m_groundAnchor2);
		return a;
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetLength1 = function() {
		var p = this.m_bodyA.GetWorldPoint(this.m_localAnchor1);
		var sX = this.m_ground.m_xf.position.x + this.m_groundAnchor1.x;
		var sY = this.m_ground.m_xf.position.y + this.m_groundAnchor1.y;
		var dX = p.x - sX;
		var dY = p.y - sY;
		return Math.sqrt(dX * dX + dY * dY);
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetLength2 = function() {
		var p = this.m_bodyB.GetWorldPoint(this.m_localAnchor2);
		var sX = this.m_ground.m_xf.position.x + this.m_groundAnchor2.x;
		var sY = this.m_ground.m_xf.position.y + this.m_groundAnchor2.y;
		var dX = p.x - sX;
		var dY = p.y - sY;
		return Math.sqrt(dX * dX + dY * dY);
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.GetRatio = function() {
		return this.m_ratio;
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.InitVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
		var tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var p1X = bA.m_sweep.c.x + r1X;
		var p1Y = bA.m_sweep.c.y + r1Y;
		var p2X = bB.m_sweep.c.x + r2X;
		var p2Y = bB.m_sweep.c.y + r2Y;
		var s1X = this.m_ground.m_xf.position.x + this.m_groundAnchor1.x;
		var s1Y = this.m_ground.m_xf.position.y + this.m_groundAnchor1.y;
		var s2X = this.m_ground.m_xf.position.x + this.m_groundAnchor2.x;
		var s2Y = this.m_ground.m_xf.position.y + this.m_groundAnchor2.y;
		this.m_u1.Set(p1X - s1X, p1Y - s1Y);
		this.m_u2.Set(p2X - s2X, p2Y - s2Y);
		var length1 = this.m_u1.Length();
		var length2 = this.m_u2.Length();
		if (length1 > Box2D.Common.b2Settings.b2_linearSlop) {
			this.m_u1.Multiply(1.0 / length1);
		} else {
			this.m_u1.SetZero();
		}
		if (length2 > Box2D.Common.b2Settings.b2_linearSlop) {
			this.m_u2.Multiply(1.0 / length2);
		} else {
			this.m_u2.SetZero();
		}
		var C = this.m_constant - length1 - this.m_ratio * length2;
		if (C > 0.0) {
			this.m_state = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
			this.m_impulse = 0.0;
		} else {
			this.m_state = Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit;
		}
		if (length1 < this.m_maxLength1) {
			this.m_limitState1 = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
			this.m_limitImpulse1 = 0.0;
		} else {
			this.m_limitState1 = Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit;
		}
		if (length2 < this.m_maxLength2) {
			this.m_limitState2 = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
			this.m_limitImpulse2 = 0.0;
		} else {
			this.m_limitState2 = Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit;
		}
		var cr1u1 = r1X * this.m_u1.y - r1Y * this.m_u1.x;
		var cr2u2 = r2X * this.m_u2.y - r2Y * this.m_u2.x;
		this.m_limitMass1 = bA.m_invMass + bA.m_invI * cr1u1 * cr1u1;
		this.m_limitMass2 = bB.m_invMass + bB.m_invI * cr2u2 * cr2u2;
		this.m_pulleyMass = this.m_limitMass1 + this.m_ratio * this.m_ratio * this.m_limitMass2;
		this.m_limitMass1 = 1.0 / this.m_limitMass1;
		this.m_limitMass2 = 1.0 / this.m_limitMass2;
		this.m_pulleyMass = 1.0 / this.m_pulleyMass;
		if (step.warmStarting) {
			this.m_impulse *= step.dtRatio;
			this.m_limitImpulse1 *= step.dtRatio;
			this.m_limitImpulse2 *= step.dtRatio;
			var P1X = ((-this.m_impulse) - this.m_limitImpulse1) * this.m_u1.x;
			var P1Y = ((-this.m_impulse) - this.m_limitImpulse1) * this.m_u1.y;
			var P2X = ((-this.m_ratio * this.m_impulse) - this.m_limitImpulse2) * this.m_u2.x;
			var P2Y = ((-this.m_ratio * this.m_impulse) - this.m_limitImpulse2) * this.m_u2.y;
			bA.m_linearVelocity.x += bA.m_invMass * P1X;
			bA.m_linearVelocity.y += bA.m_invMass * P1Y;
			bA.m_angularVelocity += bA.m_invI * (r1X * P1Y - r1Y * P1X);
			bB.m_linearVelocity.x += bB.m_invMass * P2X;
			bB.m_linearVelocity.y += bB.m_invMass * P2Y;
			bB.m_angularVelocity += bB.m_invI * (r2X * P2Y - r2Y * P2X);
		} else {
			this.m_impulse = 0.0;
			this.m_limitImpulse1 = 0.0;
			this.m_limitImpulse2 = 0.0;
		}
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.SolveVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
		var tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var v1X = 0;
		var v1Y = 0;
		var v2X = 0;
		var v2Y = 0;
		var P1X = 0;
		var P1Y = 0;
		var P2X = 0;
		var P2Y = 0;
		var Cdot = 0;
		var impulse = 0;
		var oldImpulse = 0;
		if (this.m_state == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
			v1X = bA.m_linearVelocity.x + ((-bA.m_angularVelocity * r1Y));
			v1Y = bA.m_linearVelocity.y + (bA.m_angularVelocity * r1X);
			v2X = bB.m_linearVelocity.x + ((-bB.m_angularVelocity * r2Y));
			v2Y = bB.m_linearVelocity.y + (bB.m_angularVelocity * r2X);
			Cdot = (-(this.m_u1.x * v1X + this.m_u1.y * v1Y)) - this.m_ratio * (this.m_u2.x * v2X + this.m_u2.y * v2Y);
			impulse = this.m_pulleyMass * ((-Cdot));
			oldImpulse = this.m_impulse;
			this.m_impulse = Math.max(0.0, this.m_impulse + impulse);
			impulse = this.m_impulse - oldImpulse;
			P1X = (-impulse * this.m_u1.x);
			P1Y = (-impulse * this.m_u1.y);
			P2X = (-this.m_ratio * impulse * this.m_u2.x);
			P2Y = (-this.m_ratio * impulse * this.m_u2.y);
			bA.m_linearVelocity.x += bA.m_invMass * P1X;
			bA.m_linearVelocity.y += bA.m_invMass * P1Y;
			bA.m_angularVelocity += bA.m_invI * (r1X * P1Y - r1Y * P1X);
			bB.m_linearVelocity.x += bB.m_invMass * P2X;
			bB.m_linearVelocity.y += bB.m_invMass * P2Y;
			bB.m_angularVelocity += bB.m_invI * (r2X * P2Y - r2Y * P2X);
		}
		if (this.m_limitState1 == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
			v1X = bA.m_linearVelocity.x + ((-bA.m_angularVelocity * r1Y));
			v1Y = bA.m_linearVelocity.y + (bA.m_angularVelocity * r1X);
			Cdot = (-(this.m_u1.x * v1X + this.m_u1.y * v1Y));
			impulse = (-this.m_limitMass1 * Cdot);
			oldImpulse = this.m_limitImpulse1;
			this.m_limitImpulse1 = Math.max(0.0, this.m_limitImpulse1 + impulse);
			impulse = this.m_limitImpulse1 - oldImpulse;
			P1X = (-impulse * this.m_u1.x);
			P1Y = (-impulse * this.m_u1.y);
			bA.m_linearVelocity.x += bA.m_invMass * P1X;
			bA.m_linearVelocity.y += bA.m_invMass * P1Y;
			bA.m_angularVelocity += bA.m_invI * (r1X * P1Y - r1Y * P1X);
		}
		if (this.m_limitState2 == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
			v2X = bB.m_linearVelocity.x + ((-bB.m_angularVelocity * r2Y));
			v2Y = bB.m_linearVelocity.y + (bB.m_angularVelocity * r2X);
			Cdot = (-(this.m_u2.x * v2X + this.m_u2.y * v2Y));
			impulse = (-this.m_limitMass2 * Cdot);
			oldImpulse = this.m_limitImpulse2;
			this.m_limitImpulse2 = Math.max(0.0, this.m_limitImpulse2 + impulse);
			impulse = this.m_limitImpulse2 - oldImpulse;
			P2X = (-impulse * this.m_u2.x);
			P2Y = (-impulse * this.m_u2.y);
			bB.m_linearVelocity.x += bB.m_invMass * P2X;
			bB.m_linearVelocity.y += bB.m_invMass * P2Y;
			bB.m_angularVelocity += bB.m_invI * (r2X * P2Y - r2Y * P2X);
		}
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.prototype.SolvePositionConstraints = function(baumgarte) {
		if (baumgarte === undefined) baumgarte = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		var s1X = this.m_ground.m_xf.position.x + this.m_groundAnchor1.x;
		var s1Y = this.m_ground.m_xf.position.y + this.m_groundAnchor1.y;
		var s2X = this.m_ground.m_xf.position.x + this.m_groundAnchor2.x;
		var s2Y = this.m_ground.m_xf.position.y + this.m_groundAnchor2.y;
		var r1X = 0;
		var r1Y = 0;
		var r2X = 0;
		var r2Y = 0;
		var p1X = 0;
		var p1Y = 0;
		var p2X = 0;
		var p2Y = 0;
		var length1 = 0;
		var length2 = 0;
		var C = 0;
		var impulse = 0;
		var oldImpulse = 0;
		var oldLimitPositionImpulse = 0;
		var tX = 0;
		var linearError = 0.0;
		if (this.m_state == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
			tMat = bA.m_xf.R;
			r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
			r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
			tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
			r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
			r1X = tX;
			tMat = bB.m_xf.R;
			r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
			r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
			tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
			r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
			r2X = tX;
			p1X = bA.m_sweep.c.x + r1X;
			p1Y = bA.m_sweep.c.y + r1Y;
			p2X = bB.m_sweep.c.x + r2X;
			p2Y = bB.m_sweep.c.y + r2Y;
			this.m_u1.Set(p1X - s1X, p1Y - s1Y);
			this.m_u2.Set(p2X - s2X, p2Y - s2Y);
			length1 = this.m_u1.Length();
			length2 = this.m_u2.Length();
			if (length1 > Box2D.Common.b2Settings.b2_linearSlop) {
				this.m_u1.Multiply(1.0 / length1);
			} else {
				this.m_u1.SetZero();
			}
			if (length2 > Box2D.Common.b2Settings.b2_linearSlop) {
				this.m_u2.Multiply(1.0 / length2);
			} else {
				this.m_u2.SetZero();
			}
			C = this.m_constant - length1 - this.m_ratio * length2;
			linearError = Math.max(linearError, (-C));
			C = Box2D.Common.Math.b2Math.Clamp(C + Box2D.Common.b2Settings.b2_linearSlop, (-Box2D.Common.b2Settings.b2_maxLinearCorrection), 0.0);
			impulse = (-this.m_pulleyMass * C);
			p1X = (-impulse * this.m_u1.x);
			p1Y = (-impulse * this.m_u1.y);
			p2X = (-this.m_ratio * impulse * this.m_u2.x);
			p2Y = (-this.m_ratio * impulse * this.m_u2.y);
			bA.m_sweep.c.x += bA.m_invMass * p1X;
			bA.m_sweep.c.y += bA.m_invMass * p1Y;
			bA.m_sweep.a += bA.m_invI * (r1X * p1Y - r1Y * p1X);
			bB.m_sweep.c.x += bB.m_invMass * p2X;
			bB.m_sweep.c.y += bB.m_invMass * p2Y;
			bB.m_sweep.a += bB.m_invI * (r2X * p2Y - r2Y * p2X);
			bA.SynchronizeTransform();
			bB.SynchronizeTransform();
		}
		if (this.m_limitState1 == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
			tMat = bA.m_xf.R;
			r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
			r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
			tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
			r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
			r1X = tX;
			p1X = bA.m_sweep.c.x + r1X;
			p1Y = bA.m_sweep.c.y + r1Y;
			this.m_u1.Set(p1X - s1X, p1Y - s1Y);
			length1 = this.m_u1.Length();
			if (length1 > Box2D.Common.b2Settings.b2_linearSlop) {
				this.m_u1.x *= 1.0 / length1;
				this.m_u1.y *= 1.0 / length1;
			} else {
				this.m_u1.SetZero();
			}
			C = this.m_maxLength1 - length1;
			linearError = Math.max(linearError, (-C));
			C = Box2D.Common.Math.b2Math.Clamp(C + Box2D.Common.b2Settings.b2_linearSlop, (-Box2D.Common.b2Settings.b2_maxLinearCorrection), 0.0);
			impulse = (-this.m_limitMass1 * C);
			p1X = (-impulse * this.m_u1.x);
			p1Y = (-impulse * this.m_u1.y);
			bA.m_sweep.c.x += bA.m_invMass * p1X;
			bA.m_sweep.c.y += bA.m_invMass * p1Y;
			bA.m_sweep.a += bA.m_invI * (r1X * p1Y - r1Y * p1X);
			bA.SynchronizeTransform();
		}
		if (this.m_limitState2 == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
			tMat = bB.m_xf.R;
			r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
			r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
			tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
			r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
			r2X = tX;
			p2X = bB.m_sweep.c.x + r2X;
			p2Y = bB.m_sweep.c.y + r2Y;
			this.m_u2.Set(p2X - s2X, p2Y - s2Y);
			length2 = this.m_u2.Length();
			if (length2 > Box2D.Common.b2Settings.b2_linearSlop) {
				this.m_u2.x *= 1.0 / length2;
				this.m_u2.y *= 1.0 / length2;
			}
			else {
				this.m_u2.SetZero();
			}
			C = this.m_maxLength2 - length2;
			linearError = Math.max(linearError, (-C));
			C = Box2D.Common.Math.b2Math.Clamp(C + Box2D.Common.b2Settings.b2_linearSlop, (-Box2D.Common.b2Settings.b2_maxLinearCorrection), 0.0);
			impulse = (-this.m_limitMass2 * C);
			p2X = (-impulse * this.m_u2.x);
			p2Y = (-impulse * this.m_u2.y);
			bB.m_sweep.c.x += bB.m_invMass * p2X;
			bB.m_sweep.c.y += bB.m_invMass * p2Y;
			bB.m_sweep.a += bB.m_invI * (r2X * p2Y - r2Y * p2X);
			bB.SynchronizeTransform();
		}
		return linearError < Box2D.Common.b2Settings.b2_linearSlop;
	};
	Box2D.Dynamics.Joints.b2PulleyJoint.b2_minPulleyLength = 1.0;
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2JointDef}
	 */
	Box2D.Dynamics.Joints.b2PulleyJointDef = function() {
		Box2D.Dynamics.Joints.b2JointDef.call(this);
		this.groundAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.groundAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.type = Box2D.Dynamics.Joints.b2Joint.e_pulleyJoint;
		this.groundAnchorA.Set((-1.0), 1.0);
		this.groundAnchorB.Set(1.0, 1.0);
		this.localAnchorA.Set((-1.0), 0.0);
		this.localAnchorB.Set(1.0, 0.0);
		this.lengthA = 0.0;
		this.maxLengthA = 0.0;
		this.lengthB = 0.0;
		this.maxLengthB = 0.0;
		this.ratio = 1.0;
		this.collideConnected = true;
	};
	c2inherit(Box2D.Dynamics.Joints.b2PulleyJointDef, Box2D.Dynamics.Joints.b2JointDef);
	Box2D.Dynamics.Joints.b2PulleyJointDef.prototype.Initialize = function(bA, bB, gaA, gaB, anchorA, anchorB, r) {
		if (r === undefined) r = 0;
		this.bodyA = bA;
		this.bodyB = bB;
		this.groundAnchorA.SetV(gaA);
		this.groundAnchorB.SetV(gaB);
		this.localAnchorA = this.bodyA.GetLocalPoint(anchorA);
		this.localAnchorB = this.bodyB.GetLocalPoint(anchorB);
		var d1X = anchorA.x - gaA.x;
		var d1Y = anchorA.y - gaA.y;
		this.lengthA = Math.sqrt(d1X * d1X + d1Y * d1Y);
		var d2X = anchorB.x - gaB.x;
		var d2Y = anchorB.y - gaB.y;
		this.lengthB = Math.sqrt(d2X * d2X + d2Y * d2Y);
		this.ratio = r;
		var C = this.lengthA + this.ratio * this.lengthB;
		this.maxLengthA = C - this.ratio * Box2D.Dynamics.Joints.b2PulleyJoint.b2_minPulleyLength;
		this.maxLengthB = (C - Box2D.Dynamics.Joints.b2PulleyJoint.b2_minPulleyLength) / this.ratio;
	};
	Box2D.Dynamics.Joints.b2PulleyJointDef.prototype.Create = function() {
		return new Box2D.Dynamics.Joints.b2PulleyJoint(this);
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2RevoluteJointDef} def
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.Joints.b2RevoluteJoint = function(def) {
		Box2D.Dynamics.Joints.b2Joint.call(this, def);
		this.K = new Box2D.Common.Math.b2Mat22();
		this.K1 = new Box2D.Common.Math.b2Mat22();
		this.K2 = new Box2D.Common.Math.b2Mat22();
		this.K3 = new Box2D.Common.Math.b2Mat22();
		this.impulse3 = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		this.impulse2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.reduced = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor1 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchor2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_impulse = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		this.m_mass = new Box2D.Common.Math.b2Mat33();
		this.m_localAnchor1.SetV(def.localAnchorA);
		this.m_localAnchor2.SetV(def.localAnchorB);
		this.m_referenceAngle = def.referenceAngle;
		this.m_impulse.SetZero();
		this.m_motorImpulse = 0.0;
		this.m_lowerAngle = def.lowerAngle;
		this.m_upperAngle = def.upperAngle;
		this.m_maxMotorTorque = def.maxMotorTorque;
		this.m_motorSpeed = def.motorSpeed;
		this.m_enableLimit = def.enableLimit;
		this.m_enableMotor = def.enableMotor;
		this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
	};
	c2inherit(Box2D.Dynamics.Joints.b2RevoluteJoint, Box2D.Dynamics.Joints.b2Joint);
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetAnchorA = function() {
		return this.m_bodyA.GetWorldPoint(this.m_localAnchor1);
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetAnchorB = function() {
		return this.m_bodyB.GetWorldPoint(this.m_localAnchor2);
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetReactionForce = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return Box2D.Common.Math.b2Vec2.Get(inv_dt * this.m_impulse.x, inv_dt * this.m_impulse.y);
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetReactionTorque = function(inv_dt) {
		if (inv_dt === undefined) inv_dt = 0;
		return inv_dt * this.m_impulse.z;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetJointAngle = function() {
		return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a - this.m_referenceAngle;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetJointSpeed = function() {
		return this.m_bodyB.m_angularVelocity - this.m_bodyA.m_angularVelocity;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.IsLimitEnabled = function() {
		return this.m_enableLimit;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.EnableLimit = function(flag) {
		this.m_enableLimit = flag;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetLowerLimit = function() {
		return this.m_lowerAngle;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetUpperLimit = function() {
		return this.m_upperAngle;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.SetLimits = function(lower, upper) {
		if (lower === undefined) lower = 0;
		if (upper === undefined) upper = 0;
		this.m_lowerAngle = lower;
		this.m_upperAngle = upper;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.IsMotorEnabled = function() {
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		return this.m_enableMotor;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.EnableMotor = function(flag) {
		this.m_enableMotor = flag;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.SetMotorSpeed = function(speed) {
		if (speed === undefined) speed = 0;
		this.m_bodyA.SetAwake(true);
		this.m_bodyB.SetAwake(true);
		this.m_motorSpeed = speed;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetMotorSpeed = function() {
		return this.m_motorSpeed;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.SetMaxMotorTorque = function(torque) {
		if (torque === undefined) torque = 0;
		this.m_maxMotorTorque = torque;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.GetMotorTorque = function() {
		return this.m_maxMotorTorque;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.InitVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		var tX = 0;
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var m1 = bA.m_invMass;
		var m2 = bB.m_invMass;
		var i1 = bA.m_invI;
		var i2 = bB.m_invI;
		this.m_mass.col1.x = m1 + m2 + r1Y * r1Y * i1 + r2Y * r2Y * i2;
		this.m_mass.col2.x = (-r1Y * r1X * i1) - r2Y * r2X * i2;
		this.m_mass.col3.x = (-r1Y * i1) - r2Y * i2;
		this.m_mass.col1.y = this.m_mass.col2.x;
		this.m_mass.col2.y = m1 + m2 + r1X * r1X * i1 + r2X * r2X * i2;
		this.m_mass.col3.y = r1X * i1 + r2X * i2;
		this.m_mass.col1.z = this.m_mass.col3.x;
		this.m_mass.col2.z = this.m_mass.col3.y;
		this.m_mass.col3.z = i1 + i2;
		this.m_motorMass = 1.0 / (i1 + i2);
		if (!this.m_enableMotor) {
			this.m_motorImpulse = 0.0;
		}
		if (this.m_enableLimit) {
			var jointAngle = bB.m_sweep.a - bA.m_sweep.a - this.m_referenceAngle;
			if (Math.abs(this.m_upperAngle - this.m_lowerAngle) < 2.0 * Box2D.Common.b2Settings.b2_angularSlop) {
				this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_equalLimits;
			} else if (jointAngle <= this.m_lowerAngle) {
				if (this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit) {
					this.m_impulse.z = 0.0;
				}
				this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit;
			} else if (jointAngle >= this.m_upperAngle) {
				if (this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
					this.m_impulse.z = 0.0;
				}
				this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit;
			} else {
				this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
				this.m_impulse.z = 0.0;
			}
		} else {
			this.m_limitState = Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit;
		}
		if (step.warmStarting) {
			this.m_impulse.x *= step.dtRatio;
			this.m_impulse.y *= step.dtRatio;
			this.m_motorImpulse *= step.dtRatio;
			var PX = this.m_impulse.x;
			var PY = this.m_impulse.y;
			bA.m_linearVelocity.x -= m1 * PX;
			bA.m_linearVelocity.y -= m1 * PY;
			bA.m_angularVelocity -= i1 * ((r1X * PY - r1Y * PX) + this.m_motorImpulse + this.m_impulse.z);
			bB.m_linearVelocity.x += m2 * PX;
			bB.m_linearVelocity.y += m2 * PY;
			bB.m_angularVelocity += i2 * ((r2X * PY - r2Y * PX) + this.m_motorImpulse + this.m_impulse.z);
		} else {
			this.m_impulse.SetZero();
			this.m_motorImpulse = 0.0;
		}
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.SolveVelocityConstraints = function(step) {
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var tMat;
		var tX = 0;
		var newImpulse = 0;
		var r1X = 0;
		var r1Y = 0;
		var r2X = 0;
		var r2Y = 0;
		var v1 = bA.m_linearVelocity;
		var w1 = bA.m_angularVelocity;
		var v2 = bB.m_linearVelocity;
		var w2 = bB.m_angularVelocity;
		var m1 = bA.m_invMass;
		var m2 = bB.m_invMass;
		var i1 = bA.m_invI;
		var i2 = bB.m_invI;
		if (this.m_enableMotor && this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_equalLimits) {
			var Cdot = w2 - w1 - this.m_motorSpeed;
			var impulse = this.m_motorMass * ((-Cdot));
			var oldImpulse = this.m_motorImpulse;
			var maxImpulse = step.dt * this.m_maxMotorTorque;
			this.m_motorImpulse = Box2D.Common.Math.b2Math.Clamp(this.m_motorImpulse + impulse, (-maxImpulse), maxImpulse);
			impulse = this.m_motorImpulse - oldImpulse;
			w1 -= i1 * impulse;
			w2 += i2 * impulse;
		}
		if (this.m_enableLimit && this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit) {
			tMat = bA.m_xf.R;
			r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
			r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
			tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
			r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
			r1X = tX;
			tMat = bB.m_xf.R;
			r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
			r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
			tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
			r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
			r2X = tX;
			var Cdot1X = v2.x + ((-w2 * r2Y)) - v1.x - ((-w1 * r1Y));
			var Cdot1Y = v2.y + (w2 * r2X) - v1.y - (w1 * r1X);
			var Cdot2 = w2 - w1;
			this.m_mass.Solve33(this.impulse3, (-Cdot1X), (-Cdot1Y), (-Cdot2));
			if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_equalLimits) {
				this.m_impulse.Add(this.impulse3);
			} else if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit) {
				newImpulse = this.m_impulse.z + this.impulse3.z;
				if (newImpulse < 0.0) {
					this.m_mass.Solve22(this.reduced, (-Cdot1X), (-Cdot1Y));
					this.impulse3.x = this.reduced.x;
					this.impulse3.y = this.reduced.y;
					this.impulse3.z = (-this.m_impulse.z);
					this.m_impulse.x += this.reduced.x;
					this.m_impulse.y += this.reduced.y;
					this.m_impulse.z = 0.0;
				}
			} else if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
				newImpulse = this.m_impulse.z + this.impulse3.z;
				if (newImpulse > 0.0) {
					this.m_mass.Solve22(this.reduced, (-Cdot1X), (-Cdot1Y));
					this.impulse3.x = this.reduced.x;
					this.impulse3.y = this.reduced.y;
					this.impulse3.z = (-this.m_impulse.z);
					this.m_impulse.x += this.reduced.x;
					this.m_impulse.y += this.reduced.y;
					this.m_impulse.z = 0.0;
				}
			}
			v1.x -= m1 * this.impulse3.x;
			v1.y -= m1 * this.impulse3.y;
			w1 -= i1 * (r1X * this.impulse3.y - r1Y * this.impulse3.x + this.impulse3.z);
			v2.x += m2 * this.impulse3.x;
			v2.y += m2 * this.impulse3.y;
			w2 += i2 * (r2X * this.impulse3.y - r2Y * this.impulse3.x + this.impulse3.z);
		} else {
			tMat = bA.m_xf.R;
			r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
			r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
			tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
			r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
			r1X = tX;
			tMat = bB.m_xf.R;
			r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
			r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
			tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
			r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
			r2X = tX;
			var CdotX = v2.x + ((-w2 * r2Y)) - v1.x - ((-w1 * r1Y));
			var CdotY = v2.y + (w2 * r2X) - v1.y - (w1 * r1X);
			this.m_mass.Solve22(this.impulse2, (-CdotX), (-CdotY));
			this.m_impulse.x += this.impulse2.x;
			this.m_impulse.y += this.impulse2.y;
			v1.x -= m1 * this.impulse2.x;
			v1.y -= m1 * this.impulse2.y;
			w1 -= i1 * (r1X * this.impulse2.y - r1Y * this.impulse2.x);
			v2.x += m2 * this.impulse2.x;
			v2.y += m2 * this.impulse2.y;
			w2 += i2 * (r2X * this.impulse2.y - r2Y * this.impulse2.x);
		}
		bA.m_linearVelocity.SetV(v1);
		bA.m_angularVelocity = w1;
		bB.m_linearVelocity.SetV(v2);
		bB.m_angularVelocity = w2;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.prototype.SolvePositionConstraints = function(baumgarte) {
		if (baumgarte === undefined) baumgarte = 0;
		var oldLimitImpulse = 0;
		var C = 0;
		var tMat;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var angularError = 0.0;
		var positionError = 0.0;
		var tX = 0;
		var impulseX = 0;
		var impulseY = 0;
		if (this.m_enableLimit && this.m_limitState != Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit) {
			var angle = bB.m_sweep.a - bA.m_sweep.a - this.m_referenceAngle;
			var limitImpulse = 0.0;
			if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_equalLimits) {
				C = Box2D.Common.Math.b2Math.Clamp(angle - this.m_lowerAngle, (-Box2D.Common.b2Settings.b2_maxAngularCorrection), Box2D.Common.b2Settings.b2_maxAngularCorrection);
				limitImpulse = (-this.m_motorMass * C);
				angularError = Math.abs(C);
			} else if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit) {
				C = angle - this.m_lowerAngle;
				angularError = (-C);
				C = Box2D.Common.Math.b2Math.Clamp(C + Box2D.Common.b2Settings.b2_angularSlop, (-Box2D.Common.b2Settings.b2_maxAngularCorrection), 0.0);
				limitImpulse = (-this.m_motorMass * C);
			} else if (this.m_limitState == Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit) {
				C = angle - this.m_upperAngle;
				angularError = C;
				C = Box2D.Common.Math.b2Math.Clamp(C - Box2D.Common.b2Settings.b2_angularSlop, 0.0, Box2D.Common.b2Settings.b2_maxAngularCorrection);
				limitImpulse = (-this.m_motorMass * C);
			}
			bA.m_sweep.a -= bA.m_invI * limitImpulse;
			bB.m_sweep.a += bB.m_invI * limitImpulse;
			bA.SynchronizeTransform();
			bB.SynchronizeTransform();
		}
		tMat = bA.m_xf.R;
		var r1X = this.m_localAnchor1.x - bA.m_sweep.localCenter.x;
		var r1Y = this.m_localAnchor1.y - bA.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r1X + tMat.col2.x * r1Y);
		r1Y = (tMat.col1.y * r1X + tMat.col2.y * r1Y);
		r1X = tX;
		tMat = bB.m_xf.R;
		var r2X = this.m_localAnchor2.x - bB.m_sweep.localCenter.x;
		var r2Y = this.m_localAnchor2.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * r2X + tMat.col2.x * r2Y);
		r2Y = (tMat.col1.y * r2X + tMat.col2.y * r2Y);
		r2X = tX;
		var CX = bB.m_sweep.c.x + r2X - bA.m_sweep.c.x - r1X;
		var CY = bB.m_sweep.c.y + r2Y - bA.m_sweep.c.y - r1Y;
		var CLengthSquared = CX * CX + CY * CY;
		var CLength = Math.sqrt(CLengthSquared);
		positionError = CLength;
		var invMass1 = bA.m_invMass;
		var invMass2 = bB.m_invMass;
		var invI1 = bA.m_invI;
		var invI2 = bB.m_invI;
		var k_allowedStretch = 10.0 * Box2D.Common.b2Settings.b2_linearSlop;
		if (CLengthSquared > k_allowedStretch * k_allowedStretch) {
			var uX = CX / CLength;
			var uY = CY / CLength;
			var k = invMass1 + invMass2;
			var m = 1.0 / k;
			impulseX = m * ((-CX));
			impulseY = m * ((-CY));
			var k_beta = 0.5;
			bA.m_sweep.c.x -= k_beta * invMass1 * impulseX;
			bA.m_sweep.c.y -= k_beta * invMass1 * impulseY;
			bB.m_sweep.c.x += k_beta * invMass2 * impulseX;
			bB.m_sweep.c.y += k_beta * invMass2 * impulseY;
			CX = bB.m_sweep.c.x + r2X - bA.m_sweep.c.x - r1X;
			CY = bB.m_sweep.c.y + r2Y - bA.m_sweep.c.y - r1Y;
		}
		this.K1.col1.x = invMass1 + invMass2;
		this.K1.col2.x = 0.0;
		this.K1.col1.y = 0.0;
		this.K1.col2.y = invMass1 + invMass2;
		this.K2.col1.x = invI1 * r1Y * r1Y;
		this.K2.col2.x = (-invI1 * r1X * r1Y);
		this.K2.col1.y = (-invI1 * r1X * r1Y);
		this.K2.col2.y = invI1 * r1X * r1X;
		this.K3.col1.x = invI2 * r2Y * r2Y;
		this.K3.col2.x = (-invI2 * r2X * r2Y);
		this.K3.col1.y = (-invI2 * r2X * r2Y);
		this.K3.col2.y = invI2 * r2X * r2X;
		this.K.SetM(this.K1);
		this.K.AddM(this.K2);
		this.K.AddM(this.K3);
		this.K.Solve(Box2D.Dynamics.Joints.b2RevoluteJoint.tImpulse, (-CX), (-CY));
		impulseX = Box2D.Dynamics.Joints.b2RevoluteJoint.tImpulse.x;
		impulseY = Box2D.Dynamics.Joints.b2RevoluteJoint.tImpulse.y;
		bA.m_sweep.c.x -= bA.m_invMass * impulseX;
		bA.m_sweep.c.y -= bA.m_invMass * impulseY;
		bA.m_sweep.a -= bA.m_invI * (r1X * impulseY - r1Y * impulseX);
		bB.m_sweep.c.x += bB.m_invMass * impulseX;
		bB.m_sweep.c.y += bB.m_invMass * impulseY;
		bB.m_sweep.a += bB.m_invI * (r2X * impulseY - r2Y * impulseX);
		bA.SynchronizeTransform();
		bB.SynchronizeTransform();
		return positionError <= Box2D.Common.b2Settings.b2_linearSlop && angularError <= Box2D.Common.b2Settings.b2_angularSlop;
	};
	Box2D.Dynamics.Joints.b2RevoluteJoint.tImpulse = Box2D.Common.Math.b2Vec2.Get(0, 0);
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2JointDef}
	 */
	Box2D.Dynamics.Joints.b2RevoluteJointDef = function() {
		Box2D.Dynamics.Joints.b2JointDef.call(this);
		this.localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.type = Box2D.Dynamics.Joints.b2Joint.e_revoluteJoint;
		this.localAnchorA.SetZero();
		this.localAnchorB.SetZero();
		this.referenceAngle = 0.0;
		this.lowerAngle = 0.0;
		this.upperAngle = 0.0;
		this.maxMotorTorque = 0.0;
		this.motorSpeed = 0.0;
		this.enableLimit = false;
		this.enableMotor = false;
	};
	c2inherit(Box2D.Dynamics.Joints.b2RevoluteJointDef, Box2D.Dynamics.Joints.b2JointDef);
	Box2D.Dynamics.Joints.b2RevoluteJointDef.prototype.Initialize = function(bA, bB, anchor) {
		this.bodyA = bA;
		this.bodyB = bB;
		this.localAnchorA = this.bodyA.GetLocalPoint(anchor);
		this.localAnchorB = this.bodyB.GetLocalPoint(anchor);
		this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle();
	};
	Box2D.Dynamics.Joints.b2RevoluteJointDef.prototype.Create = function() {
		return new Box2D.Dynamics.Joints.b2RevoluteJoint(this);
	};
	/**
	 * @param {!Box2D.Dynamics.Joints.b2WeldJointDef} def
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2Joint}
	 */
	Box2D.Dynamics.Joints.b2WeldJoint = function(def) {
		Box2D.Dynamics.Joints.b2Joint.call(this, def);
		this.m_localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.m_impulse = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		this.m_mass = new Box2D.Common.Math.b2Mat33();
		this.m_localAnchorA.SetV(def.localAnchorA);
		this.m_localAnchorB.SetV(def.localAnchorB);
		this.m_referenceAngle = def.referenceAngle;
	};
	c2inherit(Box2D.Dynamics.Joints.b2WeldJoint, Box2D.Dynamics.Joints.b2Joint);
	Box2D.Dynamics.Joints.b2WeldJoint.prototype.GetAnchorA = function() {
		return this.m_bodyA.GetWorldPoint(this.m_localAnchorA);
	};
	Box2D.Dynamics.Joints.b2WeldJoint.prototype.GetAnchorB = function() {
		return this.m_bodyB.GetWorldPoint(this.m_localAnchorB);
	};
	/**
	 * @param {number} inv_dt
	 * @return {!Box2D.Common.Math.b2Vec2}
	 */
	Box2D.Dynamics.Joints.b2WeldJoint.prototype.GetReactionForce = function(inv_dt) {
		return Box2D.Common.Math.b2Vec2.Get(inv_dt * this.m_impulse.x, inv_dt * this.m_impulse.y);
	};
	/**
	 * @param {number} inv_dt
	 * @return {number}
	 */
	Box2D.Dynamics.Joints.b2WeldJoint.prototype.GetReactionTorque = function(inv_dt) {
		return inv_dt * this.m_impulse.z;
	};
	Box2D.Dynamics.Joints.b2WeldJoint.prototype.InitVelocityConstraints = function(step) {
		var tMat;
		var tX = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		tMat = bA.m_xf.R;
		var rAX = this.m_localAnchorA.x - bA.m_sweep.localCenter.x;
		var rAY = this.m_localAnchorA.y - bA.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rAX + tMat.col2.x * rAY);
		rAY = (tMat.col1.y * rAX + tMat.col2.y * rAY);
		rAX = tX;
		tMat = bB.m_xf.R;
		var rBX = this.m_localAnchorB.x - bB.m_sweep.localCenter.x;
		var rBY = this.m_localAnchorB.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rBX + tMat.col2.x * rBY);
		rBY = (tMat.col1.y * rBX + tMat.col2.y * rBY);
		rBX = tX;
		var mA = bA.m_invMass;
		var mB = bB.m_invMass;
		var iA = bA.m_invI;
		var iB = bB.m_invI;
		this.m_mass.col1.x = mA + mB + rAY * rAY * iA + rBY * rBY * iB;
		this.m_mass.col2.x = (-rAY * rAX * iA) - rBY * rBX * iB;
		this.m_mass.col3.x = (-rAY * iA) - rBY * iB;
		this.m_mass.col1.y = this.m_mass.col2.x;
		this.m_mass.col2.y = mA + mB + rAX * rAX * iA + rBX * rBX * iB;
		this.m_mass.col3.y = rAX * iA + rBX * iB;
		this.m_mass.col1.z = this.m_mass.col3.x;
		this.m_mass.col2.z = this.m_mass.col3.y;
		this.m_mass.col3.z = iA + iB;
		if (step.warmStarting) {
			this.m_impulse.x *= step.dtRatio;
			this.m_impulse.y *= step.dtRatio;
			this.m_impulse.z *= step.dtRatio;
			bA.m_linearVelocity.x -= mA * this.m_impulse.x;
			bA.m_linearVelocity.y -= mA * this.m_impulse.y;
			bA.m_angularVelocity -= iA * (rAX * this.m_impulse.y - rAY * this.m_impulse.x + this.m_impulse.z);
			bB.m_linearVelocity.x += mB * this.m_impulse.x;
			bB.m_linearVelocity.y += mB * this.m_impulse.y;
			bB.m_angularVelocity += iB * (rBX * this.m_impulse.y - rBY * this.m_impulse.x + this.m_impulse.z);
		} else {
			this.m_impulse.SetZero();
		}
	};
	Box2D.Dynamics.Joints.b2WeldJoint.prototype.SolveVelocityConstraints = function(step) {
		var tMat;
		var tX = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		var vA = bA.m_linearVelocity;
		var wA = bA.m_angularVelocity;
		var vB = bB.m_linearVelocity;
		var wB = bB.m_angularVelocity;
		var mA = bA.m_invMass;
		var mB = bB.m_invMass;
		var iA = bA.m_invI;
		var iB = bB.m_invI;
		tMat = bA.m_xf.R;
		var rAX = this.m_localAnchorA.x - bA.m_sweep.localCenter.x;
		var rAY = this.m_localAnchorA.y - bA.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rAX + tMat.col2.x * rAY);
		rAY = (tMat.col1.y * rAX + tMat.col2.y * rAY);
		rAX = tX;
		tMat = bB.m_xf.R;
		var rBX = this.m_localAnchorB.x - bB.m_sweep.localCenter.x;
		var rBY = this.m_localAnchorB.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rBX + tMat.col2.x * rBY);
		rBY = (tMat.col1.y * rBX + tMat.col2.y * rBY);
		rBX = tX;
		var Cdot1X = vB.x - wB * rBY - vA.x + wA * rAY;
		var Cdot1Y = vB.y + wB * rBX - vA.y - wA * rAX;
		var Cdot2 = wB - wA;
		var impulse = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		this.m_mass.Solve33(impulse, (-Cdot1X), (-Cdot1Y), (-Cdot2));
		this.m_impulse.Add(impulse);
		vA.x -= mA * impulse.x;
		vA.y -= mA * impulse.y;
		wA -= iA * (rAX * impulse.y - rAY * impulse.x + impulse.z);
		vB.x += mB * impulse.x;
		vB.y += mB * impulse.y;
		wB += iB * (rBX * impulse.y - rBY * impulse.x + impulse.z);
		bA.m_angularVelocity = wA;
		bB.m_angularVelocity = wB;
	};
	Box2D.Dynamics.Joints.b2WeldJoint.prototype.SolvePositionConstraints = function(baumgarte) {
		if (baumgarte === undefined) baumgarte = 0;
		var tMat;
		var tX = 0;
		var bA = this.m_bodyA;
		var bB = this.m_bodyB;
		tMat = bA.m_xf.R;
		var rAX = this.m_localAnchorA.x - bA.m_sweep.localCenter.x;
		var rAY = this.m_localAnchorA.y - bA.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rAX + tMat.col2.x * rAY);
		rAY = (tMat.col1.y * rAX + tMat.col2.y * rAY);
		rAX = tX;
		tMat = bB.m_xf.R;
		var rBX = this.m_localAnchorB.x - bB.m_sweep.localCenter.x;
		var rBY = this.m_localAnchorB.y - bB.m_sweep.localCenter.y;
		tX = (tMat.col1.x * rBX + tMat.col2.x * rBY);
		rBY = (tMat.col1.y * rBX + tMat.col2.y * rBY);
		rBX = tX;
		var mA = bA.m_invMass;
		var mB = bB.m_invMass;
		var iA = bA.m_invI;
		var iB = bB.m_invI;
		var C1X = bB.m_sweep.c.x + rBX - bA.m_sweep.c.x - rAX;
		var C1Y = bB.m_sweep.c.y + rBY - bA.m_sweep.c.y - rAY;
		var C2 = bB.m_sweep.a - bA.m_sweep.a - this.m_referenceAngle;
		var k_allowedStretch = 10.0 * Box2D.Common.b2Settings.b2_linearSlop;
		var positionError = Math.sqrt(C1X * C1X + C1Y * C1Y);
		var angularError = Math.abs(C2);
		if (positionError > k_allowedStretch) {
			iA *= 1.0;
			iB *= 1.0;
		}
		this.m_mass.col1.x = mA + mB + rAY * rAY * iA + rBY * rBY * iB;
		this.m_mass.col2.x = (-rAY * rAX * iA) - rBY * rBX * iB;
		this.m_mass.col3.x = (-rAY * iA) - rBY * iB;
		this.m_mass.col1.y = this.m_mass.col2.x;
		this.m_mass.col2.y = mA + mB + rAX * rAX * iA + rBX * rBX * iB;
		this.m_mass.col3.y = rAX * iA + rBX * iB;
		this.m_mass.col1.z = this.m_mass.col3.x;
		this.m_mass.col2.z = this.m_mass.col3.y;
		this.m_mass.col3.z = iA + iB;
		var impulse = new Box2D.Common.Math.b2Vec3(0, 0, 0);
		this.m_mass.Solve33(impulse, (-C1X), (-C1Y), (-C2));
		bA.m_sweep.c.x -= mA * impulse.x;
		bA.m_sweep.c.y -= mA * impulse.y;
		bA.m_sweep.a -= iA * (rAX * impulse.y - rAY * impulse.x + impulse.z);
		bB.m_sweep.c.x += mB * impulse.x;
		bB.m_sweep.c.y += mB * impulse.y;
		bB.m_sweep.a += iB * (rBX * impulse.y - rBY * impulse.x + impulse.z);
		bA.SynchronizeTransform();
		bB.SynchronizeTransform();
		return positionError <= Box2D.Common.b2Settings.b2_linearSlop && angularError <= Box2D.Common.b2Settings.b2_angularSlop;
	};
	/**
	 * @constructor
	 * @extends {Box2D.Dynamics.Joints.b2JointDef}
	 */
	Box2D.Dynamics.Joints.b2WeldJointDef = function() {
		Box2D.Dynamics.Joints.b2JointDef.call(this);
		this.localAnchorA = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.localAnchorB = Box2D.Common.Math.b2Vec2.Get(0, 0);
		this.type = Box2D.Dynamics.Joints.b2Joint.e_weldJoint;
		this.referenceAngle = 0.0;
	};
	c2inherit(Box2D.Dynamics.Joints.b2WeldJointDef, Box2D.Dynamics.Joints.b2JointDef);
	Box2D.Dynamics.Joints.b2WeldJointDef.prototype.Initialize = function(bA, bB, anchor) {
		this.bodyA = bA;
		this.bodyB = bB;
		this.localAnchorA.SetV(this.bodyA.GetLocalPoint(anchor));
		this.localAnchorB.SetV(this.bodyB.GetLocalPoint(anchor));
		this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle();
	};
	Box2D.Dynamics.Joints.b2WeldJointDef.prototype.Create = function() {
		return new Box2D.Dynamics.Joints.b2WeldJoint(this);
	};
	Box2D.Collision.b2Collision.s_incidentEdge = Box2D.Collision.b2Collision.MakeClipPointVector();
	Box2D.Collision.b2Collision.s_clipPoints1 = Box2D.Collision.b2Collision.MakeClipPointVector();
	Box2D.Collision.b2Collision.s_clipPoints2 = Box2D.Collision.b2Collision.MakeClipPointVector();
	Box2D.Collision.b2Collision.s_localTangent = Box2D.Common.Math.b2Vec2.Get(0, 0);
	Box2D.Collision.b2Collision.s_localNormal = Box2D.Common.Math.b2Vec2.Get(0, 0);
	Box2D.Collision.b2Collision.s_planePoint = Box2D.Common.Math.b2Vec2.Get(0, 0);
	Box2D.Collision.b2Collision.s_normal = Box2D.Common.Math.b2Vec2.Get(0, 0);
	Box2D.Collision.b2Collision.s_tangent = Box2D.Common.Math.b2Vec2.Get(0, 0);
	Box2D.Collision.b2Collision.s_tangent2 = Box2D.Common.Math.b2Vec2.Get(0, 0);
	Box2D.Collision.b2Collision.s_v11 = Box2D.Common.Math.b2Vec2.Get(0, 0);
	Box2D.Collision.b2Collision.s_v12 = Box2D.Common.Math.b2Vec2.Get(0, 0);
	Box2D.Collision.b2TimeOfImpact.b2_toiCalls = 0;
	Box2D.Collision.b2TimeOfImpact.b2_toiIters = 0;
	Box2D.Collision.b2TimeOfImpact.b2_toiMaxIters = 0;
	Box2D.Collision.b2TimeOfImpact.b2_toiRootIters = 0;
	Box2D.Collision.b2TimeOfImpact.b2_toiMaxRootIters = 0;
	Box2D.Collision.b2TimeOfImpact.s_cache = new Box2D.Collision.b2SimplexCache();
	Box2D.Collision.b2TimeOfImpact.s_distanceInput = new Box2D.Collision.b2DistanceInput();
	Box2D.Collision.b2TimeOfImpact.s_xfA = new Box2D.Common.Math.b2Transform();
	Box2D.Collision.b2TimeOfImpact.s_xfB = new Box2D.Common.Math.b2Transform();
	Box2D.Collision.b2TimeOfImpact.s_fcn = new Box2D.Collision.b2SeparationFunction();
	Box2D.Collision.b2TimeOfImpact.s_distanceOutput = new Box2D.Collision.b2DistanceOutput();
	/** @type {!Box2D.Common.Math.b2Transform} */
	Box2D.Dynamics.b2Body.s_xf1 = new Box2D.Common.Math.b2Transform();
	Box2D.Dynamics.b2ContactListener.b2_defaultListener = new Box2D.Dynamics.b2ContactListener();
	Box2D.Dynamics.b2ContactManager.s_evalCP = new Box2D.Collision.b2ContactPoint();
	/** @type {!Box2D.Common.Math.b2Transform} */
	Box2D.Dynamics.b2World.s_xf = new Box2D.Common.Math.b2Transform();
	/** @type {!Box2D.Common.Math.b2Sweep} */
	Box2D.Dynamics.b2World.s_backupA = new Box2D.Common.Math.b2Sweep();
	/** @type {!Box2D.Common.Math.b2Sweep} */
	Box2D.Dynamics.b2World.s_backupB = new Box2D.Common.Math.b2Sweep();
	Box2D.Dynamics.Contacts.b2Contact.s_input = new Box2D.Collision.b2TOIInput();
	Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold = new Box2D.Collision.b2WorldManifold();
	Box2D.Dynamics.Contacts.b2ContactSolver.s_psm = new Box2D.Dynamics.Contacts.b2PositionSolverManifold();
}
/*
* Convex Separator for Box2D Flash
*
* This class has been written by Antoan Angelov.
* It is designed to work with Erin Catto's Box2D physics library.
*
* Everybody can use this software for any purpose, under two restrictions:
* 1. You cannot claim that you wrote this software.
* 2. You can not remove or alter this notice.
*
*/
cr.b2Separator = function() {};
cr.b2Separator.det = function(x1, y1, x2, y2, x3, y3)
{
	return x1*y2 + x2*y3 + x3*y1 - y1*x2 - y2*x3 - y3*x1;
};
cr.b2Separator.hitRay = function(x1, y1, x2, y2, x3, y3, x4, y4)
{
	var t1 = x3-x1, t2 = y3-y1, t3 = x2-x1, t4 = y2-y1, t5 = x4-x3, t6 = y4-y3, t7 = t4*t5 - t3*t6;
	var a = (t5*t2 - t6*t1) / t7;
	var px = x1 + a*t3, py = y1 + a*t4;
	var b1 = cr.b2Separator.isOnSegment(x2, y2, x1, y1, px, py);
	var b2 = cr.b2Separator.isOnSegment(px, py, x3, y3, x4, y4);
	if (b1 && b2)
		return Box2D.Common.Math.b2Vec2.Get(px, py);
	else
		return null;
};
cr.b2Separator.isOnSegment = function(px, py, x1, y1, x2, y2)
{
	var b1 = (x1+0.1 >= px && px >= x2-0.1) || (x1-0.1 <= px && px <= x2+0.1);
	var b2 = (y1+0.1 >= py && py >= y2-0.1) || (y1-0.1 <= py && py <= y2+0.1);
	return (b1 && b2) && cr.b2Separator.isOnLine(px, py, x1, y1, x2, y2);
};
cr.b2Separator.isOnLine = function(px, py, x1, y1, x2, y2)
{
	if (Math.abs(x2-x1) > 0.1)
	{
		var a = (y2-y1) / (x2-x1);
		var possibleY = a * (px-x1)+y1;
		var diff = Math.abs(possibleY-py);
		return diff < 0.1;
	}
	return Math.abs(px-x1) < 0.1;
};
cr.b2Separator.pointsMatch = function(x1, y1, x2, y2)
{
	return Math.abs(x2-x1) < 0.1 && Math.abs(y2-y1) < 0.1;
};
cr.b2Separator.Separate = function(verticesVec /*array of b2Vec2*/, objarea)
{
	var b2Vec2 = Box2D.Common.Math.b2Vec2;
	var calced = cr.b2Separator.calcShapes(verticesVec);
	var ret = [];
	var poly, a, b, c;
	var i, len, j, lenj;
	var areasum;
	for (i = 0, len = calced.length; i < len; i++)
	{
		a = calced[i];
		poly = [];
		poly.length = a.length;
		areasum = 0;
		for (j = 0, lenj = a.length; j < lenj; j++)
		{
			b = a[j];
			c = a[(j + 1) % lenj];
			areasum += (b.x * c.y - b.y * c.x);
			poly[j] = b2Vec2.Get(b.x, b.y);
		}
		areasum = Math.abs(areasum / 2);
		if (areasum >= objarea * 0.001)
			ret.push(poly);
	}
;
	return ret;
};
cr.b2Separator.calcShapes = function(verticesVec /*array of b2Vec2*/)
{
	var vec = [];										// array of b2Vec2
	var i = 0, n = 0, j = 0;							// ints
	var d = 0, t = 0, dx = 0, dy = 0, minLen = 0;		// numbers
	var i1 = 0, i2 = 0, i3 = 0;							// ints
	var p1, p2, p3, v1, v2, v, hitV;					// b2Vec2s
	var j1 = 0, j2 = 0, k = 0, h = 0;					// ints
	var vec1 = [], vec2 = [];							// array of b2Vec2
	var isConvex = false;								// boolean
	var figsVec = [], queue = [];						// Arrays
	queue.push(verticesVec);
	while (queue.length)
	{
		vec = queue[0];
		n = vec.length;
		isConvex = true;
		for (i = 0; i < n; i++)
		{
			i1 = i;
			i2 = (i < n-1) ? i+1 : i+1-n;
			i3 = (i < n-2) ? i+2 : i+2-n;
			p1 = vec[i1];
			p2 = vec[i2];
			p3 = vec[i3];
			d = cr.b2Separator.det(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y);
			if (d < 0)
			{
				isConvex = false;
				minLen = 1e9;
				for (j = 0; j < n; j++)
				{
					if ((j !== i1) && (j !== i2))
					{
						j1 = j;
						j2 = (j<n - 1) ? j+1 : 0;
						v1 = vec[j1];
						v2 = vec[j2];
						v = cr.b2Separator.hitRay(p1.x, p1.y, p2.x, p2.y, v1.x, v1.y, v2.x, v2.y);
						if (v)
						{
							dx = p2.x - v.x;
							dy = p2.y - v.y;
							t = dx*dx + dy*dy;
							if (t < minLen)
							{
								h = j1;
								k = j2;
								hitV = v;
								minLen = t;
							}
						}
					}
				}
				if (minLen === 1e9)
					return [];
				vec1 = [];
				vec2 = [];
				j1 = h;
				j2 = k;
				v1 = vec[j1];
				v2 = vec[j2];
				if (!cr.b2Separator.pointsMatch(hitV.x, hitV.y, v2.x, v2.y))
					vec1.push(hitV);
				if (!cr.b2Separator.pointsMatch(hitV.x, hitV.y, v1.x, v1.y))
					vec2.push(hitV);
				h = -1;
				k = i1;
				while (true)
				{
					if (k !== j2)
						vec1.push(vec[k]);
					else
					{
						if (h < 0 || h >= n)
							return [];
						if (!cr.b2Separator.isOnSegment(v2.x, v2.y, vec[h].x, vec[h].y, p1.x, p1.y))
							vec1.push(vec[k]);
						break;
					}
					h = k;
					if (k-1 < 0)
						k = n-1;
					else
						k--;
				}
				vec1.reverse();
				h = -1;
				k = i2;
				while (true)
				{
					if (k !== j1)
						vec2.push(vec[k]);
					else
					{
						if (h < 0 || h >= n)
							return [];
						if (k === j1 && !cr.b2Separator.isOnSegment(v1.x, v1.y, vec[h].x, vec[h].y, p2.x, p2.y))
							vec2.push(vec[k]);
						break;
					}
					h = k;
					if (k+1 > n-1)
						k = 0;
					else
						k++;
				}
				queue.push(vec1, vec2);
				queue.shift();
				break;
			}
		}
		if (isConvex)
			figsVec.push(queue.shift());
	}
	return figsVec;
};
;
;
cr.behaviors.Physics = function(runtime)
{
	for (var i = 0; i < 4000; i++)
		Box2D.Common.Math.b2Vec2._freeCache.push(new Box2D.Common.Math.b2Vec2(0, 0));
	this.runtime = runtime;
	this.world = new Box2D.Dynamics.b2World(
								Box2D.Common.Math.b2Vec2.Get(0, 10),	// gravity
								true);									// allow sleep
	this.worldG = 10;
	this.lastUpdateTick = -1;
	var listener = new Box2D.Dynamics.b2ContactListener;
	listener.behavior = this;
	listener.BeginContact = function(contact)
	{
		var behA = contact.m_fixtureA.GetBody().c2userdata;
		var behB = contact.m_fixtureB.GetBody().c2userdata;
		this.behavior.runtime.registerCollision(behA.inst, behB.inst);
	};
	this.world.SetContactListener(listener);
	var filter = new Box2D.Dynamics.b2ContactFilter;
	filter.behavior = this;
	filter.ShouldCollide = function (fixtureA, fixtureB)
	{
		if (this.behavior.allCollisionsEnabled)
			return true;
		var typeA = fixtureA.GetBody().c2userdata.inst.type;
		var typeB = fixtureB.GetBody().c2userdata.inst.type;
		var s = typeA.extra.Physics_DisabledCollisions;
		if (s && s.contains(typeB))
			return false;
		s = typeB.extra.Physics_DisabledCollisions;
		if (s && s.contains(typeA))
			return false;
		return true;
	};
	this.world.SetContactFilter(filter);
	this.steppingMode = 0;		// fixed
	this.velocityIterations = 8;
	this.positionIterations = 3;
	this.allCollisionsEnabled = true;
};
(function ()
{
	var b2Vec2 = Box2D.Common.Math.b2Vec2,
		b2BodyDef = Box2D.Dynamics.b2BodyDef,
		b2Body = Box2D.Dynamics.b2Body,
		b2FixtureDef = Box2D.Dynamics.b2FixtureDef,
		b2Fixture = Box2D.Dynamics.b2Fixture,
		b2World = Box2D.Dynamics.b2World,
		b2PolygonShape = Box2D.Collision.Shapes.b2PolygonShape,
		b2CircleShape = Box2D.Collision.Shapes.b2CircleShape,
		b2DistanceJointDef = Box2D.Dynamics.Joints.b2DistanceJointDef,
		b2RevoluteJointDef = Box2D.Dynamics.Joints.b2RevoluteJointDef,
		b2Transform = Box2D.Common.Math.b2Transform,
		b2Mat22 = Box2D.Common.Math.b2Mat22;
	var TILE_FLIPPED_HORIZONTAL = -0x80000000		// note: pretend is a signed int, so negate
	var TILE_FLIPPED_VERTICAL = 0x40000000
	var TILE_FLIPPED_DIAGONAL = 0x20000000
	var TILE_FLAGS_MASK = 0xE0000000
	var worldScale = 0.02;
	var behaviorProto = cr.behaviors.Physics.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
		this.world = this.behavior.world;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.immovable = (this.properties[0] !== 0);
		this.collisionmask = this.properties[1];
		this.preventRotation = (this.properties[2] !== 0);
		this.density = this.properties[3];
		this.friction = this.properties[4];
		this.restitution = this.properties[5];
		this.linearDamping = this.properties[6];
		this.angularDamping = this.properties[7];
		this.bullet = (this.properties[8] !== 0);
		this.enabled = (this.properties[9] !== 0);
		this.body = null;
		this.inst.update_bbox();
		this.lastKnownX = this.inst.x;
		this.lastKnownY = this.inst.y;
		this.lastKnownAngle = this.inst.angle;
		this.lastWidth = 0;
		this.lastHeight = 0;
		this.lastTickOverride = false;
		this.recreateBody = false;
		this.lastAnimation = null;			// for sprites only - will be undefined for other objects
		this.lastAnimationFrame = -1;		// for sprites only - will be undefined for other objects
		if (this.myJoints)
		{
			this.myJoints.length = 0;
			this.myCreatedJoints.length = 0;
			this.joiningMe.clear();
		}
		else
		{
			this.myJoints = [];						// Created Box2D joints
			this.myCreatedJoints = [];				// List of actions called to create joints
			this.joiningMe = new cr.ObjectSet();	// Instances with joints to me
		}
		var self = this;
		if (!this.recycled)
		{
			this.myDestroyCallback = (function(inst) {
													self.onInstanceDestroyed(inst);
												});
		}
		this.runtime.addDestroyCallback(this.myDestroyCallback);
	};
	behinstProto.postCreate = function ()
	{
		this.inst.update_bbox();
		this.createBody();
		this.lastAnimation = this.inst.cur_animation;
		this.lastAnimationFrame = this.inst.cur_frame;
	};
	behinstProto.onDestroy = function()
	{
		this.destroyMyJoints();
		this.myCreatedJoints.length = 0;
		this.joiningMe.clear();
		if (this.body)
		{
			this.world.DestroyBody(this.body);
			this.body = null;
		}
		this.runtime.removeDestroyCallback(this.myDestroyCallback);
	};
	behinstProto.saveToJSON = function ()
	{
		var o = {
			"e": this.enabled,
			"im": this.immovable,
			"pr": this.preventRotation,
			"d": this.density,
			"fr": this.friction,
			"re": this.restitution,
			"ld": this.linearDamping,
			"ad": this.angularDamping,
			"b": this.bullet,
			"mcj": this.myCreatedJoints
		};
		if (this.enabled)
		{
			var temp = b2Vec2.Get(0, 0);
			temp.SetV(this.body.GetLinearVelocity());
			o["vx"] = temp.x;
			o["vy"] = temp.y;
			o["om"] = this.body.GetAngularVelocity();
		}
		return o;
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.destroyMyJoints();
		this.myCreatedJoints.length = 0;
		this.joiningMe.clear();
		if (this.body)
		{
			this.world.DestroyBody(this.body);
			this.body = null;
		}
		this.enabled = o["e"];
		this.immovable = o["im"];
		this.preventRotation = o["pr"];
		this.density = o["d"];
		this.friction = o["fr"];
		this.restitution = o["re"];
		this.linearDamping = o["ld"];
		this.angularDamping = o["ad"];
		this.bullet = o["b"];
		this.lastKnownX = this.inst.x;
		this.lastKnownY = this.inst.y;
		this.lastKnownAngle = this.inst.angle;
		this.lastWidth = this.inst.width;
		this.lastHeight = this.inst.height;
		if (this.enabled)
		{
			this.createBody();
			this.body.SetLinearVelocity(b2Vec2.Get(o["vx"], o["vy"]));
			this.body.SetAngularVelocity(o["om"]);
			if (o["vx"] !== 0 || o["vy"] !== 0 || o["om"] !== 0)
				this.body.SetAwake(true);
			this.myCreatedJoints = o["mcj"];
		}
	};
	behinstProto.afterLoad = function ()
	{
		if (this.enabled)
			this.recreateMyJoints();
		this.behavior.lastUpdateTick = this.runtime.tickcount - 1;
	};
	behinstProto.onInstanceDestroyed = function (inst)
	{
		var i, len, j, instuid = inst.uid;
		for (i = 0, j = 0, len = this.myCreatedJoints.length; i < len; i++)
		{
			this.myCreatedJoints[j] = this.myCreatedJoints[i];
			if (j < this.myJoints.length)
				this.myJoints[j] = this.myJoints[i];
			if (this.myCreatedJoints[i].params[1] == instuid)		// attached instance is always 2nd param
				this.world.DestroyJoint(this.myJoints[i]);
			else
				j++;
		}
		this.myCreatedJoints.length = j;
		if (j < this.myJoints.length)
			this.myJoints.length = j;
		this.joiningMe.remove(inst);
	};
	behinstProto.destroyMyJoints = function()
	{
		var i, len;
		for (i = 0, len = this.myJoints.length; i < len; i++)
			this.world.DestroyJoint(this.myJoints[i]);
		this.myJoints.length = 0;
	};
	behinstProto.recreateMyJoints = function()
	{
		var i, len, j;
		for (i = 0, len = this.myCreatedJoints.length; i < len; i++)
		{
			j = this.myCreatedJoints[i];
			switch (j.type) {
			case 0:			// distance joint
				this.doCreateDistanceJoint(j.params[0], j.params[1], j.params[2], j.params[3], j.params[4]);
				break;
			case 1:			// revolute joint
				this.doCreateRevoluteJoint(j.params[0], j.params[1]);
				break;
			case 2:			// limited revolute joint
				this.doCreateLimitedRevoluteJoint(j.params[0], j.params[1], j.params[2], j.params[3]);
				break;
			default:
;
			}
		}
	};
	behinstProto.destroyBody = function()
	{
		if (!this.body)
			return;
		this.destroyMyJoints();
		this.world.DestroyBody(this.body);
		this.body = null;
		this.inst.extra.box2dbody = null;
	};
	var collrects = [];
	behinstProto.createBody = function()
	{
		if (!this.enabled)
			return;
		var inst = this.inst;
		var hadOldBody = false;
		var oldVelocity = null;
		var oldOmega = null;
		var i, len, j, lenj, k, lenk, vec, arr, b, c, rc, pts_cache, pts_count, convexpolys, cp, offx, offy, oldAngle;
		if (this.body)
		{
			hadOldBody = true;
			oldVelocity = b2Vec2.Get(0, 0);
			oldVelocity.SetV(this.body.GetLinearVelocity());
			oldOmega = this.body.GetAngularVelocity();
			arr = this.joiningMe.valuesRef();
			for (i = 0, len = arr.length; i < len; i++)
			{
				b = arr[i].extra.box2dbody.c2userdata;
				b.destroyMyJoints();
			}
			this.destroyBody();
		}
		var fixDef = new b2FixtureDef;
		fixDef.density = this.density;
		fixDef.friction = this.friction;
		fixDef.restitution = this.restitution;
		var bodyDef = new b2BodyDef;
		if (this.immovable)
			bodyDef.type = 0; //b2BodyDef.b2_staticBody
		else
			bodyDef.type = 2; //b2BodyDef.b2_dynamicBody
		inst.update_bbox();
		bodyDef.position.x = inst.bquad.midX() * worldScale;
		bodyDef.position.y = inst.bquad.midY() * worldScale;
		bodyDef.angle = inst.angle;
		bodyDef.fixedRotation = this.preventRotation;
		bodyDef.linearDamping = this.linearDamping;
		bodyDef.angularDamping = this.angularDamping;
		bodyDef.bullet = this.bullet;
		var hasPoly = this.inst.collision_poly && !this.inst.collision_poly.is_empty();
		this.body = this.world.CreateBody(bodyDef);
		this.body.c2userdata = this;
		var usecollisionmask = this.collisionmask;
		if (!hasPoly && !this.inst.tilemap_exists && this.collisionmask === 0)
			usecollisionmask = 1;
		var instw = Math.max(Math.abs(inst.width), 1);
		var insth = Math.max(Math.abs(inst.height), 1);
		var ismirrored = inst.width < 0;
		var isflipped = inst.height < 0;
		if (usecollisionmask === 0)
		{
			if (inst.tilemap_exists)
			{
				offx = inst.bquad.midX() - inst.x;
				offy = inst.bquad.midY() - inst.y;
				inst.getAllCollisionRects(collrects);
				arr = [];
				for (i = 0, len = collrects.length; i < len; ++i)
				{
					c = collrects[i];
					rc = c.rc;
					if (c.poly)
					{
						if (!c.poly.convexpolys)
						{
							pts_cache = c.poly.pts_cache;
							pts_count = c.poly.pts_count;
							for (j = 0; j < pts_count; ++j)
							{
								arr.push(b2Vec2.Get(pts_cache[j*2], pts_cache[j*2+1]));
							}
							var flags = (c.id & TILE_FLAGS_MASK);
							if (flags === TILE_FLIPPED_HORIZONTAL || flags === TILE_FLIPPED_VERTICAL || flags === TILE_FLIPPED_DIAGONAL ||
								((flags & TILE_FLIPPED_HORIZONTAL) && (flags & TILE_FLIPPED_VERTICAL) && (flags & TILE_FLIPPED_DIAGONAL)))
							{
								arr.reverse();
							}
							c.poly.convexpolys = cr.b2Separator.Separate(arr, (rc.right - rc.left) * (rc.bottom - rc.top));
							for (j = 0, lenj = arr.length; j < lenj; ++j)
								b2Vec2.Free(arr[j]);
							arr.length = 0;
						}
						for (j = 0, lenj = c.poly.convexpolys.length; j < lenj; ++j)
						{
							cp = c.poly.convexpolys[j];
;
							for (k = 0, lenk = cp.length; k < lenk; ++k)
							{
								arr.push(b2Vec2.Get((rc.left + cp[k].x - offx) * worldScale, (rc.top + cp[k].y - offy) * worldScale));
							}
							fixDef.shape = new b2PolygonShape;
							fixDef.shape.SetAsArray(arr, arr.length);		// copies content of arr
							this.body.CreateFixture(fixDef);
							for (k = 0, lenk = arr.length; k < lenk; ++k)
								b2Vec2.Free(arr[k]);
							arr.length = 0;
						}
					}
					else
					{
						arr.push(b2Vec2.Get((rc.left - offx) * worldScale, (rc.top - offy) * worldScale));
						arr.push(b2Vec2.Get((rc.right - offx) * worldScale, (rc.top - offy) * worldScale));
						arr.push(b2Vec2.Get((rc.right - offx) * worldScale, (rc.bottom - offy) * worldScale));
						arr.push(b2Vec2.Get((rc.left - offx) * worldScale, (rc.bottom - offy) * worldScale));
						fixDef.shape = new b2PolygonShape;
						fixDef.shape.SetAsArray(arr, arr.length);		// copies content of arr
						this.body.CreateFixture(fixDef);
					}
					for (j = 0, lenj = arr.length; j < lenj; ++j)
						b2Vec2.Free(arr[j]);
					arr.length = 0;
				}
			}
			else
			{
				oldAngle = inst.angle;
				inst.angle = 0;
				inst.set_bbox_changed();
				inst.update_bbox();
				offx = inst.bquad.midX() - inst.x;
				offy = inst.bquad.midY() - inst.y;
				inst.angle = oldAngle;
				inst.set_bbox_changed();
				inst.collision_poly.cache_poly(ismirrored ? -instw : instw, isflipped ? -insth : insth, 0);
				pts_cache = inst.collision_poly.pts_cache;
				pts_count = inst.collision_poly.pts_count;
				arr = [];
				arr.length = pts_count;
				for (i = 0; i < pts_count; i++)
				{
					arr[i] = b2Vec2.Get(pts_cache[i*2] - offx, pts_cache[i*2+1] - offy);
				}
				if (ismirrored !== isflipped)
					arr.reverse();		// wrong clockwise order when flipped
				convexpolys = cr.b2Separator.Separate(arr, instw * insth);
				for (i = 0; i < pts_count; i++)
					b2Vec2.Free(arr[i]);
				if (convexpolys.length)
				{
					for (i = 0, len = convexpolys.length; i < len; i++)
					{
						arr = convexpolys[i];
;
						for (j = 0, lenj = arr.length; j < lenj; j++)
						{
							vec = arr[j];
							vec.x *= worldScale;
							vec.y *= worldScale;
						}
						fixDef.shape = new b2PolygonShape;
						fixDef.shape.SetAsArray(arr, arr.length);		// copies content of arr
						this.body.CreateFixture(fixDef);
						for (j = 0, lenj = arr.length; j < lenj; j++)
							b2Vec2.Free(arr[j]);
					}
				}
				else
				{
					fixDef.shape = new b2PolygonShape;
					fixDef.shape.SetAsBox(instw * worldScale * 0.5, insth * worldScale * 0.5);
					this.body.CreateFixture(fixDef);
				}
			}
		}
		else if (usecollisionmask === 1)
		{
			fixDef.shape = new b2PolygonShape;
			fixDef.shape.SetAsBox(instw * worldScale * 0.5, insth * worldScale * 0.5);
			this.body.CreateFixture(fixDef);
		}
		else
		{
			fixDef.shape = new b2CircleShape(Math.min(instw, insth) * worldScale * 0.5);
			this.body.CreateFixture(fixDef);
		}
		inst.extra.box2dbody = this.body;
		this.lastWidth = inst.width;
		this.lastHeight = inst.height;
		if (hadOldBody)
		{
			this.body.SetLinearVelocity(oldVelocity);
			this.body.SetAngularVelocity(oldOmega);
			b2Vec2.Free(oldVelocity);
			this.recreateMyJoints();
			arr = this.joiningMe.valuesRef();
			for (i = 0, len = arr.length; i < len; i++)
			{
				b = arr[i].extra.box2dbody.c2userdata;
				b.recreateMyJoints();
			}
		}
		collrects.length = 0;
	};
	/*
	behinstProto.draw = function (ctx)
	{
		if (!this.myconvexpolys)
			return;
		this.inst.update_bbox();
		var midx = this.inst.bquad.midX();
		var midy = this.inst.bquad.midY();
		var i, len, j, lenj;
		var sina = 0;
		var cosa = 1;
		if (this.inst.angle !== 0)
		{
			sina = Math.sin(this.inst.angle);
			cosa = Math.cos(this.inst.angle);
		}
		var strokeStyles = ["#f00", "#0f0", "#00f", "#ff0", "#0ff", "#f0f"];
		ctx.lineWidth = 2;
		var i, len, j, lenj, ax, ay, bx, by, poly, va, vb;
		for (i = 0, len = this.myconvexpolys.length; i < len; i++)
		{
			poly = this.myconvexpolys[i];
			ctx.strokeStyle = strokeStyles[i];
			for (j = 0, lenj = poly.length; j < lenj; j++)
			{
				va = poly[j];
				vb = poly[(j + 1) % lenj];
				ax = va.x / worldScale;
				ay = va.y / worldScale;
				bx = vb.x / worldScale;
				by = vb.y / worldScale;
				ctx.beginPath();
				ctx.moveTo(((ax * cosa) - (ay * sina)) + midx, ((ay * cosa) + (ax * sina)) + midy);
				ctx.lineTo(((bx * cosa) - (by * sina)) + midx, ((by * cosa) + (bx * sina)) + midy);
				ctx.stroke();
				ctx.closePath();
			}
		}
	};
	*/
	behinstProto.tick = function ()
	{
		if (!this.enabled)
			return;
		var inst = this.inst;
		var dt;
		if (this.behavior.steppingMode === 0)		// fixed
			dt = this.runtime.timescale / 60;
		else
		{
			dt = this.runtime.getDt(this.inst);
			if (dt > 1 / 30)
				dt = 1 / 30;
		}
		if (this.runtime.tickcount > this.behavior.lastUpdateTick && this.runtime.timescale > 0)
		{
			this.world.Step(dt, this.behavior.velocityIterations, this.behavior.positionIterations);		// still apply timescale
			this.world.ClearForces();
			this.behavior.lastUpdateTick = this.runtime.tickcount;
		}
		if (this.recreateBody || inst.width !== this.lastWidth || inst.height !== this.lastHeight
			|| inst.cur_animation !== this.lastAnimation || inst.cur_frame !== this.lastAnimationFrame
			|| (inst.tilemap_exists && inst.physics_changed))
		{
			this.createBody();
			this.recreateBody = false;
			this.lastAnimation = inst.cur_animation;
			this.lastAnimationFrame = inst.cur_frame;
			if (inst.tilemap_exists && inst.physics_changed)
				inst.physics_changed = false;
		}
		var pos_changed = (inst.x !== this.lastKnownX || inst.y !== this.lastKnownY);
		var angle_changed = (inst.angle !== this.lastKnownAngle);
		if (pos_changed)
		{
			inst.update_bbox();
			var newmidx = inst.bquad.midX();
			var newmidy = inst.bquad.midY();
			var diffx = newmidx - this.lastKnownX;
			var diffy = newmidy - this.lastKnownY;
			this.body.SetPosition(b2Vec2.Get(newmidx * worldScale, newmidy * worldScale));
			this.body.SetLinearVelocity(b2Vec2.Get(diffx, diffy));
			this.lastTickOverride = true;
			this.body.SetAwake(true);
		}
		else if (this.lastTickOverride)
		{
			this.lastTickOverride = false;
			this.body.SetLinearVelocity(b2Vec2.Get(0, 0));
			this.body.SetPosition(b2Vec2.Get(inst.bquad.midX() * worldScale, inst.bquad.midY() * worldScale));
		}
		if (angle_changed)
		{
			this.body.SetAngle(inst.angle);
			this.body.SetAwake(true);
		}
		var pos = this.body.GetPosition();
		var newx = pos.x / worldScale;
		var newy = pos.y / worldScale;
		var newangle = this.body.GetAngle();
		if (newx !== inst.x || newy !== inst.y || newangle !== inst.angle)
		{
			inst.x = newx;
			inst.y = newy;
			inst.angle = newangle;
			inst.set_bbox_changed();
			inst.update_bbox();
			var dx = inst.bquad.midX() - inst.x;
			var dy = inst.bquad.midY() - inst.y;
			if (dx !== 0 || dy !== 0)
			{
				inst.x -= dx;
				inst.y -= dy;
				inst.set_bbox_changed();
			}
		}
		this.lastKnownX = inst.x;
		this.lastKnownY = inst.y;
		this.lastKnownAngle = inst.angle;
	};
	behinstProto.getInstImgPointX = function(imgpt)
	{
		if (imgpt === -1 || !this.inst.getImagePoint)
			return this.inst.x;
		if (imgpt === 0 && this.body)
			return (this.body.GetPosition().x + this.body.GetLocalCenter().x) / worldScale;
		return this.inst.getImagePoint(imgpt, true);
	};
	behinstProto.getInstImgPointY = function(imgpt)
	{
		if (imgpt === -1 || !this.inst.getImagePoint)
			return this.inst.y;
		if (imgpt === 0 && this.body)
			return (this.body.GetPosition().y + this.body.GetLocalCenter().y) / worldScale;
		return this.inst.getImagePoint(imgpt, false);
	};
	function Cnds() {};
	Cnds.prototype.IsSleeping = function ()
	{
		if (!this.enabled)
			return false;
		return !this.body.IsAwake();
	};
	Cnds.prototype.CompareVelocity = function (which_, cmp_, x_)
	{
		if (!this.enabled)
			return false;
		var velocity_vec = this.body.GetLinearVelocity();
		var v, vx, vy;
		if (which_ === 0)		// X velocity
			v = velocity_vec.x / worldScale;
		else if (which_ === 1)	// Y velocity
			v = velocity_vec.y / worldScale;
		else					// Overall velocity
		{
			vx = velocity_vec.x / worldScale;
			vy = velocity_vec.y / worldScale;
			v = cr.distanceTo(0, 0, vx, vy);
		}
		return cr.do_cmp(v, cmp_, x_);
	};
	Cnds.prototype.CompareAngularVelocity = function (cmp_, x_)
	{
		if (!this.enabled)
			return false;
		var av = cr.to_degrees(this.body.GetAngularVelocity());
		return cr.do_cmp(av, cmp_, x_);
	};
	Cnds.prototype.CompareMass = function (cmp_, x_)
	{
		if (!this.enabled)
			return false;
		var mass = this.body.GetMass() / worldScale;
		return cr.do_cmp(mass, cmp_, x_);
	};
	Cnds.prototype.IsEnabled = function ()
	{
		return this.enabled;
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.ApplyForce = function (fx, fy, imgpt)
	{
		if (!this.enabled)
			return;
		var x = this.getInstImgPointX(imgpt);
		var y = this.getInstImgPointY(imgpt);
		this.body.ApplyForce(b2Vec2.Get(fx, fy), b2Vec2.Get(x * worldScale, y * worldScale));
	};
	Acts.prototype.ApplyForceToward = function (f, px, py, imgpt)
	{
		if (!this.enabled)
			return;
		var x = this.getInstImgPointX(imgpt);
		var y = this.getInstImgPointY(imgpt);
		var a = cr.angleTo(x, y, px, py);
		this.body.ApplyForce(b2Vec2.Get(Math.cos(a) * f, Math.sin(a) * f), b2Vec2.Get(x * worldScale, y * worldScale));
	};
	Acts.prototype.ApplyForceAtAngle = function (f, a, imgpt)
	{
		if (!this.enabled)
			return;
		a = cr.to_radians(a);
		var x = this.getInstImgPointX(imgpt);
		var y = this.getInstImgPointY(imgpt);
		this.body.ApplyForce(b2Vec2.Get(Math.cos(a) * f, Math.sin(a) * f), b2Vec2.Get(x * worldScale, y * worldScale));
	};
	Acts.prototype.ApplyImpulse = function (fx, fy, imgpt)
	{
		if (!this.enabled)
			return;
		var x = this.getInstImgPointX(imgpt);
		var y = this.getInstImgPointY(imgpt);
		this.body.ApplyImpulse(b2Vec2.Get(fx, fy), b2Vec2.Get(x * worldScale, y * worldScale));
		this.lastTickOverride = false;
		this.lastKnownX = this.inst.x;
		this.lastKnownY = this.inst.y;
	};
	Acts.prototype.ApplyImpulseToward = function (f, px, py, imgpt)
	{
		if (!this.enabled)
			return;
		var x = this.getInstImgPointX(imgpt);
		var y = this.getInstImgPointY(imgpt);
		var a = cr.angleTo(x, y, px, py);
		this.body.ApplyImpulse(b2Vec2.Get(Math.cos(a) * f, Math.sin(a) * f), b2Vec2.Get(x * worldScale, y * worldScale));
		this.lastTickOverride = false;
		this.lastKnownX = this.inst.x;
		this.lastKnownY = this.inst.y;
	};
	Acts.prototype.ApplyImpulseAtAngle = function (f, a, imgpt)
	{
		if (!this.enabled)
			return;
		a = cr.to_radians(a);
		var x = this.getInstImgPointX(imgpt);
		var y = this.getInstImgPointY(imgpt);
		this.body.ApplyImpulse(b2Vec2.Get(Math.cos(a) * f, Math.sin(a) * f), b2Vec2.Get(x * worldScale, y * worldScale));
		this.lastTickOverride = false;
		this.lastKnownX = this.inst.x;
		this.lastKnownY = this.inst.y;
	};
	Acts.prototype.ApplyTorque = function (m)
	{
		if (!this.enabled)
			return;
		this.body.ApplyTorque(cr.to_radians(m));
	};
	Acts.prototype.ApplyTorqueToAngle = function (m, a)
	{
		if (!this.enabled)
			return;
		m = cr.to_radians(m);
		a = cr.to_radians(a);
		if (cr.angleClockwise(this.inst.angle, a))
			this.body.ApplyTorque(-m);
		else
			this.body.ApplyTorque(m);
	};
	Acts.prototype.ApplyTorqueToPosition = function (m, x, y)
	{
		if (!this.enabled)
			return;
		m = cr.to_radians(m);
		var a = cr.angleTo(this.inst.x, this.inst.y, x, y);
		if (cr.angleClockwise(this.inst.angle, a))
			this.body.ApplyTorque(-m);
		else
			this.body.ApplyTorque(m);
	};
	Acts.prototype.SetAngularVelocity = function (v)
	{
		if (!this.enabled)
			return;
		this.body.SetAngularVelocity(cr.to_radians(v));
		this.body.SetAwake(true);
	};
	Acts.prototype.CreateDistanceJoint = function (imgpt, obj, objimgpt, damping, freq)
	{
		if (!obj || !this.enabled)
			return;
		var otherinst = obj.getFirstPicked(this.inst);
		if (!otherinst || otherinst == this.inst)
			return;
		if (!otherinst.extra.box2dbody)
			return;		// no physics behavior on other object
		this.myCreatedJoints.push({type: 0, params: [imgpt, otherinst.uid, objimgpt, damping, freq]});
		this.doCreateDistanceJoint(imgpt, otherinst.uid, objimgpt, damping, freq);
	};
	behinstProto.doCreateDistanceJoint = function (imgpt, otherinstuid, objimgpt, damping, freq)
	{
		if (!this.enabled)
			return;
		var otherinst = this.runtime.getObjectByUID(otherinstuid);
		if (!otherinst || otherinst == this.inst || !otherinst.extra.box2dbody)
			return;
		otherinst.extra.box2dbody.c2userdata.joiningMe.add(this.inst);
		var myx = this.getInstImgPointX(imgpt);
		var myy = this.getInstImgPointY(imgpt);
		var theirx, theiry;
		if (otherinst.getImagePoint)
		{
			theirx = otherinst.getImagePoint(objimgpt, true);
			theiry = otherinst.getImagePoint(objimgpt, false);
		}
		else
		{
			theirx = otherinst.x;
			theiry = otherinst.y;
		}
		var dx = myx - theirx;
		var dy = myy - theiry;
		var jointDef = new b2DistanceJointDef();
		jointDef.Initialize(this.body, otherinst.extra.box2dbody, b2Vec2.Get(myx * worldScale, myy * worldScale), b2Vec2.Get(theirx * worldScale, theiry * worldScale));
		jointDef.length = Math.sqrt(dx*dx + dy*dy) * worldScale;
		jointDef.dampingRatio = damping;
		jointDef.frequencyHz = freq;
		this.myJoints.push(this.world.CreateJoint(jointDef));
	};
	Acts.prototype.CreateRevoluteJoint = function (imgpt, obj)
	{
		if (!obj || !this.enabled)
			return;
		var otherinst = obj.getFirstPicked(this.inst);
		if (!otherinst || otherinst == this.inst)
			return;
		if (!otherinst.extra.box2dbody)
			return;		// no physics behavior on other object
		this.myCreatedJoints.push({type: 1, params: [imgpt, otherinst.uid]});
		this.doCreateRevoluteJoint(imgpt, otherinst.uid);
	};
	behinstProto.doCreateRevoluteJoint = function (imgpt, otherinstuid)
	{
		if (!this.enabled)
			return;
		var otherinst = this.runtime.getObjectByUID(otherinstuid);
		if (!otherinst || otherinst == this.inst || !otherinst.extra.box2dbody)
			return;
		otherinst.extra.box2dbody.c2userdata.joiningMe.add(this.inst);
		var myx = this.getInstImgPointX(imgpt);
		var myy = this.getInstImgPointY(imgpt);
		var jointDef = new b2RevoluteJointDef();
		jointDef.Initialize(this.body, otherinst.extra.box2dbody, b2Vec2.Get(myx * worldScale, myy * worldScale));
		this.myJoints.push(this.world.CreateJoint(jointDef));
	};
	Acts.prototype.CreateLimitedRevoluteJoint = function (imgpt, obj, lower, upper)
	{
		if (!obj || !this.enabled)
			return;
		var otherinst = obj.getFirstPicked(this.inst);
		if (!otherinst || otherinst == this.inst)
			return;
		if (!otherinst.extra.box2dbody)
			return;		// no physics behavior on other object
		this.myCreatedJoints.push({type: 2, params: [imgpt, otherinst.uid, lower, upper]});
		this.doCreateLimitedRevoluteJoint(imgpt, otherinst.uid, lower, upper);
	};
	behinstProto.doCreateLimitedRevoluteJoint = function (imgpt, otherinstuid, lower, upper)
	{
		if (!this.enabled)
			return;
		var otherinst = this.runtime.getObjectByUID(otherinstuid);
		if (!otherinst || otherinst == this.inst || !otherinst.extra.box2dbody)
			return;
		otherinst.extra.box2dbody.c2userdata.joiningMe.add(this.inst);
		var myx = this.getInstImgPointX(imgpt);
		var myy = this.getInstImgPointY(imgpt);
		var jointDef = new b2RevoluteJointDef();
		jointDef.Initialize(this.body, otherinst.extra.box2dbody, b2Vec2.Get(myx * worldScale, myy * worldScale));
		jointDef.enableLimit = true;
		jointDef.lowerAngle = cr.to_radians(lower);
		jointDef.upperAngle = cr.to_radians(upper);
		this.myJoints.push(this.world.CreateJoint(jointDef));
	};
	Acts.prototype.SetWorldGravity = function (g)
	{
		if (g === this.behavior.worldG)
			return;
		this.world.SetGravity(b2Vec2.Get(0, g));
		this.behavior.worldG = g;
		var i, len, arr = this.behavior.my_instances.valuesRef();
		for (i = 0, len = arr.length; i < len; i++)
		{
			if (arr[i].extra.box2dbody)
				arr[i].extra.box2dbody.SetAwake(true);
		}
	};
	Acts.prototype.SetSteppingMode = function (mode)
	{
		this.behavior.steppingMode = mode;
	};
	Acts.prototype.SetIterations = function (vel, pos)
	{
		if (vel < 1) vel = 1;
		if (pos < 1) pos = 1;
		this.behavior.velocityIterations = vel;
		this.behavior.positionIterations = pos;
	};
	Acts.prototype.SetVelocity = function (vx, vy)
	{
		if (!this.enabled)
			return;
		this.body.SetLinearVelocity(b2Vec2.Get(vx * worldScale, vy * worldScale));
		this.body.SetAwake(true);
		this.lastTickOverride = false;
		this.lastKnownX = this.inst.x;
		this.lastKnownY = this.inst.y;
	};
	Acts.prototype.SetDensity = function (d)
	{
		if (!this.enabled)
			return;
		if (this.density === d)
			return;
		this.density = d;
		this.recreateBody = true;
	};
	Acts.prototype.SetFriction = function (f)
	{
		if (!this.enabled)
			return;
		if (this.friction === f)
			return;
		this.friction = f;
		this.recreateBody = true;
	};
	Acts.prototype.SetElasticity = function (e)
	{
		if (!this.enabled)
			return;
		if (this.restitution === e)
			return;
		this.restitution = e;
		this.recreateBody = true;
	};
	Acts.prototype.SetLinearDamping = function (ld)
	{
		if (!this.enabled)
			return;
		if (this.linearDamping === ld)
			return;
		this.linearDamping = ld;
		this.body.SetLinearDamping(ld);
	};
	Acts.prototype.SetAngularDamping = function (ad)
	{
		if (!this.enabled)
			return;
		if (this.angularDamping === ad)
			return;
		this.angularDamping = ad;
		this.body.SetAngularDamping(ad);
	};
	Acts.prototype.SetImmovable = function (i)
	{
		if (!this.enabled)
			return;
		if (this.immovable === (i !== 0))
			return;
		this.immovable = (i !== 0);
		this.body.SetType(this.immovable ? 0 /*b2BodyDef.b2_staticBody*/ : 2 /*b2BodyDef.b2_dynamicBody*/);
		this.body.SetAwake(true);
	};
	function SetCollisionsEnabled(typeA, typeB, state)
	{
		var s;
		if (state)
		{
			s = typeA.extra.Physics_DisabledCollisions;
			if (s)
				s.remove(typeB);
			s = typeB.extra.Physics_DisabledCollisions;
			if (s)
				s.remove(typeA);
		}
		else
		{
			if (!typeA.extra.Physics_DisabledCollisions)
				typeA.extra.Physics_DisabledCollisions = new cr.ObjectSet();
			typeA.extra.Physics_DisabledCollisions.add(typeB);
			if (!typeB.extra.Physics_DisabledCollisions)
				typeB.extra.Physics_DisabledCollisions = new cr.ObjectSet();
			typeB.extra.Physics_DisabledCollisions.add(typeA);
		}
	};
	Acts.prototype.EnableCollisions = function (obj, state)
	{
		if (!obj || !this.enabled)
			return;
		var i, len;
		if (obj.is_family)
		{
			for (i = 0, len = obj.members.length; i < len; i++)
			{
				SetCollisionsEnabled(this.inst.type, obj.members[i], state !== 0);
			}
		}
		else
		{
			SetCollisionsEnabled(this.inst.type, obj, state !== 0);
		}
		this.behavior.allCollisionsEnabled = false;
	};
	Acts.prototype.SetPreventRotate = function (i)
	{
		if (!this.enabled)
			return;
		if (this.preventRotation === (i !== 0))
			return;
		this.preventRotation = (i !== 0);
		this.body.SetFixedRotation(this.preventRotation);
		this.body.m_torque = 0;
		this.body.SetAngularVelocity(0);
		this.body.SetAwake(true);
	};
	Acts.prototype.SetBullet = function (i)
	{
		if (!this.enabled)
			return;
		if (this.bullet === (i !== 0))
			return;
		this.bullet = (i !== 0);
		this.body.SetBullet(this.bullet);
		this.body.SetAwake(true);
	};
	Acts.prototype.RemoveJoints = function ()
	{
		if (!this.enabled)
			return;
		this.destroyMyJoints();
		this.myCreatedJoints.length = 0;
		this.joiningMe.clear();
	};
	Acts.prototype.SetEnabled = function (e)
	{
		if (this.enabled && e === 0)
		{
			this.destroyBody();
			this.enabled = false;
		}
		else if (!this.enabled && e === 1)
		{
			this.enabled = true;
			this.createBody();
		}
	};
	behaviorProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.VelocityX = function (ret)
	{
		ret.set_float(this.enabled ? this.body.GetLinearVelocity().x / worldScale : 0);
	};
	Exps.prototype.VelocityY = function (ret)
	{
		ret.set_float(this.enabled ? this.body.GetLinearVelocity().y / worldScale : 0);
	};
	Exps.prototype.AngularVelocity = function (ret)
	{
		ret.set_float(this.enabled ? cr.to_degrees(this.body.GetAngularVelocity()) : 0);
	};
	Exps.prototype.Mass = function (ret)
	{
		ret.set_float(this.enabled ? this.body.GetMass() / worldScale : 0);
	};
	Exps.prototype.CenterOfMassX = function (ret)
	{
		ret.set_float(this.enabled ? (this.body.GetPosition().x + this.body.GetLocalCenter().x) / worldScale : 0);
	};
	Exps.prototype.CenterOfMassY = function (ret)
	{
		ret.set_float(this.enabled ? (this.body.GetPosition().y + this.body.GetLocalCenter().y) / worldScale : 0);
	};
	Exps.prototype.Density = function (ret)
	{
		ret.set_float(this.enabled ? this.density : 0);
	};
	Exps.prototype.Friction = function (ret)
	{
		ret.set_float(this.enabled ? this.friction : 0);
	};
	Exps.prototype.Elasticity = function (ret)
	{
		ret.set_float(this.enabled ? this.restitution : 0);
	};
	Exps.prototype.LinearDamping = function (ret)
	{
		ret.set_float(this.enabled ? this.linearDamping : 0);
	};
	Exps.prototype.AngularDamping = function (ret)
	{
		ret.set_float(this.enabled ? this.angularDamping : 0);
	};
	behaviorProto.exps = new Exps();
}());
;
;
cr.behaviors.Pin = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.Pin.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.pinObject = null;
		this.pinObjectUid = -1;		// for loading
		this.pinAngle = 0;
		this.pinDist = 0;
		this.myStartAngle = 0;
		this.theirStartAngle = 0;
		this.lastKnownAngle = 0;
		this.mode = 0;				// 0 = position & angle; 1 = position; 2 = angle; 3 = rope; 4 = bar
		var self = this;
		if (!this.recycled)
		{
			this.myDestroyCallback = (function(inst) {
													self.onInstanceDestroyed(inst);
												});
		}
		this.runtime.addDestroyCallback(this.myDestroyCallback);
	};
	behinstProto.saveToJSON = function ()
	{
		return {
			"uid": this.pinObject ? this.pinObject.uid : -1,
			"pa": this.pinAngle,
			"pd": this.pinDist,
			"msa": this.myStartAngle,
			"tsa": this.theirStartAngle,
			"lka": this.lastKnownAngle,
			"m": this.mode
		};
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.pinObjectUid = o["uid"];		// wait until afterLoad to look up
		this.pinAngle = o["pa"];
		this.pinDist = o["pd"];
		this.myStartAngle = o["msa"];
		this.theirStartAngle = o["tsa"];
		this.lastKnownAngle = o["lka"];
		this.mode = o["m"];
	};
	behinstProto.afterLoad = function ()
	{
		if (this.pinObjectUid === -1)
			this.pinObject = null;
		else
		{
			this.pinObject = this.runtime.getObjectByUID(this.pinObjectUid);
;
		}
		this.pinObjectUid = -1;
	};
	behinstProto.onInstanceDestroyed = function (inst)
	{
		if (this.pinObject == inst)
			this.pinObject = null;
	};
	behinstProto.onDestroy = function()
	{
		this.pinObject = null;
		this.runtime.removeDestroyCallback(this.myDestroyCallback);
	};
	behinstProto.tick = function ()
	{
	};
	behinstProto.tick2 = function ()
	{
		if (!this.pinObject)
			return;
		if (this.lastKnownAngle !== this.inst.angle)
			this.myStartAngle = cr.clamp_angle(this.myStartAngle + (this.inst.angle - this.lastKnownAngle));
		var newx = this.inst.x;
		var newy = this.inst.y;
		if (this.mode === 3 || this.mode === 4)		// rope mode or bar mode
		{
			var dist = cr.distanceTo(this.inst.x, this.inst.y, this.pinObject.x, this.pinObject.y);
			if ((dist > this.pinDist) || (this.mode === 4 && dist < this.pinDist))
			{
				var a = cr.angleTo(this.pinObject.x, this.pinObject.y, this.inst.x, this.inst.y);
				newx = this.pinObject.x + Math.cos(a) * this.pinDist;
				newy = this.pinObject.y + Math.sin(a) * this.pinDist;
			}
		}
		else
		{
			newx = this.pinObject.x + Math.cos(this.pinObject.angle + this.pinAngle) * this.pinDist;
			newy = this.pinObject.y + Math.sin(this.pinObject.angle + this.pinAngle) * this.pinDist;
		}
		var newangle = cr.clamp_angle(this.myStartAngle + (this.pinObject.angle - this.theirStartAngle));
		this.lastKnownAngle = newangle;
		if ((this.mode === 0 || this.mode === 1 || this.mode === 3 || this.mode === 4)
			&& (this.inst.x !== newx || this.inst.y !== newy))
		{
			this.inst.x = newx;
			this.inst.y = newy;
			this.inst.set_bbox_changed();
		}
		if ((this.mode === 0 || this.mode === 2) && (this.inst.angle !== newangle))
		{
			this.inst.angle = newangle;
			this.inst.set_bbox_changed();
		}
	};
	function Cnds() {};
	Cnds.prototype.IsPinned = function ()
	{
		return !!this.pinObject;
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.Pin = function (obj, mode_)
	{
		if (!obj)
			return;
		var otherinst = obj.getFirstPicked(this.inst);
		if (!otherinst)
			return;
		this.pinObject = otherinst;
		this.pinAngle = cr.angleTo(otherinst.x, otherinst.y, this.inst.x, this.inst.y) - otherinst.angle;
		this.pinDist = cr.distanceTo(otherinst.x, otherinst.y, this.inst.x, this.inst.y);
		this.myStartAngle = this.inst.angle;
		this.lastKnownAngle = this.inst.angle;
		this.theirStartAngle = otherinst.angle;
		this.mode = mode_;
	};
	Acts.prototype.Unpin = function ()
	{
		this.pinObject = null;
	};
	behaviorProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.PinnedUID = function (ret)
	{
		ret.set_int(this.pinObject ? this.pinObject.uid : -1);
	};
	behaviorProto.exps = new Exps();
}());
;
;
cr.behaviors.Platform = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.Platform.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	var ANIMMODE_STOPPED = 0;
	var ANIMMODE_MOVING = 1;
	var ANIMMODE_JUMPING = 2;
	var ANIMMODE_FALLING = 3;
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
		this.leftkey = false;
		this.rightkey = false;
		this.jumpkey = false;
		this.jumped = false;			// prevent bunnyhopping
		this.ignoreInput = false;
		this.simleft = false;
		this.simright = false;
		this.simjump = false;
		this.lastFloorObject = null;
		this.loadFloorObject = -1;
		this.lastFloorX = 0;
		this.lastFloorY = 0;
		this.floorIsJumpthru = false;
		this.animMode = ANIMMODE_STOPPED;
		this.fallthrough = 0;			// fall through jump-thru.  >0 to disable, lasts a few ticks
		this.firstTick = true;
		this.dx = 0;
		this.dy = 0;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.updateGravity = function()
	{
		this.downx = Math.cos(this.ga);
		this.downy = Math.sin(this.ga);
		this.rightx = Math.cos(this.ga - Math.PI / 2);
		this.righty = Math.sin(this.ga - Math.PI / 2);
		this.downx = cr.round6dp(this.downx);
		this.downy = cr.round6dp(this.downy);
		this.rightx = cr.round6dp(this.rightx);
		this.righty = cr.round6dp(this.righty);
		this.g1 = this.g;
		if (this.g < 0)
		{
			this.downx *= -1;
			this.downy *= -1;
			this.g = Math.abs(this.g);
		}
	};
	behinstProto.onCreate = function()
	{
		this.maxspeed = this.properties[0];
		this.acc = this.properties[1];
		this.dec = this.properties[2];
		this.jumpStrength = this.properties[3];
		this.g = this.properties[4];
		this.g1 = this.g;
		this.maxFall = this.properties[5];
		this.defaultControls = (this.properties[6] === 1);	// 0=no, 1=yes
		this.enabled = (this.properties[7] !== 0);
		this.wasOnFloor = false;
		this.wasOverJumpthru = this.runtime.testOverlapJumpThru(this.inst);
		this.loadOverJumpthru = -1;
		this.ga = cr.to_radians(90);
		this.updateGravity();
		var self = this;
		if (this.defaultControls && !this.runtime.isDomFree)
		{
			jQuery(document).keydown(function(info) {
						self.onKeyDown(info);
					});
			jQuery(document).keyup(function(info) {
						self.onKeyUp(info);
					});
		}
		if (!this.recycled)
		{
			this.myDestroyCallback = function(inst) {
										self.onInstanceDestroyed(inst);
									};
		}
		this.runtime.addDestroyCallback(this.myDestroyCallback);
	};
	behinstProto.saveToJSON = function ()
	{
		return {
			"ii": this.ignoreInput,
			"lfx": this.lastFloorX,
			"lfy": this.lastFloorY,
			"lfo": (this.lastFloorObject ? this.lastFloorObject.uid : -1),
			"am": this.animMode,
			"en": this.enabled,
			"fall": this.fallthrough,
			"ft": this.firstTick,
			"dx": this.dx,
			"dy": this.dy,
			"ms": this.maxspeed,
			"acc": this.acc,
			"dec": this.dec,
			"js": this.jumpStrength,
			"g": this.g,
			"g1": this.g1,
			"mf": this.maxFall,
			"wof": this.wasOnFloor,
			"woj": (this.wasOverJumpthru ? this.wasOverJumpthru.uid : -1),
			"ga": this.ga
		};
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.ignoreInput = o["ii"];
		this.lastFloorX = o["lfx"];
		this.lastFloorY = o["lfy"];
		this.loadFloorObject = o["lfo"];
		this.animMode = o["am"];
		this.enabled = o["en"];
		this.fallthrough = o["fall"];
		this.firstTick = o["ft"];
		this.dx = o["dx"];
		this.dy = o["dy"];
		this.maxspeed = o["ms"];
		this.acc = o["acc"];
		this.dec = o["dec"];
		this.jumpStrength = o["js"];
		this.g = o["g"];
		this.g1 = o["g1"];
		this.maxFall = o["mf"];
		this.wasOnFloor = o["wof"];
		this.loadOverJumpthru = o["woj"];
		this.ga = o["ga"];
		this.leftkey = false;
		this.rightkey = false;
		this.jumpkey = false;
		this.jumped = false;
		this.simleft = false;
		this.simright = false;
		this.simjump = false;
		this.updateGravity();
	};
	behinstProto.afterLoad = function ()
	{
		if (this.loadFloorObject === -1)
			this.lastFloorObject = null;
		else
			this.lastFloorObject = this.runtime.getObjectByUID(this.loadFloorObject);
		if (this.loadOverJumpthru === -1)
			this.wasOverJumpthru = null;
		else
			this.wasOverJumpthru = this.runtime.getObjectByUID(this.loadOverJumpthru);
	};
	behinstProto.onInstanceDestroyed = function (inst)
	{
		if (this.lastFloorObject == inst)
			this.lastFloorObject = null;
	};
	behinstProto.onDestroy = function ()
	{
		this.lastFloorObject = null;
		this.runtime.removeDestroyCallback(this.myDestroyCallback);
	};
	behinstProto.onKeyDown = function (info)
	{
		switch (info.which) {
		case 38:	// up
			info.preventDefault();
			this.jumpkey = true;
			break;
		case 37:	// left
			info.preventDefault();
			this.leftkey = true;
			break;
		case 39:	// right
			info.preventDefault();
			this.rightkey = true;
			break;
		}
	};
	behinstProto.onKeyUp = function (info)
	{
		switch (info.which) {
		case 38:	// up
			info.preventDefault();
			this.jumpkey = false;
			this.jumped = false;
			break;
		case 37:	// left
			info.preventDefault();
			this.leftkey = false;
			break;
		case 39:	// right
			info.preventDefault();
			this.rightkey = false;
			break;
		}
	};
	behinstProto.getGDir = function ()
	{
		if (this.g < 0)
			return -1;
		else
			return 1;
	};
	behinstProto.isOnFloor = function ()
	{
		var ret = null;
		var ret2 = null;
		var i, len, j;
		var oldx = this.inst.x;
		var oldy = this.inst.y;
		this.inst.x += this.downx;
		this.inst.y += this.downy;
		this.inst.set_bbox_changed();
		if (this.lastFloorObject && this.runtime.testOverlap(this.inst, this.lastFloorObject))
		{
			this.inst.x = oldx;
			this.inst.y = oldy;
			this.inst.set_bbox_changed();
			return this.lastFloorObject;
		}
		else
		{
			ret = this.runtime.testOverlapSolid(this.inst);
			if (!ret && this.fallthrough === 0)
				ret2 = this.runtime.testOverlapJumpThru(this.inst, true);
			this.inst.x = oldx;
			this.inst.y = oldy;
			this.inst.set_bbox_changed();
			if (ret)		// was overlapping solid
			{
				if (this.runtime.testOverlap(this.inst, ret))
					return null;
				else
				{
					this.floorIsJumpthru = false;
					return ret;
				}
			}
			if (ret2 && ret2.length)
			{
				for (i = 0, j = 0, len = ret2.length; i < len; i++)
				{
					ret2[j] = ret2[i];
					if (!this.runtime.testOverlap(this.inst, ret2[i]))
						j++;
				}
				if (j >= 1)
				{
					this.floorIsJumpthru = true;
					return ret2[0];
				}
			}
			return null;
		}
	};
	behinstProto.tick = function ()
	{
	};
	behinstProto.posttick = function ()
	{
		var dt = this.runtime.getDt(this.inst);
		var mx, my, obstacle, mag, allover, i, len, j, oldx, oldy;
		if (!this.jumpkey && !this.simjump)
			this.jumped = false;
		var left = this.leftkey || this.simleft;
		var right = this.rightkey || this.simright;
		var jump = (this.jumpkey || this.simjump) && !this.jumped;
		this.simleft = false;
		this.simright = false;
		this.simjump = false;
		if (!this.enabled)
			return;
		if (this.ignoreInput)
		{
			left = false;
			right = false;
			jump = false;
		}
		var lastFloor = this.lastFloorObject;
		var floor_moved = false;
		if (this.firstTick)
		{
			if (this.runtime.testOverlapSolid(this.inst) || this.runtime.testOverlapJumpThru(this.inst))
			{
				this.runtime.pushOutSolid(this.inst, -this.downx, -this.downy, 4, true);
			}
			this.firstTick = false;
		}
		if (lastFloor && this.dy === 0 && (lastFloor.y !== this.lastFloorY || lastFloor.x !== this.lastFloorX))
		{
			mx = (lastFloor.x - this.lastFloorX);
			my = (lastFloor.y - this.lastFloorY);
			this.inst.x += mx;
			this.inst.y += my;
			this.inst.set_bbox_changed();
			this.lastFloorX = lastFloor.x;
			this.lastFloorY = lastFloor.y;
			floor_moved = true;
			if (this.runtime.testOverlapSolid(this.inst))
			{
				this.runtime.pushOutSolid(this.inst, -mx, -my, Math.sqrt(mx * mx + my * my) * 2.5);
			}
		}
		var floor_ = this.isOnFloor();
		var collobj = this.runtime.testOverlapSolid(this.inst);
		if (collobj)
		{
			if (this.runtime.pushOutSolidNearest(this.inst, Math.max(this.inst.width, this.inst.height) / 2))
				this.runtime.registerCollision(this.inst, collobj);
			else
				return;
		}
		if (floor_)
		{
			if (this.dy > 0)
			{
				if (!this.wasOnFloor)
				{
					this.runtime.pushInFractional(this.inst, -this.downx, -this.downy, floor_, 16);
					this.wasOnFloor = true;
				}
				this.dy = 0;
			}
			if (lastFloor != floor_)
			{
				this.lastFloorObject = floor_;
				this.lastFloorX = floor_.x;
				this.lastFloorY = floor_.y;
				this.runtime.registerCollision(this.inst, floor_);
			}
			else if (floor_moved)
			{
				collobj = this.runtime.testOverlapSolid(this.inst);
				if (collobj)
				{
					this.runtime.registerCollision(this.inst, collobj);
					if (mx !== 0)
					{
						if (mx > 0)
							this.runtime.pushOutSolid(this.inst, -this.rightx, -this.righty);
						else
							this.runtime.pushOutSolid(this.inst, this.rightx, this.righty);
					}
					this.runtime.pushOutSolid(this.inst, -this.downx, -this.downy);
				}
			}
			if (jump)
			{
				oldx = this.inst.x;
				oldy = this.inst.y;
				this.inst.x -= this.downx;
				this.inst.y -= this.downy;
				this.inst.set_bbox_changed();
				if (!this.runtime.testOverlapSolid(this.inst))
				{
					this.runtime.trigger(cr.behaviors.Platform.prototype.cnds.OnJump, this.inst);
					this.animMode = ANIMMODE_JUMPING;
					this.dy = -this.jumpStrength;
					this.jumped = true;
				}
				else
					jump = false;
				this.inst.x = oldx;
				this.inst.y = oldy;
				this.inst.set_bbox_changed();
			}
		}
		else
		{
			this.lastFloorObject = null;
			this.dy += this.g * dt;
			if (this.dy > this.maxFall)
				this.dy = this.maxFall;
			if (jump)
				this.jumped = true;
		}
		this.wasOnFloor = !!floor_;
		if (left == right)	// both up or both down
		{
			if (this.dx < 0)
			{
				this.dx += this.dec * dt;
				if (this.dx > 0)
					this.dx = 0;
			}
			else if (this.dx > 0)
			{
				this.dx -= this.dec * dt;
				if (this.dx < 0)
					this.dx = 0;
			}
		}
		if (left && !right)
		{
			if (this.dx > 0)
				this.dx -= (this.acc + this.dec) * dt;
			else
				this.dx -= this.acc * dt;
		}
		if (right && !left)
		{
			if (this.dx < 0)
				this.dx += (this.acc + this.dec) * dt;
			else
				this.dx += this.acc * dt;
		}
		if (this.dx > this.maxspeed)
			this.dx = this.maxspeed;
		else if (this.dx < -this.maxspeed)
			this.dx = -this.maxspeed;
		var landed = false;
		if (this.dx !== 0)
		{
			oldx = this.inst.x;
			oldy = this.inst.y;
			mx = this.dx * dt * this.rightx;
			my = this.dx * dt * this.righty;
			this.inst.x += this.rightx * (this.dx > 1 ? 1 : -1) - this.downx;
			this.inst.y += this.righty * (this.dx > 1 ? 1 : -1) - this.downy;
			this.inst.set_bbox_changed();
			var is_jumpthru = false;
			var slope_too_steep = this.runtime.testOverlapSolid(this.inst);
			/*
			if (!slope_too_steep && floor_)
			{
				slope_too_steep = this.runtime.testOverlapJumpThru(this.inst);
				is_jumpthru = true;
				if (slope_too_steep)
				{
					this.inst.x = oldx;
					this.inst.y = oldy;
					this.inst.set_bbox_changed();
					if (this.runtime.testOverlap(this.inst, slope_too_steep))
					{
						slope_too_steep = null;
						is_jumpthru = false;
					}
				}
			}
			*/
			this.inst.x = oldx + mx;
			this.inst.y = oldy + my;
			this.inst.set_bbox_changed();
			obstacle = this.runtime.testOverlapSolid(this.inst);
			if (!obstacle && floor_)
			{
				obstacle = this.runtime.testOverlapJumpThru(this.inst);
				if (obstacle)
				{
					this.inst.x = oldx;
					this.inst.y = oldy;
					this.inst.set_bbox_changed();
					if (this.runtime.testOverlap(this.inst, obstacle))
					{
						obstacle = null;
						is_jumpthru = false;
					}
					else
						is_jumpthru = true;
					this.inst.x = oldx + mx;
					this.inst.y = oldy + my;
					this.inst.set_bbox_changed();
				}
			}
			if (obstacle)
			{
				var push_dist = Math.abs(this.dx * dt) + 2;
				if (slope_too_steep || !this.runtime.pushOutSolid(this.inst, -this.downx, -this.downy, push_dist, is_jumpthru, obstacle))
				{
					this.runtime.registerCollision(this.inst, obstacle);
					push_dist = Math.max(Math.abs(this.dx * dt * 2.5), 30);
					if (!this.runtime.pushOutSolid(this.inst, this.rightx * (this.dx < 0 ? 1 : -1), this.righty * (this.dx < 0 ? 1 : -1), push_dist, false))
					{
						this.inst.x = oldx;
						this.inst.y = oldy;
						this.inst.set_bbox_changed();
					}
					else if (floor_ && !is_jumpthru && !this.floorIsJumpthru)
					{
						oldx = this.inst.x;
						oldy = this.inst.y;
						this.inst.x += this.downx;
						this.inst.y += this.downy;
						if (this.runtime.testOverlapSolid(this.inst))
						{
							if (!this.runtime.pushOutSolid(this.inst, -this.downx, -this.downy, 3, false))
							{
								this.inst.x = oldx;
								this.inst.y = oldy;
								this.inst.set_bbox_changed();
							}
						}
						else
						{
							this.inst.x = oldx;
							this.inst.y = oldy;
							this.inst.set_bbox_changed();
						}
					}
					if (!is_jumpthru)
						this.dx = 0;	// stop
				}
				else if (!slope_too_steep && Math.abs(this.dy) < 15)
				{
					this.dy = 0;
					if (!floor_)
						landed = true;
				}
			}
			else
			{
				var newfloor = this.isOnFloor();
				if (floor_ && !newfloor)
				{
					mag = Math.ceil(Math.abs(this.dx * dt)) + 2;
					oldx = this.inst.x;
					oldy = this.inst.y;
					this.inst.x += this.downx * mag;
					this.inst.y += this.downy * mag;
					this.inst.set_bbox_changed();
					if (this.runtime.testOverlapSolid(this.inst) || this.runtime.testOverlapJumpThru(this.inst))
						this.runtime.pushOutSolid(this.inst, -this.downx, -this.downy, mag + 2, true);
					else
					{
						this.inst.x = oldx;
						this.inst.y = oldy;
						this.inst.set_bbox_changed();
					}
				}
				else if (newfloor && this.dy === 0)
				{
					this.runtime.pushInFractional(this.inst, -this.downx, -this.downy, newfloor, 16);
				}
			}
		}
		if (this.dy !== 0)
		{
			oldx = this.inst.x;
			oldy = this.inst.y;
			this.inst.x += this.dy * dt * this.downx;
			this.inst.y += this.dy * dt * this.downy;
			var newx = this.inst.x;
			var newy = this.inst.y;
			this.inst.set_bbox_changed();
			collobj = this.runtime.testOverlapSolid(this.inst);
			var fell_on_jumpthru = false;
			if (!collobj && (this.dy > 0) && !floor_)
			{
				allover = this.fallthrough > 0 ? null : this.runtime.testOverlapJumpThru(this.inst, true);
				if (allover && allover.length)
				{
					if (this.wasOverJumpthru)
					{
						this.inst.x = oldx;
						this.inst.y = oldy;
						this.inst.set_bbox_changed();
						for (i = 0, j = 0, len = allover.length; i < len; i++)
						{
							allover[j] = allover[i];
							if (!this.runtime.testOverlap(this.inst, allover[i]))
								j++;
						}
						allover.length = j;
						this.inst.x = newx;
						this.inst.y = newy;
						this.inst.set_bbox_changed();
					}
					if (allover.length >= 1)
						collobj = allover[0];
				}
				fell_on_jumpthru = !!collobj;
			}
			if (collobj)
			{
				this.runtime.registerCollision(this.inst, collobj);
				var push_dist = (fell_on_jumpthru ? Math.abs(this.dy * dt * 2.5 + 10) : Math.max(Math.abs(this.dy * dt * 2.5 + 10), 30));
				if (!this.runtime.pushOutSolid(this.inst, this.downx * (this.dy < 0 ? 1 : -1), this.downy * (this.dy < 0 ? 1 : -1), push_dist, fell_on_jumpthru, collobj))
				{
					this.inst.x = oldx;
					this.inst.y = oldy;
					this.inst.set_bbox_changed();
					this.wasOnFloor = true;		// prevent adjustment for unexpected floor landings
					if (!fell_on_jumpthru)
						this.dy = 0;	// stop
				}
				else
				{
					this.lastFloorObject = collobj;
					this.lastFloorX = collobj.x;
					this.lastFloorY = collobj.y;
					this.floorIsJumpthru = fell_on_jumpthru;
					if (fell_on_jumpthru)
						landed = true;
					this.dy = 0;	// stop
				}
			}
		}
		if (this.animMode !== ANIMMODE_FALLING && this.dy > 0 && !floor_)
		{
			this.runtime.trigger(cr.behaviors.Platform.prototype.cnds.OnFall, this.inst);
			this.animMode = ANIMMODE_FALLING;
		}
		if (floor_ || landed)
		{
			if (this.animMode === ANIMMODE_FALLING || landed || (jump && this.dy === 0))
			{
				this.runtime.trigger(cr.behaviors.Platform.prototype.cnds.OnLand, this.inst);
				if (this.dx === 0 && this.dy === 0)
					this.animMode = ANIMMODE_STOPPED;
				else
					this.animMode = ANIMMODE_MOVING;
			}
			else
			{
				if (this.animMode !== ANIMMODE_STOPPED && this.dx === 0 && this.dy === 0)
				{
					this.runtime.trigger(cr.behaviors.Platform.prototype.cnds.OnStop, this.inst);
					this.animMode = ANIMMODE_STOPPED;
				}
				if (this.animMode !== ANIMMODE_MOVING && (this.dx !== 0 || this.dy !== 0) && !jump)
				{
					this.runtime.trigger(cr.behaviors.Platform.prototype.cnds.OnMove, this.inst);
					this.animMode = ANIMMODE_MOVING;
				}
			}
		}
		if (this.fallthrough > 0)
			this.fallthrough--;
		this.wasOverJumpthru = this.runtime.testOverlapJumpThru(this.inst);
	};
	function Cnds() {};
	Cnds.prototype.IsMoving = function ()
	{
		return this.dx !== 0 || this.dy !== 0;
	};
	Cnds.prototype.CompareSpeed = function (cmp, s)
	{
		var speed = Math.sqrt(this.dx * this.dx + this.dy * this.dy);
		return cr.do_cmp(speed, cmp, s);
	};
	Cnds.prototype.IsOnFloor = function ()
	{
		if (this.dy !== 0)
			return false;
		var ret = null;
		var ret2 = null;
		var i, len, j;
		var oldx = this.inst.x;
		var oldy = this.inst.y;
		this.inst.x += this.downx;
		this.inst.y += this.downy;
		this.inst.set_bbox_changed();
		ret = this.runtime.testOverlapSolid(this.inst);
		if (!ret && this.fallthrough === 0)
			ret2 = this.runtime.testOverlapJumpThru(this.inst, true);
		this.inst.x = oldx;
		this.inst.y = oldy;
		this.inst.set_bbox_changed();
		if (ret)		// was overlapping solid
		{
			return !this.runtime.testOverlap(this.inst, ret);
		}
		if (ret2 && ret2.length)
		{
			for (i = 0, j = 0, len = ret2.length; i < len; i++)
			{
				ret2[j] = ret2[i];
				if (!this.runtime.testOverlap(this.inst, ret2[i]))
					j++;
			}
			if (j >= 1)
				return true;
		}
		return false;
	};
	Cnds.prototype.IsByWall = function (side)
	{
		var ret = false;
		var oldx = this.inst.x;
		var oldy = this.inst.y;
		this.inst.x -= this.downx * 3;
		this.inst.y -= this.downy * 3;
		this.inst.set_bbox_changed();
		if (this.runtime.testOverlapSolid(this.inst))
		{
			this.inst.x = oldx;
			this.inst.y = oldy;
			this.inst.set_bbox_changed();
			return false;
		}
		if (side === 0)		// left
		{
			this.inst.x -= this.rightx * 2;
			this.inst.y -= this.righty * 2;
		}
		else
		{
			this.inst.x += this.rightx * 2;
			this.inst.y += this.righty * 2;
		}
		this.inst.set_bbox_changed();
		ret = this.runtime.testOverlapSolid(this.inst);
		this.inst.x = oldx;
		this.inst.y = oldy;
		this.inst.set_bbox_changed();
		return ret;
	};
	Cnds.prototype.IsJumping = function ()
	{
		return this.dy < 0;
	};
	Cnds.prototype.IsFalling = function ()
	{
		return this.dy > 0;
	};
	Cnds.prototype.OnJump = function ()
	{
		return true;
	};
	Cnds.prototype.OnFall = function ()
	{
		return true;
	};
	Cnds.prototype.OnStop = function ()
	{
		return true;
	};
	Cnds.prototype.OnMove = function ()
	{
		return true;
	};
	Cnds.prototype.OnLand = function ()
	{
		return true;
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.SetIgnoreInput = function (ignoring)
	{
		this.ignoreInput = ignoring;
	};
	Acts.prototype.SetMaxSpeed = function (maxspeed)
	{
		this.maxspeed = maxspeed;
		if (this.maxspeed < 0)
			this.maxspeed = 0;
	};
	Acts.prototype.SetAcceleration = function (acc)
	{
		this.acc = acc;
		if (this.acc < 0)
			this.acc = 0;
	};
	Acts.prototype.SetDeceleration = function (dec)
	{
		this.dec = dec;
		if (this.dec < 0)
			this.dec = 0;
	};
	Acts.prototype.SetJumpStrength = function (js)
	{
		this.jumpStrength = js;
		if (this.jumpStrength < 0)
			this.jumpStrength = 0;
	};
	Acts.prototype.SetGravity = function (grav)
	{
		if (this.g1 === grav)
			return;		// no change
		this.g = grav;
		this.updateGravity();
		if (this.runtime.testOverlapSolid(this.inst))
		{
			this.runtime.pushOutSolid(this.inst, this.downx, this.downy, 10);
			this.inst.x += this.downx * 2;
			this.inst.y += this.downy * 2;
			this.inst.set_bbox_changed();
		}
		this.lastFloorObject = null;
	};
	Acts.prototype.SetMaxFallSpeed = function (mfs)
	{
		this.maxFall = mfs;
		if (this.maxFall < 0)
			this.maxFall = 0;
	};
	Acts.prototype.SimulateControl = function (ctrl)
	{
		switch (ctrl) {
		case 0:		this.simleft = true;	break;
		case 1:		this.simright = true;	break;
		case 2:		this.simjump = true;	break;
		}
	};
	Acts.prototype.SetVectorX = function (vx)
	{
		this.dx = vx;
	};
	Acts.prototype.SetVectorY = function (vy)
	{
		this.dy = vy;
	};
	Acts.prototype.SetGravityAngle = function (a)
	{
		a = cr.to_radians(a);
		a = cr.clamp_angle(a);
		if (this.ga === a)
			return;		// no change
		this.ga = a;
		this.updateGravity();
		this.lastFloorObject = null;
	};
	Acts.prototype.SetEnabled = function (en)
	{
		if (this.enabled !== (en === 1))
		{
			this.enabled = (en === 1);
			if (!this.enabled)
				this.lastFloorObject = null;
		}
	};
	Acts.prototype.FallThrough = function ()
	{
		var oldx = this.inst.x;
		var oldy = this.inst.y;
		this.inst.x += this.downx;
		this.inst.y += this.downy;
		this.inst.set_bbox_changed();
		var overlaps = this.runtime.testOverlapJumpThru(this.inst, false);
		this.inst.x = oldx;
		this.inst.y = oldy;
		this.inst.set_bbox_changed();
		if (!overlaps)
			return;
		this.fallthrough = 3;			// disable jumpthrus for 3 ticks (1 doesn't do it, 2 does, 3 to be on safe side)
		this.lastFloorObject = null;
	};
	behaviorProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.Speed = function (ret)
	{
		ret.set_float(Math.sqrt(this.dx * this.dx + this.dy * this.dy));
	};
	Exps.prototype.MaxSpeed = function (ret)
	{
		ret.set_float(this.maxspeed);
	};
	Exps.prototype.Acceleration = function (ret)
	{
		ret.set_float(this.acc);
	};
	Exps.prototype.Deceleration = function (ret)
	{
		ret.set_float(this.dec);
	};
	Exps.prototype.JumpStrength = function (ret)
	{
		ret.set_float(this.jumpStrength);
	};
	Exps.prototype.Gravity = function (ret)
	{
		ret.set_float(this.g);
	};
	Exps.prototype.GravityAngle = function (ret)
	{
		ret.set_float(cr.to_degrees(this.ga));
	};
	Exps.prototype.MaxFallSpeed = function (ret)
	{
		ret.set_float(this.maxFall);
	};
	Exps.prototype.MovingAngle = function (ret)
	{
		ret.set_float(cr.to_degrees(Math.atan2(this.dy, this.dx)));
	};
	Exps.prototype.VectorX = function (ret)
	{
		ret.set_float(this.dx);
	};
	Exps.prototype.VectorY = function (ret)
	{
		ret.set_float(this.dy);
	};
	behaviorProto.exps = new Exps();
}());
;
;
cr.behaviors.bound = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.bound.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
		this.mode = 0;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.mode = this.properties[0];	// 0 = origin, 1 = edge
	};
	behinstProto.tick = function ()
	{
	};
	behinstProto.tick2 = function ()
	{
		this.inst.update_bbox();
		var bbox = this.inst.bbox;
		var layout = this.inst.layer.layout;
		var changed = false;
		if (this.mode === 0)	// origin
		{
			if (this.inst.x < 0)
			{
				this.inst.x = 0;
				changed = true;
			}
			if (this.inst.y < 0)
			{
				this.inst.y = 0;
				changed = true;
			}
			if (this.inst.x > layout.width)
			{
				this.inst.x = layout.width;
				changed = true;
			}
			if (this.inst.y > layout.height)
			{
				this.inst.y = layout.height;
				changed = true;
			}
		}
		else
		{
			if (bbox.left < 0)
			{
				this.inst.x -= bbox.left;
				changed = true;
			}
			if (bbox.top < 0)
			{
				this.inst.y -= bbox.top;
				changed = true;
			}
			if (bbox.right > layout.width)
			{
				this.inst.x -= (bbox.right - layout.width);
				changed = true;
			}
			if (bbox.bottom > layout.height)
			{
				this.inst.y -= (bbox.bottom - layout.height);
				changed = true;
			}
		}
		if (changed)
			this.inst.set_bbox_changed();
	};
}());
;
;
cr.behaviors.custom = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.custom.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;
		this.runtime = type.runtime;
		this.dx = 0;
		this.dy = 0;
		this.cancelStep = 0;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.stepMode = this.properties[0];	// 0=None, 1=Linear, 2=Horizontal then vertical, 3=Vertical then horizontal
		this.pxPerStep = this.properties[1];
		this.enabled = (this.properties[2] !== 0);
	};
	behinstProto.saveToJSON = function ()
	{
		return {
			"dx": this.dx,
			"dy": this.dy,
			"cancelStep": this.cancelStep,
			"enabled": this.enabled,
			"stepMode": this.stepMode,
			"pxPerStep": this.pxPerStep
		};
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.dx = o["dx"];
		this.dy = o["dy"];
		this.cancelStep = o["cancelStep"];
		this.enabled = o["enabled"];
		this.stepMode = o["stepMode"];
		this.pxPerStep = o["pxPerStep"];
	};
	behinstProto.getSpeed = function ()
	{
		return Math.sqrt(this.dx * this.dx + this.dy * this.dy);
	};
	behinstProto.getAngle = function ()
	{
		return Math.atan2(this.dy, this.dx);
	};
	function sign(x)
	{
		if (x === 0)
			return 0;
		else if (x < 0)
			return -1;
		else
			return 1;
	};
	behinstProto.step = function (x, y, trigmethod)
	{
		if (x === 0 && y === 0)
			return;
		var startx = this.inst.x;
		var starty = this.inst.y;
		var sx, sy, prog;
		var steps = Math.round(Math.sqrt(x * x + y * y) / this.pxPerStep);
		if (steps === 0)
			steps = 1;
		var i;
		for (i = 1; i <= steps; i++)
		{
			prog = i / steps;
			this.inst.x = startx + x * prog;
			this.inst.y = starty + y * prog;
			this.inst.set_bbox_changed();
			this.runtime.trigger(trigmethod, this.inst);
			if (this.cancelStep === 1)
			{
				i--;
				prog = i / steps;
				this.inst.x = startx + x * prog;
				this.inst.y = starty + y * prog;
				this.inst.set_bbox_changed();
				return;
			}
			else if (this.cancelStep === 2)
			{
				return;
			}
		}
	};
	behinstProto.tick = function ()
	{
		var dt = this.runtime.getDt(this.inst);
		var mx = this.dx * dt;
		var my = this.dy * dt;
		var i, steps;
		if ((this.dx === 0 && this.dy === 0) || !this.enabled)
			return;
		this.cancelStep = 0;
		if (this.stepMode === 0)		// none
		{
			this.inst.x += mx;
			this.inst.y += my;
		}
		else if (this.stepMode === 1)	// linear
		{
			this.step(mx, my, cr.behaviors.custom.prototype.cnds.OnCMStep);
		}
		else if (this.stepMode === 2)	// horizontal then vertical
		{
			this.step(mx, 0, cr.behaviors.custom.prototype.cnds.OnCMHorizStep);
			this.cancelStep = 0;
			this.step(0, my, cr.behaviors.custom.prototype.cnds.OnCMVertStep);
		}
		else if (this.stepMode === 3)	// vertical then horizontal
		{
			this.step(0, my, cr.behaviors.custom.prototype.cnds.OnCMVertStep);
			this.cancelStep = 0;
			this.step(mx, 0, cr.behaviors.custom.prototype.cnds.OnCMHorizStep);
		}
		this.inst.set_bbox_changed();
	};
	function Cnds() {};
	Cnds.prototype.IsMoving = function ()
	{
		return this.dx != 0 || this.dy != 0;
	};
	Cnds.prototype.CompareSpeed = function (axis, cmp, s)
	{
		var speed;
		switch (axis) {
		case 0:		speed = this.getSpeed();	break;
		case 1:		speed = this.dx;			break;
		case 2:		speed = this.dy;			break;
		}
		return cr.do_cmp(speed, cmp, s);
	};
	Cnds.prototype.OnCMStep = function ()
	{
		return true;
	};
	Cnds.prototype.OnCMHorizStep = function ()
	{
		return true;
	};
	Cnds.prototype.OnCMVertStep = function ()
	{
		return true;
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.Stop = function ()
	{
		this.dx = 0;
		this.dy = 0;
	};
	Acts.prototype.Reverse = function (axis)
	{
		switch (axis) {
		case 0:
			this.dx *= -1;
			this.dy *= -1;
			break;
		case 1:
			this.dx *= -1;
			break;
		case 2:
			this.dy *= -1;
			break;
		}
	};
	Acts.prototype.SetSpeed = function (axis, s)
	{
		var a;
		switch (axis) {
		case 0:
			a = this.getAngle();
			this.dx = Math.cos(a) * s;
			this.dy = Math.sin(a) * s;
			break;
		case 1:
			this.dx = s;
			break;
		case 2:
			this.dy = s;
			break;
		}
	};
	Acts.prototype.Accelerate = function (axis, acc)
	{
		var dt = this.runtime.getDt(this.inst);
		var ds = acc * dt;
		var a;
		switch (axis) {
		case 0:
			a = this.getAngle();
			this.dx += Math.cos(a) * ds;
			this.dy += Math.sin(a) * ds;
			break;
		case 1:
			this.dx += ds;
			break;
		case 2:
			this.dy += ds;
			break;
		}
	};
	Acts.prototype.AccelerateAngle = function (acc, a_)
	{
		var dt = this.runtime.getDt(this.inst);
		var ds = acc * dt;
		var a = cr.to_radians(a_);
		this.dx += Math.cos(a) * ds;
		this.dy += Math.sin(a) * ds;
	};
	Acts.prototype.AcceleratePos = function (acc, x, y)
	{
		var dt = this.runtime.getDt(this.inst);
		var ds = acc * dt;
		var a = Math.atan2(y - this.inst.y, x - this.inst.x);
		this.dx += Math.cos(a) * ds;
		this.dy += Math.sin(a) * ds;
	};
	Acts.prototype.SetAngleOfMotion = function (a_)
	{
		var a = cr.to_radians(a_);
		var s = this.getSpeed();
		this.dx = Math.cos(a) * s;
		this.dy = Math.sin(a) * s;
	};
	Acts.prototype.RotateAngleOfMotionClockwise = function (a_)
	{
		var a = this.getAngle() + cr.to_radians(a_);
		var s = this.getSpeed();
		this.dx = Math.cos(a) * s;
		this.dy = Math.sin(a) * s;
	};
	Acts.prototype.RotateAngleOfMotionCounterClockwise = function (a_)
	{
		var a = this.getAngle() - cr.to_radians(a_);
		var s = this.getSpeed();
		this.dx = Math.cos(a) * s;
		this.dy = Math.sin(a) * s;
	};
	Acts.prototype.StopStepping = function (mode)
	{
		this.cancelStep = mode + 1;
	};
	Acts.prototype.PushOutSolid = function (mode)
	{
		var a, ux, uy;
		switch (mode) {
		case 0:
			a = this.getAngle();
			ux = Math.cos(a);
			uy = Math.sin(a);
			this.runtime.pushOutSolid(this.inst, -ux, -uy, Math.max(this.getSpeed() * 3, 100));
			break;
		case 1:
			this.runtime.pushOutSolidNearest(this.inst);
			break;
		case 2:
			this.runtime.pushOutSolid(this.inst, 0, -1, Math.max(Math.abs(this.dy) * 3, 100));
			break;
		case 3:
			this.runtime.pushOutSolid(this.inst, 0, 1, Math.max(Math.abs(this.dy) * 3, 100));
			break;
		case 4:
			this.runtime.pushOutSolid(this.inst, -1, 0, Math.max(Math.abs(this.dx) * 3, 100));
			break;
		case 5:
			this.runtime.pushOutSolid(this.inst, 1, 0, Math.max(Math.abs(this.dx) * 3, 100));
			break;
		}
	};
	Acts.prototype.PushOutSolidAngle = function (a)
	{
		a = cr.to_radians(a);
		var ux = Math.cos(a);
		var uy = Math.sin(a);
		this.runtime.pushOutSolid(this.inst, ux, uy, Math.max(this.getSpeed() * 3, 100));
	};
	Acts.prototype.SetEnabled = function (en)
	{
		this.enabled = (en === 1);
	};
	behaviorProto.acts = new Acts();
	function Exps() {};
	Exps.prototype.Speed = function (ret)
	{
		ret.set_float(this.getSpeed());
	};
	Exps.prototype.MovingAngle = function (ret)
	{
		ret.set_float(cr.to_degrees(this.getAngle()));
	};
	Exps.prototype.dx = function (ret)
	{
		ret.set_float(this.dx);
	};
	Exps.prototype.dy = function (ret)
	{
		ret.set_float(this.dy);
	};
	behaviorProto.exps = new Exps();
}());
;
;
cr.behaviors.destroy = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.destroy.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
	};
	behinstProto.tick = function ()
	{
		this.inst.update_bbox();
		var bbox = this.inst.bbox;
		var layout = this.inst.layer.layout;
		if (bbox.right < 0 || bbox.bottom < 0 || bbox.left > layout.width || bbox.top > layout.height)
			this.runtime.DestroyInstance(this.inst);
	};
}());
;
;
cr.behaviors.scrollto = function(runtime)
{
	this.runtime = runtime;
	this.shakeMag = 0;
	this.shakeStart = 0;
	this.shakeEnd = 0;
	this.shakeMode = 0;
};
(function ()
{
	var behaviorProto = cr.behaviors.scrollto.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.enabled = (this.properties[0] !== 0);
	};
	behinstProto.saveToJSON = function ()
	{
		return {
			"smg": this.behavior.shakeMag,
			"ss": this.behavior.shakeStart,
			"se": this.behavior.shakeEnd,
			"smd": this.behavior.shakeMode
		};
	};
	behinstProto.loadFromJSON = function (o)
	{
		this.behavior.shakeMag = o["smg"];
		this.behavior.shakeStart = o["ss"];
		this.behavior.shakeEnd = o["se"];
		this.behavior.shakeMode = o["smd"];
	};
	behinstProto.tick = function ()
	{
	};
	function getScrollToBehavior(inst)
	{
		var i, len, binst;
		for (i = 0, len = inst.behavior_insts.length; i < len; ++i)
		{
			binst = inst.behavior_insts[i];
			if (binst.behavior instanceof cr.behaviors.scrollto)
				return binst;
		}
		return null;
	};
	behinstProto.tick2 = function ()
	{
		if (!this.enabled)
			return;
		var all = this.behavior.my_instances.valuesRef();
		var sumx = 0, sumy = 0;
		var i, len, binst, count = 0;
		for (i = 0, len = all.length; i < len; i++)
		{
			binst = getScrollToBehavior(all[i]);
			if (!binst || !binst.enabled)
				continue;
			sumx += all[i].x;
			sumy += all[i].y;
			++count;
		}
		var layout = this.inst.layer.layout;
		var now = this.runtime.kahanTime.sum;
		var offx = 0, offy = 0;
		if (now >= this.behavior.shakeStart && now < this.behavior.shakeEnd)
		{
			var mag = this.behavior.shakeMag * Math.min(this.runtime.timescale, 1);
			if (this.behavior.shakeMode === 0)
				mag *= 1 - (now - this.behavior.shakeStart) / (this.behavior.shakeEnd - this.behavior.shakeStart);
			var a = Math.random() * Math.PI * 2;
			var d = Math.random() * mag;
			offx = Math.cos(a) * d;
			offy = Math.sin(a) * d;
		}
		layout.scrollToX(sumx / count + offx);
		layout.scrollToY(sumy / count + offy);
	};
	function Acts() {};
	Acts.prototype.Shake = function (mag, dur, mode)
	{
		this.behavior.shakeMag = mag;
		this.behavior.shakeStart = this.runtime.kahanTime.sum;
		this.behavior.shakeEnd = this.behavior.shakeStart + dur;
		this.behavior.shakeMode = mode;
	};
	Acts.prototype.SetEnabled = function (e)
	{
		this.enabled = (e !== 0);
	};
	behaviorProto.acts = new Acts();
}());
;
;
cr.behaviors.solid = function(runtime)
{
	this.runtime = runtime;
};
(function ()
{
	var behaviorProto = cr.behaviors.solid.prototype;
	behaviorProto.Type = function(behavior, objtype)
	{
		this.behavior = behavior;
		this.objtype = objtype;
		this.runtime = behavior.runtime;
	};
	var behtypeProto = behaviorProto.Type.prototype;
	behtypeProto.onCreate = function()
	{
	};
	behaviorProto.Instance = function(type, inst)
	{
		this.type = type;
		this.behavior = type.behavior;
		this.inst = inst;				// associated object instance to modify
		this.runtime = type.runtime;
	};
	var behinstProto = behaviorProto.Instance.prototype;
	behinstProto.onCreate = function()
	{
		this.inst.extra.solidEnabled = (this.properties[0] !== 0);
	};
	behinstProto.tick = function ()
	{
	};
	function Cnds() {};
	Cnds.prototype.IsEnabled = function ()
	{
		return this.inst.extra.solidEnabled;
	};
	behaviorProto.cnds = new Cnds();
	function Acts() {};
	Acts.prototype.SetEnabled = function (e)
	{
		this.inst.extra.solidEnabled = !!e;
	};
	behaviorProto.acts = new Acts();
}());
cr.getProjectModel = function() { return [
	null,
	"L_MobileRedirect",
	[
	[
		cr.plugins_.Dictionary,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.appMobi,
		true,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.AJAX,
		true,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.Arr,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.Audio,
		true,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.Browser,
		true,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.Function,
		true,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.Keyboard,
		true,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.Sprite,
		false,
		true,
		true,
		true,
		true,
		true,
		true,
		true,
		false
	]
,	[
		cr.plugins_.Text,
		false,
		true,
		true,
		true,
		true,
		true,
		true,
		true,
		false
	]
,	[
		cr.plugins_.TextBox,
		false,
		true,
		true,
		true,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.TiledBg,
		false,
		true,
		true,
		true,
		true,
		true,
		true,
		true,
		true
	]
,	[
		cr.plugins_.Touch,
		true,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
,	[
		cr.plugins_.WebStorage,
		true,
		false,
		false,
		false,
		false,
		false,
		false,
		false,
		false
	]
	],
	[
	[
		"t0",
		cr.plugins_.Arr,
		false,
		[1235149754937289,6416363513602311],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		1026867521792872,
		[],
		null
	]
,	[
		"t1",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		5981763112147684,
		[],
		null
	]
,	[
		"t2",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		1457401745449593,
		[],
		null
	]
,	[
		"t3",
		cr.plugins_.Sprite,
		false,
		[9002654528213731,7042346366709095,7800892275258889,2494558334928007],
		1,
		0,
		null,
		[
			[
			"Default",
			12,
			true,
			1,
			0,
			false,
			9528944196891345,
			[
				["images/bbc-sheet0.png", 17412, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet0.png", 17412, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet0.png", 17412, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet0.png", 17412, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet1.png", 17550, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet1.png", 17550, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet1.png", 17550, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet1.png", 17550, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet2.png", 17826, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet2.png", 17826, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet2.png", 17826, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0],
				["images/bbc-sheet2.png", 17826, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4200000166893005,-0.2100000083446503,-0.02000001072883606,-0.4600000083446503,0.3899999856948853,-0.2299990057945252,0.3999999761581421,0.2400000095367432,0,0.4700000286102295,-0.4200000166893005,0.2300000190734863],0]
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			3344562194877934
		]
		],
		false,
		false,
		8598897307349356,
		[],
		null
	]
,	[
		"t4",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1104526525659102,
			[
				["images/bbc-sheet2.png", 17826, 102, 102, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9101528872649253,
		[],
		null
	]
,	[
		"t5",
		cr.plugins_.Sprite,
		false,
		[4988144377240232,6916529071879539,985070001517658,7094421261340728,6173157509133639],
		1,
		0,
		null,
		[
			[
			"Default",
			12,
			true,
			1,
			0,
			false,
			7496099091714838,
			[
				["images/bmc-sheet0.png", 21142, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet0.png", 21142, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet0.png", 21142, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet0.png", 21142, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet1.png", 20286, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet1.png", 20286, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet1.png", 20286, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet1.png", 20286, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet2.png", 21160, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet2.png", 21160, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet2.png", 21160, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0],
				["images/bmc-sheet2.png", 21160, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4399999976158142,-0.2299999892711639,-0.009999990463256836,-0.5,0.4100000262260437,-0.2299999892711639,0.4100000262260437,0.2300000190734863,0,0.4649999737739563,-0.4250001013278961,0.2225000262260437],0]
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			496502560284876
		]
		],
		false,
		false,
		9809364678127155,
		[],
		null
	]
,	[
		"t6",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8954373566349097,
			[
				["images/bmcbound-sheet0.png", 6112, 0, 0, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		830408517049511,
		[],
		null
	]
,	[
		"t7",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		2680310335915572,
		[],
		null
	]
,	[
		"t8",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		1019128767298204,
		[],
		null
	]
,	[
		"t9",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		7425492459940159,
		[],
		null
	]
,	[
		"t10",
		cr.plugins_.Sprite,
		false,
		[4089591909340005,2162278927538331,3396600032230482,4136031143411907,730801403678222],
		1,
		0,
		null,
		[
			[
			"high",
			12,
			true,
			1,
			0,
			false,
			1126802777826864,
			[
				["images/gpc-sheet0.png", 120037, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 203, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 304, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 405, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 203, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 304, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 405, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 1, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 102, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0]
			]
			]
,			[
			"low",
			12,
			true,
			1,
			0,
			false,
			4696068616824069,
			[
				["images/gpc-sheet0.png", 120037, 203, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 304, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 405, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 1, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 102, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 203, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 304, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 405, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 1, 405, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 102, 405, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 203, 405, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet0.png", 120037, 304, 405, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0]
			]
			]
,			[
			"med",
			12,
			true,
			1,
			0,
			false,
			23565897461573,
			[
				["images/gpc-sheet0.png", 120037, 405, 405, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 203, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 304, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 405, 1, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 203, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 304, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 405, 102, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 1, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0]
			]
			]
,			[
			"vhigh",
			12,
			true,
			1,
			0,
			false,
			1017198253606165,
			[
				["images/gpc-sheet1.png", 112420, 102, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 203, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 304, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 405, 203, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 1, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 102, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 203, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 304, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 405, 304, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 1, 405, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 102, 405, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0],
				["images/gpc-sheet1.png", 112420, 203, 405, 100, 100, 1, 0.5, 0.5,[],[-0.4300000071525574,-0.2400000095367432,0,-0.4799999892711639,0.4100000262260437,-0.2199999988079071,0.4100000262260437,0.2400000095367432,0,0.4800000190734863,-0.4300000071525574,0.25],0]
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			8592083869666248
		]
		],
		false,
		false,
		7701383889559823,
		[],
		null
	]
,	[
		"t11",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			12,
			true,
			1,
			0,
			false,
			9829528876292141,
			[
				["images/gpc-sheet0.png", 120037, 304, 405, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1847343781596662,
		[],
		null
	]
,	[
		"t12",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8546106741519606,
			[
				["images/highlighter-sheet0.png", 92, 0, 0, 13, 13, 1, 0.5384615659713745, 0.5384615659713745,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		5678149140020958,
		[],
		null
	]
,	[
		"t13",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5237413082478447,
			[
				["images/highlightmove-sheet0.png", 103, 0, 0, 32, 32, 1, 0.5, 0.5,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		5827969211394247,
		[],
		null
	]
,	[
		"t14",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		9449445181727436,
		[],
		null
	]
,	[
		"t15",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		8393429504904051,
		[],
		null
	]
,	[
		"t16",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		7222791992835441,
		[],
		null
	]
,	[
		"t17",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6673740570807312,
		[],
		null
	]
,	[
		"t18",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		933040459147345,
		[],
		null
	]
,	[
		"t19",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		1258090187409758,
		[],
		null
	]
,	[
		"t20",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		2048419647440256,
		[],
		null
	]
,	[
		"t21",
		cr.plugins_.Text,
		false,
		[],
		0,
		1,
		null,
		null,
		[
		],
		false,
		false,
		5622463696260284,
		[["highlightshadow", "HighlightShadow"]],
		null
	]
,	[
		"t22",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		1215784519593133,
		[],
		null
	]
,	[
		"t23",
		cr.plugins_.Text,
		false,
		[],
		0,
		1,
		null,
		null,
		[
		],
		false,
		false,
		3901293524815223,
		[["highlightshadow", "HighlightShadow"]],
		null
	]
,	[
		"t24",
		cr.plugins_.Text,
		false,
		[],
		0,
		1,
		null,
		null,
		[
		],
		false,
		false,
		2825544215094132,
		[["highlightshadow", "HighlightShadow"]],
		null
	]
,	[
		"t25",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		3918554649636773,
		[],
		null
	]
,	[
		"t26",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		1494425308188107,
		[],
		null
	]
,	[
		"t27",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		3907176999697176,
		[],
		null
	]
,	[
		"t28",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		5223190010833668,
		[],
		null
	]
,	[
		"t29",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3314718645151782,
			[
				["images/lefthud_level-sheet0.png", 10252, 0, 0, 154, 140, 1, 0, 0,[],[0.05844160169363022,0.06428570300340653,0.5,0.0428570993244648,0.8051949739456177,0.2142859995365143,0.922078013420105,0.5,0.8116880059242249,0.7928569912910461,0.5,0.8928570151329041,0.2727270126342773,0.699999988079071,0.2337660044431686,0.5],0]
			]
			]
		],
		[
		],
		false,
		false,
		9575044516266289,
		[],
		null
	]
,	[
		"t30",
		cr.plugins_.Sprite,
		false,
		[29743429345378],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5541502412583979,
			[
				["images/lefthud_levelprogress-sheet0.png", 5967, 1, 45, 69, 41, 1, 0, 0,[],[],0],
				["images/lefthud_levelprogress-sheet0.png", 5967, 1, 1, 71, 43, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		778584695618354,
		[],
		null
	]
,	[
		"t31",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8500667439829136,
			[
				["images/lefthud_scoreindicator-sheet0.png", 8407, 0, 0, 116, 105, 1, 0.5, 0.5047619342803955,[],[-0.3534480035305023,-0.3428569436073303,0,-0.4761905372142792,0.3448280096054077,-0.3333329558372498,0.4482759833335877,-0.009523928165435791,0.2758619785308838,0.247619092464447,0,0.3238090872764587,-0.284483015537262,0.2571430802345276,-0.4655171930789948,-0.009523928165435791],0]
			]
			]
		],
		[
		],
		false,
		false,
		9916949032461956,
		[],
		null
	]
,	[
		"t32",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			9592875821483252,
			[
				["images/lefthud_scorelabel-sheet0.png", 13654, 0, 0, 148, 148, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8898435263286456,
		[],
		null
	]
,	[
		"t33",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		7664821378562089,
		[],
		null
	]
,	[
		"t34",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		4948859025493155,
		[],
		null
	]
,	[
		"t35",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			7951419634628571,
			[
				["images/qa_closebtn-sheet0.png", 2271, 0, 0, 56, 55, 1, 0, 0,[],[],0],
				["images/qa_closebtn-sheet1.png", 2137, 0, 0, 53, 55, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9087071032632894,
		[],
		null
	]
,	[
		"t36",
		cr.plugins_.Sprite,
		false,
		[3794422222299564],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			2657119236094355,
			[
				["images/qa_drugchoice-sheet0.png", 10791, 1, 1, 387, 69, 1, 0, 0,[],[],0],
				["images/qa_drugchoice-sheet0.png", 10791, 1, 71, 387, 69, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1512233320009288,
		[],
		null
	]
,	[
		"t37",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8421064212719064,
			[
				["images/qa_drugqa-sheet0.png", 397084, 0, 0, 1195, 601, 1, 0.5004184246063232, 0.5008319616317749,[],[-0.4443515241146088,-0.389350950717926,-0.0008364319801330566,-0.4342762529850006,0.4468615651130676,-0.3960069715976715,0.458577573299408,-0.001663953065872192,0.4435145854949951,0.3876870274543762,-0.0008364319801330566,0.4159730672836304,-0.44100421667099,0.3810320496559143],0]
			]
			]
		],
		[
		],
		false,
		false,
		1467927757447335,
		[],
		null
	]
,	[
		"t38",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		3634844584728541,
		[],
		null
	]
,	[
		"t39",
		cr.plugins_.Sprite,
		false,
		[3141907381688187],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7045588560442208,
			[
				["images/qa_lifestylechoice-sheet0.png", 9345, 1, 1, 387, 69, 1, 0, 0,[],[],0],
				["images/qa_lifestylechoice-sheet0.png", 9345, 1, 71, 387, 69, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8645612588325556,
		[],
		null
	]
,	[
		"t40",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7285539865826121,
			[
				["images/qa_lifestyleqa-sheet0.png", 747432, 0, 0, 1195, 601, 1, 0.5004184246063232, 0.5008319616317749,[],[-0.5004184246063232,-0.4539875686168671,-0.008180439472198486,-0.497538149356842,0.4933925867080689,-0.452008068561554,0.4995815753936768,0.01715004444122315,0.4896425604820252,0.480370044708252,-0.008180439472198486,0.4991680383682251,-0.5004184246063232,0.4724520444869995],0]
			]
			]
		],
		[
		],
		false,
		false,
		9508405601104537,
		[],
		null
	]
,	[
		"t41",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		8918746781837685,
		[],
		null
	]
,	[
		"t42",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		1919066513790987,
		[],
		null
	]
,	[
		"t43",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		9091203912345425,
		[],
		null
	]
,	[
		"t44",
		cr.plugins_.Sprite,
		false,
		[7707861411682033,4314614162139774,1750104038393179,2362207260084824],
		1,
		0,
		null,
		[
			[
			"Default",
			12,
			true,
			1,
			0,
			false,
			4705689760573886,
			[
				["images/rdc-sheet0.png", 19595, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet0.png", 19595, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet0.png", 19595, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet0.png", 19595, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet1.png", 18438, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet1.png", 18438, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet1.png", 18438, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet1.png", 18438, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet2.png", 19336, 1, 1, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet2.png", 19336, 102, 1, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet2.png", 19336, 1, 102, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0],
				["images/rdc-sheet2.png", 19336, 102, 102, 100, 100, 1, 0.5, 0.5,[],[-0.449999988079071,-0.2400000095367432,0.01999998092651367,-0.5,0.4399999976158142,-0.239998996257782,0.4399999976158142,0.2200000286102295,-0.009999990463256836,0.5,-0.4399999976158142,0.2300000190734863],0]
			]
			]
		],
		[
		[
			"Fade",
			cr.behaviors.Fade,
			1429300683701315
		]
		],
		false,
		false,
		1515271574307529,
		[],
		null
	]
,	[
		"t45",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			6319517340126929,
			[
				["images/righthud_audio-sheet0.png", 2246, 0, 0, 55, 39, 1, 0, 0,[],[],0],
				["images/righthud_audio-sheet1.png", 1740, 0, 0, 49, 39, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		5349039119552255,
		[],
		null
	]
,	[
		"t46",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			9079447279062019,
			[
				["images/righthud_drugsbtn-sheet0.png", 9749, 0, 0, 180, 108, 1, 0, 0,[],[0.07777780294418335,0.1296299993991852,0.9222220182418823,0.1296299993991852,0.9333329796791077,0.8888890147209168,0.07222220301628113,0.8796300292015076,0.04444440081715584,0.5],0]
			]
			]
		],
		[
		],
		false,
		false,
		9499952505201497,
		[],
		null
	]
,	[
		"t47",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1370907961857738,
			[
				["images/righthud_lifestylebtn-sheet0.png", 8403, 0, 0, 179, 100, 1, 0, 0,[],[0.05586589872837067,0.1000000014901161,0.49720698595047,0.07000000029802322,0.9385470151901245,0.1099999994039536,0.9385470151901245,0.8899999856948853,0.06703910231590271,0.8799999952316284,0.04469269886612892,0.5],0]
			]
			]
		],
		[
		],
		false,
		false,
		4197250517473105,
		[],
		null
	]
,	[
		"t48",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			2478449950665736,
			[
				["images/righthud_nextroundbtn-sheet0.png", 7761, 0, 0, 142, 104, 1, 0, 0,[],[0.3169009983539581,0.4326919913291931,0.6830989718437195,0.4326919913291931,0.9295769929885864,0.5,0.9225350022315979,0.8942310214042664,0.5,0.903846025466919,0.09154929965734482,0.875,0.07042250037193298,0.5],0]
			]
			]
		],
		[
		],
		false,
		false,
		2545844073024846,
		[],
		null
	]
,	[
		"t49",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			201020709912752,
			[
				["images/righthud_play-sheet1.png", 778, 0, 0, 37, 33, 1, 0, 0,[],[],0],
				["images/righthud_play-sheet0.png", 1649, 0, 0, 44, 33, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9545271902333715,
		[],
		null
	]
,	[
		"t50",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			4940907937463671,
			[
				["images/sidehud_base-sheet0.png", 375, 0, 0, 95, 800, 1, 0.5052631497383118, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1737482122443508,
		[],
		null
	]
,	[
		"t51",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7227301234391585,
			[
				["images/spranimhelper-sheet0.png", 149, 0, 0, 20, 20, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1027077715356934,
		[],
		null
	]
,	[
		"t52",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8078070014715347,
			[
				["images/sprarrowleft-sheet0.png", 1325, 0, 0, 77, 77, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		7573980883137507,
		[],
		null
	]
,	[
		"t53",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			2457356915834314,
			[
				["images/sprarrowright-sheet0.png", 1323, 0, 0, 77, 77, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9138811834557022,
		[],
		null
	]
,	[
		"t54",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3405463171466508,
			[
				["images/sprask-sheet0.png", 220402, 0, 0, 1030, 358, 1, 0.492233008146286, 0.5391061305999756,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		2112027185270078,
		[],
		null
	]
,	[
		"t55",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			7731446795025863,
			[
				["images/spraskno-sheet0.png", 14568, 1, 86, 459, 77, 1, 0, 0,[],[],0],
				["images/spraskno-sheet0.png", 14568, 1, 1, 465, 84, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		457826372664643,
		[],
		null
	]
,	[
		"t56",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			6596002031828747,
			[
				["images/spraskresearchbtn-sheet0.png", 32179, 1, 1, 127, 101, 1, 0.5039370059967041, 0.5049505233764648,[],[],0],
				["images/spraskresearchbtn-sheet0.png", 32179, 1, 103, 127, 101, 1, 0.5039370059967041, 0.5049505233764648,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3847564961835511,
		[],
		null
	]
,	[
		"t57",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			4769012115454811,
			[
				["images/spraskwarn-sheet0.png", 14635, 1, 86, 459, 77, 1, 0, 0,[],[],0],
				["images/spraskwarn-sheet0.png", 14635, 1, 1, 465, 84, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9888078156538166,
		[],
		null
	]
,	[
		"t58",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			1708939881917999,
			[
				["images/spraskyes-sheet0.png", 13684, 1, 85, 459, 77, 1, 0, 0,[],[],0],
				["images/spraskyes-sheet0.png", 13684, 1, 1, 465, 83, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3597208734664517,
		[],
		null
	]
,	[
		"t59",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"fight",
			12,
			false,
			1,
			0,
			false,
			978718588963321,
			[
				["images/sprexplosion-sheet0.png", 64533, 1, 1, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 222, 1, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 443, 1, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 664, 1, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 1, 222, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 222, 222, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 443, 222, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 664, 222, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 1, 443, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 222, 443, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 443, 443, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 664, 443, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 1, 664, 220, 220, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 222, 664, 220, 220, 1, 0.5, 0.5,[],[],0]
			]
			]
,			[
			"power",
			12,
			false,
			1,
			0,
			false,
			3235815913892473,
			[
				["images/sprexplosion-sheet0.png", 64533, 443, 664, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet0.png", 64533, 644, 664, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 1, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 202, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 403, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 604, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 805, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 1, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 202, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 403, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 604, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 805, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 1, 403, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 202, 403, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 403, 403, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 604, 403, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 805, 403, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 1, 604, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 202, 604, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 403, 604, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 604, 604, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 805, 604, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 1, 805, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 202, 805, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/sprexplosion-sheet1.png", 372973, 403, 805, 200, 200, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8944917159474399,
		[],
		null
	]
,	[
		"t60",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			5360753094666384,
			[
				["images/sprgamelevelinfo-sheet0.png", 934007, 1, 1, 1066, 683, 1, 0.5, 0.5007320642471314,[],[],0],
				["images/sprgamelevelinfo-sheet0.png", 934007, 1, 685, 1066, 683, 1, 0.5, 0.5007320642471314,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3211641207792172,
		[],
		null
	]
,	[
		"t61",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			2488768812677699,
			[
				["images/sprgameover-sheet0.png", 1070151, 1, 1, 1067, 682, 1, 0.5004686117172241, 0.5,[],[],0],
				["images/sprgameover-sheet0.png", 1070151, 1, 684, 1067, 682, 1, 0.5004686117172241, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		5656801532272811,
		[],
		null
	]
,	[
		"t62",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Mission1Prologue",
			0,
			false,
			1,
			0,
			false,
			77464216103784,
			[
				["images/sprmissionprologuebg-sheet0.png", 2779170, 1, 1, 1280, 800, 1, 0, 0,[],[],0]
			]
			]
,			[
			"Mission2Prologue",
			0,
			false,
			1,
			0,
			false,
			5716866555524264,
			[
				["images/sprmissionprologuebg-sheet0.png", 2779170, 1, 802, 1280, 800, 1, 0, 0,[],[],0]
			]
			]
,			[
			"Mission3Prologue",
			0,
			false,
			1,
			0,
			false,
			2716217391820989,
			[
				["images/sprmissionprologuebg-sheet1.png", 2696699, 1, 1, 1280, 800, 1, 0, 0,[],[],0]
			]
			]
,			[
			"Mission4Prologue",
			0,
			false,
			1,
			0,
			false,
			9623819785245427,
			[
				["images/sprmissionprologuebg-sheet1.png", 2696699, 1, 802, 1280, 800, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9994561653288548,
		[],
		null
	]
,	[
		"t63",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			2166057806497071,
			[
				["images/sprmissionbg-sheet0.png", 399813, 0, 0, 1280, 800, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8114768234805393,
		[],
		null
	]
,	[
		"t64",
		cr.plugins_.Sprite,
		false,
		[9099844679468137,3802557646483851,450428067570892],
		0,
		0,
		null,
		[
			[
			"Default",
			12,
			false,
			1,
			0,
			false,
			8840236401825908,
			[
				["images/sprmissionbtn-sheet0.png", 21219, 1, 1, 556, 84, 1, 0, 0,[],[],0],
				["images/sprmissionbtn-sheet0.png", 21219, 1, 86, 556, 84, 1, 0, 0,[],[],0],
				["images/sprmissionbtn-sheet0.png", 21219, 1, 171, 556, 84, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8268360472298706,
		[],
		null
	]
,	[
		"t65",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"unlocked",
			0,
			false,
			1,
			0,
			false,
			7814760955067913,
			[
				["images/sprmissionpic-sheet0.png", 167674, 1, 1, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 164, 1, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 327, 1, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 1, 72, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 164, 72, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 327, 72, 162, 70, 1, 0, 0,[],[],0]
			]
			]
,			[
			"locked",
			0,
			false,
			1,
			0,
			false,
			6449192400926128,
			[
				["images/sprmissionpic-sheet0.png", 167674, 1, 143, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 164, 143, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 327, 143, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 1, 214, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 164, 214, 162, 70, 1, 0, 0,[],[],0],
				["images/sprmissionpic-sheet0.png", 167674, 327, 214, 162, 70, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9945481073224668,
		[],
		null
	]
,	[
		"t66",
		cr.plugins_.Sprite,
		false,
		[2366022376488148],
		0,
		0,
		null,
		[
			[
			"locked",
			0,
			false,
			1,
			0,
			false,
			7720578032154417,
			[
				["images/sprmissionstatussymbol-sheet0.png", 2784, 1, 1, 53, 65, 1, 0, 0,[],[],0]
			]
			]
,			[
			"unlocked",
			0,
			false,
			1,
			0,
			false,
			785316310444364,
			[
				["images/sprmissionstatussymbol-sheet0.png", 2784, 55, 1, 10, 10, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3670750581143708,
		[],
		null
	]
,	[
		"t67",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			9295811478756329,
			[
				["images/sprstartbg-sheet0.png", 713452, 0, 0, 1280, 800, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		1702449802603197,
		[],
		null
	]
,	[
		"t68",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			9955651407800803,
			[
				["images/sprstartmission-sheet0.png", 10072, 1, 1, 292, 89, 1, 0.5, 0.5056179761886597,[],[],0],
				["images/sprstartmission-sheet0.png", 10072, 1, 91, 292, 89, 1, 0.5, 0.5056179761886597,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		5113939710254419,
		[],
		null
	]
,	[
		"t69",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			1912664241690073,
			[
				["images/sprstartstory-sheet0.png", 10375, 1, 1, 292, 89, 1, 0.5, 0.5056179761886597,[],[],0],
				["images/sprstartstory-sheet0.png", 10375, 1, 91, 292, 89, 1, 0.5, 0.5056179761886597,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1288506297019791,
		[],
		null
	]
,	[
		"t70",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		2475898251366813,
		[],
		null
	]
,	[
		"t71",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6801178293054825,
		[],
		null
	]
,	[
		"t72",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/tiledbackground.png", 1239655, 1],
		null,
		[
		],
		false,
		false,
		3183802780834984,
		[],
		null
	]
,	[
		"t73",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/tiledbackground2.png", 47631, 0],
		null,
		[
		],
		false,
		false,
		9218248740328296,
		[],
		null
	]
,	[
		"t74",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/tiledbackground3.png", 36648, 0],
		null,
		[
		],
		false,
		false,
		2057424646528241,
		[],
		null
	]
,	[
		"t75",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			12,
			true,
			1,
			0,
			false,
			6072318705345361,
			[
				["images/uuc-sheet0.png", 8926, 1, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet0.png", 8926, 102, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet0.png", 8926, 1, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet0.png", 8926, 102, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet1.png", 8848, 1, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet1.png", 8848, 102, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet1.png", 8848, 1, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet1.png", 8848, 102, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet2.png", 9036, 1, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet2.png", 9036, 102, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet2.png", 9036, 1, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/uuc-sheet2.png", 9036, 102, 102, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		6963857863505458,
		[],
		null
	]
,	[
		"t76",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_bg.png", 704134, 1],
		null,
		[
		],
		false,
		false,
		9190961514903455,
		[],
		null
	]
,	[
		"t77",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_boardbg.png", 37140, 0],
		null,
		[
		],
		false,
		false,
		1548872892259619,
		[],
		null
	]
,	[
		"t78",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_boardhudrobo.png", 18512, 0],
		null,
		[
		],
		false,
		false,
		1734232154440486,
		[],
		null
	]
,	[
		"t79",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_boardhudrobodialogue.png", 423, 0],
		null,
		[
		],
		false,
		false,
		7851322186238404,
		[],
		null
	]
,	[
		"t80",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_boardhudrobodialoguebtnnext.png", 1210, 0],
		null,
		[
		],
		false,
		false,
		2746597103492106,
		[],
		null
	]
,	[
		"t81",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_boardhudspeedbg.png", 4976, 0],
		null,
		[
		],
		false,
		false,
		2020008904691889,
		[],
		null
	]
,	[
		"t82",
		cr.plugins_.TiledBg,
		false,
		[3749795420628718],
		0,
		0,
		["images/m2_boardhudpercentbg.png", 1773, 0],
		null,
		[
		],
		false,
		false,
		4230045494461824,
		[],
		null
	]
,	[
		"t83",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_boardhudnextbg.png", 4253, 0],
		null,
		[
		],
		false,
		false,
		4057713409424199,
		[],
		null
	]
,	[
		"t84",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_boardhudscorebg.png", 7018, 0],
		null,
		[
		],
		false,
		false,
		9429533005712612,
		[],
		null
	]
,	[
		"t85",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3738700258083949,
			[
				["images/m2_boardhudinfobtn-sheet0.png", 15494, 1, 1, 71, 271, 1, 0, 0,[],[],0],
				["images/m2_boardhudinfobtn-sheet0.png", 15494, 73, 1, 71, 271, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		7368647159443486,
		[],
		null
	]
,	[
		"t86",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			2053543774960413,
			[
				["images/m2_boardhudspeedctrl-sheet0.png", 19651, 1, 118, 174, 113, 1, 0, 0,[],[],0],
				["images/m2_boardhudspeedctrl-sheet0.png", 19651, 1, 1, 180, 116, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		6220167967050027,
		[],
		null
	]
,	[
		"t87",
		cr.plugins_.Sprite,
		false,
		[4801999460157974],
		2,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			3474672181748812,
			[
				["images/m2_boardballs-sheet0.png", 10262, 1, 1, 32, 32, 1, 0.5, 0.5,[],[],0],
				["images/m2_boardballs-sheet0.png", 10262, 34, 1, 32, 32, 1, 0.5, 0.5,[],[],0],
				["images/m2_boardballs-sheet0.png", 10262, 67, 1, 32, 32, 1, 0.5, 0.5,[],[],0],
				["images/m2_boardballs-sheet0.png", 10262, 1, 34, 32, 32, 1, 0.5, 0.5,[],[],0],
				["images/m2_boardballs-sheet0.png", 10262, 34, 34, 32, 32, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		[
			"Bullet",
			cr.behaviors.Bullet,
			2761911130257462
		]
,		[
			"DestroyOutsideLayout",
			cr.behaviors.destroy,
			3445747488630754
		]
		],
		false,
		false,
		6533909496867999,
		[],
		null
	]
,	[
		"t88",
		cr.plugins_.Sprite,
		false,
		[],
		3,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			6089024045744044,
			[
				["images/m2_boardbrain-sheet0.png", 52378, 0, 0, 336, 270, 1, 0.5029761791229248, 0.7851851582527161,[],[-0.3363091945648193,-0.577778160572052,-0.002976179122924805,-0.7481481432914734,0.3065478205680847,-0.5481481552124023,0.4404758214950562,-0.2851851582527161,0.348213791847229,0.02962982654571533,-0.002976179122924805,0.04814785718917847,-0.4047618806362152,0.09259283542633057,-0.4761904776096344,-0.2851851582527161],0]
			]
			]
		],
		[
		[
			"8Direction",
			cr.behaviors.EightDir,
			1227796538602113
		]
,		[
			"BoundToLayout",
			cr.behaviors.bound,
			6192197617919412
		]
,		[
			"DragDrop",
			cr.behaviors.DragnDrop,
			9525267929891552
		]
		],
		false,
		false,
		4913445777744409,
		[],
		null
	]
,	[
		"t89",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			4102202219043962,
			[
				["images/m2_boardhudballs-sheet0.png", 14679, 1, 1, 46, 46, 1, 0, 0,[],[],0],
				["images/m2_boardhudballs-sheet0.png", 14679, 48, 1, 46, 46, 1, 0, 0,[],[],0],
				["images/m2_boardhudballs-sheet0.png", 14679, 1, 48, 46, 46, 1, 0, 0,[],[],0],
				["images/m2_boardhudballs-sheet0.png", 14679, 48, 48, 46, 46, 1, 0, 0,[],[],0],
				["images/m2_boardhudballs-sheet1.png", 2878, 0, 0, 46, 46, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		678794268414097,
		[],
		null
	]
,	[
		"t90",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			2787683789799891,
			[
				["images/m2_boardhudballsnext-sheet0.png", 20243, 1, 1, 66, 66, 1, 0.5303030014038086, 0.5303030014038086,[],[],0],
				["images/m2_boardhudballsnext-sheet0.png", 20243, 68, 1, 66, 66, 1, 0.5303030014038086, 0.5303030014038086,[],[],0],
				["images/m2_boardhudballsnext-sheet0.png", 20243, 135, 1, 66, 66, 1, 0.5303030014038086, 0.5303030014038086,[],[],0],
				["images/m2_boardhudballsnext-sheet0.png", 20243, 1, 68, 66, 66, 1, 0.5303030014038086, 0.5303030014038086,[],[],0],
				["images/m2_boardhudballsnext-sheet0.png", 20243, 68, 68, 66, 66, 1, 0.5303030014038086, 0.5303030014038086,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3107601610546545,
		[],
		null
	]
,	[
		"t91",
		cr.plugins_.Text,
		false,
		[],
		0,
		1,
		null,
		null,
		[
		],
		false,
		false,
		8496211467759252,
		[["lighten", "Lighten"]],
		null
	]
,	[
		"t92",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		796003128206917,
		[],
		null
	]
,	[
		"t93",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		4555217165148802,
		[],
		null
	]
,	[
		"t94",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6990810427293504,
		[],
		null
	]
,	[
		"t95",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6241118053970651,
		[],
		null
	]
,	[
		"t96",
		cr.plugins_.Sprite,
		false,
		[5830780226353838,8356102078832971],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8333691298018487,
			[
				["images/m2_boardbraininvisiblewall-sheet0.png", 94, 0, 0, 50, 50, 1, 0.5, 0.5,[],[],1]
			]
			]
		],
		[
		[
			"Pin",
			cr.behaviors.Pin,
			7828833583836622
		]
		],
		false,
		false,
		3900077879037336,
		[],
		null
	]
,	[
		"t97",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		8650379763236772,
		[],
		null
	]
,	[
		"t98",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_qabg.png", 16021, 0],
		null,
		[
		],
		false,
		false,
		3238056764895233,
		[],
		null
	]
,	[
		"t99",
		cr.plugins_.Sprite,
		false,
		[8350850510400087],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			5199134134436078,
			[
				["images/m2_qachoice-sheet0.png", 3291, 1, 1, 424, 84, 1, 0, 0,[],[],0],
				["images/m2_qachoice-sheet0.png", 3291, 1, 86, 424, 84, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8664188193326447,
		[],
		null
	]
,	[
		"t100",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			3516627653177198,
			[
				["images/m2_qaclosebtn-sheet0.png", 1807, 0, 0, 46, 47, 1, 0, 0,[],[],0],
				["images/m2_qaclosebtn-sheet1.png", 1665, 0, 0, 46, 47, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8063572611683403,
		[],
		null
	]
,	[
		"t101",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		3670140547620905,
		[],
		null
	]
,	[
		"t102",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		99262580938383,
		[],
		null
	]
,	[
		"t103",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		9605091127287238,
		[],
		null
	]
,	[
		"t104",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m2_blurbg.png", 93, 4],
		null,
		[
		],
		false,
		false,
		9201291854282599,
		[],
		null
	]
,	[
		"t105",
		cr.plugins_.TiledBg,
		false,
		[],
		1,
		0,
		["images/m2_solidwall.png", 93, 1],
		null,
		[
		[
			"Solid",
			cr.behaviors.solid,
			6455518879418873
		]
		],
		false,
		false,
		7736427469645881,
		[],
		null
	]
,	[
		"t106",
		cr.plugins_.TiledBg,
		false,
		[189533411786926],
		0,
		0,
		["images/m2_boardhudpercentbg.png", 1773, 0],
		null,
		[
		],
		false,
		false,
		8238994230665835,
		[],
		null
	]
,	[
		"t107",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6616399446520726,
		[],
		null
	]
,	[
		"t108",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			6731231733532544,
			[
				["images/m2_leveloverbg-sheet0.png", 338847, 1, 1, 720, 261, 1, 0.5, 0.5019156932830811,[],[],0],
				["images/m2_leveloverbg-sheet0.png", 338847, 1, 263, 720, 261, 1, 0.5, 0.5019156932830811,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		6623231209513399,
		[],
		null
	]
,	[
		"t109",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			37276885062061,
			[
				["images/m2_leveloverpercentbg-sheet0.png", 7673, 0, 0, 144, 144, 1, 0, 0,[],[],0],
				["images/m2_leveloverpercentbg-sheet1.png", 7595, 0, 0, 144, 144, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1604314028092272,
		[],
		null
	]
,	[
		"t110",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			4173398790562989,
			[
				["images/m2_leveloverreplaybtn-sheet0.png", 10316, 1, 1, 195, 66, 1, 0, 0,[],[],0],
				["images/m2_leveloverreplaybtn-sheet0.png", 10316, 1, 68, 195, 66, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		520157307342735,
		[],
		null
	]
,	[
		"t111",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5754921962397834,
			[
				["images/m2_levelovertomissionbtn-sheet0.png", 9580, 1, 1, 195, 66, 1, 0, 0,[],[],0],
				["images/m2_levelovertomissionbtn-sheet0.png", 9580, 1, 68, 195, 66, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3784797153698781,
		[],
		null
	]
,	[
		"t112",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		4036549758461981,
		[],
		null
	]
,	[
		"t113",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		4014194764603975,
		[],
		null
	]
,	[
		"t114",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		4151849957634453,
		[],
		null
	]
,	[
		"t115",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		8748362624162442,
		[],
		null
	]
,	[
		"t116",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		4733816865271613,
		[],
		null
	]
,	[
		"t117",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		3259247817146341,
		[],
		null
	]
,	[
		"t118",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			6538976931820343,
			[
				["images/m3_playgamebtn-sheet0.png", 22065, 1, 1, 356, 92, 1, 0.5, 0.5,[],[],0],
				["images/m3_playgamebtn-sheet0.png", 22065, 1, 94, 356, 92, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		2572067443018114,
		[],
		null
	]
,	[
		"t119",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			1341007570799748,
			[
				["images/m3_meals-sheet0.png", 1227190, 1, 1, 500, 500, 1, 0.5, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1053, 1, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1053, 314, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 502, 402, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1018, 627, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1, 715, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 517, 940, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1033, 940, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1, 1028, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 517, 1253, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1033, 1253, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1, 1341, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 517, 1566, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 502, 1, 550, 400, 1, 0.5, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1033, 1566, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet0.png", 1227190, 1, 1654, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1, 1, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 517, 1, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1033, 1, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1, 314, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 517, 314, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1033, 314, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1, 627, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 517, 627, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1033, 627, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1, 940, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 517, 940, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1033, 940, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1, 1253, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 517, 1253, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1033, 1253, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0],
				["images/m3_meals-sheet1.png", 900827, 1, 1566, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0]
			]
			]
		],
		[
		[
			"DestroyOutsideLayout",
			cr.behaviors.destroy,
			8319924486757384
		]
		],
		false,
		false,
		5206190754274801,
		[],
		null
	]
,	[
		"t120",
		cr.plugins_.Text,
		false,
		[376943506193154],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		1649342194070452,
		[],
		null
	]
,	[
		"t121",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		5705306246308695,
		[],
		null
	]
,	[
		"t122",
		cr.plugins_.Text,
		false,
		[9321041722885533],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		1912203574699671,
		[],
		null
	]
,	[
		"t123",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		9393865656286489,
		[],
		null
	]
,	[
		"t124",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			4266103775209237,
			[
				["images/m3_mainbg-sheet0.png", 93862, 0, 0, 1280, 800, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		3430954758262741,
		[],
		null
	]
,	[
		"t125",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8846012727956043,
			[
				["images/m3_ingridientsbase-sheet0.png", 2830, 0, 0, 107, 107, 1, 0, 0,[["Imagepoint 1", 0.514018714427948, 0.5233644843101502],["Imagepoint 2", 1.140186905860901, 0.2429906576871872]],[0.07476639747619629,0.07476639747619629,0.5140190124511719,0.01869159936904907,0.9345790147781372,0.0934578999876976,0.9813079833984375,0.5140190124511719,0.9065420031547546,0.9158880114555359,0.5140190124511719,0.9813079833984375,0.102803997695446,0.9345790147781372,0.01869159936904907,0.5140190124511719],0]
			]
			]
		],
		[
		],
		false,
		false,
		7555285281642797,
		[],
		null
	]
,	[
		"t126",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			157349079248811,
			[
				["images/meapiclbg-sheet0.png", 1714, 0, 0, 515, 312, 1, 0.5009709000587463, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9429352505462498,
		[],
		null
	]
,	[
		"t127",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1392351601318391,
			[
				["images/m3_gotomealscreenbtn-sheet0.png", 11985, 1, 1, 442, 130, 1, 0.5, 0.5,[],[],0],
				["images/m3_gotomealscreenbtn-sheet0.png", 11985, 1, 132, 442, 130, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1305630210009639,
		[],
		null
	]
,	[
		"t128",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		8845950602836147,
		[],
		null
	]
,	[
		"t129",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m3_bg_1.png", 50185, 0],
		null,
		[
		],
		false,
		false,
		1785625316128653,
		[],
		null
	]
,	[
		"t130",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m3_fg_1.png", 9156, 0],
		null,
		[
		],
		false,
		false,
		2691093399257957,
		[],
		null
	]
,	[
		"t131",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"running",
			12,
			true,
			1,
			0,
			false,
			8964562882854033,
			[
				["images/m3_player-sheet1.png", 54387, 98, 332, 106, 151, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.3773589730262756,-0.07946997880935669,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0],
				["images/m3_player-sheet0.png", 50273, 196, 330, 109, 152, 1, 0.5045871734619141, 1,[],[-0.268738180398941,-0.8344370126724243,-0.004587173461914063,-0.9801324009895325,0.4293748140335083,-0.9668874144554138,0.4010728001594544,-0.4966890215873718,0.3727717995643616,-0.07946997880935669,-0.4668513834476471,-0.02648997306823731,-0.03288918733596802,-0.503311038017273],0],
				["images/m3_player-sheet1.png", 54387, 413, 174, 98, 159, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.3773589730262756,-0.07946997880935669,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0],
				["images/m3_player-sheet0.png", 50273, 1, 349, 88, 147, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.1614500284194946,-0.02504801750183106,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0],
				["images/m3_player-sheet2.png", 19551, 179, 1, 89, 128, 1, 0.5056179761886597, 1,[],[-0.2697689831256867,-0.8344370126724243,-0.005617976188659668,-0.9801324009895325,0.4283440113067627,-0.9668874144554138,0.4000419974327087,-0.4966890215873718,0.01219004392623901,-0.007812023162841797,-0.4678821861743927,-0.02648997306823731,-0.03391999006271362,-0.503311038017273],0],
				["images/m3_player-sheet1.png", 54387, 98, 174, 104, 157, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.1369739770889282,-0.03184700012207031,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0],
				["images/m3_player-sheet0.png", 50273, 322, 1, 110, 153, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.3137220144271851,-0.03371900320053101,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0],
				["images/m3_player-sheet0.png", 50273, 100, 1, 110, 154, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.350085973739624,-0.05349600315093994,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0],
				["images/m3_player-sheet1.png", 54387, 205, 332, 100, 159, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.3373590111732483,-0.05431300401687622,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0],
				["images/m3_player-sheet1.png", 54387, 405, 334, 88, 147, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.1614500284194946,-0.02040797472000122,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0],
				["images/m3_player-sheet2.png", 19551, 269, 1, 89, 128, 1, 0.5056179761886597, 1,[],[-0.2697689831256867,-0.8344370126724243,-0.005617976188659668,-0.9801324009895325,0.4283440113067627,-0.9668874144554138,0.4000419974327087,-0.4966890215873718,0.03466200828552246,-0.007812023162841797,-0.4678821861743927,-0.02648997306823731,-0.03391999006271362,-0.503311038017273],0],
				["images/m3_player-sheet1.png", 54387, 203, 174, 104, 157, 1, 0.5, 1,[],[-0.264151006937027,-0.8344370126724243,0,-0.9801324009895325,0.4339619874954224,-0.9668874144554138,0.4056599736213684,-0.4966890215873718,0.1754350066184998,-0.04125398397445679,-0.462264209985733,-0.02648997306823731,-0.02830201387405396,-0.503311038017273],0]
			]
			]
,			[
			"jumping",
			5,
			false,
			1,
			0,
			false,
			3430698776104139,
			[
				["images/m3_player-sheet1.png", 54387, 306, 332, 98, 159, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet1.png", 54387, 1, 347, 88, 147, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet2.png", 19551, 359, 1, 89, 128, 1, 0.5056179761886597, 1,[],[],0],
				["images/m3_player-sheet2.png", 19551, 179, 130, 89, 128, 1, 0.5056179761886597, 1,[],[],0],
				["images/m3_player-sheet1.png", 54387, 308, 174, 104, 157, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 322, 155, 110, 153, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 100, 156, 110, 153, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 211, 1, 110, 154, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet2.png", 19551, 1, 1, 88, 147, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet2.png", 19551, 90, 1, 88, 147, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet2.png", 19551, 269, 130, 89, 128, 1, 0.5056179761886597, 1,[],[],0]
			]
			]
,			[
			"idle",
			5,
			false,
			1,
			0,
			false,
			2836619503094363,
			[
				["images/m3_player-sheet1.png", 54387, 1, 1, 96, 172, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet1.png", 54387, 98, 1, 96, 172, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet1.png", 54387, 195, 1, 96, 172, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet1.png", 54387, 292, 1, 96, 172, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 309, 309, 97, 172, 1, 0.5051546096801758, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 211, 156, 97, 173, 1, 0.5051546096801758, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 1, 175, 97, 173, 1, 0.5051546096801758, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 1, 1, 98, 173, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 99, 310, 96, 173, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet1.png", 54387, 389, 1, 96, 172, 1, 0.5, 1,[],[],0],
				["images/m3_player-sheet0.png", 50273, 407, 309, 97, 172, 1, 0.5051546096801758, 1,[],[],0],
				["images/m3_player-sheet1.png", 54387, 1, 174, 96, 172, 1, 0.5, 1,[],[],0]
			]
			]
		],
		[
		[
			"Pin",
			cr.behaviors.Pin,
			9071152926608689
		]
		],
		false,
		false,
		8659479051382071,
		[],
		null
	]
,	[
		"t132",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			2505048708356199,
			[
				["images/m3_rack1-sheet0.png", 555141, 1, 1, 610, 633, 1, 0, 0,[],[],0],
				["images/m3_rack1-sheet0.png", 555141, 612, 1, 610, 633, 1, 0, 0,[],[],0],
				["images/m3_rack1-sheet0.png", 555141, 1223, 1, 610, 633, 1, 0, 0,[],[],0],
				["images/m3_rack1-sheet0.png", 555141, 1, 635, 610, 633, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		[
			"DestroyOutsideLayout",
			cr.behaviors.destroy,
			8980092645643415
		]
		],
		false,
		false,
		445135384789388,
		[],
		null
	]
,	[
		"t133",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			6879548799736367,
			[
				["images/m3_rack2-sheet0.png", 756487, 1, 1, 610, 633, 1, 0, 0,[],[0.08196719735860825,0.07898890227079392,0.757377028465271,0.2338069975376129,0.9901639819145203,0.499210000038147,0.9852460026741028,0.9857820272445679,0.01311479974538088,0.9873620271682739,0.006557379849255085,0.499210000038147],0],
				["images/m3_rack2-sheet0.png", 756487, 612, 1, 610, 633, 1, 0, 0,[],[],0],
				["images/m3_rack2-sheet0.png", 756487, 1223, 1, 610, 633, 1, 0, 0,[],[],0],
				["images/m3_rack2-sheet0.png", 756487, 1, 635, 610, 633, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		[
			"DestroyOutsideLayout",
			cr.behaviors.destroy,
			4384426578352656
		]
		],
		false,
		false,
		2227360393682677,
		[],
		null
	]
,	[
		"t134",
		cr.plugins_.Text,
		false,
		[446167001821517,2199631034118891],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		9205903815129617,
		[],
		null
	]
,	[
		"t135",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		7804231568683551,
		[],
		null
	]
,	[
		"t136",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		323901808794894,
		[],
		null
	]
,	[
		"t137",
		cr.plugins_.TiledBg,
		false,
		[],
		1,
		0,
		["images/m3_floorhidden.png", 164, 0],
		null,
		[
		[
			"Solid",
			cr.behaviors.solid,
			838370011337787
		]
		],
		false,
		false,
		8153049593833036,
		[],
		null
	]
,	[
		"t138",
		cr.plugins_.Dictionary,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		5510578435787531,
		[],
		null
	]
,	[
		"t139",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		2454665437984775,
		[],
		null
	]
,	[
		"t140",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		6640547851978092,
		[],
		null
	]
,	[
		"t141",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			133751573487139,
			[
				["images/m3_infobase-sheet0.png", 18121, 1, 1, 1330, 80, 1, 0, 0,[],[],0],
				["images/m3_infobase-sheet0.png", 18121, 1, 82, 1330, 80, 1, 0, 0,[],[],0],
				["images/m3_infobase-sheet0.png", 18121, 1, 163, 1330, 80, 1, 0, 0,[],[],0],
				["images/m3_infobase-sheet0.png", 18121, 1, 244, 1330, 80, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		515713679360054,
		[],
		null
	]
,	[
		"t142",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8431519916309934,
			[
				["images/m3_cart-sheet0.png", 544, 0, 0, 86, 69, 1, 0, 0,[],[0.01162790041416884,0.01449279952794313,0.5,0.1594199985265732,0.8720930218696594,0.1594199985265732,0.8720930218696594,0.4927540123462677,0.7906979918479919,0.7391300201416016,0.2209299951791763,0.7246379852294922],0]
			]
			]
		],
		[
		],
		false,
		false,
		8690761828833905,
		[],
		null
	]
,	[
		"t143",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			1205671021613137,
			[
				["images/m3_ingridcntrblock-sheet0.png", 2976, 1, 1, 66, 66, 1, 0, 0,[["Imagepoint 1", 1.560606002807617, 0.4848484992980957]],[],0],
				["images/m3_ingridcntrblock-sheet0.png", 2976, 68, 1, 66, 66, 1, 0, 0,[["Imagepoint 1", 1.560606002807617, 0.4848484992980957]],[],0],
				["images/m3_ingridcntrblock-sheet0.png", 2976, 135, 1, 66, 66, 1, 0, 0,[["Imagepoint 1", 1.560606002807617, 0.4848484992980957]],[],0],
				["images/m3_ingridcntrblock-sheet0.png", 2976, 1, 68, 66, 66, 1, 0, 0,[["Imagepoint 1", 1.560606002807617, 0.4848484992980957]],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8644581847111683,
		[],
		null
	]
,	[
		"t144",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			4722755708891558,
			[
				["images/m3_ingridients-sheet0.png", 139536, 1, 1, 256, 256, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 258, 198, 88, 90, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 432, 278, 72, 102, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 350, 102, 96, 90, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 101, 345, 89, 80, 1, 0.5056179761886597, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 74, 69, 69, 89, 1, 0.5072463750839233, 0.5056179761886597,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 333, 80, 102, 60, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 332, 203, 55, 93, 1, 0.5090909004211426, 0.5053763389587402,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 274, 446, 99, 64, 1, 0.5050504803657532, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 350, 193, 101, 84, 1, 0.5049505233764648, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 471, 271, 39, 90, 1, 0.5128205418586731, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 1, 419, 91, 78, 1, 0.5054945349693298, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 333, 1, 87, 71, 1, 0.5057471394538879, 0.5070422291755676,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 1, 293, 94, 50, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 202, 202, 74, 74, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 452, 104, 57, 97, 1, 0.5087719559669495, 0.5051546096801758,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 447, 1, 62, 102, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 74, 1, 102, 67, 1, 0.5, 0.5074626803398132,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 332, 297, 39, 90, 1, 0.5128205418586731, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 277, 202, 54, 95, 1, 0.5, 0.5052631497383118,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 374, 456, 101, 53, 1, 0.5049505233764648, 0.5094339847564697,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 144, 84, 94, 64, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 347, 278, 84, 93, 1, 0.5, 0.5053763389587402,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 374, 381, 96, 74, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 1, 345, 99, 73, 1, 0.5050504803657532, 0.5068492889404297,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 177, 1, 82, 82, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 197, 298, 101, 42, 1, 0.5049505233764648, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 1, 195, 53, 97, 1, 0.5094339847564697, 0.5051546096801758,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 59, 159, 54, 102, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 436, 80, 68, 87, 1, 0.5, 0.5057471394538879,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 1, 258, 98, 82, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 352, 1, 90, 100, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 192, 289, 81, 96, 1, 0.5061728358268738, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 239, 141, 98, 60, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 114, 247, 82, 62, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 388, 271, 82, 62, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 191, 386, 82, 84, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 1, 1, 72, 95, 1, 0.5, 0.5052631497383118,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 258, 100, 91, 97, 1, 0.5054945349693298, 0.5051546096801758,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 100, 258, 91, 86, 1, 0.5054945349693298, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 430, 168, 54, 102, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 338, 141, 91, 61, 1, 0.5054945349693298, 0.5081967115402222,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 93, 426, 95, 74, 1, 0.5052631497383118, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 1, 97, 57, 97, 1, 0.5087719559669495, 0.5051546096801758,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 421, 1, 79, 78, 1, 0.5063291192054749, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 452, 202, 58, 65, 1, 0.5, 0.5076923370361328,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 144, 149, 57, 97, 1, 0.5087719559669495, 0.5051546096801758,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 274, 372, 99, 73, 1, 0.5050504803657532, 0.5068492889404297,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet1.png", 114007, 260, 1, 72, 90, 1, 0.5, 0.5,[["Imagepoint 1", 0, 0]],[],0],
				["images/m3_ingridients-sheet0.png", 139536, 258, 1, 93, 98, 1, 0.5053763389587402, 0.5,[["Imagepoint 1", 0, 0]],[],0]
			]
			]
		],
		[
		[
			"DestroyOutsideLayout",
			cr.behaviors.destroy,
			5179862448155024
		]
		],
		false,
		false,
		6456969444565883,
		[],
		null
	]
,	[
		"t145",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3773361597626411,
			[
				["images/m3_healthbar-sheet0.png", 845, 0, 0, 406, 56, 1, 0, 0,[],[0.01231530029326677,0.08928570151329041,0.5,0.01785710081458092,0.9876850247383118,0.08928570151329041,0.9137930274009705,0.5178570151329041,0.08620689809322357,0.5178570151329041],0]
			]
			]
		],
		[
		],
		false,
		false,
		6728709727119384,
		[],
		null
	]
,	[
		"t146",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		7433736833135437,
		[],
		null
	]
,	[
		"t147",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			9709455821630912,
			[
				["images/m3_healthbargreentile-sheet0.png", 121, 0, 0, 10, 8, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		8763940189592147,
		[],
		null
	]
,	[
		"t148",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		8034670651920998,
		[],
		null
	]
,	[
		"t149",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3882833076065009,
			[
				["images/m3_timerbox-sheet0.png", 572, 0, 0, 198, 67, 1, 0.5, 0.5074626803398132,[],[-0.4797979891300201,-0.4477611780166626,0,-0.5074626803398132,0.4797980189323425,-0.4477611780166626,0.5,-0.01492568850517273,0.4797980189323425,0.4328353404998779,0,0.4925373196601868,-0.4797979891300201,0.4328353404998779,-0.5,-0.01492568850517273],0]
			]
			]
		],
		[
		],
		false,
		false,
		8256847851996958,
		[],
		null
	]
,	[
		"t150",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			25,
			false,
			1,
			0,
			false,
			9344865700678532,
			[
				["images/m3_countdownanim-sheet1.png", 117713, 302, 302, 250, 250, 1, 0, 0,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1, 1, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 302, 1, 300, 300, 1, 0.503333330154419, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 603, 1, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 904, 1, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1205, 1, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1506, 1, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1, 302, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 302, 302, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 603, 302, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 904, 302, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1205, 302, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1506, 302, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1, 603, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 302, 603, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 603, 603, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 904, 603, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1205, 603, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1506, 603, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1, 904, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 302, 904, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 603, 904, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 904, 904, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1205, 904, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1506, 904, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1, 1205, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 302, 1205, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 603, 1205, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 904, 1205, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1205, 1205, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1506, 1205, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1, 1506, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 302, 1506, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 603, 1506, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 904, 1506, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1205, 1506, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet0.png", 553568, 1506, 1506, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet1.png", 117713, 1, 1, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet1.png", 117713, 302, 1, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet1.png", 117713, 603, 1, 300, 300, 1, 0.5, 0.5,[],[],0],
				["images/m3_countdownanim-sheet1.png", 117713, 1, 302, 300, 300, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8148478710154816,
		[],
		null
	]
,	[
		"t151",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		2407984318514986,
		[],
		null
	]
,	[
		"t152",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			9327139690600831,
			[
				["images/m3_levelresultscreen-sheet0.png", 93375, 0, 0, 1296, 813, 1, 0, 0,[["replayBtnImgPoint", 0.3919753134250641, 0.7908979058265686],["ingriedientImgPoint", 0.5555555820465088, 0.3259532451629639],["youScoredTxt", 0.145061731338501, 0.6334563493728638],["leveStatusMsg", 0.04475308582186699, 0.1045510470867157],["scoreCircle", 0.2716049253940582, 0.8450184464454651],["mealPic", 0.270061731338501, 0.4637146294116974]],[],0]
			]
			]
		],
		[
		[
			"Anchor",
			cr.behaviors.Anchor,
			8153652112310875
		]
		],
		false,
		false,
		1001527531093718,
		[],
		null
	]
,	[
		"t153",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			5756771796431446,
			[
				["images/m3_nextlevelbtn-sheet0.png", 17222, 1, 1, 357, 94, 1, 0, 0,[],[],0],
				["images/m3_nextlevelbtn-sheet0.png", 17222, 1, 96, 357, 94, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		819925419760654,
		[],
		null
	]
,	[
		"t154",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			7361533767754809,
			[
				["images/m3_replaylevelbtn-sheet0.png", 23554, 1, 1, 358, 100, 1, 0, 0,[],[],0],
				["images/m3_replaylevelbtn-sheet0.png", 23554, 1, 102, 358, 100, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		2395157687635965,
		[],
		null
	]
,	[
		"t155",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			427434355286158,
			[
				["images/m3_cross-sheet0.png", 2919, 0, 0, 56, 59, 1, 0, 0,[],[0.1607140004634857,0.152541995048523,0.5,0.2033900022506714,0.8035709857940674,0.1864410042762756,0.6785709857940674,0.4915249943733215,0.7857139706611633,0.7966099977493286,0.5,0.7966099977493286,0.1964289993047714,0.8135589957237244,0.2321429997682571,0.4915249943733215],0]
			]
			]
		],
		[
		],
		false,
		false,
		4274177152405178,
		[],
		null
	]
,	[
		"t156",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			4355998761138135,
			[
				["images/m3_tick-sheet0.png", 2454, 0, 0, 64, 55, 1, 0, 0,[],[0.390625,0.4545449912548065,0.5,0.2909089922904968,0.828125,0.2000000029802322,0.703125,0.4909090101718903,0.5,0.6909090280532837,0.1875,0.7818179726600647,0.125,0.4909090101718903],0]
			]
			]
		],
		[
		],
		false,
		false,
		7441818334409381,
		[],
		null
	]
,	[
		"t157",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5457758629594866,
			[
				["images/m3_greencircle-sheet0.png", 8120, 0, 0, 158, 157, 1, 0.5, 0.5031847357749939,[],[-0.348101019859314,-0.3503187298774719,0,-0.4904458224773407,0.3354430198669434,-0.3375797271728516,0.462024986743927,-0.006369739770889282,0.3227850198745728,0.3184712529182434,0,0.4649682641029358,-0.3354430198669434,0.3312102556228638,-0.4873417913913727,-0.006369739770889282],0]
			]
			]
		],
		[
		],
		false,
		false,
		6310836761260677,
		[],
		null
	]
,	[
		"t158",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7577341549719394,
			[
				["images/m3_redcircle-sheet0.png", 8055, 0, 0, 158, 157, 1, 0.5, 0.5031847357749939,[],[-0.348101019859314,-0.3503187298774719,0,-0.4904458224773407,0.3354430198669434,-0.3375797271728516,0.462024986743927,-0.006369739770889282,0.3227850198745728,0.3184712529182434,0,0.4649682641029358,-0.3354430198669434,0.3312102556228638,-0.4873417913913727,-0.006369739770889282],0]
			]
			]
		],
		[
		],
		false,
		false,
		2348587181679187,
		[],
		null
	]
,	[
		"t159",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		7167428980756676,
		[],
		null
	]
,	[
		"t160",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		8339685229949082,
		[],
		null
	]
,	[
		"t161",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6501672883533297,
		[],
		null
	]
,	[
		"t162",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m3_bg_2.png", 59945, 0],
		null,
		[
		],
		false,
		false,
		9000823597744095,
		[],
		null
	]
,	[
		"t163",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m3_bg_3.png", 53512, 1],
		null,
		[
		],
		false,
		false,
		7319456473230469,
		[],
		null
	]
,	[
		"t164",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m3_bg_4.png", 50285, 1],
		null,
		[
		],
		false,
		false,
		2915382580700885,
		[],
		null
	]
,	[
		"t165",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m3_fg_2.png", 14919, 0],
		null,
		[
		],
		false,
		false,
		8011867891576991,
		[],
		null
	]
,	[
		"t166",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m3_fg_3.png", 12919, 0],
		null,
		[
		],
		false,
		false,
		4323236018880873,
		[],
		null
	]
,	[
		"t167",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m3_fg_4.png", 9267, 0],
		null,
		[
		],
		false,
		false,
		7372847632141102,
		[],
		null
	]
,	[
		"t168",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			2998227670517876,
			[
				["images/m3_jumptiles-sheet0.png", 1007, 0, 0, 79, 79, 1, 0, 0,[],[],1],
				["images/m3_jumptiles-sheet1.png", 1069, 0, 0, 79, 79, 1, 0, 0,[],[],1],
				["images/m3_jumptiles-sheet2.png", 1090, 0, 0, 79, 79, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		[
			"Solid",
			cr.behaviors.solid,
			4886616680155585
		]
		],
		false,
		false,
		6989273527544263,
		[],
		null
	]
,	[
		"t169",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3439421904783272,
			[
				["images/m3_healthbarredtile-sheet0.png", 121, 0, 0, 10, 8, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		8417535590040345,
		[],
		null
	]
,	[
		"t170",
		cr.plugins_.Sprite,
		false,
		[3812356177701851],
		1,
		0,
		null,
		[
			[
			"granny",
			13,
			true,
			1,
			0,
			false,
			7255133753143265,
			[
				["images/m3_hurdles-sheet0.png", 135793, 1, 1, 228, 192, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 688, 1, 228, 189, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 459, 192, 228, 188, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 230, 383, 228, 187, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 459, 570, 228, 187, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 1, 194, 228, 188, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 230, 194, 228, 188, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 459, 381, 228, 188, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 688, 191, 228, 189, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 688, 381, 228, 188, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 1, 383, 228, 188, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 459, 1, 228, 190, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0],
				["images/m3_hurdles-sheet0.png", 135793, 230, 1, 228, 192, 1, 0, 1,[],[0.3859649896621704,-0.5416669845581055,0.5789470076560974,-0.9895833134651184,0.7456139922142029,-0.9583333134651184,1,-0.4479169845581055,0.9605259895324707,-0.015625,0.5219299793243408,-0.02604198455810547,0.06578949838876724,-0.05208301544189453,0,-0.375],0]
			]
			]
,			[
			"h1",
			0,
			false,
			1,
			0,
			false,
			1056076514778375,
			[
				["images/m3_hurdles-sheet0.png", 135793, 821, 570, 125, 125, 1, 0, 1,[],[],0]
			]
			]
,			[
			"h2",
			0,
			false,
			1,
			0,
			false,
			7444808719132976,
			[
				["images/m3_hurdles-sheet0.png", 135793, 917, 1, 82, 82, 1, 0, 1,[],[],0]
			]
			]
,			[
			"h3",
			0,
			false,
			1,
			0,
			false,
			7074511670266411,
			[
				["images/m3_hurdles-sheet0.png", 135793, 230, 571, 125, 125, 1, 0, 1,[],[],0]
			]
			]
,			[
			"man",
			0,
			false,
			1,
			0,
			false,
			2264637840911452,
			[
				["images/m3_hurdles-sheet0.png", 135793, 688, 570, 132, 199, 1, 0, 1,[],[0.007575760129839182,-0.6834169626235962,0.5,-0.9648240804672241,0.6893939971923828,-0.9145727753639221,0.9848480224609375,-0.412060022354126,0.7803030014038086,-0.1457290053367615,0.5,0,0.07575760036706924,-0.05025100708007813,0.05303030088543892,-0.5025129914283752],0]
			]
			]
,			[
			"water",
			0,
			false,
			1,
			0,
			false,
			9084409627860596,
			[
				["images/m3_hurdles-sheet0.png", 135793, 1, 572, 204, 56, 1, 0, 1,[],[0.07352939993143082,-0.7321430444717407,0.2843140065670013,-1,0.9362750053405762,-0.7678570151329041,0.9803919792175293,-0.5,0.8921570181846619,-0.3928570151329041,0.5,-0.25,0.08333329856395721,-0.3035709857940674,0.004901960026472807,-0.5],0]
			]
			]
		],
		[
		[
			"Solid",
			cr.behaviors.solid,
			1056427099119205
		]
		],
		false,
		false,
		7980064197345178,
		[],
		null
	]
,	[
		"t171",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"apple",
			5,
			true,
			1,
			0,
			false,
			9759752986752015,
			[
				["images/m3_powerups-sheet0.png", 87089, 1, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 102, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 203, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 304, 1, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 405, 1, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
,			[
			"broccoli",
			5,
			true,
			1,
			0,
			false,
			4044666499464559,
			[
				["images/m3_powerups-sheet0.png", 87089, 1, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 102, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 203, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 304, 102, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 405, 102, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
,			[
			"orange",
			5,
			false,
			1,
			0,
			false,
			4123897918509735,
			[
				["images/m3_powerups-sheet0.png", 87089, 1, 203, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 102, 203, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 203, 203, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 304, 203, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 405, 203, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
,			[
			"tomato",
			5,
			false,
			1,
			0,
			false,
			9783770590222426,
			[
				["images/m3_powerups-sheet0.png", 87089, 1, 304, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 102, 304, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 203, 304, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 304, 304, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 405, 304, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
,			[
			"waterbottle",
			5,
			false,
			1,
			0,
			false,
			6374010631641734,
			[
				["images/m3_powerups-sheet0.png", 87089, 1, 405, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 102, 405, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 203, 405, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 304, 405, 100, 100, 1, 0.5, 0.5,[],[],0],
				["images/m3_powerups-sheet0.png", 87089, 405, 405, 100, 100, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1642306493210634,
		[],
		null
	]
,	[
		"t172",
		cr.plugins_.Sprite,
		false,
		[],
		3,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7876495411531269,
			[
				["images/m3_playerbox-sheet0.png", 858, 0, 0, 75, 151, 1, 0.5066666603088379, 1,[],[],0]
			]
			]
		],
		[
		[
			"Platform",
			cr.behaviors.Platform,
			2449250086042215
		]
,		[
			"Bullet",
			cr.behaviors.Bullet,
			6570014576256681
		]
,		[
			"CustomMovement",
			cr.behaviors.custom,
			3370236792809514
		]
		],
		false,
		false,
		9708002116965228,
		[],
		null
	]
,	[
		"t173",
		cr.plugins_.Sprite,
		false,
		[],
		2,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7794317338145814,
			[
				["images/m3_centralscroll-sheet0.png", 153, 0, 0, 25, 25, 1, 0.5199999809265137, 0.5199999809265137,[],[],0]
			]
			]
		],
		[
		[
			"Pin",
			cr.behaviors.Pin,
			7432668750346707
		]
,		[
			"ScrollTo",
			cr.behaviors.scrollto,
			8052289506741084
		]
		],
		false,
		false,
		5580274429993673,
		[],
		null
	]
,	[
		"t174",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3641073258652619,
			[
				["images/m3_scoreboard-sheet0.png", 665, 0, 0, 181, 72, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8861125104064393,
		[],
		null
	]
,	[
		"t175",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		1599223004956725,
		[],
		null
	]
,	[
		"t176",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			6274824868885363,
			[
				["images/m3_wincomicstrips-sheet0.png", 855514, 1, 1, 1280, 800, 1, 0, 0,[],[],0],
				["images/m3_wincomicstrips-sheet0.png", 855514, 1, 802, 1280, 800, 1, 0, 0,[],[],0],
				["images/m3_wincomicstrips-sheet1.png", 1317175, 1, 1, 1280, 800, 1, 0, 0,[],[],0],
				["images/m3_wincomicstrips-sheet1.png", 1317175, 1, 802, 1280, 800, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			1592885818143678
		]
		],
		false,
		false,
		1339378473709291,
		[],
		null
	]
,	[
		"t177",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8843832571144865,
			[
				["images/m3_loosecomicstrip-sheet0.png", 761865, 1, 1, 1280, 800, 1, 0, 0,[],[],0],
				["images/m3_loosecomicstrip-sheet0.png", 761865, 1, 802, 1280, 800, 1, 0, 0,[],[],0],
				["images/m3_loosecomicstrip-sheet1.png", 621021, 0, 0, 1280, 800, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			7152947714204385
		]
		],
		false,
		false,
		7266023370886597,
		[],
		null
	]
,	[
		"t178",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			117074383141908,
			[
				["images/m3_gameoverlostscreen-sheet0.png", 110369, 0, 0, 1026, 684, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		1516553930395806,
		[],
		null
	]
,	[
		"t179",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			2052280414599714,
			[
				["images/m3_gameoverwonscreen-sheet0.png", 113395, 0, 0, 1026, 684, 1, 0, 0,[],[0.07894740253686905,0.1184210032224655,0.9210529923439026,0.1184210032224655,0.9892789721488953,0.5,0.9824560284614563,0.9736840128898621,0.01559450011700392,0.9766079783439636,0.006822609808295965,0.5],0]
			]
			]
		],
		[
		],
		false,
		false,
		1859949628042345,
		[],
		null
	]
,	[
		"t180",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			6981729188831241,
			[
				["images/m3_replaygamebtn-sheet0.png", 15533, 0, 0, 329, 77, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9512233796381166,
		[],
		null
	]
,	[
		"t181",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			5900079670275745,
			[
				["images/m3_nextbtn-sheet0.png", 14499, 1, 1, 329, 77, 1, 0, 0,[],[],0],
				["images/m3_nextbtn-sheet0.png", 14499, 1, 79, 329, 77, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		4663235657325858,
		[],
		null
	]
,	[
		"t182",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			866837207927553,
			[
				["images/m3_targetscorehud-sheet0.png", 674, 0, 0, 181, 72, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		7458814501855363,
		[],
		null
	]
,	[
		"t183",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		8229038234414274,
		[],
		null
	]
,	[
		"t184",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6382945284047644,
		[],
		null
	]
,	[
		"t185",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		2749302824307438,
		[],
		null
	]
,	[
		"t186",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		2356527070198521,
		[],
		null
	]
,	[
		"t187",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1612657795959219,
			[
				["images/m4_tankbase-sheet0.png", 6504, 0, 0, 101, 218, 1, 0.4950495064258575, 0.2293577939271927,[["turret", 0.5247524976730347, 0.169724777340889],["handle_1", 0.1584158390760422, 0.197247713804245],["handle_0", 0.8613861203193665, 0.1513761430978775]],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9280860901091143,
		[],
		null
	]
,	[
		"t188",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			1713785566948149,
			[
				["images/m4_tankturret-sheet0.png", 831, 0, 0, 60, 75, 1, 0.2333333343267441, 0.5199999809265137,[["turret", 1.416666626930237, 0.4666666686534882],["handle_0", 0.3499999940395355, 0.4000000059604645],["handle_1", 0.3833333253860474, 0.6266666650772095]],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8595472670820938,
		[],
		null
	]
,	[
		"t189",
		cr.plugins_.Sprite,
		false,
		[],
		2,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7651943107165503,
			[
				["images/m4_l1medicine-sheet0.png", 5239, 0, 0, 71, 160, 1, 0.5070422291755676, 0.5,[],[-0.1830982267856598,-0.4749999940395355,0.09859174489974976,-0.4749999940395355,0.3521127700805664,-0.362500011920929,0.3521127700805664,0.3187500238418579,0.1830987930297852,0.4312499761581421,-0.197183221578598,0.4374999403953552,-0.3802812099456787,0.331250011920929,-0.3943662345409393,-0.3499999940395355],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			2273028488921863
		]
,		[
			"DestroyOutsideLayout",
			cr.behaviors.destroy,
			7694824619566092
		]
		],
		false,
		false,
		7110047047826118,
		[],
		null
	]
,	[
		"t190",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m4_l1bg.png", 149202, 1],
		null,
		[
		],
		false,
		false,
		1008158498226293,
		[],
		null
	]
,	[
		"t191",
		cr.plugins_.Sprite,
		false,
		[],
		3,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			7865153492305557,
			[
				["images/m4_l1robloaded-sheet0.png", 8919, 0, 0, 90, 97, 1, 0.4555555582046509, 0.5463917255401611,[],[0.5444444417953491,-0.5463917255401611,0.5444444417953491,0.4536082744598389,-0.4555555582046509,0.4536082744598389,-0.4555555582046509,-0.5463917255401611],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			406609526086033
		]
,		[
			"DestroyOutsideLayout",
			cr.behaviors.destroy,
			4156455878999111
		]
,		[
			"Pin",
			cr.behaviors.Pin,
			8084990418352824
		]
		],
		false,
		false,
		1726020273981855,
		[],
		null
	]
,	[
		"t192",
		cr.plugins_.Sprite,
		false,
		[1285721734990049,8244595066396854],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3389090071542345,
			[
				["images/m4_l1wood-sheet0.png", 2489, 0, 0, 45, 347, 1, 0.5111111402511597, 0.5129683017730713,[["rightImagePoint", 0.4888888895511627, 0.09510086476802826],["leftImagePoint", 0.5111111402511597, 0.910662829875946]],[-0.3111111521720886,-0.4870316982269287,0.2888888716697693,-0.4870316982269287,0.2888888716697693,0.4610946774482727,-0.3111111521720886,0.4610946774482727],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			5990638117344155
		]
		],
		false,
		false,
		2465798472578892,
		[],
		null
	]
,	[
		"t193",
		cr.plugins_.TiledBg,
		false,
		[],
		1,
		0,
		["images/m4_l1fg.png", 87641, 0],
		null,
		[
		[
			"Physics",
			cr.behaviors.Physics,
			8161612598588955
		]
		],
		false,
		false,
		8488716505203969,
		[],
		null
	]
,	[
		"t194",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			12,
			false,
			1,
			0,
			false,
			6911560541582313,
			[
				["images/m4_l1robexplode-sheet2.png", 1182, 202, 1, 110, 136, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet0.png", 8916, 1, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet0.png", 8916, 202, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet0.png", 8916, 1, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet0.png", 8916, 202, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet1.png", 8444, 1, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet1.png", 8444, 202, 1, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet1.png", 8444, 1, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet1.png", 8444, 202, 202, 200, 200, 1, 0.5, 0.5,[],[],0],
				["images/m4_l1robexplode-sheet2.png", 1182, 1, 1, 200, 200, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9990075060022827,
		[],
		null
	]
,	[
		"t195",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1733719412155084,
			[
				["images/m4_l1levellbl-sheet0.png", 7408, 0, 0, 135, 55, 1, 0, 0,[],[0.05925929918885231,0.145455002784729,0.5185189843177795,0.145455002784729,0.8592590093612671,0.4363639950752258,0.9333329796791077,0.5454549789428711,0.9111109972000122,0.7818179726600647,0.5185189843177795,0.854544997215271,0.08888889849185944,0.8727269768714905,0.05925929918885231,0.5454549789428711],0]
			]
			]
		],
		[
		],
		false,
		false,
		8941320537327081,
		[],
		null
	]
,	[
		"t196",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5349096227912361,
			[
				["images/m4_l1robgeneratorbtn-sheet0.png", 32479, 1, 1, 385, 90, 1, -0.01558441575616598, -0.06666667014360428,[],[],0],
				["images/m4_l1robgeneratorbtn-sheet0.png", 32479, 1, 92, 385, 90, 1, -0.01558441575616598, -0.02222222276031971,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		4486478597617597,
		[],
		null
	]
,	[
		"t197",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			2570969156941534,
			[
				["images/m4_l1audiobtn-sheet0.png", 4698, 0, 0, 113, 82, 1, 0, 0,[],[],0],
				["images/m4_l1audiobtn-sheet1.png", 4735, 0, 0, 113, 82, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3546897070481867,
		[],
		null
	]
,	[
		"t198",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8538102010307854,
			[
				["images/m4_scorelabelbg-sheet0.png", 6475, 0, 0, 203, 131, 1, 0.004926108289510012, 0.007633587811142206,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		5757890062715871,
		[],
		null
	]
,	[
		"t199",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		5448019377053328,
		[],
		null
	]
,	[
		"t200",
		cr.plugins_.TiledBg,
		false,
		[],
		0,
		0,
		["images/m4_gamefinishbg.png", 156, 1],
		null,
		[
		],
		false,
		false,
		1208468844293408,
		[],
		null
	]
,	[
		"t201",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			669489244864839,
			[
				["images/m4_levelchangebg-sheet1.png", 78319, 0, 0, 601, 636, 1, 0.5008319616317749, 0.5,[],[-0.455906867980957,-0.4575471878051758,0.001664042472839356,-0.4811320900917053,0.4575710296630859,-0.4559747874736786,0.4792010188102722,0.001572012901306152,0.4542430639266968,0.4575470089912415,0.001664042472839356,0.4795600175857544,-0.4525790512561798,0.4591190218925476,-0.4792013764381409,0.001572012901306152],0],
				["images/m4_levelchangebg-sheet0.png", 79177, 0, 0, 605, 639, 1, 0.5008264183998108, 0.5007824897766113,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8664214581364878,
		[],
		null
	]
,	[
		"t202",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5583175003960154,
			[
				["images/m4_nextlevelbtn-sheet0.png", 3089, 0, 0, 85, 100, 1, 0.5882353186607361, 0.5,[],[],0],
				["images/m4_nextlevelbtn-sheet1.png", 3085, 0, 0, 85, 96, 1, 0.4705882370471954, 0.53125,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		491371976601597,
		[],
		null
	]
,	[
		"t203",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			9356981215821271,
			[
				["images/m4_quitbtn-sheet0.png", 3532, 0, 0, 88, 89, 1, 0.5227272510528565, 0.5280898809432983,[],[],0],
				["images/m4_quitbtn-sheet1.png", 3414, 0, 0, 88, 87, 1, 0.5227272510528565, 0.4942528605461121,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		2321503375323438,
		[],
		null
	]
,	[
		"t204",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7652610877870712,
			[
				["images/m4_replaylevelbtn-sheet0.png", 4142, 0, 0, 94, 84, 1, 0.521276593208313, 0.5476190447807312,[],[],0],
				["images/m4_replaylevelbtn-sheet1.png", 3448, 0, 0, 92, 82, 1, 0.52173912525177, 0.4878048896789551,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8731010193301609,
		[],
		null
	]
,	[
		"t205",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			21331516762612,
			[
				["images/m4_ratingstar-sheet0.png", 1081, 0, 0, 93, 103, 1, 0.5268816947937012, 0.553398072719574,[],[],0],
				["images/m4_ratingstar-sheet1.png", 4002, 0, 0, 93, 103, 1, 0.5268816947937012, 0.485436886548996,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		5900028158785045,
		[],
		null
	]
,	[
		"t206",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		7146203814003643,
		[],
		null
	]
,	[
		"t207",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		1558321003515873,
		[],
		null
	]
,	[
		"t208",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		7820337866311101,
		[],
		null
	]
,	[
		"t209",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		7975797621594825,
		[],
		null
	]
,	[
		"t210",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		2687487652771958,
		[],
		null
	]
,	[
		"t211",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			2471996218266754,
			[
				["images/m4_qabg-sheet0.png", 85503, 0, 0, 661, 699, 1, 0.5007564425468445, 0.5007153153419495,[],[-0.4583963453769684,-0.4606581032276154,-0.001512438058853149,-0.4835479259490967,0.4538575410842896,-0.4577968120574951,0.4750375747680664,-0.001430302858352661,0.452344536781311,0.4549356698989868,-0.001512438058853149,0.4763947129249573,-0.4553706347942352,0.4563666582107544,-0.4826021492481232,-0.001430302858352661],0]
			]
			]
		],
		[
		],
		false,
		false,
		1812683340960083,
		[],
		null
	]
,	[
		"t212",
		cr.plugins_.Sprite,
		false,
		[9217025447349279],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			5740835046219905,
			[
				["images/m4_qachoice-sheet0.png", 1840, 0, 0, 34, 34, 1, 0.5, 0.5,[],[],0],
				["images/m4_qachoice-sheet1.png", 690, 0, 0, 34, 34, 1, 0.5, 0.529411792755127,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		8705997424170039,
		[],
		null
	]
,	[
		"t213",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		3633863173906115,
		[],
		null
	]
,	[
		"t214",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		8215193647593818,
		[],
		null
	]
,	[
		"t215",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7509627962428597,
			[
				["images/m4_qasubmitbtn-sheet0.png", 31198, 1, 1, 384, 91, 1, 0.5, 0.5054945349693298,[],[],0],
				["images/m4_qasubmitbtn-sheet0.png", 31198, 1, 93, 384, 91, 1, 0.5182291865348816, 0.5604395866394043,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3503838870704613,
		[],
		null
	]
,	[
		"t216",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		6499821918224976,
		[],
		null
	]
,	[
		"t217",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1886208221838132,
			[
				["images/m4_l1robrested-sheet0.png", 10150, 0, 0, 97, 96, 1, 0.5463917255401611, 0.5208333134651184,[],[-0.3505157232284546,-0.3229163289070129,-0.01030969619750977,-0.4791666269302368,0.2989692687988281,-0.2812502980232239,0.391752302646637,-2.980232238769531e-007,0.2680412530899048,0.2499997019767761,-0.01030969619750977,0.4270836710929871,-0.4020617306232452,0.3749997019767761,-0.4845360219478607,-2.980232238769531e-007],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			4060289345188177
		]
		],
		false,
		false,
		7957573719738748,
		[],
		null
	]
,	[
		"t218",
		cr.plugins_.Sprite,
		false,
		[],
		2,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			9205830497876557,
			[
				["images/m4_cigarette-sheet0.png", 6451, 0, 0, 164, 120, 1, 0.5121951103210449, 0.4916666746139526,[],[-0.3963411152362824,0.116666316986084,0.4329268932342529,0.1083333492279053,0.4329268932342529,0.4333333373069763,-0.3963411152362824,0.441666305065155],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			6126425836612256
		]
,		[
			"DestroyOutsideLayout",
			cr.behaviors.destroy,
			4934790624486643
		]
		],
		false,
		false,
		8665444926547093,
		[],
		null
	]
,	[
		"t219",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			559066682834191,
			[
				["images/m4_l3fg-sheet0.png", 113664, 0, 0, 2000, 440, 1, 0.5, 0.5,[],[-0.1394999921321869,-0.06136399507522583,-0.1344999969005585,-0.4059658050537109,-0.117000013589859,-0.4863635897636414,-0.07899999618530273,-0.4465909004211426,-0.06749999523162842,-0.06363600492477417,0.4990000128746033,-0.06363600492477417,0.5,0.5,-0.5,0.5,-0.5,-0.05681800842285156],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			4646062721120893
		]
		],
		false,
		false,
		846965346394452,
		[],
		null
	]
,	[
		"t220",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1173054330038756,
			[
				["images/m4_box-sheet0.png", 2296, 0, 0, 186, 186, 1, 0.5107526779174805, 0.5107526779174805,[],[-0.4569892883300781,-0.4569892883300781,0.4354843497276306,-0.4569892883300781,0.4354843497276306,0.446237325668335,-0.4569892883300781,0.446237325668335],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			6220727279394264
		]
		],
		false,
		false,
		660883976023096,
		[],
		null
	]
,	[
		"t221",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			826819455122744,
			[
				["images/m4_l5fg1-sheet0.png", 32301, 0, 0, 385, 523, 1, 0.501298725605011, 0.5009559988975525,[],[-0.501298725605011,-0.4760994017124176,0.231168270111084,-0.4952198565006256,0.3246752619743347,-0.3728489875793457,0.400000274181366,-0.16634801030159,0.498701274394989,0.4990440011024475,-0.501298725605011,0.4990440011024475,-0.501298725605011,-0.001911997795104981],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			3007497233252355
		]
		],
		false,
		false,
		4324043506044134,
		[],
		null
	]
,	[
		"t222",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5176917845955413,
			[
				["images/m4_l5fg2-sheet0.png", 24074, 0, 0, 497, 357, 1, 0.501006007194519, 0.5014005899429321,[],[-0.4265592992305756,-0.4901960790157318,0.4527159929275513,-0.4845938980579376,0.4949699640274048,-0.4313725829124451,0.4748489856719971,0.4985994100570679,-0.4607644975185394,0.4901964068412781,-0.4587525129318237,-0.4145658016204834],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			4905878376334048
		]
		],
		false,
		false,
		4361351058643005,
		[],
		null
	]
,	[
		"t223",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3241867192971313,
			[
				["images/m4_l5fgwater-sheet0.png", 6391, 0, 0, 465, 274, 1, 0.5010752677917481, 0.5,[],[-0.4924731254577637,-0.4525547027587891,0.498924732208252,-0.459854006767273,0.498924732208252,0.5,-0.4924731254577637,0.4854009747505188],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			7506547074094344
		]
		],
		false,
		false,
		9614569173804909,
		[],
		null
	]
,	[
		"t224",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7860563410948407,
			[
				["images/m4_l5box-sheet0.png", 28512, 0, 0, 285, 190, 1, 0.5017544031143189, 0.5,[],[-0.4631578922271729,-0.4421052932739258,-0.003508388996124268,-0.4421052932739258,0.4421055912971497,-0.4157894849777222,0.4421055912971497,0.415789008140564,-0.4491227865219116,0.4210529923439026],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			121451958636909
		]
		],
		false,
		false,
		741107613512674,
		[],
		null
	]
,	[
		"t225",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1020903157743843,
			[
				["images/m4_l5stone-sheet0.png", 19184, 0, 0, 298, 504, 1, 0.5, 0.5,[],[-0.4899328947067261,-0.005952000617980957,-0.2348990142345429,-0.5,0.4731540083885193,-0.4960317313671112,0.1174499988555908,0.08531701564788818,-0.2885909974575043,0.4980159997940064,-0.2214770019054413,0.1825399994850159,-0.3557049930095673,0.2003960013389587,-0.3053690195083618,0.0119050145149231],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			7980963192601616
		]
		],
		false,
		false,
		6041901832647941,
		[],
		null
	]
,	[
		"t226",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3364104451922652,
			[
				["images/m4_l7sidemountain-sheet0.png", 19014, 0, 0, 712, 464, 1, 0.5, 0.5,[],[-0.5,-0.4935344755649567,0.4929770231246948,-0.4978448152542114,0.4648900032043457,-0.4655171930789948,0.2120789885520935,-0.4030171930789948,-0.5,0.4913790225982666],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			136772223672107
		]
		],
		false,
		false,
		5388992437411503,
		[],
		null
	]
,	[
		"t227",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3589354362186772,
			[
				["images/m4_l7ironpillar-sheet0.png", 5911, 0, 0, 90, 441, 1, 0.5, 0.5011337995529175,[],[-0.4666666984558106,-0.2290247976779938,-0.4611110985279083,-0.4160999059677124,-0.03333300352096558,-0.4943310916423798,0.3999999761581421,-0.4195011854171753,0.3999999761581421,-0.230158805847168,0.2222219705581665,0.4875282049179077,-0.2666670083999634,0.4852612018585205],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			2927542080371391
		]
		],
		false,
		false,
		8755098142634091,
		[],
		null
	]
,	[
		"t228",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1615022098649539,
			[
				["images/m4_l9fg-sheet0.png", 125870, 0, 0, 2000, 584, 1, 0.5, 0.5,[],[-0.1705000102519989,-0.2945210039615631,-0.2372500002384186,-0.01883599162101746,-0.2186869978904724,0.1095889806747437,0.0990939736366272,0.1241440176963806,0.140874981880188,0.02226001024246216,0.1399999856948853,-0.3784239888191223,0.1854999661445618,-0.4897260069847107,0.5,-0.4914383590221405,0.5,0.5,-0.5,0.5,-0.5,-0.2928079962730408],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			8189854287440345
		]
		],
		false,
		false,
		3673809081057772,
		[],
		null
	]
,	[
		"t229",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			2967896880704291,
			[
				["images/m4_daaru-sheet0.png", 4922, 0, 0, 117, 155, 1, 0.504273533821106, 0.5032258033752441,[],[-0.4529914259910584,-0.2903228104114533,-0.02564054727554321,-0.4580644965171814,0.3931624889373779,-0.3161287903785706,0.3846154808998108,0.3677421808242798,0.1623934507369995,0.4193552136421204,-0.2222225368022919,0.4193552136421204,-0.4615384340286255,0.396774172782898],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			1204880183142372
		]
		],
		false,
		false,
		7648428537048433,
		[],
		null
	]
,	[
		"t230",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5418863531027357,
			[
				["images/m4_glassframe-sheet0.png", 11749, 0, 0, 470, 550, 1, 0.5, 0.5,[],[-0.1744680106639862,-0.490909069776535,0.1617019772529602,-0.4890908896923065,0.4765959978103638,-0.2199999988079071,0.4765959978103638,0.4800000190734863,-0.4851064085960388,0.4800000190734863,-0.4851064085960388,-0.2254540026187897],0]
			]
			]
		],
		[
		],
		false,
		false,
		1374267298694359,
		[],
		null
	]
,	[
		"t231",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3064993440297471,
			[
				["images/m4_stone-sheet0.png", 8887, 0, 0, 136, 123, 1, 0.5, 0.5040650367736816,[],[-0.4338234961032867,-0.2113820314407349,-0.1544120013713837,-0.4552845358848572,0.1691179871559143,-0.4146341383457184,0.4191179871559143,-0.1626010239124298,0.360293984413147,0.2195119857788086,0.1029409766197205,0.4065039753913879,-0.1323530077934265,0.4146339893341065,-0.4264706075191498,0.2113819718360901],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			6981716887987308
		]
		],
		false,
		false,
		2954980467989295,
		[],
		null
	]
,	[
		"t232",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		3475433233403925,
		[],
		null
	]
,	[
		"t233",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7078056198720592,
			[
				["images/m3_countdownanim-sheet1.png", 117713, 302, 302, 250, 250, 1, 0.5, 0.5,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3757078326680089,
		[],
		null
	]
,	[
		"t234",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			3755783119975683,
			[
				["images/m4_slingshotelastic-sheet0.png", 136, 1, 1, 16, 12, 1, 0, 0.5,[],[],3],
				["images/m4_slingshotelastic-sheet0.png", 136, 1, 14, 16, 12, 1, 0, 0.5,[],[],3]
			]
			]
		],
		[
		],
		false,
		false,
		9943122007449376,
		[],
		null
	]
,	[
		"t235",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			3783366341184649,
			[
				["images/m4_timerbg-sheet0.png", 1473, 0, 0, 211, 103, 1, 0.5071089863777161, 0.5145630836486816,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9959228085515832,
		[],
		null
	]
,	[
		"t236",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1290443851960187,
			[
				["images/m4_targetscorebg-sheet0.png", 9782, 0, 0, 345, 88, 1, 0, 0,[],[0.0318841002881527,0.125,0.5043479800224304,0.06818179786205292,0.9739130139350891,0.1363639980554581,0.98260897397995,0.5227270126342773,0.9681159853935242,0.8863639831542969,0.5043479800224304,0.9318180084228516,0.03768119961023331,0.8977270126342773,0.01739129982888699,0.5227270126342773],0]
			]
			]
		],
		[
		],
		false,
		false,
		8460046957317965,
		[],
		null
	]
,	[
		"t237",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6081982386471741,
		[],
		null
	]
,	[
		"t238",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			5342526912542579,
			[
				["images/m4_qahintbtn-sheet0.png", 7104, 0, 0, 196, 91, 1, 0.5255101919174194, 0.5604395866394043,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		3320208543327457,
		[],
		null
	]
,	[
		"t239",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"M1win",
			0,
			false,
			1,
			0,
			false,
			3763741095180692,
			[
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			674482772258681
		]
		],
		false,
		false,
		1904334643243782,
		[],
		null
	]
,	[
		"t240",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"M1lost",
			0,
			false,
			1,
			0,
			false,
			4513635836169203,
			[
				["images/sprstorym1lost-sheet0.png", 1611145, 1, 1, 1280, 800, 1, 0.5, 0.5,[],[],0],
				["images/sprstorym1lost-sheet0.png", 1611145, 1, 802, 1280, 800, 1, 0.5, 0.5,[],[],0],
				["images/sprstorym1lost-sheet1.png", 734719, 0, 0, 1280, 800, 1, 0.5, 0.5,[],[],1]
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			1384392935335143
		]
		],
		false,
		false,
		5108554055960762,
		[],
		null
	]
,	[
		"t241",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"M2win",
			0,
			false,
			1,
			0,
			false,
			1394302588565314,
			[
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			9096273026603154
		]
		],
		false,
		false,
		204642249237274,
		[],
		null
	]
,	[
		"t242",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"M2lost",
			0,
			false,
			1,
			0,
			false,
			628982662480717,
			[
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			2822785865830668
		]
		],
		false,
		false,
		3387852680020583,
		[],
		null
	]
,	[
		"t243",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"M3win",
			0,
			false,
			1,
			0,
			false,
			3091665084728149,
			[
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			6121930372717359
		]
		],
		false,
		false,
		7184614344933716,
		[],
		null
	]
,	[
		"t244",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"M3lost",
			0,
			false,
			1,
			0,
			false,
			8831071950386163,
			[
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			4729864759952007
		]
		],
		false,
		false,
		1458493656614883,
		[],
		null
	]
,	[
		"t245",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"M4win",
			0,
			false,
			1,
			0,
			false,
			1444295779757781,
			[
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			1863739967311092
		]
		],
		false,
		false,
		8085307176316705,
		[],
		null
	]
,	[
		"t246",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"M4lost",
			0,
			false,
			1,
			0,
			false,
			5323799823263464,
			[
			]
			]
		],
		[
		[
			"CustomMovement",
			cr.behaviors.custom,
			8574632358635391
		]
		],
		false,
		false,
		8174827267242102,
		[],
		null
	]
,	[
		"t247",
		cr.plugins_.Sprite,
		false,
		[2827817222818227],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8494077420879357,
			[
				["images/sprbuttonbg-sheet0.png", 11470, 0, 0, 406, 140, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		4977149570037386,
		[],
		null
	]
,	[
		"t248",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			725817671057162,
			[
				["images/mua_bg-sheet0.png", 1067609, 0, 0, 1280, 800, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		2762448949260294,
		[],
		null
	]
,	[
		"t249",
		cr.plugins_.Function,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		2501273247916769,
		[],
		null
		,[]
	]
,	[
		"t250",
		cr.plugins_.Touch,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		3185087507551874,
		[],
		null
		,[1]
	]
,	[
		"t251",
		cr.plugins_.Audio,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		4401516975406743,
		[],
		null
		,[0,0,1,1,600,600,10000,1,5000,1]
	]
,	[
		"t252",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1824266460979665,
			[
				["images/sprite2-sheet0.png", 15564, 1, 1, 73, 265, 1, 0.5068492889404297, 0.5094339847564697,[],[],0],
				["images/sprite2-sheet0.png", 15564, 75, 1, 70, 267, 1, 0.5285714268684387, 0.5093632936477661,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		5521822182180049,
		[],
		null
	]
,	[
		"t253",
		cr.plugins_.TextBox,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6742945127424476,
		[],
		null
	]
,	[
		"t254",
		cr.plugins_.Keyboard,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		9595998022542323,
		[],
		null
		,[]
	]
,	[
		"t255",
		cr.plugins_.AJAX,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		6344971390404164,
		[],
		null
		,[]
	]
,	[
		"t256",
		cr.plugins_.Sprite,
		false,
		[],
		1,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1260183497480847,
			[
				["images/m4_l5fg3-sheet0.png", 47717, 0, 0, 843, 350, 1, 0.5005931258201599, 0.5,[],[-0.4970344007015228,0.07428598403930664,-0.459667831659317,-0.48714280128479,-0.001186132431030273,-0.4885714054107666,0.4994068741798401,-0.4600000083446503,0.4994068741798401,0.5,-0.001186132431030273,0.5,-0.4697509407997131,0.5],0]
			]
			]
		],
		[
		[
			"Physics",
			cr.behaviors.Physics,
			1789166764457227
		]
		],
		false,
		false,
		4219131489660282,
		[],
		null
	]
,	[
		"t257",
		cr.plugins_.Dictionary,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		3028356995804428,
		[],
		null
	]
,	[
		"t258",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			0,
			false,
			1,
			0,
			false,
			9401451304347286,
			[
				["images/mua_formbasebg-sheet0.png", 28975, 1, 489, 700, 400, 1, 0.5028571486473084, 0.5074999928474426,[],[],0],
				["images/mua_formbasebg-sheet0.png", 28975, 1, 1, 876, 487, 1, 0.5, 0.5010266900062561,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		7402797984562062,
		[],
		null
	]
,	[
		"t259",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			845970287857122,
			[
				["images/mua_logo-sheet0.png", 20834, 0, 0, 540, 80, 1, 0.5, 0.4625000059604645,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		6356118820799682,
		[],
		null
	]
,	[
		"t260",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		3588980175638555,
		[],
		null
	]
,	[
		"t261",
		cr.plugins_.appMobi,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		814321774731725,
		[],
		null
		,[]
	]
,	[
		"t262",
		cr.plugins_.Browser,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		625720425274275,
		[],
		null
		,[]
	]
,	[
		"t263",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		4642134622432584,
		[],
		null
	]
,	[
		"t264",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			8561700446046151,
			[
				["images/m2_qahintbtn-sheet0.png", 1465, 0, 0, 177, 55, 1, 0, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		5414530135857581,
		[],
		null
	]
,	[
		"t265",
		cr.plugins_.Dictionary,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		9125962674365618,
		[],
		null
	]
,	[
		"t266",
		cr.plugins_.WebStorage,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		5538948434100388,
		[],
		null
		,[]
	]
,	[
		"t267",
		cr.plugins_.Arr,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		true,
		false,
		5782327166804846,
		[],
		null
	]
,	[
		"t268",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			4086357757314181,
			[
				["images/sprclosebtn-sheet0.png", 2709, 0, 0, 50, 50, 1, 1, 0,[],[],0]
			]
			]
		],
		[
		],
		false,
		false,
		9239869131833504,
		[],
		null
	]
,	[
		"t269",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		2680764588713627,
		[],
		null
	]
,	[
		"t270",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			1850498516652544,
			[
				["images/closebtnpopup_btnno1-sheet0.png", 329, 0, 0, 111, 58, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		1869373515966936,
		[],
		null
	]
,	[
		"t271",
		cr.plugins_.Sprite,
		false,
		[],
		0,
		0,
		null,
		[
			[
			"Default",
			5,
			false,
			1,
			0,
			false,
			7508734627592497,
			[
				["images/closebtnpopup_btnyes1-sheet0.png", 361, 0, 0, 111, 58, 1, 0, 0,[],[],1]
			]
			]
		],
		[
		],
		false,
		false,
		448822538978663,
		[],
		null
	]
,	[
		"t272",
		cr.plugins_.Text,
		false,
		[],
		0,
		0,
		null,
		null,
		[
		],
		false,
		false,
		7166934387781846,
		[],
		null
	]
,	[
		"t273",
		cr.plugins_.Sprite,
		true,
		[],
		1,
		0,
		null,
		null,
		[
		[
			"CustomMovement2",
			cr.behaviors.custom,
			8882677691673938
		]
		],
		false,
		false,
		3048395266991557,
		[],
		null
	]
	],
	[
		[273,240,239,242,241,244,243,246,245]
	],
	[
	[
		"Mission4Level2",
		2000,
		1000,
		false,
		"ES_mission4",
		32159352965162,
		[
		[
			"bg",
			0,
			3568296137467272,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				203,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				210,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1520, 364, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				274,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[124, -402, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				80,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			7416506227946256,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[232, 649, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				198,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[53, 719, 0, 300, 130, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				199,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1574, 656, 0, 45, 347, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				200,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1719, 723, 0, 71, 160, 0, 0, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				201,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				202,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1865, 648, 0, 45, 347, 0, 3.141592741012573, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				205,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1719, 472, 0, 45, 347, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				204,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[0, 808, 0, 2000, 192, 0, 0, 1, 0, 0, 0, 0, []],
				193,
				206,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					0
				]
			]
,			[
				[1722, 807.7982788085938, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				209,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1183, 654, 0, 45, 347, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				275,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1460, 657, 0, 45, 347, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				278,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1316, 472, 0, 45, 347, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				276,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1513, 442, 0, 45, 347, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				277,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1217, 366, 0, 31, 197, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				281,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1829, 366, 0, 31, 197, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				282,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1514, 255, 0, 45, 694, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				283,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1311, 720, 0, 71, 160, 0, 0.003490658011287451, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				279,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1314, 805, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				280,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-50.5, 585, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				651,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-41.5, 605, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				652,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			1898769257297102,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				211,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[889, 902, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				212,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				214,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 201, 131, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				215,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[424, -149, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				208,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				216,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				220,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[59, -104, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				682,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[178, -83, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				683,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			2069469422050545,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				221,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				222,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				223,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				224,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				225,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[619, 407, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				217,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				218,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				219,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				226,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				227,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[262, 170, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				228,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				229,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				230,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				231,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				232,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				233,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				235,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-310.3333129882813, -116.6666717529297, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				762,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-451.3333129882813, -87.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				764,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level10",
		2000,
		1000,
		false,
		"ES_mission4",
		6617235815741942,
		[
		[
			"bg",
			0,
			4807489771922768,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				566,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				568,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1879, 584, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				569,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1883, 724, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				611,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1214, 553, 0, 470, 550, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				230,
				643,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[0, 808, 0, 2000, 192, 0, 0, 1, 0, 0, 0, 0, []],
				193,
				606,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					0
				]
			]
,			[
				[121, -497, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				669,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			1122802060211961,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[233, 651, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				570,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[193, 729, 0, 40, 50, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				571,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1474, 656, 0, 45, 347, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				576,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1535, 389, 0, 71, 160, 0, 0, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				577,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				603,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1605, 648, 0, 45, 347, 0, 3.141592741012573, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				604,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1537.665771484375, 472, 0, 45, 180, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				605,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1266, 806, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				607,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1073, 654, 0, 45, 347, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				608,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1350, 657, 0, 45, 347, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				609,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1206, 472, 0, 45, 347, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				610,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1150, 806, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				616,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1715, 725, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				612,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1715, 556, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				613,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1717, 405, 0, 117, 155, 0, 0, 1, 0.504273533821106, 0.5032258033752441, 0, 0, []],
				229,
				614,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1155, 730, 0, 117, 155, 0, 0, 1, 0.504273533821106, 0.5032258033752441, 0, 0, []],
				229,
				615,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1271, 730, 0, 117, 155, 0, 0, 1, 0.504273533821106, 0.5032258033752441, 0, 0, []],
				229,
				642,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1213, 378, 0, 136, 123, 0, 0, 1, 0.5, 0.5040650367736816, 0, 0, []],
				231,
				644,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-34.5, 467, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				653,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-25.5, 487, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				654,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			6868703203595559,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				617,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[889, 902, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				618,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				619,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 307, 108, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				620,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[421, 12, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				621,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				622,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				623,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[118, -96, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				698,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[237, -74, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				699,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			6166264718130853,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				624,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				625,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				626,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				627,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				628,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[619, 407, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				629,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				630,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				631,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				632,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				633,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[262, 170, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				634,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				635,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				636,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				637,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				638,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				639,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				640,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-391.3333129882813, -73.66667175292969, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				786,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-532.3333129882813, -44.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				788,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level3",
		2000,
		1000,
		false,
		"ES_mission4",
		5172569514940669,
		[
		[
			"bg",
			0,
			6584624039394242,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				284,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				286,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1820, 582, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				287,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1000, 831, 0, 2000, 440, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				219,
				332,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1239, 723, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				295,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1494, 722, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				290,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1751, 723, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				294,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1153, 584, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				293,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[90, -481, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				670,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			904163350581281,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[213, 642, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				288,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[135, 766, 0, 40, 50, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				289,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1484, 563, 0, 71, 160, 0, 0.01047197543084621, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				291,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				292,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0.01,
					1,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1293, 546, 0, 34, 202, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				297,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1461, 434, 0, 45, 694, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				303,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1478, 346, 0, 71, 160, 0, 0.01884955726563931, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				304,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1685, 542, 0, 34, 202, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				298,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-52.5, 559, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				655,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-43.5, 579, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				656,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			5321331321398287,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				306,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[889, 902, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				307,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				308,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 307, 108, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				309,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[421, 12, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				310,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				311,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				312,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-14, -118, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				684,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[126, -91, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				685,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			2955857854391793,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				313,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				314,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				315,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				316,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				317,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[619, 407, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				318,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				319,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				320,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				321,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				322,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[262, 170, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				323,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				324,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				325,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				326,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				327,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				328,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				329,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-317.3333129882813, -75.66667175292969, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				765,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-458.3333129882813, -46.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				767,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level5",
		2000,
		1000,
		false,
		"ES_Mission4Level5",
		6008406313821113,
		[
		[
			"bg",
			0,
			8991719527158514,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				369,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[448.3268737792969, 846.5, 0, 304, 307, 0, 0, 1, 0.5010752677917481, 0.5, 0, 0, []],
				223,
				414,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1081, 863, 0, 465, 274, 0, 0, 1, 0.5010752677917481, 0.5, 0, 0, []],
				223,
				413,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				371,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1615, 599, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				372,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1309, 437, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				377,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[193, 738, 0, 385, 523, 0, 0, 1, 0.501298725605011, 0.5009559988975525, 0, 0, []],
				221,
				373,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[737, 821, 0, 497, 357, 0, 0, 1, 0.501006007194519, 0.5014005899429321, 0, 0, []],
				222,
				411,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1579, 824, 0, 843, 350, 0, 0, 1, 0.5005931258201599, 0.5, 0, 0, []],
				256,
				412,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1370, 574, 0, 285, 190, 0, 0, 1, 0.5017544031143189, 0.5, 0, 0, []],
				224,
				415,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[968, 252, 0, 298, 504, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				225,
				374,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[130, -502, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				671,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			2954609068367188,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[214, 320, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				378,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[88, 401, 0, 40, 50, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				379,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				381,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0.01,
					1,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1407.999877929688, 416.9942016601563, 0, 34, 163, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				382,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1567.484130859375, 323, 0, 45, 541, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				383,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1572, 280, 0, 71, 160, 0, 1.570796370506287, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				384,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1753, 501, 0, 34, 331, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				385,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-40.5, 305, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				657,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-31.5, 325, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				658,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			98706170338898,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				386,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[889, 902, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				387,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				388,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 307, 108, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				389,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[421, 12, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				390,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				391,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				392,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[51, -105, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				686,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[197, -89, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				687,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			2255343852005427,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				393,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				394,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				395,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				396,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				397,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[619, 407, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				398,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				399,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				400,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				401,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				402,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[262, 170, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				403,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				404,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				405,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				406,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				407,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				408,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				409,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-373.3333129882813, -63.66667175292969, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				771,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-514.3333129882813, -34.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				773,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level6",
		2000,
		1000,
		false,
		"ES_Mission4Level5",
		1493244934782915,
		[
		[
			"bg",
			0,
			8686987308275052,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				375,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[1154.825927734375, 863, 0, 1698, 274, 0, 0, 1, 0.5010752677917481, 0.5, 0, 0, []],
				223,
				380,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				417,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1693, 335, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				418,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1435, 336, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				419,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[193, 738, 0, 385, 523, 0, 0, 1, 0.501298725605011, 0.5009559988975525, 0, 0, []],
				221,
				420,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[736, 820.5, 0, 497, 357, 0, 0, 1, 0.501006007194519, 0.5014005899429321, 0, 0, []],
				222,
				645,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1578, 823.5, 0, 843, 350, 0, 0, 1, 0.5005931258201599, 0.5, 0, 0, []],
				256,
				646,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[964, 253, 0, 298, 504, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				225,
				422,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[81, -522, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				672,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			3354370225916728,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[226, 323, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				425,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[77, 395, 0, 40, 50, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				426,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				427,
				[
				],
				[
				[
					0,
					2,
					0,
					2,
					0.5,
					0.2,
					0,
					0.01,
					1,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1568.729125976563, 403, 0, 45, 639, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				429,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1570, 317, 0, 71, 160, 0, 0.008726646192371845, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				430,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1831.003540039063, 539.596435546875, 0, 26, 253, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				431,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1305, 539, 0, 25.69187545776367, 250.1179656982422, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				423,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1830, 317, 0, 71, 160, 0, 0.008726646192371845, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				457,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1313, 319, 0, 71, 160, 0, 0.008726646192371845, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				376,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-45.5, 100, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				659,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-36.5, 120, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				660,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			3146694969670122,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[50, 27, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				432,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[889, 902, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				433,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				434,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 307, 108, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				435,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[220, 33, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				436,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				437,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				438,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[51, -136, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				688,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[206, -116, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				689,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			9406057264667947,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				439,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				440,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				441,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				442,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				443,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[619, 407, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				444,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				445,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				446,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				447,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				448,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[191, 146, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				449,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				450,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				451,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				452,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				453,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				454,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				455,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-393.3333129882813, -86.66667175292969, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				774,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-534.3333129882813, -57.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				776,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level8",
		2000,
		1000,
		false,
		"ES_Mission4Level5",
		1079095383049183,
		[
		[
			"bg",
			0,
			719362659458757,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				473,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[1100.961181640625, 863, 0, 1824, 274, 0, 0, 1, 0.5010752677917481, 0.5, 0, 0, []],
				223,
				505,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				507,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1534, 609, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				508,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[964, 614, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				509,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[193, 738, 0, 385, 523, 0, 0, 1, 0.501298725605011, 0.5009559988975525, 0, 0, []],
				221,
				510,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[971, 917, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				421,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[971, 750, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				504,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[718, 584, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				424,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[718, 916.5, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				511,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[718, 749.5, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				512,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1239, 584, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				513,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1239, 917, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				548,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1239, 750, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				549,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1849, 588, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				550,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1849, 921, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				551,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1849, 754, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				552,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1539, 917, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				553,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1539, 750, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				554,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[61, -504, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				673,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			5450757932857127,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[207, 318, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				514,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[88, 401, 0, 40, 50, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				515,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				516,
				[
				],
				[
				[
					0,
					2,
					0,
					2,
					0.5,
					0.2,
					0,
					0.01,
					1,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1841, 430, 0, 71, 160, 0, 0, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				522,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[711, 428, 0, 71, 160, 0, 0, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				555,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1234, 430, 0, 71, 160, 0, 0, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				556,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-45.5, 282, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				661,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-36.5, 302, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				662,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			3692140990129808,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				523,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1106, 859, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				524,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				525,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 307, 108, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				526,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[421, 12, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				527,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				528,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				529,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[27, -106, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				690,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[183, -83, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				691,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			2588686154366134,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				530,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				531,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				532,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				533,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				534,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[362, 353, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				535,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				536,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				537,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				538,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				539,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[262, 170, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				540,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				541,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				542,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				543,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				544,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				545,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				546,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-358.3333129882813, -72.66667175292969, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				780,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-499.3333129882813, -43.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				782,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level9",
		2000,
		1000,
		false,
		"ES_Mission4Level5",
		376028323598544,
		[
		[
			"bg",
			0,
			7868072144486141,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				517,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[997, 706, 0, 2000, 584, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				228,
				518,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				520,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[162, -470, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				674,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			1829383962060036,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[237, 368, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				572,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[220, 414, 0, 40, 50, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				573,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				574,
				[
				],
				[
				[
					0,
					2,
					0,
					2,
					0.5,
					0.2,
					0,
					0.01,
					1,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1421, 328, 0, 71, 160, 0, 0, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				575,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1525, 348, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				521,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[541, 450, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				561,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[541, 281, 0, 186, 186, 0, 0, 1, 0.5107526779174805, 0.5107526779174805, 0, 0, []],
				220,
				563,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[772, 695, 0, 117, 155, 0, 0, 1, 0.504273533821106, 0.5032258033752441, 0, 0, []],
				229,
				558,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[964, 692, 0, 117, 155, 0, 0, 1, 0.504273533821106, 0.5032258033752441, 0, 0, []],
				229,
				559,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1423, 409, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				557,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1529, 410, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				560,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[769, 772, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				562,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[959, 769, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				564,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[535, 168, 0, 71, 160, 0, 1.570796370506287, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				565,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-54.5, 101, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				663,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-45.5, 121, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				664,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			3518194647220101,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				578,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1106, 859, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				579,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				580,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 307, 108, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				581,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[768, 87, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				582,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				583,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				584,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[72, -84, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				692,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[206, -69, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				693,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			1552170301178914,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				585,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				586,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				587,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				588,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				589,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[362, 353, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				590,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				591,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[387, 219, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				592,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				593,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				594,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[306, -130, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				595,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				596,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				597,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				598,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				599,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				600,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				601,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-376.3333129882813, -77.66667175292969, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				783,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-517.3333129882813, -48.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				785,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level7",
		2000,
		1000,
		false,
		"ES_Mission4Level7",
		5888704947686912,
		[
		[
			"bg",
			0,
			7628621142773242,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				458,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				462,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1693, 495, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				463,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1470, 495, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				464,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[357, 232, 0, 712, 464, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				226,
				503,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					1,
					1,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[0, 808, 0, 2000, 192, 0, 0, 1, 0, 0, 0, 0, []],
				193,
				459,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					0
				]
			]
,			[
				[1087, 629, 0, 90, 441, 0, 0, 1, 0.5, 0.5011337995529175, 0, 0, []],
				227,
				465,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1468, 730, 0, 71, 160, 0, 0.008726646192371845, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				467,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1468, 812, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				468,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1697, 731, 0, 71, 160, 0, 0.008726646192371845, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				460,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1697, 813, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				466,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[117, -494, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				676,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			3157751292301832,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[753, 650, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				469,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[293, 535, 0, 40, 50, 0, 0.03333911672234535, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				470,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				471,
				[
				],
				[
				[
					0,
					2,
					0,
					2,
					0.5,
					0.2,
					0,
					0.01,
					1,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1568.729125976563, 563, 0, 45, 639, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				472,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1831.003540039063, 699.596435546875, 0, 26, 253, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				474,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1305, 699, 0, 25.69187545776367, 250.1179656982422, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				475,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1333, 478, 0, 71, 160, 0, 0.01780235767364502, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				476,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1830, 477, 0, 71, 160, 0, 0.008726646192371845, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				477,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-52.5, 597, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				665,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-43.5, 617, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				666,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			6591244564737906,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				478,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[889, 902, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				479,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				480,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 307, 108, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				481,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[421, 12, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				482,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				483,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				484,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[356, -107, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				694,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[469, -88, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				695,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			1202755137803701,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				485,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				486,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				487,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				488,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				489,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[619, 407, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				490,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				491,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				492,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				493,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				494,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[262, 170, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				495,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				496,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				497,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				498,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				499,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				500,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				501,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-373.3333129882813, -80.66667175292969, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				777,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-514.3333129882813, -51.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				779,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level4",
		2000,
		1000,
		false,
		"ES_Mission4Level4",
		6516579312671207,
		[
		[
			"bg",
			0,
			8415755837158957,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				296,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				300,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1291, 367, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				301,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1000, 831, 0, 2000, 440, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				219,
				302,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1692, 369, 0, 164, 120, 0, 0, 1, 0.5121951103210449, 0.4916666746139526, 0, 0, []],
				218,
				334,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1699, 437, 0, 45, 347, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				331,
				[
					[101],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[94, -507, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				677,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			5641996602863632,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[199, 649, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				335,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[135, 766, 0, 40, 50, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				336,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 101, 107, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				338,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0.01,
					1,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1293, 630.7175903320313, 0, 34, 373, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				339,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1298, 435, 0, 45, 347, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				340,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1508, 714, 0, 71, 160, 0, 0.01884955726563931, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				341,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1507, 794, 0, 34, 22, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				342,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1699, 633, 0, 34, 373, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				207,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[951, 631, 0, 34, 373, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				238,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[956, 435, 0, 45, 347, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				285,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[950, 350, 0, 71, 160, 0, 0.01884955726563931, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				299,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-47.5, 590, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				667,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-38.5, 610, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				668,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			144562376853712,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				343,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[889, 902, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				344,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				345,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2056, 515, 0, 307, 108, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				346,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[584, -161, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				347,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				348,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1382, 644, 0, 50, 50, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				349,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-64, -110, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				696,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[37, -91, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				697,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			4357168642823652,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-394, 448, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				350,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				351,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				352,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				353,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				354,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[619, 407, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				355,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				356,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				357,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-387, 413, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				358,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				359,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[116, 271, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				360,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				361,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 244, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				362,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				363,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-544, 412, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				364,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				365,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				366,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-358.3333129882813, -57.66667175292969, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				768,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-499.3333129882813, -28.66667175292969, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				770,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission4Level1",
		2000,
		1000,
		false,
		"ES_mission4",
		2768274614024468,
		[
		[
			"bg",
			0,
			1388170699794194,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, 0, 0, 2000, 1000, 0, 0, 1, 0, 0, 0, 0, []],
				190,
				237,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-59, 787, 0, 110, 136, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				194,
				239,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"game",
			1,
			4003550542535506,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[484, 650, 0, 101, 218, 0, 0, 1, 0.4950495064258575, 0.2293577939271927, 0, 0, []],
				187,
				240,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[71, 687, 0, 40, 50, 0, 0, 1, 0.2333333343267441, 0.5199999809265137, 0, 0, []],
				188,
				241,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1224, 649, 0, 45, 347, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				242,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1372, 716, 0, 71, 160, 0, 0, 1, 0.5070422291755676, 0.5, 0, 0, []],
				189,
				243,
				[
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-129, 673, 0, 90, 97, 0, 0, 1, 0.4555555582046509, 0.5463917255401611, 0, 0, []],
				191,
				244,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				],
				[
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1515, 640, 0, 45, 347, 0, 3.141592741012573, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				245,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1369, 466, 0, 45, 347, 0, 1.570796370506287, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				246,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[0, 808, 0, 2000, 192, 0, 0, 1, 0, 0, 0, 0, []],
				193,
				247,
				[
				],
				[
				[
					1,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					0
				]
			]
,			[
				[1372, 796.7982788085938, 0, 45, 23, 0, 0, 1, 0.5111111402511597, 0.5129683017730713, 0, 0, []],
				192,
				248,
				[
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					0.5,
					0.2,
					0,
					0.01,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-35, 645, 0, 16, 12, 0, 0, 1, 0, 0.5, 0, 0, []],
				234,
				649,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-26, 665, 0, 16, 12, 0, 3.141592741012573, 1, 0, 0.5, 0, 0, []],
				234,
				650,
				[
				],
				[
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"huds",
			2,
			2110110077713319,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[59, 346, 0, 135, 55, 0, 0, 1, 0, 0, 0, 0, []],
				195,
				249,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[889, 902, 0, 385, 90, 0, 0, 1, -0.01558441575616598, -0.06666667014360428, 0, 0, []],
				196,
				250,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1581, 904, 0, 113, 82, 0, 0, 1, 0, 0, 0, 0, []],
				197,
				251,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1497, 499, 0, 203, 131, 0, 0, 1, 0.004926107823848724, 0.007633587811142206, 0, 0, []],
				198,
				252,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[0, 1, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				253,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[877, 580, 0, 200, 50, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				199,
				254,
				[
				],
				[
				],
				[
					"01 : 00",
					0,
					"26pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[1520, 517, 0, 148, 47, 0, 0, 1, 0, 0, 0, 0, []],
				232,
				428,
				[
				],
				[
				],
				[
					"20",
					0,
					"28pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[1578, 184, 0, 75, 75, 0, 0, 1, 0, 0, 0, 0, []],
				210,
				236,
				[
				],
				[
				],
				[
					"10",
					0,
					"bold 28pt Arial Narrow",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-30, 182, 0, 211, 103, 0, 0, 1, 0.5071089863777161, 0.5145630836486816, 0, 0, []],
				235,
				255,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[118, 839, 0, 345, 88, 0, 0, 1, 0, 0, 0, 0, []],
				236,
				680,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-33, 598, 0, 200, 46, 0, 0, 1, 0, 0, 0, 0, []],
				237,
				681,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
,		[
			"gameModal",
			3,
			5909188256778565,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-225, 509, 0, 601, 636, 0, 0, 1, 0.5008319616317749, 0.5, 0, 0, []],
				201,
				256,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-147, 444, 0, 85, 100, 0, 0, 1, 0.5882353186607361, 0.5, 0, 0, []],
				202,
				257,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-586.4000244140625, 329, 0, 88, 89, 0, 0, 1, 0.5227272510528565, 0.5280898809432983, 0, 0, []],
				203,
				258,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[883, 318, 0, 94, 84, 0, 0, 1, 0.521276593208313, 0.5476190447807312, 0, 0, []],
				204,
				259,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-206.4000244140625, 189, 0, 93, 103, 0, 0, 1, 0.5268816947937012, 0.553398072719574, 0, 0, []],
				205,
				260,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[619, 407, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				209,
				261,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[520, 309, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				207,
				262,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[390, 245, 0, 200, 44, 0, 0, 1, 0, 0, 0, 0, []],
				208,
				263,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(0,0,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-275, 651, 0, 661, 699, 0, 0, 1, 0.5007564425468445, 0.5007153153419495, 0, 0, []],
				211,
				264,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-173, 270, 0, 41.28571319580078, 41.28571319580078, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				212,
				265,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[167, 397, 0, 552, 113, 0, 0, 1, 0, 0, 0, 0, []],
				213,
				266,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 18pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-452, 143, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				267,
				[
				],
				[
				],
				[
					"Choice 1",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-267, 255, 0, 384, 91, 0, 0, 1, 0.5, 0.5054945349693298, 0, 0, []],
				215,
				268,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-587, 361, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				269,
				[
				],
				[
				],
				[
					"Choice 2",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-576, 461, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				270,
				[
				],
				[
				],
				[
					"Choice 3",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-529, 444, 0, 439, 30, 0, 0, 1, 0, 0, 0, 0, []],
				214,
				271,
				[
				],
				[
				],
				[
					"Choice 4",
					0,
					"bold 14pt Arial",
					"rgb(255,255,255)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-240, 879, 0, 97, 96, 0, 0, 1, 0.5463917255401611, 0.5208333134651184, 0, 0, []],
				217,
				272,
				[
				],
				[
				[
					0,
					2,
					1,
					1,
					0.5,
					0.2,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-44, 47, 0, 196, 91, 0, 0, 1, 0.5255101919174194, 0.5604395866394043, 0, 0, []],
				238,
				75,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-185, 76, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				761,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[111, -475, 0, 578, 377, 0, 0, 1, 0, 0, 0, 0, []],
				272,
				678,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"hud",
			4,
			705865769395376,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission3GamePlay",
		1000000,
		800,
		false,
		"ES_Missiom3_GamePlay",
		6585509765351783,
		[
		[
			"Background",
			0,
			2989392944558887,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[0, 1, 0, 5050500, 600, 0, 0, 1, 0, 0, 0, 0, []],
				129,
				131,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[2, 545, 0, 5050500, 261, 0, 0, 1, 0, 0, 0, 0, []],
				130,
				132,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-366, 2386, 0, 5060, 624, 0, 0, 1, 0, 0, 0, 0, []],
				162,
				184,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[5782, 3192, 0, 5060, 614, 0, 0, 1, 0, 0, 0, 0, []],
				163,
				185,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[285, 3107, 0, 5060, 600, 0, 0, 1, 0, 0, 0, 0, []],
				164,
				186,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-285, 1560, 0, 2560, 222, 0, 0, 1, 0, 0, 0, 0, []],
				165,
				187,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[2395, 1540, 0, 2560, 242, 0, 0, 1, 0, 0, 0, 0, []],
				166,
				188,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[5115, 1480, 0, 2560, 262, 0, 0, 1, 0, 0, 0, 0, []],
				167,
				189,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[2904, -371, 0, 181, 72, 0, 0, 1, 0, 0, 0, 0, []],
				174,
				337,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2904, -371, 0, 181, 48, 0, 0, 1, 0, 0, 0, 0, []],
				175,
				368,
				[
				],
				[
				],
				[
					"0",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-866, 761, 0, 1026, 684, 0, 0, 1, 0, 0, 0, 0, []],
				178,
				273,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-367, 507, 0, 1026, 684, 0, 0, 1, 0, 0, 0, 0, []],
				179,
				330,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-444, -184, 0, 329, 77, 0, 0, 1, 0, 0, 0, 0, []],
				180,
				367,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-452, -298, 0, 329, 77, 0, 0, 1, 0, 0, 0, 0, []],
				181,
				410,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-82, -282, 0, 181, 72, 0, 0, 1, 0, 0, 0, 0, []],
				182,
				456,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-81, -279, 0, 179, 45, 0, 0, 1, 0, 0, 0, 0, []],
				183,
				502,
				[
				],
				[
				],
				[
					"0",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-161, 420, 0, 200, 65, 0, 0, 1, 0, 0, 0, 0, []],
				184,
				547,
				[
				],
				[
				],
				[
					"0",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-156, 478, 0, 200, 51, 0, 0, 1, 0, 0, 0, 0, []],
				185,
				602,
				[
				],
				[
				],
				[
					"Text",
					0,
					"24pt Arial",
					"rgb(0,153,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[360, 883, 0, 111, 123, 0, 0, 1, 0, 0, 0, 0, []],
				186,
				641,
				[
				],
				[
				],
				[
					"100",
					0,
					"28pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"Game",
			1,
			5203471934737192,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-363, 639, 0, 5050500, 11, 0, 0, 1, 0, 0, 0, 0, []],
				137,
				139,
				[
				],
				[
				[
					1
				]
				],
				[
					1,
					0
				]
			]
,			[
				[54, 1067, 0, 610, 633, 0, 0, 1, 0, 0, 0, 0, []],
				132,
				134,
				[
				],
				[
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[625, 798, 0, 610, 633, 0, 0, 1, 0, 0, 0, 0, []],
				133,
				135,
				[
				],
				[
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[204, 624, 0, 106, 151, 0, 0, 1, 0.5, 1, 0, 0, []],
				131,
				133,
				[
				],
				[
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[5709, 1080, 0, 225, 225, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				144,
				149,
				[
				],
				[
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2439, -86, 0, 1296, 813, 0, 0, 1, 0, 0, 0, 0, []],
				152,
				161,
				[
				],
				[
				[
					0,
					0,
					0,
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1829, -304, 0, 250, 250, 0, 0, 1, 0, 0, 0, 0, []],
				150,
				172,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-466, 957, 0, 358, 100, 0, 0, 1, 0, 0, 0, 0, []],
				154,
				170,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-82, 1003, 0, 357, 94, 0, 0, 1, 0, 0, 0, 0, []],
				153,
				169,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[615, 1060, 0, 56, 59, 0, 0, 1, 0, 0, 0, 0, []],
				155,
				176,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[743, 1065, 0, 64, 55, 0, 0, 1, 0, 0, 0, 0, []],
				156,
				177,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1127, 1006, 0, 158, 157, 0, 0, 1, 0.5, 0.5031847357749939, 0, 0, []],
				157,
				178,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[949, 1013, 0, 158, 157, 0, 0, 1, 0.5, 0.5031847357749939, 0, 0, []],
				158,
				179,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[944, 1013, 0, 114, 114, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				159,
				180,
				[
				],
				[
				],
				[
					"100%",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					1,
					0,
					0
				]
			]
,			[
				[947, 1184, 0, 284, 105, 0, 0, 1, 0, 0, 0, 0, []],
				160,
				181,
				[
				],
				[
				],
				[
					"You Scored!",
					0,
					"36pt Arial",
					"rgb(255,0,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[380, 1161, 0, 525, 105, 0, 0, 1, 0, 0, 0, 0, []],
				161,
				182,
				[
				],
				[
				],
				[
					"Level Completed !",
					0,
					"36pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[484, 1186, 0, 478, 67, 0, 0, 1, 0, 0, 0, 0, []],
				121,
				183,
				[
				],
				[
				],
				[
					"Shopping List",
					0,
					"36pt Arial",
					"rgb(25,0,1)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[798, 319, 0, 203, 79, 0, 0, 1, 0, 0, 0, 0, []],
				168,
				165,
				[
				],
				[
				[
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1189, 830, 0, 10, 8, 0, 0, 1, 0, 0, 0, 0, []],
				169,
				191,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[5005, 1180, 0, 228, 192, 0, 0, 1, 0, 1, 0, 0, []],
				170,
				159,
				[
					[0]
				],
				[
				[
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[5545, 1070, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				171,
				192,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[2505, -1000, 0, 506, 309, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				119,
				194,
				[
				],
				[
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1277, 824, 0, 610, 633, 0, 0, 1, 0, 0, 0, 0, []],
				132,
				195,
				[
				],
				[
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[208, 626, 0, 75, 151, 0, 0, 1, 0.5066666603088379, 1, 0, 0, []],
				172,
				196,
				[
				],
				[
				[
					350,
					1500,
					1500,
					850,
					1500,
					1000,
					0,
					1
				],
				[
					550,
					0,
					0,
					0,
					1,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
,			[
				[640.5, 400.5, 0, 25, 25, 0, 0, 1, 0.5199999809265137, 0.5199999809265137, 0, 0, []],
				173,
				197,
				[
				],
				[
				[
				],
				[
					1
				]
				],
				[
					1,
					"Default",
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"Huds",
			2,
			2627721883722966,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			0,
			0,
			0,
			[
			[
				[7, 4, 0, 1330, 80, 0, 0, 1, 0, 0, 0, 0, []],
				141,
				158,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[455, 852, 0, 86, 69, 0, 0, 1, 0, 0, 0, 0, []],
				142,
				160,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[263, 890, 0, 66, 66, 0, 0, 1, 0, 0, 0, 0, []],
				143,
				162,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[288, 830, 0, 63, 62, 0, 0, 1, 0, 0, 0, 0, []],
				134,
				163,
				[
					[0],
					[0]
				],
				[
				],
				[
					"",
					0,
					"20pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[839, 15, 0, 406, 56, 0, 0, 1, 0, 0, 0, 0, []],
				145,
				166,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[4, 2, 0, 211.5187072753906, 81, 0, 0, 1, 0, 0, 0, 0, []],
				146,
				167,
				[
				],
				[
				],
				[
					"",
					0,
					"30pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[850, 20, 0, 361, 20, 0, 0, 1, 0, 0, 0, 0, []],
				147,
				168,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[524.7130737304688, -18.75732803344727, 0, 197.3245849609375, 118, 0, 0, 1, 0, 0, 0, 0, []],
				151,
				173,
				[
				],
				[
				],
				[
					"",
					0,
					"32pt Arial",
					"rgb(255,192,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[626, 40, 0, 198, 67, 0, 0, 1, 0.5, 0.5074626803398132, 0, 0, []],
				149,
				156,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-188, -1122, 0, 354, 526, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				145,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
			],
			[			]
		]
,		[
			"Player",
			3,
			2669153120246906,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[881, 933, 0, 96, 50, 0, 0, 1, 0, 0, 0, 0, []],
				122,
				171,
				[
					[0]
				],
				[
				],
				[
					"1",
					0,
					"28pt Arial",
					"rgb(0,0,0)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[661, 928, 0, 274, 50, 0, 0, 1, 0, 0, 0, 0, []],
				120,
				174,
				[
					[0]
				],
				[
				],
				[
					"qqq",
					0,
					"28pt Arial",
					"rgb(0,0,0)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[522, 888, 0, 107, 107, 0, 0, 1, 0, 0, 0, 0, []],
				125,
				175,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			4,
			5038712894878753,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission3Meal",
		1280,
		800,
		false,
		"ES_Mission3_MealScreen",
		7471841314776537,
		[
		[
			"bg",
			0,
			8989451153070381,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[0, 0, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				124,
				152,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"main",
			1,
			827492270006269,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[270, 344.5, 0, 515, 312, 0, 0, 1, 0.5009709000587463, 0.5, 0, 0, []],
				126,
				190,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[777, -146, 0, 107, 107, 0, 0, 1, 0, 0, 0, 0, []],
				125,
				140,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1, 6, 0, 542, 91, 0, 0, 1, 0, 0, 0, 0, []],
				116,
				141,
				[
				],
				[
				],
				[
					"",
					0,
					"48pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[25, 516, 0, 493, 275, 0, 0, 1, 0, 0, 0, 0, []],
				117,
				142,
				[
				],
				[
				],
				[
					"",
					0,
					"24pt Arial",
					"rgb(255,66,0)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[270, 344.5, 0, 506, 309, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				119,
				148,
				[
				],
				[
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[919, -130, 0, 274, 50, 0, 0, 1, 0, 0, 0, 0, []],
				120,
				150,
				[
					[0]
				],
				[
				],
				[
					"qqq",
					0,
					"28pt Arial",
					"rgb(0,0,0)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[725, 142, 0, 478, 67, 0, 0, 1, 0, 0, 0, 0, []],
				121,
				151,
				[
				],
				[
				],
				[
					"Shopping List",
					0,
					"36pt Arial",
					"rgb(25,0,1)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[1193, -138, 0, 96, 50, 0, 0, 1, 0, 0, 0, 0, []],
				122,
				155,
				[
					[0]
				],
				[
				],
				[
					"1",
					0,
					"28pt Arial",
					"rgb(0,0,0)",
					0,
					1,
					0,
					0,
					0
				]
			]
,			[
				[338, 830, 0, 484, 223, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				146,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[1005, 760, 0, 356, 92, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				118,
				143,
				[
				],
				[
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
,			[
				[824, -93, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				144,
				164,
				[
				],
				[
				[
				]
				],
				[
					0,
					"Default",
					1,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			2,
			1438463427311664,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"Mission3Intro",
		1280,
		800,
		false,
		"ES_Mission3_Intro",
		8534023805997906,
		[
		[
			"Layer 0",
			0,
			6946466459083201,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1033, 586, 0, 442, 130, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				127,
				144,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1, 1, 0, 846, 463, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				147,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[648, 630, 0, 50, 50, 0, 0, 1, 1, 0, 0, 0, []],
				268,
				53,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"LayoutGameMission1",
		1280,
		800,
		false,
		"EventSheetGameMission1",
		3219998856336476,
		[
		[
			"base_layer",
			0,
			3382225690640001,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1, -3, 0, 1279, 803, 0, 0, 1, 0, 0, 0, 0, []],
				72,
				0,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"sidehud_layer",
			1,
			941609524861161,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[1233, 398, 0, 95, 800, 0, 0, 1, 0.5052631497383118, 0.5, 0, 0, []],
				50,
				23,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[49, 400, 0, 95, 800, 0, 0, 1, 0.5052631497383118, 0.5, 0, 0, []],
				50,
				22,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-458, -16, 0, 241, 371, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				10,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[-34, -113, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				44,
				4,
				[
					[0],
					[0],
					[0],
					[0]
				],
				[
				[
					0,
					0,
					0,
					1,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[666, -186, 0, 32, 32, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				13,
				21,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-29, 14, 0, 154, 140, 0, 0, 1, 0, 0, 0, 0, []],
				29,
				24,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-165, 272, 0, 69, 41, 0, 0, 1, 0, 0, 0, 0, []],
				30,
				25,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[72, 689, 0, 148, 148, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				32,
				26,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[59, 245, 0, 116, 105, 0, 0, 1, 0.5, 0.5047619342803955, 0, 0, []],
				31,
				27,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1207, 129, 0, 55, 39, 0, 0, 1, 0, 0, 0, 0, []],
				45,
				28,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1355, 120, 0, 37, 33, 0, 0, 1, 0, 0, 0, 0, []],
				49,
				29,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1119, 398, 0, 180, 108, 0, 0, 1, 0, 0, 0, 0, []],
				46,
				30,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1118, 502, 0, 179, 100, 0, 0, 1, 0, 0, 0, 0, []],
				47,
				31,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1150, 665, 0, 142, 104, 0, 0, 1, 0, 0, 0, 0, []],
				48,
				32,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-237, 335, 0, 46, 30, 0, 0, 1, 0, 0, 0, 0, [[0, 1]]],
				21,
				13,
				[
				],
				[
				],
				[
					"lblDrugQACount",
					0,
					"18pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-150, 392, 0, 35, 30, 0, 0, 1, 0, 0, 0, 0, []],
				27,
				63,
				[
				],
				[
				],
				[
					"lblSideHudLevel",
					0,
					"14pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-214, 429, 0, 35, 30, 0, 0, 1, 0, 0, 0, 0, []],
				28,
				64,
				[
				],
				[
				],
				[
					"lblSideHudLevelScore",
					0,
					"16pt Arial Rounded MT Bold",
					"rgb(255,66,0)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-350, 0, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				6,
				72,
				[
				],
				[
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"cells_layer",
			2,
			9534308681501779,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-137, -39, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				3,
				1,
				[
					[0],
					[0],
					[0],
					[0]
				],
				[
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[35, -245, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				10,
				3,
				[
					[0],
					[0],
					[0],
					[0],
					[0]
				],
				[
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-135, 134, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				5,
				2,
				[
					[0],
					[0],
					[0],
					[0],
					[0]
				],
				[
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-144, -180, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				75,
				5,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[346, -156, 0, 13, 13, 0, 0, 1, 0.5384615659713745, 0.5384615659713745, 0, 0, []],
				12,
				17,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[136, -99, 0, 60, 62, 0, 0, 1, 0, 0, 0, 0, []],
				20,
				19,
				[
				],
				[
				],
				[
					"lblCellScore",
					0,
					"22pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					0,
					0,
					0,
					0
				]
			]
,			[
				[50, -214, 0, 30, 30, 0, 0, 1, 0, 0, 0, 0, []],
				20,
				14,
				[
				],
				[
				],
				[
					"Text",
					0,
					"12pt Arial Rounded MT Bold",
					"rgb(70,0,255)",
					0,
					0,
					0,
					0,
					0
				]
			]
,			[
				[22, 50, 0, 79, 76, 0, 0, 1, 0, 0, 0, 0, [[0, 1]]],
				23,
				20,
				[
				],
				[
				],
				[
					"Text",
					0,
					"48pt Arial Rounded MT Bold",
					"rgb(255,0,0)",
					1,
					1,
					0,
					0,
					1
				]
			]
,			[
				[-226, 201, 0, 46, 30, 0, 0, 1, 0, 0, 0, 0, [[0, 1]]],
				24,
				18,
				[
				],
				[
				],
				[
					"lblLifestyleQACount",
					0,
					"18pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-213, -45, 0, 79, 76, 0, 0, 1, 0, 0, 0, 0, []],
				26,
				49,
				[
				],
				[
				],
				[
					"lblScore",
					0,
					"32pt Arial Rounded MT Bold",
					"rgb(255,0,102)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[122, -202, 0, 100, 100, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				11,
				15,
				[
				],
				[
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"qa_layer",
			3,
			3047101389286256,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[448, 1313, 0, 1195, 601, 0, 0, 1, 0.5004184246063232, 0.5008319616317749, 0, 0, []],
				40,
				6,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-340, 1234, 0, 1195, 601, 0, 0, 1, 0.5004184246063232, 0.5008319616317749, 0, 0, []],
				37,
				34,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1325, 742, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				33,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-352, 817, 0, 387, 69, 0, 0, 1, 0, 0, 0, 0, []],
				36,
				35,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-138, 644, 0, 56, 55, 0, 0, 1, 0, 0, 0, 0, []],
				35,
				36,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[660, 962, 0, 387, 69, 0, 0, 1, 0, 0, 0, 0, []],
				39,
				7,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[740, 864, 0, 387, 69, 0, 0, 1, 0, 0, 0, 0, []],
				39,
				37,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[521, 1013, 0, 387, 69, 0, 0, 1, 0, 0, 0, 0, []],
				39,
				38,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[692, 1047, 0, 387, 69, 0, 0, 1, 0, 0, 0, 0, []],
				39,
				39,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[116, 847, 0, 387, 69, 0, 0, 1, 0, 0, 0, 0, []],
				36,
				40,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[118, 928, 0, 387, 69, 0, 0, 1, 0, 0, 0, 0, []],
				36,
				41,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-347, 926, 0, 387, 69, 0, 0, 1, 0, 0, 0, 0, []],
				36,
				42,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-233, 928, 0, 975, 94, 0, 0, 1, 0, 0, 0, 0, []],
				42,
				46,
				[
				],
				[
				],
				[
					"qa_QA_txt",
					0,
					"16pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-308, 745, 0, 200, 30, 0, 0, 1, 0, 0, 0, 0, []],
				38,
				47,
				[
				],
				[
				],
				[
					"qa_drugQA_choice",
					0,
					"14pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-299, 495, 0, 200, 30, 0, 0, 1, 0, 0, 0, 0, []],
				41,
				48,
				[
				],
				[
				],
				[
					"qa_lifestyleQA_choice",
					0,
					"14pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-531, -328, 0, 1030, 358, 0, 0, 1, 0.492233008146286, 0.5391061305999756, 0, 0, []],
				54,
				65,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-352, 43, 0, 200, 30, 0, 0, 1, 0, 0, 0, 0, []],
				15,
				66,
				[
				],
				[
				],
				[
					"Text",
					0,
					"18pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"info_layer",
			4,
			4981373466349227,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-344, 652, 0, 200, 200, 0, 0, 1, 0.5, 0.5, 1, 0, []],
				59,
				82,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-932, 639, 0, 1067, 682, 0, 0, 1, 0.5004686117172241, 0.5, 0, 0, []],
				61,
				50,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-424, -294, 0, 459, 77, 0, 0, 1, 0, 0, 0, 0, []],
				55,
				67,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[864, -385, 0, 1066, 683, 0, 0, 1, 0.5, 0.5007320642471314, 0, 0, []],
				60,
				83,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-371, -230, 0, 459, 77, 0, 0, 1, 0, 0, 0, 0, []],
				16,
				69,
				[
				],
				[
				],
				[
					"NO",
					0,
					"22pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-514, 177, 0, 459, 77, 0, 0, 1, 0, 0, 0, 0, []],
				57,
				86,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-507, 188, 0, 459, 77, 0, 0, 1, 0, 0, 0, 0, []],
				17,
				87,
				[
				],
				[
				],
				[
					"Warn",
					0,
					"20pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-118, -154, 0, 459, 77, 0, 0, 1, 0, 0, 0, 0, []],
				58,
				68,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-374, -163, 0, 459, 77, 0, 0, 1, 0, 0, 0, 0, []],
				18,
				70,
				[
				],
				[
				],
				[
					"Yes",
					0,
					"22pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[-293, -329, 0, 365, 74, 0, 0, 1, 0, 0, 0, 0, []],
				14,
				88,
				[
				],
				[
				],
				[
					"Text",
					0,
					"40pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[126, -463, 0, 20, 20, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				51,
				91,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1048, -418, 0, 127, 101, 0, 0, 1, 0.5039370059967041, 0.5049505233764648, 0, 0, []],
				56,
				92,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-175, 60, 0, 100, 100, 0, 0, 0.2000000029802322, 0.5, 0.5, 0, 0, []],
				4,
				51,
				[
				],
				[
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"hud",
			5,
			8982593612414637,
			true,
			[255, 255, 255],
			true,
			0,
			0,
			1,
			false,
			1,
			0,
			0,
			[
			],
			[			]
		]
		],
		[
			[
				null,
				0,
				8,
				[
					[0],
					["E"]
				],
				[
				],
				[
					10,
					10,
					6
				]
			]
,			[
				null,
				43,
				11,
				[
				],
				[
				],
				[
					10,
					10,
					6
				]
			]
,			[
				null,
				9,
				12,
				[
				],
				[
				],
				[
					10,
					3,
					1
				]
			]
,			[
				null,
				7,
				44,
				[
				],
				[
				],
				[
					2,
					2,
					4
				]
			]
,			[
				null,
				33,
				45,
				[
				],
				[
				],
				[
					2,
					2,
					4
				]
			]
,			[
				null,
				1,
				62,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				70,
				71,
				[
				],
				[
				],
				[
					100,
					2,
					3
				]
			]
,			[
				null,
				34,
				57,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				8,
				93,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				97,
				121,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				135,
				137,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				136,
				138,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				138,
				153,
				[
				],
				[
				],
				[
				]
			]
,			[
				null,
				139,
				154,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				140,
				157,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				148,
				136,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				206,
				213,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				216,
				234,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				257,
				714,
				[
				],
				[
				],
				[
				]
			]
,			[
				null,
				260,
				737,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				265,
				791,
				[
				],
				[
				],
				[
				]
			]
,			[
				null,
				267,
				59,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
,			[
				null,
				2,
				79,
				[
				],
				[
				],
				[
					0,
					3,
					1
				]
			]
		],
		[]
	]
,	[
		"LayoutStart",
		1280,
		800,
		false,
		"EventSheetStart",
		2168065013127443,
		[
		[
			"Layer 0",
			0,
			4166468533565324,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[0, 0, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				67,
				52,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1204, 19, 0, 55, 39, 0, 0, 1, 0, 0, 0, 0, []],
				45,
				54,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[1082, 742, 0, 292, 89, 0, 0, 1, 0.5, 0.5056179761886597, 0, 0, []],
				68,
				84,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[962, 668, 0, 292, 89, 0, 0, 1, 0.5, 0.5056179761886597, 0, 0, []],
				69,
				85,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[948, 705, 0, 264, 67, 0, 0, 1, 0, 0, 0, 0, []],
				19,
				56,
				[
				],
				[
				],
				[
					"MISSION",
					0,
					"bold 36pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[828, 630, 0, 265, 68, 0, 0, 1, 0, 0, 0, 0, []],
				19,
				58,
				[
				],
				[
				],
				[
					"STORY",
					0,
					"bold 36pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"LayoutStory",
		1280,
		800,
		false,
		"EventSheetStory",
		5936803747540535,
		[
		[
			"bg_layer",
			0,
			5023980011799697,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-1233, -164, 0, 461, 482, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				675,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[225, 155, 0, 1280, 800, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				240,
				752,
				[
				],
				[
				[
					0,
					5,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[135, 174, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				239,
				753,
				[
				],
				[
				[
					0,
					5,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[208, 111, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				242,
				754,
				[
				],
				[
				[
					0,
					5,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[222, 95, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				241,
				755,
				[
				],
				[
				[
					0,
					5,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[124, 70, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				244,
				756,
				[
				],
				[
				[
					0,
					5,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[103, 105, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				243,
				757,
				[
				],
				[
				[
					0,
					5,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[87, 132, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				246,
				758,
				[
				],
				[
				[
					0,
					5,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[82, 150, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				245,
				759,
				[
				],
				[
				[
					0,
					5,
					1
				],
				[
					0,
					5,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"slide_layer",
			1,
			27996878644888,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			],
			[			]
		]
,		[
			"control_layer",
			2,
			6926071083922686,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[249, 538, 0, 77, 77, 0, 0, 1, 0, 0, 0, 0, []],
				53,
				74,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[124, 563, 0, 77, 77, 0, 0, 1, 0, 0, 0, 0, []],
				52,
				73,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-105, 1076, 0, 854, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				61,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[2038, 1348, 0, 406, 140, 0, 0, 1, 0, 0, 0, 0, []],
				247,
				60,
				[
					["LayoutMission"]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"LayoutMissionPrologue",
		1280,
		800,
		false,
		"ES_MissionPrologue",
		1503033213339081,
		[
		[
			"bg",
			0,
			7609400309716684,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[0, 0, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				62,
				89,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"Layer 1",
			1,
			219973673041597,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-36, -151, 0, 77, 77, 0, 0, 1, 0, 0, 0, 0, []],
				53,
				90,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
,	[
		"LayoutGameMission2",
		1280,
		800,
		false,
		"EventSheetGameMission2",
		8501383443641669,
		[
		[
			"bg",
			0,
			8177106651729425,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[0, 0, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				76,
				94,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[372, -1, 0, 638, 770, 0, 0, 1, 0, 0, 0, 0, []],
				77,
				95,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[1017, 220, 0, 170, 64, 0, 0, 1, 0, 0, 0, 0, []],
				106,
				305,
				[
					[0]
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[1102, 246, 0, 170, 64, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				107,
				333,
				[
				],
				[
				],
				[
					"00:00",
					0,
					"24pt Arial",
					"rgb(255,255,255)",
					1,
					2,
					1,
					0,
					0
				]
			]
,			[
				[1348, 345, 0, 243, 127, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				700,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
			],
			[			]
		]
,		[
			"gamePlay",
			1,
			849443521348805,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[574, 522, 0, 336, 270, 0, 0, 1, 0.5029761791229248, 0.7851851582527161, 0, 0, []],
				88,
				105,
				[
				],
				[
				[
					500,
					1000,
					1000,
					3,
					0,
					1,
					1
				],
				[
					1
				],
				[
					0,
					1
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[573, 39, 0, 32, 32, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				87,
				107,
				[
					[0]
				],
				[
				[
					100,
					0,
					10,
					0,
					1,
					1
				],
				[
				]
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[427.5, 482.5, 0, 25, 153, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				96,
				116,
				[
					[0],
					[0]
				],
				[
				[
				]
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
,			[
				[473.0606994628906, 366.9393005371094, 0, 91, 9, 0, -0.7853981852531433, 1, 0.5, 0.5, 0, 0, []],
				96,
				117,
				[
					[1],
					[315]
				],
				[
				[
				]
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
,			[
				[556, 329, 0, 8, 96, 0, 1.570796370506287, 1, 0.5, 0.5, 0, 0, []],
				96,
				118,
				[
					[2],
					[90]
				],
				[
				[
				]
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
,			[
				[652.071044921875, 367.94970703125, 0, 11, 117, 0, -0.7853981852531433, 1, 0.5, 0.5, 0, 0, []],
				96,
				119,
				[
					[3],
					[315]
				],
				[
				[
				]
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
,			[
				[713.5208129882813, 479.2496948242188, 0, 31, 116, 0, -0.0554763451218605, 1, 0.5, 0.5, 0, 0, []],
				96,
				120,
				[
					[4],
					[0]
				],
				[
				[
				]
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"blurPlay",
			2,
			8028707597467461,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[464, 674, 0, 512, 512, 0, 0, 0.5, 0, 0, 0, 0, []],
				104,
				130,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[-573, 266, 0, 512, 11, 0, 0, 1, 0, 0, 0, 0, []],
				105,
				193,
				[
				],
				[
				[
					0
				]
				],
				[
					1,
					0
				]
			]
,			[
				[827, 602, 0, 720, 261, 0, 0, 1, 0.5, 0.5019156932830811, 0, 0, []],
				108,
				370,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[824, 541, 0, 144, 144, 0, 0, 1, 0, 0, 0, 0, []],
				109,
				416,
				[
				],
				[
				],
				[
					1,
					"Default",
					0,
					1
				]
			]
,			[
				[977, 359, 0, 195, 66, 0, 0, 1, 0, 0, 0, 0, []],
				110,
				461,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[758, 197, 0, 195, 66, 0, 0, 1, 0, 0, 0, 0, []],
				111,
				506,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[556, 162, 0, 200, 30, 0, 0, 1, 0, 0, 0, 0, []],
				112,
				519,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[557, 282, 0, 200, 30, 0, 0, 1, 0, 0, 0, 0, []],
				114,
				647,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[472, 235, 0, 96, 101, 0, 0, 1, 0, 0, 0, 0, []],
				115,
				648,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 24pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[567, 222, 0, 200, 30, 0, 0, 1, 0, 0, 0, 0, []],
				113,
				567,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
			],
			[			]
		]
,		[
			"hud",
			3,
			2099550047053997,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[820, 347, 0, 170, 64, 0, 0, 1, 0, 0, 0, 0, []],
				82,
				100,
				[
					[0]
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[828, 355, 0, 46, 46, 0, 0, 1, 0, 0, 0, 0, []],
				89,
				106,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[857, 356, 0, 123, 46, 0, 0, 1, 0, 0, 0, 0, [[]]],
				91,
				110,
				[
				],
				[
				],
				[
					"100%",
					0,
					"22pt Bauhaus 93",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[844, 324, 0, 141, 22, 0, 0, 1, 0, 0, 0, 0, []],
				92,
				111,
				[
				],
				[
				],
				[
					"DESCRIPTION",
					0,
					"16pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					0,
					1,
					0,
					1,
					0
				]
			]
,			[
				[821, 605, 0, 170, 153, 0, 0, 1, 0, 0, 0, 0, []],
				84,
				102,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[907, 700, 0, 151, 101, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				95,
				114,
				[
				],
				[
				],
				[
					"300",
					0,
					"36pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					1,
					1,
					0
				]
			]
,			[
				[180, 590, 0, 142, 196, 0, 0, 1, 0, 0, 0, 0, []],
				78,
				96,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[155, 384, 0, 171, 222, 0, 0, 1, 0, 0, 0, 0, []],
				79,
				97,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[280, 533, 0, 48, 48, 0, 0, 1, 0, 0, 0, 0, []],
				80,
				98,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[154, 272, 0, 174, 113, 0, 0, 1, 0, 0, 0, 0, []],
				86,
				103,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[254, 305, 0, 57, 56, 0, 0, 1, 0, 0, 0, 0, []],
				94,
				113,
				[
				],
				[
				],
				[
					"5",
					0,
					"20pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					1,
					0
				]
			]
,			[
				[155, 161, 0, 170, 103, 0, 0, 1, 0, 0, 0, 0, []],
				81,
				99,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[240, 232, 0, 154, 47, 0, 0, 1, 0.5, 0.5, 0, 0, []],
				93,
				112,
				[
				],
				[
				],
				[
					"5m/sec",
					0,
					"18pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					1,
					0,
					0
				]
			]
,			[
				[155, 5, 0, 170, 146, 0, 0, 1, 0, 0, 0, 0, []],
				83,
				101,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[240, 97, 0, 66, 66, 0, 0, 1, 0.5303030014038086, 0.5303030014038086, 0, 0, []],
				90,
				108,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[29, 373, 0, 71, 271, 0, 0, 1, 0, 0, 0, 0, []],
				85,
				104,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
,		[
			"qa",
			4,
			9877676025746496,
			true,
			[255, 255, 255],
			true,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[-243, 337, 0, 459, 785, 0, 0, 1, 0, 0, 0, 0, []],
				98,
				109,
				[
				],
				[
				],
				[
					0,
					0
				]
			]
,			[
				[75, 624, 0, 424, 84, 0, 0, 1, 0, 0, 0, 0, []],
				99,
				122,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[43, 134, 0, 46, 47, 0, 0, 1, 0, 0, 0, 0, []],
				100,
				123,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[72, 699, 0, 424, 84, 0, 0, 1, 0, 0, 0, 0, []],
				99,
				125,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[73, 781, 0, 424, 84, 0, 0, 1, 0, 0, 0, 0, []],
				99,
				126,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[72, 863, 0, 424, 84, 0, 0, 1, 0, 0, 0, 0, []],
				99,
				127,
				[
					[0]
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-125, 441, 0, 397, 140, 0, 0, 1, 0, 0, 0, 0, []],
				102,
				128,
				[
				],
				[
				],
				[
					"This is a question that have been asked upteen times before",
					0,
					"18pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[88, 634, 0, 395, 55, 0, 0, 1, 0, 0, 0, 0, []],
				103,
				129,
				[
				],
				[
				],
				[
					"This is a choice for the above question.",
					0,
					"16pt Arial Rounded MT Bold",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-230, 518, 0, 432, 484, 0, 0, 1, 0, 0, 0, 0, []],
				263,
				789,
				[
				],
				[
				],
				[
					"Text",
					0,
					"16pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[-260, 507, 0, 177, 55, 0, 0, 1, 0, 0, 0, 0, []],
				264,
				790,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
			[
				null,
				101,
				124,
				[
				],
				[
				],
				[
					10,
					1,
					1
				]
			]
		],
		[]
	]
,	[
		"L_MobileRedirect",
		1280,
		800,
		false,
		"ES_MobileRedirect",
		6556623501007314,
		[
		[
			"Layer 0",
			0,
			4615821804035903,
			true,
			[255, 255, 255],
			false,
			1,
			1,
			1,
			false,
			1,
			0,
			0,
			[
			[
				[0, 0, 0, 1280, 800, 0, 0, 1, 0, 0, 0, 0, []],
				248,
				793,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[-56, 1050, 0, 757, 285, 0, 0, 1, 0, 0, 0, 0, []],
				253,
				794,
				[
				],
				[
				],
				[
					"",
					"",
					"",
					1,
					1,
					0,
					0,
					6,
					1,
					""
				]
			]
,			[
				[268, -309, 0, 700, 285, 0, 0, 1, 0.5028571486473084, 0.5074999928474426, 0, 0, []],
				258,
				55,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[81, -398, 0, 358, 94, 0, 0, 1, 0, 0, 0, 0, []],
				269,
				78,
				[
				],
				[
				],
				[
					"Text",
					0,
					"bold 20pt Arial",
					"rgb(255,255,255)",
					1,
					1,
					0,
					0,
					0
				]
			]
,			[
				[41, -272, 0, 111, 58, 0, 0, 1, 0, 0, 0, 0, []],
				270,
				76,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
,			[
				[358, -265, 0, 111, 58, 0, 0, 1, 0, 0, 0, 0, []],
				271,
				77,
				[
				],
				[
				],
				[
					0,
					"Default",
					0,
					1
				]
			]
			],
			[			]
		]
		],
		[
		],
		[]
	]
	],
	[
	[
		"ES_mission4",
		[
		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			2,
			"ES_mission4Common",
			false
		]
,		[
			1,
			"m4_isAiming",
			0,
			1,
false,false,3519520915360661,false
		]
,		[
			1,
			"m4_currentRobheadUID",
			0,
			0,
false,false,7233377598908926,false
		]
,		[
			1,
			"m4_footerOffsetPosY",
			0,
			100,
false,false,3212582379658565,false
		]
,		[
			1,
			"m4_isAimingStarted",
			0,
			0,
false,false,7167863660162604,false
		]
,		[
			1,
			"m4_timeLeft",
			0,
			0,
false,false,7643925730637749,false
		]
,		[
			1,
			"m4_levelFinish",
			0,
			1,
false,false,3439728333471055,false
		]
,		[
			1,
			"m4_directTragetEnabled",
			0,
			0,
false,false,8944563542721384,false
		]
,		[
			0,
			[true, "LevelMainTasks"],
			false,
			null,
			4772667232277751,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				4772667232277751,
				false
				,[
				[
					1,
					[
						2,
						"LevelMainTasks"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				3673379269669772,
				[
				[
					-1,
					cr.system_object.prototype.cnds.OnLayoutStart,
					null,
					1,
					false,
					false,
					false,
					8153107356156946,
					false
				]
				],
				[
				[
					217,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9946254959135474,
					false
				]
,				[
					206,
					cr.plugins_.Arr.prototype.acts.SetSize,
					null,
					9418313309803945,
					false
					,[
					[
						0,
						[
							23,
							"m4_numOfLevel"
						]
					]
,					[
						0,
						[
							0,
							5
						]
					]
,					[
						0,
						[
							0,
							1
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					7684313343347873,
					[
					[
						-1,
						cr.system_object.prototype.cnds.For,
						null,
						0,
						true,
						false,
						false,
						6198285017927026,
						false
						,[
						[
							1,
							[
								2,
								""
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							0,
							[
								23,
								"m4_numOfLevel"
							]
						]
						]
					]
					],
					[
					[
						206,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						8205219754420107,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.loopindex
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						206,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						4981467165102147,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.loopindex
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					5713911946647213,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						8221475035414328,
						false
						,[
						[
							1,
							[
								2,
								"gameMode"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										1
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						3755561610072957,
						false
						,[
						[
							1,
							[
								2,
								"initLevel"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6641077393959299,
					[
					[
						251,
						cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
						null,
						0,
						false,
						true,
						false,
						5563404552538448,
						false
						,[
						[
							1,
							[
								2,
								"m4_bg"
							]
						]
						]
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.PlayByName,
						null,
						1234226208792318,
						false
						,[
						[
							3,
							0
						]
,						[
							1,
							[
								2,
								"m4_bg"
							]
						]
,						[
							3,
							1
						]
,						[
							0,
							[
								0,
								-15
							]
						]
,						[
							1,
							[
								2,
								"m4_bg"
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Level1Events"],
				false,
				null,
				4898146227158957,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					4898146227158957,
					false
					,[
					[
						1,
						[
							2,
							"Level1Events"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					1120365784290995,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7678641490266139,
						false
						,[
						[
							7,
							[
								23,
								"m4_isAiming"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						8172460655616986,
						[
						[
							191,
							cr.plugins_.Sprite.prototype.cnds.PickByUID,
							null,
							0,
							false,
							false,
							true,
							5509504209932324,
							false
							,[
							[
								0,
								[
									23,
									"m4_currentRobheadUID"
								]
							]
							]
						]
						],
						[
						[
							191,
							cr.plugins_.Sprite.prototype.acts.SetPosToObject,
							null,
							1165346617413192,
							false
							,[
							[
								4,
								188
							]
,							[
								7,
								[
									2,
									"turret"
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							8371691224104292,
							[
							[
								250,
								cr.plugins_.Touch.prototype.cnds.IsTouchingObject,
								null,
								0,
								false,
								false,
								false,
								3649687297634688,
								false
								,[
								[
									4,
									188
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								9616618618811317,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									7266505756693927,
									false
									,[
									[
										7,
										[
											23,
											"m4_isAimingStarted"
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
								],
								[
								[
									251,
									cr.plugins_.Audio.prototype.acts.PlayByName,
									null,
									6209613287372865,
									false
									,[
									[
										3,
										0
									]
,									[
										1,
										[
											2,
											"m4_pullBack"
										]
									]
,									[
										3,
										0
									]
,									[
										0,
										[
											0,
											0
										]
									]
,									[
										1,
										[
											2,
											"m4_pullBack"
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								517007942868269,
								[
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									6274221653412142,
									false
									,[
									[
										11,
										"m4_isAimingStarted"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									7803191752755748,
									false
									,[
									[
										11,
										"m4_directTragetEnabled"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							1,
							"m4_currentAngle",
							0,
							0,
false,false,5290141557982493,false
						]
,						[
							0,
							null,
							false,
							null,
							5099837802510491,
							[
							[
								250,
								cr.plugins_.Touch.prototype.cnds.IsInTouch,
								null,
								0,
								false,
								false,
								false,
								5282325580229583,
								false
							]
							],
							[
							]
							,[
							[
								1,
								"m4_angleChange",
								0,
								0,
false,false,6869460157880734,false
							]
,							[
								1,
								"m4_distanceSling",
								0,
								0,
false,false,65376060900108,false
							]
,							[
								0,
								null,
								false,
								null,
								9147898523407573,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									1623583994984749,
									false
									,[
									[
										11,
										"m4_isAimingStarted"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									9114855281435407,
									false
									,[
									[
										11,
										"m4_currentAngle"
									]
,									[
										7,
										[
											19,
											cr.system_object.prototype.exps.angle
											,[
[
												20,
												250,
												cr.plugins_.Touch.prototype.exps.X,
												false,
												null
											]
,[
												20,
												250,
												cr.plugins_.Touch.prototype.exps.Y,
												false,
												null
											]
,[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.X,
												false,
												null
											]
,[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.Y,
												false,
												null
											]
											]
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									5676894265971377,
									false
									,[
									[
										11,
										"m4_distanceSling"
									]
,									[
										7,
										[
											19,
											cr.system_object.prototype.exps.distance
											,[
[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.X,
												false,
												null
											]
,[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.Y,
												false,
												null
											]
,[
												20,
												250,
												cr.plugins_.Touch.prototype.exps.X,
												false,
												null
											]
,[
												20,
												250,
												cr.plugins_.Touch.prototype.exps.Y,
												false,
												null
											]
											]
										]
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									415920472792815,
									[
									],
									[
									]
								]
,								[
									0,
									null,
									false,
									null,
									6830483928277945,
									[
									[
										-1,
										cr.system_object.prototype.cnds.Compare,
										null,
										0,
										false,
										false,
										false,
										3340884196713222,
										false
										,[
										[
											7,
											[
												23,
												"m4_distanceSling"
											]
										]
,										[
											8,
											2
										]
,										[
											7,
											[
												0,
												250
											]
										]
										]
									]
									],
									[
									[
										188,
										cr.plugins_.Sprite.prototype.acts.SetPos,
										null,
										5691436921611713,
										false
										,[
										[
											0,
											[
												20,
												250,
												cr.plugins_.Touch.prototype.exps.X,
												false,
												null
											]
										]
,										[
											0,
											[
												20,
												250,
												cr.plugins_.Touch.prototype.exps.Y,
												false,
												null
											]
										]
										]
									]
,									[
										188,
										cr.plugins_.Sprite.prototype.acts.SetAngle,
										null,
										1977118869786701,
										false
										,[
										[
											0,
											[
												19,
												cr.system_object.prototype.exps.angle
												,[
[
													20,
													250,
													cr.plugins_.Touch.prototype.exps.X,
													false,
													null
												]
,[
													20,
													250,
													cr.plugins_.Touch.prototype.exps.Y,
													false,
													null
												]
,[
													20,
													187,
													cr.plugins_.Sprite.prototype.exps.X,
													false,
													null
												]
,[
													20,
													187,
													cr.plugins_.Sprite.prototype.exps.Y,
													false,
													null
												]
												]
											]
										]
										]
									]
									]
								]
,								[
									1,
									"m4_imagePointHandle",
									1,
									"",
false,false,1460719050257247,false
								]
,								[
									0,
									null,
									false,
									null,
									2422646956638246,
									[
									[
										-1,
										cr.system_object.prototype.cnds.ForEach,
										null,
										0,
										true,
										false,
										false,
										6251886128615194,
										false
										,[
										[
											4,
											234
										]
										]
									]
									],
									[
									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										7287212436207362,
										false
										,[
										[
											11,
											"m4_imagePointHandle"
										]
,										[
											7,
											[
												10,
												[
													2,
													"handle_"
												]
												,[
													19,
													cr.system_object.prototype.exps.loopindex
												]
											]
										]
										]
									]
,									[
										234,
										cr.plugins_.Sprite.prototype.acts.SetPos,
										null,
										8150386002362836,
										false
										,[
										[
											0,
											[
												20,
												188,
												cr.plugins_.Sprite.prototype.exps.ImagePointX,
												false,
												null
												,[
[
													23,
													"m4_imagePointHandle"
												]
												]
											]
										]
,										[
											0,
											[
												20,
												188,
												cr.plugins_.Sprite.prototype.exps.ImagePointY,
												false,
												null
												,[
[
													23,
													"m4_imagePointHandle"
												]
												]
											]
										]
										]
									]
,									[
										234,
										cr.plugins_.Sprite.prototype.acts.SetWidth,
										null,
										1703527557279331,
										false
										,[
										[
											0,
											[
												19,
												cr.system_object.prototype.exps.distance
												,[
[
													20,
													188,
													cr.plugins_.Sprite.prototype.exps.ImagePointX,
													false,
													null
													,[
[
														23,
														"m4_imagePointHandle"
													]
													]
												]
,[
													20,
													188,
													cr.plugins_.Sprite.prototype.exps.ImagePointY,
													false,
													null
													,[
[
														23,
														"m4_imagePointHandle"
													]
													]
												]
,[
													20,
													187,
													cr.plugins_.Sprite.prototype.exps.ImagePointX,
													false,
													null
													,[
[
														23,
														"m4_imagePointHandle"
													]
													]
												]
,[
													20,
													187,
													cr.plugins_.Sprite.prototype.exps.ImagePointY,
													false,
													null
													,[
[
														23,
														"m4_imagePointHandle"
													]
													]
												]
												]
											]
										]
										]
									]
,									[
										234,
										cr.plugins_.Sprite.prototype.acts.SetTowardPosition,
										null,
										7751716945880592,
										false
										,[
										[
											0,
											[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.ImagePointX,
												false,
												null
												,[
[
													23,
													"m4_imagePointHandle"
												]
												]
											]
										]
,										[
											0,
											[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.ImagePointY,
												false,
												null
												,[
[
													23,
													"m4_imagePointHandle"
												]
												]
											]
										]
										]
									]
									]
									,[
									[
										0,
										null,
										false,
										null,
										7981973705018738,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											1308434917243768,
											false
											,[
											[
												7,
												[
													19,
													cr.system_object.prototype.exps.loopindex
												]
											]
,											[
												8,
												0
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										],
										[
										[
											234,
											cr.plugins_.Sprite.prototype.acts.MoveToTop,
											null,
											8503793742995753,
											false
										]
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							9168984005669327,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								5139055802852058,
								false
							]
							],
							[
							[
								188,
								cr.plugins_.Sprite.prototype.acts.SetPosToObject,
								null,
								7590462230104918,
								false
								,[
								[
									4,
									187
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							5442473027176612,
							[
							[
								250,
								cr.plugins_.Touch.prototype.cnds.OnTouchEnd,
								null,
								1,
								false,
								false,
								false,
								6601656516207342,
								false
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								5941191189321671,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									1308826139845553,
									false
									,[
									[
										11,
										"m4_isAimingStarted"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									6744958210416602,
									false
									,[
									[
										11,
										"m4_isAiming"
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									5903751781028442,
									false
									,[
									[
										11,
										"m4_isAimingStarted"
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									191,
									cr.behaviors.Physics.prototype.acts.SetEnabled,
									"Physics",
									3958927555839111,
									false
									,[
									[
										3,
										1
									]
									]
								]
,								[
									191,
									cr.plugins_.Sprite.prototype.acts.MoveAtAngle,
									null,
									758380670130438,
									false
									,[
									[
										0,
										[
											4,
											[
												20,
												191,
												cr.plugins_.Sprite.prototype.exps.Angle,
												false,
												null
											]
											,[
												0,
												180
											]
										]
									]
,									[
										0,
										[
											19,
											cr.system_object.prototype.exps.min
											,[
[
												7,
												[
													19,
													cr.system_object.prototype.exps.distance
													,[
[
														20,
														250,
														cr.plugins_.Touch.prototype.exps.X,
														false,
														null
													]
,[
														20,
														250,
														cr.plugins_.Touch.prototype.exps.Y,
														false,
														null
													]
,[
														20,
														187,
														cr.plugins_.Sprite.prototype.exps.X,
														false,
														null
													]
,[
														20,
														187,
														cr.plugins_.Sprite.prototype.exps.Y,
														false,
														null
													]
													]
												]
												,[
													0,
													4
												]
											]
,[
												0,
												45
											]
											]
										]
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									3592791786157512,
									[
									[
										191,
										cr.plugins_.Sprite.prototype.cnds.PickByUID,
										null,
										0,
										false,
										false,
										true,
										2320595487372978,
										false
										,[
										[
											0,
											[
												23,
												"m4_currentRobheadUID"
											]
										]
										]
									]
									],
									[
									[
										191,
										cr.plugins_.Sprite.prototype.acts.Spawn,
										null,
										1599812445025689,
										false
										,[
										[
											4,
											194
										]
,										[
											5,
											[
												2,
												"game"
											]
										]
,										[
											7,
											[
												0,
												0
											]
										]
										]
									]
,									[
										191,
										cr.behaviors.Pin.prototype.acts.Unpin,
										"Pin",
										8764738852123344,
										false
									]
,									[
										191,
										cr.behaviors.Physics.prototype.acts.SetPreventRotate,
										"Physics",
										7988502430477447,
										false
										,[
										[
											3,
											0
										]
										]
									]
,									[
										191,
										cr.behaviors.Physics.prototype.acts.ApplyImpulseAtAngle,
										"Physics",
										9647798521724129,
										false
										,[
										[
											0,
											[
												7,
												[
													19,
													cr.system_object.prototype.exps.distance
													,[
[
														20,
														191,
														cr.plugins_.Sprite.prototype.exps.X,
														false,
														null
													]
,[
														20,
														191,
														cr.plugins_.Sprite.prototype.exps.Y,
														false,
														null
													]
,[
														20,
														187,
														cr.plugins_.Sprite.prototype.exps.X,
														false,
														null
													]
,[
														20,
														187,
														cr.plugins_.Sprite.prototype.exps.Y,
														false,
														null
													]
													]
												]
												,[
													1,
													1.5
												]
											]
										]
,										[
											0,
											[
												20,
												191,
												cr.plugins_.Sprite.prototype.exps.Angle,
												false,
												null
											]
										]
,										[
											7,
											[
												0,
												0
											]
										]
										]
									]
,									[
										251,
										cr.plugins_.Audio.prototype.acts.PlayByName,
										null,
										4483812240223733,
										false
										,[
										[
											3,
											0
										]
,										[
											1,
											[
												2,
												"m4_fireNoise"
											]
										]
,										[
											3,
											0
										]
,										[
											0,
											[
												0,
												0
											]
										]
,										[
											1,
											[
												2,
												"m4_fireNoise"
											]
										]
										]
									]
,									[
										188,
										cr.plugins_.Sprite.prototype.acts.SetPos,
										null,
										7207965225847922,
										false
										,[
										[
											0,
											[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.X,
												false,
												null
											]
										]
,										[
											0,
											[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.Y,
												false,
												null
											]
										]
										]
									]
									]
								]
,								[
									1,
									"m4_imagePointHandle",
									1,
									"",
false,false,6671792565074325,false
								]
,								[
									0,
									null,
									false,
									null,
									9388025974310739,
									[
									[
										-1,
										cr.system_object.prototype.cnds.ForEach,
										null,
										0,
										true,
										false,
										false,
										88007165447128,
										false
										,[
										[
											4,
											234
										]
										]
									]
									],
									[
									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										4982678702392611,
										false
										,[
										[
											11,
											"m4_imagePointHandle"
										]
,										[
											7,
											[
												10,
												[
													2,
													"handle_"
												]
												,[
													19,
													cr.system_object.prototype.exps.loopindex
												]
											]
										]
										]
									]
,									[
										234,
										cr.plugins_.Sprite.prototype.acts.SetPos,
										null,
										9365753867417274,
										false
										,[
										[
											0,
											[
												20,
												188,
												cr.plugins_.Sprite.prototype.exps.ImagePointX,
												false,
												null
												,[
[
													23,
													"m4_imagePointHandle"
												]
												]
											]
										]
,										[
											0,
											[
												20,
												188,
												cr.plugins_.Sprite.prototype.exps.ImagePointY,
												false,
												null
												,[
[
													23,
													"m4_imagePointHandle"
												]
												]
											]
										]
										]
									]
,									[
										234,
										cr.plugins_.Sprite.prototype.acts.SetWidth,
										null,
										6393928775293544,
										false
										,[
										[
											0,
											[
												19,
												cr.system_object.prototype.exps.distance
												,[
[
													20,
													188,
													cr.plugins_.Sprite.prototype.exps.ImagePointX,
													false,
													null
													,[
[
														23,
														"m4_imagePointHandle"
													]
													]
												]
,[
													20,
													188,
													cr.plugins_.Sprite.prototype.exps.ImagePointY,
													false,
													null
													,[
[
														23,
														"m4_imagePointHandle"
													]
													]
												]
,[
													20,
													187,
													cr.plugins_.Sprite.prototype.exps.ImagePointX,
													false,
													null
													,[
[
														23,
														"m4_imagePointHandle"
													]
													]
												]
,[
													20,
													187,
													cr.plugins_.Sprite.prototype.exps.ImagePointY,
													false,
													null
													,[
[
														23,
														"m4_imagePointHandle"
													]
													]
												]
												]
											]
										]
										]
									]
,									[
										234,
										cr.plugins_.Sprite.prototype.acts.SetTowardPosition,
										null,
										9720819445070242,
										false
										,[
										[
											0,
											[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.ImagePointX,
												false,
												null
												,[
[
													23,
													"m4_imagePointHandle"
												]
												]
											]
										]
,										[
											0,
											[
												20,
												187,
												cr.plugins_.Sprite.prototype.exps.ImagePointY,
												false,
												null
												,[
[
													23,
													"m4_imagePointHandle"
												]
												]
											]
										]
										]
									]
									]
									,[
									[
										0,
										null,
										false,
										null,
										4430726407058898,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											2212144570295688,
											false
											,[
											[
												7,
												[
													19,
													cr.system_object.prototype.exps.loopindex
												]
											]
,											[
												8,
												0
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										],
										[
										[
											234,
											cr.plugins_.Sprite.prototype.acts.MoveToTop,
											null,
											525895191680006,
											false
										]
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1480329236086925,
						[
						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							6981741300719474,
							false
							,[
							[
								11,
								"m4_isAimingStarted"
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							6507169665887255,
							[
							[
								250,
								cr.plugins_.Touch.prototype.cnds.IsInTouch,
								null,
								0,
								false,
								false,
								false,
								5369991879103885,
								false
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.Wait,
								null,
								5117462519891399,
								false
								,[
								[
									0,
									[
										1,
										0.2
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.ScrollX,
								null,
								9368338786699634,
								false
								,[
								[
									0,
									[
										20,
										250,
										cr.plugins_.Touch.prototype.exps.X,
										false,
										null
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					858904730338701,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9627622182646389,
						false
						,[
						[
							7,
							[
								23,
								"m4_isAiming"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						191,
						cr.plugins_.Sprite.prototype.cnds.PickByUID,
						null,
						0,
						false,
						false,
						true,
						7759725783108003,
						false
						,[
						[
							0,
							[
								23,
								"m4_currentRobheadUID"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.ScrollToObject,
						null,
						795104703336483,
						false
						,[
						[
							4,
							191
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4689169286024625,
					[
					[
						189,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						8285555866491353,
						false
						,[
						[
							4,
							193
						]
						]
					]
					],
					[
					[
						189,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						6448885426053051,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					744406382791195,
					[
					[
						189,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						7210737578063614,
						false
						,[
						[
							4,
							191
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						3199481368283402,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							2190049918054402,
							false
							,[
							[
								7,
								[
									23,
									"m4_directTragetEnabled"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							189,
							cr.plugins_.Sprite.prototype.acts.Destroy,
							null,
							1594933645208005,
							false
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							6770815923854195,
							false
							,[
							[
								11,
								"m4_directTragetEnabled"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9814884183534623,
					[
					[
						189,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						1760741921431326,
						false
						,[
						[
							4,
							219
						]
						]
					]
					],
					[
					[
						189,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						7436252683881502,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1237633227475568,
					[
					[
						189,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						7142617901133477,
						false
						,[
						[
							4,
							256
						]
						]
					]
					],
					[
					[
						189,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						6155197701555325,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6985124880520712,
					[
					[
						189,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						4029067338185598,
						false
						,[
						[
							4,
							222
						]
						]
					]
					],
					[
					[
						189,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						6964388209296702,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1692305598099182,
					[
					[
						189,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						8745663785888995,
						false
						,[
						[
							4,
							223
						]
						]
					]
					],
					[
					[
						189,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						6415119666985858,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6977340054701223,
					[
					[
						189,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						7362265088379462,
						false
						,[
						[
							4,
							228
						]
						]
					]
					],
					[
					[
						189,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						3477498783695803,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3733519641771719,
					[
					[
						218,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						5490501814703253,
						false
						,[
						[
							4,
							193
						]
						]
					]
					],
					[
					[
						218,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						3710961804270253,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1912680728700677,
					[
					[
						218,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						4383664607412998,
						false
						,[
						[
							4,
							191
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						9916688945820796,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							738890310110266,
							false
							,[
							[
								7,
								[
									23,
									"m4_directTragetEnabled"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							218,
							cr.plugins_.Sprite.prototype.acts.Destroy,
							null,
							9595871902885639,
							false
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							5555273205661624,
							false
							,[
							[
								11,
								"m4_directTragetEnabled"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3821424536153222,
					[
					[
						218,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						4252135807002812,
						false
						,[
						[
							4,
							219
						]
						]
					]
					],
					[
					[
						218,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						9884307301001119,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6146949145437179,
					[
					[
						218,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						9971161214070787,
						false
						,[
						[
							4,
							256
						]
						]
					]
					],
					[
					[
						218,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						859446395851189,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					5629420357281559,
					[
					[
						218,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						822109527350817,
						false
						,[
						[
							4,
							222
						]
						]
					]
					],
					[
					[
						218,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						8722148726451663,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4206779390402857,
					[
					[
						218,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						7381778296186428,
						false
						,[
						[
							4,
							223
						]
						]
					]
					],
					[
					[
						218,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						1726202901179981,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9858399234712628,
					[
					[
						218,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						9900404609825678,
						false
						,[
						[
							4,
							228
						]
						]
					]
					],
					[
					[
						218,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						4494495185552818,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7872753236164198,
					[
					[
						229,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						7466340687553592,
						false
						,[
						[
							4,
							193
						]
						]
					]
					],
					[
					[
						229,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						2095449982588321,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					229152175818348,
					[
					[
						229,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						2649163882559895,
						false
						,[
						[
							4,
							191
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						4661229299223837,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							5285573886655159,
							false
							,[
							[
								7,
								[
									23,
									"m4_directTragetEnabled"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							229,
							cr.plugins_.Sprite.prototype.acts.Destroy,
							null,
							9074104680403458,
							false
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							1641296095271216,
							false
							,[
							[
								11,
								"m4_directTragetEnabled"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7042895116916454,
					[
					[
						229,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						2993576633933017,
						false
						,[
						[
							4,
							228
						]
						]
					]
					],
					[
					[
						229,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						8778909992746108,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6506795117583785,
					[
					[
						231,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						7874248610256605,
						false
						,[
						[
							4,
							193
						]
						]
					]
					],
					[
					[
						231,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						6667505316467636,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8422568863152569,
					[
					[
						231,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						6058255928265807,
						false
						,[
						[
							4,
							193
						]
						]
					]
					],
					[
					[
						231,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						5547288737553416,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6599910367423606,
					[
					[
						223,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						8567367217721123,
						false
						,[
						[
							4,
							191
						]
						]
					]
					],
					[
					[
						191,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						1234454395756706,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4510403832505078,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						1234387192743641,
						false
						,[
						[
							4,
							224
						]
						]
					]
					],
					[
					[
						224,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						2414339836696682,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2406810283024846,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						3817015024856623,
						false
						,[
						[
							4,
							193
						]
						]
					]
					],
					[
					]
				]
,				[
					0,
					null,
					false,
					null,
					6412578393293846,
					[
					[
						230,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						6802004623013865,
						false
						,[
						[
							4,
							191
						]
						]
					]
					],
					[
					[
						230,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						5716795147413495,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2643010571658042,
					[
					[
						192,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						5628788524116893,
						false
						,[
						[
							4,
							191
						]
						]
					]
					],
					[
					[
						192,
						cr.plugins_.Sprite.prototype.acts.AddInstanceVar,
						null,
						7949709738305249,
						false
						,[
						[
							10,
							1
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						5241749718601125,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							6471854345998107,
							false
							,[
							[
								7,
								[
									21,
									192,
									false,
									null
									,1
								]
							]
,							[
								8,
								5
							]
,							[
								7,
								[
									0,
									2
								]
							]
							]
						]
						],
						[
						[
							192,
							cr.plugins_.Sprite.prototype.acts.Destroy,
							null,
							2492742119807588,
							false
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4782109622167596,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						4406364141624256,
						false
						,[
						[
							4,
							191
						]
						]
					]
,					[
						191,
						cr.behaviors.Physics.prototype.cnds.IsEnabled,
						"Physics",
						0,
						false,
						false,
						false,
						9046734881568945,
						false
					]
					],
					[
					[
						191,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						6759738933991443,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7067345355377297,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						3524081671181647,
						false
						,[
						[
							4,
							193
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9003166942186536,
						false
						,[
						[
							1,
							[
								2,
								"robCollidesWithSurface"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2967812417635132,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						1035565280526005,
						false
						,[
						[
							4,
							256
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						6864375545911366,
						false
						,[
						[
							1,
							[
								2,
								"robCollidesWithSurface"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7537043391451449,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						4381662967873677,
						false
						,[
						[
							4,
							221
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4162424688023227,
						false
						,[
						[
							1,
							[
								2,
								"robCollidesWithSurface"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2248789257999884,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						7170700306750124,
						false
						,[
						[
							4,
							219
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9034148382875956,
						false
						,[
						[
							1,
							[
								2,
								"robCollidesWithSurface"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4558850212101078,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						349585434345788,
						false
						,[
						[
							4,
							222
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9047764175562388,
						false
						,[
						[
							1,
							[
								2,
								"robCollidesWithSurface"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3291727197319831,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnCollision,
						null,
						0,
						false,
						false,
						true,
						3212555683834822,
						false
						,[
						[
							4,
							228
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2408859020458849,
						false
						,[
						[
							1,
							[
								2,
								"robCollidesWithSurface"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3571752600638642,
					[
					[
						191,
						cr.behaviors.Physics.prototype.cnds.IsSleeping,
						"Physics",
						0,
						false,
						false,
						false,
						9094160265567979,
						false
					]
,					[
						191,
						cr.plugins_.Sprite.prototype.cnds.CompareFrame,
						null,
						0,
						false,
						false,
						false,
						9034037117723101,
						false
						,[
						[
							8,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						8945630694014869,
						false
						,[
						[
							11,
							"m4_isAiming"
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						191,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						8354050378724403,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8496839689520184,
					[
					[
						191,
						cr.behaviors.Physics.prototype.cnds.CompareVelocity,
						"Physics",
						0,
						false,
						false,
						false,
						2373427068769196,
						false
						,[
						[
							3,
							0
						]
,						[
							8,
							4
						]
,						[
							0,
							[
								0,
								-1
							]
						]
						]
					]
,					[
						191,
						cr.behaviors.Physics.prototype.cnds.CompareVelocity,
						"Physics",
						0,
						false,
						false,
						false,
						2915987145479674,
						false
						,[
						[
							3,
							0
						]
,						[
							8,
							2
						]
,						[
							0,
							[
								0,
								1
							]
						]
						]
					]
,					[
						191,
						cr.behaviors.Physics.prototype.cnds.CompareVelocity,
						"Physics",
						0,
						false,
						false,
						false,
						8715475327476579,
						false
						,[
						[
							3,
							0
						]
,						[
							8,
							1
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						191,
						cr.plugins_.Sprite.prototype.cnds.CompareFrame,
						null,
						0,
						false,
						false,
						false,
						8618649652638495,
						false
						,[
						[
							8,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						2363930005235864,
						false
						,[
						[
							11,
							"m4_isAiming"
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						191,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						4577370543942732,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7063709841479059,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Every,
						null,
						0,
						false,
						false,
						false,
						4900641781155278,
						false
						,[
						[
							0,
							[
								1,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5319648480266857,
						false
						,[
						[
							7,
							[
								23,
								"m4_levelFinish"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						199,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						152737277999541,
						false
						,[
						[
							7,
							[
								19,
								cr.system_object.prototype.exps.str
								,[
[
									10,
									[
										10,
										[
											19,
											cr.system_object.prototype.exps.floor
											,[
[
												7,
												[
													23,
													"m4_timeLeft"
												]
												,[
													0,
													60
												]
											]
											]
										]
										,[
											2,
											" : "
										]
									]
									,[
										8,
										[
											23,
											"m4_timeLeft"
										]
										,[
											0,
											60
										]
									]
								]
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						9860631255761718,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3580269757293206,
							false
							,[
							[
								7,
								[
									23,
									"m4_timeLeft"
								]
							]
,							[
								8,
								3
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							2945765041473163,
							false
							,[
							[
								1,
								[
									2,
									"gameFinish"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											0
										]
									]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1000745653311008,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							6001804696985594,
							false
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SubVar,
							null,
							1228243670562734,
							false
							,[
							[
								11,
								"m4_timeLeft"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					924382262106811,
					[
					[
						194,
						cr.plugins_.Sprite.prototype.cnds.OnAnyAnimFinished,
						null,
						1,
						false,
						false,
						false,
						3970303123211646,
						false
					]
					],
					[
					[
						194,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						6077829500361451,
						false
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						8120075774246847,
						[
						[
							191,
							cr.plugins_.Sprite.prototype.cnds.IsOverlapping,
							null,
							0,
							false,
							false,
							false,
							2022262578070806,
							false
							,[
							[
								4,
								194
							]
							]
						]
						],
						[
						[
							191,
							cr.plugins_.Sprite.prototype.acts.Destroy,
							null,
							6783896160788199,
							false
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9111630632891,
					[
					[
						191,
						cr.plugins_.Sprite.prototype.cnds.OnDestroyed,
						null,
						1,
						false,
						false,
						false,
						7650493375503917,
						false
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						2784014244147893,
						false
						,[
						[
							7,
							[
								23,
								"m4_levelFinish"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.Wait,
						null,
						84595496591943,
						false
						,[
						[
							0,
							[
								1,
								0.2
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						8598645536830438,
						false
						,[
						[
							1,
							[
								2,
								"reloadRobhead"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					[true, "Level1DestroyedEvents"],
					false,
					null,
					6179643171052849,
					[
					[
						-1,
						cr.system_object.prototype.cnds.IsGroupActive,
						null,
						0,
						false,
						false,
						false,
						6179643171052849,
						false
						,[
						[
							1,
							[
								2,
								"Level1DestroyedEvents"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						1874703859300066,
						[
						[
							229,
							cr.plugins_.Sprite.prototype.cnds.OnDestroyed,
							null,
							1,
							false,
							false,
							false,
							9383506133269754,
							false
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							8049225723840784,
							false
							,[
							[
								1,
								[
									2,
									"scoreObjectDestroyed"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6810758893549611,
						[
						[
							218,
							cr.plugins_.Sprite.prototype.cnds.OnDestroyed,
							null,
							1,
							false,
							false,
							false,
							2346705050315755,
							false
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							3083407705703494,
							false
							,[
							[
								1,
								[
									2,
									"scoreObjectDestroyed"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						4604904357784207,
						[
						[
							231,
							cr.plugins_.Sprite.prototype.cnds.OnDestroyed,
							null,
							1,
							false,
							false,
							false,
							222856062552982,
							false
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							9088211077912599,
							false
							,[
							[
								1,
								[
									2,
									"scoreObjectDestroyed"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						5053343161554628,
						[
						[
							189,
							cr.plugins_.Sprite.prototype.cnds.OnDestroyed,
							null,
							1,
							false,
							false,
							false,
							1668227445267079,
							false
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							8583951707818061,
							false
							,[
							[
								1,
								[
									2,
									"scoreObjectDestroyed"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Level1TouchEvents"],
				false,
				null,
				7465935628569221,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					7465935628569221,
					false
					,[
					[
						1,
						[
							2,
							"Level1TouchEvents"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					6072343535925855,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						6689477973317094,
						false
						,[
						[
							4,
							196
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						5984340875935667,
						false
						,[
						[
							11,
							"m4_QALoadComplete"
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						343645076031449,
						false
						,[
						[
							1,
							[
								2,
								"mission4PopupQA"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetGroupActive,
						null,
						9634497610233216,
						false
						,[
						[
							1,
							[
								2,
								"LevelMainTasks"
							]
						]
,						[
							3,
							0
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3346181612637889,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						7363928792884561,
						false
						,[
						[
							4,
							197
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4491023681640783,
						false
						,[
						[
							1,
							[
								2,
								"soundToggle"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										1
									]
								]
						]
						]
					]
,					[
						197,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						9622641296265093,
						false
						,[
						[
							0,
							[
								23,
								"CURR_SOUND"
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Level1Fn"],
				false,
				null,
				8427487283737412,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					8427487283737412,
					false
					,[
					[
						1,
						[
							2,
							"Level1Fn"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					4443790010813765,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						9204787304360901,
						false
						,[
						[
							1,
							[
								2,
								"reloadRobhead"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.Wait,
						null,
						2263281606372515,
						false
						,[
						[
							0,
							[
								1,
								0.2
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						3767087037021194,
						[
						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							194677631996938,
							false
							,[
							[
								11,
								"m4_numOfRobHeads"
							]
,							[
								8,
								4
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							9169424831611997,
							false
							,[
							[
								7,
								[
									20,
									191,
									cr.plugins_.Sprite.prototype.exps.Count,
									false,
									null
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							188,
							cr.plugins_.Sprite.prototype.acts.Spawn,
							null,
							8945122693829109,
							false
							,[
							[
								4,
								191
							]
,							[
								5,
								[
									2,
									"game"
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							191,
							cr.behaviors.Physics.prototype.acts.SetIterations,
							"Physics",
							3068962234612596,
							false
							,[
							[
								0,
								[
									0,
									12
								]
							]
,							[
								0,
								[
									0,
									8
								]
							]
							]
						]
,						[
							191,
							cr.behaviors.Physics.prototype.acts.SetEnabled,
							"Physics",
							9080427110373519,
							false
							,[
							[
								3,
								0
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.ScrollToObject,
							null,
							4846724923371433,
							false
							,[
							[
								4,
								191
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9655338419069574,
							false
							,[
							[
								11,
								"m4_isAiming"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8168615370657993,
							false
							,[
							[
								11,
								"m4_currentRobheadUID"
							]
,							[
								7,
								[
									20,
									191,
									cr.plugins_.Sprite.prototype.exps.UID,
									false,
									null
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SubVar,
							null,
							5116273168823053,
							false
							,[
							[
								11,
								"m4_numOfRobHeads"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							191,
							cr.plugins_.Sprite.prototype.acts.SetPosToObject,
							null,
							1526786714758743,
							false
							,[
							[
								4,
								188
							]
,							[
								7,
								[
									2,
									"turret"
								]
							]
							]
						]
,						[
							191,
							cr.behaviors.Pin.prototype.acts.Pin,
							"Pin",
							8898688554981763,
							false
							,[
							[
								4,
								188
							]
,							[
								3,
								0
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.ScrollToObject,
							null,
							8881043791610157,
							false
							,[
							[
								4,
								188
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							2358425945636714,
							false
							,[
							[
								1,
								[
									2,
									"resetRobHeadStaticPosition"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						8178745615786298,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							3122723204170927,
							false
						]
						],
						[
						]
						,[
						[
							1,
							"m4_robDead",
							0,
							0,
false,false,4450085895825518,false
						]
,						[
							0,
							null,
							false,
							null,
							7830795573992889,
							[
							[
								191,
								cr.behaviors.Physics.prototype.cnds.IsSleeping,
								"Physics",
								0,
								false,
								false,
								false,
								3325678799520914,
								false
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								8594102036065007,
								false
								,[
								[
									11,
									"m4_robDead"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							2156941719904808,
							[
							[
								191,
								cr.plugins_.Sprite.prototype.cnds.IsOnScreen,
								null,
								0,
								false,
								true,
								false,
								6017197516448209,
								false
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								3704846536480517,
								false
								,[
								[
									11,
									"m4_robDead"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							2529092691243799,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								6454296991020222,
								false
								,[
								[
									7,
									[
										20,
										191,
										cr.plugins_.Sprite.prototype.exps.Count,
										false,
										null
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								8271600908568978,
								false
								,[
								[
									11,
									"m4_robDead"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							7519846072517822,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								6041265796640213,
								false
								,[
								[
									7,
									[
										23,
										"m4_robDead"
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								9247260805700076,
								false
								,[
								[
									11,
									"m4_isAiming"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						9636271235554791,
						[
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7237000855775486,
							false
							,[
							[
								1,
								[
									2,
									"refreshHUD"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1477719619883284,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						6276331441984584,
						false
						,[
						[
							1,
							[
								2,
								"gameFinish"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						1165393402480681,
						false
						,[
						[
							11,
							"m4_levelFinish"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						2590915441673787,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4430807971810653,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							206,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							3597786080549473,
							false
							,[
							[
								0,
								[
									23,
									"m4_currentLevel"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									10
								]
							]
							]
						]
,						[
							206,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6325241547899695,
							false
							,[
							[
								0,
								[
									23,
									"m4_currentLevel"
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									4,
									[
										23,
										"m4_timeLeft"
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
,						[
							206,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							2823373349963144,
							false
							,[
							[
								0,
								[
									23,
									"m4_currentLevel"
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									4,
									[
										20,
										206,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m4_currentLevel"
										]
,[
											0,
											1
										]
,[
											0,
											0
										]
										]
									]
									,[
										20,
										206,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m4_currentLevel"
										]
,[
											0,
											4
										]
,[
											0,
											0
										]
										]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6625738034059396,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							1089581984970477,
							false
						]
						],
						[
						[
							206,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6745581171868383,
							false
							,[
							[
								0,
								[
									23,
									"m4_currentLevel"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							206,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							1299331732485377,
							false
							,[
							[
								0,
								[
									23,
									"m4_currentLevel"
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							206,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							2398501252367409,
							false
							,[
							[
								0,
								[
									23,
									"m4_currentLevel"
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									4,
									[
										20,
										206,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m4_currentLevel"
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
										]
									]
									,[
										20,
										206,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m4_currentLevel"
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
										]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						881745748228027,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9596294224600556,
							false
							,[
							[
								11,
								"m4_currentScore"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6268227886671805,
						[
						[
							206,
							cr.plugins_.Arr.prototype.cnds.ArrForEach,
							null,
							0,
							true,
							false,
							false,
							6964428270512717,
							false
							,[
							[
								3,
								2
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							5793615486207548,
							false
							,[
							[
								11,
								"m4_currentScore"
							]
,							[
								7,
								[
									20,
									206,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										20,
										206,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
,[
										0,
										2
									]
,[
										0,
										0
									]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7477721342831934,
						[
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							1322424839891906,
							false
							,[
							[
								1,
								[
									2,
									"mission4PopupLevelEnd"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetGroupActive,
							null,
							2070449922705962,
							false
							,[
							[
								1,
								[
									2,
									"LevelMainTasks"
								]
							]
,							[
								3,
								0
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					204636459535183,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						4131324106049734,
						false
						,[
						[
							1,
							[
								2,
								"checkMissionDone"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						6578724038805403,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							1632750092313612,
							false
							,[
							[
								7,
								[
									20,
									189,
									cr.plugins_.Sprite.prototype.exps.Count,
									false,
									null
								]
							]
,							[
								8,
								3
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							2589595870531073,
							false
							,[
							[
								7,
								[
									20,
									218,
									cr.plugins_.Sprite.prototype.exps.Count,
									false,
									null
								]
							]
,							[
								8,
								3
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							74846761159773,
							false
							,[
							[
								7,
								[
									20,
									229,
									cr.plugins_.Sprite.prototype.exps.Count,
									false,
									null
								]
							]
,							[
								8,
								3
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7353895207887329,
							false
							,[
							[
								1,
								[
									2,
									"gameFinish"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											1
										]
									]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4146725594157617,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						2796724356862263,
						false
						,[
						[
							1,
							[
								2,
								"initLevel"
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						321463520009871,
						false
						,[
						[
							1,
							[
								2,
								"mission4PopupLevelEnd"
							]
						]
,						[
							13,
															[
									7,
									[
										2,
										"hide"
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9474134358471114,
						false
						,[
						[
							1,
							[
								2,
								"mission4PopupQA"
							]
						]
,						[
							13,
															[
									7,
									[
										2,
										"hide"
									]
								]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						923248602480385,
						false
						,[
						[
							11,
							"m4_numOfRobHeads"
						]
,						[
							7,
							[
								0,
								3
							]
						]
						]
					]
,					[
						191,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						5066870251021746,
						false
					]
,					[
						187,
						cr.plugins_.Sprite.prototype.acts.ZMoveToObject,
						null,
						7120761299623039,
						false
						,[
						[
							3,
							0
						]
,						[
							4,
							188
						]
						]
					]
,					[
						188,
						cr.plugins_.Sprite.prototype.acts.SetPosToObject,
						null,
						2982946338048973,
						false
						,[
						[
							4,
							187
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						188,
						cr.plugins_.Sprite.prototype.acts.MoveToTop,
						null,
						3868858727853994,
						false
					]
,					[
						188,
						cr.plugins_.Sprite.prototype.acts.SetSize,
						null,
						4794985766104213,
						false
						,[
						[
							0,
							[
								0,
								40
							]
						]
,						[
							0,
							[
								0,
								50
							]
						]
						]
					]
,					[
						188,
						cr.plugins_.Sprite.prototype.acts.SetAngle,
						null,
						1548288906316105,
						false
						,[
						[
							0,
							[
								23,
								"m4_cannonAngle"
							]
						]
						]
					]
,					[
						187,
						cr.plugins_.Sprite.prototype.acts.SetSize,
						null,
						2790580199263606,
						false
						,[
						[
							0,
							[
								0,
								101
							]
						]
,						[
							0,
							[
								0,
								218
							]
						]
						]
					]
,					[
						190,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						4007333785514082,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						197,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						2415821291611317,
						false
						,[
						[
							0,
							[
								5,
								[
									5,
									[
										19,
										cr.system_object.prototype.exps.viewportright
										,[
[
											2,
											"hud"
										]
										]
									]
									,[
										20,
										197,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									20
								]
							]
						]
,						[
							0,
							[
								5,
								[
									19,
									cr.system_object.prototype.exps.viewportbottom
									,[
[
										2,
										"hud"
									]
									]
								]
								,[
									23,
									"m4_footerOffsetPosY"
								]
							]
						]
						]
					]
,					[
						196,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						4209425168592078,
						false
						,[
						[
							0,
							[
								5,
								[
									5,
									[
										20,
										197,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										20,
										196,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									20
								]
							]
						]
,						[
							0,
							[
								5,
								[
									19,
									cr.system_object.prototype.exps.viewportbottom
									,[
[
										2,
										"hud"
									]
									]
								]
								,[
									23,
									"m4_footerOffsetPosY"
								]
							]
						]
						]
					]
,					[
						195,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						4281660712751191,
						false
						,[
						[
							0,
							[
								0,
								20
							]
						]
,						[
							0,
							[
								0,
								20
							]
						]
						]
					]
,					[
						198,
						cr.plugins_.Sprite.prototype.acts.SetSize,
						null,
						7285621866995705,
						false
						,[
						[
							0,
							[
								0,
								201
							]
						]
,						[
							0,
							[
								0,
								131
							]
						]
						]
					]
,					[
						198,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						4922674492057925,
						false
						,[
						[
							0,
							[
								5,
								[
									5,
									[
										19,
										cr.system_object.prototype.exps.viewportright
										,[
[
											2,
											"hud"
										]
										]
									]
									,[
										20,
										198,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									20
								]
							]
						]
,						[
							0,
							[
								0,
								20
							]
						]
						]
					]
,					[
						232,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						8568395447803017,
						false
						,[
						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						232,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						2456717122668039,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									198,
									cr.plugins_.Sprite.prototype.exps.BBoxLeft,
									false,
									null
								]
								,[
									0,
									20
								]
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									198,
									cr.plugins_.Sprite.prototype.exps.BBoxTop,
									false,
									null
								]
								,[
									0,
									20
								]
							]
						]
						]
					]
,					[
						232,
						cr.plugins_.Text.prototype.acts.MoveToTop,
						null,
						1184717595494374,
						false
					]
,					[
						232,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						8751117779299244,
						false
						,[
						[
							1,
							[
								23,
								"FONT_5_ANGRYBIRDS"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						197,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						2932333775104791,
						false
						,[
						[
							0,
							[
								23,
								"CURR_SOUND"
							]
						]
						]
					]
,					[
						235,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						8298204521737168,
						false
						,[
						[
							0,
							[
								7,
								[
									19,
									cr.system_object.prototype.exps.viewportright
									,[
[
										2,
										"gameModal"
									]
									]
								]
								,[
									0,
									2
								]
							]
						]
,						[
							0,
							[
								4,
								[
									7,
									[
										20,
										199,
										cr.plugins_.Text.prototype.exps.Height,
										false,
										null
									]
									,[
										0,
										2
									]
								]
								,[
									0,
									30
								]
							]
						]
						]
					]
,					[
						235,
						cr.plugins_.Sprite.prototype.acts.ZMoveToObject,
						null,
						1311355771382666,
						false
						,[
						[
							3,
							1
						]
,						[
							4,
							199
						]
						]
					]
,					[
						199,
						cr.plugins_.Text.prototype.acts.SetFontSize,
						null,
						6287411827135646,
						false
						,[
						[
							0,
							[
								0,
								32
							]
						]
						]
					]
,					[
						199,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						5844847065456727,
						false
						,[
						[
							1,
							[
								23,
								"FONT_5_ANGRYBIRDS"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						199,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						3694998607706048,
						false
						,[
						[
							0,
							[
								7,
								[
									19,
									cr.system_object.prototype.exps.viewportright
									,[
[
										2,
										"gameModal"
									]
									]
								]
								,[
									0,
									2
								]
							]
						]
,						[
							0,
							[
								4,
								[
									7,
									[
										20,
										199,
										cr.plugins_.Text.prototype.exps.Height,
										false,
										null
									]
									,[
										0,
										2
									]
								]
								,[
									0,
									30
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3795989743633274,
						false
						,[
						[
							11,
							"m4_timeLeft"
						]
,						[
							7,
							[
								0,
								60
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						8407592671936548,
						false
						,[
						[
							11,
							"m4_levelFinish"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3515571165545718,
						false
						,[
						[
							11,
							"m4_isAimingStarted"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						7499946830733368,
						false
						,[
						[
							11,
							"m4_isAiming"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						210,
						cr.plugins_.Text.prototype.acts.SetSize,
						null,
						1490103176053413,
						false
						,[
						[
							0,
							[
								0,
								75
							]
						]
,						[
							0,
							[
								0,
								75
							]
						]
						]
					]
,					[
						210,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						3492650664782262,
						false
						,[
						[
							0,
							[
								4,
								[
									4,
									[
										19,
										cr.system_object.prototype.exps.viewportleft
										,[
[
											2,
											"hud"
										]
										]
									]
									,[
										20,
										195,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									12
								]
							]
						]
,						[
							0,
							[
								4,
								[
									19,
									cr.system_object.prototype.exps.viewporttop
									,[
[
										2,
										"hud"
									]
									]
								]
								,[
									0,
									10
								]
							]
						]
						]
					]
,					[
						210,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						4076010776593221,
						false
						,[
						[
							7,
							[
								4,
								[
									23,
									"m4_currentLevel"
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
,					[
						210,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						5580990342136506,
						false
						,[
						[
							1,
							[
								23,
								"FONT_5_ANGRYBIRDS"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						253,
						cr.plugins_.TextBox.prototype.acts.SetPos,
						null,
						4394026466542498,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						206,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						9936238705724869,
						false
						,[
						[
							0,
							[
								23,
								"m4_currentLevel"
							]
						]
,						[
							0,
							[
								0,
								4
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						236,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						8522234568296857,
						false
						,[
						[
							0,
							[
								4,
								[
									19,
									cr.system_object.prototype.exps.viewportleft
									,[
[
										2,
										"hud"
									]
									]
								]
								,[
									0,
									20
								]
							]
						]
,						[
							0,
							[
								5,
								[
									19,
									cr.system_object.prototype.exps.viewportbottom
									,[
[
										2,
										"hud"
									]
									]
								]
								,[
									23,
									"m4_footerOffsetPosY"
								]
							]
						]
						]
					]
,					[
						237,
						cr.plugins_.Text.prototype.acts.SetHeight,
						null,
						9161420143335874,
						false
						,[
						[
							0,
							[
								20,
								236,
								cr.plugins_.Sprite.prototype.exps.Height,
								false,
								null
							]
						]
						]
					]
,					[
						237,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						6093855082818607,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									236,
									cr.plugins_.Sprite.prototype.exps.BBoxLeft,
									false,
									null
								]
								,[
									0,
									130
								]
							]
						]
,						[
							0,
							[
								20,
								236,
								cr.plugins_.Sprite.prototype.exps.BBoxTop,
								false,
								null
							]
						]
						]
					]
,					[
						237,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						9709015633153001,
						false
						,[
						[
							1,
							[
								23,
								"FONT_5_ANGRYBIRDS"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						237,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						9717290269134528,
						false
						,[
						[
							7,
							[
								23,
								"m4_targetScore"
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2590642242578624,
						false
						,[
						[
							1,
							[
								2,
								"reloadRobhead"
							]
						]
,						[
							13,
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						1962634028054812,
						[
						[
							-1,
							cr.system_object.prototype.cnds.ForEach,
							null,
							0,
							true,
							false,
							false,
							7881861258615553,
							false
							,[
							[
								4,
								234
							]
							]
						]
						],
						[
						[
							234,
							cr.plugins_.Sprite.prototype.acts.SetPosToObject,
							null,
							6317349100011973,
							false
							,[
							[
								4,
								187
							]
,							[
								7,
								[
									10,
									[
										2,
										"handle_"
									]
									,[
										19,
										cr.system_object.prototype.exps.loopindex
									]
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							8243745667259466,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								4912096069032739,
								false
								,[
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.loopindex
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								234,
								cr.plugins_.Sprite.prototype.acts.MoveToBottom,
								null,
								4120805563436903,
								false
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							4027445303303551,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								9690316796716736,
								false
							]
							],
							[
							[
								234,
								cr.plugins_.Sprite.prototype.acts.MoveToTop,
								null,
								8217717001258813,
								false
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					218486129398433,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						6752474345120264,
						false
						,[
						[
							1,
							[
								2,
								"refreshHUD"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						5058679189160248,
						false
						,[
						[
							11,
							"m4_currentScore"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					]
					,[
					[
						1,
						"m4_generateHeads",
						0,
						0,
false,false,9774951077156171,false
					]
,					[
						0,
						null,
						false,
						null,
						8843460729952783,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.Wait,
							null,
							2014142722061957,
							false
							,[
							[
								0,
								[
									1,
									0.2
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							3015223997911186,
							false
							,[
							[
								11,
								"m4_generateHeads"
							]
,							[
								7,
								[
									5,
									[
										23,
										"m4_numOfRobHeads"
									]
									,[
										20,
										217,
										cr.plugins_.Sprite.prototype.exps.Count,
										false,
										null
									]
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							3556919770777194,
							[
							[
								-1,
								cr.system_object.prototype.cnds.While,
								null,
								0,
								true,
								false,
								false,
								8414568422248035,
								false
							]
,							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								1355326697868974,
								false
								,[
								[
									7,
									[
										23,
										"m4_generateHeads"
									]
								]
,								[
									8,
									4
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.CreateObject,
								null,
								70944768293298,
								false
								,[
								[
									4,
									217
								]
,								[
									5,
									[
										2,
										"gameModal"
									]
								]
,								[
									0,
									[
										4,
										[
											19,
											cr.system_object.prototype.exps.viewportleft
											,[
[
												2,
												"gameModal"
											]
											]
										]
										,[
											19,
											cr.system_object.prototype.exps.random
											,[
[
												0,
												100
											]
,[
												0,
												400
											]
											]
										]
									]
								]
,								[
									0,
									[
										5,
										[
											19,
											cr.system_object.prototype.exps.viewportbottom
											,[
[
												2,
												"gameModal"
											]
											]
										]
										,[
											20,
											217,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SubVar,
								null,
								933928329475272,
								false
								,[
								[
									11,
									"m4_generateHeads"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							8805017373505544,
							[
							[
								-1,
								cr.system_object.prototype.cnds.While,
								null,
								0,
								true,
								false,
								false,
								8356794782707244,
								false
							]
,							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								1985950663165687,
								false
								,[
								[
									7,
									[
										23,
										"m4_generateHeads"
									]
								]
,								[
									8,
									2
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								2479664931129574,
								[
								[
									-1,
									cr.system_object.prototype.cnds.PickRandom,
									null,
									0,
									false,
									false,
									false,
									7218447922011631,
									false
									,[
									[
										4,
										217
									]
									]
								]
								],
								[
								[
									217,
									cr.plugins_.Sprite.prototype.acts.Destroy,
									null,
									3810770560334213,
									false
								]
,								[
									-1,
									cr.system_object.prototype.acts.AddVar,
									null,
									4663612072165022,
									false
									,[
									[
										11,
										"m4_generateHeads"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						9220446097302948,
						[
						[
							206,
							cr.plugins_.Arr.prototype.cnds.ArrForEach,
							null,
							0,
							true,
							false,
							false,
							7567428658936488,
							false
							,[
							[
								3,
								2
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							607166370228285,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								1395534858262007,
								false
								,[
								[
									7,
									[
										20,
										206,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										23,
										"m4_currentLevel"
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								1471329212065427,
								false
								,[
								[
									11,
									"m4_currentScore"
								]
,								[
									7,
									[
										4,
										[
											20,
											206,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												206,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												0,
												4
											]
,[
												0,
												0
											]
											]
										]
										,[
											23,
											"m4_currentScore"
										]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							6461365709677852,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								1520506686747297,
								false
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								1902417210442392,
								false
								,[
								[
									11,
									"m4_currentScore"
								]
,								[
									7,
									[
										4,
										[
											20,
											206,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												206,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												0,
												2
											]
,[
												0,
												0
											]
											]
										]
										,[
											23,
											"m4_currentScore"
										]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6159499468225919,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							744922977443697,
							false
							,[
							[
								7,
								[
									23,
									"m4_currentScore"
								]
							]
,							[
								8,
								5
							]
,							[
								7,
								[
									23,
									"m4_targetScore"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							3131037329495295,
							false
							,[
							[
								1,
								[
									2,
									"mission4End"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						2316751246776291,
						[
						],
						[
						[
							232,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							4860132526924096,
							false
							,[
							[
								7,
								[
									23,
									"m4_currentScore"
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					463951981367648,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						1686407454977377,
						false
						,[
						[
							1,
							[
								2,
								"robCollidesWithSurface"
							]
						]
						]
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.PlayByName,
						null,
						7758060360508312,
						false
						,[
						[
							3,
							0
						]
,						[
							1,
							[
								2,
								"m4_fgTouchNoise"
							]
						]
,						[
							3,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							1,
							[
								2,
								"m4_fgTouchNoise"
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						1111630417676058,
						[
						[
							251,
							cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
							null,
							0,
							false,
							true,
							false,
							5666352378606655,
							false
							,[
							[
								1,
								[
									2,
									"m4_fgTouchNoise"
								]
							]
							]
						]
						],
						[
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2116399787933607,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						5539096703538695,
						false
						,[
						[
							1,
							[
								2,
								"scoreObjectDestroyed"
							]
						]
						]
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.PlayByName,
						null,
						2749712758671893,
						false
						,[
						[
							3,
							0
						]
,						[
							1,
							[
								2,
								"m4_badDestroyed"
							]
						]
,						[
							3,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							1,
							[
								2,
								"m4_badDestroyed"
							]
						]
						]
					]
,					[
						206,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						696191098246067,
						false
						,[
						[
							0,
							[
								23,
								"m4_currentLevel"
							]
						]
,						[
							0,
							[
								0,
								4
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								4,
								[
									20,
									206,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"m4_currentLevel"
									]
,[
										0,
										4
									]
,[
										0,
										0
									]
									]
								]
								,[
									23,
									"m4_correctHitPoints"
								]
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						1502420477649071,
						false
						,[
						[
							1,
							[
								2,
								"refreshHUD"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						5607572710581261,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										10,
										[
											2,
											"currentScore Adding hit points :"
										]
										,[
											20,
											206,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"m4_currentLevel"
											]
,[
												0,
												4
											]
,[
												0,
												0
											]
											]
										]
									]
								]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7863139129307858,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						3725943533730858,
						false
						,[
						[
							1,
							[
								2,
								"resetRobHeadStaticPosition"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						6752234541647009,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4838768282161602,
							false
							,[
							[
								7,
								[
									23,
									"m4_isAiming"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							191,
							cr.plugins_.Sprite.prototype.cnds.PickByUID,
							null,
							0,
							false,
							false,
							true,
							5670902784282086,
							false
							,[
							[
								0,
								[
									23,
									"m4_currentRobheadUID"
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.ScrollToObject,
							null,
							9186284096119649,
							false
							,[
							[
								4,
								191
							]
							]
						]
						]
						,[
						[
							1,
							"m4_currentAngle",
							0,
							0,
false,false,3998824128450681,false
						]
,						[
							1,
							"m4_angleChange",
							0,
							0,
false,false,8190962506287864,false
						]
,						[
							1,
							"m4_distanceSling",
							0,
							0,
false,false,4012665392513657,false
						]
,						[
							0,
							null,
							false,
							null,
							4295707986945101,
							[
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								4521716583520744,
								false
								,[
								[
									11,
									"m4_currentAngle"
								]
,								[
									7,
									[
										19,
										cr.system_object.prototype.exps.angle
										,[
[
											20,
											250,
											cr.plugins_.Touch.prototype.exps.X,
											false,
											null
										]
,[
											20,
											250,
											cr.plugins_.Touch.prototype.exps.Y,
											false,
											null
										]
,[
											20,
											187,
											cr.plugins_.Sprite.prototype.exps.X,
											false,
											null
										]
,[
											20,
											187,
											cr.plugins_.Sprite.prototype.exps.Y,
											false,
											null
										]
										]
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								4769277367660357,
								false
								,[
								[
									11,
									"m4_distanceSling"
								]
,								[
									7,
									[
										19,
										cr.system_object.prototype.exps.distance
										,[
[
											20,
											187,
											cr.plugins_.Sprite.prototype.exps.X,
											false,
											null
										]
,[
											20,
											187,
											cr.plugins_.Sprite.prototype.exps.Y,
											false,
											null
										]
,[
											20,
											250,
											cr.plugins_.Touch.prototype.exps.X,
											false,
											null
										]
,[
											20,
											250,
											cr.plugins_.Touch.prototype.exps.Y,
											false,
											null
										]
										]
									]
								]
								]
							]
							]
						]
,						[
							1,
							"m4_imagePointHandle",
							1,
							"",
false,false,1477167513970597,false
						]
,						[
							0,
							null,
							false,
							null,
							3551209820119069,
							[
							[
								-1,
								cr.system_object.prototype.cnds.ForEach,
								null,
								0,
								true,
								false,
								false,
								6970157982238234,
								false
								,[
								[
									4,
									234
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								6039719889841997,
								false
								,[
								[
									11,
									"m4_imagePointHandle"
								]
,								[
									7,
									[
										10,
										[
											2,
											"handle_"
										]
										,[
											19,
											cr.system_object.prototype.exps.loopindex
										]
									]
								]
								]
							]
,							[
								234,
								cr.plugins_.Sprite.prototype.acts.SetPos,
								null,
								2464924472986652,
								false
								,[
								[
									0,
									[
										20,
										188,
										cr.plugins_.Sprite.prototype.exps.ImagePointX,
										false,
										null
										,[
[
											23,
											"m4_imagePointHandle"
										]
										]
									]
								]
,								[
									0,
									[
										20,
										188,
										cr.plugins_.Sprite.prototype.exps.ImagePointY,
										false,
										null
										,[
[
											23,
											"m4_imagePointHandle"
										]
										]
									]
								]
								]
							]
,							[
								234,
								cr.plugins_.Sprite.prototype.acts.SetWidth,
								null,
								7646082743792755,
								false
								,[
								[
									0,
									[
										19,
										cr.system_object.prototype.exps.distance
										,[
[
											20,
											188,
											cr.plugins_.Sprite.prototype.exps.ImagePointX,
											false,
											null
											,[
[
												23,
												"m4_imagePointHandle"
											]
											]
										]
,[
											20,
											188,
											cr.plugins_.Sprite.prototype.exps.ImagePointY,
											false,
											null
											,[
[
												23,
												"m4_imagePointHandle"
											]
											]
										]
,[
											20,
											187,
											cr.plugins_.Sprite.prototype.exps.ImagePointX,
											false,
											null
											,[
[
												23,
												"m4_imagePointHandle"
											]
											]
										]
,[
											20,
											187,
											cr.plugins_.Sprite.prototype.exps.ImagePointY,
											false,
											null
											,[
[
												23,
												"m4_imagePointHandle"
											]
											]
										]
										]
									]
								]
								]
							]
,							[
								234,
								cr.plugins_.Sprite.prototype.acts.SetTowardPosition,
								null,
								7949056543049363,
								false
								,[
								[
									0,
									[
										20,
										187,
										cr.plugins_.Sprite.prototype.exps.ImagePointX,
										false,
										null
										,[
[
											23,
											"m4_imagePointHandle"
										]
										]
									]
								]
,								[
									0,
									[
										20,
										187,
										cr.plugins_.Sprite.prototype.exps.ImagePointY,
										false,
										null
										,[
[
											23,
											"m4_imagePointHandle"
										]
										]
									]
								]
								]
							]
							]
							,[
							[
								0,
								null,
								false,
								null,
								9603367060307222,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									3721129832558214,
									false
									,[
									[
										7,
										[
											19,
											cr.system_object.prototype.exps.loopindex
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								],
								[
								[
									234,
									cr.plugins_.Sprite.prototype.acts.MoveToTop,
									null,
									7014490003351109,
									false
								]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			3756969991613332,
			[
			[
				217,
				cr.behaviors.Physics.prototype.cnds.IsSleeping,
				"Physics",
				0,
				false,
				false,
				false,
				6824338739180336,
				false
			]
			],
			[
			[
				217,
				cr.behaviors.Physics.prototype.acts.SetEnabled,
				"Physics",
				367585469301595,
				false
				,[
				[
					3,
					0
				]
				]
			]
,			[
				217,
				cr.plugins_.Sprite.prototype.acts.MoveToLayer,
				null,
				680500322240827,
				false
				,[
				[
					5,
					[
						0,
						0
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			3182894899276496,
			[
			[
				218,
				cr.plugins_.Sprite.prototype.cnds.OnDestroyed,
				null,
				1,
				false,
				false,
				false,
				2080291774930706,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.Wait,
				null,
				4919656980211995,
				false
				,[
				[
					0,
					[
						1,
						0.2
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				2797963590083051,
				false
				,[
				[
					1,
					[
						2,
						"checkMissionDone"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			7930549626641558,
			[
			[
				189,
				cr.plugins_.Sprite.prototype.cnds.OnDestroyed,
				null,
				1,
				false,
				false,
				false,
				8396457367432468,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.Wait,
				null,
				4135184178817069,
				false
				,[
				[
					0,
					[
						1,
						0.2
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				6951503696500324,
				false
				,[
				[
					1,
					[
						2,
						"checkMissionDone"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			8035518143122088,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutEnd,
				null,
				1,
				false,
				false,
				false,
				1497837477015926,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				2231675033916289,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					false,
					false,
					4347172968050804,
					false
					,[
					[
						1,
						[
							2,
							"m4_bg"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.Stop,
					null,
					5977275284302069,
					false
					,[
					[
						1,
						[
							2,
							"m4_bg"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			7850800773394829,
			[
			[
				-1,
				cr.system_object.prototype.cnds.Every,
				null,
				0,
				false,
				false,
				false,
				5392863504321508,
				false
				,[
				[
					0,
					[
						1,
						0.5
					]
				]
				]
			]
			],
			[
			]
		]
		]
	]
,	[
		"ES_mission4Common",
		[
		[
			1,
			"m4_canonDownwardAngle",
			0,
			0,
false,false,7596265064718598,false
		]
,		[
			1,
			"m4_canonUpwardAngle",
			0,
			-90,
false,false,5046563614206007,false
		]
,		[
			1,
			"m4_cannonAngle",
			0,
			0,
false,false,5530616577295527,false
		]
,		[
			1,
			"m4_numOfRobHeads",
			0,
			0,
false,false,611253729080464,false
		]
,		[
			1,
			"m4_QALoadComplete",
			0,
			0,
false,false,5097506837214142,false
		]
,		[
			1,
			"hiddenPosX",
			0,
			-2000,
false,false,989095759560949,false
		]
,		[
			1,
			"m4_numOfLevel",
			0,
			10,
false,false,6232886319405522,false
		]
,		[
			1,
			"m4_currentLevel",
			0,
			0,
false,false,1489880042040391,false
		]
,		[
			1,
			"m4_gameMission4Initialized",
			0,
			0,
false,false,8799509824189232,false
		]
,		[
			1,
			"m4_QAChoiceSelected",
			0,
			0,
false,false,7133889778087452,false
		]
,		[
			1,
			"m4_QAIdx",
			0,
			0,
false,false,6473907285108814,false
		]
,		[
			1,
			"m4_targetScore",
			0,
			1000,
false,false,4764947169308431,false
		]
,		[
			1,
			"m4_currentScore",
			0,
			0,
false,false,753052032549235,false
		]
,		[
			1,
			"m4_correctAnswerPoints",
			0,
			10,
false,false,602516435479347,false
		]
,		[
			1,
			"m4_correctHitPoints",
			0,
			50,
false,false,3976701388892304,false
		]
,		[
			1,
			"m4_finalScore",
			0,
			0,
false,false,8100151994273013,false
		]
,		[
			0,
			[true, "GroupCommonEntities"],
			false,
			null,
			7089544417652987,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				7089544417652987,
				false
				,[
				[
					1,
					[
						2,
						"GroupCommonEntities"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				[true, "GroupLevelChange"],
				false,
				null,
				5132942273456961,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					5132942273456961,
					false
					,[
					[
						1,
						[
							2,
							"GroupLevelChange"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					9851239226195144,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						7606495858574703,
						false
						,[
						[
							4,
							202
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						8560514249085727,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										10,
										[
											2,
											"m4_currentLevel:"
										]
										,[
											23,
											"m4_currentLevel"
										]
									]
								]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetGroupActive,
						null,
						7115580096144947,
						false
						,[
						[
							1,
							[
								2,
								"LevelMainTasks"
							]
						]
,						[
							3,
							1
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						6897819775640288,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							1835722818865254,
							false
							,[
							[
								7,
								[
									5,
									[
										23,
										"m4_numOfLevel"
									]
									,[
										0,
										1
									]
								]
							]
,							[
								8,
								4
							]
,							[
								7,
								[
									23,
									"m4_currentLevel"
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							891537462434559,
							false
							,[
							[
								11,
								"m4_currentLevel"
							]
,							[
								7,
								[
									4,
									[
										23,
										"m4_currentLevel"
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7203866469814365,
							false
							,[
							[
								11,
								"m4_numOfRobHeads"
							]
,							[
								7,
								[
									0,
									3
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.GoToLayoutByName,
							null,
							3644646338874512,
							false
							,[
							[
								1,
								[
									10,
									[
										2,
										"Mission4Level"
									]
									,[
										4,
										[
											23,
											"m4_currentLevel"
										]
										,[
											0,
											1
										]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7078780925840912,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							9145028384945322,
							false
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							9225322457354505,
							false
							,[
							[
								1,
								[
									2,
									"mission4End"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4862613404835125,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						8500891003920114,
						false
						,[
						[
							1,
							[
								2,
								"mission4PopupLevelEnd"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						1,
						"m4_btnWidth",
						0,
						0,
false,false,9315328079513714,false
					]
,					[
						1,
						"m4_levelChangeLabelX",
						0,
						0,
false,false,907970212519127,false
					]
,					[
						1,
						"m4_popupDialogX",
						0,
						0,
false,false,232688711421207,false
					]
,					[
						0,
						null,
						false,
						null,
						2306647576305337,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4546429830136616,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"hide"
								]
							]
							]
						]
						],
						[
						[
							201,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							6668637435516506,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							204,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							1038417664697064,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							203,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							9902756005825611,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							202,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							18280758073842,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							209,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							5644043243167237,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							207,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							2132475869410119,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							208,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							8613000734498925,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						9560137840901464,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							7952550483617008,
							false
						]
						],
						[
						[
							201,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							2986148848118047,
							false
							,[
							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.viewportright
										,[
[
											2,
											"gameModal"
										]
										]
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.viewportbottom
										,[
[
											2,
											"gameModal"
										]
										]
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4652316159670858,
							false
							,[
							[
								11,
								"m4_levelChangeLabelX"
							]
,							[
								7,
								[
									4,
									[
										20,
										201,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										0,
										200
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7757764863844705,
							false
							,[
							[
								11,
								"m4_popupDialogX"
							]
,							[
								7,
								[
									20,
									201,
									cr.plugins_.Sprite.prototype.exps.BBoxLeft,
									false,
									null
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							704491615529693,
							false
							,[
							[
								11,
								"m4_btnWidth"
							]
,							[
								7,
								[
									7,
									[
										20,
										201,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
									,[
										0,
										3
									]
								]
							]
							]
						]
,						[
							204,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							9214517058872503,
							false
							,[
							[
								0,
								[
									4,
									[
										4,
										[
											23,
											"m4_popupDialogX"
										]
										,[
											6,
											[
												23,
												"m4_btnWidth"
											]
											,[
												0,
												0
											]
										]
									]
									,[
										7,
										[
											23,
											"m4_btnWidth"
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										20,
										201,
										cr.plugins_.Sprite.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										20,
										204,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
							]
							]
						]
,						[
							203,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							4578508592800273,
							false
							,[
							[
								0,
								[
									4,
									[
										4,
										[
											23,
											"m4_popupDialogX"
										]
										,[
											6,
											[
												23,
												"m4_btnWidth"
											]
											,[
												0,
												1
											]
										]
									]
									,[
										7,
										[
											23,
											"m4_btnWidth"
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										20,
										201,
										cr.plugins_.Sprite.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										20,
										203,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
							]
							]
						]
,						[
							202,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							4470552175450693,
							false
							,[
							[
								0,
								[
									4,
									[
										4,
										[
											23,
											"m4_popupDialogX"
										]
										,[
											6,
											[
												23,
												"m4_btnWidth"
											]
											,[
												0,
												2
											]
										]
									]
									,[
										7,
										[
											23,
											"m4_btnWidth"
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										20,
										201,
										cr.plugins_.Sprite.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										20,
										202,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
							]
							]
						]
,						[
							209,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							4243424049031931,
							false
							,[
							[
								0,
								[
									4,
									[
										23,
										"m4_levelChangeLabelX"
									]
									,[
										7,
										[
											20,
											209,
											cr.plugins_.Text.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										201,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										150
									]
								]
							]
							]
						]
,						[
							207,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							1927270389726546,
							false
							,[
							[
								0,
								[
									4,
									[
										23,
										"m4_levelChangeLabelX"
									]
									,[
										7,
										[
											20,
											209,
											cr.plugins_.Text.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										201,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										210
									]
								]
							]
							]
						]
,						[
							208,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							3331192735108651,
							false
							,[
							[
								0,
								[
									4,
									[
										23,
										"m4_levelChangeLabelX"
									]
									,[
										7,
										[
											20,
											209,
											cr.plugins_.Text.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										201,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										296
									]
								]
							]
							]
						]
,						[
							209,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							3650626517536348,
							false
							,[
							[
								7,
								[
									20,
									206,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"m4_currentLevel"
									]
,[
										0,
										4
									]
,[
										0,
										0
									]
									]
								]
							]
							]
						]
,						[
							207,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							9872575798966686,
							false
							,[
							[
								7,
								[
									20,
									206,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"m4_currentLevel"
									]
,[
										0,
										1
									]
,[
										0,
										0
									]
									]
								]
							]
							]
						]
,						[
							208,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							6881128130304206,
							false
							,[
							[
								7,
								[
									23,
									"m4_currentScore"
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							3279014883260302,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								7073796634861941,
								false
								,[
								[
									7,
									[
										20,
										206,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m4_currentLevel"
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								201,
								cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
								null,
								4117035195181757,
								false
								,[
								[
									0,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							6963444994972032,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								8775866768923883,
								false
							]
							],
							[
							[
								201,
								cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
								null,
								3381149213789129,
								false
								,[
								[
									0,
									[
										0,
										0
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1163368740799033,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						1078709784380955,
						false
						,[
						[
							4,
							204
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.Wait,
						null,
						905754322130382,
						false
						,[
						[
							0,
							[
								1,
								0.2
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.RestartLayout,
						null,
						3065896884826799,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					5622131793711457,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						7151274246141787,
						false
						,[
						[
							1,
							[
								2,
								"mission4End"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						1,
						"m4_finalScoreTemp",
						0,
						0,
false,false,1694984012023531,false
					]
,					[
						1,
						"m4_missionNum",
						0,
						0,
false,false,7815278410663088,false
					]
,					[
						1,
						"m4_globalAnimation",
						1,
						"M4lost",
false,false,7373233442261471,false
					]
,					[
						0,
						null,
						false,
						null,
						2475686379671596,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3964180986609325,
							false
							,[
							[
								7,
								[
									23,
									"m4_currentScore"
								]
							]
,							[
								8,
								5
							]
,							[
								7,
								[
									23,
									"m4_targetScore"
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4633584333946238,
							false
							,[
							[
								11,
								"m4_globalAnimation"
							]
,							[
								7,
								[
									2,
									"M4win"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1320652803570729,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2256792347132488,
							false
							,[
							[
								11,
								"m4_finalScoreTemp"
							]
,							[
								7,
								[
									4,
									[
										23,
										"m4_currentScore"
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2215339778974395,
							false
							,[
							[
								11,
								"m4_missionNum"
							]
,							[
								7,
								[
									23,
									"currentMissionNum"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.ResetGlobals,
							null,
							8900980804628621,
							false
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							997573885968827,
							false
							,[
							[
								11,
								"m4_finalScore"
							]
,							[
								7,
								[
									23,
									"m4_finalScoreTemp"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4535922114062996,
							false
							,[
							[
								11,
								"currentMissionNum"
							]
,							[
								7,
								[
									23,
									"m4_missionNum"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8156248037179921,
							false
							,[
							[
								11,
								"currentStoryAnimation"
							]
,							[
								7,
								[
									23,
									"m4_globalAnimation"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.GoToLayoutByName,
							null,
							8379235940961825,
							false
							,[
							[
								1,
								[
									2,
									"LayoutStory"
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "GroupQA"],
				false,
				null,
				4040411153876143,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					4040411153876143,
					false
					,[
					[
						1,
						[
							2,
							"GroupQA"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					6223221380343117,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						4678654060410931,
						false
						,[
						[
							1,
							[
								2,
								"refreshQAChoices"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						1770329828501636,
						[
						[
							-1,
							cr.system_object.prototype.cnds.ForEach,
							null,
							0,
							true,
							false,
							false,
							7905793502661785,
							false
							,[
							[
								4,
								212
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							8070538709418885,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								1692623717068073,
								false
								,[
								[
									7,
									[
										21,
										212,
										false,
										null
										,0
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										23,
										"m4_QAChoiceSelected"
									]
								]
								]
							]
							],
							[
							[
								212,
								cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
								null,
								8554363989574854,
								false
								,[
								[
									0,
									[
										0,
										0
									]
								]
								]
							]
,							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								8444673601027819,
								false
								,[
								[
									1,
									[
										2,
										"print"
									]
								]
,								[
									13,
																			[
											7,
											[
												10,
												[
													2,
													"Set to SEL : m4_QAChoice.pos:"
												]
												,[
													21,
													212,
													false,
													null
													,0
												]
											]
										]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							5133049134099445,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								8923106774363928,
								false
							]
							],
							[
							[
								212,
								cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
								null,
								9318950168956726,
								false
								,[
								[
									0,
									[
										0,
										1
									]
								]
								]
							]
,							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								5249388543451936,
								false
								,[
								[
									1,
									[
										2,
										"print"
									]
								]
,								[
									13,
																			[
											7,
											[
												10,
												[
													2,
													"Set to NA : m4_QAChoice.pos:"
												]
												,[
													21,
													212,
													false,
													null
													,0
												]
											]
										]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8480481214826579,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						3758042093609755,
						false
						,[
						[
							4,
							215
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						1161603001516784,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										10,
										[
											10,
											[
												10,
												[
													2,
													"Correct Choice Is:"
												]
												,[
													20,
													216,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														23,
														"m4_QAIdx"
													]
,[
														0,
														0
													]
,[
														0,
														1
													]
													]
												]
											]
											,[
												2,
												" and you selected:"
											]
										]
										,[
											23,
											"m4_QAChoiceSelected"
										]
									]
								]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						5289018047082528,
						[
						[
							212,
							cr.plugins_.Sprite.prototype.cnds.CompareFrame,
							null,
							0,
							false,
							false,
							false,
							2781082584190474,
							false
							,[
							[
								8,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							873555563472356,
							false
							,[
							[
								1,
								[
									2,
									"mission4PopupQA"
								]
							]
,							[
								13,
																	[
										7,
										[
											2,
											"hide"
										]
									]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							8897043994578799,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								9706962181144198,
								false
								,[
								[
									7,
									[
										20,
										216,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m4_QAIdx"
										]
,[
											0,
											0
										]
,[
											0,
											1
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										23,
										"m4_QAChoiceSelected"
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.AddVar,
								null,
								7395146905506647,
								false
								,[
								[
									11,
									"m4_numOfRobHeads"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
,							[
								206,
								cr.plugins_.Arr.prototype.acts.SetXYZ,
								null,
								2019463811187135,
								false
								,[
								[
									0,
									[
										23,
										"m4_currentLevel"
									]
								]
,								[
									0,
									[
										0,
										4
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									7,
									[
										4,
										[
											20,
											206,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"m4_currentLevel"
											]
,[
												0,
												4
											]
,[
												0,
												0
											]
											]
										]
										,[
											23,
											"m4_correctAnswerPoints"
										]
									]
								]
								]
							]
,							[
								251,
								cr.plugins_.Audio.prototype.acts.PlayByName,
								null,
								746901757193736,
								false
								,[
								[
									3,
									0
								]
,								[
									1,
									[
										2,
										"m4_correctAnswer"
									]
								]
,								[
									3,
									0
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									1,
									[
										2,
										"m4_correctAnswer"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							2037570819008957,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								6145068624132435,
								false
							]
							],
							[
							[
								251,
								cr.plugins_.Audio.prototype.acts.PlayByName,
								null,
								3315450133874715,
								false
								,[
								[
									3,
									0
								]
,								[
									1,
									[
										2,
										"m4_incorrectAnswer"
									]
								]
,								[
									3,
									0
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									1,
									[
										2,
										"m4_incorrectAnswer"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							6305575645271575,
							[
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.Wait,
								null,
								393547390880327,
								false
								,[
								[
									0,
									[
										1,
										0.2
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetGroupActive,
								null,
								4906045934909066,
								false
								,[
								[
									1,
									[
										2,
										"LevelMainTasks"
									]
								]
,								[
									3,
									1
								]
								]
							]
,							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								9570722398358312,
								false
								,[
								[
									1,
									[
										2,
										"reloadRobhead"
									]
								]
,								[
									13,
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2888065577929689,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						4283497582839861,
						false
						,[
						[
							4,
							214
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4894968624167635,
						false
						,[
						[
							11,
							"m4_QAChoiceSelected"
						]
,						[
							7,
							[
								21,
								212,
								false,
								null
								,0
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						7577594862565878,
						false
						,[
						[
							1,
							[
								2,
								"refreshQAChoices"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4117912256831859,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						7666246984550436,
						false
						,[
						[
							4,
							212
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4269241022161551,
						false
						,[
						[
							11,
							"m4_QAChoiceSelected"
						]
,						[
							7,
							[
								21,
								212,
								false,
								null
								,0
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						83603648660523,
						false
						,[
						[
							1,
							[
								2,
								"refreshQAChoices"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7270982157166885,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						7895421527035845,
						false
						,[
						[
							1,
							[
								2,
								"mission4PopupQA"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						1,
						"m4_Y",
						0,
						0,
false,false,1280085393675729,false
					]
,					[
						0,
						null,
						false,
						null,
						1856846889512418,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							9395737922812726,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"hide"
								]
							]
							]
						]
						],
						[
						[
							211,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							9242324581681446,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							213,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							6395000267648854,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							7541309725417849,
							[
							[
								-1,
								cr.system_object.prototype.cnds.ForEach,
								null,
								0,
								true,
								false,
								false,
								1673693357690344,
								false
								,[
								[
									4,
									214
								]
								]
							]
							],
							[
							[
								214,
								cr.plugins_.Text.prototype.acts.SetPos,
								null,
								7893645077963096,
								false
								,[
								[
									0,
									[
										23,
										"hiddenPosX"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
								]
							]
,							[
								212,
								cr.plugins_.Sprite.prototype.acts.SetPos,
								null,
								5619837208166434,
								false
								,[
								[
									0,
									[
										23,
										"hiddenPosX"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							8115903099897918,
							[
							],
							[
							[
								215,
								cr.plugins_.Sprite.prototype.acts.SetPos,
								null,
								5989226123202191,
								false
								,[
								[
									0,
									[
										23,
										"hiddenPosX"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
								]
							]
,							[
								238,
								cr.plugins_.Sprite.prototype.acts.SetPos,
								null,
								4687199341641936,
								false
								,[
								[
									0,
									[
										23,
										"hiddenPosX"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
								]
							]
,							[
								272,
								cr.plugins_.Text.prototype.acts.SetPos,
								null,
								9711920747123568,
								false
								,[
								[
									0,
									[
										23,
										"hiddenPosX"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
								]
							]
,							[
								35,
								cr.plugins_.Sprite.prototype.acts.SetPos,
								null,
								3435823145355886,
								false
								,[
								[
									0,
									[
										23,
										"hiddenPosX"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						4170892319560503,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							8852102722293579,
							false
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9961379426146225,
							false
							,[
							[
								11,
								"m4_QAChoiceSelected"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							272,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							508005094627663,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							35,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							9677657599017245,
							false
							,[
							[
								0,
								[
									23,
									"hiddenPosX"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							3464371136678375,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								9209057528935245,
								false
								,[
								[
									7,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											1
										]
										]
									]
								]
,								[
									8,
									1
								]
,								[
									7,
									[
										2,
										"N"
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								6189841924860967,
								false
								,[
								[
									11,
									"m4_QAIdx"
								]
,								[
									7,
									[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											19,
											cr.system_object.prototype.exps.random
											,[
[
												20,
												216,
												cr.plugins_.Arr.prototype.exps.Width,
												false,
												null
											]
											]
										]
										]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							816294705518211,
							[
							],
							[
							[
								260,
								cr.plugins_.Arr.prototype.acts.SetSize,
								null,
								6135709704721035,
								false
								,[
								[
									0,
									[
										20,
										212,
										cr.plugins_.Sprite.prototype.exps.Count,
										false,
										null
									]
								]
,								[
									0,
									[
										0,
										1
									]
								]
,								[
									0,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							8537957963271013,
							[
							[
								260,
								cr.plugins_.Arr.prototype.cnds.ArrForEach,
								null,
								0,
								true,
								false,
								false,
								4539612234513665,
								false
								,[
								[
									3,
									2
								]
								]
							]
							],
							[
							[
								260,
								cr.plugins_.Arr.prototype.acts.SetXYZ,
								null,
								1518479635351169,
								false
								,[
								[
									0,
									[
										20,
										260,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									7,
									[
										20,
										260,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							9005934151051346,
							[
							],
							[
							[
								211,
								cr.plugins_.Sprite.prototype.acts.SetPos,
								null,
								6718880495356374,
								false
								,[
								[
									0,
									[
										7,
										[
											19,
											cr.system_object.prototype.exps.viewportright
											,[
[
												2,
												"gameModal"
											]
											]
										]
										,[
											0,
											2
										]
									]
								]
,								[
									0,
									[
										7,
										[
											19,
											cr.system_object.prototype.exps.viewportbottom
											,[
[
												2,
												"gameModal"
											]
											]
										]
										,[
											0,
											2
										]
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								7486147810159578,
								false
								,[
								[
									11,
									"m4_Y"
								]
,								[
									7,
									[
										4,
										[
											20,
											211,
											cr.plugins_.Sprite.prototype.exps.BBoxTop,
											false,
											null
										]
										,[
											0,
											100
										]
									]
								]
								]
							]
,							[
								213,
								cr.plugins_.Text.prototype.acts.SetSize,
								null,
								3904887282135348,
								false
								,[
								[
									0,
									[
										5,
										[
											20,
											211,
											cr.plugins_.Sprite.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											50
										]
									]
								]
,								[
									0,
									[
										7,
										[
											20,
											211,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
										,[
											0,
											5
										]
									]
								]
								]
							]
,							[
								213,
								cr.plugins_.Text.prototype.acts.SetPos,
								null,
								7564428306588356,
								false
								,[
								[
									0,
									[
										4,
										[
											20,
											211,
											cr.plugins_.Sprite.prototype.exps.BBoxLeft,
											false,
											null
										]
										,[
											7,
											[
												5,
												[
													20,
													211,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													20,
													213,
													cr.plugins_.Text.prototype.exps.Width,
													false,
													null
												]
											]
											,[
												0,
												2
											]
										]
									]
								]
,								[
									0,
									[
										4,
										[
											23,
											"m4_Y"
										]
										,[
											7,
											[
												20,
												213,
												cr.plugins_.Text.prototype.exps.Height,
												false,
												null
											]
											,[
												0,
												2
											]
										]
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								2007660720142983,
								false
								,[
								[
									11,
									"m4_Y"
								]
,								[
									7,
									[
										4,
										[
											20,
											213,
											cr.plugins_.Text.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											0,
											10
										]
									]
								]
								]
							]
,							[
								213,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								3777967962860598,
								false
								,[
								[
									7,
									[
										20,
										216,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m4_QAIdx"
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
										]
									]
								]
								]
							]
							]
							,[
							[
								1,
								"randomLoopIdx",
								0,
								0,
false,false,7768418888288012,false
							]
,							[
								1,
								"currentLoopIdxVal",
								0,
								0,
false,false,942863604753269,false
							]
,							[
								0,
								null,
								false,
								null,
								2898652052208455,
								[
								[
									-1,
									cr.system_object.prototype.cnds.ForEach,
									null,
									0,
									true,
									false,
									false,
									2430542815440867,
									false
									,[
									[
										4,
										214
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									4922542652112097,
									false
									,[
									[
										11,
										"randomLoopIdx"
									]
,									[
										7,
										[
											19,
											cr.system_object.prototype.exps.floor
											,[
[
												19,
												cr.system_object.prototype.exps.random
												,[
[
													5,
													[
														20,
														212,
														cr.plugins_.Sprite.prototype.exps.Count,
														false,
														null
													]
													,[
														19,
														cr.system_object.prototype.exps.loopindex
													]
												]
												]
											]
											]
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									4160094218825763,
									false
									,[
									[
										11,
										"currentLoopIdxVal"
									]
,									[
										7,
										[
											20,
											260,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"randomLoopIdx"
											]
,[
												0,
												0
											]
,[
												0,
												0
											]
											]
										]
									]
									]
								]
,								[
									214,
									cr.plugins_.Text.prototype.acts.SetSize,
									null,
									6958409473512623,
									false
									,[
									[
										0,
										[
											5,
											[
												5,
												[
													20,
													213,
													cr.plugins_.Text.prototype.exps.Width,
													false,
													null
												]
												,[
													20,
													212,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
											]
											,[
												0,
												50
											]
										]
									]
,									[
										0,
										[
											0,
											50
										]
									]
									]
								]
,								[
									214,
									cr.plugins_.Text.prototype.acts.SetPos,
									null,
									410053325872106,
									false
									,[
									[
										0,
										[
											5,
											[
												20,
												213,
												cr.plugins_.Text.prototype.exps.BBoxRight,
												false,
												null
											]
											,[
												20,
												214,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
									]
,									[
										0,
										[
											4,
											[
												23,
												"m4_Y"
											]
											,[
												6,
												[
													23,
													"currentLoopIdxVal"
												]
												,[
													4,
													[
														20,
														214,
														cr.plugins_.Text.prototype.exps.Height,
														false,
														null
													]
													,[
														0,
														20
													]
												]
											]
										]
									]
									]
								]
,								[
									212,
									cr.plugins_.Sprite.prototype.acts.SetPos,
									null,
									2406259435509064,
									false
									,[
									[
										0,
										[
											5,
											[
												5,
												[
													20,
													214,
													cr.plugins_.Text.prototype.exps.BBoxLeft,
													false,
													null
												]
												,[
													7,
													[
														20,
														212,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
													,[
														0,
														2
													]
												]
											]
											,[
												0,
												10
											]
										]
									]
,									[
										0,
										[
											4,
											[
												20,
												214,
												cr.plugins_.Text.prototype.exps.BBoxTop,
												false,
												null
											]
											,[
												7,
												[
													20,
													212,
													cr.plugins_.Sprite.prototype.exps.Height,
													false,
													null
												]
												,[
													0,
													2
												]
											]
										]
									]
									]
								]
,								[
									212,
									cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
									null,
									28838526226949,
									false
									,[
									[
										0,
										[
											0,
											1
										]
									]
									]
								]
,								[
									214,
									cr.plugins_.Text.prototype.acts.SetText,
									null,
									9308810825080695,
									false
									,[
									[
										7,
										[
											20,
											216,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"m4_QAIdx"
											]
,[
												0,
												1
											]
,[
												21,
												212,
												false,
												null
												,0
											]
											]
										]
									]
									]
								]
,								[
									260,
									cr.plugins_.Arr.prototype.acts.Delete,
									null,
									6299485114710379,
									false
									,[
									[
										0,
										[
											23,
											"randomLoopIdx"
										]
									]
,									[
										3,
										0
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								6536908338921441,
								[
								],
								[
								[
									238,
									cr.plugins_.Sprite.prototype.acts.SetPos,
									null,
									1210493844698174,
									false
									,[
									[
										0,
										[
											4,
											[
												4,
												[
													20,
													211,
													cr.plugins_.Sprite.prototype.exps.BBoxLeft,
													false,
													null
												]
												,[
													7,
													[
														5,
														[
															20,
															211,
															cr.plugins_.Sprite.prototype.exps.Width,
															false,
															null
														]
														,[
															4,
															[
																4,
																[
																	20,
																	215,
																	cr.plugins_.Sprite.prototype.exps.Width,
																	false,
																	null
																]
																,[
																	20,
																	238,
																	cr.plugins_.Sprite.prototype.exps.Width,
																	false,
																	null
																]
															]
															,[
																0,
																20
															]
														]
													]
													,[
														0,
														2
													]
												]
											]
											,[
												7,
												[
													20,
													238,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													0,
													2
												]
											]
										]
									]
,									[
										0,
										[
											4,
											[
												5,
												[
													20,
													211,
													cr.plugins_.Sprite.prototype.exps.BBoxBottom,
													false,
													null
												]
												,[
													20,
													215,
													cr.plugins_.Sprite.prototype.exps.Height,
													false,
													null
												]
											]
											,[
												0,
												20
											]
										]
									]
									]
								]
,								[
									215,
									cr.plugins_.Sprite.prototype.acts.SetPos,
									null,
									439321910373316,
									false
									,[
									[
										0,
										[
											4,
											[
												4,
												[
													20,
													238,
													cr.plugins_.Sprite.prototype.exps.BBoxRight,
													false,
													null
												]
												,[
													0,
													20
												]
											]
											,[
												7,
												[
													20,
													215,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													0,
													2
												]
											]
										]
									]
,									[
										0,
										[
											4,
											[
												5,
												[
													20,
													211,
													cr.plugins_.Sprite.prototype.exps.BBoxBottom,
													false,
													null
												]
												,[
													20,
													215,
													cr.plugins_.Sprite.prototype.exps.Height,
													false,
													null
												]
											]
											,[
												0,
												20
											]
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3519567616596971,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						2717587721633972,
						false
						,[
						[
							4,
							238
						]
						]
					]
					],
					[
					[
						272,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						5913271277677764,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									211,
									cr.plugins_.Sprite.prototype.exps.BBoxLeft,
									false,
									null
								]
								,[
									0,
									30
								]
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									211,
									cr.plugins_.Sprite.prototype.exps.BBoxTop,
									false,
									null
								]
								,[
									0,
									100
								]
							]
						]
						]
					]
,					[
						272,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						3162055080523166,
						false
						,[
						[
							7,
							[
								20,
								216,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									23,
									"m4_QAIdx"
								]
,[
									0,
									2
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						272,
						cr.plugins_.Text.prototype.acts.MoveToLayer,
						null,
						5277848044239873,
						false
						,[
						[
							5,
							[
								2,
								"gameModal"
							]
						]
						]
					]
,					[
						35,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						9426867049947501,
						false
						,[
						[
							0,
							[
								4,
								[
									5,
									[
										20,
										272,
										cr.plugins_.Text.prototype.exps.BBoxRight,
										false,
										null
									]
									,[
										20,
										35,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									10
								]
							]
						]
,						[
							0,
							[
								4,
								[
									4,
									[
										20,
										272,
										cr.plugins_.Text.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										20,
										35,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
								]
								,[
									0,
									30
								]
							]
						]
						]
					]
,					[
						238,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						3971051099119785,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						215,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						7228020070957333,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						212,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						4520278721721297,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						214,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						5644348312415934,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						213,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						6169252748423961,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2652367761437777,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						5334603753383721,
						false
						,[
						[
							4,
							35
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						6473788736008524,
						false
						,[
						[
							1,
							[
								2,
								"mission4PopupQA"
							]
						]
,						[
							13,
															[
									7,
									[
										2,
										"show"
									]
								]
,
								[
									7,
									[
										2,
										"N"
									]
								]
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			7021811785700024,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				1309762004531359,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				6495595302441629,
				false
				,[
				[
					11,
					"currentGameId"
				]
,				[
					7,
					[
						0,
						2
					]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				2878522547509325,
				[
				[
					-1,
					cr.system_object.prototype.cnds.ForEach,
					null,
					0,
					true,
					false,
					false,
					2843903022969409,
					false
					,[
					[
						4,
						214
					]
					]
				]
				],
				[
				[
					212,
					cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
					null,
					2937990417573241,
					false
					,[
					[
						10,
						0
					]
,					[
						7,
						[
							19,
							cr.system_object.prototype.exps.loopindex
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2682381052421255,
				[
				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					6637623722550773,
					false
					,[
					[
						11,
						"m4_gameMission4Initialized"
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					7978316556589194,
					false
					,[
					[
						11,
						"m4_gameMission4Initialized"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
,				[
					255,
					cr.plugins_.AJAX.prototype.acts.Request,
					null,
					1465523320746733,
					false
					,[
					[
						1,
						[
							2,
							"mission4_qa"
						]
					]
,					[
						1,
						[
							10,
							[
								10,
								[
									10,
									[
										10,
										[
											23,
											"REST_SERVICE_DOMAIN"
										]
										,[
											2,
											"questionbank?id="
										]
									]
									,[
										23,
										"currentGameId"
									]
								]
								,[
									2,
									"&username="
								]
							]
							,[
								20,
								257,
								cr.plugins_.Dictionary.prototype.exps.Get,
								false,
								null
								,[
[
									2,
									"email"
								]
								]
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					9489346854345507,
					false
					,[
					[
						11,
						"m4_currentLevel"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2627310997486462,
				[
				],
				[
				[
					197,
					cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
					null,
					159223237101065,
					false
					,[
					[
						0,
						[
							23,
							"CURR_SOUND"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9220888256423788,
			[
			[
				255,
				cr.plugins_.AJAX.prototype.cnds.OnComplete,
				null,
				1,
				false,
				false,
				false,
				2773912018595323,
				false
				,[
				[
					1,
					[
						2,
						"mission4_qa"
					]
				]
				]
			]
			],
			[
			[
				216,
				cr.plugins_.Arr.prototype.acts.JSONLoad,
				null,
				2812040877541737,
				false
				,[
				[
					1,
					[
						20,
						255,
						cr.plugins_.AJAX.prototype.exps.LastData,
						true,
						null
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				8464695458911585,
				false
				,[
				[
					11,
					"m4_QALoadComplete"
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			1738719416471227,
			[
			[
				255,
				cr.plugins_.AJAX.prototype.cnds.OnError,
				null,
				1,
				false,
				false,
				false,
				8334893523188441,
				false
				,[
				[
					1,
					[
						2,
						"mission4_qa"
					]
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				9709579570397002,
				false
				,[
				[
					1,
					[
						2,
						"print"
					]
				]
,				[
					13,
											[
							7,
							[
								10,
								[
									2,
									"Error in getting QAs::: Error:"
								]
								,[
									20,
									255,
									cr.plugins_.AJAX.prototype.exps.LastData,
									true,
									null
								]
							]
						]
				]
				]
			]
			]
		]
		]
	]
,	[
		"ES_Mission4Level4",
		[
		[
			2,
			"ES_mission4",
			false
		]
,		[
			1,
			"linkSpacing",
			0,
			0,
false,false,4147423461032735,false
		]
,		[
			1,
			"m4_ironChainPrev",
			0,
			0,
false,false,8613503696331467,false
		]
		]
	]
,	[
		"ES_Mission4Level5",
		[
		[
			2,
			"ES_mission4",
			false
		]
,		[
			0,
			null,
			false,
			null,
			7607242676774416,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				8744005484410749,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				2144431321333533,
				false
				,[
				[
					11,
					"m4_canonDownwardAngle"
				]
,				[
					7,
					[
						0,
						45
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			777280099408429,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutEnd,
				null,
				1,
				false,
				false,
				false,
				9366022440442882,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				7747225825948653,
				false
				,[
				[
					11,
					"m4_canonDownwardAngle"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"ES_Mission4Level7",
		[
		[
			2,
			"ES_mission4",
			false
		]
,		[
			0,
			null,
			false,
			null,
			9692612154218305,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				2175731619117648,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				14693145565705,
				false
				,[
				[
					11,
					"m4_canonDownwardAngle"
				]
,				[
					7,
					[
						0,
						-90
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				2145456388514403,
				false
				,[
				[
					11,
					"m4_canonUpwardAngle"
				]
,				[
					7,
					[
						0,
						-180
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				1967957876053777,
				false
				,[
				[
					11,
					"m4_cannonAngle"
				]
,				[
					7,
					[
						0,
						180
					]
				]
				]
			]
,			[
				188,
				cr.plugins_.Sprite.prototype.acts.SetAngle,
				null,
				1931982415017541,
				false
				,[
				[
					0,
					[
						23,
						"m4_cannonAngle"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9639661834656662,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutEnd,
				null,
				1,
				false,
				false,
				false,
				4576762470184448,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				926942424710431,
				false
				,[
				[
					11,
					"m4_canonDownwardAngle"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				7470248481471119,
				false
				,[
				[
					11,
					"m4_canonDownwardAngle"
				]
,				[
					7,
					[
						0,
						-90
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				6589960120588994,
				false
				,[
				[
					11,
					"m4_cannonAngle"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"ES_Mission3_Common",
		[
		[
			1,
			"m3_gamePlayTimeInSeconds",
			0,
			300,
false,false,9557890358240835,false
		]
,		[
			1,
			"M3_LEVELGAMEPLAYTIMEINSECONDS",
			0,
			360,
false,true,7226700497112296,false
		]
,		[
			1,
			"m3_numberOfLevels",
			0,
			8,
false,false,955320111883125,false
		]
,		[
			1,
			"M3_ORANGE_POWERUP_DURATION",
			0,
			25,
false,false,8092605041192043,false
		]
,		[
			1,
			"m3_scoreOverAll",
			0,
			0,
false,false,1431447370118583,false
		]
,		[
			1,
			"M3_TARGET_SCORE",
			0,
			1500,
false,false,1318317387346295,false
		]
,		[
			1,
			"m3_currentLevel",
			0,
			-1,
false,false,5994831343909902,false
		]
,		[
			0,
			null,
			false,
			null,
			4893406008455914,
			[
			[
				249,
				cr.plugins_.Function.prototype.cnds.OnFunction,
				null,
				2,
				false,
				false,
				false,
				2989954341236487,
				false
				,[
				[
					1,
					[
						2,
						"changeLevel"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				2618958073432885,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					4519140071180837,
					false
					,[
					[
						7,
						[
							4,
							[
								20,
								138,
								cr.plugins_.Dictionary.prototype.exps.Get,
								false,
								null
								,[
[
									2,
									"currentLevel"
								]
								]
							]
							,[
								0,
								1
							]
						]
					]
,					[
						8,
						2
					]
,					[
						7,
						[
							20,
							138,
							cr.plugins_.Dictionary.prototype.exps.Get,
							false,
							null
							,[
[
								2,
								"NumOfLevels"
							]
							]
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.AddVar,
					null,
					5211635940651201,
					false
					,[
					[
						11,
						"m3_currentLevel"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
,				[
					138,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					1195637899655699,
					false
					,[
					[
						1,
						[
							2,
							"currentLevel"
						]
					]
,					[
						7,
						[
							23,
							"m3_currentLevel"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.GoToLayout,
					null,
					9162437081963068,
					false
					,[
					[
						6,
						"Mission3Meal"
					]
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"ES_Mission3_Intro",
		[
		]
	]
,	[
		"ES_Missiom3_GamePlay",
		[
		[
			2,
			"ES_Mission3_Common",
			false
		]
,		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			1,
			"m3_RacksYpos",
			0,
			-55,
false,false,2741298875961662,false
		]
,		[
			1,
			"m3_HealthCounter",
			0,
			100,
false,false,6562019789078609,false
		]
,		[
			1,
			"m3_healthbarBrickHeight",
			0,
			20,
false,false,26385808235972,false
		]
,		[
			1,
			"m3_healthRedcutionOnWrongIngridient",
			0,
			5,
false,false,3722279823667343,false
		]
,		[
			1,
			"m3_healthRedcutionOnHurdleCollision",
			0,
			5,
false,false,3024881140404004,false
		]
,		[
			1,
			"m3_healthBarBrickToCounterRatio",
			0,
			3.8,
false,false,3308983787032679,false
		]
,		[
			1,
			"m3_fullHealthBarWidth",
			0,
			380,
false,false,5446641749791341,false
		]
,		[
			1,
			"m3_gameStarted",
			0,
			0,
false,false,8856251847110074,false
		]
,		[
			1,
			"m3_numOfIngridientsInRecipe",
			0,
			0,
false,false,1593138641353638,false
		]
,		[
			1,
			"m3_longWidth",
			0,
			5050500,
false,false,1450270453399095,false
		]
,		[
			1,
			"m3_BGDefaultheight",
			0,
			600,
false,false,8215730241259637,false
		]
,		[
			1,
			"m3_FGDefaultheight",
			0,
			261,
false,false,2343574451202834,false
		]
,		[
			1,
			"m3_layout",
			0,
			-1,
false,false,3108155816559041,false
		]
,		[
			1,
			"m3_isPlayerShielded",
			0,
			0,
false,false,7017000448309247,false
		]
,		[
			1,
			"m3_playerHasPowerForATimeDuration",
			0,
			0,
false,false,1274033791117136,false
		]
,		[
			1,
			"m3_powerUpDuration",
			0,
			0,
false,false,5017324780306828,false
		]
,		[
			1,
			"m3_playerSpeed",
			0,
			550,
false,false,6040723308044088,false
		]
,		[
			1,
			"m3_playerSpeedToAdd",
			0,
			350,
false,false,2552982621193049,false
		]
,		[
			1,
			"m3_playerjumpStrengthToAdd",
			0,
			250,
false,false,6716223288166806,false
		]
,		[
			1,
			"m3_playerDefaultJumpStrength",
			0,
			850,
false,false,3281652733702877,false
		]
,		[
			1,
			"m3_shelfGen",
			0,
			0,
false,false,8766218797547815,false
		]
,		[
			1,
			"m3_rackWidth",
			0,
			610,
false,false,1050405174428874,false
		]
,		[
			1,
			"m3_correctAction",
			0,
			50,
false,false,9941764002858162,false
		]
,		[
			1,
			"m3_wrongAction",
			0,
			10,
false,false,3225681388715608,false
		]
,		[
			1,
			"m3_scoreLevel",
			0,
			0,
false,false,1634584371308637,false
		]
,		[
			1,
			"m3_gamePlayTimeTillCurrentLevel",
			0,
			0,
false,false,7335987663030174,false
		]
,		[
			1,
			"m3_itemCreationToggle",
			0,
			0,
false,false,1914022058916912,false
		]
,		[
			1,
			"m3_isGameWon",
			0,
			0,
false,false,1660880088298904,false
		]
,		[
			1,
			"m3_percentScoredInGame",
			0,
			0,
false,false,3171398662317384,false
		]
,		[
			1,
			"m3_FGpixelsUnderBg",
			0,
			35,
false,false,9566440050120014,false
		]
,		[
			1,
			"m3_touchTime",
			0,
			0.2,
false,false,7137753186926585,false
		]
,		[
			1,
			"m3_touchTimer",
			0,
			999,
false,false,3673378151342415,false
		]
,		[
			0,
			null,
			false,
			null,
			4105923933230279,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				1620360193173004,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				5721352807733788,
				false
				,[
				[
					11,
					"m3_rackWidth"
				]
,				[
					7,
					[
						20,
						132,
						cr.plugins_.Sprite.prototype.exps.Width,
						false,
						null
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				6429222283562261,
				false
				,[
				[
					11,
					"m3_scoreOverAll"
				]
,				[
					7,
					[
						20,
						138,
						cr.plugins_.Dictionary.prototype.exps.Get,
						false,
						null
						,[
[
							2,
							"scoreOverAll"
						]
						]
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				1159740509775815,
				false
				,[
				[
					11,
					"m3_shelfGen"
				]
,				[
					7,
					[
						0,
						-1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				7845376911212855,
				false
				,[
				[
					11,
					"m3_currentLevel"
				]
,				[
					7,
					[
						20,
						138,
						cr.plugins_.Dictionary.prototype.exps.Get,
						false,
						null
						,[
[
							2,
							"currentLevel"
						]
						]
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				8338112213142123,
				false
				,[
				[
					11,
					"m3_numOfIngridientsInRecipe"
				]
,				[
					7,
					[
						20,
						136,
						cr.plugins_.Arr.prototype.exps.At,
						false,
						null
						,[
[
							20,
							138,
							cr.plugins_.Dictionary.prototype.exps.Get,
							false,
							null
							,[
[
								2,
								"selectedLevelRecipeIndex"
							]
							]
						]
,[
							0,
							0
						]
,[
							0,
							2
						]
						]
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				3072336116519132,
				false
				,[
				[
					11,
					"m3_scoreLevel"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
,			[
				148,
				cr.plugins_.Arr.prototype.acts.Clear,
				null,
				8518118064287457,
				false
			]
,			[
				148,
				cr.plugins_.Arr.prototype.acts.SetSize,
				null,
				8491240270785591,
				false
				,[
				[
					0,
					[
						23,
						"m3_numOfIngridientsInRecipe"
					]
				]
,				[
					0,
					[
						0,
						1
					]
				]
,				[
					0,
					[
						0,
						4
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				23013813932325,
				false
				,[
				[
					1,
					[
						2,
						"destroyObjects"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				1014163177956341,
				false
				,[
				[
					1,
					[
						2,
						"chooseLayout"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				3879513505312054,
				false
				,[
				[
					1,
					[
						2,
						"setIngridientsAndCounter"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				180340370437156,
				false
				,[
				[
					1,
					[
						2,
						"gameMode"
					]
				]
,				[
					13,
											[
							7,
							[
								0,
								1
							]
						]
				]
				]
			]
,			[
				131,
				cr.plugins_.Sprite.prototype.acts.SetAnim,
				null,
				3429800088974543,
				false
				,[
				[
					1,
					[
						2,
						"idle"
					]
				]
,				[
					3,
					1
				]
				]
			]
,			[
				131,
				cr.plugins_.Sprite.prototype.acts.MoveToTop,
				null,
				6865521603762263,
				false
			]
,			[
				172,
				cr.behaviors.Bullet.prototype.acts.SetEnabled,
				"Bullet",
				7999893667596023,
				false
				,[
				[
					3,
					0
				]
				]
			]
,			[
				172,
				cr.behaviors.Bullet.prototype.acts.SetSpeed,
				"Bullet",
				9887066281580702,
				false
				,[
				[
					0,
					[
						23,
						"m3_playerSpeed"
					]
				]
				]
			]
,			[
				172,
				cr.behaviors.Platform.prototype.acts.SetJumpStrength,
				"Platform",
				5320939300464423,
				false
				,[
				[
					0,
					[
						23,
						"m3_playerDefaultJumpStrength"
					]
				]
				]
			]
,			[
				131,
				cr.behaviors.Pin.prototype.acts.Pin,
				"Pin",
				9457318642076991,
				false
				,[
				[
					4,
					172
				]
,				[
					3,
					0
				]
				]
			]
,			[
				173,
				cr.behaviors.Pin.prototype.acts.Pin,
				"Pin",
				5161171558079559,
				false
				,[
				[
					4,
					172
				]
,				[
					3,
					0
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				6490938255264432,
				false
				,[
				[
					11,
					"m3_gamePlayTimeTillCurrentLevel"
				]
,				[
					7,
					[
						23,
						"m3_gamePlayTimeInSeconds"
					]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				2020664267624354,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					true,
					false,
					8253952542609151,
					false
					,[
					[
						1,
						[
							2,
							"m3_BGmusic"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.PlayByName,
					null,
					1359083487717233,
					false
					,[
					[
						3,
						1
					]
,					[
						1,
						[
							2,
							"m3_BGmusic"
						]
					]
,					[
						3,
						1
					]
,					[
						0,
						[
							0,
							-10
						]
					]
,					[
						1,
						[
							2,
							"m3_BGmusic"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			2415586398147443,
			[
			[
				150,
				cr.plugins_.Sprite.prototype.cnds.OnAnimFinished,
				null,
				1,
				false,
				false,
				false,
				7803885256181673,
				false
				,[
				[
					1,
					[
						2,
						"default"
					]
				]
				]
			]
			],
			[
			[
				150,
				cr.plugins_.Sprite.prototype.acts.Destroy,
				null,
				6413907315028023,
				false
			]
,			[
				172,
				cr.behaviors.Bullet.prototype.acts.SetEnabled,
				"Bullet",
				5449773848392162,
				false
				,[
				[
					3,
					1
				]
				]
			]
,			[
				131,
				cr.plugins_.Sprite.prototype.acts.SetAnim,
				null,
				3464905857802872,
				false
				,[
				[
					1,
					[
						2,
						"running"
					]
				]
,				[
					3,
					1
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				3296090385489319,
				false
				,[
				[
					11,
					"m3_gameStarted"
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Generating Shelfs,ingridients, hurdles, powerups, jump tiles"],
			false,
			null,
			9808559401513793,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				9808559401513793,
				false
				,[
				[
					1,
					[
						2,
						"Generating Shelfs,ingridients, hurdles, powerups, jump tiles"
					]
				]
				]
			]
			],
			[
			]
		]
,		[
			0,
			null,
			false,
			null,
			1361195301693425,
			[
			[
				-1,
				cr.system_object.prototype.cnds.Compare,
				null,
				0,
				false,
				false,
				false,
				8466998931573987,
				false
				,[
				[
					7,
					[
						23,
						"m3_shelfGen"
					]
				]
,				[
					8,
					2
				]
,				[
					7,
					[
						7,
						[
							4,
							[
								20,
								131,
								cr.plugins_.Sprite.prototype.exps.X,
								false,
								null
							]
							,[
								19,
								cr.system_object.prototype.exps.windowwidth
							]
						]
						,[
							23,
							"m3_rackWidth"
						]
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				1,
				"m3_randomRack",
				0,
				0,
false,false,3617326355737411,false
			]
,			[
				0,
				null,
				false,
				null,
				5644172983632688,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					8819888841057467,
					false
					,[
					[
						7,
						[
							23,
							"m3_itemCreationToggle"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					2798090825032273,
					false
					,[
					[
						11,
						"m3_itemCreationToggle"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2224972933679793,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Else,
					null,
					0,
					false,
					false,
					false,
					2835574852135917,
					false
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					8273533900108805,
					false
					,[
					[
						11,
						"m3_itemCreationToggle"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2651057217810938,
				[
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					5002438377677744,
					false
					,[
					[
						11,
						"m3_randomRack"
					]
,					[
						7,
						[
							19,
							cr.system_object.prototype.exps.floor
							,[
[
								19,
								cr.system_object.prototype.exps.random
								,[
[
									0,
									2
								]
								]
							]
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.AddVar,
					null,
					7610048268756109,
					false
					,[
					[
						11,
						"m3_shelfGen"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
				,[
				[
					1,
					"m3_shelfX",
					0,
					0,
false,false,6559230318458154,false
				]
,				[
					1,
					"m3_itemsX",
					0,
					0,
false,false,5660039300114056,false
				]
,				[
					0,
					null,
					false,
					null,
					3643124299763963,
					[
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						1763553704814382,
						false
						,[
						[
							11,
							"m3_shelfX"
						]
,						[
							7,
							[
								19,
								cr.system_object.prototype.exps.floor
								,[
[
									6,
									[
										23,
										"m3_shelfGen"
									]
									,[
										4,
										[
											23,
											"m3_rackWidth"
										]
										,[
											0,
											10
										]
									]
								]
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3927370350828096,
						false
						,[
						[
							11,
							"m3_itemsX"
						]
,						[
							7,
							[
								19,
								cr.system_object.prototype.exps.floor
								,[
[
									6,
									[
										4,
										[
											23,
											"m3_shelfGen"
										]
										,[
											0,
											2
										]
									]
									,[
										4,
										[
											23,
											"m3_rackWidth"
										]
										,[
											0,
											50
										]
									]
								]
								]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1780590957089682,
					[
					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						2840995254948922,
						false
						,[
						[
							11,
							"m3_randomRack"
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						269103095600737,
						false
						,[
						[
							4,
							132
						]
,						[
							5,
							[
								2,
								"Background"
							]
						]
,						[
							0,
							[
								23,
								"m3_shelfX"
							]
						]
,						[
							0,
							[
								23,
								"m3_RacksYpos"
							]
						]
						]
					]
,					[
						132,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						2004240327745994,
						false
						,[
						[
							0,
							[
								23,
								"m3_layout"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2433541093598562,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						3583442261673575,
						false
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						1395500946504631,
						false
						,[
						[
							4,
							133
						]
,						[
							5,
							[
								2,
								"Background"
							]
						]
,						[
							0,
							[
								23,
								"m3_shelfX"
							]
						]
,						[
							0,
							[
								23,
								"m3_RacksYpos"
							]
						]
						]
					]
,					[
						133,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						8728444348174363,
						false
						,[
						[
							0,
							[
								23,
								"m3_layout"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1523466089729929,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6172099676388392,
						false
						,[
						[
							7,
							[
								23,
								"m3_itemCreationToggle"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						1,
						"m3_randomChoice",
						0,
						0,
false,false,1687195383796706,false
					]
,					[
						0,
						null,
						false,
						null,
						7806683996489709,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							3830095756774504,
							false
							,[
							[
								11,
								"m3_randomChoice"
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.floor
									,[
[
										19,
										cr.system_object.prototype.exps.random
										,[
[
											0,
											11
										]
										]
									]
									]
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							831221709857678,
							[
							[
								-1,
								cr.system_object.prototype.cnds.CompareVar,
								null,
								0,
								false,
								false,
								false,
								6838662887883593,
								false
								,[
								[
									11,
									"m3_randomChoice"
								]
,								[
									8,
									2
								]
,								[
									7,
									[
										0,
										6
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								2107237954212765,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									8918709783056229,
									false
									,[
									[
										11,
										"m3_randomChoice"
									]
,									[
										8,
										2
									]
,									[
										7,
										[
											0,
											5
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.CreateObject,
									null,
									9314224885546976,
									false
									,[
									[
										4,
										144
									]
,									[
										5,
										[
											2,
											"Game"
										]
									]
,									[
										0,
										[
											23,
											"m3_itemsX"
										]
									]
,									[
										0,
										[
											19,
											cr.system_object.prototype.exps.floor
											,[
[
												19,
												cr.system_object.prototype.exps.random
												,[
[
													0,
													250
												]
,[
													0,
													575
												]
												]
											]
											]
										]
									]
									]
								]
,								[
									144,
									cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
									null,
									600127297299142,
									false
									,[
									[
										0,
										[
											20,
											148,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												19,
												cr.system_object.prototype.exps.floor
												,[
[
													19,
													cr.system_object.prototype.exps.random
													,[
[
														23,
														"m3_numOfIngridientsInRecipe"
													]
													]
												]
												]
											]
,[
												0,
												0
											]
,[
												0,
												0
											]
											]
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								333699016799296,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									666910165136491,
									false
									,[
									[
										11,
										"m3_randomChoice"
									]
,									[
										8,
										5
									]
,									[
										7,
										[
											0,
											5
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.CreateObject,
									null,
									7112268160635873,
									false
									,[
									[
										4,
										168
									]
,									[
										5,
										[
											2,
											"Game"
										]
									]
,									[
										0,
										[
											23,
											"m3_itemsX"
										]
									]
,									[
										0,
										[
											19,
											cr.system_object.prototype.exps.floor
											,[
[
												19,
												cr.system_object.prototype.exps.random
												,[
[
													0,
													300
												]
,[
													0,
													360
												]
												]
											]
											]
										]
									]
									]
								]
,								[
									168,
									cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
									null,
									896860590261185,
									false
									,[
									[
										0,
										[
											23,
											"m3_layout"
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							1,
							"m3_randomhurdle",
							0,
							0,
false,false,192145014550852,false
						]
,						[
							0,
							null,
							false,
							null,
							5993682814687003,
							[
							[
								-1,
								cr.system_object.prototype.cnds.CompareVar,
								null,
								0,
								false,
								false,
								false,
								522354565272042,
								false
								,[
								[
									11,
									"m3_randomChoice"
								]
,								[
									8,
									5
								]
,								[
									7,
									[
										0,
										6
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.cnds.CompareVar,
								null,
								0,
								false,
								false,
								false,
								9628798998277961,
								false
								,[
								[
									11,
									"m3_randomChoice"
								]
,								[
									8,
									2
								]
,								[
									7,
									[
										0,
										8
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								3629395331873846,
								false
								,[
								[
									11,
									"m3_randomhurdle"
								]
,								[
									7,
									[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											19,
											cr.system_object.prototype.exps.random
											,[
[
												0,
												6
											]
											]
										]
										]
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.CreateObject,
								null,
								5372913353529042,
								false
								,[
								[
									4,
									170
								]
,								[
									5,
									[
										2,
										"Game"
									]
								]
,								[
									0,
									[
										23,
										"m3_itemsX"
									]
								]
,								[
									0,
									[
										0,
										660
									]
								]
								]
							]
							]
							,[
							[
								0,
								null,
								false,
								null,
								2707576635181753,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									4462553208361129,
									false
									,[
									[
										11,
										"m3_randomhurdle"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
								],
								[
								[
									170,
									cr.plugins_.Sprite.prototype.acts.SetAnim,
									null,
									7820566095326857,
									false
									,[
									[
										1,
										[
											2,
											"granny"
										]
									]
,									[
										3,
										1
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								2361121839510712,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									2540858682797684,
									false
									,[
									[
										11,
										"m3_randomhurdle"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								],
								[
								[
									170,
									cr.plugins_.Sprite.prototype.acts.SetAnim,
									null,
									1905951299621018,
									false
									,[
									[
										1,
										[
											2,
											"h1"
										]
									]
,									[
										3,
										1
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								7304591043445539,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									9322378484143246,
									false
									,[
									[
										11,
										"m3_randomhurdle"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											2
										]
									]
									]
								]
								],
								[
								[
									170,
									cr.plugins_.Sprite.prototype.acts.SetAnim,
									null,
									6609392123633596,
									false
									,[
									[
										1,
										[
											2,
											"h2"
										]
									]
,									[
										3,
										1
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								9307843121383706,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									523711908163705,
									false
									,[
									[
										11,
										"m3_randomhurdle"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											3
										]
									]
									]
								]
								],
								[
								[
									170,
									cr.plugins_.Sprite.prototype.acts.SetAnim,
									null,
									4512285542908882,
									false
									,[
									[
										1,
										[
											2,
											"h3"
										]
									]
,									[
										3,
										1
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								3527153747613783,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									7417519030492167,
									false
									,[
									[
										11,
										"m3_randomhurdle"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											4
										]
									]
									]
								]
								],
								[
								[
									170,
									cr.plugins_.Sprite.prototype.acts.SetAnim,
									null,
									1664989366534488,
									false
									,[
									[
										1,
										[
											2,
											"man"
										]
									]
,									[
										3,
										1
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								831328975385199,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									1100727601716644,
									false
									,[
									[
										11,
										"m3_randomhurdle"
									]
,									[
										8,
										4
									]
,									[
										7,
										[
											0,
											4
										]
									]
									]
								]
								],
								[
								[
									170,
									cr.plugins_.Sprite.prototype.acts.SetAnim,
									null,
									8783020247841639,
									false
									,[
									[
										1,
										[
											2,
											"water"
										]
									]
,									[
										3,
										1
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							112665357026079,
							[
							[
								-1,
								cr.system_object.prototype.cnds.CompareVar,
								null,
								0,
								false,
								false,
								false,
								1718544988745704,
								false
								,[
								[
									11,
									"m3_randomChoice"
								]
,								[
									8,
									5
								]
,								[
									7,
									[
										0,
										8
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.cnds.CompareVar,
								null,
								0,
								false,
								false,
								false,
								9586865808367876,
								false
								,[
								[
									11,
									"m3_randomChoice"
								]
,								[
									8,
									2
								]
,								[
									7,
									[
										0,
										10
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.CreateObject,
								null,
								9065211627282732,
								false
								,[
								[
									4,
									144
								]
,								[
									5,
									[
										2,
										"Game"
									]
								]
,								[
									0,
									[
										23,
										"m3_itemsX"
									]
								]
,								[
									0,
									[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											19,
											cr.system_object.prototype.exps.random
											,[
[
												0,
												250
											]
,[
												0,
												575
											]
											]
										]
										]
									]
								]
								]
							]
,							[
								144,
								cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
								null,
								1982794369659292,
								false
								,[
								[
									0,
									[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											19,
											cr.system_object.prototype.exps.random
											,[
[
												0,
												1
											]
,[
												5,
												[
													20,
													144,
													cr.plugins_.Sprite.prototype.exps.AnimationFrameCount,
													false,
													null
												]
												,[
													0,
													1
												]
											]
											]
										]
										]
									]
								]
								]
							]
							]
						]
,						[
							1,
							"m3_randomPowerup",
							0,
							0,
false,false,4375364034804029,false
						]
,						[
							0,
							null,
							false,
							null,
							5132153207136039,
							[
							[
								-1,
								cr.system_object.prototype.cnds.CompareVar,
								null,
								0,
								false,
								false,
								false,
								3955669360536857,
								false
								,[
								[
									11,
									"m3_randomChoice"
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										10
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								4450084281251623,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									4866498587905491,
									false
									,[
									[
										11,
										"m3_powerUpDuration"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									9926541282271989,
									false
									,[
									[
										11,
										"m3_randomPowerup"
									]
,									[
										7,
										[
											19,
											cr.system_object.prototype.exps.floor
											,[
[
												19,
												cr.system_object.prototype.exps.random
												,[
[
													0,
													6
												]
												]
											]
											]
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.CreateObject,
									null,
									4365683403383196,
									false
									,[
									[
										4,
										171
									]
,									[
										5,
										[
											2,
											"Game"
										]
									]
,									[
										0,
										[
											23,
											"m3_itemsX"
										]
									]
,									[
										0,
										[
											0,
											450
										]
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									183968596420326,
									[
									[
										-1,
										cr.system_object.prototype.cnds.CompareVar,
										null,
										0,
										false,
										false,
										false,
										8662323103182026,
										false
										,[
										[
											11,
											"m3_randomPowerup"
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												0,
												0
											]
										]
										]
									]
									],
									[
									[
										171,
										cr.plugins_.Sprite.prototype.acts.SetAnim,
										null,
										116305238296959,
										false
										,[
										[
											1,
											[
												2,
												"orange"
											]
										]
,										[
											3,
											1
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									3977040274119483,
									[
									[
										-1,
										cr.system_object.prototype.cnds.CompareVar,
										null,
										0,
										false,
										false,
										false,
										8180834349201925,
										false
										,[
										[
											11,
											"m3_randomPowerup"
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												0,
												1
											]
										]
										]
									]
									],
									[
									[
										171,
										cr.plugins_.Sprite.prototype.acts.SetAnim,
										null,
										5128144545210315,
										false
										,[
										[
											1,
											[
												2,
												"broccoli"
											]
										]
,										[
											3,
											1
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									15214889489681,
									[
									[
										-1,
										cr.system_object.prototype.cnds.CompareVar,
										null,
										0,
										false,
										false,
										false,
										1915541931728127,
										false
										,[
										[
											11,
											"m3_randomPowerup"
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												0,
												2
											]
										]
										]
									]
									],
									[
									[
										171,
										cr.plugins_.Sprite.prototype.acts.SetAnim,
										null,
										6033398315197149,
										false
										,[
										[
											1,
											[
												2,
												"orange"
											]
										]
,										[
											3,
											1
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									3883322683765659,
									[
									[
										-1,
										cr.system_object.prototype.cnds.CompareVar,
										null,
										0,
										false,
										false,
										false,
										2266916130034185,
										false
										,[
										[
											11,
											"m3_randomhurdle"
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												0,
												3
											]
										]
										]
									]
									],
									[
									[
										171,
										cr.plugins_.Sprite.prototype.acts.SetAnim,
										null,
										1500775104089332,
										false
										,[
										[
											1,
											[
												2,
												"tomato"
											]
										]
,										[
											3,
											1
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									9945706998127845,
									[
									[
										-1,
										cr.system_object.prototype.cnds.CompareVar,
										null,
										0,
										false,
										false,
										false,
										6123993252172566,
										false
										,[
										[
											11,
											"m3_randomhurdle"
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												0,
												4
											]
										]
										]
									]
									],
									[
									[
										171,
										cr.plugins_.Sprite.prototype.acts.SetAnim,
										null,
										791098432991841,
										false
										,[
										[
											1,
											[
												2,
												"waterbottle"
											]
										]
,										[
											3,
											1
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									9434090025956259,
									[
									[
										-1,
										cr.system_object.prototype.cnds.CompareVar,
										null,
										0,
										false,
										false,
										false,
										4133214693608537,
										false
										,[
										[
											11,
											"m3_randomhurdle"
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												0,
												5
											]
										]
										]
									]
									],
									[
									[
										-1,
										cr.system_object.prototype.acts.CreateObject,
										null,
										1750119406357935,
										false
										,[
										[
											4,
											144
										]
,										[
											5,
											[
												2,
												"Game"
											]
										]
,										[
											0,
											[
												23,
												"m3_itemsX"
											]
										]
,										[
											0,
											[
												19,
												cr.system_object.prototype.exps.floor
												,[
[
													19,
													cr.system_object.prototype.exps.random
													,[
[
														0,
														250
													]
,[
														0,
														575
													]
													]
												]
												]
											]
										]
										]
									]
,									[
										144,
										cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
										null,
										2353052374817568,
										false
										,[
										[
											0,
											[
												20,
												148,
												cr.plugins_.Arr.prototype.exps.At,
												false,
												null
												,[
[
													19,
													cr.system_object.prototype.exps.floor
													,[
[
														19,
														cr.system_object.prototype.exps.random
														,[
[
															23,
															"m3_numOfIngridientsInRecipe"
														]
														]
													]
													]
												]
,[
													0,
													0
												]
,[
													0,
													0
												]
												]
											]
										]
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2553536021481712,
				[
				[
					132,
					cr.plugins_.Sprite.prototype.cnds.CompareX,
					null,
					0,
					false,
					false,
					false,
					7615993349237382,
					false
					,[
					[
						8,
						2
					]
,					[
						0,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.viewportleft
								,[
[
									0,
									0
								]
								]
							]
							,[
								20,
								132,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
					]
					]
				]
				],
				[
				[
					132,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					5762244267179338,
					false
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				80790654208373,
				[
				[
					133,
					cr.plugins_.Sprite.prototype.cnds.CompareX,
					null,
					0,
					false,
					false,
					false,
					5129085060124105,
					false
					,[
					[
						8,
						2
					]
,					[
						0,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.viewportleft
								,[
[
									0,
									0
								]
								]
							]
							,[
								20,
								133,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
					]
					]
				]
				],
				[
				[
					133,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9769497957079051,
					false
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4961191486569565,
				[
				[
					170,
					cr.plugins_.Sprite.prototype.cnds.CompareX,
					null,
					0,
					false,
					false,
					false,
					744383811595727,
					false
					,[
					[
						8,
						2
					]
,					[
						0,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.viewportleft
								,[
[
									0,
									1
								]
								]
							]
							,[
								20,
								170,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
					]
					]
				]
				],
				[
				[
					170,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					7179474257618655,
					false
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				8395596717036784,
				[
				[
					171,
					cr.plugins_.Sprite.prototype.cnds.CompareX,
					null,
					0,
					false,
					false,
					false,
					4347726527213806,
					false
					,[
					[
						8,
						2
					]
,					[
						0,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.viewportleft
								,[
[
									0,
									1
								]
								]
							]
							,[
								20,
								171,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
					]
					]
				]
				],
				[
				[
					171,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					3383336582904161,
					false
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2101862501682825,
				[
				[
					168,
					cr.plugins_.Sprite.prototype.cnds.CompareX,
					null,
					0,
					false,
					false,
					false,
					2986170448640588,
					false
					,[
					[
						8,
						2
					]
,					[
						0,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.viewportleft
								,[
[
									0,
									1
								]
								]
							]
							,[
								20,
								168,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
					]
					]
				]
				],
				[
				[
					168,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					3538081601429477,
					false
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				7941625421587777,
				[
				[
					144,
					cr.plugins_.Sprite.prototype.cnds.CompareX,
					null,
					0,
					false,
					false,
					false,
					1745951818674316,
					false
					,[
					[
						8,
						2
					]
,					[
						0,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.viewportleft
								,[
[
									0,
									1
								]
								]
							]
							,[
								20,
								144,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
					]
					]
				]
,				[
					144,
					cr.plugins_.Sprite.prototype.cnds.IsOnScreen,
					null,
					0,
					false,
					true,
					false,
					4823807759810363,
					false
				]
				],
				[
				[
					144,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					2475225731640201,
					false
				]
				]
			]
			]
		]
,		[
			0,
			[true, "COLLISION EVENTS"],
			false,
			null,
			4783918091080815,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				4783918091080815,
				false
				,[
				[
					1,
					[
						2,
						"COLLISION EVENTS"
					]
				]
				]
			]
			],
			[
			]
		]
,		[
			0,
			null,
			false,
			null,
			3358593966256705,
			[
			[
				172,
				cr.plugins_.Sprite.prototype.cnds.OnCollision,
				null,
				0,
				false,
				false,
				true,
				6398681444906008,
				false
				,[
				[
					4,
					144
				]
				]
			]
			],
			[
			[
				144,
				cr.plugins_.Sprite.prototype.acts.SetCollisions,
				null,
				4577676317911114,
				false
				,[
				[
					3,
					0
				]
				]
			]
			]
			,[
			[
				1,
				"m3_validIngridient",
				0,
				0,
false,false,885680762678842,false
			]
,			[
				0,
				null,
				false,
				null,
				9511178956906659,
				[
				[
					-1,
					cr.system_object.prototype.cnds.For,
					null,
					0,
					true,
					false,
					false,
					6144359705745979,
					false
					,[
					[
						1,
						[
							2,
							"i"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							5,
							[
								20,
								136,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									138,
									cr.plugins_.Dictionary.prototype.exps.Get,
									false,
									null
									,[
[
										2,
										"selectedLevelRecipeIndex"
									]
									]
								]
,[
									0,
									0
								]
,[
									0,
									2
								]
								]
							]
							,[
								0,
								1
							]
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					1563146236152506,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5024280527502559,
						false
						,[
						[
							7,
							[
								20,
								144,
								cr.plugins_.Sprite.prototype.exps.AnimationFrame,
								false,
								null
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								20,
								139,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									139,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										0,
										0
									]
,[
										0,
										0
									]
,[
										20,
										136,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											20,
											138,
											cr.plugins_.Dictionary.prototype.exps.Get,
											false,
											null
											,[
[
												2,
												"selectedLevelRecipeIndex"
											]
											]
										]
,[
											0,
											1
										]
,[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										]
									]
									]
								]
,[
									0,
									0
								]
,[
									0,
									2
								]
								]
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						375001106343213,
						[
						[
							134,
							cr.plugins_.Text.prototype.cnds.CompareInstanceVar,
							null,
							0,
							false,
							false,
							false,
							7017419304724858,
							false
							,[
							[
								10,
								0
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									20,
									144,
									cr.plugins_.Sprite.prototype.exps.AnimationFrame,
									false,
									null
								]
							]
							]
						]
,						[
							134,
							cr.plugins_.Text.prototype.cnds.CompareInstanceVar,
							null,
							0,
							false,
							false,
							false,
							5116389141741968,
							false
							,[
							[
								10,
								1
							]
,							[
								8,
								4
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							134,
							cr.plugins_.Text.prototype.acts.SubInstanceVar,
							null,
							5220854035853671,
							false
							,[
							[
								10,
								1
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							134,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							7115808824587202,
							false
							,[
							[
								7,
								[
									21,
									134,
									false,
									null
									,1
								]
							]
							]
						]
,						[
							148,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9077525183446284,
							false
							,[
							[
								0,
								[
									19,
									cr.system_object.prototype.exps.loopindex
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								7,
								[
									4,
									[
										20,
										148,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											19,
											cr.system_object.prototype.exps.loopindex
										]
,[
											0,
											0
										]
,[
											0,
											3
										]
										]
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7702999024362568,
							false
							,[
							[
								11,
								"m3_validIngridient"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							3323853637202597,
							false
							,[
							[
								1,
								[
									2,
									"correctSound"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							5719299034034108,
							false
							,[
							[
								11,
								"m3_scoreLevel"
							]
,							[
								7,
								[
									23,
									"m3_correctAction"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							3537995785308065,
							false
							,[
							[
								11,
								"m3_scoreOverAll"
							]
,							[
								7,
								[
									23,
									"m3_correctAction"
								]
							]
							]
						]
						]
						,[
						[
							1,
							"m3_loopCompletedCheck",
							0,
							0,
false,false,5119505766232564,false
						]
,						[
							1,
							"m3_ingridientsCompleted",
							0,
							1,
false,false,8634071525667583,false
						]
,						[
							0,
							null,
							false,
							null,
							6109098961259024,
							[
							[
								-1,
								cr.system_object.prototype.cnds.For,
								null,
								0,
								true,
								false,
								false,
								4090812294794385,
								false
								,[
								[
									1,
									[
										2,
										"i"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									0,
									[
										23,
										"m3_numOfIngridientsInRecipe"
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								2176134061404098,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									596600632564559,
									false
									,[
									[
										7,
										[
											20,
											148,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												19,
												cr.system_object.prototype.exps.loopindex
											]
,[
												0,
												0
											]
,[
												0,
												2
											]
											]
										]
									]
,									[
										8,
										1
									]
,									[
										7,
										[
											20,
											148,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												19,
												cr.system_object.prototype.exps.loopindex
											]
,[
												0,
												0
											]
,[
												0,
												3
											]
											]
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									6630516650112966,
									false
									,[
									[
										11,
										"m3_ingridientsCompleted"
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.StopLoop,
									null,
									4499749894225787,
									false
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								3138192840549405,
								[
								[
									-1,
									cr.system_object.prototype.cnds.CompareVar,
									null,
									0,
									false,
									false,
									false,
									9506917243756878,
									false
									,[
									[
										11,
										"m3_numOfIngridientsInRecipe"
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											4,
											[
												19,
												cr.system_object.prototype.exps.loopindex
											]
											,[
												0,
												1
											]
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									3103365583482185,
									false
									,[
									[
										11,
										"m3_loopCompletedCheck"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							162429950816981,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								2821914934561628,
								false
								,[
								[
									7,
									[
										23,
										"m3_ingridientsCompleted"
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.cnds.CompareVar,
								null,
								0,
								false,
								false,
								false,
								9933729960462138,
								false
								,[
								[
									11,
									"m3_loopCompletedCheck"
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								538316933974843,
								false
								,[
								[
									1,
									[
										2,
										"onLevelCompleteOrTimedOut"
									]
								]
,								[
									13,
								]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				8954586725540807,
				[
				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					4285709016870233,
					false
					,[
					[
						11,
						"m3_validIngridient"
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					6916472697809046,
					false
					,[
					[
						11,
						"m3_isPlayerShielded"
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					3480709509588936,
					false
					,[
					[
						1,
						[
							2,
							"wrongSound"
						]
					]
,					[
						13,
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SubVar,
					null,
					2584405940569911,
					false
					,[
					[
						11,
						"m3_scoreLevel"
					]
,					[
						7,
						[
							23,
							"m3_wrongAction"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SubVar,
					null,
					4630555537371794,
					false
					,[
					[
						11,
						"m3_scoreOverAll"
					]
,					[
						7,
						[
							23,
							"m3_wrongAction"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2210606812003801,
				[
				],
				[
				[
					144,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9615273743555064,
					false
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					5222998732956265,
					false
					,[
					[
						1,
						[
							2,
							"updateHudScore"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9112718418126623,
			[
			[
				172,
				cr.plugins_.Sprite.prototype.cnds.OnCollision,
				null,
				0,
				false,
				false,
				true,
				4706153783044503,
				false
				,[
				[
					4,
					170
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				8235064466743332,
				[
				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					8838037669593309,
					false
					,[
					[
						11,
						"m3_isPlayerShielded"
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					6000501436315941,
					false
					,[
					[
						7,
						[
							21,
							170,
							false,
							null
							,0
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SubVar,
					null,
					7798677502169253,
					false
					,[
					[
						11,
						"m3_scoreLevel"
					]
,					[
						7,
						[
							23,
							"m3_wrongAction"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SubVar,
					null,
					6822669464493063,
					false
					,[
					[
						11,
						"m3_scoreOverAll"
					]
,					[
						7,
						[
							23,
							"m3_wrongAction"
						]
					]
					]
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					6599182863875698,
					false
					,[
					[
						1,
						[
							2,
							"wrongSound"
						]
					]
,					[
						13,
					]
					]
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					6067781492350879,
					false
					,[
					[
						1,
						[
							2,
							"updateHudScore"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1784462251733407,
				[
				],
				[
				[
					170,
					cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
					null,
					7625975774568774,
					false
					,[
					[
						10,
						0
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				true,
				null,
				4577239965899217,
				[
				[
					170,
					cr.plugins_.Sprite.prototype.cnds.IsAnimPlaying,
					null,
					0,
					false,
					false,
					false,
					3288400482766696,
					false
					,[
					[
						1,
						[
							2,
							"granny"
						]
					]
					]
				]
,				[
					170,
					cr.plugins_.Sprite.prototype.cnds.IsAnimPlaying,
					null,
					0,
					false,
					false,
					false,
					437255197469583,
					false
					,[
					[
						1,
						[
							2,
							"man"
						]
					]
					]
				]
				],
				[
				[
					170,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1907849669957638,
					false
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			4499508267162544,
			[
			[
				172,
				cr.plugins_.Sprite.prototype.cnds.OnCollision,
				null,
				0,
				false,
				false,
				true,
				6707327161468845,
				false
				,[
				[
					4,
					171
				]
				]
			]
			],
			[
			[
				171,
				cr.plugins_.Sprite.prototype.acts.SetCollisions,
				null,
				2985890316876928,
				false
				,[
				[
					3,
					0
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				7677572019174003,
				[
				[
					171,
					cr.plugins_.Sprite.prototype.cnds.IsAnimPlaying,
					null,
					0,
					false,
					false,
					false,
					901084244013067,
					false
					,[
					[
						1,
						[
							2,
							"broccoli"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.AddVar,
					null,
					3964711313953113,
					false
					,[
					[
						11,
						"m3_scoreLevel"
					]
,					[
						7,
						[
							0,
							250
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.AddVar,
					null,
					7956072817078055,
					false
					,[
					[
						11,
						"m3_scoreOverAll"
					]
,					[
						7,
						[
							0,
							250
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					2497818080475704,
					false
					,[
					[
						11,
						"m3_powerUpDuration"
					]
,					[
						7,
						[
							23,
							"M3_ORANGE_POWERUP_DURATION"
						]
					]
					]
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					8330669654464532,
					false
					,[
					[
						1,
						[
							2,
							"updateHudScore"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4521591451139675,
				[
				[
					171,
					cr.plugins_.Sprite.prototype.cnds.IsAnimPlaying,
					null,
					0,
					false,
					false,
					false,
					4773609909184743,
					false
					,[
					[
						1,
						[
							2,
							"orange"
						]
					]
					]
				]
				],
				[
				[
					131,
					cr.plugins_.Sprite.prototype.acts.SetScale,
					null,
					798629833828849,
					false
					,[
					[
						0,
						[
							1,
							1.5
						]
					]
					]
				]
,				[
					172,
					cr.plugins_.Sprite.prototype.acts.SetScale,
					null,
					2454234204585461,
					false
					,[
					[
						0,
						[
							1,
							1.5
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					7826471126788159,
					false
					,[
					[
						11,
						"m3_powerUpDuration"
					]
,					[
						7,
						[
							23,
							"M3_ORANGE_POWERUP_DURATION"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					6510842434687279,
					false
					,[
					[
						11,
						"m3_isPlayerShielded"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					9082553970370029,
					false
					,[
					[
						11,
						"m3_playerHasPowerForATimeDuration"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1714440504544175,
				[
				[
					171,
					cr.plugins_.Sprite.prototype.cnds.IsAnimPlaying,
					null,
					0,
					false,
					false,
					false,
					1511321878262196,
					false
					,[
					[
						1,
						[
							2,
							"waterbottle"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					9174715937389625,
					false
					,[
					[
						11,
						"m3_powerUpDuration"
					]
,					[
						7,
						[
							23,
							"M3_ORANGE_POWERUP_DURATION"
						]
					]
					]
				]
,				[
					172,
					cr.behaviors.Bullet.prototype.acts.SetSpeed,
					"Bullet",
					5179900319717065,
					false
					,[
					[
						0,
						[
							4,
							[
								23,
								"m3_playerSpeed"
							]
							,[
								23,
								"m3_playerSpeedToAdd"
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					4841142806306325,
					false
					,[
					[
						11,
						"m3_playerHasPowerForATimeDuration"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2459308745023818,
				[
				[
					171,
					cr.plugins_.Sprite.prototype.cnds.IsAnimPlaying,
					null,
					0,
					false,
					false,
					false,
					4594294915954586,
					false
					,[
					[
						1,
						[
							2,
							"tomato"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					8067777405967472,
					false
					,[
					[
						11,
						"m3_powerUpDuration"
					]
,					[
						7,
						[
							23,
							"M3_ORANGE_POWERUP_DURATION"
						]
					]
					]
				]
,				[
					172,
					cr.behaviors.Platform.prototype.acts.SetJumpStrength,
					"Platform",
					1947419767513551,
					false
					,[
					[
						0,
						[
							4,
							[
								23,
								"m3_playerDefaultJumpStrength"
							]
							,[
								23,
								"m3_playerjumpStrengthToAdd"
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					5024033062163944,
					false
					,[
					[
						11,
						"m3_playerHasPowerForATimeDuration"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				6984937888906712,
				[
				],
				[
				[
					171,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					3623276293844444,
					false
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Every X Seconds Events"],
			false,
			null,
			9785880612618423,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				9785880612618423,
				false
				,[
				[
					1,
					[
						2,
						"Every X Seconds Events"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				4123939681039562,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Every,
					null,
					0,
					false,
					false,
					false,
					5988522661489796,
					false
					,[
					[
						0,
						[
							1,
							1
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					256073502556631,
					[
					],
					[
					]
				]
,				[
					0,
					null,
					false,
					null,
					4208985173191136,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5742957568711531,
						false
						,[
						[
							7,
							[
								23,
								"m3_gameStarted"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SubVar,
						null,
						8042990306631027,
						false
						,[
						[
							11,
							"m3_gamePlayTimeInSeconds"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						151,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						729329348593245,
						false
						,[
						[
							7,
							[
								10,
								[
									10,
									[
										19,
										cr.system_object.prototype.exps.zeropad
										,[
[
											19,
											cr.system_object.prototype.exps.floor
											,[
[
												8,
												[
													7,
													[
														23,
														"m3_gamePlayTimeInSeconds"
													]
													,[
														0,
														60
													]
												]
												,[
													0,
													60
												]
											]
											]
										]
,[
											0,
											2
										]
										]
									]
									,[
										2,
										" : "
									]
								]
								,[
									19,
									cr.system_object.prototype.exps.zeropad
									,[
[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											8,
											[
												23,
												"m3_gamePlayTimeInSeconds"
											]
											,[
												0,
												60
											]
										]
										]
									]
,[
										0,
										2
									]
									]
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						2999822313686474,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							9560972607243059,
							false
							,[
							[
								7,
								[
									23,
									"m3_gamePlayTimeInSeconds"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							3750629573457979,
							false
							,[
							[
								11,
								"m3_gamePlayTimeInSeconds"
							]
,							[
								7,
								[
									0,
									-1
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7009140707799178,
							false
							,[
							[
								1,
								[
									2,
									"gameOverLost"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						8431122822950702,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							9132359927397264,
							false
							,[
							[
								7,
								[
									23,
									"m3_scoreOverAll"
								]
							]
,							[
								8,
								5
							]
,							[
								7,
								[
									23,
									"M3_TARGET_SCORE"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							8823770263912382,
							false
							,[
							[
								1,
								[
									2,
									"gameOverWon"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						2885164933847263,
						[
						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							1692973251576502,
							false
							,[
							[
								11,
								"m3_powerUpDuration"
							]
,							[
								8,
								3
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							131,
							cr.plugins_.Sprite.prototype.acts.SetScale,
							null,
							9746341916440495,
							false
							,[
							[
								0,
								[
									0,
									1
								]
							]
							]
						]
,						[
							172,
							cr.plugins_.Sprite.prototype.acts.SetScale,
							null,
							9065608535182592,
							false
							,[
							[
								0,
								[
									0,
									1
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							5695995759482999,
							false
							,[
							[
								11,
								"m3_isPlayerShielded"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							172,
							cr.behaviors.Bullet.prototype.acts.SetSpeed,
							"Bullet",
							1212962646391718,
							false
							,[
							[
								0,
								[
									23,
									"m3_playerSpeed"
								]
							]
							]
						]
,						[
							172,
							cr.behaviors.Platform.prototype.acts.SetJumpStrength,
							"Platform",
							2546762518112826,
							false
							,[
							[
								0,
								[
									23,
									"m3_playerDefaultJumpStrength"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8725099318043526,
							false
							,[
							[
								11,
								"m3_powerUpDuration"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9879791280366859,
							false
							,[
							[
								11,
								"m3_playerHasPowerForATimeDuration"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						4713496302163132,
						[
						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							5912547345737313,
							false
							,[
							[
								11,
								"m3_playerHasPowerForATimeDuration"
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SubVar,
							null,
							7950161428274366,
							false
							,[
							[
								11,
								"m3_powerUpDuration"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Button Touch Events"],
			false,
			null,
			8265193259610303,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				8265193259610303,
				false
				,[
				[
					1,
					[
						2,
						"Button Touch Events"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				8099092117829423,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchEnd,
					null,
					1,
					false,
					false,
					false,
					8949046537994519,
					false
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetGroupActive,
					null,
					302698122590988,
					false
					,[
					[
						1,
						[
							2,
							"touchtimer"
						]
					]
,					[
						3,
						1
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				9998743410114503,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchStart,
					null,
					1,
					false,
					false,
					false,
					9886564194044419,
					false
				]
,				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					8862936626094827,
					false
					,[
					[
						7,
						[
							23,
							"m3_gameStarted"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					2286674063254261,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9972794716069546,
						false
						,[
						[
							7,
							[
								23,
								"m3_touchTimer"
							]
						]
,						[
							8,
							3
						]
,						[
							7,
							[
								23,
								"m3_touchTime"
							]
						]
						]
					]
					],
					[
					[
						172,
						cr.behaviors.Platform.prototype.acts.SetVectorY,
						"Platform",
						3033152464446283,
						false
						,[
						[
							0,
							[
								5,
								[
									22,
									172,
									"Platform",
									cr.behaviors.Platform.prototype.exps.VectorY,
									false,
									null
								]
								,[
									0,
									300
								]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8153451267896208,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						3455159171256569,
						false
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						785419470860474,
						[
						],
						[
						[
							172,
							cr.behaviors.Platform.prototype.acts.SimulateControl,
							"Platform",
							5709794115179543,
							false
							,[
							[
								3,
								2
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						5092429992962753,
						[
						[
							172,
							cr.behaviors.Platform.prototype.cnds.IsByWall,
							"Platform",
							0,
							false,
							false,
							false,
							4351790733836041,
							false
							,[
							[
								3,
								1
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							1317010208962729,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											2,
											"there s wall"
										]
									]
							]
							]
						]
,						[
							172,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							5012206604625249,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										131,
										cr.plugins_.Sprite.prototype.exps.X,
										false,
										null
									]
									,[
										0,
										30
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											131,
											cr.plugins_.Sprite.prototype.exps.Y,
											false,
											null
										]
										,[
											20,
											131,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										100
									]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				5658049467683765,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					3549991484941597,
					false
					,[
					[
						4,
						154
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"m3_gamePlayTimeTillNow",
					0,
					0,
false,false,1747243548795007,false
				]
,				[
					0,
					null,
					false,
					null,
					7834344653908529,
					[
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4992160370917327,
						false
						,[
						[
							11,
							"m3_gamePlayTimeTillNow"
						]
,						[
							7,
							[
								23,
								"m3_gamePlayTimeTillCurrentLevel"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.ResetGlobals,
						null,
						9178525581863848,
						false
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						9869910766609094,
						false
						,[
						[
							11,
							"m3_gamePlayTimeInSeconds"
						]
,						[
							7,
							[
								23,
								"m3_gamePlayTimeTillNow"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.RestartLayout,
						null,
						9769650342671463,
						false
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				8926855025988973,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					2650524050256651,
					false
					,[
					[
						4,
						153
					]
					]
				]
				],
				[
				[
					138,
					cr.plugins_.Dictionary.prototype.acts.SetKey,
					null,
					5132549390996792,
					false
					,[
					[
						1,
						[
							2,
							"scoreOverAll"
						]
					]
,					[
						7,
						[
							23,
							"m3_scoreOverAll"
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					5694288910981045,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						749288900813694,
						false
						,[
						[
							7,
							[
								23,
								"m3_gamePlayTimeInSeconds"
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						8305565250222296,
						false
						,[
						[
							1,
							[
								2,
								"changeLevel"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					5891629639351742,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						2629085924235676,
						false
					]
					],
					[
					[
						265,
						cr.plugins_.Dictionary.prototype.acts.AddKey,
						null,
						629053851869961,
						false
						,[
						[
							1,
							[
								2,
								"currentScore"
							]
						]
,						[
							7,
							[
								23,
								"m3_scoreOverAll"
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						2788451929579239,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							6384474758032424,
							false
							,[
							[
								7,
								[
									23,
									"m3_scoreOverAll"
								]
							]
,							[
								8,
								4
							]
,							[
								7,
								[
									23,
									"M3_TARGET_SCORE"
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.ResetGlobals,
							null,
							6895526108221799,
							false
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							3642030473613863,
							false
							,[
							[
								11,
								"currentStoryAnimation"
							]
,							[
								7,
								[
									2,
									"M3win"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8619930718177215,
							false
							,[
							[
								11,
								"m3_currentLevel"
							]
,							[
								7,
								[
									0,
									-1
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.GoToLayout,
							null,
							9022593600073268,
							false
							,[
							[
								6,
								"LayoutStory"
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						4234209144525639,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							9100934564683325,
							false
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.ResetGlobals,
							null,
							5929517190337601,
							false
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4155320136669344,
							false
							,[
							[
								11,
								"m3_currentLevel"
							]
,							[
								7,
								[
									0,
									-1
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8993652632434237,
							false
							,[
							[
								11,
								"currentStoryAnimation"
							]
,							[
								7,
								[
									2,
									"M3lost"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.GoToLayout,
							null,
							342949338632356,
							false
							,[
							[
								6,
								"LayoutStory"
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				8175069763028362,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					5400385191152051,
					false
					,[
					[
						4,
						181
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					2073074472620755,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9045354114680758,
						false
						,[
						[
							7,
							[
								23,
								"m3_isGameWon"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.ResetGlobals,
						null,
						3676235800965395,
						false
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						389034616498543,
						false
						,[
						[
							11,
							"currentStoryAnimation"
						]
,						[
							7,
							[
								2,
								"M3win"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.GoToLayout,
						null,
						2215843315187865,
						false
						,[
						[
							6,
							"LayoutStory"
						]
						]
					]
,					[
						251,
						cr.plugins_.Audio.prototype.acts.StopAll,
						null,
						3483665359145992,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9857956326406307,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						2606380948023217,
						false
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.ResetGlobals,
						null,
						8336364198680441,
						false
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3221845353537281,
						false
						,[
						[
							11,
							"currentStoryAnimation"
						]
,						[
							7,
							[
								2,
								"M3lost"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.GoToLayout,
						null,
						358934102322563,
						false
						,[
						[
							6,
							"LayoutStory"
						]
						]
					]
,					[
						251,
						cr.plugins_.Audio.prototype.acts.StopAll,
						null,
						2702913813201246,
						false
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3286211985265163,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					4976212623763211,
					false
					,[
					[
						4,
						180
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.ResetGlobals,
					null,
					6264536117695,
					false
				]
,				[
					-1,
					cr.system_object.prototype.acts.GoToLayout,
					null,
					3432096439129531,
					false
					,[
					[
						6,
						"Mission3Meal"
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Functions"],
			false,
			null,
			3753379456908008,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				3753379456908008,
				false
				,[
				[
					1,
					[
						2,
						"Functions"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				8055453124911104,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					2633477340795836,
					false
					,[
					[
						1,
						[
							2,
							"onLevelCompleteOrTimedOut"
						]
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					815763261716466,
					false
					,[
					[
						1,
						[
							2,
							"stopGame"
						]
					]
,					[
						13,
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					7823568125648327,
					false
					,[
					[
						4,
						152
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					152,
					cr.plugins_.Sprite.prototype.acts.MoveToTop,
					null,
					1238461963965596,
					false
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					7827618386581154,
					false
					,[
					[
						4,
						161
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					161,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					9259090712879847,
					false
					,[
					[
						1,
						[
							23,
							"FONT_3"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					161,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					4160686160427713,
					false
					,[
					[
						7,
						[
							2,
							"Level Completed !"
						]
					]
					]
				]
,				[
					161,
					cr.plugins_.Text.prototype.acts.SetPosToObject,
					null,
					9493970077189827,
					false
					,[
					[
						4,
						152
					]
,					[
						7,
						[
							0,
							4
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					496330014867388,
					false
					,[
					[
						4,
						153
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					534924365681251,
					false
					,[
					[
						4,
						154
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					154,
					cr.plugins_.Sprite.prototype.acts.SetPosToObject,
					null,
					9671557360758284,
					false
					,[
					[
						4,
						152
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
,				[
					153,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					2810947670405658,
					false
					,[
					[
						0,
						[
							4,
							[
								4,
								[
									20,
									154,
									cr.plugins_.Sprite.prototype.exps.X,
									false,
									null
								]
								,[
									20,
									154,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
							,[
								0,
								10
							]
						]
					]
,					[
						0,
						[
							20,
							154,
							cr.plugins_.Sprite.prototype.exps.Y,
							false,
							null
						]
					]
					]
				]
,				[
					154,
					cr.plugins_.Sprite.prototype.acts.MoveToTop,
					null,
					4361144634717728,
					false
				]
,				[
					153,
					cr.plugins_.Sprite.prototype.acts.MoveToTop,
					null,
					8899117960629939,
					false
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					6330805289796839,
					false
					,[
					[
						4,
						160
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					160,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					4651543806046731,
					false
					,[
					[
						1,
						[
							23,
							"FONT_3"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					160,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					5927996209685156,
					false
					,[
					[
						7,
						[
							2,
							"You Scored !"
						]
					]
					]
				]
,				[
					160,
					cr.plugins_.Text.prototype.acts.SetPosToObject,
					null,
					4334206498503905,
					false
					,[
					[
						4,
						152
					]
,					[
						7,
						[
							0,
							3
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					5446777158932107,
					false
					,[
					[
						4,
						159
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					159,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					2187304574422804,
					false
					,[
					[
						1,
						[
							23,
							"FONT_3"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					9118932353475083,
					false
					,[
					[
						4,
						121
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					121,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					4594125211322167,
					false
					,[
					[
						1,
						[
							23,
							"FONT_2"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					121,
					cr.plugins_.Text.prototype.acts.SetPos,
					null,
					4045368265803629,
					false
					,[
					[
						0,
						[
							20,
							152,
							cr.plugins_.Sprite.prototype.exps.ImagePointX,
							false,
							null
							,[
[
								0,
								2
							]
							]
						]
					]
,					[
						0,
						[
							5,
							[
								20,
								152,
								cr.plugins_.Sprite.prototype.exps.ImagePointY,
								false,
								null
								,[
[
									0,
									2
								]
								]
							]
							,[
								0,
								45
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					6939763132603699,
					false
					,[
					[
						4,
						119
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					119,
					cr.plugins_.Sprite.prototype.acts.SetPosToObject,
					null,
					8212195857055438,
					false
					,[
					[
						4,
						152
					]
,					[
						7,
						[
							0,
							6
						]
					]
					]
				]
,				[
					119,
					cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
					null,
					2512763897334273,
					false
					,[
					[
						0,
						[
							20,
							136,
							cr.plugins_.Arr.prototype.exps.At,
							false,
							null
							,[
[
								20,
								135,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									23,
									"m3_currentLevel"
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
,[
								0,
								0
							]
,[
								0,
								3
							]
							]
						]
					]
					]
				]
				]
				,[
				[
					1,
					"m3_completeCount",
					0,
					0,
false,false,8936690306191541,false
				]
,				[
					1,
					"m3_incmpleteCount",
					0,
					0,
false,false,6428706936422879,false
				]
,				[
					1,
					"m3_scorePercentage",
					0,
					0,
false,false,2420347058623366,false
				]
,				[
					0,
					null,
					false,
					null,
					458944873798605,
					[
					[
						-1,
						cr.system_object.prototype.cnds.For,
						null,
						0,
						true,
						false,
						false,
						3695967587840686,
						false
						,[
						[
							1,
							[
								2,
								"i"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								5,
								[
									23,
									"m3_numOfIngridientsInRecipe"
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						7998106427678204,
						false
						,[
						[
							4,
							125
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								20,
								152,
								cr.plugins_.Sprite.prototype.exps.ImagePointX,
								false,
								null
								,[
[
									0,
									2
								]
								]
							]
						]
,						[
							0,
							[
								4,
								[
									4,
									[
										20,
										152,
										cr.plugins_.Sprite.prototype.exps.ImagePointY,
										false,
										null
										,[
[
											0,
											2
										]
										]
									]
									,[
										6,
										[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										,[
											20,
											125,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
								]
								,[
									0,
									40
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						6741134846511945,
						false
						,[
						[
							4,
							144
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								0,
								-100
							]
						]
,						[
							0,
							[
								0,
								-100
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						768533176279425,
						false
						,[
						[
							4,
							120
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								0,
								-200
							]
						]
,						[
							0,
							[
								0,
								-200
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						88892499421775,
						false
						,[
						[
							4,
							122
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								0,
								-200
							]
						]
,						[
							0,
							[
								0,
								-200
							]
						]
						]
					]
,					[
						125,
						cr.plugins_.Sprite.prototype.acts.SetSize,
						null,
						406592540003569,
						false
						,[
						[
							0,
							[
								0,
								66
							]
						]
,						[
							0,
							[
								0,
								66
							]
						]
						]
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.SetSize,
						null,
						1079203393674687,
						false
						,[
						[
							0,
							[
								0,
								120
							]
						]
,						[
							0,
							[
								0,
								120
							]
						]
						]
					]
,					[
						120,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						9487545232117837,
						false
						,[
						[
							1,
							[
								23,
								"FONT_2"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						122,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						2246128130316964,
						false
						,[
						[
							1,
							[
								23,
								"FONT_2"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						125,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						1645386143178821,
						false
						,[
						[
							0,
							[
								20,
								152,
								cr.plugins_.Sprite.prototype.exps.ImagePointX,
								false,
								null
								,[
[
									0,
									2
								]
								]
							]
						]
,						[
							0,
							[
								4,
								[
									4,
									[
										20,
										152,
										cr.plugins_.Sprite.prototype.exps.ImagePointY,
										false,
										null
										,[
[
											0,
											2
										]
										]
									]
									,[
										6,
										[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										,[
											20,
											125,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
								]
								,[
									0,
									40
								]
							]
						]
						]
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.SetPosToObject,
						null,
						2113476645499055,
						false
						,[
						[
							4,
							125
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						120,
						cr.plugins_.Text.prototype.acts.SetPosToObject,
						null,
						6200174758056734,
						false
						,[
						[
							4,
							125
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
,					[
						122,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						7209546079264801,
						false
						,[
						[
							0,
							[
								5,
								[
									4,
									[
										20,
										120,
										cr.plugins_.Text.prototype.exps.X,
										false,
										null
									]
									,[
										20,
										120,
										cr.plugins_.Text.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									45
								]
							]
						]
,						[
							0,
							[
								20,
								120,
								cr.plugins_.Text.prototype.exps.Y,
								false,
								null
							]
						]
						]
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						8668692568798,
						false
						,[
						[
							0,
							[
								20,
								148,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									19,
									cr.system_object.prototype.exps.loopindex
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						120,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						1960874423338951,
						false
						,[
						[
							7,
							[
								20,
								148,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									19,
									cr.system_object.prototype.exps.loopindex
								]
,[
									0,
									0
								]
,[
									0,
									1
								]
								]
							]
						]
						]
					]
,					[
						122,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						6835282783854723,
						false
						,[
						[
							7,
							[
								20,
								148,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									19,
									cr.system_object.prototype.exps.loopindex
								]
,[
									0,
									0
								]
,[
									0,
									2
								]
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						952425320052367,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							8626213762972925,
							false
							,[
							[
								7,
								[
									20,
									148,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										19,
										cr.system_object.prototype.exps.loopindex
									]
,[
										0,
										0
									]
,[
										0,
										2
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									20,
									148,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										19,
										cr.system_object.prototype.exps.loopindex
									]
,[
										0,
										0
									]
,[
										0,
										3
									]
									]
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.CreateObject,
							null,
							316429468479082,
							false
							,[
							[
								4,
								156
							]
,							[
								5,
								[
									2,
									"Huds"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							156,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							8990594512045524,
							false
							,[
							[
								0,
								[
									5,
									[
										4,
										[
											20,
											120,
											cr.plugins_.Text.prototype.exps.X,
											false,
											null
										]
										,[
											20,
											120,
											cr.plugins_.Text.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										105
									]
								]
							]
,							[
								0,
								[
									20,
									120,
									cr.plugins_.Text.prototype.exps.Y,
									false,
									null
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							4490820150409813,
							false
							,[
							[
								11,
								"m3_completeCount"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							8164277498711303,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								8119782172306795,
								false
								,[
								[
									7,
									[
										23,
										"m3_completeCount"
									]
								]
,								[
									8,
									4
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								9020916230749849,
								false
								,[
								[
									11,
									"m3_scorePercentage"
								]
,								[
									7,
									[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											6,
											[
												7,
												[
													23,
													"m3_completeCount"
												]
												,[
													23,
													"m3_numOfIngridientsInRecipe"
												]
											]
											,[
												0,
												100
											]
										]
										]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						4695813230082709,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							5910919999704502,
							false
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.CreateObject,
							null,
							492955949411907,
							false
							,[
							[
								4,
								155
							]
,							[
								5,
								[
									2,
									"Huds"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							155,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							4475957564976311,
							false
							,[
							[
								0,
								[
									5,
									[
										4,
										[
											20,
											120,
											cr.plugins_.Text.prototype.exps.X,
											false,
											null
										]
										,[
											20,
											120,
											cr.plugins_.Text.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										105
									]
								]
							]
,							[
								0,
								[
									20,
									120,
									cr.plugins_.Text.prototype.exps.Y,
									false,
									null
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							8821627070217983,
							false
							,[
							[
								11,
								"m3_incmpleteCount"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1666764797603776,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7715383929216831,
						false
						,[
						[
							7,
							[
								23,
								"m3_scorePercentage"
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								50
							]
						]
						]
					]
					],
					[
					[
						160,
						cr.plugins_.Text.prototype.acts.SetFontColor,
						null,
						4139344134299919,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.rgb
								,[
[
									0,
									0
								]
,[
									0,
									153
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						159,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						4455363571477264,
						false
						,[
						[
							7,
							[
								10,
								[
									23,
									"m3_scorePercentage"
								]
								,[
									2,
									" %"
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						8153912029832175,
						false
						,[
						[
							4,
							157
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						157,
						cr.plugins_.Sprite.prototype.acts.SetPosToObject,
						null,
						8683110403026725,
						false
						,[
						[
							4,
							152
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						159,
						cr.plugins_.Text.prototype.acts.SetPosToObject,
						null,
						3802836758139895,
						false
						,[
						[
							4,
							157
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						159,
						cr.plugins_.Text.prototype.acts.MoveToTop,
						null,
						5207306682082418,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8559811778849409,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						6833492704442831,
						false
					]
					],
					[
					[
						160,
						cr.plugins_.Text.prototype.acts.SetFontColor,
						null,
						4015677763352126,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.rgb
								,[
[
									0,
									255
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						159,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						2804594888419555,
						false
						,[
						[
							7,
							[
								10,
								[
									23,
									"m3_scorePercentage"
								]
								,[
									2,
									" %"
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						623608740991931,
						false
						,[
						[
							4,
							158
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						158,
						cr.plugins_.Sprite.prototype.acts.SetPosToObject,
						null,
						2132823669891335,
						false
						,[
						[
							4,
							152
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						159,
						cr.plugins_.Text.prototype.acts.SetPosToObject,
						null,
						526796968265107,
						false
						,[
						[
							4,
							158
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						159,
						cr.plugins_.Text.prototype.acts.MoveToTop,
						null,
						461992037984622,
						false
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4113165395653906,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5636598920445736,
					false
					,[
					[
						1,
						[
							2,
							"chooseLayout"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					5371583605531938,
					[
					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						9709476501121819,
						false
						,[
						[
							11,
							"m3_currentLevel"
						]
,						[
							8,
							3
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4847352533584512,
						false
						,[
						[
							11,
							"m3_layout"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						4987758057559114,
						false
						,[
						[
							4,
							129
						]
,						[
							5,
							[
								2,
								"Background"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						9776753989735496,
						false
						,[
						[
							4,
							130
						]
,						[
							5,
							[
								2,
								"Background"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						129,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						810837116131595,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						129,
						cr.plugins_.TiledBg.prototype.acts.SetSize,
						null,
						7654382623554084,
						false
						,[
						[
							0,
							[
								23,
								"m3_longWidth"
							]
						]
,						[
							0,
							[
								23,
								"m3_BGDefaultheight"
							]
						]
						]
					]
,					[
						130,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						8889834530095427,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								5,
								[
									20,
									129,
									cr.plugins_.TiledBg.prototype.exps.Height,
									false,
									null
								]
								,[
									23,
									"m3_FGpixelsUnderBg"
								]
							]
						]
						]
					]
,					[
						130,
						cr.plugins_.TiledBg.prototype.acts.SetSize,
						null,
						3189783421593206,
						false
						,[
						[
							0,
							[
								23,
								"m3_longWidth"
							]
						]
,						[
							0,
							[
								23,
								"m3_FGDefaultheight"
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4146613348810037,
						false
						,[
						[
							1,
							[
								2,
								"drawAndpositionHuds"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2316119886134805,
					[
					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						2660190966613811,
						false
						,[
						[
							11,
							"m3_currentLevel"
						]
,						[
							8,
							5
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						4302397817077586,
						false
						,[
						[
							11,
							"m3_currentLevel"
						]
,						[
							8,
							3
						]
,						[
							7,
							[
								0,
								4
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3929234786663323,
						false
						,[
						[
							11,
							"m3_layout"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						9254142483304306,
						false
						,[
						[
							4,
							162
						]
,						[
							5,
							[
								2,
								"Background"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						2344876013763261,
						false
						,[
						[
							4,
							165
						]
,						[
							5,
							[
								2,
								"Background"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						162,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						7184525974554477,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						162,
						cr.plugins_.TiledBg.prototype.acts.SetSize,
						null,
						5734532710254955,
						false
						,[
						[
							0,
							[
								23,
								"m3_longWidth"
							]
						]
,						[
							0,
							[
								23,
								"m3_BGDefaultheight"
							]
						]
						]
					]
,					[
						165,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						7151137813505606,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								5,
								[
									20,
									129,
									cr.plugins_.TiledBg.prototype.exps.Height,
									false,
									null
								]
								,[
									23,
									"m3_FGpixelsUnderBg"
								]
							]
						]
						]
					]
,					[
						165,
						cr.plugins_.TiledBg.prototype.acts.SetSize,
						null,
						8563112992332116,
						false
						,[
						[
							0,
							[
								23,
								"m3_longWidth"
							]
						]
,						[
							0,
							[
								23,
								"m3_FGDefaultheight"
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9146121022958587,
						false
						,[
						[
							1,
							[
								2,
								"drawAndpositionHuds"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1867056033836778,
					[
					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						4239582764814311,
						false
						,[
						[
							11,
							"m3_currentLevel"
						]
,						[
							8,
							5
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						9708154626938325,
						false
						,[
						[
							11,
							"m3_layout"
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						3620662858766648,
						false
						,[
						[
							4,
							164
						]
,						[
							5,
							[
								2,
								"Background"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						9677003080030601,
						false
						,[
						[
							4,
							167
						]
,						[
							5,
							[
								2,
								"Background"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						164,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						164917235026345,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						164,
						cr.plugins_.TiledBg.prototype.acts.SetSize,
						null,
						2111295568444748,
						false
						,[
						[
							0,
							[
								23,
								"m3_longWidth"
							]
						]
,						[
							0,
							[
								23,
								"m3_BGDefaultheight"
							]
						]
						]
					]
,					[
						167,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						5915055695756713,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								5,
								[
									20,
									129,
									cr.plugins_.TiledBg.prototype.exps.Height,
									false,
									null
								]
								,[
									23,
									"m3_FGpixelsUnderBg"
								]
							]
						]
						]
					]
,					[
						167,
						cr.plugins_.TiledBg.prototype.acts.SetSize,
						null,
						7204861551996748,
						false
						,[
						[
							0,
							[
								23,
								"m3_longWidth"
							]
						]
,						[
							0,
							[
								23,
								"m3_FGDefaultheight"
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2876543463158143,
						false
						,[
						[
							1,
							[
								2,
								"drawAndpositionHuds"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7013380120352394,
					[
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						2966862174619194,
						false
						,[
						[
							4,
							150
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								4,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.windowwidth
									]
									,[
										0,
										2
									]
								]
								,[
									7,
									[
										20,
										150,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
									,[
										0,
										2
									]
								]
							]
						]
,						[
							0,
							[
								4,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.windowheight
									]
									,[
										0,
										2
									]
								]
								,[
									7,
									[
										20,
										150,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
									,[
										0,
										2
									]
								]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				9459563786256469,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					222539084640286,
					false
					,[
					[
						1,
						[
							2,
							"drawAndpositionHuds"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					949266791393854,
					false
					,[
					[
						4,
						141
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					141,
					cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
					null,
					9279601204601925,
					false
					,[
					[
						0,
						[
							23,
							"m3_layout"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					7333907625021137,
					false
					,[
					[
						4,
						146
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					3404884089522565,
					false
					,[
					[
						4,
						149
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							626
						]
					]
,					[
						0,
						[
							0,
							40
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					1037370901167581,
					false
					,[
					[
						4,
						151
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							524
						]
					]
,					[
						0,
						[
							0,
							-18
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					3288289888863627,
					false
					,[
					[
						4,
						174
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							5,
							[
								5,
								[
									19,
									cr.system_object.prototype.exps.viewportright
									,[
[
										2,
										"Huds"
									]
									]
								]
								,[
									20,
									174,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
							,[
								0,
								30
							]
						]
					]
,					[
						0,
						[
							4,
							[
								19,
								cr.system_object.prototype.exps.viewporttop
								,[
[
									2,
									"Huds"
								]
								]
							]
							,[
								0,
								10
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					5033893317573232,
					false
					,[
					[
						4,
						175
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							5,
							[
								5,
								[
									19,
									cr.system_object.prototype.exps.viewportright
									,[
[
										2,
										"Huds"
									]
									]
								]
								,[
									20,
									174,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
							,[
								0,
								30
							]
						]
					]
,					[
						0,
						[
							4,
							[
								19,
								cr.system_object.prototype.exps.viewporttop
								,[
[
									2,
									"Huds"
								]
								]
							]
							,[
								0,
								10
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					1845276760324601,
					false
					,[
					[
						4,
						182
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							5,
							[
								5,
								[
									20,
									174,
									cr.plugins_.Sprite.prototype.exps.X,
									false,
									null
								]
								,[
									20,
									182,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
							,[
								0,
								30
							]
						]
					]
,					[
						0,
						[
							4,
							[
								19,
								cr.system_object.prototype.exps.viewporttop
								,[
[
									2,
									"Huds"
								]
								]
							]
							,[
								0,
								10
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					9876056626013987,
					false
					,[
					[
						4,
						183
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							5,
							[
								5,
								[
									20,
									174,
									cr.plugins_.Sprite.prototype.exps.X,
									false,
									null
								]
								,[
									20,
									182,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
							,[
								0,
								30
							]
						]
					]
,					[
						0,
						[
							4,
							[
								19,
								cr.system_object.prototype.exps.viewporttop
								,[
[
									2,
									"Huds"
								]
								]
							]
							,[
								0,
								10
							]
						]
					]
					]
				]
,				[
					175,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					505360310290519,
					false
					,[
					[
						1,
						[
							23,
							"FONT_6"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					183,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					1967148103320359,
					false
					,[
					[
						1,
						[
							23,
							"FONT_6"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					146,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					3724879324268112,
					false
					,[
					[
						1,
						[
							23,
							"FONT_6"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					151,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					4683241029841556,
					false
					,[
					[
						1,
						[
							23,
							"FONT_6"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					175,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					9477848269261023,
					false
					,[
					[
						7,
						[
							19,
							cr.system_object.prototype.exps.zeropad
							,[
[
								23,
								"m3_scoreOverAll"
							]
,[
								0,
								2
							]
							]
						]
					]
					]
				]
,				[
					183,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					7030251492376566,
					false
					,[
					[
						7,
						[
							19,
							cr.system_object.prototype.exps.zeropad
							,[
[
								23,
								"M3_TARGET_SCORE"
							]
,[
								0,
								2
							]
							]
						]
					]
					]
				]
,				[
					151,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					8314895054549613,
					false
					,[
					[
						7,
						[
							10,
							[
								10,
								[
									19,
									cr.system_object.prototype.exps.zeropad
									,[
[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											8,
											[
												7,
												[
													23,
													"m3_gamePlayTimeInSeconds"
												]
												,[
													0,
													60
												]
											]
											,[
												0,
												60
											]
										]
										]
									]
,[
										0,
										2
									]
									]
								]
								,[
									2,
									" : "
								]
							]
							,[
								19,
								cr.system_object.prototype.exps.zeropad
								,[
[
									19,
									cr.system_object.prototype.exps.floor
									,[
[
										8,
										[
											23,
											"m3_gamePlayTimeInSeconds"
										]
										,[
											0,
											60
										]
									]
									]
								]
,[
									0,
									2
								]
								]
							]
						]
					]
					]
				]
,				[
					146,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					3789318409039897,
					false
					,[
					[
						7,
						[
							10,
							[
								2,
								"Level "
							]
							,[
								19,
								cr.system_object.prototype.exps.zeropad
								,[
[
									4,
									[
										20,
										138,
										cr.plugins_.Dictionary.prototype.exps.Get,
										false,
										null
										,[
[
											2,
											"currentLevel"
										]
										]
									]
									,[
										0,
										1
									]
								]
,[
									0,
									2
								]
								]
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					5277151340040203,
					false
					,[
					[
						4,
						141
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							725
						]
					]
					]
				]
,				[
					141,
					cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
					null,
					1119723514027372,
					false
					,[
					[
						0,
						[
							23,
							"m3_layout"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					8979291988348182,
					false
					,[
					[
						4,
						142
					]
,					[
						5,
						[
							2,
							"Huds"
						]
					]
,					[
						0,
						[
							0,
							57
						]
					]
,					[
						0,
						[
							0,
							733
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				9683302587182406,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					4976994567457651,
					false
					,[
					[
						1,
						[
							2,
							"setIngridientsAndCounter"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"m3_cntrBlock_xPos_local",
					0,
					215,
false,false,2295401878100077,false
				]
,				[
					0,
					null,
					false,
					null,
					4512594483319083,
					[
					[
						-1,
						cr.system_object.prototype.cnds.For,
						null,
						0,
						true,
						false,
						false,
						3257370660254509,
						false
						,[
						[
							1,
							[
								2,
								"i"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								5,
								[
									20,
									136,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										20,
										138,
										cr.plugins_.Dictionary.prototype.exps.Get,
										false,
										null
										,[
[
											2,
											"selectedLevelRecipeIndex"
										]
										]
									]
,[
										0,
										0
									]
,[
										0,
										2
									]
									]
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						33004245680999,
						false
						,[
						[
							4,
							143
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								23,
								"m3_cntrBlock_xPos_local"
							]
						]
,						[
							0,
							[
								0,
								733
							]
						]
						]
					]
,					[
						143,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						9821479784868384,
						false
						,[
						[
							0,
							[
								23,
								"m3_layout"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						4027031661308033,
						false
						,[
						[
							4,
							144
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								0,
								-66
							]
						]
,						[
							0,
							[
								0,
								-66
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						3717212406675945,
						false
						,[
						[
							4,
							134
						]
,						[
							5,
							[
								2,
								"Huds"
							]
						]
,						[
							0,
							[
								0,
								-66
							]
						]
,						[
							0,
							[
								0,
								-66
							]
						]
						]
					]
,					[
						148,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						1542003685930632,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.loopindex
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								20,
								139,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									139,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										0,
										0
									]
,[
										0,
										0
									]
,[
										20,
										136,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											20,
											138,
											cr.plugins_.Dictionary.prototype.exps.Get,
											false,
											null
											,[
[
												2,
												"selectedLevelRecipeIndex"
											]
											]
										]
,[
											0,
											1
										]
,[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										]
									]
									]
								]
,[
									0,
									0
								]
,[
									0,
									2
								]
								]
							]
						]
						]
					]
,					[
						148,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						3779814433742795,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.loopindex
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								20,
								139,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									139,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										0,
										0
									]
,[
										0,
										0
									]
,[
										20,
										136,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											20,
											138,
											cr.plugins_.Dictionary.prototype.exps.Get,
											false,
											null
											,[
[
												2,
												"selectedLevelRecipeIndex"
											]
											]
										]
,[
											0,
											1
										]
,[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										]
									]
									]
								]
,[
									0,
									0
								]
,[
									0,
									1
								]
								]
							]
						]
						]
					]
,					[
						148,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						7877420041465936,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.loopindex
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								20,
								136,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									138,
									cr.plugins_.Dictionary.prototype.exps.Get,
									false,
									null
									,[
[
										2,
										"selectedLevelRecipeIndex"
									]
									]
								]
,[
									0,
									2
								]
,[
									19,
									cr.system_object.prototype.exps.loopindex
								]
								]
							]
						]
						]
					]
,					[
						148,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						2126810197700039,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.loopindex
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								3
							]
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						6111115079622347,
						false
						,[
						[
							0,
							[
								20,
								148,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									19,
									cr.system_object.prototype.exps.loopindex
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.SetSize,
						null,
						5506655037838328,
						false
						,[
						[
							0,
							[
								0,
								66
							]
						]
,						[
							0,
							[
								0,
								66
							]
						]
						]
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.SetPosToObject,
						null,
						1300913306138601,
						false
						,[
						[
							4,
							143
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						5507283856390055,
						false
						,[
						[
							11,
							"m3_cntrBlock_xPos_local"
						]
,						[
							7,
							[
								4,
								[
									20,
									144,
									cr.plugins_.Sprite.prototype.exps.ImagePointX,
									false,
									null
									,[
[
										0,
										1
									]
									]
								]
								,[
									20,
									144,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
						]
						]
					]
,					[
						134,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						6887761187073661,
						false
						,[
						[
							7,
							[
								20,
								148,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									19,
									cr.system_object.prototype.exps.loopindex
								]
,[
									0,
									0
								]
,[
									0,
									2
								]
								]
							]
						]
						]
					]
,					[
						134,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						4676005468616042,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									143,
									cr.plugins_.Sprite.prototype.exps.X,
									false,
									null
								]
								,[
									0,
									3
								]
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									143,
									cr.plugins_.Sprite.prototype.exps.Y,
									false,
									null
								]
								,[
									0,
									5
								]
							]
						]
						]
					]
,					[
						134,
						cr.plugins_.Text.prototype.acts.SetInstanceVar,
						null,
						7159992617978608,
						false
						,[
						[
							10,
							0
						]
,						[
							7,
							[
								20,
								148,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									19,
									cr.system_object.prototype.exps.loopindex
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						134,
						cr.plugins_.Text.prototype.acts.SetInstanceVar,
						null,
						3464708254291022,
						false
						,[
						[
							10,
							1
						]
,						[
							7,
							[
								20,
								148,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									19,
									cr.system_object.prototype.exps.loopindex
								]
,[
									0,
									0
								]
,[
									0,
									2
								]
								]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2073656622306619,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					1699020860736604,
					false
					,[
					[
						1,
						[
							2,
							"destroyObjects"
						]
					]
					]
				]
				],
				[
				[
					129,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					4369449869684225,
					false
				]
,				[
					162,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					1040429925590555,
					false
				]
,				[
					163,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					8940608242661494,
					false
				]
,				[
					164,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					2050079316599783,
					false
				]
,				[
					142,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9547112460824854,
					false
				]
,				[
					150,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					3092814355402453,
					false
				]
,				[
					155,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					4780284105965382,
					false
				]
,				[
					130,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					6708579871248415,
					false
				]
,				[
					165,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					5200183345065325,
					false
				]
,				[
					166,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					9986909215872675,
					false
				]
,				[
					167,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					9205981727804298,
					false
				]
,				[
					157,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1063740801772248,
					false
				]
,				[
					145,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1287224271092268,
					false
				]
,				[
					147,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					7703809800357083,
					false
				]
,				[
					170,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9813121463528304,
					false
				]
,				[
					141,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					4175986941102925,
					false
				]
,				[
					143,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1806536760897204,
					false
				]
,				[
					144,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					6981109105859785,
					false
				]
,				[
					134,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					8966935943487712,
					false
				]
,				[
					168,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					6059851904893349,
					false
				]
,				[
					146,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					435107314654809,
					false
				]
,				[
					152,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					8321816553588528,
					false
				]
,				[
					161,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					9196591383893563,
					false
				]
,				[
					153,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					8431547702794303,
					false
				]
,				[
					132,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					4045918463399397,
					false
				]
,				[
					133,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					3972900811615174,
					false
				]
,				[
					158,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					6051890219448841,
					false
				]
,				[
					154,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9513944886014995,
					false
				]
,				[
					156,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					2814826423206203,
					false
				]
,				[
					149,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					421173076830653,
					false
				]
,				[
					151,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					8880183326650666,
					false
				]
,				[
					159,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					2472636687367807,
					false
				]
,				[
					160,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					1364239162466085,
					false
				]
,				[
					121,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					8228848084590408,
					false
				]
,				[
					119,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					3968459229876297,
					false
				]
,				[
					174,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9171947478081983,
					false
				]
,				[
					175,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					1056834418757877,
					false
				]
,				[
					182,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1463744622554272,
					false
				]
,				[
					183,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					4431542452148303,
					false
				]
,				[
					178,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					4205722190239536,
					false
				]
,				[
					179,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9293788270191355,
					false
				]
,				[
					181,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					9723668275336157,
					false
				]
,				[
					180,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					892664538186302,
					false
				]
,				[
					184,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					8367415597081065,
					false
				]
,				[
					185,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					6837637344740757,
					false
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			7219826915697207,
			[
			[
				249,
				cr.plugins_.Function.prototype.cnds.OnFunction,
				null,
				2,
				false,
				false,
				false,
				7040536869855915,
				false
				,[
				[
					1,
					[
						2,
						"correctSound"
					]
				]
				]
			]
			],
			[
			[
				251,
				cr.plugins_.Audio.prototype.acts.PlayByName,
				null,
				9618681957855255,
				false
				,[
				[
					3,
					0
				]
,				[
					1,
					[
						2,
						"m3_correctSound"
					]
				]
,				[
					3,
					0
				]
,				[
					0,
					[
						0,
						0
					]
				]
,				[
					1,
					[
						2,
						"m3_correctSound"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			7396071489765389,
			[
			[
				249,
				cr.plugins_.Function.prototype.cnds.OnFunction,
				null,
				2,
				false,
				false,
				false,
				4686138678441097,
				false
				,[
				[
					1,
					[
						2,
						"wrongSound"
					]
				]
				]
			]
			],
			[
			[
				251,
				cr.plugins_.Audio.prototype.acts.PlayByName,
				null,
				8079306889540815,
				false
				,[
				[
					3,
					0
				]
,				[
					1,
					[
						2,
						"m3_errorSound"
					]
				]
,				[
					3,
					0
				]
,				[
					0,
					[
						0,
						0
					]
				]
,				[
					1,
					[
						2,
						"m3_errorSound"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			8385459593791313,
			[
			[
				249,
				cr.plugins_.Function.prototype.cnds.OnFunction,
				null,
				2,
				false,
				false,
				false,
				1612175040354861,
				false
				,[
				[
					1,
					[
						2,
						"updateHudScore"
					]
				]
				]
			]
			],
			[
			[
				175,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				7280785691087809,
				false
				,[
				[
					7,
					[
						19,
						cr.system_object.prototype.exps.zeropad
						,[
[
							23,
							"m3_scoreOverAll"
						]
,[
							0,
							2
						]
						]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			6173187054725505,
			[
			[
				249,
				cr.plugins_.Function.prototype.cnds.OnFunction,
				null,
				2,
				false,
				false,
				false,
				2823499280920802,
				false
				,[
				[
					1,
					[
						2,
						"gameOverWon"
					]
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				1441636224402276,
				false
				,[
				[
					1,
					[
						2,
						"stopGame"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				2840467507363343,
				false
				,[
				[
					11,
					"m3_isGameWon"
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				8269735103415248,
				false
				,[
				[
					4,
					179
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						120
					]
				]
,				[
					0,
					[
						0,
						50
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				2745496777973609,
				false
				,[
				[
					4,
					184
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						800
					]
				]
,				[
					0,
					[
						0,
						300
					]
				]
				]
			]
,			[
				184,
				cr.plugins_.Text.prototype.acts.SetWebFont,
				null,
				9052778235173862,
				false
				,[
				[
					1,
					[
						23,
						"FONT_3"
					]
				]
,				[
					1,
					[
						23,
						"CSS_1"
					]
				]
				]
			]
,			[
				184,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				2414984534229776,
				false
				,[
				[
					7,
					[
						23,
						"M3_TARGET_SCORE"
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				2679248122624656,
				false
				,[
				[
					4,
					185
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						20,
						184,
						cr.plugins_.Text.prototype.exps.X,
						false,
						null
					]
				]
,				[
					0,
					[
						4,
						[
							20,
							184,
							cr.plugins_.Text.prototype.exps.Y,
							false,
							null
						]
						,[
							20,
							184,
							cr.plugins_.Text.prototype.exps.Height,
							false,
							null
						]
					]
				]
				]
			]
,			[
				185,
				cr.plugins_.Text.prototype.acts.SetWebFont,
				null,
				7085882056622796,
				false
				,[
				[
					1,
					[
						23,
						"FONT_3"
					]
				]
,				[
					1,
					[
						23,
						"CSS_1"
					]
				]
				]
			]
,			[
				185,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				9020262365152949,
				false
				,[
				[
					7,
					[
						23,
						"m3_scoreOverAll"
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				268994201064872,
				false
				,[
				[
					4,
					186
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						850
					]
				]
,				[
					0,
					[
						0,
						430
					]
				]
				]
			]
,			[
				186,
				cr.plugins_.Text.prototype.acts.SetWebFont,
				null,
				2345280138162493,
				false
				,[
				[
					1,
					[
						23,
						"FONT_3"
					]
				]
,				[
					1,
					[
						23,
						"CSS_1"
					]
				]
				]
			]
,			[
				186,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				8610841410776691,
				false
				,[
				[
					7,
					[
						2,
						"100%"
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				8194981194978244,
				false
				,[
				[
					4,
					181
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						770
					]
				]
,				[
					0,
					[
						0,
						600
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				1285802742591293,
				false
				,[
				[
					4,
					180
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						440
					]
				]
,				[
					0,
					[
						0,
						600
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			2363685199280594,
			[
			[
				249,
				cr.plugins_.Function.prototype.cnds.OnFunction,
				null,
				2,
				false,
				false,
				false,
				6562916390279915,
				false
				,[
				[
					1,
					[
						2,
						"gameOverLost"
					]
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				3525402823983038,
				false
				,[
				[
					1,
					[
						2,
						"stopGame"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				8773124751403762,
				false
				,[
				[
					11,
					"m3_isGameWon"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				72763048034473,
				false
				,[
				[
					4,
					178
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						120
					]
				]
,				[
					0,
					[
						0,
						50
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				5672068585296964,
				false
				,[
				[
					4,
					184
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						800
					]
				]
,				[
					0,
					[
						0,
						300
					]
				]
				]
			]
,			[
				184,
				cr.plugins_.Text.prototype.acts.SetWebFont,
				null,
				1471355581840846,
				false
				,[
				[
					1,
					[
						23,
						"FONT_3"
					]
				]
,				[
					1,
					[
						23,
						"CSS_1"
					]
				]
				]
			]
,			[
				184,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				9598552728089224,
				false
				,[
				[
					7,
					[
						23,
						"M3_TARGET_SCORE"
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				7959151232547179,
				false
				,[
				[
					4,
					185
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						20,
						184,
						cr.plugins_.Text.prototype.exps.X,
						false,
						null
					]
				]
,				[
					0,
					[
						4,
						[
							20,
							184,
							cr.plugins_.Text.prototype.exps.Y,
							false,
							null
						]
						,[
							20,
							184,
							cr.plugins_.Text.prototype.exps.Height,
							false,
							null
						]
					]
				]
				]
			]
,			[
				185,
				cr.plugins_.Text.prototype.acts.SetWebFont,
				null,
				6184431435366171,
				false
				,[
				[
					1,
					[
						23,
						"FONT_3"
					]
				]
,				[
					1,
					[
						23,
						"CSS_1"
					]
				]
				]
			]
,			[
				185,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				9503042787593974,
				false
				,[
				[
					7,
					[
						23,
						"m3_scoreOverAll"
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				9068495736578853,
				false
				,[
				[
					4,
					186
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						850
					]
				]
,				[
					0,
					[
						0,
						430
					]
				]
				]
			]
,			[
				186,
				cr.plugins_.Text.prototype.acts.SetWebFont,
				null,
				8805696359196716,
				false
				,[
				[
					1,
					[
						23,
						"FONT_3"
					]
				]
,				[
					1,
					[
						23,
						"CSS_1"
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				4003180235526854,
				false
				,[
				[
					11,
					"m3_percentScoredInGame"
				]
,				[
					7,
					[
						19,
						cr.system_object.prototype.exps.floor
						,[
[
							6,
							[
								7,
								[
									23,
									"m3_scoreOverAll"
								]
								,[
									23,
									"M3_TARGET_SCORE"
								]
							]
							,[
								0,
								100
							]
						]
						]
					]
				]
				]
			]
,			[
				186,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				2024924841602929,
				false
				,[
				[
					7,
					[
						10,
						[
							23,
							"m3_percentScoredInGame"
						]
						,[
							2,
							" %"
						]
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				7163201088203218,
				false
				,[
				[
					4,
					181
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						770
					]
				]
,				[
					0,
					[
						0,
						600
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.CreateObject,
				null,
				3746992336914743,
				false
				,[
				[
					4,
					180
				]
,				[
					5,
					[
						2,
						"Huds"
					]
				]
,				[
					0,
					[
						0,
						440
					]
				]
,				[
					0,
					[
						0,
						600
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			1130425876807836,
			[
			[
				249,
				cr.plugins_.Function.prototype.cnds.OnFunction,
				null,
				2,
				false,
				false,
				false,
				3119433939007608,
				false
				,[
				[
					1,
					[
						2,
						"stopGame"
					]
				]
				]
			]
			],
			[
			[
				172,
				cr.behaviors.Bullet.prototype.acts.SetEnabled,
				"Bullet",
				4553955209976174,
				false
				,[
				[
					3,
					0
				]
				]
			]
,			[
				131,
				cr.plugins_.Sprite.prototype.acts.SetAnim,
				null,
				2113213960482109,
				false
				,[
				[
					1,
					[
						2,
						"idle"
					]
				]
,				[
					3,
					1
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				1778961255517578,
				false
				,[
				[
					11,
					"m3_gameStarted"
				]
,				[
					7,
					[
						0,
						2
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "touchtimer"],
			false,
			null,
			5510740969712479,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				5510740969712479,
				false
				,[
				[
					1,
					[
						2,
						"touchtimer"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				8853450931212001,
				[
				[
					-1,
					cr.system_object.prototype.cnds.TriggerOnce,
					null,
					0,
					false,
					false,
					false,
					4915187176717532,
					false
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					7785074487684145,
					false
					,[
					[
						11,
						"m3_touchTimer"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				169530580655472,
				[
				[
					-1,
					cr.system_object.prototype.cnds.EveryTick,
					null,
					0,
					false,
					false,
					false,
					231570055532024,
					false
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.AddVar,
					null,
					9937576612850601,
					false
					,[
					[
						11,
						"m3_touchTimer"
					]
,					[
						7,
						[
							19,
							cr.system_object.prototype.exps.dt
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				7323503246686632,
				[
				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					2690876621967018,
					false
					,[
					[
						11,
						"m3_touchTimer"
					]
,					[
						8,
						4
					]
,					[
						7,
						[
							23,
							"m3_touchTime"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetGroupActive,
					null,
					4855013363535195,
					false
					,[
					[
						1,
						[
							2,
							"touchtimer"
						]
					]
,					[
						3,
						0
					]
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"ES_Mission3_MealScreen",
		[
		[
			2,
			"ES_Mission3_Common",
			false
		]
,		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			1,
			"m3_selectedRecipeIdx",
			0,
			-1,
false,false,2159596097285253,false
		]
,		[
			1,
			"m3_dataIngridientsLoaded",
			0,
			0,
false,false,6216448201805003,false
		]
,		[
			1,
			"m3_dataRecipesLoaded",
			0,
			0,
false,false,3454639784219622,false
		]
,		[
			1,
			"m3_ingridientXpos",
			0,
			745,
false,false,4302124684021637,false
		]
,		[
			1,
			"m3_ingridientYpos",
			0,
			215,
false,false,477652244412342,false
		]
,		[
			0,
			null,
			false,
			null,
			4222780746856644,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				3105494268486111,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				2354095699192385,
				false
				,[
				[
					11,
					"currentGameId"
				]
,				[
					7,
					[
						0,
						4
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				3978337324141873,
				false
				,[
				[
					1,
					[
						2,
						"gameMode"
					]
				]
,				[
					13,
											[
							7,
							[
								0,
								1
							]
						]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				8326875087809759,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					true,
					false,
					6809427386588668,
					false
					,[
					[
						1,
						[
							2,
							"m3_BGmusic"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.PlayByName,
					null,
					6908059227480443,
					false
					,[
					[
						3,
						1
					]
,					[
						1,
						[
							2,
							"m3_BGmusic"
						]
					]
,					[
						3,
						1
					]
,					[
						0,
						[
							0,
							-10
						]
					]
,					[
						1,
						[
							2,
							"m3_BGmusic"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				5227171285348356,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					346978877500175,
					false
					,[
					[
						7,
						[
							23,
							"m3_currentLevel"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							-1
						]
					]
					]
				]
				],
				[
				[
					255,
					cr.plugins_.AJAX.prototype.acts.Request,
					null,
					1767407240102481,
					false
					,[
					[
						1,
						[
							2,
							"recipes"
						]
					]
,					[
						1,
						[
							2,
							"http://146.185.143.121/yumpod/json/get_recipes.php"
						]
					]
					]
				]
,				[
					255,
					cr.plugins_.AJAX.prototype.acts.Request,
					null,
					3906550351926416,
					false
					,[
					[
						1,
						[
							2,
							"ingridients"
						]
					]
,					[
						1,
						[
							2,
							"http://146.185.143.121/yumpod/json/get_ingredients.php"
						]
					]
					]
				]
,				[
					138,
					cr.plugins_.Dictionary.prototype.acts.Clear,
					null,
					9494838302564379,
					false
				]
,				[
					138,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					8570270904640941,
					false
					,[
					[
						1,
						[
							2,
							"NumOfLevels"
						]
					]
,					[
						7,
						[
							23,
							"m3_numberOfLevels"
						]
					]
					]
				]
,				[
					138,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					2509830618787769,
					false
					,[
					[
						1,
						[
							2,
							"selectedLevelRecipeIndex"
						]
					]
,					[
						7,
						[
							0,
							-1
						]
					]
					]
				]
,				[
					138,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					4890297340496332,
					false
					,[
					[
						1,
						[
							2,
							"missionScore"
						]
					]
,					[
						7,
						[
							23,
							"M3_LEVELGAMEPLAYTIMEINSECONDS"
						]
					]
					]
				]
,				[
					138,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					967674641931418,
					false
					,[
					[
						1,
						[
							2,
							"timeLeft"
						]
					]
,					[
						7,
						[
							23,
							"m3_gamePlayTimeInSeconds"
						]
					]
					]
				]
,				[
					138,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					7014967648941108,
					false
					,[
					[
						1,
						[
							2,
							"recepiesLoaded"
						]
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					138,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					7538400316090119,
					false
					,[
					[
						1,
						[
							2,
							"scoreOverAll"
						]
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					1583066695528053,
					false
					,[
					[
						4,
						116
					]
,					[
						5,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							-750
						]
					]
,					[
						0,
						[
							0,
							-750
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					5183319051701081,
					false
					,[
					[
						4,
						121
					]
,					[
						5,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							-750
						]
					]
,					[
						0,
						[
							0,
							-750
						]
					]
					]
				]
,				[
					116,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					8372571944853746,
					false
					,[
					[
						1,
						[
							23,
							"FONT_3"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					121,
					cr.plugins_.Text.prototype.acts.SetWebFont,
					null,
					6567218953510875,
					false
					,[
					[
						1,
						[
							23,
							"FONT_2"
						]
					]
,					[
						1,
						[
							23,
							"CSS_1"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.Wait,
					null,
					7002850168666374,
					false
					,[
					[
						0,
						[
							0,
							1
						]
					]
					]
				]
,				[
					116,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					2199152314216988,
					false
				]
,				[
					121,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					4616781999512052,
					false
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					3741025421154664,
					false
					,[
					[
						11,
						"m3_scoreOverAll"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					5248073945461628,
					false
					,[
					[
						11,
						"m3_scoreLevel"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4611713993485276,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Else,
					null,
					0,
					false,
					false,
					false,
					1425714136571684,
					false
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					4633108488084596,
					false
					,[
					[
						1,
						[
							2,
							"setupCurrentLevel"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9497782862139157,
			[
			[
				255,
				cr.plugins_.AJAX.prototype.cnds.OnComplete,
				null,
				1,
				false,
				false,
				false,
				8738474342441372,
				false
				,[
				[
					1,
					[
						2,
						"recipes"
					]
				]
				]
			]
			],
			[
			[
				136,
				cr.plugins_.Arr.prototype.acts.JSONLoad,
				null,
				9290328704593723,
				false
				,[
				[
					1,
					[
						20,
						255,
						cr.plugins_.AJAX.prototype.exps.LastData,
						true,
						null
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				6638768879834156,
				false
				,[
				[
					11,
					"m3_dataRecipesLoaded"
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			883287715033473,
			[
			[
				255,
				cr.plugins_.AJAX.prototype.cnds.OnError,
				null,
				1,
				false,
				false,
				false,
				6139714812917077,
				false
				,[
				[
					1,
					[
						2,
						"recipes"
					]
				]
				]
			]
			],
			[
			[
				116,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				7140203671073718,
				false
				,[
				[
					7,
					[
						2,
						"Error Loading Recipes data"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			6292151063531504,
			[
			[
				255,
				cr.plugins_.AJAX.prototype.cnds.OnComplete,
				null,
				1,
				false,
				false,
				false,
				9179510485245694,
				false
				,[
				[
					1,
					[
						2,
						"ingridients"
					]
				]
				]
			]
			],
			[
			[
				139,
				cr.plugins_.Arr.prototype.acts.JSONLoad,
				null,
				599553531832179,
				false
				,[
				[
					1,
					[
						20,
						255,
						cr.plugins_.AJAX.prototype.exps.LastData,
						true,
						null
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				3410958080387173,
				false
				,[
				[
					11,
					"m3_dataIngridientsLoaded"
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			1092711798439395,
			[
			[
				255,
				cr.plugins_.AJAX.prototype.cnds.OnError,
				null,
				1,
				false,
				false,
				false,
				6850476774880083,
				false
				,[
				[
					1,
					[
						2,
						"ingridients"
					]
				]
				]
			]
			],
			[
			[
				116,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				7721352205168667,
				false
				,[
				[
					7,
					[
						2,
						"Error Loading Ingridiens data"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			8153356316618508,
			[
			[
				-1,
				cr.system_object.prototype.cnds.CompareVar,
				null,
				0,
				false,
				false,
				false,
				3444009653778661,
				false
				,[
				[
					11,
					"m3_dataIngridientsLoaded"
				]
,				[
					8,
					0
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.cnds.CompareVar,
				null,
				0,
				false,
				false,
				false,
				4438378845424368,
				false
				,[
				[
					11,
					"m3_dataRecipesLoaded"
				]
,				[
					8,
					0
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				3288899593228601,
				false
				,[
				[
					1,
					[
						2,
						"initLevelsData"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				7623260659157493,
				false
				,[
				[
					11,
					"m3_dataIngridientsLoaded"
				]
,				[
					7,
					[
						0,
						2
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				8172805427900277,
				false
				,[
				[
					11,
					"m3_dataRecipesLoaded"
				]
,				[
					7,
					[
						0,
						2
					]
				]
				]
			]
,			[
				138,
				cr.plugins_.Dictionary.prototype.acts.SetKey,
				null,
				3544954290517993,
				false
				,[
				[
					1,
					[
						2,
						"recepiesLoaded"
					]
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			2743279180637546,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				9583456307757941,
				false
				,[
				[
					4,
					118
				]
				]
			]
,			[
				138,
				cr.plugins_.Dictionary.prototype.cnds.HasKey,
				null,
				0,
				false,
				false,
				false,
				8994322522510335,
				false
				,[
				[
					1,
					[
						2,
						"recepiesLoaded"
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.cnds.Compare,
				null,
				0,
				false,
				false,
				false,
				5693126687742609,
				false
				,[
				[
					7,
					[
						20,
						138,
						cr.plugins_.Dictionary.prototype.exps.Get,
						false,
						null
						,[
[
							2,
							"recepiesLoaded"
						]
						]
					]
				]
,				[
					8,
					0
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.GoToLayout,
				null,
				4206197035181158,
				false
				,[
				[
					6,
					"Mission3GamePlay"
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Functions"],
			false,
			null,
			4265231803891834,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				4265231803891834,
				false
				,[
				[
					1,
					[
						2,
						"Functions"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				9392064921558405,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5253414707671034,
					false
					,[
					[
						1,
						[
							2,
							"initLevelsData"
						]
					]
					]
				]
				],
				[
				[
					135,
					cr.plugins_.Arr.prototype.acts.Clear,
					null,
					1354473120840909,
					false
				]
,				[
					135,
					cr.plugins_.Arr.prototype.acts.SetSize,
					null,
					9777176827546852,
					false
					,[
					[
						0,
						[
							20,
							138,
							cr.plugins_.Dictionary.prototype.exps.Get,
							false,
							null
							,[
[
								2,
								"NumOfLevels"
							]
							]
						]
					]
,					[
						0,
						[
							0,
							1
						]
					]
,					[
						0,
						[
							0,
							5
						]
					]
					]
				]
				]
				,[
				[
					1,
					"currentLevel",
					0,
					-1,
false,false,7547036729545215,false
				]
,				[
					1,
					"levelsDone",
					0,
					0,
false,false,7463796036713847,false
				]
,				[
					0,
					null,
					false,
					null,
					5316914021922131,
					[
					[
						-1,
						cr.system_object.prototype.cnds.While,
						null,
						0,
						true,
						false,
						false,
						7223522085713381,
						false
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						2880160912126208,
						false
						,[
						[
							7,
							[
								23,
								"levelsDone"
							]
						]
,						[
							8,
							2
						]
,						[
							7,
							[
								20,
								138,
								cr.plugins_.Dictionary.prototype.exps.Get,
								false,
								null
								,[
[
									2,
									"NumOfLevels"
								]
								]
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						5839052096148896,
						false
						,[
						[
							11,
							"currentLevel"
						]
,						[
							7,
							[
								19,
								cr.system_object.prototype.exps.floor
								,[
[
									19,
									cr.system_object.prototype.exps.random
									,[
[
										5,
										[
											20,
											136,
											cr.plugins_.Arr.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											1
										]
									]
									]
								]
								]
							]
						]
						]
					]
					]
					,[
					[
						1,
						"currentLevelValid",
						0,
						1,
false,false,8975285356808096,false
					]
,					[
						0,
						null,
						false,
						null,
						5447184157272887,
						[
						[
							-1,
							cr.system_object.prototype.cnds.For,
							null,
							0,
							true,
							false,
							false,
							4971449949531379,
							false
							,[
							[
								1,
								[
									2,
									"chkIdx"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									5,
									[
										20,
										138,
										cr.plugins_.Dictionary.prototype.exps.Get,
										false,
										null
										,[
[
											2,
											"NumOfLevels"
										]
										]
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							5366056789279766,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								9793957760390386,
								false
								,[
								[
									7,
									[
										20,
										135,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											19,
											cr.system_object.prototype.exps.loopindex
											,[
[
												2,
												"chkIdx"
											]
											]
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										23,
										"currentLevel"
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								5816110253151393,
								false
								,[
								[
									11,
									"currentLevelValid"
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						118543373415993,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							9136187490966676,
							false
							,[
							[
								7,
								[
									23,
									"currentLevelValid"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							135,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							250501814996536,
							false
							,[
							[
								0,
								[
									23,
									"levelsDone"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									23,
									"currentLevel"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							9901930630282262,
							false
							,[
							[
								11,
								"levelsDone"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9280181823953227,
					[
					],
					[
					[
						120,
						cr.plugins_.Text.prototype.acts.Destroy,
						null,
						578557879482961,
						false
					]
,					[
						122,
						cr.plugins_.Text.prototype.acts.Destroy,
						null,
						5739781749385633,
						false
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						7911311860720807,
						false
					]
,					[
						125,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						5072225911584558,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8538722847300122,
					[
					[
						135,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						1058452969512199,
						false
						,[
						[
							3,
							2
						]
						]
					]
					],
					[
					[
						135,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						8921580120985923,
						false
						,[
						[
							0,
							[
								20,
								135,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								20,
								135,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
						]
					]
,					[
						135,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						6565550431831073,
						false
						,[
						[
							0,
							[
								20,
								135,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								180
							]
						]
						]
					]
,					[
						135,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						3986096042865627,
						false
						,[
						[
							0,
							[
								20,
								135,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								3
							]
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3796967377797933,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						3332320458791063,
						false
						,[
						[
							1,
							[
								2,
								"changeLevel"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				7483475888524019,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5881709961981135,
					false
					,[
					[
						1,
						[
							2,
							"setupCurrentLevel"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"m3_selectedRecipeIndex",
					0,
					0,
false,false,1744020627210492,false
				]
,				[
					0,
					null,
					false,
					null,
					5761842175753058,
					[
					],
					[
					[
						118,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						4305737267587488,
						false
						,[
						[
							3,
							1
						]
						]
					]
,					[
						138,
						cr.plugins_.Dictionary.prototype.acts.SetKey,
						null,
						5419281394155744,
						false
						,[
						[
							1,
							[
								2,
								"selectedLevelRecipeIndex"
							]
						]
,						[
							7,
							[
								20,
								135,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									138,
									cr.plugins_.Dictionary.prototype.exps.Get,
									false,
									null
									,[
[
										2,
										"currentLevel"
									]
									]
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						9158315784972667,
						false
						,[
						[
							11,
							"m3_selectedRecipeIndex"
						]
,						[
							7,
							[
								20,
								138,
								cr.plugins_.Dictionary.prototype.exps.Get,
								false,
								null
								,[
[
									2,
									"selectedLevelRecipeIndex"
								]
								]
							]
						]
						]
					]
,					[
						116,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						1544395986463098,
						false
						,[
						[
							1,
							[
								23,
								"FONT_3"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						117,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						9774216416961874,
						false
						,[
						[
							1,
							[
								23,
								"FONT_3"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						121,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						9031656129174042,
						false
						,[
						[
							1,
							[
								23,
								"FONT_2"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						116,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						4235317251197176,
						false
						,[
						[
							7,
							[
								20,
								136,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									23,
									"m3_selectedRecipeIndex"
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						117,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						8888496059412528,
						false
						,[
						[
							7,
							[
								20,
								136,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									23,
									"m3_selectedRecipeIndex"
								]
,[
									0,
									0
								]
,[
									0,
									1
								]
								]
							]
						]
						]
					]
,					[
						119,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						467749340408406,
						false
						,[
						[
							0,
							[
								20,
								136,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									23,
									"m3_selectedRecipeIndex"
								]
,[
									0,
									0
								]
,[
									0,
									3
								]
								]
							]
						]
						]
					]
,					[
						119,
						cr.plugins_.Sprite.prototype.acts.MoveToTop,
						null,
						6321376452347664,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4743680334528948,
					[
					[
						-1,
						cr.system_object.prototype.cnds.For,
						null,
						0,
						true,
						false,
						false,
						9734576174470109,
						false
						,[
						[
							1,
							[
								2,
								"i"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								5,
								[
									20,
									136,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"m3_selectedRecipeIndex"
									]
,[
										0,
										0
									]
,[
										0,
										2
									]
									]
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						9072920698495222,
						false
						,[
						[
							4,
							144
						]
,						[
							5,
							[
								2,
								"main"
							]
						]
,						[
							0,
							[
								23,
								"m3_ingridientXpos"
							]
						]
,						[
							0,
							[
								23,
								"m3_ingridientYpos"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						4392150458123155,
						false
						,[
						[
							4,
							125
						]
,						[
							5,
							[
								2,
								"main"
							]
						]
,						[
							0,
							[
								23,
								"m3_ingridientXpos"
							]
						]
,						[
							0,
							[
								23,
								"m3_ingridientYpos"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						8933280302733519,
						false
						,[
						[
							4,
							120
						]
,						[
							5,
							[
								2,
								"main"
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									144,
									cr.plugins_.Sprite.prototype.exps.X,
									false,
									null
								]
								,[
									20,
									144,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
						]
,						[
							0,
							[
								4,
								[
									23,
									"m3_ingridientYpos"
								]
								,[
									0,
									30
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						2781510945155742,
						false
						,[
						[
							4,
							122
						]
,						[
							5,
							[
								2,
								"main"
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									120,
									cr.plugins_.Text.prototype.exps.X,
									false,
									null
								]
								,[
									20,
									120,
									cr.plugins_.Text.prototype.exps.Width,
									false,
									null
								]
							]
						]
,						[
							0,
							[
								4,
								[
									23,
									"m3_ingridientYpos"
								]
								,[
									0,
									30
								]
							]
						]
						]
					]
,					[
						120,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						7116308352655138,
						false
						,[
						[
							1,
							[
								23,
								"FONT_2"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						122,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						891950726840818,
						false
						,[
						[
							1,
							[
								23,
								"FONT_2"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						2852273972756976,
						false
						,[
						[
							0,
							[
								20,
								139,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									139,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										0,
										0
									]
,[
										0,
										0
									]
,[
										20,
										136,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m3_selectedRecipeIndex"
										]
,[
											0,
											1
										]
,[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										]
									]
									]
								]
,[
									0,
									0
								]
,[
									0,
									2
								]
								]
							]
						]
						]
					]
,					[
						125,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						3611307977106208,
						false
						,[
						[
							0,
							[
								23,
								"m3_ingridientXpos"
							]
						]
,						[
							0,
							[
								4,
								[
									4,
									[
										23,
										"m3_ingridientYpos"
									]
									,[
										6,
										[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										,[
											20,
											125,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
								]
								,[
									0,
									40
								]
							]
						]
						]
					]
,					[
						125,
						cr.plugins_.Sprite.prototype.acts.MoveToBottom,
						null,
						4879249530005356,
						false
					]
,					[
						144,
						cr.plugins_.Sprite.prototype.acts.SetPosToObject,
						null,
						8635947100518178,
						false
						,[
						[
							4,
							125
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						120,
						cr.plugins_.Text.prototype.acts.SetPosToObject,
						null,
						8950423690442815,
						false
						,[
						[
							4,
							125
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
,					[
						122,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						3475242436350318,
						false
						,[
						[
							0,
							[
								4,
								[
									4,
									[
										20,
										120,
										cr.plugins_.Text.prototype.exps.X,
										false,
										null
									]
									,[
										20,
										120,
										cr.plugins_.Text.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									10
								]
							]
						]
,						[
							0,
							[
								20,
								120,
								cr.plugins_.Text.prototype.exps.Y,
								false,
								null
							]
						]
						]
					]
,					[
						120,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						2568531660022052,
						false
						,[
						[
							7,
							[
								20,
								139,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									139,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										0,
										0
									]
,[
										0,
										0
									]
,[
										20,
										136,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"m3_selectedRecipeIndex"
										]
,[
											0,
											1
										]
,[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										]
									]
									]
								]
,[
									0,
									0
								]
,[
									0,
									1
								]
								]
							]
						]
						]
					]
,					[
						122,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						6935126270096373,
						false
						,[
						[
							7,
							[
								20,
								136,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									23,
									"m3_selectedRecipeIndex"
								]
,[
									0,
									2
								]
,[
									19,
									cr.system_object.prototype.exps.loopindex
								]
								]
							]
						]
						]
					]
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"EventSheetGameMission1",
		[
		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			1,
			"NUM_OF_GPC",
			0,
			4,
false,false,9623374475306398,false
		]
,		[
			1,
			"NUM_OF_RDC",
			0,
			4,
false,false,253624508313842,false
		]
,		[
			1,
			"NUM_OF_ROWS",
			0,
			10,
false,true,6443489623526814,false
		]
,		[
			1,
			"NUM_OF_COLS",
			0,
			10,
false,true,188570679192257,false
		]
,		[
			1,
			"NUM_OF_LEVELS",
			0,
			10,
false,true,7399256036737199,false
		]
,		[
			1,
			"CUR_LEVEL",
			0,
			-1,
false,false,4264230620520012,false
		]
,		[
			1,
			"EVEN_ROW_DISPLACEMENT",
			0,
			42,
false,true,9006381015635589,false
		]
,		[
			1,
			"tempActiveBoardSize",
			0,
			0,
false,false,9211742008477402,false
		]
,		[
			1,
			"CELL_WIDTH",
			0,
			86,
false,true,2984633356485396,false
		]
,		[
			1,
			"CELL_HEIGHT",
			0,
			77,
false,true,303521641322694,false
		]
,		[
			1,
			"CELL_TEXT_OFF_X",
			0,
			-30,
false,true,3067806005010519,false
		]
,		[
			1,
			"CELL_TEXT_OFF_Y",
			0,
			-10,
false,true,8701948002587731,false
		]
,		[
			1,
			"ACTIVE_CELL_LEFT",
			0,
			0,
false,false,626261248256807,false
		]
,		[
			1,
			"ACTIVE_CELL_TOP",
			0,
			50,
false,false,3965297218130824,false
		]
,		[
			1,
			"currentQA",
			0,
			0,
false,false,4318457848476122,false
		]
,		[
			1,
			"currentQAType",
			1,
			"",
false,false,3877620735115059,false
		]
,		[
			1,
			"m1_currentScore",
			0,
			0,
false,false,3314603233995162,false
		]
,		[
			1,
			"m1_currentLevelScore",
			0,
			0,
false,false,7551868252175667,false
		]
,		[
			1,
			"currentDrugQAAttempts",
			0,
			0,
false,false,2353163306800312,false
		]
,		[
			1,
			"currentLevelDrugQAAttempts",
			0,
			0,
false,false,6330429909819768,false
		]
,		[
			1,
			"currentLevelDrugQACorrectAttempts",
			0,
			0,
false,false,3048654065146584,false
		]
,		[
			1,
			"currentLevelLifestyleQAAttempts",
			0,
			0,
false,false,3124352840714052,false
		]
,		[
			1,
			"currentLevelLifestyleQACorrectAttempts",
			0,
			0,
false,false,6723913668373066,false
		]
,		[
			1,
			"currentLifestyleQAAttempts",
			0,
			0,
false,false,3358578361583228,false
		]
,		[
			1,
			"mode_drugPlacementActive",
			0,
			0,
false,false,8167219305016487,false
		]
,		[
			1,
			"mode_cellsActive",
			0,
			0,
false,false,196969510874907,false
		]
,		[
			1,
			"mode_gameOverActive",
			0,
			0,
false,false,2711617361324994,false
		]
,		[
			1,
			"mode_gameLevelInfoActive",
			0,
			0,
false,false,1349379789274403,false
		]
,		[
			1,
			"mode_qaActive",
			0,
			0,
false,false,8866559715481117,false
		]
,		[
			1,
			"mode_GPCAddActive",
			0,
			0,
false,false,4882164020014059,false
		]
,		[
			1,
			"mode_BMCAddActive",
			0,
			0,
false,false,3842310439341843,false
		]
,		[
			1,
			"mode_BMCDrugYesNo",
			0,
			0,
false,false,1714759984887685,false
		]
,		[
			1,
			"mode_BMCAddRandom",
			0,
			0,
false,false,6479046289961039,false
		]
,		[
			1,
			"mode_BMCAddNoBBC",
			0,
			0,
false,false,8860183487485632,false
		]
,		[
			1,
			"mode_QAResearchActive",
			0,
			0,
false,false,9591928923141212,false
		]
,		[
			1,
			"mode_redrawCells",
			0,
			0,
false,false,4768239475283677,false
		]
,		[
			1,
			"currentRDCCount",
			0,
			0,
false,false,8344846829377764,false
		]
,		[
			1,
			"currentGPCCount",
			0,
			0,
false,false,9734464492834063,false
		]
,		[
			1,
			"currentBMCCount",
			0,
			0,
false,false,6499330085862535,false
		]
,		[
			1,
			"qaLoadComplete",
			0,
			0,
false,false,2714993221966193,false
		]
,		[
			0,
			null,
			false,
			null,
			367844252381268,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				8446869045405739,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				3922830588051812,
				false
				,[
				[
					11,
					"currentGameId"
				]
,				[
					7,
					[
						0,
						3
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				5382181682990184,
				false
				,[
				[
					11,
					"CUR_LEVEL"
				]
,				[
					7,
					[
						0,
						-1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				4396524334828676,
				false
				,[
				[
					11,
					"ACTIVE_CELL_LEFT"
				]
,				[
					7,
					[
						4,
						[
							19,
							cr.system_object.prototype.exps.floor
							,[
[
								7,
								[
									5,
									[
										5,
										[
											19,
											cr.system_object.prototype.exps.layoutwidth
										]
										,[
											6,
											[
												23,
												"CELL_WIDTH"
											]
											,[
												23,
												"NUM_OF_COLS"
											]
										]
									]
									,[
										23,
										"EVEN_ROW_DISPLACEMENT"
									]
								]
								,[
									0,
									2
								]
							]
							]
						]
						,[
							7,
							[
								23,
								"CELL_WIDTH"
							]
							,[
								0,
								2
							]
						]
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				8775264948521787,
				false
				,[
				[
					11,
					"qaLoadComplete"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
,			[
				255,
				cr.plugins_.AJAX.prototype.acts.Request,
				null,
				4869992567813572,
				false
				,[
				[
					1,
					[
						2,
						"mission1_qa"
					]
				]
,				[
					1,
					[
						10,
						[
							10,
							[
								10,
								[
									10,
									[
										23,
										"REST_SERVICE_DOMAIN"
									]
									,[
										2,
										"questionbank?id="
									]
								]
								,[
									23,
									"currentGameId"
								]
							]
							,[
								2,
								"&username="
							]
						]
						,[
							20,
							257,
							cr.plugins_.Dictionary.prototype.exps.Get,
							false,
							null
							,[
[
								2,
								"email"
							]
							]
						]
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				6199172299329086,
				false
				,[
				[
					1,
					[
						2,
						"gameMode"
					]
				]
,				[
					13,
											[
							7,
							[
								0,
								1
							]
						]
				]
				]
			]
,			[
				253,
				cr.plugins_.TextBox.prototype.acts.SetPos,
				null,
				66004773358634,
				false
				,[
				[
					0,
					[
						23,
						"hiddenPosX"
					]
				]
,				[
					0,
					[
						0,
						0
					]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				9426114964487335,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					true,
					false,
					2437644528098998,
					false
					,[
					[
						1,
						[
							2,
							"m1_bg"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.PlayByName,
					null,
					3613791572235627,
					false
					,[
					[
						3,
						0
					]
,					[
						1,
						[
							2,
							"bg_sound_pBoom"
						]
					]
,					[
						3,
						1
					]
,					[
						0,
						[
							0,
							-5
						]
					]
,					[
						1,
						[
							2,
							"m1_bg"
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Generating Rules for levels"],
				false,
				null,
				1537880475337899,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					1537880475337899,
					false
					,[
					[
						1,
						[
							2,
							"Generating Rules for levels"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					4796377094161998,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						5800155336725128,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						7166892062271197,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						725570966220434,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1104252016439195,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						3111643275856995,
						false
						,[
						[
							0,
							[
								0,
								1
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						4575797275348109,
						false
						,[
						[
							0,
							[
								0,
								1
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						3760300284507032,
						false
						,[
						[
							0,
							[
								0,
								1
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6982944630871943,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						4303829570529294,
						false
						,[
						[
							0,
							[
								0,
								2
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						2706926383219257,
						false
						,[
						[
							0,
							[
								0,
								2
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						8949069590135977,
						false
						,[
						[
							0,
							[
								0,
								2
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7857792263961615,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						9969569702354062,
						false
						,[
						[
							0,
							[
								0,
								3
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						3810911837454981,
						false
						,[
						[
							0,
							[
								0,
								3
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						6870405393154237,
						false
						,[
						[
							0,
							[
								0,
								3
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								2
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2224937807313319,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						3439061016949379,
						false
						,[
						[
							0,
							[
								0,
								4
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								4
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						7602725991778349,
						false
						,[
						[
							0,
							[
								0,
								4
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						5428478609510509,
						false
						,[
						[
							0,
							[
								0,
								4
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								4
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6979327837090395,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						5041057078209146,
						false
						,[
						[
							0,
							[
								0,
								5
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								4
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						5662955784478302,
						false
						,[
						[
							0,
							[
								0,
								5
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						8307857420474262,
						false
						,[
						[
							0,
							[
								0,
								5
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								4
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2448077219461936,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						163508445567144,
						false
						,[
						[
							0,
							[
								0,
								6
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								6
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						6069359867842347,
						false
						,[
						[
							0,
							[
								0,
								6
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						1720534609268135,
						false
						,[
						[
							0,
							[
								0,
								6
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								4
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4247985271142524,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						2774063006721958,
						false
						,[
						[
							0,
							[
								0,
								7
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								6
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						9169130448597529,
						false
						,[
						[
							0,
							[
								0,
								7
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						4073119550193382,
						false
						,[
						[
							0,
							[
								0,
								7
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								4
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4901969275887171,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						2052975445713836,
						false
						,[
						[
							0,
							[
								0,
								8
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								8
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						2455552203068524,
						false
						,[
						[
							0,
							[
								0,
								8
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						664723662685052,
						false
						,[
						[
							0,
							[
								0,
								8
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								6
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7377513327562642,
					[
					],
					[
					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						2846804213216996,
						false
						,[
						[
							0,
							[
								0,
								9
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								8
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						9267197628612657,
						false
						,[
						[
							0,
							[
								0,
								9
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						9,
						cr.plugins_.Arr.prototype.acts.SetXY,
						null,
						3770346502653299,
						false
						,[
						[
							0,
							[
								0,
								9
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								6
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Generating Random init cells"],
				false,
				null,
				4711039160741448,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					4711039160741448,
					false
					,[
					[
						1,
						[
							2,
							"Generating Random init cells"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					3879852498521583,
					[
					[
						0,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						203989337274699,
						false
						,[
						[
							3,
							1
						]
						]
					]
					],
					[
					[
						0,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						2736587766897813,
						false
						,[
						[
							0,
							[
								20,
								0,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								0,
								cr.plugins_.Arr.prototype.exps.CurY,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								2,
								"E"
							]
						]
						]
					]
,					[
						0,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						9694087235192414,
						false
						,[
						[
							0,
							[
								20,
								0,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								0,
								cr.plugins_.Arr.prototype.exps.CurY,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								0,
								5
							]
						]
						]
					]
,					[
						0,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						4454904714269542,
						false
						,[
						[
							0,
							[
								20,
								0,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								0,
								cr.plugins_.Arr.prototype.exps.CurY,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								3
							]
						]
,						[
							7,
							[
								2,
								"N"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7350195573401015,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						7922750678865332,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										0
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										2,
										"GPC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						3702487614860102,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										0,
										0
									]
								]
,
								[
									7,
									[
										2,
										"GPC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						7797369363248495,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										0,
										9
									]
								]
,
								[
									7,
									[
										2,
										"GPC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4989333856503957,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										9
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										2,
										"GPC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1854517666366595,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						1831946444143548,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										0,
										4
									]
								]
,
								[
									7,
									[
										2,
										"RDC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2018389255210389,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										2,
										"RDC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2826843172480375,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										0,
										6
									]
								]
,
								[
									7,
									[
										2,
										"RDC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4352609575695671,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										4
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
,
								[
									7,
									[
										2,
										"RDC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
					]
				]
				]
			]
,			[
				1,
				"ROW_EVEN",
				0,
				1,
false,false,5200709322912406,false
			]
,			[
				0,
				[true, "Unused Cells Drawing"],
				false,
				null,
				8927530510122034,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					8927530510122034,
					false
					,[
					[
						1,
						[
							2,
							"Unused Cells Drawing"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"CUR_ACTIVE_RIGHT",
					0,
					0,
false,false,246190161419383,false
				]
,				[
					0,
					null,
					false,
					null,
					7520103412042657,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						679700519249246,
						false
						,[
						[
							7,
							[
								4,
								[
									23,
									"ACTIVE_CELL_LEFT"
								]
								,[
									6,
									[
										23,
										"NUM_OF_COLS"
									]
									,[
										23,
										"CELL_WIDTH"
									]
								]
							]
						]
,						[
							8,
							3
						]
,						[
							7,
							[
								19,
								cr.system_object.prototype.exps.layoutwidth
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6661432670312416,
						false
						,[
						[
							7,
							[
								23,
								"CUR_ACTIVE_RIGHT"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						5865716592033284,
						false
						,[
						[
							11,
							"CUR_ACTIVE_RIGHT"
						]
,						[
							7,
							[
								5,
								[
									4,
									[
										23,
										"ACTIVE_CELL_LEFT"
									]
									,[
										6,
										[
											23,
											"NUM_OF_COLS"
										]
										,[
											23,
											"CELL_WIDTH"
										]
									]
								]
								,[
									23,
									"CELL_WIDTH"
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						1146224672733428,
						[
						[
							-1,
							cr.system_object.prototype.cnds.While,
							null,
							0,
							true,
							false,
							false,
							7346014462778279,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							5808043492497454,
							false
							,[
							[
								7,
								[
									23,
									"CUR_ACTIVE_RIGHT"
								]
							]
,							[
								8,
								3
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.layoutwidth
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9715882659183868,
							false
							,[
							[
								11,
								"CUR_ACTIVE_RIGHT"
							]
,							[
								7,
								[
									4,
									[
										23,
										"CUR_ACTIVE_RIGHT"
									]
									,[
										23,
										"CELL_WIDTH"
									]
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							8520489042130525,
							[
							[
								-1,
								cr.system_object.prototype.cnds.For,
								null,
								0,
								true,
								false,
								false,
								6202292494167185,
								false
								,[
								[
									1,
									[
										2,
										"i"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									0,
									[
										5,
										[
											23,
											"NUM_OF_ROWS"
										]
										,[
											0,
											1
										]
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.CreateObject,
								null,
								7678451051842452,
								false
								,[
								[
									4,
									75
								]
,								[
									5,
									[
										2,
										"cells_layer"
									]
								]
,								[
									0,
									[
										4,
										[
											23,
											"CUR_ACTIVE_RIGHT"
										]
										,[
											6,
											[
												8,
												[
													19,
													cr.system_object.prototype.exps.loopindex
												]
												,[
													0,
													2
												]
											]
											,[
												23,
												"EVEN_ROW_DISPLACEMENT"
											]
										]
									]
								]
,								[
									0,
									[
										4,
										[
											23,
											"ACTIVE_CELL_TOP"
										]
										,[
											6,
											[
												19,
												cr.system_object.prototype.exps.loopindex
											]
											,[
												23,
												"CELL_HEIGHT"
											]
										]
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					1,
					"CUR_ACTIVE_LEFT",
					0,
					0,
false,false,9340977111095983,false
				]
,				[
					0,
					null,
					false,
					null,
					1967393040932388,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						497117964384904,
						false
						,[
						[
							7,
							[
								23,
								"ACTIVE_CELL_LEFT"
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7637760334005465,
						false
						,[
						[
							7,
							[
								23,
								"CUR_ACTIVE_LEFT"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4673796769006031,
						false
						,[
						[
							11,
							"CUR_ACTIVE_LEFT"
						]
,						[
							7,
							[
								23,
								"ACTIVE_CELL_LEFT"
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						6243192156000273,
						[
						[
							-1,
							cr.system_object.prototype.cnds.While,
							null,
							0,
							true,
							false,
							false,
							1680586990094484,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							211156255498282,
							false
							,[
							[
								7,
								[
									23,
									"CUR_ACTIVE_LEFT"
								]
							]
,							[
								8,
								5
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							1972023702506494,
							false
							,[
							[
								11,
								"CUR_ACTIVE_LEFT"
							]
,							[
								7,
								[
									5,
									[
										23,
										"CUR_ACTIVE_LEFT"
									]
									,[
										23,
										"CELL_WIDTH"
									]
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							3543851973194196,
							[
							[
								-1,
								cr.system_object.prototype.cnds.For,
								null,
								0,
								true,
								false,
								false,
								4297845971191643,
								false
								,[
								[
									1,
									[
										2,
										"i"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									0,
									[
										5,
										[
											23,
											"NUM_OF_ROWS"
										]
										,[
											0,
											1
										]
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.CreateObject,
								null,
								4932124534221487,
								false
								,[
								[
									4,
									75
								]
,								[
									5,
									[
										2,
										"cells_layer"
									]
								]
,								[
									0,
									[
										4,
										[
											23,
											"CUR_ACTIVE_LEFT"
										]
										,[
											6,
											[
												8,
												[
													19,
													cr.system_object.prototype.exps.loopindex
												]
												,[
													0,
													2
												]
											]
											,[
												23,
												"EVEN_ROW_DISPLACEMENT"
											]
										]
									]
								]
,								[
									0,
									[
										4,
										[
											23,
											"ACTIVE_CELL_TOP"
										]
										,[
											6,
											[
												19,
												cr.system_object.prototype.exps.loopindex
											]
											,[
												23,
												"CELL_HEIGHT"
											]
										]
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Generating Level Progress"],
				false,
				null,
				132678176019185,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					132678176019185,
					false
					,[
					[
						1,
						[
							2,
							"Generating Level Progress"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					7426685395312632,
					[
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						6443855447739588,
						[
						[
							1,
							cr.plugins_.Arr.prototype.cnds.ArrForEach,
							null,
							0,
							true,
							false,
							false,
							1945150189000956,
							false
							,[
							[
								3,
								2
							]
							]
						]
						],
						[
						[
							1,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9155576562882101,
							false
							,[
							[
								0,
								[
									20,
									1,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									""
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3792986324112471,
						[
						[
							-1,
							cr.system_object.prototype.cnds.For,
							null,
							0,
							true,
							false,
							false,
							8921525654319685,
							false
							,[
							[
								1,
								[
									2,
									"cLevel"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									5,
									[
										23,
										"NUM_OF_LEVELS"
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.CreateObject,
							null,
							4510898628858419,
							false
							,[
							[
								4,
								30
							]
,							[
								5,
								[
									2,
									"sidehud_layer"
								]
							]
,							[
								0,
								[
									4,
									[
										0,
										15
									]
									,[
										6,
										[
											8,
											[
												19,
												cr.system_object.prototype.exps.loopindex
											]
											,[
												0,
												2
											]
										]
										,[
											0,
											15
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										0,
										280
									]
									,[
										6,
										[
											19,
											cr.system_object.prototype.exps.loopindex
										]
										,[
											5,
											[
												20,
												30,
												cr.plugins_.Sprite.prototype.exps.Height,
												false,
												null
											]
											,[
												0,
												13
											]
										]
									]
								]
							]
							]
						]
,						[
							30,
							cr.plugins_.Sprite.prototype.acts.StopAnim,
							null,
							6179148834422396,
							false
						]
,						[
							30,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							4108328837808428,
							false
							,[
							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							30,
							cr.plugins_.Sprite.prototype.acts.StopAnim,
							null,
							3130619060448705,
							false
						]
,						[
							27,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							9996344626613929,
							false
							,[
							[
								7,
								[
									4,
									[
										19,
										cr.system_object.prototype.exps.loopindex
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
,						[
							27,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							4089274380239956,
							false
							,[
							[
								0,
								[
									5,
									[
										20,
										30,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										0,
										1
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										30,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										5
									]
								]
							]
							]
						]
,						[
							28,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							8508584226014752,
							false
							,[
							[
								7,
								[
									19,
									cr.system_object.prototype.exps.str
									,[
[
										20,
										1,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											19,
											cr.system_object.prototype.exps.loopindex
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
										]
									]
									]
								]
							]
							]
						]
,						[
							28,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							7478717877125713,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										30,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										20,
										27,
										cr.plugins_.Text.prototype.exps.Width,
										false,
										null
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										30,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										8
									]
								]
							]
							]
						]
,						[
							30,
							cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
							null,
							9561644245515142,
							false
							,[
							[
								10,
								0
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.loopindex
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				5986630886024788,
				[
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					8833597057214862,
					false
					,[
					[
						1,
						[
							2,
							"changeLevel"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				7234375185681777,
				[
				],
				[
				[
					21,
					cr.plugins_.Text.prototype.acts.SetPos,
					null,
					5558408106838086,
					false
					,[
					[
						0,
						[
							0,
							1184
						]
					]
,					[
						0,
						[
							0,
							432
						]
					]
					]
				]
,				[
					24,
					cr.plugins_.Text.prototype.acts.SetPos,
					null,
					2026814724992825,
					false
					,[
					[
						0,
						[
							0,
							1184
						]
					]
,					[
						0,
						[
							0,
							532
						]
					]
					]
				]
,				[
					23,
					cr.plugins_.Text.prototype.acts.SetPos,
					null,
					6259889202996038,
					false
					,[
					[
						0,
						[
							0,
							20
						]
					]
,					[
						0,
						[
							0,
							56
						]
					]
					]
				]
,				[
					26,
					cr.plugins_.Text.prototype.acts.SetPos,
					null,
					6206164040693505,
					false
					,[
					[
						0,
						[
							4,
							[
								20,
								32,
								cr.plugins_.Sprite.prototype.exps.BBoxLeft,
								false,
								null
							]
							,[
								7,
								[
									5,
									[
										20,
										32,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
									,[
										20,
										26,
										cr.plugins_.Text.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									2
								]
							]
						]
					]
,					[
						0,
						[
							4,
							[
								20,
								32,
								cr.plugins_.Sprite.prototype.exps.BBoxTop,
								false,
								null
							]
							,[
								7,
								[
									5,
									[
										20,
										32,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
									,[
										20,
										26,
										cr.plugins_.Text.prototype.exps.Height,
										false,
										null
									]
								]
								,[
									0,
									2
								]
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					9180398530185531,
					false
					,[
					[
						11,
						"mode_cellsActive"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					1086040167389818,
					false
					,[
					[
						11,
						"mode_qaActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Functions"],
			false,
			null,
			6721945372804486,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				6721945372804486,
				false
				,[
				[
					1,
					[
						2,
						"Functions"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				835801966222477,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5945023084311566,
					false
					,[
					[
						1,
						[
							2,
							"refreshScores"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					1083676595890073,
					false
					,[
					[
						11,
						"m1_currentLevelScore"
					]
,					[
						7,
						[
							4,
							[
								23,
								"currentLevelDrugQACorrectAttempts"
							]
							,[
								23,
								"currentLevelLifestyleQACorrectAttempts"
							]
						]
					]
					]
				]
,				[
					1,
					cr.plugins_.Arr.prototype.acts.SetXYZ,
					null,
					4750116965038554,
					false
					,[
					[
						0,
						[
							23,
							"CUR_LEVEL"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						7,
						[
							23,
							"m1_currentLevelScore"
						]
					]
					]
				]
,				[
					26,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					7890526471078554,
					false
					,[
					[
						7,
						[
							4,
							[
								23,
								"m1_currentScore"
							]
							,[
								23,
								"m1_currentLevelScore"
							]
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					6977366996313802,
					[
					[
						-1,
						cr.system_object.prototype.cnds.ForEach,
						null,
						0,
						true,
						false,
						false,
						4116709968166962,
						false
						,[
						[
							4,
							30
						]
						]
					]
					],
					[
					[
						28,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						3119225355757498,
						false
						,[
						[
							7,
							[
								20,
								1,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									21,
									30,
									false,
									null
									,0
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						7320219417816995,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3134186039433585,
							false
							,[
							[
								7,
								[
									21,
									30,
									false,
									null
									,0
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									23,
									"CUR_LEVEL"
								]
							]
							]
						]
						],
						[
						[
							30,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							1415628808359798,
							false
							,[
							[
								0,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						5427038435670962,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							5654185890355513,
							false
						]
						],
						[
						[
							30,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							5996510431276678,
							false
							,[
							[
								0,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2548602374861991,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					4090057043637955,
					false
					,[
					[
						1,
						[
							2,
							"changeLevel"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					5167404645130832,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9227399374334327,
						false
						,[
						[
							7,
							[
								23,
								"CUR_LEVEL"
							]
						]
,						[
							8,
							2
						]
,						[
							7,
							[
								5,
								[
									23,
									"NUM_OF_LEVELS"
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						6904757979414867,
						false
						,[
						[
							1,
							[
								2,
								"redrawCells"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.Wait,
						null,
						2202684861619339,
						false
						,[
						[
							0,
							[
								1,
								0.2
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						4774508903159868,
						[
						],
						[
						]
					]
,					[
						0,
						null,
						false,
						null,
						8070400188833118,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							5564133809649143,
							false
							,[
							[
								7,
								[
									23,
									"CUR_LEVEL"
								]
							]
,							[
								8,
								4
							]
,							[
								7,
								[
									0,
									-1
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							5209593135532232,
							false
							,[
							[
								11,
								"m1_currentScore"
							]
,							[
								7,
								[
									23,
									"m1_currentLevelScore"
								]
							]
							]
						]
,						[
							1,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							3625400534537906,
							false
							,[
							[
								0,
								[
									23,
									"CUR_LEVEL"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									23,
									"m1_currentLevelScore"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7491739195475192,
							false
							,[
							[
								11,
								"m1_currentLevelScore"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4832645559726635,
							false
							,[
							[
								11,
								"currentLevelDrugQACorrectAttempts"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7032030600132719,
							false
							,[
							[
								11,
								"currentLevelLifestyleQACorrectAttempts"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4672856255562193,
							false
							,[
							[
								11,
								"currentLevelDrugQAAttempts"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8189170378278022,
							false
							,[
							[
								11,
								"currentLevelLifestyleQAAttempts"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3329028228274863,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							5808551071311917,
							false
							,[
							[
								11,
								"CUR_LEVEL"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						1,
						"INCREASE_RDC",
						0,
						0,
false,false,7021234975723656,false
					]
,					[
						0,
						null,
						false,
						null,
						5597217517999749,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.ArrForEach,
							null,
							0,
							true,
							false,
							false,
							3545748972039101,
							false
							,[
							[
								3,
								1
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							7497180569417333,
							[
							[
								0,
								cr.plugins_.Arr.prototype.cnds.CompareXYZ,
								null,
								0,
								false,
								false,
								false,
								4540392549864804,
								false
								,[
								[
									0,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
,								[
									0,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurY,
										false,
										null
									]
								]
,								[
									0,
									[
										0,
										3
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										2,
										"M"
									]
								]
								]
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								581280601589403,
								false
								,[
								[
									1,
									[
										2,
										"print"
									]
								]
,								[
									13,
																			[
											7,
											[
												10,
												[
													10,
													[
														10,
														[
															10,
															[
																10,
																[
																	2,
																	"DESTROY:"
																]
																,[
																	20,
																	0,
																	cr.plugins_.Arr.prototype.exps.At,
																	false,
																	null
																	,[
[
																		20,
																		0,
																		cr.plugins_.Arr.prototype.exps.At,
																		false,
																		null
																		,[
[
																			20,
																			0,
																			cr.plugins_.Arr.prototype.exps.CurX,
																			false,
																			null
																		]
,[
																			20,
																			0,
																			cr.plugins_.Arr.prototype.exps.CurY,
																			false,
																			null
																		]
,[
																			0,
																			4
																		]
																		]
																	]
,[
																		20,
																		0,
																		cr.plugins_.Arr.prototype.exps.At,
																		false,
																		null
																		,[
[
																			20,
																			0,
																			cr.plugins_.Arr.prototype.exps.CurX,
																			false,
																			null
																		]
,[
																			20,
																			0,
																			cr.plugins_.Arr.prototype.exps.CurY,
																			false,
																			null
																		]
,[
																			0,
																			5
																		]
																		]
																	]
,[
																		0,
																		1
																	]
																	]
																]
															]
															,[
																2,
																" at"
															]
														]
														,[
															20,
															0,
															cr.plugins_.Arr.prototype.exps.At,
															false,
															null
															,[
[
																20,
																0,
																cr.plugins_.Arr.prototype.exps.CurX,
																false,
																null
															]
,[
																20,
																0,
																cr.plugins_.Arr.prototype.exps.CurY,
																false,
																null
															]
,[
																0,
																4
															]
															]
														]
													]
													,[
														2,
														","
													]
												]
												,[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurX,
														false,
														null
													]
,[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurY,
														false,
														null
													]
,[
														0,
														5
													]
													]
												]
											]
										]
								]
								]
							]
							]
							,[
							[
								1,
								"current_power",
								0,
								0,
false,false,1522257180663039,false
							]
,							[
								1,
								"oldPosX",
								0,
								0,
false,false,2950693148629007,false
							]
,							[
								1,
								"oldPosY",
								0,
								0,
false,false,8612006779490938,false
							]
,							[
								0,
								null,
								false,
								null,
								6500709488612161,
								[
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									9488916067851114,
									false
									,[
									[
										11,
										"oldPosX"
									]
,									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
,[
												0,
												4
											]
											]
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									1968467132062321,
									false
									,[
									[
										11,
										"oldPosY"
									]
,									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
,[
												0,
												5
											]
											]
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								5387447808444006,
								[
								[
									0,
									cr.plugins_.Arr.prototype.cnds.CompareXYZ,
									null,
									0,
									false,
									false,
									false,
									713218645893679,
									false
									,[
									[
										0,
										[
											23,
											"oldPosX"
										]
									]
,									[
										0,
										[
											23,
											"oldPosY"
										]
									]
,									[
										0,
										[
											0,
											1
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											2,
											"GPC"
										]
									]
									]
								]
								],
								[
								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									2278741858589133,
									false
									,[
									[
										0,
										[
											23,
											"oldPosX"
										]
									]
,									[
										0,
										[
											23,
											"oldPosY"
										]
									]
,									[
										0,
										[
											0,
											1
										]
									]
,									[
										7,
										[
											2,
											"E"
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									7418360881246294,
									false
									,[
									[
										11,
										"current_power"
									]
,									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"oldPosX"
											]
,[
												23,
												"oldPosY"
											]
,[
												0,
												2
											]
											]
										]
									]
									]
								]
,								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									6719070895874749,
									false
									,[
									[
										0,
										[
											23,
											"oldPosX"
										]
									]
,									[
										0,
										[
											23,
											"oldPosY"
										]
									]
,									[
										0,
										[
											0,
											2
										]
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									771972900549218,
									[
									],
									[
									[
										0,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										9362790278155507,
										false
										,[
										[
											0,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
										]
,										[
											0,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
										]
,										[
											0,
											[
												0,
												1
											]
										]
,										[
											7,
											[
												2,
												"GPC"
											]
										]
										]
									]
,									[
										0,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										1640202116966307,
										false
										,[
										[
											0,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
										]
,										[
											0,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
										]
,										[
											0,
											[
												0,
												2
											]
										]
,										[
											7,
											[
												23,
												"current_power"
											]
										]
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								2579794669779941,
								[
								],
								[
								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									6489223008324821,
									false
									,[
									[
										0,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurX,
											false,
											null
										]
									]
,									[
										0,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurY,
											false,
											null
										]
									]
,									[
										0,
										[
											0,
											3
										]
									]
,									[
										7,
										[
											2,
											"N"
										]
									]
									]
								]
,								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									9208761742653821,
									false
									,[
									[
										0,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurX,
											false,
											null
										]
									]
,									[
										0,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurY,
											false,
											null
										]
									]
,									[
										0,
										[
											0,
											4
										]
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									1131401148403361,
									false
									,[
									[
										0,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurX,
											false,
											null
										]
									]
,									[
										0,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurY,
											false,
											null
										]
									]
,									[
										0,
										[
											0,
											5
										]
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						5293313318378065,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.ArrForEach,
							null,
							0,
							true,
							false,
							false,
							1498250450649606,
							false
							,[
							[
								3,
								1
							]
							]
						]
						],
						[
						]
					]
,					[
						0,
						null,
						false,
						null,
						8871971059900722,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							1538793033847007,
							false
							,[
							[
								11,
								"INCREASE_RDC"
							]
,							[
								7,
								[
									20,
									9,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"CUR_LEVEL"
									]
,[
										0,
										0
									]
									]
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							3868614563140684,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												2,
												"BBC Left :"
											]
											,[
												20,
												3,
												cr.plugins_.Sprite.prototype.exps.Count,
												false,
												null
											]
										]
									]
							]
							]
						]
						]
						,[
						[
							1,
							"randomPower",
							0,
							0,
false,false,6391160531325846,false
						]
,						[
							0,
							null,
							false,
							null,
							8064456379558303,
							[
							[
								-1,
								cr.system_object.prototype.cnds.For,
								null,
								0,
								true,
								false,
								false,
								5862091830368543,
								false
								,[
								[
									1,
									[
										2,
										"injecting"
									]
								]
,								[
									0,
									[
										0,
										1
									]
								]
,								[
									0,
									[
										23,
										"INCREASE_RDC"
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								4824321434873029,
								false
								,[
								[
									7,
									[
										20,
										3,
										cr.plugins_.Sprite.prototype.exps.Count,
										false,
										null
									]
								]
,								[
									8,
									4
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								2433548935250017,
								false
								,[
								[
									7,
									[
										23,
										"CUR_LEVEL"
									]
								]
,								[
									8,
									1
								]
,								[
									7,
									[
										0,
										7
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								7716267616854583,
								false
								,[
								[
									11,
									"randomPower"
								]
,								[
									7,
									[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											19,
											cr.system_object.prototype.exps.random
											,[
[
												4,
												[
													20,
													9,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														23,
														"CUR_LEVEL"
													]
,[
														0,
														2
													]
													]
												]
												,[
													0,
													1
												]
											]
											]
										]
										]
									]
								]
								]
							]
,							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								7559936541787749,
								false
								,[
								[
									1,
									[
										2,
										"injectRDCAtAdjacentEmptyCell"
									]
								]
,								[
									13,
																			[
											7,
											[
												0,
												1
											]
										]
,
										[
											7,
											[
												4,
												[
													0,
													5
												]
												,[
													23,
													"randomPower"
												]
											]
										]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						5424172438692511,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.Wait,
							null,
							7453828126211498,
							false
							,[
							[
								0,
								[
									1,
									0.2
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							3837027661367294,
							false
							,[
							[
								1,
								[
									2,
									"redrawCells"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2558538506534718,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						6583187371521825,
						false
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						3181487609446284,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						1554942643368828,
						false
						,[
						[
							1,
							[
								2,
								"ask"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										4
									]
								]
,
								[
									7,
									[
										0,
										0
									]
								]
,
								[
									7,
									[
										0,
										0
									]
								]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						9485119630341312,
						false
						,[
						[
							11,
							"mode_gameOverActive"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3863998687789371,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					4825688070577532,
					false
					,[
					[
						1,
						[
							2,
							"redrawCells"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					6070189443806213,
					false
					,[
					[
						11,
						"mode_redrawCells"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					6403725615078797,
					false
					,[
					[
						11,
						"currentGPCCount"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					1760390681505473,
					false
					,[
					[
						11,
						"currentBMCCount"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					5130997975525889,
					false
					,[
					[
						11,
						"currentRDCCount"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					1,
					cr.plugins_.Arr.prototype.acts.SetXYZ,
					null,
					2878689314048495,
					false
					,[
					[
						0,
						[
							23,
							"CUR_LEVEL"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						7,
						[
							23,
							"m1_currentLevelScore"
						]
					]
					]
				]
				]
				,[
				[
					1,
					"ROW_EVEN",
					0,
					1,
false,false,7753765826310563,false
				]
,				[
					0,
					null,
					false,
					null,
					4913715790896847,
					[
					],
					[
					[
						3,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						9468316845136713,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					5450936786710596,
					[
					],
					[
					[
						5,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						7295367208925001,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3512124756450932,
					[
					],
					[
					[
						10,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						7002251244817867,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6612180457306417,
					[
					],
					[
					[
						44,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						1552831266711603,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1191019204460177,
					[
					],
					[
					[
						20,
						cr.plugins_.Text.prototype.acts.Destroy,
						null,
						7487786158559321,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9784981803136761,
					[
					],
					[
					[
						13,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						5031207004212816,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4876964722661972,
					[
					],
					[
					[
						12,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						8430325301220409,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1297431593714337,
					[
					[
						0,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						5025522058829384,
						false
						,[
						[
							3,
							1
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						1995184975850943,
						false
						,[
						[
							11,
							"ROW_EVEN"
						]
,						[
							7,
							[
								8,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurY,
									false,
									null
								]
								,[
									0,
									2
								]
							]
						]
						]
					]
					]
					,[
					[
						1,
						"POS_X",
						0,
						0,
false,false,5908701283995691,false
					]
,					[
						1,
						"POS_Y",
						0,
						0,
false,false,7924313711122703,false
					]
,					[
						0,
						null,
						false,
						null,
						7244746554852613,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4813358394674798,
							false
							,[
							[
								11,
								"POS_X"
							]
,							[
								7,
								[
									4,
									[
										4,
										[
											23,
											"ACTIVE_CELL_LEFT"
										]
										,[
											6,
											[
												23,
												"ROW_EVEN"
											]
											,[
												23,
												"EVEN_ROW_DISPLACEMENT"
											]
										]
									]
									,[
										6,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurX,
											false,
											null
										]
										,[
											23,
											"CELL_WIDTH"
										]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							3304510901290136,
							false
							,[
							[
								11,
								"POS_Y"
							]
,							[
								7,
								[
									4,
									[
										23,
										"ACTIVE_CELL_TOP"
									]
									,[
										6,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurY,
											false,
											null
										]
										,[
											23,
											"CELL_HEIGHT"
										]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3281569753012487,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							44662201454206,
							false
							,[
							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
,[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurY,
										false,
										null
									]
,[
										0,
										1
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"RDC"
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.CreateObject,
							null,
							9192107722293422,
							false
							,[
							[
								4,
								44
							]
,							[
								5,
								[
									2,
									"cells_layer"
								]
							]
,							[
								0,
								[
									23,
									"POS_X"
								]
							]
,							[
								0,
								[
									23,
									"POS_Y"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.CreateObject,
							null,
							5337947059802712,
							false
							,[
							[
								4,
								20
							]
,							[
								5,
								[
									2,
									"cells_layer"
								]
							]
,							[
								0,
								[
									4,
									[
										23,
										"POS_X"
									]
									,[
										23,
										"CELL_TEXT_OFF_X"
									]
								]
							]
,							[
								0,
								[
									4,
									[
										23,
										"POS_Y"
									]
									,[
										23,
										"CELL_TEXT_OFF_Y"
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							4425109461897592,
							false
							,[
							[
								11,
								"currentRDCCount"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							5500102958020536,
							[
							[
								20,
								cr.plugins_.Text.prototype.cnds.PickDistance,
								null,
								0,
								false,
								false,
								true,
								7072339647088135,
								false
								,[
								[
									3,
									0
								]
,								[
									0,
									[
										23,
										"POS_X"
									]
								]
,								[
									0,
									[
										23,
										"POS_Y"
									]
								]
								]
							]
							],
							[
							[
								20,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								3160963596544133,
								false
								,[
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.str
										,[
[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
,[
												0,
												2
											]
											]
										]
										]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							913167878141335,
							[
							[
								44,
								cr.plugins_.Sprite.prototype.cnds.PickDistance,
								null,
								0,
								false,
								false,
								true,
								3468123617286401,
								false
								,[
								[
									3,
									0
								]
,								[
									0,
									[
										23,
										"POS_X"
									]
								]
,								[
									0,
									[
										23,
										"POS_Y"
									]
								]
								]
							]
							],
							[
							[
								44,
								cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
								null,
								5829759360511744,
								false
								,[
								[
									10,
									0
								]
,								[
									7,
									[
										23,
										"POS_X"
									]
								]
								]
							]
,							[
								44,
								cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
								null,
								4774002897699116,
								false
								,[
								[
									10,
									1
								]
,								[
									7,
									[
										23,
										"POS_Y"
									]
								]
								]
							]
,							[
								44,
								cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
								null,
								3041305723241199,
								false
								,[
								[
									10,
									2
								]
,								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
								]
							]
,							[
								44,
								cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
								null,
								2179901373914804,
								false
								,[
								[
									10,
									3
								]
,								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurY,
										false,
										null
									]
								]
								]
							]
,							[
								44,
								cr.plugins_.Sprite.prototype.acts.MoveToBottom,
								null,
								3379900586980334,
								false
							]
							]
							,[
							[
								0,
								null,
								false,
								null,
								4252955535579136,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									9507837380755512,
									false
									,[
									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
,[
												0,
												3
											]
											]
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											2,
											"H"
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.CreateObject,
									null,
									6935455726391411,
									false
									,[
									[
										4,
										12
									]
,									[
										5,
										[
											2,
											"cells_layer"
										]
									]
,									[
										0,
										[
											23,
											"POS_X"
										]
									]
,									[
										0,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								2000152172568793,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									3354894353059611,
									false
									,[
									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
,[
												0,
												3
											]
											]
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											2,
											"M"
										]
									]
									]
								]
								],
								[
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						5765077103899231,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							3814929617332494,
							false
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							7127826092733041,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								2704386622267425,
								false
								,[
								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurX,
											false,
											null
										]
,[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurY,
											false,
											null
										]
,[
											0,
											1
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										2,
										"GPC"
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.CreateObject,
								null,
								9463236055182454,
								false
								,[
								[
									4,
									10
								]
,								[
									5,
									[
										2,
										"cells_layer"
									]
								]
,								[
									0,
									[
										23,
										"POS_X"
									]
								]
,								[
									0,
									[
										23,
										"POS_Y"
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.CreateObject,
								null,
								1378042961051638,
								false
								,[
								[
									4,
									20
								]
,								[
									5,
									[
										2,
										"cells_layer"
									]
								]
,								[
									0,
									[
										4,
										[
											23,
											"POS_X"
										]
										,[
											23,
											"CELL_TEXT_OFF_X"
										]
									]
								]
,								[
									0,
									[
										4,
										[
											23,
											"POS_Y"
										]
										,[
											23,
											"CELL_TEXT_OFF_Y"
										]
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.AddVar,
								null,
								3841640953973036,
								false
								,[
								[
									11,
									"currentGPCCount"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
							,[
							[
								0,
								null,
								false,
								null,
								509342590146931,
								[
								[
									20,
									cr.plugins_.Text.prototype.cnds.PickDistance,
									null,
									0,
									false,
									false,
									true,
									3771991725959883,
									false
									,[
									[
										3,
										0
									]
,									[
										0,
										[
											23,
											"POS_X"
										]
									]
,									[
										0,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
								],
								[
								[
									20,
									cr.plugins_.Text.prototype.acts.SetText,
									null,
									1574536867582418,
									false
									,[
									[
										7,
										[
											19,
											cr.system_object.prototype.exps.str
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.At,
												false,
												null
												,[
[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
,[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.CurY,
													false,
													null
												]
,[
													0,
													2
												]
												]
											]
											]
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								1441127459551721,
								[
								[
									10,
									cr.plugins_.Sprite.prototype.cnds.PickDistance,
									null,
									0,
									false,
									false,
									true,
									2075425866706675,
									false
									,[
									[
										3,
										0
									]
,									[
										0,
										[
											23,
											"POS_X"
										]
									]
,									[
										0,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
								],
								[
								[
									10,
									cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
									null,
									9974394953635392,
									false
									,[
									[
										10,
										0
									]
,									[
										7,
										[
											23,
											"POS_X"
										]
									]
									]
								]
,								[
									10,
									cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
									null,
									7544248282841331,
									false
									,[
									[
										10,
										1
									]
,									[
										7,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
,								[
									10,
									cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
									null,
									8653578607553732,
									false
									,[
									[
										10,
										2
									]
,									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurX,
											false,
											null
										]
									]
									]
								]
,								[
									10,
									cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
									null,
									7670526546987178,
									false
									,[
									[
										10,
										3
									]
,									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.CurY,
											false,
											null
										]
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									7051633285023246,
									[
									[
										0,
										cr.plugins_.Arr.prototype.cnds.CompareXYZ,
										null,
										0,
										false,
										false,
										false,
										7711884598579474,
										false
										,[
										[
											0,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
										]
,										[
											0,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
										]
,										[
											0,
											[
												0,
												2
											]
										]
,										[
											8,
											3
										]
,										[
											7,
											[
												0,
												5
											]
										]
										]
									]
									],
									[
									[
										10,
										cr.plugins_.Sprite.prototype.acts.SetAnim,
										null,
										9618132346203353,
										false
										,[
										[
											1,
											[
												2,
												"low"
											]
										]
,										[
											3,
											1
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									4584574711601844,
									[
									[
										-1,
										cr.system_object.prototype.cnds.Else,
										null,
										0,
										false,
										false,
										false,
										3818899711318009,
										false
									]
									],
									[
									]
									,[
									[
										0,
										null,
										false,
										null,
										1949388032874812,
										[
										[
											0,
											cr.plugins_.Arr.prototype.cnds.CompareXYZ,
											null,
											0,
											false,
											false,
											false,
											3984594727827626,
											false
											,[
											[
												0,
												[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
											]
,											[
												0,
												[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.CurY,
													false,
													null
												]
											]
,											[
												0,
												[
													0,
													2
												]
											]
,											[
												8,
												4
											]
,											[
												7,
												[
													0,
													15
												]
											]
											]
										]
										],
										[
										[
											10,
											cr.plugins_.Sprite.prototype.acts.SetAnim,
											null,
											5965332838765282,
											false
											,[
											[
												1,
												[
													2,
													"vhigh"
												]
											]
,											[
												3,
												1
											]
											]
										]
										]
									]
,									[
										0,
										null,
										false,
										null,
										161572302864754,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Else,
											null,
											0,
											false,
											false,
											false,
											8291972982921391,
											false
										]
										],
										[
										]
										,[
										[
											0,
											null,
											false,
											null,
											3327181513911702,
											[
											[
												0,
												cr.plugins_.Arr.prototype.cnds.CompareXYZ,
												null,
												0,
												false,
												false,
												false,
												8287480291012289,
												false
												,[
												[
													0,
													[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurX,
														false,
														null
													]
												]
,												[
													0,
													[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurY,
														false,
														null
													]
												]
,												[
													0,
													[
														0,
														2
													]
												]
,												[
													8,
													4
												]
,												[
													7,
													[
														0,
														10
													]
												]
												]
											]
											],
											[
											[
												10,
												cr.plugins_.Sprite.prototype.acts.SetAnim,
												null,
												5719295270243114,
												false
												,[
												[
													1,
													[
														2,
														"high"
													]
												]
,												[
													3,
													1
												]
												]
											]
											]
										]
,										[
											0,
											null,
											false,
											null,
											7319157701818601,
											[
											[
												-1,
												cr.system_object.prototype.cnds.Else,
												null,
												0,
												false,
												false,
												false,
												7488267858788923,
												false
											]
											],
											[
											]
											,[
											[
												0,
												null,
												false,
												null,
												5330513380582451,
												[
												[
													0,
													cr.plugins_.Arr.prototype.cnds.CompareXYZ,
													null,
													0,
													false,
													false,
													false,
													9631863414704543,
													false
													,[
													[
														0,
														[
															20,
															0,
															cr.plugins_.Arr.prototype.exps.CurX,
															false,
															null
														]
													]
,													[
														0,
														[
															20,
															0,
															cr.plugins_.Arr.prototype.exps.CurY,
															false,
															null
														]
													]
,													[
														0,
														[
															0,
															2
														]
													]
,													[
														8,
														4
													]
,													[
														7,
														[
															0,
															5
														]
													]
													]
												]
												],
												[
												[
													10,
													cr.plugins_.Sprite.prototype.acts.SetAnim,
													null,
													5342825379762388,
													false
													,[
													[
														1,
														[
															2,
															"med"
														]
													]
,													[
														3,
														1
													]
													]
												]
												]
											]
											]
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									2106927336964346,
									[
									[
										-1,
										cr.system_object.prototype.cnds.Compare,
										null,
										0,
										false,
										false,
										false,
										9678602309793234,
										false
										,[
										[
											7,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.At,
												false,
												null
												,[
[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
,[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.CurY,
													false,
													null
												]
,[
													0,
													3
												]
												]
											]
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												2,
												"H"
											]
										]
										]
									]
									],
									[
									[
										-1,
										cr.system_object.prototype.acts.CreateObject,
										null,
										7786244371815882,
										false
										,[
										[
											4,
											12
										]
,										[
											5,
											[
												2,
												"cells_layer"
											]
										]
,										[
											0,
											[
												23,
												"POS_X"
											]
										]
,										[
											0,
											[
												23,
												"POS_Y"
											]
										]
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							1314619276359453,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								6900373005931025,
								false
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								6504718979856155,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									7754721768661462,
									false
									,[
									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
,[
												0,
												1
											]
											]
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											2,
											"BMC"
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.CreateObject,
									null,
									2926307787546385,
									false
									,[
									[
										4,
										5
									]
,									[
										5,
										[
											2,
											"cells_layer"
										]
									]
,									[
										0,
										[
											23,
											"POS_X"
										]
									]
,									[
										0,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.CreateObject,
									null,
									9503884837254928,
									false
									,[
									[
										4,
										20
									]
,									[
										5,
										[
											2,
											"cells_layer"
										]
									]
,									[
										0,
										[
											4,
											[
												23,
												"POS_X"
											]
											,[
												23,
												"CELL_TEXT_OFF_X"
											]
										]
									]
,									[
										0,
										[
											4,
											[
												23,
												"POS_Y"
											]
											,[
												23,
												"CELL_TEXT_OFF_Y"
											]
										]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.AddVar,
									null,
									2520172321148358,
									false
									,[
									[
										11,
										"currentBMCCount"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									6446850445857291,
									[
									[
										20,
										cr.plugins_.Text.prototype.cnds.PickDistance,
										null,
										0,
										false,
										false,
										true,
										4777425483879319,
										false
										,[
										[
											3,
											0
										]
,										[
											0,
											[
												23,
												"POS_X"
											]
										]
,										[
											0,
											[
												23,
												"POS_Y"
											]
										]
										]
									]
									],
									[
									[
										20,
										cr.plugins_.Text.prototype.acts.SetText,
										null,
										6216426721496454,
										false
										,[
										[
											7,
											[
												19,
												cr.system_object.prototype.exps.str
												,[
[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurX,
														false,
														null
													]
,[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurY,
														false,
														null
													]
,[
														0,
														2
													]
													]
												]
												]
											]
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									8944433560988285,
									[
									[
										5,
										cr.plugins_.Sprite.prototype.cnds.PickDistance,
										null,
										0,
										false,
										false,
										true,
										8121650287808881,
										false
										,[
										[
											3,
											0
										]
,										[
											0,
											[
												23,
												"POS_X"
											]
										]
,										[
											0,
											[
												23,
												"POS_Y"
											]
										]
										]
									]
									],
									[
									[
										5,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										1315911069275785,
										false
										,[
										[
											10,
											0
										]
,										[
											7,
											[
												23,
												"POS_X"
											]
										]
										]
									]
,									[
										5,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										3593613136552956,
										false
										,[
										[
											10,
											1
										]
,										[
											7,
											[
												23,
												"POS_Y"
											]
										]
										]
									]
,									[
										5,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										7009809896655847,
										false
										,[
										[
											10,
											2
										]
,										[
											7,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
										]
										]
									]
,									[
										5,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										797622949103838,
										false
										,[
										[
											10,
											3
										]
,										[
											7,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
										]
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								2925457163683957,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Else,
									null,
									0,
									false,
									false,
									false,
									8609995210615104,
									false
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.CreateObject,
									null,
									5535654080375284,
									false
									,[
									[
										4,
										3
									]
,									[
										5,
										[
											2,
											"cells_layer"
										]
									]
,									[
										0,
										[
											23,
											"POS_X"
										]
									]
,									[
										0,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									8533072674293524,
									[
									[
										3,
										cr.plugins_.Sprite.prototype.cnds.PickDistance,
										null,
										0,
										false,
										false,
										true,
										9282108370398167,
										false
										,[
										[
											3,
											0
										]
,										[
											0,
											[
												23,
												"POS_X"
											]
										]
,										[
											0,
											[
												23,
												"POS_Y"
											]
										]
										]
									]
									],
									[
									[
										3,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										7454654959954835,
										false
										,[
										[
											10,
											0
										]
,										[
											7,
											[
												23,
												"POS_X"
											]
										]
										]
									]
,									[
										3,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										351393807292432,
										false
										,[
										[
											10,
											1
										]
,										[
											7,
											[
												23,
												"POS_Y"
											]
										]
										]
									]
,									[
										3,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										9202504961060989,
										false
										,[
										[
											10,
											2
										]
,										[
											7,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
										]
										]
									]
,									[
										3,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										4830751863988331,
										false
										,[
										[
											10,
											3
										]
,										[
											7,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
										]
										]
									]
,									[
										3,
										cr.plugins_.Sprite.prototype.acts.MoveToBottom,
										null,
										9213510659907208,
										false
									]
									]
									,[
									[
										0,
										null,
										true,
										null,
										261079349251074,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											1160358814445227,
											false
											,[
											[
												7,
												[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurX,
														false,
														null
													]
,[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurY,
														false,
														null
													]
,[
														0,
														3
													]
													]
												]
											]
,											[
												8,
												0
											]
,											[
												7,
												[
													2,
													"H"
												]
											]
											]
										]
,										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											835659265380524,
											false
											,[
											[
												7,
												[
													23,
													"mode_drugPlacementActive"
												]
											]
,											[
												8,
												0
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										],
										[
										[
											-1,
											cr.system_object.prototype.acts.CreateObject,
											null,
											6966771005906905,
											false
											,[
											[
												4,
												12
											]
,											[
												5,
												[
													2,
													"cells_layer"
												]
											]
,											[
												0,
												[
													23,
													"POS_X"
												]
											]
,											[
												0,
												[
													23,
													"POS_Y"
												]
											]
											]
										]
										]
									]
,									[
										0,
										null,
										false,
										null,
										4856814727890009,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											5696236028350136,
											false
											,[
											[
												7,
												[
													20,
													0,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurX,
														false,
														null
													]
,[
														20,
														0,
														cr.plugins_.Arr.prototype.exps.CurY,
														false,
														null
													]
,[
														0,
														3
													]
													]
												]
											]
,											[
												8,
												0
											]
,											[
												7,
												[
													2,
													"M"
												]
											]
											]
										]
										],
										[
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4267846868080187,
					[
					],
					[
					[
						23,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						3887299353172508,
						false
						,[
						[
							7,
							[
								19,
								cr.system_object.prototype.exps.str
								,[
[
									4,
									[
										23,
										"CUR_LEVEL"
									]
									,[
										0,
										1
									]
								]
								]
							]
						]
						]
					]
,					[
						21,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						9682272320597172,
						false
						,[
						[
							7,
							[
								23,
								"currentDrugQAAttempts"
							]
						]
						]
					]
,					[
						24,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						9388995691034271,
						false
						,[
						[
							7,
							[
								23,
								"currentLifestyleQAAttempts"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8105450720766364,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						6844728917209771,
						false
						,[
						[
							1,
							[
								2,
								"refreshScores"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						6473379628793129,
						false
						,[
						[
							11,
							"mode_redrawCells"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						8906870734523236,
						false
						,[
						[
							1,
							[
								2,
								"gameStateEval"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2373233977708369,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					6420779311940903,
					false
					,[
					[
						1,
						[
							2,
							"gameStateEval"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"isGameOver",
					0,
					0,
false,false,309729363213722,false
				]
,				[
					1,
					"isWin",
					0,
					0,
false,false,9301663249270031,false
				]
,				[
					0,
					null,
					false,
					null,
					7999544434977659,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6196211740862809,
						false
						,[
						[
							7,
							[
								23,
								"currentRDCCount"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3857039507543534,
						false
						,[
						[
							11,
							"isGameOver"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						8595770742731652,
						false
						,[
						[
							11,
							"isWin"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3002689199518867,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						4154499844641311,
						false
						,[
						[
							7,
							[
								23,
								"currentGPCCount"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						4813700761297543,
						false
						,[
						[
							7,
							[
								23,
								"currentBMCCount"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3492712707738374,
						false
						,[
						[
							11,
							"isGameOver"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9967464951526007,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9147440655737963,
						false
						,[
						[
							7,
							[
								23,
								"isGameOver"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						6323744177993914,
						[
						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							263542156194382,
							false
							,[
							[
								11,
								"isWin"
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							2609005007299232,
							false
							,[
							[
								1,
								[
									2,
									"ask"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											4
										]
									]
,
									[
										7,
										[
											0,
											0
										]
									]
,
									[
										7,
										[
											0,
											1
										]
									]
							]
							]
						]
,						[
							251,
							cr.plugins_.Audio.prototype.acts.Play,
							null,
							3778686681819588,
							false
							,[
							[
								2,
								["player-wins",false]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"player-wins"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						4294319870347409,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							9534998446314223,
							false
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							339814656544605,
							false
							,[
							[
								1,
								[
									2,
									"ask"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											4
										]
									]
,
									[
										7,
										[
											0,
											0
										]
									]
,
									[
										7,
										[
											0,
											0
										]
									]
							]
							]
						]
,						[
							251,
							cr.plugins_.Audio.prototype.acts.Play,
							null,
							5045097622655655,
							false
							,[
							[
								2,
								["player-loose",false]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									-15
								]
							]
,							[
								1,
								[
									2,
									"player-loose"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3721579714860451,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							6455800990215655,
							false
							,[
							[
								11,
								"mode_gameOverActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2340282708003275,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5911115448414765,
					false
					,[
					[
						1,
						[
							2,
							"injectCellAtRandomEmptyCell"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"CUR_RANDOM",
					0,
					0,
false,false,5328070624269135,false
				]
,				[
					1,
					"CUR_RANDOM_X",
					0,
					0,
false,false,6623870485493342,false
				]
,				[
					1,
					"CUR_RANDOM_Y",
					0,
					0,
false,false,2183696150923325,false
				]
,				[
					1,
					"NUM_CELL_GEN",
					0,
					0,
false,false,1968293108643577,false
				]
,				[
					0,
					null,
					false,
					null,
					6231470190765046,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9667427426202216,
						false
						,[
						[
							7,
							[
								20,
								3,
								cr.plugins_.Sprite.prototype.exps.Count,
								false,
								null
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						7055933979217124,
						[
						[
							-1,
							cr.system_object.prototype.cnds.While,
							null,
							0,
							true,
							false,
							false,
							4841277707403435,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3645207754761171,
							false
							,[
							[
								7,
								[
									23,
									"NUM_CELL_GEN"
								]
							]
,							[
								8,
								2
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							1847577493127366,
							false
							,[
							[
								11,
								"CUR_RANDOM"
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.floor
									,[
[
										19,
										cr.system_object.prototype.exps.random
										,[
[
											0,
											0
										]
,[
											5,
											[
												6,
												[
													23,
													"NUM_OF_COLS"
												]
												,[
													23,
													"NUM_OF_ROWS"
												]
											]
											,[
												0,
												1
											]
										]
										]
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							6621690156151889,
							false
							,[
							[
								11,
								"CUR_RANDOM_X"
							]
,							[
								7,
								[
									7,
									[
										23,
										"CUR_RANDOM"
									]
									,[
										23,
										"NUM_OF_COLS"
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8801927799648206,
							false
							,[
							[
								11,
								"CUR_RANDOM_Y"
							]
,							[
								7,
								[
									8,
									[
										23,
										"CUR_RANDOM"
									]
									,[
										23,
										"NUM_OF_COLS"
									]
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							9142804055931453,
							[
							[
								0,
								cr.plugins_.Arr.prototype.cnds.CompareXYZ,
								null,
								0,
								false,
								false,
								false,
								3689181950398034,
								false
								,[
								[
									0,
									[
										23,
										"CUR_RANDOM_X"
									]
								]
,								[
									0,
									[
										23,
										"CUR_RANDOM_Y"
									]
								]
,								[
									0,
									[
										0,
										1
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										2,
										"E"
									]
								]
								]
							]
							],
							[
							[
								0,
								cr.plugins_.Arr.prototype.acts.SetXYZ,
								null,
								26861394539069,
								false
								,[
								[
									0,
									[
										23,
										"CUR_RANDOM_X"
									]
								]
,								[
									0,
									[
										23,
										"CUR_RANDOM_Y"
									]
								]
,								[
									0,
									[
										0,
										2
									]
								]
,								[
									7,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											2
										]
										]
									]
								]
								]
							]
,							[
								0,
								cr.plugins_.Arr.prototype.acts.SetXYZ,
								null,
								349232365811718,
								false
								,[
								[
									0,
									[
										23,
										"CUR_RANDOM_X"
									]
								]
,								[
									0,
									[
										23,
										"CUR_RANDOM_Y"
									]
								]
,								[
									0,
									[
										0,
										1
									]
								]
,								[
									7,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											1
										]
										]
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.AddVar,
								null,
								225641256455357,
								false
								,[
								[
									11,
									"NUM_CELL_GEN"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2697735466087623,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					9433346763060548,
					false
					,[
					[
						1,
						[
							2,
							"injectRDCAtAdjacentEmptyCell"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"NUM_CELL_GEN",
					0,
					0,
false,false,9073494609605864,false
				]
,				[
					1,
					"PICKEDCOUNT",
					0,
					0,
false,false,2253600088065275,false
				]
,				[
					1,
					"numCellNeeded",
					0,
					1,
false,false,6874298086755849,false
				]
,				[
					0,
					null,
					false,
					null,
					1511095153160179,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5579847505342655,
						false
						,[
						[
							7,
							[
								20,
								44,
								cr.plugins_.Sprite.prototype.exps.Count,
								false,
								null
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						4060191714342944,
						false
						,[
						[
							7,
							[
								20,
								3,
								cr.plugins_.Sprite.prototype.exps.Count,
								false,
								null
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						4898139335292542,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4220196136500414,
							false
							,[
							[
								7,
								[
									23,
									"NUM_CELL_GEN"
								]
							]
,							[
								8,
								2
							]
,							[
								7,
								[
									23,
									"numCellNeeded"
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							8194817788730346,
							[
							[
								4,
								cr.plugins_.Sprite.prototype.cnds.IsOverlapping,
								null,
								0,
								false,
								false,
								false,
								9118753199606662,
								false
								,[
								[
									4,
									44
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								2167116341692677,
								[
								[
									-1,
									cr.system_object.prototype.cnds.PickRandom,
									null,
									0,
									false,
									false,
									false,
									5518650754046215,
									false
									,[
									[
										4,
										4
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.AddVar,
									null,
									9118911769365411,
									false
									,[
									[
										11,
										"PICKEDCOUNT"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									6131392394209809,
									[
									[
										-1,
										cr.system_object.prototype.cnds.Compare,
										null,
										0,
										false,
										false,
										false,
										2241439626429385,
										false
										,[
										[
											7,
											[
												23,
												"NUM_CELL_GEN"
											]
										]
,										[
											8,
											2
										]
,										[
											7,
											[
												23,
												"numCellNeeded"
											]
										]
										]
									]
									],
									[
									]
									,[
									[
										0,
										null,
										false,
										null,
										5304548240061163,
										[
										[
											0,
											cr.plugins_.Arr.prototype.cnds.CompareXYZ,
											null,
											0,
											false,
											false,
											false,
											4060120829857983,
											false
											,[
											[
												0,
												[
													21,
													3,
													false,
													null
													,2
												]
											]
,											[
												0,
												[
													21,
													3,
													false,
													null
													,3
												]
											]
,											[
												0,
												[
													0,
													1
												]
											]
,											[
												8,
												0
											]
,											[
												7,
												[
													2,
													"E"
												]
											]
											]
										]
										],
										[
										[
											0,
											cr.plugins_.Arr.prototype.acts.SetXYZ,
											null,
											4653625027143569,
											false
											,[
											[
												0,
												[
													21,
													3,
													false,
													null
													,2
												]
											]
,											[
												0,
												[
													21,
													3,
													false,
													null
													,3
												]
											]
,											[
												0,
												[
													0,
													2
												]
											]
,											[
												7,
												[
													20,
													249,
													cr.plugins_.Function.prototype.exps.Param,
													false,
													null
													,[
[
														0,
														1
													]
													]
												]
											]
											]
										]
,										[
											0,
											cr.plugins_.Arr.prototype.acts.SetXYZ,
											null,
											3386219648078811,
											false
											,[
											[
												0,
												[
													21,
													3,
													false,
													null
													,2
												]
											]
,											[
												0,
												[
													21,
													3,
													false,
													null
													,3
												]
											]
,											[
												0,
												[
													0,
													1
												]
											]
,											[
												7,
												[
													2,
													"RDC"
												]
											]
											]
										]
,										[
											-1,
											cr.system_object.prototype.acts.AddVar,
											null,
											173596420082495,
											false
											,[
											[
												11,
												"NUM_CELL_GEN"
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
,										[
											249,
											cr.plugins_.Function.prototype.acts.CallFunction,
											null,
											1311474297418386,
											false
											,[
											[
												1,
												[
													2,
													"redrawCells"
												]
											]
,											[
												13,
											]
											]
										]
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								237581811431943,
								[
								],
								[
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							1373469866371749,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								1180940296150404,
								false
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								9798182796699427,
								false
								,[
								[
									1,
									[
										2,
										"injectCellAtRandomEmptyCell"
									]
								]
,								[
									13,
																			[
											7,
											[
												0,
												1
											]
										]
,
										[
											7,
											[
												2,
												"RDC"
											]
										]
,
										[
											7,
											[
												20,
												249,
												cr.plugins_.Function.prototype.exps.Param,
												false,
												null
												,[
[
													0,
													1
												]
												]
											]
										]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.AddVar,
								null,
								4781437203327345,
								false
								,[
								[
									11,
									"NUM_CELL_GEN"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
,							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								5850269034652184,
								false
								,[
								[
									1,
									[
										2,
										"redrawCells"
									]
								]
,								[
									13,
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							566916924050435,
							[
							],
							[
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2381482895173653,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					8133847950553811,
					false
					,[
					[
						1,
						[
							2,
							"injectCellAtSpecificEmptyCell"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"CUR_RANDOM_X",
					0,
					0,
false,false,6373214199147422,false
				]
,				[
					1,
					"CUR_RANDOM_Y",
					0,
					0,
false,false,3874005173528385,false
				]
,				[
					0,
					null,
					false,
					null,
					6305823390778842,
					[
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						1471885540189898,
						false
						,[
						[
							11,
							"CUR_RANDOM_X"
						]
,						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						6928912920389449,
						false
						,[
						[
							11,
							"CUR_RANDOM_Y"
						]
,						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									1
								]
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						8582333892053881,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.CompareXYZ,
							null,
							0,
							false,
							false,
							false,
							1591671808542973,
							false
							,[
							[
								0,
								[
									23,
									"CUR_RANDOM_X"
								]
							]
,							[
								0,
								[
									23,
									"CUR_RANDOM_Y"
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"E"
								]
							]
							]
						]
						],
						[
						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							796627628166511,
							false
							,[
							[
								0,
								[
									23,
									"CUR_RANDOM_X"
								]
							]
,							[
								0,
								[
									23,
									"CUR_RANDOM_Y"
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										3
									]
									]
								]
							]
							]
						]
,						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							2925954920583327,
							false
							,[
							[
								0,
								[
									23,
									"CUR_RANDOM_X"
								]
							]
,							[
								0,
								[
									23,
									"CUR_RANDOM_Y"
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										2
									]
									]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				7393316002588121,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5571740740930614,
					false
					,[
					[
						1,
						[
							2,
							"resetCellAtSpecificPos"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"CUR_RANDOM_X",
					0,
					0,
false,false,5588990590050424,false
				]
,				[
					1,
					"CUR_RANDOM_Y",
					0,
					0,
false,false,4348187788359245,false
				]
,				[
					1,
					"CUR_CELL_STATE",
					1,
					"N",
false,false,1307975951523104,false
				]
,				[
					1,
					"CUR_TEMP_STATEX",
					1,
					"\"\"",
false,false,3312464043447889,false
				]
,				[
					1,
					"CUR_TEMP_STATEY",
					1,
					"\"\"",
false,false,611034824451445,false
				]
,				[
					0,
					null,
					false,
					null,
					5768185350940703,
					[
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						2158925917889079,
						false
						,[
						[
							11,
							"CUR_RANDOM_X"
						]
,						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						7691799970538793,
						false
						,[
						[
							11,
							"CUR_RANDOM_Y"
						]
,						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									1
								]
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						2220326836788406,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.CompareParam,
							null,
							0,
							false,
							false,
							false,
							7331868487562346,
							false
							,[
							[
								0,
								[
									0,
									4
								]
							]
,							[
								8,
								1
							]
,							[
								7,
								[
									2,
									""
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							902914715153709,
							false
							,[
							[
								11,
								"CUR_CELL_STATE"
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										4
									]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						2209595079886596,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.CompareParam,
							null,
							0,
							false,
							false,
							false,
							9909662147311522,
							false
							,[
							[
								0,
								[
									0,
									5
								]
							]
,							[
								8,
								1
							]
,							[
								7,
								[
									2,
									""
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							6812329840063713,
							false
							,[
							[
								11,
								"CUR_TEMP_STATEX"
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										5
									]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						9164815640809669,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.CompareParam,
							null,
							0,
							false,
							false,
							false,
							5852825320862341,
							false
							,[
							[
								0,
								[
									0,
									6
								]
							]
,							[
								8,
								1
							]
,							[
								7,
								[
									2,
									""
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4007366258332299,
							false
							,[
							[
								11,
								"CUR_TEMP_STATEX"
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										6
									]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						8576260152726412,
						[
						],
						[
						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							3339465949174687,
							false
							,[
							[
								0,
								[
									23,
									"CUR_RANDOM_X"
								]
							]
,							[
								0,
								[
									23,
									"CUR_RANDOM_Y"
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										3
									]
									]
								]
							]
							]
						]
,						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							8503062155213724,
							false
							,[
							[
								0,
								[
									23,
									"CUR_RANDOM_X"
								]
							]
,							[
								0,
								[
									23,
									"CUR_RANDOM_Y"
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										2
									]
									]
								]
							]
							]
						]
,						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							8251955767422495,
							false
							,[
							[
								0,
								[
									23,
									"CUR_RANDOM_X"
								]
							]
,							[
								0,
								[
									23,
									"CUR_RANDOM_Y"
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								7,
								[
									23,
									"CUR_CELL_STATE"
								]
							]
							]
						]
,						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9991557927653963,
							false
							,[
							[
								0,
								[
									23,
									"CUR_RANDOM_X"
								]
							]
,							[
								0,
								[
									23,
									"CUR_RANDOM_Y"
								]
							]
,							[
								0,
								[
									0,
									4
								]
							]
,							[
								7,
								[
									23,
									"CUR_TEMP_STATEX"
								]
							]
							]
						]
,						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							3255945466904321,
							false
							,[
							[
								0,
								[
									23,
									"CUR_RANDOM_X"
								]
							]
,							[
								0,
								[
									23,
									"CUR_RANDOM_Y"
								]
							]
,							[
								0,
								[
									0,
									5
								]
							]
,							[
								7,
								[
									23,
									"CUR_TEMP_STATEY"
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4492580472116883,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5022921192527579,
					false
					,[
					[
						1,
						[
							2,
							"highlightAdjacentCells"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					3603408450105531,
					[
					[
						0,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						3395453560489416,
						false
						,[
						[
							3,
							1
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						4378833153854283,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							5628497953330326,
							false
							,[
							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
,[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurY,
										false,
										null
									]
,[
										0,
										3
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"H"
								]
							]
							]
						]
						],
						[
						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9516276338272027,
							false
							,[
							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurY,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								7,
								[
									2,
									""
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9953720447667032,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						1751220380878899,
						false
						,[
						[
							7,
							[
								20,
								0,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										2
									]
									]
								]
,[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										3
									]
									]
								]
,[
									0,
									1
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"GPC"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						2009362276073362,
						[
						[
							11,
							cr.plugins_.Sprite.prototype.cnds.PickDistance,
							null,
							0,
							false,
							false,
							true,
							3060295252980552,
							false
							,[
							[
								3,
								0
							]
,							[
								0,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								0,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										1
									]
									]
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							9985772011843353,
							[
							[
								-1,
								cr.system_object.prototype.cnds.ForEach,
								null,
								0,
								true,
								false,
								false,
								8600072224517833,
								false
								,[
								[
									4,
									3
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								426729517937945,
								[
								[
									3,
									cr.plugins_.Sprite.prototype.cnds.IsOverlapping,
									null,
									0,
									false,
									false,
									false,
									2732651441437473,
									false
									,[
									[
										4,
										11
									]
									]
								]
								],
								[
								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									6902060593685096,
									false
									,[
									[
										0,
										[
											21,
											3,
											false,
											null
											,2
										]
									]
,									[
										0,
										[
											21,
											3,
											false,
											null
											,3
										]
									]
,									[
										0,
										[
											0,
											3
										]
									]
,									[
										7,
										[
											2,
											"H"
										]
									]
									]
								]
,								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									66278997989117,
									false
									,[
									[
										0,
										[
											21,
											3,
											false,
											null
											,2
										]
									]
,									[
										0,
										[
											21,
											3,
											false,
											null
											,3
										]
									]
,									[
										0,
										[
											0,
											4
										]
									]
,									[
										7,
										[
											21,
											10,
											false,
											null
											,2
										]
									]
									]
								]
,								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									9661897195668369,
									false
									,[
									[
										0,
										[
											21,
											3,
											false,
											null
											,2
										]
									]
,									[
										0,
										[
											21,
											3,
											false,
											null
											,3
										]
									]
,									[
										0,
										[
											0,
											5
										]
									]
,									[
										7,
										[
											21,
											10,
											false,
											null
											,3
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							8032066195966437,
							[
							[
								-1,
								cr.system_object.prototype.cnds.ForEach,
								null,
								0,
								true,
								false,
								false,
								5848430009792684,
								false
								,[
								[
									4,
									44
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								9609038850134745,
								[
								[
									44,
									cr.plugins_.Sprite.prototype.cnds.IsOverlapping,
									null,
									0,
									false,
									false,
									false,
									5450146556216303,
									false
									,[
									[
										4,
										11
									]
									]
								]
								],
								[
								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									7728998887866304,
									false
									,[
									[
										0,
										[
											21,
											44,
											false,
											null
											,2
										]
									]
,									[
										0,
										[
											21,
											44,
											false,
											null
											,3
										]
									]
,									[
										0,
										[
											0,
											3
										]
									]
,									[
										7,
										[
											2,
											"H"
										]
									]
									]
								]
,								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									8902805790602595,
									false
									,[
									[
										0,
										[
											21,
											44,
											false,
											null
											,2
										]
									]
,									[
										0,
										[
											21,
											44,
											false,
											null
											,3
										]
									]
,									[
										0,
										[
											0,
											4
										]
									]
,									[
										7,
										[
											21,
											10,
											false,
											null
											,2
										]
									]
									]
								]
,								[
									0,
									cr.plugins_.Arr.prototype.acts.SetXYZ,
									null,
									5401501236768135,
									false
									,[
									[
										0,
										[
											21,
											44,
											false,
											null
											,2
										]
									]
,									[
										0,
										[
											21,
											44,
											false,
											null
											,3
										]
									]
,									[
										0,
										[
											0,
											5
										]
									]
,									[
										7,
										[
											21,
											10,
											false,
											null
											,3
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							5172026070246787,
							[
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								6633369032184772,
								false
								,[
								[
									1,
									[
										2,
										"redrawCells"
									]
								]
,								[
									13,
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4211121347111721,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						1870443123723764,
						false
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						6912511076878701,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3477917951822064,
							false
							,[
							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											2
										]
										]
									]
,[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											3
										]
										]
									]
,[
										0,
										1
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"BMC"
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							4543364326421722,
							[
							[
								6,
								cr.plugins_.Sprite.prototype.cnds.PickDistance,
								null,
								0,
								false,
								false,
								true,
								1303078241904088,
								false
								,[
								[
									3,
									0
								]
,								[
									0,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											0
										]
										]
									]
								]
,								[
									0,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											1
										]
										]
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								6276249772112582,
								[
								[
									-1,
									cr.system_object.prototype.cnds.ForEach,
									null,
									0,
									true,
									false,
									false,
									6630459861673747,
									false
									,[
									[
										4,
										3
									]
									]
								]
								],
								[
								]
								,[
								[
									0,
									null,
									false,
									null,
									8169568355905131,
									[
									[
										3,
										cr.plugins_.Sprite.prototype.cnds.IsOverlapping,
										null,
										0,
										false,
										false,
										false,
										8048913763931288,
										false
										,[
										[
											4,
											6
										]
										]
									]
									],
									[
									[
										0,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										6213894065444988,
										false
										,[
										[
											0,
											[
												21,
												3,
												false,
												null
												,2
											]
										]
,										[
											0,
											[
												21,
												3,
												false,
												null
												,3
											]
										]
,										[
											0,
											[
												0,
												3
											]
										]
,										[
											7,
											[
												2,
												"H"
											]
										]
										]
									]
,									[
										0,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										1552961470285777,
										false
										,[
										[
											0,
											[
												21,
												3,
												false,
												null
												,2
											]
										]
,										[
											0,
											[
												21,
												3,
												false,
												null
												,3
											]
										]
,										[
											0,
											[
												0,
												4
											]
										]
,										[
											7,
											[
												21,
												5,
												false,
												null
												,2
											]
										]
										]
									]
,									[
										0,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										8869727364589102,
										false
										,[
										[
											0,
											[
												21,
												3,
												false,
												null
												,2
											]
										]
,										[
											0,
											[
												21,
												3,
												false,
												null
												,3
											]
										]
,										[
											0,
											[
												0,
												5
											]
										]
,										[
											7,
											[
												21,
												5,
												false,
												null
												,3
											]
										]
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								959314632750464,
								[
								[
									-1,
									cr.system_object.prototype.cnds.ForEach,
									null,
									0,
									true,
									false,
									false,
									3184276963750821,
									false
									,[
									[
										4,
										44
									]
									]
								]
								],
								[
								]
								,[
								[
									0,
									null,
									false,
									null,
									6440300564190258,
									[
									[
										44,
										cr.plugins_.Sprite.prototype.cnds.IsOverlapping,
										null,
										0,
										false,
										false,
										false,
										4191002176390224,
										false
										,[
										[
											4,
											6
										]
										]
									]
									],
									[
									[
										0,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										7352268924688304,
										false
										,[
										[
											0,
											[
												21,
												44,
												false,
												null
												,2
											]
										]
,										[
											0,
											[
												21,
												44,
												false,
												null
												,3
											]
										]
,										[
											0,
											[
												0,
												3
											]
										]
,										[
											7,
											[
												2,
												"H"
											]
										]
										]
									]
,									[
										0,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										9067411457550442,
										false
										,[
										[
											0,
											[
												21,
												44,
												false,
												null
												,2
											]
										]
,										[
											0,
											[
												21,
												44,
												false,
												null
												,3
											]
										]
,										[
											0,
											[
												0,
												4
											]
										]
,										[
											7,
											[
												21,
												5,
												false,
												null
												,2
											]
										]
										]
									]
,									[
										0,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										3668594128576872,
										false
										,[
										[
											0,
											[
												21,
												44,
												false,
												null
												,2
											]
										]
,										[
											0,
											[
												21,
												44,
												false,
												null
												,3
											]
										]
,										[
											0,
											[
												0,
												5
											]
										]
,										[
											7,
											[
												21,
												5,
												false,
												null
												,3
											]
										]
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								1898008316146392,
								[
								],
								[
								[
									249,
									cr.plugins_.Function.prototype.acts.CallFunction,
									null,
									126836052849236,
									false
									,[
									[
										1,
										[
											2,
											"redrawCells"
										]
									]
,									[
										13,
									]
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				451891001124196,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					8393929351955513,
					false
					,[
					[
						1,
						[
							2,
							"addARandomBMC"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"randomBMCCell",
					0,
					0,
false,false,6823526222790541,false
				]
,				[
					0,
					null,
					false,
					null,
					319816481184573,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						5690852381315133,
						false
						,[
						[
							1,
							[
								2,
								"resetTempActiveBoard"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6888168239185717,
					[
					[
						0,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						6846415261390835,
						false
						,[
						[
							3,
							1
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						9173125725426221,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.CompareXYZ,
							null,
							0,
							false,
							false,
							false,
							517179029834807,
							false
							,[
							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurY,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"E"
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							true,
							null,
							5299826077596712,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								9677634421492268,
								false
								,[
								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								5432294661380601,
								false
								,[
								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										5,
										[
											23,
											"NUM_OF_COLS"
										]
										,[
											0,
											1
										]
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								2660765750848281,
								false
								,[
								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurY,
										false,
										null
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								7452726188014903,
								false
								,[
								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurY,
										false,
										null
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										5,
										[
											23,
											"NUM_OF_ROWS"
										]
										,[
											0,
											1
										]
									]
								]
								]
							]
							],
							[
							[
								70,
								cr.plugins_.Arr.prototype.acts.SetXYZ,
								null,
								4487030326830136,
								false
								,[
								[
									0,
									[
										23,
										"tempActiveBoardSize"
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
								]
							]
,							[
								70,
								cr.plugins_.Arr.prototype.acts.SetXYZ,
								null,
								8875252555591276,
								false
								,[
								[
									0,
									[
										23,
										"tempActiveBoardSize"
									]
								]
,								[
									0,
									[
										0,
										1
									]
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									7,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.CurY,
										false,
										null
									]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.AddVar,
								null,
								5553680683659123,
								false
								,[
								[
									11,
									"tempActiveBoardSize"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8390443357146973,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						5184009043567778,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										20,
										70,
										cr.plugins_.Arr.prototype.exps.AsJSON,
										true,
										null
									]
								]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7258167540934304,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						3599297227685924,
						false
						,[
						[
							7,
							[
								23,
								"tempActiveBoardSize"
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4440982383883744,
						false
						,[
						[
							11,
							"randomBMCCell"
						]
,						[
							7,
							[
								19,
								cr.system_object.prototype.exps.floor
								,[
[
									19,
									cr.system_object.prototype.exps.random
									,[
[
										0,
										0
									]
,[
										5,
										[
											23,
											"tempActiveBoardSize"
										]
										,[
											0,
											1
										]
									]
									]
								]
								]
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4143276945271362,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtSpecificEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										20,
										70,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"randomBMCCell"
										]
,[
											0,
											0
										]
,[
											0,
											0
										]
										]
									]
								]
,
								[
									7,
									[
										20,
										70,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"randomBMCCell"
										]
,[
											0,
											1
										]
,[
											0,
											0
										]
										]
									]
								]
,
								[
									7,
									[
										2,
										"BMC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8575367407800645,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						7362798756559012,
						false
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4433476702237767,
						false
						,[
						[
							1,
							[
								2,
								"injectCellAtRandomEmptyCell"
							]
						]
,						[
							13,
															[
									7,
									[
										0,
										1
									]
								]
,
								[
									7,
									[
										2,
										"BMC"
									]
								]
,
								[
									7,
									[
										0,
										5
									]
								]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				9741098420436301,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					2884939320846275,
					false
					,[
					[
						1,
						[
							2,
							"resetTempActiveBoard"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					4282410343770004,
					[
					[
						70,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						9660886557332872,
						false
						,[
						[
							3,
							1
						]
						]
					]
					],
					[
					[
						70,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						3588972721939543,
						false
						,[
						[
							0,
							[
								20,
								70,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								70,
								cr.plugins_.Arr.prototype.exps.CurY,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								2,
								""
							]
						]
						]
					]
,					[
						70,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						1203058863691662,
						false
						,[
						[
							0,
							[
								20,
								70,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								70,
								cr.plugins_.Arr.prototype.exps.CurY,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							7,
							[
								2,
								""
							]
						]
						]
					]
,					[
						70,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						1972982247436189,
						false
						,[
						[
							0,
							[
								20,
								70,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								70,
								cr.plugins_.Arr.prototype.exps.CurY,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								2
							]
						]
,						[
							7,
							[
								2,
								""
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						6925974600824375,
						false
						,[
						[
							11,
							"tempActiveBoardSize"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1841457002756108,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					4216969183275165,
					false
					,[
					[
						1,
						[
							2,
							"highlightMoveGPCToNewLocation"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"isFight",
					0,
					0,
false,false,3294270839137463,false
				]
,				[
					1,
					"moveDone",
					0,
					0,
false,false,5471569312288909,false
				]
,				[
					1,
					"oldCellXVal",
					0,
					0,
false,false,3846066531954195,false
				]
,				[
					1,
					"oldCellYVal",
					0,
					0,
false,false,6522457331401557,false
				]
,				[
					1,
					"oldCellType",
					1,
					"",
false,false,7082980392658294,false
				]
,				[
					1,
					"newCellType",
					1,
					"",
false,false,7107085265126227,false
				]
,				[
					1,
					"winCellType",
					0,
					0,
false,false,3306038510770748,false
				]
,				[
					0,
					null,
					false,
					null,
					6845647212067395,
					[
					[
						0,
						cr.plugins_.Arr.prototype.cnds.CompareXYZ,
						null,
						0,
						false,
						false,
						false,
						4681036339738351,
						false
						,[
						[
							0,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							0,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									1
								]
								]
							]
						]
,						[
							0,
							[
								0,
								3
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"H"
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						8740513300159307,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										10,
										[
											10,
											[
												10,
												[
													2,
													"NEW: "
												]
												,[
													20,
													249,
													cr.plugins_.Function.prototype.exps.Param,
													false,
													null
													,[
[
														0,
														0
													]
													]
												]
											]
											,[
												2,
												","
											]
										]
										,[
											20,
											249,
											cr.plugins_.Function.prototype.exps.Param,
											false,
											null
											,[
[
												0,
												1
											]
											]
										]
									]
								]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						7675251123783103,
						false
						,[
						[
							11,
							"moveDone"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
					,[
					[
						1,
						"oldCellX",
						0,
						0,
false,false,66898683210826,false
					]
,					[
						1,
						"oldCellY",
						0,
						0,
false,false,1956444668384775,false
					]
,					[
						1,
						"newCellX",
						0,
						0,
false,false,4603147078408122,false
					]
,					[
						1,
						"newCellY",
						0,
						0,
false,false,7496427255702214,false
					]
,					[
						1,
						"newCellPower",
						0,
						0,
false,false,7873137906261417,false
					]
,					[
						1,
						"oldCellPower",
						0,
						0,
false,false,1519256507754881,false
					]
,					[
						0,
						null,
						false,
						null,
						3186338295469632,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8178518495119558,
							false
							,[
							[
								11,
								"oldCellX"
							]
,							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											0
										]
										]
									]
,[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											1
										]
										]
									]
,[
										0,
										4
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4547323482043671,
							false
							,[
							[
								11,
								"oldCellY"
							]
,							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											0
										]
										]
									]
,[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											1
										]
										]
									]
,[
										0,
										5
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8959636660013547,
							false
							,[
							[
								11,
								"oldCellPower"
							]
,							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"oldCellX"
									]
,[
										23,
										"oldCellY"
									]
,[
										0,
										2
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							237397462126112,
							false
							,[
							[
								11,
								"oldCellType"
							]
,							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"oldCellX"
									]
,[
										23,
										"oldCellY"
									]
,[
										0,
										1
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4810099571186637,
							false
							,[
							[
								11,
								"oldCellXVal"
							]
,							[
								7,
								[
									23,
									"oldCellX"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							3327618994861336,
							false
							,[
							[
								11,
								"oldCellYVal"
							]
,							[
								7,
								[
									23,
									"oldCellY"
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4445621204085608,
							false
							,[
							[
								11,
								"newCellX"
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							398430172890571,
							false
							,[
							[
								11,
								"newCellY"
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										1
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2141827687507435,
							false
							,[
							[
								11,
								"newCellPower"
							]
,							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"newCellX"
									]
,[
										23,
										"newCellY"
									]
,[
										0,
										2
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							998001141442599,
							false
							,[
							[
								11,
								"newCellType"
							]
,							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"newCellX"
									]
,[
										23,
										"newCellY"
									]
,[
										0,
										1
									]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6410441987494003,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							1034773104540796,
							false
							,[
							[
								7,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"newCellX"
									]
,[
										23,
										"newCellY"
									]
,[
										0,
										1
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"RDC"
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							5562836282466564,
							false
							,[
							[
								11,
								"isFight"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7676332214259923,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												2,
												"isFight:"
											]
											,[
												23,
												"isFight"
											]
										]
									]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							9564594835016703,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								1913180476286413,
								false
								,[
								[
									7,
									[
										23,
										"newCellPower"
									]
								]
,								[
									8,
									4
								]
,								[
									7,
									[
										23,
										"oldCellPower"
									]
								]
								]
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								7932889452321552,
								false
								,[
								[
									1,
									[
										2,
										"resetCellAtSpecificPos"
									]
								]
,								[
									13,
																			[
											7,
											[
												23,
												"newCellX"
											]
										]
,
										[
											7,
											[
												23,
												"newCellY"
											]
										]
,
										[
											7,
											[
												2,
												"RDC"
											]
										]
,
										[
											7,
											[
												5,
												[
													23,
													"newCellPower"
												]
												,[
													23,
													"oldCellPower"
												]
											]
										]
,
										[
											7,
											[
												2,
												"M"
											]
										]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								4622190163602818,
								false
								,[
								[
									11,
									"winCellType"
								]
,								[
									7,
									[
										0,
										2
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							8086826987450196,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								5140327590607796,
								false
							]
,							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								5149159246589261,
								false
								,[
								[
									7,
									[
										23,
										"newCellPower"
									]
								]
,								[
									8,
									2
								]
,								[
									7,
									[
										23,
										"oldCellPower"
									]
								]
								]
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								4834832441351546,
								false
								,[
								[
									1,
									[
										2,
										"resetCellAtSpecificPos"
									]
								]
,								[
									13,
																			[
											7,
											[
												23,
												"newCellX"
											]
										]
,
										[
											7,
											[
												23,
												"newCellY"
											]
										]
,
										[
											7,
											[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.At,
												false,
												null
												,[
[
													23,
													"oldCellX"
												]
,[
													23,
													"oldCellY"
												]
,[
													0,
													1
												]
												]
											]
										]
,
										[
											7,
											[
												5,
												[
													23,
													"oldCellPower"
												]
												,[
													23,
													"newCellPower"
												]
											]
										]
,
										[
											7,
											[
												2,
												"M"
											]
										]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								9189245528024671,
								false
								,[
								[
									11,
									"winCellType"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							1959321480812458,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								6066895687096852,
								false
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								8697772975076408,
								false
								,[
								[
									1,
									[
										2,
										"resetCellAtSpecificPos"
									]
								]
,								[
									13,
																			[
											7,
											[
												23,
												"newCellX"
											]
										]
,
										[
											7,
											[
												23,
												"newCellY"
											]
										]
,
										[
											7,
											[
												2,
												"E"
											]
										]
,
										[
											7,
											[
												0,
												0
											]
										]
,
										[
											7,
											[
												2,
												"M"
											]
										]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								6505109080626076,
								false
								,[
								[
									11,
									"winCellType"
								]
,								[
									7,
									[
										0,
										3
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						2221002514454477,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							5555613381875049,
							false
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7205034840234036,
							false
							,[
							[
								1,
								[
									2,
									"resetCellAtSpecificPos"
								]
							]
,							[
								13,
																	[
										7,
										[
											23,
											"newCellX"
										]
									]
,
									[
										7,
										[
											23,
											"newCellY"
										]
									]
,
									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"oldCellX"
											]
,[
												23,
												"oldCellY"
											]
,[
												0,
												1
											]
											]
										]
									]
,
									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"oldCellX"
											]
,[
												23,
												"oldCellY"
											]
,[
												0,
												2
											]
											]
										]
									]
,
									[
										7,
										[
											2,
											"M"
										]
									]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						8454059712837902,
						[
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							4692317437592296,
							false
							,[
							[
								1,
								[
									2,
									"resetCellAtSpecificPos"
								]
							]
,							[
								13,
																	[
										7,
										[
											23,
											"oldCellX"
										]
									]
,
									[
										7,
										[
											23,
											"oldCellY"
										]
									]
,
									[
										7,
										[
											2,
											"E"
										]
									]
,
									[
										7,
										[
											2,
											""
										]
									]
,
									[
										7,
										[
											2,
											"N"
										]
									]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3265589642349799,
					[
					[
						0,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						1904867413514528,
						false
						,[
						[
							3,
							1
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						4962104552337923,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.CompareXYZ,
							null,
							0,
							false,
							false,
							false,
							7459479788169536,
							false
							,[
							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurY,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"H"
								]
							]
							]
						]
						],
						[
						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							7947059520458564,
							false
							,[
							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurY,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								7,
								[
									2,
									"N"
								]
							]
							]
						]
,						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							4409180425597076,
							false
							,[
							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurY,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									4
								]
							]
,							[
								7,
								[
									2,
									""
								]
							]
							]
						]
,						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9407049430308433,
							false
							,[
							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									20,
									0,
									cr.plugins_.Arr.prototype.exps.CurY,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									5
								]
							]
,							[
								7,
								[
									2,
									""
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4134555267834546,
					[
					],
					[
					]
				]
,				[
					0,
					null,
					false,
					null,
					2849818301704747,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5129726303382767,
						false
						,[
						[
							7,
							[
								23,
								"moveDone"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						7672372859684375,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										10,
										[
											2,
											"Moved Cell:"
										]
										,[
											23,
											"moveDone"
										]
									]
								]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						7269203638488853,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										10,
										[
											2,
											"Moved Cell:"
										]
										,[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												249,
												cr.plugins_.Function.prototype.exps.Param,
												false,
												null
												,[
[
													0,
													0
												]
												]
											]
,[
												20,
												249,
												cr.plugins_.Function.prototype.exps.Param,
												false,
												null
												,[
[
													0,
													1
												]
												]
											]
,[
												0,
												1
											]
											]
										]
									]
								]
						]
						]
					]
					]
					,[
					[
						1,
						"ROW_EVEN",
						0,
						0,
false,false,7487135203583345,false
					]
,					[
						1,
						"POS_X",
						0,
						0,
false,false,5285692896460891,false
					]
,					[
						1,
						"POS_Y",
						0,
						0,
false,false,741403992198054,false
					]
,					[
						1,
						"oldCellPosX",
						0,
						0,
false,false,3355442068950826,false
					]
,					[
						1,
						"oldCellPosY",
						0,
						0,
false,false,4584134411051725,false
					]
,					[
						0,
						null,
						false,
						null,
						8964017795470164,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							5785059290639184,
							false
							,[
							[
								11,
								"ROW_EVEN"
							]
,							[
								7,
								[
									8,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											1
										]
										]
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							3928839860912847,
							false
							,[
							[
								11,
								"oldCellPosX"
							]
,							[
								7,
								[
									4,
									[
										4,
										[
											23,
											"ACTIVE_CELL_LEFT"
										]
										,[
											6,
											[
												23,
												"ROW_EVEN"
											]
											,[
												23,
												"EVEN_ROW_DISPLACEMENT"
											]
										]
									]
									,[
										6,
										[
											23,
											"oldCellXVal"
										]
										,[
											23,
											"CELL_WIDTH"
										]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9747028293028891,
							false
							,[
							[
								11,
								"oldCellPosY"
							]
,							[
								7,
								[
									4,
									[
										23,
										"ACTIVE_CELL_TOP"
									]
									,[
										6,
										[
											23,
											"oldCellYVal"
										]
										,[
											23,
											"CELL_HEIGHT"
										]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4253679451526944,
							false
							,[
							[
								11,
								"POS_X"
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										2
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4708688409083529,
							false
							,[
							[
								11,
								"POS_Y"
							]
,							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										3
									]
									]
								]
							]
							]
						]
,						[
							251,
							cr.plugins_.Audio.prototype.acts.Play,
							null,
							9216299660520205,
							false
							,[
							[
								2,
								["platoon-move",false]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"platoon-move"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						413993953168132,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4233662530443837,
							false
							,[
							[
								7,
								[
									23,
									"oldCellType"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"GPC"
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							2291302435588246,
							[
							[
								10,
								cr.plugins_.Sprite.prototype.cnds.PickDistance,
								null,
								0,
								false,
								false,
								true,
								8435289290534547,
								false
								,[
								[
									3,
									0
								]
,								[
									0,
									[
										23,
										"oldCellPosX"
									]
								]
,								[
									0,
									[
										23,
										"oldCellPosY"
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								5843956856176933,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									1426653127801464,
									false
									,[
									[
										7,
										[
											23,
											"isFight"
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								],
								[
								[
									10,
									cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
									null,
									7514393530924279,
									false
									,[
									[
										10,
										4
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								8872642426992911,
								[
								],
								[
								[
									10,
									cr.plugins_.Sprite.prototype.acts.Spawn,
									null,
									6608661802628212,
									false
									,[
									[
										4,
										51
									]
,									[
										5,
										[
											2,
											"base_layer"
										]
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									10,
									cr.plugins_.Sprite.prototype.acts.Spawn,
									null,
									9680910010513763,
									false
									,[
									[
										4,
										3
									]
,									[
										5,
										[
											2,
											"base_layer"
										]
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									51,
									cr.plugins_.Sprite.prototype.acts.SetPos,
									null,
									8038777515534961,
									false
									,[
									[
										0,
										[
											23,
											"POS_X"
										]
									]
,									[
										0,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
,								[
									10,
									cr.behaviors.custom.prototype.acts.AccelerateAngle,
									"CustomMovement",
									6933439652709034,
									false
									,[
									[
										0,
										[
											0,
											1
										]
									]
,									[
										0,
										[
											19,
											cr.system_object.prototype.exps.angle
											,[
[
												20,
												10,
												cr.plugins_.Sprite.prototype.exps.X,
												false,
												null
											]
,[
												20,
												10,
												cr.plugins_.Sprite.prototype.exps.Y,
												false,
												null
											]
,[
												23,
												"POS_X"
											]
,[
												23,
												"POS_Y"
											]
											]
										]
									]
									]
								]
,								[
									10,
									cr.behaviors.custom.prototype.acts.SetSpeed,
									"CustomMovement",
									8750466692815109,
									false
									,[
									[
										3,
										0
									]
,									[
										0,
										[
											0,
											200
										]
									]
									]
								]
,								[
									10,
									cr.behaviors.custom.prototype.acts.SetSpeed,
									"CustomMovement",
									747738417431475,
									false
									,[
									[
										3,
										0
									]
,									[
										0,
										[
											0,
											200
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6288824089519048,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							9917561806783669,
							false
							,[
							[
								7,
								[
									23,
									"oldCellType"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"BMC"
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							9532137126135662,
							[
							[
								5,
								cr.plugins_.Sprite.prototype.cnds.PickDistance,
								null,
								0,
								false,
								false,
								true,
								5056048588957137,
								false
								,[
								[
									3,
									0
								]
,								[
									0,
									[
										23,
										"oldCellPosX"
									]
								]
,								[
									0,
									[
										23,
										"oldCellPosY"
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								6668958221581597,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									9559157034734879,
									false
									,[
									[
										7,
										[
											23,
											"isFight"
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								],
								[
								[
									5,
									cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
									null,
									2357435372428436,
									false
									,[
									[
										10,
										4
									]
,									[
										7,
										[
											23,
											"winCellType"
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								3926913218731636,
								[
								],
								[
								[
									5,
									cr.plugins_.Sprite.prototype.acts.Spawn,
									null,
									6009299949605726,
									false
									,[
									[
										4,
										3
									]
,									[
										5,
										[
											2,
											"base_layer"
										]
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									5,
									cr.plugins_.Sprite.prototype.acts.Spawn,
									null,
									9675143453274232,
									false
									,[
									[
										4,
										51
									]
,									[
										5,
										[
											2,
											"base_layer"
										]
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									51,
									cr.plugins_.Sprite.prototype.acts.SetPos,
									null,
									2872795853067513,
									false
									,[
									[
										0,
										[
											23,
											"POS_X"
										]
									]
,									[
										0,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
,								[
									5,
									cr.behaviors.custom.prototype.acts.AcceleratePos,
									"CustomMovement",
									1973582742673412,
									false
									,[
									[
										0,
										[
											0,
											1
										]
									]
,									[
										0,
										[
											23,
											"POS_X"
										]
									]
,									[
										0,
										[
											23,
											"POS_Y"
										]
									]
									]
								]
,								[
									5,
									cr.behaviors.custom.prototype.acts.SetSpeed,
									"CustomMovement",
									3180805051635459,
									false
									,[
									[
										3,
										0
									]
,									[
										0,
										[
											0,
											200
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1751622057946279,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4560652797398781,
							false
							,[
							[
								7,
								[
									23,
									"newCellType"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"RDC"
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							54193173529717,
							[
							[
								44,
								cr.plugins_.Sprite.prototype.cnds.PickDistance,
								null,
								0,
								false,
								false,
								true,
								7569369698994459,
								false
								,[
								[
									3,
									0
								]
,								[
									0,
									[
										23,
										"POS_X"
									]
								]
,								[
									0,
									[
										23,
										"POS_Y"
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								926878945140735,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									6269579243450121,
									false
									,[
									[
										7,
										[
											23,
											"isFight"
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								],
								[
								[
									44,
									cr.plugins_.Sprite.prototype.acts.Spawn,
									null,
									1351210446177861,
									false
									,[
									[
										4,
										3
									]
,									[
										5,
										[
											2,
											"base_layer"
										]
									]
,									[
										7,
										[
											0,
											0
										]
									]
									]
								]
,								[
									44,
									cr.behaviors.Fade.prototype.acts.StartFade,
									"Fade",
									4242282402319001,
									false
								]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				313669517534051,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5472521555044064,
					false
					,[
					[
						1,
						[
							2,
							"disableModes"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					4240866970877387,
					false
					,[
					[
						11,
						"mode_cellsActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					1346468781218557,
					false
					,[
					[
						11,
						"mode_drugPlacementActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					8313379408579794,
					false
					,[
					[
						11,
						"mode_qaActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					7467341814867904,
					false
					,[
					[
						11,
						"mode_GPCAddActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					1652598178685888,
					false
					,[
					[
						11,
						"mode_BMCDrugYesNo"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					3751193504266648,
					false
					,[
					[
						11,
						"mode_BMCAddActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					4650600378463884,
					false
					,[
					[
						11,
						"mode_BMCAddRandom"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					9937318474777278,
					false
					,[
					[
						11,
						"mode_gameLevelInfoActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					6555545219209472,
					false
					,[
					[
						11,
						"mode_gameOverActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					4443891560163982,
					false
					,[
					[
						11,
						"mode_QAResearchActive"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					7252559615097385,
					false
					,[
					[
						11,
						"mode_BMCAddNoBBC"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					8981393090999991,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7381882100517577,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						15,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						4699887981567987,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									1
								]
								]
							]
						]
						]
					]
,					[
						58,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						5445741679882644,
						false
						,[
						[
							0,
							[
								4,
								[
									5,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxRight,
										false,
										null
									]
									,[
										7,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxLeft,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
								,[
									7,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
									,[
										0,
										2
									]
								]
							]
						]
,						[
							0,
							[
								5,
								[
									5,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
								]
								,[
									0,
									20
								]
							]
						]
						]
					]
,					[
						18,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						6212388356434231,
						false
						,[
						[
							7,
							[
								2,
								"OK"
							]
						]
						]
					]
,					[
						18,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						246019176442085,
						false
						,[
						[
							0,
							[
								20,
								58,
								cr.plugins_.Sprite.prototype.exps.BBoxLeft,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								58,
								cr.plugins_.Sprite.prototype.exps.BBoxTop,
								false,
								null
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Functions for Message Box"],
				false,
				null,
				4295966112791438,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					4295966112791438,
					false
					,[
					[
						1,
						[
							2,
							"Functions for Message Box"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					1780797311567465,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						877922259197257,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
						]
					]
					],
					[
					[
						54,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						4164852010209904,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						54,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						1682211056395281,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
,						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						60,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						9020379914483851,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						60,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						3354379238357701,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
,						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						61,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						3620055877405035,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						61,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						7931583742997843,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
,						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						15,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						4329686278853939,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
,						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						58,
						cr.plugins_.Sprite.prototype.acts.SetX,
						null,
						5365272195943265,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						55,
						cr.plugins_.Sprite.prototype.acts.SetX,
						null,
						9424558619024676,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						57,
						cr.plugins_.Sprite.prototype.acts.SetX,
						null,
						7143582954664149,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						18,
						cr.plugins_.Text.prototype.acts.SetX,
						null,
						185993562364038,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						16,
						cr.plugins_.Text.prototype.acts.SetX,
						null,
						9794187563763946,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						17,
						cr.plugins_.Text.prototype.acts.SetX,
						null,
						5329178015831975,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						14,
						cr.plugins_.Text.prototype.acts.SetX,
						null,
						1437548634612136,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						15,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						7352514627725011,
						false
						,[
						[
							1,
							[
								23,
								"FONT_1"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						18,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						6829583646941934,
						false
						,[
						[
							1,
							[
								23,
								"FONT_1"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						16,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						1185725265404193,
						false
						,[
						[
							1,
							[
								23,
								"FONT_1"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						17,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						1185612265703573,
						false
						,[
						[
							1,
							[
								23,
								"FONT_1"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
,					[
						14,
						cr.plugins_.Text.prototype.acts.SetWebFont,
						null,
						6048630088035608,
						false
						,[
						[
							1,
							[
								23,
								"FONT_1"
							]
						]
,						[
							1,
							[
								23,
								"CSS_1"
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						7912294154501342,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							1441300134821058,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							15,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							566232928552947,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										1
									]
									]
								]
							]
							]
						]
,						[
							58,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							1569812539951456,
							false
							,[
							[
								0,
								[
									4,
									[
										5,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxRight,
											false,
											null
										]
										,[
											7,
											[
												20,
												54,
												cr.plugins_.Sprite.prototype.exps.BBoxLeft,
												false,
												null
											]
											,[
												0,
												2
											]
										]
									]
									,[
										7,
										[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										20
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							8859921224502421,
							false
							,[
							[
								7,
								[
									2,
									"OK"
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							8783124798919193,
							false
							,[
							[
								0,
								[
									20,
									58,
									cr.plugins_.Sprite.prototype.exps.BBoxLeft,
									false,
									null
								]
							]
,							[
								0,
								[
									20,
									58,
									cr.plugins_.Sprite.prototype.exps.BBoxTop,
									false,
									null
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9745132855278092,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						7999696528892328,
						false
						,[
						[
							1,
							[
								2,
								"ask"
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2305173248299225,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						7971331339194922,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
,						[
							13,
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						9126170554529018,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							499390770510008,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										3
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							251,
							cr.plugins_.Audio.prototype.acts.Play,
							null,
							9974704453838468,
							false
							,[
							[
								2,
								["popup-incoming",false]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"popup-incoming"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1170707609136131,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							2845155075582013,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							54,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							301011400206785,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							54,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							131778761053106,
							false
							,[
							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutwidth
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetSize,
							null,
							8316778339768536,
							false
							,[
							[
								0,
								[
									5,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
									,[
										0,
										100
									]
								]
							]
,							[
								0,
								[
									7,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							9463810492119313,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												54,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												15,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							6566521570037431,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										1
									]
									]
								]
							]
							]
						]
,						[
							58,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							1231553885777125,
							false
							,[
							[
								0,
								[
									5,
									[
										4,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxLeft,
											false,
											null
										]
										,[
											7,
											[
												20,
												54,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												0,
												2
											]
										]
									]
									,[
										7,
										[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							7129559310692246,
							false
							,[
							[
								7,
								[
									2,
									"OK"
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							3378938120754647,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1689098533695332,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3323070825143044,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									2
								]
							]
							]
						]
						],
						[
						[
							54,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							4828180127066223,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							54,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							2203668062730758,
							false
							,[
							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutwidth
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetSize,
							null,
							5107623226986881,
							false
							,[
							[
								0,
								[
									5,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
									,[
										0,
										100
									]
								]
							]
,							[
								0,
								[
									7,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							5580304584442848,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												54,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												15,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							8502807856833937,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										1
									]
									]
								]
							]
							]
						]
,						[
							58,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							6292730611288543,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												54,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												4,
												[
													20,
													58,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													20,
													55,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										50
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							613809730909424,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							9280436840827124,
							false
							,[
							[
								7,
								[
									2,
									"YES"
								]
							]
							]
						]
,						[
							55,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							9740306559410767,
							false
							,[
							[
								0,
								[
									4,
									[
										4,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxLeft,
											false,
											null
										]
										,[
											7,
											[
												5,
												[
													20,
													54,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													4,
													[
														20,
														58,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
													,[
														20,
														55,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
												]
											]
											,[
												0,
												2
											]
										]
									]
									,[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											55,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										50
									]
								]
							]
							]
						]
,						[
							16,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							2109055724921787,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										55,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												55,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												16,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										55,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												55,
												cr.plugins_.Sprite.prototype.exps.Height,
												false,
												null
											]
											,[
												20,
												16,
												cr.plugins_.Text.prototype.exps.Height,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
,						[
							16,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							1855200895691958,
							false
							,[
							[
								7,
								[
									2,
									"NO"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6594261827050474,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							5617348646333453,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									3
								]
							]
							]
						]
						],
						[
						[
							60,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							2879656590725061,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							60,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							933934191087791,
							false
							,[
							[
								0,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										2
									]
									]
								]
							]
							]
						]
,						[
							60,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							4733518325629084,
							false
							,[
							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutwidth
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							14,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							3010422512336148,
							false
							,[
							[
								0,
								[
									4,
									[
										4,
										[
											20,
											60,
											cr.plugins_.Sprite.prototype.exps.BBoxLeft,
											false,
											null
										]
										,[
											7,
											[
												5,
												[
													20,
													60,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													20,
													14,
													cr.plugins_.Text.prototype.exps.Width,
													false,
													null
												]
											]
											,[
												0,
												2
											]
										]
									]
									,[
										0,
										10
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										60,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										330
									]
								]
							]
							]
						]
,						[
							14,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							7348316155236331,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										1
									]
									]
								]
							]
							]
						]
,						[
							58,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							3148218136675757,
							false
							,[
							[
								0,
								[
									4,
									[
										4,
										[
											20,
											60,
											cr.plugins_.Sprite.prototype.exps.BBoxLeft,
											false,
											null
										]
										,[
											7,
											[
												5,
												[
													20,
													60,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													4,
													[
														20,
														57,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
													,[
														20,
														58,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
												]
											]
											,[
												0,
												2
											]
										]
									]
									,[
										20,
										57,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											60,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										30
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							4723590364995535,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							5472678033959679,
							false
							,[
							[
								7,
								[
									2,
									"Next Level"
								]
							]
							]
						]
,						[
							57,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							8517706473628362,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										60,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												60,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												4,
												[
													20,
													57,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													20,
													58,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											60,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											57,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										30
									]
								]
							]
							]
						]
,						[
							17,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							1459870156124122,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										57,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												57,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												17,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										57,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												57,
												cr.plugins_.Sprite.prototype.exps.Height,
												false,
												null
											]
											,[
												20,
												17,
												cr.plugins_.Text.prototype.exps.Height,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
,						[
							17,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							5520402351087929,
							false
							,[
							[
								7,
								[
									2,
									"Back"
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							2352064577403573,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												10,
												[
													10,
													[
														2,
														"lblAskH1-X:"
													]
													,[
														20,
														14,
														cr.plugins_.Text.prototype.exps.BBoxLeft,
														false,
														null
													]
												]
												,[
													2,
													",Y:"
												]
											]
											,[
												20,
												14,
												cr.plugins_.Text.prototype.exps.BBoxTop,
												false,
												null
											]
										]
									]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							3061405338652584,
							[
							],
							[
							[
								60,
								cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
								null,
								4424107164064187,
								false
								,[
								[
									0,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											2
										]
										]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3170892763069465,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							7590585072618779,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									4
								]
							]
							]
						]
						],
						[
						[
							61,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							8502509740633963,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							61,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							4082314013419246,
							false
							,[
							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutwidth
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							58,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							2448194485448041,
							false
							,[
							[
								0,
								[
									4,
									[
										4,
										[
											20,
											61,
											cr.plugins_.Sprite.prototype.exps.BBoxLeft,
											false,
											null
										]
										,[
											7,
											[
												5,
												[
													20,
													61,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													4,
													[
														20,
														57,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
													,[
														20,
														58,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
												]
											]
											,[
												0,
												2
											]
										]
									]
									,[
										20,
										57,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											61,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										30
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							7172588970675291,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							572811377658589,
							false
							,[
							[
								7,
								[
									2,
									"Continue"
								]
							]
							]
						]
,						[
							57,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							2769594637607681,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										61,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												61,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												4,
												[
													20,
													57,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													20,
													58,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											61,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											57,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										30
									]
								]
							]
							]
						]
,						[
							17,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							6206293202460479,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										57,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												57,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												17,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										57,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												57,
												cr.plugins_.Sprite.prototype.exps.Height,
												false,
												null
											]
											,[
												20,
												17,
												cr.plugins_.Text.prototype.exps.Height,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
,						[
							17,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							8700698813980692,
							false
							,[
							[
								7,
								[
									2,
									"Replay Mission"
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							3013763821050274,
							[
							],
							[
							[
								61,
								cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
								null,
								6921518882501333,
								false
								,[
								[
									0,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											2
										]
										]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						5663938356221107,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							6502472116006554,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										0
									]
									]
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									5
								]
							]
							]
						]
						],
						[
						[
							54,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							9932146580050828,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							54,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							4168589789960535,
							false
							,[
							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutwidth
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetSize,
							null,
							6400801964531069,
							false
							,[
							[
								0,
								[
									5,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
									,[
										0,
										100
									]
								]
							]
,							[
								0,
								[
									7,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							7164381207028113,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												54,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												15,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										54,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							15,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							1510543212250554,
							false
							,[
							[
								7,
								[
									20,
									249,
									cr.plugins_.Function.prototype.exps.Param,
									false,
									null
									,[
[
										0,
										1
									]
									]
								]
							]
							]
						]
,						[
							58,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							3744331529855351,
							false
							,[
							[
								0,
								[
									5,
									[
										4,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxLeft,
											false,
											null
										]
										,[
											7,
											[
												20,
												54,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												0,
												2
											]
										]
									]
									,[
										7,
										[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											54,
											cr.plugins_.Sprite.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											58,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							5168903192671547,
							false
							,[
							[
								7,
								[
									2,
									"DONE"
								]
							]
							]
						]
,						[
							18,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							4769452882260072,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										58,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												58,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												18,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Functions for QAs"],
				false,
				null,
				8493584766097336,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					8493584766097336,
					false
					,[
					[
						1,
						[
							2,
							"Functions for QAs"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					[true, "DrugQAs"],
					false,
					null,
					286909351269005,
					[
					[
						-1,
						cr.system_object.prototype.cnds.IsGroupActive,
						null,
						0,
						false,
						false,
						false,
						286909351269005,
						false
						,[
						[
							1,
							[
								2,
								"DrugQAs"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						9512858261002889,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.OnFunction,
							null,
							2,
							false,
							false,
							false,
							3735828682254102,
							false
							,[
							[
								1,
								[
									2,
									"correctDrugQA"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							6262284555371976,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											2,
											"Drug QA is correct.. Do the math.."
										]
									]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							7312512715962836,
							false
							,[
							[
								11,
								"currentLevelDrugQACorrectAttempts"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
						,[
						[
							1,
							"m1_drugPresentOnBoard",
							0,
							0,
false,false,469464305588411,false
						]
,						[
							1,
							"m1_totalOccupiedCells",
							0,
							0,
false,false,4483683466289704,false
						]
,						[
							0,
							null,
							false,
							null,
							2487997014175722,
							[
							[
								0,
								cr.plugins_.Arr.prototype.cnds.ArrForEach,
								null,
								0,
								true,
								false,
								false,
								5441167589942566,
								false
								,[
								[
									3,
									1
								]
								]
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								6812326870121655,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									4993645105994119,
									false
									,[
									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
,[
												0,
												1
											]
											]
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											2,
											"BMC"
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									1720658614166657,
									false
									,[
									[
										11,
										"m1_drugPresentOnBoard"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								9355042335381372,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									3964483007875044,
									false
									,[
									[
										7,
										[
											20,
											0,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
,[
												20,
												0,
												cr.plugins_.Arr.prototype.exps.CurY,
												false,
												null
											]
,[
												0,
												1
											]
											]
										]
									]
,									[
										8,
										1
									]
,									[
										7,
										[
											2,
											"E"
										]
									]
									]
								]
								],
								[
								[
									-1,
									cr.system_object.prototype.acts.AddVar,
									null,
									9944526358589876,
									false
									,[
									[
										11,
										"m1_totalOccupiedCells"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							5062693596678593,
							[
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								3845154814952115,
								false
								,[
								[
									1,
									[
										2,
										"disableModes"
									]
								]
,								[
									13,
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							9646392081073287,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								2642863190984748,
								false
								,[
								[
									7,
									[
										23,
										"m1_totalOccupiedCells"
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										6,
										[
											23,
											"NUM_OF_COLS"
										]
										,[
											23,
											"NUM_OF_ROWS"
										]
									]
								]
								]
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								6989381308294202,
								false
								,[
								[
									1,
									[
										2,
										"ask"
									]
								]
,								[
									13,
																			[
											7,
											[
												0,
												1
											]
										]
,
										[
											7,
											[
												2,
												"Add 5 points to a Drug Cell (Blue Cell) by clicking on it"
											]
										]
,
										[
											7,
											[
												0,
												0
											]
										]
,
										[
											7,
											[
												0,
												1
											]
										]
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								239386889301969,
								false
								,[
								[
									11,
									"mode_BMCAddNoBBC"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							1020066513655333,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								1251084968680916,
								false
							]
							],
							[
							]
							,[
							[
								0,
								null,
								false,
								null,
								1831525981367333,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Compare,
									null,
									0,
									false,
									false,
									false,
									6098526260741007,
									false
									,[
									[
										7,
										[
											23,
											"m1_drugPresentOnBoard"
										]
									]
,									[
										8,
										0
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								],
								[
								[
									249,
									cr.plugins_.Function.prototype.acts.CallFunction,
									null,
									7568753778131714,
									false
									,[
									[
										1,
										[
											2,
											"ask"
										]
									]
,									[
										13,
																					[
												7,
												[
													0,
													2
												]
											]
,
											[
												7,
												[
													2,
													"Select YES to place a new drug cell or NO to add the 5 points to an existing Drug Cell"
												]
											]
,
											[
												7,
												[
													0,
													0
												]
											]
,
											[
												7,
												[
													0,
													1
												]
											]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									5483146615746844,
									false
									,[
									[
										11,
										"mode_BMCDrugYesNo"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
							]
,							[
								0,
								null,
								false,
								null,
								4361162103274692,
								[
								[
									-1,
									cr.system_object.prototype.cnds.Else,
									null,
									0,
									false,
									false,
									false,
									6608091724218326,
									false
								]
								],
								[
								[
									249,
									cr.plugins_.Function.prototype.acts.CallFunction,
									null,
									3940110653039941,
									false
									,[
									[
										1,
										[
											2,
											"ask"
										]
									]
,									[
										13,
																					[
												7,
												[
													0,
													1
												]
											]
,
											[
												7,
												[
													2,
													"A Drug Cell (Blue Cell) will be added with the 5 points that you earned"
												]
											]
,
											[
												7,
												[
													0,
													0
												]
											]
,
											[
												7,
												[
													0,
													1
												]
											]
									]
									]
								]
,								[
									-1,
									cr.system_object.prototype.acts.SetVar,
									null,
									2005206569346684,
									false
									,[
									[
										11,
										"mode_BMCAddRandom"
									]
,									[
										7,
										[
											0,
											1
										]
									]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6318460659613575,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.OnFunction,
							null,
							2,
							false,
							false,
							false,
							8589954470521399,
							false
							,[
							[
								1,
								[
									2,
									"markDrugQA"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							1891478647278787,
							false
							,[
							[
								1,
								[
									2,
									"hideQA"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							505881787208983,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												2,
												"Choice is :"
											]
											,[
												20,
												249,
												cr.plugins_.Function.prototype.exps.Param,
												false,
												null
												,[
[
													0,
													0
												]
												]
											]
										]
									]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7472567096148218,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												2,
												"Correct Choice is :"
											]
											,[
												20,
												7,
												cr.plugins_.Arr.prototype.exps.At,
												false,
												null
												,[
[
													23,
													"currentQA"
												]
,[
													0,
													0
												]
,[
													0,
													1
												]
												]
											]
										]
									]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							322538996773276,
							false
							,[
							[
								11,
								"currentLevelDrugQAAttempts"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							6095919690556413,
							false
							,[
							[
								11,
								"mode_BMCDrugYesNo"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							5864763286398039,
							false
							,[
							[
								11,
								"mode_BMCAddRandom"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4122807617829764,
							false
							,[
							[
								11,
								"mode_BMCAddActive"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							8271497588903518,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								9585630046767199,
								false
								,[
								[
									7,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											0
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										20,
										7,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"currentQA"
										]
,[
											0,
											0
										]
,[
											0,
											1
										]
										]
									]
								]
								]
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								1674661073145509,
								false
								,[
								[
									1,
									[
										2,
										"correctDrugQA"
									]
								]
,								[
									13,
								]
								]
							]
,							[
								251,
								cr.plugins_.Audio.prototype.acts.Play,
								null,
								2498103015785066,
								false
								,[
								[
									2,
									["nih-answer-correct",false]
								]
,								[
									3,
									0
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									1,
									[
										2,
										"nih-answer-correct"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							708280956863862,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								5753827317580845,
								false
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								7161263723079304,
								false
								,[
								[
									11,
									"mode_cellsActive"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
,							[
								251,
								cr.plugins_.Audio.prototype.acts.Play,
								null,
								166167088971384,
								false
								,[
								[
									2,
									["nih-answer-wrong",false]
								]
,								[
									3,
									0
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									1,
									[
										2,
										"answer-wrong"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							5030173222304589,
							[
							],
							[
							[
								7,
								cr.plugins_.Arr.prototype.acts.Delete,
								null,
								9547077085972596,
								false
								,[
								[
									0,
									[
										23,
										"currentQA"
									]
								]
,								[
									3,
									0
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							2994347767904166,
							[
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.AddVar,
								null,
								3832589949318982,
								false
								,[
								[
									11,
									"currentDrugQAAttempts"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
,							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								9416268257476284,
								false
								,[
								[
									1,
									[
										2,
										"redrawCells"
									]
								]
,								[
									13,
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7839091808261584,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.OnFunction,
							null,
							2,
							false,
							false,
							false,
							274491487505039,
							false
							,[
							[
								1,
								[
									2,
									"askDrugQA"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							6431556983264926,
							false
							,[
							[
								1,
								[
									2,
									"hideQA"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7822814918490608,
							false
							,[
							[
								11,
								"currentQAType"
							]
,							[
								7,
								[
									2,
									"D"
								]
							]
							]
						]
,						[
							37,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							2753056175300723,
							false
							,[
							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutwidth
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							37,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							2104857892017229,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							42,
							cr.plugins_.Text.prototype.acts.SetVisible,
							null,
							5789211245546715,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							35,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							8886535038518813,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							42,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							8254569866592992,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										37,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										0,
										150
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										37,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										150
									]
								]
							]
							]
						]
,						[
							35,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							451940694241948,
							false
							,[
							[
								0,
								[
									5,
									[
										5,
										[
											20,
											37,
											cr.plugins_.Sprite.prototype.exps.BBoxRight,
											false,
											null
										]
										,[
											20,
											35,
											cr.plugins_.Sprite.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										75
									]
								]
							]
,							[
								0,
								[
									4,
									[
										4,
										[
											20,
											37,
											cr.plugins_.Sprite.prototype.exps.BBoxTop,
											false,
											null
										]
										,[
											20,
											35,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							56,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							1716618854549543,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							56,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							972663143668045,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										37,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										0,
										150
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										37,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										100
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							1239116182932454,
							false
							,[
							[
								11,
								"mode_cellsActive"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2720599146747477,
							false
							,[
							[
								11,
								"mode_qaActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							3450996720044351,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								3620196411625959,
								false
								,[
								[
									7,
									[
										20,
										7,
										cr.plugins_.Arr.prototype.exps.Width,
										false,
										null
									]
								]
,								[
									8,
									3
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								7,
								cr.plugins_.Arr.prototype.acts.JSONLoad,
								null,
								6651045832121,
								false
								,[
								[
									1,
									[
										20,
										8,
										cr.plugins_.Arr.prototype.exps.AsJSON,
										true,
										null
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							4895465748064178,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								8175499101095021,
								false
								,[
								[
									7,
									[
										20,
										7,
										cr.plugins_.Arr.prototype.exps.Width,
										false,
										null
									]
								]
,								[
									8,
									4
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								1,
								"currentPosX",
								0,
								0,
false,false,5087037917456869,false
							]
,							[
								1,
								"currentPosY",
								0,
								0,
false,false,786164067291941,false
							]
,							[
								1,
								"currentChoice",
								0,
								0,
false,false,6084212409966392,false
							]
,							[
								0,
								null,
								false,
								null,
								4168034292376731,
								[
								],
								[
								[
									38,
									cr.plugins_.Text.prototype.acts.SetVisible,
									null,
									4797325387208865,
									false
									,[
									[
										3,
										1
									]
									]
								]
,								[
									36,
									cr.plugins_.Sprite.prototype.acts.SetVisible,
									null,
									1609230409441188,
									false
									,[
									[
										3,
										1
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									761205143110367,
									[
									[
										-1,
										cr.system_object.prototype.cnds.Compare,
										null,
										0,
										false,
										false,
										false,
										1728143272297463,
										false
										,[
										[
											7,
											[
												20,
												249,
												cr.plugins_.Function.prototype.exps.Param,
												false,
												null
												,[
[
													0,
													0
												]
												]
											]
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												0,
												1
											]
										]
										]
									]
									],
									[
									]
								]
,								[
									0,
									null,
									false,
									null,
									5181977131713808,
									[
									[
										-1,
										cr.system_object.prototype.cnds.Else,
										null,
										0,
										false,
										false,
										false,
										3359741765391029,
										false
									]
									],
									[
									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										987700088994288,
										false
										,[
										[
											11,
											"currentQA"
										]
,										[
											7,
											[
												19,
												cr.system_object.prototype.exps.random
												,[
[
													20,
													7,
													cr.plugins_.Arr.prototype.exps.Width,
													false,
													null
												]
												]
											]
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									8413687865031638,
									[
									],
									[
									[
										42,
										cr.plugins_.Text.prototype.acts.SetText,
										null,
										5723044586467102,
										false
										,[
										[
											7,
											[
												20,
												7,
												cr.plugins_.Arr.prototype.exps.At,
												false,
												null
												,[
[
													23,
													"currentQA"
												]
,[
													0,
													0
												]
,[
													0,
													0
												]
												]
											]
										]
										]
									]
,									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										394860124624038,
										false
										,[
										[
											11,
											"currentChoice"
										]
,										[
											7,
											[
												0,
												0
											]
										]
										]
									]
,									[
										260,
										cr.plugins_.Arr.prototype.acts.SetSize,
										null,
										5595320050359479,
										false
										,[
										[
											0,
											[
												20,
												36,
												cr.plugins_.Sprite.prototype.exps.Count,
												false,
												null
											]
										]
,										[
											0,
											[
												0,
												2
											]
										]
,										[
											0,
											[
												0,
												1
											]
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									7472880141084649,
									[
									[
										260,
										cr.plugins_.Arr.prototype.cnds.ArrForEach,
										null,
										0,
										true,
										false,
										false,
										4807296454711913,
										false
										,[
										[
											3,
											2
										]
										]
									]
									],
									[
									[
										260,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										9923653393883721,
										false
										,[
										[
											0,
											[
												20,
												260,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
										]
,										[
											0,
											[
												0,
												0
											]
										]
,										[
											0,
											[
												0,
												0
											]
										]
,										[
											7,
											[
												8,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
												,[
													0,
													2
												]
											]
										]
										]
									]
									]
									,[
									[
										0,
										null,
										false,
										null,
										8654297196241209,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											645451197985282,
											false
											,[
											[
												7,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
											]
,											[
												8,
												4
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										],
										[
										[
											260,
											cr.plugins_.Arr.prototype.acts.SetXYZ,
											null,
											215778557958877,
											false
											,[
											[
												0,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
											]
,											[
												0,
												[
													0,
													1
												]
											]
,											[
												0,
												[
													0,
													0
												]
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										]
									]
,									[
										0,
										null,
										false,
										null,
										3857050418393102,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Else,
											null,
											0,
											false,
											false,
											false,
											252393646582535,
											false
										]
										],
										[
										[
											260,
											cr.plugins_.Arr.prototype.acts.SetXYZ,
											null,
											8169986764759544,
											false
											,[
											[
												0,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
											]
,											[
												0,
												[
													0,
													1
												]
											]
,											[
												0,
												[
													0,
													0
												]
											]
,											[
												7,
												[
													0,
													0
												]
											]
											]
										]
										]
									]
									]
								]
,								[
									1,
									"randomLoopIdx",
									0,
									0,
false,false,8748655052378161,false
								]
,								[
									0,
									null,
									false,
									null,
									7872477971522788,
									[
									[
										-1,
										cr.system_object.prototype.cnds.ForEach,
										null,
										0,
										true,
										false,
										false,
										8735084447001464,
										false
										,[
										[
											4,
											36
										]
										]
									]
									],
									[
									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										2214720118780133,
										false
										,[
										[
											11,
											"randomLoopIdx"
										]
,										[
											7,
											[
												19,
												cr.system_object.prototype.exps.floor
												,[
[
													19,
													cr.system_object.prototype.exps.random
													,[
[
														5,
														[
															20,
															36,
															cr.plugins_.Sprite.prototype.exps.Count,
															false,
															null
														]
														,[
															19,
															cr.system_object.prototype.exps.loopindex
														]
													]
													]
												]
												]
											]
										]
										]
									]
,									[
										38,
										cr.plugins_.Text.prototype.acts.SetText,
										null,
										7015148352828012,
										false
										,[
										[
											7,
											[
												20,
												7,
												cr.plugins_.Arr.prototype.exps.At,
												false,
												null
												,[
[
													23,
													"currentQA"
												]
,[
													0,
													1
												]
,[
													23,
													"currentChoice"
												]
												]
											]
										]
										]
									]
,									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										3808788711276862,
										false
										,[
										[
											11,
											"currentPosX"
										]
,										[
											7,
											[
												8,
												[
													23,
													"currentChoice"
												]
												,[
													0,
													2
												]
											]
										]
										]
									]
,									[
										249,
										cr.plugins_.Function.prototype.acts.CallFunction,
										null,
										6068721903781073,
										false
										,[
										[
											1,
											[
												2,
												"print"
											]
										]
,										[
											13,
																							[
													7,
													[
														10,
														[
															2,
															"choiceX:"
														]
														,[
															20,
															38,
															cr.plugins_.Text.prototype.exps.Text,
															true,
															null
														]
													]
												]
										]
										]
									]
,									[
										249,
										cr.plugins_.Function.prototype.acts.CallFunction,
										null,
										7715664184527816,
										false
										,[
										[
											1,
											[
												2,
												"print"
											]
										]
,										[
											13,
																							[
													7,
													[
														10,
														[
															10,
															[
																20,
																38,
																cr.plugins_.Text.prototype.exps.X,
																false,
																null
															]
															,[
																2,
																","
															]
														]
														,[
															20,
															38,
															cr.plugins_.Text.prototype.exps.Y,
															false,
															null
														]
													]
												]
										]
										]
									]
,									[
										38,
										cr.plugins_.Text.prototype.acts.SetVisible,
										null,
										1704852157452823,
										false
										,[
										[
											3,
											1
										]
										]
									]
,									[
										36,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										8440353681933916,
										false
										,[
										[
											10,
											0
										]
,										[
											7,
											[
												23,
												"currentChoice"
											]
										]
										]
									]
									]
									,[
									[
										0,
										null,
										false,
										null,
										8910454112942496,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											5751163611033082,
											false
											,[
											[
												7,
												[
													23,
													"currentChoice"
												]
											]
,											[
												8,
												4
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										],
										[
										[
											-1,
											cr.system_object.prototype.acts.SetVar,
											null,
											3822288898509496,
											false
											,[
											[
												11,
												"currentPosY"
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										]
									]
,									[
										0,
										null,
										false,
										null,
										993378045673395,
										[
										],
										[
										[
											-1,
											cr.system_object.prototype.acts.SetVar,
											null,
											2272765621479569,
											false
											,[
											[
												11,
												"currentPosX"
											]
,											[
												7,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														23,
														"randomLoopIdx"
													]
,[
														0,
														0
													]
,[
														0,
														0
													]
													]
												]
											]
											]
										]
,										[
											-1,
											cr.system_object.prototype.acts.SetVar,
											null,
											5733477473069475,
											false
											,[
											[
												11,
												"currentPosY"
											]
,											[
												7,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														23,
														"randomLoopIdx"
													]
,[
														0,
														1
													]
,[
														0,
														0
													]
													]
												]
											]
											]
										]
										]
									]
,									[
										0,
										null,
										false,
										null,
										5275595504901448,
										[
										],
										[
										[
											36,
											cr.plugins_.Sprite.prototype.acts.SetPos,
											null,
											96769972650702,
											false
											,[
											[
												0,
												[
													4,
													[
														4,
														[
															20,
															37,
															cr.plugins_.Sprite.prototype.exps.BBoxLeft,
															false,
															null
														]
														,[
															0,
															180
														]
													]
													,[
														6,
														[
															23,
															"currentPosX"
														]
														,[
															0,
															450
														]
													]
												]
											]
,											[
												0,
												[
													4,
													[
														4,
														[
															20,
															37,
															cr.plugins_.Sprite.prototype.exps.BBoxTop,
															false,
															null
														]
														,[
															0,
															300
														]
													]
													,[
														6,
														[
															23,
															"currentPosY"
														]
														,[
															0,
															100
														]
													]
												]
											]
											]
										]
,										[
											-1,
											cr.system_object.prototype.acts.AddVar,
											null,
											9762620278324651,
											false
											,[
											[
												11,
												"currentChoice"
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
,										[
											38,
											cr.plugins_.Text.prototype.acts.SetSize,
											null,
											7790942529347672,
											false
											,[
											[
												0,
												[
													5,
													[
														20,
														36,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
													,[
														0,
														40
													]
												]
											]
,											[
												0,
												[
													20,
													36,
													cr.plugins_.Sprite.prototype.exps.Height,
													false,
													null
												]
											]
											]
										]
,										[
											38,
											cr.plugins_.Text.prototype.acts.SetPos,
											null,
											125837341380111,
											false
											,[
											[
												0,
												[
													4,
													[
														20,
														36,
														cr.plugins_.Sprite.prototype.exps.X,
														false,
														null
													]
													,[
														7,
														[
															5,
															[
																20,
																36,
																cr.plugins_.Sprite.prototype.exps.Width,
																false,
																null
															]
															,[
																20,
																38,
																cr.plugins_.Text.prototype.exps.Width,
																false,
																null
															]
														]
														,[
															0,
															2
														]
													]
												]
											]
,											[
												0,
												[
													20,
													36,
													cr.plugins_.Sprite.prototype.exps.Y,
													false,
													null
												]
											]
											]
										]
,										[
											260,
											cr.plugins_.Arr.prototype.acts.Delete,
											null,
											4659042571600323,
											false
											,[
											[
												0,
												[
													23,
													"randomLoopIdx"
												]
											]
,											[
												3,
												0
											]
											]
										]
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							9511689369288427,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								788059188105243,
								false
							]
							],
							[
							[
								42,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								8123014292987192,
								false
								,[
								[
									7,
									[
										2,
										"No More Questions Left"
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					[true, "LifestyleQAs"],
					false,
					null,
					2126736752116085,
					[
					[
						-1,
						cr.system_object.prototype.cnds.IsGroupActive,
						null,
						0,
						false,
						false,
						false,
						2126736752116085,
						false
						,[
						[
							1,
							[
								2,
								"LifestyleQAs"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						9512858261002889,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.OnFunction,
							null,
							2,
							false,
							false,
							false,
							3735828682254102,
							false
							,[
							[
								1,
								[
									2,
									"correctLifestyleQA"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							6262284555371976,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											2,
											"Lifestyle QA is correct.. Do the math.."
										]
									]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							9963941212336701,
							false
							,[
							[
								1,
								[
									2,
									"ask"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											1
										]
									]
,
									[
										7,
										[
											2,
											"Please  select an Antibody (Green Cell) to add the 5 points you earn to"
										]
									]
,
									[
										7,
										[
											0,
											0
										]
									]
,
									[
										7,
										[
											0,
											1
										]
									]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							2937438557914237,
							false
							,[
							[
								1,
								[
									2,
									"disableModes"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2964483961616405,
							false
							,[
							[
								11,
								"mode_GPCAddActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							8567515059377358,
							false
							,[
							[
								11,
								"currentLevelLifestyleQACorrectAttempts"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6318460659613575,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.OnFunction,
							null,
							2,
							false,
							false,
							false,
							8589954470521399,
							false
							,[
							[
								1,
								[
									2,
									"markLifestyleQA"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							9114960188845303,
							false
							,[
							[
								1,
								[
									2,
									"hideQA"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							505881787208983,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												2,
												"Choice is :"
											]
											,[
												20,
												249,
												cr.plugins_.Function.prototype.exps.Param,
												false,
												null
												,[
[
													0,
													0
												]
												]
											]
										]
									]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7472567096148218,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												2,
												"Correct Choice is :"
											]
											,[
												20,
												33,
												cr.plugins_.Arr.prototype.exps.At,
												false,
												null
												,[
[
													23,
													"currentQA"
												]
,[
													0,
													0
												]
,[
													0,
													1
												]
												]
											]
										]
									]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7577072299187591,
							false
							,[
							[
								11,
								"mode_GPCAddActive"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							7462888586622319,
							false
							,[
							[
								11,
								"currentLevelLifestyleQAAttempts"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							8271497588903518,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								9585630046767199,
								false
								,[
								[
									7,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											0
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										20,
										33,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"currentQA"
										]
,[
											0,
											0
										]
,[
											0,
											1
										]
										]
									]
								]
								]
							]
							],
							[
							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								1674661073145509,
								false
								,[
								[
									1,
									[
										2,
										"correctLifestyleQA"
									]
								]
,								[
									13,
								]
								]
							]
,							[
								251,
								cr.plugins_.Audio.prototype.acts.Play,
								null,
								8784245688022676,
								false
								,[
								[
									2,
									["nih-answer-correct",false]
								]
,								[
									3,
									0
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									1,
									[
										2,
										"nih-answer-correct"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							9731321578710017,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								1190820250433584,
								false
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								8102805541284795,
								false
								,[
								[
									11,
									"mode_cellsActive"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
,							[
								251,
								cr.plugins_.Audio.prototype.acts.Play,
								null,
								7014369656344077,
								false
								,[
								[
									2,
									["nih-answer-wrong",false]
								]
,								[
									3,
									0
								]
,								[
									0,
									[
										0,
										0
									]
								]
,								[
									1,
									[
										2,
										"answer-wrong"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							6728996107208714,
							[
							],
							[
							[
								33,
								cr.plugins_.Arr.prototype.acts.Delete,
								null,
								5587255875026563,
								false
								,[
								[
									0,
									[
										23,
										"currentQA"
									]
								]
,								[
									3,
									0
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							43211176922645,
							[
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.AddVar,
								null,
								5477777775828454,
								false
								,[
								[
									11,
									"currentLifestyleQAAttempts"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
,							[
								249,
								cr.plugins_.Function.prototype.acts.CallFunction,
								null,
								8791479110517491,
								false
								,[
								[
									1,
									[
										2,
										"redrawCells"
									]
								]
,								[
									13,
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7839091808261584,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.OnFunction,
							null,
							2,
							false,
							false,
							false,
							274491487505039,
							false
							,[
							[
								1,
								[
									2,
									"askLifestyleQA"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							6431556983264926,
							false
							,[
							[
								1,
								[
									2,
									"hideQA"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4795392177195888,
							false
							,[
							[
								11,
								"currentQAType"
							]
,							[
								7,
								[
									2,
									"L"
								]
							]
							]
						]
,						[
							40,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							2753056175300723,
							false
							,[
							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutwidth
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										0,
										2
									]
								]
							]
							]
						]
,						[
							40,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							2104857892017229,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							42,
							cr.plugins_.Text.prototype.acts.SetVisible,
							null,
							5789211245546715,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							35,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							8886535038518813,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							42,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							8254569866592992,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										40,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										0,
										150
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										40,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										150
									]
								]
							]
							]
						]
,						[
							35,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							9361882971721847,
							false
							,[
							[
								0,
								[
									5,
									[
										5,
										[
											20,
											40,
											cr.plugins_.Sprite.prototype.exps.BBoxRight,
											false,
											null
										]
										,[
											20,
											35,
											cr.plugins_.Sprite.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										75
									]
								]
							]
,							[
								0,
								[
									4,
									[
										4,
										[
											20,
											40,
											cr.plugins_.Sprite.prototype.exps.BBoxTop,
											false,
											null
										]
										,[
											20,
											35,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							56,
							cr.plugins_.Sprite.prototype.acts.SetVisible,
							null,
							5824250829382781,
							false
							,[
							[
								3,
								1
							]
							]
						]
,						[
							56,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							3076894709964545,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										40,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										0,
										150
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										40,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										100
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2391502256772202,
							false
							,[
							[
								11,
								"mode_cellsActive"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7638945174936661,
							false
							,[
							[
								11,
								"mode_qaActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							4909477654104578,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								3307381259789934,
								false
								,[
								[
									7,
									[
										20,
										33,
										cr.plugins_.Arr.prototype.exps.Width,
										false,
										null
									]
								]
,								[
									8,
									3
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								33,
								cr.plugins_.Arr.prototype.acts.JSONLoad,
								null,
								9645579133230504,
								false
								,[
								[
									1,
									[
										20,
										34,
										cr.plugins_.Arr.prototype.exps.AsJSON,
										true,
										null
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							6153701923735375,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								9640499530095048,
								false
								,[
								[
									7,
									[
										20,
										33,
										cr.plugins_.Arr.prototype.exps.Width,
										false,
										null
									]
								]
,								[
									8,
									4
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							]
							,[
							[
								1,
								"currentPosX",
								0,
								0,
false,false,5087037917456869,false
							]
,							[
								1,
								"currentPosY",
								0,
								0,
false,false,786164067291941,false
							]
,							[
								1,
								"currentChoice",
								0,
								0,
false,false,6084212409966392,false
							]
,							[
								0,
								null,
								false,
								null,
								4168034292376731,
								[
								],
								[
								[
									41,
									cr.plugins_.Text.prototype.acts.SetVisible,
									null,
									4797325387208865,
									false
									,[
									[
										3,
										1
									]
									]
								]
,								[
									39,
									cr.plugins_.Sprite.prototype.acts.SetVisible,
									null,
									1609230409441188,
									false
									,[
									[
										3,
										1
									]
									]
								]
								]
								,[
								[
									0,
									null,
									false,
									null,
									354538738640248,
									[
									[
										-1,
										cr.system_object.prototype.cnds.Compare,
										null,
										0,
										false,
										false,
										false,
										8762289956170896,
										false
										,[
										[
											7,
											[
												20,
												249,
												cr.plugins_.Function.prototype.exps.Param,
												false,
												null
												,[
[
													0,
													0
												]
												]
											]
										]
,										[
											8,
											0
										]
,										[
											7,
											[
												0,
												1
											]
										]
										]
									]
									],
									[
									]
								]
,								[
									0,
									null,
									false,
									null,
									5702745049444832,
									[
									[
										-1,
										cr.system_object.prototype.cnds.Else,
										null,
										0,
										false,
										false,
										false,
										6947270597925391,
										false
									]
									],
									[
									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										5399318764516316,
										false
										,[
										[
											11,
											"currentQA"
										]
,										[
											7,
											[
												19,
												cr.system_object.prototype.exps.random
												,[
[
													20,
													33,
													cr.plugins_.Arr.prototype.exps.Width,
													false,
													null
												]
												]
											]
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									9003547668567439,
									[
									],
									[
									[
										260,
										cr.plugins_.Arr.prototype.acts.SetSize,
										null,
										3450457061033753,
										false
										,[
										[
											0,
											[
												20,
												39,
												cr.plugins_.Sprite.prototype.exps.Count,
												false,
												null
											]
										]
,										[
											0,
											[
												0,
												2
											]
										]
,										[
											0,
											[
												0,
												1
											]
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									3854520575372595,
									[
									[
										260,
										cr.plugins_.Arr.prototype.cnds.ArrForEach,
										null,
										0,
										true,
										false,
										false,
										3020576056197819,
										false
										,[
										[
											3,
											2
										]
										]
									]
									],
									[
									[
										260,
										cr.plugins_.Arr.prototype.acts.SetXYZ,
										null,
										9940850235060756,
										false
										,[
										[
											0,
											[
												20,
												260,
												cr.plugins_.Arr.prototype.exps.CurX,
												false,
												null
											]
										]
,										[
											0,
											[
												0,
												0
											]
										]
,										[
											0,
											[
												0,
												0
											]
										]
,										[
											7,
											[
												8,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
												,[
													0,
													2
												]
											]
										]
										]
									]
									]
									,[
									[
										0,
										null,
										false,
										null,
										7052511792117937,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											7358954787634529,
											false
											,[
											[
												7,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
											]
,											[
												8,
												4
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										],
										[
										[
											260,
											cr.plugins_.Arr.prototype.acts.SetXYZ,
											null,
											2081155310945566,
											false
											,[
											[
												0,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
											]
,											[
												0,
												[
													0,
													1
												]
											]
,											[
												0,
												[
													0,
													0
												]
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										]
									]
,									[
										0,
										null,
										false,
										null,
										1227500559248175,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Else,
											null,
											0,
											false,
											false,
											false,
											5195151272718397,
											false
										]
										],
										[
										[
											260,
											cr.plugins_.Arr.prototype.acts.SetXYZ,
											null,
											5223967454128744,
											false
											,[
											[
												0,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.CurX,
													false,
													null
												]
											]
,											[
												0,
												[
													0,
													1
												]
											]
,											[
												0,
												[
													0,
													0
												]
											]
,											[
												7,
												[
													0,
													0
												]
											]
											]
										]
										]
									]
									]
								]
,								[
									0,
									null,
									false,
									null,
									9891472012643201,
									[
									],
									[
									[
										42,
										cr.plugins_.Text.prototype.acts.SetText,
										null,
										5723044586467102,
										false
										,[
										[
											7,
											[
												19,
												cr.system_object.prototype.exps.str
												,[
[
													20,
													33,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														23,
														"currentQA"
													]
,[
														0,
														0
													]
,[
														0,
														0
													]
													]
												]
												]
											]
										]
										]
									]
,									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										394860124624038,
										false
										,[
										[
											11,
											"currentChoice"
										]
,										[
											7,
											[
												0,
												0
											]
										]
										]
									]
,									[
										249,
										cr.plugins_.Function.prototype.acts.CallFunction,
										null,
										614173315987415,
										false
										,[
										[
											1,
											[
												2,
												"print"
											]
										]
,										[
											13,
																							[
													7,
													[
														10,
														[
															2,
															"arrRandomQA:"
														]
														,[
															20,
															260,
															cr.plugins_.Arr.prototype.exps.AsJSON,
															true,
															null
														]
													]
												]
										]
										]
									]
									]
								]
,								[
									1,
									"randomLoopIdx",
									0,
									0,
false,false,225512240158101,false
								]
,								[
									0,
									null,
									false,
									null,
									7872477971522788,
									[
									[
										-1,
										cr.system_object.prototype.cnds.ForEach,
										null,
										0,
										true,
										false,
										false,
										8735084447001464,
										false
										,[
										[
											4,
											39
										]
										]
									]
									],
									[
									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										6150813414572446,
										false
										,[
										[
											11,
											"randomLoopIdx"
										]
,										[
											7,
											[
												19,
												cr.system_object.prototype.exps.floor
												,[
[
													19,
													cr.system_object.prototype.exps.random
													,[
[
														5,
														[
															20,
															39,
															cr.plugins_.Sprite.prototype.exps.Count,
															false,
															null
														]
														,[
															19,
															cr.system_object.prototype.exps.loopindex
														]
													]
													]
												]
												]
											]
										]
										]
									]
,									[
										41,
										cr.plugins_.Text.prototype.acts.SetText,
										null,
										7015148352828012,
										false
										,[
										[
											7,
											[
												19,
												cr.system_object.prototype.exps.str
												,[
[
													20,
													33,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														23,
														"currentQA"
													]
,[
														0,
														1
													]
,[
														23,
														"currentChoice"
													]
													]
												]
												]
											]
										]
										]
									]
,									[
										-1,
										cr.system_object.prototype.acts.SetVar,
										null,
										3808788711276862,
										false
										,[
										[
											11,
											"currentPosX"
										]
,										[
											7,
											[
												8,
												[
													23,
													"currentChoice"
												]
												,[
													0,
													2
												]
											]
										]
										]
									]
,									[
										41,
										cr.plugins_.Text.prototype.acts.SetVisible,
										null,
										1704852157452823,
										false
										,[
										[
											3,
											1
										]
										]
									]
,									[
										39,
										cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
										null,
										8440353681933916,
										false
										,[
										[
											10,
											0
										]
,										[
											7,
											[
												23,
												"currentChoice"
											]
										]
										]
									]
									]
									,[
									[
										0,
										null,
										false,
										null,
										8910454112942496,
										[
										[
											-1,
											cr.system_object.prototype.cnds.Compare,
											null,
											0,
											false,
											false,
											false,
											5751163611033082,
											false
											,[
											[
												7,
												[
													23,
													"currentChoice"
												]
											]
,											[
												8,
												4
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										],
										[
										[
											-1,
											cr.system_object.prototype.acts.SetVar,
											null,
											3822288898509496,
											false
											,[
											[
												11,
												"currentPosY"
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
										]
									]
,									[
										0,
										null,
										false,
										null,
										3978786818963354,
										[
										],
										[
										[
											-1,
											cr.system_object.prototype.acts.SetVar,
											null,
											7106069342139229,
											false
											,[
											[
												11,
												"currentPosX"
											]
,											[
												7,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														23,
														"randomLoopIdx"
													]
,[
														0,
														0
													]
,[
														0,
														0
													]
													]
												]
											]
											]
										]
,										[
											-1,
											cr.system_object.prototype.acts.SetVar,
											null,
											1131295009163128,
											false
											,[
											[
												11,
												"currentPosY"
											]
,											[
												7,
												[
													20,
													260,
													cr.plugins_.Arr.prototype.exps.At,
													false,
													null
													,[
[
														23,
														"randomLoopIdx"
													]
,[
														0,
														1
													]
,[
														0,
														0
													]
													]
												]
											]
											]
										]
,										[
											249,
											cr.plugins_.Function.prototype.acts.CallFunction,
											null,
											6068721903781073,
											false
											,[
											[
												1,
												[
													2,
													"print"
												]
											]
,											[
												13,
																									[
														7,
														[
															10,
															[
																10,
																[
																	10,
																	[
																		2,
																		"currentPosX:"
																	]
																	,[
																		23,
																		"currentPosX"
																	]
																]
																,[
																	2,
																	",currentPosY:"
																]
															]
															,[
																23,
																"currentPosY"
															]
														]
													]
											]
											]
										]
										]
									]
,									[
										0,
										null,
										false,
										null,
										5275595504901448,
										[
										],
										[
										[
											39,
											cr.plugins_.Sprite.prototype.acts.SetPos,
											null,
											96769972650702,
											false
											,[
											[
												0,
												[
													4,
													[
														4,
														[
															20,
															40,
															cr.plugins_.Sprite.prototype.exps.BBoxLeft,
															false,
															null
														]
														,[
															0,
															180
														]
													]
													,[
														6,
														[
															23,
															"currentPosX"
														]
														,[
															0,
															450
														]
													]
												]
											]
,											[
												0,
												[
													4,
													[
														4,
														[
															20,
															40,
															cr.plugins_.Sprite.prototype.exps.BBoxTop,
															false,
															null
														]
														,[
															0,
															300
														]
													]
													,[
														6,
														[
															23,
															"currentPosY"
														]
														,[
															0,
															100
														]
													]
												]
											]
											]
										]
,										[
											-1,
											cr.system_object.prototype.acts.AddVar,
											null,
											9762620278324651,
											false
											,[
											[
												11,
												"currentChoice"
											]
,											[
												7,
												[
													0,
													1
												]
											]
											]
										]
,										[
											41,
											cr.plugins_.Text.prototype.acts.SetSize,
											null,
											7790942529347672,
											false
											,[
											[
												0,
												[
													5,
													[
														20,
														39,
														cr.plugins_.Sprite.prototype.exps.Width,
														false,
														null
													]
													,[
														0,
														20
													]
												]
											]
,											[
												0,
												[
													20,
													39,
													cr.plugins_.Sprite.prototype.exps.Height,
													false,
													null
												]
											]
											]
										]
,										[
											41,
											cr.plugins_.Text.prototype.acts.SetPos,
											null,
											4074002139798454,
											false
											,[
											[
												0,
												[
													4,
													[
														20,
														39,
														cr.plugins_.Sprite.prototype.exps.X,
														false,
														null
													]
													,[
														7,
														[
															5,
															[
																20,
																39,
																cr.plugins_.Sprite.prototype.exps.Width,
																false,
																null
															]
															,[
																20,
																41,
																cr.plugins_.Text.prototype.exps.Width,
																false,
																null
															]
														]
														,[
															0,
															2
														]
													]
												]
											]
,											[
												0,
												[
													20,
													39,
													cr.plugins_.Sprite.prototype.exps.Y,
													false,
													null
												]
											]
											]
										]
,										[
											260,
											cr.plugins_.Arr.prototype.acts.Delete,
											null,
											9815980965814741,
											false
											,[
											[
												0,
												[
													23,
													"randomLoopIdx"
												]
											]
,											[
												3,
												0
											]
											]
										]
										]
									]
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							2759072575835954,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								6211715273758117,
								false
							]
							],
							[
							[
								42,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								100037711913378,
								false
								,[
								[
									7,
									[
										2,
										"No More Questions Left"
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9911914039605148,
					[
					[
						249,
						cr.plugins_.Function.prototype.cnds.OnFunction,
						null,
						2,
						false,
						false,
						false,
						7163725029437195,
						false
						,[
						[
							1,
							[
								2,
								"hideQA"
							]
						]
						]
					]
					],
					[
					[
						37,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						2430498426459681,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						36,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						8114146931654946,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						35,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						8860272297707242,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						38,
						cr.plugins_.Text.prototype.acts.SetVisible,
						null,
						3943252786419133,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						42,
						cr.plugins_.Text.prototype.acts.SetVisible,
						null,
						8260552728884014,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						40,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						4279502720324722,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						41,
						cr.plugins_.Text.prototype.acts.SetVisible,
						null,
						7805894768518827,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						39,
						cr.plugins_.Sprite.prototype.acts.SetX,
						null,
						5414260094754475,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						36,
						cr.plugins_.Sprite.prototype.acts.SetX,
						null,
						2114164743830204,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						56,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						7858079236373165,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						56,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						3707414928744536,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
,						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						696115255448847,
						false
						,[
						[
							11,
							"mode_qaActive"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Touch Events"],
			false,
			null,
			9283220719404406,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				9283220719404406,
				false
				,[
				[
					1,
					[
						2,
						"Touch Events"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				[true, "Events on Cells"],
				false,
				null,
				3107731991421705,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					3107731991421705,
					false
					,[
					[
						1,
						[
							2,
							"Events on Cells"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					2971770808165799,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						6419346225229741,
						false
						,[
						[
							4,
							10
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						4545426710108148,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						4985657934322558,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.CompareXYZ,
							null,
							0,
							false,
							false,
							false,
							6973055050624885,
							false
							,[
							[
								0,
								[
									21,
									10,
									false,
									null
									,2
								]
							]
,							[
								0,
								[
									21,
									10,
									false,
									null
									,3
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"N"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							1948787690617666,
							false
							,[
							[
								1,
								[
									2,
									"highlightAdjacentCells"
								]
							]
,							[
								13,
																	[
										7,
										[
											20,
											10,
											cr.plugins_.Sprite.prototype.exps.X,
											false,
											null
										]
									]
,
									[
										7,
										[
											20,
											10,
											cr.plugins_.Sprite.prototype.exps.Y,
											false,
											null
										]
									]
,
									[
										7,
										[
											21,
											10,
											false,
											null
											,2
										]
									]
,
									[
										7,
										[
											21,
											10,
											false,
											null
											,3
										]
									]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1896226057745646,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						352266364989502,
						false
						,[
						[
							4,
							5
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6146154402160256,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						7143397701124241,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.CompareXYZ,
							null,
							0,
							false,
							false,
							false,
							9798804704372363,
							false
							,[
							[
								0,
								[
									21,
									5,
									false,
									null
									,2
								]
							]
,							[
								0,
								[
									21,
									5,
									false,
									null
									,3
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"N"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							3283503730375652,
							false
							,[
							[
								1,
								[
									2,
									"highlightAdjacentCells"
								]
							]
,							[
								13,
																	[
										7,
										[
											20,
											5,
											cr.plugins_.Sprite.prototype.exps.X,
											false,
											null
										]
									]
,
									[
										7,
										[
											20,
											5,
											cr.plugins_.Sprite.prototype.exps.Y,
											false,
											null
										]
									]
,
									[
										7,
										[
											21,
											5,
											false,
											null
											,2
										]
									]
,
									[
										7,
										[
											21,
											5,
											false,
											null
											,3
										]
									]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9203161333448407,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						4219773140550103,
						false
						,[
						[
							4,
							10
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						8329451566475985,
						false
						,[
						[
							7,
							[
								23,
								"mode_GPCAddActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6318893099775698,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						6620513424165894,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.CompareXYZ,
							null,
							0,
							false,
							false,
							false,
							5473735761108105,
							false
							,[
							[
								0,
								[
									21,
									10,
									false,
									null
									,2
								]
							]
,							[
								0,
								[
									21,
									10,
									false,
									null
									,3
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"GPC"
								]
							]
							]
						]
						],
						[
						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9370433309206933,
							false
							,[
							[
								0,
								[
									21,
									10,
									false,
									null
									,2
								]
							]
,							[
								0,
								[
									21,
									10,
									false,
									null
									,3
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								7,
								[
									4,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											21,
											10,
											false,
											null
											,2
										]
,[
											21,
											10,
											false,
											null
											,3
										]
,[
											0,
											2
										]
										]
									]
									,[
										0,
										5
									]
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							4983740593183667,
							false
							,[
							[
								1,
								[
									2,
									"disableModes"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							5892470188826947,
							false
							,[
							[
								11,
								"mode_cellsActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							10,
							cr.plugins_.Sprite.prototype.acts.Spawn,
							null,
							7145890396942528,
							false
							,[
							[
								4,
								59
							]
,							[
								5,
								[
									2,
									"info_layer"
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							59,
							cr.plugins_.Sprite.prototype.acts.SetAnim,
							null,
							5228385164846646,
							false
							,[
							[
								1,
								[
									2,
									"power"
								]
							]
,							[
								3,
								1
							]
							]
						]
,						[
							251,
							cr.plugins_.Audio.prototype.acts.PlayByName,
							null,
							3950588257827001,
							false
							,[
							[
								3,
								1
							]
,							[
								1,
								[
									2,
									"poweradd-explosion"
								]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"poweradd-explosion"
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1002386248584788,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						3233262715357898,
						false
						,[
						[
							4,
							5
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6026274949036722,
						false
						,[
						[
							7,
							[
								23,
								"mode_BMCAddActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						1654069869031248,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						1004062250538975,
						[
						[
							0,
							cr.plugins_.Arr.prototype.cnds.CompareXYZ,
							null,
							0,
							false,
							false,
							false,
							8640309112575525,
							false
							,[
							[
								0,
								[
									21,
									5,
									false,
									null
									,2
								]
							]
,							[
								0,
								[
									21,
									5,
									false,
									null
									,3
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"BMC"
								]
							]
							]
						]
						],
						[
						[
							0,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							268111534690865,
							false
							,[
							[
								0,
								[
									21,
									5,
									false,
									null
									,2
								]
							]
,							[
								0,
								[
									21,
									5,
									false,
									null
									,3
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								7,
								[
									4,
									[
										20,
										0,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											21,
											5,
											false,
											null
											,2
										]
,[
											21,
											5,
											false,
											null
											,3
										]
,[
											0,
											2
										]
										]
									]
									,[
										0,
										5
									]
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							2127315490071989,
							false
							,[
							[
								1,
								[
									2,
									"disableModes"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2534715902102249,
							false
							,[
							[
								11,
								"mode_cellsActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							5,
							cr.plugins_.Sprite.prototype.acts.Spawn,
							null,
							1404393323985195,
							false
							,[
							[
								4,
								59
							]
,							[
								5,
								[
									2,
									"info_layer"
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							59,
							cr.plugins_.Sprite.prototype.acts.SetAnim,
							null,
							9189688511487235,
							false
							,[
							[
								1,
								[
									2,
									"power"
								]
							]
,							[
								3,
								1
							]
							]
						]
,						[
							251,
							cr.plugins_.Audio.prototype.acts.PlayByName,
							null,
							428393206408392,
							false
							,[
							[
								3,
								1
							]
,							[
								1,
								[
									2,
									"poweradd-explosion"
								]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"poweradd-explosion"
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9379898689477637,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						6170805067024276,
						false
						,[
						[
							4,
							3
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						1913200990706364,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						9787846972106559,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3252503709577319,
							false
							,[
							[
								7,
								[
									23,
									"mode_drugPlacementActive"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7202572792705031,
							false
							,[
							[
								1,
								[
									2,
									"highlightMoveGPCToNewLocation"
								]
							]
,							[
								13,
																	[
										7,
										[
											21,
											3,
											false,
											null
											,2
										]
									]
,
									[
										7,
										[
											21,
											3,
											false,
											null
											,3
										]
									]
,
									[
										7,
										[
											21,
											3,
											false,
											null
											,0
										]
									]
,
									[
										7,
										[
											21,
											3,
											false,
											null
											,1
										]
									]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							1897649439741118,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											2,
											"Called Highlighter"
										]
									]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7879159009800557,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							1283846792298634,
							false
							,[
							[
								7,
								[
									23,
									"mode_drugPlacementActive"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							6992684516434204,
							false
							,[
							[
								11,
								"mode_drugPlacementActive"
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							1444654688152615,
							false
							,[
							[
								1,
								[
									2,
									"injectCellAtSpecificEmptyCell"
								]
							]
,							[
								13,
																	[
										7,
										[
											21,
											3,
											false,
											null
											,2
										]
									]
,
									[
										7,
										[
											21,
											3,
											false,
											null
											,3
										]
									]
,
									[
										7,
										[
											2,
											"BMC"
										]
									]
,
									[
										7,
										[
											0,
											5
										]
									]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							4891026583106862,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												10,
												[
													10,
													[
														10,
														[
															10,
															[
																10,
																[
																	10,
																	[
																		2,
																		"Val:"
																	]
																	,[
																		21,
																		3,
																		false,
																		null
																		,2
																	]
																]
																,[
																	2,
																	","
																]
															]
															,[
																21,
																3,
																false,
																null
																,3
															]
														]
														,[
															2,
															",Pos:"
														]
													]
													,[
														21,
														3,
														false,
														null
														,0
													]
												]
												,[
													2,
													","
												]
											]
											,[
												21,
												3,
												false,
												null
												,1
											]
										]
									]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							4404769977037863,
							false
							,[
							[
								1,
								[
									2,
									"redrawCells"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1439824142348702,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						5216795385249033,
						false
						,[
						[
							4,
							44
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6581967267835872,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4995692744311901,
						false
						,[
						[
							1,
							[
								2,
								"highlightMoveGPCToNewLocation"
							]
						]
,						[
							13,
															[
									7,
									[
										21,
										44,
										false,
										null
										,2
									]
								]
,
								[
									7,
									[
										21,
										44,
										false,
										null
										,3
									]
								]
,
								[
									7,
									[
										21,
										44,
										false,
										null
										,0
									]
								]
,
								[
									7,
									[
										21,
										44,
										false,
										null
										,1
									]
								]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Events on Ask Box"],
				false,
				null,
				8171281664267923,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					8171281664267923,
					false
					,[
					[
						1,
						[
							2,
							"Events on Ask Box"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					2642080977570983,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						8229937115986935,
						false
						,[
						[
							4,
							58
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						1405932645257126,
						false
						,[
						[
							7,
							[
								23,
								"mode_GPCAddActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						3554763008441417,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						7881914791114986,
						false
						,[
						[
							11,
							"mode_cellsActive"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6848062841289271,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						651683206701317,
						false
						,[
						[
							4,
							58
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						true,
						null,
						8807439117153757,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							5856586527433465,
							false
							,[
							[
								7,
								[
									23,
									"mode_BMCDrugYesNo"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3902575596398055,
							false
							,[
							[
								7,
								[
									23,
									"mode_BMCAddRandom"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							2524631521358175,
							false
							,[
							[
								1,
								[
									2,
									"resetAsk"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							8358306760873068,
							false
							,[
							[
								1,
								[
									2,
									"addARandomBMC"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							1892608167064417,
							false
							,[
							[
								1,
								[
									2,
									"redrawCells"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							275829032035597,
							false
							,[
							[
								1,
								[
									2,
									"disableModes"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8974926501369004,
							false
							,[
							[
								11,
								"mode_cellsActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						239002309805706,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							2158654292448733,
							false
							,[
							[
								7,
								[
									23,
									"mode_BMCAddNoBBC"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							9815327753261542,
							false
							,[
							[
								1,
								[
									2,
									"resetAsk"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							2293293796270857,
							false
							,[
							[
								1,
								[
									2,
									"disableModes"
								]
							]
,							[
								13,
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8803057073231149,
							false
							,[
							[
								11,
								"mode_BMCAddActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							1322995118391496,
							false
							,[
							[
								11,
								"mode_cellsActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2836651092943259,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						6509159661933666,
						false
						,[
						[
							4,
							55
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6277447660327494,
						false
						,[
						[
							7,
							[
								23,
								"mode_BMCDrugYesNo"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2699404468272971,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						5936156098416075,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3759658888130099,
						false
						,[
						[
							11,
							"mode_BMCAddActive"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						1827379238998766,
						false
						,[
						[
							11,
							"mode_cellsActive"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2584378493267979,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						7045132701414695,
						false
						,[
						[
							4,
							58
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5065048992744821,
						false
						,[
						[
							7,
							[
								23,
								"mode_gameLevelInfoActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9953626122335096,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						5589331768618661,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						1862919074449677,
						false
						,[
						[
							11,
							"mode_cellsActive"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2555505976489766,
						false
						,[
						[
							1,
							[
								2,
								"changeLevel"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1739725550128196,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						5133628599255438,
						false
						,[
						[
							4,
							57
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5634521097167222,
						false
						,[
						[
							7,
							[
								23,
								"mode_gameLevelInfoActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9635907549810824,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						5619002547808856,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4860535433694873,
						false
						,[
						[
							11,
							"mode_cellsActive"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2144737784432851,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						8473578670378937,
						false
						,[
						[
							4,
							58
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5551722054732273,
						false
						,[
						[
							7,
							[
								23,
								"mode_gameOverActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9117476188753467,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						699271208030575,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						265,
						cr.plugins_.Dictionary.prototype.acts.AddKey,
						null,
						4692181682424011,
						false
						,[
						[
							1,
							[
								2,
								"currentScore"
							]
						]
,						[
							7,
							[
								23,
								"m1_currentScore"
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						4701124811064054,
						[
						[
							61,
							cr.plugins_.Sprite.prototype.cnds.CompareFrame,
							null,
							0,
							false,
							false,
							false,
							9092949055718986,
							false
							,[
							[
								8,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8969337353769737,
							false
							,[
							[
								11,
								"currentStoryAnimation"
							]
,							[
								7,
								[
									2,
									"M1lost"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						2338940974655652,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							9853169703355217,
							false
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7819559094488203,
							false
							,[
							[
								11,
								"currentStoryAnimation"
							]
,							[
								7,
								[
									2,
									"M1win"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						596662912428377,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.GoToLayoutByName,
							null,
							6740503844260745,
							false
							,[
							[
								1,
								[
									2,
									"LayoutStory"
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7508322670461132,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						6662882428061549,
						false
						,[
						[
							4,
							57
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						8074346556943627,
						false
						,[
						[
							7,
							[
								23,
								"mode_gameOverActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						6413933364779096,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						7000120561006702,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.ResetGlobals,
						null,
						5243290476627934,
						false
					]
,					[
						-1,
						cr.system_object.prototype.acts.RestartLayout,
						null,
						4795707540640189,
						false
					]
,					[
						-1,
						cr.system_object.prototype.acts.GoToLayout,
						null,
						7912946297546646,
						false
						,[
						[
							6,
							"LayoutGameMission1"
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					938672359112222,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						8689682685748614,
						false
						,[
						[
							4,
							58
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7556673981776016,
						false
						,[
						[
							7,
							[
								23,
								"mode_QAResearchActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4886938239623048,
						false
						,[
						[
							1,
							[
								2,
								"resetAsk"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						3027853926974477,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.Wait,
						null,
						6131741020363689,
						false
						,[
						[
							0,
							[
								1,
								0.2
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						4609180074122621,
						[
						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							2317359568365105,
							false
							,[
							[
								11,
								"currentQAType"
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"L"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							5027102182372556,
							false
							,[
							[
								1,
								[
									2,
									"askLifestyleQA"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											1
										]
									]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						8671701873461492,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							2568474750991417,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							6196739222775476,
							false
							,[
							[
								11,
								"currentQAType"
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"D"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							6213552235066841,
							false
							,[
							[
								1,
								[
									2,
									"askDrugQA"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											1
										]
									]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Events on QA screen"],
				false,
				null,
				1661004280684869,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					1661004280684869,
					false
					,[
					[
						1,
						[
							2,
							"Events on QA screen"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					9585645948895418,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						9828779485867708,
						false
						,[
						[
							4,
							36
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9968814762069396,
						false
						,[
						[
							7,
							[
								23,
								"mode_qaActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						1754888387055018,
						false
						,[
						[
							1,
							[
								2,
								"markDrugQA"
							]
						]
,						[
							13,
															[
									7,
									[
										21,
										36,
										false,
										null
										,0
									]
								]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3758627111134423,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						9841132483671003,
						false
						,[
						[
							4,
							39
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						375383162046781,
						false
						,[
						[
							7,
							[
								23,
								"mode_qaActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						5337762405204441,
						false
						,[
						[
							1,
							[
								2,
								"markLifestyleQA"
							]
						]
,						[
							13,
															[
									7,
									[
										21,
										39,
										false,
										null
										,0
									]
								]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2526922509440946,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						4417691421962233,
						false
						,[
						[
							4,
							35
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9682138260927885,
						false
						,[
						[
							7,
							[
								23,
								"mode_qaActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						5544614927782671,
						false
						,[
						[
							1,
							[
								2,
								"hideQA"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						5637352091009441,
						false
						,[
						[
							11,
							"mode_cellsActive"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					1545873945244338,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						7375540626806734,
						false
						,[
						[
							4,
							56
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						3105533862795504,
						false
						,[
						[
							7,
							[
								23,
								"mode_qaActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						6804503215625872,
						false
						,[
						[
							1,
							[
								2,
								"hideQA"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						1369968365580606,
						false
						,[
						[
							1,
							[
								2,
								"disableModes"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						56,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						4087174741492502,
						false
						,[
						[
							0,
							[
								0,
								1
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						5192151834521511,
						[
						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							7286228417616451,
							false
							,[
							[
								11,
								"currentQAType"
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"L"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							3580132360782428,
							false
							,[
							[
								1,
								[
									2,
									"ask"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											5
										]
									]
,
									[
										7,
										[
											20,
											33,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"currentQA"
											]
,[
												0,
												2
											]
,[
												0,
												0
											]
											]
										]
									]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						9137913361446815,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							3479174565278566,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.CompareVar,
							null,
							0,
							false,
							false,
							false,
							3136493533803579,
							false
							,[
							[
								11,
								"currentQAType"
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									2,
									"D"
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							3010286586678512,
							false
							,[
							[
								1,
								[
									2,
									"ask"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											5
										]
									]
,
									[
										7,
										[
											20,
											7,
											cr.plugins_.Arr.prototype.exps.At,
											false,
											null
											,[
[
												23,
												"currentQA"
											]
,[
												0,
												2
											]
,[
												0,
												0
											]
											]
										]
									]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7465748592067478,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							28604311525427,
							false
							,[
							[
								11,
								"mode_QAResearchActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3016618064682554,
						[
						],
						[
						]
					]
					]
				]
				]
			]
,			[
				0,
				[true, "Events on sidehud"],
				false,
				null,
				6252453980956913,
				[
				[
					-1,
					cr.system_object.prototype.cnds.IsGroupActive,
					null,
					0,
					false,
					false,
					false,
					6252453980956913,
					false
					,[
					[
						1,
						[
							2,
							"Events on sidehud"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					2164344448598084,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						1552776133613729,
						false
						,[
						[
							4,
							46
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7079048970928783,
						false
						,[
						[
							7,
							[
								23,
								"mode_qaActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9336220579960036,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						1105807065506839,
						false
						,[
						[
							7,
							[
								23,
								"qaLoadComplete"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						9293153995812426,
						false
						,[
						[
							1,
							[
								2,
								"askDrugQA"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8832042920526718,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						8016574106617409,
						false
						,[
						[
							4,
							47
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						3004846230231819,
						false
						,[
						[
							7,
							[
								23,
								"mode_qaActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						1225252104512771,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7806081426384714,
						false
						,[
						[
							7,
							[
								23,
								"qaLoadComplete"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4709398079141107,
						false
						,[
						[
							1,
							[
								2,
								"askLifestyleQA"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8401625831991096,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.OnTouchObject,
						null,
						1,
						false,
						false,
						false,
						4443600341119457,
						false
						,[
						[
							4,
							48
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5711343575420047,
						false
						,[
						[
							7,
							[
								23,
								"mode_qaActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						8835066072410971,
						false
						,[
						[
							7,
							[
								23,
								"mode_cellsActive"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						1,
						"currentPercent",
						0,
						0,
false,false,3260554708019443,false
					]
,					[
						1,
						"currentFrame",
						0,
						0,
false,false,4095900870366777,false
					]
,					[
						0,
						null,
						false,
						null,
						3774444040919051,
						[
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							8279675331206396,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								1127973738814689,
								false
								,[
								[
									7,
									[
										4,
										[
											23,
											"currentLevelDrugQAAttempts"
										]
										,[
											23,
											"currentLevelLifestyleQAAttempts"
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								8369543154124076,
								false
								,[
								[
									11,
									"currentPercent"
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							7696711465115631,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								9370875196343434,
								false
							]
							],
							[
							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								7590774071574252,
								false
								,[
								[
									11,
									"currentPercent"
								]
,								[
									7,
									[
										19,
										cr.system_object.prototype.exps.floor
										,[
[
											6,
											[
												7,
												[
													4,
													[
														23,
														"currentLevelDrugQACorrectAttempts"
													]
													,[
														23,
														"currentLevelLifestyleQACorrectAttempts"
													]
												]
												,[
													4,
													[
														23,
														"currentLevelDrugQAAttempts"
													]
													,[
														23,
														"currentLevelLifestyleQAAttempts"
													]
												]
											]
											,[
												0,
												100
											]
										]
										]
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						730320076831915,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							7868635599871185,
							false
							,[
							[
								7,
								[
									23,
									"currentPercent"
								]
							]
,							[
								8,
								2
							]
,							[
								7,
								[
									0,
									50
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9879437132671547,
							false
							,[
							[
								11,
								"currentFrame"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						2954023899965536,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							8595428032013038,
							false
							,[
							[
								7,
								[
									23,
									"CUR_LEVEL"
								]
							]
,							[
								8,
								2
							]
,							[
								7,
								[
									5,
									[
										23,
										"NUM_OF_LEVELS"
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							4085962430018502,
							false
							,[
							[
								1,
								[
									2,
									"print"
								]
							]
,							[
								13,
																	[
										7,
										[
											10,
											[
												2,
												"Current Percen:"
											]
											,[
												23,
												"currentPercent"
											]
										]
									]
							]
							]
						]
,						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							339431906572513,
							false
							,[
							[
								1,
								[
									2,
									"ask"
								]
							]
,							[
								13,
																	[
										7,
										[
											0,
											3
										]
									]
,
									[
										7,
										[
											10,
											[
												19,
												cr.system_object.prototype.exps.str
												,[
[
													23,
													"currentPercent"
												]
												]
											]
											,[
												2,
												" %"
											]
										]
									]
,
									[
										7,
										[
											23,
											"currentFrame"
										]
									]
,
									[
										7,
										[
											0,
											1
										]
									]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							5721642049903502,
							false
							,[
							[
								11,
								"mode_gameLevelInfoActive"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1540032345499761,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							3911163168592093,
							false
						]
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							8535978965525489,
							false
							,[
							[
								1,
								[
									2,
									"changeLevel"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "JSON Data Load"],
			false,
			null,
			1449743128709267,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				1449743128709267,
				false
				,[
				[
					1,
					[
						2,
						"JSON Data Load"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				993520820306481,
				[
				[
					255,
					cr.plugins_.AJAX.prototype.cnds.OnComplete,
					null,
					1,
					false,
					false,
					false,
					1266503637207739,
					false
					,[
					[
						1,
						[
							2,
							"mission1_qa"
						]
					]
					]
				]
				],
				[
				[
					7,
					cr.plugins_.Arr.prototype.acts.JSONLoad,
					null,
					2534718761710147,
					false
					,[
					[
						1,
						[
							20,
							255,
							cr.plugins_.AJAX.prototype.exps.LastData,
							true,
							null
						]
					]
					]
				]
,				[
					33,
					cr.plugins_.Arr.prototype.acts.JSONLoad,
					null,
					5913458139252381,
					false
					,[
					[
						1,
						[
							20,
							255,
							cr.plugins_.AJAX.prototype.exps.LastData,
							true,
							null
						]
					]
					]
				]
				]
				,[
				[
					1,
					"DRUG_FINALISED",
					0,
					0,
false,false,9827772069920175,false
				]
,				[
					0,
					null,
					false,
					null,
					7075197874706074,
					[
					[
						-1,
						cr.system_object.prototype.cnds.While,
						null,
						0,
						true,
						false,
						false,
						106824597312401,
						false
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6864027649742862,
						false
						,[
						[
							7,
							[
								23,
								"DRUG_FINALISED"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						1,
						"DRUG_DEL_OP",
						0,
						0,
false,false,2075869600291465,false
					]
,					[
						0,
						null,
						false,
						null,
						54449275631165,
						[
						[
							7,
							cr.plugins_.Arr.prototype.cnds.ArrForEach,
							null,
							0,
							true,
							false,
							false,
							1677355916355896,
							false
							,[
							[
								3,
								2
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							1594178706050266,
							false
							,[
							[
								7,
								[
									23,
									"DRUG_DEL_OP"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							5016670624305886,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								6733284317374482,
								false
								,[
								[
									7,
									[
										20,
										7,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											20,
											7,
											cr.plugins_.Arr.prototype.exps.CurX,
											false,
											null
										]
,[
											0,
											0
										]
,[
											0,
											2
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										2,
										"D"
									]
								]
								]
							]
							],
							[
							]
						]
,						[
							0,
							null,
							false,
							null,
							194979285305456,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								7803248024516102,
								false
							]
							],
							[
							[
								7,
								cr.plugins_.Arr.prototype.acts.Delete,
								null,
								8235945194583922,
								false
								,[
								[
									0,
									[
										20,
										7,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
,								[
									3,
									0
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								5511650581495036,
								false
								,[
								[
									11,
									"DRUG_DEL_OP"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						2755178768563314,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3400320361785051,
							false
							,[
							[
								7,
								[
									23,
									"DRUG_DEL_OP"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2569198661695987,
							false
							,[
							[
								11,
								"DRUG_FINALISED"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9294509145280085,
					[
					],
					[
					[
						8,
						cr.plugins_.Arr.prototype.acts.JSONLoad,
						null,
						6807304999700614,
						false
						,[
						[
							1,
							[
								20,
								7,
								cr.plugins_.Arr.prototype.exps.AsJSON,
								true,
								null
							]
						]
						]
					]
					]
				]
,				[
					1,
					"LS_FINALISED",
					0,
					0,
false,false,8435089722600777,false
				]
,				[
					0,
					null,
					false,
					null,
					6982558308947339,
					[
					[
						-1,
						cr.system_object.prototype.cnds.While,
						null,
						0,
						true,
						false,
						false,
						4577811657651775,
						false
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						8947907827641192,
						false
						,[
						[
							7,
							[
								23,
								"LS_FINALISED"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						1,
						"LS_DEL_OP",
						0,
						0,
false,false,1943486992547901,false
					]
,					[
						0,
						null,
						false,
						null,
						2823213228597339,
						[
						[
							33,
							cr.plugins_.Arr.prototype.cnds.ArrForEach,
							null,
							0,
							true,
							false,
							false,
							3037244843178162,
							false
							,[
							[
								3,
								2
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							6701285365849176,
							false
							,[
							[
								7,
								[
									23,
									"LS_DEL_OP"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							5305405064446826,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								2897477684102513,
								false
								,[
								[
									7,
									[
										20,
										33,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											20,
											33,
											cr.plugins_.Arr.prototype.exps.CurX,
											false,
											null
										]
,[
											0,
											0
										]
,[
											0,
											2
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										2,
										"L"
									]
								]
								]
							]
							],
							[
							]
						]
,						[
							0,
							null,
							false,
							null,
							7151061973114485,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								6451750541053081,
								false
							]
							],
							[
							[
								33,
								cr.plugins_.Arr.prototype.acts.Delete,
								null,
								9421400617443869,
								false
								,[
								[
									0,
									[
										20,
										33,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
								]
,								[
									3,
									0
								]
								]
							]
,							[
								-1,
								cr.system_object.prototype.acts.SetVar,
								null,
								7179561604872693,
								false
								,[
								[
									11,
									"LS_DEL_OP"
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6219541936306016,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4469808563797899,
							false
							,[
							[
								7,
								[
									23,
									"LS_DEL_OP"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							309030313061507,
							false
							,[
							[
								11,
								"LS_FINALISED"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4734880376235595,
					[
					],
					[
					[
						34,
						cr.plugins_.Arr.prototype.acts.JSONLoad,
						null,
						1714009221861251,
						false
						,[
						[
							1,
							[
								20,
								33,
								cr.plugins_.Arr.prototype.exps.AsJSON,
								true,
								null
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					747970975720767,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2860984913231175,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										10,
										[
											10,
											[
												10,
												[
													2,
													"DRUG:"
												]
												,[
													20,
													7,
													cr.plugins_.Arr.prototype.exps.Width,
													false,
													null
												]
											]
											,[
												2,
												"LS:"
											]
										]
										,[
											20,
											33,
											cr.plugins_.Arr.prototype.exps.Width,
											false,
											null
										]
									]
								]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						8558899165314301,
						false
						,[
						[
							11,
							"qaLoadComplete"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3907761511166822,
				[
				[
					255,
					cr.plugins_.AJAX.prototype.cnds.OnError,
					null,
					1,
					false,
					false,
					false,
					6770789725916429,
					false
					,[
					[
						1,
						[
							2,
							"mission1_qa"
						]
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					3617503841219978,
					false
					,[
					[
						1,
						[
							2,
							"print"
						]
					]
,					[
						13,
													[
								7,
								[
									10,
									[
										2,
										"Error in getting QAs::: Error:"
									]
									,[
										20,
										255,
										cr.plugins_.AJAX.prototype.exps.LastData,
										true,
										null
									]
								]
							]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			7499449468323016,
			[
			[
				5,
				cr.plugins_.Sprite.prototype.cnds.OnAnimFinished,
				null,
				1,
				false,
				false,
				false,
				3813049387559366,
				false
				,[
				[
					1,
					[
						2,
						"addPower"
					]
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				7118981056654648,
				false
				,[
				[
					1,
					[
						2,
						"redrawCells"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9328791646749771,
			[
			[
				59,
				cr.plugins_.Sprite.prototype.cnds.OnAnimFinished,
				null,
				1,
				false,
				false,
				false,
				9451324461348677,
				false
				,[
				[
					1,
					[
						2,
						"fight"
					]
				]
				]
			]
			],
			[
			[
				59,
				cr.plugins_.Sprite.prototype.acts.Destroy,
				null,
				1425281151986375,
				false
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				359441803122444,
				false
				,[
				[
					1,
					[
						2,
						"redrawCells"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			1087490220560169,
			[
			[
				59,
				cr.plugins_.Sprite.prototype.cnds.OnAnimFinished,
				null,
				1,
				false,
				false,
				false,
				8024730250305197,
				false
				,[
				[
					1,
					[
						2,
						"power"
					]
				]
				]
			]
			],
			[
			[
				59,
				cr.plugins_.Sprite.prototype.acts.Destroy,
				null,
				4627043858130992,
				false
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				5565587749542261,
				false
				,[
				[
					1,
					[
						2,
						"redrawCells"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			6211389816021617,
			[
			[
				10,
				cr.behaviors.custom.prototype.cnds.IsMoving,
				"CustomMovement",
				0,
				false,
				false,
				false,
				8530370741827766,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				5907246020333136,
				[
				[
					10,
					cr.plugins_.Sprite.prototype.cnds.OnCollision,
					null,
					0,
					false,
					false,
					true,
					6395125621610362,
					false
					,[
					[
						4,
						51
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					7836652436669224,
					false
					,[
					[
						1,
						[
							2,
							"print"
						]
					]
,					[
						13,
													[
								7,
								[
									10,
									[
										2,
										"GPC.state:"
									]
									,[
										21,
										10,
										false,
										null
										,4
									]
								]
							]
					]
					]
				]
,				[
					51,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1431626909283604,
					false
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					5093438222818737,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						3587665838200873,
						false
						,[
						[
							7,
							[
								21,
								10,
								false,
								null
								,4
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						4673977321873981,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.Wait,
							null,
							8647430981474272,
							false
							,[
							[
								0,
								[
									1,
									0.3
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3048954953519041,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							78799974574317,
							false
							,[
							[
								7,
								[
									21,
									10,
									false,
									null
									,4
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							251,
							cr.plugins_.Audio.prototype.acts.PlayByName,
							null,
							1486255012980828,
							false
							,[
							[
								3,
								0
							]
,							[
								1,
								[
									2,
									"nih-rdc-destroy"
								]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"nih-rdc-destroy"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						5245901388763973,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							9088165706963214,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							7611886953249064,
							false
							,[
							[
								7,
								[
									21,
									10,
									false,
									null
									,4
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									2
								]
							]
							]
						]
						],
						[
						[
							251,
							cr.plugins_.Audio.prototype.acts.Play,
							null,
							648470953917179,
							false
							,[
							[
								2,
								["nih-platoon-destroyed",false]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"nih-platoon-destroyed"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						780848986165216,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							2971477000707917,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							7301600207337426,
							false
							,[
							[
								7,
								[
									21,
									10,
									false,
									null
									,4
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									3
								]
							]
							]
						]
						],
						[
						[
							251,
							cr.plugins_.Audio.prototype.acts.Play,
							null,
							2493910830399842,
							false
							,[
							[
								2,
								["nih-platoon-destroyed",false]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"nih-platoon-destroyed"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3237195215852956,
						[
						],
						[
						[
							10,
							cr.plugins_.Sprite.prototype.acts.Spawn,
							null,
							574170088819875,
							false
							,[
							[
								4,
								59
							]
,							[
								5,
								[
									2,
									"info_layer"
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							59,
							cr.plugins_.Sprite.prototype.acts.SetAnim,
							null,
							3904718560868808,
							false
							,[
							[
								1,
								[
									2,
									"fight"
								]
							]
,							[
								3,
								1
							]
							]
						]
,						[
							10,
							cr.plugins_.Sprite.prototype.acts.Destroy,
							null,
							4065494147249961,
							false
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7368409363981305,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						3816460272947054,
						false
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4557649728720376,
						false
						,[
						[
							1,
							[
								2,
								"redrawCells"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			3773365006827776,
			[
			[
				5,
				cr.behaviors.custom.prototype.cnds.IsMoving,
				"CustomMovement",
				0,
				false,
				false,
				false,
				7187152742508116,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				7014868154685843,
				[
				[
					5,
					cr.plugins_.Sprite.prototype.cnds.OnCollision,
					null,
					0,
					false,
					false,
					true,
					3033269586158577,
					false
					,[
					[
						4,
						51
					]
					]
				]
				],
				[
				[
					51,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1525016197218959,
					false
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					4624705964365627,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7291894187724127,
						false
						,[
						[
							7,
							[
								21,
								5,
								false,
								null
								,4
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						8071973130233985,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.Wait,
							null,
							2733725706952144,
							false
							,[
							[
								0,
								[
									1,
									0.3
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7587392578964233,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							659752386323571,
							false
							,[
							[
								7,
								[
									21,
									5,
									false,
									null
									,4
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							251,
							cr.plugins_.Audio.prototype.acts.PlayByName,
							null,
							4485433549313415,
							false
							,[
							[
								3,
								0
							]
,							[
								1,
								[
									2,
									"nih-rdc-destroy"
								]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"nih-rdc-destroy"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3616314969218465,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							3312624593360486,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							6566933222776781,
							false
							,[
							[
								7,
								[
									21,
									5,
									false,
									null
									,4
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									2
								]
							]
							]
						]
						],
						[
						[
							251,
							cr.plugins_.Audio.prototype.acts.Play,
							null,
							3307937562574944,
							false
							,[
							[
								2,
								["nih-platoon-destroyed",false]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"nih-platoon-destroyed"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						8070304567124469,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							3289779914119451,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							9031151438610802,
							false
							,[
							[
								7,
								[
									21,
									5,
									false,
									null
									,4
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									3
								]
							]
							]
						]
						],
						[
						[
							251,
							cr.plugins_.Audio.prototype.acts.Play,
							null,
							4656140330421265,
							false
							,[
							[
								2,
								["nih-platoon-destroyed",false]
							]
,							[
								3,
								0
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"nih-platoon-destroyed"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						8551947046191114,
						[
						],
						[
						[
							5,
							cr.plugins_.Sprite.prototype.acts.Spawn,
							null,
							7049044723258259,
							false
							,[
							[
								4,
								59
							]
,							[
								5,
								[
									2,
									"info_layer"
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							59,
							cr.plugins_.Sprite.prototype.acts.SetAnim,
							null,
							1095287144242074,
							false
							,[
							[
								1,
								[
									2,
									"fight"
								]
							]
,							[
								3,
								1
							]
							]
						]
,						[
							5,
							cr.plugins_.Sprite.prototype.acts.Destroy,
							null,
							3567324095542653,
							false
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9616307639627739,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						5069537017192127,
						false
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						7889037186176009,
						false
						,[
						[
							1,
							[
								2,
								"redrawCells"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			3914999769862326,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				5548763319580294,
				false
				,[
				[
					4,
					45
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				9967209937493608,
				false
				,[
				[
					1,
					[
						2,
						"soundToggle"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			6029236804869072,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchEnd,
				null,
				1,
				false,
				false,
				false,
				9620955083203542,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				true,
				null,
				4906585929413163,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.IsTouchingObject,
					null,
					0,
					false,
					false,
					false,
					2599534576921699,
					false
					,[
					[
						4,
						10
					]
					]
				]
,				[
					250,
					cr.plugins_.Touch.prototype.cnds.IsTouchingObject,
					null,
					0,
					false,
					false,
					false,
					9330670906835458,
					false
					,[
					[
						4,
						5
					]
					]
				]
,				[
					250,
					cr.plugins_.Touch.prototype.cnds.IsTouchingObject,
					null,
					0,
					false,
					false,
					false,
					822169706301623,
					false
					,[
					[
						4,
						44
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.Play,
					null,
					2498207843268656,
					false
					,[
					[
						2,
						["click-cell",false]
					]
,					[
						3,
						0
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						1,
						[
							2,
							"click-sound"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1134545153183279,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Else,
					null,
					0,
					false,
					false,
					false,
					3478605767253157,
					false
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					4634462848052758,
					[
					[
						250,
						cr.plugins_.Touch.prototype.cnds.IsTouchingObject,
						null,
						0,
						false,
						false,
						false,
						7931035809889139,
						false
						,[
						[
							4,
							3
						]
						]
					]
					],
					[
					]
				]
,				[
					0,
					null,
					false,
					null,
					2071401565232851,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						2467229797214908,
						false
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.Play,
						null,
						2433490446671897,
						false
						,[
						[
							2,
							["click",false]
						]
,						[
							3,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							1,
							[
								2,
								"click-sound"
							]
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			2088611670034594,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutEnd,
				null,
				1,
				false,
				false,
				false,
				5314621868851015,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				2671455999284197,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					false,
					false,
					9573078840619037,
					false
					,[
					[
						1,
						[
							2,
							"m1_bg"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.Stop,
					null,
					538544990708808,
					false
					,[
					[
						1,
						[
							2,
							"m1_bg"
						]
					]
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"EventSheetStart",
		[
		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			0,
			null,
			false,
			null,
			3088204515582052,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.IsTouchingObject,
				null,
				0,
				false,
				false,
				false,
				623263115934398,
				false
				,[
				[
					4,
					68
				]
				]
			]
			],
			[
			[
				68,
				cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
				null,
				5461156333073582,
				false
				,[
				[
					0,
					[
						0,
						1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.Wait,
				null,
				9414553279755086,
				false
				,[
				[
					0,
					[
						1,
						1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.GoToLayoutByName,
				null,
				8067449188813731,
				false
				,[
				[
					1,
					[
						2,
						"LayoutMission"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			8622437046397758,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.IsTouchingObject,
				null,
				0,
				false,
				false,
				false,
				5197970779290941,
				false
				,[
				[
					4,
					69
				]
				]
			]
			],
			[
			[
				69,
				cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
				null,
				5557046726091611,
				false
				,[
				[
					0,
					[
						0,
						1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.Wait,
				null,
				2639957814302138,
				false
				,[
				[
					0,
					[
						1,
						1
					]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				3969953421202107,
				[
				[
					257,
					cr.plugins_.Dictionary.prototype.cnds.HasKey,
					null,
					0,
					false,
					false,
					false,
					938047902101251,
					false
					,[
					[
						1,
						[
							2,
							"gender"
						]
					]
					]
				]
,				[
					257,
					cr.plugins_.Dictionary.prototype.cnds.CompareValue,
					null,
					0,
					false,
					false,
					false,
					1883018016130225,
					false
					,[
					[
						1,
						[
							2,
							"gender"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"f"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					939809427306711,
					false
					,[
					[
						11,
						"currentStoryAnimation"
					]
,					[
						7,
						[
							2,
							"GameStoryF"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4283787126772112,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Else,
					null,
					0,
					false,
					false,
					false,
					501692010495484,
					false
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					925490193453261,
					false
					,[
					[
						11,
						"currentStoryAnimation"
					]
,					[
						7,
						[
							2,
							"GameStoryM"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				6882245628992288,
				[
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.GoToLayoutByName,
					null,
					9526087661462083,
					false
					,[
					[
						1,
						[
							2,
							"LayoutStory"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			4419576787721784,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				4514321746969519,
				false
				,[
				[
					4,
					45
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				3940068323123193,
				false
				,[
				[
					1,
					[
						2,
						"soundToggle"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			8282562665797014,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				4015793474577394,
				false
			]
			],
			[
			[
				19,
				cr.plugins_.Text.prototype.acts.SetWebFont,
				null,
				3257293022371869,
				false
				,[
				[
					1,
					[
						23,
						"FONT_1"
					]
				]
,				[
					1,
					[
						23,
						"CSS_1"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9995813101052085,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLoadFinished,
				null,
				1,
				false,
				false,
				false,
				5276480342905561,
				false
			]
			],
			[
			[
				251,
				cr.plugins_.Audio.prototype.acts.PreloadByName,
				null,
				5641414519934959,
				false
				,[
				[
					3,
					0
				]
,				[
					1,
					[
						2,
						"story_voiceover_pt1_1_1"
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"EventSheetStory",
		[
		[
			1,
			"CURRENT_FRAME",
			0,
			0,
false,false,6211051322640951,false
		]
,		[
			1,
			"story_current_voice",
			0,
			0,
false,false,7776504793540902,false
		]
,		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			0,
			null,
			false,
			null,
			7888814116497253,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				2142263156652431,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				1045225301150087,
				false
				,[
				[
					11,
					"story_current_voice"
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				1483396750393317,
				false
				,[
				[
					11,
					"CURRENT_FRAME"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
,			[
				52,
				cr.plugins_.Sprite.prototype.acts.SetPos,
				null,
				6686634071178834,
				false
				,[
				[
					0,
					[
						0,
						10
					]
				]
,				[
					0,
					[
						5,
						[
							7,
							[
								19,
								cr.system_object.prototype.exps.layoutheight
							]
							,[
								0,
								2
							]
						]
						,[
							7,
							[
								20,
								52,
								cr.plugins_.Sprite.prototype.exps.Height,
								false,
								null
							]
							,[
								0,
								2
							]
						]
					]
				]
				]
			]
,			[
				53,
				cr.plugins_.Sprite.prototype.acts.SetPos,
				null,
				1167796086710682,
				false
				,[
				[
					0,
					[
						5,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.layoutwidth
							]
							,[
								20,
								52,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
						,[
							0,
							10
						]
					]
				]
,				[
					0,
					[
						5,
						[
							7,
							[
								19,
								cr.system_object.prototype.exps.layoutheight
							]
							,[
								0,
								2
							]
						]
						,[
							7,
							[
								20,
								52,
								cr.plugins_.Sprite.prototype.exps.Height,
								false,
								null
							]
							,[
								0,
								2
							]
						]
					]
				]
				]
			]
,			[
				273,
				cr.plugins_.Sprite.prototype.acts.Destroy,
				null,
				631899096086573,
				false
			]
,			[
				253,
				cr.plugins_.TextBox.prototype.acts.SetPos,
				null,
				5588655311734508,
				false
				,[
				[
					0,
					[
						23,
						"hiddenPosX"
					]
				]
,				[
					0,
					[
						0,
						0
					]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				3039123492725988,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					2242960411469362,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						1
					]
,					[
						7,
						[
							2,
							"GameStory"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					7505387045093895,
					[
					[
						251,
						cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
						null,
						0,
						false,
						true,
						false,
						1656627027325982,
						false
						,[
						[
							1,
							[
								2,
								"story_bg"
							]
						]
						]
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.PlayByName,
						null,
						764728039957562,
						false
						,[
						[
							3,
							1
						]
,						[
							1,
							[
								2,
								"story_bg"
							]
						]
,						[
							3,
							1
						]
,						[
							0,
							[
								0,
								-10
							]
						]
,						[
							1,
							[
								2,
								"story_bg"
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1798703341775924,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					108033070980391,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"GameStoryM"
						]
					]
					]
				]
				],
				[
				]
			]
,			[
				0,
				null,
				false,
				null,
				8987079457838235,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					2343356625389476,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"GameStoryF"
						]
					]
					]
				]
				],
				[
				]
			]
,			[
				0,
				null,
				false,
				null,
				7826135038573188,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					4318307409211082,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"M1win"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					8816463364739291,
					false
					,[
					[
						4,
						239
					]
,					[
						5,
						[
							2,
							"bg_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					3060864850430244,
					false
					,[
					[
						4,
						239
					]
,					[
						5,
						[
							2,
							"slide_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				9363537074116006,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					9517478267130053,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"M1lost"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					7297316337167535,
					false
					,[
					[
						4,
						240
					]
,					[
						5,
						[
							2,
							"bg_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					6680689387350787,
					false
					,[
					[
						4,
						240
					]
,					[
						5,
						[
							2,
							"slide_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1648184255549603,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					7943481835917559,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"M2win"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					9471674605875488,
					false
					,[
					[
						4,
						241
					]
,					[
						5,
						[
							2,
							"bg_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					588818459267452,
					false
					,[
					[
						4,
						241
					]
,					[
						5,
						[
							2,
							"slide_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				6253300262171329,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					6854634488223539,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"M2lost"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					6036054831633904,
					false
					,[
					[
						4,
						242
					]
,					[
						5,
						[
							2,
							"bg_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					3958164126402843,
					false
					,[
					[
						4,
						242
					]
,					[
						5,
						[
							2,
							"slide_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				6229640253546144,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					1969180008002856,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"M3win"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					7113841034056578,
					false
					,[
					[
						4,
						243
					]
,					[
						5,
						[
							2,
							"bg_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					1143040693608492,
					false
					,[
					[
						4,
						243
					]
,					[
						5,
						[
							2,
							"slide_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3073221031875374,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					1306411021978932,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"M3lost"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					6182798867465391,
					false
					,[
					[
						4,
						244
					]
,					[
						5,
						[
							2,
							"bg_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					2758154584474038,
					false
					,[
					[
						4,
						244
					]
,					[
						5,
						[
							2,
							"slide_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				756212952939206,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					2955750263891698,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"M4win"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					2677964135635756,
					false
					,[
					[
						4,
						245
					]
,					[
						5,
						[
							2,
							"bg_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					7775175754284482,
					false
					,[
					[
						4,
						245
					]
,					[
						5,
						[
							2,
							"slide_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1458812008178887,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					3174586256519193,
					false
					,[
					[
						7,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"M4lost"
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					4338326697733614,
					false
					,[
					[
						4,
						246
					]
,					[
						5,
						[
							2,
							"bg_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					6930949867554741,
					false
					,[
					[
						4,
						246
					]
,					[
						5,
						[
							2,
							"slide_layer"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2947258306623475,
				[
				],
				[
				[
					273,
					cr.plugins_.Sprite.prototype.acts.SetAnim,
					null,
					38866779848715,
					false
					,[
					[
						1,
						[
							23,
							"currentStoryAnimation"
						]
					]
,					[
						3,
						1
					]
					]
				]
,				[
					273,
					cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
					null,
					7997221857067093,
					false
					,[
					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					273,
					cr.plugins_.Sprite.prototype.acts.StopAnim,
					null,
					8026012163801166,
					false
				]
,				[
					273,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					6611415104374834,
					false
					,[
					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					506626133148617,
					false
					,[
					[
						1,
						[
							2,
							"resetFrameObjs"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			4889720973185324,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				3020295779155347,
				false
				,[
				[
					4,
					247
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				6382631571844984,
				[
				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					63642363348056,
					false
					,[
					[
						11,
						"currentMissionNum"
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				],
				[
				[
					265,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					578202670663894,
					false
					,[
					[
						1,
						[
							2,
							"currentScore"
						]
					]
,					[
						7,
						[
							23,
							"m2_gross_score"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4541515453070712,
				[
				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					3506979825988829,
					false
					,[
					[
						11,
						"currentMissionNum"
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				],
				[
				[
					265,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					6873046345102036,
					false
					,[
					[
						1,
						[
							2,
							"currentScore"
						]
					]
,					[
						7,
						[
							23,
							"m4_finalScore"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3716150138315134,
				[
				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					6030268267730486,
					false
					,[
					[
						11,
						"currentMissionNum"
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							2
						]
					]
					]
				]
				],
				[
				[
					265,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					9768934541502972,
					false
					,[
					[
						1,
						[
							2,
							"currentScore"
						]
					]
,					[
						7,
						[
							23,
							"m1_currentScore"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				663102850018473,
				[
				[
					-1,
					cr.system_object.prototype.cnds.CompareVar,
					null,
					0,
					false,
					false,
					false,
					2953471235422207,
					false
					,[
					[
						11,
						"currentMissionNum"
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							3
						]
					]
					]
				]
				],
				[
				[
					265,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					7592183921098862,
					false
					,[
					[
						1,
						[
							2,
							"currentScore"
						]
					]
,					[
						7,
						[
							23,
							"m3_scoreOverAll"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3550304472864968,
				[
				],
				[
				[
					266,
					cr.plugins_.WebStorage.prototype.acts.StoreLocal,
					null,
					8830788808977015,
					false
					,[
					[
						1,
						[
							2,
							"dictMissions"
						]
					]
,					[
						7,
						[
							20,
							265,
							cr.plugins_.Dictionary.prototype.exps.AsJSON,
							true,
							null
						]
					]
					]
				]
,				[
					262,
					cr.plugins_.Browser.prototype.acts.ExecJs,
					null,
					8616981490345587,
					false
					,[
					[
						1,
						[
							10,
							[
								10,
								[
									10,
									[
										10,
										[
											2,
											"(function(){\n			var callEjectaBridgeForScorePush = function(currentScore,currentSelectedGame){\n				var simpleTest = new Ejecta.EJJsBridge(currentScore,currentSelectedGame);\n				var paramStr = simpleTest.loadWebPage();\n				return paramStr;				 \n			}\n				\n			var gameParams = callEjectaBridgeForScorePush("
										]
										,[
											20,
											265,
											cr.plugins_.Dictionary.prototype.exps.Get,
											false,
											null
											,[
[
												2,
												"currentScore"
											]
											]
										]
									]
									,[
										2,
										","
									]
								]
								,[
									20,
									265,
									cr.plugins_.Dictionary.prototype.exps.Get,
									false,
									null
									,[
[
										2,
										"currentSelectedGame"
									]
									]
								]
							]
							,[
								2,
								");\n		}());"
							]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Functions"],
			false,
			null,
			5551141852938357,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				5551141852938357,
				false
				,[
				[
					1,
					[
						2,
						"Functions"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				9059418399978668,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					8050418635231558,
					false
					,[
					[
						1,
						[
							2,
							"resetFrameObjs"
						]
					]
					]
				]
				],
				[
				[
					247,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					3618166519523029,
					false
					,[
					[
						0,
						[
							0,
							-1000
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					247,
					cr.plugins_.Sprite.prototype.acts.SetVisible,
					null,
					5968900421329931,
					false
					,[
					[
						3,
						0
					]
					]
				]
,				[
					52,
					cr.plugins_.Sprite.prototype.acts.SetVisible,
					null,
					397022316849141,
					false
					,[
					[
						3,
						1
					]
					]
				]
,				[
					52,
					cr.plugins_.Sprite.prototype.acts.SetX,
					null,
					4111019552393752,
					false
					,[
					[
						0,
						[
							0,
							10
						]
					]
					]
				]
,				[
					53,
					cr.plugins_.Sprite.prototype.acts.SetVisible,
					null,
					7032765202441285,
					false
					,[
					[
						3,
						1
					]
					]
				]
,				[
					53,
					cr.plugins_.Sprite.prototype.acts.SetX,
					null,
					4643464074960478,
					false
					,[
					[
						0,
						[
							5,
							[
								5,
								[
									19,
									cr.system_object.prototype.exps.layoutwidth
								]
								,[
									20,
									53,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
							,[
								0,
								10
							]
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					1791016975063157,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6204276277413819,
						false
						,[
						[
							7,
							[
								23,
								"CURRENT_FRAME"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								5,
								[
									20,
									273,
									cr.plugins_.Sprite.prototype.exps.AnimationFrameCount,
									false,
									null
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
					],
					[
					[
						53,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						5634914892502971,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						53,
						cr.plugins_.Sprite.prototype.acts.SetX,
						null,
						9519826932929898,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
,					[
						247,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						7375608388426081,
						false
						,[
						[
							3,
							1
						]
						]
					]
,					[
						247,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						817701700839198,
						false
						,[
						[
							0,
							[
								0,
								865
							]
						]
,						[
							0,
							[
								0,
								655
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6070566432718217,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						3670728053308073,
						false
						,[
						[
							7,
							[
								23,
								"CURRENT_FRAME"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						52,
						cr.plugins_.Sprite.prototype.acts.SetVisible,
						null,
						1984534166147012,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						52,
						cr.plugins_.Sprite.prototype.acts.SetX,
						null,
						1041642251430186,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					464091175514901,
					[
					],
					[
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				7819245972001326,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					4869196476293353,
					false
					,[
					[
						1,
						[
							2,
							"moveNextScreen"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"isMoved",
					0,
					0,
false,false,8302697067470779,false
				]
,				[
					0,
					null,
					false,
					null,
					2910383290751617,
					[
					[
						273,
						cr.plugins_.Sprite.prototype.cnds.IsOnLayer,
						null,
						0,
						false,
						false,
						false,
						1438075278109884,
						false
						,[
						[
							5,
							[
								2,
								"bg_layer"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						9769111412983681,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							5946233766216478,
							false
							,[
							[
								7,
								[
									20,
									273,
									cr.plugins_.Sprite.prototype.exps.AnimationFrame,
									false,
									null
								]
							]
,							[
								8,
								2
							]
,							[
								7,
								[
									5,
									[
										20,
										273,
										cr.plugins_.Sprite.prototype.exps.AnimationFrameCount,
										false,
										null
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							1102390398566704,
							false
							,[
							[
								11,
								"CURRENT_FRAME"
							]
,							[
								7,
								[
									4,
									[
										20,
										273,
										cr.plugins_.Sprite.prototype.exps.AnimationFrame,
										false,
										null
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							2993807174987862,
							false
							,[
							[
								11,
								"isMoved"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							273,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							9469231680896399,
							false
							,[
							[
								0,
								[
									23,
									"CURRENT_FRAME"
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3819409509384412,
					[
					[
						273,
						cr.plugins_.Sprite.prototype.cnds.IsOnLayer,
						null,
						0,
						false,
						false,
						false,
						4742756253029928,
						false
						,[
						[
							5,
							[
								2,
								"slide_layer"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5274183851424526,
						false
						,[
						[
							7,
							[
								23,
								"isMoved"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						273,
						cr.behaviors.custom.prototype.acts.AcceleratePos,
						"CustomMovement2",
						8566085826164017,
						false
						,[
						[
							0,
							[
								0,
								1
							]
						]
,						[
							0,
							[
								5,
								[
									3,
									[
										20,
										273,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									10
								]
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						273,
						cr.behaviors.custom.prototype.acts.SetSpeed,
						"CustomMovement2",
						3555655123024907,
						false
						,[
						[
							3,
							0
						]
,						[
							0,
							[
								0,
								3000
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4948159039142565,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						8167435643495914,
						false
						,[
						[
							1,
							[
								2,
								"resetFrameObjs"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				6928169442348518,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					9682882083245528,
					false
					,[
					[
						1,
						[
							2,
							"movePreviousScreen"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"isMoved",
					0,
					0,
false,false,1442885492802646,false
				]
,				[
					0,
					null,
					false,
					null,
					6842944244433243,
					[
					[
						273,
						cr.plugins_.Sprite.prototype.cnds.IsOnLayer,
						null,
						0,
						false,
						false,
						false,
						5948459616735784,
						false
						,[
						[
							5,
							[
								2,
								"bg_layer"
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						5438289831906178,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4062223272951767,
							false
							,[
							[
								7,
								[
									20,
									273,
									cr.plugins_.Sprite.prototype.exps.AnimationFrame,
									false,
									null
								]
							]
,							[
								8,
								4
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							4609607215394972,
							false
							,[
							[
								11,
								"CURRENT_FRAME"
							]
,							[
								7,
								[
									5,
									[
										20,
										273,
										cr.plugins_.Sprite.prototype.exps.AnimationFrame,
										false,
										null
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9007714091741941,
							false
							,[
							[
								11,
								"isMoved"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							273,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							9400510702109516,
							false
							,[
							[
								0,
								[
									23,
									"CURRENT_FRAME"
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2605886403543168,
					[
					[
						273,
						cr.plugins_.Sprite.prototype.cnds.IsOnLayer,
						null,
						0,
						false,
						false,
						false,
						1900924027191632,
						false
						,[
						[
							5,
							[
								2,
								"slide_layer"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7150612045036514,
						false
						,[
						[
							7,
							[
								23,
								"isMoved"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						273,
						cr.behaviors.custom.prototype.acts.AcceleratePos,
						"CustomMovement2",
						3590902752257314,
						false
						,[
						[
							0,
							[
								0,
								1
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									273,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
								,[
									0,
									10
								]
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						273,
						cr.behaviors.custom.prototype.acts.SetSpeed,
						"CustomMovement2",
						3550846632606639,
						false
						,[
						[
							3,
							0
						]
,						[
							0,
							[
								0,
								3000
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7511826327386116,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						3397405874024568,
						false
						,[
						[
							1,
							[
								2,
								"resetFrameObjs"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				6566074857514371,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					8086365078990681,
					false
					,[
					[
						1,
						[
							2,
							"playVoiceOver"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					767155945918812,
					[
					[
						251,
						cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
						null,
						0,
						false,
						false,
						false,
						2479461708928048,
						false
						,[
						[
							1,
							[
								2,
								"story_voice_over"
							]
						]
						]
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.Stop,
						null,
						9138665588934468,
						false
						,[
						[
							1,
							[
								2,
								"story_voice_over"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9826999304636596,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5909514589159726,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"add"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.AddVar,
						null,
						3279989142332422,
						false
						,[
						[
							11,
							"story_current_voice"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7469978079278915,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						4533167811812326,
						false
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						9233954273302303,
						false
						,[
						[
							11,
							"story_current_voice"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					true,
					null,
					4460191331639143,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						8846291470439993,
						false
						,[
						[
							7,
							[
								20,
								273,
								cr.plugins_.Sprite.prototype.exps.AnimationName,
								true,
								null
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"GameStoryM"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						8173530685523303,
						false
						,[
						[
							7,
							[
								20,
								273,
								cr.plugins_.Sprite.prototype.exps.AnimationName,
								true,
								null
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"GameStoryF"
							]
						]
						]
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.PlayByName,
						null,
						2174593649566751,
						false
						,[
						[
							3,
							0
						]
,						[
							1,
							[
								10,
								[
									10,
									[
										10,
										[
											2,
											"story_voiceover_pt1_"
										]
										,[
											4,
											[
												23,
												"CURRENT_FRAME"
											]
											,[
												0,
												1
											]
										]
									]
									,[
										2,
										"_"
									]
								]
								,[
									23,
									"story_current_voice"
								]
							]
						]
,						[
							3,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							1,
							[
								2,
								"story_voice_over"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2669795305506551,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						2331476935026373,
						false
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.PlayByName,
						null,
						6569335421586628,
						false
						,[
						[
							3,
							0
						]
,						[
							1,
							[
								10,
								[
									10,
									[
										10,
										[
											10,
											[
												10,
												[
													2,
													"story_voiceover_mission_"
												]
												,[
													23,
													"currentStoryAnimation"
												]
											]
											,[
												2,
												"_"
											]
										]
										,[
											4,
											[
												23,
												"CURRENT_FRAME"
											]
											,[
												0,
												1
											]
										]
									]
									,[
										2,
										"_"
									]
								]
								,[
									23,
									"story_current_voice"
								]
							]
						]
,						[
							3,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							1,
							[
								2,
								"story_voice_over"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					true,
					null,
					4275687587533375,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9780632639319371,
						false
						,[
						[
							7,
							[
								20,
								273,
								cr.plugins_.Sprite.prototype.exps.AnimationName,
								true,
								null
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"M1win"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7557841368026508,
						false
						,[
						[
							7,
							[
								20,
								273,
								cr.plugins_.Sprite.prototype.exps.AnimationName,
								true,
								null
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"GameStoryF"
							]
						]
						]
					]
					],
					[
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			707038973990451,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				295719422672361,
				false
				,[
				[
					4,
					52
				]
				]
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.Wait,
				null,
				9161043307262483,
				false
				,[
				[
					0,
					[
						1,
						0.2
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				9082086491162139,
				false
				,[
				[
					1,
					[
						2,
						"movePreviousScreen"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			777864686602752,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				5614526710644933,
				false
				,[
				[
					4,
					53
				]
				]
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.Wait,
				null,
				6700100429482747,
				false
				,[
				[
					0,
					[
						1,
						0.2
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				873240489509808,
				false
				,[
				[
					1,
					[
						2,
						"moveNextScreen"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			8587018422046663,
			[
			[
				273,
				cr.plugins_.Sprite.prototype.cnds.IsOutsideLayout,
				null,
				0,
				false,
				false,
				false,
				2471156711693579,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				9129176823708302,
				[
				[
					273,
					cr.plugins_.Sprite.prototype.cnds.IsOnLayer,
					null,
					0,
					false,
					false,
					false,
					5524123562840069,
					false
					,[
					[
						5,
						[
							2,
							"slide_layer"
						]
					]
					]
				]
				],
				[
				[
					273,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					6338902870199593,
					false
					,[
					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					273,
					cr.behaviors.custom.prototype.acts.Stop,
					"CustomMovement2",
					2541753486091815,
					false
				]
,				[
					273,
					cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
					null,
					3677582536269268,
					false
					,[
					[
						0,
						[
							23,
							"CURRENT_FRAME"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			1388278032391437,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutEnd,
				null,
				1,
				false,
				false,
				false,
				5383712577999295,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				762517550473983,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					false,
					false,
					3901105807436732,
					false
					,[
					[
						1,
						[
							2,
							"story_voice_over"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.Stop,
					null,
					4351660049125585,
					false
					,[
					[
						1,
						[
							2,
							"story_voice_over"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			4342075610924435,
			[
			[
				251,
				cr.plugins_.Audio.prototype.cnds.OnEnded,
				null,
				1,
				false,
				false,
				false,
				4657226803928349,
				false
				,[
				[
					1,
					[
						2,
						"story_voice_over"
					]
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				421744733227525,
				false
				,[
				[
					1,
					[
						2,
						"playVoiceOver"
					]
				]
,				[
					13,
											[
							7,
							[
								2,
								"add"
							]
						]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			7758128482054613,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutEnd,
				null,
				1,
				false,
				false,
				false,
				6475354291546333,
				false
			]
			],
			[
			[
				273,
				cr.plugins_.Sprite.prototype.acts.Destroy,
				null,
				6367107186642076,
				false
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				5307853266140496,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					false,
					false,
					6775898604774704,
					false
					,[
					[
						1,
						[
							2,
							"story_bg"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.Stop,
					null,
					4024034033647968,
					false
					,[
					[
						1,
						[
							2,
							"story_bg"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			4845821753750658,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLoadFinished,
				null,
				1,
				false,
				false,
				false,
				335452860433623,
				false
			]
			],
			[
			[
				251,
				cr.plugins_.Audio.prototype.acts.PreloadByName,
				null,
				322974772393688,
				false
				,[
				[
					3,
					1
				]
,				[
					1,
					[
						2,
						"story_bg"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9793131472559274,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLoadFinished,
				null,
				1,
				false,
				false,
				false,
				5254120817813605,
				false
			]
			],
			[
			[
				273,
				cr.plugins_.Sprite.prototype.acts.Destroy,
				null,
				886242397379658,
				false
			]
			]
		]
		]
	]
,	[
		"EventSheetGlobal",
		[
		[
			1,
			"FONT_7_MUA",
			1,
			"futura_ltregular",
false,true,5300005746961192,false
		]
,		[
			1,
			"REST_SERVICE_DOMAIN",
			1,
			"http://54.254.239.126/youvstheworld1/index.php/",
false,true,1109550065745075,false
		]
,		[
			1,
			"currentStoryAnimation",
			1,
			"",
false,false,2314075833054593,false
		]
,		[
			1,
			"CSS_1",
			1,
			"stylesheet.css",
false,true,8500239967162641,false
		]
,		[
			1,
			"FONT_1",
			1,
			"gotham_mediumregular",
false,true,5243473680653982,false
		]
,		[
			1,
			"FONT_2",
			1,
			"tiza_negraregular",
false,true,2815394137831049,false
		]
,		[
			1,
			"FONT_3",
			1,
			"tw_cen_mt_condensed_extra_bRg",
false,true,8422126902821961,false
		]
,		[
			1,
			"FONT_6",
			1,
			"tw_cen_mt_condensed_extra_bRg",
false,true,818896257454818,false
		]
,		[
			1,
			"FONT_4_TETRIS",
			1,
			"calibriregular",
false,true,2791741367311177,false
		]
,		[
			1,
			"FONT_5_ANGRYBIRDS",
			1,
			"30_pack_girlbold",
false,true,3258344662902549,false
		]
,		[
			1,
			"CURR_SOUND",
			0,
			1,
false,false,6391803560038196,false
		]
,		[
			1,
			"CURR_GAMEMODE",
			0,
			0,
false,false,7272456711902754,false
		]
,		[
			1,
			"currentMission",
			1,
			"",
false,false,1332491423671335,false
		]
,		[
			1,
			"currentPrologue",
			1,
			"",
false,false,6995066231066026,false
		]
,		[
			1,
			"playerUsername",
			1,
			"",
false,false,7266802589909643,false
		]
,		[
			1,
			"playerName",
			1,
			"",
false,false,5881633109103245,false
		]
,		[
			1,
			"playerGender",
			1,
			"",
false,false,7635216651161708,false
		]
,		[
			1,
			"currentGameId",
			0,
			0,
false,false,9906067586922395,false
		]
,		[
			0,
			[true, "Global Functions"],
			false,
			null,
			7947056967964268,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				7947056967964268,
				false
				,[
				[
					1,
					[
						2,
						"Global Functions"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				4655455778212993,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					809408842486012,
					false
					,[
					[
						1,
						[
							2,
							"gameMode"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					5133040817558073,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6785612532858128,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						8117289176000126,
						false
						,[
						[
							11,
							"CURR_GAMEMODE"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						268,
						cr.plugins_.Sprite.prototype.acts.Destroy,
						null,
						4538338432563647,
						false
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						9587216743433286,
						false
						,[
						[
							4,
							268
						]
,						[
							5,
							[
								2,
								"hud"
							]
						]
,						[
							0,
							[
								19,
								cr.system_object.prototype.exps.viewportright
								,[
[
									2,
									"hud"
								]
								]
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						268,
						cr.plugins_.Sprite.prototype.acts.MoveToTop,
						null,
						2422524308199431,
						false
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8449506398230358,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						7343754023485615,
						false
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4767175073185072,
						false
						,[
						[
							11,
							"CURR_GAMEMODE"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4471045492746616,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						491244918357874,
						false
						,[
						[
							1,
							[
								2,
								"soundPlay"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2143613808424695,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					1064461656032034,
					false
					,[
					[
						1,
						[
							2,
							"soundPlay"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					5803358539591626,
					[
					[
						-1,
						cr.system_object.prototype.cnds.CompareVar,
						null,
						0,
						false,
						false,
						false,
						7916553390515114,
						false
						,[
						[
							11,
							"CURR_GAMEMODE"
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						174768850591063,
						false
						,[
						[
							7,
							[
								23,
								"CURR_SOUND"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						8365856449919955,
						[
						[
							251,
							cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
							null,
							0,
							false,
							true,
							false,
							8005662743627433,
							false
							,[
							[
								1,
								[
									2,
									"game_bg"
								]
							]
							]
						]
						],
						[
						[
							251,
							cr.plugins_.Audio.prototype.acts.PlayByName,
							null,
							5113312310595675,
							false
							,[
							[
								3,
								1
							]
,							[
								1,
								[
									2,
									"story_bg"
								]
							]
,							[
								3,
								1
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								1,
								[
									2,
									"game_bg"
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8471594365182323,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						48669968591331,
						false
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.Stop,
						null,
						6942128232631984,
						false
						,[
						[
							1,
							[
								2,
								"game_bg"
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1663265838590966,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					2453322796440663,
					false
					,[
					[
						1,
						[
							2,
							"soundToggle"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					5591758855156396,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6495365367733015,
						false
						,[
						[
							7,
							[
								23,
								"CURR_SOUND"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						6161715129232617,
						false
						,[
						[
							11,
							"CURR_SOUND"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						251,
						cr.plugins_.Audio.prototype.acts.SetSilent,
						null,
						6116270756889478,
						false
						,[
						[
							3,
							1
						]
						]
					]
,					[
						45,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						3423092890173661,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					5439352980441531,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						3198969654254638,
						false
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3479894550111404,
						false
						,[
						[
							11,
							"CURR_SOUND"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						251,
						cr.plugins_.Audio.prototype.acts.SetSilent,
						null,
						8475993981012305,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						45,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						7884789703738486,
						false
						,[
						[
							0,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2463123677646613,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4317702380024469,
						false
						,[
						[
							1,
							[
								2,
								"soundPlay"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4165513924088884,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					4179321179731161,
					false
					,[
					[
						1,
						[
							2,
							"print"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					6876522617944512,
					[
					[
						253,
						cr.plugins_.TextBox.prototype.cnds.IsOnScreen,
						null,
						0,
						false,
						false,
						false,
						781943551320107,
						false
					]
,					[
						249,
						cr.plugins_.Function.prototype.cnds.CompareParam,
						null,
						0,
						false,
						false,
						false,
						5965729326408956,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							8,
							1
						]
,						[
							7,
							[
								2,
								""
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						6385351853070764,
						[
						[
							249,
							cr.plugins_.Function.prototype.cnds.CompareParam,
							null,
							0,
							false,
							false,
							false,
							6975030641034077,
							false
							,[
							[
								0,
								[
									0,
									1
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							253,
							cr.plugins_.TextBox.prototype.acts.SetText,
							null,
							1941227699585633,
							false
							,[
							[
								1,
								[
									10,
									[
										20,
										249,
										cr.plugins_.Function.prototype.exps.Param,
										false,
										null
										,[
[
											0,
											0
										]
										]
									]
									,[
										19,
										cr.system_object.prototype.exps.newline
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						2429266283851014,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							9611148944312734,
							false
						]
						],
						[
						[
							253,
							cr.plugins_.TextBox.prototype.acts.SetText,
							null,
							9446287304901059,
							false
							,[
							[
								1,
								[
									10,
									[
										10,
										[
											20,
											253,
											cr.plugins_.TextBox.prototype.exps.Text,
											true,
											null
										]
										,[
											20,
											249,
											cr.plugins_.Function.prototype.exps.Param,
											false,
											null
											,[
[
												0,
												0
											]
											]
										]
									]
									,[
										19,
										cr.system_object.prototype.exps.newline
									]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				5048789524308243,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					6655032580566606,
					false
					,[
					[
						1,
						[
							2,
							"resetGender"
						]
					]
					]
				]
				],
				[
				]
			]
,			[
				0,
				null,
				false,
				null,
				9832112540015927,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5387050420732628,
					false
					,[
					[
						1,
						[
							2,
							"loadMissions"
						]
					]
					]
				]
				],
				[
				[
					2,
					cr.plugins_.Arr.prototype.acts.SetSize,
					null,
					2502009853354292,
					false
					,[
					[
						0,
						[
							23,
							"NUM_OF_MISSIONS"
						]
					]
,					[
						0,
						[
							0,
							6
						]
					]
,					[
						0,
						[
							0,
							1
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					7961314533816655,
					[
					[
						2,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						452367624792331,
						false
						,[
						[
							3,
							2
						]
						]
					]
					],
					[
					[
						2,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						1625894193579283,
						false
						,[
						[
							0,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								4,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
,					[
						2,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						2687799042384587,
						false
						,[
						[
							0,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								5
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						7729213071409771,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							776953632395927,
							false
							,[
							[
								7,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									4
								]
							]
							]
						]
						],
						[
						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							1184578434974221,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9763071443891573,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Coming Soon"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9797280375729031,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									4
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Coming Soon"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1782056799249078,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3442697429495827,
							false
							,[
							[
								7,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						],
						[
						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6849894396628286,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9817633645227452,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Mission4Level1"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6890273926017485,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Attack The Block"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							2765139895083244,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									4
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Mission4Prologue"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							3803429467467269,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									5
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7881412751901382,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3261786877229802,
							false
							,[
							[
								7,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									2
								]
							]
							]
						]
						],
						[
						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							8667361153742416,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							1037164502164678,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"LayoutGameMission1"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6216020796068647,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Save The Cell"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9926246367153764,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									4
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Mission1Prologue"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6449218830355752,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									5
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1447755336190154,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							8810236018261304,
							false
							,[
							[
								7,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									3
								]
							]
							]
						]
						],
						[
						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							1470834796747317,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							3425269044821823,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Mission3Meal"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9400597969978319,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Shop Till You Drop"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6101422986943572,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									4
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Mission3Prologue"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							1136862642803034,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									5
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3973492267655881,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							4668445341977453,
							false
							,[
							[
								7,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							690266889969524,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							7531955631867846,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"LayoutGameMission2"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							7372692106172928,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Mind Your Head"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							4391113929279331,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									4
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Mission2Prologue"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							9732983074971365,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									5
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						157318142488363,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							215353992719074,
							false
							,[
							[
								7,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									5
								]
							]
							]
						]
						],
						[
						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6322444578162264,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							7304366613592037,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Coming Soon"
								]
							]
							]
						]
,						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							111283202419028,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									4
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									2,
									"Coming Soon"
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3484654788089729,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					7459631072805334,
					false
					,[
					[
						1,
						[
							2,
							"destroyCloseBtnPopup"
						]
					]
					]
				]
				],
				[
				[
					269,
					cr.plugins_.Text.prototype.acts.Destroy,
					null,
					5455747727414058,
					false
				]
,				[
					258,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					3317020808410899,
					false
				]
,				[
					271,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					834605128752064,
					false
				]
,				[
					270,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1794839874105357,
					false
				]
				]
			]
			]
		]
,		[
			0,
			[true, "GlobalTouch Events"],
			false,
			null,
			508450394845805,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				508450394845805,
				false
				,[
				[
					1,
					[
						2,
						"GlobalTouch Events"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				3313091381918982,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					1103845992481044,
					false
					,[
					[
						4,
						271
					]
					]
				]
				],
				[
				[
					266,
					cr.plugins_.WebStorage.prototype.acts.StoreLocal,
					null,
					7417418564684445,
					false
					,[
					[
						1,
						[
							2,
							"dictMissions"
						]
					]
,					[
						7,
						[
							20,
							265,
							cr.plugins_.Dictionary.prototype.exps.AsJSON,
							true,
							null
						]
					]
					]
				]
,				[
					262,
					cr.plugins_.Browser.prototype.acts.ExecJs,
					null,
					7445406742879538,
					false
					,[
					[
						1,
						[
							10,
							[
								10,
								[
									2,
									"(function(){\n			var callEjectaBridgeForScorePush = function(currentScore,currentSelectedGame){\n				var simpleTest = new Ejecta.EJJsBridge(currentScore,currentSelectedGame);\n				var paramStr = simpleTest.loadWebPage();\n				return paramStr;				 \n			}\n				\n			var gameParams = callEjectaBridgeForScorePush(0,"
								]
								,[
									20,
									265,
									cr.plugins_.Dictionary.prototype.exps.Get,
									false,
									null
									,[
[
										2,
										"currentSelectedGame"
									]
									]
								]
							]
							,[
								2,
								");\n		}());"
							]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				6916326554809594,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					7125956459045567,
					false
					,[
					[
						4,
						270
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					8269823062087918,
					false
					,[
					[
						1,
						[
							2,
							"destroyCloseBtnPopup"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				8419409578336094,
				[
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					2081245776085172,
					false
					,[
					[
						1,
						[
							2,
							"resetGender"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				5070106355932757,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					5123280590876217,
					false
					,[
					[
						4,
						268
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					3964110890448768,
					false
					,[
					[
						1,
						[
							2,
							"destroyCloseBtnPopup"
						]
					]
,					[
						13,
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					3447370636270067,
					false
					,[
					[
						4,
						258
					]
,					[
						5,
						[
							2,
							"hud"
						]
					]
,					[
						0,
						[
							7,
							[
								19,
								cr.system_object.prototype.exps.viewportright
								,[
[
									2,
									"hud"
								]
								]
							]
							,[
								0,
								2
							]
						]
					]
,					[
						0,
						[
							7,
							[
								19,
								cr.system_object.prototype.exps.viewportbottom
								,[
[
									2,
									"hud"
								]
								]
							]
							,[
								0,
								2
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					7824923987915492,
					false
					,[
					[
						4,
						271
					]
,					[
						5,
						[
							2,
							"hud"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					8394830060564115,
					false
					,[
					[
						4,
						270
					]
,					[
						5,
						[
							2,
							"hud"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.CreateObject,
					null,
					3776147673726071,
					false
					,[
					[
						4,
						269
					]
,					[
						5,
						[
							2,
							"hud"
						]
					]
,					[
						0,
						[
							4,
							[
								20,
								258,
								cr.plugins_.Sprite.prototype.exps.BBoxLeft,
								false,
								null
							]
							,[
								0,
								20
							]
						]
					]
,					[
						0,
						[
							4,
							[
								20,
								258,
								cr.plugins_.Sprite.prototype.exps.BBoxTop,
								false,
								null
							]
							,[
								0,
								30
							]
						]
					]
					]
				]
,				[
					269,
					cr.plugins_.Text.prototype.acts.SetSize,
					null,
					501799959382173,
					false
					,[
					[
						0,
						[
							5,
							[
								20,
								258,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
							,[
								0,
								40
							]
						]
					]
,					[
						0,
						[
							5,
							[
								20,
								258,
								cr.plugins_.Sprite.prototype.exps.Height,
								false,
								null
							]
							,[
								0,
								100
							]
						]
					]
					]
				]
,				[
					269,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					9445557319805997,
					false
					,[
					[
						7,
						[
							2,
							"Are you sure you want to Quit?"
						]
					]
					]
				]
,				[
					271,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					8151061263531604,
					false
					,[
					[
						0,
						[
							5,
							[
								5,
								[
									4,
									[
										20,
										258,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											20,
											258,
											cr.plugins_.Sprite.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
								,[
									20,
									271,
									cr.plugins_.Sprite.prototype.exps.Width,
									false,
									null
								]
							]
							,[
								0,
								10
							]
						]
					]
,					[
						0,
						[
							5,
							[
								5,
								[
									20,
									258,
									cr.plugins_.Sprite.prototype.exps.BBoxBottom,
									false,
									null
								]
								,[
									20,
									271,
									cr.plugins_.Sprite.prototype.exps.Height,
									false,
									null
								]
							]
							,[
								0,
								20
							]
						]
					]
					]
				]
,				[
					270,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					1158662147059462,
					false
					,[
					[
						0,
						[
							4,
							[
								4,
								[
									20,
									258,
									cr.plugins_.Sprite.prototype.exps.BBoxLeft,
									false,
									null
								]
								,[
									7,
									[
										20,
										258,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
									,[
										0,
										2
									]
								]
							]
							,[
								0,
								10
							]
						]
					]
,					[
						0,
						[
							5,
							[
								5,
								[
									20,
									258,
									cr.plugins_.Sprite.prototype.exps.BBoxBottom,
									false,
									null
								]
								,[
									20,
									270,
									cr.plugins_.Sprite.prototype.exps.Height,
									false,
									null
								]
							]
							,[
								0,
								20
							]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			4045393872454117,
			[
			],
			[
			]
		]
,		[
			0,
			null,
			false,
			null,
			8950835142227593,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				8770840302387338,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				5653812429248714,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					9049771404434399,
					false
					,[
					[
						7,
						[
							23,
							"CURR_SOUND"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					6741698800480309,
					false
					,[
					[
						11,
						"CURR_SOUND"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2530329617891747,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Else,
					null,
					0,
					false,
					false,
					false,
					2906274850836919,
					false
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					282949840078092,
					false
					,[
					[
						11,
						"CURR_SOUND"
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1189047080446865,
				[
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					4470925363982359,
					false
					,[
					[
						1,
						[
							2,
							"soundToggle"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9070982960040205,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLoadFinished,
				null,
				1,
				false,
				false,
				false,
				570501345042747,
				false
			]
			],
			[
			]
		]
,		[
			0,
			null,
			false,
			null,
			3210323452406101,
			[
			],
			[
			[
				251,
				cr.plugins_.Audio.prototype.acts.PreloadByName,
				null,
				4180281032292336,
				false
				,[
				[
					3,
					1
				]
,				[
					1,
					[
						2,
						"story_bg"
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"EventSheetMission",
		[
		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			1,
			"NUM_OF_MISSIONS",
			0,
			6,
false,true,9684020713667875,false
		]
,		[
			1,
			"DISPLAY_MISSION_PER_ROW",
			0,
			3,
false,true,5880062543062471,false
		]
,		[
			0,
			null,
			false,
			null,
			230313445955953,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				6161229823806118,
				false
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				7912860589460475,
				false
				,[
				[
					1,
					[
						2,
						"gameMode"
					]
				]
,				[
					13,
											[
							7,
							[
								0,
								0
							]
						]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				true,
				null,
				3113661444816101,
				[
				[
					257,
					cr.plugins_.Dictionary.prototype.cnds.HasKey,
					null,
					0,
					false,
					true,
					false,
					2414725452989375,
					false
					,[
					[
						1,
						[
							2,
							"subscriptionType"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					9277627403097139,
					false
					,[
					[
						7,
						[
							20,
							257,
							cr.plugins_.Dictionary.prototype.exps.Get,
							false,
							null
							,[
[
								2,
								"subscriptionType"
							]
							]
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"guest"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					2857952724033261,
					[
					[
						2,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						9947079409074282,
						false
						,[
						[
							3,
							2
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						2097418173179516,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							3884224257881517,
							false
							,[
							[
								7,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						],
						[
						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6367688847022763,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						9241087591493954,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							7429151423773595,
							false
						]
						],
						[
						[
							2,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							1962001483389752,
							false
							,[
							[
								0,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4245718966603199,
				[
				[
					257,
					cr.plugins_.Dictionary.prototype.cnds.HasKey,
					null,
					0,
					false,
					false,
					false,
					7619453001705362,
					false
					,[
					[
						1,
						[
							2,
							"subscriptionType"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					4404037251716294,
					false
					,[
					[
						7,
						[
							20,
							257,
							cr.plugins_.Dictionary.prototype.exps.Get,
							false,
							null
							,[
[
								2,
								"subscriptionType"
							]
							]
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							2,
							"org"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					6858467141876463,
					[
					[
						2,
						cr.plugins_.Arr.prototype.cnds.ArrForEach,
						null,
						0,
						true,
						false,
						false,
						2442321919230163,
						false
						,[
						[
							3,
							2
						]
						]
					]
					],
					[
					[
						2,
						cr.plugins_.Arr.prototype.acts.SetXYZ,
						null,
						6420627142646744,
						false
						,[
						[
							0,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.CurX,
								false,
								null
							]
						]
,						[
							0,
							[
								0,
								1
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				9530718850986847,
				[
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					5519487460730659,
					false
					,[
					[
						1,
						[
							2,
							"displayMissions"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9707516776067235,
			[
			[
				249,
				cr.plugins_.Function.prototype.cnds.OnFunction,
				null,
				2,
				false,
				false,
				false,
				5426655115052144,
				false
				,[
				[
					1,
					[
						2,
						"displayMissions"
					]
				]
				]
			]
			],
			[
			[
				66,
				cr.plugins_.Sprite.prototype.acts.Destroy,
				null,
				7670443347183034,
				false
			]
			]
			,[
			[
				1,
				"cur_row",
				0,
				-1,
false,false,6688159881700654,false
			]
,			[
				0,
				null,
				false,
				null,
				5005578249498478,
				[
				[
					2,
					cr.plugins_.Arr.prototype.cnds.ArrForEach,
					null,
					0,
					true,
					false,
					false,
					3630902928517989,
					false
					,[
					[
						3,
						2
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					8034285185668187,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6766948585334861,
						false
						,[
						[
							7,
							[
								8,
								[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
								,[
									23,
									"DISPLAY_MISSION_PER_ROW"
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.AddVar,
						null,
						2677955717293857,
						false
						,[
						[
							11,
							"cur_row"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
,				[
					1,
					"POS_X",
					0,
					0,
false,false,5478047820007029,false
				]
,				[
					1,
					"POS_Y",
					0,
					0,
false,false,8560469565042647,false
				]
,				[
					1,
					"missionState",
					1,
					"locked",
false,false,9461359295108421,false
				]
,				[
					0,
					null,
					false,
					null,
					1995536507872529,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5887086091902493,
						false
						,[
						[
							7,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
,[
									0,
									1
								]
,[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						9987866640097852,
						false
						,[
						[
							7,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
,[
									0,
									5
								]
,[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						3668717837396228,
						false
						,[
						[
							11,
							"missionState"
						]
,						[
							7,
							[
								2,
								"unlocked"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3457799396918078,
					[
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						7697394584990258,
						false
						,[
						[
							11,
							"POS_X"
						]
,						[
							7,
							[
								0,
								303
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4960729813169562,
						false
						,[
						[
							11,
							"POS_Y"
						]
,						[
							7,
							[
								4,
								[
									6,
									[
										20,
										2,
										cr.plugins_.Arr.prototype.exps.CurX,
										false,
										null
									]
									,[
										4,
										[
											20,
											64,
											cr.plugins_.Sprite.prototype.exps.Height,
											false,
											null
										]
										,[
											0,
											3
										]
									]
								]
								,[
									0,
									220
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						3477941521198356,
						false
						,[
						[
							4,
							64
						]
,						[
							5,
							[
								2,
								"mission_layer"
							]
						]
,						[
							0,
							[
								23,
								"POS_X"
							]
						]
,						[
							0,
							[
								23,
								"POS_Y"
							]
						]
						]
					]
,					[
						64,
						cr.plugins_.Sprite.prototype.acts.StopAnim,
						null,
						7865138530132294,
						false
					]
,					[
						64,
						cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
						null,
						9600323476310455,
						false
						,[
						[
							10,
							0
						]
,						[
							7,
							[
								2,
								"0"
							]
						]
						]
					]
,					[
						64,
						cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
						null,
						3652831847024458,
						false
						,[
						[
							10,
							1
						]
,						[
							7,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
,[
									0,
									1
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						64,
						cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
						null,
						5532766784933275,
						false
						,[
						[
							10,
							0
						]
,						[
							7,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
,[
									0,
									2
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						64,
						cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
						null,
						5093668565815044,
						false
						,[
						[
							10,
							2
						]
,						[
							7,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
,[
									0,
									4
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						2633965170080142,
						false
						,[
						[
							4,
							66
						]
,						[
							5,
							[
								2,
								"mission_layer"
							]
						]
,						[
							0,
							[
								4,
								[
									23,
									"POS_X"
								]
								,[
									0,
									450
								]
							]
						]
,						[
							0,
							[
								4,
								[
									23,
									"POS_Y"
								]
								,[
									0,
									10
								]
							]
						]
						]
					]
,					[
						66,
						cr.plugins_.Sprite.prototype.acts.SetAnim,
						null,
						5280754171757351,
						false
						,[
						[
							1,
							[
								23,
								"missionState"
							]
						]
,						[
							3,
							1
						]
						]
					]
,					[
						66,
						cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
						null,
						6250344297974043,
						false
						,[
						[
							10,
							0
						]
,						[
							7,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						25,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						9881906423838229,
						false
						,[
						[
							7,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
,[
									0,
									3
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						25,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						5073258813334273,
						false
						,[
						[
							0,
							[
								23,
								"POS_X"
							]
						]
,						[
							0,
							[
								23,
								"POS_Y"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						7778001655426793,
						false
						,[
						[
							4,
							65
						]
,						[
							5,
							[
								2,
								"mission_layer"
							]
						]
,						[
							0,
							[
								4,
								[
									23,
									"POS_X"
								]
								,[
									0,
									570
								]
							]
						]
,						[
							0,
							[
								5,
								[
									4,
									[
										23,
										"POS_Y"
									]
									,[
										0,
										10
									]
								]
								,[
									0,
									5
								]
							]
						]
						]
					]
,					[
						65,
						cr.plugins_.Sprite.prototype.acts.SetAnim,
						null,
						2928648743404502,
						false
						,[
						[
							1,
							[
								23,
								"missionState"
							]
						]
,						[
							3,
							1
						]
						]
					]
,					[
						65,
						cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
						null,
						8145854906510561,
						false
						,[
						[
							0,
							[
								20,
								2,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									2,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			8195090600905618,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				3511175024923241,
				false
				,[
				[
					4,
					64
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				2012625635285829,
				false
				,[
				[
					1,
					[
						2,
						"print"
					]
				]
,				[
					13,
											[
							7,
							[
								10,
								[
									2,
									"sprMissionNum:"
								]
								,[
									21,
									66,
									false,
									null
									,0
								]
							]
						]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				5425165671651675,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					344736597235695,
					false
					,[
					[
						7,
						[
							21,
							64,
							false,
							null
							,1
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				],
				[
				[
					64,
					cr.plugins_.Sprite.prototype.acts.StartAnim,
					null,
					9621968283104034,
					false
					,[
					[
						3,
						1
					]
					]
				]
,				[
					251,
					cr.plugins_.Audio.prototype.acts.Play,
					null,
					5313817612236513,
					false
					,[
					[
						2,
						["mission-select",false]
					]
,					[
						3,
						0
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						1,
						[
							2,
							"mission-select"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			6309936056593786,
			[
			[
				64,
				cr.plugins_.Sprite.prototype.cnds.OnAnimFinished,
				null,
				1,
				false,
				false,
				false,
				989650967820464,
				false
				,[
				[
					1,
					[
						2,
						"Default"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				3967647055814118,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					2923689728137774,
					false
					,[
					[
						7,
						[
							21,
							64,
							false,
							null
							,1
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					6625304089168065,
					false
					,[
					[
						11,
						"currentMission"
					]
,					[
						7,
						[
							21,
							64,
							true,
							null
							,0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					7249320171143768,
					false
					,[
					[
						11,
						"currentPrologue"
					]
,					[
						7,
						[
							21,
							64,
							true,
							null
							,2
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.GoToLayout,
					null,
					2804715358018874,
					false
					,[
					[
						6,
						"LayoutMissionPrologue"
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				290670193045993,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					1175095910334576,
					false
					,[
					[
						7,
						[
							21,
							64,
							false,
							null
							,1
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							2
						]
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					2267116626074459,
					false
					,[
					[
						11,
						"currentMission"
					]
,					[
						7,
						[
							21,
							64,
							true,
							null
							,0
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					3646132669202527,
					false
					,[
					[
						11,
						"currentPrologue"
					]
,					[
						7,
						[
							21,
							64,
							true,
							null
							,2
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.GoToLayout,
					null,
					3619123414845731,
					false
					,[
					[
						6,
						"LayoutMissionPrologue"
					]
					]
				]
				]
			]
			]
		]
,		[
			1,
			"m4_canonDownwardAngle2",
			0,
			0,
false,false,2645371016765882,false
		]
		]
	]
,	[
		"ES_MissionPrologue",
		[
		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			0,
			null,
			false,
			null,
			2847686338849156,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				9316719117801342,
				false
			]
			],
			[
			[
				53,
				cr.plugins_.Sprite.prototype.acts.SetPos,
				null,
				6752491015314343,
				false
				,[
				[
					0,
					[
						5,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.layoutwidth
							]
							,[
								20,
								53,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
						,[
							0,
							30
						]
					]
				]
,				[
					0,
					[
						5,
						[
							5,
							[
								19,
								cr.system_object.prototype.exps.layoutheight
							]
							,[
								20,
								53,
								cr.plugins_.Sprite.prototype.exps.Height,
								false,
								null
							]
						]
						,[
							0,
							30
						]
					]
				]
				]
			]
,			[
				62,
				cr.plugins_.Sprite.prototype.acts.SetAnim,
				null,
				2276304516144903,
				false
				,[
				[
					1,
					[
						23,
						"currentPrologue"
					]
				]
,				[
					3,
					1
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				9502603278962492,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					true,
					false,
					35023751024936,
					false
					,[
					[
						1,
						[
							2,
							"story_bg"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.PlayByName,
					null,
					4199976917928039,
					false
					,[
					[
						3,
						1
					]
,					[
						1,
						[
							2,
							"story_bg"
						]
					]
,					[
						3,
						1
					]
,					[
						0,
						[
							0,
							-10
						]
					]
,					[
						1,
						[
							2,
							"story_bg"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			8911117294790192,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				1421068780451009,
				false
				,[
				[
					4,
					53
				]
				]
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.GoToLayoutByName,
				null,
				9876082587953583,
				false
				,[
				[
					1,
					[
						23,
						"currentMission"
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9374582266522034,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutEnd,
				null,
				1,
				false,
				false,
				false,
				9385094574829589,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				4263338150157472,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					false,
					false,
					2204126709902922,
					false
					,[
					[
						1,
						[
							2,
							"prologueVoiceOver"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.Stop,
					null,
					2552229071472219,
					false
					,[
					[
						1,
						[
							2,
							"prologueVoiceOver"
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1894454757043654,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					false,
					false,
					5605481932931966,
					false
					,[
					[
						1,
						[
							2,
							"story_bg"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.Stop,
					null,
					1639158992124867,
					false
					,[
					[
						1,
						[
							2,
							"story_bg"
						]
					]
					]
				]
				]
			]
			]
		]
		]
	]
,	[
		"EventSheetGameMission2",
		[
		[
			1,
			"m2_timeLeft",
			0,
			0,
false,false,8245173489186003,false
		]
,		[
			1,
			"M2_HUD_DISTANCE_FROM_BOARD",
			0,
			50,
false,true,6096466397837988,false
		]
,		[
			1,
			"M2_BRAIN_INCR",
			0,
			6,
false,true,8847319637812123,false
		]
,		[
			1,
			"m2_CUR_BALL_GEN_SPEED",
			0,
			3,
false,false,9140699160870139,false
		]
,		[
			1,
			"m2_CUR_BALL_SPEED",
			0,
			400,
false,false,1408287547149532,false
		]
,		[
			1,
			"m2_CUR_BALL_THROW_SPEED_INCR",
			0,
			10,
false,false,220042273873867,false
		]
,		[
			1,
			"m2_next_ball",
			0,
			0,
false,false,2455795713060178,false
		]
,		[
			1,
			"m2_gross_score",
			0,
			0,
false,false,6338364712985656,false
		]
,		[
			1,
			"m2_totalBalls",
			0,
			0,
false,false,3012880359962092,false
		]
,		[
			1,
			"m2_scoredBalls",
			0,
			0,
false,false,605965767800884,false
		]
,		[
			1,
			"m2_currentQA",
			0,
			0,
false,false,6695371355242748,false
		]
,		[
			1,
			"m2_modeQA",
			0,
			0,
false,false,208220255903922,false
		]
,		[
			1,
			"m2_modePlay",
			0,
			0,
false,false,6906969156174314,false
		]
,		[
			1,
			"m2_modeMissionOver",
			0,
			0,
false,false,3047370959512644,false
		]
,		[
			1,
			"m2_modeQAHint",
			0,
			0,
false,false,5270633818176187,false
		]
,		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			0,
			null,
			false,
			null,
			5461962254273555,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				767111839360087,
				false
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				4365391039062551,
				false
				,[
				[
					11,
					"currentGameId"
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
,			[
				255,
				cr.plugins_.AJAX.prototype.acts.Request,
				null,
				8237674486779544,
				false
				,[
				[
					1,
					[
						2,
						"mission2_qa"
					]
				]
,				[
					1,
					[
						10,
						[
							10,
							[
								10,
								[
									10,
									[
										23,
										"REST_SERVICE_DOMAIN"
									]
									,[
										2,
										"questionbank?id="
									]
								]
								,[
									23,
									"currentGameId"
								]
							]
							,[
								2,
								"&username="
							]
						]
						,[
							20,
							257,
							cr.plugins_.Dictionary.prototype.exps.Get,
							false,
							null
							,[
[
								2,
								"email"
							]
							]
						]
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				1652034816388085,
				false
				,[
				[
					1,
					[
						2,
						"hideQuestion"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				7966149357214111,
				false
				,[
				[
					1,
					[
						2,
						"scoreOverDisplay"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				9439724501268795,
				false
				,[
				[
					11,
					"m2_timeLeft"
				]
,				[
					7,
					[
						0,
						180
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				1440133308255373,
				false
				,[
				[
					11,
					"m2_scoredBalls"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				9041599207954979,
				false
				,[
				[
					11,
					"m2_totalBalls"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				2227871637496643,
				false
				,[
				[
					11,
					"m2_gross_score"
				]
,				[
					7,
					[
						0,
						0
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.acts.SetVar,
				null,
				7614845392336319,
				false
				,[
				[
					11,
					"m2_CUR_BALL_SPEED"
				]
,				[
					7,
					[
						0,
						700
					]
				]
				]
			]
,			[
				253,
				cr.plugins_.TextBox.prototype.acts.SetPos,
				null,
				6125453625514569,
				false
				,[
				[
					0,
					[
						23,
						"hiddenPosX"
					]
				]
,				[
					0,
					[
						0,
						0
					]
				]
				]
			]
			]
			,[
			[
				1,
				"m2_leftHUDPoint",
				0,
				0,
false,false,9909137080972725,false
			]
,			[
				1,
				"m2_rightHUDPoint",
				0,
				0,
false,false,4217437556798694,false
			]
,			[
				0,
				null,
				false,
				null,
				8956790295776439,
				[
				],
				[
				[
					96,
					cr.behaviors.Pin.prototype.acts.Pin,
					"Pin",
					8694443965377289,
					false
					,[
					[
						4,
						88
					]
,					[
						3,
						0
					]
					]
				]
,				[
					76,
					cr.plugins_.TiledBg.prototype.acts.SetPos,
					null,
					4855942922978553,
					false
					,[
					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					87,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1844162331260306,
					false
				]
,				[
					97,
					cr.plugins_.Arr.prototype.acts.SetSize,
					null,
					3889982986442355,
					false
					,[
					[
						0,
						[
							20,
							87,
							cr.plugins_.Sprite.prototype.exps.AnimationFrameCount,
							false,
							null
						]
					]
,					[
						0,
						[
							0,
							4
						]
					]
,					[
						0,
						[
							0,
							1
						]
					]
					]
				]
,				[
					105,
					cr.plugins_.TiledBg.prototype.acts.Destroy,
					null,
					8193595090585166,
					false
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					8367525891889609,
					[
					],
					[
					[
						77,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						905032874333641,
						false
						,[
						[
							0,
							[
								7,
								[
									5,
									[
										19,
										cr.system_object.prototype.exps.layoutwidth
									]
									,[
										20,
										77,
										cr.plugins_.TiledBg.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									2
								]
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						3039004364841985,
						false
						,[
						[
							4,
							105
						]
,						[
							5,
							[
								2,
								"bg"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								19,
								cr.system_object.prototype.exps.floor
								,[
[
									7,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										0,
										2
									]
								]
								]
							]
						]
						]
					]
,					[
						105,
						cr.plugins_.TiledBg.prototype.acts.SetWidth,
						null,
						4336317978396335,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.layoutwidth
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.CreateObject,
						null,
						6725437586121981,
						false
						,[
						[
							4,
							105
						]
,						[
							5,
							[
								2,
								"bg"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								19,
								cr.system_object.prototype.exps.layoutheight
							]
						]
						]
					]
,					[
						105,
						cr.plugins_.TiledBg.prototype.acts.SetWidth,
						null,
						2551353205386409,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.layoutwidth
							]
						]
						]
					]
,					[
						88,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						239785192313627,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									77,
									cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
									false,
									null
								]
								,[
									7,
									[
										20,
										77,
										cr.plugins_.TiledBg.prototype.exps.Width,
										false,
										null
									]
									,[
										0,
										2
									]
								]
							]
						]
,						[
							0,
							[
								19,
								cr.system_object.prototype.exps.layoutheight
							]
						]
						]
					]
,					[
						88,
						cr.plugins_.Sprite.prototype.acts.RotateClockwise,
						null,
						4548915060411495,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									88,
									cr.plugins_.Sprite.prototype.exps.Angle,
									false,
									null
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4860605512975441,
					[
					],
					[
					[
						85,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						5868583165362963,
						false
						,[
						[
							0,
							[
								0,
								-10
							]
						]
,						[
							0,
							[
								7,
								[
									5,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										20,
										85,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
								]
								,[
									0,
									2
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						489075970783965,
						false
						,[
						[
							11,
							"m2_leftHUDPoint"
						]
,						[
							7,
							[
								5,
								[
									7,
									[
										5,
										[
											19,
											cr.system_object.prototype.exps.layoutwidth
										]
										,[
											20,
											77,
											cr.plugins_.TiledBg.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										2
									]
								]
								,[
									23,
									"M2_HUD_DISTANCE_FROM_BOARD"
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						8159243324827339,
						[
						],
						[
						[
							83,
							cr.plugins_.TiledBg.prototype.acts.SetPos,
							null,
							4562911464275308,
							false
							,[
							[
								0,
								[
									5,
									[
										23,
										"m2_leftHUDPoint"
									]
									,[
										20,
										83,
										cr.plugins_.TiledBg.prototype.exps.Width,
										false,
										null
									]
								]
							]
,							[
								0,
								[
									0,
									10
								]
							]
							]
						]
,						[
							90,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							8329478048704553,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										83,
										cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											20,
											83,
											cr.plugins_.TiledBg.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										4,
										[
											20,
											83,
											cr.plugins_.TiledBg.prototype.exps.BBoxTop,
											false,
											null
										]
										,[
											7,
											[
												20,
												83,
												cr.plugins_.TiledBg.prototype.exps.Height,
												false,
												null
											]
											,[
												0,
												2
											]
										]
									]
									,[
										0,
										20
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						1597578502295368,
						[
						],
						[
						[
							81,
							cr.plugins_.TiledBg.prototype.acts.SetPos,
							null,
							5512381968775014,
							false
							,[
							[
								0,
								[
									5,
									[
										23,
										"m2_leftHUDPoint"
									]
									,[
										20,
										83,
										cr.plugins_.TiledBg.prototype.exps.Width,
										false,
										null
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										83,
										cr.plugins_.TiledBg.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							93,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							1916658457468065,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										81,
										cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											20,
											81,
											cr.plugins_.TiledBg.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										4,
										[
											20,
											81,
											cr.plugins_.TiledBg.prototype.exps.BBoxTop,
											false,
											null
										]
										,[
											7,
											[
												20,
												81,
												cr.plugins_.TiledBg.prototype.exps.Height,
												false,
												null
											]
											,[
												0,
												2
											]
										]
									]
									,[
										0,
										20
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7365684637883287,
						[
						],
						[
						[
							86,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							6106581448703557,
							false
							,[
							[
								0,
								[
									5,
									[
										23,
										"m2_leftHUDPoint"
									]
									,[
										20,
										83,
										cr.plugins_.TiledBg.prototype.exps.Width,
										false,
										null
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										81,
										cr.plugins_.TiledBg.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										0,
										20
									]
								]
							]
							]
						]
,						[
							94,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							6941535975443846,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										86,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										0,
										100
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										86,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										38
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6254245383380674,
						[
						],
						[
						[
							79,
							cr.plugins_.TiledBg.prototype.acts.SetPos,
							null,
							3034667168119652,
							false
							,[
							[
								0,
								[
									5,
									[
										23,
										"m2_leftHUDPoint"
									]
									,[
										20,
										83,
										cr.plugins_.TiledBg.prototype.exps.Width,
										false,
										null
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										86,
										cr.plugins_.Sprite.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							80,
							cr.plugins_.TiledBg.prototype.acts.SetPos,
							null,
							9901357146110067,
							false
							,[
							[
								0,
								[
									5,
									[
										5,
										[
											20,
											79,
											cr.plugins_.TiledBg.prototype.exps.BBoxRight,
											false,
											null
										]
										,[
											20,
											80,
											cr.plugins_.TiledBg.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										2
									]
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											79,
											cr.plugins_.TiledBg.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											20,
											80,
											cr.plugins_.TiledBg.prototype.exps.Height,
											false,
											null
										]
									]
									,[
										0,
										25
									]
								]
							]
							]
						]
,						[
							78,
							cr.plugins_.TiledBg.prototype.acts.SetPos,
							null,
							1188149205172636,
							false
							,[
							[
								0,
								[
									4,
									[
										5,
										[
											23,
											"m2_leftHUDPoint"
										]
										,[
											20,
											83,
											cr.plugins_.TiledBg.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										15
									]
								]
							]
,							[
								0,
								[
									5,
									[
										20,
										79,
										cr.plugins_.TiledBg.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										0,
										25
									]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3972798459882479,
					[
					],
					[
					[
						82,
						cr.plugins_.TiledBg.prototype.acts.Destroy,
						null,
						7219911262498043,
						false
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						5681899964228193,
						false
						,[
						[
							11,
							"m2_rightHUDPoint"
						]
,						[
							7,
							[
								4,
								[
									4,
									[
										7,
										[
											5,
											[
												19,
												cr.system_object.prototype.exps.layoutwidth
											]
											,[
												20,
												77,
												cr.plugins_.TiledBg.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
									,[
										20,
										77,
										cr.plugins_.TiledBg.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									23,
									"M2_HUD_DISTANCE_FROM_BOARD"
								]
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						2598953758440241,
						[
						[
							-1,
							cr.system_object.prototype.cnds.For,
							null,
							0,
							true,
							false,
							false,
							5868348459940683,
							false
							,[
							[
								1,
								[
									2,
									"cur_ball"
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									5,
									[
										20,
										87,
										cr.plugins_.Sprite.prototype.exps.AnimationFrameCount,
										false,
										null
									]
									,[
										0,
										1
									]
								]
							]
							]
						]
						],
						[
						[
							88,
							cr.plugins_.Sprite.prototype.acts.Spawn,
							null,
							9469949440379539,
							false
							,[
							[
								4,
								82
							]
,							[
								5,
								[
									2,
									"bg"
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							82,
							cr.plugins_.TiledBg.prototype.acts.SetPos,
							null,
							6226930591608591,
							false
							,[
							[
								0,
								[
									23,
									"m2_rightHUDPoint"
								]
							]
,							[
								0,
								[
									4,
									[
										6,
										[
											19,
											cr.system_object.prototype.exps.loopindex
											,[
[
												2,
												"cur_ball"
											]
											]
										]
										,[
											4,
											[
												20,
												82,
												cr.plugins_.TiledBg.prototype.exps.Height,
												false,
												null
											]
											,[
												0,
												25
											]
										]
									]
									,[
										0,
										30
									]
								]
							]
							]
						]
,						[
							82,
							cr.plugins_.TiledBg.prototype.acts.SetInstanceVar,
							null,
							7509530379719175,
							false
							,[
							[
								10,
								0
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.loopindex
									,[
[
										2,
										"cur_ball"
									]
									]
								]
							]
							]
						]
,						[
							89,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							142005708238701,
							false
							,[
							[
								0,
								[
									19,
									cr.system_object.prototype.exps.loopindex
									,[
[
										2,
										"cur_ball"
									]
									]
								]
							]
							]
						]
,						[
							89,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							1797404313041834,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										82,
										cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										0,
										11
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										82,
										cr.plugins_.TiledBg.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							91,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							3147249442157912,
							false
							,[
							[
								0,
								[
									5,
									[
										5,
										[
											20,
											82,
											cr.plugins_.TiledBg.prototype.exps.BBoxRight,
											false,
											null
										]
										,[
											20,
											91,
											cr.plugins_.Text.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										4
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										82,
										cr.plugins_.TiledBg.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										0,
										10
									]
								]
							]
							]
						]
,						[
							91,
							cr.plugins_.Text.prototype.acts.SetWebFont,
							null,
							3366890517226859,
							false
							,[
							[
								1,
								[
									23,
									"FONT_4_TETRIS"
								]
							]
,							[
								1,
								[
									23,
									"CSS_1"
								]
							]
							]
						]
,						[
							91,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							6122976802039445,
							false
							,[
							[
								7,
								[
									2,
									"0 %"
								]
							]
							]
						]
,						[
							92,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							5965391252274835,
							false
							,[
							[
								0,
								[
									20,
									82,
									cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
									false,
									null
								]
							]
,							[
								0,
								[
									5,
									[
										20,
										82,
										cr.plugins_.TiledBg.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										20,
										92,
										cr.plugins_.Text.prototype.exps.Height,
										false,
										null
									]
								]
							]
							]
						]
,						[
							92,
							cr.plugins_.Text.prototype.acts.SetWebFont,
							null,
							4292892789725641,
							false
							,[
							[
								1,
								[
									23,
									"FONT_4_TETRIS"
								]
							]
,							[
								1,
								[
									23,
									"CSS_1"
								]
							]
							]
						]
,						[
							97,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							6930069829448874,
							false
							,[
							[
								0,
								[
									19,
									cr.system_object.prototype.exps.loopindex
									,[
[
										2,
										"cur_ball"
									]
									]
								]
							]
,							[
								0,
								[
									0,
									2
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
,						[
							97,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							5901421577317661,
							false
							,[
							[
								0,
								[
									19,
									cr.system_object.prototype.exps.loopindex
									,[
[
										2,
										"cur_ball"
									]
									]
								]
							]
,							[
								0,
								[
									0,
									3
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									0,
									0
								]
							]
							]
						]
						]
						,[
						[
							0,
							null,
							false,
							null,
							4957324871837332,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								7786603833063071,
								false
								,[
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.loopindex
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								92,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								2321100362290471,
								false
								,[
								[
									7,
									[
										2,
										"Eat %"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							9053649955222049,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								9766948570217977,
								false
								,[
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.loopindex
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										1
									]
								]
								]
							]
							],
							[
							[
								92,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								4433186130879599,
								false
								,[
								[
									7,
									[
										2,
										"Sleep %"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							2031032799738071,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								1296125066270869,
								false
								,[
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.loopindex
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										2
									]
								]
								]
							]
							],
							[
							[
								92,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								4383183252561446,
								false
								,[
								[
									7,
									[
										2,
										"Relax %"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							3897233009299761,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								4651854440705702,
								false
								,[
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.loopindex
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										3
									]
								]
								]
							]
							],
							[
							[
								92,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								4396625261875683,
								false
								,[
								[
									7,
									[
										2,
										"Exercise %"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							8198653674569437,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								7462711418576385,
								false
								,[
								[
									7,
									[
										19,
										cr.system_object.prototype.exps.loopindex
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										4
									]
								]
								]
							]
							],
							[
							[
								92,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								6983321041452925,
								false
								,[
								[
									7,
									[
										2,
										"Control %"
									]
								]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7279434543046712,
						[
						],
						[
						[
							84,
							cr.plugins_.TiledBg.prototype.acts.SetPos,
							null,
							2112533622043415,
							false
							,[
							[
								0,
								[
									23,
									"m2_rightHUDPoint"
								]
							]
,							[
								0,
								[
									20,
									78,
									cr.plugins_.TiledBg.prototype.exps.BBoxTop,
									false,
									null
								]
							]
							]
						]
,						[
							95,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							7350591867860847,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										84,
										cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											20,
											84,
											cr.plugins_.TiledBg.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										4,
										[
											20,
											84,
											cr.plugins_.TiledBg.prototype.exps.BBoxTop,
											false,
											null
										]
										,[
											7,
											[
												20,
												84,
												cr.plugins_.TiledBg.prototype.exps.Height,
												false,
												null
											]
											,[
												0,
												2
											]
										]
									]
									,[
										0,
										20
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						6530257883724143,
						[
						],
						[
						[
							106,
							cr.plugins_.TiledBg.prototype.acts.SetPos,
							null,
							2652809028009783,
							false
							,[
							[
								0,
								[
									23,
									"m2_rightHUDPoint"
								]
							]
,							[
								0,
								[
									5,
									[
										5,
										[
											20,
											78,
											cr.plugins_.TiledBg.prototype.exps.BBoxTop,
											false,
											null
										]
										,[
											0,
											20
										]
									]
									,[
										20,
										106,
										cr.plugins_.TiledBg.prototype.exps.Height,
										false,
										null
									]
								]
							]
							]
						]
,						[
							107,
							cr.plugins_.Text.prototype.acts.SetSize,
							null,
							3459064677123399,
							false
							,[
							[
								0,
								[
									20,
									106,
									cr.plugins_.TiledBg.prototype.exps.Width,
									false,
									null
								]
							]
,							[
								0,
								[
									20,
									106,
									cr.plugins_.TiledBg.prototype.exps.Height,
									false,
									null
								]
							]
							]
						]
,						[
							107,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							6133648929669667,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										106,
										cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											20,
											106,
											cr.plugins_.TiledBg.prototype.exps.Width,
											false,
											null
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									5,
									[
										4,
										[
											20,
											106,
											cr.plugins_.TiledBg.prototype.exps.BBoxTop,
											false,
											null
										]
										,[
											7,
											[
												20,
												106,
												cr.plugins_.TiledBg.prototype.exps.Height,
												false,
												null
											]
											,[
												0,
												2
											]
										]
									]
									,[
										0,
										14
									]
								]
							]
							]
						]
,						[
							107,
							cr.plugins_.Text.prototype.acts.SetWebFont,
							null,
							7303050670497034,
							false
							,[
							[
								1,
								[
									23,
									"FONT_4_TETRIS"
								]
							]
,							[
								1,
								[
									23,
									"CSS_1"
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						7394927138634523,
						[
						],
						[
						[
							249,
							cr.plugins_.Function.prototype.acts.CallFunction,
							null,
							7440353035236391,
							false
							,[
							[
								1,
								[
									2,
									"refreshHUD"
								]
							]
,							[
								13,
							]
							]
						]
						]
					]
					]
				]
,				[
					1,
					"m2_currentLoop",
					0,
					0,
false,false,3155989955590145,false
				]
,				[
					0,
					null,
					false,
					null,
					1736530602371577,
					[
					[
						-1,
						cr.system_object.prototype.cnds.ForEach,
						null,
						0,
						true,
						false,
						false,
						630310195707405,
						false
						,[
						[
							4,
							99
						]
						]
					]
					],
					[
					[
						99,
						cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
						null,
						3361575968308725,
						false
						,[
						[
							10,
							0
						]
,						[
							7,
							[
								23,
								"m2_currentLoop"
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.AddVar,
						null,
						3404769851922338,
						false
						,[
						[
							11,
							"m2_currentLoop"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				8659007131304207,
				[
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					6475765043389108,
					false
					,[
					[
						1,
						[
							2,
							"print"
						]
					]
,					[
						13,
													[
								7,
								[
									10,
									[
										2,
										"Animation Count:"
									]
									,[
										20,
										87,
										cr.plugins_.Sprite.prototype.exps.AnimationFrameCount,
										false,
										null
									]
								]
							]
					]
					]
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					8343399363968149,
					false
					,[
					[
						1,
						[
							2,
							"resetMode"
						]
					]
,					[
						13,
													[
								7,
								[
									2,
									"play"
								]
							]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					5994353889379198,
					false
					,[
					[
						11,
						"CURR_GAMEMODE"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					6418892360840204,
					false
					,[
					[
						1,
						[
							2,
							"gameMode"
						]
					]
,					[
						13,
													[
								7,
								[
									0,
									1
								]
							]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3398275345947017,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					true,
					false,
					3499253730623295,
					false
					,[
					[
						1,
						[
							2,
							"m2_bg"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.PlayByName,
					null,
					4741036823484466,
					false
					,[
					[
						3,
						1
					]
,					[
						1,
						[
							2,
							"m2_bg"
						]
					]
,					[
						3,
						1
					]
,					[
						0,
						[
							0,
							-10
						]
					]
,					[
						1,
						[
							2,
							"m2_bg"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Touch Events"],
			false,
			null,
			1294197227951204,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				1294197227951204,
				false
				,[
				[
					1,
					[
						2,
						"Touch Events"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				7224024964758005,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					3636166035161883,
					false
					,[
					[
						4,
						86
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					7396526891584233,
					false
					,[
					[
						7,
						[
							23,
							"m2_modePlay"
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					6150588511363905,
					false
					,[
					[
						1,
						[
							2,
							"askQuestion"
						]
					]
,					[
						13,
					]
					]
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					2886429642221863,
					false
					,[
					[
						1,
						[
							2,
							"resetMode"
						]
					]
,					[
						13,
													[
								7,
								[
									2,
									"qa"
								]
							]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1182867092152116,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					9987640099725891,
					false
					,[
					[
						4,
						100
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					3681796297284049,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						2725367666438802,
						false
						,[
						[
							7,
							[
								23,
								"m2_modeQAHint"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						7981053555811445,
						false
						,[
						[
							11,
							"m2_modeQAHint"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2039293640555533,
						false
						,[
						[
							1,
							[
								2,
								"askQuestion"
							]
						]
,						[
							13,
															[
									7,
									[
										2,
										"N"
									]
								]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9726417061550636,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						9583184775707395,
						false
					]
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						6959230238811937,
						false
						,[
						[
							1,
							[
								2,
								"hideQuestion"
							]
						]
,						[
							13,
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						2556226503729453,
						false
						,[
						[
							1,
							[
								2,
								"resetMode"
							]
						]
,						[
							13,
															[
									7,
									[
										2,
										"play"
									]
								]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4503940568391726,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					2001462630223679,
					false
					,[
					[
						4,
						111
					]
					]
				]
				],
				[
				[
					265,
					cr.plugins_.Dictionary.prototype.acts.AddKey,
					null,
					355454508783774,
					false
					,[
					[
						1,
						[
							2,
							"currentScore"
						]
					]
,					[
						7,
						[
							23,
							"m2_gross_score"
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					1920211460103165,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						4804152325227294,
						false
						,[
						[
							7,
							[
								23,
								"m2_gross_score"
							]
						]
,						[
							8,
							4
						]
,						[
							7,
							[
								0,
								1500
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						2266986371238078,
						false
						,[
						[
							11,
							"currentStoryAnimation"
						]
,						[
							7,
							[
								2,
								"M2win"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					4694895391850606,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						4020536505310883,
						false
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						935435001870835,
						false
						,[
						[
							11,
							"currentStoryAnimation"
						]
,						[
							7,
							[
								2,
								"M2lost"
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7070618421180509,
					[
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.GoToLayout,
						null,
						1866973039822438,
						false
						,[
						[
							6,
							"LayoutStory"
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				573356876524171,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					7728713988212777,
					false
					,[
					[
						4,
						110
					]
					]
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.GoToLayout,
					null,
					3444268978174228,
					false
					,[
					[
						6,
						"LayoutGameMission2"
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				3963120169381699,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					9876449273470889,
					false
					,[
					[
						4,
						99
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					1768086135264695,
					false
					,[
					[
						1,
						[
							2,
							"hideQuestion"
						]
					]
,					[
						13,
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					378986227886142,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						6192168183170446,
						false
						,[
						[
							7,
							[
								21,
								99,
								false,
								null
								,0
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								20,
								101,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									23,
									"m2_currentQA"
								]
,[
									0,
									0
								]
,[
									0,
									1
								]
								]
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.AddVar,
						null,
						4575809966396333,
						false
						,[
						[
							11,
							"m2_gross_score"
						]
,						[
							7,
							[
								0,
								100
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						9686557548496292,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							587671667294758,
							false
							,[
							[
								7,
								[
									19,
									cr.system_object.prototype.exps.round
									,[
[
										7,
										[
											5,
											[
												23,
												"m2_CUR_BALL_SPEED"
											]
											,[
												0,
												100
											]
										]
										,[
											23,
											"m2_CUR_BALL_THROW_SPEED_INCR"
										]
									]
									]
								]
							]
,							[
								8,
								3
							]
,							[
								7,
								[
									6,
									[
										23,
										"m2_CUR_BALL_THROW_SPEED_INCR"
									]
									,[
										0,
										5
									]
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							1599332940111444,
							false
							,[
							[
								11,
								"m2_CUR_BALL_SPEED"
							]
,							[
								7,
								[
									0,
									100
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3371404309543962,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							5314342326559926,
							false
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7209563402307986,
							false
							,[
							[
								11,
								"m2_CUR_BALL_SPEED"
							]
,							[
								7,
								[
									5,
									[
										23,
										"m2_CUR_BALL_SPEED"
									]
									,[
										6,
										[
											23,
											"m2_CUR_BALL_THROW_SPEED_INCR"
										]
										,[
											0,
											5
										]
									]
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					2330885866005606,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						3668832706028179,
						false
						,[
						[
							1,
							[
								2,
								"resetMode"
							]
						]
,						[
							13,
															[
									7,
									[
										2,
										"play"
									]
								]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				8255309416701369,
				[
				[
					250,
					cr.plugins_.Touch.prototype.cnds.OnTouchObject,
					null,
					1,
					false,
					false,
					false,
					3246031205259165,
					false
					,[
					[
						4,
						264
					]
					]
				]
				],
				[
				[
					99,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					121495672219093,
					false
					,[
					[
						0,
						[
							23,
							"hiddenPosX"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					103,
					cr.plugins_.Text.prototype.acts.SetPos,
					null,
					8171484019092171,
					false
					,[
					[
						0,
						[
							23,
							"hiddenPosX"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					264,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					6294933524470907,
					false
					,[
					[
						0,
						[
							23,
							"hiddenPosX"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					102,
					cr.plugins_.Text.prototype.acts.SetPos,
					null,
					4985323863722779,
					false
					,[
					[
						0,
						[
							23,
							"hiddenPosX"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					263,
					cr.plugins_.Text.prototype.acts.SetPos,
					null,
					8867056649543757,
					false
					,[
					[
						0,
						[
							20,
							98,
							cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
							false,
							null
						]
					]
,					[
						0,
						[
							4,
							[
								20,
								98,
								cr.plugins_.TiledBg.prototype.exps.BBoxTop,
								false,
								null
							]
							,[
								0,
								150
							]
						]
					]
					]
				]
,				[
					263,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					9631593288606465,
					false
					,[
					[
						7,
						[
							20,
							101,
							cr.plugins_.Arr.prototype.exps.At,
							false,
							null
							,[
[
								23,
								"m2_currentQA"
							]
,[
								0,
								2
							]
,[
								0,
								0
							]
							]
						]
					]
					]
				]
,				[
					100,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					4521811475631738,
					false
					,[
					[
						0,
						[
							5,
							[
								20,
								263,
								cr.plugins_.Text.prototype.exps.BBoxRight,
								false,
								null
							]
							,[
								20,
								100,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
					]
,					[
						0,
						[
							4,
							[
								20,
								263,
								cr.plugins_.Text.prototype.exps.BBoxTop,
								false,
								null
							]
							,[
								20,
								100,
								cr.plugins_.Sprite.prototype.exps.Height,
								false,
								null
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					1066119915669901,
					false
					,[
					[
						11,
						"m2_modeQAHint"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			6899876792956071,
			[
			[
				-1,
				cr.system_object.prototype.cnds.Every,
				null,
				0,
				false,
				false,
				false,
				234426535319665,
				false
				,[
				[
					0,
					[
						23,
						"m2_CUR_BALL_GEN_SPEED"
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.cnds.Compare,
				null,
				0,
				false,
				false,
				false,
				6382094931867544,
				false
				,[
				[
					7,
					[
						23,
						"m2_modePlay"
					]
				]
,				[
					8,
					0
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				8269290326447731,
				false
				,[
				[
					1,
					[
						2,
						"throwBall"
					]
				]
,				[
					13,
				]
				]
			]
			]
		]
,		[
			0,
			[true, "Functions"],
			false,
			null,
			8602249696089988,
			[
			[
				-1,
				cr.system_object.prototype.cnds.IsGroupActive,
				null,
				0,
				false,
				false,
				false,
				8602249696089988,
				false
				,[
				[
					1,
					[
						2,
						"Functions"
					]
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				441657940840602,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5626680359428755,
					false
					,[
					[
						1,
						[
							2,
							"throwBall"
						]
					]
					]
				]
				],
				[
				[
					88,
					cr.plugins_.Sprite.prototype.acts.Spawn,
					null,
					3819610040813552,
					false
					,[
					[
						4,
						87
					]
,					[
						5,
						[
							2,
							"gamePlay"
						]
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
,				[
					87,
					cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
					null,
					5653608534372434,
					false
					,[
					[
						0,
						[
							23,
							"m2_next_ball"
						]
					]
					]
				]
,				[
					87,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					1150595385629667,
					false
					,[
					[
						0,
						[
							19,
							cr.system_object.prototype.exps.floor
							,[
[
								19,
								cr.system_object.prototype.exps.random
								,[
[
									20,
									77,
									cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
									false,
									null
								]
,[
									5,
									[
										20,
										77,
										cr.plugins_.TiledBg.prototype.exps.BBoxRight,
										false,
										null
									]
									,[
										20,
										87,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								]
							]
							]
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					87,
					cr.plugins_.Sprite.prototype.acts.SetAngle,
					null,
					7747316699808489,
					false
					,[
					[
						0,
						[
							0,
							90
						]
					]
					]
				]
,				[
					87,
					cr.behaviors.Bullet.prototype.acts.SetSpeed,
					"Bullet",
					3779455455781229,
					false
					,[
					[
						0,
						[
							23,
							"m2_CUR_BALL_SPEED"
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					9019565466988767,
					false
					,[
					[
						11,
						"m2_CUR_BALL_SPEED"
					]
,					[
						7,
						[
							4,
							[
								23,
								"m2_CUR_BALL_SPEED"
							]
							,[
								23,
								"m2_CUR_BALL_THROW_SPEED_INCR"
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.AddVar,
					null,
					5722448952985009,
					false
					,[
					[
						11,
						"m2_totalBalls"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
				,[
				[
					1,
					"m2_next_random_ball",
					0,
					0,
false,false,8052863827805243,false
				]
,				[
					0,
					null,
					false,
					null,
					3974562195957321,
					[
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						6777973598543507,
						false
						,[
						[
							11,
							"m2_next_random_ball"
						]
,						[
							7,
							[
								23,
								"m2_next_ball"
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						5266391696823626,
						[
						[
							-1,
							cr.system_object.prototype.cnds.While,
							null,
							0,
							true,
							false,
							false,
							9358494293097643,
							false
						]
,						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							5969896623409339,
							false
							,[
							[
								7,
								[
									23,
									"m2_next_ball"
								]
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									23,
									"m2_next_random_ball"
								]
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							9814114492399613,
							false
							,[
							[
								11,
								"m2_next_random_ball"
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.round
									,[
[
										19,
										cr.system_object.prototype.exps.random
										,[
[
											20,
											87,
											cr.plugins_.Sprite.prototype.exps.AnimationFrameCount,
											false,
											null
										]
										]
									]
									]
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						9445029302105112,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							5866915889461153,
							false
							,[
							[
								11,
								"m2_next_ball"
							]
,							[
								7,
								[
									23,
									"m2_next_random_ball"
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9158610863404654,
					[
					],
					[
					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						6696602082739732,
						false
						,[
						[
							1,
							[
								2,
								"refreshHUD"
							]
						]
,						[
							13,
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2002577161148231,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					8553889045339967,
					false
					,[
					[
						1,
						[
							2,
							"refreshHUD"
						]
					]
					]
				]
				],
				[
				[
					90,
					cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
					null,
					3024141474746909,
					false
					,[
					[
						0,
						[
							23,
							"m2_next_ball"
						]
					]
					]
				]
,				[
					95,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					382982306167047,
					false
					,[
					[
						7,
						[
							19,
							cr.system_object.prototype.exps.str
							,[
[
								23,
								"m2_gross_score"
							]
							]
						]
					]
					]
				]
,				[
					93,
					cr.plugins_.Text.prototype.acts.SetText,
					null,
					3382551645550534,
					false
					,[
					[
						7,
						[
							10,
							[
								19,
								cr.system_object.prototype.exps.round
								,[
[
									7,
									[
										5,
										[
											23,
											"m2_CUR_BALL_SPEED"
										]
										,[
											0,
											100
										]
									]
									,[
										23,
										"m2_CUR_BALL_THROW_SPEED_INCR"
									]
								]
								]
							]
							,[
								2,
								" m/sec"
							]
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					4514938141389241,
					[
					[
						-1,
						cr.system_object.prototype.cnds.For,
						null,
						0,
						true,
						false,
						false,
						2574342126395395,
						false
						,[
						[
							1,
							[
								2,
								"cur_ball"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								5,
								[
									20,
									87,
									cr.plugins_.Sprite.prototype.exps.AnimationFrameCount,
									false,
									null
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
					],
					[
					]
					,[
					[
						0,
						null,
						false,
						null,
						1856155538831658,
						[
						[
							82,
							cr.plugins_.TiledBg.prototype.cnds.CompareInstanceVar,
							null,
							0,
							false,
							false,
							false,
							301127987084316,
							false
							,[
							[
								10,
								0
							]
,							[
								8,
								0
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.loopindex
									,[
[
										2,
										"cur_ball"
									]
									]
								]
							]
							]
						]
						],
						[
						]
						,[
						[
							0,
							null,
							false,
							null,
							4712575261511719,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Compare,
								null,
								0,
								false,
								false,
								false,
								2723380931466719,
								false
								,[
								[
									7,
									[
										20,
										97,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											21,
											82,
											false,
											null
											,0
										]
,[
											0,
											2
										]
,[
											0,
											0
										]
										]
									]
								]
,								[
									8,
									0
								]
,								[
									7,
									[
										0,
										0
									]
								]
								]
							]
							],
							[
							[
								91,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								4558419560510757,
								false
								,[
								[
									7,
									[
										2,
										"0 %"
									]
								]
								]
							]
							]
						]
,						[
							0,
							null,
							false,
							null,
							6823881127977569,
							[
							[
								-1,
								cr.system_object.prototype.cnds.Else,
								null,
								0,
								false,
								false,
								false,
								3893187742293779,
								false
							]
							],
							[
							[
								91,
								cr.plugins_.Text.prototype.acts.SetText,
								null,
								9277639074355966,
								false
								,[
								[
									7,
									[
										10,
										[
											19,
											cr.system_object.prototype.exps.str
											,[
[
												19,
												cr.system_object.prototype.exps.round
												,[
[
													6,
													[
														7,
														[
															20,
															97,
															cr.plugins_.Arr.prototype.exps.At,
															false,
															null
															,[
[
																21,
																82,
																false,
																null
																,0
															]
,[
																0,
																3
															]
,[
																0,
																0
															]
															]
														]
														,[
															20,
															97,
															cr.plugins_.Arr.prototype.exps.At,
															false,
															null
															,[
[
																21,
																82,
																false,
																null
																,0
															]
,[
																0,
																2
															]
,[
																0,
																0
															]
															]
														]
													]
													,[
														0,
														100
													]
												]
												]
											]
											]
										]
										,[
											2,
											" %"
										]
									]
								]
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4787203576344069,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					7526033188825223,
					false
					,[
					[
						1,
						[
							2,
							"askQuestion"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"m2_randomQA",
					0,
					0,
false,false,1046278428575318,false
				]
,				[
					0,
					null,
					false,
					null,
					5376857385317368,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						2661558031402433,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							1
						]
,						[
							7,
							[
								2,
								"N"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						6674074666025464,
						false
						,[
						[
							11,
							"m2_currentQA"
						]
,						[
							7,
							[
								19,
								cr.system_object.prototype.exps.floor
								,[
[
									19,
									cr.system_object.prototype.exps.random
									,[
[
										20,
										101,
										cr.plugins_.Arr.prototype.exps.Width,
										false,
										null
									]
									]
								]
								]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					3966600938337011,
					[
					],
					[
					[
						104,
						cr.plugins_.TiledBg.prototype.acts.SetSize,
						null,
						6635830357370225,
						false
						,[
						[
							0,
							[
								19,
								cr.system_object.prototype.exps.layoutwidth
							]
						]
,						[
							0,
							[
								19,
								cr.system_object.prototype.exps.layoutheight
							]
						]
						]
					]
,					[
						104,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						1556918761860917,
						false
						,[
						[
							0,
							[
								0,
								0
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						263,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						8626565199043127,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8949926199199765,
					[
					],
					[
					[
						98,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						9075028900127856,
						false
						,[
						[
							0,
							[
								5,
								[
									19,
									cr.system_object.prototype.exps.layoutwidth
								]
								,[
									20,
									98,
									cr.plugins_.TiledBg.prototype.exps.Width,
									false,
									null
								]
							]
						]
,						[
							0,
							[
								7,
								[
									5,
									[
										19,
										cr.system_object.prototype.exps.layoutheight
									]
									,[
										20,
										98,
										cr.plugins_.TiledBg.prototype.exps.Height,
										false,
										null
									]
								]
								,[
									0,
									2
								]
							]
						]
						]
					]
,					[
						100,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						6342838685012454,
						false
						,[
						[
							0,
							[
								5,
								[
									5,
									[
										20,
										98,
										cr.plugins_.TiledBg.prototype.exps.BBoxRight,
										false,
										null
									]
									,[
										20,
										100,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									10
								]
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									98,
									cr.plugins_.TiledBg.prototype.exps.BBoxTop,
									false,
									null
								]
								,[
									0,
									10
								]
							]
						]
						]
					]
,					[
						102,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						3685111217272748,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									98,
									cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
									false,
									null
								]
								,[
									7,
									[
										5,
										[
											20,
											98,
											cr.plugins_.TiledBg.prototype.exps.Width,
											false,
											null
										]
										,[
											20,
											102,
											cr.plugins_.Text.prototype.exps.Width,
											false,
											null
										]
									]
									,[
										0,
										2
									]
								]
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									98,
									cr.plugins_.TiledBg.prototype.exps.BBoxTop,
									false,
									null
								]
								,[
									0,
									150
								]
							]
						]
						]
					]
,					[
						102,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						5494657221592197,
						false
						,[
						[
							7,
							[
								20,
								101,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									23,
									"m2_currentQA"
								]
,[
									0,
									0
								]
,[
									0,
									0
								]
								]
							]
						]
						]
					]
,					[
						264,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						3869026602650053,
						false
						,[
						[
							0,
							[
								5,
								[
									5,
									[
										20,
										98,
										cr.plugins_.TiledBg.prototype.exps.BBoxRight,
										false,
										null
									]
									,[
										20,
										264,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									20
								]
							]
						]
,						[
							0,
							[
								5,
								[
									5,
									[
										20,
										98,
										cr.plugins_.TiledBg.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										20,
										264,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
								]
								,[
									0,
									20
								]
							]
						]
						]
					]
					]
					,[
					[
						1,
						"m2_qaChoiceIdx",
						0,
						0,
false,false,3957734723175681,false
					]
,					[
						0,
						null,
						false,
						null,
						9958046515442519,
						[
						],
						[
						[
							260,
							cr.plugins_.Arr.prototype.acts.SetSize,
							null,
							9035047333168456,
							false
							,[
							[
								0,
								[
									20,
									99,
									cr.plugins_.Sprite.prototype.exps.Count,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
,							[
								0,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						48918446325012,
						[
						[
							260,
							cr.plugins_.Arr.prototype.cnds.ArrForEach,
							null,
							0,
							true,
							false,
							false,
							7220546153836567,
							false
							,[
							[
								3,
								2
							]
							]
						]
						],
						[
						[
							260,
							cr.plugins_.Arr.prototype.acts.SetXYZ,
							null,
							422747863291018,
							false
							,[
							[
								0,
								[
									20,
									260,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
,							[
								7,
								[
									20,
									260,
									cr.plugins_.Arr.prototype.exps.CurX,
									false,
									null
								]
							]
							]
						]
						]
					]
,					[
						1,
						"randomLoopIdx",
						0,
						0,
false,false,9914860414837267,false
					]
,					[
						1,
						"currentLoopIdxVal",
						0,
						0,
false,false,5175534766424867,false
					]
,					[
						0,
						null,
						false,
						null,
						2866248782571201,
						[
						[
							-1,
							cr.system_object.prototype.cnds.ForEach,
							null,
							0,
							true,
							false,
							false,
							6240421349275398,
							false
							,[
							[
								4,
								99
							]
							]
						]
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8266797220303201,
							false
							,[
							[
								11,
								"randomLoopIdx"
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.floor
									,[
[
										19,
										cr.system_object.prototype.exps.random
										,[
[
											5,
											[
												20,
												99,
												cr.plugins_.Sprite.prototype.exps.Count,
												false,
												null
											]
											,[
												19,
												cr.system_object.prototype.exps.loopindex
											]
										]
										]
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							8882693563861656,
							false
							,[
							[
								11,
								"currentLoopIdxVal"
							]
,							[
								7,
								[
									20,
									260,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"randomLoopIdx"
									]
,[
										0,
										0
									]
,[
										0,
										0
									]
									]
								]
							]
							]
						]
,						[
							99,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							610180312407055,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										98,
										cr.plugins_.TiledBg.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												98,
												cr.plugins_.TiledBg.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												99,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										4,
										[
											20,
											102,
											cr.plugins_.Text.prototype.exps.BBoxBottom,
											false,
											null
										]
										,[
											4,
											[
												6,
												[
													23,
													"currentLoopIdxVal"
												]
												,[
													20,
													99,
													cr.plugins_.Sprite.prototype.exps.Height,
													false,
													null
												]
											]
											,[
												0,
												10
											]
										]
									]
									,[
										0,
										20
									]
								]
							]
							]
						]
,						[
							103,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							5482516815914799,
							false
							,[
							[
								0,
								[
									4,
									[
										20,
										99,
										cr.plugins_.Sprite.prototype.exps.BBoxLeft,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												99,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
											,[
												20,
												103,
												cr.plugins_.Text.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
,							[
								0,
								[
									4,
									[
										20,
										99,
										cr.plugins_.Sprite.prototype.exps.BBoxTop,
										false,
										null
									]
									,[
										7,
										[
											5,
											[
												20,
												99,
												cr.plugins_.Sprite.prototype.exps.Height,
												false,
												null
											]
											,[
												20,
												103,
												cr.plugins_.Text.prototype.exps.Height,
												false,
												null
											]
										]
										,[
											0,
											2
										]
									]
								]
							]
							]
						]
,						[
							103,
							cr.plugins_.Text.prototype.acts.SetText,
							null,
							4201156071643689,
							false
							,[
							[
								7,
								[
									20,
									101,
									cr.plugins_.Arr.prototype.exps.At,
									false,
									null
									,[
[
										23,
										"m2_currentQA"
									]
,[
										0,
										1
									]
,[
										21,
										99,
										false,
										null
										,0
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							2321410325387321,
							false
							,[
							[
								11,
								"m2_qaChoiceIdx"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
,						[
							260,
							cr.plugins_.Arr.prototype.acts.Delete,
							null,
							9279720805713735,
							false
							,[
							[
								0,
								[
									23,
									"randomLoopIdx"
								]
							]
,							[
								3,
								0
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1674844293987184,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					6503320756454958,
					false
					,[
					[
						1,
						[
							2,
							"hideQuestion"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					4188950927987044,
					[
					],
					[
					[
						98,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						2049817671485736,
						false
						,[
						[
							0,
							[
								0,
								-10000
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						100,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						9176642604902478,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						102,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						9535410528458961,
						false
						,[
						[
							0,
							[
								0,
								-1000
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						104,
						cr.plugins_.TiledBg.prototype.acts.SetPos,
						null,
						551134026797327,
						false
						,[
						[
							0,
							[
								0,
								-10000
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						263,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						1901456490572514,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						264,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						1829044002172645,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
					]
					,[
					[
						1,
						"m2_qaChoiceIdx",
						0,
						0,
false,false,8158607875805506,false
					]
,					[
						0,
						null,
						false,
						null,
						5733137677789458,
						[
						[
							-1,
							cr.system_object.prototype.cnds.ForEach,
							null,
							0,
							true,
							false,
							false,
							7954016557530009,
							false
							,[
							[
								4,
								99
							]
							]
						]
						],
						[
						[
							99,
							cr.plugins_.Sprite.prototype.acts.SetPos,
							null,
							7491008590728884,
							false
							,[
							[
								0,
								[
									0,
									-1000
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							103,
							cr.plugins_.Text.prototype.acts.SetPos,
							null,
							2924283257238398,
							false
							,[
							[
								0,
								[
									0,
									-1000
								]
							]
,							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.AddVar,
							null,
							7934052132950781,
							false
							,[
							[
								11,
								"m2_qaChoiceIdx"
							]
,							[
								7,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				82933401854899,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					1976366491293139,
					false
					,[
					[
						1,
						[
							2,
							"gameFinish"
						]
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					8714443752624797,
					false
					,[
					[
						1,
						[
							2,
							"resetMode"
						]
					]
,					[
						13,
													[
								7,
								[
									2,
									"missionover"
								]
							]
					]
					]
				]
,				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					8062843318138116,
					false
					,[
					[
						1,
						[
							2,
							"scoreOverDisplay"
						]
					]
,					[
						13,
													[
								7,
								[
									2,
									"show"
								]
							]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				7161277798594869,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					5706997786430142,
					false
					,[
					[
						1,
						[
							2,
							"scoreOverDisplay"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					1,
					"m2_levelOverPosX",
					0,
					0,
false,false,7358313254116448,false
				]
,				[
					0,
					null,
					false,
					null,
					6416922067910807,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						4628007419217215,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"show"
							]
						]
						]
					]
					],
					[
					[
						108,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						126407401220995,
						false
						,[
						[
							0,
							[
								7,
								[
									19,
									cr.system_object.prototype.exps.viewportright
									,[
[
										0,
										0
									]
									]
								]
								,[
									0,
									2
								]
							]
						]
,						[
							0,
							[
								7,
								[
									19,
									cr.system_object.prototype.exps.viewportbottom
									,[
[
										0,
										0
									]
									]
								]
								,[
									0,
									2
								]
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						7479286806083326,
						false
						,[
						[
							11,
							"m2_levelOverPosX"
						]
,						[
							7,
							[
								4,
								[
									20,
									108,
									cr.plugins_.Sprite.prototype.exps.BBoxLeft,
									false,
									null
								]
								,[
									0,
									250
								]
							]
						]
						]
					]
,					[
						112,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						9861205193080645,
						false
						,[
						[
							0,
							[
								23,
								"m2_levelOverPosX"
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									108,
									cr.plugins_.Sprite.prototype.exps.BBoxTop,
									false,
									null
								]
								,[
									0,
									65
								]
							]
						]
						]
					]
,					[
						113,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						8375194173319808,
						false
						,[
						[
							0,
							[
								23,
								"m2_levelOverPosX"
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									112,
									cr.plugins_.Text.prototype.exps.BBoxBottom,
									false,
									null
								]
								,[
									0,
									8
								]
							]
						]
						]
					]
,					[
						114,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						6214526451001116,
						false
						,[
						[
							0,
							[
								23,
								"m2_levelOverPosX"
							]
						]
,						[
							0,
							[
								4,
								[
									20,
									113,
									cr.plugins_.Text.prototype.exps.BBoxBottom,
									false,
									null
								]
								,[
									0,
									15
								]
							]
						]
						]
					]
,					[
						109,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						3889709350571562,
						false
						,[
						[
							0,
							[
								5,
								[
									5,
									[
										20,
										108,
										cr.plugins_.Sprite.prototype.exps.BBoxRight,
										false,
										null
									]
									,[
										20,
										109,
										cr.plugins_.Sprite.prototype.exps.Width,
										false,
										null
									]
								]
								,[
									0,
									40
								]
							]
						]
,						[
							0,
							[
								5,
								[
									20,
									112,
									cr.plugins_.Text.prototype.exps.BBoxTop,
									false,
									null
								]
								,[
									0,
									10
								]
							]
						]
						]
					]
,					[
						115,
						cr.plugins_.Text.prototype.acts.SetSize,
						null,
						6227007087033217,
						false
						,[
						[
							0,
							[
								20,
								109,
								cr.plugins_.Sprite.prototype.exps.Width,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								109,
								cr.plugins_.Sprite.prototype.exps.Height,
								false,
								null
							]
						]
						]
					]
,					[
						115,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						7246924388674068,
						false
						,[
						[
							0,
							[
								20,
								109,
								cr.plugins_.Sprite.prototype.exps.BBoxLeft,
								false,
								null
							]
						]
,						[
							0,
							[
								20,
								109,
								cr.plugins_.Sprite.prototype.exps.BBoxTop,
								false,
								null
							]
						]
						]
					]
,					[
						110,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						9463989051318623,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									108,
									cr.plugins_.Sprite.prototype.exps.BBoxLeft,
									false,
									null
								]
								,[
									7,
									[
										5,
										[
											5,
											[
												5,
												[
													20,
													108,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
												,[
													20,
													110,
													cr.plugins_.Sprite.prototype.exps.Width,
													false,
													null
												]
											]
											,[
												20,
												111,
												cr.plugins_.Sprite.prototype.exps.Width,
												false,
												null
											]
										]
										,[
											0,
											30
										]
									]
									,[
										0,
										2
									]
								]
							]
						]
,						[
							0,
							[
								5,
								[
									5,
									[
										20,
										108,
										cr.plugins_.Sprite.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										20,
										110,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
								]
								,[
									0,
									15
								]
							]
						]
						]
					]
,					[
						111,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						3232955936943654,
						false
						,[
						[
							0,
							[
								4,
								[
									20,
									110,
									cr.plugins_.Sprite.prototype.exps.BBoxRight,
									false,
									null
								]
								,[
									0,
									30
								]
							]
						]
,						[
							0,
							[
								5,
								[
									5,
									[
										20,
										108,
										cr.plugins_.Sprite.prototype.exps.BBoxBottom,
										false,
										null
									]
									,[
										20,
										111,
										cr.plugins_.Sprite.prototype.exps.Height,
										false,
										null
									]
								]
								,[
									0,
									15
								]
							]
						]
						]
					]
,					[
						113,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						9872674424318908,
						false
						,[
						[
							7,
							[
								23,
								"m2_scoredBalls"
							]
						]
						]
					]
,					[
						112,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						8744439825450922,
						false
						,[
						[
							7,
							[
								23,
								"m2_totalBalls"
							]
						]
						]
					]
,					[
						115,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						5333179240569743,
						false
						,[
						[
							7,
							[
								10,
								[
									19,
									cr.system_object.prototype.exps.floor
									,[
[
										6,
										[
											7,
											[
												23,
												"m2_scoredBalls"
											]
											,[
												23,
												"m2_totalBalls"
											]
										]
										,[
											0,
											100
										]
									]
									]
								]
								,[
									2,
									" %"
								]
							]
						]
						]
					]
,					[
						114,
						cr.plugins_.Text.prototype.acts.SetText,
						null,
						2506670392607242,
						false
						,[
						[
							7,
							[
								23,
								"m2_gross_score"
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						4128359807731541,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Compare,
							null,
							0,
							false,
							false,
							false,
							2504322050336714,
							false
							,[
							[
								7,
								[
									6,
									[
										7,
										[
											23,
											"m2_scoredBalls"
										]
										,[
											23,
											"m2_totalBalls"
										]
									]
									,[
										0,
										100
									]
								]
							]
,							[
								8,
								2
							]
,							[
								7,
								[
									0,
									50
								]
							]
							]
						]
						],
						[
						[
							109,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							1377034830837477,
							false
							,[
							[
								0,
								[
									0,
									1
								]
							]
							]
						]
,						[
							108,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							3010197335795164,
							false
							,[
							[
								0,
								[
									0,
									1
								]
							]
							]
						]
						]
					]
,					[
						0,
						null,
						false,
						null,
						3090231935113097,
						[
						[
							-1,
							cr.system_object.prototype.cnds.Else,
							null,
							0,
							false,
							false,
							false,
							744729699736664,
							false
						]
						],
						[
						[
							109,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							3594756962554023,
							false
							,[
							[
								0,
								[
									0,
									0
								]
							]
							]
						]
,						[
							108,
							cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
							null,
							7761648768439168,
							false
							,[
							[
								0,
								[
									0,
									0
								]
							]
							]
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					8151710566249031,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Else,
						null,
						0,
						false,
						false,
						false,
						8436996164404597,
						false
					]
					],
					[
					[
						108,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						1739997423468731,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						114,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						3922045845946026,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						109,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						6795324461603301,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						110,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						1437065399065664,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						113,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						6277822245527367,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						115,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						9455244757860505,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						111,
						cr.plugins_.Sprite.prototype.acts.SetPos,
						null,
						8779051135996134,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
,					[
						112,
						cr.plugins_.Text.prototype.acts.SetPos,
						null,
						81127289398466,
						false
						,[
						[
							0,
							[
								23,
								"hiddenPosX"
							]
						]
,						[
							0,
							[
								0,
								0
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				2977839429546445,
				[
				[
					249,
					cr.plugins_.Function.prototype.cnds.OnFunction,
					null,
					2,
					false,
					false,
					false,
					8267856888933775,
					false
					,[
					[
						1,
						[
							2,
							"resetMode"
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					7574010375717224,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						8622452665672323,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"play"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						6315899527225894,
						false
						,[
						[
							11,
							"m2_modePlay"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						1847934784752136,
						false
						,[
						[
							11,
							"m2_modeMissionOver"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						9410561103702028,
						false
						,[
						[
							11,
							"m2_modeQA"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						88,
						cr.behaviors.EightDir.prototype.acts.SetIgnoreInput,
						"8Direction",
						1197255925704342,
						false
						,[
						[
							3,
							0
						]
						]
					]
,					[
						88,
						cr.behaviors.DragnDrop.prototype.acts.SetEnabled,
						"DragDrop",
						3914416089544792,
						false
						,[
						[
							3,
							1
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					6801127518270626,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						2351752922228245,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"qa"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						4146981156247811,
						false
						,[
						[
							11,
							"m2_modeQA"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						8916843135330063,
						false
						,[
						[
							11,
							"m2_modePlay"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						5594090776152801,
						false
						,[
						[
							11,
							"m2_modeMissionOver"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						88,
						cr.behaviors.EightDir.prototype.acts.SetIgnoreInput,
						"8Direction",
						1023494578000178,
						false
						,[
						[
							3,
							1
						]
						]
					]
,					[
						88,
						cr.behaviors.DragnDrop.prototype.acts.SetEnabled,
						"DragDrop",
						536566864550031,
						false
						,[
						[
							3,
							0
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					9272812003670285,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						5673178917591996,
						false
						,[
						[
							7,
							[
								20,
								249,
								cr.plugins_.Function.prototype.exps.Param,
								false,
								null
								,[
[
									0,
									0
								]
								]
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								2,
								"missionover"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						8684718958598955,
						false
						,[
						[
							11,
							"m2_modeMissionOver"
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						2452012484432072,
						false
						,[
						[
							11,
							"m2_modePlay"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						5565430346936643,
						false
						,[
						[
							11,
							"m2_modeQA"
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
,					[
						88,
						cr.behaviors.EightDir.prototype.acts.SetIgnoreInput,
						"8Direction",
						3707360780075191,
						false
						,[
						[
							3,
							1
						]
						]
					]
,					[
						88,
						cr.behaviors.DragnDrop.prototype.acts.SetEnabled,
						"DragDrop",
						3210858519733653,
						false
						,[
						[
							3,
							0
						]
						]
					]
					]
				]
,				[
					0,
					null,
					false,
					null,
					7017360868719335,
					[
					],
					[
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			255190012882068,
			[
			[
				87,
				cr.plugins_.Sprite.prototype.cnds.OnCollision,
				null,
				0,
				false,
				false,
				true,
				5861766092939736,
				false
				,[
				[
					4,
					96
				]
				]
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				5453991591949597,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					7569402269797042,
					false
					,[
					[
						7,
						[
							21,
							96,
							false,
							null
							,0
						]
					]
,					[
						8,
						0
					]
,					[
						7,
						[
							20,
							87,
							cr.plugins_.Sprite.prototype.exps.AnimationFrame,
							false,
							null
						]
					]
					]
				]
				],
				[
				[
					97,
					cr.plugins_.Arr.prototype.acts.SetXYZ,
					null,
					8407034305554057,
					false
					,[
					[
						0,
						[
							20,
							87,
							cr.plugins_.Sprite.prototype.exps.AnimationFrame,
							false,
							null
						]
					]
,					[
						0,
						[
							0,
							3
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
,					[
						7,
						[
							4,
							[
								20,
								97,
								cr.plugins_.Arr.prototype.exps.At,
								false,
								null
								,[
[
									20,
									87,
									cr.plugins_.Sprite.prototype.exps.AnimationFrame,
									false,
									null
								]
,[
									0,
									3
								]
,[
									0,
									0
								]
								]
							]
							,[
								0,
								1
							]
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.SetVar,
					null,
					9583253226124669,
					false
					,[
					[
						11,
						"m2_gross_score"
					]
,					[
						7,
						[
							4,
							[
								23,
								"m2_gross_score"
							]
							,[
								0,
								100
							]
						]
					]
					]
				]
,				[
					87,
					cr.plugins_.Sprite.prototype.acts.SetInstanceVar,
					null,
					7326357660912705,
					false
					,[
					[
						10,
						0
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
,				[
					-1,
					cr.system_object.prototype.acts.AddVar,
					null,
					512189959087781,
					false
					,[
					[
						11,
						"m2_scoredBalls"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
				,[
				[
					0,
					null,
					false,
					null,
					6439356071091653,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						4150610617644823,
						false
						,[
						[
							7,
							[
								23,
								"CURR_SOUND"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.PlayByName,
						null,
						7088366373097207,
						false
						,[
						[
							3,
							0
						]
,						[
							1,
							[
								2,
								"m2_correctaction"
							]
						]
,						[
							3,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							1,
							[
								2,
								"m2_correctaction"
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				669225371178436,
				[
				],
				[
				[
					87,
					cr.plugins_.Sprite.prototype.acts.Destroy,
					null,
					1994065788286349,
					false
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			2285758735810884,
			[
			[
				255,
				cr.plugins_.AJAX.prototype.cnds.OnComplete,
				null,
				1,
				false,
				false,
				false,
				5832999409974896,
				false
				,[
				[
					1,
					[
						2,
						"mission2_qa"
					]
				]
				]
			]
			],
			[
			[
				101,
				cr.plugins_.Arr.prototype.acts.JSONLoad,
				null,
				3557433700037368,
				false
				,[
				[
					1,
					[
						20,
						255,
						cr.plugins_.AJAX.prototype.exps.LastData,
						true,
						null
					]
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				875769640610878,
				false
				,[
				[
					1,
					[
						2,
						"print"
					]
				]
,				[
					13,
											[
							7,
							[
								10,
								[
									2,
									"QA receivd:"
								]
								,[
									20,
									101,
									cr.plugins_.Arr.prototype.exps.AsJSON,
									true,
									null
								]
							]
						]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			2639915542175394,
			[
			[
				255,
				cr.plugins_.AJAX.prototype.cnds.OnError,
				null,
				1,
				false,
				false,
				false,
				9502609692537954,
				false
				,[
				[
					1,
					[
						2,
						"mission2_qa"
					]
				]
				]
			]
			],
			[
			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				3289873460255294,
				false
				,[
				[
					1,
					[
						2,
						"print"
					]
				]
,				[
					13,
											[
							7,
							[
								10,
								[
									2,
									"Error in getting QAs::: Error:"
								]
								,[
									20,
									255,
									cr.plugins_.AJAX.prototype.exps.LastData,
									true,
									null
								]
							]
						]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			1545982516926786,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutEnd,
				null,
				1,
				false,
				false,
				false,
				928424321174453,
				false
			]
			],
			[
			]
			,[
			[
				0,
				null,
				false,
				null,
				8901269626959007,
				[
				[
					251,
					cr.plugins_.Audio.prototype.cnds.IsTagPlaying,
					null,
					0,
					false,
					false,
					false,
					5193750715082326,
					false
					,[
					[
						1,
						[
							2,
							"m2_bg"
						]
					]
					]
				]
				],
				[
				[
					251,
					cr.plugins_.Audio.prototype.acts.Stop,
					null,
					9518915220420586,
					false
					,[
					[
						1,
						[
							2,
							"m2_bg"
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			5515156861949858,
			[
			[
				87,
				cr.plugins_.Sprite.prototype.cnds.OnDestroyed,
				null,
				1,
				false,
				false,
				false,
				6368801509896375,
				false
			]
			],
			[
			[
				97,
				cr.plugins_.Arr.prototype.acts.SetXYZ,
				null,
				7141378044692366,
				false
				,[
				[
					0,
					[
						20,
						87,
						cr.plugins_.Sprite.prototype.exps.AnimationFrame,
						false,
						null
					]
				]
,				[
					0,
					[
						0,
						2
					]
				]
,				[
					0,
					[
						0,
						0
					]
				]
,				[
					7,
					[
						4,
						[
							20,
							97,
							cr.plugins_.Arr.prototype.exps.At,
							false,
							null
							,[
[
								20,
								87,
								cr.plugins_.Sprite.prototype.exps.AnimationFrame,
								false,
								null
							]
,[
								0,
								2
							]
,[
								0,
								0
							]
							]
						]
						,[
							0,
							1
						]
					]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				688899414675405,
				[
				[
					87,
					cr.plugins_.Sprite.prototype.cnds.CompareInstanceVar,
					null,
					0,
					false,
					false,
					false,
					4080870456283917,
					false
					,[
					[
						10,
						0
					]
,					[
						8,
						1
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				],
				[
				]
				,[
				[
					0,
					null,
					false,
					null,
					9534224345142947,
					[
					[
						-1,
						cr.system_object.prototype.cnds.Compare,
						null,
						0,
						false,
						false,
						false,
						7306262906487883,
						false
						,[
						[
							7,
							[
								23,
								"CURR_SOUND"
							]
						]
,						[
							8,
							0
						]
,						[
							7,
							[
								0,
								1
							]
						]
						]
					]
					],
					[
					[
						251,
						cr.plugins_.Audio.prototype.acts.PlayByName,
						null,
						2064972162003065,
						false
						,[
						[
							3,
							0
						]
,						[
							1,
							[
								2,
								"m2_incorrectaction"
							]
						]
,						[
							3,
							0
						]
,						[
							0,
							[
								0,
								0
							]
						]
,						[
							1,
							[
								2,
								"m2_incorrectaction"
							]
						]
						]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				1436752912277086,
				[
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					909600660906449,
					false
					,[
					[
						1,
						[
							2,
							"refreshHUD"
						]
					]
,					[
						13,
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9160247388771809,
			[
			[
				-1,
				cr.system_object.prototype.cnds.Every,
				null,
				0,
				false,
				false,
				false,
				4406229506703656,
				false
				,[
				[
					0,
					[
						1,
						1
					]
				]
				]
			]
,			[
				-1,
				cr.system_object.prototype.cnds.Compare,
				null,
				0,
				false,
				false,
				false,
				6222636831320443,
				false
				,[
				[
					7,
					[
						23,
						"m2_modePlay"
					]
				]
,				[
					8,
					0
				]
,				[
					7,
					[
						0,
						1
					]
				]
				]
			]
			],
			[
			[
				107,
				cr.plugins_.Text.prototype.acts.SetText,
				null,
				9287995208213271,
				false
				,[
				[
					7,
					[
						19,
						cr.system_object.prototype.exps.str
						,[
[
							10,
							[
								10,
								[
									19,
									cr.system_object.prototype.exps.floor
									,[
[
										7,
										[
											23,
											"m2_timeLeft"
										]
										,[
											0,
											60
										]
									]
									]
								]
								,[
									2,
									" : "
								]
							]
							,[
								8,
								[
									23,
									"m2_timeLeft"
								]
								,[
									0,
									60
								]
							]
						]
						]
					]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				586914496695887,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Compare,
					null,
					0,
					false,
					false,
					false,
					6765995031083962,
					false
					,[
					[
						7,
						[
							23,
							"m2_timeLeft"
						]
					]
,					[
						8,
						3
					]
,					[
						7,
						[
							0,
							0
						]
					]
					]
				]
				],
				[
				[
					249,
					cr.plugins_.Function.prototype.acts.CallFunction,
					null,
					7179909756953621,
					false
					,[
					[
						1,
						[
							2,
							"gameFinish"
						]
					]
,					[
						13,
													[
								7,
								[
									0,
									0
								]
							]
					]
					]
				]
				]
			]
,			[
				0,
				null,
				false,
				null,
				4538251074168194,
				[
				[
					-1,
					cr.system_object.prototype.cnds.Else,
					null,
					0,
					false,
					false,
					false,
					5088270293478713,
					false
				]
				],
				[
				[
					-1,
					cr.system_object.prototype.acts.SubVar,
					null,
					1156036230550617,
					false
					,[
					[
						11,
						"m2_timeLeft"
					]
,					[
						7,
						[
							0,
							1
						]
					]
					]
				]
				]
			]
			]
		]
,		[
			0,
			null,
			false,
			null,
			9628576758599642,
			[
			[
				250,
				cr.plugins_.Touch.prototype.cnds.OnTouchObject,
				null,
				1,
				false,
				false,
				false,
				5648070368823086,
				false
				,[
				[
					4,
					110
				]
				]
			]
			],
			[
			[
				-1,
				cr.system_object.prototype.acts.RestartLayout,
				null,
				7488666867996143,
				false
			]
			]
		]
		]
	]
,	[
		"ES_MobileRedirect",
		[
		[
			2,
			"EventSheetGlobal",
			false
		]
,		[
			1,
			"currentMissionNum",
			0,
			0,
false,false,3833337249093295,false
		]
,		[
			0,
			null,
			false,
			null,
			7859637097377261,
			[
			[
				-1,
				cr.system_object.prototype.cnds.OnLayoutStart,
				null,
				1,
				false,
				false,
				false,
				5923752233728522,
				false
			]
			],
			[
			[
				262,
				cr.plugins_.Browser.prototype.acts.LockOrientation,
				null,
				1039605001896448,
				false
				,[
				[
					3,
					1
				]
				]
			]
,			[
				249,
				cr.plugins_.Function.prototype.acts.CallFunction,
				null,
				5623667852572881,
				false
				,[
				[
					1,
					[
						2,
						"loadMissions"
					]
				]
,				[
					13,
				]
				]
			]
,			[
				265,
				cr.plugins_.Dictionary.prototype.acts.Clear,
				null,
				7441204741419904,
				false
			]
,			[
				262,
				cr.plugins_.Browser.prototype.acts.ExecJs,
				null,
				3399374563545429,
				false
				,[
				[
					1,
					[
						2,
						"(function(){\n			function getData(params){\n				//var hrefString = window.location.href;\n				//var params = hrefString.split('?')[1];\n				var paramArr = params.match(/[\\w]+=[\\w@\\.]+/ig);\n				var params = {};\n				for(var i in paramArr){\n					var paramSplit = paramArr[i].split('=');\n					params[paramSplit[0]] = paramSplit[1];\n				}\n				console.log('returning data',params);\n				return params;\n			}\n			\n			\n			function dumpParams(params){\n				var data = {'c2dictionary':true,'data':params};\n				var jsonStr = JSON.stringify(data);\n				localStorage.setItem('playerDict',jsonStr);\n				console.log('data set',localStorage.getItem('playerDict'));\n			}\n			\n			var callEjectaBridge = function(){\n				var simpleTest = new Ejecta.EJJsBridge(1);\n\n				 \n				 var paramStr = simpleTest.getFooSquared();\n				 \n				 console.log('Returned string:',paramStr);\n				 \n				 return paramStr;				 \n			}\n			\n			var gameParams = callEjectaBridge();\n			var params = getData(gameParams);\n			dumpParams(params);\n		}());"
					]
				]
				]
			]
			]
			,[
			[
				0,
				null,
				false,
				null,
				1142398537172705,
				[
				],
				[
				[
					248,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					647987379936024,
					false
					,[
					[
						0,
						[
							0,
							0
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					259,
					cr.plugins_.Sprite.prototype.acts.SetPos,
					null,
					5428801324241383,
					false
					,[
					[
						0,
						[
							7,
							[
								19,
								cr.system_object.prototype.exps.viewportright
								,[
[
									2,
									"bg"
								]
								]
							]
							,[
								0,
								2
							]
						]
					]
,					[
						0,
						[
							7,
							[
								19,
								cr.system_object.prototype.exps.viewportbottom
								,[
[
									2,
									"bg"
								]
								]
							]
							,[
								0,
								2
							]
						]
					]
					]
				]
,				[
					253,
					cr.plugins_.TextBox.prototype.acts.SetPos,
					null,
					4232391183317065,
					false
					,[
					[
						0,
						[
							23,
							"hiddenPosX"
						]
					]
,					[
						0,
						[
							0,
							0
						]
					]
					]
				]
,				[
					257,
					cr.plugins_.Dictionary.prototype.acts.JSONLoad,
					null,
					4952265398466398,
					false
					,[
					[
						1,
						[
							20,
							266,
							cr.plugins_.WebStorage.prototype.exps.LocalValue,
							true,
							null
							,[
[
								2,
								"playerDict"
							]
							]
						]
					]
					]
				]
				]
				,[
				[
					1,
					"mr_currentMission",
					1,
					"",
false,false,92639895896071,false
				]
,				[
					0,
					null,
					false,
					null,
					8312482333080958,
					[
					[
						257,
						cr.plugins_.Dictionary.prototype.cnds.HasKey,
						null,
						0,
						false,
						false,
						false,
						4825110430228959,
						false
						,[
						[
							1,
							[
								2,
								"currentSelectedGame"
							]
						]
						]
					]
					],
					[
					[
						-1,
						cr.system_object.prototype.acts.SetVar,
						null,
						8534810788114998,
						false
						,[
						[
							11,
							"currentMissionNum"
						]
,						[
							7,
							[
								5,
								[
									19,
									cr.system_object.prototype.exps["int"]
									,[
[
										20,
										257,
										cr.plugins_.Dictionary.prototype.exps.Get,
										false,
										null
										,[
[
											2,
											"currentSelectedGame"
										]
										]
									]
									]
								]
								,[
									0,
									1
								]
							]
						]
						]
					]
,					[
						249,
						cr.plugins_.Function.prototype.acts.CallFunction,
						null,
						4206403473557441,
						false
						,[
						[
							1,
							[
								2,
								"print"
							]
						]
,						[
							13,
															[
									7,
									[
										19,
										cr.system_object.prototype.exps.str
										,[
[
											20,
											265,
											cr.plugins_.Dictionary.prototype.exps.Get,
											false,
											null
											,[
[
												23,
												"currentMissionNum"
											]
											]
										]
										]
									]
								]
						]
						]
					]
,					[
						265,
						cr.plugins_.Dictionary.prototype.acts.AddKey,
						null,
						2105245358350443,
						false
						,[
						[
							1,
							[
								2,
								"currentSelectedGame"
							]
						]
,						[
							7,
							[
								20,
								257,
								cr.plugins_.Dictionary.prototype.exps.Get,
								false,
								null
								,[
[
									2,
									"currentSelectedGame"
								]
								]
							]
						]
						]
					]
,					[
						265,
						cr.plugins_.Dictionary.prototype.acts.AddKey,
						null,
						5436708493685931,
						false
						,[
						[
							1,
							[
								2,
								"currentScore"
							]
						]
,						[
							7,
							[
								0,
								0
							]
						]
						]
					]
					]
					,[
					[
						0,
						null,
						false,
						null,
						1259188739952621,
						[
						],
						[
						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							7459849520128363,
							false
							,[
							[
								11,
								"currentMission"
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.str
									,[
[
										20,
										2,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"currentMissionNum"
										]
,[
											0,
											2
										]
,[
											0,
											0
										]
										]
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.SetVar,
							null,
							3786367572941637,
							false
							,[
							[
								11,
								"currentPrologue"
							]
,							[
								7,
								[
									19,
									cr.system_object.prototype.exps.str
									,[
[
										20,
										2,
										cr.plugins_.Arr.prototype.exps.At,
										false,
										null
										,[
[
											23,
											"currentMissionNum"
										]
,[
											0,
											4
										]
,[
											0,
											0
										]
										]
									]
									]
								]
							]
							]
						]
,						[
							-1,
							cr.system_object.prototype.acts.GoToLayout,
							null,
							1590300788702119,
							false
							,[
							[
								6,
								"LayoutMissionPrologue"
							]
							]
						]
						]
					]
					]
				]
				]
			]
			]
		]
		]
	]
	],
	"media/",
	true,
	1280,
	800,
	4,
	true,
	true,
	false,
	"0.8",
	true,
	false,
	0,
	2,
	795,
	false,
	true,
	[
		[3,4]
,		[5,6]
,		[10,11]
,		[15,54]
,		[16,55]
,		[17,57]
,		[18,58]
,		[25,66]
,		[27,28,30]
,		[36,38]
,		[39,41]
,		[81,93]
,		[82,89,91,92]
,		[83,90]
,		[84,95]
,		[86,94]
,		[98,100,102]
,		[99,103]
,		[187,188]
,		[198,232]
,		[199,235]
,		[212,214]
	]
];};

window["createEjectaRuntime"]();

})();
