(function (cjs, an) {

var p; // shortcut to reference prototypes
var lib={};var ss={};var img={};
lib.ssMetadata = [];


// symbols:



(lib.Bitmap3 = function() {
	this.initialize(img.Bitmap3);
}).prototype = p = new cjs.Bitmap();
p.nominalBounds = new cjs.Rectangle(0,0,1303,737);


(lib.Bitmap4 = function() {
	this.initialize(img.Bitmap4);
}).prototype = p = new cjs.Bitmap();
p.nominalBounds = new cjs.Rectangle(0,0,1320,46);


(lib.Bitmap6 = function() {
	this.initialize(img.Bitmap6);
}).prototype = p = new cjs.Bitmap();
p.nominalBounds = new cjs.Rectangle(0,0,379,218);// helper functions:

function mc_symbol_clone() {
	var clone = this._cloneProps(new this.constructor(this.mode, this.startPosition, this.loop));
	clone.gotoAndStop(this.currentFrame);
	clone.paused = this.paused;
	clone.framerate = this.framerate;
	return clone;
}

function getMCSymbolPrototype(symbol, nominalBounds, frameBounds) {
	var prototype = cjs.extend(symbol, cjs.MovieClip);
	prototype.clone = mc_symbol_clone;
	prototype.nominalBounds = nominalBounds;
	prototype.frameBounds = frameBounds;
	return prototype;
	}


(lib.Symbol4 = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.shape = new cjs.Shape();
	this.shape.graphics.f().s("#FEFDFB").ss(1,1,1).p("AolmPIRLAAIAAMfIxLAAg");
	this.shape.setTransform(55,40);

	this.shape_1 = new cjs.Shape();
	this.shape_1.graphics.f("#FFFFFF").s().p("AolGQIAAsfIRLAAIAAMfg");
	this.shape_1.setTransform(55,40);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.shape_1},{t:this.shape}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.Symbol4, new cjs.Rectangle(-1,-1,112,82), null);


(lib.sprite118 = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer 3
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#FFFFFF").s().p("ADVAuIpoAAIAAhVIJqAAIgZhDIDWBqIjWBrgADmADIABgDIgBgBg");
	this.shape.setTransform(40.4,-0.1);

	this.timeline.addTween(cjs.Tween.get(this.shape).wait(1));

}).prototype = getMCSymbolPrototype(lib.sprite118, new cjs.Rectangle(0,-10.8,80.8,21.4), null);


(lib.plus_buttoncopy2 = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#48647C").s().p("AiAExQg7gagugtQgtgugag7Qgag9AAhEQAAhCAag+QAag7AtguQAugtA7gaQA9gaBDAAQBDAAA+AaQA7AaAuAtQAtAuAaA7QAaA+AABCQAABEgaA9QgaA7gtAuQguAtg7AaQg+AahDAAQhDAAg9gagAjKgJQgEAFAAAEQAAAGAEAEQAEAEAGAAICzAAIAACzQAAAGAEAEQAEADAFAAQAFAAAFgDQAEgEAAgGIAAizICzAAQAGAAAEgEQADgEAAgGQAAgEgDgFQgEgEgGAAIizAAIAAizQAAgGgEgEQgFgEgFAAQgFAAgEAEQgEAEAAAGIAACzIizAAQgGAAgEAEg");

	this.shape_1 = new cjs.Shape();
	this.shape_1.graphics.f("#FDFEFA").s().p("AigF9QhKggg6g4Qg4g6gghKQghhNABhUQgBhTAhhNQAghKA4g6QA6g4BKggQBNghBTABQBUgBBNAhQBKAgA6A4QA4A6AgBKQAhBNgBBTQABBUghBNQgfBKg6A6Qg5A4hKAgQhNAhhUgBQhTABhNghgAiVljQhFAeg2A1Qg1A2geBFQgeBIAABNQAABOAeBIQAeBFA1A2QA2A1BFAdQBIAfBNAAQBOAABIgfQBFgdA2g1QA1g2AdhFQAfhIAAhOQAAhNgfhIQgdhGg1g1Qg1g1hGgeQhIgehOAAQhNAAhIAegAgJDLQgEgEAAgGIAAizIizAAQgGAAgEgEQgEgEAAgGQAAgEAEgFQAEgEAGAAICzAAIAAizQAAgGAEgEQAEgEAFAAQAFAAAFAEQAEAEAAAGIAACzICzAAQAGAAAEAEQADAFAAAEQAAAGgDAEQgEAEgGAAIizAAIAACzQAAAGgEAEQgFADgFAAQgFAAgEgDg");

	this.shape_2 = new cjs.Shape();
	this.shape_2.graphics.f("#48647C").s().p("AigF9QhKggg6g4Qg4g6gghKQghhNABhUQgBhTAhhNQAghKA4g6QA6g4BKggQBNghBTABQBUgBBNAhQBKAgA6A4QA4A6AgBKQAhBNgBBTQABBUghBNQgfBKg6A6Qg5A4hKAgQhNAhhUgBQhTABhNghgAiVljQhFAeg2A1Qg1A2geBFQgeBIAABNQAABOAeBIQAeBFA1A2QA2A1BFAdQBIAfBNAAQBOAABIgfQBFgdA2g1QA1g2AdhFQAfhIAAhOQAAhNgfhIQgdhGg1g1Qg1g1hGgeQhIgehOAAQhNAAhIAegAiAExQg7gagugtQgtgugag7Qgag9AAhEQAAhCAag+QAag7AtguQAugtA7gaQA9gaBDAAQBDAAA+AaQA7AaAuAtQAtAuAaA7QAaA+AABCQAABEgaA9QgaA7gtAuQguAtg7AaQg+AahDAAQhDAAg9gagAjKgJQgEAFAAAEQAAAGAEAEQAEAEAGAAICzAAIAACzQAAAGAEAEQAEADAFAAQAFAAAFgDQAEgEAAgGIAAizICzAAQAGAAAEgEQADgEAAgGQAAgEgDgFQgEgEgGAAIizAAIAAizQAAgGgEgEQgFgEgFAAQgFAAgEAEQgEAEAAAGIAACzIizAAQgGAAgEAEg");

	this.shape_3 = new cjs.Shape();
	this.shape_3.graphics.f("#FFFFFF").s().p("AgIDLQgFgEAAgGIAAizIizAAQgFAAgEgEQgFgEAAgGQAAgEAFgEQAEgFAFAAICzAAIAAizQAAgFAFgEQADgFAFAAQAGAAAEAFQAEAEAAAFIAACzICzAAQAGAAAEAFQAEAEAAAEQAAAGgEAEQgEAEgGAAIizAAIAACzQAAAGgEAEQgEAEgGAAQgFAAgDgEg");

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.shape_1},{t:this.shape}]}).to({state:[{t:this.shape_3},{t:this.shape_2}]},2).wait(2));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(-41.3,-41.3,82.7,82.7);


(lib.Symbol88 = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#FFFFFF").s().p("AhZDVQgqgSgfggQgggggSgpQgSgrAAgvQAAguASgrQASgqAggfQAfghAqgRQArgSAuAAQAvAAArASQAqARAfAhQAgAfASAqQASArAAAuQAAAvgSArQgSApggAgQgfAggqASQgrASgvAAQguAAgrgSgAhIisQgiAOgaAaQgaAagOAiQgPAjAAAlQAAAmAPAjQAOAiAaAaQAaAaAiAOQAjAPAlAAQAmAAAjgPQAigOAagaQAagaAOgiQAPgjAAgmQAAglgPgjQgOgigagaQgagagigOQgjgPgmAAQglAAgjAPgAgQB/QgIgGAAgNQAAgLAHgIQAIgIALAAQALAAAHAIQAIAIAAALQAAANgIAGQgIAIgKAAQgKAAgIgIgAgPA7QgGgGAAgLQAAgPAEgMQAFgKAIgIIATgTIARgPIAIgLQAEgHAAgHQAAgOgLgKQgKgKgSAAQgSAAgJAKQgJAKgHATQgGAUgQAAQgKAAgHgHQgHgHAAgIQAAgRALgRQALgRAUgMQAVgLAaAAQAbAAATAJQAUAKAKAQQALARAAATQAAAPgGALQgGALgJAJQgIAIgWASIgJAKIgGAIIgCAHIgEAMQgDASgRAAQgJAAgGgGg");

	this.timeline.addTween(cjs.Tween.get(this.shape).wait(1));

}).prototype = getMCSymbolPrototype(lib.Symbol88, new cjs.Rectangle(-23.1,-23.1,46.3,46.3), null);


