From 18df8c17ec18215ab7293bc7906bb2a423f88116 Mon Sep 17 00:00:00 2001 From: Nathan Kunicki Date: Tue, 22 Dec 2015 18:08:33 +0000 Subject: [PATCH] Added image classes, new example (snowflakes) --- dist/es5.js | 2 +- dist/es5.js.map | 2 +- examples/pong/index.html | 2 +- examples/pong/pong.js | 7 +- examples/snowflakes/index.html | 11 +++ examples/snowflakes/pong.js | 116 ++++++++++++++++++++++++++++++ examples/snowflakes/snowflake.png | Bin 0 -> 198833 bytes examples/snowflakes/snowflakes.js | 67 +++++++++++++++++ src/classes/color.js | 2 + src/classes/entity.js | 39 +++++++--- src/classes/game.js | 7 +- src/classes/imageloader.js | 52 ++++++++++++++ src/classes/sprite.js | 78 ++++++++++++++++++++ src/es5.js | 6 +- src/es6.js | 6 +- 15 files changed, 376 insertions(+), 21 deletions(-) create mode 100644 examples/snowflakes/index.html create mode 100644 examples/snowflakes/pong.js create mode 100644 examples/snowflakes/snowflake.png create mode 100644 examples/snowflakes/snowflakes.js create mode 100644 src/classes/imageloader.js create mode 100644 src/classes/sprite.js diff --git a/dist/es5.js b/dist/es5.js index c266d42..f9bb722 100644 --- a/dist/es5.js +++ b/dist/es5.js @@ -1,2 +1,2 @@ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}var i=n(1),o=r(i),u=n(51),a=r(u),s=n(52),c=r(s),f=n(54),l=r(f),d=n(56),h=r(d),y=n(53),_={Game:o["default"],Entity:a["default"],Rect:l["default"],Vector2D:c["default"],Color:h["default"]},p={Input:{Keys:y.KeyConsts}};window.MomentumEngine={Classes:_,Consts:p}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=r(i),u=n(14),a=r(u),s=n(15),c=r(s),f=n(19),l=r(f),d=n(44),h=r(d),y=n(51),_=r(y),p=n(53),v=r(p),m=function(t){function e(t){(0,a["default"])(this,e);var n=(0,l["default"])(this,(0,o["default"])(e).call(this));if(t=t||{},t.inputs=t.inputs||{},!t.canvas)throw new Error("MomentumEngine.Game must be constructed with a canvas");if(n.canvas=t.canvas,!t.width)throw new Error("MomentumEngine.Game must be constructed with canvas width");if(n.width=t.width,!t.height)throw new Error("MomentumEngine.Game must be constructed with canvas height");if(n.height=t.height,n.desiredFps=t.desiredFps||60,t.fixRatio){var r=window.devicePixelRatio,i=0;"undefined"!=typeof ejecta?i=1:(n.context=n.canvas.getContext("2d"),i=n.context.webkitBackingStorePixelRatio||n.context.mozBackingStorePixelRatio||n.context.msBackingStorePixelRatio||n.context.oBackingStorePixelRatio||n.context.backingStorePixelRatio||1),n.scale=r/i,n.canvas.width=n.width*n.scale,n.canvas.height=n.height*n.scale,n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px","undefined"!=typeof ejecta&&(n.context=n.canvas.getContext("2d")),n.context.scale(r,r)}else n.canvas.width=n.width,n.canvas.height=n.height,n.context=n.canvas.getContext("2d");return"undefined"!=typeof n.context.imageSmoothingEnabled&&(n.context.imageSmoothingEnabled=t.imageSmoothing||!1),n.lastFrameDelta=0,n.frameCounter=0,n.inputs={},t.inputs.keyboard&&(n.inputs.keyboard=new v["default"](n)),n._game=n,n._lastFrameTimestamp=0,n._wantPause=!0,n}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"start",value:function(){var t=this;if(!t._wantPause)return console.log("MomentumEngine.Game.start called, game instance is already started"),!1;t._wantPause=!1,t._wantPause=!1;var e=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/t.desiredFps)}}();t._lastFrameTimestamp=+new Date;var n=function r(){t.frameCounter++;var n=+new Date;t.lastFrameDelta=n-t._lastFrameTimestamp,t._lastFrameTimestamp=n,t.lastFrameDelta=Math.min(t.lastFrameDelta,1e3/t.desiredFps),t._wantPause||(t._updateEntity.bind(t),t._updateEntity(),t._renderEntity.bind(t),t._renderEntity(),e(r))};return n(),!0}},{key:"pause",value:function(){return this._wantPause?(console.log("MomentumEngine.Game.pause called, game instance is already paused"),!1):(this._wantPause=!0,!0)}}]),e}(_["default"]);e["default"]=m},function(t,e,n){t.exports={"default":n(3),__esModule:!0}},function(t,e,n){n(4),t.exports=n(10).Object.getPrototypeOf},function(t,e,n){var r=n(5);n(7)("getPrototypeOf",function(t){return function(e){return t(r(e))}})},function(t,e,n){var r=n(6);t.exports=function(t){return Object(r(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(8),i=n(10),o=n(13);t.exports=function(t,e){var n=(i.Object||{})[t]||Object[t],u={};u[t]=e(n),r(r.S+r.F*o(function(){n(1)}),"Object",u)}},function(t,e,n){var r=n(9),i=n(10),o=n(11),u="prototype",a=function(t,e,n){var s,c,f,l=t&a.F,d=t&a.G,h=t&a.S,y=t&a.P,_=t&a.B,p=t&a.W,v=d?i:i[e]||(i[e]={}),m=d?r:h?r[e]:(r[e]||{})[u];d&&(n=e);for(s in n)c=!l&&m&&s in m,c&&s in v||(f=c?m[s]:n[s],v[s]=d&&"function"!=typeof m[s]?n[s]:_&&c?o(f,r):p&&m[s]==f?function(t){var e=function(e){return this instanceof t?new t(e):t(e)};return e[u]=t[u],e}(f):y&&"function"==typeof f?o(Function.call,f):f,y&&((v[u]||(v[u]={}))[s]=f))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,t.exports=a},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){"use strict";e.__esModule=!0,e["default"]=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var i=n(16),o=r(i);e["default"]=function(){function t(t,e){for(var n=0;ni;)U(t,n=r[i++],e[n]);return t},G=function(t,e){return void 0===e?P(t):B(P(t),e)},L=function(t){var e=O.call(this,t);return e||!o(this,t)||!o(D,t)||o(this,k)&&this[k][t]?e:!0},I=function(t,e){var n=b(t=g(t),e);return!n||!o(D,e)||o(t,k)&&t[k][e]||(n.enumerable=!0),n},K=function(t){for(var e,n=A(g(t)),r=[],i=0;n.length>i;)o(D,e=n[i++])||e==k||r.push(e);return r},z=function(t){for(var e,n=A(g(t)),r=[],i=0;n.length>i;)o(D,e=n[i++])&&r.push(D[e]);return r},W=function(t){if(void 0!==t&&!T(t)){for(var e,n,r=[t],i=1,o=arguments;o.length>i;)r.push(o[i++]);return e=r[1],"function"==typeof e&&(n=e),(n||!v(e))&&(e=function(t,e){return n&&(e=n.call(this,t,e)),T(e)?void 0:e}),r[1]=e,S.apply(M,r)}},q=c(function(){var t=E();return"[null]"!=S([t])||"{}"!=S({a:t})||"{}"!=S(Object(t))});F||(E=function(){if(T(this))throw TypeError("Symbol is not a constructor");return j(d(arguments.length>0?arguments[0]:void 0))},s(E.prototype,"toString",function(){return this._k}),T=function(t){return t instanceof E},r.create=G,r.isEnum=L,r.getDesc=I,r.setDesc=U,r.setDescs=B,r.getNames=_.get=K,r.getSymbols=z,u&&!n(42)&&s(N,"propertyIsEnumerable",L,!0));var J={"for":function(t){return o(R,t+="")?R[t]:R[t]=E(t)},keyFor:function(t){return y(R,t)},useSetter:function(){C=!0},useSimple:function(){C=!1}};r.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(t){var e=h(t);J[t]=F?e:j(e)}),C=!0,a(a.G+a.W,{Symbol:E}),a(a.S,"Symbol",J),a(a.S+a.F*!F,"Object",{create:G,defineProperty:U,defineProperties:B,getOwnPropertyDescriptor:I,getOwnPropertyNames:K,getOwnPropertySymbols:z}),M&&a(a.S+a.F*(!F||q),"JSON",{stringify:W}),l(E,"Symbol"),l(Math,"Math",!0),l(i.JSON,"JSON",!0)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(13)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){t.exports=n(27)},function(t,e,n){var r=n(18),i=n(28);t.exports=n(25)?function(t,e,n){return r.setDesc(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(9),i="__core-js_shared__",o=r[i]||(r[i]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e,n){var r=n(18).setDesc,i=n(24),o=n(31)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(29)("wks"),i=n(32),o=n(9).Symbol;t.exports=function(t){return r[t]||(r[t]=o&&o[t]||(o||i)("Symbol."+t))}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){var r=n(18),i=n(34);t.exports=function(t,e){for(var n,o=i(t),u=r.getKeys(o),a=u.length,s=0;a>s;)if(o[n=u[s++]]===e)return n}},function(t,e,n){var r=n(35),i=n(6);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(36);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(34),i=n(18).getNames,o={}.toString,u="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return i(t)}catch(e){return u.slice()}};t.exports.get=function(t){return u&&"[object Window]"==o.call(t)?a(t):i(r(t))}},function(t,e,n){var r=n(18);t.exports=function(t){var e=r.getKeys(t),n=r.getSymbols;if(n)for(var i,o=n(t),u=r.isEnum,a=0;o.length>a;)u.call(t,i=o[a++])&&e.push(i);return e}},function(t,e,n){var r=n(36);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(41);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=!0},function(t,e){},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var i=n(45),o=r(i),u=n(49),a=r(u),s=n(20),c=r(s);e["default"]=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":(0,c["default"])(e)));t.prototype=(0,a["default"])(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(o["default"]?(0,o["default"])(t,e):t.__proto__=e)}},function(t,e,n){t.exports={"default":n(46),__esModule:!0}},function(t,e,n){n(47),t.exports=n(10).Object.setPrototypeOf},function(t,e,n){var r=n(8);r(r.S,"Object",{setPrototypeOf:n(48).set})},function(t,e,n){var r=n(18).getDesc,i=n(41),o=n(40),u=function(t,e){if(o(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,i){try{i=n(11)(Function.call,r(Object.prototype,"__proto__").set,2),i(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return u(t,n),e?t.__proto__=n:i(t,n),t}}({},!1):void 0),check:u}},function(t,e,n){t.exports={"default":n(50),__esModule:!0}},function(t,e,n){var r=n(18);t.exports=function(t,e){return r.create(t,e)}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(14),o=r(i),u=n(15),a=r(u),s=n(52),c=r(s),f=function(){function t(e,n){(0,o["default"])(this,t),this.pos=new c["default"](e||0,n||0),this.state={},this.children=[],this._calculatedPos=this.pos.clone(),this._lastCalculated=0,this._game=null,this._parent=null}return(0,a["default"])(t,[{key:"createChildEntity",value:function(){var e=new t;return e._updateGame(this._game),e._parent=this,this.children.push(e),e}},{key:"addChildEntity",value:function(t){return t._updateGame(this._game),t._parent=this,this.children.push(t),t}},{key:"detachChildEntity",value:function(t){}},{key:"_recalculatePos",value:function(){if(this._game&&this._lastCalculatede.pos.x&&t.pos.ye.pos.y}}]),t}();e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(14),u=i(o),a=n(15),s=i(a),c=function(){function t(e,n,r,i){(0,u["default"])(this,t),this.r=e||0,this.g=n||0,this.b=r||0,this.a=i||1}return(0,s["default"])(t,[{key:"toString",value:function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.a+")"}},{key:"toHex",value:function(){return"#"+(r<<16|g<<8|b).toString(16)}}]),t}();e["default"]=c}]); +!function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}var r=n(1),o=i(r),u=n(51),a=i(u),s=n(52),c=i(s),f=n(54),l=i(f),d=n(57),h=i(d),_=n(58),y=i(_),p=n(55),m=i(p),v=n(53),g={Game:o["default"],Entity:a["default"],Sprite:l["default"],Rect:h["default"],Vector2D:c["default"],Color:y["default"],ImageLoader:m["default"]},x={Input:{Keys:v.KeyConsts}};window.MomentumEngine={Classes:g,Consts:x}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),a=i(u),s=n(15),c=i(s),f=n(19),l=i(f),d=n(44),h=i(d),_=n(51),y=i(_),p=n(53),m=i(p),v=function(t){function e(t){(0,a["default"])(this,e);var n=(0,l["default"])(this,(0,o["default"])(e).call(this));if(t=t||{},t.inputs=t.inputs||{},!t.canvas)throw new Error("MomentumEngine.Classes.Game must be constructed with a canvas");if(n.canvas=t.canvas,!t.width)throw new Error("MomentumEngine.Classes.Game must be constructed with canvas width");if(n.width=t.width,!t.height)throw new Error("MomentumEngine.Classes.Game must be constructed with canvas height");if(n.height=t.height,n.desiredFps=t.desiredFps||60,t.fixRatio){var i=window.devicePixelRatio,r=0;"undefined"!=typeof ejecta?r=1:(n.context=n.canvas.getContext("2d"),r=n.context.webkitBackingStorePixelRatio||n.context.mozBackingStorePixelRatio||n.context.msBackingStorePixelRatio||n.context.oBackingStorePixelRatio||n.context.backingStorePixelRatio||1),n.scale=i/r,n.canvas.width=n.width*n.scale,n.canvas.height=n.height*n.scale,n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px","undefined"!=typeof ejecta&&(n.context=n.canvas.getContext("2d")),n.context.scale(i,i)}else n.canvas.width=n.width,n.canvas.height=n.height,n.context=n.canvas.getContext("2d");return"undefined"!=typeof n.context.imageSmoothingEnabled&&(n.context.imageSmoothingEnabled=t.imageSmoothing||!1),n.lastFrameDelta=0,n.frameCounter=0,n.inputs={},t.inputs.keyboard&&(n.inputs.keyboard=new m["default"](n)),n._game=n,n._lastFrameTimestamp=0,n._wantPause=!0,n}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"start",value:function(){var t=this;if(!t._wantPause)return console.log("MomentumEngine.Game.start called, game instance is already started"),!1;t._wantPause=!1,t._wantPause=!1;var e=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/t.desiredFps)}}();t._lastFrameTimestamp=+new Date,t.startTime=t._lastFrameTimestamp;var n=function i(){t.frameCounter++;var n=+new Date;t.lastFrameDelta=n-t._lastFrameTimestamp,t._lastFrameTimestamp=n,t.lastFrameDelta=Math.min(t.lastFrameDelta,1e3/t.desiredFps),t._wantPause||(t._updateEntity.bind(t),t._updateEntity(),t._renderEntity.bind(t),t._renderEntity(),e(i))};return n(),!0}},{key:"pause",value:function(){return this._wantPause?(console.log("MomentumEngine.Game.pause called, game instance is already paused"),!1):(this._wantPause=!0,!0)}}]),e}(y["default"]);e["default"]=v},function(t,e,n){t.exports={"default":n(3),__esModule:!0}},function(t,e,n){n(4),t.exports=n(10).Object.getPrototypeOf},function(t,e,n){var i=n(5);n(7)("getPrototypeOf",function(t){return function(e){return t(i(e))}})},function(t,e,n){var i=n(6);t.exports=function(t){return Object(i(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var i=n(8),r=n(10),o=n(13);t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],u={};u[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",u)}},function(t,e,n){var i=n(9),r=n(10),o=n(11),u="prototype",a=function(t,e,n){var s,c,f,l=t&a.F,d=t&a.G,h=t&a.S,_=t&a.P,y=t&a.B,p=t&a.W,m=d?r:r[e]||(r[e]={}),v=d?i:h?i[e]:(i[e]||{})[u];d&&(n=e);for(s in n)c=!l&&v&&s in v,c&&s in m||(f=c?v[s]:n[s],m[s]=d&&"function"!=typeof v[s]?n[s]:y&&c?o(f,i):p&&v[s]==f?function(t){var e=function(e){return this instanceof t?new t(e):t(e)};return e[u]=t[u],e}(f):_&&"function"==typeof f?o(Function.call,f):f,_&&((m[u]||(m[u]={}))[s]=f))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,t.exports=a},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(12);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){"use strict";e.__esModule=!0,e["default"]=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var r=n(16),o=i(r);e["default"]=function(){function t(t,e){for(var n=0;nr;)U(t,n=i[r++],e[n]);return t},L=function(t,e){return void 0===e?P(t):I(P(t),e)},B=function(t){var e=O.call(this,t);return e||!o(this,t)||!o(D,t)||o(this,k)&&this[k][t]?e:!0},G=function(t,e){var n=b(t=g(t),e);return!n||!o(D,e)||o(t,k)&&t[k][e]||(n.enumerable=!0),n},z=function(t){for(var e,n=E(g(t)),i=[],r=0;n.length>r;)o(D,e=n[r++])||e==k||i.push(e);return i},K=function(t){for(var e,n=E(g(t)),i=[],r=0;n.length>r;)o(D,e=n[r++])&&i.push(D[e]);return i},W=function(t){if(void 0!==t&&!T(t)){for(var e,n,i=[t],r=1,o=arguments;o.length>r;)i.push(o[r++]);return e=i[1],"function"==typeof e&&(n=e),(n||!m(e))&&(e=function(t,e){return n&&(e=n.call(this,t,e)),T(e)?void 0:e}),i[1]=e,A.apply(S,i)}},q=c(function(){var t=M();return"[null]"!=A([t])||"{}"!=A({a:t})||"{}"!=A(Object(t))});j||(M=function(){if(T(this))throw TypeError("Symbol is not a constructor");return H(d(arguments.length>0?arguments[0]:void 0))},s(M.prototype,"toString",function(){return this._k}),T=function(t){return t instanceof M},i.create=L,i.isEnum=B,i.getDesc=G,i.setDesc=U,i.setDescs=I,i.getNames=y.get=z,i.getSymbols=K,u&&!n(42)&&s(F,"propertyIsEnumerable",B,!0));var J={"for":function(t){return o(R,t+="")?R[t]:R[t]=M(t)},keyFor:function(t){return _(R,t)},useSetter:function(){C=!0},useSimple:function(){C=!1}};i.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(t){var e=h(t);J[t]=j?e:H(e)}),C=!0,a(a.G+a.W,{Symbol:M}),a(a.S,"Symbol",J),a(a.S+a.F*!j,"Object",{create:L,defineProperty:U,defineProperties:I,getOwnPropertyDescriptor:G,getOwnPropertyNames:z,getOwnPropertySymbols:K}),S&&a(a.S+a.F*(!j||q),"JSON",{stringify:W}),l(M,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(13)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){t.exports=n(27)},function(t,e,n){var i=n(18),r=n(28);t.exports=n(25)?function(t,e,n){return i.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(9),r="__core-js_shared__",o=i[r]||(i[r]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e,n){var i=n(18).setDesc,r=n(24),o=n(31)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(29)("wks"),r=n(32),o=n(9).Symbol;t.exports=function(t){return i[t]||(i[t]=o&&o[t]||(o||r)("Symbol."+t))}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){var i=n(18),r=n(34);t.exports=function(t,e){for(var n,o=r(t),u=i.getKeys(o),a=u.length,s=0;a>s;)if(o[n=u[s++]]===e)return n}},function(t,e,n){var i=n(35),r=n(6);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(36);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var i=n(34),r=n(18).getNames,o={}.toString,u="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return r(t)}catch(e){return u.slice()}};t.exports.get=function(t){return u&&"[object Window]"==o.call(t)?a(t):r(i(t))}},function(t,e,n){var i=n(18);t.exports=function(t){var e=i.getKeys(t),n=i.getSymbols;if(n)for(var r,o=n(t),u=i.isEnum,a=0;o.length>a;)u.call(t,r=o[a++])&&e.push(r);return e}},function(t,e,n){var i=n(36);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){var i=n(41);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=!0},function(t,e){},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var r=n(45),o=i(r),u=n(49),a=i(u),s=n(20),c=i(s);e["default"]=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":(0,c["default"])(e)));t.prototype=(0,a["default"])(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(o["default"]?(0,o["default"])(t,e):t.__proto__=e)}},function(t,e,n){t.exports={"default":n(46),__esModule:!0}},function(t,e,n){n(47),t.exports=n(10).Object.setPrototypeOf},function(t,e,n){var i=n(8);i(i.S,"Object",{setPrototypeOf:n(48).set})},function(t,e,n){var i=n(18).getDesc,r=n(41),o=n(40),u=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{r=n(11)(Function.call,i(Object.prototype,"__proto__").set,2),r(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return u(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:u}},function(t,e,n){t.exports={"default":n(50),__esModule:!0}},function(t,e,n){var i=n(18);t.exports=function(t,e){return i.create(t,e)}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(14),o=i(r),u=n(15),a=i(u),s=n(52),c=i(s),f=function(){function t(e,n){(0,o["default"])(this,t),this.pos=new c["default"](e||0,n||0),this._ready=!0,this.state={},this.children=[],this._calculatedPos=this.pos.clone(),this._lastCalculated=0,this._game=null,this._parent=null}return(0,a["default"])(t,[{key:"createChildEntity",value:function(){var e=new t;return e._updateGame(this._game),e._parent=this,this.children.push(e),e}},{key:"addChildEntity",value:function(t){return t._updateGame(this._game),t._parent=this,this.children.push(t),t}},{key:"detachChildEntity",value:function(t){for(var e=0;ee.pos.x&&t.pos.ye.pos.y}}]),t}();e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),u=n(14),a=i(u),s=n(15),c=i(s),f=n(19),l=i(f),d=n(44),h=i(d),_=n(51),y=i(_),p=n(52),m=i(p),v=n(56),g=i(v),x=function(t){function e(t,n,i,r,u){(0,a["default"])(this,e);var s=(0,l["default"])(this,(0,o["default"])(e).call(this,t,n));return s.size=new m["default"](i,r),s.color=u,s}return(0,h["default"])(e,t),(0,c["default"])(e,[{key:"isCollidingWith",value:function(t){return t instanceof e?g["default"].AABB(this,t):void 0}},{key:"render",value:function(){return this._game?(this._game.context.fillStyle=this.color,this._game.context.fillRect(this._calculatedPos.x,this._calculatedPos.y,this.size.x,this.size.y),!0):!1}}]),e}(y["default"]);e["default"]=x},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(14),u=i(o),a=n(15),s=i(a),c=function(){function t(e,n,i,r){(0,u["default"])(this,t),this.r=e||0,this.g=n||0,this.b=i||0,this.a=r||1}return(0,s["default"])(t,[{key:"toString",value:function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.a+")"}},{key:"toHex",value:function(){return"#"+(r<<16|g<<8|b).toString(16)}}]),t}();e["default"]=c}]); //# sourceMappingURL=es5.js.map \ No newline at end of file diff --git a/dist/es5.js.map b/dist/es5.js.map index e97486b..6dc1dc8 100644 --- a/dist/es5.js.map +++ b/dist/es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///es5.js","webpack:///webpack/bootstrap b77135202cdf38c06f89","webpack:///./src/es5.js","webpack:///./src/classes/game.js","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/get-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.to-object.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.defined.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.object-sap.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.export.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.global.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.core.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.ctx.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.a-function.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.fails.js","webpack:///./~/babel-runtime/helpers/classCallCheck.js","webpack:///./~/babel-runtime/helpers/createClass.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/define-property.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.js","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./~/babel-runtime/helpers/typeof.js","webpack:///./~/babel-runtime/core-js/symbol.js","webpack:///./~/babel-runtime/~/core-js/library/fn/symbol/index.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.symbol.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.has.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.descriptors.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.redefine.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.hide.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.property-desc.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.shared.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.wks.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.uid.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.keyof.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.to-iobject.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.iobject.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.cof.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.get-names.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.enum-keys.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.is-array.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.an-object.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.library.js","webpack:///./~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-runtime/core-js/object/create.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/create.js","webpack:///./src/classes/entity.js","webpack:///./src/classes/vector2d.js","webpack:///./src/classes/keyboardinput.js","webpack:///./src/classes/rect.js","webpack:///./src/libs/collisionmethods.js","webpack:///./src/classes/color.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","_game","_game2","_entity","_entity2","_vector2d","_vector2d2","_rect","_rect2","_color","_color2","_keyboardinput","Classes","Game","Entity","Rect","Vector2D","Color","Consts","Input","Keys","KeyConsts","window","MomentumEngine","Object","defineProperty","value","_getPrototypeOf","_getPrototypeOf2","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_keyboardinput2","_Entity","config","this","_this","inputs","canvas","Error","width","height","desiredFps","fixRatio","deviceRatio","devicePixelRatio","backingStoreRatio","ejecta","context","getContext","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","scale","style","imageSmoothingEnabled","imageSmoothing","lastFrameDelta","frameCounter","keyboard","_lastFrameTimestamp","_wantPause","key","self","console","log","requestFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","callback","setTimeout","Date","loop","currentTimestamp","Math","min","_updateEntity","bind","_renderEntity","getPrototypeOf","toObject","$getPrototypeOf","it","defined","undefined","TypeError","$export","core","fails","KEY","exec","fn","exp","S","F","global","ctx","PROTOTYPE","type","name","source","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","target","C","param","Function","__g","version","__e","aFunction","that","length","a","b","apply","arguments","e","instance","Constructor","_defineProperty","_defineProperty2","defineProperties","props","i","descriptor","enumerable","configurable","writable","protoProps","staticProps","prototype","$","desc","setDesc","$Object","create","getProto","isEnum","propertyIsEnumerable","getDesc","getOwnPropertyDescriptor","setDescs","getKeys","keys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","each","forEach","_typeof2","_typeof3","ReferenceError","_typeof","_Symbol","constructor","_symbol","_symbol2","Symbol","has","DESCRIPTORS","redefine","$fails","shared","setToStringTag","uid","wks","keyOf","$names","enumKeys","isArray","anObject","toIObject","createDesc","_create","get","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","ObjectProto","setSymbolDesc","D","protoDesc","wrap","tag","sym","_k","set","isSymbol","$defineProperty","$defineProperties","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","$stringify","replacer","$replacer","args","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","split","hasOwnProperty","object","bitmap","SHARED","store","def","TAG","stat","px","random","concat","toString","el","O","index","IObject","cof","slice","windowNames","getWindowNames","symbols","Array","arg","isObject","_setPrototypeOf","_setPrototypeOf2","_create2","subClass","superClass","__proto__","setPrototypeOf","check","proto","test","buggy","x","y","pos","state","children","_calculatedPos","clone","_lastCalculated","_parent","child","_updateGame","entity","parentPos","_recalculatePos","game","update","render","val","sqrt","dot","divide","max","atan","SPACE","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESCAPE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","INSERT","DELETE","NUM_0","NUM_1","NUM_2","NUM_3","NUM_4","NUM_5","NUM_6","NUM_7","NUM_8","NUM_9","CHAR_A","CHAR_B","CHAR_C","CHAR_D","CHAR_E","CHAR_F","CHAR_G","CHAR_H","CHAR_I","CHAR_J","CHAR_K","CHAR_L","CHAR_M","CHAR_N","CHAR_O","CHAR_P","CHAR_Q","CHAR_R","CHAR_S","CHAR_T","CHAR_U","CHAR_V","CHAR_W","CHAR_X","CHAR_Y","CHAR_Z","NUM_PAD_0","NUM_PAD_1","NUM_PAD_2","NUM_PAD_3","NUM_PAD_4","NUM_PAD_5","NUM_PAD_6","NUM_PAD_7","NUM_PAD_8","NUM_PAD_9","MULTIPLY","ADD","SUBTRACT","DECIMAL","DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","SEMICOLON","EQUALS","COMMA","DASH","PERIOD","FORWARD_SLASH","GRAVE","OPEN_BRACKET","BACK_SLASH","CLOSE_BRACKET","SINGLE_QUOTE","KeyboardInput","_keyState","addEventListener","event","_keyDownHandler","_keyUpHandler","keyCode","_collisionmethods","_collisionmethods2","color","size","AABB","fillStyle","fillRect","CollisionMethods","entity1","entity2","r","g"],"mappings":"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","file":"es5.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _game = __webpack_require__(1);\n\t\n\tvar _game2 = _interopRequireDefault(_game);\n\t\n\tvar _entity = __webpack_require__(51);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(52);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _rect = __webpack_require__(54);\n\t\n\tvar _rect2 = _interopRequireDefault(_rect);\n\t\n\tvar _color = __webpack_require__(56);\n\t\n\tvar _color2 = _interopRequireDefault(_color);\n\t\n\tvar _keyboardinput = __webpack_require__(53);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Classes = {\n\t Game: _game2.default,\n\t Entity: _entity2.default,\n\t Rect: _rect2.default,\n\t Vector2D: _vector2d2.default,\n\t Color: _color2.default\n\t};\n\t\n\tvar Consts = {\n\t Input: {\n\t Keys: _keyboardinput.KeyConsts\n\t }\n\t};\n\t\n\twindow.MomentumEngine = {\n\t Classes: Classes,\n\t Consts: Consts\n\t};\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(44);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(51);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _keyboardinput = __webpack_require__(53);\n\t\n\tvar _keyboardinput2 = _interopRequireDefault(_keyboardinput);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Game = (function (_Entity) {\n\t (0, _inherits3.default)(Game, _Entity);\n\t\n\t function Game(config) {\n\t (0, _classCallCheck3.default)(this, Game);\n\t // Call entity constructor\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Game).call(this));\n\t\n\t config = config || {};\n\t config.inputs = config.inputs || {};\n\t\n\t // Required params\n\t if (config.canvas) {\n\t _this.canvas = config.canvas;\n\t } else {\n\t throw new Error(\"MomentumEngine.Game must be constructed with a canvas\");\n\t }\n\t\n\t if (config.width) {\n\t _this.width = config.width;\n\t } else {\n\t throw new Error(\"MomentumEngine.Game must be constructed with canvas width\");\n\t }\n\t\n\t if (config.height) {\n\t _this.height = config.height;\n\t } else {\n\t throw new Error(\"MomentumEngine.Game must be constructed with canvas height\");\n\t }\n\t\n\t // Optional params\n\t _this.desiredFps = config.desiredFps || 60;\n\t\n\t if (config.fixRatio) {\n\t\n\t var deviceRatio = window.devicePixelRatio,\n\t backingStoreRatio = 0;\n\t\n\t // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n\t if (typeof ejecta !== \"undefined\") {\n\t backingStoreRatio = 1;\n\t } else {\n\t\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t\n\t backingStoreRatio = _this.context.webkitBackingStorePixelRatio || _this.context.mozBackingStorePixelRatio || _this.context.msBackingStorePixelRatio || _this.context.oBackingStorePixelRatio || _this.context.backingStorePixelRatio || 1;\n\t }\n\t\n\t _this.scale = deviceRatio / backingStoreRatio;\n\t\n\t _this.canvas.width = _this.width * _this.scale;\n\t _this.canvas.height = _this.height * _this.scale;\n\t\n\t _this.canvas.style.width = _this.width + \"px\";\n\t _this.canvas.style.height = _this.height + \"px\";\n\t\n\t // Call getContext last for Ejecta only.\n\t if (typeof ejecta !== \"undefined\") {\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t }\n\t\n\t _this.context.scale(deviceRatio, deviceRatio);\n\t } else {\n\t\n\t _this.canvas.width = _this.width;\n\t _this.canvas.height = _this.height;\n\t\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t }\n\t\n\t if (typeof _this.context.imageSmoothingEnabled !== \"undefined\") {\n\t _this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n\t }\n\t\n\t // Initialize defaults\n\t _this.lastFrameDelta = 0;\n\t _this.frameCounter = 0;\n\t\n\t _this.inputs = {};\n\t if (config.inputs.keyboard) {\n\t _this.inputs.keyboard = new _keyboardinput2.default(_this);\n\t }\n\t\n\t _this._game = _this;\n\t _this._lastFrameTimestamp = 0;\n\t _this._wantPause = true;\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Game, [{\n\t key: \"start\",\n\t value: function start() {\n\t\n\t var self = this; // NK: Hate doing this...better way plz?\n\t\n\t if (self._wantPause) {\n\t self._wantPause = false;\n\t } else {\n\t console.log(\"MomentumEngine.Game.start called, game instance is already started\");\n\t return false; // Game is already running\n\t }\n\t\n\t self._wantPause = false;\n\t\n\t var requestFrame = (function () {\n\t\n\t return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n\t window.setTimeout(callback, 1000 / self.desiredFps);\n\t };\n\t })();\n\t\n\t self._lastFrameTimestamp = +new Date();\n\t\n\t var loop = function loop() {\n\t\n\t self.frameCounter++;\n\t\n\t var currentTimestamp = +new Date();\n\t\n\t self.lastFrameDelta = currentTimestamp - self._lastFrameTimestamp;\n\t self._lastFrameTimestamp = currentTimestamp;\n\t\n\t self.lastFrameDelta = Math.min(self.lastFrameDelta, 1000 / self.desiredFps);\n\t\n\t if (self._wantPause) {\n\t return;\n\t }\n\t\n\t self._updateEntity.bind(self);\n\t self._updateEntity();\n\t\n\t self._renderEntity.bind(self);\n\t self._renderEntity();\n\t\n\t requestFrame(loop);\n\t };\n\t\n\t loop();\n\t return true;\n\t }\n\t }, {\n\t key: \"pause\",\n\t value: function pause() {\n\t\n\t if (!this._wantPause) {\n\t this._wantPause = true;\n\t return true;\n\t } else {\n\t console.log(\"MomentumEngine.Game.pause called, game instance is already paused\");\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Game;\n\t})(_entity2.default);\n\t\n\texports.default = Game;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(3), __esModule: true };\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(4);\n\tmodule.exports = __webpack_require__(10).Object.getPrototypeOf;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 Object.getPrototypeOf(O)\n\tvar toObject = __webpack_require__(5);\n\t\n\t__webpack_require__(7)('getPrototypeOf', function($getPrototypeOf){\n\t return function getPrototypeOf(it){\n\t return $getPrototypeOf(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(6);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(8)\n\t , core = __webpack_require__(10)\n\t , fails = __webpack_require__(13);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(9)\n\t , core = __webpack_require__(10)\n\t , ctx = __webpack_require__(11)\n\t , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && key in target;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(param){\n\t return this instanceof C ? new C(param) : C(param);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\tmodule.exports = $export;\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '1.2.6'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(12);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\texports.default = function (instance, Constructor) {\n\t if (!(instance instanceof Constructor)) {\n\t throw new TypeError(\"Cannot call a class as a function\");\n\t }\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(16);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = (function () {\n\t function defineProperties(target, props) {\n\t for (var i = 0; i < props.length; i++) {\n\t var descriptor = props[i];\n\t descriptor.enumerable = descriptor.enumerable || false;\n\t descriptor.configurable = true;\n\t if (\"value\" in descriptor) descriptor.writable = true;\n\t (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n\t }\n\t }\n\t\n\t return function (Constructor, protoProps, staticProps) {\n\t if (protoProps) defineProperties(Constructor.prototype, protoProps);\n\t if (staticProps) defineProperties(Constructor, staticProps);\n\t return Constructor;\n\t };\n\t})();\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(17), __esModule: true };\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $.setDesc(it, key, desc);\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports) {\n\n\tvar $Object = Object;\n\tmodule.exports = {\n\t create: $Object.create,\n\t getProto: $Object.getPrototypeOf,\n\t isEnum: {}.propertyIsEnumerable,\n\t getDesc: $Object.getOwnPropertyDescriptor,\n\t setDesc: $Object.defineProperty,\n\t setDescs: $Object.defineProperties,\n\t getKeys: $Object.keys,\n\t getNames: $Object.getOwnPropertyNames,\n\t getSymbols: $Object.getOwnPropertySymbols,\n\t each: [].forEach\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof2 = __webpack_require__(20);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (self, call) {\n\t if (!self) {\n\t throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\t }\n\t\n\t return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _symbol = __webpack_require__(21);\n\t\n\tvar _symbol2 = _interopRequireDefault(_symbol);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _typeof(obj) { return obj && typeof _Symbol !== \"undefined\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; }\n\t\n\texports.default = function (obj) {\n\t return obj && typeof _symbol2.default !== \"undefined\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(22), __esModule: true };\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(23);\n\t__webpack_require__(43);\n\tmodule.exports = __webpack_require__(10).Symbol;\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar $ = __webpack_require__(18)\n\t , global = __webpack_require__(9)\n\t , has = __webpack_require__(24)\n\t , DESCRIPTORS = __webpack_require__(25)\n\t , $export = __webpack_require__(8)\n\t , redefine = __webpack_require__(26)\n\t , $fails = __webpack_require__(13)\n\t , shared = __webpack_require__(29)\n\t , setToStringTag = __webpack_require__(30)\n\t , uid = __webpack_require__(32)\n\t , wks = __webpack_require__(31)\n\t , keyOf = __webpack_require__(33)\n\t , $names = __webpack_require__(37)\n\t , enumKeys = __webpack_require__(38)\n\t , isArray = __webpack_require__(39)\n\t , anObject = __webpack_require__(40)\n\t , toIObject = __webpack_require__(34)\n\t , createDesc = __webpack_require__(28)\n\t , getDesc = $.getDesc\n\t , setDesc = $.setDesc\n\t , _create = $.create\n\t , getNames = $names.get\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , setter = false\n\t , HIDDEN = wks('_hidden')\n\t , isEnum = $.isEnum\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , useNative = typeof $Symbol == 'function'\n\t , ObjectProto = Object.prototype;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(setDesc({}, 'a', {\n\t get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = getDesc(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t setDesc(it, key, D);\n\t if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n\t} : setDesc;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol.prototype);\n\t sym._k = tag;\n\t DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n\t configurable: true,\n\t set: function(value){\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t }\n\t });\n\t return sym;\n\t};\n\t\n\tvar isSymbol = function(it){\n\t return typeof it == 'symbol';\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(D && has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return setDesc(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key);\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n\t ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t var D = getDesc(it = toIObject(it), key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n\t return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n\t return result;\n\t};\n\tvar $stringify = function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , $$ = arguments\n\t , replacer, $replacer;\n\t while($$.length > i)args.push($$[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t};\n\tvar buggyJSON = $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t});\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!useNative){\n\t $Symbol = function Symbol(){\n\t if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n\t return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n\t };\n\t redefine($Symbol.prototype, 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t isSymbol = function(it){\n\t return it instanceof $Symbol;\n\t };\n\t\n\t $.create = $create;\n\t $.isEnum = $propertyIsEnumerable;\n\t $.getDesc = $getOwnPropertyDescriptor;\n\t $.setDesc = $defineProperty;\n\t $.setDescs = $defineProperties;\n\t $.getNames = $names.get = $getOwnPropertyNames;\n\t $.getSymbols = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(42)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t}\n\t\n\tvar symbolStatics = {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t return keyOf(SymbolRegistry, key);\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t};\n\t// 19.4.2.2 Symbol.hasInstance\n\t// 19.4.2.3 Symbol.isConcatSpreadable\n\t// 19.4.2.4 Symbol.iterator\n\t// 19.4.2.6 Symbol.match\n\t// 19.4.2.8 Symbol.replace\n\t// 19.4.2.9 Symbol.search\n\t// 19.4.2.10 Symbol.species\n\t// 19.4.2.11 Symbol.split\n\t// 19.4.2.12 Symbol.toPrimitive\n\t// 19.4.2.13 Symbol.toStringTag\n\t// 19.4.2.14 Symbol.unscopables\n\t$.each.call((\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n\t 'species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), function(it){\n\t var sym = wks(it);\n\t symbolStatics[it] = useNative ? sym : wrap(sym);\n\t});\n\t\n\tsetter = true;\n\t\n\t$export($export.G + $export.W, {Symbol: $Symbol});\n\t\n\t$export($export.S, 'Symbol', symbolStatics);\n\t\n\t$export($export.S + $export.F * !useNative, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\t\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 24 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(13)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(27);\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18)\n\t , createDesc = __webpack_require__(28);\n\tmodule.exports = __webpack_require__(25) ? function(object, key, value){\n\t return $.setDesc(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(9)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(18).setDesc\n\t , has = __webpack_require__(24)\n\t , TAG = __webpack_require__(31)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(29)('wks')\n\t , uid = __webpack_require__(32)\n\t , Symbol = __webpack_require__(9).Symbol;\n\tmodule.exports = function(name){\n\t return store[name] || (store[name] =\n\t Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n\t};\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18)\n\t , toIObject = __webpack_require__(34);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = $.getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(35)\n\t , defined = __webpack_require__(6);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(36);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 36 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(34)\n\t , getNames = __webpack_require__(18).getNames\n\t , toString = {}.toString;\n\t\n\tvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\t\n\tvar getWindowNames = function(it){\n\t try {\n\t return getNames(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\t\n\tmodule.exports.get = function getOwnPropertyNames(it){\n\t if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n\t return getNames(toIObject(it));\n\t};\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function(it){\n\t var keys = $.getKeys(it)\n\t , getSymbols = $.getSymbols;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = $.isEnum\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n\t }\n\t return keys;\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(36);\n\tmodule.exports = Array.isArray || function(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(41);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ },\n/* 41 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 43 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _setPrototypeOf = __webpack_require__(45);\n\t\n\tvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\t\n\tvar _create = __webpack_require__(49);\n\t\n\tvar _create2 = _interopRequireDefault(_create);\n\t\n\tvar _typeof2 = __webpack_require__(20);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (subClass, superClass) {\n\t if (typeof superClass !== \"function\" && superClass !== null) {\n\t throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n\t }\n\t\n\t subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n\t constructor: {\n\t value: subClass,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n\t};\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(46), __esModule: true };\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(47);\n\tmodule.exports = __webpack_require__(10).Object.setPrototypeOf;\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.19 Object.setPrototypeOf(O, proto)\n\tvar $export = __webpack_require__(8);\n\t$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(48).set});\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Works with __proto__ only. Old v8 can't work with null proto objects.\n\t/* eslint-disable no-proto */\n\tvar getDesc = __webpack_require__(18).getDesc\n\t , isObject = __webpack_require__(41)\n\t , anObject = __webpack_require__(40);\n\tvar check = function(O, proto){\n\t anObject(O);\n\t if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n\t};\n\tmodule.exports = {\n\t set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n\t function(test, buggy, set){\n\t try {\n\t set = __webpack_require__(11)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n\t set(test, []);\n\t buggy = !(test instanceof Array);\n\t } catch(e){ buggy = true; }\n\t return function setPrototypeOf(O, proto){\n\t check(O, proto);\n\t if(buggy)O.__proto__ = proto;\n\t else set(O, proto);\n\t return O;\n\t };\n\t }({}, false) : undefined),\n\t check: check\n\t};\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(50), __esModule: true };\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function create(P, D){\n\t return $.create(P, D);\n\t};\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _vector2d = __webpack_require__(52);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Entity = (function () {\n\t function Entity(x, y) {\n\t (0, _classCallCheck3.default)(this, Entity);\n\t\n\t this.pos = new _vector2d2.default(x || 0, y || 0);\n\t\n\t this.state = {};\n\t this.children = [];\n\t\n\t this._calculatedPos = this.pos.clone();\n\t this._lastCalculated = 0;\n\t this._game = null;\n\t this._parent = null;\n\t }\n\t\n\t (0, _createClass3.default)(Entity, [{\n\t key: \"createChildEntity\",\n\t value: function createChildEntity() {\n\t\n\t var child = new Entity();\n\t\n\t child._updateGame(this._game);\n\t child._parent = this;\n\t this.children.push(child);\n\t\n\t return child;\n\t }\n\t }, {\n\t key: \"addChildEntity\",\n\t value: function addChildEntity(child) {\n\t\n\t child._updateGame(this._game);\n\t child._parent = this;\n\t this.children.push(child);\n\t\n\t return child;\n\t }\n\t }, {\n\t key: \"detachChildEntity\",\n\t value: function detachChildEntity(entity) {\n\t // Not implemented\n\t }\n\t }, {\n\t key: \"_recalculatePos\",\n\t value: function _recalculatePos() {\n\t\n\t // NK: This should be called within \"render\", not \"update\". The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _recalculatePos method all the way back up the tree and continuously adding the results together.\n\t\n\t // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\t\n\t if (this._game && this._lastCalculated < this._game.frameCounter) {\n\t\n\t if (this._parent) {\n\t\n\t var parentPos = this._parent._recalculatePos();\n\t\n\t this._calculatedPos.x = this.pos.x + parentPos.x;\n\t this._calculatedPos.y = this.pos.y + parentPos.y;\n\t } else {\n\t this._calculatedPos.x = this.pos.x;\n\t this._calculatedPos.y = this.pos.y;\n\t }\n\t\n\t this._lastCalculated = this._game.frameCounter;\n\t }\n\t\n\t return this._calculatedPos;\n\t }\n\t }, {\n\t key: \"_updateGame\",\n\t value: function _updateGame(game) {\n\t\n\t this._game = game;\n\t\n\t this.children.forEach(function (child) {\n\t child._updateGame(game);\n\t });\n\t }\n\t }, {\n\t key: \"_updateEntity\",\n\t value: function _updateEntity() {\n\t\n\t this._recalculatePos();\n\t\n\t if (this.update && this.update() || typeof this.update === \"undefined\") {\n\t\n\t this.children.forEach(function (child) {\n\t child._updateEntity();\n\t });\n\t }\n\t }\n\t }, {\n\t key: \"_renderEntity\",\n\t value: function _renderEntity() {\n\t\n\t if (this.render && this.render() || typeof this.render === \"undefined\") {\n\t\n\t this.children.forEach(function (child) {\n\t child._renderEntity();\n\t });\n\t }\n\t }\n\t }]);\n\t return Entity;\n\t})();\n\t\n\texports.default = Entity;\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Vector2D = (function () {\n\t function Vector2D(x, y) {\n\t (0, _classCallCheck3.default)(this, Vector2D);\n\t\n\t this.x = x || 0;this.y = y || 0;\n\t }\n\t\n\t (0, _createClass3.default)(Vector2D, [{\n\t key: \"invert\",\n\t value: function invert() {\n\t this.x = -this.x;this.y = -this.y;\n\t return this;\n\t }\n\t }, {\n\t key: \"add\",\n\t value: function add(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x += val.x;this.y += val.y;\n\t } else {\n\t this.x += val;this.y += val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"subtract\",\n\t value: function subtract(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x -= val.x;this.y -= val.y;\n\t } else {\n\t this.x -= val;this.y -= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"multiply\",\n\t value: function multiply(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x *= val.x;this.y *= val.y;\n\t } else {\n\t this.x *= val;this.y *= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"divide\",\n\t value: function divide(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x /= val.x;this.y /= val.y;\n\t } else {\n\t this.x /= val;this.y /= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"equals\",\n\t value: function equals(val) {\n\t return this.x == val.x && this.y == val.y;\n\t }\n\t }, {\n\t key: \"dot\",\n\t value: function dot(val) {\n\t return this.x * val.x + this.y * val.y;\n\t }\n\t }, {\n\t key: \"length\",\n\t value: function length() {\n\t return Math.sqrt(this.dot(this));\n\t }\n\t }, {\n\t key: \"unit\",\n\t value: function unit() {\n\t return this.divide(this.length());\n\t }\n\t }, {\n\t key: \"min\",\n\t value: function min() {\n\t return Math.min(this.x, this.y);\n\t }\n\t }, {\n\t key: \"max\",\n\t value: function max() {\n\t return Math.max(this.x, this.y);\n\t }\n\t }, {\n\t key: \"degrees\",\n\t value: function degrees() {\n\t return Math.atan(this.x, this.y) * 180;\n\t }\n\t }, {\n\t key: \"toArray\",\n\t value: function toArray() {\n\t return [this.x, this.y];\n\t }\n\t }, {\n\t key: \"toString\",\n\t value: function toString() {\n\t return \"[\" + this.x + \"},\" + this.y + \"}]\";\n\t }\n\t }, {\n\t key: \"clone\",\n\t value: function clone() {\n\t return new Vector2D(this.x, this.y);\n\t }\n\t }]);\n\t return Vector2D;\n\t})();\n\t\n\texports.default = Vector2D;\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.KeyConsts = undefined;\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar KeyConsts = {\n\t SPACE: 32,\n\t BACKSPACE: 8,\n\t TAB: 9,\n\t ENTER: 13,\n\t SHIFT: 16,\n\t CTRL: 17,\n\t ALT: 18,\n\t PAUSE: 19,\n\t CAPS_LOCK: 20,\n\t ESCAPE: 27,\n\t PAGE_UP: 33,\n\t PAGE_DOWN: 34,\n\t END: 35,\n\t HOME: 36,\n\t LEFT: 37,\n\t UP: 38,\n\t RIGHT: 39,\n\t DOWN: 40,\n\t INSERT: 45,\n\t DELETE: 46,\n\t NUM_0: 48,\n\t NUM_1: 49,\n\t NUM_2: 50,\n\t NUM_3: 51,\n\t NUM_4: 52,\n\t NUM_5: 53,\n\t NUM_6: 54,\n\t NUM_7: 55,\n\t NUM_8: 56,\n\t NUM_9: 57,\n\t CHAR_A: 65,\n\t CHAR_B: 66,\n\t CHAR_C: 67,\n\t CHAR_D: 68,\n\t CHAR_E: 69,\n\t CHAR_F: 70,\n\t CHAR_G: 71,\n\t CHAR_H: 72,\n\t CHAR_I: 73,\n\t CHAR_J: 74,\n\t CHAR_K: 75,\n\t CHAR_L: 76,\n\t CHAR_M: 77,\n\t CHAR_N: 78,\n\t CHAR_O: 79,\n\t CHAR_P: 80,\n\t CHAR_Q: 81,\n\t CHAR_R: 82,\n\t CHAR_S: 83,\n\t CHAR_T: 84,\n\t CHAR_U: 85,\n\t CHAR_V: 86,\n\t CHAR_W: 87,\n\t CHAR_X: 88,\n\t CHAR_Y: 89,\n\t CHAR_Z: 90,\n\t NUM_PAD_0: 96,\n\t NUM_PAD_1: 97,\n\t NUM_PAD_2: 98,\n\t NUM_PAD_3: 99,\n\t NUM_PAD_4: 100,\n\t NUM_PAD_5: 101,\n\t NUM_PAD_6: 102,\n\t NUM_PAD_7: 103,\n\t NUM_PAD_8: 104,\n\t NUM_PAD_9: 105,\n\t MULTIPLY: 106,\n\t ADD: 107,\n\t SUBTRACT: 109,\n\t DECIMAL: 110,\n\t DIVIDE: 111,\n\t F1: 112,\n\t F2: 113,\n\t F3: 114,\n\t F4: 115,\n\t F5: 116,\n\t F6: 117,\n\t F7: 118,\n\t F8: 119,\n\t F9: 120,\n\t F10: 121,\n\t F11: 122,\n\t F12: 123,\n\t SEMICOLON: 186,\n\t EQUALS: 187,\n\t COMMA: 188,\n\t DASH: 189,\n\t PERIOD: 190,\n\t FORWARD_SLASH: 191,\n\t GRAVE: 192,\n\t OPEN_BRACKET: 219,\n\t BACK_SLASH: 220,\n\t CLOSE_BRACKET: 221,\n\t SINGLE_QUOTE: 222\n\t};\n\t\n\tvar KeyboardInput = (function () {\n\t function KeyboardInput() {\n\t (0, _classCallCheck3.default)(this, KeyboardInput);\n\t\n\t var self = this;\n\t self._keyState = {};\n\t\n\t window.addEventListener(\"keydown\", function (event) {\n\t self._keyDownHandler(event);\n\t }, false);\n\t\n\t window.addEventListener(\"keyup\", function (event) {\n\t self._keyUpHandler(event);\n\t }, false);\n\t }\n\t\n\t (0, _createClass3.default)(KeyboardInput, [{\n\t key: \"isPressed\",\n\t value: function isPressed(keyCode) {\n\t return !!this._keyState[keyCode];\n\t }\n\t }, {\n\t key: \"_keyDownHandler\",\n\t value: function _keyDownHandler(event) {\n\t this._keyState[event.keyCode] = true;\n\t }\n\t }, {\n\t key: \"_keyUpHandler\",\n\t value: function _keyUpHandler(event) {\n\t this._keyState[event.keyCode] = false;\n\t }\n\t }]);\n\t return KeyboardInput;\n\t})();\n\t\n\texports.default = KeyboardInput;\n\texports.KeyConsts = KeyConsts;\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(44);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(51);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(52);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _collisionmethods = __webpack_require__(55);\n\t\n\tvar _collisionmethods2 = _interopRequireDefault(_collisionmethods);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Rect = (function (_Entity) {\n\t (0, _inherits3.default)(Rect, _Entity);\n\t\n\t function Rect(x, y, width, height, color) {\n\t (0, _classCallCheck3.default)(this, Rect);\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Rect).call(this, x, y));\n\t\n\t _this.size = new _vector2d2.default(width, height);\n\t _this.color = color;\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Rect, [{\n\t key: \"isCollidingWith\",\n\t value: function isCollidingWith(entity) {\n\t\n\t if (entity instanceof Rect) {\n\t return _collisionmethods2.default.AABB(this, entity);\n\t }\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t\n\t if (this._game) {\n\t\n\t this._game.context.fillStyle = this.color;\n\t this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\t\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Rect;\n\t})(_entity2.default);\n\t\n\texports.default = Rect;\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _rect = __webpack_require__(54);\n\t\n\tvar _rect2 = _interopRequireDefault(_rect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar CollisionMethods = (function () {\n\t function CollisionMethods() {\n\t (0, _classCallCheck3.default)(this, CollisionMethods);\n\t }\n\t\n\t (0, _createClass3.default)(CollisionMethods, null, [{\n\t key: \"AABB\",\n\t value: function AABB(entity1, entity2) {\n\t\n\t if (!entity1 instanceof _rect2.default || !entity2 instanceof _rect2.default) {\n\t throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n\t }\n\t\n\t return entity1.pos.x < entity2.pos.x + entity2.size.x && entity1.pos.x + entity1.size.x > entity2.pos.x && entity1.pos.y < entity2.pos.y + entity2.size.y && entity1.size.y + entity1.pos.y > entity2.pos.y;\n\t }\n\t }]);\n\t return CollisionMethods;\n\t})();\n\t\n\texports.default = CollisionMethods;\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Color = (function () {\n\t function Color(r, g, b, a) {\n\t (0, _classCallCheck3.default)(this, Color);\n\t\n\t this.r = r || 0;\n\t this.g = g || 0;\n\t this.b = b || 0;\n\t this.a = a || 1;\n\t }\n\t\n\t (0, _createClass3.default)(Color, [{\n\t key: \"toString\",\n\t value: function toString() {\n\t return \"rgba(\" + this.r + \", \" + this.g + \", \" + this.b + \", \" + this.a + \")\";\n\t }\n\t }, {\n\t key: \"toHex\",\n\t value: function toHex() {\n\t return \"#\" + (r << 16 | g << 8 | b).toString(16);\n\t }\n\t }]);\n\t return Color;\n\t})();\n\t\n\texports.default = Color;\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** es5.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b77135202cdf38c06f89\n **/","\"use strict\";\n\nimport Game from \"./classes/game.js\";\nimport Entity from \"./classes/entity.js\";\nimport Vector2D from \"./classes/vector2d.js\";\nimport Rect from \"./classes/rect.js\";\nimport Color from \"./classes/color.js\";\n\nimport {KeyConsts} from \"./classes/keyboardinput.js\";\n\n\nconst Classes = {\n Game: Game,\n Entity: Entity,\n Rect: Rect,\n Vector2D: Vector2D,\n Color: Color\n};\n\n\nconst Consts = {\n Input: {\n Keys: KeyConsts\n }\n};\n\n\nwindow.MomentumEngine = {\n Classes: Classes,\n Consts: Consts\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/es5.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport KeyboardInput from \"./keyboardinput.js\";\n\nclass Game extends Entity {\n\n\n constructor (config) {\n\n super(); // Call entity constructor\n config = config || {};\n config.inputs = config.inputs || {};\n\n\n // Required params\n if (config.canvas) {\n this.canvas = config.canvas;\n } else {\n throw new Error(\"MomentumEngine.Game must be constructed with a canvas\");\n }\n\n if (config.width) {\n this.width = config.width;\n } else {\n throw new Error(\"MomentumEngine.Game must be constructed with canvas width\");\n }\n\n if (config.height) {\n this.height = config.height;\n } else {\n throw new Error(\"MomentumEngine.Game must be constructed with canvas height\");\n }\n\n\n // Optional params\n this.desiredFps = config.desiredFps || 60;\n\n if (config.fixRatio) {\n\n let deviceRatio = window.devicePixelRatio,\n backingStoreRatio = 0;\n\n // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n if (typeof ejecta !== \"undefined\") {\n backingStoreRatio = 1;\n } else {\n\n this.context = this.canvas.getContext(\"2d\");\n\n backingStoreRatio = this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio || 1;\n\n }\n\n this.scale = deviceRatio / backingStoreRatio;\n\n this.canvas.width = this.width * this.scale;\n this.canvas.height = this.height * this.scale;\n\n this.canvas.style.width = this.width + \"px\";\n this.canvas.style.height = this.height + \"px\";\n\n // Call getContext last for Ejecta only.\n if (typeof ejecta !== \"undefined\") {\n this.context = this.canvas.getContext(\"2d\");\n }\n\n this.context.scale(deviceRatio, deviceRatio);\n\n } else {\n\n this.canvas.width = this.width;\n this.canvas.height = this.height;\n\n this.context = this.canvas.getContext(\"2d\");\n\n }\n\n if (typeof this.context.imageSmoothingEnabled !== \"undefined\") {\n this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n }\n\n\n // Initialize defaults\n this.lastFrameDelta = 0;\n this.frameCounter = 0;\n\n this.inputs = {};\n if (config.inputs.keyboard) {\n this.inputs.keyboard = new KeyboardInput(this);\n }\n\n this._game = this;\n this._lastFrameTimestamp = 0;\n this._wantPause = true;\n\n }\n\n\n start () {\n\n var self = this; // NK: Hate doing this...better way plz?\n\n if (self._wantPause) {\n self._wantPause = false;\n } else {\n console.log(\"MomentumEngine.Game.start called, game instance is already started\");\n return false; // Game is already running\n }\n\n self._wantPause = false;\n\n var requestFrame = (() => {\n\n return (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n function (callback) {\n window.setTimeout(callback, 1000 / self.desiredFps);\n });\n\n })();\n\n self._lastFrameTimestamp = +(new Date());\n\n var loop = function () {\n\n self.frameCounter++;\n\n let currentTimestamp = +(new Date());\n\n self.lastFrameDelta = currentTimestamp - self._lastFrameTimestamp;\n self._lastFrameTimestamp = currentTimestamp;\n\n self.lastFrameDelta = Math.min(self.lastFrameDelta, 1000 / self.desiredFps);\n\n if (self._wantPause) {\n return;\n }\n\n self._updateEntity.bind(self);\n self._updateEntity();\n\n self._renderEntity.bind(self);\n self._renderEntity();\n\n requestFrame(loop);\n\n };\n\n loop();\n return true;\n\n }\n\n\n pause () {\n\n if (!this._wantPause) {\n this._wantPause = true;\n return true;\n } else {\n console.log(\"MomentumEngine.Game.pause called, game instance is already paused\");\n return false;\n }\n }\n\n\n}\n\n\nexport default Game;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/game.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 2\n ** module chunks = 0\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 4\n ** module chunks = 0\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.to-object.js\n ** module id = 5\n ** module chunks = 0\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.defined.js\n ** module id = 6\n ** module chunks = 0\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.object-sap.js\n ** module id = 7\n ** module chunks = 0\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.export.js\n ** module id = 8\n ** module chunks = 0\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.global.js\n ** module id = 9\n ** module chunks = 0\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.core.js\n ** module id = 10\n ** module chunks = 0\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.ctx.js\n ** module id = 11\n ** module chunks = 0\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.a-function.js\n ** module id = 12\n ** module chunks = 0\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.fails.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = (function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n})();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 15\n ** module chunks = 0\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 16\n ** module chunks = 0\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/object/define-property.js\n ** module id = 17\n ** module chunks = 0\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.js\n ** module id = 18\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 19\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { return obj && typeof _Symbol !== \"undefined\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; }\n\nexports.default = function (obj) {\n return obj && typeof _symbol2.default !== \"undefined\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 20\n ** module chunks = 0\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 21\n ** module chunks = 0\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/symbol/index.js\n ** module id = 22\n ** module chunks = 0\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/es6.symbol.js\n ** module id = 23\n ** module chunks = 0\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.has.js\n ** module id = 24\n ** module chunks = 0\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.descriptors.js\n ** module id = 25\n ** module chunks = 0\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.redefine.js\n ** module id = 26\n ** module chunks = 0\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.hide.js\n ** module id = 27\n ** module chunks = 0\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.property-desc.js\n ** module id = 28\n ** module chunks = 0\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.shared.js\n ** module id = 29\n ** module chunks = 0\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 30\n ** module chunks = 0\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.wks.js\n ** module id = 31\n ** module chunks = 0\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.uid.js\n ** module id = 32\n ** module chunks = 0\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.keyof.js\n ** module id = 33\n ** module chunks = 0\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.to-iobject.js\n ** module id = 34\n ** module chunks = 0\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.iobject.js\n ** module id = 35\n ** module chunks = 0\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.cof.js\n ** module id = 36\n ** module chunks = 0\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.get-names.js\n ** module id = 37\n ** module chunks = 0\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.enum-keys.js\n ** module id = 38\n ** module chunks = 0\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.is-array.js\n ** module id = 39\n ** module chunks = 0\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.an-object.js\n ** module id = 40\n ** module chunks = 0\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.is-object.js\n ** module id = 41\n ** module chunks = 0\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.library.js\n ** module id = 42\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 44\n ** module chunks = 0\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 45\n ** module chunks = 0\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 46\n ** module chunks = 0\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 47\n ** module chunks = 0\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.set-proto.js\n ** module id = 48\n ** module chunks = 0\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 49\n ** module chunks = 0\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/object/create.js\n ** module id = 50\n ** module chunks = 0\n **/","\"use strict\";\n\nimport Vector2D from \"./vector2d.js\";\n\nclass Entity {\n\n\n constructor (x, y) {\n\n this.pos = new Vector2D(x || 0, y || 0);\n\n this.state = {};\n this.children = [];\n\n this._calculatedPos = this.pos.clone();\n this._lastCalculated = 0;\n this._game = null;\n this._parent = null;\n\n }\n\n\n createChildEntity () {\n\n let child = new Entity();\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n addChildEntity (child) {\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n detachChildEntity (entity) {\n // Not implemented\n }\n\n\n _recalculatePos () {\n\n // NK: This should be called within \"render\", not \"update\". The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _recalculatePos method all the way back up the tree and continuously adding the results together.\n\n // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\n if (this._game && this._lastCalculated < this._game.frameCounter) {\n\n if (this._parent) {\n\n let parentPos = this._parent._recalculatePos();\n\n this._calculatedPos.x = this.pos.x + parentPos.x;\n this._calculatedPos.y = this.pos.y + parentPos.y;\n\n } else {\n this._calculatedPos.x = this.pos.x;\n this._calculatedPos.y = this.pos.y;\n }\n\n this._lastCalculated = this._game.frameCounter;\n\n }\n\n return this._calculatedPos;\n\n }\n\n\n _updateGame (game) {\n\n this._game = game;\n\n this.children.forEach((child) => {\n child._updateGame(game);\n });\n\n }\n\n\n _updateEntity () {\n\n this._recalculatePos();\n\n if ((this.update && this.update()) || (typeof this.update === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._updateEntity();\n });\n\n }\n\n }\n\n\n _renderEntity () {\n\n if ((this.render && this.render()) || (typeof this.render === \"undefined\")) {\n\n this.children.forEach((child) => {\n child._renderEntity();\n });\n\n }\n\n }\n\n\n}\n\n\nexport default Entity;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/entity.js\n **/","\"use strict\";\n\nclass Vector2D {\n\n\n constructor (x, y) {\n this.x = x || 0; this.y = y || 0;\n }\n\n\n invert () {\n this.x = -this.x; this.y = -this.y;\n return this;\n }\n\n\n add (val) {\n\n if (val instanceof Vector2D) {\n this.x += val.x; this.y += val.y;\n } else {\n this.x += val; this.y += val;\n }\n\n return this;\n\n }\n\n\n subtract (val) {\n\n if (val instanceof Vector2D) {\n this.x -= val.x; this.y -= val.y;\n } else {\n this.x -= val; this.y -= val;\n }\n\n return this;\n\n }\n\n\n multiply (val) {\n\n if (val instanceof Vector2D) {\n this.x *= val.x; this.y *= val.y;\n } else {\n this.x *= val; this.y *= val;\n }\n\n return this;\n\n }\n\n\n divide (val) {\n\n if (val instanceof Vector2D) {\n this.x /= val.x; this.y /= val.y;\n } else {\n this.x /= val; this.y /= val;\n }\n\n return this;\n\n }\n\n\n equals (val) {\n return (this.x == val.x && this.y == val.y);\n }\n\n\n dot (val) {\n return (this.x * val.x + this.y * val.y);\n }\n\n\n length () {\n return Math.sqrt(this.dot(this));\n }\n\n\n unit () {\n return this.divide(this.length());\n }\n\n\n min () {\n return Math.min(this.x, this.y);\n }\n\n\n max () {\n return Math.max(this.x, this.y);\n }\n\n\n degrees () {\n return (Math.atan(this.x, this.y) * 180);\n }\n\n\n toArray () {\n return [this.x, this.y];\n }\n\n\n toString () {\n return `[${this.x}},${this.y}}]`;\n }\n\n\n clone () {\n return new Vector2D(this.x, this.y);\n }\n\n\n}\n\n\nexport default Vector2D;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/vector2d.js\n **/","\"use strict\";\n\n\nconst KeyConsts = {\n SPACE: 32,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n PAUSE: 19,\n CAPS_LOCK: 20,\n ESCAPE: 27,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n INSERT: 45,\n DELETE: 46,\n NUM_0: 48,\n NUM_1: 49,\n NUM_2: 50,\n NUM_3: 51,\n NUM_4: 52,\n NUM_5: 53,\n NUM_6: 54,\n NUM_7: 55,\n NUM_8: 56,\n NUM_9: 57,\n CHAR_A: 65,\n CHAR_B: 66,\n CHAR_C: 67,\n CHAR_D: 68,\n CHAR_E: 69,\n CHAR_F: 70,\n CHAR_G: 71,\n CHAR_H: 72,\n CHAR_I: 73,\n CHAR_J: 74,\n CHAR_K: 75,\n CHAR_L: 76,\n CHAR_M: 77,\n CHAR_N: 78,\n CHAR_O: 79,\n CHAR_P: 80,\n CHAR_Q: 81,\n CHAR_R: 82,\n CHAR_S: 83,\n CHAR_T: 84,\n CHAR_U: 85,\n CHAR_V: 86,\n CHAR_W: 87,\n CHAR_X: 88,\n CHAR_Y: 89,\n CHAR_Z: 90,\n NUM_PAD_0: 96,\n NUM_PAD_1: 97,\n NUM_PAD_2: 98,\n NUM_PAD_3: 99,\n NUM_PAD_4: 100,\n NUM_PAD_5: 101,\n NUM_PAD_6: 102,\n NUM_PAD_7: 103,\n NUM_PAD_8: 104,\n NUM_PAD_9: 105,\n MULTIPLY: 106,\n ADD: 107,\n SUBTRACT: 109,\n DECIMAL: 110,\n DIVIDE: 111,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n SEMICOLON: 186,\n EQUALS: 187,\n COMMA: 188,\n DASH: 189,\n PERIOD: 190,\n FORWARD_SLASH: 191,\n GRAVE: 192,\n OPEN_BRACKET: 219,\n BACK_SLASH: 220,\n CLOSE_BRACKET: 221,\n SINGLE_QUOTE: 222\n};\n\n\nclass KeyboardInput {\n\n\n constructor () {\n\n var self = this;\n self._keyState = {};\n\n window.addEventListener(\"keydown\", (event) => {\n self._keyDownHandler(event);\n }, false);\n\n window.addEventListener(\"keyup\", (event) => {\n self._keyUpHandler(event);\n }, false);\n\n }\n\n\n isPressed (keyCode) {\n return !!this._keyState[keyCode];\n }\n\n\n _keyDownHandler (event) {\n this._keyState[event.keyCode] = true;\n }\n\n\n _keyUpHandler (event) {\n this._keyState[event.keyCode] = false;\n }\n\n\n}\n\n\nexport default KeyboardInput;\nexport {KeyConsts};\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/keyboardinput.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Rect extends Entity {\n\n\n constructor (x, y, width, height, color) {\n\n super(x, y);\n\n this.size = new Vector2D(width, height);\n this.color = color;\n\n }\n\n\n isCollidingWith (entity) {\n\n if (entity instanceof Rect) {\n return CollisionMethods.AABB(this, entity);\n }\n\n }\n\n\n render () {\n\n if (this._game) {\n\n this._game.context.fillStyle = this.color;\n this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Rect;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/rect.js\n **/","import Rect from \"../classes/rect.js\";\n\nclass CollisionMethods {\n\n\n static AABB (entity1, entity2) {\n\n if (!entity1 instanceof Rect || !entity2 instanceof Rect) {\n throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n }\n\n return (entity1.pos.x < entity2.pos.x + entity2.size.x &&\n entity1.pos.x + entity1.size.x > entity2.pos.x &&\n entity1.pos.y < entity2.pos.y + entity2.size.y &&\n entity1.size.y + entity1.pos.y > entity2.pos.y);\n\n }\n\n\n}\n\n\nexport default CollisionMethods;\n\n\n/** WEBPACK FOOTER **\n ** ./src/libs/collisionmethods.js\n **/","class Color {\n\n\n constructor (r, g, b, a) {\n\n this.r = r || 0;\n this.g = g || 0;\n this.b = b || 0;\n this.a = a || 1;\n\n }\n\n\n toString () {\n return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;\n }\n\n\n toHex () {\n return `#${((r << 16) | (g << 8) | b).toString(16)}`;\n }\n\n\n}\n\n\nexport default Color;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/color.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///es5.js","webpack:///webpack/bootstrap 60d40a5bde66da52ae5c","webpack:///./src/es5.js","webpack:///./src/classes/game.js","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/get-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.to-object.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.defined.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.object-sap.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.export.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.global.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.core.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.ctx.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.a-function.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.fails.js","webpack:///./~/babel-runtime/helpers/classCallCheck.js","webpack:///./~/babel-runtime/helpers/createClass.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/define-property.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.js","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./~/babel-runtime/helpers/typeof.js","webpack:///./~/babel-runtime/core-js/symbol.js","webpack:///./~/babel-runtime/~/core-js/library/fn/symbol/index.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.symbol.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.has.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.descriptors.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.redefine.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.hide.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.property-desc.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.shared.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.wks.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.uid.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.keyof.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.to-iobject.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.iobject.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.cof.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.get-names.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.enum-keys.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.is-array.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.an-object.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.library.js","webpack:///./~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/babel-runtime/~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-runtime/core-js/object/create.js","webpack:///./~/babel-runtime/~/core-js/library/fn/object/create.js","webpack:///./src/classes/entity.js","webpack:///./src/classes/vector2d.js","webpack:///./src/classes/keyboardinput.js","webpack:///./src/classes/sprite.js","webpack:///./src/classes/imageloader.js","webpack:///./src/libs/collisionmethods.js","webpack:///./src/classes/rect.js","webpack:///./src/classes/color.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","_game","_game2","_entity","_entity2","_vector2d","_vector2d2","_sprite","_sprite2","_rect","_rect2","_color","_color2","_imageloader","_imageloader2","_keyboardinput","Classes","Game","Entity","Sprite","Rect","Vector2D","Color","ImageLoader","Consts","Input","Keys","KeyConsts","window","MomentumEngine","Object","defineProperty","value","_getPrototypeOf","_getPrototypeOf2","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_keyboardinput2","_Entity","config","this","_this","inputs","canvas","Error","width","height","desiredFps","fixRatio","deviceRatio","devicePixelRatio","backingStoreRatio","ejecta","context","getContext","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","scale","style","imageSmoothingEnabled","imageSmoothing","lastFrameDelta","frameCounter","keyboard","_lastFrameTimestamp","_wantPause","key","self","console","log","requestFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","callback","setTimeout","Date","startTime","loop","currentTimestamp","Math","min","_updateEntity","bind","_renderEntity","getPrototypeOf","toObject","$getPrototypeOf","it","defined","undefined","TypeError","$export","core","fails","KEY","exec","fn","exp","S","F","global","ctx","PROTOTYPE","type","name","source","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","target","C","param","Function","__g","version","__e","aFunction","that","length","a","b","apply","arguments","e","instance","Constructor","_defineProperty","_defineProperty2","defineProperties","props","i","descriptor","enumerable","configurable","writable","protoProps","staticProps","prototype","$","desc","setDesc","$Object","create","getProto","isEnum","propertyIsEnumerable","getDesc","getOwnPropertyDescriptor","setDescs","getKeys","keys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","each","forEach","_typeof2","_typeof3","ReferenceError","_typeof","_Symbol","constructor","_symbol","_symbol2","Symbol","has","DESCRIPTORS","redefine","$fails","shared","setToStringTag","uid","wks","keyOf","$names","enumKeys","isArray","anObject","toIObject","createDesc","_create","get","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","ObjectProto","setSymbolDesc","D","protoDesc","wrap","tag","sym","_k","set","isSymbol","$defineProperty","$defineProperties","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","$stringify","replacer","$replacer","args","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","split","hasOwnProperty","object","bitmap","SHARED","store","def","TAG","stat","px","random","concat","toString","el","O","index","IObject","cof","slice","windowNames","getWindowNames","symbols","Array","arg","isObject","_setPrototypeOf","_setPrototypeOf2","_create2","subClass","superClass","__proto__","setPrototypeOf","check","proto","test","buggy","x","y","pos","_ready","state","children","_calculatedPos","clone","_lastCalculated","_parent","child","_updateGame","splice","parentPos","_preprocess","game","updated","update","isReady","rendered","render","val","sqrt","dot","divide","max","atan","SPACE","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESCAPE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","INSERT","DELETE","NUM_0","NUM_1","NUM_2","NUM_3","NUM_4","NUM_5","NUM_6","NUM_7","NUM_8","NUM_9","CHAR_A","CHAR_B","CHAR_C","CHAR_D","CHAR_E","CHAR_F","CHAR_G","CHAR_H","CHAR_I","CHAR_J","CHAR_K","CHAR_L","CHAR_M","CHAR_N","CHAR_O","CHAR_P","CHAR_Q","CHAR_R","CHAR_S","CHAR_T","CHAR_U","CHAR_V","CHAR_W","CHAR_X","CHAR_Y","CHAR_Z","NUM_PAD_0","NUM_PAD_1","NUM_PAD_2","NUM_PAD_3","NUM_PAD_4","NUM_PAD_5","NUM_PAD_6","NUM_PAD_7","NUM_PAD_8","NUM_PAD_9","MULTIPLY","ADD","SUBTRACT","DECIMAL","DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","SEMICOLON","EQUALS","COMMA","DASH","PERIOD","FORWARD_SLASH","GRAVE","OPEN_BRACKET","BACK_SLASH","CLOSE_BRACKET","SINGLE_QUOTE","KeyboardInput","_keyState","addEventListener","event","_keyDownHandler","_keyUpHandler","keyCode","_collisionmethods","image","size","_image","_imagePos","_imageSize","isLoaded","isError","imageObj","getImageObj","subWidth","subHeight","drawImage","src","_loaded","_error","_imageObj","Image","err","CollisionMethods","entity1","entity2","_collisionmethods2","color","entity","AABB","fillStyle","fillRect","r","g"],"mappings":"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","file":"es5.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _game = __webpack_require__(1);\n\t\n\tvar _game2 = _interopRequireDefault(_game);\n\t\n\tvar _entity = __webpack_require__(51);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(52);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _sprite = __webpack_require__(54);\n\t\n\tvar _sprite2 = _interopRequireDefault(_sprite);\n\t\n\tvar _rect = __webpack_require__(57);\n\t\n\tvar _rect2 = _interopRequireDefault(_rect);\n\t\n\tvar _color = __webpack_require__(58);\n\t\n\tvar _color2 = _interopRequireDefault(_color);\n\t\n\tvar _imageloader = __webpack_require__(55);\n\t\n\tvar _imageloader2 = _interopRequireDefault(_imageloader);\n\t\n\tvar _keyboardinput = __webpack_require__(53);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Classes = {\n\t Game: _game2.default,\n\t Entity: _entity2.default,\n\t Sprite: _sprite2.default,\n\t Rect: _rect2.default,\n\t Vector2D: _vector2d2.default,\n\t Color: _color2.default,\n\t ImageLoader: _imageloader2.default\n\t};\n\t\n\tvar Consts = {\n\t Input: {\n\t Keys: _keyboardinput.KeyConsts\n\t }\n\t};\n\t\n\twindow.MomentumEngine = {\n\t Classes: Classes,\n\t Consts: Consts\n\t};\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(44);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(51);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _keyboardinput = __webpack_require__(53);\n\t\n\tvar _keyboardinput2 = _interopRequireDefault(_keyboardinput);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Game = (function (_Entity) {\n\t (0, _inherits3.default)(Game, _Entity);\n\t\n\t function Game(config) {\n\t (0, _classCallCheck3.default)(this, Game);\n\t // Call entity constructor\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Game).call(this));\n\t\n\t config = config || {};\n\t config.inputs = config.inputs || {};\n\t\n\t // Required params\n\t if (config.canvas) {\n\t _this.canvas = config.canvas;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with a canvas\");\n\t }\n\t\n\t if (config.width) {\n\t _this.width = config.width;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas width\");\n\t }\n\t\n\t if (config.height) {\n\t _this.height = config.height;\n\t } else {\n\t throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas height\");\n\t }\n\t\n\t // Optional params\n\t _this.desiredFps = config.desiredFps || 60;\n\t\n\t if (config.fixRatio) {\n\t\n\t var deviceRatio = window.devicePixelRatio,\n\t backingStoreRatio = 0;\n\t\n\t // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n\t if (typeof ejecta !== \"undefined\") {\n\t backingStoreRatio = 1;\n\t } else {\n\t\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t\n\t backingStoreRatio = _this.context.webkitBackingStorePixelRatio || _this.context.mozBackingStorePixelRatio || _this.context.msBackingStorePixelRatio || _this.context.oBackingStorePixelRatio || _this.context.backingStorePixelRatio || 1;\n\t }\n\t\n\t _this.scale = deviceRatio / backingStoreRatio;\n\t\n\t _this.canvas.width = _this.width * _this.scale;\n\t _this.canvas.height = _this.height * _this.scale;\n\t\n\t _this.canvas.style.width = _this.width + \"px\";\n\t _this.canvas.style.height = _this.height + \"px\";\n\t\n\t // Call getContext last for Ejecta only.\n\t if (typeof ejecta !== \"undefined\") {\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t }\n\t\n\t _this.context.scale(deviceRatio, deviceRatio);\n\t } else {\n\t\n\t _this.canvas.width = _this.width;\n\t _this.canvas.height = _this.height;\n\t\n\t _this.context = _this.canvas.getContext(\"2d\");\n\t }\n\t\n\t if (typeof _this.context.imageSmoothingEnabled !== \"undefined\") {\n\t _this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n\t }\n\t\n\t // Initialize defaults\n\t _this.lastFrameDelta = 0;\n\t _this.frameCounter = 0;\n\t\n\t _this.inputs = {};\n\t if (config.inputs.keyboard) {\n\t _this.inputs.keyboard = new _keyboardinput2.default(_this);\n\t }\n\t\n\t _this._game = _this;\n\t _this._lastFrameTimestamp = 0;\n\t _this._wantPause = true;\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Game, [{\n\t key: \"start\",\n\t value: function start() {\n\t\n\t var self = this; // NK: Hate doing this...better way plz?\n\t\n\t if (self._wantPause) {\n\t self._wantPause = false;\n\t } else {\n\t console.log(\"MomentumEngine.Game.start called, game instance is already started\");\n\t return false; // Game is already running\n\t }\n\t\n\t self._wantPause = false;\n\t\n\t var requestFrame = (function () {\n\t\n\t return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n\t window.setTimeout(callback, 1000 / self.desiredFps);\n\t };\n\t })();\n\t\n\t self._lastFrameTimestamp = +new Date();\n\t self.startTime = self._lastFrameTimestamp;\n\t\n\t var loop = function loop() {\n\t\n\t self.frameCounter++;\n\t\n\t var currentTimestamp = +new Date();\n\t\n\t self.lastFrameDelta = currentTimestamp - self._lastFrameTimestamp;\n\t self._lastFrameTimestamp = currentTimestamp;\n\t\n\t self.lastFrameDelta = Math.min(self.lastFrameDelta, 1000 / self.desiredFps);\n\t\n\t if (self._wantPause) {\n\t return;\n\t }\n\t\n\t self._updateEntity.bind(self);\n\t self._updateEntity();\n\t\n\t self._renderEntity.bind(self);\n\t self._renderEntity();\n\t\n\t requestFrame(loop);\n\t };\n\t\n\t loop();\n\t return true;\n\t }\n\t }, {\n\t key: \"pause\",\n\t value: function pause() {\n\t\n\t if (!this._wantPause) {\n\t this._wantPause = true;\n\t return true;\n\t } else {\n\t console.log(\"MomentumEngine.Game.pause called, game instance is already paused\");\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Game;\n\t})(_entity2.default);\n\t\n\texports.default = Game;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(3), __esModule: true };\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(4);\n\tmodule.exports = __webpack_require__(10).Object.getPrototypeOf;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 Object.getPrototypeOf(O)\n\tvar toObject = __webpack_require__(5);\n\t\n\t__webpack_require__(7)('getPrototypeOf', function($getPrototypeOf){\n\t return function getPrototypeOf(it){\n\t return $getPrototypeOf(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(6);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(8)\n\t , core = __webpack_require__(10)\n\t , fails = __webpack_require__(13);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(9)\n\t , core = __webpack_require__(10)\n\t , ctx = __webpack_require__(11)\n\t , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && key in target;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(param){\n\t return this instanceof C ? new C(param) : C(param);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\tmodule.exports = $export;\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '1.2.6'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(12);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\texports.default = function (instance, Constructor) {\n\t if (!(instance instanceof Constructor)) {\n\t throw new TypeError(\"Cannot call a class as a function\");\n\t }\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(16);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = (function () {\n\t function defineProperties(target, props) {\n\t for (var i = 0; i < props.length; i++) {\n\t var descriptor = props[i];\n\t descriptor.enumerable = descriptor.enumerable || false;\n\t descriptor.configurable = true;\n\t if (\"value\" in descriptor) descriptor.writable = true;\n\t (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n\t }\n\t }\n\t\n\t return function (Constructor, protoProps, staticProps) {\n\t if (protoProps) defineProperties(Constructor.prototype, protoProps);\n\t if (staticProps) defineProperties(Constructor, staticProps);\n\t return Constructor;\n\t };\n\t})();\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(17), __esModule: true };\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $.setDesc(it, key, desc);\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports) {\n\n\tvar $Object = Object;\n\tmodule.exports = {\n\t create: $Object.create,\n\t getProto: $Object.getPrototypeOf,\n\t isEnum: {}.propertyIsEnumerable,\n\t getDesc: $Object.getOwnPropertyDescriptor,\n\t setDesc: $Object.defineProperty,\n\t setDescs: $Object.defineProperties,\n\t getKeys: $Object.keys,\n\t getNames: $Object.getOwnPropertyNames,\n\t getSymbols: $Object.getOwnPropertySymbols,\n\t each: [].forEach\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof2 = __webpack_require__(20);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (self, call) {\n\t if (!self) {\n\t throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\t }\n\t\n\t return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _symbol = __webpack_require__(21);\n\t\n\tvar _symbol2 = _interopRequireDefault(_symbol);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _typeof(obj) { return obj && typeof _Symbol !== \"undefined\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; }\n\t\n\texports.default = function (obj) {\n\t return obj && typeof _symbol2.default !== \"undefined\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(22), __esModule: true };\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(23);\n\t__webpack_require__(43);\n\tmodule.exports = __webpack_require__(10).Symbol;\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar $ = __webpack_require__(18)\n\t , global = __webpack_require__(9)\n\t , has = __webpack_require__(24)\n\t , DESCRIPTORS = __webpack_require__(25)\n\t , $export = __webpack_require__(8)\n\t , redefine = __webpack_require__(26)\n\t , $fails = __webpack_require__(13)\n\t , shared = __webpack_require__(29)\n\t , setToStringTag = __webpack_require__(30)\n\t , uid = __webpack_require__(32)\n\t , wks = __webpack_require__(31)\n\t , keyOf = __webpack_require__(33)\n\t , $names = __webpack_require__(37)\n\t , enumKeys = __webpack_require__(38)\n\t , isArray = __webpack_require__(39)\n\t , anObject = __webpack_require__(40)\n\t , toIObject = __webpack_require__(34)\n\t , createDesc = __webpack_require__(28)\n\t , getDesc = $.getDesc\n\t , setDesc = $.setDesc\n\t , _create = $.create\n\t , getNames = $names.get\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , setter = false\n\t , HIDDEN = wks('_hidden')\n\t , isEnum = $.isEnum\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , useNative = typeof $Symbol == 'function'\n\t , ObjectProto = Object.prototype;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(setDesc({}, 'a', {\n\t get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = getDesc(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t setDesc(it, key, D);\n\t if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n\t} : setDesc;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol.prototype);\n\t sym._k = tag;\n\t DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n\t configurable: true,\n\t set: function(value){\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t }\n\t });\n\t return sym;\n\t};\n\t\n\tvar isSymbol = function(it){\n\t return typeof it == 'symbol';\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(D && has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return setDesc(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key);\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n\t ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t var D = getDesc(it = toIObject(it), key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n\t return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n\t return result;\n\t};\n\tvar $stringify = function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , $$ = arguments\n\t , replacer, $replacer;\n\t while($$.length > i)args.push($$[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t};\n\tvar buggyJSON = $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t});\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!useNative){\n\t $Symbol = function Symbol(){\n\t if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n\t return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n\t };\n\t redefine($Symbol.prototype, 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t isSymbol = function(it){\n\t return it instanceof $Symbol;\n\t };\n\t\n\t $.create = $create;\n\t $.isEnum = $propertyIsEnumerable;\n\t $.getDesc = $getOwnPropertyDescriptor;\n\t $.setDesc = $defineProperty;\n\t $.setDescs = $defineProperties;\n\t $.getNames = $names.get = $getOwnPropertyNames;\n\t $.getSymbols = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(42)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t}\n\t\n\tvar symbolStatics = {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t return keyOf(SymbolRegistry, key);\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t};\n\t// 19.4.2.2 Symbol.hasInstance\n\t// 19.4.2.3 Symbol.isConcatSpreadable\n\t// 19.4.2.4 Symbol.iterator\n\t// 19.4.2.6 Symbol.match\n\t// 19.4.2.8 Symbol.replace\n\t// 19.4.2.9 Symbol.search\n\t// 19.4.2.10 Symbol.species\n\t// 19.4.2.11 Symbol.split\n\t// 19.4.2.12 Symbol.toPrimitive\n\t// 19.4.2.13 Symbol.toStringTag\n\t// 19.4.2.14 Symbol.unscopables\n\t$.each.call((\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n\t 'species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), function(it){\n\t var sym = wks(it);\n\t symbolStatics[it] = useNative ? sym : wrap(sym);\n\t});\n\t\n\tsetter = true;\n\t\n\t$export($export.G + $export.W, {Symbol: $Symbol});\n\t\n\t$export($export.S, 'Symbol', symbolStatics);\n\t\n\t$export($export.S + $export.F * !useNative, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\t\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 24 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(13)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(27);\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18)\n\t , createDesc = __webpack_require__(28);\n\tmodule.exports = __webpack_require__(25) ? function(object, key, value){\n\t return $.setDesc(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(9)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(18).setDesc\n\t , has = __webpack_require__(24)\n\t , TAG = __webpack_require__(31)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(29)('wks')\n\t , uid = __webpack_require__(32)\n\t , Symbol = __webpack_require__(9).Symbol;\n\tmodule.exports = function(name){\n\t return store[name] || (store[name] =\n\t Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n\t};\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18)\n\t , toIObject = __webpack_require__(34);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = $.getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(35)\n\t , defined = __webpack_require__(6);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(36);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 36 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(34)\n\t , getNames = __webpack_require__(18).getNames\n\t , toString = {}.toString;\n\t\n\tvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\t\n\tvar getWindowNames = function(it){\n\t try {\n\t return getNames(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\t\n\tmodule.exports.get = function getOwnPropertyNames(it){\n\t if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n\t return getNames(toIObject(it));\n\t};\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function(it){\n\t var keys = $.getKeys(it)\n\t , getSymbols = $.getSymbols;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = $.isEnum\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n\t }\n\t return keys;\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(36);\n\tmodule.exports = Array.isArray || function(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(41);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ },\n/* 41 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 43 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _setPrototypeOf = __webpack_require__(45);\n\t\n\tvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\t\n\tvar _create = __webpack_require__(49);\n\t\n\tvar _create2 = _interopRequireDefault(_create);\n\t\n\tvar _typeof2 = __webpack_require__(20);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (subClass, superClass) {\n\t if (typeof superClass !== \"function\" && superClass !== null) {\n\t throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n\t }\n\t\n\t subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n\t constructor: {\n\t value: subClass,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n\t};\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(46), __esModule: true };\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(47);\n\tmodule.exports = __webpack_require__(10).Object.setPrototypeOf;\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.19 Object.setPrototypeOf(O, proto)\n\tvar $export = __webpack_require__(8);\n\t$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(48).set});\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Works with __proto__ only. Old v8 can't work with null proto objects.\n\t/* eslint-disable no-proto */\n\tvar getDesc = __webpack_require__(18).getDesc\n\t , isObject = __webpack_require__(41)\n\t , anObject = __webpack_require__(40);\n\tvar check = function(O, proto){\n\t anObject(O);\n\t if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n\t};\n\tmodule.exports = {\n\t set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n\t function(test, buggy, set){\n\t try {\n\t set = __webpack_require__(11)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n\t set(test, []);\n\t buggy = !(test instanceof Array);\n\t } catch(e){ buggy = true; }\n\t return function setPrototypeOf(O, proto){\n\t check(O, proto);\n\t if(buggy)O.__proto__ = proto;\n\t else set(O, proto);\n\t return O;\n\t };\n\t }({}, false) : undefined),\n\t check: check\n\t};\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(50), __esModule: true };\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(18);\n\tmodule.exports = function create(P, D){\n\t return $.create(P, D);\n\t};\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _vector2d = __webpack_require__(52);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Entity = (function () {\n\t function Entity(x, y) {\n\t (0, _classCallCheck3.default)(this, Entity);\n\t\n\t this.pos = new _vector2d2.default(x || 0, y || 0);\n\t\n\t this._ready = true;\n\t this.state = {};\n\t this.children = [];\n\t\n\t this._calculatedPos = this.pos.clone();\n\t this._lastCalculated = 0;\n\t this._game = null;\n\t this._parent = null;\n\t }\n\t\n\t (0, _createClass3.default)(Entity, [{\n\t key: \"createChildEntity\",\n\t value: function createChildEntity() {\n\t\n\t var child = new Entity();\n\t\n\t child._updateGame(this._game);\n\t child._parent = this;\n\t this.children.push(child);\n\t\n\t return child;\n\t }\n\t }, {\n\t key: \"addChildEntity\",\n\t value: function addChildEntity(child) {\n\t\n\t child._updateGame(this._game);\n\t child._parent = this;\n\t this.children.push(child);\n\t\n\t return child;\n\t }\n\t }, {\n\t key: \"detachChildEntity\",\n\t value: function detachChildEntity(child) {\n\t\n\t for (var i = 0; i < this.children.length; i++) {\n\t if (this.children[i] == child) {\n\t\n\t this.children.splice(i, 1);\n\t return true;\n\t }\n\t }\n\t\n\t return false;\n\t }\n\t }, {\n\t key: \"isReady\",\n\t value: function isReady() {\n\t return this._ready;\n\t }\n\t }, {\n\t key: \"_preprocess\",\n\t value: function _preprocess() {\n\t\n\t // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together.\n\t\n\t // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\t\n\t // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct.\n\t\n\t if (this._game && this._lastCalculated < this._game.frameCounter) {\n\t\n\t if (this._parent) {\n\t\n\t var parentPos = this._parent._preprocess();\n\t\n\t this._calculatedPos.x = this.pos.x + parentPos.x;\n\t this._calculatedPos.y = this.pos.y + parentPos.y;\n\t } else {\n\t this._calculatedPos.x = this.pos.x;\n\t this._calculatedPos.y = this.pos.y;\n\t }\n\t\n\t this._lastCalculated = this._game.frameCounter;\n\t }\n\t\n\t return this._calculatedPos;\n\t }\n\t }, {\n\t key: \"_updateGame\",\n\t value: function _updateGame(game) {\n\t\n\t this._game = game;\n\t\n\t this.children.forEach(function (child) {\n\t child._updateGame(game);\n\t });\n\t }\n\t }, {\n\t key: \"_updateEntity\",\n\t value: function _updateEntity() {\n\t\n\t var updated = this.update && this.update();\n\t\n\t if (this.isReady() && (updated || typeof updated == \"undefined\" || typeof this.update === \"undefined\")) {\n\t\n\t this.children.forEach(function (child) {\n\t child._updateEntity();\n\t });\n\t }\n\t }\n\t }, {\n\t key: \"_renderEntity\",\n\t value: function _renderEntity() {\n\t\n\t this._preprocess();\n\t\n\t var rendered = this.render && this.render();\n\t\n\t if (this.isReady() && (rendered || typeof rendered == \"undefined\" || typeof this.render === \"undefined\")) {\n\t\n\t this.children.forEach(function (child) {\n\t child._renderEntity();\n\t });\n\t }\n\t }\n\t }]);\n\t return Entity;\n\t})();\n\t\n\texports.default = Entity;\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Vector2D = (function () {\n\t function Vector2D(x, y) {\n\t (0, _classCallCheck3.default)(this, Vector2D);\n\t\n\t this.x = x || 0;this.y = y || 0;\n\t }\n\t\n\t (0, _createClass3.default)(Vector2D, [{\n\t key: \"invert\",\n\t value: function invert() {\n\t this.x = -this.x;this.y = -this.y;\n\t return this;\n\t }\n\t }, {\n\t key: \"add\",\n\t value: function add(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x += val.x;this.y += val.y;\n\t } else {\n\t this.x += val;this.y += val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"subtract\",\n\t value: function subtract(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x -= val.x;this.y -= val.y;\n\t } else {\n\t this.x -= val;this.y -= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"multiply\",\n\t value: function multiply(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x *= val.x;this.y *= val.y;\n\t } else {\n\t this.x *= val;this.y *= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"divide\",\n\t value: function divide(val) {\n\t\n\t if (val instanceof Vector2D) {\n\t this.x /= val.x;this.y /= val.y;\n\t } else {\n\t this.x /= val;this.y /= val;\n\t }\n\t\n\t return this;\n\t }\n\t }, {\n\t key: \"equals\",\n\t value: function equals(val) {\n\t return this.x == val.x && this.y == val.y;\n\t }\n\t }, {\n\t key: \"dot\",\n\t value: function dot(val) {\n\t return this.x * val.x + this.y * val.y;\n\t }\n\t }, {\n\t key: \"length\",\n\t value: function length() {\n\t return Math.sqrt(this.dot(this));\n\t }\n\t }, {\n\t key: \"unit\",\n\t value: function unit() {\n\t return this.divide(this.length());\n\t }\n\t }, {\n\t key: \"min\",\n\t value: function min() {\n\t return Math.min(this.x, this.y);\n\t }\n\t }, {\n\t key: \"max\",\n\t value: function max() {\n\t return Math.max(this.x, this.y);\n\t }\n\t }, {\n\t key: \"degrees\",\n\t value: function degrees() {\n\t return Math.atan(this.x, this.y) * 180;\n\t }\n\t }, {\n\t key: \"toArray\",\n\t value: function toArray() {\n\t return [this.x, this.y];\n\t }\n\t }, {\n\t key: \"toString\",\n\t value: function toString() {\n\t return \"[\" + this.x + \"},\" + this.y + \"}]\";\n\t }\n\t }, {\n\t key: \"clone\",\n\t value: function clone() {\n\t return new Vector2D(this.x, this.y);\n\t }\n\t }]);\n\t return Vector2D;\n\t})();\n\t\n\texports.default = Vector2D;\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.KeyConsts = undefined;\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar KeyConsts = {\n\t SPACE: 32,\n\t BACKSPACE: 8,\n\t TAB: 9,\n\t ENTER: 13,\n\t SHIFT: 16,\n\t CTRL: 17,\n\t ALT: 18,\n\t PAUSE: 19,\n\t CAPS_LOCK: 20,\n\t ESCAPE: 27,\n\t PAGE_UP: 33,\n\t PAGE_DOWN: 34,\n\t END: 35,\n\t HOME: 36,\n\t LEFT: 37,\n\t UP: 38,\n\t RIGHT: 39,\n\t DOWN: 40,\n\t INSERT: 45,\n\t DELETE: 46,\n\t NUM_0: 48,\n\t NUM_1: 49,\n\t NUM_2: 50,\n\t NUM_3: 51,\n\t NUM_4: 52,\n\t NUM_5: 53,\n\t NUM_6: 54,\n\t NUM_7: 55,\n\t NUM_8: 56,\n\t NUM_9: 57,\n\t CHAR_A: 65,\n\t CHAR_B: 66,\n\t CHAR_C: 67,\n\t CHAR_D: 68,\n\t CHAR_E: 69,\n\t CHAR_F: 70,\n\t CHAR_G: 71,\n\t CHAR_H: 72,\n\t CHAR_I: 73,\n\t CHAR_J: 74,\n\t CHAR_K: 75,\n\t CHAR_L: 76,\n\t CHAR_M: 77,\n\t CHAR_N: 78,\n\t CHAR_O: 79,\n\t CHAR_P: 80,\n\t CHAR_Q: 81,\n\t CHAR_R: 82,\n\t CHAR_S: 83,\n\t CHAR_T: 84,\n\t CHAR_U: 85,\n\t CHAR_V: 86,\n\t CHAR_W: 87,\n\t CHAR_X: 88,\n\t CHAR_Y: 89,\n\t CHAR_Z: 90,\n\t NUM_PAD_0: 96,\n\t NUM_PAD_1: 97,\n\t NUM_PAD_2: 98,\n\t NUM_PAD_3: 99,\n\t NUM_PAD_4: 100,\n\t NUM_PAD_5: 101,\n\t NUM_PAD_6: 102,\n\t NUM_PAD_7: 103,\n\t NUM_PAD_8: 104,\n\t NUM_PAD_9: 105,\n\t MULTIPLY: 106,\n\t ADD: 107,\n\t SUBTRACT: 109,\n\t DECIMAL: 110,\n\t DIVIDE: 111,\n\t F1: 112,\n\t F2: 113,\n\t F3: 114,\n\t F4: 115,\n\t F5: 116,\n\t F6: 117,\n\t F7: 118,\n\t F8: 119,\n\t F9: 120,\n\t F10: 121,\n\t F11: 122,\n\t F12: 123,\n\t SEMICOLON: 186,\n\t EQUALS: 187,\n\t COMMA: 188,\n\t DASH: 189,\n\t PERIOD: 190,\n\t FORWARD_SLASH: 191,\n\t GRAVE: 192,\n\t OPEN_BRACKET: 219,\n\t BACK_SLASH: 220,\n\t CLOSE_BRACKET: 221,\n\t SINGLE_QUOTE: 222\n\t};\n\t\n\tvar KeyboardInput = (function () {\n\t function KeyboardInput() {\n\t (0, _classCallCheck3.default)(this, KeyboardInput);\n\t\n\t var self = this;\n\t self._keyState = {};\n\t\n\t window.addEventListener(\"keydown\", function (event) {\n\t self._keyDownHandler(event);\n\t }, false);\n\t\n\t window.addEventListener(\"keyup\", function (event) {\n\t self._keyUpHandler(event);\n\t }, false);\n\t }\n\t\n\t (0, _createClass3.default)(KeyboardInput, [{\n\t key: \"isPressed\",\n\t value: function isPressed(keyCode) {\n\t return !!this._keyState[keyCode];\n\t }\n\t }, {\n\t key: \"_keyDownHandler\",\n\t value: function _keyDownHandler(event) {\n\t this._keyState[event.keyCode] = true;\n\t }\n\t }, {\n\t key: \"_keyUpHandler\",\n\t value: function _keyUpHandler(event) {\n\t this._keyState[event.keyCode] = false;\n\t }\n\t }]);\n\t return KeyboardInput;\n\t})();\n\t\n\texports.default = KeyboardInput;\n\texports.KeyConsts = KeyConsts;\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(44);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(51);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(52);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _imageloader = __webpack_require__(55);\n\t\n\tvar _imageloader2 = _interopRequireDefault(_imageloader);\n\t\n\tvar _collisionmethods = __webpack_require__(56);\n\t\n\tvar _collisionmethods2 = _interopRequireDefault(_collisionmethods);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Sprite = (function (_Entity) {\n\t (0, _inherits3.default)(Sprite, _Entity);\n\t\n\t function Sprite(x, y, width, height, image) {\n\t (0, _classCallCheck3.default)(this, Sprite);\n\t\n\t if (!image instanceof _imageloader2.default) {\n\t throw new Error(\"MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance\");\n\t }\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Sprite).call(this, x, y));\n\t\n\t _this.size = new _vector2d2.default(width || 0, height || 0);\n\t\n\t _this._image = image;\n\t _this._imagePos = new _vector2d2.default(0, 0);\n\t _this._imageSize = new _vector2d2.default(0, 0);\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Sprite, [{\n\t key: \"setImageCoords\",\n\t value: function setImageCoords(x, y, width, height) {\n\t\n\t this._imagePos.x = x;\n\t this._imagePos.y = y;\n\t this._imageSize.x = width || 0;\n\t this._imageSize.y = height || 0;\n\t }\n\t }, {\n\t key: \"isReady\",\n\t value: function isReady() {\n\t // Overrides super isReady\n\t return this._image.isLoaded() && !this._image.isError();\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t\n\t if (this.isReady()) {\n\t\n\t var imageObj = this._image.getImageObj();\n\t\n\t var subWidth = imageObj.width - this._imagePos.x,\n\t subHeight = imageObj.height - this._imagePos.y;\n\t\n\t this._game.context.drawImage(imageObj, this._imagePos.x, this._imagePos.y, this._imageSize.x || subWidth, this._imageSize.y || subHeight, this._calculatedPos.x, this._calculatedPos.y, this.size.x || subWidth, this.size.y || subHeight);\n\t\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Sprite;\n\t})(_entity2.default);\n\t\n\texports.default = Sprite;\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar ImageLoader = (function () {\n\t function ImageLoader(src) {\n\t var _this = this;\n\t\n\t (0, _classCallCheck3.default)(this, ImageLoader);\n\t\n\t this._loaded = false; // Default is true, set it to false until the image has loaded\n\t this._error = false; // If the image fails to load, this will contain the reason\n\t\n\t this._imageObj = new Image();\n\t\n\t this._imageObj.addEventListener(\"load\", function () {\n\t _this._loaded = true;\n\t _this._error = false;\n\t });\n\t\n\t this._imageObj.addEventListener(\"_error\", function (err) {\n\t _this._loaded = false;\n\t _this._error = err;\n\t });\n\t\n\t this._imageObj.src = src;\n\t }\n\t\n\t (0, _createClass3.default)(ImageLoader, [{\n\t key: \"getImageObj\",\n\t value: function getImageObj() {\n\t\n\t if (this._loaded) {\n\t return this._imageObj;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }, {\n\t key: \"isLoaded\",\n\t value: function isLoaded() {\n\t return this._loaded;\n\t }\n\t }, {\n\t key: \"isError\",\n\t value: function isError() {\n\t return this._error;\n\t }\n\t }]);\n\t return ImageLoader;\n\t})();\n\t\n\texports.default = ImageLoader;\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _rect = __webpack_require__(57);\n\t\n\tvar _rect2 = _interopRequireDefault(_rect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar CollisionMethods = (function () {\n\t function CollisionMethods() {\n\t (0, _classCallCheck3.default)(this, CollisionMethods);\n\t }\n\t\n\t (0, _createClass3.default)(CollisionMethods, null, [{\n\t key: \"AABB\",\n\t value: function AABB(entity1, entity2) {\n\t\n\t if (!entity1 instanceof _rect2.default || !entity2 instanceof _rect2.default) {\n\t throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n\t }\n\t\n\t return entity1.pos.x < entity2.pos.x + entity2.size.x && entity1.pos.x + entity1.size.x > entity2.pos.x && entity1.pos.y < entity2.pos.y + entity2.size.y && entity1.size.y + entity1.pos.y > entity2.pos.y;\n\t }\n\t }]);\n\t return CollisionMethods;\n\t})();\n\t\n\texports.default = CollisionMethods;\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _getPrototypeOf = __webpack_require__(2);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(19);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(44);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _entity = __webpack_require__(51);\n\t\n\tvar _entity2 = _interopRequireDefault(_entity);\n\t\n\tvar _vector2d = __webpack_require__(52);\n\t\n\tvar _vector2d2 = _interopRequireDefault(_vector2d);\n\t\n\tvar _collisionmethods = __webpack_require__(56);\n\t\n\tvar _collisionmethods2 = _interopRequireDefault(_collisionmethods);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Rect = (function (_Entity) {\n\t (0, _inherits3.default)(Rect, _Entity);\n\t\n\t function Rect(x, y, width, height, color) {\n\t (0, _classCallCheck3.default)(this, Rect);\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Rect).call(this, x, y));\n\t\n\t _this.size = new _vector2d2.default(width, height);\n\t _this.color = color;\n\t\n\t return _this;\n\t }\n\t\n\t (0, _createClass3.default)(Rect, [{\n\t key: \"isCollidingWith\",\n\t value: function isCollidingWith(entity) {\n\t\n\t if (entity instanceof Rect) {\n\t return _collisionmethods2.default.AABB(this, entity);\n\t }\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t\n\t if (this._game) {\n\t\n\t this._game.context.fillStyle = this.color;\n\t this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\t\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t }\n\t }]);\n\t return Rect;\n\t})(_entity2.default);\n\t\n\texports.default = Rect;\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(14);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(15);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Color = (function () {\n\t function Color(r, g, b, a) {\n\t (0, _classCallCheck3.default)(this, Color);\n\t\n\t this.r = r || 0;\n\t this.g = g || 0;\n\t this.b = b || 0;\n\t this.a = a || 1;\n\t }\n\t\n\t (0, _createClass3.default)(Color, [{\n\t key: \"toString\",\n\t value: function toString() {\n\t return \"rgba(\" + this.r + \", \" + this.g + \", \" + this.b + \", \" + this.a + \")\";\n\t }\n\t }, {\n\t key: \"toHex\",\n\t value: function toHex() {\n\t return \"#\" + (r << 16 | g << 8 | b).toString(16);\n\t }\n\t }]);\n\t return Color;\n\t})();\n\t\n\texports.default = Color;\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** es5.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 60d40a5bde66da52ae5c\n **/","\"use strict\";\n\nimport Game from \"./classes/game.js\";\nimport Entity from \"./classes/entity.js\";\nimport Vector2D from \"./classes/vector2d.js\";\nimport Sprite from \"./classes/sprite.js\";\nimport Rect from \"./classes/rect.js\";\nimport Color from \"./classes/color.js\";\nimport ImageLoader from \"./classes/imageloader.js\";\n\nimport {KeyConsts} from \"./classes/keyboardinput.js\";\n\n\nconst Classes = {\n Game: Game,\n Entity: Entity,\n Sprite: Sprite,\n Rect: Rect,\n Vector2D: Vector2D,\n Color: Color,\n ImageLoader: ImageLoader\n};\n\n\nconst Consts = {\n Input: {\n Keys: KeyConsts\n }\n};\n\n\nwindow.MomentumEngine = {\n Classes: Classes,\n Consts: Consts\n};\n\n\n/** WEBPACK FOOTER **\n ** ./src/es5.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport KeyboardInput from \"./keyboardinput.js\";\n\nclass Game extends Entity {\n\n\n constructor (config) {\n\n super(); // Call entity constructor\n config = config || {};\n config.inputs = config.inputs || {};\n\n\n // Required params\n if (config.canvas) {\n this.canvas = config.canvas;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with a canvas\");\n }\n\n if (config.width) {\n this.width = config.width;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas width\");\n }\n\n if (config.height) {\n this.height = config.height;\n } else {\n throw new Error(\"MomentumEngine.Classes.Game must be constructed with canvas height\");\n }\n\n\n // Optional params\n this.desiredFps = config.desiredFps || 60;\n\n if (config.fixRatio) {\n\n let deviceRatio = window.devicePixelRatio,\n backingStoreRatio = 0;\n\n // Unfortunately Ejecta requires calling getContext last, so we cannot get the backingStorePixelRatio. So for Ejecta's case, we set it to 1, and call getContext later.\n if (typeof ejecta !== \"undefined\") {\n backingStoreRatio = 1;\n } else {\n\n this.context = this.canvas.getContext(\"2d\");\n\n backingStoreRatio = this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio || 1;\n\n }\n\n this.scale = deviceRatio / backingStoreRatio;\n\n this.canvas.width = this.width * this.scale;\n this.canvas.height = this.height * this.scale;\n\n this.canvas.style.width = this.width + \"px\";\n this.canvas.style.height = this.height + \"px\";\n\n // Call getContext last for Ejecta only.\n if (typeof ejecta !== \"undefined\") {\n this.context = this.canvas.getContext(\"2d\");\n }\n\n this.context.scale(deviceRatio, deviceRatio);\n\n } else {\n\n this.canvas.width = this.width;\n this.canvas.height = this.height;\n\n this.context = this.canvas.getContext(\"2d\");\n\n }\n\n if (typeof this.context.imageSmoothingEnabled !== \"undefined\") {\n this.context.imageSmoothingEnabled = config.imageSmoothing || false;\n }\n\n\n // Initialize defaults\n this.lastFrameDelta = 0;\n this.frameCounter = 0;\n\n this.inputs = {};\n if (config.inputs.keyboard) {\n this.inputs.keyboard = new KeyboardInput(this);\n }\n\n this._game = this;\n this._lastFrameTimestamp = 0;\n this._wantPause = true;\n\n }\n\n\n start () {\n\n var self = this; // NK: Hate doing this...better way plz?\n\n if (self._wantPause) {\n self._wantPause = false;\n } else {\n console.log(\"MomentumEngine.Game.start called, game instance is already started\");\n return false; // Game is already running\n }\n\n self._wantPause = false;\n\n var requestFrame = (() => {\n\n return (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n function (callback) {\n window.setTimeout(callback, 1000 / self.desiredFps);\n });\n\n })();\n\n self._lastFrameTimestamp = +(new Date());\n self.startTime = self._lastFrameTimestamp;\n\n var loop = function () {\n\n self.frameCounter++;\n\n let currentTimestamp = +(new Date());\n\n self.lastFrameDelta = currentTimestamp - self._lastFrameTimestamp;\n self._lastFrameTimestamp = currentTimestamp;\n\n self.lastFrameDelta = Math.min(self.lastFrameDelta, 1000 / self.desiredFps);\n\n if (self._wantPause) {\n return;\n }\n\n self._updateEntity.bind(self);\n self._updateEntity();\n\n self._renderEntity.bind(self);\n self._renderEntity();\n\n requestFrame(loop);\n\n };\n\n loop();\n return true;\n\n }\n\n\n pause () {\n\n if (!this._wantPause) {\n this._wantPause = true;\n return true;\n } else {\n console.log(\"MomentumEngine.Game.pause called, game instance is already paused\");\n return false;\n }\n }\n\n\n}\n\n\nexport default Game;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/game.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 2\n ** module chunks = 0\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 4\n ** module chunks = 0\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.to-object.js\n ** module id = 5\n ** module chunks = 0\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.defined.js\n ** module id = 6\n ** module chunks = 0\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.object-sap.js\n ** module id = 7\n ** module chunks = 0\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.export.js\n ** module id = 8\n ** module chunks = 0\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.global.js\n ** module id = 9\n ** module chunks = 0\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.core.js\n ** module id = 10\n ** module chunks = 0\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.ctx.js\n ** module id = 11\n ** module chunks = 0\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.a-function.js\n ** module id = 12\n ** module chunks = 0\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.fails.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = (function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n})();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 15\n ** module chunks = 0\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 16\n ** module chunks = 0\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/object/define-property.js\n ** module id = 17\n ** module chunks = 0\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.js\n ** module id = 18\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 19\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { return obj && typeof _Symbol !== \"undefined\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; }\n\nexports.default = function (obj) {\n return obj && typeof _symbol2.default !== \"undefined\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 20\n ** module chunks = 0\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 21\n ** module chunks = 0\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/symbol/index.js\n ** module id = 22\n ** module chunks = 0\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/es6.symbol.js\n ** module id = 23\n ** module chunks = 0\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.has.js\n ** module id = 24\n ** module chunks = 0\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.descriptors.js\n ** module id = 25\n ** module chunks = 0\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.redefine.js\n ** module id = 26\n ** module chunks = 0\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.hide.js\n ** module id = 27\n ** module chunks = 0\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.property-desc.js\n ** module id = 28\n ** module chunks = 0\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.shared.js\n ** module id = 29\n ** module chunks = 0\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 30\n ** module chunks = 0\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.wks.js\n ** module id = 31\n ** module chunks = 0\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.uid.js\n ** module id = 32\n ** module chunks = 0\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.keyof.js\n ** module id = 33\n ** module chunks = 0\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.to-iobject.js\n ** module id = 34\n ** module chunks = 0\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.iobject.js\n ** module id = 35\n ** module chunks = 0\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.cof.js\n ** module id = 36\n ** module chunks = 0\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.get-names.js\n ** module id = 37\n ** module chunks = 0\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.enum-keys.js\n ** module id = 38\n ** module chunks = 0\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.is-array.js\n ** module id = 39\n ** module chunks = 0\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.an-object.js\n ** module id = 40\n ** module chunks = 0\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.is-object.js\n ** module id = 41\n ** module chunks = 0\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.library.js\n ** module id = 42\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 44\n ** module chunks = 0\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 45\n ** module chunks = 0\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 46\n ** module chunks = 0\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 47\n ** module chunks = 0\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/modules/$.set-proto.js\n ** module id = 48\n ** module chunks = 0\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 49\n ** module chunks = 0\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/~/core-js/library/fn/object/create.js\n ** module id = 50\n ** module chunks = 0\n **/","\"use strict\";\n\nimport Vector2D from \"./vector2d.js\";\n\nclass Entity {\n\n\n constructor (x, y) {\n\n this.pos = new Vector2D(x || 0, y || 0);\n\n this._ready = true;\n this.state = {};\n this.children = [];\n\n this._calculatedPos = this.pos.clone();\n this._lastCalculated = 0;\n this._game = null;\n this._parent = null;\n\n }\n\n\n createChildEntity () {\n\n let child = new Entity();\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n addChildEntity (child) {\n\n child._updateGame(this._game);\n child._parent = this;\n this.children.push(child);\n\n return child;\n\n }\n\n\n detachChildEntity (child) {\n\n for (var i = 0; i < this.children.length; i++) {\n if (this.children[i] == child) {\n\n this.children.splice(i, 1);\n return true;\n\n }\n }\n\n return false;\n\n }\n\n\n isReady () {\n return this._ready;\n }\n\n\n _preprocess () {\n\n // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together.\n\n // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating.\n\n // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct.\n\n if (this._game && this._lastCalculated < this._game.frameCounter) {\n\n if (this._parent) {\n\n let parentPos = this._parent._preprocess();\n\n this._calculatedPos.x = this.pos.x + parentPos.x;\n this._calculatedPos.y = this.pos.y + parentPos.y;\n\n } else {\n this._calculatedPos.x = this.pos.x;\n this._calculatedPos.y = this.pos.y;\n }\n\n this._lastCalculated = this._game.frameCounter;\n\n }\n\n return this._calculatedPos;\n\n }\n\n\n _updateGame (game) {\n\n this._game = game;\n\n this.children.forEach((child) => {\n child._updateGame(game);\n });\n\n }\n\n\n _updateEntity () {\n\n var updated = this.update && this.update();\n\n if (this.isReady() && (updated || (typeof updated == \"undefined\") || (typeof this.update === \"undefined\"))) {\n\n this.children.forEach((child) => {\n child._updateEntity();\n });\n\n }\n\n }\n\n\n _renderEntity () {\n\n this._preprocess();\n\n var rendered = this.render && this.render();\n\n if (this.isReady() && (rendered || (typeof rendered == \"undefined\") || (typeof this.render === \"undefined\"))) {\n\n this.children.forEach((child) => {\n child._renderEntity();\n });\n\n }\n\n }\n\n\n}\n\n\nexport default Entity;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/entity.js\n **/","\"use strict\";\n\nclass Vector2D {\n\n\n constructor (x, y) {\n this.x = x || 0; this.y = y || 0;\n }\n\n\n invert () {\n this.x = -this.x; this.y = -this.y;\n return this;\n }\n\n\n add (val) {\n\n if (val instanceof Vector2D) {\n this.x += val.x; this.y += val.y;\n } else {\n this.x += val; this.y += val;\n }\n\n return this;\n\n }\n\n\n subtract (val) {\n\n if (val instanceof Vector2D) {\n this.x -= val.x; this.y -= val.y;\n } else {\n this.x -= val; this.y -= val;\n }\n\n return this;\n\n }\n\n\n multiply (val) {\n\n if (val instanceof Vector2D) {\n this.x *= val.x; this.y *= val.y;\n } else {\n this.x *= val; this.y *= val;\n }\n\n return this;\n\n }\n\n\n divide (val) {\n\n if (val instanceof Vector2D) {\n this.x /= val.x; this.y /= val.y;\n } else {\n this.x /= val; this.y /= val;\n }\n\n return this;\n\n }\n\n\n equals (val) {\n return (this.x == val.x && this.y == val.y);\n }\n\n\n dot (val) {\n return (this.x * val.x + this.y * val.y);\n }\n\n\n length () {\n return Math.sqrt(this.dot(this));\n }\n\n\n unit () {\n return this.divide(this.length());\n }\n\n\n min () {\n return Math.min(this.x, this.y);\n }\n\n\n max () {\n return Math.max(this.x, this.y);\n }\n\n\n degrees () {\n return (Math.atan(this.x, this.y) * 180);\n }\n\n\n toArray () {\n return [this.x, this.y];\n }\n\n\n toString () {\n return `[${this.x}},${this.y}}]`;\n }\n\n\n clone () {\n return new Vector2D(this.x, this.y);\n }\n\n\n}\n\n\nexport default Vector2D;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/vector2d.js\n **/","\"use strict\";\n\n\nconst KeyConsts = {\n SPACE: 32,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n PAUSE: 19,\n CAPS_LOCK: 20,\n ESCAPE: 27,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n INSERT: 45,\n DELETE: 46,\n NUM_0: 48,\n NUM_1: 49,\n NUM_2: 50,\n NUM_3: 51,\n NUM_4: 52,\n NUM_5: 53,\n NUM_6: 54,\n NUM_7: 55,\n NUM_8: 56,\n NUM_9: 57,\n CHAR_A: 65,\n CHAR_B: 66,\n CHAR_C: 67,\n CHAR_D: 68,\n CHAR_E: 69,\n CHAR_F: 70,\n CHAR_G: 71,\n CHAR_H: 72,\n CHAR_I: 73,\n CHAR_J: 74,\n CHAR_K: 75,\n CHAR_L: 76,\n CHAR_M: 77,\n CHAR_N: 78,\n CHAR_O: 79,\n CHAR_P: 80,\n CHAR_Q: 81,\n CHAR_R: 82,\n CHAR_S: 83,\n CHAR_T: 84,\n CHAR_U: 85,\n CHAR_V: 86,\n CHAR_W: 87,\n CHAR_X: 88,\n CHAR_Y: 89,\n CHAR_Z: 90,\n NUM_PAD_0: 96,\n NUM_PAD_1: 97,\n NUM_PAD_2: 98,\n NUM_PAD_3: 99,\n NUM_PAD_4: 100,\n NUM_PAD_5: 101,\n NUM_PAD_6: 102,\n NUM_PAD_7: 103,\n NUM_PAD_8: 104,\n NUM_PAD_9: 105,\n MULTIPLY: 106,\n ADD: 107,\n SUBTRACT: 109,\n DECIMAL: 110,\n DIVIDE: 111,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n SEMICOLON: 186,\n EQUALS: 187,\n COMMA: 188,\n DASH: 189,\n PERIOD: 190,\n FORWARD_SLASH: 191,\n GRAVE: 192,\n OPEN_BRACKET: 219,\n BACK_SLASH: 220,\n CLOSE_BRACKET: 221,\n SINGLE_QUOTE: 222\n};\n\n\nclass KeyboardInput {\n\n\n constructor () {\n\n var self = this;\n self._keyState = {};\n\n window.addEventListener(\"keydown\", (event) => {\n self._keyDownHandler(event);\n }, false);\n\n window.addEventListener(\"keyup\", (event) => {\n self._keyUpHandler(event);\n }, false);\n\n }\n\n\n isPressed (keyCode) {\n return !!this._keyState[keyCode];\n }\n\n\n _keyDownHandler (event) {\n this._keyState[event.keyCode] = true;\n }\n\n\n _keyUpHandler (event) {\n this._keyState[event.keyCode] = false;\n }\n\n\n}\n\n\nexport default KeyboardInput;\nexport {KeyConsts};\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/keyboardinput.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\nimport ImageLoader from \"./imageloader.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Sprite extends Entity {\n\n\n constructor (x, y, width, height, image) {\n\n if (!image instanceof ImageLoader) {\n throw new Error(\"MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance\");\n }\n\n super(x, y);\n\n this.size = new Vector2D(width || 0, height || 0);\n\n this._image = image;\n this._imagePos = new Vector2D(0, 0);\n this._imageSize = new Vector2D(0, 0);\n\n }\n\n\n setImageCoords (x, y, width, height) {\n\n this._imagePos.x = x;\n this._imagePos.y = y;\n this._imageSize.x = width || 0;\n this._imageSize.y = height || 0;\n\n }\n\n\n isReady () { // Overrides super isReady\n return (this._image.isLoaded() && !this._image.isError());\n }\n\n\n render () {\n\n if (this.isReady()) {\n\n var imageObj = this._image.getImageObj();\n\n var subWidth = imageObj.width - this._imagePos.x,\n subHeight = imageObj.height - this._imagePos.y;\n\n this._game.context.drawImage(\n imageObj,\n this._imagePos.x,\n this._imagePos.y,\n this._imageSize.x || subWidth,\n this._imageSize.y || subHeight,\n this._calculatedPos.x,\n this._calculatedPos.y,\n this.size.x || subWidth,\n this.size.y || subHeight\n );\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Sprite;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/sprite.js\n **/","\"use strict\";\n\nclass ImageLoader {\n\n\n constructor (src) {\n\n this._loaded = false; // Default is true, set it to false until the image has loaded\n this._error = false; // If the image fails to load, this will contain the reason\n\n this._imageObj = new Image();\n\n this._imageObj.addEventListener(\"load\", () => {\n this._loaded = true;\n this._error = false;\n });\n\n this._imageObj.addEventListener(\"_error\", (err) => {\n this._loaded = false;\n this._error = err;\n });\n\n this._imageObj.src = src;\n\n }\n\n\n getImageObj () {\n\n if (this._loaded) {\n return this._imageObj;\n } else {\n return false;\n }\n\n }\n\n\n isLoaded () {\n return this._loaded;\n }\n\n\n isError () {\n return this._error;\n }\n\n\n}\n\n\nexport default ImageLoader;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/imageloader.js\n **/","import Rect from \"../classes/rect.js\";\n\nclass CollisionMethods {\n\n\n static AABB (entity1, entity2) {\n\n if (!entity1 instanceof Rect || !entity2 instanceof Rect) {\n throw new Error(\"AABB collisions can only be checked on these entity types: Rect\");\n }\n\n return (entity1.pos.x < entity2.pos.x + entity2.size.x &&\n entity1.pos.x + entity1.size.x > entity2.pos.x &&\n entity1.pos.y < entity2.pos.y + entity2.size.y &&\n entity1.size.y + entity1.pos.y > entity2.pos.y);\n\n }\n\n\n}\n\n\nexport default CollisionMethods;\n\n\n/** WEBPACK FOOTER **\n ** ./src/libs/collisionmethods.js\n **/","\"use strict\";\n\nimport Entity from \"./entity.js\";\nimport Vector2D from \"./vector2d.js\";\n\nimport CollisionMethods from \"../libs/collisionmethods.js\";\n\n\nclass Rect extends Entity {\n\n\n constructor (x, y, width, height, color) {\n\n super(x, y);\n\n this.size = new Vector2D(width, height);\n this.color = color;\n\n }\n\n\n isCollidingWith (entity) {\n\n if (entity instanceof Rect) {\n return CollisionMethods.AABB(this, entity);\n }\n\n }\n\n\n render () {\n\n if (this._game) {\n\n this._game.context.fillStyle = this.color;\n this._game.context.fillRect(this._calculatedPos.x, this._calculatedPos.y, this.size.x, this.size.y);\n\n return true;\n\n } else {\n return false;\n }\n\n }\n\n\n}\n\n\nexport default Rect;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/rect.js\n **/","\"use strict\";\n\nclass Color {\n\n\n constructor (r, g, b, a) {\n\n this.r = r || 0;\n this.g = g || 0;\n this.b = b || 0;\n this.a = a || 1;\n\n }\n\n\n toString () {\n return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;\n }\n\n\n toHex () {\n return `#${((r << 16) | (g << 8) | b).toString(16)}`;\n }\n\n\n}\n\n\nexport default Color;\n\n\n/** WEBPACK FOOTER **\n ** ./src/classes/color.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/examples/pong/index.html b/examples/pong/index.html index 2ad831c..b0456ca 100644 --- a/examples/pong/index.html +++ b/examples/pong/index.html @@ -6,6 +6,6 @@ - + \ No newline at end of file diff --git a/examples/pong/pong.js b/examples/pong/pong.js index 6b94175..5cf0750 100644 --- a/examples/pong/pong.js +++ b/examples/pong/pong.js @@ -12,7 +12,7 @@ window.onload = function () { var pong = new MomentumEngine.Classes.Game({ - canvas: document.getElementById("game"), + canvas: document.getElementById("canvas"), width: width, height: height, fixRatio: true, @@ -28,7 +28,7 @@ window.onload = function () { black = new MomentumEngine.Classes.Color(0, 0, 0); - // All of these are instances of MomentumEngine.Entity; + // All of these are instances of MomentumEngine.Classes.Entity var mainScene = new MomentumEngine.Classes.Rect(0, 0, width, height, black), ball = new MomentumEngine.Classes.Rect((width / 2) - (baseSize / 2), (height / 2) - (baseSize / 2), baseSize, baseSize, white), leftPaddle = new MomentumEngine.Classes.Rect(baseSize, baseSize, baseSize, baseSize * 7, white), @@ -81,7 +81,6 @@ window.onload = function () { if (leftPaddle.isCollidingWith(ball) && ball.state.speed.x < 0) { ball.state.speed.x = -ball.state.speed.x; - console.log(ball.state.speed.length()); } }; @@ -111,8 +110,6 @@ window.onload = function () { } }; - - pong.start(); diff --git a/examples/snowflakes/index.html b/examples/snowflakes/index.html new file mode 100644 index 0000000..e23ac9d --- /dev/null +++ b/examples/snowflakes/index.html @@ -0,0 +1,11 @@ + + + + Snowflakes - MomentumEngine + + + + + + + \ No newline at end of file diff --git a/examples/snowflakes/pong.js b/examples/snowflakes/pong.js new file mode 100644 index 0000000..c9f27b5 --- /dev/null +++ b/examples/snowflakes/pong.js @@ -0,0 +1,116 @@ +"use strict"; + +window.onload = function () { + + + var KeyConsts = MomentumEngine.Consts.Input.Keys; + + + var width = 640, + height = 360, + baseSize = width / 64; + + + var pong = new MomentumEngine.Classes.Game({ + canvas: document.getElementById("canvas"), + width: width, + height: height, + fixRatio: true, + desiredFps: 60, + inputs: { + keyboard: true + } + }); + + + // Colors + var white = new MomentumEngine.Classes.Color(255, 255, 255), + black = new MomentumEngine.Classes.Color(0, 0, 0); + + + // All of these are instances of MomentumEngine.Entity; + var mainScene = new MomentumEngine.Classes.Rect(0, 0, width, height, black), + ball = new MomentumEngine.Classes.Rect((width / 2) - (baseSize / 2), (height / 2) - (baseSize / 2), baseSize, baseSize, white), + leftPaddle = new MomentumEngine.Classes.Rect(baseSize, baseSize, baseSize, baseSize * 7, white), + rightPaddle = new MomentumEngine.Classes.Rect(width - (baseSize * 2), baseSize, baseSize, baseSize * 7, white); + + + // Create scene graph + pong.addChildEntity(mainScene); + mainScene.addChildEntity(ball); + mainScene.addChildEntity(leftPaddle); + mainScene.addChildEntity(rightPaddle); + + + // Update the ball position + ball.state.speed = new MomentumEngine.Classes.Vector2D(0.1, 0.05); // Current ball speed + + ball.update = function () { + + this.pos.add(this.state.speed.clone().multiply(pong.lastFrameDelta)); + + if ((this.pos.x + baseSize > width && this.state.speed.x > 0) || (this.pos.x < 0 && this.state.speed.x < 0)) { + this.state.speed.x = -this.state.speed.x; + } + + if ((this.pos.y + baseSize > height && this.state.speed.y > 0) || (this.pos.y < 0 && this.state.speed.y < 0)) { + this.state.speed.y = -this.state.speed.y; + } + + }; + + + // Update the left paddle according to keyboard input + leftPaddle.update = function () { + + if (pong.inputs.keyboard.isPressed(KeyConsts.CHAR_Q) || pong.inputs.keyboard.isPressed(KeyConsts.UP)) { + leftPaddle.pos.y -= (0.5 * pong.lastFrameDelta); + } + + if (pong.inputs.keyboard.isPressed(KeyConsts.CHAR_A) || pong.inputs.keyboard.isPressed(KeyConsts.DOWN)) { + leftPaddle.pos.y += (0.5 * pong.lastFrameDelta); + } + + if (leftPaddle.pos.y > height - (baseSize * 8)) { + leftPaddle.pos.y = height - (baseSize * 8); + } + + if (leftPaddle.pos.y < baseSize) { + leftPaddle.pos.y = baseSize; + } + + if (leftPaddle.isCollidingWith(ball) && ball.state.speed.x < 0) { + ball.state.speed.x = -ball.state.speed.x; + } + + }; + + + // Update the right paddle according to keyboard input + rightPaddle.update = function () { + + if (pong.inputs.keyboard.isPressed(KeyConsts.CHAR_O)) { + rightPaddle.pos.y -= (0.5 * pong.lastFrameDelta); + } + + if (pong.inputs.keyboard.isPressed(KeyConsts.CHAR_L)) { + rightPaddle.pos.y += (0.5 * pong.lastFrameDelta); + } + + if (rightPaddle.pos.y > height - (baseSize * 8)) { + rightPaddle.pos.y = height - (baseSize * 8); + } + + if (rightPaddle.pos.y < baseSize) { + rightPaddle.pos.y = baseSize; + } + + if (rightPaddle.isCollidingWith(ball) && ball.state.speed.x > 0) { + ball.state.speed.x = -ball.state.speed.x; + } + + }; + pong.start(); + + +}; \ No newline at end of file diff --git a/examples/snowflakes/snowflake.png b/examples/snowflakes/snowflake.png new file mode 100644 index 0000000000000000000000000000000000000000..08b36ce8ea5ab756e444fec0699b6e87c9bffbe5 GIT binary patch literal 198833 zcmbTd2T+qs*gvXr6cGUdDS`-sbmV}rlzr-NH?g-3wP?<sWwZ7E|Q zZs4s3b#>DY^@W;-8k#wV!W`wCxRsT-ZU)N(3wS{NAzZ;8a8Ez^U`1}yy7Is?@wFH? z7iow;Op%++)E$G{TxwpvP%ar!aS=yxkOUVTuxfL3i6R4k8fUhI4AI?1gP6l-Me+>lXGk&u#;kkOEokWkf-kx*9^ zm($c#m6nlKzwz%H|Jz&%xf^QIl5(mN8nUVq5*m^>H00zo)m0@lWo2*N0Le-HJ6Ffk z&mZFH2>q9?8$kDXuFC&$uDqHr6yopYYv$zz|JMR;yL$P1`MG*|bE%oih)Qr-x_LTz z1^E%Thb*l+)YmN#>ZIxG<-tYLue{s;LSIJehNgt{4Ha1li5n!jrDSDP#U-VQf~%^j zX>cFUb^8CKGckY}F`{w&4`ccF6<~qH$G@fzeE91;P*1>Pd;!;})g3wj+=}(KzL^Gt zSGiz#{mqz`&dF8N)LvV}fOb;H(a{l=^I4+no%J^{GzC5q|4w{;*l_m*#Xs+L)K$!a z$Ck5V9SAoVPN!GT9vuZcX59*U$glmt%v>^QrW}5d&ruc^f+m4*ka=`6#3DAuteo=0u-1F0da>oJIVg zj~iG&AyscA32ylBd#mlsPmjO9gEN6=ARqN=on=441wV1ZBU+@l71O8&%mv%@R#Aky~mIz1DdGI_B+t;Cn!T=49@&B}wH)Fr>fFcX! zLm-QwiF=;0SXR6ACi6$D2Q^X3TkMbuf+EW{$CFQWCjs>mxlBdni3fa#IEwc`h@A#`&J#^XSyqtCqGap|8_9~HoZH$%X^+c72R9y$36`RLgKJk`|rKNZH6Iooa-u`0P}c-{ZI1oL|S!wX1?f!hi+ zOfLB|H*NloN5r>0cvyxx6((oyktzC@>u$Dh#tVC0snY8lO>A9Q>)2#B$2EBtFxAU|4gAN7095zc=mbUOaC zjq;9xE?vyxE=7OH$7f_74IYWy**jm9m^-@*h>W55D=D~q`_di79F+hb^@^+ix?dWW zS#!MW?AV6H`~H$!|HDa59$wI@z`ThYd2rSHFB_OQ=Wy?eFCDzqG)L@){I_yZc73on7evP7ABIKH1V$UKXWiCT%|&fJf2mx zw6oDT-mvcI?s*CtbZ%dVwT(jLf8^v~ZFS*ocY?X{L&a~fknF4>+5i*wxa<=QaGHyC z{k-Q$-l71}Ltm=dszlrK!fT(>97l{-s7H(8`8V|5#yzMRSA60FPa864WBNBdB2js+A7~PXFLYnGl(J0zFQk0k-K;FD z%6w$hxD`_DFH*0}`E@mBmGk~_?9;_H+T>h4M=i`hJA0J+8+>8)=F$HMB6lA%Cj|E1 z)QZ>GV)n%gp8_SR6V2`(!EG?)Xl{e5+X>6;zwYwZLvw>UR2x@6ck(n*)=J9+?+m9u zzJIJxfpwj1Xs#(Vx3z*IWIZ~J7$QE3j$EA5>Da>YT3zwf)uB%9)m*y0v9}^^6aVZ9 zDVDqTNTteaNY%r4Q_?J6-(z0VP-}R(@-BL%=8_DMZ-{Fs4frROhipqDe?3DvV6Dz( zA6=Pz?PYt^vb{bU}aqU-nW!I!Pb`H+3 z9*ig5EF}8OJr4D0CL<0c+iEltdkRSORr8ipML_?zka6N_)fX!2qZl&_>_D%bXgQZ(Pt$5Qp?(;1Du>1=(Abwf5x{G02Vy zYGGWtz;7eX1QC;+qeOl=G@ew&h^SLE_GFA`c-&*;( zWZlCQ=U6H3kBuj|yD_kJ6j<|bWWu zba&Gs`l>e{DY|4{g%hF+jRnEIRD_CP4}#r8vLoScji;a#ncv9XSX*CA{<>zT2iZ$l z!#Tmpri1#Vg_*HLb}Tk@CN72TSO09Y{)(AY5_zE1Lw0l;)q#(ruUj!X_;83#jlT{R zV(<4}+nHKsHf{D}zv$M+P-=tq@U~P4rc{Hd+6F8Iti@&J$CV)M zwX%j%j|GO!Y^&PxlL4RKN+gqP*gh{EzFoOm@H!iu2alp6h|&{;AnQskf6(at=wa5& zSOM}dqmkH*qTgal*5(}}rr6mCedl58JmhiZ7U*RAG5-`gRO=%F$K2U&NJYqygDZ{5 zU)HzFin8dKCPk$?yzs%Sf7WB%e{f!x0dWS#;?nrxhv>)dKC+ANs_4l^0xNvIaF_qy zdNXf{DaIvz{z?aCx%9hQLMP>uJ8hp697u(t)wj0dq4HD;>LjkoCOHv#mQA1TO!Np9 zqDpriyVz`?E1rCV7#r+sP`qyL@j=uHUv$q=r>xj~4s^zD3D{C!m3B2u)Ew6&oFqm7 zRO{$F%jm?q)8*f<^v+OLFtxC(_lz}UiNRN=(6}7A;lVC7;b8BJ z6T)ncYJ<@tqSTj95@SKIjxK!S&C8*?d*7NJ>Pu2P5X=D^fiH z&{lP{p`Nn$3lv1KybiF(&N?Q{9D(-ULa?pJLtdJ{7%5Uv(9;w0E4f4{3e>^P4xx6G z?cx_pMUOH;RP4E=0`H#2A68J0QfI;k2Uzye)X>q$>Fh5A# zG$UmSNeDP%+46PJnSM|EJ3W(8Za1CwuECLY>YuAiBEV|=nFdaeg&9G|7SDS`pRbPsEdgyiO zA^l=vR?K7fw*>2jnP-&5T-e2exkN?KzLXwt#XUQ2w%|#b{M7U>QDZN}d}g%B%bM}7 zbF$=MY~NU#7mBqgV;uaNzf1cg+nfp?xWqt{8Wm|#H`0uswW#h7Bo*FW%$VJ=E&H^i zHY+TsSWmj*>YnvRpQ!Qb@DKEkO^zcKBEZTjkVia@WVJ85VS^#BiXKS_vio4(i}stu zbouqWr_Y->cR|*Tg)Lr~8dqQq_>LojI9>KCJ;%bY1fEZ$4@CP1_Du#lW|)O1RuIewJ%2{Pdh7V%Ukj>t#BNFkUK^pc*rZ7$6CC^#S__)HDUGRkZzM?gN=2A_ z^DQuH$=oJqb(_(Hl0-_nSK`RWCf(K1HV?kX2Uq&J?jp9zfR=Y6nf~p1Fzsw$Y%5AE z>Qsdbc6R%avTK2%+tckhic3X%ly|weX?I&-4j4eIYB%RO8Tbt~COvZ0$z{w%pLfrE zIxPy3TJd}P{aQz0Az9BuFLkn&Q-voC8$(bJ9~a5}8#(f$k+rtx0+sk?$oue8D?*R& za=?5%St7?j>$<~znBK&m=?lbdVr9fc-^g0^IHq>?j|t^9vJDqbm+>Z$3}l{tab))f z6SiVA4#HTAhY#lr#73YZAn8hgp3ZK1GZ zomby4Z@H20*7AGqiOs8?i+mL2_-tSy0f#2tExtqJdD2dM8$$;*+;pg((c(-Rf(0@?)PGby`j zm#$+*Uz`}ORH!T%^};;{HP70-sOwz1-sCNh-Szit%KKBDOtqC`SR(hDL&Z%~n~+ndL6 zed~T$a^9tKwz)|4;XkSl*k<~vB!?E3l*?}ZQNADAN$ngZ49f$;#i^o zTNo(?R+?dgRiMWUbDCmc3v4aq_2}3TM(HLPr74+AVrzCU+b7TP2am1BXsw{_dS(aF zDSinzM;-RZmOs)H0Bgyzkf4f>UcXq2``c3|V@}7vU!3HN`t-$%eHfh-H)A z?@eC76vX-aiY}UZ42*?Ls@IRStz4XPWIIPLgq2moOC*vd0$*JA=;;VFt+IXo<&Tvj zCl8%HF+fC~IQsQ;qx#PtZ7Q?{})q3CbcF_MJ};HfALTedN6Q)4AELzq^!JRGfYm2Hd6GA|7B+TVq%3sl-OiizDRflh)&in?HsP1R z86qQF*nHWO@A`TxB}UaMRK#{Omb+=liDNv|Rlgvj88neno)yJ57JD~6=%Nd$k=j3> ztcEfAkfsU}dtib|nnKSBB=0A6H2RVHl8@bwR`OiAAz=r&Zf3wjrm9|54MOjdoY7X@ zuQ>FNsPcSX%1RY~>7_bzK~m=aX8B7~!z^$k%|V$^)Pqyov=ck>uM1wu^(H4AZx}?l z0Hu_`#Wa!g-9;(Bxd?iHyTmK)I0kYh zF#hUg0&V}rj;owvc7L)=FrJ3@)+u1QvXuhTKR%rYlI2H(-!hgJius85@USr}t%A2( zlST_;>y6+0$=}A7jRf5Bdu6MOk91fY`=a>P03l^eqALW4+%Gxc=-l)ZwK`JhIs95$ zy2F}J7uji|MlKCKi^|SKNvKaT-lRquLl5=x4Z&~KFgeko> z#e(EX)?B1K_+qOo8jGI zA(d=WjV{ZCK|k7=qig)NP;9fKU?+yq#ryhnPS)hB1r1G*T1{!_#MnJiUHtx&q=yFTl@WTb0{by_DMHn$n?J&fdFTY*9vS`cg-ZTZteZ&%Vn23DX{p)f807s;agD z^V{PUshbAqJMvDICiQ>T_^t#Lqn|GEzg_ytPVNAzU!iJ5IC5Ol%P06Cd&SrEYZ1rI z^dB#e47hytku3xs>r_9}~zyMhd+7_c65n$?Or2ru&|D zv!7v>l%U>R-C5k8I+#Q79MK;t3RsGu3XI5=v~sk_#UfKUIGIuik^UN*@sg?hQS5ed zilOD@DdwqTaemn)zz{Sh9Y&n%QeV8spU`;)(hKZ$1h|e5V*3G@V#;~HzSvMZmQ<+y zG1y<+y4`PkcPNRY3fTe1SRgGsC#iNyJ0q9Ms0gsN4EPIes6z7^N<{P6z&`WXgO}Yk z!}8=g6D_ zkorC;bJKzu1AmS$As&=KnH{Oj(d3rAM~tKTK2OO1A^Jc5o&kF+-8Oc!oX!pgmVGZmO^TOC+vye zp#lqfL7k41fX5T4smlco^Cbol`e5O=)X_48CE}Nx*j7KId#EP0!r0zUoHJ2udxc3L)gBbjMH=;jiISDl#x6T;QcXZpc@Bi&Wfuvp}RMBSds@ z2@vP4kV&Pv92Q;N{^Y!jqfeUu*V}hZmD5nMMW45A)W{iWhDuZ{a)5nc?i##ER{EMu zoXB1-LYNQ$bax5on%*#ivhIj#ev&&BoV?aL&vzDscbXPV$C`8YQ@yV=XRr7nqecmm{PJkBNv}eb802TC?s~ z)hdV2?E{(TqYcjAoF%nQ_ll{(R#u;#UxEwG9e5?it_z35-ow+iapB&(X=k0s`3?+{ zPriPII(_UN_gEMGG!7kE|SuSnx*019=&Nhdi+=>_*a*z0&s2M#WB{7dXzp9Y9@G1}E$yuffSE z)VF~@toe)}1$%1u>py)td=phMJ&d5$7dG`4m`I@-nm}bY@zt1T(Z^O;A_500QdQ*o z;EiAB^B7PAlm#l~B2ob@1kwPj1&uKzy0 z3&H!a##9iT4j5$E>F0qXpxXI3vI~m}!#52~eP=Dj*U+u-vv_%Z+~LC573Nnfh}$ta zvp+DSV!Y(CqNv%4227nwzaJKBMFCwh!iBR6+EOnWX)Z;*Sx|vGuxs>+l+p;t z#3nC*5QGck?}Jf8dwW!5^AXh<+H3usqzhW23oP!@2m^qC&sQ5kBPVmVO{2BR5T0eT zWyf$QlNLY98ZQs{#d8Id(M7@sb;3z?(a$|yZEZb0d@VgjF@DrJ8CJaf z;Tzech0lS9B2Mpo-DbRN)iDwa;NYfOPY#XAER@8IGQlYgR$Ze+#~z_}9%j&_1@MG3 zU|7isqxv%Rqs6k~B31!=>eIXmE?mDP`;N#weOp%#sYLY+uB$=O-3>bjehK(tBWkCF zRxMzN`H&lQWs_LUSsUSMX`)y=0MW*dK!01c;OEJ& zt(x_I!2Alzvw-7+0`FABGkgt+15rr)f~tO2{A*r#7E9@OQZry}ix-8$r+Jim=rJ%I zF-lU!dZBzJ;=26Ubns)8jov8EkJwLq3`iCE%EK*hi>s&mt=a<9-yq&P_}0`Bka zAqrQrEe@u!BewnD23iA=CK%V^wolmEY4lANQs4A#tpj)q8dRcX!bH_Fi_TQvY$evB z)sM<;6vgFDaL2uTk1_L ztdR9X-4+x zAe3N(D>0vLb0d{?L6#Wd*YQ8E11f`wfWG;V3et&G5gQ}?7Qius-Z5U1US^|%S3Q69 z57Y=!XEFN)@El_A0-OQKcy_gLFb#&a3D6N=y)lK>jnvFX#tx(7Mt_mui%2~@gY|hb zPH`50?-;O9hEhN2GY=<&Am3b4X&mb`Cr^`mwf*uk8yHp@_&}7!NC-eJ$dcYGKY85E zSwI1#;X|>TXc0p3V#RYvjm4nUC==`yZn-u8wd`K?G2X zjAwT2hd{<&KIt|ZYV@+?q!bZ$NR_ZgGF>Zn#3VnYnAfd> z5mTc9*TAMNQX%#=m;#E^8oQ|pr^pE4$15GoYPr$Ki%JSQFrZYoZd&^VzYgg<+7|4c zwcvxdc&U)_v56E9N9?TRL*JH#cZh5hQ$eAW9Bsxd9K?j2S8{0}ZAq6k`SdCMg#@OLGsDldZW zM|=K-B8hFEbtl30dj=YQnhus*C5HTPPg|8^!0vJ(e0b)S=p~bBp@M9tfTGL*d5Fn6 zGshD<@Z>$Nh8`U$X-3eqrbL~0$HwQKQWm243|aY7b<7EyPbV{RUe0f}E@$Ust&cav?sFhmYOQ zIm^5j+GH$f9BC?n3mxp!k-^Gu7om)5JwF~BU2^3GXPq}MKiw7D8!EN6Q~T*v6vrTK z%R+%Xm$@*L^*OTa-Ve$J>o#Zdn00vAp3Ta^?vNi@VzM#Yb%}T9 ztRfH^uaUj z&csxt`SY4M9T9n1B)YKn$MQgRT<5|F?jt#Pde@epP8BwnZZjCl8K%|ON^u`p(@Zj) z@UI7fb{v;aZ0$j~$mn6HIEJ+dnYQ&Up=|AN$3$kECE?(cW7})T=Xcu2zh>K$L&UFu zJf$Rp?OYCefzA0F=&)VqebJS?q^gTuI}@HNr|y{6kJ3fVXK1mX1Q44WFTTlNTHTam z31AG%ZSB#~Vm1=#`jUCq4HSC47Ps8${8_OIvgt4=q0wkYM0jqjT8;O9IlGFy=i&a@ z%y&95d$3XF0Fm$1ZBUh!blNL5Xs^aj_03aSVvLlE{oZ?CzUJ~CYiqu3LRNI`nC-)| z2S*~4`BRwKUduDlKNKksu4U7O0p}6KwT*BCrZ`ox7%xvlN%Om>Ywhhm*-qx40x48g z9KLP1SlaM7{vV);CJtQ*-JihY+h3(;-!#Y!GQoeY3Mrm9pi7*%SQ^3QKmmlfZ`aC~ ze3a*MJYQFA^17@)tm>G3yl=T}QonUm9Ju*ITx9$CaN9iY3H0t>vjp-VH; z8x^qcf*aut#Bl4~BO_OLrOrhVtXv{q(Y7`a=X}kpB-qc6{gip&fYgst{IQzAO$XpxetKalaFi+j=aI;U6z0y--rRlQJ`PcudTOX~ zT&?<%DJZ#|V-tx$Sk2en0}5RrS0x#lx~p{TSy!f0mB@NAuLyLd?20lEQv&rJ@GUK$ z#q*2lsp6X^9iYp+MpJvGOrq_g#?yPW#EXJE3+JrhZlZ0KeVw19i*^N_rU=ispv+>2N$&49Mm0F1#E!GDbUKhR&D>xxJ#Pz3Kcgt`e%8 z9l9`eR#IO?QE?_YX&X#t^0VlO!@LErm7fNss%}~Fdw4}0&b=HoMl1BNOtrP#Xc)m> zL_0UoXZ$;Zt89kCodV&cPM`@O^8OmQnZ|7-MW?eT$AU~;`I03( z6PL#MGv92qa+`9}PGAt@e!U>#_MwPEM!iKA?c5JJx5Ihj#R9;lV{A~JyYFr~3yO{O z{6XcKVD8T4wD>stzTo4L!ESn_ ziKoL_yh4uxTc~8ns=V>8H#uG_Z6Xlbavs%&c`p>*vY{o zkiU^#b(6UWKtXp>8*|^oHMgLgacPaI>8~yobU@A38uq}qZm%N_` zV3&Yf9h6SEh37wHm*bSl9}dicw_n1i524{)U*@nmBHxmb#g zq$ZVe6T{V35W;CCuv8}6&~{!yuuzr}|T@qrt>C;~5)u~J$_I?c!VmU&H z?kqeGHCcjl>xlKv=ioJD_A{mt+oG~)gX@y6DX0jg{(jvjH9^i1w06cr#9J|dNh;Vi zwX|-#SC*^e<%OV2S0Q1IgIa5>EMLV_I1j=+MXFZDKUbdrB=|vk>Vyv$+lP|4JAy!`%du{`MT&Pt83`I_nU95nx3yXriNm+ z34Mg%@;hH`TI$&A=uVMCD{kf76|1ahwrR!Cx(8v(*NkJ*;t@h76^3e?Dn$_jW0t?i zMtigFwvOcZrI3@~R_(nu4~m<<=BB4E)a`Gx(K^StPg8*OG0VlnT(P=`hBhaa}>(k|98c;>6aype4#d3BFevO?`k^1rugkVqya4`(9#lWUW zFA;0g{H-jDk%dh{LHk%mT&B5m>0PB!m`b{(V$Kv}@dxA}k2lG~@6)j(&UXaoo89*` z`VxK~{hI?EvS9T~adO(K-`}iuk$6FgXb6H{_}~jdN}*oV^Ed3ngb;)muV3Wf>3S=* zs|g}qodXOs>;fk9LB^`fs(-}hmYb~2Qdqr)Qe3xOXM?Q1D*zf3*J-iBTr8zB5Pl@; z|5a)}XaM~)j5l|WEwIsC#$#30JE>HVD8rat-RBH^^^4zDM{^Gp&Vjcnj+#z~&)%bZ z^+NOoi0tJVj27ri^Y3dWJJ4SCgLPH=aO~`Q-o^6KDwFP3qAC&*C%!f7ZI{=|D7Xq| zt>nU+gy09ILkajR5_J@x8YkbA>#29b+sjF}b20C$yW*iaC3`K;l@X{0ZVVjJ;JSuP z5$<^g+9lP1u94qqVNM?9wMYWmtnDn}^x;fMt_ny+j7}$Uy$>kx0iXvk@HaK(U4%s? z22|eSM%3g{)1f6J=E&i7%*5EamfQ{SZlELGgPczDE)A~GK;9aND~5ez|!IT@WW{U;3}lq zE4&$a$LKT=I&V2TzN#Cs(So<2Cl*xb56>O#+Zo^vHOpe74G=*>Kl^IJF0hiymRn0N zq3%!GhMpA)>kd`Ctr4`rT1J5&>yHbVV#Y#Lz*hd!p^v0;$zdRNYy5=QM6yG0NpaUED@^4qIq68(J11+xLK{A9KkbU8Nx|YX>##C=>5Q20 za;@KLft+!st3NVjrdn)DW5r3?NW=scPTzK1O1bXPDU_92r~7eh z8n|yIfN{s>KbPsJu)Z|3eQ=*# zL;dm2sO*fnHuAR6hz^fPpW%1;!FH}7?aCL`jin*PQ8;#swIxkR?|MQsQozX+l6mY@ z-_nQN)0b=o`0t3<#jrj-bC8qL|>p9yzamIsfO06?30WDWehp;(HzR# z(Gu}ic!Sak!|0!Db8e}Z;%js(=UI{PTh(Tb>ewy21%lQ1fHsy-;mNQWM)7Ak>uqA7 zeWRSGy_YGzyLQWrCP2J3Y#w6cuJLC{D!t~-bJUEiO8IL4J8N4Flq~Udcl2;YLs`qa;-^DrxbvJX4jt6tqcthdQHfvA=y0SO^1-Lp zk(}oajYe$kE(#F$s_%1vbafRnZ#Fj3$fW6k=Sc@i_=f=4F*&iJY z+W7pw-M}Y1A8++&0KM|P!P1;E+}2=iTzB$(MuL7G zQ^mC3Vy3ptmAC)hjc2L+wT-L!_mzewl@kQ)!wpQrC;D>QL{WqC^@lJ(pNj zOC0RxG)H=#E8X=LfD+xerw_d*?_~X&E$^&SJ8#Y=?_0O`Mb=A2I@qmi`84!Et^bBj zgI&?Rso@5bUoLsKR7aod4w)tO%|5so|7>$BtQ2hGZ4(!=d;MwBJA^0uro#`UH z0En}-M@`v4{-h(3zpXlJ%_W9+2)eOK`(0nwhc(SyNT$?y8!;W6Z8Q4lHjEQH_iUrX z6MR#^0m(F{Snx{`9PLNM80^Jtgz173YEDn~N>{U;UT}B&el14>no3fM#KOX?D zyNg`8`1P)sy~!(7Lt`*$&+IvE*i9=}%?31c6~iOn+n@#xBGqt*JP={&uO9k%{};da zPL6!!f1&5tvlY7Dhj~g?V+KFF1nbJ1l3kDWJOOr=RW?mn`gt613LMkIrK0RG2&g!GMj=V6T1^~GSn0Qstot>2HnA4P+mU zxusuy_t0@9cvQ>$^;yOhP8oiiu!bs-!@5PxyjTpNAZ%h_JPx}U1Aks>$!xIwCo>_3 zxNRTDVZH1A{346uC_{D2IVK;myM8Q+LEI1pb-TeurT#e-c5(DmC9;7%fP0SE^8*u- z5%nbr9FLt9N-S*;&R4zI(+JGS_EcnCC)@_|gsxBo~nK+tLWD+SQEh#2>$sQ#YOkN|_ zp@H>R?8Af#s?Yoqf_3yLje4+@*X&HW5w(CYCjhqc%MJ*r9T>zZ|MI&Fk z=9Ng|Tygj@6O2)nAc>b-=A&KRXW}!|%zH35g>W)TD!89q@UX|I&H~EaUQp7uFjH}+ zpNuNXWab0r}1t1@dA{du*Z0x zlp$_G|7jnCqlQL(EyJSR7w89Hi%?o3&#U5S!=GM{__%9S#K&QPC*)kMP547>hnkuA zBU#w0p}99r4yHD2#($18-yT~KCV{CNEH_;=AhTXGP8&61U-hcP9sf8|Im5XnJ(yH3i|0@^3+Y~y|biPVHb8OV;qk1yzOa= zOUpjf0*$(AMSB5b`pBal$F@UNYz1>T0YyEml~9$axa=8Jo) zclBRi!0eqRymnTO`u^dlQCz3zk9=X|aMxrwDv(DEkl$O%QMiDC2?O2z^Q`w4W|NdluZO<-AWx*Bjq)?+#aO zcuSaX&!6`3=~-KUY*LL*?OMdU2-w87$=8zWaK!|N_)m$vaL@WAd)rYJ-hPk32Bo*4=J7y)vdyu@klqq$+Nc1n*P>K zPeo|RxmeX9g)X3M^oL)UY*kB|3Mj_+_HhT!saKd0{6!_C|Tl%Uw>+$_GF4i5~5cGVNt7jLAcfz z-Ap-gd1zQ@j4M6w4JNVuhF8CDznOU>3K!wVfH`7cE5{+v;u6j*IPf9l8L}#Yn;>(7 z8ckMs3GJi90!y>gFzR@8v9 zV6IF_jtBC>?p%o5$BdeqWrhaL4{4G{)Y*R?umNsLh!%--z-(7(yAfo5Hs*D|oiXod zhnc-XbvOMpz#}gTC$Q5#W^YMy*^BT`y^eoBD$!o^>`CYbyAdLycx*{pus%X0+Q|R+ zb{2vPva}X=6cXL~OOBmpl~cfDDHG*eabJ#C_7Xif!;j{Ny1%}`nbAdc>0+0ebCB9-et4pAWYhbxZK3S~*mp+L=nwKw*r_2)QV?My^=vwaXXqAn z+(_|->+3RQ30ljIX`gXlSw7s@sp7InR6{XF8?14hr4cG}GS5a6zx)OvuHB3?y8m-eQa} z^xKfl@VtH~3#QwEGQY7UUU?;xr9HF&)Yxg!Z)R94xLfFwwDax3B%(<1Tt!pA)eJ!k zUp;XF)5wS^95M)}o?MTtTscRNh|GPb@6Y~a{QHC!ixD+WG_vvs`)PQQ!NwFz3Tlq0 zwKoz~G|IQOq%u@tJ{R#NjY6JQ-dN^H$dvkOxR|5WU^6lj5q7J$5??>ENDgjRr?5n$V~4PesKg1m z)jQYyP%iqQIS(J9jHakf>Wjg?9qKrL-EsQ;uVyomdb5>~b8Ks! z7MJO(ypmn*(*>|2K3L{P0&RXCatJM(g2~c;=_)HevU-O{)pTN{wLA7Id|Jn3WKQk} zH;B222D(7tI(*v64|kDaW)~9$K+cxlQOz0gf$9A_B9Z1IPFinrbDVkMmt(o%SxSAT zm7H}v7-n5)Sk!D?EDcQIkJ4qqG9AONXOeUpi9S~UJ3Y!Kr%p^A|n2PBZv2>&70ee0$BY zzmxw&L1t{yO^X6|oIkS-HU1Zxhg0+W1O;1%X(eN=i@)9le9K}Ldf_W|*DtptZQSgmMY0G3e@-seS&%UFYTjO-LhvY|)9!XpVfY4w zwF12mjhtse8aU-XSkZ810KK8(LTlO4*FrHv^-I4cwS`S;YQ+;!bVahgh>=ss3Q^+rAHd zENquOIGygLF_kjqd0=9CGojDC( zX3)R^_YZbeM9?D2XkjN;K+{T&f?X7Ftl$wApMX$Ejj+ zG&TF3(F8J_w-#i;LS#5HM{NeHP*qH$ee+}f za9@QiaXD0oUCmvv8p{ALhYUB|-wc!6w>S;gK;`=*t#=Mn8x(>+eagj!zZ8MBq(9Of z8lsJ^7eVkh`Z0nyxLJos2R$eg{x6QM!yoGZk5`IhM)uAM9T|6J?@hLF*4f-$Dtjk7 zn`Ap9dmd+B`ec7_`}IAwSajsSZ`v9pf~UoQ{T0*^o1H$+ap zee=586ckG!&^VPmA!Q-dQb|shndn|lDwP5VtZiIIMi5Y3O}79_tpXeZyc)&A;TBrN zs~VoAS?{Aw?yreW{8-p~qbPZ#GcA$=Jb%Y$vf%rdiWEy={3fI5ieQKRHHieQAjn$Z zi2=PvioDq7gzP9#{7&4A^&9~tgZvs1_6ZGDzSZRG8Ko}L)c$-W0h@$dOo-ThOO;ck zTeddul4{NmbV_@VDhbzRJO5_hLI2+)6S^yY=mkg>F;xqo^eysJvo?THqP!xC>F~r2 zJDkec;*JhtkI$JE8kwTq${QZfw`i{2=Q4(rX?(sd{Cg#+gmDPw3X_`jOwfaKO z3-kOhgjnl;W@ULH4T(va8h0XPVbNq*r_*HnfhEPI?l@Fl-oK4xdmQw1};qV*5N+*U?RC@fT}5p8Y7%5W`7N-NY<4E z2f0DWARb(WN2gwK4I|pxNjWr*n+ur>KxsSs`?x?}0gnbQD%@bWZiw(@6boGH%zmzH zNG`;x}DL3wK5c~9p!f9!`eX-FmKU!(oTILOZ3?@sk$2S)J}Y=ekCa-9Ik++SE*lumo@18 z)#fKP2nZSm27jAjud%qW=3v*uxAMZ&hBhZ70@HZ`Uwohm=d7Fk!F>I_!6R)p38M!@r=h6yR zZFx*D1KQc9cFJUea>sqDATfWnOekd-MeJ9rl(82&*uKHJ*nQf?Jc3T;*P-F=K2)at z7=OUfweVD_y~`HQn(#1f;m~bo?=eiZ|9wsgi1BvjjR-FAO@SorAKSFkE^;%|!>RRn zV~sk^cWOq--$o!u?`O49QazLciHEI-sS(nv_gXmMsVJuAq9GLs(+m#jl!{5+NO! z-OAFnAYuQ&ZoZT_LYa$SAjM_*0!B?R7(&Fz^KD|Dt2L%1|4Ba*aX4KHld=KHkG)?pc>L!SpJ&UJ!u7LHw@+X7d!8|kB znnxpa0~h%ZqkdJutI>F$1da9yrtM5=@Kwo$>xRp3VS;qQ{L9Y#ZURaBe)|iBxKlsk zh3BR4n`d-GDmnkISByqV$c~PGLp!2JL-dco>xKgmDJA)cna2&tQ1-mR8z=HX~LUxTu zP`}|ivZLx6&VjU{-u{+w-W^2^!VeH+>sAn0)9vorBDC)Ckd+r_i#7!=xq5AkaepJR zbBklEzZ;b6o!(wtN4SCwQe<`&1>)1po#*FC3C~ZPzwF{*Z4vj%1zO}Eq1)pXvM=RE zivNCmw`M%;J0IlGjXBeQ^#3!uKrU#Q5Mb(9lp_VMEf5fJXwbM3G6reww1*p@6n@~# zRfoDB^+lC3wwUh9JlV#@GI8eSwj`qQ%_2Sc)1PA<--1`8)?{nAWlR7ulZIOPVvhM= z@W=MF5M&}+m4@(C8)-3b^t(aQHbS2GOV7U-KdCl?3pu*_d0OVH`r`H;^UsE6%95;L z>r%_tLMG#cpB%U)7>It5S`2a8gWC2>n-1kzD)T{;xWEtc(sye@x}9eJpD`Ian#NEz zMr+7^9+(=+tsMpkNjcTU*8a0A*phE|ruTh}JOP8lL6F7VXVv0yp+M70_yv9$GT z8?n<~dRFuvAP3c+?4Nx{C^Y%|0!N;>K@VObli0ug%{E_^eM1zE7b8WQf@au)%(_#Z zgm9NL)(7_AbM12EfBd_}Z3P0ing^Lq@Dk{=Qg%X!;LX19cMGrEa6Mj4Dfp9>)?>)fd1z6H93J}`9nw3I zz4t|{+lkmEjOlB0*Vzx$Q?7NE7U2?@{GU6|oaQZ-+&FQ{B`d&Y2XqvAL15^QX?T*Wx#O|1t3$&_lI4VbPsM{Y z^04K}6QZ<}{_e7Tf0WF~lX!LK2-wyaW>A5nr`mS}3nz?06B|o3@sW)LMFWz2^H$J? z5VG3-T^*crP=i7meBoy|zSViAYMI6H@~B*KA#APQ(ze;{R!3>hed$wPw3tQLc^zw6@Cmupk|~gDXSphQYbem zt}%Oyp9b?UP;0KfK^j%$e;?_Eku?{~c@dwlRDpjS3;Oh0|lr?iI5U$}ydZ zS$kF&jjtCr`0u%@ks^aQrEF$KwXn4}@A6zf=Q4V1i7=YU%>1_YNl46`_d~W5b>#b; zZqo#f`j2i5TlLQeuMF^*j;T0yg9>5+0U&t*q)v>K@b_B3dIb?6*3a3-6d&Q55iX*_ zue_t^SLlQ7h5eddc9@z9FYfG>f4fbloFbi`8d;SIoOkXvcW-wT-jE zo3i3{59TSgv6Voqn5{CQv?Jq#&3rT-@~2$jgLy1aC;=d}A`~IKkk)U&H_zmn=EaM$ z^C?aOsfH#6&2fvb`S=eTphp~6eI5hPA!PRQ2*2B4DQ<{(R@{I8@e6un;SIV;xBi+H z(@P4jeQtbB7?#?!MWQJDm~d|zwZGI!lU527RqQCZESzGGoEVaQyQaoNLS}6I1O;qP zqKk#?g?=WNx2GCsXP|X~>_3SK>;hWQqQ@J8T;7R5E+9odwIIWI-E!+~4C$>4Zb2P7Ctaczsn`y8XX*gk10!smz@ zs<`+ay1DZAzsxOu2qX{+QYR)CGkIX56v9Ov4I`(Ou3-}#7yIovx_cQBnPF4ze2+or z9zLzvlXR^rt=9`7r3*F%zRU|UxUyFrTuh{3IaQyRbht!P@HnAULZAt`4-A9Gg~Js? zO09bMyvrnXu{j~L1%H~1;H~4g&fTr97b!E`A~FZ(D-R8v z8R)g9X~%{2OUk)#4wt`D?NQrFvxtQQm$kE_J`Zed|2F3~Gbxt7H1pr-Bm7`V+X*Rn z5_v1^;zy1@0kchd^1PBRMDxhg)A;=#wHDSGkH%14d^0eJA_yO&wf|wLtmj zWEKpo11XZJX6Dt`S3G-%J$Rb;rF!4vRz2>3a5Fa_iaW&=vO^orz^1gI0G6vCrV|CU zAlV!@g2@aazO+2Tlw~xFR!TjBV|iP+AY`*iI=H#4HILuRLO()gXQMFZ?7Z;ts*~)s zH`0(g30NURJ!nHl09ol&z0X_A;+C6T3wE1(&!%VIB}=m( z(RpA6;ki|lX|~tp`ywqxXcK8l;^!xI@_w8bTS9M&ikf9}@Ri~Qvhi@&Zg0=D&3sdX zAGaVo2d=eC?>L=ipI+6v%y>SNwib8tyLxbAYOS1(&Ir|qS? zTev#FMx2@AfnV$LJzmPu`&fjXEyrzemD`E{zY%7?1hJTdcK~==8t?EIJwjkoBbpB^md#1NgB^k5w5|Eocc zpTbf|VNhC(eK>&UxJ5Y9nWjCvd=dK6nHaWpX?bz>>sSk$?V-VZAx$wN_iB5A?Ya1C z!}^DQt*g2w-%x!tGx3G^&4}&Rd($5`JhZr6s(krqsyThMuuA2}EXl3ZYMt3h=#+-} zhL`_8yjR#hZ`R6*2IcS(-~4A;@MUJu!S0!9gAeB9{LeZ5ApFu9-tUUs*PI<3+W+~R zc!1^g1(UZJhUEdSq{Q6&qlI&R&)8kqKJ9p3>|xAvv9;x91nP&kz5#}bj4JbLX71rMSX=OX5q$ zMT5>=%3LzfmS1&L-I&dWUVU;ufzx4cZm9Y_Sb{PBATY0UZGSL2_Uba2Q2WQX)#pT= z%F|Hb9)p6OUif?5r1c~`EpPvX1}+?7l)Fu(z?-6wI*+rzTimRfXvY%T3&%GHIy*Tg zPxd0kC#NncW3}OuvZsd`(jDcC19J%JB~ydJ%*;zMPcd_!ecpU?vdw~kvika6NnUyC z23m~O26~`Umlt-)5miO7Mq|8`sj7Z7F9Mt*%ethkOLw{9CHLSTu8g+1#B7IrM2j z;X2^UX!KOHPaWs7xd`WCjt91KaikmpIDXXw$|OiD@eWooT#sSb_h2E_R4+|H9O@2m zWzzo)m&|U1HCA_#XkK$$!|CjFewKuijm7$r{;9Brg+D)b%L9!_erb3T;?-K5YFt58 zfXrKiE8$m%`S+&VCmRMm5dOplD3Z%L^vvMAa2k3(BEJNwcx7V0V~S<(@UGQFlH#1e z(n1iH?9SO25D)Ker`)KQfdM+5o&j*4WB&QfwkD^byuPSSwg^I*5YzLsEAYprW^l=D z4e;NCYuIfsF>RI#t4sQtfzh!2Q^<0-t^h$0W#~hSo0h;N(PA2_u8AN!TgMJ(OQIVT zkXns?FoZA1VWsFm z|C(QoK6N}ytvddU2F$;G=A6@C1%wGlN!jjPbx#71Cv04Ce@=~Yg9}$(@x^21#3r94 z?z^{cMG+9R7>#l^$7ji~Qkg;FnYVuo8`OR3hjK^a9^IK=2#Hso)~=XJIQl3s8-%oqv=Wb48w}+0ikfSSt&Lmtx(+UN!)8ox^bJ_t%8)O9($ISDpYMjDQT|_; z!%|cgz~=9~-&dplDGggFboylv+2oheM3s#aNjpiS5r9%=kcTih1PJqwe*IR^KeH-G zJc|Q}k^2a6@_G4Uf9YW473;1rtj__TFYmdn;aMF%B3G1d)s`x6FXV_@(C{DDn#co< zD__5egzm$~&PpL*HEOC9MW0gg0!erY8_6>Lcw+^f&F0BYW3K@200=Yhdh;YfW2S1O zszs$2^0~(3=uEq2YzoN{|6dBs|A0SSIw*p5)GB)R+{GBtV8qPHB4*J+&aoA1#2!SL ztBC5VqO0lO?wMb=)h3CGH%zPZ%eTHVF1(rIg8eh-!K|e8+7A8uatC9Cr~%0J2jGQ# z>))?uSlqPeu*Qr^JqGp@m+2MRx2VLG!TLaFFF|aK+O-We+0@yO9*!PH*ktA43ebKJ z(Lp0495>HuRvY3B4qtZ{SMYvI#=BbZ!u-}EjTVWMu89dKRV{Ee`oQA1* zPvYOmIn}n1Oog4UhlFmjjYI3fj|mT~!!Iw{A8Wf~q|M7z0f9I-044 z-pM-xQwwrH^^F$jsfK5dj;0#>D9R7qn>>bYlj2rH zE>`lylFJtKSz{>6N&HTUCTcd~-N{^lIYN4>LprEUW`GxbVYWj6rwN4Rxy*H1cNZ&T zxW#Er+EPhg|C)P@xd|VMF#Z8lEdJ7;QhUB2lORWnAwaM$6v&}?RVXTdRXuNcr9sru zV@j9ED6TO0pYnua!q8;Q(u{2aI5+Y!Y-sJvLcg8N2jb(TRwvkrhx+UtsSD)Dp*}YR z*^K|P?(W#_jb#N%l8Kk*gypQGw`dLWVEs9W)Z`@DV7z|4JVbntc|`Q|bM<~<^dc#; z3>rhFikn4m?N$2Ky*tE&T>&w9(1GTR$&)L*K>EV^>DV0cfk&A6u+xZ}0-^jH%h=Qp zuTd`gGP3(-fa6C)p_eQ4TiE+<1$Z_;ELGk+ekH(kwRN&SIbkOtV?bPwE^gsMmdZ(->4?mWFbbeR{egbuL zH-Nlx-P2Fds&f%-yTmeMIB}{yg|*o^=#+=J2~u2%FCg+rEvxZ5z2=x8i_gkni5fYt9`0k^c#Z$>2B=$3* zrJsx`3T6aG0NDUju)>@aSa4&VehQm90ug_1%4Xf;=fP5Tl(@gu0YFlxXY8Iu zCwdg_dr^fOwFK*_j`ppsAxVUcH=ImAk7 zU}NW-32vL#mK)k!Pe``^{d7s_2-l4hr}xX8nQvWfUpwZ>WN%eTdWm%qpCo9-T_nv~ zcV+i?_GK;WK4bD~d%sxdOC)f#?#ITpBxN<6=@T~>V6?Uc-%nF5={ zUA+$B;D)p+P~cXU#;x42)9F7{dt{^M?GGnfcQvKuDo!X*}{T*N4*?5_a zFdfYMK#-qY*?yZ%Li-ggeyPpXGOaz&zER3MzmHk(P8}wYd`vZ*XVD|O)H9b(zh|8t z-OA=HN6egUF=5Oe^u%vv{C5}h&RR?2m_z6{^s^LJ*wxFrnKg`*7-J@h;H9|7Nn0Nqd;kL1gCW-J_wW6!Tz0dp1r&1X-a|H z-GX|#YnLNXJA)01LDiO$y^>|j`v-ofvtx4IlUi^vefjmv?sX%`S@R;5+vqYUE~(-( z$Wws8e@?BOA@OKY9rB*&JWXK0tYEo$3Ly2JlCTS!CVLBR7K#tA$tcvuHme!I>fKI@ z{OerafOm&@4wcq=*7}Da$uZ?dM3pNo0T^i}80h+oe<6^a&;Pa-gpKF@6<3pXDf$!e zoj@WDmRgkFX#~JE>x+YNcqo<~JU!hPTbr&6pkNzTOIP$sK9Ty>GuhB9E|=U(;d~!y zX=s9p{ANo0M^Bwdaf{0(Q_e z^uUA2S{b{0{5-I~QKm9XG5E2doJfm%Fn{Mw+qrVd2H56dbAUY6{Abe^?Dxxyr$-F& zDjZ3&2pKyg{;hXo0dMJTScXAI7K5qLswQi$t|#YP+y>Xz;e@=AlRp$RWpA zd_`nBQpmzmhAXJy4N%YCHpy(Iyvbq)0V4?tqVaoA}_j4VKY4jUA& znI&|YS8%z@hvPeaD3GHgZd{qaJfsRPPuJJ=mL}+Sln=cc!syUjltdG9v z%kL`i)S{@8e4}uH@zTRV!s!&Bu)b z38Y9AjL<mh-F#W7 z`MI>l>TNMZ*?`44SGRXz^+&UTF}~=B$AydDKH1CMR=DR7oD-BVUd^DDHI8xV2;d`F z1xZr^MP9$l>bHHG%WQl;&S`NH{9ENn{<$Oq4%<_2H~6)e&r;FC2Y#qFYm{N+)Z$LB z`x3yIdaZdl*HuDEyfNqs%jSoT_3n;%0nEIhTzwYi$y%<#y;!M-7#HrnHn*YB4&@*u zi7|FfrM?VpViBKu%CZaY0kubK3H!`W&iXW&&J$W8c1Z$;0lFO>ZF=4f z{%Gf_RAuf;2+e&QL{H&ui_(b1j;+t9w(r?4 z&l3Au6^Ukr@K{(_G?Ic{veD-oc?;N0lY;V*CvS%&_88OxJh@z7*8590 z=Oxw^PC)vmsEp=i%5WSRSf}c5`on!nttsN;&q@)n#gy8uS8vv8e_8ySBrwJVVFWZ4 z=!Rv!kIZT_Wol0 zPRCvk$}-drn7%Vt6FoGZ&VJQnDrCPS4O@o5`b&+!c5=x#yU;Bj92lZdlx~9 zJFRymbjuu->-w!2O@XX-{HF5-Wy?cQ5tN&)&0@Hs;PdnBn2YQ?{|(abV=>v0n5-U9 zz)&l2;KzdU)ci@A)>o%>2Di4dSoPXm#vJ*?y?^f}CZC}krhu@?!#xpLFg2biOfIug z>4kj?>V*hfY}bc&-BUDkGX3jE_%8@R6l&kj`!xZh+OTWV#I`lA(6_sa#m0_NHO!FQ zhDiTx=I5E$u%!Z5WFrw~R<8~kFKn-aHhum!1huL(3V>G$=Ic)AsM$M3?(LvR%6FTn z=B>qT)|suy10gDzhsXS~V-(QT_OY{I!m1KqasOkicnZn_Y+mf9e5|UW7f=yBFyG5A zEvf3WZFY1x8l|2;VCgaL*Nth{p58H%p!>#{vU|c+YTATj0h4r_mVw1z*2bCI)V-Cc zQ2H^A-%;*Y&(BAobidBlBH#n>!U|~{3QtK-lB(nA8_eY?>8w1~j(*6nO8zP1&q-bf z95q1pL}b*lD|tTVCtsM3qRC$|B@4}!M9q;o_06tM5|yX`njN`teidcA9uqgT7@uJb z7v!)w)WmH@*=r|2qJLX{`7unLHF8_h@9l6s!K3gzcWdru=7bdM{Spf@2M>kA*Zo{R zkG1qU9F7WNiC>{uYWsMSbL&Q{rVnNljXZ*+%DBBcJ{;$w&wX9$!hHH9U5eDr30sUZ za9Hics!>(dkWk@VvuD3n9Ux@h6)wv_*bXh`)q%w`H7{%hdABiBYhwGNjGeRCry`@dMHEqv{O484;`OaOM zSh0IrlF)XRYjWD~%+`aAA122xH2<$C??$2g`D3cyT8YIBTbU;T$S*=H%Bna;$Bu#w zG{pwNrFGuk!#y4C=Mk*VXys`efAPSn=NC&j+y}yv@d>=l>LeT@LLql5-?{e?L*h!% zD2_bB5Yd1<%&LIVx<{->5a&K?t ztG7c$=wlQyoY>yfI_t_ThPt(eD$PI;AbszxKLuFs;OdT5J|rk@v(*=1%$??D6KX|5 zCs^~Nof}j4aReNZ-Vn6ka5-Vv@x?;-IC^Dv}Ih7n$ zepOmlI-()&dEEG@IdFWdruJ=o4aMcz!hvgE2nUwkubL^RSlr5<9JxrgdNf3}XflP% zE1hyKsJiLacZRhSoEt|5rU&;mofHpVQl|@?Z{4lktP;2jTT-9lp;O4|ZxEFnSN%}S!{^y{0 zrM=$q)tkWitVFccnTABL+WAG;zmjbpPqb4&>20wFK};g|c*kRqWO)sN%^js^F92rf zraxKq{4}~x6GUGv+ucn4*J<3vW^N-;&eRFR_1~KvL{JwTavG0T;t9pwx4oG_^lnF+ zN?NI}>#Sr1pX+}Umb*i+ z1tm=0IC4Y&g}6^mq(n3{H;0+XNq+C&=d80SzojBgVOntLlhX&=4^Y*|eJOI&3BNi%>Nm3E-`1k%r(SseX4+Pt2X`ccj7=kC-~GPS2v_~%#kw(M5d zj=V7ClUe3nuI0wy>%4!_o$Rvfn3sXtO9Ce16jyTd@6*%%^N}E_R_y+FjsUWdPf(#hVqzC zcy70I=JG4$_H%_c_kS1Mxi#%Vrbu?#X!y8eVoH}-Sa6xG@I$s~TNiPuJ+1kp=wv_X za(~7wq^#fmXLOMfEy!k?Z=m8W`kt+4m~W{u=AYVfS6TPEZUf~yd%1pgxib&!V>w*| zEJkboWRpf0zJXpVm{THiCzMu3_`KPWpgjwP+hTN5llTNG8H0cKC55WUfuyx#DR_^r2dH8FRTI?H&}yb{}byV><6->-7n- zAUyHqZ$nWLEI5q|R`#}gR?HUHh|oP^;Mp<9)Zz2OtR23*R9h2ao{lGiW^`?+XLqm> zjE||RD3ev2S7oKQ14Huf^ETwK_2+T)Nbjv5ieBPmIylS&T{3PsPaKV9UJ~lx0#k{3 z@)HIH{zKWp4GK}8fay8J>v)yJ+puaXW?tCVH)c?-Du1t^i@Ak$T3vKST=DDM5FCD9 zxO9=WLBP*+xyz-Sk8ED);kS$CkS?|dSZ{4?CN)w=;v_0yqrSi91>k(O?obnu-41zHw)?5NL~txARbPRrQ7H z^qGVakq~q&ukLtyu)DEEGiz5kp-Q(aw>UWlW`9S$SbvpG_{>Cl8aOQ|-QaiE`O3Ar z>4)E5oZ_Wl7-5GEfs&~sE*xGRHI9%f`~vU$@xmXXlMt`b#q+RWF}4<^u`lN0xF*bEb`Q1aPFx#pOh$ zP5moj!V|Dl==)@e?cJ>*Sv7kR$8P%(be{}x4}%pRB0 zpO?|T6|URB)|7XK>i-eE@0FvRQ_GeaPweONG~&j52pId4>FuthnV}O*Wm9qCbDj0+ zyq>J=9QxxsO_L_y?sc!WV&U&CVdJH4WQYf5Q}5PXKDDaB_#c4l6BN}OBWBdl=BsAq zq`1|92UCOVJ`b=9ys-S9(yqh4*QDU~UtjtcfHhygTrqh-Tntw26HKW|5#=%$f!p7q z9g^~^UuKC2hq>RX#}QfuA^5cXItvFd_o!2{_tN8k>)^-GhotX*f;@3pnSI$3CY6BW3uKyR*KQ66YQ~JE7i8it|@Pdv1~Z%cxOsKqXT3xPT)qS z5Fq%3%ue+jc`?W(F-(^hQyf6)T>%k_!46siB!RkRos<)S;VD@(BJrPy*)+-X8R}Dm zWjZ-zhAWcu)6Q58W#qHbl0p!VFoJJm7Z8^47g!RAuO2!1zA>&C6XN$`+tRTN@x+Ct z638lOzUM|8h|-pbIyUBBgJrWttuGLW57HRzX(~MPDltuYCyHZN01O}fq26Y;J#b|e@5@Pu}tWYfXbwCuBxI%gQ`&6aDft0QhyECQJ zrKLC3lDh+4!gau5C(#W(;q)M{yFrBc_W34p&)m(}Qpyty>W-pW{OP}tE4O}|ou zf@#mJr=Z1`>YOS4eco?;nX2unHQUEuM9Nm*)3~3iz&37!5*WqyejNLIR?WG9LR|og zm>-t)0zIkJun{H@hqDvbrAJX`=4&9Q6s=|5f^$>VNbP$N*;g=Y(TaM@P7XsiA{}+3 zZB5Zb+(6DkK8?O^U@=?hzIAfV?N%B@cTg>8|OdNze zn20>;X(x0_o#cv`jqFfk^*6CvjpV!+XXF#q{hww^!cb1SarU~{mx+5^-N5&-#DiGw z37>LxZ3K!C+(cm<@de~_k#`q`1fKw8mq}7~{jNzGRbbAyG21G1K=oGvh-OjaQ0OnV zmKQ?+wkL>+~*jT&y6yn37 zI~1}mlq{Ot3OyD=N+9Z=mOco;@79e7xljYA86MZdzqdvC{ye4<>Q^0O7)WIvf6MsX z{%nIas#q}1i5%?lLDv~;2zBA@S@%d}Q+g9I7uJ#9?|B=8prJ-NMBj1da`>pZ*fjrb zP7D^}8vMY)1HRR;uQ?S9IehC)!6E{gRe>7m!z4XQu^)8nDoO!*AKY}{;h{MF4~XMx z`=7I?0bP-?8!L}@iL(%Otb@nZ#s1&tJe!EakTnv~fP_Vjagsm23Zd$CN~`^kk|w@q zQa$muAB<(P%Kz>?{uvSjcZ4xNdbcKSK0^Yc=B^lOQ21Yw>DPt7U(g3jFnS1@DpB$fIy2Ohf`uOtt^s#knQ7S*Wo?kQ-DdLbsY%PJp_G8el^9y)bzB1bOodOYS{f>g)ZoOSmqTVhgnX< zhaaA}(4Vwrspz+V*8N3c2LT(J=-yOv+%Pl9`t0QzbgTD|#5Pb;37}j`8m2els{eEL zhI;a+AG2fGd$frxnCf#AW!@N@iURSO^zYnVH>o$@3(IR^M7ceskAb1@raW$$f2uO! zg?dYIu}}@^W?Vk$@LS4w!?SHqMFH-nKeEN%e3p^B`~8)>aX4(iQo@FlxlrUY`14g< zc0M7p)I>i1Zek=^T{=b_?DFE@2rigPI8@1t@B~GkFKYD6az&xa5W4T8XwEH?XMYG> z<(X1A7!k>A-XGvo&>OI{&t+szuEw%zdaB9q+;+zL{>c1_7G3Uoh5-EBH|AdWIqfef ziqwUKq70pFqfQZp_~@G~QVXibMYuOa>})ZkWe{j~4}E|*jOt(^fL}GfBRb=WtK^es zqGCi05)Vx*-=j#a16bp8hDh7$Cp=s&pJI^@DmD2 zK7Q|3{*e(UPM^(=Z(g~HJ0oYS-X`NJ?6a6lNqUSO9ZTG1Dv;TTu;a1UGN0ohQ$0RR z5HSM1-jmaaVwcOU9OElERfaj=0?kw8I|n@RDiC|jP?Eo*@QA}|(sH_i9^G3^j@*Ci zI@iyexjmQPU8|ZNWy^i;Rw-x99Qh!#K}RF?jLzAD@@~@!F<*9vkmcgbUzx@__a-Hh zC*1QGtdoE~S3bT@&FPa*E`ryH0xX!^L(^8>geT5xWy4i@SJE+eYjp?F$Ab{4axDab zA9CYaAOCRho>4VO_+wm1WgPBKZrYN_!s^|x>t`>fhe8DvwT}OYIgo|2-}Z}n5(={! zPF2A0k%NCHP4qEiB$+@TroRW;)rtuYO_E`&coAz4EQyreGZpoMnNY8sSs%tt`<8WE z@_$u(C+)&4OvRQr9>??f$R5jDxJ(-P=j70eB8b`RJD;9bkpjr|k)T)fU#&$~@`6OQ zcS&M0c|ne|i7v`%E-IL?S#n$nVvr;eQbAiIy4EtwvIn%!@53y<>~$LLf|8RanU`+V z2+H9eYCmukq6Ysl8$6L@Ty+-Sw$R2}^!Z;|Md{*rwLT;`G|@LdSaWb2c_97icdmVV zzK&orH9ZK4e@k!Mb4$e*J4ydRE|P-Z_fs;EH1VyDz}E&ja%90$Bx{e;SXqhSV+rJ# zqkZCNta)8{ARpwl$H&c;Ar<1)V)iJI9rlSOw5uk_PbgxTnACyH#NMF0dNZ-9SB{7D z*$?qpJnPru1Sx@t^|~PR6<1DvC4~wQfuC3TnJEfO#IQ=hq|!4X+#N(kxqdYFSX?pm zExsO+3O#GVR6CKrm_rWc{Q1!L-nKc0 zXuQiJ15%e?@wJwWRv=Cvy@hRN1Szd0UH!;V&j$cuiDs%`QCK|ot&#eBHjL{^Eu z3jE#K%^euUd*Xj6|2UK%E5c$Fdj#B?0$eD&Z}ZZFP-`n2R+M6!%xpUbiHa?ii;1N7HR^$cYQO*{f*84X8wLLewPubZ zefOlfba02F;AYBri{4h6_##ZE)-+${5n~$Z$rD4^ZmE_@Qtmck!3jkBWx~;PvwTmV zu#>Yh_M0V9jGQa4f2gN~lLvNCgqx@>^4*Bx5MM1sDXpG-5P7>h)`hQvNzDXml3k~BK-iqxv+j^wHERA=6Rn^Q8MfsaY~-CR`_y>k z58?<$(3pe1bqsj}-Qv$9tI_+0{;1zCIN!vH!9)a*&JAg z(okPWmWKwmV6*l0zk2ME1nfl`{7l^Z<7_P|-?VP{&#;TZ9jTarN9Gy%U+ke)H{tu3o15fu~cT9>H?>k2Ov-@e>8F+Y-*ZB1=6$ zV%U2+H>PQ)W`dtr`>D_3N#iCtvd55u1(3i0!&!?u>?2;Je&rTVf9#7RhLLiBWUt#mH<^8?H{Pr(xHvXILTt21r#Sp4IDig>o-2k2w(IuBs< ziU~1P?D4H5#;ERLW{gBO=S6V}$(^3Q(>Z;xufD0mfETeF$<@Zr;vJa!pG<}T<>Rvk zrSLs2RF6X>~oHxv)MKvYYzm!7uJ{$XuWUC18Fyu zi4@c}6OE2&^tvf@-M^zzC2DIFEm`*KJtEM-J#X#vz3J^wH+{wk3N=M{5^vgSK92V2 zAY)H;BlZ!)c)X_o*q9OIAmw|sFbtJ)8AJEJwAIDR4BS}Q2$aXB?uIe-Q{1m17}7IgWKh)Lre})jrP%SspY4;bC15)XnxMO zPUdd~X;`S6-ApO7 zw!P+RsS8iTp+xjwIfFj5?0)?RHya8T%lD7~pXd`cxS@mTTfXfzM$6PQE@IzsrB~f{ z*m&5gL6!TlQuo`Jdf)lxO?dOSUr5x;zkh29fl}Z?@bqfju*9veA*PGmZI{kR>CEguD;MQyw+sK z80hhQ^~PteS%;B3OtpHUBuE=*?*^%;VXkE->B|9#IE^T8O4XFlA6V^^Mu>W-s?8Fd z#6TP>a}o5lebkMQ)>6Cc#R#StdDqXths9z4q+*qkVz6|W2bUoN@bdPw!z9JVBkEgy zNAu)|Z116A=^0;>p`2VaQGRvfI*;;SzEJ&IN+dB@({Mp26*^JC40;41ag~Z6o<(cMVF<%=LA0fG=fIoGZsVa4)9$JcjHGS`}^2xZIUR9xbLXq{Gg^}ns!;2oL zYtG_FyLk+(R`w=$Nu+Sa@9XQ@^Q#-FOi`e2=<;~!eTr&f5sIy&-eD>gZmu8 z|0I2$w|PIXy)3LbCx3rpC-9VH4hvWioGbwLAPjI>?4CB_E<{|@qjf0z^5qT%xp@9CCXiT z#K>UY=fDWmpb5OBh^ySP4)^kDm0I z+u(=7}giT1byu(tZa-%RGG*Cr<{y1&+5D@}uDCQEYYJo8VCBy!Z1Ky&30^ z)43P7&}{iLVnHVK4$^n@GWxvk*M$d=hq|Rrp}j!ShP$SkHKeHqqKDeWi=Jja%1z$P zw%S5e={r3nze1^htGjU1LCFC+Dy?F$?=UnYh!k@^Wd>CI%D3hpc{hxip>v8^>cv72 zX=O6;oI+`^TS{I9xwK+pS?G+^_CT7%i%7Qd7gFOjJa3lp=g!|0>PMbV3ugc6o=B+n zJ1dIgeAg;q%*_l+U*f$0Mti@9D|$pbQM2s7KecmG2aPIY(w1ndvhQO*B?DYO>DGru zk|UEhYeFGp9Wn1I#K$Mb${}I5nL%urkH63qXZIuUz|BL6B)`8t9G_kjtJkns5Zi492wOjI54bu#g+2c=L#0r|Bnn3xH!mU8Ze?XRJ|yh> zVqx>2d`6`uI`n5Z`~^s!x!j7-buL!sYbwsLQy|mGmWs*;pVpi>Q?v_MOVgsSRpst? zONbo0YW+|T>J9yXmD--G>Oprgk+bmOEF*jP^S^k3L*yNAD}02CNl2I8X>|9dh~r zLWdnfQ&xnSW3P-~xuonUuwyZi(H@HDodyT38h?rcE!}_OzY=x_MHe;s?>u=A>*YFC z_oupwlCIaj4@%F1#1s|@o+v|cmy|Rmr3_j^GZ*?}bjChKb1#Wunu18T!=K#x-DqCP z0p9*l8ESm!yy08tqZiM8lqgup-$u=9;Z{C{K7sy9jHWfuwc``&SX8MGsE=3;WY$x* z?|!Oy%0Wp4;_6gZwAU{$b7R;!aDJ|@TMBxfqc=_ZK|R^Lak+^?JYFuQwh3>b6d?M!xx@R5*(q47(8)?cv+t=upFuD=hZ+&zqYL z8rV6xH&PlC&6L9J!E2TGl%|!W#?(4X#=}mAAy7i_3{tcS(RuFRXLnMu#?f`WwHUI+?j&nY2ZYmJgDsL&cr>t-pM~ z(y7ji%$KTWR;&E_KqwC6)AwUe_fUr`-s%gN&-2a~+3^UcHJ+yU9coJWnT($&m@ zlOV=cSE?L{B&$oN23e}L#}9s54>tgaZ|N1hb(NR+*}#wQCtkV9gk-yFNCN#0ox-&24KA|bxA`LjaT4; zOthTE059(raomUjR z{bXW;_-Af>YaHWZY=23Gds{MLhw~6Ayx$Q+wULQPJCAv=)8fxM2NAS>D>OKA3OK&h z>atu6P)RXu?Rdd7@Q=g+Nru+?iYhEyF%zXM`L?nsCfT?x0QD_H#+s)LB&Wi0W|%jD zjIDOZalwNUSGu_)VF^As5bjFQQ+(?9LyS}J!(x^IN_z&$m^IrHzgx}`o!rI-TyC26 zttX|vtT1QBK0gj5bM+*Qey2oo#Ff7-dgd+L+nvH2Yq}UiI_~W4xfriz$tP=J=mD^4 z59%XnUDC&o3|k#`L^#;QZY5L4*B&pOk(a1V9bs&^jAf05qNZZ}+(Dw|x8LRQkGd{VeX6q7j!}^9c-ssxWazNP-v|xpbq;EJU`0D%P7$fJ z_RlVUcbOFNk;BbQ9{I)JQc6H6BBaGWR3w};zvctQCUM;-$FOY6McO<1H%m#$Se_9# znUi7v;)nE@pklki`%w%wnKFT#6-VOElP`fu(KQkbubDH85UtmBNK^S}9g7vtLu_sO zuWnSD%NW-lw3w&*5W|NpZz9dS#TFVTAm}GcDXRM`N~h3&1y2Hwt^95O_P9osCAZmM znp&~_eS2_XCZ5IuA2O#SqHXyq5uVC5$UYBQ5>EpOVoDPuN;Pi3t7?B?m5dAM?yl7=$wTXANI}=X*r~;LpvzQR@0o1 z6Vl0#BZZ1WKpt=Dt*_G!1Ti;Sm0hsbW6OR*b!WVbN!ZhGv5fJ$wSCVmzE4GiI&B^$ z?Z%b*)eB>-5sk3%7{3hwxJd~zgWs6Jb+yf)_i99(!#}b45Z=hA=wy>4%n<|I#Qe%dqeK?d^ zR@nCBd#r*;zMGJ8d&+reve@&&3*L%=TDn?m;#pGdSM9~|->x2*=!2ldnj0+G-)>wG!{%u)*^Hp%hcDaQPcYrt>H{-0h zg>_yd`<%|ScBY%g$50=v0}+@(E2xjr_p)I%G{q$%f4~L(oUD1=oR_S1^+jQtA&dPy zzfXugzK(YGBONYPIMa`EU7FIK2bOy;XY|R_65g!HRfd6%OCsFE0k3f$A-kwfkKJ_n zB-22dnQ^q%ta*z&0p*EW?9+PGIL;2!Dw>|NJKn< zS&%s-Gzvp$?{jyv~>(k`A)56M6e6}=|yFlkV)B``#L3Ymtbgc-CXA7I^OqQx4|cRI_?C&k~3~9A#P?fXJs*6 z6&|HeD_xhRlp5QnRYn$`HnKNUF(U)i@Hx%HfO4*YPzuS zQWl^3?mw`WPbp!*>OAdF)ZqKVfRQ2LjWkUseRRLIeYDQpwyENwaCgNnQj67@0#NiL zk&5f%a}FvC{Y(4iFX?doykN>SwYAqhWX+tVD9AKdNzY&Ym+O-M+9Y1P-g7}3gWIL*st?ZHm)Z=0xs1}}2s#MuSbuVW16}<4_`cwtH{D4;T;d?)Z zv%5yI+|O4G54_nHt5*EkTBnJyJpFmMnZ}0bq^#Yy z3u-0>q9(dJAiPvA#I;{QQiew~OB>N3w|I&LUo7g#Rg+2$=@nWnYg+b9?kQd}8c)2c zG)YXp1*OKxAScMbY)1M+ zU4VrMk{^TW-eCAi5W=2c{-w6~4Kx(y=To0E;vf+xHyrZm8H)uIdU)kb_8mz{g_%;y zj&A2ONzA~qAY>z4pn$%lbMF~p{|E>hnA!B;jt$d*p&(3U3ejY*>V`~#$ML&it+5`J zXa;}!CCL_s`jwrFql`jX^Oj6QOUvI*O{sPN(q}1wPZk{{IVT}VqZT!$Z?xeUk6M6) z(6;aiJwBnez-urk&}+{_=#bG%D5}-M8`fEVm={=0Hgs9EgOb=EyDq|RR$(j5kiusb zIbh#nG0Y7sMB(ouu@wB}C=HY>`HQy(VTdY%YgD=Ueq**N zM)lsSthvBdqsE>J09Sp5J)si)h)O^tvvML(;FZ3pDg`RazgT>E3F{46?G}_a?<&E zI_{`~7lh+?$AWRYPk$ED;MQ7vV`mxOVd@#eip(Yvsrcr^x*i(s8)!AJ-q9DL{=Vyd%moKw~d+m>nD{Wd{vX{=xrJ=C7*5TQX;T z^70a!cLAx+2duBm-YAo-?s6s5_)gqZ1cD8@Y!Ho5>!w3lV@dG1zKjhZJK3x}41^@% zt^0SUvYuUj*#6}WoU4<4SR}`W+Yde$MdR zZ*a(W#&#P-kZGkhqDVHjKVP7?)NASNm3VBSB3N`r<%tBe^nxCWdHAPm9Cn~RzzAcf^Mnz-LTBD_@@EIEQAc+Hp*K1 zaoM*HyGpM;<$oVR$UE1sivyaRCWCVQN^~jN8Oqd55=uOZP7?`V$R5!FYU<&Z0AbBGRJU49SoWEo3OMy^}std5tWC zBhmIZU+;xwvZ=aB-5#;9`*jk+8-9Zf0OvMpGE56#nrit}!S_{NJ%W-yvzCS2*}-Bc ze%s5wkBeYjtNg02JWzfEXKMh66GK*V@4MdnI(jWuox2?bTn73~v<|<{umY1nn(Q=g zw z5h);u9_FT(?GxBmh~HE_d@D z2MA^rzOJd2U+uNzjYT^KC$BWoVgCwnlWf6$*mq(byanpscPtQb*N{_E2gAM^$N)HZ z2&0%S8yzg}&&DuC&-^a(Q5!Mj2C#zs7&+%s$D4F7J{y>dDy0HXu62+vVbTryZayLa z1)5B3*YuI%Ut=7?N=qTO(%nP8_bCY&JZ?iLgPscmUg2^3v6gI3sW41o@@_(1+F1KDtvN3s(3sq^E-6Eb0(Ag4CpX+Js3fM`MG{= z4psB2mrs%H3Z?Bo&uYcHW5a*=ZbT$JDnY=vDdw9)@z-PO;+TgnE5R1-b^7jABIES| zIxT8w&-K%T>`&2to^J=7sPg~LMA0Hx1+O&iXy20g!HZ|FIUqfyGl$G+kwRSiH8t7C z&gGWD^6$ckf!DF~QGqhQWNTz34d)9SQH%>q9>ka^*uL#bj0kIfeL`%D-c=yHkk|fzx{M{h+XyzTm`cL+DZ!ws$sA!NyiF=$9Mq3TY`eH81(2?ld(Dn8` z_)4BzIvjr|8qay$Qg-r=+g`ZW>x{JlM1KxtMtYFrtp*pGUby{Wpk0I%wh=^yM~- zp-t~x#&*uaz|I=O{+Wmmyu-fzXibR$=48m9aNT}i-+aw}bXHDhBw6aPYuQ{J_p zPbo>{h9nS`A}e2S4XS8Gt%BHr$3y2zPJhzJK{_J94s;}(+z3?xnZdWLKTKFRb^omz)uJ3IrLc# zW97ngwG9vYehN+m=nIt$2sZ<=$v6hLQ_NqoWt=~G&XFGZ{3|JY7@u=QXi9O-Lk%B| zB!Z=1(Mt%nLAf&T{(8XuMIHgNct5J!>2)7rUXpqq=leLk=>>M#@`-1ERVGm6MC(X} z=}LvCDs~wV=O)P_@Yw0EYaq$3!b&>s$=e!Atu&z&L+mpofPV^sxx4T+Fpv*rB8o6K zab0K)EwfzQ%pif#Exs)56E3Ed;egzDY>`IjrUo)PcGI&vT!-|F8Lw6}t@2e`&l4I( zpcZ9S*$gg&f?KC&&x%%h6l+)ENH=bzp}j>f`{aiESfdoc@I2 z9|{SFgTnn50)<7Vl~*~*F!>=Y+V9pdh5ZjU)=&#+dwoM49}VoAdP5Cy4^9&7dy&)6 z-#w3DLOyS*Irb`8GuJ>9&CU5xG%p-$HAt-MTP+93#y=Qnf(|@ojL_|H`;c(HtKtNs z+&Ut{+!gKltimyaW^*cO9!;MsX9D^sHg61u?h);*`d0o{Uet%asN|@5N4(za9?6xG ztT#g(?Z#{IiupH}Fx^gJNjDgvs8&OP;YshfJt)9#Fo?qZ%ejhd@>lDd(}00`$~l1>D~$Ah$Uc}rY*j(+Fk zE-$$UxvV2G&h2MMu_ZuEM!^oYC!A&Ml4x;elUCb+G3$^Zg|#E}1Sk7u`}LE?LU^k7 zBwCp-MQDm3R76gIYtj^fKU5GuNZmbOe&il)-yi)~8tH5A*if3wq&HO$ic|wzWXy{f zdoLFAoS%-!ns{H|>4We|&)j)(jT|_Ohsxf*3<`+)sUu(qCA6F9U`xTzice*TxW6pZ zdt=Xy`SnD?kr_muEDi@#Xi>#^Q72e5K7-@D{Y$CQ=)ek@;{tyQh>}ojoE`59hdoc& z^R+A^2FwPRJ-~&u4lLw=t=tQe_2TRdNUPGuou?5EOT5I$IJM_M*st;OIU%wj-tlup~ZhLV`Z3e)i@6pnqFJd%#X)VD?>AW3kXCoA4s^6HQCJmGQkab1*c zBW!@xPv@COTk{FC7d}*&X=s=taC(&iUR_puw8Q@RQDu8fN@}_l4Po{kpB^iTJ_ua` zLyQbdNy6_laG9>vQF=I#;U4vixj<~MJ9Wn~UwED;uk=iy{UCg&AJ9>ROS8i6%;NPK zI~tTJiA7y-|I}0+%t~uPq%{S7o|CUe(pd~^cw))aUYfS}ainx7WbJnQ zl^QwT>GLo-BTf*>u3W#}?opsS=lAQ`GQLi6-dQ=Wrf7O(gBU;k zfOLK)8kGM>H2Xy(E9`9Hv!;P`Q!=3=r6>=W^j>=k(?NV zHn9|0_QB;x;1txdj(>D@xm1WyH+`#36w31M*ia6raNUHz7mMS6kNIGUcZooszmu*_1ega6sWIUaxO6g1MGj4x z5rI+sbaIV;=a|iciFpGhI{x%acc&OCzc^Vvn@_|_m~H#x19tBHDaQ1PFRFV)*uaw* zo{`WZc!WQ&6Yw+(j)Sw}x0wI`7{y(br6*QW-Qd`Up_juHxszga9{LJ8e_Hvb1l$B{RC_Pf4DQK^s|+*;eg08aHL+mq7iMSS z-;wN9$?Bs<-$a8g67wQ6KcrGBOxqo!BI$ynl~r-MCSXPoH=vNR%fL+C^t8%NV+P%^ zja^nEu#wZmZG|OZzgexI%Yhb$6{gMMj{_U^CNP77S6tzGdESK5ZMzIS`P29oMehpD zpY_iU($-PJ2aqzt?56WQ%F@p@Jo}4dM#j?=UUGeqc?$6e-M;^l%uspYAEtGyoMP2t z`pF23U%pPpl_?{d(KRLpd6tD~uiUQW~+PL!P|ptLZlA zq&MK6Af#`Et5%#T(_WbLO!)CZp@Hk|n;}Cv`qWSNnfSSRQSG@8L13DB5`LWvcOin>4U4dXXoeuOk&;?CknO+Nh;52sPfquEs8Wo0>ItnPwZUaF0Os zfJ#8_pB+k(dk8$E_+{B?YQSB*pDDP!=hj~05u{O7_WnV;{h-*LRIUQ(wnDOOKZdla z!wjAZ`(&SktBGt#@OyE;$=tcTZBFxf9|y)Go4EqcqMH{YSuVJE>D_rgo(pn>ifLbjl2iQBoQQ>^JmAqsh^{Igq-eN0fI&MfRpB~^V+f9Un zbcH_Q;$1F@-Ws~B_8xyBM3~qoGUPrlII!G@Oi_arzt9x`EqZCN1F~c- z^81Z;JgAmdfep2)m{qa5D2C3m$cT+4+;{{llD!3y7U|&HPTb~>S$9|K5*yx?9Iz`1 z&R(aX9>ic~4ZmIn$(9*?Z8e=&XW~}ZDcZCLzI=I-@qltoXrIMT{)VF!fn-K;SKp-2 z$ZuNrc0Ii&f2#l3u5l#*W5x;?%GPBbuaN-LvhQT52S}Kcb8T`~CUB?9b2kzAmzX%T zUk<3wl02StPBymjGJ!J(KuO5e%W4MhpRCvQUOZIs47<8W*LH~FqO4UoR9#a$3rdTSsnA@3Iet=?zT?W@Egyr-dJk9wEmX` zey6@+EphdRImjRR1poHaR`hv0PYX#Cw1{!DhVGfkDj_((@0gqN%k0g_MZ{?i?sk%P zUI;!EeVF}trIicwh1stwhxE~2R3(($rb}koCRYNZ%=B*ewo-p+kzx4UfyOSX4jc8Yx}k9@COnFd;%6Mfr^GOnXzK&t#C+G;atQL<=W(5O z!%>W2Dqg_;q^7NKXW!Nysy4h#)k5C)|3iO;_>AqJt^vUqjNO_7o~Fd+_1i98{*AJ$ zww&B%#Fj{iwfGT!*4kBug7QHqg|qKasw5@$`Uh;qEzJlOQboFqcW~wObydX58r5zZ3lja*p5XIypZ;NjRMNKP{A0B3$ucR6LMF*~Rn;D| zQ8X3iV4aRf7~2j9KOGf6I-m=PFsB$UsIgEQyxCl)Hk|k3F})l>RoB4_lNlofiPukL zPKkYJeCkE9R)|J5w`_3e7)7h);K1hF5c-aHfA4VBK<;!yfaUaQZ+3xhzTw?al+v`M zB!f}@b}8OiY2<@}lDX@Gi>7)DVck&wQ8bXoW(fb!magM`kM!%|5jC5j6%j-ui#^L0 z_t1ozSL;rLVvX7`MbS?$x|%()o*!%E{)-K(i(ow|`d)9~fGl7d{RIjr5C+h4DHGKo zecA9-s@9HxIvTSHLUxLhV&aZDH=8E))2%6(#v!tUE!662OH7k<%b3M<5V zj7>Kt?~xOR=+#2i#{UbJe^YMXHj*4_(XAv1LmRPX7)3R(wnFWXShyvz+E4IIp=e{w zCOJ^MQmRkI?a#En%`9q(;0<`Zb~n$NU^CjZ>J|4aIa)572}0pB2J7%rF|N#U@jvQ) zgbbFcbS+Gvvf$!zijNN_MH-^bdKOhzmzRT2B*wvd*b4`gt!fYoD?aM_` zL@nLv-|F8-E6aP|X^EL>K3l!MPlbc}!|5jOJSJM%U;llY*A#9uXDH>Rt`1#g&EedH z=wiT<3H0{>vk5}|KK+I)?QuZE%gDzhgP!2mj@Vm#qWasO<_U&lU*Vi6{oGFHZN_#Vp%bfN z^R`{f1L2v#5?mMakQlgmY;R2JRLBBkRfq4iaQ#eX-dTR_qOX7{f-2ehID2Eet$;Z! zR~;~NpBk=_)OtJdIf0(sn0&~nbX@32gYoa|KlKeEov-PFmT3(yBjCQ0&V#Ht->*)Y zcyS_}eh<5PnKI9S?dyI7U0F-B2J0ftJWV3l(Unl*xLa-tX{h&H4lV^2?qBxZ25o3t z0w7+>QY1a$!ll8bJ}JW$XneMw8VPc9owG8*hKf-wPbnj>#H1x~H;Et@f-79EkSfea z0q2wW&~)jbZcj3#UUjapmTjPaGgK?>L3D3$8j`cRSO|{fzzle<933)N@+F4&8ou6^ zhiczaS*ng?lX}Mix%(Jmm*<~17sU&k)wdq!HgOT)TOUqH*+Sy` z4(#INAA*kWU$(BZqoam=V?^J!W0JyK+#B=YCqqu_D}prK69%_V*S@Z++g;J!xq1Ua z3r$SNElb7}ttzuMlE%?ILnit~I0+CYoQP%g-PXAj0RB;1&erj*MprE5%Jx=&>;xEd zhZWYp&o}!dL)87PlylIhv`NyiA|-Jwq_a1b3!}@*J!b$JgYNd$blvcRRh#A`kG`ut z!H*wDmWsj4m91rC_1oRQ7coMZ&R$vB7S{f` zuYxl;dFWXsgmd7~OKCdkUNL4R>`iClmIzU75nE_>Ls+Cm9e%(YK@UN+CSF3$pe z2s}2PTGWc9SfX$hI9G3uC|==@`$Iv_tshuS_>?C0vqw@6zQsd^!Cwcewbq5xn?pT#$DXOZkYu?aon;;z$deOm7d{GJd1_j(c>mB9#Y&#_>g@3VB|~3X|lL8iW-) zD{}U}(DGRvb-GxOUk!zY0F#gA9*NM9wJz;pKg@eQN2GZ@_ThkNX?7|Piy5{is7zzd z%gsnJ1RYb(I0~*W^R-axACr5(?cInMg0~{!N#VzTC22S0`TZvxxf*3+8xQP?E7I>1D|_tnGmRjU z{~OTLUm&(>O}KfZtpd0~3EVyAx`;=VD9*>x!EUC2ln`l-y}BF1G}LaXsqh0etv5=2 z9!_Pyl}M+J!DALE^THr8i-5ODpy!R2A8WY0l+^A?k!U`@b=KjDsyApCA7rN=mv zZAHO6ZbDkd7waxq!v=gURq*1#LzMX?38W(gH%N?UkRta5Xr_UXkd(2TEgt^vcm$Kdp?7+5azZU$%1GoI91q@kz9BufP4ky6lCY`9eM+>?(7RG*y4fUSS ztv#!$+nb+zec4^Y)Hbs(Pscs%t$fPm&vMx0wkQGRdH94L%W9=5hVbXiveMzg2@0#gJ|JrWO3F*eLCzeH-Z7LElI9G5Ab1+gRh44px zv>s&QQ=+HI|A}F>Uw8{V+rpF)2+11n(IF-?vaSs8l$2d-p@u#!oGU6q=xr z2uW6C7XB4UuU?IeD|3f3Nmt?Biig|rp5Ie6aq5*3t-Id-vUt{Y0cUQVmP>3b+}B^j zf)nDV^}q^4OR)9#Hv%Y&mOo!l=}QdQ5~O;@6U;g_83bb+eJ`%(yWg_437w^zqLU zd#e+0Ku#!a`l}Mq@gNQ2tK!cJigy(*m1%gh$3}#V*y;%8Fa>yfT(m2SzARtBVfF z@DoxWddvg*J)c$%477#qWGr5!*)u54fy?&AZSqKH$j} z@}YR}Q5HDUn|%BnEZDiYHmf)HmOVwtsf@nm%tup)RDrYg9pv980>~!C+IvLDxywI;gPil%_iw;?Xj=Z8L>D8~iODwVajHA_@4qFtz0(LtXL?6G5Q%AFpJ}^+^!qD`A3lT!Ce#*QJ zWqXj45l$G#eFXsz)88xHg|+8oKP9pU9!t_qnPA&}+56byWn=L-I8LbcYhsPQvP)oO zPiAk|7NKygdl|~7mI_;Ub zg|SHGBVF7DfW82gIRXQS~7anG7MP=`$uh?7Dwy+hdaie_p)98>uzO50Ij=lJB z{%cLlS2BRhfz~<`OX%2d_!2ghkQW6Bx?|%#>U!z8#aGKznbI^7_z^lJa<@==%B+F& z5`OWJx`kH=tCTY1WkcECmU8>vmwz`s_5MV@XDjKPd<81mtU&HAzQwmPKOo_@Zofx; zf8`P5u$V9Qua@pi{+509(;C*-NT!xQ?K#u8-?UMr5ta?f1e;Ce-Xmq}IoEt#bb?Ka ztN*AT%ELI|L)=tW02V;tmu2S@iw^{!ss5vkq;PSN{8%1;%Z#LT_Q!|44NLVyw>$TK zQfJ46i-~^OS*=ZyJu&KI@nsUrYcmf#J9{wouTk=1>4O^4N1>GVf!yzLJcASDz4ZhsM0b)VWjlmk%su50 zLtg`yX`41*H8(ZTeJ-2N~_}hc_u*`L*$t254Bg1`6m1P7;e+|Hi~30 zG$MbGyXoDg);Y^_dLT$~-WTOBGc4*JzOx?g?DJQ#l8a_rhW+EfR-vGTA61uV*b5(F z<>64$VpBKH0jUoJ%3cZaU~~52pK#aCy6bTIc%pTy>KeLDbp;^F^w&k6pR>@U*rL+N zvZ7@ge9{8A^*~OY&6yw`B6-Yp7k2<>$_>tcucY)xP>95Lof?v5wQ#8n=wytWo`k(U zn&)?No<>dYyeXzj^n-IfmhmKhvflV>Nn|-L=l*tM86am$=1q~IX(z4`1MKO#)(Xrx z=Zy6UTvq$i6KzqfY4v^LW(IE7oNHHGjZt)l)@wVUY7{62I#T2yB-7yv09{-1?;L6O zduCg>&U?p!zca~!J`r~$HTuhtudZan-j2F)`pAP@pkV^%UC@a|2~eBVofirxjHdn& z#7663KB1@0-#2-?>b0%U$GkJ(hYU(4EPSm~pCMQ*Nv zGOc$?M{+6Ms%Ht6_{-L5QmoUV{h3a?r;F@%WaUg)^U?R`deQWLlw1S0*bdJX9Y8c7ZKNR61y=b+tvI%`&m%^sl5yS+F=1 zRkodZRNung^L!+Qg#2lHY!HLUqj^g1+w2YoQ>+n9GjR<#feCVu8gwYMR z!Ei|vOx{x~f z^o|oEek8WZ@bES+u6U0gcc+n6Io9u<&Gh}mr)uL=K2&8M6*ctQD@v`mbltJR=#dFJ z4kab-szmq(HP{@yuT30fr^AvPGt~I!UEdKsSNyZM3e=lD7V=f;<-6m%%Ew&m0}5%V zF$peYn{TXnyAsNOW*e*&XYgsm?^XmradL{)=@$=(-%l-WaeyUyvL|G-hvCVsmPhIET85qYXE+~NU zpW|ZXT_tr0=L7SWKX}6sfHkj`8U|NqOl$O`EHTvGBc11e*=kON%~TH7M;XD|M`Tcz zyeZ4yH*a1H5FyMPG{&7F15>9?A^wq5l$iWTn-4i~eg1zDehj!fKY6`=9jXqTcSZ@y zKaYVcs?Uqn{7Pdy6db(s-BZqC@4WY|IT<5xXIMu>@f6n^EMu z6BM&usXJM+OMS{YhlRuy2ZK#LPwa!5_0F;s_7sZO(`Uadv~CHyYw)5gE%}fXC|zTm zuMrw*Gl=oF{mV!ayoipm6}6{=Z%lykTXz zYj~L@ykIni=48(Bu!v)Q4>N3y^x=ZIQm>C3mgm`-JY)!P`0R*yD8+go6z`8WHF)i! z{KQ1Vua56mi6&KlawdL6o%S1Z+5;cv$y}64KjqNhTol@!I_P1ZdDTi`Iy3|!!zzKf za5&w~#JlyMGdI6u1z=Q|IafYYGx~Ufp6u24QVFL?*^N( zeqOzFXO2uT7_%~q7whq%-kbRj~g5~KA8pBxve*46ac7Q$dz)AAk6U!+Ijn*{vDQK-0>&uIf z1&h3~wB@3=e8+c?s}&JU&dSPJHqS5CDGWcf?7yihd1}Uo?LB)Q-kGVp$heijsia@^ zs!0Bx1ByWOlvH;8^6}-0r(?Nz+HycK&(Wj9{>V!jA}~(+z4DGC(R>Kw5zR^ud23x_sW(mDok!(2KNtV3{Mmy zd;0ldhirER|`1015X|@a1Ua8PiOrIlETq= zDJPsPoHj}?=+PGncPu?o*jEjCAo)&*0op_evM7_{f1&wV_lBV`FSj6r4)z^dG(a2( z693>^_3b8}MPF@Fx{P^H%nN%v9p1*x0okCK{q(6!TU<8q?=7L5=l-Fo-Os8O9W+q3p0oBBi zi_7&Z<~Qu|k6T8>EE^4#hJC-!t%7)|Fnzb4^Dmw9L@HuA21lCNj-CurmYL>&f|7{S z{q3FIe_`s^B-3@g4b48QtgZ+TDtr2+A*L;;L`@FqTsO!-+@9EYA!!nZuuzpZ_Oa#@ zF^a;`Fl@J~B`sL1e?W*{eH2YSebfmshcGn^H68zOkg$ zyYV?lB?U|6_O=@RRiuA+gJj@HwY>zs-Q#^y1~vk||G4|nXmF&MvRlL24a=DJxfsGw%!$fjOW%bVQotXwt*;7OZBo6ZKy6TsL1|T{% z5Z7T}fHE7U6$x8p_cE~wDXSqOG;MrCdai#ICocb@2fO*EFKRAXd^SsFpZy~!fwUDW zEMFd;`nbdAWD$?UR{%3f-j=p;0LcQ;+T7T8g_oiAtjczAsM@lXsjSB31cLGv;DSA* z_>VY;`}%M5IY4U(RC>D9d?}?!)+U$u*V|keKxdi>($(|^hj+S*fDbCER&(}##=0wE zl)2kmI?QfUh^pBWxLRO)+STu=*gLL-na++|Q??b@#WF8152iG|-)p+ZTv}UiuLX4W;L@zSu)C5Kb^3 zeCgOFY-B0=H@E&%L}DcCjNLqmk6jXos!-VkYp4XcFyh|bMj7;s%ojGmQ$?AOjFTfb zmoHj;ry+7*-ETP^JoU;1D9K;f{F^y&Y9^3)YQ#)eJ6zJhB`N3f$%d8-?8tM+!@O2P zm0Z{Lam<=cDT_PDcO-)M43h^ZW!1|4veLRkmcv7>B?Wj8d`Mt)ERjXhRtJ+~! z7IsAKKRD+IqkAQA=<;iCOVwDWG{mU6!#0yHTIq7<>+HpuZ3$`qoBlKbLovZVFF(pi zU|D+YG4(&=RrIU?ra3zQJ$Ay6l7B4pK5oD+db(10o(2TFIt)oZ{Q-6td+PVmh&6Og z_e8CG^+T8@<&qLG!Mw9wTmfv@dSjza7X=h=B-HW368!X~puV0@s?1AP;$`Qx@Dv|z zx6g=}{%B@*`4}N^)tI*i`8V~9Gjqf7@tYH^H&bcsnfF_C`Py3QJnDpJZ2GHRAQF;M z*GlbY0XjjvN+P)T%hH&eNl)T1fwR&DijFAa)D<6U%-ouYzddzE4Y#A+1FJKqX60~q;cMKJP zCBylOGq8SDQzIt#xh-!6>PJ-WLaBquE~I;0z9 zG;Am>Ejexbdeeu_a$}YgD z?TbFWR!0@CCVuo6qOF$}M9_FL#qAQ`1Kxh&-}5;4lZ{N!r5I zv-G{;r`;DJBh~SXZF+XHwA=P2x+w{P#p``i}}VVyhb4f}n59*N5ytP~<~B1A{dA4NJuyl&%$MqvoXhlE=REHNub*#=*YlozdJ>&R)fTd}@u0 z{dtIFBlunFg5ZrTr5;f_oGDjbm^b`Ky`0lILcL%R2>6%A_St(XZ+TXBJKJ-0hj>m? zN(Q?5NKt$YGAF{GQrbW>qd@8sFSKHP*2^J2 z@!Ti0BQToKS&;89wl_HxU0<30C1JB&XHO7%&u`I;4RTTly|09qR(YS2?jopPc478Q zaSwokiNodd8_&&wyZihqjxV4Gc%$KulFo?YrO1DX(nHl#E4!~_ImPR9+7cAFY`}<> zAiS60s&DAtR#E5v$u0bY#rVjb2=~Wul4wg-p9XSZk~3*7R*!><%jv{JH$Mn_V>g!E z`8&b9NbH)ocqMSnIn7G~pqu`>)Dd)W7$1-s0XU)s(k2%8Q#1rV3{@WoUbNkcd1bn& z?2qd$2QxZ#Uuk|19lDtcCI972V=1&Dw)!Eu10LH8sfKDw#A~%>G7DFlvZBsevIa1q z7tR3m4(ZX>S>N|kw7;7X5rR(RSF4luhrMXST<`BMd>LR(9}~_gs1OPqOjTc`$KD2A ziewMr&sYo&d|x?FX;&>WT;mtl?6533^QmYtjbt}%>3^ox_N;|z9992iXb%%8gCm$s zwEj|a&s&33ENd!E&vE^Q7F9#b)hr(w7hL#%?8kK?0oBlKc5N+zb@5wmpOX#25k1OM z8T!!;dxv${0ry8Ye%28$AlJpwKa~n#E2b3NM~expop%M?KP5hNc5^fyJf(YR zXeyMT~|+`ocBbMs1gIzc?Or(J!iWJS}as?uz9eUEUR%OM^Khy{OWGVPw zLfBa)m^4kaS`vopmM68k(UBieZ>5=>#vyXv0=WmpB3mo(K6-X!gH;0vqoIcZP7P#^ zZ^=F0^=pOF58VK{^J$&5TNM>KVw|OYg6pM8H*?|vHEud$iSPnWB+ZZa%~3*EXG3O> zx`VOeTSsIk7S+IEdBp;NC_=KC+OFHPavP&plR z!rkl(PU7t*^g_$1)g`1N@XHVxzv&`VVc1Q4J#>DlExZv12Za zrs=-96*?M+5H;C=kh-;w#`#S8V!*V&8E;bCv)mX;X?=L&PsSk*W|Q{mjyg=Q)fFDS z-WxbruYuWGvbkE6F9q^HHui0vG=7uEu|6x`Jh!&iWeLY9QdMpHB{fhF*l7$Z0>>a35TwNnrBwTj|IlY876_+G|t z&h73_JhXn3sOb-Gnx(`NR+$X}k^6 zTh4yEC-rhQT2VU{q+v-fwguy{4|FGl8K6y>)ZWV5F2g+RmuekrCMoorD{8=MAJvF= z@0ICg2T5jrhPbCqbcG7|oXnKQ8Gj36TfRwF{<9IPK)N>Ovr=9ep>$U@=h}6!(Nz+Y5Zf?9${-s+zy`XegB!_6!V&3J!c?7J-jKyO>4Wbv1alMl)ZXU22Rw2}$ot2dPvTSjVd><65CPxhH`aidewzF?D+fOCInUe(SkKHuL9%aB4?UP>plqCdjaS=E|ZD%tq|FACo zAk+HIr8PEg;#Fb{fHX1GWsH#ZX7-q?E_u>g2~}%mfSEvm&!q97QGB>bUT`_%YIR()$*f2 zP`7*Ix~gzhyf!YEBX2pr9>-6md|yDq7eD%66I9Ks5WlSLw`a!F)~iN+<^Ll2?~m*& zfQNe(36f3YL0P(I(l;N$dJ$&|q+&9}LNlPc#%LTW_#DvCjvg_|X*#gZhoIwRmptT# zg!xg;g-L#Ail=>K=<s0zoU%{d%_!E}iz98W7X3j@E?*Ii+!IqM&&iG%##8VT! zQtgTsYwlrhULP3>rJ{ALoU)|BGmm#1{dQd z3rv_9Ybw>_mtck;wSHA0aAChiGpj8Z_WFZfo-6jbLkBK`7N90ET*^&Tl)WJ?o@bQ_NN(#7Lv?N)mPKLsaNpwuRo(7OBRKdrik7l8b}| z_wzpQRAvF(b*VAcmMG~~?%a?2b{E^$@z_EB(G93*l+-2r!eN3+ktixn4(k{_7tSQ+ zo;>ZRdsv;9Q%t+cXJf2TyCIyM36iJholN`5P18cqkIL{-JV3P$HGbTFJlU z*w$F*Wp1*LGyDByhl3_mibRdjh(MMl#e*y_FHKlAf zoA)URV8ONV-QC`3|l*XhI8f;Pn&LZ0!lnJxJt5FxjR{P z4f(6Y1nEZ&TA9a%GgnR6Ki^3D>}mBfxdFIxRK^y@sI4_xiwj;Xt>kCgSY(|cDf#TI zZ8d0COF7hebEqh{>PCeK4r4&X0h1q}i^g<;Lip6%K~4_lTlWM_%eI%>>dQrlE?Q zL%4K=XJ01*+UOl>C!1v@>X*;Dz&Jt@8&IHr(OwwwLMYAqy*cpD3JImo=@a^}W}G{& zV~^Kz)3?@wQMBI{w^tj@)XG60q;J*|LjU#D0YFYik}p}y~qK;fd$;7_22-dNK&nn7!yf65_Rmu^I+`7P)W$APN$V zXzhVa5C85sKqd14>#1}7^lJQZBy`Z9aHMllZ6$$062^Fopb96Pxv`1}&=|ToK%?_k z@j6^A`t+noF)AQ|o{96A_LhJC{$ftFINWFj8b=i;d7mX*K68Rpe^0G&lTHWywqwOn znDP3@2Qx1ndNo{Pcv_*WfLFv>|AjoP&B0&VZ3f7y>ay3lipC#fZ{;?Za&m!w;f7&_ ziK}pxU)RNUR=m{rN^~>BF`q358C{0Mej(^D$kk+>t$SY5D}-ciN3NMx#LT~w=CJdQj6KCEu6~~Ag;p_WW0?t;%5EYjDv>_x5 zNQV@#d_Gvdgi~Fht*$)>>K`RtgQ;~Pe1F)v7`6T!>>&g1;yH7}Iuu>>_HQv>qQ>=b- z2WlEL>WvphEbu-aG}W<5uA1h~AN?geI@}nK74!IT+bPi6W5?7Y3zITN(lK#_q)%9! z=fz5=uHriSpn5Tp%98Jj5<-!zBxEv|Ro$Q$1JBO5-!hqsjVM~lEgQ(0w9YdwZNwqk4%H|k$1Y82R)CFB#30_kDNAQ zu<&hOM1a}Q4NWUK;qo6M%s7rC9u8RbFG&|QbKz(Jw@1*u>}Z;KR<%_DVwkfIaI=n^ zmpKw1)AGcH2k@}}%CeF7@pndWewL*dAwo{2OS}Ua4rSDj92n()`Mt1A14CSX|Hsf0 zt5<=Nhh~m2$T~4*eYyf@$3rQh+}yA|8lz`7?E^i%+wW~l$o3MxVf$LOyRBB_V$X;h3j01f72XxI^biT zB^0E68G{zlw@edpjIn$85&`L%g3-N+s3Z6FxV?GOEzVRQ86LH&=r#*tsOZQjQdk@g zW=QX?&}pPkDf}3HUwQFtiHCsbk#t!4Ox`)wqPJ(_{G4GEe*d?~yT}vOYk^Wc!IoVy zlmVBUrCmXt#~nd$85L%|2AWR)Y4UQr1E*oD1Y-nY@0G1<;wGt#Htjucc?hK`Bv+Mu!mxR zb6oEi%7qGJVu|V}a+*2(E$E71LH-$UUEc4!a60TfN**)J*m@y4kTz;A6|N5{Gy!3g zLo6g65Zhe-4Fh9Sw_$lf=`$xOtq-k)y7XL+>~~jLQU4Mxns}9A@O=fV;g@WN3*qd( zv#y78KJ=#k@AH)F#w9kCVDKMOAlf@@(hLb>O_H!;gWg9>lL!?olYPlh)=Udwc`rD7Z>T^aw(OjJzEtV0E3? z_N8cpErM4Wf5lx9Y{*#e-FFie?Q`dU5<<>rky95#M*k`EXpB&D=5%Ko@68Ih*vI#HvLl z*%y>#E=0BIWoh{rQt3$5Z2j#=z@8U{Y~Oq1+CJjjlnc%SkMExz2vZ?EJWM)0DB(Q- zMFuxp>3jAa+Q+{ot(JdG=0OGaI;Z7m?v{Ru`k?daePf#*95I$Xk?u`$r_}f>?TX+) zs*~)3Lr(8>#~~$DKvzjpFATmTw;pa>$I{45e{quxwYs=8gI^UB^^{b`z@0!PL$M5_ zH!<>#f^jrBgaMm z9GL{G%+{Zi54Qw9@Tcv^bBor#2%y5KF+`g=XTd6f4z zw@}F`*~f~{aqh2v2PngW z?)~Jb-@yOibbo&2w%X7_?U-Bqa7(!MF#hp+Wloj4r?`I!Y@WgqwK)IRvL%PUy67pL{7RE?Vq zH>>lcpGuF~UZ_nIV8CX}qLka>i6KInXJ9@|lE;-@PFrl(zn>o>umt~=Pk^V)EyrXi z_slwaEM0;UEy_aSb+k15v*_zd8;j5Kl6q3SA?g$f1A|zD0N*!-4a|~w&~p9{^(?dc`9qG{jIn{ zw^CGtxdr~eS(4?qc)+!Y3**C1(5UTWI^7?UmL5-w>i#$aKuu&ec`skikVI{t_IxiD zd#0Y(xVj)F4xT+tjM*Rk>4UohCl!Wc6m12g>ju(cHsg!DI51DZPo(>&($~*sm1_1E zr3!SNBC^o>P@$x)eEg3=iC7~`l*}?C&hYxF{!D!w@)A56mlS*&EpC@tUm6hFgU@hX z8(AP0e3#c&c5R(PPL8sStm89!LqF;*)KY0dQgcG3eWXE!8I-`&F)y*;7|JSesnk1M znqfz&hk3i;GN|72J>3q!B!*0zf4?*H1+(F#j-45n63=$+89g-sU!=S!$?7 zEU;KQf@D+IwM+Lz2Czw@jZ8brEM_vvZI-p>Z#Wv|D*S+D4O)YIcl#j9s%<@7*arLcKV z3i@J~?^#wK^{6nD;hLEGEOCypacl7-IZQcPL1#H|M3~Q+CO3*OPFA_?u8fI$?UvfU zS|7oSqBPvvQ2TBfZ#uGz`^O*{VC8;i+1E;a1?mwWkQjdilBfY|E#~ynxTg@~0boHI zwuvm4mV5Uc#>a-3`EHc40)4ub*BFJXl(g*XJ2yi@w;m|INCvD(+tEMy(Sm$+HCaTX$O)%RCl2 zIHd9j+11L|B#(PvYUx_nMK`BB8^@68O%BoOU%XnJ^h9smBcEdHRzJ$#W%%aWpS*h*Y2QD~+km4+n| zyVG+a`D04T3((Q@PgvwrRLsH-SfWxkrO9v=P#0rMP^#z!v&GVB#g5O=IY_@0kna}M zDoFBNSARkGA;4X}$C{=lZYt2(8`L~sn7jE?;fv&0cvUT-M6oLIy=LY#$^7&-Q6MLY zoa*!m>EqAwb`11K;7d~N7iVV;ggG7ynScwy-71=KU{!v=L8mbR>gn6FrZEWrIE)ST zG6sG-Qp1Wumpp0@wrxhnR}LnmvR2hVt(N@lqhFam`oJH)fJ`4J3EonDlQp5b-b4m zpdp4Cfou{%ACAT9U*bMN3-&%iue`*#i7-ot!=lsm*kT6;F0!EF{P{)NA}6sx`P>a0 zHqQRT!cQ)-ZNdjCzvp@ZqbJFGqHLL;;+BnIO$rWWSsomrGRjY+?DaO23d352xC!!_ z#O)p2ea=m3LO^IW&G+Z_UC={QeuY+abznvM@jI;ngi1FgU0Ei@%v5=z5TZl2_} z;XrF`@d3;`XNW|_(qR%hT*9glsodzsRxpm_0UGya$Q0$VSo$^YD~3?5De_+}r!bvE z$w4XnryN=JTe8-9rL_F_TJ(5$KLa_DVzg*+3!ZIHTy})eGmEE17kZ8%INKp-yg|zg zq0~1YGioNo$Ltl_q80F5*fLj4%vP+{nMZ!T!HI9fJ$G?|Q&TIzhu?U8II0^~w5PRZ z8gLx|>LKWvTmd5ovfMd9Qbnx*3q{n41wjqGA4haFXb#m-A#%wJNtu&ad`ZTGbKq{B zGz(Sbk8xmzEKhM6%gR(b(#@X??4zillgMC~bu!o0Hsv}`b)+O@iXvg}h`oJQiYT`@ zlNH73yc$KL^8UA)B`OR@=pu8zx|cZL^}slHR#^94xlhzS>%_gf;4f?h?`fJ2QY9UJ zN_M5s2rpaDknG<3veRSU)QzAhBUTypULUgk>u1RNua`1uou4yqyf~|ZDbAkU7xUu2q?&2(xXZHjx)3)`Bh!tuilv4Rex{G(Q(B=f$bo1(Vi zNCT-Fqu?**I^FWRqu!!*3`yU0TkwekJc@iqNnUO%Fg`;m&~s&~mYrSZyjci-Ein#d zXM%Lswr04>cM;;OfTbDhb=mL|fTXm~3++LtsxCX`f{+GSQ+}C*Ud+*NNU8~GJ8oCN zRUhhs*jUb|hZREIw%=3TuL)N=;}(G|cY)AC!)-~OU~QAf;lj5+Rw8T2PFEl{cTIeJ z&IF@+IFaZS^*VIuYj%o?ZPij+Gr@}-9p1;1qs)r7rVq_4gxu9Sb-$J5()E^3c~{f! zsv4qSUJ*A6=lFM6S+kLbx^L#DCdB68_z&`I7H;^^cr4cy!-SdOJOYhI5=^f)iXosfWq{BBVfg_y4#Ob|v`G1M zu>G?FBG2^t*a5g4auF%|=dBJthb3}4$wy$L3pY_)0rRDEZH0Dh@47!GLOXZd*krp) zBycRc3dDt{1Ve;eLn3$#$$%?T>=0R}&(lbu2&w&FoS_X{)Md-huk$Irj2{%2_@ zp8{r}R|lbi^hjbv7pKACU&faiuPo+;X1tG_i1GvuobK=Zb9-|kUU31Lamg(=W(bMi z8B4Duv>3BIXB>|@jiW+5`jSM9ZdL{m|5Hzlg_z-1Tv`dK$`>sCZv(M7r6r|DyLL*Q z2JL(v1ohAPyBb22a?`R$>1BgnIJiF2sQLcV*u~0`G_`ZF&4Q#ntrvs!tj+@x0$@?f zpk;HaOuMa)79$K-!Dp3DhBMD@P~JQkgUqOa<@p`xdMy5_NGwC}57vU*`Mq>H6LtG) zv-G1qV`JVJ%HrJk1W=Yl$U)|+ns*k56*T`tGcv8R{m<9O-kSk@UhSHcpw)E3;IxKH z#aPZ6jWePxH#JRxX@8K?!rB>ug}eFIyDw^uRKbdGZmH9r@*3KHI5D4S=lcyC4CQsB zM42@C4F;qGjs+3aTPAeyGGXv}2<@Nr%^_R34tc`EG3buSc8dF~lnYIp%t~Vjdy80A zXN!BS6FcJcEAupt(IK?I{d#L?5Np-5W`O48ir{^ANnVaI4=thH=D8AaNzx7$qCf&njRWrs7aIfzE=8>cG$baF)6)hV zk8TaN^tM2_*p7@B?3r!%70Tb@5*zzd6-`RF$CatSq#2mH?Y!UX1V0iwO~?`;A1+p_ z5!R2&N$@H3uwn%=eyHVdZ7aI-)r7h#y;24#+E##v6kqBF}X!ft@?NotfW^9T5^LN?J2O zt<40cjQ*fBQgKCIFn7sLOqGJ5*YGIEFPzehyyvE76>7E%D*=9dFEhnPK>)NmUYHMo ze$&jq%RVpFog6~lY}!%#=BLiI9vtghy#aS66r?L+wE89{xn3wux^GESper{L+^_8M zzel=9jUM@Q z-ub>FCSjVm+b{JX-U<3I69r6w+N5)9)2QhO*i!$|X!N^kj(eVt3qe+-CEmHeTLKoi z#p?ZnA8*CA&lLgeR6irFxS$yBV?cFWYu3vsm zh2_FI9xHv**EqfUNrk3>S?+go97aa+FO11;(?;z`==s?C?qZYyyW+jWDK_gK7P6UuC|~sN)DHWQWn%Qn z806oA01w;fhJ2DKdrBd_`oKwL)9JE?7^2{k1AaxTor7A`5_^1QYDdAEzIL`Cp+p^M zQ{4=neXb1${%UmJgxzpmL=kG7n`ofg6cc>TsR^J98=8tj>2Q@K(+!yhDv)97XU^}A z9^@FSK4IFgh*0RKlqyTPsJS2{+maHm_K^z0_qj?#BMiHHua_6MU|gB%4C*(C6mh6K zQX5=F!xI54{a=++!;QBZ?eit&poi9>48w)*Aw8DK!{1AnHJ%{z0oczwLJhD+zbUAy zH%ImMsiA+buW3l0(Q_IC=zCTODhDbozqz0rBbvai_wm7$uq|W0v?(^|~`9 zT6c9p7(gCU*zAL&W6U^rOo$uxbeged-^kp4-RSxcLNrgZNzmJUX2CB`2MsQ$dvA1o zP1#fS;LYA*tHY}q;WIs=%BE~6gFg*78xPi&!e_!%8$K^K+Ow+(MrRqUu;reRc!{@f&wFVKiL$)ShjI^r< z!3!N`3yWchU-@H4@<$dy<)5ryWt`YbjLXnD=?>Hn5A*1)AurdYfDsbuZ^YkJ22DkJ zhn0JqAF}^({-$B*br&;FJ9OekIPCpxi`%iXnPfA|9Owkh$bPHg8@`prM3)@6I0Br0 zT5ik6%ka*IDWGW_5+h_Lr(sRUakz0y2bEO+F^l{YkbsJPz=o74)(2Bb+C1l-Z5Ob+u`rgUvPt0*eREx`+o;xRt&;;E``~ zHB1iJABYxxhgM?*mVlae1dLkvh@HKETtG=#geOHRkBMB=@xrp9=4ZEZb!mLDDe9Ls?ie^zk>3TPDxn?_x_4zezi1* zzvAD!s~n#GS39o!3&Qcg*p6SMKoDxA?$QXH5)JMSkr51~{`QJc{IMCVs)ZG{JdgX79mny99ROPkKZDyJ&FPO6 zsL@F7I;lEFj`d`Y-2N0t-EnUI9>qRk%!img{QHc&l~gGaZYWcK?mux+L~fMfs&8$n z!ScaZ2|K}V#m3h29?=?~2FQQw>4P_s<#D$<|6uGE2ya0{&$4b5*+@38F zdySEZ%H7waSS#J4juGFxv0R$u$1TgMbj|7z9Wl$Rv8VeSD}MAa0gdt4D(2aYtRq{=xKYtGo&Nd03ml=FdXIJ@XX&ETgvwf2I18488>Y+~i7%vmR zxF4(ibnnpvJmmN&nW^4h@JD-pRj}VZ+q9HlGt;7PVVbAaR2btvy@xTNu7FRB1shxn zoaG05PNt-$TA4}Wxl&xPo6l+&L?|#U;J;l>HGutAnZyP*|J09e{9C8C@0TBvk7Hi_ zCKm|yH9JWILzGM zhNMMp9z3OmoKytQRoCbd85egoo@z=e@t!O2?PeQqnN_pC&nDVo6fa+LR@%$8n zrKKb~m4VJ_yQREzuDOn796f22ZStv$r13Dv6?7xPo;P?++BdgVmJk9iMxXwfK5&qBpD2$Uguv=BWO;% z*JXL#Q(JF_D?#t-mW~_HQ1bxg{X@l!odL)#pBQFKzTyGe+W?2-6Y|%M?L{7R#eCFY zY;s3KRj%hoJAX)as=85j;*ZtnMeIsuTq>I#c#y}wp49OsP@zJm2%OWvFX+6W<_C=P zV<+E8n5jMh>(MGNjGxs*$18kuzbvP?3usu3A?Zp3{#zbl2Z|2^W?kLTIMfeO9*qWJ zyDsUU1!}ujDJv6CYsp$Ax2xg=#jiQZMqe!2-0+Dxu^?V<^?IqBBlH;&bcmgley1mI z)pE`*E6`E*h8pt;Nr^=w^+6&DZ?twCgyPeNI zV5x>OQ-(5WPQvXASw`}ssEPb>IPm9-Uk0YQd>ERN0yJ|qsu^k0U(#iQo?AWc7eg6! z<9dXizk!M1D<{VRV7CsOVB7ln%vJWD1YhaA;3ssw)EPf&@~ln8gJiQYZ5ztgb)6y_ zDaHZbP8Ph`D3$^%PCfn=^Xut)4=t`jAl!Gn`0lRdjb>+nYWh^v_??~C-1$`)Y&BZq z<_%2N*fZ*RqLbh$5~65X;eJX#B-6{-<_`Ehj!ex$p zErAlMI!!xx&q=E}`YQWw%5DKNTQ~6rj~mqA4qNyg)76dicO?3u!?#M@<-?i@)4^8e zn7uzZDm7B#8kr;YM2yM7*4J$=q`yIzV@MGqwc0wZyp2@fO;yG2VId}>x0!2bra<{^*AYWBupQCiB5M*0(cra|sharWsbapS4 zRL*1YJNtk-ZnsU|KM(r~({Ph{jyftQuEkn~!4Jyug{R=Hn9w<#-+w({49Hfkr8)%z zb9kVUx&MFlZ)F!=I$za&cTsXxokrXLco$eot;Rx>J5K-!JXkQ_4$&-{EX^Q9_Ie9B ztiH$wgd1+%nt+@L%0!?Ty#}t@?SYoqSkie`VB+Uq0^nw%TOP90oAJ*@BmAnFV0E-i zXg~B7af^d-DAanA;+h^OEnM9!zhtS5(;QjPKrjj%E_AILw*g>c*3!92yQZ+Iwzw$;}rT#lXt2a9#BjB7diHIJqL6WwI z`7R0vMVEdnbxkwg1R9bo7r{K*0r0vL6<#VQIkDY6TPBqyh&mpI1(m?syJ0XmA>;ID zZ#W1BPwe_jg%MauDv(g<;Lee)`&!8VApLY7oB}#AFJ}jSlr#It)y%&Ix=UaZ>MivC zr1AA7?fJcKnpZ73Fr)Yvh2)e^<1*`tVYt2`uX`0$s~T00Rcu8>elw`e1~&un}ZH{)RGtjl^HE*vs2 zzmWwJ@-}^yWf?|kPCO6%Q3!e1Qo;;erdT`S_C#3VxI)8w$I4s|$It{6VRKG&+;98&%*@^@UK5TbD^n;nBCxDL?Up9R8?M|2%VNy4IFu zns;M(#5{}Z%>;eFRGVUaCW=+k9CN&5w=j?*U6Bm!yKj9EY_A|~ERxIT6o&H#ZwUC% z5mO)fKZ8_s?(Xl7s2};I*J?2oXtI<%S+RdOkowJU@2k+f&0To%Ax)aP!f?sJUZfi! z6^cr^;?)Z9h~OmJoC_pJWYXKV1DoO=f;k>8G1Yff=D-c1AFoA%N8X%c823lTzB`s4 zZ_SGtF)##2V6XpwP@R;vs2pnkWxs*^H~Z5|*SK&nxk-7qjPu0}l}e^wh$I{%w?io$P<_32-?jrJpIBtcaDVL=mDMT;lBU zd3^;8P7f2eByldRv1UF(f+Wf5(4xRrKk<3cyAG})p99IymA;a<=jvo*%<)*I&-Nz| z!kc)(R#Z+QjU?Dj^P%vnO!cQcXO9VU3Z3*Dw2DNlw{o+5i~^O!2OsHLn_!P2YGYv+ z`gsboE=kSs zfyvmzBzFrv+-KWi`ZOwIej+RVnQZ` z2-oP}(*Mk;IE&l&W>q9@yX>^!CZ5YAtt@qiaD1+qWj_Uc9e$k?03Y_nL;VR1h;!AB z^KJeZ{TjngZ5ycnhbs%zH!0O}(b6NDcH@Rsaa&*MQs(MBULdda6mJ0N5gd`;gynrS z!j?PM?$;`u^{6T~D#m9geSK6G9N)zTEEp0Nf8YMk=vw47?p|l)G-qQt`d%+}@7E%3 z-vEr@t%+;Web+V@QflnuCejpEm;6y-2^y2m_aEM!OI1uLG?`D=N(KCJCY6^=NcC7Y zz}-U>i*L*i*fu5k6gm_;EIzxBkb|nsez=?txcBwJl(*`B(Cl5%lRC*5JC9{gcIy1N zCdV06M^OvBJ^io9Td9ZIz@P6Py#D?R;|qgJjus}#DoCay)G1@WjHzj3IG8tqV+i_mpkvT-iXnhd^(GQmFHJGa>|f2FkxHk=Q7&XKe4hu zA}g*UTN8Utk=s8g)xWe=NWV(*`{3whkka0V$SclM5f;>${@R$})9zPdf{IR}vXChi zX;)-vo9Cc%@)Pd$&R&j(;-f!h^RqdQQaJ%>=BxADvZ{i}5W$>%c>Oo2&pPFb60k#N z{4*szDUJ=EDQk_$NSA=}v#$@pR+2&s)hLTe!Sd2rd z{@Z&!al84#MkT4&FKV0eqEh@q{M9I81EHgFS?3mU0OOX6n3mZ`letkRJikZM|gh$`mAgFcQEPmuPAXojE&Ap@6S%p z`SK{?hMkJ(FQ@g1UZa+%nv!r+joXt1yW3ZhqDYv3DSSQc+g%=Yeucjr@3ER&+o;8c zhvkJADJ&r29^*=5nV1@D7rseP)z-zRscGe^C1B0^AffTuCQiBLu4ewbRP*ukJ;z7X zW-&EwO_5WR+i$T$UTC+r)D*~r7(_K(MPRI;BRsdcYOOG6 zF8J*a4y6!_rO=`BdjBHPs0NNrPWqNViqu)1>2YPqrx@+d7t6pjcF@YJf5W_R8~nbF zt`hACwl^4^(Ho}315IF;l=~nlm@8tOQv?24AwB9)Q8P)zQyJN2owd$6Gq8id7`%Dw zg|6M)N%x@}EsW~m>ZU^Y&@(N*zy7G6R)KpjL+KvO$};ZgOOZZjJIg{mekTK^LEkjk zT~r$Y-}JU*dxY$g!odGy={g+Q{=PP)lnQDSdyi6zC~EInvsA3uBth-bsy%DgUL|VP zij~%=z13bJl-i?Kjn@99-}n6olKZ*$oO91T=Q+<~`^x%*Cf5JoD_-zO-=lD7P1|F8Q&Xqch#H_QIaf(~_8;9UFXvPH<|o-6&_= zWCE43lmfJEq3sFdE<&+jh;>CsMoW6Qqc#;|nLGD1TrUW;9itXzME17>cp;is0S3ed zR6OSngJ-|nYfp~d(Zhvm&-$?@F?BDZNQ2=9B+TW^57t!VS>Y!<4J56W>C+(=qFp1- ziHocvYvxNmvk@!zzBIUj_^DtuBy&M5zEV#lal=E?6k%BJP~|vfd;~ z&d_-oU6Rys6UpPE8lkF70lIz4-g7?!%}BUqNJ^D8bsk>Lee07KDZ_p8MqT1@bJ;JH z#w7p7jmQ~1oe4p!>Gp{(LnNTe6I&epqEKbHZFX0 zZ5#i@IPHDKcf9v))<>n@j2h7DU4eQM zx7q8WfqV0lZ9jaiiF7JE8CcPo7vUDHn7mS3@)3We%mkR>5^qJY)gd^?09h!v?9Ur( zo?ltshChLr)EP0{n8Iz)QxQ=Qn2cyMLTzgFLy(hp{rD%WTb1 ze*V?xKf?cB2-3k>dOGr3XEnKUMeYH(X`2&l%l{L_{$kqgil_6P3Tk@V*K!i9w;nl2U^qyCnDH z(Nv(_zgA6jwERQk_A1Q^qC0}@=%I|~dHm%Ia)7fn8N0!l1u|VD!_MEW602`-6+nP# z1Em1KX^g8otVzqu@-~h-xXSN>KL{>Vj;;)@dhr1BhxSl>=|UG(cckGY z8RPalHjLN3qNa9@FbhJfx=%U*Bm2aH>vbAgZ!uWD&NQ)G0q)5S z$1{~G>U@9OcWs9A44=vA6GFJSS?b=toAByxJkS$6wexsfR9Tv`Xv^8m{%OEqkigOc zFSF?x6;oi{8rJx@9V-)W(b^&x?1xh<5OA3A-hSnr5};vnEJ^@?rDvNm{4IZn}mw?9@&kBsak z3+k$pgI}k5YE~4dg?=YD+VFHz&f4nP*f)-S2hMIQLkt=jrfP=v<3kwTPCFC1Z3UPJ zS_^C3wsp_TQRxaAsr2&9S_- zm6Cp2ANtw_18Z~|)ay3xfo7bNbhqbzOOAR(TX7s_o%g_to_GRgjvkY)*F9oPsDsnP z<07#|!N(L_54N;3U2iX@e~U-p>9dQ19X^p6b+YU_{{FkUvTv;zGIkNO=G3@77|v)b z#S2V&Y>v0#11#ImW9xBCa!sULnn9oOtE0q^%y3Xca9@!P2Pfw2u!ecz&JjA4#0x~$ zrW7u?P?GAwtMEP6rW=CNIEAs7F%Dyj%r}gdZ*Q_e(G>n9Kn(lXdr=pLBjS_UhQldc z#aG{z#O3C^I4@1uUECi7+siZ@>qQ+^$qxhu{7;$87z15%)tW2uLvjWo^?c3gkcxwM zTd6;CfBS!`Ys`%qVl$f6j@Vs}IA;B~ESH5+Q!i_Cgg?<6&&d6o8Vuk5X|&DP^l>kI zg7uPz^4S?AFEScpWLbKCXj4g1>lEThCxnw2G=?crB-TO}1~vm9FeHfF&5m<5CygN? zk5wbs{a*BdE~Q=#cz-9i`X=V1^^8_pWb%bkC@L`+Y9qAphPOHNr_qEbIl%-Dtc4t` zBajvj8(~6N-Dyv$wJt)dVyhm^Pd^izr}UF@efI3txvp%lYC)Offaa{Bb&2P8;OwOr_=4Z-O3efa4u1xzm}v2*R24a!k9e-ZZ2~#7RA04p{H?(XYf0% zPADS7a9~$L81JGD98=}3K7xtFW~Wl|nb**9p=`o{?OR_bZml&(1b!Up(*e+}UK0`+ zzenhongXectYQl*?sm&^&ys$Bi0oue6mJX^m!JooWm7P`UyY1uf6?C^aJwgh=MFoO zf12v0#k$t*g!V~mzZ-{sY^0RH)_*3FD3G|Zg8%H{h7lt*CQ52QDw0hMfqs$Q&(7Pe zm(e@THj(4<7BJzTAE(rLe!stc{a1Ly?yO$0AWSGn!L5DSWkZ_vX`>OTi)W^I--@fV z_f7UTIfwxi>JG@jw$futxD$5c!j(A)S<%rosr6jK%sN;tk0nju`2N~>cVcQ)W9Uei zxVfKj%_D3cx!>XM|N8F&wO33vdrsB;ZqVBw;#Z9?U^tC7uKqT~)>@g zu1i0;TeUVMU-r{cRi9HA5A|3&RC{7PdGZsT6YhfO7ls{G7Mgus&)xvefTkwA+qa>i zT@S01ImKZ;5(U#kJfcLC2Do`}GG)2RDzy3#x5EorJ5kDs4k#{~6lRpaZ%u>mMi#km zm`K-tzvzkxq*2cm{oNpp92G{yd_bAd6LlM$!?4kcT55g`0|8vhDYWEDN<0=`3}=UUgtfZIWkFQzht4XQ<8!y_{}qILGw+R>EG zj=&~#KeRH@ZvVc9#>+3eg%?>b>G8LYHC}BfYbE z!uQTt3FpDDWTK2sMqjvDe8<6mPDCtf4Fy^4twts39h!F&Nh}cW+Go~Ngh(WlD}v)J z5c4j->s}U9Zd2hqD^?C%%|ZPcuJ#V9D!LBSt$F9juf?fFF@( z%VV5mDz&eFkOzYSFvs8l$Z$KxE+vYU;mT)%y}77w#>nvLldum@R~10E5;(9$YJAM; zdSpy3&4@=}Pd! z1s8+vm)s}pA$nx+^P?b&cVBObL*YX_mqs9b_X;Dnn)jS)DDZYit3*W$ z@pz2GletWUFFw7N%g2xgejGEY(=ok&ZSt$pBY%k6)u~LC6|O{oM_Uxw6;f{g1~rx)HPZW8Wcw+Hg_&F_#|P;&lNhPHHh(9NwUuriPt;Pgyt^UH zz27Wnl%wFeVyl^nM#+go$i8Gg?I|}_M>DJx3=;V94sgSZ?neUpR&H8bHg_{WX7I32 zs=wX)92vG=yu(fPeKX~Z%@X=>-XVUTq?=nE<+p){%xg3K605v%MPB0_0t1haXqu4h zfO1VZuEcHT^8Jr@vekauad5etW=0d#lK?ZX>_6t+wOpuIqHji%UJl=0joxK&aravW z?>3muGOu)&5lt1xv3ExQwEvZ-e~{Fd?p0KV?+{eH{YPSLg#;CSL1mZ26sZ$m)5XdV zTt#GqccRzND;4EewF4y+F;i5?)R-ZhZ61!y&{wz^t5N5*IC(l&mOeCrq<=-T9zEVN zmGO+g@|Q#9g_6E2hD$2>*gux2PUG{3C;21%qsK>UQ67)79fy&fQ-tvuwYZos)HSgI zkcsCcrHER}wc(Zbsc@e%kf3!O4)%4bqf0B_RYHOLf&x~n0ZW2`i8Q&xh;%fbtSmhE z4P6iCB)2-{m!<+rhe<0mJc6?|F3b5a#JlQBK73X!#vpT*n@J~SpcT&HXdSOl^`OFF zHja^Sd5$1Qk8Fxb(*!zCfuyBp0xK9DUkR<4K?Gb4d0fy5?TK3d;vZbdIE}stPKYHe z=z8YW}XQ0XV5Q9SC%;M_Z>~QCK!|xFR@QR^vPzU0wg= zl08IF*@nB{H4ZXt_2W=r9nnAEj(O3f{0gY*eB#3L5W_i=U+{j!bgcb@hb@OI={!=9 z3_q|Zl@A9jouDIW_A+i}GmLVAyas+qY5q%6U08_L!##tJOqr}Gmu*mu)xwVQ2B6ls zb2ZEL`Tk38oOCZ1!$_G?S+e1d_r99w{ADxUcE7&7q44Bv-2*f>EVY?GX}+R)DhXS6 zMwju61*kLRY|MYikH~)H%$O^{9KO}%3BZowe(v)W#sRljKx++s0kev&vu+=cY8kB2 zjBeZ1RYpe9bSey}3a3=791co1c@VV$F5;SAU=RGAnM{m+x(Au3GFZ<-3*#=T4Ah2f zBTJsucrsr9Sso(oCLm+A-`E_#4Ko`5%2%`f2mGr?{Hh0+57Qc;LwK*LcbFx(ip|E5 z7-T2;;MlDHEuz3uOR+n>HNEq=BmOaN$dIyU^0@ue1Y>T0R-K$Vx!zfvm@eBfwZL2) z=U(pvm5+-9mU<1EpXfp3jKnJoTvhhVaWVj)-MA303ti%lHY$8XtKF(c*IefC8P>Ul zCa^j}HScgxB^f&i0db?x{mIEr?nlx=IOTTF2HszJqgGZj~|EKh`MpPOfc z&VR&`AyPwWhejvY@ey`W6W~9#SCUK^W8x$om3|U?Q5LP^8*|%6_V0E*j|TK?ZRRd8 zt~MT!B_bkqK7Ra36zJ|Ql=L@g#@>+xV{g*yTg>ZU*c3FB4M9^$>1Tfxeb+9155*@k z-dpQ0hLa1QL|_@Oor;(BZ}ljhyz_KUqxic>ayDjgMjW2n zGIic%Rb3=-O!Riz2+N13>7*)~iP)ioZl@zm?gKM;>z-wpgYYQ5*ouWzU>XW2bWEad zF6nH{0-~Rb)e{FL6fO8<8fU}EGkUI15yjb^?g0S*MvO;|%8Z;mbm(;?0SeN#HOLOG zeN~=U&Q7M81@g_s2;4=IVDN{v?}yr^7J%*0V%>v#-V)|rB*3+o6VmuQE?dtSKFDqs zCbxp{>qdsWlOD!y(t++cN|1H4B@8Xytlg z&;YVF1T~No{4-VGmjUn6xGjW4+$ep=6#ZWl=7?&nYJoElZ=Y4%x zB}1fOH_g=e2k>zSNFRL3EEkRg`$mqju|U)dX+1nP^R+IFB}<)QU9w{~qxh4=@KlBl z<@NJni>oNiH47JJ7aD`=e{y#fuUzWE&M1wed(Ye=z?u%FrSRM%#s&`{RMFh$nPh|} z^hhEwmwxO0E4dDL;QT}+h!_{kUfF>SE@b4ma|G9PkGlz`p7+f$j&u89tkHkF_H6Hw zkR>Zs?`ZHjS$26;uO*%Oa7@JPTV+BTve)uv6nv5(E!a6yd&}|1<4W5L@-{*u!9Gi` z&1_7s@+C6cX9th9NRwVn5C^HI_&)6>=Zr6aKmU21JN?^fLAv}f#^{u z^L0G*b|{tm{5;>i>5zPvFkPpm1PJ)+w8G){a3XJJwwc(|O@fh%QV_!dj}3d~+mH0+qr%*~#jX`9VpW zeW&`V*j%zxND!AwJ=3>`2YpDLa#MZH0_U{Ckkpg8S7gdtP`1{A0cxyoBhU{pA8SJ3 z8VO1#yjbf~tAo|=Nd2`%vj<~Kac(`RAqu}oPbjCxleZC-5a2IzE=MstF^o|6`N_c~ z6O5hy7o>pU5$ED#D!yc0wY%7p5gbgHYY8FMsfez*r~ydw(KoL-@)5>)V}T#~~M}1^A2H z=a0#R;Z4eMQmC*r1XhYBowdzOSMWt-e1AxktB?)fH;W-A7dcDPG8!cf~6Y|4a z%0Kh5TbgC*ubKW8PXMNI5cDQ_jYZ>&%7StK=e4M_=(;}1iiekB@HtEVdJ$3CMq?NW zVX(5zi;=W3lG3m{xbF}o$EBd$@ctMU3!ytC)8;SuQ_8uF+X8{y@0dVN$fpB*JEHvd zHPhkgg|KCoRmVrc@PV|Z?+leAT;nu3$|e-73g670Rw0(|!|=Bh@hc0lGJkE^LP3(= zA!RH`ZlY(ibiLXdqEwy&k#MO?#kA?bqn7t2McndShbdprT}*jJLl`3C#S)ZUa|A-s z6wlhj=I` z>7Ukr#4F{y;qprZP5Qy?3qy=hrkSnNQ)^Stg5l4<3bINno)DmjLhU1U1aO_i+_ere z#RAHNIOZLI2an|9abRmg-*=IV?Oo!B|0EMl76`##wGVg%- z==rTzf2Fj(GVo27yNPJ;#|N55*y$LBh*-UG42jG7=J`#3 zsMW5$;R@)fpbmyF8VV*_o*1HSKG2<=sDonmLpOcZyyG7bXFzglf&@RN@Sm?<>7-;D zD&5~OkMg$lWr!J7DQ4zeBtFOYxlP;I)l!J^;azy2M4PHvK7nW2h>sz&8Gp?;%q^zm zIna!U1gOE9*0@RvP41p^dn1{1H)>_5KRckS9gJ_a)Ds8_8Cs~b&2RfeV)wCg=61LY z890nNrc|nfu&%-mFG(LlKBiAIE}t?t_UvID{^XbEA>h|pkSl*!Uy%q720iRCJDU*< zrTzHJz+QiZchRBrQ`6w6ExLL(>n=E%u-oAkE6u{+drf`43O{j$JvcJ9xupcA;$cuy zJ#Ea4N!L9B#ABI}PXc7f<<0D%&;80`KC8eaSW~26empK()y-kp3`PYwUikY~anBTG zekbElcobrfFB=Lmbjz@kc-S%}tx9C`EB5Qx9oFBn91{_L6cp(qL*G5IMW^pQ!GCRU zKrr$^RnhS0=C=90#O}E^>?>&P%PKuvqhqz=wemfrg||)@FAD1(zeQg~6u$L9#l!`1QzmZAkUQW}6V@%4b|Bw= zYxyDDc%S6RmH#yAk~J_*Oc7?2Km-}aIG-h~P7QPx?sN0n*4dI~Ek{yb1)VT{8f zee7N8C?O>g#Epxt{>tw7OY(ujMzQdMJIwhxtos!+n(On*Li^p1J*%G7v&5Y0@#d9; zs^#axSKo%!y;if^MMz(Mc${-VN#E@gHXN)W4C6MBm;ZuGZ4VO*H5+#Qi;i(qt{Ztr zFo9*&MOs9lEB9DQG)(S{Tn*VYQ2~#{naT)%0Lsz^eRMnR$b8@_GMQD_#+zq^T@|Oj zC=K2;?U?UZ;>UEN1M!+P6HsZDFv}LkI>B9{i!<4OB`JYdRvL8?e)|M+>0$}51msFj z(F0?U;a4c2xkCLeN7MyWcZb5{18nNYT^abRa_P4qJhj>WYRA-V(y(K>54?qFbA3Kd z$%xHiG=VKD7%E{m|Lcwp zNHB4S&qhA?-ygxyKa%qntTq)kX!UevR%#5B1HnT)wsgXougvASA)0^aVuYl38b?f} z2wdaA=6D)kBj(STwo}QLd886-#>J@ArB|jKCG&BY@~KF$D6w z9rt(Y2n|#~ZLl%LvS{O=0&`ighS$O}(s(`&W88H?8}aWfVU>V1>Ana~y^ z#=-|d1|&d8q@c;YrBySVh;|Z>wF&DTQWA{U`dzS0!LS3><%w%s?|#u)+UJB=Y7dMH zRk4UUIO*A!#kh9_h+{>3>z2-9y46MuVn-`e{BP=l9Xh}LbzFt>y{0DdW0$Lf@61k< zF%XQ(NipS}oVSBP8&T)^vSP|#uAf5V`s0zRZDqe$eO56ku>Wd`G#NJ0a|a})YF~+2 zdpCC$p93%_^L~l(@X?&|Y17obt{aR2Ou{`zR}I1tD+8gb8CLsDdx-_JH}!De|iUG+>^2^VeCyRg7h{WRvYM#}3LsdTATuSCLgBUM|H#}5egFr=M70xs0O zTn6?o2qtrQ-=?h28F2zVVulXUr`v4~*ym(#EOoHpY{kc4PQeKyzwN;!Ifz-09-l;8oq)`5j)lB}i^*9CY5V4H0&@}FPhem%Avtz8=nvKOwEpuvYw z+pm0~FSU92l}6wt4$9OGcm5?a!v186EJa$E55Ef@s1V0*YSJ`+BB0e^&H2t?B9{CF8JbH#>tYW}AA$=Q;M?>VxOq&P+ z-Jqp;`I*?C%?n&o;>B}xVlh8BCT-153w{J~X66k?FeK)`CB&Vx>BV9Q_VUOvDP|nv z!SkFs4x1X!OpX3NVs76K_;b8I+xmrb-i2*wMrb1PgSF~yd=5E`k|%nk!D{;bAHn@d zLs!Mt|NE9&P*zxiBnbHTG+#lDy`QnE#qfyxZi>jhXSBh)I@j6Zfm2dT&($ zsStW3L-@1$CPd(v!KGP+1UL|WKKi8UiqwXI;lC|CY)ZE*hi%g9)-mMM3jJIV>#nu^5Z$#eVwF3Z?TMKLEmoPg>0v|@4roJ?;){t zabhY{{e@8mF43b6=21P{l(X#|XP~Dn&x0(6*tA7o4t`;JKYOg1@f2n#_finN*XZT) zG=sA)ns_pkY7PaVg2yf(w64*lbd`44gYI@~5kIe>e6Hvj$LnWm{{mF%@Te1XQl&+? z$V0V@6}NpEm4&7B8?`9NPA9ay2-C&yFZ8i|LU^+)%EYig%aq%GgN+$Sogy{IllQIT z#ObQ5_{cF6j)oF{aEBzuh4eoW-Ah$HUvK?QDC67XeASm?(yYw0+xB;eLZ5mgBnWpd z#0H&&s6L#VuG&5Gaxb|d~N$-CWDgrc7*8kz1OdrHf05Onzus- zHIAGf{+RT}ij-+*f9;kx0!md+2?Q;XiT^SSIvuAz64s?v7snXI_Ko_Us*UVP*nsh{ zFwHpe_4J(C4Hnb5mIL;I5@s2KPlL*S)WIu(hpn6u?N%8#WweBrB&AJ4(@4R^kQdVW zE(_US8eA{qtrMydX!Q$3%Xws<)6Zv?R{h6dOc?$n}Cm-S0YVC`FBMw)j0GJ-8t%Ah6{W#Mi=kv&q(H^3YMaq2s z#3QEf^<$&w-?0D-7P7=AeBf4gtQVa{(32t0PlU)ZL^g#Q1mO7uYdVm%2=7zqMNM4( z_6--z_;k{{mRW1A{i2wOu*omJl^oPRpKA#FG|G9f^qQgmzKGZE&hek42Rb^~mf9pJ6HbXVCqQF0#!RlQ+bO|Am*QjGE+sd+*l}4c>CW0-2Vc@W zN6LwID_ksuv3J*_Wn}P&E1%PTeT_>TE2v_ejVB6FihL9e@nkMC@!}c%BLCRL8C`PF zJr31WzO%TLYu)eDo*p|DMt-05Z+J`{FC6>f=(*!uez2hWFxI3NJQbi6^85ZLy&xYC z7HIB3Nrh6q8+i)=(Q8U3Ld*0*RD02r?lM@2Rs?1^V%6pwzwQ3kMx(WajG~y-&mR{W z8UH3hum@V?W+O@l-~(g7Ja1)zxMSgPpQbNtDzTbiLA;xPo0P>TOiiF0&HRz%otGeX z8dET32a)V_*M3Ev5cZ^B=fW;H1o*NR5*gq648_5ZS_#p;?Pw>xc2cD@z*bjl&6Z(J zemaZ^ZEkJyu&s}lfTw6Z?=lG5D234Ng~CKlC-7GT=~0Ypt@a!aDn>1MM(i@Q^z9t@ z#~)H&$N-XhyWysOLa!!ICXM^i6V{I$ds1pIHL+`jA2iY<(G_|eJtID=8!{OKkyPk} zNWe3a&t>ALI7}pyr9eH{oD+Hz_jJKJ6rSy@)EfC*SW%s?^g0RhfqU{q3S}Ll`?IkW z(IICY--7;B4l*cDJsDxDLOAN?_j8~hXnL}CmwYGS+BXB(04;^HFQI6Z z`!E*+icQ_y=~KVhe(8+*W+hPxz!|L`N3cM}h!60}HMlXHD4Pnp75E3jv&mbs*jjFF zG~Oe_;?f3G)ewzX4iWQy^*3gS`At7>JY=s_eTyd4soH#aObbFS6CPoryF(80l*F=7 z2Qw135!NtN-n0V$8d^olXY4ox!@n;F(0?twK7;J5y2RS!={)#!@bGi(emK~x=Y@p< zRLJh(e^$_cSWnLqo}an@Q#!hP!qsCR7C^X)=B=R>7t+^yF|KQ-16K8Cln_;aBL^Ua zaRD%y?We+L;|=2{zss3pX-q*;kYUoty>dY?;UUJHrDWT?Ltz57K;<4a?6L9qV(S}9 zRXeOQ{;01LKCKM^wL;eLs!)hP=NEWo`U$Kk=pf^R4y_Zqx|BM{U}%2hL>bnI3Nx55 z^NyjwxcnvfwZP)^P!dzUBt%<7t%`uI2M}1tdAs}OSu~VrBjoOc``^B7dRHY_kWJv) zBOFFdw=vM^a>av?OI%U_{z?@}_l#$WNqBSsh&}y#djWB+%61Z9luY$7Y${p0H@TJ{ zjzcr!2Okk6tT?2(xgp1Qz^+>Qu&#f6N&#AtUK?TDKuY-Tn-RdB;mveX$^6sEDs%Nl z3}<#b5P!a}BV$7~c%M1V93JFXPgS#@VC6YVvzpB_fSgdR0ecyH6YP#{g(t~$TP?eJ z9%W!nWB)l-m8>)TlGK26XZl-p)lg}YTIwlFAw{pdHH`}!=CIV6q$NNkh`t)qqV(6i z{-M?9xm|l$?+!2fNG|bTA9hfoqZY2<5cH8AAl_+(lDohiyWqx_z1GbwCfd3xvPYOh zCi>8c)!}9jm*Z4-Rmma#EfE;|=+H~32|qeNX`l8>e1XZ6eDZ`@q=hV=>)-JpO9AO) zvrZ}ET(L6-RAd>P==)2Cne}zE1dMqPO%k^5RCy^4yTrnD_zhs8OQaRs=M~u$5?1-f zx=qS4wHl{oa;Jy&AK$$-@9Fp8>jedHHn$RWf~u;`;4hGbU5<8Fv(s|A;g|{43A*@$ zn|U6pjJ@K3PyIz(%d0qD*gb(SL9Fzd_p)ajdaH?woJ>{XoZ!y*Bif|A+t1|L5JE0t ziiIO$i9Bj405wAO`961DW*Z<0y6@V)MYQPMs`zs<8LV6?FDVpl4yu9>DN>n88s6u# z8nze9X}|q;-|k@t4Rnuy5> z?HU-*SpzVQUN-e{ax5QP=0+2O`1h3bIP2e!aV6{epH*}m|iGSiKasW z<0vL##6J?qRRUpmPg+4K*6;e+IAXiQRoVBnaesPY;z+uX%ygp~xjV z=GZr=edN(EFUh?Z>xV9ZPCm31TUgtY8y5Zc-lifmI!J52D+(J9X-aBL>`BgU2>8c1 zY|&l(mv0n+lrG~gNq4e#Xg$pX2Z$|`=~ba@+nxVF>ND@OS}VGJkyJ>Flvj1{8J515 z!o6~uOf~No+)+zS2Xa~B-6d1QtH1f_&1R0NE;g$t96x~rNLg{fkK=@9jW4{2lSY)0 zSnpyn6R7y4A)A|<&D^c%l=h-=tK*GMw%QKA9V4EdAFFj314@C2+pr%f-zk=~^E%vG zz&CD{1f*AaEO;@AADFZ0h3`@wRd}pb9 z@ZslAQP_I3a-Ie`6WOUBdn0Ust8F>i{#&(y7iahRE*FCGgtA;F)6`BHJr^J!YrmpmdY=5Q8nvb4C$s-_5U~$6PH^^$wf8!9nmrad9y?K$Am?UJ?xx=-^N33d~LS9B-J&YQ+wq0j)4ueh zvPk}GbC_KPgymW`jIF|`4&dZwFk1V$(J+`LDY|)s! zrB^mgDfQR*+Qg2!p5jS7`f?AOEMM8Ro+mx198^SkBs=}M5fX>(;8h`%!l6d&=(^Ws zx%9O>SMwH{_H4lJ$-?hp;}Mo$%kZq}y3d=r5L4Nm-eQ0=g6;l*m51)}o=Rf&Un09} zy}jdq|9*w}`RNSm!D^^hGboI*Leu=qdOkj!OXuV%#3`nZDqKA<-1`uTSS}hDBPf-8 z!MIOr->=~tYAkjY-*cE>{V|>mAJ^}bN_ozrlLx8DSm>`lqGI5S% zqAgDg#EcXue6nDF-VrTi#S$`~u0jDd6Rj7g7#XsiH0_k@3^ra7RIE_21;>u+Oi=K4#qpLS;ysITvinyHRcIo#$Bg z|C)zoFY(xd0*gG~ZkPOI7)ScsnJ-T`4avO?d^Fp@A1Vm!sI=j4wlIpIM|tNLX|m&B z2s_0ml(>Y!Ozqq{3%`G*%J%SIa+zzn8y?)B#`)$j18t5b?2kJTd@Dg_`ulm22dir0 z7|@E?q##>_1S60hy}8;5h>UNvDlXBXGOtT|Iy;SR<~wN@Zf|kFeNKY7S6?N$gqrn^ zm100GFaMWxy$FF;yn3Y!X;Sl2>1=A+V~v6xLaFoGyc%yM1B~!<3dpgjmKi%r+tI4n zmxeKClJ@L$sB8b5KW+O2fxV0F54u5RYXv)Gwi?3I#T`}jxu}+xMwVwr{YZ;KTdnPi zKTPquI8|8$-F1dkFTo#t7UaL>k@-jWhUSIXc#2%GgLS-p1wqeAGeL67}-GEM0|YWDoLU zZi6`G;sC-hFTQW-zbCfAtMO3^Mtie%qNB6QVvh4kk%9(T$AA04GG~gI2;?m7ej%=d z9Bk27LisktI&?LPc_ggHq8l=!maKO)4W(gvJ>>Pv|x7V$JRbW!1IKbMVVKMGDG1 zLuJMhSO=cGb~4j{-~Rz3FvI9aee^kZH@*rnmCBrI#vnq@wHZqVq667W)ylLikrss< z191T0O-e3FA-I{al;xgyC?v2}J<;vh3`F7>gVs_8PUO3Mo@{Ix<_b`u0{{LKBk`eL z@F4|~i`Bb&bWG=dB-|pyuY}M#5ZZ$Z(8^YpScg&+bG^E`tu~xkCLzO{HgL0vj}_9d z+`*Cr6Q84D%yx#~Wz@-D50Mded_!wxu;{OQ=tvQm?G5^lM{M!oulLNwxQ_1K;&*;%_iyIPuNd zigUFMa9&zQ3yvMp$x(SL5uH%pw5uX0Z#NktF3AGrwg-~B5(vX~(jK5R z<`tKjF<#*uSORCvJjcdfzk2kW*iVU33m%I87+>3I6- ziO22ls%A3Zcm=q=i-bQQfE%&%cg0b2e_8esgYjIF>WNglE87BqUWZQis-M_tF?4;4 z$%Shs1Pf~YR_7nAAL412!UrE=0gkfPf~Gws0_8)e3sc)gzvSH1Yjvg)LspwQEg@n@ z2IzrXkvR^RA`dcC3gJEx*whizC=>6U*g#U$+!6!3@@TD@eXVR35(Rnnp6WN(E^ywd}ShPI#^_tR$(y0}v!~+t{ z-ZN6F2D`IFk6gcb<~OYKVO|Y{d}XTh`=Op_At;rOaHilfOW@sP>LXAzcUE^vEtm}? z5#pEu_q zfkDZWSR1W?D|J<) z{-Lf}!qIkQ#`c0~vYb_@qTRP$G9^2EhiM}MR4*yd!$#K`I@R7!zXaoK^)UT%y-N;g z2*qQQ2(Qac%YtOZ7t1t6HuFo1!fN!{rF1CDYT*q@Dg>~bBGq1kOVx@+#JsT%FL1#g z9XSOnH+osziFr6QAFNlcN|!SrV9Q|ZKvjR?T;E-ijCuo?WuN9ASgyH@JB!0!4uiCN z33T7_eT=!SgY8797NJ>*Eu4RZeWL0qp+gBr6Ifq8kA*8}gqKrgRU8OTur-$$IV@QA z@k_mp6ZyXR*+6FU88sHtt8G0UlF_ZI#!vc~YgH8Xi4LTUB?M$0 zPvj^4hpNPT1Wrjiq}D;8td+5&ZD+(1^QUwXvRJy@I(l%B2{pJ@Rm_u?_05*}H`?z$ z#@0Hg(RHg@`Ci1(q)40je9C@NlfJI*=<;e3Y?-6K+(fEY;(rb~8Hx*_o4ysYF&pG4Cp*9&UJFUxanzdY;MtJ_;1>&D_6_D{%jbl4jlbGqb> zz9hhGP?#z7J14;q+nU*25{Bp$>1wtwS`Eo>Mmk-aw=9mhK54~rKDSjn^imxHCD~{( z(W5XK(YkciA~kcHJ>^zVVbeR*KBAA^}x8cjct zWynK~?gm5fWI>rdC4@!)xo2&(AbrD2_BqxG)I#lc96QSSRhw^rX*Q>5bb8;%a#3@R znra5%j|Vh|D_Kr5s+7vWOlK^SQ4(U1b<@Iozzy5CxgN)!houl%k z>=s1XBL9Go6?ANlSInLjkQe%aGRMpNn!z&}BB1@@+}8m6czlk3cCT5?=jx9Qa~miU zl9#}M3RDZw*6O6$U9Wu=IYJ0`BvuL0pB5aWein}$w>B!|%}kQL*72ZiZo*y;7%krX z`X}bGSmZ(RbCB3yEbx-0ndZZe{?xUrG$}tl%FA%SbBtGP=aI^4>pCm$2NRQ&_&0I9 z<&#))(UNDVq8TIb*&)B)oR9wN5G!dudmx^V!3(U?D)x<-c6*X(WK~%UTqpiQoDX+& zsji|vTa|jhAFOJ^jFaR4bO>!eo1Vu$B_jeJWHqxvyX-0Nga2VaKWf$rR?v2$BuQmD zkT-a+VSrWG_m>};JSm^XlqBO#q^KB8;u!^aNM0~|a}n|iK{=vEsJd-G@Ztq+u24D~ zHK@q}FiGvWEG-xOot$9s5qEc_`QxZA&u<5d2(8q=_vpcjIzEG{Tg04yuFl<-T*aF0 z$s+(q>}p^5XV)MS5B^0dd6@AxqrRALA0aJy@8Or5C%y7r&B~P7@ubYr0mPs&uI3r` zW)2bB=h|;Gw)@sS^l>mOABI2k4@T)3ZZt&Ob1hRq+&)!qBsD&igTt=#cP^#;E$41ks|As*Ok{w zgxd+=zxKH7u}Ua7iz)7?q)-Qg|V+_mgtX)$0uTJB1)K z?bZF4RU%p&)$R8ptMKQrBdt$i|JmiwXdUCd^hksayGv7})OR1+g#C(997gN=#p%CJ zZQS#t1Rxx4Hk!rxVQ;m81JP9}i zT7jrVHRL1a14q+`_|!u!_DHn`P^RG4!gSv$y4=-vIeWK{zw0%t?ei}%#AiI&|8^wb zb{K{z|C~cC3_E*_5gb*w>S|o1arvW6Cudpa&K$P5?#4UX@j8Zi*uv9hCnPdH*hMFc zgicz?qH5+qz>cK%d;xkFmwnDA&Mn4Z;;J8fJW^|2YDl$>R?qb0>{g{u@_eCa%fDhM zORA&lp6t>7VX=un_wwZ5ge)r2YS@Ko8d!)e5TG1cFB{XP zuk$_-I5~|eccvp>l)Q5lie}NX z1ipevw$K2uHe&O(UI&`rgZe3{x5R#>k724rOvT2Cv$5B%#nh%98r|w7LhvjO&%6&^ z1*v!6h5N`?7}(OKVL&15yr`<$y#`OiGL{gj5(>BkD`E8olasUo7HizlDl@&Lw=(Ah zqir4hKJpz=shgJgK2iGlvjkCCmWfxl+YuEq;vcN9vi+t0T9IzA&u7NE{bKa2G$ZN5 zqVZ1(IZV+B$3WrVq-DQd&g_o43kes>UCvasV{L53nZ?J>84&QTQ(JB7tx{|^_fWs4 z7WO>Jp6*4ZL!Hbv(IQ=X7YmZ{FRbCfzetI&m^+IZHNq-V2ju+|Fp6A)Xp5BQVN+rc zq_J*s#j@eQG1uP9ANeZcGbQ2soZUWT729@cY^cOnw2U2*VOm&P<`Dk=(NJbA+n3HT z=~{?0qN_x|7b(I%?}uU7jj292$Li9fG8vk!gkMX|bzBm6NK_pZ7 zfvjhCJFPMYn{0B`70(Cf>-WFSWs15@shv8xoINoZM#gtJNGIh8)8P!Hli?n?uP!xh zZ4sl4zs`V+VeO4Z|MJ}401wy;O7HjtK{9KwuPy3~hDSMRCs|MYeg9{GljITb=WEiO zx5H#>Q*8wL=N!+cDNXucXR%L&;SI}>l~5roJLSEkKwyXKWbtNE4dJ$*1vIFQxj*fJ zX1<{*M-eHZQ0D$wt)BEFp1}*LLB@gp!QZ5Qa0ye&2tw$BHQKAn``;_WMrI;z!apFS ziC5fL;@_D#Daz_kFuSA(5dxG4H_+OAh@7tT8`pHtUgrf-3c>r6(42z&STif$jOP!q z+T;qg;;iVB27v&8JzM?g^o*T=bed7wE8CNdO^aIy=&5%7gD$>B8CxKkk+UYhsB6}n zwKNh0MT0#)@ONDrFY4bYmyP{ZE;Rt=6_XD^A3&%rK1KY%f?cl780hl%8W@8^crU1c zdLc3mvMo-a=d0KO^oMi0^!Gj&!?bWjpP;KRMc(|rd+=TBWSsV;UFBoNj=|=QtnF~e zW?s4M4oH;H1X7_yhwrJ^BgLSGH-cfj4_6^w8!j>Nt{goiWGG|$O3icN+~8k5%HDRO zG14;bU%p@aom(QKLizRWLiQeoPjwC*Swo$P2<-EOTLUc>B`j;4;9+gthn{lO#nMZe zODT`(ppNRV&dZNviIQ}S4rzTi%EG?!@{#Z z>Kep`X%<(xW*~4wh);W1Zz3*O!iS1O2b?op+BVIy5QjKjOF{1OaYn!#KiOVnOktU$ z$Lk>Y$3H=jA7JPAy50o46+z0IH12O|=8vS@esO;GtN~NO+>O5vbK++BFDRywV^r^9 zK2wq>F1GvD#_l#0;nRUiHA=ShQZ?7~&!rUGP0}{^c+%iG|D)+T9HIXIKiT7K!dYb` zWrRDs2qj!bR#tY#*`p#d&pc$tDID43&NwTfvqv_^rIfw1ll1w$>HGTw?%wa$>-~H^ zUXSN`JZ;9KjA*N{;<7dlvhtGnGM4Sgoq2(dDeVtMiVSrnFgL=YD%+sO*%M=no&#TL zAn!^uf{@4k-JM?w}B2gBhrD-=%g{XeG->VK;ASEWFy8X(*Rj`nD-EDMJs(x$MAAWp%TLvTw$8 zUknC1hAPm_&BHk!XXuF6V$hV}ogRMsSNrorSo#MIY$1O_u` z(FDS3zu?%9?1PBMASO% zu5{-N$?WTpS?Y5B!gS(2>|B>vcBjC^IHse(d!2f$*EjY@XOe&R(SMCi z9Byphn@@Qm`ZBRsa(L4vP@*ipRJm3Z98t3NYKJWzN@3@A=n5NpA}&kwRITE5!jY6V zq{d`)VO;;PAw5;USuAcyprO!}F{OXM@pb4{=ggPV&~Hpw3ZPMgqg?*VO-k&N%~oOL z);$x0*HV8u)#tlMCY}kHKX)!s+{ld{R)!V-cNF#0()h4y1gwQ?@Shi*T^JP8nYpUc zpg3ml8a=8yMpdxL*onbHQWVuk$Ah|tohMYGgVl#ZL>48@XChmI1qAD9fwD_^fUNbu z+gyEkr%4M_S!TZYNB@ASjRla(a<*;6$tgDj;o=D(w#l;GLg%KkOVPc+5Qh@nnJ zSssLm&P=#nxe(!DAPD*f61wns>a*fo^hdoqkj;q+X^e;%w=Pzga6KD-<-?xPhY~e5 zB7>ObMZbR6?DLnNAWcA9>xo#@#($q{od_woMC%bRRn?Cf78*p}JH<0xas7SQh{ZP_ z)bgj~A8R?@Q2B6mwxHYl=g$4FioN*nhFq%hGR~3$^{GD~vfOWx8h#FJ7VL>S=(DqW z5c+`}S5^AZ&N+qU*r2wPSu!dwWmaLB-5wJYb1U^ytKIunOqvJ7#f<&!tS`G9`dH47 z_;7T{D2Zc+w|HDE+>R(hC}NOgY4J6{#X-i5#3cyNts{|=$BskXjLwY-pmMv^PtHK( z^KnE8e=aH>F3|B0{KbB8NJb8EJbFvvCRY`rIhyy|{(F_iRkZ{YyN5!fq*NYl@^S@9C=1}%F#xu$Y4 zv~JF~GajE|oi7+xSq@XtrM@E6y@#xD093gVLu|K-<2DC4-hg6VLOzb}mz;?^KAMOQ zPPl|X!dleAg50QCbDEs#HR;HS6G@?+BDNwj>es&T$6Z5PRsXuK@P`{2;XyN_kvixU zuGV#Eyx3mUV>~-$-9<7^``7XHrJ+n%pH7J<%aFn+Zm z5X6R>Zd8l-+J2{F8Rh%7d+nFljtYH!FA{RtT?BYm-;&4rayP0@h1)FW#q8MF(}aru zqXeNjaixJgoN5u`FF=OVwhm9oI z)G~oYXa14Gci=iHW@CB_){y}Ia%YxgSbP{&nCuwvXEYskn9o_qn<3<`WdyF2!w9e5 zJC{F_v8|0t_ml0rS^fbnvDDL}$e-)t-_4>M%i6vRq^lG>@W;2s1LIC;<#{edUb<$Z ztp9j1(oLAFo-+;i_qkjDZ75xa+=AO5@;pKNLA{Xv3h8LAiia+oLr%FHYSG~%ATYg#4tP)h-u8bsdRh@LW{(1tuc0WG+mq@w-rjKeURzG zkcS*wt3i25!ebrLY5QcogB4O~z44#Zq{3NO5kron1XJ`gv*p>xx2?OOR*|+yVYWsF z-5F8hGCkjagM2riroL92m;WWh5gZ&Lnw?P9R5*lzU$FsDZ=>BRPEe&{Iu963c&`%O z@0fcpDljx`(66g}4|16z%uE#rNPSk3=&b+9y3LDuzj6IOG}SQQN23h)^iz*!(q@|< zt_|!3-&MOCg>HyZc8#7$dH95iZ&cyDqTH-ybRZ$9bjnh0HrcMlwA^`HfpeMFSdH)U zL-m?)1AW>DUL4sG^`l?OR4%^_w;8ZbctKy=t?7?yiqz8Vb|{Y6ct^PNfM0N(A^A+T z)}#8HKpX^qL$oaL?|GN9_*B?a=$qK}OQQj}2$Y$o|BexNUq!6{tp)kYk~bDm!_wUh zvhiQEy+<=^P4SIMJ&)WzQ_uNz)S6&}+fWi8_g*c+7p@XgScaVhwmG&>0-RwP`WySN zE{>jS7(q5zJe_)roS^{|7tZIzbN?&s)6ou~57^=MT15|{a5Yr5O<)W-8Vk&T?V zUo6j2p+Lu3BC`xOEQL34D%KIdB7HyskN#nPLG+EM0<)Oq`DeTC z73c?r0&1ETo{P}Ah2)cKjxyX(rV0or>IF0Z@MRC0@U1pt%!%0}51%jZ44R&0MF(Ft zJ!HWOlaIFVv;z68Q;pjEk}ai+IImgsvr6(kWs}q_;)uFmG2e6JEQChW6~g&9mF9Jd@?$I?$>=3-=QlHKAJlzbf}f2O{0xhc^Ur5Ze@e1YH{FIe>VKsn zx$8>5P6mo~n6r7`xD|(e-fHoDgFjf}-MP&)`DP1AkA~{mu=`IW#s0%!#nU=#Q@+muKnLuou!jy!HFch}I@;ipy`yIQNsCIG2(xXL`i@1okALBHuG= zresCeXiMT-?zc{X{!%(;3kv+vu@}t+m0NM~&VM|x?{lh(18jF@Kl+H!uoF`EC!;1S z@QR6`{zuCWk*l|Fr`Rp5MYFU9(rQ~{A45UGs{)>$pq$_1ZhE}ka%}S&W^G(jWq{<^iV*Q?#`6rVf%$@NS8C+2lWcv%?#nv&Vy_QO`2 zLfyk;)1I^RWmbRVDww?$UFA;n&B3up2$y*|o=q|0KVt=2Y(&NP<=&6qBDP5Xdy*IHZ1%C|?Io2)I`i7BjaPb^7gjV$ z*;-Nlqvli^E{BaX_o*z_JfJuL-$_Qo2pkHmqXW0VulTyU8-D4HOkQT0qU$|knGQa+ z8#VeJ(u`C~112!M%B8yCX`=|^UfT`Q84r7Qn01Ut^u!la0w!b?Y$DP|XI^60$`UEN zWTe-4L~D9BmTslf9q7dxA$ok3;PAD5cwFd$S3>T?vjkfNI{*y{@&?%Wzm4>k84k|3HFpAN}rY1lRO+GatCi}5Hy z=AmiKN6P1!ujx&67(OPjv!P(a!5~A&b>xVj+AfS9Z3Tf}bpkC<|Zi@BKczC-xlKs6(cFo22L&Bu0!G1uwqP2QeFBwy-7= zlWZ4u8h{IDy!S=#AL+{xF5w3};aEGx{=C^uW6^XM60Oug9FbF_>6^0AQuRe2XvNg3 zrZMk<69Hgg{cvf&)38QU1D}^vPH(7c5`V?8(;345Nb9XuJg9pz9Yzgmj#W!*k%pH~ zVE*yqld1Y51A5}|oo6+10V^}B=?PSKB$1eyOKBV!aZ4(#u6qZHrYF_kZ3wCdB9sOX zRYajlw*TA}6~0m0_m#n1IPhal1HH*>7Mib~fOCjU&f-$w4=jJBhNUSlN2`1 zR@`^ZaBPWIOM7%D(H%m65dz2l_J%9qaRF&S?^l~ax%1Pyd(}_b&!XVedER;TX4JU0 z3H*z|ui3IT+<~kS&d=&Z#`DkH**VJj10UCq=3O4>Zm5YXB2^|Xbo?~WPOQe2y-Dca zlZC(f7AU?u`|6W`q9|cO0)!^x#6`noFRn*kxm(^1m2dO7pL)aPW*WyEwV;7m82krk zX!opa^hfT@t045m<+}GlkQkrKbxv^fKm3#le0-(hY}sVgTN)au*@?ppS9Zo3thOEc z81<(_Z5>>$-nF7fD;wee@#4VLWw#Z5#?PfVl+deZ+br+D6<=yKEH9DI_GIX?3zqf? zQV?hMwU^&5mfF zw^HqEjJd0-7+CxO4DP+ad&&PjkkT72D6R5002!2{(z6)&M}^b+=cWS1!}zF}smu=< z*of1&_?Pb}M?V6m_+ks)$O9iQsg*wR+OFkaGBFvQ;3{h^G(LFR^TdvYTPGD>y-Jqj zRBpH$MjV@?NB=2SUn{g7KuEh?7z_8ljWrb)Lr6oSl9}epl}_%tQlp=}%c%eit=18gQY9g{8cTdpNgq58r)U8y6rv^Y`IVbyGe}t)?r`ad%ek z?YnOX!8i@TDwh)1Azl9qyoU8)>x=zhdC-pll{qepXp?-hPu)yz9e+qR`^2bF7L-!0 zVjk=1z~pGP`h}+M-(4RTWPYC+<4D^@2*?@2>}k}ZN?#Y^wuq6 z_4Yr4<{3udb6C&w#qPev5?h)Q3;g=IV4s~;EFn;vV75WnwrA%R zussb1YV260meE(NgC2)$70{z|Slz$$i8Y_AGH`4t9@GSYj+1Aac0Ad;aCOrrFUcKF za}Iyl?d4J$MB8s%`m$}yWPH22%9!dp_j$0pnW@!pu;0;9`qh(i(HSP(3bEYHuNac2 z3v95hjG$@JNR)dE;2=1N9^Uo%XPC_?cOIkkG?v(mbY{0F#b)c$Xqn&#d(yZa)0^$U z@3xbsC)8pC2l#+T1xv$k4)}+r> zM;wQ_4YXLMa;Ez03B-S0EN-RESm1L~)gI;Y;*rk(;tV+(Q~?EXgZJD#3}M4)X3 zuqp2=pY<>%XhJr#JMhKCBrmrR-RJ9puEDQf^)+#JgWV!a3sx2A;n8b>b|XRkgb=0> zlHAKy8x~fGyvVX^T>*>{C49CqY9$=+0X_-zD>kUZ-7M<5i&hf(#b$PfzkU|eu2R|3 z>%O-WNdVUNqh3j>_3AL*2+!QG#o7vs5M6=n@L2+walW=Vf;k}7mrpQKB%X3Hj%Xmr zbArl?mw0|&>vYSs4%5Iaw?47k1{601dLvS2Tr8RxK6x<#j-AC-Xe&&rO!q~|2fRyt z<%%jRJWcQ3+S>{=W4Pedjmn0WKW4eH)M-ZF`64qRF~5I9w)F-7g%>QUGLTg3^TmS& zZT#Qb#k3v6Vcm7Xt*>fNKCvVNEk>Ddr5?)%Nh@4$^^Fj{%!97L5%+ulS*Bd@Z|HhR zgF`R}IPEO<7!#Lr&*Sc=dnvXH&mR3mqyayko@-9Fwa?uEptOXb`}l;BKw$dpzIKrU zYTm*()ElJ1jE$?(f^$tqQy!$TRRlGNdzq8bYo_%GFUptpGVEPq{x&EO_eOSU=LfWQ zREh^^a`Rt!>M1x7wwt}-Q}*r7&v%t*X#`9e_H|I~_bE%arEI4gemA?hIxVg)n28A7 zVxNRvZ=!i9M}d!en+yvvsC?XzawzoE!c3EfZpx1yWmwb7Zx?TL-Z<|&U3T?J&_HXZ zTAHS#=(VuX9TI3Exv0yX}*0lkLl&<(dW&Q|0z1MYu3=NtRBBf``B!prksP|f(ELW zuS!lZI*~{lVZPv*2o=NrUM_PIJ~wa>%(-!bUp*Hiz~8be%!pM z8n~4KtG@hVvuec(t)+@LR#z9;E>u zb3NVbQh))&g;9GZ60(sRzI>qH*&(;Bp3I1?H;t75GrQV0+5wgGTOeMa>Xb>$i|>4% zHcVDiIS*5pc20_BD+ z$ZE+Y#z`-vDteoSnaC>(#w5IG(MY>M86vSdwGy4sUzXq}p5zc@P%g^;NhQ(^xoCE9 zxxWeVr^iX8(F5I#N`{27mUUO8YeX3~b;6Znv;W|ZU4 z^?0{c?0&2DjZ`id& zsZ9t#NT zi2c?Xrwrw$pZ<#C$)awD3}9^4);72`W)jp%@!j$=nPk;K`}7fwTeb0o;ciZ$6KKt; z770j&p#h}~FJ*AnhY|pk*>fC2OPH$b@e+5rv}+1XmoNt3jSd4r=)^#zzgbg%3lOgX zz65^+fkAt^=A9DOTOL}xGIC&CiSDFC#>$HVSvZ;hS~fK8BoyJ5o_|Z;nsgbGT@Uw< zONo8((j`JP2iZ(d4EX{ud;kWl{UR(sYhc!j$WSBh4)AIxV1~}+Y#YXC+l7X20v9`K zLZxM=iB+Hn16W|>nP$RV!G&AM;kTlTZy1M-sfhTCe_Zod`{BKBc;og>>&YO>L` zMFvI>2#H6A6xM*q^;SK9-NvXajwdI}`M&93K)lJQAcw&vX{cDUMs9BKC!VW?@KJUD zZ8pseoAVBu5aB*IZjJiK6XGOBD-QoGJ2!%GbU9Y>Hx2JvZ}!%ICr=tl1G9htXC#VY zb72|a$!){A?ItRnZv0`>Q}C&^B@CAtB{j}eIwqrn@=5p;OMih%svrR%MhuXvpkOD5 zIaoE#gPW*zeWq1!87|@n9emM(^5U`Dco=6~NKC@ksXyo?`;Yp9Lb=$hWFvlgeg#Gh zjUikSqHdEh{GF6FY4R7i5zJ<1aeOUM;Nd%pfg+gRu%30Ru@T>23Nt~Y$li-BqNeDi z-JNCraPRTbgj1$ylOwtwv*kf);Je;+vT*J9*MD})r#B<$h`u=qf1%7Y>%OS4rRYYG{iF-F3bLAAl5Frr!Vd!IDz8Kk~Z(fS^js zf4VFD`SC^ZAo=_f0U3rNT(N)COWti3<6-6@j7!}7E>iZJOXaZK%5*oX_U{=ZcCeW~O@ zVdbxS-}m@?21>k|-TJMP*#GXVL0*TrdDS);#H+3-ZBWJ75zKZeet1W+c`RRk9?!n< znZVMf&{p?4`^$)n@ed+qX&xSf3b}DP{0Hyw%$2AX0Z)jH7rg385I>#qF!w1SBm$IY z+LIE?Lb5!SL)5=!|7#R7(yX!;mJ4KKO|{ zaT~6c{4ev;eAha82UN1->~aOE*VUF}qb+c^Uo-?B)G_nzjvfBGr{NFA{JGEdJQ$z} zbcP1?upOTQ;E=VV%2$FO%% zhIdA~oBG=89$m>4#h;YSZq=xK&J8ZxVc<{Z{zByy+gFd# zfH)$}=HkzN>^Jr>?uesfhuQg41NaRaf{^C?INYu7I=RiM7YIc*(>WCR`JUTwzNn5k z*y(`FVf7My#>=JqhU!#KC7~^$HiB(BX=;gVVT{6i`F}*dzkQkEG(5#r-=&CtEc1=E zz(5&&c~NS*_v?rV}56p;z2n0rE_Y00Cau|H- zfEVe=^6wd?x+Z#w^LuA-;RI&v{PPHAJeT%1=s=oWAqJFg-Iv8YxJLZu@zU!_qbW9X zDWe$2SGsseZ+X+4QM*~*rG75qmww}zrJJOo@QqXx>T}~yg}|#KVPE8vN4Garq-dcJ zuOSX6LKk;Q(Mwre1n ze%|nCA{EptF*+z2M+05gDyEr0G+cF765S3G*rz_=U5(sB^HbvQELMK z*1xR3Lb*;kMR=h528-6}Q ze9H#hxJ#`fuPE@qntdVgtOpZ<1cWpkz6P<8XNn9Cv(d5pnbkVbL)`>a?``J0P**zX zqwEN@TzN{q1Oiy;^@Atl3EVo8ck>#}?i;~%eOT5TH99<}Sm07a_$?OWd*l^18_HY| z3&s&==l!rSH(?)GDIozi5l3i5CBm3IqFyF#a@8aL|HEI0f6gyvG#f8<`_b6*^H&dh zp?Ut0>dbf6z33wi*TRNZV>w&G2XK+?jVRCBFgFZ!2pC-&Sx|WYy|d`3irVGN?I<4T>hp5`*uWu*xH0{F_vI|Q z+K2XCvot@<%o$#0mOy%VvSQ21$bbT!=~bq9(RZ=Sf9}{2Mndbt?d@|C3j4FUUL3Z# z5KLYPxFXT{wm=VEQ&EH=1L~XUvtiXwwL=;Cy0rvj9?U<#dn%UjYBKSqGFXi@bWIJ z)4b0$wuFO{Dn(UY)Q^egc_8BLtA$&!U;k#|d=6<<2=_`1@4UoleJTR(m*Br-GRCuZ1R*jO0r4qdN|C$_flKMeo9@O; zd(V>SpPRi!WYWd&ciB*4?^4i6p%&0jsHv(8Jc1zK5m5GVx2aqr>`Ch2DLv@CAG-=M z#9R}r)Vq7+S1|pPjSctlnw;D;q&=cZeXp~Ptbl;w;O1ykD$Q$gLRY1Lir2M^#P1bg zXFKFYz;rQO(5Nw267D?&dR9(UL^v5cuGx|C=bLVFtdcw%MI6gp)Qy#bQa9ZFF^ZU& ztG!nLzH0|JR8`3$1SV{F?8=h9*}~DzAz<+WN_&Tt%|dM1EFjUAtl#M{N7TgdJLw2V zLs4y29E|ENAD@}HiQuQ9Q0Zt}R_4!CzaV$lA)h1+W(zy1I#>Fih1)76f1(`tHu>5t z5g0yN4@0<%M`16HZY>wi=(|$#ThCSqyvb1f+8m)!(dYfUq3_cyCCso^x^Hq~Wrgsq z6H(H%>}lQlf;`$6d%BsT{dRO9i;4mkC^W)9gYvQoNfi@MuhK@TS#ix$6;NP5mFn>5 zPlzEnc@!gTaXpTq$U0rrm1BrCt$76#%le<#T@_l7(cW`Q-sOfq=@7Z(V|3q`F%J1C zMcjzC9(%vWoekXhC0k4cd4|vxE5|CNW-a@owzN{Fq{P;-KZd0UPZb=HD)>S##0m-x#{FQ@b zcgtOCS9~lDMIwDz_Bxa*(DD#dX}H72yjr}mWT5yhb${`I*#0~30(3QMVWWA{2%6;r z9|EmJ!_6Qu+4FYZ$M~a0!7>!X?-vXS={fG>VaUzp^?ovimK4Y;Qn#wQjq!OXIAq(DXJI(3_4lKXS|%=lIvD3G{f% z3bWStaEyxVJ_iW`>BmCK{nu!1+AFl`WPzeUt-ZnQ)EIuZshhG1J5|jrHN>-8bax1? zk4Gr%*oyy@?f@@gNH->qMH<~%qQKXZ8RA3du2`YpU-~tI0b-)<-EJpR_McRyfPt|H z3^LUfHp**!8mQ?WRYGkSl+Bp1BH;giS{Wru;$D>I+BQcbv|3Yb`{*VZyy0A7))I}T zM}0P%G{!p426SOgf(1@2*;+JQfL0&`dWJFz0#|J?xy9P`SG>S(L)>~F#QsuSa-oC)d}Qqx3-nS}4rBpp+dF+-9H zTD@iOLQDNx-u0Ik*>wVkEuxAZwMf~23qC3gG&~hR;0i>`>{x9%Jx>tWOA32AXTb3a zYDW>%GqV_-c#L;35@kJVeOhOL7QSEpmap5ojz%(K3&f z=%iKXon9&^nHmvE-g=9vF1z~)!SI1`q`S0wI&Z=c6GjLD`CJ^=X2g(pEbW_&!)QM@ z#rYq*44iMv#7c9f$R;Z+Gb)j5%2JMKV3s`6qfV#K$>LiRFcj?uIEj6ujw}ompiU2V zZBrS4XxxRlk}K*Dj`>6nZK4r22>DR0ZIlW(?-S9)(>vgUEzy7ma8~SXssF!xDhYyO zDoT2FQ`I_bZ+BlJkd?4jp!ao6bJlN3UQ_8cJW>~37>(A(Qx+*hSfErWV`qX^J#S~+ zY$%38}RuME4e5St3QlUF9*YaF|vuJ6_~@xD_d!FMznt zlJ45ztQ<3`(MhS&1L%fZdO=K^8UEg$V9hl2J8x4!pmesZjP{qI0IG^L z9V~e~jd@_6r_2gEzv+^uFzG?xjJwpHC6xg4G-CuZJVe<4_M-ZlZae5aWY*nbd9GGH z6CE0yAXP5L>nUO$Js#I-k!3^oPTYi*87x-p!wHod`ldipZ#^2WbFhAQl$;xh93`=< zN5+x$h`L&$--@GY*o{p6+KM@2fgVCq3OU-#MX`uBr4W-bfQ*ewatZ-OLior_4PZXo~Nsiikn-mTj?~7XBXfAjJ^J#=H%i zQR`(0{C6X^`W{<|SBnOX^w(e{da8uscjD`=*6wTTd#)8*RyH-G^*TTz^|;lB1$IFU zJGgN}*<_~pDegL#*KW%hlSXS`L7f4dxej(IsKq7hPpf2_jTqJ*H*NAbEW75ugfrSE7X?i_< zXj#af24c^x*o{@|gO)yL+)r>+Xo|a;Wai!h24aX<4_u{Ooc0$@Fg6@!7x3Mtl~8p&M|oHbi0sv{uxs^zcD!?ktoaBg zOoVv~)V9T(%@oP_*P+45OGehF@u$ z?^10ty^ZszLgCky>VXdNsq`m;_hkyYTpd!WU;5!B#Z8+SULs&H^{nux@&4L)k@VNn zynswxzlY6DS)xB$3fkivYyH?aukml8d8z7~9*OvpHxbhCeC|?P3*Sl@SJl~{xYs~& z{IDY-1dfg>i+DQIK@CFPC)~(f4a+7=ZF71_xrx-gf5ONXx6cVZX09WvyD}a&fSK`j zCaE`bPoPRb-o)ultTC$?iLBp(|A<*MicO3^)YAJ3o5|O|`CL=dxRmT`JLDm+FM-95 z00s2Uqk)^O7{vg!_sw0}L7%o30}$(N!~^0w(P+&tc^k7#Az7qj!`G-i*rru6-1!>Jdbu?}JNY{$2i`UviW!DuLqx>mf48-w} z_eQLIoVP@N*`$^wm2}ZVfP^qFI7ZJI%BdehJRPkvh)m;;Q?!F*NC>mOM+GP_l31o9 zjacyP3?CNIw+YW;vt8f5EgABT&)|ZdMFOB%ktz!Y1BsUywlG@Vdui6Ea>lH`h$DVhoI%SZt`^bZh08l3{E1dYF zlE+U<68*kr;YEICjbhgplYoBjx(xw-%9z?~N>@_-e?V%Z`j_>mSnReFzD)g@xq3Lx ziMw#1Xn$FY+f>Hae<%!7Mzsmb!c9InWi#aXXpDE% zc2s#=k2dxQbB8ryxwQzK+Ju(~5J5dDW_ok(Di_qyntZ}fD$Q!V?hc`)%nJQG0+=bW zqp`2%HiDad6(=P=Kz$ZScTQT0rQt`3UN6xpJ=@X51eXV%q9qxwm^%vs-|r54yN5JYH*1T%51MrneKc>v5xHEAM7m}U1aHUhTL{tWu&f7 z@?zh!JY+dD_DM6fjk<55cr<8A4P5;7Q zmc^S~v9st>nM7GeF!&ZUC9ltLFCz9k9AUX)%ABayjQh{itkBR`Ly~2)adxRcf$45H zsS4-|wXk-)s_uJ+b_(JYYWy69#;(&9t}vFVBL*P{)-4IU@%x>1`L@Ibrb8ggIYpcB z>x>gRqhHVa78unD5C{lw#mQ(_?BR&5LaPuQ9yC8Aw4N=18xq1fK=@z8+!y0akUbTJr;oco(fjRZ4z_fmis3}Df;L&qcFNk`h_OR9DMwfw?fL4cidjG_b}qHr_?O-n%B3N=-b7`s_ER^7~5saW)8K-#))l zIOOj4rfgfmE*BYStYKSh$*7IcLWH)+RslaE409DL_bBrySSlDtU?kY z)Cp_;P~Etp$~A0AvwfmuNNa?wWUFuD^G#W`pA9D5VTd@2fS(RCd+~TVUuP-KGSO5qZw9i+hE z`T#0OYC`!ZO_%lMQ-ph}P0(jeydP8O)*~*Qk7PRiAyYk7s~I$CUM6|#S<+0ZGP#`m z`=2l=Y>iwW;^B7T4+?4sFI%WNd+R;goODj8$es7MO)AudPzKenm2WiC6FWXX6Zo5! zfTJH32Hf(&0}`MS5J@HQu0(7MFYU&F?|$$W*&>2n8gpJ_7N`0brT`+07LMrh#KH93 zBe>#xVE_}97)vxVPVJ@Sgx)yfb-YXwAiK#jPrvsnGifl4!R{ngbxmWbEa-L<9;&X%#LBE_qG&qR| z2=4J$+YZ=d0}Pe&brn6BphJ$&$YrU7_zgS@C5ML$tJ%$SZ*jCDa;T#K@n|El=9U$b z6c0FSEum2Z2&pbW_3J9%M1`lR@~Gm|$qcqeY=Mv}nKnopLM0yt9LW5Qx!sm5+lgX#15^;#N79#qB_ zFfLAgx}Z|?kSy#A=XPf>7ZgGxUKIG!+x>z*V!3gX?+Js!g`BvM-6r^lC8xbo6?9Ag zw;?Ag#q@Cs8hA!f`5KD~Q?HY;s*w|cpo%lYK1_iptmK>FoqUx8Y#ca)1-M1L0a_$+x z#_%4>Rp7YWK@7StJ@y1h6X~*!2Mu}FA} z7>&r{Gw3By*wsq-4mttQX7C)a&xYI!~eQzZjtXa=xhJa1CGwNfwWGUxo zGs4QU?Nin1p!6u|phH00)KLA#VYU(jAm2s;&$msT5hSeupv@(~e=Eu=NA zE9BYkvZ{GQxoNmeV2ZT=wP={GHsj(_*`g&^eEj6Mupv80Dh30Ei@U9oL#V1gAA9>Jon@V{;idzdO4CNRLy>A_^SACH>vgeDny8^N(D=X42qx@K% z0&^FxkiMN4j{9iH2DD-s7;|e>agm~if@>7uNqR|;4pb!hSR8ayOQ6)3uGqOEb&8C5 zmDUPv%?1^}L!iLOQYZjz1N*+@CA#H))1Vz;JWJO$Xz0g>pg3K28}m;qI>g_s*v*&40b zo)}0z`EiAl6cV`~8r5D2q>&vx>J_2wSc7~WqoqLlrD@JxSM>clK*N|FPO<3pCqLMi zU?gb_ZNARV`=>SjoImSPz)Kxiqb5JBdu&Ym=E0~#ZHbQ`I$F#>o~_zQ)H zD6kwlHpiwPt9qo&J@R!~c&5z_l^3WKe=nvEJ>rC_#sXBwj>Gl3C6EHKAK`Ura@b-2 zA}pq^f`GOzc!~rU=?39_<^shK^e7tXm521iY^KWPp1?nTM*j=65k)$1v-|p&L12q$ zmWWr2SFoF`QKe0BaC@i6{>hZx)m${F!Y_X$3=bx^d zdS4ztNeYSaa9>f<=Xy?$g4yB2rmRG9g-3;p((o3dhAqX1G0fp-;Pt?~oy$&v75@&A zDPBZRk`wpf#QaGd%yBup#FCxZioZr%#-Mu3_>%o-hlIhDguxLPu9cSx+J;|z0o?N) zBsWYd7Pz5wLkT5@O&T*SZinlT8X1F>$1%$op`N@6Mf8qi~91kkJ?-o6m83ykD5SK5xP_a2a=R2H3rmH zcrkCu(BgBFM!?4((Pcj{ukiheq}y~)*Ex6|P_?FPLouzb=`E-@-_(gwdvQO^{zhm6 zITw`4;;Z14`c#`|UEBRkz?vAJ63AN+-?Mq*s?O|GI3F{zIXp`5D)M!VcVKNtzNffx zxlTAo`fIEuS$h6*M_984P0x!>G~r#X!PRKnM_)gZxL_Z;5t4;cZdjq~kMzyz+&(7x z5_)fOkH`;Zv}mXx#J2$Fq2WWUwhJLJh{4FlgKzlb>kZ}$UN?oQbbHVv0tBu4N<7b6 zTyXexx@S_f?0kSqqw$+BpughyP?0%0%222pKI?MbY#nKPrRQ- z_O{D4-_~9rxx$9vO6L0(W0}11eF<|VrA4VP1HPbb$YvoOMcqZ}F6#Y^yAgmvZT+WxvS-2@d%}Okci^mVoT{EzuRy z11&E!gz+X4As6fdIId=00X>i|vUqfa zbFT0if1$U|V1kSYkStofKOropQg~)aV56Hy1X3$r`JYRK%dkYBH1!-D9Fe*owHJTl zfrXDqyb>LJTi17A`Llms9H^IGbH0CUT1in2uvG^@h&R7(ukdAf1vMoa!0m9OUj#X(Or zne3QtI68ZERHcbE;Gs09eEHvhJq-`CJ5%m;GZ9sOc zYoI~mKO0?AZ3k|A50fl;HcHA?^XVg_+6me`Si~udZ^wU0M@*QPy2=aCJQ1ogC zs$$7=&ZHF8cqf-|+U z%ffZ-79Scs$<-k&B17KXB5|5=dJ9ka_L3L!m;wF z307+0?3Of3^wmNExJyY*=a(DY(DZlUFW1-0DST@CKc|JlCcNR^yz}Ox`mTy3Ykc`i z^+o0k7>lQi)NLuEHUazkDGQgCD>J?q*UYQ!*Uk6jw)p2woYgXvM|QUu($eK~Zim175(mYI1e={Eol+b(bW`wf$*m26G|e$yRI)EL;ST>q%*if_7_~x=CWdqdT9&_cg$x%EglADU zwOr6~uX%bD8T5%>rt=j=xq+djLGwFAQq4DCu3%?@LVYMNCxztyv2>LIO|@;94q{yy=JwY}(E%DK z2n96VCSAhZeZJ#RqJ0!qE+unEhK^XdHGU_WOF__qoIh5|Zky-75HK`Iulj1?=j-*4 zq|WLHQTi{N?>;FG>|Y#|M5Ms7edE3Ew`Js+yM$)GYilbO@FRAM=Fr|#DJ+Q$Yi(LR zSks&JDR@If5U(0?x%x?wbDZ~`egzJo8#AQ#gNZKrX? zJVm`3eUD!0-ha@%^=Ar!=zLtYm*cSGgpmgMoIx^xXTN zYjTEml9EL9&)P1NjCl7yBmH~ZZ$~G@Cjf>1uIxu>JWAV28#KwKYBNC{X{SqyE!me# z+27J0QY9#WwBxu+A?OKOstH*7}Q@ z^d=RXN?*v@3bCZ?KKrTg?^Ii$mu#>z_PsF)noDEOUc)!_BadCbeRO5)oDC!YGE&;++7gs= zo0e+w7K)re=MLKNYw9F&`y$uv{FqajeJDG7 zmc1+3?JZKDVmQmx6!$*vQpCvAdf0;3jFSYMNH(&%JyxjZY9YQ;2s4MSda5;79rl|` z{wXHt&G$fiYS$sM&ZTSgcDaMkvbsXc5mTCEausUBp9^jM74m99!UQbg1w}F zHcZF%r_rq23!6g%=>}F)P1um-R6=!U@+IE!!^9*Q`y^#&*UaL%`K>9?T{c3e#Lyf_ zp{r3&uq>{hDI`$^-`3GPOd95XgjMDI1ppZ{#F&DXYiH=m&SJsjEK+O_=3P%ubiW#e z&kr1d9dr5I-X*oM^km|rfY71@TY`_*%8xf5BQ9A;kUEgg29F zI%=ijzov3>i8dx&hV-s zKKx+eMzM~!{+3cTMB1kPr%vm9D5rVsXoaGlOhWv2lZ^q){XK)vI3K?IL(!G&w?+42 zU>so~dky>KEcx+Z-dW8FhACjTdn5S1+exez&HZZjMrpg#k73xk>%EQ@e$6o3A{SHD zbnF(L*CtzBtL7@J028X4Y=ZJ@>I3+IN$EM+LaeP^54m{_6x})H@yTV;a5PFwyA1oB z-Zya)_*z=lPA^wM^#g8WjmQz-DQ!JQ@z~Gies>VFBXHXIEf!^RPomL9jHSVmg#|i<|U2BRUz?6^5&Trf?R@VBiaVeGS1XyWZK# zwn5|6UEDfrNmgpi%4b0r(22uzUtuvKP4i#<$8MWPN;2}Bit;{P- zhN=mtoyLVI>~`yaC#oEz~N#++6`$n!mg7$dqy1JO#Q7yENcZ8@3T z5P;W(TV$uMMg8M~14B;=UKfeg*wRil)f&HP`S*xG z57?dC<~YhIJMG1$Dn#*PN`oAckgswcm1V#aOw7kSQq5H^F>@(8%9=s?kuJ$D8A7Sm;Fa5^he0xGy{KT*@$zz zMX#SxqzhlLNGuK8A)B`KMF=APSy6C|HEmQcX}a7wO#h)5FrZ$_?aDiXBrIka9KvE_ zvE;`3MLH7gA62o1jm@MRjyH1p%w$cw;u&F%13K;Y?>~pD{*#U1GDQE^vG1M!Zf30F z0p>;zKWDrI6TEVFK%;)-W1OD>g9LFES58+r)vZPgfFQ)L55AHiO&3ihh(<^|w3jJK zxbU0zFzAamw}xC+2O;8@b?Ul|Wfb_$bzi~D58msBAU-{(Clq99=l>%SJt=)dTlM7N zu%$D5WiX`c*aFQ79_cElRBKd}8V(71Ks1o4wW7ueY>p;elm9*{lVC)LdP2HF3eIV} zIY6!D_}ZA8V%tN)bhuTM5}k@D&Me+|Qd@UudChW>oW zE3jq--hI5xgS&5X{-er(UzS3YYv3m5Q{JmzM}sWT$U`M06DsuYg!R~@jOO>)B;3+_ z&1`$hkzsr&-Ba}3BQw=O27$h}XP zNmc?F4ZSG7V*f=hVq-8KWHAQWA5s*Bq3qkkpPbQ&pAEhoB=d6UsB>ytL!+wyWW3y8mQQ*_3I>w}i)|00NtmBs-_|3~}jCQ!~}mJCv^% zKkV)Ge~g{P&8ba2j`D5~;N!+76dpK&5Pmc)y5GoSZF9O#dOTr1#v>OAF)XB+d^2xf zQOxT+qo>~&5>~uTHL!mpB-Zfd47I&%6kMzV+gba*hcnv@>5BX7QO{D8h(v6g|70;N zGO48?hoYyoObk==g5Jm@!DqkNF97Q%=P|G!Hn|+P>`bJO(xytXv2Tu=c1Y5K#Mb!2 z5y552WFNZS)y|JUAC`?2!|Zj<@wAD1Z>hq1P`SlMbUmVZ?=ZY^lhp{ofaHeIKISNr zR2!lF5&L_6WxuU` z1Vd66Ul6QKEeec{N{*K5lP!mvtFj?4WkihTCSGuUXM5Md74%mo(xq^3YZMu>A~}Ea z&$AczG+vg;u=JN2AwKP(p8_yNB)jfX!~5g7m>=6sJbvD>YAJL+*+jDo8CJ9v%puJj zU0)*(sen&5ydlDu=@ORfnXqJ9g~$l5w*B31{?9?~|fO}EyIiHuiRJ>MW-?aH#MaxNhU*SEP}jP;3OT{^Aj#c2QDuC(T8 z><*E>iwgdz?$^8BE?>M`_Pu8tI8hV+Vbeo?g61;AZccPO-!k;ONgcc^%K%T^x&03c z80Di(6_)bfyebwEi&fsbpn-O8c4<&}Wl~;xjrjcx!7mJO!GXQZ@g>>@Dxwba)swR~ zL=L%U74Jq5Gv2yzExM%XVE795_kH)1y+1vExkjFz=c+^{rN5~_cL?>vvGf^zLe#d| zxQu=?T*l_qx69J~NR*5|h{zt@HNyI}CnewDgOrVt~Dcx6KMgdZ{`s2*nk;?aEb-7wZTKL{$A|YGMqbdYq zJGTnEe51%iD6PJX)IKYc4l&wo@1Xl;e)Y|WNT2cF#j0YQHhu}e{!obTBpYcYarisE zQLuR1>qbry=}Lxm&u~fey8%~aM>4bCGR!`;l|4ML+J|9)S1iqi zhh_eT+LkYcI!RIQo!UD?a+MZZk|If}w?Pu;q5`GC`uPeptq(#lzHRy(%*^TBCkMp2LU%KDzc3 zS7Cb~vi|b4V=2MR9$R>sEA?@|6K>y5w+})#Me|QpA2Ar{ zQ-X5-6ZbP%Qb;D8^hzy~ug87c!mobXg-l&c*s*==_uVRT(0U2NhkaMc#OnW_uD7&Q z0l@M5qj%LsH0wLvD?hvYJyX#d_&tCm34mV4yJ(f(`jPAxDLew`LO_?X)n~InUq5+N zv3g(*LP$ydxQdP(on58WT&W3`w}J~H*lhlB!)!&Ud&0^bsP3|O9xwtYcLU*AW=P^% z?5Ium9B13yW8dvbw`{h~U%cafwj-#g4|F6^zl1U>`GXSu3fNy7I#>qv{m z)drD%c`E7U)BUyxO2*pX-?BwQ(026ZKg|X*n&1Y`5m?Vj59WWNdjE;pS1BqZ5207y z1;g)T5idE|6PGQ<{08w~8qW8wR3XHE)mNVPQ2+a_{q#xqbuqh&zFijfc%G33ick6q z8&KSGWHc>0p2UqBw@T$Oo}Dpj&FF1vc&d8JN%?uOwzGy|st$;rB(qd?x%pAFd`2Ap zLW#S}HP5MX8HfeDgzq`#81fr^^1W59{?(cX=)<}ZSxFCh5F#WJEvAIwPh;n1C1xJ< z({?+OkTyQ?wPx%T5ZMX-8oj;~2ViY6QI_59-M|4zBoRVI5X7#;mDBi zEyh7t1{{|l zc?HYwitJefe&9-%y-Bg(GubyR2KINFuH)_}dU0|<42IGV`T=mow6&K{7iL$Bi(#LG z|AH#{9%Up1ZZ++B!T^p**qaIhnsTLoND$55?Pef;N-6B0z4B% zWJrPa(s4q769;fhxN86{tWyFeH*{h_G>f(z@Vnmeg0FS63wV9lC$sTuyJN?~Z!i0( z(q&mkV6dU}qzCxZ)Lq}eJa_qF#7gG|KcpU)6lNND^zmDE{BrQS0&F-&c-gp#e6~hj zVSv_DRo0~YQzY{ZZ5DGNx}Ck?`Hs8_C5gnD+FX0N`oqh25lJc`)oeH>EMb$m=1?9# zS*=Q!O_!vq+ru~C`FzOr*!%;q!HEBxnZs4n6v)U#Ja%Ky^^Wko0*miVNfyfW(Mron zK|>T4&?4*Eo6JuC*(l5DPnU6vZL$)-20CI%BTh#{Vl?>MgqrJLo7pKSg z%97Tjm6ECGNIs6dA%WFrcgEaLId;JR-O_oT1^Ps-?!1~tK2<3V1C>QRu^jV2eh3Y9 zmY_KQ*ss?g;!#X?Mt7A1-My?r$j4I{C=@*cWHD^gq2!3l$g&MO?LfuWBHS3V zuBNu1zN!jK#7G3U+veZ1EX)+`Wfze)mw9cJwnGwum8SK*vB{P-)BNH;KWq@N3I zb#Mdqn6e4xZ#VLnP1%!Y40|zg6umMv&zY^%gnpp(Lx5;DE{ar7j@P74+9@?gX{vtx z_KYLNMfew|N4lju=)k2o1%A}t%>!0-diG!XOqqwxRBET`*i$8_K3UcUQ{>I-jm^uI z4e=j*G08E6k-4_>fm4Dz1#t&F zkm_fmc*`S2=wRHD5 z(noR>C#%$~MIz1171;26!1qxXYl-OqID8{A^f)sNc8c@!|Tj1 z2Y#jZPa@TvMf#sT7G5Q8nEZ4r+}&)I+-k(s=K0l3vB)HjoICL^RIt zUX-Qs7-Vp&PqKF_e?nk2-gdkM(o9-)Lze9K?Q%g0;xJ2Igfrl)#kg#`UH`gXwCuRp z(bV8eJ&58$9sa;Ef4_4`@?ehE;8v{->K^N5T?0H}MQ!()nQGAMKnHS6yY%pl={I}d zddgD3L-ll>wLTXB@hfa(Z~t)#Ld>5fDtz2{XhSKF?@;uy_VBEE>1@-7rfkUD`unj5 z!v&rJs$9007nSoQO7CLg+}{&NB=0}_*0g106~`V&y3+O$nOmhK(S@IC*X)oq@A~5I zm>4q?FZW={d%MZM$y!%RJ$@K&Mj48d>IkVZW>icU_Ll()0KJL@;J&l`87f_3q$oYN zM|@@zffVEAm4Bt?j*doPh*>16feFfeo*!wY+H;ZBK)qZ8VEKlBIky!+T^s&pBt>}) z|4G_F?n=Vu7{C$lQ>;|RAVS={h=8;s6EoFR54JnAeg|Ry)B(dli^loEXBzpz>W|}1 zgD>aM)wu%NpVq5i6b(M$r6q*{V24tZ5c#Jmn-b4;++#yJ!V;p)(@dXOsT)f9jt@U< zVIXFr_-S+YxEkTcjJk7x%27Y_H1*sK2kawc^qB)>;40qY2LUsTBNm^@~B&Or6?SF??w&%5JS z5dkLEI@pOdUvWUKqFPg_c^KPsNb&a>0G(BU?h;+&W(Iwm2;RDpwTt{(@5IHl=xX_X zzi4@Z(O*q`WLrTIs7njR>h>4;{uKBNNd8BcN&={5>a%u#p$`vaeZJjKGj!naoKchB z|NGJ@_i!t}r1i<5QktH&4wU1;8*8*cHnbl%=<5(ZpidOCi6*jJj>eDxpMe`p5124Y zsGR9i=7bID?5bs)HYl}Pr5MPMmH5xgf+yeQ=rEzC3n%(_SY!jmN=5PA+_Qx~(6U|2 zvy^Y4Xr%iuERAQQ=9f-w0Bk?NMutdGeLS7nAjdF6%0_-@JG8q~?(}`>-#z8`tH#L1 zp4<_PNr-}JfBeLbla-;8GPV*-9QjUd-J@p`!S_bHKw4(pqA~v7LYVW8{NKpqdbrpd z2Ey)(KU+6!V%g51Dr}7}4FhOA53n96FN%w-Z(HPHGwnAbecW-4>Au9c@BW?1+nLLK zJ;U3-vc=$U6@SCN>JW=h%r9&@(_tUlG{;*z(Q7OA4{e*t^k)qMsTQ)Grm_h+#9M*E zl9Sd_(O9*)PD3vj>gyhf4P)OeTCw8yD%{CPLb6VicbT`V=5+6&ds0Oe(i7734S|B; z7M;1yJp0Qn-7$J_TR&<A^x2 z+~~e*u&2e`uyvX`6%FJq7i6fTyzW4wKfFaKsT+jen-}#_6g+9yt4(o0i%pL;Ty633 zW3+p(UgAY3+JKJk{eqkju6GgE@#xeS!(;^P6j=Xxb4{0mxxT$h@Gx6fNk;ixrL#`& zp*$gk>j5@)_JHp6K+^SG!zS6!w+f zY6)eS0~IWd=_L;Og{B*w<#yDF2(AE09YFq9TLOeud-_u;SsGw>#bYC8`Eug?SmTJM z8bHG^+8?jS!ud+k8UTR>typyUa=leUd^j8#d7Q);$aAE^>SZJA-dt<7Fc27$aSy;w z7H^NeX0l!oxK+a>khFf|&*p=mo?bO!&ku9R5hwJLQ>$fZ=bRTaHH0d$axWxgCfA-R z3i^hl9iL7-^bS*J_%UZ%D;cHJ#x;16S^hw?bBMZwca5ok2qYw7HFiN)Lm2X9A%GLk z)ym!N_KUaD1s-OVO7LHdv8quIUH|!q;+#r&mf?r>KZ5{_Gqpu}8lal9oX8RB@`eP0 z#1S@68jy7~sKEjfwmML-UD;5uVqlt%9UnMKJRp|xQ1aH~qHF(t{@50sc>BR_zXMnIue|!T&@9KLl$qj|uY&Ssh8CM>1yR^F2k^Bu{B2+7=u!4M0Z)IY zddHsjDepPE8#&O`N!Zwym_Rx#>~S{biWMDgYrQNTh#6lkWN0lf2HjW&JpQrG&}fv`oVy`O&%3 zVi09k*go0u=Od~6{HR0&$SqvTVSM!qpkpJAxv(6b36`0U2;#S?%HS@5#fsUHl76NW+o}vBZBbKi}`6b zsaDu!Zl_Q8s_CfY+L#kJPUhc^=#vEPJ$r3CKfJLy?I*RB-`8}_%rNxUmAY}`(KIe5 zysJlGtiIsw#E%($*aPOA8=Eem^BBL{GosqEVpy6Sk@D`#M=2jYI&(e%uyS_kN;(Iz z10j)!78A#NGz!Ko+Hz^x_ZPy~ftVetRHfKTbK>qoBVtC*Z2V@sW0O$B*KTwb?y(dk zwzS%Vvv)4Kdjzth61AJzNa+7#zls*0=^5wbg=dQzBNG0>bzN~iRIL6gdqA+_Q4%lk4#YV~$>I04q;Ol$BXHtR z)AZf4=tyd281)ZUkHm*o>jK$5@~=df`)}f%iZ;KTr5S?HAcf|*ya7&d>)5gl8sS2R z)u<)ZKsr8Tba@fEVx`Zn*g>?N-ElOwqoEwoCdA*|SBoVuXR8U3dVB?ft{{UGZ1FGj zD3)JP+80I2?>k5~UPO6TW#5`s4MYt;G--yvNJIV(%31$Mz-7M1Riax~1B+7eq@*eoggxDvosvoo*QS(oVN zeQJKI9+|ndYI3}h(2Fd0$jGA*ss0*1i+eCPCC#U*}pN$eazAi>GPe4 z%ptQMKOZ;A*v2{DEdZP9L)0iRtrOvgdw7JhOI%>%>$lxPt@xfwzwL> zU%>=9c($87nLrF!KYG7!tpp2F-6cJk*DTN?KGFnK2w7w^1)sLH*!Ni%9h$Ek2^(DO zRGGJl3+d7-V*4R@>ShgiPx&grjs8Zx0@~}Qon-RdNqD| z6_EstROIWXJd^(%*>|hIu`% zLe-z4DHQvkY7JW+TWzW;)D(vS>jUsw7D?dC!-Pc>hZKNu%r?~7y7R2c49WMt5^{+$ z=7xlXgGr_ndfxo8!vJ4g+hQWaM>4%+`R$EB3G7NL)_sg)X9Y5F*L_5@&51%4J1;R_ zRI(8$y$=iD^ZgOcEEVNJ2FJ^ysb=Cb6^bjkvC~ZkhVAg>RS(tfM|JXv(Ugygp7X(r ztnT#l&dJ4!x~+O7H@K&p4>vk!2sJZjT`sJ%Z2DHSc}MKOWA6!}5_wLq?T%}1XPwTA z*uXyqbfoRP@RbV3Cpu?z)ah0P(Ja%-(nx($PeDZGN_2wSEY8{M-84|4o!yy+75A4w z4P#!Gd$M{<_{?qedJN_d@(wn=hI{v2lKlD|@QfqPqCw;;*tmn;q~*({7!M(m%e(fN z2+aw$&7Z>E!KM2GZrImYmTtM!ssb)?h_z~XcMdOX_BSfC$EA2h|XOb+q(b|D{g>W}wi84%Gt_?=JZhdI< zOw^FpTW?M-#|fRL-w1A?r@X~yVc%I8>-dFZzwmB8^&7Qf41afd#|NV{QP_%wQ@Z8p zjobVt)kF0cKXIWc&l*Jr_A$|HS*mx#sLLJkG48~>=rlRA#9;RPB6)DG9esOAEW}Y7 z7%jLR_Ub1k4=kOVdf0Uc-qb7tVnv8$i{LxO+CJHHD~pB^j_#+mDpU6ljXZl)mvF}R zt@Dl;&rlFCJiykdqsquo6jrZ93`ZX&1@i&vh0GTC^!sR(A*}7t#u_>N2*_+~OC%@L zf$(32rZL=^9Eu?EYU3m!J)eC1fH~8#!XJP1R+)}rR1h-GCFg$9=h4d@hS?-wb(sO= z%SWCDij`5(Ge-UJ(B^p%`(1f&oh!p`lcb5 z>QZz zCvDzq3T!D^3v5GZ4t~OeC*1C=mN0L+Jwu9`7Cm-0fYg&h>X{)*n+8umg*H4)R{vQf zAo1-qEY%J7DYCz1%_8?LOKbNdVx{jt?g2sFPt7`<=xFTa%#BX+?8v}jbi4D(Yw|!C zgaM9WM^nMI{5{|R*w06GJnA4F9`Eg-(fj*e;>wW`{L9nH&mqJ--?D9Kck8BIYC+!K zBGkWUUVeL^y;ftmO2}#Lgft|hx%N?KB?&D z*m7G4JSV7vK$!tI3J*1x-E0~EgAaYCn09A4yGj4VPCz!Wnqbk2^3QfAhEJl~lvIE{ zQx%zh-|QIJ)eba{*MZ>*k5J-#nl9=NH7&ck8sG$?BKD(g;6y=s8SrTQnZLsCn%u-^ zpZt8kpuiVI&UJTg$7UYaV4*JqRJW1=tQxo-W}Dvf>h_yWR`?5^f@ZnGJH665Q90x+>aI8?Mjo(BY9V*SpNuoi zGBP5|UiVesVNci-`xXjao8Y{&Kl29tGXxR3Wf$N#K(!mlK(udfd2*x*)T0euj+};j zgK2Pc!k42=wKo2$EeOw3HoW#aP#nSY5p|e1X_TBn^&!jq@BzD;n`_oP5qux?ds+*6 zk7Rr@a~ISIHb$oOA_+w;N~zv>B~*l$5qZqPxtSn5j!#Z!Q}Fc-P3TQ;<$wv+=Fq~9 zavCi}3iR)Zd;I^4{!6|ps4;m9&MVP9(D2Mj#u7NMzlGwkP)w&k=q0ZL!NQ$sS%~^M z`-u!;MjD{~k9atD^h*e( z*1wNA1R?&)*UxarTkifo?lF9bdeHcJjv7vGKJ#leqr40z&H3~W6cwGIIHDeOvKo>Q zcUF*(Kvxh=en?&3*yIBspX4-)SyAvfm!2K%K_sE+FNUEhwS>5`4zfF(%dxE?KGJbG zp{p-w9N)2*Ly@9M2b&N7MKl)}e>c+|Z@MvETH3~sHbQQW%R2!+B=bd=Y%G)r_V}^5 zK~5@0y$eOXZP)}4c&{Jl8%989K2M);MVSO>M5P-vj=~Kh+P5b`Ew~CpI1LG zyK+vR6Bg6}`Tm0T2!f*Rn_c_ zvEEk#L0MWQ1wIO)$yo%hDVSQf&5E8a8`+a@9TKAFID1-?!mXWIMm24?BW>-A85#5{ zrEMm+UD#u}b0{1Jan;>ySq;av3+s_jXZ{{1JbR}@Xqu4#%xSGse3hVt(4H5T;iK}0 zUB};V4p${WS7JuaVVR<=d=tjs*bd}mhwte-p> z29IExP6ja^pacVuL*Ipem1V-%)$C3(Z(H+M4O`W90Orc_Tf>}H64y9Ul`;4 z1W_0c!WOSt_`!1C#TS<*MZ5-nuE3`~G22o}S20$S~7^?TYtIQFav9PrYb z3>&#@F`)fnD%jsYe&sCvkXSp6md>65guCpugnz#@tUv*OgA6t?38Vv7g~vz^^)9}X zzi}A%_G0ekefoDE-fUcrSW)HbHLK{eI7@&31-Fd?{ffPIQkTcMX_vEBCb=up7p-VwK+7a&J@dFnhQs!}7loi;{Dp+eBf{n7;nnB7aZP zs_a{fOXQhlo9Z>vZtZ8E%Xc7gKg)ShL$Yxf2dBC0iI?wUuc>NQS zY#!r_Pslt+tLgYXjD%_S4<(VrhmqmBE(lt?py~GYN0BEukl1l$XFKhOiFnP9EIJk? z@v!XjY@1Z}S+3~}Ewq7J-M?ZXrWORbbBT6h>nfn zYn>Mx?pszB_iE{8AxDHELyRjer!(5YL@v2J)X(CL;g{h&a!h%VyjAHC?6KRk`!?fh=Rm;@zY-2OUW5GqUE1&5ScE>C5mg@K!dKZu>(gf>jb>P2EoaX~ z;r&l?nlBIkI9sYCR9gFz?#|p1Wm(aQdaIRIeE0%>rnhMz(^RlF?-+ET^cJOIAQ5y; zS6e(U0F2rEr)#)$ghwW6hKS%A{Q?ym^8ZoZtUuO` zYBC0Kua12Uo?D2bGucIFXenqtLa~#x#}E}^6`km_$a8KQQ@`gQs&m-IQ&MLtp zp1M=uox-cQ=v&66GZ4u8oyqJk49AGYUVOBj6$S>v?Xbr ze?*`9s0!Mds-~6&ihQWMeF7GX3v7wOM{SzL3qH^rWhW%WT)W=3YoIo7t57==IgHGq zK%^I9q!mnfLeS(niPVER)$1c$jbPUxj;O0%V|Q_=&L zYRh+$W({yS#cX;8enu~^HX@W!=tf!CamtMQ;X4iR6EmyT*jCoZO)V=lypT=lkYqRJ zfxo!IXRN;sVyW-#{aG<7WTa;PAQWo$W~%nHcFp4=Ko#TvV}>Sa{ zq$*ow?lU&Wa77Ds&-3#j6Y|~+9V@z0Zus&<3UxQ@0wW$h?mZ&r{4zl7a6#rT#5`_O zq))^0fW0b!q9)YJanMMmodOSm))-*mjMjd>)VSyDN@Gr1e^SV|+&KDm4Ku8!K4243 z{m@1>pcn`vWkR)YUlimDWF%JOHEoN0EPDSsIvI;YZw?ioefeuuE~Ho3v>u*)`32I+ zJLsx!g><^Pd6c!5!34AGW5oN>3^3#k=HT8`MK=wBJ=ZFI>uY!|eLq9&M@Q-VkZ>4raW1f zz>Vf=%oMTaD#-uLjKb?3s+AA^$vr`QBLP@{?Zf3LxZ5OewnN2Kb~M&ixxAELU|vZV z$>5OAr|CeZHXr^TM30Ue^QUAR<9#bX5KI=cZ{UI&rARnq!beY8^9x8#@sUwHg~s$E zt4&QmlM~$=G}P>8_#VWJU*t<$r^;6fV6uxSv&{%(d%=ae1E03GiY==&b+_NB!zxw6 zRT4{QI)*5`;h~@kq_#weQQXL+p zPl8%|B8`Kz^U$Bg4Vfhhjom?=IY#4?HK^v6OMEbs*jktlTl0v{aNEt% zvBDuVQd&qLnnHH4L(;@`b}@76IH+-GP{*IX20;bR0$XmaZnba}A<}fT6;~OOp_U~M z8(sjDyi(BKY?dvN1hM>`1H&U;2{c*^0>dg_ZksFLF?U?X{j0oZgb&BE=$0K?K~@12 zE%VY68Fx*h?p@D0-UHt6Ug>QKnZe$foUcpfPw>w!xp6Q&0;<$LyiZkB@p_8pejvsD zCrg$&`xy@IXYx(JeocAiHNu~RSQr&+b)fbJqJ<*gAlFd9q7CZDBC7YMcdHp6){ zyGC)D9J8UR;4xLx&b7n*0a1{PA});Y{)1#l{Ac!AQJ`@}IKQGRT|k1Z?2Ed7FM}h3 zm>bPn16UNH5r%YqAIpB;EQlkuw)HcrCbc5Zfu|B#A;eq@Y=E8KMK%#xNmDpnfe*p{ zre;v>LD!^DuY5iXOZ7maWnpY6@k#P372*g<()Aswu)|j517nM>#mRjvHPSMs81 z=BnvJh6DR0E&Fn@E&H6>iOWEoK;w{8c&b)hw<50ps`jkUo!QU4>#yniw_eyJVL2-N zTpX=Ux6um$CzToP$u5nBCnqw9nc$c5Hk>lIkd{KLyCJzmi^LxUi9cLbevYU3CS~0( zssHHpE*h_Uk-6cO-J51K9ZNSx_ugo$=xM*Gaqpljz`hi9+G1zTqX+z zm8mqP_Nm@$Vk9=#qtvCKIv1hHtuy3ka;L1Tv=IAp+5Y|{XOCZ@rhZ)!Uw-%zuZr(+ z4xT)D8H0yR;jOpA+DaQ%tR38J&6)y zm#gcoE=Dwj5+o>M^0UD4uw8~e*|YT8@a$!@f1f~hvU=kZ7ufetTE8SPkw~^e*K5oa zE70q*=cIq}GgGJXS$0f%53y-5l|x#4i@-_Tf!by-Sv~zkh^a;mINpz+m&KAxh6!nT zANZc-3~WYecllCN+AJKYCD#hVi79RwXb0<$*?hT$*>O)%)~)0di-U8`)*s?@wEF{N zT$Cy(W-1sn?4Gu2K%S1D@*h^KYy9rX+va6IjrBgWGSHi4Gr2v8=X%01pAv61I^+0K z9v%)RLQ~jLVLGJlNW5wL*n{&sXb!y>5}Q^{I9b{Y)>n5;NWx?7&%k*qUPUA&zI;PA z);eubUivR}%5{(E`>v~ka|^~r6f(8I)CahDq)d~XOsImsjg+%$ln&iO)Y}nHf7-jb zB|GA5DvBU{n8`WYuUta7ZPD-FPmG7dnN7IU-z#l5_VUhtyvtwMZX~gt7kO^$V%3pq z{r;aoc#ohy4E&Z7HL^uLM)8K5o4vXiWlhd^^@*j4Uj|v!oksW+M{}4za2P@R9H}qy zuf#jZKi-j~K>k)=E=C_wa|~eb;zo-c<9bSIQSGf0q-Zl~5&-+7IZk?m-)K(_$21uM&2V1%hxa^6bFHJgJ-n1^{Rj@#hWht6|m+T zz1ByYZESck=S7qRu*^z2`q1BHMhSO7Mfc-d#UxD>#Vx~dvU3Ra(9Bss?`f0zS4e&JBa!Wq9-M+ zo&Lx1`}aP*<~xOt1+iBCmCsMw|5TE1Uf)td3L|rHtiv4{x+Cj!bg&;GpckrG@iAA1 z>w$%QdkC0e*DZj(Wsma*y9>yC>n`+QvSw0;c%9lD4~#OTJxtMB zkqZEtVniO>IzPq)iZ8NMobXvbY(1j#FTBVC85+fXi@;%q@J3d?WDSddcHc7W_~B6i z4l7fDC=JrG-oVfbnZj*&uJ0y9GbxS^Q=z*LYk6B?z0%&GG#zwr1UcIE-Y(%_7rr-L z3N$7JMruF0M*>&SR{{oaw{dJxX!Y)Bew0lk7gcx${{3eam7$C@kVT43MuN2`+=+I1 z(Re6VWB3?jd~rb3_XEG05&xpTKd+?xxmxJco`NwLjT)!o()FgaP3qO)(kJB)|gT|>%q=0Ja9+=$flYh;Eo{_4auwpTND|xYN(&()5C47As^%?0_UWNG6~!%=>QC{M@f3m>+`oPQ zGxsxvL~0K+N-@?H(^v6Mhk$hF%DSFHfLfjiY1v|6 z$ff&LqHNOo-nl;E`Zrrq*wRx8i5~aFCD;HFGwR$Fn7RO(GAg*E;Co;@wAJRBcvaYn z9ShRw`AU?naKQ)5Cq0(OOzDuwhjR`+M>1-$?(73axELk{&mL)6AzT?lh_~wmm%u!s zV>9lsrxI~}6W2;dQiuQ4zSZoV2ydZi?8TACzaA|!1wON1*@<@JQjiC%X(`|4U=jj# zOF4ohZ*5Z_wibRWu;aS=@rEcmC24d!i8 zmx!jpdG5Ms_@@yVIcTzt)OHnx@oT~-K?upOju>*w$Tzg>abrfMniZ&4O2deydKHh{E9v#8YXUu?>Bd|r#Lyx&R;H+*B)GTyu z{3*ObB95)npSD!PL9banqJ?Zm7*NtsEdOBvqXK)?A(#S9q_m*)!!$Lo*c}$k*g6wF z@ay407eu_BJNSj-H}WLSfefgJbNT0<&O(5A*gKI+Kbz9{X<2LCdSSA?t8EH_xwZ|S z=0?mN3yGAGuERx{Ct=v{>4+U9F4L6hSM*zO0W+@nH6f&sqIT>k}-+ zzvph}D@JRtwHWT}U-LC$#}&rge>qG;PJ7 z5jy93#Vt@ha+{$on7iLgXdPu8Zg=)8Z^5sCKvBNc7Q-YiUnq29u!XN{UT()fX}G=q zzLT-_cMwNg`_wRgCg97O7{bR?x*!sacn>mqGaiHz80pdfg&XvJ#>H$Xc{5lh!XjrBp-^ zb8UoaNzi>>bCHZ$RWHO+n`@@%y9RQ7)~yAok-%v#Xxwvc42gBR_ke@In=!Yk;4#^8I&I@2LYN$57ubce9%w?D_xqQo*2MU>TTj=CruP;k@aD%%tp{Gwk-c+ z6&;qUaP%7I)wTjk+=;V*Uw4a9&Ger)T+M0z`i8UwRgpX+*^)afG7ynpqwgeLB$MaVJmBOD#stUj^+zQg zwMQLq{ZUJd`1ja`ZXNx16z`}0#5S$54e;*CUEw*3!89+O97gl)!GY$dvEc`8@GpEl zOE38}hxK92Y&;8%UFHn4lF@GKr48IMlg-t-R5^4?*B|?VTPKomlk!C5dvI7(&nXl* z@s;5p)9~c>8(%ddVC~&(-c8xJB0Ey(4`OgpR_vxFrck^OV?g(X@O?U{uuR)77CP)9nmbxlLYh}>SvZeQx$qB_@$fCrV>YU)0khtYFqLZ zs7$1_0wl>6>t#u^^59y%NZ9e3Ah+8A)&T5*0mc`k4tWE4_OBZ1GE09^l@mtT=W%Ki z!EK*BgDH*>p-~@uDy7w3EHzNz3lD`iwk(GHflsBrVvmYt#53a;@R$<&el^V~_Us#= zh=NdaAeXtdoAH0EyX>KV zDodSnw-)Gz^u^KI^LOKrT_GwyA-3&wr_1PxXYeP%P=w?@;cH}_(K}yCAvf3BRQeM& z=fq<@EDmf8VrQ*6(LlX7BvY&$vQtoQm*vT<$6|1P_x&rC{-mAOZI{)gM)4xP6{MJa@x9WJySLBJ{gX9vt)c=uml>trlU7YSN z>68woMt7GoN~OEDfe6waqdNtuft19k0Rqz9Js3zSf`FuiAinc?zwX1`_P^(zbM866 zuoK*E_N^>YBey|wFmHdGbuE)rx_wvSuOWR3F17sgaJ_9y#laM3)Z>~uuCrB2VzKK= zu1a1_C+`~#9xba?z(?aKQoXP+!KAGOB2E|ICeRUb5(A3QZ|H3Wml_QqGA_KZ(5p9L z8e0M;QFIFfJ`g*t(;2R=sBX5eM;0c=B85}}wSx|LC^hVYEpP=B;HSIahKoPf^!-!_!`*6FU zh2-L133G?dl++({Mu3m|>{ZwbG|45U1BQzqz@O1X!i!&4{=!h!Q~kSbGk^Rc_$#{( zmlDznsnHU#{Sr+716SyA&tG$UGb0)P)XI1JBv0;}jQrBvRwBLLoQ_A$;#YU)$ie^r zujIDOf0S87Wy8=ASo}ifgirLhrw26Yqvh!_yB$6fycVyFEJ3>`O0{eKtQY+#r`xSWdr>v=5 zG*!NgGU9}qH}tJNev(-Qq2mYFrw_^>8oCJ(-j?v<8Uc`y`I9P7Q3?g@fn~T+mMtd} z%cfu2pL%}*-Pu>Rm-{I|ct_S$Lnb;7O+CQYzr4N}*t0(UyZERA;~pDQ^4vk>ojH0^^KK=p>3KLIL!-9lcKM-zlclq zJ{g?Y;TR!9K8qmSlejDOpEiK;YBoE|a}>wfix!lA3k{VW>XYzJXB^|??!RPw%Y~fo zg-iaBD{0D&dbT4+(DYpa<1t;!8J;hqFRWwW-2TG22{h63vHT+m3!Ej4Z#d5=pQWkr zb>=>wwZ%m|o)E4(}N;`dhGg@kRI{(Au(tOl<&xe`KB41YRrsz z?#vk{V%ZDFea6P7+}M$IoK>#*siFPGdprCXsdnb|xFX-Qv zSBU&F#lKt3mkC#5x($3wBoFzN;7VI$z9Bezvb6TnR&jtq{ah0kX}91qbhGX1!;k9l z-QiYf$aoeeYb%Fq-T9=aS#E(xRCX*%qK}T|Hir_zr|@ugK=R^{TQ^#hMIMIoX#Xyb zfpFi9V6ce&gBT3^L1Hl`^cdWJYW5Ty=g8WFCj7w)Z{k;eN)+@wB}1n4_~jK#6tJay zj|4T!jo|4vV5U%;t|}wF>t`+1;gq`8WzVVJN?Dsd7p3|GH!^VwO50oa`1>ByO9*r7 z^jnp&7`QLNnMtozCKv71bi-q<$6$Y@w6Zy~e5GN6f?_l6&@L=n?t4z#0Y`W4Ga8Xq2r$c29u_aJ5#h$O?Ud0L0Gy zkDFfbLzA?v+))!?Cdm%{DL)`S>tsFscP2Q-1R#S+D+08Ylg74nz+ut>@wse{makOt zH@{`sCp4QawUd?^)!Y} zETZ&&Il4f9AG}06hlP1VKc$6Oo1l&A4*MUoh5lx){{cD4y2H?IiQZ~Tr~z!f{mvyQ zy2fN9oP?<6Xlv6#{^8Z6DDL(bL!*Ux+Vb<#-7WQS$afnY`JmHVm{MHuJrC8ZFU?8E z>@tVsFWF1%%R@wd6U&K?fL0TlV}sD=vK5y^P>YVj*_CK276cXpPC=gz&XKJ2m&dY{ z`D^LfLz;Keh-38~Hw;uul$F|*xvKHpig;LX*->p$=^**0Ee?f!sBqGNThX}hC97Cv z)mKp1$=E*{(Qc}?<|WZ0x0Qs2H z^xnDaZQ;iL3&-fW5`rZxk4{YzCI%7|;bU-HbdW-qnz5nXn|1Z(WBU6dd^pEupMV+n zkg+@bN?vn%o2F3x2yI;YL%TpZR)*C6irv{pR*^movdI1)hZmnU^JMomz_4IOW2C=z zG|l{|XwZ!5JVJ&r(@ySQth>v}M0!H)Oyz@0adu1RZks&0tuYOgDJ|3fPrqlzZ=lEi z^>24}gSM!q6!1y9acQRk%&pz&=&Nb5N-W4Tb*)*PAFpWQgB_l@UyE2!f0S`#>ed^i zStS$pY}cw;}de1OH;e7GRw?G}cGKj$jEF=r+W#mSh)LB9Urs&UVFur4XX z8N&5#V9ZSZb1vp=jW0y)$bh%}>I+_xV}a*T6oOpX+E^2qisn88?yKGpMZ{rRy!kUo z(SFq?rB!NvNU~~HuiZC$qD?U3q^yM|DH210uUJz1UX~^tELbAN(T!q)HCNn%a$aF* z#ZONyW3bMu`di`xqH}^Y2f1F3af0i8h^ZPLi)dXf{!F9LKOijN2wpDzo%&X848&6W z`T6DM&x3vxQ-7;AAC#|I7HMPR;xOpDaWNSjfX4>V-O&Z z#Qd}*0I;|7^MQSi!gX%=#`9f%O6_c1OJ9}iAl>yca!y6Aamorl@qrwz#X!pKYV@pi?Wscq02Rl($+PvK-b3q(RN(-eD7*f|BVodzm=~F}mH=v~g z%=3fk>(d|eJkJ%rxyhocna7Km@*N8%oa#tyu z;yp9{&%232Vz`0h0_gSA@ftG6X?*O_RaB$IAlfTD(h-H#en1d)@rE?TpdU@-|HbS> z6T!$OU9_U7HG>{NFu(H_v9gE-rOJ{i0Xo4{Gj>`yno(y&2wSwO<$M1L?!bLxS!@7l zY1^m$(8G^ze{Fushm(?N5OzGdDSQ8Xcfk2u^M}_hCm1Fye3{MnQC!dxM}A~cny{J& z+3F`t8bLaygfDgY4@T0qhoP>YQ`&S%(V6Xc7nO0+JT)WaD}bOA*PP!(oy3A{jZFA) zzA8J~lmb3L>C{6fP^-vzQAh&+lRHU=FD~$?DQ%FL{EO$v$oZ6f>|RK(*qOQEP=`Z@ zBz?DLxZNF!Em+W_i+aXe(sCkG@B5GqAwIZ}eEMC1+Ct~4t?ww{JZ98z?T}7(v#cyX zjdhPEBt(f#;M;uh(dJ9CkZ0Khih^9c9NJ~Hz#RVJ%^=42q;Lc6DHpfjB&l_-W%JN^ z2P?EAQLpo;Q21=V?W)J{FIII@6sNXJ64`3LHI=bb4t}vVdbXz&MurUZuoad2@+SAq z6bn>umC=LhmP|Mq&x^T%Zdp@VWhD4@XygUenPIOP>stJ6l{(8~K5o6Jo;xXdCflG( z7J4o_8bpOGIS$>P&4LT|S4}N--{^6Aa^xi|_!MA*wpS??b=mr>po^A}dK+EK+fco= zeyzkhvKLzJUuY#Zn0g$CN18p`)yx=NBDr(&PU$kuRs&DP%=dNdz9>ZjFyxOAPzI7a zBKP-AQZ?X8(OIYEVuG`|Pg9Z=CnFVDY=bIDqBun3%+-EIP14o;VF~;Dj!S2Sa{w<= zA!#?H1r;v(6Ig~Aq1(1N8<9Kf+8(c@M~wVhh-k(}q_k0s7sojNacx#Zs8q>3qTu?9 zhd7_3J&m(>0AQEfb%x1b?O2Y$Bd~y3TPjt~m)JVXw-~4_Eao?ngLb3pMs!`8>}5A6 ze|kx|#zXx?+||sYjFc>1w9|Px{sgtfsa`Uc>6s{^;vH%=-Nl&`zC5XT;6(r3s1+m4 znr?c83?vdQ8FP24F$$aDLM4=Gz?1hwpR}^!EG<%}>0LgYDFe8xU%elLbNuBxC=oRw z`rB6;rr3LR$wKia=Eu6M;vW+zwi{E(XSM*t$*xU>xFbu0^6jKluHiCZ;$zr4<@+zI zVf!At9bk883FR4)KYbbe9beB3*I{v*>$j$yzqrQ6(vGP$3TFVhxS`? zt)-)!;Q381J&+S}Y;iVS=>G+4(b-kTzlrr#Rykm~uvv$??$vVu?R80x%?O?M1YB*^VdC-*}=66w&2+ zStdZ=^4?ZZ3_QX@XS_vXVK^tjUTHuZMxyN2xc-!J6=F4cO_|#SQRLfm`a-lsKbPLf zd@WTe!vdF7()|8?4woJgAUA?;X6mHg-acdU-o$(w74dZvo2bT+%tB|tw?yaC`l5~j zA>^G*uEa2}JPw!(eDG&h`Yl&P1vkLS(DNzzr+7EqFg8q}?2g99J{kgW7Hxir5&T{)ei7K=c# z4N8-6(KH0vK|uv@WqWV*hZ#js}&4c3~llvUSp6>u-uM5(owHmZGb` zr+&1z$v0!cu-`23R(bvAsG|@I_{tk}?SowMFu5vEs7O?>JM5L(ZE)8x)<}cz?xM;t zEKFFjhvA}XWn_u8Um4Sy6}>yAowm0jGluzow7+&OGY7mjA)BRSh6?aul-BZ!S40ETID#zWYQg%qKt)J%ES1E zb%X;~Cnp;4=d^%sW3+F;d%N9Dh5gw)iUG5FD>?OXIGy7kT8HmA~IJ^4es7^k^`k^D^Dw^^4(NCQ=+^Z^wTw4j)7{Gh~ z!@#OVlinUsW9%Kv*=qQ1y23~)FZ3>N*Ov13cLJEW$w9&uN{T_l3O+kK0jyBE2%gq< zK#w2pF-O7?EVBvFI*gT+1u0#qa0z{Ci6B}3OCy8g&2v@}B1LPH5Av+HX6uag@ievX zoDQ0#ctx1utj8ihj$^0hKqEyW=Bb8K}zya zjd$9<9A{5OGnkp;e;78u<7cA@edv?~uyloP-(Co-DiUKfMd-^J%}C<++&jq-Olf%# zlZGpjS$Nod;*|20%Ds-W4@`DIXz`(AaVz;k>wfLM4W~=FZP0!7zoWQgmiQ_pGBb@U zfY^v_(ObPVU;(Au-3dg2Y5-5|`_^Wk&DoChag{!oM)$VM5%mctn7@T~SaDxk6#*@c zKlZo~Q!?F2eV-vW)s0arc~xS@{o1kyMn=s^ zTMys?Ee(ZDBP87yybNH}d7K$_Rh)zHu?NE`faJ~6UaRQ7BB2E~`nilQdc^>Vq(_@c z>tA7gJ-ua5INpR%R}nhl65wBVeaw_SudYJG)ih!EwcmC{Sz#&BHcY{O+78dLwn>HU zpc7+1=zX^ni3O{~McQ{rrz6K?LtC!!uX}+KFQQnStt3bS^l`_^`yy&0O0s*cP z`Ao+8s_m(;35T|>l8Fh{AQLXlnR)@+GNNu1c-7i8#PvWCymFpqRQCw}a~R?8a5Bpd zz$90K$MDNoR|z55<81iR6t$h) zl1VcT-(k6dk`kDQurii`nh=~+D>BHOy zRc5M=sCu1B1!uM`aLfdbbO}$Ek*!H`*7K+q)?`V=s6t5-~(fV9WerGkO~t$^wr+%GqOj%QLvCs z0VV2=)d-cPr%fpX63*kue{Tn9QJ>}i#LPE9Gc_#UE36M-qUyPp-$z_IB10|4bAB1B zjPjg6DZ6ARm@}6MEPbxh==RmO_ZjUbwjo47`Lo7YaeBhy5(|E^?QpI4m#cWB`l2V3 z@ZYQj*EBohbp}7?ULkv`r@zD19OLN*@KjedQKa^SJ)(CJMe#LH=5j8|@fAsp8vScQWx=O=lbgepTbqsvcVV|t)`+wVi%BCu?3vsqssuSiE01B@Z<*B<`!3|IY-EUi-$NdM`C8ytJT5B6Ajk5!3HUBBe zg5>iJy$vOO*X4*CtZw&dgc2NSpDFsO!ILy>jCZ{3RRBhelMJ6YIGV;WIke%`oP$`| zBh!LN!fM+CMoh$*|9Ec|ebAe~pRr*5M{>JwQ=kTyaWv#6tVAb+FlOkE2|K}jmfhud z`eL&kNgapRz5^A=3=1C?IAjDwRgXEyV+A8!nK`Cz<0Cij#OvYWc(3l%n71yG;LvQ3 zjGV<{v7@r0VbK(n6;K{Y4|hik^)AtS0yGOgX3k?xX&z&s{;UeMt84sZ9Jis~b$v>u zpgP3!ku2`pLiBmMVw^3Pp~6UPsQ^~FcI{bPalYUBwz+;XE*MN=3PU;wFveECIE1)IGY`VB8Cn2M@3?-*l7g+0+WsGEF+*Pub=1z)9J+PI^d z*F&^4f{q*J*^3t-rplgTn3{dF^7o;O*0zAtv&+T-Nr8*j=-9z!_{=YK1b5Op6%~ff ziBK-hC8qoJa19v6+uTX=Td18eK4q#kCu2>ULd!}ZLU2%K&^qCXD{&)$HPfdn#4wz2 zs<9};XKI1;trE3K%$0vHK(F0--bIiEO^|wT2l6GDVZSt^R|h(K@{8v(rl_;cv8oc$ zXAz~T5^zT|KMlGK)Er^sA#Qr)I@71Z4f`DwpzZKg4cG#z1xvMEZ>Bd%Qa6lETK2)S z@nCH?>qGw<9K^cd$SW>{0JM(QHL-`wsi49&e#LCtyk1n31htQK(=?>~Ol8yUOv^I9 zGJKYi9{NTimRNkO1X*QOJfHOA+gnhz3|5Rnr7$KcjFL=4X3baGpD{BU>(k%qenpI{~+HFw(DD_jy` z8_E>m4;fKd3pt;y#;+nlkiNAfNicW2?_Kpin!Ilz9I5TSHVU5_9bG5r2$6IQN?1uq zn;M;-`kbwkSa!r0`q=(Pu%!AUak2nG z-p2He$=M>ipg*)K8o9KIAm=?QL}p4QlEHD$Yv(E% z)iM&;QyVYzX^n>&b>^7%gsIlYxS2D~fyDS?LTCZqOJ#8oQzMea+-$U~tNw}d?^=RS2#eDlj!LxnI z!z)=KHkdfFRKdC*k)~2xNB20L@;*VkA!p=x(vo!CRCzR|cU2g3_2ILUREQZSEfB+m}DFEi>_aq`~JabXr|Cs0F=cteD` zi25g?u|x?U`PAnzm4o$5H`5QsIGih&ldlv} z(M8iQ0)HZ>Y$;pYBHWNyf-8F?1{P&BfTa-5uXWIT&iX53uTRIsAHdA@tyayhtJZ|S zY}x4kf$5je*3Ki{FLYP?nG!Cq-<5=PsXpzu}Cbww(STf;e|cvtyG&` zr_Z-JAO76cEb37neG>eVA*m^Q2@F&d)dYz0^tb z;ub)^j^8}F)m*v{;<|aw$0%uOe5Ynwj$ahJcgwo@=&WxLM9P2w6G?t#Mo`%YsUTK^ zwpieG{c%cpfEg4$qN6PCSf@E;u5LrE%ZxR~Tzje<$*JW`nS+e`(MP(|`bcugtoMpp zfHcI5mt=8t){3?>OZDl?vf=XW+Qm2LQDj4{`Y@|E$e)7g<6o5*X0MH%q{&(s9)I5) zW);$$zxYDmzYhA4JkZ6VQx%9`&6){UUUCgW zxKjm6NSH&rD-giz{nCAVmQUNwlj|{_#6dTbOZ<}=NP8K9HnNs(mr{nvM9=g=C#fAK zrM_B7T`Y`E44mpIjV8F54TG4!J{s_r8343tg3w}_Y}R+n9{D$jN^L|!glh!E0p{Rz zqxBNm(LGv6)rbTycohT>(zkj* zv_gLpIc7dy*PYm}@jvzq0RsqdjJ5DTR~XZBZqfdXb^{zhCLi2Vl)q!t6ehXx;c|^* zFA`5qHALV4jmanF+rN?Z)(p8pw|Oe7E>0%4elKI(<^(8dAFxATxbPv({@}?b3%9XZ zK58Br`X0@QZcnrM}&1y>2}ehif){WlsXc59?Mr@2@0HzF-htzJHY8cSCKU3G|}l zqYL@Nn@@bhyLyN5qhj*vN#dl5CpP~op^Uo4CA7w&Twn*ARMQTNOWAj+6qM%RP!~2`OzH_4oV_+qQZ$4?s0lS0H@GrGzl3a#qgm@f`KY*W< zj(X)MhmWXJRfmpR($<$*;Rbzs={!3@1T$ap{{4{Y8W~biK26-@Ng=)@ z392?aCz&5{L)T*ebS7m}vF;Rq#_5_5sVyRtf}* z`8G%(NmZKq@x6a=!@!C7fU9_c-9lJOnC;IqX8gQ(DqTZ=E^8(k4I848BkFvJ=v4w_ z=|o_#auPn|?rV^$a&gvsc$b?|)inqb{pEyoUR58O-#a7#c+$M>HB-!Kn^AXhmT-+< zE{_uqyVQ2-OlrK}wDL|eBEfP+{20d;l+L|YuqZS+bO3r27hP+wfLTz9woG_P9x=2d zvSWgbTDH7if9q`2)A#8NG_(vDQB`CfWhq>9_=)k8jE)L!rcJE_P#7@}Qjs;DCo%a+ zrn~#+F&J`^0wNb(_t=Jua1rK+e1HtT_^(bBHP6OLfJ1P=B)z5;@Bqv%Y{akKfYmLT zyi5eM#80^`KZT>={fASkk&EMslw+?Qk+;TlOq=$Nz~YYEF1Y#ACch?m+*#29?zZ%2REE{Am@QIn(#^5rP4ixhwoOoj$h z*F`1wQvJ~EsxPIr&h>kk0fM)9l+uMcsM6}Cz8l0=#* zDYA=z6#KGgpx>Um9dy}2+DXc|19eusB^e%mw4)|LM5&{+OVlR`o}VPOA?bT#coSD5z?&&Eo-77_~PHA z3ev$7<9onf_w!DpfnkYSf40?#FXyB}O>(mq7E1viz@BI3j*rq=Nl=rd_yOZuR;mBt z<00~&a*q+%KN$+;;*c+cv?q`8c@;i&_@hmmc`QF3%l5VlV}n$OU_|7L4?WJiu5MHz zHou|O=@sgo+l(ANd^ZcTdL&BCvNh~k?t@}JF@!3Jo@*DRhq1b(q9#x3ucU0MA%FlW z-m1D9HWE<_VW-@1qa}PZ;R2V8Hh8Iy>Bz-#B;Am8%x|4|WTwO|@dz@}F!hVX;^7~( z9;I0Y-1IGx1SFJZF>x$ktwW~xTv>Cx_73<$ZQiX^-pPtAgX6*9&I5$BIVQbwF1Z84%QbuE|Up$f5tmO&i+p~Q1P{k1k z8)QL`5E<)OmcKmd{7ZrIL0IjWGU>{5GYhWN_<(U`3VeTSxsfFgJAOME5h&`*xi=5} z#dNV|fOAxGIhQ3-hAP_pG4y+KUW(m**^C~*I065IQVxGo_ENPKzjMe=YucZ(;H)PF z$Kegvn|OByR6?pwDOxE7n{JMzd+t_!C;+k_L?s}g?y!Kg1VF|a5CV}?2WTePUCPCa zgFan_C87Sp?+8tx3=!?cY>y$rdt*&u5VUiZ>A!-x&4*YUt6KMbApr)STs4Y}mtDUF z<>~kU)a2duwlJrLjqT+2I^IAHs36({XsLd*w{gKq_}9(GcmBt}ILU}k3$lFcNGHsq zq)vWAAUR-#q02SN6%jAfXszWy3|DZoYU{F4((r~PHO z=ZuwsT}r6|ru}9u&Oziy@2sV8IOqZMB4`}}N*AOn-$0Js8*%B6FA;U0B(I3b^k!(s zC!B|)J}r2}rdnjFo;ATrL`gCg$v;QXEUCVBX~tN!Q}M5^oCiHLtp zIyTHyrIfmUzJ%Wk`E4vulU*HU=c#p8f9^!{-brCpKuXZTWD_WEbFiS zU6-)nAI3iQ=KsS_o9kZ-1j9o3 z0g4p3X~!X&tY~WibXka(o3GmCT|sRn>KD*e?cY{@a7g?(1_~Zs;(YSxel9K-Y_D9$ z*lr5<=y=lXP}^54UrI}2A)RK|X$*e)x_uS|cjF8UW6F3eDoJJ=R7c8`IDG;SG=Q<} z0!_Kbfdy+tjzk4%p4e5|#DnQe>GCG3JB9hFEyO6^MPZ#oL>gF5@zXZj?B?X#}< zC!h;TvJX7Xx>gn|aFvci3=bBUghYF!58wE5X;pqal(P0W%^Dv3n13z==U`l>ir_rn zmPdeX*$700II~J@KU9VUin8)LO$>rw_VfG!k*2Rr$})bhebo}aLRSoxwPhM;`gY|s z7lbN34i^Wb3;V8zS&=g~ZD&r9y2|Sta{&vD-dK{eIQ@=_pX0kl^S`S3jffp;HY*RH zFt)!7Q}^Z(w-H^y=PFC@9|={>uFFD612p6w3M=V-+*}jg_|zcRb2~l6)+=Rkvhhen zVR-yk5|dS}CH)qpD;)RJ7@w6+&9{H{2tXr*MVR-3Md*Ox_ z`nhWU-1MBr4aun0=oUG}rzq_xQiDG4iD5a70N_%M%|w?eV9Q)xH+SVZI5Z*Wd1dkN zHH!Ebo8hsWTK1P&g*;N4yhFx|`n~vfBi%Z^qYQxg1WEhIw(H=Qk5g};GYcb&`N0N% zl~LFTVFg>%{DHO8YS+~0DH&y#GnpzVk?cswQxwCAI;yJt(~K45((;lr3-q=AASX(M zgb6J3x_vJkvL67?D)UCyYYUo!{8%g`fUfCJ=Pv`>=8R6}&7(zyT1h6f#AlPQb1z(B zgj=p*Z(hniTeMm7| zuJLaRD@DZ6{Eit1C5gRNgwowY?Qab(KZd%!23oyMpnLsNxDXE>U*P%X3ogGMH?e53 zDy^1o9f=<1X(Ke+OmYPMEJK^X=+|98eS2zyZqe1sJy(8ImNrcCb=xbNwvDzK7Rggk zA?(x4-h>n?@3Dn<4+~k)abBe+O3uX^V;Df$k)XPbveq;L z^3)4L-<`a!VgMIZWhOvoHn}y`TIuS15G<77Dw&zzSo-Q0lF!DS<5twu?Y_L34Lvx> zn1Z8C)-Wwr7D{P~1W90!I($kysq}F=@(lF*@Mk-X!EB9FZrU|6J~KN&9e>WY9>YM+ z8MqTLTWw5)8VNtfTlxtde5AcgLlS~D`D0+!ezOeh{996H=c^3Yd%H}_b!F)Bo}6ps z^66o2&*;5r<#k?5JeM6&B}JnG`3**JsX7x+sbHRP<`UJ~qn4`d_ro=X7N|Zi#PT6i?@aaI;m0tt|E7#qyx(+?!Zdq z{zU*Ep9~y-J&Zs>&EtA^*BI$*`KPn-fDi2j+pe|}rC=LX#hCngjyW}h<_k73Zq{b} z%01x88HiFG+{oMK%mIi+-&VZdOkAx-ZhjjO!8)uQsSd{nN3n7J%SzF)CFO-M9CjuR zgxvBob(N<)4Kz-Sh`UEY#c51MCPgfIp*LD;iA>lT~x;)C$?Ww>ZN zVj52RJ4h?7Z8^cgVP0~ose6N9+d)gU+?!DPBu1e82PtQ1jcn&*C#&9yMJ7kbfHYx( zj)u>2XKG!D>AIn=AMlWgKFj~#XcSP0$pIE$aJ{)ySnQuISUeVYnAL7 z{X`Pfor7mD02t)JmpZ*vwPb1R`w#H$vyuf5%qKs@Q&298wvx8f~#`JWo%d4^IGi9>+~bQ(&ssCFAd^z^c6BisjLp=*RGbk$=@RACEnFmR2E~3 zf}aaXUH?rCd%tf-1z9tMSqBA!*X>X_3OkZ5|IdJ88u~w*<)F90>z;X5qY5xTwGy{wah5U4svvqk$yd?K&XKkg_nFkuOc`XeqK zX~qIrdsx${BM=)}_m@uog{Ui-#M}|t&j&p|kVAfXZOEMPnLMg@u2T#jpYBq%U-vgb zy0sIk!n=b^%mB{?nUt~pa_M&pQL+kWfx2gOFrHUh)^TB%*+9JpFrPX|6`P6!avze6E^P7E|yHtuGZE;M)KnCAFmsq0{Z8o zUqf&QhumMet8J+Q26z*2p6A)1N^B+`K0NTQlbDlW1ZW~PY6R46Qh#G3;#>NBUzpcB z(JWybKC8ervtzY7Wtd4&ZL@O-6<{pxOY-td~I!gFr*w? z=8mkJ{4YbIRN^2;I0e4(zA&V{>8i?36BOzPXa%zNbLfgS6OghhbLcy5Mhv^10LQ); zI5zOiIV!gf`s}PbvR{53D&>3L`y~2nSbrlaGTOz7oq#dKYjikLS$&lceRCdIWQ*yT zaPkK2{q<;?YZw4ooA=k)Iq4FGlRWvJnoXzOgH3hI!1VOb!;=JN1FWVP?NF}17w6`d z)j_F8cx>x`rHW(iBmaxeY2_vzsKK%ix=n-C&?O6s&!O&{(r2rtLE&$Z?X*RY>&1sl zEHuEfDs4kgzD#>l5Iw4m#ijWxjo~s_zw|UInLCK)WA#<4W-g`+irKa^!mJM0tcN{H zKI^v!hV9*x)~i@NjV8=?I_VlI&fi}Qg_U+%(pxfhWJL@BkDK&J1*jE{0Kn+MDzS+H zBq>UJwMh6xG>5$)FJTymr!4C6e{&8Nl2tl4z^Gy?9*D0Xxv!PVUav0Fr}E$`484mg z?}8=hU^6*b73?R(9slA0tn%zllVBeTZr$jA-?4|*<&EP)Vo2RJNBEErny^8Re04j4 zl}CJkzTFYPWkUKJ7-%f;I;6J+Qu2D8QWG4Bakcb49v?527v#(LrQ;r$6Co0w3EYz% z!S12n;vOL7TbD6V_8Dl+gCdATgEVp~6W#q6#yAP~wsy$$@L0kGZH50XDl3alp~fV! zsDVRp%A*h)d=Kd2%^&z2#EQ4;irnCHiFtgY!_{ZYDLRbrJSO_On@|alyAhZg0U~HY z2E%_;9R7z|KuZ^%rrB$#pYsUGnzu6&MQeb#K^rr&T0e7<}Kz{$Ynb z*1)=qa*57tcCDy%Kd;W8&^!&#yqHF;S+-Qu)EM#sIS!zR{v7X9Lo62@$&PF}WXIU$ z!)0t@6gaK+U^h4QWdHb5`%(AFS=^g}{mTQ*_x3_B)gz42;>n`Fvj6{R-?F3Ttp<3W z3Asw~J=ZMuhqQ&;CwTwPvf!c|uDIlQHLewNf)R!Io-6$7#+r&XZno)AK-nGBp8`wM ze=V%H(iUVL#TX}wcSb;Jf!B4}Voahw7wuCEJsyrbawEaLtV*w((0ei%ri}Bex`R)i z1i!Df0{a)?1_GkJNmpgS4|XDv76U>of_!%@!kX7sKnc}>ntS8gsqgK)|4l*`R1i4t z@sqtQa3Gw5fyUqDZ^YS-Y^&;-%$VJ}EfS1fO0TR?#Zx?k^fEAY{Swrl45psgKrk>OPb zQ_sR%pHDkoYr3+U#!!9&WfF0V1t?bIYY>JE2DzLnYcH1{{sy;qxEY8^c9r07d4ISRlk7_`pY3w9xD zgUdI|t84V`xyH!Y2a_+%L)pnkVFBf6vAf$6P{oj#>TM4wrl#UL- zP=AR#MtCo;&Yrb~xvby=SZOx0Fq6l=KWimW8t_Bul+N6wp{jzhyWpj72dqVf>Wm>QwjEvw9Oi6DD9Gl#6qR!Mx zUDkt{G~j5jQdN)VU+gG)UrGq7k3ReYhS&A`8Q%Ac<@2>e=>d^ya~PhqSa3nhfw!lM zudd7CD!H<@_qP>G&P&IGPtMjZicOf~uwulYkVDY02l#$3NR0(v$lRomx*_vnj}h>V z@|*p9LST)QD~jFePQ8m~mJ#!vNTalFyXP{E$u}mSSkxysp+gE1!gc|wNc#`H)Sp^R zC5U4TYu6CgHxftd=C6(L^L)n%tZYeH)_vf*jjzsFFh^=}2Z+F8VC6zO!|OD3;c zKWU3c*hO_tdl?+Fabj4OUqVAQo0bT>c@Tb;>ztp&NU~{93+VyC(&K;ehIWWtc+cd_ zn23Z`JA4FJ+RIxMW*zUk@eO;FXDVt#(mpDjo?3XPLhP$_7Tp7J9xeB_>c!cqnE@?h z46j(3AN5^1BYiGtge21h00(4KVSx;7GSQso&FoBI$~rVkwvliATu!rnd5mYA-6901 zU`|V;mzw)STjP*^i)Lv?;tH(vEk7*_#(_EbU4Fr;I@{lyf3e1`jo{^Y|C>ae%ahW8 zn~qr(z!Uazm9K)owbzY(IIbzkv`N->3*3UU=CLsQ?4s5yXSPJCEFv4WwrIN6?+lBW zuUIu3fnBsygAl07#iYgYW$q;v*~=GkOv5F4YMHkzxKQEVT@H-hM*Sd$q#b*sp0Lxs`UqZbnq&(V=)McC9WCu5!orleuTm^DkWr{8MV(ZFY{QW)FtS@E*F#Iskw33AeWx zy*e?%jF`^KlQcQBNT@*fhS}<$wYWz5F7m(s3$sUR;LO)dlL~wQ%vH0k{G{7BnH9XB zaf}HoTcH)1iqXM1LyffF3PwE;`-Bml;Dkc8`P*FGWQ*VzOi2%cJS}oXq z)NMfd)USxUx?A3qt2D~M2$ePn3Df9BFALMai;)Z8YL}IS#*TS0jn1++Qf;Q)gCMM? zQbOI*yc**NG+O7s3QC*-euWrWHyF&JXm(CfXLzYc(xk(WlK8L~_=Ge2Q%*G!+^$JW zYuZ@g55X9q1KgLY#MX*|acA*3d*C|;m~Ev@7xvEEoV-}{P%0?oV%7#$v)Jpywbg;( zv@V5`db?I_+Dg1R3}iO&{_wqoU`2aCvhY1hWBjUyRAXSaU)coK%Ey4H;F>!k`u=Zi zV9H^EzpJvyi0C@9h4AFRBn)=!0N-|78K32k3vycax|j_vPO9Jiq@H+fWN_}L;?0hE z53jZpUvx*Pqw{dk%p^;o;uM^XW>Q9S1WN7a)($=PwT_`pFB!DQ3<}`(Ay#+F<%8Em z8)fe=L13$O-(`C=eLXy;d;89KTPs$L@K&vNBvtC`9tW}?Vm6c|Ol_~-kJQWjYlfV1 z>LgtgtIll`gN4Ip_z_{`MNC5lXk`!SlF^zht_!yadBl?W+_N!|78b&2GB)3*)YHQb zsav?ymw>~hK;dKsV^_+>$P&crJd*+68n*O{)C5RUcTgUf`{fPL*{Zlo`?BkHi(ZUd z(hxnB7^qkU{CGrJ*OWxnk$n(AQ?8|kMDsGL& zKX;Ejc`Yr@%uBJ0(Cdcp*&Uy7Cv!e|Qse6)aim~sKE#g>B%ubSn92=(Mic4WuqV)| zgwt@24o&_@)*P}2Nf?9Q3!+nka5HKWi$+4!|A zKWg{$t2FmBVK*IGZv0zr7}LNWkQHr%9q$NASks3>xD{W#N1lfs|Bs`y@N4q@-Z)*3 z&e1I`5|faU5rQBfJ!&-U0i_%1?v#)iAvG8vlTHcgW`GESgoFqvAn1qRzQ6zAer@M@ zo^#H9UDx|;sSmZkm!I&D3FIXDd&u}b$FEJn>aMo0+#Imk3$ai}8yBq32GYA7Q|-$3 z4E->Ew{QcmLdGgdlKKnn7Ibk>?w)xX?*50|l?(kHixEusNlcTAo+vRehJy+(R7u$U z)`S*X64ZnpR*Z7~6cR^Kc0$>r+E)LUN!3f;;&;fPQM{IP!mV;*!3#TVBg6-@@dR|Y zaJ*SUMt?*!o&3kI3noGV#*^q+#xbU`=}E@-vv$sh;9|sc=+}OFt)Oprdv^W)R~$L8 z&DgLHWKFT2a}m2EUn^R@sV({Rzb5`-Ut1GHCb@!tnOo~7!bU2?*2-HqpfqU>!1BJQN*=k-jn7=6EIc(U(0Q8vJu1| z3kAt26k=uI(8|~ga7Jn^5{vVhW^vJpRa+v$Tm+Cfp^*!1lO7dY(>-i;Al>3!M$1%> z5F{2WHYqry#DKfsiI!!ug?1!RGQMzoUE{d2r`B}pP34&?x?(VwLE@S4vXuq$_2F;_ z-RtzYQVZz_djV-R^M8Lv*IlcB_6b-HzcBufu*if`^1DX-Hi<76P1*wnj$f?LT2c1W z=Ujh2e~aZ>D*&DKeOFW#SKHT<})K=7L8* z>7+2i;}6$u2v;bJi^So2ru#7mbF#7_$#PBHNk(l=yLg+FjMdtK8u{PI?Y0#MJm*w_ z7BHN?s$HD1BGcSNd%^8Sctbk)Z{0a2Pa1~5tc>ZWLM`B0@@bG_>RmY!~yfh0b2(JTAnYq31Z{G4zZ(Yr}yo<`0Z|!QU5|>Xtcmh z0fsGxCzc}tcsI2|!~Qv0lvGc}9k60Ci0^*Cw7GkW)0dwqm1P%LLS3jZ0Sqi~D1f;6 zeILZxZNp|+{rOkm#ts;h{#9114m|ZT0t~_R213I1d@>GBg`3vaq?>Q?zl%aUSz8mv zZzpzQfy@{wr~ggh^Uig!q!pXne^6kB2zY&bu#Xo9uLRz%QHfZS0%7k!>zNEi-2|50 zKCLbFB0&oNhG}rR-AK1Fpr5MUqZBs7pswd_(+-dbY5#Oa~YZ?ft+dQEb85fJd8^Y&0N5qRY?`EYu z#l_g>uN$9ZcCsVa&#HIgbM%C1tC$QYQjXse`bZlBEztK?UaH&PY;*vj9;*BE$$h&n zI=c{7=pP4mf)5=@lzLE6A;=(_L!)^$^dqV4+yt3*z=+yo`ug0_Dg$%y z(q|RPZIJ1B{=$k#SyAXkPG*g|we1tln&;}273LZ$jQrM9+AQK0FMco>epB4$E8_jA zQB%tnF;zW%&ocx`3!JJLmEp7^LyM<_g@Qk8jqfeG6bx4sQ3v)McsUp* zFQkge@;?6M?vk|fB{bo)LmG**rk0!OIU>$E%r4*cNw@G{R_)@ze-jl_0Na0upnfJF z@{U+-YtfDJxU1MgtEyYoKZs3PzwyrhqJgq~JSVh8fOZCHZ=_(A%?jy61n`9Z8JOVOY6-BrD_ZK z{r=v38;CQBJdSdQ1k8UHN9@uL{V={rQ5qJf`+gQt23CMa#E<-;3vYOxn~*M?~AH6HeIMl5hTP-76N?(=3g(ZhR|+>S9fYNV0nNN zL=xQ&wV+}fdy)A{4|-sD^TL(2t<_P|{iLl}AHi@V%A%)pPBS#3MQ|xrD9$8GW%ccW z`MMfmln47+;fxYaD#aUd@*qPXMCc{IQ?wyK{C*@_Db1`|7@sQ-Ml1BmpLdkwINzRa z58l9vO2YqQ87ID(<@;no?bhw!sl;5Lxys=JBPMbRR3rqE4B8wZyJ?dKkl$R<{cSnE z^!Qw(L?Qj|g!`s`?05~!5pXu4Aia&Rr5!Z%&DQwn9%{#SJjZ(;UWd3@8QLFs-3uThY5k>s4OICh$OzA{aqOTXL8exyjre1Pes; zZPm!(CBZ$uKP0@^|6Y6Tp;{Z^tvSC{Bw|wIgC%KUdX5s$KlxFTVdjPrpR{Er%MXb0 z*3a+6Rq-1sq4}7s7L<78^Dpum!-5-Tjtt|lIw}+;ae8ZfdGKze=GZH8`h7Q=A(GiB zhSsqDb@JU)N*(AZOJeZQyF%nm{YNyIye)D=Re{Ce;o$e1wpIZ7$tH!dy4-I_>EJ;&p z?auf^mwzX+nZFE@Ab&hQaE2HHaes6ewzT8VW1dnsa4gY6+O#&1d2^z7# zV2wRR4<)+ojJ*%sycGMk z@!%oNj<$+7vJLh-HK?5L16tx;2D)-GAgsls4t6#`)}{vvf+)AeyHxzAdZt#dAOAIFDxD?4fU92y6&l zFxkCO237V^c*b`mlJbf}6I8^W$>~h{k1X}6s7YA*!J}x82g4XEC)S%U*F&JIb^<%y zIX`fVwe|RjJyzKYCjaM%wX2Gb6)-uGUwt*L=0kT`lTW#i9nw75yb?vetBtv-@SIGrB6f6GsgJO>QW!)9Y z?oljzUCoX5K z_pvNPOxD)oxe-7Y3&tx-w|-!4-|5;d$-}iD1N|Xa6Ai57wg`KWHj0F&X1b5Q03Pdo z_U`*DBF69T4Z@(Dku3*3#KStgoiib17)>YvX6%|-dDLTpm z2sxkS$0VHm;E@pFU!H4O5eg2M0aAlk5f`h$^gs?=G#$#*vv(;8RIJ49kz@8tOEmyO zLd-7w(RCozAVtziB(_o5X~LjPjv(i%HonbZTMgY+Ys4rdcpXRjm) zDsus^Kbl0X&HL)qOX9fdGUR_a;BI6qWKcX8R_e@kpps>~!^P?Gl{A1C$6$guGB4am z8crGa)dx~4P~oD0(~W=%0!;kom2MMpU!?slf|G5pWbjlbDGG1cDDa1c1u!Y>9uKq7 z9dEKo9`xBrG?;SSQ8d`VuPu;zA{q;ZT!$Vrh_Z~xdbo$@|2vE)z?6ZYsMu_M5gX|@ zLMFFEBQ7h-O(Rw}wDf?BHWu2TB^*0-0>>4T4IyZqjjFvA3PclNhLhb~&715)>@W!3 z)v;6)h>F?g=C?@uY}7d67jkiPUuhe$B0HlL&}`d5*qbYXE*cs~#q(D|SFmhRh3=&Xn=vz}}HJ#WkkLOCmLD3Et zc(8)plI80o=zzX>5Iqay2p1)t~c;b5LYOixYSl&5q={N5Ll!7|HLPXZw9; zFR!j(;bT)8NZEB*H%SBO;AW{XZCEP;ri3(OXe!5pXm0-Hwr8V5d-bVd)0P`0oOEGS z-gcB#2b@jzJBC2?7ebs^W0gA=NenKE{f#7v*=BoeBK{DVG1Hoc_KYBT@bcN>TKeSa z?h}b7Q%Zq~VnJ+XT~2g4qnfUXJ6orIe;@7rN04;U`N6Q36=P2T+g8AudcQI`D;(XK zeg0*Inis=^zg~Z)R0%quN}8gU?rX|!i4?+6&=y(Uy3}B`WpLY0%4wwaIuUe+JX@L*{1*SFPO;qvX#IpS>`47yvy9aJ8> zT4#tMiR$4`-`}xi*hsI{Oqv%H^H5e)H^8MU|NCcNT4P2o`;dcp8?u3Z#jV?3HYeqR zW!R7Z`Ja26v4!>{D*fyaYC{x5Dn^(JcBFCVUL7N#%G#O+XLH`UfUoaOkz>9M69MY% zYb?EMZ85Iv8Y?BYE34w`q5Z&W~_#c&6+!1^%nP44cB|*b;JvPVB z(Ucq0T`ct=jkg>Z-`czWi-8yB%r64Fh=9U2CbYQ|T{|#Tu1qaGWLoxh>%lMDHYB!xn z_o#$_7Gz7ItE^tv@L7(bw^t%~D@SNj4)-VID=UobUbDMyz+11uY_-1G#s>YGP!quj zB~xJ~`8RdiP~W!Jwq;RQ{}f+^l*ep70V?n@yKZu-pmoorlkr-BYFgt$1d<9rnrcez zjfvu$our&u8J&XmIEx!78(pR<+j5Z7^D@2zC(VmxF=z2o@Ie7h z2D5`^iRhmQefvjO|7~IOqXa%WFaSAL^%019ft$9(<%d8%bJKvn2-6r-ILc%(1rtHn zuIX_8q@v?Mpc0^ZymLiC+lgZ)-tv7o+X203-xEuk;V5yCrWkfM$T1@x(wtXID@qKm zYQVEpX>;9>uCHYh4e7)A4ahBN-GYMxJx6v{3^c|btvUpz&gqUXhw+c|162)HwBKpI0nDMs5FWcXC`L(Q*K5f?P_rE;*P1HzCQ3p%aXyS2F ze~V=NRXE$)VvcEKSjYJ*9*JgwJOWj6*|Hs^Eq_PC{j}SO1}K`~ad5?k5|M8l3 z$W^Qhr<0LCe~Y?bBCB>q!Fb};?2W7=jUF?WQG#qDQqZtYs?j~%7KPJl1ft^XZ_8qA zTau`VvH!7d)<&UF&t>FkHS=5K^@dFABKCO`g+z>Qlp4M2FC-I1IHT(yKNIYl(q10X z=7FWb6&>@fqn1X>WT!~xAL=~)pgui3yeI{f5v6>5?=@FsxZ^#g{kM=%3WDnz^V|7- zGh3SVMGQqOtL&oTKv2>N=eF$3h1u{0v(VoR6JP#*jKKl>+AXy2-IMNqD`Nqy2t^&< zcl{@9iv1tzea}elZxuQ?ylwUa$Vd-xz*Q#_jkuFLW>Ognal><$Clw^+1%>Bon=0EF z#aS`MXo3_<7I(HKqPq1bq!Qp$eKJ)6E}TZ`j7)KcE1`xp~R z+*AQ&P9}JHu_p8F@oeoQpE2B6BVi~ywA!$2JMfcb%$1G4MxJ~{$kE5FLrjb#!x9Q& z>(g2BOIVIWZ)kSoWc+0*(4m)YNoj;wCcKp!LtrJN_+c3qg&NJ>&565<1@FvrevuNrKn$*g+>HYeh9&jhzFpjnm7@QD)tz@<70xr2wnBg2$1tp7BE zm^orw#!>@}GK;!P8Jc=dE1e3abBO@KmkhZntjt;_u2^8dz*X|5{YCwQ*@%MXez%(& z3x(4Bv|QaPP?2G>nqI2R9Ei2($PPy*s?d@0eXy;d9mnyOKuJ6LVAG^)P(X(d%RdBZ z2^1gMb4B%|V}G9B=X5R}&KgCW2xIPPuV#E+91d-dw-na-h7d1bZ{sgbW{hT+V&=eg zdVy(iYl2R{M1V{!iMi?D#=6fkE1OMctm+e-_%xq2o}PBbisvzQAwWg=r1-B_cAhS^ zpr__`)tDA;D^@z?VkDyHgxHZL&wT}Py0jnsHWRp9Zv#Mu*MW@~Ek4Km(~>#KR?ZH6hL0d)~*iJp3lTsx1narL7TP zvqv@c5O7Fbu_ukvD@{=5UVmw>L5dIDi$ahZ0C%MpUVt#$9Qw?Wnrt;AMO^9(A)O>{ zqpwKA{t6>MT|X#V#3DJ`|Aqu353z)4H(f)H_Cf4~g&}u^A3FS)VoNMQaAHRc+~?BU zEP*6L+}l=}BWX_vvgl<{xuUr`u$HjGJ-{@cal)KJ>YT!e+-f6a!R)KZ5|pO+0l=`P zNwK96<1PqBzvVwn%zGe}KTG)jPW2e-DHe>PSOiZtGqOMyYSX0q2ddyY64BMjtmJG@ zLx$Tq-7zNUJqxf%;8^u$A}-$CBHmUNNC?J>)h#Qv|rkxIi6SV zW(uoFbRFTVi-;{nCsE;JOTwe2hM3kW+E#@9{}UhIJbrEcRZVkDP=Oly=T-K%Hc^T6 zVWYTI8sf%cTghs-ocPACH&2J?RJ}nkTy2pbf)+)zC9X;$6Mg3W)|?)}*vIxWrVV6S z%)q&YS@eNI{|XOih(YTDkLId|ALlqXjEo~|Gx(4gDqrn#4wl4w=enc|=OzmlA?ifyPOeM~8`Up8J!-w;86h*GqX~ueM zLc_Gh83*o#g(9g__$n5q$`N(<%4N8!@ajk>T3Kp%Wg@zXnnx4zy9g%s`n7Y6W{cs{ z%su)sf($qzusyLO{dj)59`4;dz0!;`2A%cPj!3A_;c)Z#ShSk)QZtU}JaSP5B%8e~ z#)kYRHsMY|!B+;H%rsxTJd17cUnuIr#V9r%;!u`x+g{+DZ7iw~Bg=ptlTrd3O; zCjX#y{Bld~&Hv|{n#aEeHWrG6Q9g6Scxdjfuzy<-YlSI}qpfAR5z>yyQgM_}v04hq zS$G2+TjDdf+f8{Ky}Z`nCN@;9yrJ@WC$t}Py@dc{^hGfHRx-r`P7}WqkyR9HdlY+w zd954))LKnlVg&44XfGkEYnJzB#+!Eq@lx4a6x;qq4#lyRH_|UF%Rc{n^084$$Od;#{*7maH1q733cDe z_J25EE!y3sjdDi+eYJRKfH3@=O0Pg5x;%G(bElIzS(CTxCCKr*L+oee5&|kRBC%3^m3Eg+yQ;849&ZZurZucpiuA4u%SrA3N5=T(1%s;jyG3xPxEKsqLYyaVhlZDD)lG1 zRx%yuZuhS}*l13@-Y!}JgI+b4ZxcYDtD2bMO)+{o@uu&MycSKh&^iUSbi^oYs(Y*&hI|8eU}t+ug9xm|w~?mnD@&mk^rFAk-jcG($O!eE;2L|fN%}U^ zUY0d<1q51vUghk3l#T&@40doH)Ag7PTs}3(D(95PXG3D$aW=6(cJk*R=oi$43awA5 zf0?VJH`xDI^M^Dr>LhWg``(X@#!YFO)S~p>bn9-Ve#g>LuIJHyUs@SFmt}VZV}4mb z>P^#I|3P`hcPQ|UHy;V#KDKXNp0S!FJ!CZrZpgSFd5zD?$`n0DpV?jTHAv*I^i);5 zEYUQ3M-Ln)t^Y8!+XVKik2)!e>`?30bP;JIS}!-kybBahv`Ib*CH+KYOTF^rd2>N_ ze$<0)S$moj_2#Oe*P~BY^M?QEv}-6>U3Qeo{^Mur_ z=8(rxAta0>b8r9re%7>`CdV1EFQh?B=jSu2;D572ajHAWx z1G{AF!KTlteM_HcKLuJ74r{)%1}AEo>UO*H2UB0AI(RJU?~=>a&fY`*d(FwkFcqib z=xBhw%|-ZB!}|Bt#+==`VFmDs{sGhFXl@51yF*KGE_gl1<{nQw;k9i1f71f^@rk=@ ztBO`~hukpVV$&fv&OdH7zWJzk*#GLN^LmQ{ep&S{*W|myCh&uL#qFhCBqH}ecF55Q zip>6e$Boy0zw+HT4a088Yi>S~HnrrGet% znnuk*b)#`0Ow4&lYuZ$C;z}>o+~~^=A^UqZ<#pmSc{kZ1Z-2IJw=wGd6bKg2`lb27 za@arr;`P%raOsY=CTit+p(=oo$N!R(C5PB~{FALX63av)oJzIoF9mdeBaiJ`)y)19 zyVPu{+qxw(Yt~eLaNaY19Ph#VI`xn^237dwAhhJv`%Fk@Roh;oUS3EJI^6Stp~>S- z=4FTHorj%Gefb*KapsJjs5J1wpR*W*{c9PA3M;R%^R|6N*_@x_@itJ;1*?3o2X76z zqxbV;v_W3;@NMzmqf8>0~(kAmMdVfLy?f!_$FJczj=Uk3cwAo0fP~1g(^eW9bTf|B9TzM@@9}ap* zaKWpzaz=LZh7rQ87~P>|!*Pt*gEA)aj^!NtilVLr`zdbBgHZ@RYzK9rNG)!mK|Hiv zZy@tFNm(AVmvM3@+ZVsX`F&j%7pyPm3!_N1jvssgqx+b5n*#b#itjZ3 zQ67y%zY+w9@Su7ZIBU$Vl?W;Pady+fcJg)=BNFTs3xfI0MY_si6E+KNdu?%pspW+X zwnF38kLtW=qPCudvJhM%AwEVRd>7$VDg?*g)L?m!)O0I>{lt|FU1KcN!6{IpZ-$TF zh_PjLSO0!EH%dOm!iS((K4xjz2jEn1<0LBj)LSJ9j0<_6nsyQ8=n8@%L;ts`0g3~BL#Jmuqc9*`St!ZX}r_S6WOQ`ijm^ z$C-GBG)3w}`Ynxg+Aik&RnPTpLe$@5r`-*fylF%L&Pl%<_=AYNKC*d4$O#p5sU^L50`mcDlt%heeW+is|4u;UWQCbJ_X# z>iOkt)@sU$PP2I0pfI69E_@0PFHHCsyPH}KuEa`Pjun&bM4EA-Akg=}gJR}2YNoXh z4T`mH#7v>y6WPJgmpcmAM$d?oYaFqM7v97bn0$MLuu}+N_mU}93NR#b^mCOLs@}Uv z&pfL(HT0R6zY7mkWX7fh()_as!=gZd-)uvlS{b$A#P<^1|3&$UBWlp(xo3b)!l2Y7eL=qS1NtxwB-n z1x$1<(Yk(G(MAMbl#rRnol0cj)9xP)F?@X3PyxtlwQjjph zkUy+U1UpgvRbdk%4O|r`m5^hF#2SxZQ!5EW%HbhBuC!;(L99vlp5}bHGAeZ?IxZY( z*+_q3qa8y!;G!?81BDs)5Wl~s^h2GgaWHP6w=vbaJV1pU{Xy&jV~W&aUqnTTyX2OV_74 zEJ4W?QUy?-St^jGLI*~8ECFq_iAFHL3Gy`ZU=i&HPB#78=0KtG!c@G+B(S(BME}|; zabOg4^q?;9XG)a#_5{V&s%KCL9dALR_fh0>03O|%hiVS9&_7Oy1%90pYJQ|qD(={eoFP=up>nrlbiHC(r7rE-lJL0m0!)BgC z-TZ10B6bL#|5aq|0=JQiE3o{O(edJzHSR>3>8(6)GIK3}yGHy@d*sTni{JT8-~Qq$ z`r4E`l@0)M^SNORASJzen=u3x2?#ymx)? zJhEMk5shxxX9aM?37xEB1L@q}B-@(fud%(^lN2V|EO*Av2DL@D*&U^r1dRNGMJd0DmY8kWZOR?$_RwTQ_1AQBhf986y!+V50=5&Z z5qY+C>zM{h%B<61vC4>`1}L@I(^GhRR}x3eX?r*r3S!ezH9nQ z55D^CpG60rvi-%MTgs62g|Kn}ucl@@k1)Om+51TrF3(U0E)rKUSOV&K^d!4o;Hvot zx7o`+pYZ>vW%^GwlqtbfLX+{y9%U)S0zNXcgo#+s5DkkmHJR_P)BF7m4#G}{(H=#~ z5(5*F*(}NahG@e$l*sF;_$irfA^^6B-0h5R1i^CPQV+xU8lO2KL~MNA;U<}`d~)Jb zJ~{aXw=JL24d1dPWYGm$63zq%a&l3IxV1SRrSJcAH~lTm`(}UHW|Kob(xDytRQ2V} zYn0L^-=F6cI%+T=kt@qS8=cxj;u7hgB^Rt*xt`i2j01*1_|+0+`3&Lmu2X1KEHFcP z{IxUM`ZND(}Q< z>*~Cm+`=VcmKY{kqgLnhziXKym=T)qxp!YbB56>kY4eK#{v4rs&Ex1ugDQKw#v|Mb zvs!QhY}?+bUU1kB)m#q|tX4~h*W5Em+(aUZ zG1?c8GtRpn4wyP)zZ}3j6m8fDa7fv891iX}jnRab_<$}Cbr^G3^zTETlDEN#rh>*j zTuZKKX*uHniz{jH@)Z@uy!@x7Cf!B6!c-&s zquHr@nNee(JB2UcAlL`Crgxc(=6$?o`gSqDNE~dfpvW?owdbt#`f+BbA048oo=4D1=`GCzjMj> z#SlL1M}yr~Wxl`iP0jES9;S!=XplRi?X*QZjH78EQ1h&FHl2#4XuP7tf({eg!q3~@ zH;TNTevnKpHOw~%iN;oG{JJ+U0>*GfAck;9WGtH&Dm18^x~Gx-2pS{NWH7PZD$Cp? zOa$wk&TSE4Acn>xiMls#=EoOEK1y6%-RB%^c;MpkZA52=zm>-zYRY(?Pj^g_EwGN{ zZM4zyM8fM>@+~i&se_D$tnv()GwLn{bYy zZI=Z3>#e>xX^L%#k_))D&z=z6DR^f2ni!^+UPG-yutGurB<7&%4ByYF%FJI|`TM9n zgc(mfC|Q{O)xj6)BYPt|f2VKb-FPycZyI#;ytTUUmcl##509WrP_L^=_wl=pesmKg zG)8+ix0y~w?TmGI{aIbQL$=Y7ED)y#nW*&pE%LAGTJc5MPxAD@#g^bf2r18cNY93u zD=m^940zL6G7o5yAUVJg+l&_R$T@mi7aL*gG*W4R8gY=m)s~4vr;eMh;%`1uVg76a zO~Y=HmnN-*nx&oe>*kM1TWPwN*v;gb(owBunU^y}=^_U_HC2PJCv$2RX zR^r5c&}kkP_sWpSeV^g2&XmGfi97RfV`^(+lOpbbw6F-(yZP{Q!Td1PF;$2gp z=D?^rB>~6h=eQPyrpfRNJEcL0ZXO zjMO;r*%w@pa&qSFR-Yj!LnHY}UV7P~AaUk#m)l-M`=;_WOOY^TR4XUw~#=2mV>)I4r`!sy@Cfwx}nY zaXL%;;DXh!Uee^n9!9L0?e^tty_<6>|79yfaqBEbt zbi_%%PMD1M+aj@KK-YgZ>Cd7X?4Tk^j9G<|9=mZy^jI=bEpc#UNf>OlJmK4 zN9_AupSzdrH~pCw!NkDp8|XDCO`5Lu1bT0kI@rK9USm$@#(HJ0ljcyL+zaSAXDrc6 zu*pK4A|p@&Csb+fq!p7;xn=i~P%yi|*SUAN{p2B_U|vBu*Gm9--a+*I1X%*OhvL=I z0O*7+r~NL9)x6EeZBzZCUmr8Va;iv!SzuA~2i^zyMakYFRw=a351Dl8+J}TE5wA{R z=k?kvy<3_u)Wy|^gIV()q7PNU$fRK5@>l8=rafq#Ev27Mbr!y0&Juj^IuwY12pHRE zEg{ED>(pfcTbopOto>pj*;L3ZY{2v<`^R0g8HDt?k$Do|oTmj~yU@ad)$))W-`wT* zWyV>RzJ0c@a{boaaXK;8Js1!k7!pf5#Ai5wpwcWpdu3G;EBHjY^0^67t8kAA$+GYvzNV({Q$!})PdY9u?2M!bjM{LVHv#QhO?mHo*1&Fv`+m~ zWZcT&si%?i!KvpbJ&i6_4Y%he90Pj-Uq9P^6g2mBRh^GR(zQ(S=v>i`&;BYL$rcxA zr15uW1yz*2rgw~b18}3}kg}kr5h*68I2P_`>ENHAd7tb_3^Y&u4&@$V>Z_Pr<296` zJ<&tYouyY|WnR}f(|UYr{;obpzS2m5MdzR{RCD|}`kzoGtj5HlnodWfj8D~av=jC?EfG5%O61RVTxKV?;E@s4HVp=#%ty_6>Nq9P;6T`yNh(0X_GRZq8Vj-52{ z{<1lK53itk*AY??UOT5%2=*2HPpLv0Fz~*@PdQ!|Na4(?_pZp6R!M<7WO9naHmw7` zvf5#@5^It^Gn6ea@lre{rEjz*LMv4Pb#bVoT|B4eubqV33T2?8Q=@c!nN$vh`BV@WObzz`nO|K(b!78O(WzkMx%P`~j!VTuZmF1}|fsn|YQ@jnTunswKwK2^ZO66%2sP6s}n;{657*E>Jt8jB8!sufrmn8l--Nh&p!3_JWARP4&tm$@o4M`PgV$*1%8IhF?B(y zUnQJ#mI(E;&ZC=&FmLQJ)gqXzC=X8^Ga_KKLx^V$cMCd3z9}{or&g2?2EwM0+#+38 zK^Zzu_lK6lg13)zxgxjP{C<75{LQ@71@`cEJA6#$8V-{U``5p?+xcs)5*wTj<@@cy zNW)eTDF}sW1*dY$DBm^Igx(?Bw7)&su!IWpNxv&MBL=wgQeoN(MnE$Tn>rmlj{c+U zY{)(`@~+%`L@*cNIvZx_{>4^e#oDCgg487zlTsaUJ`_W8Po&0TcC}UC)=78B$(`Ij zdmnPS9q;KG#G!>mtH0-!%>U3EAc(Dz8yzL{DDU_yD`JyuEsi`r2}@d$pu{R0;e!|of@y@AV0hrMuL zkN(Tzc5rjtTGbj1 zy33Za=sB_kdCDHr|21I2^;qOpp|0^m&Wz6JCf)b8_}$~^rKP@PNsODqfeyOkOU8KY zND#dGrYW{?(~)rIO%cP5F7b#oL^{Ih&T^RAZZ_qYD~&T1@^r8B2Qha3G4<@<{O^?t zPkKhIU)ntRAS;ekN}|dNQ;Y;&bo=x5U%s@ke_c_tC!Y}8j9aI6KYMWeW^}~4eAi~~ z8l2QAXZG~n(apo{^A`j*7kE!S==!syXwsa|_g+LWELF;7YdPJ2EyG#bI_xx( z85aCfJW(}jeVu=BFxuSnmsgjIW%(PzTjNOHHi~w~s6t=E$G8wo+1KGYnzDu2U)|f+ zIUYeTrK=~ZEW)jIOP{6F4UtGI%`?sYQ!;iUUjO_WHwt`F>wG(ln_A7)TAqHuHw^Z# zUKxv#AzkMmhFBy2kz+~-=kB=X((WV$?$q9DqLvr!;#6I>&PEK%@9FQH&a{P*4Vh*i z;J+nR(t#>X!|R=~NQNfaq9h&Sb%v%5F0{bgpBt*{Buxi~AhsHY)a|%N1B2W{?4I^} zQ5&BPyCOyZ|2m^zPKZoS249L+#7GzQ4(x=B>z+Djc1vU{pMFF$&aW8ns9n)Oz#nl# z-|HWC5ynB}t6j{Fa?&1WjT^)G&@qfu!NAw7ll)qDecH(o#_{>OWcA#Y4@`DH^n ztDovq;qrlWvK*Ai%~p@bA5n%iEO;<2Yrz;_{5Iv`?)`toO6{~?j?nNMA$6- zYt9nF9#8{0zIr63-lP}wdjY4p7C0{P5hUU z55};{%x^nh-OvJ;u={IRQJp6kCYPog$>9#SwyR$h>AxPIg`L#+Q)z@e1eO?z93nfy zOn^yh*81b}Grr%nPAUJ$Fv2#sPx~)(T4Jd_bqI5G8;y`?ep~6wz55IzpRKj(P(L_z#>_aDKK(OL)e(z{wsX9C!+5F0}A z!&hP#WZ$jbdGyG>uB!*ClV*C9QssorYHjSoi12+)$*3=6%(w$j_?%@=Tx&Zz}ZoI;G5{Lz`W}J-L7)fW|HZf z$K6Nu9Tg_8`qez!q29TU!7fR_OCz<0X=qtEiqZ`$l}4DE$5vEC>3qIM1pFG`@0!$D zSxO8REt`n!E1GDhjan9UgNHF#o(}&_nu5hw+3D3<3~%J4c1sKk#s%9-0(R) zy_Zj*J%z(34hf)d_b=}%u58X0B(gpYuyJg;LNy71(*XyXv>x$iO0cNk(UkZR89aWc zzft#Ys*{4jf1|ZubhnABSN&id{{gjW$@gf;Gc<3c(=%n`h&SPyl4%RiHsV!3y0U|q z$G35=?4k(hhjxqb^hJ4azEWTs+!e-Ob~CfO^jm^3-mq5XceYhMD;KYA-e?lOh_LXR zr{r0Hav>(+UikFiJzc@B1@o49NZ3-~snPnT$fGD{e8X`UeqHJ}7XzyDU6m9(f<`nq zsI_u&Gfjh5^fGBFit`CC#{=^2T3FSia8b`+|7N`IJdqOMPxhW}FYw@nO~j|5cVI4+ z*I{z zjF+b=xZ>Kc4eLJ|&5}%$FU$1Nq#?yVapokGv?hh{tciAmL77L3{~KRCuWtrL2Y7As zb^q*ZJ&T{FN1*ERNsjimytF461L0R9_=VQb;o1>SZJSuV*mvvTtzfv3Jt}p-*ss1O zyJGf7cgpL%=2L4;sIL2cDUlDq79Wn9_|c=@4*Q2q|8F5ta@qrAS}Z3%Ul`yOgz)3^ zpwJH~9rn}inrQ<&ycBb+F6Uy2+A&3rs6L+)pNOu%%ZYcWu!FFH-YHyZ zKxGAl0ZvEinavApbNRo?st;3LVr=a9bac(~_7TCWbfL3K56T;yT|9wDnq+zyMk2v6 zNY68gOxcfndSQNzmAK1Q0%(UWsUUo`>6@Keq`}TVaVLg(FF_7i9wZzvDxad;|JUIb z7FY5A#~>m{1)p|?XbE|{mv9b~+HJKn+Y<(QI=mpj!(^9s^;B6o#cYmqY1dr}_ zKL$2)0$L!`3`{Y#eO9wC6*h$Ehy+;@d))lQOiy2 zyo3((w^t0oxbVk)|8oYbD|`_3@-4&{{6M{)P&Vq_3Omd?;x_R z#HXA(E-$^#c9oe%BQmua8)mR^iYc!2pgaeMEU-+lifM^p&Htur(iXbB{1_2a25ll< zKF@S>=MpnmF^lJ|yAC6z*9GbYL<+Pje@TJ+`t}#u z+P8+=7t_bY-cXu|SmMGaqzjWCVbdWozaMEoG)Vc&A(P>y#nRx1{A1QI~WjaO|SWRYB!os-+Sgp27}dLn-vY zH^A901WWP7sPEOK`{e=J)^dD-Y_S8XdRnl|{f_p?)R_la2MwI%c-}8=oHt&by7(A* z|D?Z~u~;IOanxP|sPyzmR9lQ*%vDfCdzig@!%psQD#$bij$koLx?o}0tfU?-c^azp zP3QD7Tn~|hDTLHF@Qt%~sYf%WFjX?Ywc`L?N*oVq*_;u4s0c~w(7F>Kq$2r-`c-y` zDv!SgTQ+R#R|sATjf|5fpNOA$6MKvSjZk6wOX_5I-SMO*fCbWy?KEIr=f5}?J}f*5 ziV>~bjYGQ-29j$3h#W47AjhYTrqQYJAmY-ea6UzzvEc}{?IcQHOt?e#BVX@|3_4)4 z*m(bGxfkHdR+%CJcrejH6^XnKxlNg-Tnph1^~+bt`tDxuu?k_OH4hXCs%L7p%dP5?FJ*~R z3k&^JJz3W5KVIZG=E7~$hl5bfLUNme${|%WF1ZTf>3Rj5#nJGNl`YS3I=op;`N{80 zXpcu0gkXaY4YzZ5bTfU$^wR*}UgyDX{$`Yh-6Ev8L61W~vH`F#dqvN?cCgxPOT8v3 zf6Sv4@+%k?)_x8qnx||BF@Tisq=XD@3gib^_%<-1zZJSul8Bom>c1-w&Qym_kAk=B zzI)#83;UyYxD=1HyJbZMWWMv%MvsRue(X&X2+r*&Da9PAjTdcim=dST!>;yj8W+Eo ziADJmjcUGpLmc#A8{c~3Ok21&U1S_j<%Zlwv0v1F2nwJT!M{XB$B(K1ZbnlRIVJX1 zP9q+DUuj^==}@Gw$u(q<0XeRyE4c#WVrU*0z@5|W=XJoXs>?{vJ&m)se|nT(bQUr1 z<1-+?m?~j<)Em&t3?}pk#Yx~6nh(2i zduNLzxKxfC5&||%D_;iQmLbN*6%2|X?XWOkDe7`sW(E#C&@p1D$~|T$zL{0U``nSN zqE7R6Zu}%p>48Cr`mg?wH=@2oWojBxRR9-~qk024k4if19(%ua1;IELEtE}o=CH@3N(xvB(;nZ62Eu`Jrl)kvS%XgPT9GtA=4zH6=u zh<=@I`s%q~{fZxfy3ua)#2Ja*as!Ns=vj#Q5_@JnzhkIgj!r~37UExtd5{?CcI>Tx zE^09M?B!UAi{)oE|C^5np3rO(dXi|dCj|Vgc;Tk%@_G~^*E@g}sqa9sgX(|5mELHm zI^=&v`D+I|gg%V>V^VB1ZR^2lw7Rmk$tJwP5bagDAe zCyd*2fa3m&jF<-8Z0gs&^a{aYZzj2hn-awEFxj2xys!SRR7pK7uImYP{}_$vdjLa+ zsZeBy)*RZlPQjJ`5Du3;;M)8h7+uTRNVNsRJA+7jc1@EJNu4gS;52#fk%L>|b;M{j z*l==W5&|v&{$)*a&q`sYCgV((L)^;D{?W7ek=ID$KF;1@s5|uTVr6A>FF0W zw4Sy?ctt-HLd7uVPmIWt2*x7k-}_{Utpc#y{yjbsVz$Ua?T%WZRak(W-A=O!>!!gq z$t8WB_(`Ta7Z-hPLsgPsQLRbeD#frgkJ^;={M#wW8vCy_d1CnUUt#0genhHFg}Qwn zyh!10SBnr2!Sk@O3Q2p*Nz$kMFM&1Z~+tj)RszcBwgTNGeWHS6tmFo^3tG z$VohtwFiVbGR=s6vdr>#NvDLAM$p6lt+d>G4UUm8cpwnKB?MG0lLa^$@I*wqr2`?v zXLGWrqHi}A*P^ct@%E*FZI#RyPrCS?FZ5n6{{KUJhF+8?*js-C@T_RUQIEp==1O^s zKsDH^sYxZ2T8`LarQ_{54gHE6DnuL5PD|D)&xf=OZ~rVsz;Aurbh{P?7LDwCELAry zb}9p!ipweeFKoKikEk$<&-5naPZK7R1Q?k9@WV=sqhJ#nFR05!E@$kLaf?=ABZcaT z{h0_HT^Ym5EwM7WkV!08J0my?l+90ZLNbvquy=841HwR1e| z#|KM+&(+NUh)6SPcJAkTr#We5d1;iHnd3)nh%4FiOrKWt)tySurCe%3 z@v?wo)&Tb=M*rZL8P}=QKY0f0W+fJKn^{k$97Ij~DTuUw#X543v-q^$PL4)6(J18; zH^YCh+g%9i8|&&RJq$#T%4Dynx7^`cWk>*qHogG`&)yEmdw&aJ3thFy zcDU-}gE1R^NNE*+72=Q1Dmi7M!8gYLptREUwe*>V;%*}V4nd=o^xDKh*Dz`WL?JTa@T*h{v+!w?aT<@nsK#?} zS)e@3<$9|P#_@If06aA=n`n0!LN9Z6Oz8S>T_jlbY!}#Y{&+@QWg1fX6r1l@wu0lww?uh}Cqs3SI zG-c#FGDkRb!uimR8VZ}Th`nfpV42vZU3kbl?5F~4oY!P>Q*sxbvE6H=lj_H5T1D~n z_-^_AfAT2-+B#g=SFpl+k^5cBW_K;O^m^X;`Goa~J#F}#$&OOi4gST9r!wUD>-q;2Dx z>wX5Yub^p}8EZ(wNv(y3nb}=*7$)rBqr7~gI~Vc4EwC>K$gRgR)KHJ#d0rZ?EugW5 zUSxv(dzAC}%GV`UVUYHiWv{TiIQ3)lyiriJL|yXS7>hDv`$tcPro*@&{a7s>pUaPh zCHRaAe@)z`fep4wv~@|tR#pUWyHsbEH&}L`eHVQ&h<^H-TOI}i5W%cu`$UW+p%9mf z9|%fdjGnVMzmZ=tENIs{Jhmc0A5f791N^zggNC%LwVSL# zQp>8WW+eJv%bH3RD!lZHwWeyLl%1HRH3npv9(96U9=shQ6#Ln-vHf?~;A<9godl=g zhx?h34Dl0a@GNF+(MgdEtM5<+gG?2ka2!n}ogF(&#&FKeWFHCvYqTZaCpU-L@t1jo z>lV`4-N30k=JX6Gt%w#fRuOtC)IbW5Aq^TbWcJJ40LgcljYo9sFu!T|_mJ0w#R`^c zh;ZGWNCh=~-}T1RQnQ{!X`s~XHMUd;TUGA1DArDqY(YzIlJ!bDiBj=o`-4EWq-FJE z{pd(u|G^trPQPXxHm0@DI4F)bLxKoL=3Fx?%LAQTkc7UXn}Szp@n#-e0U<8=GCv+X zYK)4>FvBtFidV%qe7OIyrUlL`PRiYO6#`Dq)cp6gLuF7<{Rr2TNKx`dg-t8b;Wso$ z4Kz^FhotJ@%;l;f#wRo+`#EeoHH>nR9uf5S(QNu2#KUMw2E&~ASuiwP43Tf1=Fv1AKwd!?mtd^xzmRj!Ns?DcjI^kX%TqpAx)xqQl61c-Pdup?YqJmtlu(U|H4T;JODaiV=g@$KC?Gjn)8)AzHl#gG zd$-ClrE`v@!$5>lZd})lY9Lo0OVQS69m1J#qR(lG(Krbm_Gh4tY1J7J4Q%*oP<_`c z1ekJakV$=L*mG~uJcw=ZUDMhSG{%aNED}FnQ{9(iijQi#2f(VxD!%l=&3{NT+G$sg z%LxDs%wVOF@D6ibmzal6_um)RM&q+Ad4}bY=*q3t16*L_D-T({JuNYe55puqO#CfV z*2I;30{I&^^ua&(RwEL0&{m9UB47x)8txy@FW%W*R&aBmZBKN?_G=y;d; z-=}0z(*Rc4Xm5On#&4IN1!A;ReCBZX=ZB6e#nbK>ee&;T6OmUuwP&r1XP^z4CM}O= zX~#V?D6^roy?FV=@f6w2OoRB+IdMs>idd~&d$d3fC0GD7SG+U;A!2hVDZ==Pd1=le65s?DB{88(y~eADqR0q_%8eo+stl6Azgb~ z#Nmh5klSX788>#(ye#SMGnnF+-~I6JJ8%J+B$(X~948_(+f0$L zU@$4O%?`p?6s+TlMu0kCkYJG3_xd;{iOBRwC4tkZJh(ej1#;HAR{{g@DsKsAy%o><~FqscvEI z40&)(q)JG}Uj&k}r(}Kh+PuUpS+95l?DJ4HK7TLof*WQYF!>GnTw*DKd_8&_eQ|X_>0Z{PTSSO$F&V;z~lf!nnUqVMl*U^+PX+iO=pw4UpKGU3cj{= zg^BgcHQ~7!9>)+DK1nRq?@%ddhU#JG5n`3TAi71T)w9kpM~(f@BD4;+v|^~pJA5z} zn>~TSNP2=GiVyZUGA&-E?E3O8SQCzWT4duhKN4PlKyz~*{MBkbVY^#4ZcI_i&dL1V zH^y}u{Jd}n;_hrO1`5@EB55}09m-||(2>O0p3qG0cot0DoYj{?+1nq$WM8v{yoL=zmbDDrR~_cb5=%M^#(%I&Do@~(gsog)O9+zzXRI1cOA(i_1oN3 zT*o`i8~ywWdgq|!bfT$N;DN5uABJKzw=JMr`eQK<4@4g|M0k%Q`c!getRYp z)_XkrC3O?wG`6d#+ZKUm;HMlQD3U_aYa6GZ(--xrt8TOp zS`hP_r!N{PVhGT4uklT~-l21>+466k{tH7yRr<6?HT+MjJ}X!W#8t96KLsw?y@la*P=4dR}QLhNjptmFebo>AeOY3nT4JLT;oG#}F}acIL9& zfI^r5+MN0qQXqWB9LD%Z7V`*p(0dj_p@;E?eedVW&J6bBRePNbdiXET3erLy=gW$I zo^-oti&y=U${?PFr>#_}%Jb76%y#1HK(3MU4irlXt_Vo5P@?S=5kSeYFLe=R5 z2bYOhj~Z-3RuZ+~2p2;TJtuj3uiYde>0oTNPf|4Co?7@s@4dn@(e``%I0O+wL!KAL zZ%Dh@s+5gv_RKH`)G`UQ`mGl8w+tUnFJPU1CK$aemm42?$@-IBY0K`_K?PrA!SEt%5IV z>aD}57w^z>2zR@HYLgxp&L((Hqkunp*hoz8&zdRg^%7jsL%`q+N$llZXPoAYJAxv5 z6GS@Nck$UipN*?&UfGISMp;FvqstMZ=YnZ3{fvktKp2oRsCT`p75i`+i0Z_v))Mjc+ zU!@YW%Pnc;m@&Hie05cHCL(E7)M4auk6@+!g)eHz z2iV4+*)4K&<#>1_>}o9Aa(vpvrZgxakZ)RmT)qKjCoe{?7TiY?ev8P6-2*6ty#4`2 zDXpB z8Ugd6!83@O`QbwpSU$O_!OBz45d&m}(xeb!JfzcnMbM%3SMLLD<7Y|RxS5inhpR-j zD@U=@x$9i2$-RvF zN);J7uxibvC{pMz3nR(t2jg77odkqrnFldvmU5Zt_u%XRj*_*9G+|ILTADA9ok(Nc zsKz_vWx@zb!Y^YhnAAcAU#}o-w2$fJ#^=SfGY863*`n&zhZ4yijXv&I!k7`~c1bW? z4A^3sRzNo5{h2arJ5sESyE=zt-ss8upxmb|nUECLK^7iO&!P$?s0McFT&eQq_CbrnZ~?y~)xItX9( z{-JaGKV}5ZIPp@e{@@MR&dURK;!JL%x>z-Fte5lM;-j{$qaIHRYoT5CeP^YWD1`Lw zLBF4{k@1;@!HPR7oc^-nuOMc$u;)pX-|`l^27s5N|A9*ROLy^x zzX4ubvwH=Sp+^wBLU6OHH&iKWRCG$BM-lU|2$k0%h|qd`BJcrxanwFoFgK_~)>IMx zJYs2BDsu>H_{&XPB2CX;LvO7u;>}7Asg!T}DcUK#B2oo~VtZs?0-kwWJXgNnBK|{# z(@$2s{?Q)3fcSi3z&kw!v)BR=oE>Vf=*Ux~S1l?C5Q z6Way7rov3u_7eE+LKVr|H2(RAuzTlOe*c8{J2=%FlS&{y5{_rLiGtg(Csut_9O&t@ zn|{LhhrGbXWjAh^f$<`=lu%M}vJmDNw!iuO>oemBYv(KyHH64_@2lSTZv%enFld>_ zc0>qMvMznyU9m$&U>*AbSo?>CAKUNa_G7s#?imr#G4N{J!wlBe$os-cDk3g>5(Zh7 zJWOeH;iN~yiXy;8%m#wXBFw_Y6^xmK_FO?cgv^c$gvW0;3-p z@pF8V8+lB=O1*bbD@tk~=m-8*&qA`-ad3~YDc;HjC;P*7r#%6Un_3Fve$khtBMfAp zN5fUz>dhV&`eF}D&J762S<6=crmolCKNg?XyySBnkqMD`WB%mVwG0zCeR#~~HfFgk z_v!ttu!r2!9TP~Kvc#PK+nmFL6vFL>(zy6nkjqf>f`Msx=L75AYhB>D$Zgkqx z=f8TW(Frn_;YyvgIRKN#DIR!!WiRVwt$8l|pP%_zDR3VR7>{-;ei6%Xy}8bp$X_AN zYk9MRmIiv>V5IhdpmiERE2Hqx6S4Yc1z#GjXQZxv!hqy|_o1c`VIW7S>SgZCzp4`WNW1ac`NxUf=$!&h&p5 z_w;f3zYv#uN)3qFsm@6a;dV1jA*nZm%K@}qUQ3DMIcDm^v#G(RC8@51b_wly(B9tq zCVnH3M+CWjTbBw3N~INk;4Ob5!CT4O@alj+^NC)u!9O73jA{PwzwEb$X%2)0fbtyS zNcGhS|Gl}_U3m~TCNVnF8}ro4*lV%PYj3aLL%)u(+2M$g%E_uhv{nCyZ;`35ed}<; zm37F^v3=Fv>O+EeC`I?<&wo-Iwb*6qx@3BQEcmbSh$)R2_39yEJ!nQ{!{IV#03?c^HEIl#)~FZ4~X z;yNNYbnCYka%-D0G@^|Xh@00@(jcI);a6k5f@08i__YvNs;g}a?M%0f)Dj7-67ThX zWq%MKQNGv_NCX#{gtg#-ns<)*0#c3Ht>?L}@nN-+p+y64ZV9rPegS!``i0(NYTLZl zi|zNK+FIAOpWKeVXZQ*lCMEuIUpKPKZ%tw^=Ul3T)U9`L93%F7;WK zgPQO2vDU2Xw!4M98r%pSOYq#XVKflYYm7P**?ZmOEfHk3I(~0+bEgp=- zgn6mr#asdx-SY#g?L2oxPHFYH3t5Pf8H<$$c8KdkHBlQ%d2V&Mt9Tl9-=%Z$-?D_W zCWKL2i}ilY`VQFcjo^!%@yi1kK^#1ab?~kEyX&x@?}_+8Yyy|4s5_^pZO_@u@;%?l zq#<3Cs(VbN$EFSGR{`_tvZ9Oc?yj-of>sK|{dkMPEnnO7bHkq?RU+%O0@Sz}gkfIJ zCO3EZ*GL9JpH%p;l$yn0Ixp}ke~-r6;rAB3OgpwIxNT#9N!~cs=v;)FdCgY)cw*33 z=dcSg!^K|lpjqloruKKRs;P>xd*(`3M@Omx@LVoa;nZJoXHzsjY5W#bL(-0v1+0z_ zP!#*R`%2hcf+vaU^?gGQqm#98kS+w|e-(2zG~`C=VvbCNGS#(JAoND^z|5t98helYZoMZbW-h-61m@_@1hazt$&z z^)9Nj89)RzrKF2+x^pFB>YiE6zVRSN&MmLfjdJ+z@xFYB`v|25pHaj!^m3649{WtZ zdnI4V3WUhHT=s@U&-(lZUDbQ*elEUg+h39&977L(+4JX6P8+-Xs^!BYFGc^a)(UJi zfp+#HqZF!$#x$S?v<-h|%;*C31D`rV>M)z+!+2>+dQrBLrDs#7 zK#~u}%4O5+$tTKwSRnX`?CyaDR{Wu!`}=GBc5m>2uA>)AiHmzg{>fgSw~I)q&mWg{ zI=uV{io5%~>8r%cGTf67hcumR;7-nk0~g<>jl_*f8R7>=SSlop?!Whcg95okP$%8` z$a6j8%hDUR@sBx)l350M8+R4_KL>LO+|I_M*Ln_3cGRxot*@XD!04=lT>@H_pdT_iMloZq)}$l&8GePcDKED;c79vj zDYxsy?}xH{0cI804LnxkzEaGGVV_gcfVm#BF@5G>d>}`|BZ4=7A%J=smax^;t|i@J z4B2{1>A@O;xWulx*$D%u!-H3Wjc+R#M|LD+HAH@Kxnw683fEhVVH1>Q?qBMwz2v<@ zZ3{?61_8h^q1W2h5iD7CLcnYrg`yjp`3t)d`s>e6iBY-8E~nibXSHfI0s5;XAk}kT z+l#5)Z_7ko5Kh4USys;+#p+U3w|6F7+(PkpT!0cD*X1`9U066EN+rxiSwHek4V}C# z)nVcC7p07mZAT1OY)h3lPScmPAd!E5&3XPQFoZ$9ZCS^qou}X3qQBIS55U~ zSv1Domv8Y1wYX43+P$;?#7O)bw~0oHyfMgsm87F3>2gq$V;2~3?X$A(`I8>J^#!}- zdb$bDU+%6h7YE67`aA!-KTsy3!%pwGFrJ$AMe$Dyj6WzHTFhRDtR+*+K%;o_W=iTn#Ay>8u5-oE#Mw>^pmJ7>W~y zeFYRL2Pj>AljD%N-pPXy83)_WUE;<3G0bKq#-@k?GXu$-#L^szGt=3I=+2o{&L ziE9_U4;QaQ+h_^oT|%-Gki}mTu2+6=a)A&(tl|6-nENklyAy3So7k!<9AP2s2efnn z4hWS*j-x)QJx|~qfYLlTVIFuchdRx*uTx#QQ)cPv^#R*(LsQ%%lFqWub}ny(Ifm8Q zhfRH zG_){Uh__V7%s0gjFp1gM5=$|VtVVzKLzD|_Sk1_=53^1b=`^R>DToFUhcpYKInZM` zG1LA+J7}}7y-TTT!c~g*LduO`X-jpEs(44M=m~wErzVxC!}Mfo@*-(=6;{J`$(Lwe zv)J3FzYw^%tHO-_vYgJ_N*e_%=pJ~dYx)r=4?ezE%;{nI?vUb{c3j&Kcb@)S+~j&8 z1LL~PZ$ojWEgJlygNsJolX>BE?Bg7(cr8M8FK!v3a#auSCW7y^Lg$W4@fx!5G-f(S zBP!;9a5Cs&Mm&Ie1vC2GSpqj2(`3QKQr3&AJ#DE(T^(w&baC_B;xBBUqVKi6{jscb zG~StY?DOIW=-T~t&Hy$&6P50}JY{x2IFX?#SJ_2#1Ala)ICU}xGV0did(N(9{%{xF zkzR8?{m3cj!@;@zLDF3w41ME0+8G*wgBZIxh9mBriGQ!ltA4>mMIwn3c&&DODQsaX z$)R;SfWh^>XMxSTd}XEIk7*j_@BZYJtagOb_B~uyjp?oWKE`TLh)U4|w#eNKT$XzH zRn_sLGp0Lk8w|=g97@zuV*QLU`#g0*-Dc%tAck|~5&`)=*x;?yt53Zx}U zIN`O#nWVI}Ge+i&@8K$rkVWlVwD_meE>-JwaR)Y`q8Sj7RbzP)*`07!jwWA+#gFCI zwi$;mzdH$km9=QDix&8AJh6nce1G_{8_7U2w1v`>W>P6r;JOmfX8iYxo8E!>(}d>t z-TD3dOCMyW7wLHi8>@oPl}Bl<_lNAvAnmlB|CvV}*vwWZt#;lr z2YqT&dAp1_X2MW?pNTNnwA!*om)Om!BI7fesDK-7l3w~OSd}RL>U8EV%MV|Cx-9z{ zv*84XY^vYpCDZYuX_h)KR-Ymj4X0qtZd0(rfOkBE>P|}>&(3+K+2a^lc9~CZ zcbXKqXA$`%3Hxg?5B#0<^1uDmKb|;B2w+v6Y`oZ&Ig2$=jTA|3a#%PmKc23TeMifJ z%2*3DM~-W2ix)imUz$+ZL%c|XUm{UWX+6ZI{=3{K=iW#`aEx2Jy255}?)TJyd>@xL z-XP)EovUVhAfvUHeoz3h!kNz*qE-W+D@@pj? zutkmih+99neIFECcF!Fw&)S9djoo!vH(BYlvtmTsGd>r4BAqGqb+X}6MN=OQ6|b^C zpb_@rw{dA4lO1XQdw>hjL5@HD*Fp!I-dYa>QAc+)a!4@rqNYqMBU`z*V<#d4F+SMZ`#QTa8a0^teKExm(bW+h*rp0}3`eC=D4VObficpq^j&sxMH4T8{ z{;JG(%J=B2<=nr(ITMTTX{JOnkj-k>?kFt(_x2mJcV6e+8{L|Z6Rljzv^wzyE+6L+ zG+f;3hUP^9zL55v6tvl$igGR3BwMr$2l?@FTC8?DoR(}h;>NPb>tXS%F`At*R*<`_ zZuBX&h^QoDpNx+h7?dkL13=@&;v$4V{?0*T4RH%MsWV3Dx%r+Dp2riZflf zPS0ig9DfbgZb3N$<0HO}fN)JDCFU0e)nP6SBxfwfdVOo@3#HkUXCQ3$YH~7c&5%Bc zv*2fG$lbAp*ZYDbNb!cD84cycmcRhB9>F*FTgq+cxWxB(at$*~foWeXdtr#1+`Wu~ z;h7$TO-7+88SqM0Lk(KPQID7MH;#UsXXJ7Si_ThtguP2Q)h6dNhN&s)^e|Ru)orB4 zZOnw~7tavP(IWNyC>3_KnD@-sL0^rqiBg9}hXtIBTcIU~+{VTP>Z)L;1zggX=&MPV zk8WaLF%b(B_xJ|HV=^5_-7VO1R5}%L3)rr5kUny}6_{}$|57bH*~J|wZ7e(*+H6w3(2yD=Q}|2$M$a~4$#(#ISFiAeVNC&~8NGabTp+#Q}gF25(hY74!i z$Ds^>ztwmtrC;ATwSLQDUa#&4h#h76PD|5urry&ZN$gM4V@YGT_|;)aQJho$zK)yx@czQ8?+rT0 zL|0cPGG`@VmSpzOfrVhX@vEStZU)=#i32xx&(0(Q%-0};sJ`dKg;!H{{-|e&0 zv(Jo36(z5|LF^wDiAB|gb=(-a@yL!ww5=%9fvRt>tSFFhzc*3%N<^1`rm)CCvG?xb z>ZceQKTnAr3rk){JU8vYb74c!+BY&n<5Lj6eIi_c{xVDUovk8xl^{T8PbJ z5J8?`gbvION5%g+!hzYKRv+L zDf?0bV{MQev6=g~-q)|YXLip7`Y*F`k^7wjodYR z<$S;~T@@gN91r6`J)-c!hntgkH+Vu5B&MY6pu~ba$Fdh4*Sz#EVO7-lZy!AnzR&#I zAk>5Tz2M7T!j2giQUyPY<(XQb!~KkxnXYw_FfR@teu!c+ffkNinrsxjJvLD;HpMia zXO*N`Zble<54xnhTeS3z7iSfoMpvkm+r9bsd6P=(CA>lj5 z_^u{F2zad;O)WZ@b#U9+U?R<^yciQAh9|ao(fdf?O~GpfW@Wicndw;XPuiZ+l>PxB zRf?RRMDmkbqSn#*{P=QDG()8&fP_G*aGFyiOJA@NHAJd%UKt56R-~M#sk$Ube8s8C z?mHaH`x65K#0Y^Y8nAyK7Lpc^d*gFG69O#k8yX-!4?3{R>@Jcv_ivg-Gd6KlL5}CF z7GSa>qLXF>R;o)x)VD)oIHKi2kh#%sb%x31OYdHB5Q8U894_lqIof-W82Sc`LE#7S z{=)Aw9Kygt+&0q!)|}PJu+_3BD|Le??pAT^=Dm`JYs01mAI)Ra4$wSuExq1iD^v5G$T2vks%L= z4pORUqVo0hzPhBV_kQg4e{qDRbc%cZ(?CT#rH>CQ2C8%WJ(B$}o%Be5l1K9L+jml0 zftRqHlP2xg=WOav{&RI_(<#EA;GFu#K?8L<#~x#HK6EFS_p5F z7ml%SY~*}0Dg?~96?v6Z$QUDLdL;QUz}^zT9cxyvmH zQtAxwTN&$nZ?d|lk~N!Nj_El5p@SzjEiH<}^q#yvx}APhkQU(Ds{eYP@cn`3Fi>z% zu;>foIxKk`M~~^JssY}yTbPOVEYM=$VB%+4(ackYUfd@gj;DP-S&Tbh1)}uQ@w#8t_osR)VvFgh{N8WnEfe-9A}+>w z>I+Ts7JKEusk|JRFENkW@6@=hDdyVoIZpM+hYnBR2H~__+Tt6dzW%vA;795ZjAIf2 z>2r`#kmK>UXiA6q=!wXv&E=<5-oKB4YeL-EQ60c5g$A%G+*?@IW>!JWf)m!}N;jq@ z#L7Z)7R+e+04^VAMfsr2#>K-pPXLbRvpX%R}p$OxNwgezA zLC`x~>o)d|CTG2Gvsy-G>QiOgNr9+}kN0ylj>W(68E$>hR9hOe;Sp^XGJb(t#{(XZ zyijiQd39MSnj>%3U++sRbJO9ZScJqy=1{~BFEy)onY~!KU9Cwea;nTUc37_16wiG6 zz{ALDI#No@h59l88vH>ph}|NLgZXE4dI6XmvR1Pdpr40%h2(IC#RP+>S}!|Y*NKV%|qthWBiR!meS@EKyj!Z^w`;vd3l?Pi~2I5y$*JNm&4fWKE7+* z_KZ5e9zZARN7V5MllutdCTvp8D?+$AKpo_D#P3k_%R2;;(bI^qL^wUQaO0^^p9iq8 zXM7~P9eU6ai&wS$-##40;*y}_nlOP+BL8LTX;OqZF&l;~Y9R$xaadS1=Kb#eVrdPh zZSVsDV~+P0vaqwW?smBwY`9gU9w!5N)?gK>JW5Z1N;N$>nuE-2$MnN1#*;c@BGa03 zMFeX%F5iLhTIcZ1bzb|;Lqood`4F`CY{sT)+~P6aK3C^Lq*@T_MYj(U&J+Nxfz->8 zda7KLVe37>|HsmG2SWY7aphZ*?2!nSY)6H&sZenp*>Ofk=G~Ec=Dv!$XD<1~@d`roUEPo#H{vLv<%&I-3)t1Ea&0QkV zRztPWxRN4hVLYoWcQQ4@3=(-2b9rCPz-`bZ6l4Md)af(hI% zBi(_ET4DLhf>xQx%&X~(30p!qX5YGXMENEvK+I723K3I7KAp!58x%?)MTshR?3jw9 zT1)!KRTZI^C6L*{0XeeBj4;KDtH7x;8WJ!c;Z&*C?ZxhP(Z$J?o^uS+dpsJz>Cw%0 zO4&DjcZHi?p7za3vqeQxL4!?G5u~K&02k20ihhtJeQ|W7!5V#P>_p5v)Q4Pz&}=ZJ zW=g}!Pk}of9Mo;5N6CbSBP~@^wF2|*%l1+Mi+S#pkMI(;wCbXI?x?IB${vD3s^j6! zYk1rMU%`E_DS1wt$fy~2X$4IX003zrw97F0hQck3TPF*|(hRswj76PnYnvo;hr0F? zoHOA?`87LtIrhpsX)H!tqSR*9ieK4eo{B8s&fTLs9-=><5nhziujTJ~0?Qv(NHn*U zcIuO@oVw9dd~(`0n<8-y{5m$p=apnL8*uw?wW~i*GaxemSs-EZnZ%&?^XR*y- z*`XV(QQ5e?^XEU9u@ZVUlSv?zRreW0l4`Ooly;0)m4NCqu% z3-6{C&GQtqCmrpgWN{g~;B!bJl_cJw^aNVs6V6rF#-C3mfu`gzkwV*nkGAKksL8hf z8CnA$srvS%Qrr0_OT%4QHg7F?S5YB#S})$b?oX)H&joW`S7O9c!!701<5sn6PuauG zct--aQ|TCXjapldzIt9khwxER)~U7@i)s6gjC_(54{%X@`sdJZiJk$ONrCq-`=e-i z^4)p?{F{TJd3aLD>q;x0wju}*rPBY8vu6CEJLvr*oE2E==B4u+*#;kPY=HLHsv^%d zS4u4*?8zEKI@d4e8QSSdH2EBM+J8!kxNmPxmRFyn|r{y z6X};-aH(`eh>pjp$baNJZ%}XjCQL4to$vOwWj7zSx;1t;1pD>_HX|4t{Bm{zljp@x zr;gj0;qH2gGU(F4y-6+aO?c%U4*KEqKAw*9w_($L+|Qe6_p%47{1Gbc4-rpWE*4!Z z&6&JW6BSA8LL$t=1uH}Eegm_-pn;kKT`BYPh^=#%4p@~R;%F&Ji*H3(8Ux}ir?QWv zY>R#~TtQP^Ay2m00@w#Sj#cV~jYDMj*_D5^5|aO$=F$Jb@!HKJ&Gx=-@2@)*I^*sx z&DQZ^#&cJG!X+Le>_X;8`qiR4RpPI&SzIKK$|6%Ijp%!DK^ILi``#ujlc=@{C4|^wk}uP%gajfC%0rDo8N~2m zVQA~TgIL?GE9CGNL4%r;?@w5EEq>=1yYi;%AT9e5H^T4ArPdj^-?eH!b5K0lt1oUh zvk7*wjX9pA8rBtNMKwDp$F=}cu#Cqj-De}(C>>Ijaq?8$==hPrjvv$?v=-zrb_*-! z9evp(m_BxqrQGNd)+l(OS+%q5LHv;O7`MO2df~IYS8oz56`QY4`rInGha9z_OFg7& z?4_Fr|9BBas|IAqC<^k*YB@WYEpADifU6wAG2+`qS`Zc^As>-VZ_k=dpWY@s%4YF; zYa3!Y5A@>VltA_|2cvBK95`vw+t&vdO4Yz8Kdz8piK2g%8^+Rpj` zESLx9KQq}>c}XOP$${uB{}y}S(*0#P=oU2^=`F6QG9W#xeuXo{+Q~H-Dj1Mt9-nZ* zJs8vW?5Bhu!RZd$3)pkeC$lHha5flKDAym&?s?5V@D;LQQ`k+=a`XCsG`5% zvOA?(a43#QJV)3)9R8lt)pA4`^wrC$b6OUe|DmD!Qwht>{`}#fJh=VJU5*2)HATh? zyYUqxZ$48Y@dM3v(oB@KD)~84?<$wKD@!c5uhViiMC>*%tW!}UffFadEjbtMA!qjc zH;2ThD>DEG7+G7buQ%p{ju-(tR=JCg>9o!Zwa#b9xp7(3K%rE3E&KZK!rsDN0^Uij zbna3%@I8s;n@C!wm$^`-(J_C6aP;uSX@!TjS2#U$MJVp;Uwoilv-2(Z(;MucV@&<$kWLkfW^b-yvD5&u zE1d7U6}4OEU+2AcOQ)(~GPf2iaMj+>qenfxVBzk6BOLUiyC~Q);7_kPdzcs_t>oy7 ziSu!7s0+99QF=?pfmb*$pD)-7R>F;KHMCv>b0k2*@V77f-lm07==PZ{xWA)#V?B`> zt$=Ik`BB+I!D&M}zs>#I)3zy-HTB9X%faDfIK*2s4+DGzsE7}adQ)+DYya{$wsy^z z<-KVOA7Z}gw4Spj{i3J9yX7NNS#ge{NTL#CL*j?eg7dZSM zuFw0M1UpzOKtZe($0xVu@CKBx^o9Xsn{mjDO9>{`$FyO}G8Lm)n{D7S!L;$ZVKIHP zQplxe6*}L7odCgeGL=7|uGSBw6*&rEs`s!VKj@9KtGQw-^=?&~9WO|>v+JtMmQ(lP zgtu1)KcXJ`ua*C@j=>if0kF155`+c%Fc^rjANTPMtKh&&0xuFj7BvNo04HEiZ@2RE zEWslnBbGZc&+oZ|BAbDW5I84VGX7zoH3$9@ipnjs?{YPm|9PvX_VphhIYXIN_oGT4 zy+sV0FoyqpoU!iV_!K9b5R4dL4j$pSlvu{4D3ZAU@TN(Zm5jlEURj~Qu^giAI}n`2 zUI#>i{QMZxYj~Ej2Y&qN4+E!K5ShS~pG1!<&F%|C(T(ep!2Ca>h$|&d!9>RhOGFVI z)`h(p;KyA|i(qAS5zbzJlP=MMn;3Iv5Z1Sk?_E9Wj`FwCKD_UgAFS#qnuvPt2kP|9 z3*E}&AHGrL&fhv;vwq|9F_`WJ&G~Z0)T6aJe;sg;ex{|)smp(4+c!}=T+KS+lma8` zAALVmaRx{r&4MMlzu{`cTX(r4hNW8~kYM*TE|?{lCxOqks33+@=zTj=XI4|Yr(WOcbRKyYBB&nyagvhED=z(~DKLS7lL0|+yT7br=~nZ0EYgFmm4D*J zhz0351isR^C1%ytLUrMbIRU|Y9^8y;saZVN9tKrGTP@(NNeb&sJ7s43&w`^h&|e zJN}uXxV?WKiU(UacWJ}?C3lgX#d2ijVxAtvDM6{5rq8nD$zFb&2yO4b=FnP44#ZC zW;+Qu?oem(BEG)gn#Vl!&|r}igW7MD&^|Y0@MNSc&BHPj5^!`I!e0aXIM-*zl2oQo zPr^fL`4f+*zO)poq#DM$2fUVPoiF|QMooeisOe4b!Uh_yzxz*hmm?|qFpY557~UTk z#rI+Lh91!skrA&|LGuC_IR58(qV3c9^mn#}J3u$Ddx{WOZyi@5y`z!T7hS6Dun^eW ztQW_1yi>a|dZr5cv8@S>F0gkXIlZWxbytdFrpL9b`2{oLaZzE{Z^hx9mKz>*@HdmG zD!B^bTjO+X?D%O4*pE-E_k&lR{(MPZ_|dMR8gc;%`M?1-P;q0YPU5h9D8K%|o0b#B zs{bQNxtH&-Cc+K#J6-2n!XYiDUz2r|*3-zAH)Cw2b9h4fGFR4()VEQP(^Nku+|Zw| zT6QG1&IbPfux=Q?&Uc~L$aXglpPO{z>;7xHSl0Jeu!R1?`>Zlq$*;CcPq$@)p?dY^ zA#jLiIPW#QI2*-t;%V0Gizh(tgdj16qhx=vw|Lr8CSa*rFCwN!bdgvS%o1P!*J^vg z%f6Vt4rdO5YP?jDvEe&fnmX(Nx!TUsqc(qX*gf5o`d%2~IlfJKtGMZoqtzP6Ek~zE z4vz1ErrLZLNNp`i-%a%p+QYYTHF`x(dBMc3mb}DjlwdQPjI})Q3ED+_(q}v1KXNE= zeW&lWc{oUn>f!QW$J1+g(+|X*bI6CS_>6qviu#3PTW_c9u$0Is62qqllAYZxktIK- z`d+Up?{=%!p}2zIJ)Y@5J)PZ~ftpZ+#|VYR*~H-OlEC?^sb}*+EC#RP(KKjv#A0mD@z@?!$otLbE>|+SZnGLREKFq_)W5|p<65q#fiE=* zrX=93d=aJj>IcR)z?Zi+Tnanl8ZVc^ejhWH?`1L~JMW(C`k=g^7mmO0l|MC_I3TrB zrD=&UWJ<{#tyvll2oD9JH*VfWeyzm#nGQ{wyJ&G_%ZsR#=2S=t`Arv3JsLhVZ1mQU zu7=T&ZxaL6wb-@1`nG?OEjl)br=AaK@da-49dJ7O@Q?ud06KZ^rM{*O=fz zDsre--xzy4EmMy~XI*Z!Km?j~9Sg%o;zk00_C_#)(P`}Qym&Dt@Q4~=cYU;zUzFuk z)_g^e6zEHp_|0|u25bAJ-Jw?NhIAWpI0ouXn#cWNsH#M9uQNs}mBR|pJtSBMHDpW(AjP7`2qM$0S7)0H@D*XJd*|_*K_FYpazpF1zEny$`7I|eynM+p zddrK%WJ=~P3){MT6;VEwH`Z|uE%({1*hFnh%l`q%T>z=9!z5K+{{^YR13T2LnB|$B z^1ByoM|OVV)8$Ed^5d;mV~~P4yz6S?V``YcBC_}yL*><-Lp0KMZT-NwoxoO5QM2e3 zAJhV!pXdIJGg5>X$_tFuhk#)2xQX%pSgPnL>1UNARK}aUQkZYUV z_`J>CQasNUk{2u9U%O+>WcLB-xMl2yh5TCFqWOA2GH$ds66;0}>zCZL5($PI05N(!hOU@ErL=}Of0OnLO99%ym$lusdMvi3GOr9 z8Y}PD7TV<1-ashH{e!qXE_WA4ob;dQ7&aS9B}JgH81(8!Yb@^MHDNwh5wlbfIn+*8 zm+Dg~*ehYC=F|g?a&zcEMDOB0ck*HUA_Jjgivv&sn=o1H(71`P8%g?}y%+w`2YVC< z<;;LxE#>NMP572npQLem&nK?nLa7?PrQ*EL=!5M6t|q0AIMnN`0{xx5P1zLR?>~Nr zf}rFAxzU+bz0tnh1Q*g^AoTeYDOEy3)c4h#5Re|;T*0Zg68CvUMe8mc@r+IJCLA)- zOms zx^x$!uRR^_U*JwSS^t&2k>qEWGBcradRlD>jSIwbr*Z3l#suRd_*Sz*LDb~>>wQ3) zVpDQmU%57f*k)6o#f_i2`a2>JBqb#vOx{VH=h>-D4Z>1dRn(M%yw&!4_GMnv!KyRu z0nRdJt_<13SxJTduE?u+QE|Z7J4C;|j6k~=iKo4moA?c3A>b8hQsX{z4TwT58t3l% zPJWyp2@4c0pvTX2Y>deQDC#?wgp2r}Tc3~1TM>sJ!5Q#7f!N+JcnPaIet5Z5fMQal zc2YePjt_2poW1*0-}?fxk;bU2q|8&G-?e>5FHUuZr{G}oo|U{Ul`Oe~en=424DV$)dH zW*+O~tQMY<`%Xc1>CW#mQ!?Tt=!Wa0FOW(%RAzuv! zReUoe0?7!(`czk=HLw*_bs&*X<)W4rsi!N}~^IyyTu# zYDF&mwW`$8SXS0w+ee@d%x?SZ*;xQ2*oyx@{1yosx z> z@geOLCACOMz%SU{j0>cNa~hE<`1IY6B=Ny$I{PD1(Q^i3Hp*TcIgxLib`IU&&zAC_ znmnT3QkP@95wK=eP&iR~+rEt2SJ&@Rg?Mdbz(B=nXdp-~%JHWzrm)OioiN}32`cM! zpAd}O5k?{!=ZjNX@k?2@Nw^OEz63>NO2OC>2dSYLYIm^WAf-*L;~)KMT^cBS5`~`7 zEY4kBqjW39+LLbrBG{D{poT$B=eD`QHeUmw+fqybLYf1i$uO7soB$0gksVz2@US5K zh)hY|5vbg7S$Il_jIN8aKo7ov?p6K5W@{|3p2y3kv<@T6hCRNp8KIquJqZasbQ6Hn z8Ht84fpZ0rEdad|hW!aS#c!u3zqnfvtYdXCM#a|jPe_NSK49KFJ9F*2@bVzu=O9;A}Iw@l|Cg zc`t@4L(-Qq{w-efmm!@aN+k_OP(A75ZLKedd8s`UE7r~j{dNh8V`uT-MRhk zmhi%q#$!bhX4$iC9|vM*aEni<(K{V~0t~3h6p8nzPInx_Rq#u}`9TgQ9UXo392^aH z2D}ZH&0yNZvXf3}|HE%4fX5g*NK*8diic>1C-8#LR4xuDD=Jn^UkAfHo=d8e`YW(b z^kj-D7J5eQryj}z!Un28#VYNFr)2ymxPnj#|8ZNc2*Aq;-%Oh9k{lR`F zYa%N$;T7f8U_e89P*@u^Om4jIj~-!u-swp(aSuXrRvZ8ahKp-h^?OffC_Uv4A)I{C zx7h6XQdxZw_)4(`8|_|!yQmWk*qa{#aG{OI+0Bx`tdGb&@Ipo5<*kkT8|pb}Pe|XN z;1eSI8ir1o1s?TpJUeL4ll;Y7@Nx36PcE|Rq^-)IU%uX|Ts9Hrwt5_6yNpu%%U9aW z;KbuHu6trqd%9L5{3cM~hB(-WN|e zNk0~XcQr9V#gZ^_hFgQhIu(80KJOw$Kkjpvh8 z!)2H+Rxh{2*9NI<6WD|PNZEK`hgOn@@P6TvNr$)%p zv?M$0RX7n0>NannTT*&x58no^`VVmlzknpKYI^jND-EtT2+$d>A?gfs)2{UmA1}1i z`zU^%li1UKVCmiLZa|O5eF#6(=yw0wuY$6#tr>+`*wyQJ4=VC}An1Vq_Xe3~KY`?n zL_M*q(}iwZA^4PI?J@o9Gfi&o3a>ecB<|?pqcr(DKo8XY?FS9TJ0Ee_R0ck{3aL$l zRB^7B^L;q}DG9m1WH$1}x;);a%P@)TFPt>;^$UFxZbGR1!%FJmMz3-e8Z#v%k6p{6 z+zQSrtt(tDB2;XRfn+YkL&4 z`2GOV@soIFZPE}@zncEq7g=Olfh~#$HrBdpfIrn=m2NY6lmoW-KEED^BW_un7v8Nu z8dvq>=ouvRV9iHUHlOqH01l|)zN@0K{Cw|Qa&7!ySsIa$*ivdDMQ$<^tI~kse5qQl z>S<$MwYgJeJ8^zCoOrk2nqD!~D@`6Dyi+pt{_sQUIxCLrr$LCQ?bcF{GD~|s0iU&% zmptM_2{j0{g666Q5EN%*BCs23^OX}(HnFWFb$o(>eAr1E%cGWT1B2t4-v zwQ>Ayuf=|tWe)F4(7~@wWp_9K=je$KI8eZ6j1{I`06F@#b2OY8lgy+>YSSY1zaXZ> z;MAu+>2oXYXFmsBCSiCn?ODiE&UnS&a^7inS@ImDoXe(l+64Ekl7n6Pfvg+L>ul7H z17P!O#Rr86Ec(tY5K_ z6JT%Y()7z-y*XiLOmYj~UL#|V(I?;^kIaWV)m0r_oc)$QEa^jKra>|TCX;EIPnq-e zvs%^3!O3%oOMvq;Cgh|lRLj5z>@mv4_9f(BLrwF%YKZHlisD+=+&C@ zA=xuvi2rRQ1MTD{e^s>NxNx`m*r0Lk!k_{%Cw!n@>)SKOjx0fzNu z!Y4&hxwJZ_W+g4oTHY{#IF)|(UB)yn%~LWrO5eiA2V!3>zt|9mj#%seaMw05c0OlvX|^mDy;dcY@|megW?=g`i=R zT_lc@lXb>9nwnxFI6Ah4xg%>A#H+wjXdblT4pswvh-0V_CgTsdN|TE`etecJWZ{8hzstIn(eA|j zBxvb0(J6Xl({X|q?m}gtii)5r(7U{&!;H46XwSi6jnpfOeNh9d^k>d_9H2Kco&9`i z<)O*3u9T9;aQRY9&8Q{DI&X`jSGDr z#@t6Gm8VwGSH1q0x^QG2QsC*t7q8WLveCk<*0&}8;wL3WeoM*=F#Gq+c$6=)G`+)y zK9A0X5qIzk6d#8>K>F`=_ZirjI6L-zQG|q0eG!w&u)<2t2fSG&JuWbyC%z9mw939T zm239u98A#_$7_DZNEbCp$_GsGkFq$SR<3_1l7Ig}6ni9xSH|GaHjvhcg;*aSSYI3EW z+N+66BAFe>Z%gJEG!GiQUX1L|Iex?ir64xKfJ*M;vR}STyAhK)x0kh|Y$p6*UCS9x zcU=#n7FH&AfI^@D1jpY$L)I?dH5t+&h$)>kF-dEp@64!bC&i>Gm(yAxq)hD6sTU8!+XwI z?Olw<$imJi9gN%_QXM#`{ahP$ny!etMCNP~GJ>23XVly{`LlQcWimeydrIo3M!r7_ zUQ%$YBH?oIbV+Km8ayZq0c@O}t2-BuKON+6rwf0otumHe?35OmfPXC!kI%F}7FT?n z)JQ(%ZfKmnaX8%G{d|dc|w@yf$D(Sbw;S`;>a$w}I=_ zZq#T94aULc!8Qs7@bd7|?1b8s2@*m|uD44JTpgG1^Ug=}*Tw`=!?vCE_;=zVsy(&8 z-}`SwAktjG!Jw0j1|^X^CLHRjuWnx*znA~{ z(VlO9{D-XrL8a=kgH!aod1h8mNW1jA`+91lBtNL|8oZoCB_2nr)r z(=+1zn88O;Ws1Duf5tEbyfXx1dM6!T9|*lf%6ZXm zj6vv@o%ic}D19F9n_ncN)wMHC=zVzwJ;I?{-Xj-|QM4teQeq-^?vvI&1I+9@{?>ii z4eI6VV_)&1Y$$r<&RUFLRt6Iop4A@r7^#b&yAeHaR>H2t*7$8BN}sBPPkxeS<;wib z0(++7VIOz_%=0($e)NO{L9H-6wBO1~# zlcKQj%u6vDNI!$UC?)gfh}#m(Qrh~YIWj+6mFu?Lsv|p*< zRg5Xya4T!YVb|UWS}HQ&f!Y}+D(X2F=#;bTC#FojLSK(Tm?ag!rk@t&3iBb=J6xD5 zk-}Xj#i#&fq`0IHFP&LL+t0QJ%7PqLrIqVyeGZkVhFjsl+PG+7#}jHZh&{Bz_x|e)@XHE8f zhIC^XUt75rC$fbf76h(*`}T5C8@VZ3X~$>DtjRT=A424j1=95C!%-sRXXEr&qk`i^ zM(`2cBS5)*r%udyFnpZ%8dP|Hjpz6sqiQ}5qX4>FyXVb8#YBvUiqj|1ZL}2GYplo(QTFHv-UnQ z-uZB6x4$@Rk{PcKgQdT>i5=nkuUmR^c6amrV~GX%T*Br27~D|2in8*?SJ!deSp;{; z0=B5kpu}H>iHIxpMn@ci@UH1NPx;@Ly2+z=si#Nd(x`?sFaeHoix1YY)iSQvTKM<; z4HSZ!N`0VQ2IR9)LJO`k)J7{z=u-9lVh~^EtMM>Cnob2;@d2lQ+cu^s%vkz3Cm^CH zw2`N{F&RfK;jEG4hu-3(ET>iiD5coDacP4YmnoAV+imLEup- zYI4zDMZOn5j{*B3XVl8jp9Af=sayq~oh5Vmw3bNbeh(s$@#ElqI#Z1w`(nOoc*?b_j3iCu^~Hc?XXYdq#Q#n>S{9Y<5F7hRTWZq?E|o3choCU zW0}Vd8E&AW$o{5_Z*b@S8@ayFFs!6Y{+`fd<8599ZZkf4DR2qa6is^H)+EEz^PM#w zRac>C&Tn=mSPLuWi|!7i-s$wVWUmf53n$R|M*Z;`}pI()H_n=cS6Fz$3P zwq~EjxaW^FcYITP_D-0XvUS(K$y~sLlDt~DFo=@0J(1Wg7#rsoDsKgZ$~j=Q;&H_8uH}HSd?e({F7d** zuZI0Olk-&dcWxoOGB;&lM;h}{C8_oNiWz^G@dxoiyI4a1E?L^}#_ZP0lK5jluQv(v z18Gg3-~Xhbic5m|wK@Mnz{kzal?a z^+2+({tPcZCCCHtzOc*D8VAdJi!D2k{dF$+`y{34$NtX6pEK-YDjK&GK_A67?+WQ4Nb?eq1kC2=A1v+Hk+UbcbHBe`(#~vp zX8)Qx_}82ktslA9Bg$!+@D)z0WR=VSQ*lOo6`hniss4ASwq>TSDd_dNzdwK9_>!Y3 z2`7~#YJ~{|T^c*yTSdC#EP-<0%FT_F@0I)Mw$E5l+j*c=sn<%GfAK1Y?w+fHx zUG|zIaD$Z>lzp{%xR547KtqRXIi}1bK8=CGm6h)Lo2SZ(oguXUAl$8kZxV?fGo1Jy zlzdgLHT!0*d@_KZS!(pC>3{LN{cX`X)}ISE4zJTc@}vMPX~9eu1-E@rF4FI^RWE9% zVN_u@)>Z(h;cd%$dFAa?A`{-7o@~S&AMw}l7C6b4G|`C`fx-N9n}NiLfeQR%WB~S+ zD(MeO#yMS4a5LH6?mco3=X%uV7D>uk9`eic8fCevZx#13ejgiLYIeBe?6r zbtBRnfsGs8lJ0c1oB69}4l8CbL0Zwz&d0T8XFB2|dR121{&6jq5$~_BLW(0vCDF!a zBN{84>hy-5b6y54z=YHDWkAlD0Y^&wV3DvjED`@vEd3G;+H5c^r3goqCkXF9LE*Q# z{%WGQJ~%0Be}MGvy9P5lt*fxmK>~0*FnQi(nwj~^^0qF=F(n7nd#|JZvf_{B!n}x! zOL#gaWN8>kAOG^GS3{ZnL`pkwbxPTs8B5(B+EBfx=+ipf@_V-Y*5cJ0e|f~~89tqV z?67k#rn|C!PY@L4uxP`%crP5cbPnApG*}{l6gNkt;FEs13jPJEtFw@4&O7jFE=sSO z3G5!B;TFDJ%P0tEgT<_4&?Y>U;`!B8LwJu|> zGw*E8IEz>+9piuv5e0KE`@mV!43{xVub*+f(wlF|jEH)DrohE#qwlK~KHs^-=+343 zRY&|Q@`4R#E&{8h!Y0P6}mGCk+K)&t44% zHc;erR7gOd?O=7|LC6hCfqkxX|K4gTVa|Lw+OKx0qZzm@_KU-c zg_nCCbAk^Ke z<3WvmlDT&SU#ZPrm+Pffy#mKGV}pZ$rVF7APD@wQdqk~xPh-yXZ*@D=Vk^Y=*M^KP2EFDJq!oNH+BKYq3lF8))uKW7X^aO261$?Ke^p+A zpOItwC@Wbb3NiW|k3$o?s9{R4JR&Wrl*N&wPb(i1_+OTeT>^K9o^%PqdCwJVegp4uS6|F^Kq` zF#lYfAE^Yj_}Q-ZTUG5W+Ir(Y0-UVLug=k^e?$Y)+;Hk=EFNtVMQRGZgixbDGm>GKT2DFr(R`dDOc(##?)wZWN+~*PY#__&)n|RXrr`0qfkI?@GRd1ij z)|@ze;~VhWN*?&iVey_0A?Nz}gmF{4Np3CXe=miWjQQ{#ffv*sM0AqPlzeqG;A!4djDPjdVUG9R`1BSW1xm#KI$oqmT%BSC^AfuubUe08 zh1~T{{}dWfOtx>sPnxI7z+!O3OR#niA0<641)=(TTWWr{Ui=k2X!5FfL%E-oCME&N zK)y7#Sx2z`3RD4%F)1>F!knzyXL#e7MXHYo;|;797#@X_{0vBeyi~>q<#;-cfAZrk z8AoUxlsnVidn9CyY94F z+`zEF%d=g0vQqzWk9pl+pOkDax_6Q>r4TFvsuk>owhNDZui5V3LD3}ySO*2{;0b-D|PkHhRvF0X|%4(p4s`2 z^unsWt=-)4K=6e$1qOdUL?Eki3otSCkXLf~a9-JH?kLvyWXQVtc=jYGo)h7=0_ztT@RSUUW zy=nKlyM6Gq`OJKp?^f@Z)fL_=;4llh`f4@-y3o>F{mvJA^5HbzOrS3tlJ|0A(jM{8 zgnm4KYji%w5j|SAMRjtm>$G;>#;9cGt8r!1vVX6Q>ENY^2O{seiaN$-1t9;|S`erR z;p_S5#$oGZ@sBo`ayv~=<_py1GE$qsc2fAq_eDhsta;RENpXA>&nEYOEYQ^ju0uyU z1?ahZ@P&}-4bMFzdwV5y^01%ysYsWy&5^y8gbvTlTJCK)?_b6Ls7Aa_iv2}DwwZ_J zH3DklKDSVQ#M!|q?+x>?$*kND#MgGYEgmy%PwCI}-+jfjk!I}6Q07FWg#^9+$9~DQ z6tEz5in#~=`#Jf72syqh6CQ$+>SGLlO@XdHl$=$u^YvyR@|}agRj1k3hdG9wNuw(U zrcb*@WA+9k%C4<96$c1!aQwsa`-IQGny0K0x@{FZH-&pT5E-fmq(Zh$Vm<&FFf z_0t~$p%JcAez2y@Qo`x|RMk8CZn(~8AJ5X7RTC zhaM_(!a`9{=V@~^oumr?Abny6>dy?pGVuV zHu}`$kxqkO2$xnNG-;S!`IgK-Q=m>&^(*@T8r*AiPj^b8JMCIIWmHU-r z)#(F!{*U#?Tijm_0C)end`GfVh3(F?+EVtgvY9fp5#7q}-I-=IziVrmdFw37YTmfI zz9^S$9`B+)P>IcaYgzUtOdJm-)jRi2pD3aB+_a~Q*>tK#J_ekgLjLjP^=MyHpPg2W z{bItRvA~Yf3e993o2#yF6LQa?blUn<1*$-8*U}1HL4H2PfcF)a@uzQf0 zW`|Dm)`nq4P|#^5$IgEc>5eca(7ZC>i5Ia-0heSW5^L2-2?vCeUq(>l(aWCp+aE4H z#xdf~{O>C!G0{-#&YY*vDEUdRKB+Wh`qkn7v`;u8`J1VnkLvE4+?Cgz9lQCAQL7LU1nD7NZL(i4Krun(x~CRDmq{7|@4<@$E`E;Y=_#<14AA@Q6bLVi-s|I}5{ z`O#mGQy#eLyAf4@IkXLt@m#W{*PmCz$m^#>kJoKawtwxpy-M??do1gZo7~3eZCX=hEb`!9 zKt%+|_uzo$pO3LIE%jwfz5V#ykON*R((;=2#-Vz2qh#zD2B8Mb+^XDj(ZV7(&-L|C zs$BoxmO%N}7VFH&RXKK@{M!<45}vCyAsWwkfuo8dS!G04k<=M^7=%>j@%t{`&p`#4 zd^YF6Q||vK{GTA%#2nx>MNl(?Aw#JOlf3ORp`VWYZLfmzo<=SWh7v_Wcxtb0zyo8` z&1~%=?HB&fVP6U>p{~%Rb~X>G9Sp*H^8#-SFJ49T zZ<{V~?@|5R+ro4`eQ`V7@*p|+vXA-qqiP*a_;OOwv(E}k!8vL+o!{uJdXv_i4_uTH zw`T6W{~k6Q#&C%k%9oWpPgo(RJgAf|yE`cxF@7T03@5X-_q;v@OJI z%9JEa5>=W!*X)(Td+et@eUH~a-v7rYpQ~@HguM@L>l}t`jUge0X>%EN@6dKsYLH5U z60H-#ZvO#b_+N4-nM`YFTMONrpd*Y%t}M;Y(-J+SpLa?I*$sD` z-0#iI))XPTxi5@bQvMCbewZXD>c+jow129_Co~^yzI_{Snc>wsRvc}=wp_m`YK7>s z4EQGn8*@x03!e-VsVmTM0Q9P02Uho9C)*yg7!cZ*tZN?r zQnom*B?7C@y8Q38n261}BXqs>ylukc{jQJN#Reriii2NHZ2Gv>@?ePtH6-JIFoUZ<&J7Kqhr|IRJ6{NDVDv#aK zrHLS`GDDB*^M^=7c-iSw z0pGk9l%+QK?}{#)x~S(!=FTM4D-@RK->MqY=B(o!3E$D&d20WO-TJL@LX8?D+JnvV zFE?wBNO4x8d@b;*-<+A5%uFUMvv&?7{NvIX^4RMOo4WP~Z8oEGGBD}Lw6y>Kfu5=N z!5DckhVfLXqI&W8!Eb)2NAcV5@*5n+@+3k0%=B^gxr~7^^F?enmfDa%k3TOFQ)>nP z8dO1vtn%Zb7SeaNkk7oz1F&y1>0%s92EU$(3@S(QL`ce7vpY4K*#l^|62yP|#HZh~@Rj+c>m((_}{5#!k(ckEsP zK~Tpi1{VDP)mD@QjT#;I7rB*umCIa=^JBU1pd!L82Bk+P^b~~KFm2!DQ&OZ_j%CV! zQKDVN>8Aa6rB6&<%0D;}lQLgs=p{T;2n9EWK+mI9hvETX-Z%dAzsgcZPfJDKNEI)i(N@N43DAE$W+%+jId9(YjGK7 z#vl7?U%hbVSKs$Z&7xA%v3$sbn*W60=y=_n+Oh*;XO4_s*^cCd_6Nb-MPxbBfiK7s z#`;(Ofh9GgG@eFkgoJ`I(NyTC0pVHEmyR=|-;08tJ_Ak;JU))j)+a9h%5&b-tr~PD z?7rrOh;W`g+G{*=TbVp3R)Z&s*gzH}y}RNypW$UAn&P5g?H;h@%W@VZ(1vWS#2Clo zN)IW{wq#p`FaTpc1OC_4l?O8Y|9_=OeWJ)wl1h$fRBVznharEk@f_!(ETA-lRWK$Nzfkt)uI6KGbLfS;sO~v~=lkR_XxnMd%Ii(IQ^o3kV{MUyR38%o{EI6KnUPrUBqG)V zW*ExD4q&U-sjMoJk1%-|Ab+y(#FvEaY(>zE&~AmH9(~qn#N`9PkHGl8Q4K(R(x=hG zO7~$kSjV(WeFl_?pd%Qk(MueWoMTFBYHA)OMTcB}N~F#RAkZaw$sDje?}J7hxn@%r z7)B|$!3Z6Loc+KVsr3{tjqvSGu?YDtFBC4#ktrmM+D@ysD+CHs=xHFZFZDrbk6$?? z5s~Y|Zof9M&3pWQsSS1HwG+h1YXFclP8_XXOmU|;JrFWbek-JL4-oNa#C4?g=H zUE8D})Xwc^hT&XzL};}tx>k0AJ6_#9bW=i4-J<-_X5dZ_L=7ldcq8qemt#nvx0C|L zWjwC0i-W5-LX!;JJT1rDT{)CRaSgDM=Vu<;rEeo%lxzVNW0PFfd8K(BtP2r)AUF3#dp&o-x?A&2T0M%BL7@K|= z!)-7PqpsZU%KIZRWl8|}ze4GTI~ zkLEPeTS3VWD}HmYBy}HeVTXpMhqQaRZN=0Vr}~BX(XQ8Gm)K+{5AxM|&zF7*j80a( z2->i58kc5-8@G5do1u)k+d<%1(r_NCX}u6?aY{M3OlCZ>uN@Rq;v#LXvo0{7xE3K3 ze_iBnE0s0}E#Ekdk}OH4o<6X|*2F=~Q<4)>7IT+W4s7ZI_B}4P2v6}F*OV@-{`i(- zM7~B1AE%4zk7CiPMeSc&J6>M^=mdame0zLeHmqlYqzn|pJ;LtxZ#&L$2EJJOETRW< z9VP8QFf)#H(k7SpkEsKTH~_qjsM(p5L+CEDtFJ9Tb|owyvzY%mye82-l*3=nM`8ub zCQQ3vSEECPzADD0t(x|U`BebeGy4M$TRnQ0VL&@2!;V*Psww0iJ(mBEHxrK$9aMCN0J9kSeMKb4 zghKxO2EvJ&qTkd$xLpp$@6-GC1*yr{>1(2du2U*)*rUb^9+x7SA&%|3x zqSz*LzL5S@F64-e&K;$V&L8BwV3sp*ngG4n1BXcpIkY9jtZ(oEIWPb|i9If_%?gSQ z%Zw-V_d~EwmG6U6h-;eUWa_=&F=i#qrjBn;+vseNOW4qJCCsM7wzr|-9=Pd4AE&M8 z@h@T+v-MBhr3wZ}fukpZ;E#o93HZuv8b`XsYG5P}OLem^^G9f!e8=p|22 z)9OAAyM<|DSHla?z!zGx$~9=m;4yMzqu$+L%@WpVb zmNeK}ngR(S>10vLKLn++*Yj*?PQuOUx%vF9$B=kvRiTYmNazCNEv2s@shW@s>ANyB zUZgad?w}-(nFT?G`RI^L>*R2>j#|R(A?W``a zKF1tFCCcBXFKuaDxF{(;1r$TAk6ZP>dvFv+J%WX8?~udG!-Zj7OUJhfMTm*Oir<~_ z>_{H^)>qC(BU;C|kNzS5nSpQ--qrnF)e%et@D)>bu=p>bWqS%x9Vq(cAWF9xxB3asfK@9dv7I;wYI3a9(`D-)1@st2F7t^}=_n51s zkvlNEUcbDy#wPLs)k-?2VC0Z4mokV3K1K1&Ulke(ti4B3Ap;X|yqkOXwd`I2M4)zjE)Is%&$HC!dD%i4BYuY=?3p$Fb10YL}2)y!l&{;5C&eL zxoZdBEJd1SOdmTx{CHt8N~6-r5Unz=HRlpPo$L2GIE0e2?;2-c0r)q<855rNd*1GB zvBo)|up3W{zi_jQZ_Ou5@FG34RV?8GGmYpPlmx1004g1m&r)ZH#>|ZLYxl6N) z?*rWIb7K)kQiSY0fwL(meSOReN`jYQI>h5Co3MUoLyn?$+^K0KoO#HXXeSdj?Y@q= zI89eiz}KIl6zEuRkUgSIf!oMb{y6<38NhS?m$R8YZ+^VS8%R?Zccv#2wY@{C(}*XuDa zN+A4A;(O1Qn^uSXMf6YM8)`JB7K7eLQdb^&LxC+Hz=?gYk+C8QNd_v?wr8m9)XRt$!~|6aDZ2qPZaY`E zap$qRROlfz=;X|c#M_nDoRhooR`%9|rW_mW7oRko@mg_4zhdB5ifu|a3W;jl`n8yb`L2Xd@ zZX&`pyx#9E*IA~*_CuAgL3cPRauOX>*~b!+W^bJj#)dG3$_LQ5`3m9hlvPknUg95gT}xfch;@mPy8(f zysx0B7{RoAy2v$MCQ{rrffM7^MajAvbY*P2Lm6M^@d4W|%pRgE{&`nJ8s^~Z^#-!` zQs|q+dCd2AD)CqMHn$gUV_^=gw2&XZe899klBs1b%eRb^ zAO+Cr_2(`@)C+%CLYyI2Lk29e@FNl2L;@Q{EnLQ_1d`Hpe#ombC+qaubT^##+$5mXZ7lSiH)z8`uQ_;-~#>`W1`~IPfDAefQLHCHV ze9%;JCoJp5k_IrkRCL6ge`qav%=Vf}K<7oi>APBLNo=-_?X)Twi-ntenDk7!vNaXu zA*QNg?zf0=vNoyQV4swZZa5%3JD1+;z5pX1FbY0Z;~)IIJm5(2vdPe-u?n#J!tNx_ zq$&8FN?>>01hPD8`nw#t6s9R5GkCU*y#v6096_h>@`p_`@`526!oJlNVUYy<{S(?! z!djYKxA>BtLhLWa(b^U76Ev|%6F=%c$bNx;^H-fDW4b6AqDtQD#GbQ8)+sRN z)eX&Bxu~0^g>bTQKd9NcgdO720fTjc^HxT!O&}h_fummTrmh$7Haqy#_w}0h9=v*% zGm9;4`uK#{Sw}vMAr~*bEPVAJU_hQzDM1vsSNnvSQ&txPEI^!m*Q|rR(WD`7_E^;} zdhVYo@c6To&4pURHhh&7Vdt9D{w#O+nh{g1U9@sZO69Is$O&e%-)>Mh!*7=37cafP zlA?u3ma|XUXJ6?ZzSo**#i1DiErf6BHd|m6hEVO%QP2xDl&v}>DOT3P)N@tIS!BeY z_m1{lPhZ-LnvqrU&%p-%S=BN{IM&=Z3TdD?jpMqc~?29a`zvOk-sk z)@O*A&q6yoYI(fM9JlBF*TY%1gny)^Cv@CvmF={oxCKezhgbS;UtCv79Ye5f{YGet z;l8`q^5#!w9r`kbO#N~=ZPt^e$XWh2&){|_C52an*@aXV8zdUuxhp6Lu0F%x(Q;!y zdYAgFq|7rOR&SO5daa2c}wE^^N+u^1fR5d^Es;1j(?y%GVuvEhdK*p<_k+ z5yV{u`??@i+qWW43r%Zjn$uFMWWnyer_p6=={lJ)f%zq@Y3G)R5x)jOA9iX0iHZn0-H|{vu=&x6pZG;KMEbh*w7(yG6)LGI2VS<1&jSk?d6s zk9Rh@!^;Ds`J`d_+)%qY{aJ#_b<&c`mNFyo`J4dO>xn_d*JwLuQA0G;paLL)`&&L>a?$#k zHj~OsabobxxOQ=L?&zQD@2qX$%Qgj2m$a-FYOT(v`J?H(5^3T{JCn zOs`ei2%g^xnQ0p?++QA?bG5c^Gst*0bwX=)AM^1{1dad@ZjIewVj$r`Q>oB#q&-Wa z_;7aSZfOpxBx>F2M5ggiHZPMRA>GHa%qs{XZ`=GblAD%RN_45>xs+KbNQ``HC@Vs` zNy_;zVMgxR8i+DlBMntmB3jH_z)C93t^#nT;q`XZ`}~m{rK& z_CcSbXTkF&?nf<)d(5Uet3AEp+C}PHDvpvThnPltt!t1R5#?%5OX`<60W{kRxvB>A zp>?^A>eE>gm*aSJNU1(J*_F#xT%SR=`+QewXsh@Gzr8TiG>HgCjiKBB{#u9*XtHwT zpQa5$G;iXvBo&M^X%mqcA(j>aRJU_2x$IJZ=H2yvWY;}V?!igiveKsTZyH}~`r=Jw zG)?ok1CJ`x74nx-6n25e@buKFuhYAlX>ey3})f zrmf&!5w4KLU`8Mv;rpPp=CfIAme|Y*km}Oo5JZ6M?V4h&PmqR{V}E?w#D;PE4=9dy z9Mp&pQpSNxjZGqG-=SOt#s}oz$3G1Ts&MP^w*P4!@WomnIKE z@^a+>diPQQwX4@rYq-DwZe!p+v>Lh-p?U4sCeW+1(HW9l8rd0On8}6lukHmn}=dJn^DRvleCf55#aq}a$Jt5JAIFk#H!snsdiCt9-W>of$ z6Cl5>d@OzcP~el2_v$A>QiLdnQ5N2YVQoQPLw#zR2x7n0dFxl59GvO)K;LtF)%;=2 z;7gsQzWgA+Krl51OKp4HH9MK>;;Fn*tmO^u8Yjp) z)Q_8sI1kbzPe1SJ3w%u^B^~Y$3vzDxF`RSW zRo_Uvqx-y#1y}UuU) z$Ip}VSJx+jg+T+1fYJ9QXI9F#a~0gP4PSg()?V;&eW1F#Sb&BWYPD;79QDy?$8 zN%r;x@2O+uR>EY(6G^f?Qx=HiK7XL53(z_J5T?C0qwpNEbMnO)L{cimoU#~t(VMlT zSF@sdauB-$L>CJGI}n?JZ0 zvApcK7r+l7Y0nkM&7Wt#(p1bJh%FR-?0*(}H0imE2)Q9>G3Y#ey{y_Fof$fpon9GL z#ZBg%dE27|5dBP8y0Fc3jycvbMAN!6rG6==PP1wnKNn+_+Xlf8z60v0*na=wgpMBx zJ4E(B-{WaxLAa~rU_9K@U$P>Y0k2qFOqzUxU`(pV10`PU%m9X}AUk88RAEocDoX2$ z;%Ik-8 zOBTQnmSD`4lf`}%jYA726$>+ktG<^IE42qiuV7Ey-i4G-KfL@7rwZ4_yx9)DmrfGQdvBHm<TdoznN!;PC;aQ%3oh}y zNI~>wUUtz14?W(ZC--(W_Cn$Xc$C9bJYsoaJfA9kAKl&bR2SqQctRqn{l5yeJKShS zSC|AL`jH|1FzafmC&imF#2%`UXf@15tbSaUgn*l4u5$PH!4R7fqn z@Wg6CTv`gRS3?oCK8Z>efr5*f5lz&!_PG#CsixUKdV;_wWrO0ieNw+c;>0);(+E1f zVp!)r6|G5nW*~%k6^UKGzwbV9evYH2Z^w7W5)Asw3J;KfM_0!xy3<#?4TicNb%GMBp4*~v0y|#LEe{OZvvAKat3+D+K)7PB7m3z9iPn1Q2{s z=+0JfMb9(*ofZ00PPwa!7`8g^$Ke}zmii1z<7s@m$Pp98Un;@y{>GqmjPbzuH>IzI zwT10-e_p&~QR6RY3hmXS*MB%%#97_*4Bz~aOhwBGFm+v&36i|*5$VRha@23yMFwVm zt`wUlRz7+Fr%x9i-{h({gujLu%*s1sv=I((+|EzQUAzGR-UEHXQs_0*{Z#WC z0p>zqH*mTiOn{`!k3P(F*?(3ZvvEL12V_)uo~x^Va~p3VRYMQ9+OcQc5qICW`U|>s8lA8Un#d3> zhz2dK^{S)#(CQyPFdSu*u%V}P_j}=qTa$YeHzb=F*@w?_I8mPcUoR9E-+Rf5W8pSF zbTx2MWn|JV+ww@GiB_6g{4#y$4UOXniv@mX7VMA3P|>-UjT29lMaF4^iSV_7W$a4K zG2lRGhyp%{s~o}dg5uU26OV4NYGEfAj1_~8IjIZ3?Y$FEU(YP^3z}!jJ{?ZgdIt9W z#4qiNL{Mxg(!-38vli!>%YWETx(o|)1^US?&M(3{^TcXdWyc={*>Mic49BX7SDnc43C-!xjGKQGEnN(C4A!fs+_LK&*@V; z3Q|#F{CT_44$OMcfa@z@>jf}X^-H2>Al%TLey1TC1Rww=OYI7~+^@te= znfQ4v@BA5S<;=sJi47>Vhdm9-Gx=)RC=Jh?+8yN!#t0rlq*-|x<}jk}y&f97qgw;S z>n%8NU04M#rT^jyqqcBy80Ft+VZYRFEBL?=o(I{-RM{Hl@le3n$@aK;rd|5kb9zum z<=-30UH73gV{@?L3|Utwr~ZJ46-97+aK^)fTzM$7*P5g1N^x>6G>0*N>9f{m0gi+5 zV51;bDoXn$MJ0R37PcJ$N1!GKQ~EeVWIVLMvvMty{--O~SIm6XEsXEb0E8CkhN zg}~RkN+gm`(;^}Be>)I`g{ehf_3{6TqwWJv$g&~MV=sV*Knhxa60Q#%{Gt7C^eGv~ zJ}~-EDpi;xkFR)Q{*F`@1Jgug_i9xvWVbZ&3QBPp2H*R@eQ@#7iEb0;(Sntwu$x@9 z$Yb6gfZ_8!;Fty>?E*_< zpiFPuuZtgj074i}f3~iQVkX%vN}gK&u<4(&DxP?2yo6F)Z7dJn{X0~7OzpE489ze# ze}|@A|2E2D;JSVX#dR`jy?dU3g8JSfnxM}SEcZ|)8A)q-Tv)LpsV}x#1lNT0m8MX; z#*;XdERR`~8DqPbi`_M^aVukHY9l9K)U!fWm^>7lve&^<6>lS8yS8u#`Xsi| z&G;_lXDBJlq2G8I+Yu?mnl2sQL*|L`3P3dGcq_2CB9C#EGEI=VYNc!Z50-GPpK0Rf zwt9Ap+i?M0DFTxpcUvAU3jJh{>fQ7YZ)VEDt@41Yl1GQxs9>X79&^XnQ>Q=y|5Kfd zm3;!hcdz&E;Tt*`GYbopOPYBq~g{o_M#A)8czsy&9{%} z_;5q~Cu4evT47^L+jDq(w4qNNS5jko(x(eUL67pWX>Y@ZwsCEoMl@*_Jb%DF0ZUA(5tFv{<$s!MR-L`f=GWsC2xgurKd(x#b9@u zqIL64Y8ac9xc=ZqDF}FBKu)P5*+HE1j&Q1t^juJFg8OXqv5-zus72l15M{ItAslD- zbelbJe^;|$q{y~^9h+(X@{B@B6=mB6cPMZ*Xo~7~FR}~xY430_PW<2_?qF@{v#o)b za`?PRlh|cczA9-+Snq&vpnkmr&~7K0chnhF)%+@ Js_%T~{{T+9loS8} literal 0 HcmV?d00001 diff --git a/examples/snowflakes/snowflakes.js b/examples/snowflakes/snowflakes.js new file mode 100644 index 0000000..f93b0ca --- /dev/null +++ b/examples/snowflakes/snowflakes.js @@ -0,0 +1,67 @@ +"use strict"; + +window.onload = function () { + + + var KeyConsts = MomentumEngine.Consts.Input.Keys; + + + var width = 640, + height = 360; + + + var snowflakes = new MomentumEngine.Classes.Game({ + canvas: document.getElementById("canvas"), + width: width, + height: height, + fixRatio: true, + desiredFps: 60 + }); + + + // Colors + var blue = new MomentumEngine.Classes.Color(204, 255, 255); + + + // All of these are instances of MomentumEngine.Classes.Entity + var mainScene = new MomentumEngine.Classes.Rect(0, 0, width, height, blue); + + + // Load images + var snowflakeImg = new MomentumEngine.Classes.ImageLoader("./snowflake.png"); + + + // Create scene graph + snowflakes.addChildEntity(mainScene); + + mainScene.update = function () { + + if ((snowflakes.frameCounter % 120) == 0) { // Every two seconds or so, add a new snowflake + + var startPos = (Math.random() * width) - 50; + + var newSnowflake = new MomentumEngine.Classes.Sprite(startPos, -100, 100, 100, snowflakeImg); + + newSnowflake.update = function () { + this.pos.y = this.pos.y + (snowflakes.lastFrameDelta * 0.06); + }; + + mainScene.addChildEntity(newSnowflake); + + mainScene.children.forEach((oldSnowflake) => { + + if (oldSnowflake.pos.y > height) { + mainScene.detachChildEntity(oldSnowflake); + } + + }); + + } + + }; + + + snowflakes.start(); + + +}; \ No newline at end of file diff --git a/src/classes/color.js b/src/classes/color.js index 784d960..59ecebd 100644 --- a/src/classes/color.js +++ b/src/classes/color.js @@ -1,3 +1,5 @@ +"use strict"; + class Color { diff --git a/src/classes/entity.js b/src/classes/entity.js index 97fd892..e572646 100644 --- a/src/classes/entity.js +++ b/src/classes/entity.js @@ -9,6 +9,7 @@ class Entity { this.pos = new Vector2D(x || 0, y || 0); + this._ready = true; this.state = {}; this.children = []; @@ -44,22 +45,40 @@ class Entity { } - detachChildEntity (entity) { - // Not implemented + detachChildEntity (child) { + + for (var i = 0; i < this.children.length; i++) { + if (this.children[i] == child) { + + this.children.splice(i, 1); + return true; + + } + } + + return false; + } - _recalculatePos () { + isReady () { + return this._ready; + } - // NK: This should be called within "render", not "update". The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _recalculatePos method all the way back up the tree and continuously adding the results together. + + _preprocess () { + + // NK: The purpose of this function is to calculate the true position of the entity relative to all its parents. It does this recursively, calling the _preprocess method all the way back up the tree and continuously adding the results together. // Note there is a limiter, where the last calculated frame is stored, so that if the position has already been calculated for that node in this particular frame, the cached result is used rather than recalculating. + // When rendering, the draw calls should use this._calculatedPos rather than this.pos in order for the position to be correct. + if (this._game && this._lastCalculated < this._game.frameCounter) { if (this._parent) { - let parentPos = this._parent._recalculatePos(); + let parentPos = this._parent._preprocess(); this._calculatedPos.x = this.pos.x + parentPos.x; this._calculatedPos.y = this.pos.y + parentPos.y; @@ -91,9 +110,9 @@ class Entity { _updateEntity () { - this._recalculatePos(); + var updated = this.update && this.update(); - if ((this.update && this.update()) || (typeof this.update === "undefined")) { + if (this.isReady() && (updated || (typeof updated == "undefined") || (typeof this.update === "undefined"))) { this.children.forEach((child) => { child._updateEntity(); @@ -106,7 +125,11 @@ class Entity { _renderEntity () { - if ((this.render && this.render()) || (typeof this.render === "undefined")) { + this._preprocess(); + + var rendered = this.render && this.render(); + + if (this.isReady() && (rendered || (typeof rendered == "undefined") || (typeof this.render === "undefined"))) { this.children.forEach((child) => { child._renderEntity(); diff --git a/src/classes/game.js b/src/classes/game.js index a745402..addf7f6 100644 --- a/src/classes/game.js +++ b/src/classes/game.js @@ -17,19 +17,19 @@ class Game extends Entity { if (config.canvas) { this.canvas = config.canvas; } else { - throw new Error("MomentumEngine.Game must be constructed with a canvas"); + throw new Error("MomentumEngine.Classes.Game must be constructed with a canvas"); } if (config.width) { this.width = config.width; } else { - throw new Error("MomentumEngine.Game must be constructed with canvas width"); + throw new Error("MomentumEngine.Classes.Game must be constructed with canvas width"); } if (config.height) { this.height = config.height; } else { - throw new Error("MomentumEngine.Game must be constructed with canvas height"); + throw new Error("MomentumEngine.Classes.Game must be constructed with canvas height"); } @@ -126,6 +126,7 @@ class Game extends Entity { })(); self._lastFrameTimestamp = +(new Date()); + self.startTime = self._lastFrameTimestamp; var loop = function () { diff --git a/src/classes/imageloader.js b/src/classes/imageloader.js new file mode 100644 index 0000000..1d214a0 --- /dev/null +++ b/src/classes/imageloader.js @@ -0,0 +1,52 @@ +"use strict"; + +class ImageLoader { + + + constructor (src) { + + this._loaded = false; // Default is true, set it to false until the image has loaded + this._error = false; // If the image fails to load, this will contain the reason + + this._imageObj = new Image(); + + this._imageObj.addEventListener("load", () => { + this._loaded = true; + this._error = false; + }); + + this._imageObj.addEventListener("_error", (err) => { + this._loaded = false; + this._error = err; + }); + + this._imageObj.src = src; + + } + + + getImageObj () { + + if (this._loaded) { + return this._imageObj; + } else { + return false; + } + + } + + + isLoaded () { + return this._loaded; + } + + + isError () { + return this._error; + } + + +} + + +export default ImageLoader; \ No newline at end of file diff --git a/src/classes/sprite.js b/src/classes/sprite.js new file mode 100644 index 0000000..376f0ee --- /dev/null +++ b/src/classes/sprite.js @@ -0,0 +1,78 @@ +"use strict"; + +import Entity from "./entity.js"; +import Vector2D from "./vector2d.js"; +import ImageLoader from "./imageloader.js"; + +import CollisionMethods from "../libs/collisionmethods.js"; + + +class Sprite extends Entity { + + + constructor (x, y, width, height, image) { + + if (!image instanceof ImageLoader) { + throw new Error("MomentumEngine.Classes.Sprite must be instantiated with an ImageLoader instance"); + } + + super(x, y); + + this.size = new Vector2D(width || 0, height || 0); + + this._image = image; + this._imagePos = new Vector2D(0, 0); + this._imageSize = new Vector2D(0, 0); + + } + + + setImageCoords (x, y, width, height) { + + this._imagePos.x = x; + this._imagePos.y = y; + this._imageSize.x = width || 0; + this._imageSize.y = height || 0; + + } + + + isReady () { // Overrides super isReady + return (this._image.isLoaded() && !this._image.isError()); + } + + + render () { + + if (this.isReady()) { + + var imageObj = this._image.getImageObj(); + + var subWidth = imageObj.width - this._imagePos.x, + subHeight = imageObj.height - this._imagePos.y; + + this._game.context.drawImage( + imageObj, + this._imagePos.x, + this._imagePos.y, + this._imageSize.x || subWidth, + this._imageSize.y || subHeight, + this._calculatedPos.x, + this._calculatedPos.y, + this.size.x || subWidth, + this.size.y || subHeight + ); + + return true; + + } else { + return false; + } + + } + + +} + + +export default Sprite; \ No newline at end of file diff --git a/src/es5.js b/src/es5.js index 3d45d64..d81b8ec 100644 --- a/src/es5.js +++ b/src/es5.js @@ -3,8 +3,10 @@ import Game from "./classes/game.js"; import Entity from "./classes/entity.js"; import Vector2D from "./classes/vector2d.js"; +import Sprite from "./classes/sprite.js"; import Rect from "./classes/rect.js"; import Color from "./classes/color.js"; +import ImageLoader from "./classes/imageloader.js"; import {KeyConsts} from "./classes/keyboardinput.js"; @@ -12,9 +14,11 @@ import {KeyConsts} from "./classes/keyboardinput.js"; const Classes = { Game: Game, Entity: Entity, + Sprite: Sprite, Rect: Rect, Vector2D: Vector2D, - Color: Color + Color: Color, + ImageLoader: ImageLoader }; diff --git a/src/es6.js b/src/es6.js index 2963499..60008dd 100644 --- a/src/es6.js +++ b/src/es6.js @@ -3,8 +3,10 @@ import Game from "./classes/game.js"; import Entity from "./classes/entity.js"; import Vector2D from "./classes/vector2d.js"; +import Sprite from "./classes/sprite.js"; import Rect from "./classes/rect.js"; import Color from "./classes/color.js"; +import ImageLoader from "./classes/imageloader.js"; import {KeyConsts} from "./classes/keyboardinput.js"; @@ -12,9 +14,11 @@ import {KeyConsts} from "./classes/keyboardinput.js"; const Classes = { Game: Game, Entity: Entity, + Sprite: Sprite, Rect: Rect, Vector2D: Vector2D, - Color: Color + Color: Color, + ImageLoader: ImageLoader };