/**
* Combined, minified redistributable GNU ease.js file.
*
* Copyright (C) 2010, 2011, 2012, 2013, 2014 Mike Gerwitz
* @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
*/
var easejs={};
(function(z){var k={},l=function(d){var f=d.replace(/^\.?\/|[^/]*?\/\.\.\/|\.js$/,""),f=k[f];if(void 0===f)throw"[ease.js] Undefined module: "+d;return f.exports};(function(d){var f={"public":!0,"protected":!0,"private":!0,"static":!0,"abstract":!0,"const":!0,virtual:!0,override:!0,proxy:!0,weak:!0};(d.exports={}).parseKeywords=function(a){var d=a,c=[],e={};if(1!==(c=(""+a).split(/\s+/)).length)for(var d=c.pop(),a=c.length,b="";a--;){b=c[a];if(!f[b])throw Error("Unexpected keyword for '"+d+"': "+
b);e[b]=!0}return{name:d,keywords:e}}})(k.prop_parser={},".");(function(d,f){function a(c,a){for(var b=a.length;b--;)if(null===a[b].match(/^[a-z_][a-z0-9_]*$/i))throw SyntaxError("Member "+c+" contains invalid parameter '"+a[b]+"'");}function g(){var a;return b?function(a,b,e){try{Object.defineProperty(a,b,{value:e,enumerable:!1,writable:!1,configurable:!1})}catch(d){c.definePropertyFallback(!0),a[b]=e}}:function(c,a,b){c[a]=b}}var c=d.exports={},e=l(f+"/prop_parser").parseKeywords,b;a:{if("function"===
typeof Object.defineProperty)try{Object.defineProperty({},"x",{});b=!0;break a}catch(h){}b=!1}c.freeze="function"===typeof Object.freeze?Object.freeze:function(){};c.definePropertyFallback=function(a){if(void 0===a)return!b;b=!a;c.defineSecureProp=g();return c};c.defineSecureProp=g();c.clone=function v(c,a){a=!!a;if(c instanceof Array){if(!a)return c.slice(0);for(var b=[],e=0,d=c.length;e"}:function(){return"#"})}var e=null,d=this;b.toString=a?function(){return a}:function(){return"(Class)"};return b};j.prototype.createAbstractCtor=function(a){var c=this,b=function(){if(!c._extending)throw Error("Abstract class "+(a||"(anonymous)")+
" cannot be instantiated");};b.toString=a?function(){return a}:function(){return"(AbstractClass)"};return b};j.prototype._attachPropInit=function(a,c,b,e,d){var f=this;i.defineSecureProp(a,"__initProps",function(e){var e=!!e,o=a.___$$parent$$,o=o&&o.__initProps;"function"===typeof o&&o.call(this,!0);o=f._visFactory.createPropProxy(this,this.___$$vis$$,c["public"]);o=this.___$$vis$$[d]=f._visFactory.setup(o,c,b);e||i.defineSecureProp(o,"__inst",this)})};j.getMethodInstance=function(a,c){var b=a.___$$vis$$;
return a.__iid&&b?b[c]:null}})(k.ClassBuilder={},".");(function(d){var f=d.exports={};d.exports=f=function(a){if(!(this instanceof f))return new d.exports(a);this._factory=a};f.prototype.wrapMethod=function(a,d,c,e,b,f){return this._factory(a,d,c,e,b,f)}})(k.MethodWrapperFactory={},".");(function(d){(d.exports={}).standard={wrapOverride:function(d,a,g,c){return function(){var e=c(this,g)||this,b=void 0,h=e.__super;e.__super=a;b=d.apply(e,arguments);e.__super=h;return b===e?this:b}},wrapNew:function(d,
a,g,c){return function(){var a=c(this,g)||this,b=void 0,b=d.apply(a,arguments);return b===a?this:b}},wrapProxy:function(d,a,g,c,e,b){var h=b&&b["static"],a=function(){var a=c(this,g)||this,b=void 0,a=h?a.$(d):a[d];if(!(null!==a&&"object"===typeof a&&"function"===typeof a[e]))throw TypeError("Unable to proxy "+e+"() call to '"+d+"'; '"+d+"' is undefined or '"+e+"' is not a function.");b=a[e].apply(a,arguments);return b===a?this:b};a.__length=NaN;return a}}})(k.MethodWrappers={},".");(function(d,f){function a(a){return function(){return this.___$$super$$.prototype[a].apply(this.___$$pmo$$,
arguments)}}function g(a,b,d){if(b["private"])return(b["public"]||b["protected"])&&c(d),a["private"];if(b["protected"])return(b["public"]||b["private"])&&c(d),a["protected"];(b["private"]||b["protected"])&&c(d);return a["public"]}function c(a){throw TypeError("Only one access modifier may be used for definition of '"+a+"'");}function e(a,c,b){for(var d=n.length,f=null;d--;)if(f=h.getPropertyDescriptor(a[n[d]],c,!0))return{get:f.get,set:f.set,member:f.value};return void 0!==b?(a=b.___$$methods$$,d=
b.___$$props$$,b=((b.prototype||{}).___$$parent$$||{}).constructor,a&&e(a,c,b)||d&&e(d,c,b)||null):null}var b=d.exports={},h=l(f+"/util");l(f+"/warn");var n=["public","protected","private"];d.exports=function(a,c,b,e){if(!(this instanceof d.exports))return new d.exports(a,c,b,e);this._wrapMethod=a;this._wrapOverride=c;this._wrapProxy=b;this._validate=e};b=d.exports.prototype;b.initMembers=function(a,c,b){return{"public":a||{},"protected":c||{},"private":b||{}}};b.buildMethod=function(c,b,d,f,m,h,
r,s,j){var i=(s=(b=e(c,d,s))?b.member:null)&&s.___$$keywords$$,c=g(c,m,d);this._validate.validateMethod(d,f,m,b,i,j);if(m.proxy&&(!s||!m.weak))c[d]=this._createProxy(f,h,r,d,m);else if(s){if(m.weak&&!i["abstract"])return!1;if(m.override||i["abstract"])j=m["abstract"]?a(d):s,c[d]=this._overrideMethod(j,f,h,r);else throw Error("Method hiding not yet implemented (we should never get here; bug).");}else c[d]=m["abstract"]?f:this._overrideMethod(null,f,h,r);c[d].___$$keywords$$=m;return!0};b.buildProp=
function(a,c,b,d,f,h){h=(c=e(a,b,h))?c.member:null;this._validate.validateProperty(b,d,f,c,h?h[1]:null);g(a,f,b)[b]=[d,f]};b.buildGetterSetter=function(a,c,b,d,f,h,r,s,j){c=e(a,b,j);this._validate.validateGetterSetter(b,{},h,c,c&&c.get?c.get.___$$keywords$$:null);if(d)d=this._overrideMethod(null,d,r,s),d.___$$keywords$$=h;Object.defineProperty(g(a,h,b),b,{get:d,set:f?this._overrideMethod(null,f,r,s):f,enumerable:!0,configurable:!1})};b._createProxy=function(a,c,b,d,e){return this._wrapProxy.wrapMethod(a,
null,b,c,d,e)};b._overrideMethod=function(a,c,b,d){var e=null,e=(a?this._wrapOverride:this._wrapMethod).wrapMethod(c,a,d,b||function(){});h.defineSecureProp(e,"__length",c.__length||c.length);return e};b._getVisibilityValue=function(a){return a["protected"]?1:a["private"]?2:0};b.end=function(a){this._validate&&this._validate.end(a)}})(k.MemberBuilder={},".");(function(d){var f=d.exports={};d.exports=f=function(a){if(!(this instanceof d.exports))return new d.exports(a);this._warningHandler=a||function(){}};
f.prototype._initState=function(a){if(a.__vready)return a;a.warn={};a.__vready=!0;return a};f.prototype.end=function(a){for(var d in a.warn){var c=a.warn[d],e;for(e in c)this._warningHandler(c[e])}a.__vready=!1};f.prototype.validateMethod=function(a,d,c,e,b,f){this._initState(f);var n=e?e.member:null;if(c["abstract"]&&c["private"])throw TypeError("Method '"+a+"' cannot be both private and abstract");if(c["const"])throw TypeError("Cannot declare method '"+a+"' as constant; keyword is redundant");if(c.virtual&&
c["static"])throw TypeError("Cannot declare static method '"+a+"' as virtual");if(e&&(e.get||e.set))throw TypeError("Cannot override getter/setter '"+a+"' with method");if(c.proxy){if("string"!==typeof d)throw TypeError("Cannot declare proxy method '"+a+"'; string value expected");if(c["abstract"])throw TypeError("Proxy method '"+a+"' cannot be abstract");}if(n){if(b["private"])throw TypeError("Private member name '"+a+"' conflicts with supertype");if("function"!==typeof n)throw TypeError("Cannot override property '"+
a+"' with method");if(c.override&&!b.virtual){if(!c["abstract"])throw TypeError("Cannot override non-virtual method '"+a+"'");if(!b["abstract"])throw TypeError("Cannot perform abstract override on non-abstract method '"+a+"'");}if(c["abstract"]&&!c.weak&&!b["abstract"])throw TypeError("Cannot override concrete method '"+a+"' with abstract method");e=void 0===n.__length?n.length:n.__length;d=void 0===d.__length?d.length:d.__length;c.proxy&&(d=NaN);c.weak&&!b["abstract"]&&(n=e,e=d,d=n);if(d]"}:function(){return"[object Interface]"}}
d.exports={};var h=l(f+"/util"),k=l(f+"/MethodWrapperFactory"),v=l(f+"/MethodWrappers").standard,x=l(f+"/MemberBuilder")(k(v.wrapNew),k(v.wrapOverride),k(v.wrapProxy),l(f+"/MemberBuilderValidator")());l(f+"/class");d.exports=function(a,b){var d=null;switch(typeof a){case "object":d=g.apply(null,arguments);break;case "string":d=c.apply(null,arguments);break;default:throw TypeError("Expecting anonymous interface definition or named interface definition");}return d};d.exports.extend=function(){return q.apply(this,
arguments)};d.exports.isInterface=function(b){b=b||{};return b.prototype instanceof a?!0:!1};var q=function(c){function d(a){return function(){if(!c)throw Error("Interface "+(a?a+" ":"")+" cannot be instantiated");}}return function(){c=!0;var f=Array.prototype.slice.call(arguments),g=f.pop()||{},f=new (f.pop()||a),k="",j={},i=x.initMembers(f,f,f);(k=g.__name)&&delete g.__name;if(!(f instanceof a))throw new TypeError("Interfaces may only extend other interfaces");var l=d(k);try{h.propParse(g,{assumeAbstract:!0,
property:function(){throw TypeError("Unexpected internal error");},getset:function(){throw TypeError("Unexpected internal error");},method:function(a,b,c,d){if(d["protected"]||d["private"])throw TypeError(k+" member "+a+" must be public");x.buildMethod(i,null,a,b,d,null,0,{},j)}})}catch(n){throw n.message="Failed to define interface "+(k?k:"(anonymous)")+": "+n.message,n;}e(l);b(l,k);l.prototype=f;l.constructor=l;h.freeze(l);c=!1;return l}}(!1)})(k["interface"]={},".");(function(d){d.exports={};var f=
[0,2,0,""];f.major=0;f.minor=2;f.rev=0;f.suffix="";f.toString=function(){return this.join(".").replace(/\.([^.]*)$/,"-$1").replace(/-$/,"")};d.exports=f})(k.version={},".");z.Class=k["class"].exports;z.AbstractClass=k.class_abstract.exports;z.FinalClass=k.class_final.exports;z.Interface=k["interface"].exports;z.version=k.version.exports})(easejs);