(lib.fasa = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.Bitmap4();
	this.instance.parent = this;
	this.instance.setTransform(-20,0);

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(1));

}).prototype = getMCSymbolPrototype(lib.fasa, new cjs.Rectangle(-20,0,1320,46), null);


(lib.dertg36 = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer 1
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#FFFFFF").s().p("AgDCcQhBgCgsguQgtgvAChAQAChBAvgrQAugtBAABQBBADAsAuQAsAugBBBQgDBAgtAtQgtAqg+AAIgEAAgAhWhaQgnAjgBA1QgBA0AlAmQAjAlA0ACQA0ABAngkQAlgkABg0QABg1gjglQgkgmg1gBIgDAAQgyAAgkAjgAglBMIAcgCIABgyIAAglIghgBIABgeIA+ACIgBAxIAABBIAhACIACAcIheAEgAgDg2QgNAAgIgIQgGgIABgNQAAgMAHgJQAHgHAMABQAMAAAIAHQAGAJAAAMQAAAFgDAGQgBAFgEAFIgIAGIgHABIgDAAg");
	this.shape.setTransform(0.2,0.1);

	this.shape_1 = new cjs.Shape();
	this.shape_1.graphics.f("rgba(255,255,255,0.161)").s().p("AgCB/Qg1gCgjglQglgmACg0QABg1AmgkQAmgkAzACQA2ABAkAmQAjAlgBA0QgBA1gmAkQglAjgzAAIgCAAgAgogOIAgAAIAAAmIAAAyIgcABIgBAeIBegDIgCgcIghgCIgBhCIABgwIg+gCgAgWhoQgHAIAAAMQgBANAHAJQAHAHANAAQAFABAFgCIAIgFQAEgFACgFQACgGABgGQAAgMgHgIQgIgHgLgBIgCAAQgLAAgHAHg");
	this.shape_1.setTransform(0.1,0.1);

	this.shape_2 = new cjs.Shape();
	this.shape_2.graphics.f("#3F3F3F").s().p("AgDCcQhBgCgsguQgtgvAChAQAChBAvgrQAugtBAABQBBADAsAuQAsAugBBBQgDBAgtAtQgtAqg+AAIgEAAgAhWhaQgnAjgBA1QgBA0AlAmQAjAlA0ACQA0ABAngkQAlgkABg0QABg1gjglQgkgmg1gBIgDAAQgyAAgkAjgAglBMIAcgCIABgyIAAglIghgBIABgeIA+ACIgBAxIAABBIAhACIACAcIheAEgAgDg2QgNAAgIgIQgGgIABgNQAAgMAHgJQAHgHAMABQAMAAAIAHQAGAJAAAMQAAAFgDAGQgBAFgEAFIgIAGIgHABIgDAAg");
	this.shape_2.setTransform(0.2,0.1);

	this.shape_3 = new cjs.Shape();
	this.shape_3.graphics.f("#FFFFFF").s().p("AgDCcQhBgCgsguQgtgvAChAQAChBAvgrQAugtBAABQBBADAsAuQAsAugBBBQgDBAgtAtQgtAqg+AAIgEAAg");
	this.shape_3.setTransform(0.2,0.1);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.shape_1},{t:this.shape}]}).to({state:[{t:this.shape_1},{t:this.shape_2}]},1).to({state:[{t:this.shape_1},{t:this.shape_2}]},1).to({state:[{t:this.shape_3}]},1).wait(1));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(-15.4,-15.5,31.2,31.2);


(lib.background = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.Bitmap3();
	this.instance.parent = this;
	this.instance.setTransform(-631.6,-375.5);

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(1));

}).prototype = getMCSymbolPrototype(lib.background, new cjs.Rectangle(-631.6,-375.5,1303,737), null);


(lib.shadow = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.shape = new cjs.Shape();
	this.shape.graphics.lf(["#000000","rgba(0,0,0,0)"],[0,1],-4.1,0,3.8,0).s().p("EgAnA2RMAAAhshIBPAAMAAABshg");
	this.shape.setTransform(4,-347.2);

	this.timeline.addTween(cjs.Tween.get(this.shape).wait(1));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(0,-694.5,8,694.5);


(lib.Symbol11 = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_2
	this.close = new lib.plus_buttoncopy2();
	this.close.name = "close";
	this.close.parent = this;
	this.close.setTransform(652.4,202.5,0.485,0.485,-45,0,0,0.3,0.5);
	new cjs.ButtonHelper(this.close, 0, 1, 2, false, new lib.plus_buttoncopy2(), 3);

	this.timeline.addTween(cjs.Tween.get(this.close).wait(1));

	// Layer_1
	this.instance = new lib.Bitmap6();
	this.instance.parent = this;
	this.instance.setTransform(302,174);

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(1));

}).prototype = getMCSymbolPrototype(lib.Symbol11, new cjs.Rectangle(302,174,379,218), null);


(lib.Symbol10 = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.help_text = new lib.Symbol11();
	this.help_text.name = "help_text";
	this.help_text.parent = this;
	this.help_text.setTransform(1338.1,1099.5,0.744,0.744,0,0,0,491.2,282.9);

	this.timeline.addTween(cjs.Tween.get(this.help_text).wait(1));

}).prototype = getMCSymbolPrototype(lib.Symbol10, new cjs.Rectangle(1197.4,1018.5,281.9,162.2), null);


(lib.Symbol13copy = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.Symbol88();
	this.instance.parent = this;

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(4));

	// Layer_2
	this.shape = new cjs.Shape();
	this.shape.graphics.f("rgba(255,255,255,0.278)").s().p("Ai+C/QhPhPAAhwQAAhvBPhQQBPhOBvAAQBwAABPBOQBPBQABBvQgBBwhPBPQhPBPhwABQhvgBhPhPg");
	this.shape.setTransform(-0.1,-0.2);
	this.shape._off = true;

	this.timeline.addTween(cjs.Tween.get(this.shape).wait(1).to({_off:false},0).wait(3));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(-23.1,-23.1,46.3,46.3);


// stage content:
(lib.prismatakaianalysifotos = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// timeline functions:
	this.frame_0 = function() {
		var uu=0;
		var _root = this;
		
		createjs.Touch.enable(stage);	
		var self, 
		marginVarNumber = 160, 
		marginVar = marginVarNumber, 
		PI = Math.PI, 
		toDeg = 180 / PI, 
		toRad = PI / 180, 
		X0 = 360, 
		Y0 = 200, 
		t = 0, 
		dt = 1 / 60, 
		dtInitial = dt, 
		dtSlow = dt, 
		factor = .5, 
		playMovie = !1, 
		framePlay = !1, 
		xScale = 40, 
		yScale = -xScale, 
		valuesText = new createjs.Text("","12px Trebuchet MS");
		var nMax = 3,
		NMax = 20;
		
		var sP = new Array
		  , shapeX = new Array
		  , shapeY = new Array;
		shapeX[0] = new Array(320,360,280),
		shapeY[0] = new Array(80,160,160);
		
		for (var n1 = 1, n2 = 1.5, tMax = 14, 
			repeat = 0, refractionFlag = !0, 
			numberOffCollitions = 10, 
			numberOffPoints = sP[sP.length - 1], 
		numberOffRays = 13, 
		N = 3, 
		nIndex = new Array, 
		color2 = [{R: 255,G: 0,B: 0}, {R: 255,G: 0,B: 0}, {R: 255,G: 0,B: 0}, {R: 255,G: 78,B: 0}, {R: 255,G: 177,B: 0}, {R: 237,G: 255,B: 0}, {R: 146,G: 255,B: 0}, {R: 55,G: 255,B: 0}, {R: 0,G: 255,B: 128}, {R: 0,G: 179,B: 255}, {R: 0,G: 51,B: 255}, {R: 80,G: 0,B: 255}, {R: 212,G: 0,B: 255}], 
		slope = (1.5 - 1.55) / 300, λ = 700; 400 <= λ; λ -= 25)
		nIndex.push(1.55 + slope * (λ - 400));
		
		
		var lineRays = new createjs.Container
		  , lightPoints = new createjs.Container
		  , lineRays = new createjs.Container
		  , points2 = new createjs.Container
		  , shapes = new createjs.Container
		  , rotator = _root.rotator;//LaserShape();
		rotator.x = 150,
		rotator.y = 450,
		rotator.rotation = -30,
		rotator.name = "rotator",
		rotator.addEventListener("mousedown", mouseDownGen),
		rotator.addEventListener("pressup", pressUpGen),
		rotator.mouseChildren = !1;
		var V = {
		    x: 5 * Math.cos(-rotator.rotation * toRad),
		    y: 5 * Math.sin(-rotator.rotation * toRad)
		}
		var repeatReflex = 0;
		var repeatRefraction = 0;
		var laserOnFlag = !0;
		var beamLight = !0;
		var distance = 0;
		var φ = Math.PI / 12;
		var φi = Math.atan2(V.y, V.x);
		var dθ = 1 == numberOffRays ? 0 : φ / numberOffRays;
		var φs = 1 == numberOffRays ? 0 : -φ / 2 + dθ;
		
		var cm = makeDragPoint("#FF0000", "cm", 4)
		  , boxRotator = boxRotatorShape();
		boxRotator.visible = !1,
		cm.addEventListener("click", function() {
		    boxRotator.visible = !0
		}),
		boxRotator.addEventListener("mousedown", mouseDownGen),
		boxRotator.addEventListener("pressup", pressUpGen),
		boxRotator.mouseChildren = !1,
		boxRotator.name = "boxRotator";
		
		var currentShapeIndex = 0;
		var backround = new createjs.Shape;
		var whiteLight = true;
		var alpha = 0.8;
		
		
		
		init();
		
		function init() {
		    createjs.Touch.enable(stage),
		    self = stage,
		    stage.addChild(backround),
		    stage.addChild(shapes),
		    stage.addChild(lineRays),
		    stage.addChild(rotator),
		    stage.addChild(points2),
		    stage.addChild(lightPoints),
		    stage.addChild(cm),
		    stage.addChild(boxRotator),
		    initialize();
		}
		
		function initialize() {
		    addPointsLight(),
		    addPolygon(3,480,300),
			addPolygon(3,820,300),
		    drawAllPrisms(),
		    restart()
		}
		function restart() {
		    backround.graphics.clear().f("#000").dr(0, 0, 1, 7),
		    drawAll(),
		    positions()
		}
		function tick(e) {
		    playMovie && (framePlay = framePlay && (playMovie = !1),
		    positions())
		}
		function positions() {
		
		}
		
		
		
		
		//////////////////////////////////////////////////////
		
		
		function reflex(e, a, t) {
		    var r = dot(e, a)
		      , n = dot(a, a)
		      , s = r * a.x / n
		      , o = r * a.y / n
		      , i = normalize(i = {
		        x: s - (e.x - s),
		        y: o - (e.y - o)
		    })
		      , h = new Object;
		    return h.R = i,
		    h.flag = t,
		    h
		}
		function refraction(e, a, t, r) {
		    a.x,
		    a.y,
		    e.x,
		    e.y;
		    var n = dot(e, a)
		      , s = dot(a, a)
		      , o = new Object({
		        x: n * a.x / s,
		        y: n * a.y / s
		    })
		      , i = calcNorm(o)
		      , h = new Object({
		        x: e.x - o.x,
		        y: e.y - o.y
		    })
		      , c = calcNorm(h)
		      , d = r ? n2 / n1 : n1 / n2;
		    d = whiteLight ? r ? nIndex[t] / n1 : n1 / nIndex[t] : r ? n2 / n1 : n1 / n2,
		    r = !r;
		    var l, x = d * calcNorm(e);
		    l = i <= x ? new Object({
		        x: h.x * Math.sqrt(x * x - i * i) / c,
		        y: h.y * Math.sqrt(x * x - i * i) / c
		    }) : new Object({
		        x: -o.x,
		        y: -o.y
		    });
		    var p = new Object({
		        x: o.x + l.x,
		        y: o.y + l.y
		    })
		      , y = new Object;
		    return y.R = p,
		    y.flag = r,
		    y
		}
		function dot(e, a) {
		    return e.x * a.x + e.y * a.y
		}
		function normalize(e) {
		    var a = Math.sqrt(e.x * e.x + e.y * e.y);
		    return {
		        x: e.x / a,
		        y: e.y / a
		    }
		}
		function line(e, a) {
		    var t = new Object;
		    return t.A = e.y - a.y,
		    t.B = a.x - e.x,
		    t.C = e.x * a.y - a.x * e.y,
		    t
		}
		function xy2XY(e) {
		    return {
		        x: X0 + xScale * e.x,
		        y: Y0 + yScale * e.y
		    }
		}
		function XY2xy(e) {
		    return {
		        x: (e.x - X0) / xScale,
		        y: (e.y - Y0) / yScale
		    }
		}
		function calc(e, a) {
		    for (var t, r = .1 < a.x ? ((1280 - X0) / xScale - e.x) / a.x : tMax, n = {
		        x: -99,
		        y: -99
		    }, s = 0; s <= sP.length - 1; s++)
		        for (var o = 0 == s ? 0 : sP[s - 1] + 1, i = o; i <= sP[s]; i++) {
		            j = i != sP[s] ? i + 1 : o;
		            var h, c = points2.getChildAt(i), d = XY2xy(d = {
		                x: c.x,
		                y: c.y
		            }), l = points2.getChildAt(j), x = {
		                x: l.x,
		                y: l.y
		            }, p = -((v = line(d, x = XY2xy(x))).A * e.x + v.B * e.y + v.C) / (v.A * a.x + v.B * a.y), y = e.x + a.x * p, u = e.y + a.y * p, f = !1, g = x.x - d.x, m = x.y - d.y;
		            0 != g ? h = (y - d.x) / g : 0 != m && (h = (u - d.y) / m),
		            Math.abs(h) < 1e-5 || Math.abs(h - 1) < 1e-5 ? 1e-12 < p && p < r && (r = p,
		            n.x = -999,
		            n.y = -999,
		            t = i) : 0 < h && h < 1 && (f = !0),
		            f && 1e-12 < p && p < r && (n.x = x.x - d.x,
		            n.y = x.y - d.y,
		            r = p,
		            t = i)
		        }
		    var v, w = {
		        x: e.x + a.x * r,
		        y: e.y + a.y * r
		    };
		    return v = new Array(w,n,t)
		}
		function drawRay(e, a, t) {
		    var r = lineRays.getChildAt(t);
		    r.graphics.moveTo(X0 + e.x * xScale, Y0 + e.y * yScale),
		    r.graphics.lineTo(X0 + a.x * xScale, Y0 + a.y * yScale)
		}
		function draw2Ray(e, a, t, r) {
		    var n = lineRays.getChildAt(t);
		    whiteLight ? (i = "rgba(" + color2[t].R + "," + color2[t].G + "," + color2[t].B + "," + alpha + ")",
		    n.graphics.ss(2).s(i)) : n.graphics.ss(2).s("rgba(255,0,0,.6)");
		    for (var s = calc(e, a); -999 == s[1].x && -999 == s[1].y; ) {
		        1e-8 < Math.abs(a.x) ? e.y = e.y + 1e-7 : e.x = e.x + 1e-7;
		        s = calc(e, a)
		    }
		    if (drawRay(e, s[0], t),
		    -99 != s[1].x || -99 != s[1].y) {
		        for (var o, i, h, c, d, l, x = 0; x <= sP.length - 1; x++) {
		            s[2] <= sP[x] && s[2] >= (0 == x ? 0 : sP[x - 1] + 1) && (o = 0 == x ? sP[0] + 1 : sP[x] - sP[0 == x ? 0 : x - 1])
		        }
		        whiteLight ? (i = "rgba(" + color2[t].R + "," + color2[t].G + "," + color2[t].B + "," + alpha + ")",
		        n.graphics.ss(2).s(i)) : n.graphics.ss(2).s("rgba(255,0,0,.6)"),
		        2 != o && (repeatRefraction++,
		        h = (d = refraction(a, s[1], t, r)).R,
		        e = new Object({
		            x: s[0].x,
		            y: s[0].y
		        }),
		        c = !1,
		        0 == h.x && 0 == h.y && (c = !0),
		        draw2Ray(e, h, t, d.flag)),
		        (2 == o && repeatReflex < 50 || c && repeatReflex <= 5) && (repeatReflex++,
		        l = (d = reflex(a, s[1], r)).R,
		        e = new Object({
		            x: s[0].x,
		            y: s[0].y
		        }),
		        n.graphics.moveTo(s[0].x * xScale + X0, s[0].y * yScale + Y0),
		        draw2Ray(e, l, t, d.flag))
		    }
		}
		function drawAll() {
		    for (var e = 0; e <= numberOffRays - 1; e++) {
		        repeatReflex = 0,
		        repeatRefraction = 0;
		        var a, t = lightPoints.getChildAt(e), r = lineRays.getChildAt(e);
		        whiteLight ? (r.compositeOperation = "screen",
		        a = "rgba(" + color2[e].R + "," + color2[e].G + "," + color2[e].B + "," + alpha + ")",
		        r.graphics.clear().ss(2).s(a)) : r.graphics.clear().ss(2).s("rgba(255,0,0,.6)"),
		        refractionFlag = !shapes.hitTest(t.x, t.y);
		        var n = XY2xy(n = {
		            x: t.x,
		            y: t.y
		        });
		
		        draw2Ray(n, V, e, refractionFlag)
		    }
		    
		}
		function pFresnelIndex(e, a) {
		    var t = Math.sin(a - e) / Math.sin(a + e);
		    return t * t
		}
		function tFresnelIndex(e, a) {
		    var t = Math.tan(a - e) / Math.tan(a + e);
		    return t * t
		}
		function calcNorm(e) {
		    return Math.sqrt(e.x * e.x + e.y * e.y)
		}
		function createShapeObject(e, a) {
		    addBox(e, a)
		}
		function addBox(e, a) {
		    for (var t = e.length, r = 0; r <= t - 1; r++) {
		        var n = makeDragPoint("rgba(255,255,255,0.3)", "point", 10);
		        n.set({
		            x: e[r] + 0 * Math.random(),
		            y: a[r] + 0 * Math.random()
		        }),
		        n.addEventListener("mousedown", mouseDownGen),
		        n.addEventListener("pressup", pressUpGen),
		        n.mouseChildren = !1,
		        points2.addChild(n)
		    }
		    0 == sP.length ? sP.push(t - 1) : sP.push(sP[sP.length - 1] + t),
		    numberOffPoints = sP[sP.length - 1],
		    createShape(sP.length - 1),
		    findShapeG(sP.length - 1)
		}
		function findShapeG(e) {
		    if (-1 != e) {
		        cm.visible = !0,
		        Xor = 0;
		        var a = (Yor = 0) == (currentShapeIndex = e) ? 0 : sP[e - 1] + 1
		          , t = sP[e];
		        for (i = a; i <= t; i++) {
		            var r = points2.getChildAt(i);
		            Xor += r.x,
		            Yor += r.y
		        }
		        Xor /= t - a + 1,
		        Yor /= t - a + 1,
		        cm.x = boxRotator.x = Xor,
		        cm.y = boxRotator.y = Yor
		    } else
		        cm.visible = !1
		}
		function createShape() {
		    var e = new createjs.Shape;
		    shapes.addChild(e),
		    e.name = "shape",
		    e.addEventListener("mousedown", mouseDownGen),
		    e.addEventListener("pressup", pressUpGen),
		    e.mouseChildren = !1
		}
		function drawShape2(e) {
		    var a = shapes.getChildAt(e);
		    a.compositeOperation = "screen",
		    a.graphics.clear().f("#aaa").ss(5.5, "round", "round").s("rgba(244,202,51,1)"),
		    a.hitArea = new createjs.Shape,
		    a.hitArea.graphics.f("#FFFFFF");
		    var t = 0 == e ? 0 : sP[e - 1] + 1
		      , r = sP[e]
		      , n = points2.getChildAt(t);
		    a.graphics.mt(n.x, n.y),
		    a.hitArea.graphics.ss(15).s("#fff").mt(n.x, n.y);
		    for (var s = t + 1; s <= r; s++) {
		        n = points2.getChildAt(s);
		        a.graphics.lt(n.x, n.y),
		        a.hitArea.graphics.lt(n.x, n.y)
		    }
		    a.graphics.cp().endFill()
		}
		function drawAllPrisms() {
		    for (var e = shapes.numChildren - 1, a = 0; a <= e; a++)
		        drawShape2(a)
		}
		
		function addPolygon(e,kou,psu) {
		    var a = new Array
		      , t = new Array
		      , r = 360 / e
		      , n = 4 == N ? 45 : 90;
		    for (θ = 0; θ < 360; θ += r)
		        a.push(kou + 160 * Math.cos((θ - n) * toRad) + 0 * Math.random()),
		        t.push(psu + 160 * Math.sin((θ - n) * toRad) + 0 * Math.random());
		    shapeX.push(a),
		    shapeY.push(t),
		    createShapeObject(a, t)
		}
		/*function removeBox() {
		    if (-1 != currentShapeIndex) {
		        var e;
		        e = 0 == currentShapeIndex ? sP[currentShapeIndex] + 1 : sP[currentShapeIndex] - sP[currentShapeIndex - 1];
		        for (var a = currentShapeIndex + 1; a <= sP.length - 1; a++)
		            sP[a] -= e;
		        for (a = 0; a <= e - 1; a++)
		            points2.removeChildAt(0 == currentShapeIndex ? 0 : sP[currentShapeIndex - 1] + 1);
		        sP.splice(currentShapeIndex, 1),
		        shapes.removeChildAt(currentShapeIndex),
		        shapeX.splice(currentShapeIndex, 1),
		        shapeY.splice(currentShapeIndex, 1),
		        currentShapeIndex--,
		        findShapeG(currentShapeIndex),
		        restart()
		    }
		}*/
		function addPointsLight() {
		    lineRays.removeAllChildren(),
		    lightPoints.removeAllChildren();
		    for (var e, a, t = 0; t <= numberOffRays - 1; t++) {
		        t == Number((numberOffRays - 1) / 2) ? ((e = makeDragPoint("rgba(255,255,255,1)", "lightPoint", 15)).addEventListener("mousedown", mouseDownGen),
		        e.addEventListener("pressup", pressUpGen),
		        e.mouseChildren = !1,
		        e.name = "lightPoint") : (e = makePoint("#FFFF00", "lightPoint", 2.5)).visible = !1,
		        a = beamLight ? convertPositions(0, (t - (numberOffRays - 1) / 2) * distance, -φi) : new Object({
		            x: 0,
		            y: 0
		        }),
		        e.set({
		            x: rotator.x + a.x,
		            y: rotator.y + a.y
		        }),
		        lightPoints.addChild(e);
		        var r = new createjs.Shape;
		        lineRays.addChild(r)
		    }
		}
		function changeDistanceRays(e) {
		    for (var a = 0; a <= numberOffRays - 1; a++) {
		        var t, r = lightPoints.getChildAt(a);
		        t = beamLight ? convertPositions(0, (a - (numberOffRays - 1) / 2) * e, -φi) : new Object({
		            x: 0,
		            y: 0
		        }),
		        r.set({
		            x: rotator.x + t.x,
		            y: rotator.y + t.y
		        })
		    }
		}
		function rotationAngle(e, a, t) {
		    var r = new Object
		      , n = Math.cos(t * toRad)
		      , s = Math.sin(t * toRad);
		    return r.x = e * n - a * s,
		    r.y = e * s + a * n,
		    r
		}
		
		
		///////////////////////////////////////////////////////////////////////////
		
		
		
		var xPos = []
		  , yPos = []
		  , cloneObjPointsPos = [];
		function mouseDownGenParent(t) {
		    var e = canvas.width
		      , a = canvas.height;
		    t.target.offset = {
		        x: t.target.parent.x - t.stageX * (1280 / e),
		        y: t.target.parent.y - t.stageY * (720 / a)
		    },
		    t.target.addEventListener("pressmove", pressMoveGenParent),
		    t.target.oldRotation = t.target.parent.rotation,
		    t.target.ω0 = 180 * Math.atan2(t.stageY * (720 / a) - t.target.parent.y, t.stageX * (1280 / e) - t.target.parent.x) / Math.PI
		}
		function pressMoveGenParent(t) {
		    var e, a = canvas.width, r = canvas.height, g = t.stageX * (1280 / a) + t.target.offset.x, n = t.stageY * (720 / r) + t.target.offset.y;
		    "lines" == t.target.name ? (t.target.parent.x = g,
		    t.target.parent.y = n) : "grad" == t.target.name && (e = 180 * Math.atan2(t.stageY * (720 / r) - t.target.parent.y, t.stageX * (1280 / a) - t.target.parent.x) / Math.PI,
		    t.target.parent.rotation = e - t.target.ω0 + t.target.oldRotation),
		    positions()
		}
		function pressUpGenParent(t) {
		    t.target.removeEventListener("pressmove", pressMoveGenParent)
		}
		function mouseDownGen(t) {
		    var e = canvas.width
		      , a = canvas.height;
		    if (t.target.offset = {
		        x: t.target.x - t.stageX * (1280 / e),
		        y: t.target.y - t.stageY * (720 / a)
		    },
		    t.target.addEventListener("pressmove", pressMoveGen),
		    t.target.startX = t.target.x,
		    t.target.startY = t.target.y,
		    "shape" == t.target.name) {
		        for (var r = shapes.getChildIndex(t.target), g = 0 == r ? 0 : sP[r - 1] + 1, n = sP[r], o = g; o <= n; o++) {
		            var s = points2.getChildAt(o);
		            shapeX[r][o] = s.x,
		            shapeY[r][o] = s.y
		        }
		        findShapeG(shapes.getChildIndex(t.target))
		    }
		    "boxRotator" != t.target.name && (boxRotator.visible = !1,
		    stage.update()),
		    t.target.ω0 = 180 * Math.atan2(t.stageY * (720 / a) - t.target.y, t.stageX * (1280 / e) - t.target.x) / Math.PI;
		    for (g = 0 == currentShapeIndex ? 0 : sP[currentShapeIndex - 1] + 1,
		    n = sP[currentShapeIndex],
		    o = g; o <= n; o++) {
		        var i = points2.getChildAt(o);
		        xPos[o] = i.x - Xor,
		        yPos[o] = i.y - Yor
		    }
		}
		function pressMoveGen(t) {
		    var e = canvas.width
		      , a = canvas.height
		      , r = t.stageX * (1280 / e) + t.target.offset.x
		      , g = t.stageY * (720 / a) + t.target.offset.y;
		    if ("shape" == t.target.name) {
		        for (var n = r - t.target.startX, o = g - t.target.startY, s = shapes.getChildIndex(t.target), i = 0 == s ? 0 : sP[s - 1] + 1, p = sP[s], d = i; d <= p; d++) {
		            var h = points2.getChildAt(d);
		            h.x = shapeX[s][d] + n,
		            h.y = shapeY[s][d] + o
		        }
		        findShapeG(shapes.getChildIndex(t.target))
		    } else if ("lightPoint" == t.target.name) {
		        n = r - t.target.x,
		        o = g - t.target.y;
		        rotator.x = t.target.x = r,
		        rotator.y = t.target.y = g;
		        var x = Number((numberOffRays - 1) / 2);
		        for (d = 0; d <= numberOffRays - 1; d++) {
		            d != x && ((y = lightPoints.getChildAt(d)).x += n,
		            y.y += o)
		        }
		    } else if ("rotator" == t.target.name) {
		        for (var l = 180 * Math.atan2(t.stageY * (720 / a) - t.target.y, t.stageX * (1280 / e) - t.target.x) / Math.PI, d = 0; d <= numberOffRays - 1; d++) {
		            var y = lightPoints.getChildAt(d)
		              , v = convertPositions(y.x - rotator.x, y.y - rotator.y, (l - rotator.rotation) * toRad);
		            y.set({
		                x: rotator.x + v.x,
		                y: rotator.y + v.y
		            })
		        }
		        t.target.rotation = l,
		        V.x = 5 * Math.cos(-l * toRad),
		        V.y = 5 * Math.sin(-l * toRad),
		        φi = -l * toRad
		    } else if ("point" == t.target.name)
		        t.target.x = r,
		        t.target.y = g,
		        findShapeG(currentShapeIndex);
		    else if ("boxRotator" == t.target.name) {
		        l = 180 * Math.atan2(t.stageY * (720 / a) - t.target.y, t.stageX * (1280 / e) - t.target.x) / Math.PI;
		        boxRotator.rotation = l - t.target.ω0 + t.target.oldRotation;
		        i = 0 == currentShapeIndex ? 0 : sP[currentShapeIndex - 1] + 1,
		        p = sP[currentShapeIndex];
		        for (d = i; d <= p; d++) {
		            var f = points2.getChildAt(d)
		              , v = rotationAngle(xPos[d], yPos[d], l - t.target.ω0);
		            f.x = v.x + Xor,
		            f.y = v.y + Yor
		        }
		    }
		    drawAllPrisms(),
		    restart()
		}
		function pressUpGen(t) {
		    boxRotator.visible = !1,
		    stage.update(),
		    t.target.removeEventListener("pressmove", pressMoveGen)
		}
		
		/////////////////////////////////////////////////////////
		
		
		function makeDragLine(t, e, a) {
		    null == t && (t = "#000000"),
		    null == e && (e = "dragPoint"),
		    null == a && (a = 100);
		    var r = new createjs.Shape
		      , n = r.graphics;
		    return n.setStrokeStyle(2),
		    n.beginStroke(t),
		    n.mt(0, 0).lt(0, a),
		    n.endStroke(),
		    n.endFill(),
		    r.hitArea = new createjs.Shape,
		    r.hitArea.graphics.setStrokeStyle(2),
		    r.hitArea.graphics.beginStroke("#FFFFFF"),
		    r.hitArea.graphics.beginFill("#FFFFFF"),
		    r.hitArea.graphics.dr(-20, 0, 40, a),
		    r.hitArea.graphics.endFill(),
		    r.hitArea.graphics.endStroke(),
		    r.hitArea.alpha = .1,
		    r.name = e,
		    r
		}
		function makeDragPoint(t, e, a) {
		    null == t && (t = "#000000"),
		    null == e && (e = "dragPoint"),
		    null == a && (a = 3);
		    var r = new createjs.Shape
		      , n = r.graphics;
		    return n.setStrokeStyle(1),
		    n.beginFill(t),
		    n.dc(0, 0, a),
		    n.endFill(),
		    r.hitArea = new createjs.Shape,
		    r.hitArea.graphics.beginStroke("#FFFFFF"),
		    r.hitArea.graphics.beginFill("#FFFFFF"),
		    r.hitArea.graphics.dc(0, 0, 10),
		    r.hitArea.graphics.endStroke(),
		    r.hitArea.alpha = .01,
		    r.name = e,
		    r
		}
		function makePoint(t, e, a) {
		    null == t && (t = "#000000"),
		    null == e && (e = "dragPoint"),
		    null == a && (a = 5);
		    var r = new createjs.Shape
		      , n = r.graphics;
		    return n.setStrokeStyle(1),
		    n.beginStroke(t),
		    n.beginFill(t),
		    n.dc(0, 0, a),
		    n.endStroke(),
		    n.endFill(),
		    r.name = e,
		    r
		}
		function createVector(t, e, a) {
		    null == t && (t = "#000000"),
		    null == e && (e = !1),
		    null == a && (a = !1);
		    var r = new createjs.Container
		      , n = new createjs.Shape
		      , n = createLineVector(t);
		    r.addChild(n);
		    var i, o, s = new createjs.Shape, s = createArrowVector(t);
		    return r.addChild(s),
		    e && (new createjs.Shape,
		    i = createDragLineVector(),
		    r.addChild(i)),
		    a && (new createjs.Shape,
		    o = createCircleVector(t),
		    r.addChild(o)),
		    r
		}
		function createLineVector(t) {
		    null == t && (t = "#000000");
		    var e = new createjs.Shape
		      , a = e.graphics;
		    return a.setStrokeStyle(2.5),
		    a.beginStroke(t),
		    a.moveTo(0, 0),
		    a.lineTo(100, 0),
		    a.endStroke(),
		    e
		}
		function createDragLineVector() {
		    var t = new createjs.Shape
		      , e = t.graphics;
		    return e.setStrokeStyle(25),
		    e.beginStroke("#ffffff"),
		    e.moveTo(0, 0),
		    e.lineTo(100, 0),
		    e.endStroke(),
		    t.alpha = .01,
		    t.name = "dragLine",
		    t
		}
		function createCircleVector(t) {
		    null == t && (t = "#000000");
		    var e = new createjs.Shape
		      , a = e.graphics;
		    return a.beginFill("#000000"),
		    a.dc(0, 0, 3),
		    e.name = "startVector",
		    e
		}
		function createArrowVector(t) {
		    null == t && (t = "#000000");
		    var e = new createjs.Shape
		      , a = e.graphics;
		    return a.setStrokeStyle(1.5, "round", "round"),
		    a.beginStroke(t),
		    a.beginFill(t),
		    a.moveTo(0, 0),
		    a.lineTo(8 * Math.cos(155 * toRad), -8 * Math.sin(155 * toRad)),
		    a.lineTo(-5.5, 0),
		    a.lineTo(8 * Math.cos(205 * toRad), -8 * Math.sin(205 * toRad)),
		    a.closePath(),
		    a.endFill(),
		    a.endStroke(),
		    e
		}
		function updateTextVector(t, e, a, r) {
		    var n = e.rotation;
		    arrowVec = e.getChildAt(1);
		    var i = arrowVec.x;
		    i < 0 && (i = Math.abs(i),
		    n += 180);
		    var o = (i = Math.abs(i)) * Math.cos(n * toRad)
		      , s = i * Math.sin(n * toRad)
		      , h = e.x + o + a * Math.cos(n * toRad) + r * Math.cos((n + 90) * toRad)
		      , c = e.y + s + a * Math.sin(n * toRad) + r * Math.sin((n + 90) * toRad);
		    t.x = h,
		    t.y = c,
		    t.textBaseline = "alphabetic",
		    t.textAlign = "center",
		    Math.abs(i) < 5 ? t.alpha = 0 : t.alpha = 1
		}
		function mouseDownVector(t) {
		    var e = canvas.width
		      , a = canvas.height;
		    t.target.offset = {
		        x: t.target.x - t.stageX * (1280 / e),
		        y: t.target.y - t.stageY * (720 / a)
		    },
		    t.target.addEventListener("pressmove", pressMoveVector)
		}
		function pressMoveVector(t) {
		    var e = canvas.width
		      , a = canvas.height
		      , r = t.stageX * (1280 / e) + t.target.offset.x
		      , n = t.stageY * (720 / a) + t.target.offset.y;
		    t.target.x = r,
		    t.target.y = n,
		    stage.update()
		}
		function pressUpVector(t) {
		    t.target.removeEventListener("pressmove", pressMoveVector)
		}
		function fixPeriod(t, e) {
		    return t - e * Math.floor(t / e)
		}
		
		
		
		function convertPositions(t, e, a) {
		    var r = new Object;
		    return r.x = t * Math.cos(a) - e * Math.sin(a),
		    r.y = t * Math.sin(a) + e * Math.cos(a),
		    r
		}
		
		
		createjs.Shape.prototype.addArrow = function(t, e, a, r) {
		    var n = this.graphics;
		    n.ss(2),
		    n.s(t),
		    n.f(t).mt(e, a).lt(e + 12 * Math.cos((160 + r) * toRad), a - 12 * Math.sin((160 + r) * toRad)).lt(e + 12 * Math.cos((200 + r) * toRad), a - 12 * Math.sin((200 + r) * toRad)).lt(e, a)
		}
		
		//////////////////////////////////////////////////////////////////////////////////
		
		
		
		function boxRotatorShape() {
		    var shape = new createjs.Shape();
		    shape.graphics.f("#33CCCC").s().p("AkaGAIB5ihQBhBnCLAAQCOgHBYhZQBghfAAiHQgHiNhZhZQhfhfiHAAQiFAGhYBSQhcBXgKB+ICVAAIj7FLIj6lLICXAAQAVjbCNiIQCYiSDSAAQDlALCPCPQCaCaAADZQgLDliPCPQiaCajaAAQjYgKiNiEg");
		    shape.graphics.f("rgba(255,255,255,.01)").dc(0, 0, 100)
		    shape.scale = .4
		    shape.regX = 8
		    return shape
		}
		
		
		this.info_btn.addEventListener("click", fl_ClickToGoToWebPage);
		function fl_ClickToGoToWebPage() {
			window.open("credits/index.html", "_blank");
		}
		
		
		//HELP 
			_root.help.visible = false;
		_root.help.help_text.close.on("click", function(){
			_root.help.visible = false;
			});
			
		_root.help_btn.on("click", function(){
			_root.help.visible = true;
			});
	}

	// actions tween:
	this.timeline.addTween(cjs.Tween.get(this).call(this.frame_0).wait(1));

	// heading
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#FEFDFB").s().p("AALBKIAFgHQAFgGAAgIQAAgFgDgCQgEgDgKgCQgagGgNgOQgOgPAAgWIAAgFQAAgRAHgOQAGgPAMgHQAMgIAPAAQAVAAANANQANALAAAUIgUAAQAAgMgHgIQgIgGgMgBQgOAAgJANQgIAMgBAUIAAAEQABAcAiALIAPAEQAMADAEAGQAFAFgBAJQABAHgGAJQgGAKgIAHg");
	this.shape.setTransform(367.9,26.8);

	this.shape_1 = new cjs.Shape();
	this.shape_1.graphics.f("#FEFDFB").s().p("AgnBJQgPgQgBgdIAAgBQAAgSAIgOQAHgOAMgHQANgJAPAAQAYAAAQASQAQARAAAcIAAABQAAASgHAOQgHAOgNAIQgNAHgQAAQgYAAgPgRgAgYgFQgJAMAAAWQAAAUAJANQAKAMAOAAQAQAAAJgMQAKgNgBgWQABgVgKgLQgKgMgPAAQgOAAgKAMgAgHg0IAFglIATAAIgNAlg");
	this.shape_1.setTransform(355.2,22);

	this.shape_2 = new cjs.Shape();
	this.shape_2.graphics.f("#FEFDFB").s().p("AgEA2QgHgJAAgQIAAhJIgnAAIAAgRIBlAAIAAARIgqAAIAABJQAAAPAMAAQAFAAAFgDIAFAPQgIAGgMAAQgOAAgGgIg");
	this.shape_2.setTransform(342.6,24.9);

	this.shape_3 = new cjs.Shape();
	this.shape_3.graphics.f("#FEFDFB").s().p("AAAAjQgDANgKAHQgJAHgNAAQgWAAgLgRQgMgRAAgeQAAggAQgbIAVAAQgPAggBAbQAAAWAGAMQAHANALAAQANAAAGgKQAGgJABgTIAAghIATAAIAAAiQABASAGAKQAHAJAMAAQALAAAHgNQAGgMAAgWQgBgbgPggIAVAAQAQAcAAAfQAAAegMARQgLARgWAAQgbAAgJgbg");
	this.shape_3.setTransform(327.1,24.9);

	this.shape_4 = new cjs.Shape();
	this.shape_4.graphics.f("#FEFDFB").s().p("AgLBXIAAgzQgcgCgQgSQgPgQAAgdQAAgSAHgPQAHgOAOgKIAMAOQgSAQgCAbQAAAUALAMQAKANASADIAAhPQAAgNAIgGQAHgIANABQAOgBANAJQAMAHAIAOQAHAOAAARQAAAagQARQgRARgdACIAAAzgAAJg8IAABPQATgDALgMQALgLAAgTQAAgTgKgMQgJgMgOAAQgIAAAAAJg");
	this.shape_4.setTransform(309.6,27.5);

	this.shape_5 = new cjs.Shape();
	this.shape_5.graphics.f("#FEFDFB").s().p("AgkAxQgMgMAAgYIAAhKIAVAAIAABIQAAAiAWAAQAOAAAKgOQAJgOAAgTQAAgagNghIAVAAQANAbAAAgQAAAcgOASQgPASgYAAQgVAAgLgNg");
	this.shape_5.setTransform(289.8,24.9);

	this.shape_6 = new cjs.Shape();
	this.shape_6.graphics.f("#FEFDFB").s().p("AgnAuQgPgRAAgcIAAgBQAAgRAHgPQAHgPANgHQAMgIAPAAQAZAAAPARQAPASAAAbIAAACQABARgIAOQgGAOgNAJQgMAHgRAAQgXAAgQgRgAgYggQgKAMAAAWQAAAUAKAMQAJANAPAAQAQAAAJgNQAKgMAAgWQAAgUgKgMQgJgNgQAAQgPAAgJANg");
	this.shape_6.setTransform(276.7,24.8);

	this.shape_7 = new cjs.Shape();
	this.shape_7.graphics.f("#FEFDFB").s().p("AgEA2QgHgJAAgQIAAhJIgnAAIAAgRIBlAAIAAARIgqAAIAABJQAAAPAMAAQAFAAAFgDIAFAPQgIAGgMAAQgOAAgGgIg");
	this.shape_7.setTransform(264.1,24.9);

	this.shape_8 = new cjs.Shape();
	this.shape_8.graphics.f("#FEFDFB").s().p("AAcBVIAAh7QAAgPgGgHQgGgHgPAAQgJAAgHAFQgIAFgEAJIAABXIgUAAIAAh5IASAAIACAQQANgSAVAAQAWAAAKALQAJALAAAXIAAB8g");
	this.shape_8.setTransform(245.9,27);

	this.shape_9 = new cjs.Shape();
	this.shape_9.graphics.f("#FEFDFB").s().p("AgsAtQgOgRAAgcIAAgBQAAgRAGgOQAHgNANgIQALgIAQAAIBAAAIAAARIggAAQAWARABAeIAAACQAAAPgIAOQgHANgLAHQgNAIgPAAQgZAAgPgRgAgdggQgJALABAVQgBAVAJAMQAKAMAPAAQAPAAAIgMQAJgMAAgWQAAgTgJgMQgIgMgPAAQgPAAgKAMg");
	this.shape_9.setTransform(233.4,24.9);

	this.shape_10 = new cjs.Shape();
	this.shape_10.graphics.f("#FEFDFB").s().p("AgkAxQgLgMgBgYIAAhKIAVAAIAABIQAAAiAWAAQAOAAAKgOQAJgOAAgTQgBgagNghIAWAAQANAbAAAgQAAAcgOASQgPASgYAAQgWAAgKgNg");
	this.shape_10.setTransform(220.4,24.9);

	this.shape_11 = new cjs.Shape();
	this.shape_11.graphics.f("#FEFDFB").s().p("AAlBUQgEgCgEgFQgDgFgEgJIgYhBIggBWIgYAAIAthyIgLgbQgDgGgDgDQgDgCgFAAIgFAAIAAgQQAFgBAGAAQALAAAGAEQAHAFAEAKIAvB8QACAGADACQACACAEAAIAEAAIABARQgEABgFAAQgJAAgEgCg");
	this.shape_11.setTransform(207.4,22.4);

	this.shape_12 = new cjs.Shape();
	this.shape_12.graphics.f("#FEFDFB").s().p("AAYBIQgMATgWAAQgWAAgNgQQgNgQAAgcIAAgBQAAgeANgRQANgSAWAAQAWAAAMATIACgQIARAAIAABYQAAAQAJAAIAEgBIADAQQgGAEgIAAQgRAAgEgTgAgcgFQgJAMAAAZQAAAUAIALQAJALAPAAQASAAAJgVIAAgyQgJgUgSAAQgPAAgIAMgAgGg0IAGgmIASAAIgNAmg");
	this.shape_12.setTransform(195.1,22);

	this.shape_13 = new cjs.Shape();
	this.shape_13.graphics.f("#FEFDFB").s().p("AgHA9Igsh5IAWAAIAeBdIAehdIAVAAIgsB5g");
	this.shape_13.setTransform(182.5,24.8);

	this.shape_14 = new cjs.Shape();
	this.shape_14.graphics.f("#FEFDFB").s().p("AAYAtQgMASgWAAQgWAAgNgQQgNgQAAgbIAAgCQAAgcANgSQANgSAWAAQAWAAAMASIACgQIARAAIAABZQAAAPAJAAIAEAAIADAPQgGAEgIAAQgRAAgEgSgAgcggQgJANAAAYQAAATAIALQAJALAPAAQASAAAJgVIAAgxQgJgVgSAAQgPAAgIANg");
	this.shape_14.setTransform(170.9,24.8);

	this.shape_15 = new cjs.Shape();
	this.shape_15.graphics.f("#FEFDFB").s().p("AgVAdIAAhZIAVAAIAABaQgBAGADAEQADADAHAAIAKgBIAAARQgIACgIAAQgbAAAAggg");
	this.shape_15.setTransform(155.2,24.9);

	this.shape_16 = new cjs.Shape();
	this.shape_16.graphics.f("#FEFDFB").s().p("AAYAtQgMASgWAAQgWAAgNgQQgNgQAAgbIAAgCQAAgcANgSQANgSAWAAQAWAAAMASIACgQIARAAIAABZQAAAPAJAAIAEAAIADAPQgGAEgIAAQgRAAgEgSgAgcggQgJANAAAYQAAATAIALQAJALAPAAQASAAAJgVIAAgxQgJgVgSAAQgPAAgIANg");
	this.shape_16.setTransform(144.8,24.8);

	this.shape_17 = new cjs.Shape();
	this.shape_17.graphics.f("#FEFDFB").s().p("AAaA9Igtg0IgMAAIAAA0IgUAAIAAh5IAUAAIAAA0IALAAIArg0IAZAAIgxA7IA1A+g");
	this.shape_17.setTransform(132,24.8);

	this.shape_18 = new cjs.Shape();
	this.shape_18.graphics.f("#FEFDFB").s().p("AAYAtQgMASgWAAQgWAAgNgQQgNgQAAgbIAAgCQAAgcANgSQANgSAWAAQAWAAAMASIACgQIARAAIAABZQAAAPAJAAIAEAAIADAPQgGAEgIAAQgRAAgEgSgAgcggQgJANAAAYQAAATAIALQAJALAPAAQASAAAJgVIAAgxQgJgVgSAAQgPAAgIANg");
	this.shape_18.setTransform(113.3,24.8);

	this.shape_19 = new cjs.Shape();
	this.shape_19.graphics.f("#FEFDFB").s().p("AgEA2QgHgJAAgQIAAhJIgnAAIAAgRIBlAAIAAARIgqAAIAABJQAAAPAMAAQAFAAAFgDIAFAPQgIAGgMAAQgOAAgGgIg");
	this.shape_19.setTransform(100.3,24.9);

	this.shape_20 = new cjs.Shape();
	this.shape_20.graphics.f("#FEFDFB").s().p("AAYAtQgMASgWAAQgWAAgNgQQgNgQAAgbIAAgCQAAgcANgSQANgSAWAAQAWAAAMASIACgQIARAAIAABZQAAAPAJAAIAEAAIADAPQgGAEgIAAQgRAAgEgSgAgcggQgJANAAAYQAAATAIALQAJALAPAAQASAAAJgVIAAgxQgJgVgSAAQgPAAgIANg");
	this.shape_20.setTransform(88.3,24.8);

	this.shape_21 = new cjs.Shape();
	this.shape_21.graphics.f("#FEFDFB").s().p("AgvBUIAAinIAVAAIAABHQAAARAGAJQAGAJANAAQAVAAAHgRIAAhZIAVAAIAAB5IgTAAIgBgOQgKAPgTAAQgQABgJgJIAAA1g");
	this.shape_21.setTransform(74.8,27.1);

	this.shape_22 = new cjs.Shape();
	this.shape_22.graphics.f("#FEFDFB").s().p("AgsAtQgOgRAAgcIAAgBQAAgRAGgOQAHgNAMgIQAMgIAQAAIBAAAIAAARIggAAQAWARABAeIAAACQgBAPgGAOQgIANgLAHQgNAIgPAAQgZAAgPgRgAgcggQgKALABAVQgBAVAKAMQAJAMAPAAQAPAAAIgMQAJgMAAgWQAAgTgJgMQgIgMgPAAQgPAAgJAMg");
	this.shape_22.setTransform(62.3,24.9);

	this.shape_23 = new cjs.Shape();
	this.shape_23.graphics.f("#FEFDFB").s().p("AgVA4IAAhZIAUAAIAABaQAAAHADAEQADADAHAAIAKgBIAAARQgIACgIAAQgbAAAAghgAgSgzIAGglIATAAIgMAlg");
	this.shape_23.setTransform(52.2,22.1);

	this.shape_24 = new cjs.Shape();
	this.shape_24.graphics.f("#FEFDFB").s().p("AgyBVIAAhuQAAgSAGgNQAHgOALgHQAMgHAOAAQAWAAAOAQQAOAQABAcIAAAIQAAAagMAPQgNAQgWAAQgVAAgNgOIAAA6gAgVg3QgJAMAAATIAAAgQAKAQATAAQAOAAAJgLQAIgLAAgVQAAgXgIgMQgIgNgOAAQgNAAgIAMg");
	this.shape_24.setTransform(41.5,27);

	this.shape_25 = new cjs.Shape();
	this.shape_25.graphics.f("#FEFDFB").s().p("AAoBSIAAiRIhQAAIAACRIgVAAIAAijIB7AAIAACjg");
	this.shape_25.setTransform(26.6,22.7);

	this.rotator = new lib.sprite118();
	this.rotator.name = "rotator";
	this.rotator.parent = this;
	this.rotator.setTransform(180,480);

	this.instance = new lib.shadow("synched",0);
	this.instance.parent = this;
	this.instance.setTransform(639.9,46.9,1,1.843,90,0,0,2.2,-347.2);
	this.instance.alpha = 0.43;

	this.help_btn = new lib.Symbol13copy();
	this.help_btn.name = "help_btn";
	this.help_btn.parent = this;
	this.help_btn.setTransform(1218.9,23.1,0.651,0.651,0,0,0,0.1,-0.1);
	new cjs.ButtonHelper(this.help_btn, 0, 1, 2, false, new lib.Symbol13copy(), 3);

	this.info_btn = new lib.dertg36();
	this.info_btn.name = "info_btn";
	this.info_btn.parent = this;
	this.info_btn.setTransform(1254.2,27.1,0.991,0.991,0,0,0,0.4,3.7);
	new cjs.ButtonHelper(this.info_btn, 0, 1, 2, false, new lib.dertg36(), 3);

	this.instance_1 = new lib.fasa();
	this.instance_1.parent = this;
	this.instance_1.setTransform(238.1,25.3,1,1,0,0,0,238.1,25.6);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.info_btn},{t:this.help_btn},{t:this.instance},{t:this.rotator},{t:this.shape_25},{t:this.shape_24},{t:this.shape_23},{t:this.shape_22},{t:this.shape_21},{t:this.shape_20},{t:this.shape_19},{t:this.shape_18},{t:this.shape_17},{t:this.shape_16},{t:this.shape_15},{t:this.shape_14},{t:this.shape_13},{t:this.shape_12},{t:this.shape_11},{t:this.shape_10},{t:this.shape_9},{t:this.shape_8},{t:this.shape_7},{t:this.shape_6},{t:this.shape_5},{t:this.shape_4},{t:this.shape_3},{t:this.shape_2},{t:this.shape_1},{t:this.shape}]}).wait(1));

	// snap
	this.snap_ch = new lib.Symbol4();
	this.snap_ch.name = "snap_ch";
	this.snap_ch.parent = this;
	this.snap_ch.setTransform(-255,540,1,1,0,0,0,55,40);

	this.timeline.addTween(cjs.Tween.get(this.snap_ch).wait(1));

	// help
	this.help = new lib.Symbol10();
	this.help.name = "help";
	this.help.parent = this;
	this.help.setTransform(272.9,-667.5,1,1,0,0,0,491.1,282.9);

	this.timeline.addTween(cjs.Tween.get(this.help).wait(1));

	// chess-back
	this.instance_2 = new lib.background();
	this.instance_2.parent = this;
	this.instance_2.setTransform(627.4,376,1,1,0,0,0,0,0.4);

	this.shape_26 = new cjs.Shape();
	this.shape_26.graphics.f().s("#FFFFFF").ss(1,1,1).p("AkrldIJXAAIAAK7IpXAAg");
	this.shape_26.setTransform(230,125);

	this.shape_27 = new cjs.Shape();
	this.shape_27.graphics.f("#000000").s().p("AkrFeIAAq7IJXAAIAAK7g");
	this.shape_27.setTransform(230,125);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.shape_27},{t:this.shape_26},{t:this.instance_2}]}).wait(1));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(329.5,359.7,1610.5,737.3);
// library properties:
lib.properties = {
	id: '5472C7B40D97D74CBF8F26B307ED49FF',
	width: 1280,
	height: 720,
	fps: 60,
	color: "#FFFFFF",
	opacity: 1.00,
	manifest: [
		{src:"images/Bitmap3.png?1610714063243", id:"Bitmap3"},
		{src:"images/Bitmap4.png?1610714063243", id:"Bitmap4"},
		{src:"images/Bitmap6.png?1610714063243", id:"Bitmap6"}
	],
	preloads: []
};



// bootstrap callback support:

(lib.Stage = function(canvas) {
	createjs.Stage.call(this, canvas);
}).prototype = p = new createjs.Stage();

p.setAutoPlay = function(autoPlay) {
	this.tickEnabled = autoPlay;
}
p.play = function() { this.tickEnabled = true; this.getChildAt(0).gotoAndPlay(this.getTimelinePosition()) }
p.stop = function(ms) { if(ms) this.seek(ms); this.tickEnabled = false; }
p.seek = function(ms) { this.tickEnabled = true; this.getChildAt(0).gotoAndStop(lib.properties.fps * ms / 1000); }
p.getDuration = function() { return this.getChildAt(0).totalFrames / lib.properties.fps * 1000; }

p.getTimelinePosition = function() { return this.getChildAt(0).currentFrame / lib.properties.fps * 1000; }

an.bootcompsLoaded = an.bootcompsLoaded || [];
if(!an.bootstrapListeners) {
	an.bootstrapListeners=[];
}

an.bootstrapCallback=function(fnCallback) {
	an.bootstrapListeners.push(fnCallback);
	if(an.bootcompsLoaded.length > 0) {
		for(var i=0; i<an.bootcompsLoaded.length; ++i) {
			fnCallback(an.bootcompsLoaded[i]);
		}
	}
};

an.compositions = an.compositions || {};
an.compositions['5472C7B40D97D74CBF8F26B307ED49FF'] = {
	getStage: function() { return exportRoot.getStage(); },
	getLibrary: function() { return lib; },
	getSpriteSheet: function() { return ss; },
	getImages: function() { return img; }
};

an.compositionLoaded = function(id) {
	an.bootcompsLoaded.push(id);
	for(var j=0; j<an.bootstrapListeners.length; j++) {
		an.bootstrapListeners[j](id);
	}
}

an.getComposition = function(id) {
	return an.compositions[id];
}



})(createjs = createjs||{}, AdobeAn = AdobeAn||{});
var createjs, AdobeAn;