-
Notifications
You must be signed in to change notification settings - Fork 36
/
jsio_compile
executable file
·105 lines (105 loc) · 335 KB
/
jsio_compile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/env node
jsio=function init(p){function v(a){a+=".js";return e.__modules[a]||new y(a)}function y(a){this.friendlyPath=this.path=a;h.splitPath(a,this);this.directory=h.resolve(l.getCwd(),this.directory)}function N(){var a=module.constructor,b=module.parent,c=h.bind(b,b&&b.require||require),d=c("fs"),f=c("path"),e=c("vm");this.requireCache=require.cache;this.main=require.main;this.name="node";this.global=global;var k=process.cwd();this.setCwd=function(a){k=f.resolve(k,a)};this.getCwd=function(){return k};this.pathSep=
f.sep;this.log=function(){var a;try{a=Array.prototype.map.call(arguments,function(a){return a instanceof Error&&a.message?"Error:"+a.message+"\nStack:"+a.stack+"\nArguments:"+a.arguments:"string"==typeof a?a:JSON.stringify(a)}).join(" ")+"\n"}catch(b){a=Array.prototype.join.call(arguments," ")+"\n"}process.stderr.write(a);return a};this.getPath=function(){return __dirname};this.eval=function(a,b){return e.runInThisContext(a,b,!0)};this.fetch=function(a){a=h.resolve(this.getCwd(),a);var b,c,e;try{var g=
f.dirname(a);b=f.basename(a);c=b.toLowerCase();e=d.readdirSync(g)}catch(k){return!1}for(var g=0,s;s=e[g];++g)if(s.toLowerCase()==c&&s!=b)throw"Invalid case when importing ["+a+"]. You probably meant"+s;try{return d.readFileSync(a,"utf8")}catch(l){return!1}};var s=/\((?!module.js)(?:file:\/\/)?(.*?)(:\d+)(:\d+)\)/g;this.loadModule=function(b,d,e,g,k){if("<initial file>"==e&&!k.initialImport){var h=Error().stack,l;s.lastIndex=0;do l=s.exec(h);while(l&&/jsio\.js$/.test(l[1]));l&&(d=f.dirname(l[1]),
e=f.basename(l[1]))}try{return b(null,d,e,g,k)}catch(n){if("MODULE_NOT_FOUND"==n.code){d=f.join(d,e);b=this.requireCache[d];b||(b=new a(d),b.filename=d,b.paths=a._nodeModulePaths(f.dirname(d)));d=g.original||g.from;try{return{exports:b?b.require(d):c(d),path:g.from}}catch(w){if("MODULE_NOT_FOUND"==w.code)throw n;throw w;}}else throw n;}}}function D(){var a=window.XMLHttpRequest||function(){return new ActiveXObject("Msxml2.XMLHTTP")},b=null,c=null,d=Array.prototype.join;this.name="browser";this.global=
window;this.pathSep="/";this.global.jsio||(this.global.jsio=e);window.console&&console.log?!console.log.apply||/Android|iPhone|iPad|iPod/.test(navigator.userAgent)?this.log=function(){var a=d.call(arguments," ");console.log(a);return a}:this.log=function(){console.log.apply(console,arguments);return d.call(arguments," ")}:this.log=function(){return d.call(arguments," ")};this.getCwd=function(){if(!b){var a=window.location,c=a.pathname;b=a.protocol+"//"+a.host+c.substring(0,c.lastIndexOf("/")+1)}return b};
this.getPath=function(){if(!c){try{for(var a=new RegExp("(.*?)"+e.__filename+"(\\?.*)?$"),b=document.getElementsByTagName("script"),d=0,f;f=b[d];++d){var g=f.src.match(a);if(g){c=g[1];/^[A-Za-z]*:\/\//.test(c)&&(c=h.relative(this.getCwd(),c));break}}}catch(k){}c||(c=".")}return c};var f=location.protocol+"//"+location.host+"/",g=location.pathname;this.debugPath=function(a){return h.buildPath(f,"/"!=a[0]&&g,a)};var k="undefined"==typeof eval("(function(){})")?function(a,b){return(new Function("return "+
a))()}:function(a,b){return window.eval(a+"\n//@ sourceURL="+b)};this.eval=function(a,b,c){try{return k(a,this.debugPath(b))}catch(d){throw d instanceof SyntaxError&&this.checkSyntax&&this.checkSyntax(c,b),d;}};this.checkSyntax=function(a,b){try{e("import jsio.util.syntax",{suppressErrors:!0,dontExport:!0})(a,b)}catch(c){}};this.fetch=function(b){var c=new a;try{c.open("GET",b,!1),c.send(null)}catch(d){return l.log("e:",d),!1}return 404==c.status||-1100==c.status?!1:c.responseText}}function G(){return B.map(function(a,
b){var c=0==b?Error().stack:B[b-1].stack,d=c.indexOf(a.path);0<=d&&(a.line=":"+parseInt(c.substring(d+a.path.length+1)));return b+1+': "'+a.friendlyPath+'" '+a.path+(a.line||"")})}function H(a,b,c,d,f){a=d.from;c=h.resolveModulePath(a,b);for(var g=0;c[g];++g){var k=c[g].path;if(!f.reload&&k in e.__modules)return c[g];k in I&&c.splice(g--,1)}if(!c.length){if(f.suppressErrors)return!1;b=Error("Could not import `"+d.from+"`\tImport Stack:\n\t\t"+G().join("\n\t\t"));b.jsioLogged=!0;b.code="MODULE_NOT_FOUND";
throw b;}a:{for(var s,g=0;d=c[g];++g){k=d.path;if(s=t[k]){g=k.match(/^(.*\/)[^\\\/]+$/);d.directory=g&&g[1]||"";d.src=s.src;d.pre=!0;break a}s=l.fetch(k);if(!1!==s){d.src=s;break a}else I[k]=!0}d=!1}if(!d){if(f.suppressErrors)return!1;f=[];for(g=0;b=c[g];++g)f.push(b.path);b=Error("Could not import `"+a+"`\n\tlooked in:\n\t\t"+f.join("\n\t\t")+"\n\tImport Stack:\n\t\t"+G().join("\n\t\t"));b.code="MODULE_NOT_FOUND";throw b;}d.friendlyPath=a;!d.baseMod||d.baseMod in n.cache||(n.cache[d.baseMod]=d.basePath);
"base"==a||!f.reload&&(f.dontPreprocess||d.pre)||(d.pre=!0,E(b,d,["import","inlineSlice"],f));f.preprocessors&&E(b,d,f.preprocessors,f);return d}function E(a,b,c,d){for(var f=0,g=c.length;f<g;++f){var k;k=c[f];var h=e.__modules["jsio.preprocessors."+k];(k="function"==typeof k?k:h&&h.exports||O("import jsio.preprocessors."+k))&&"function"==typeof k&&k(a,b,d)}}function J(a,b){var c=b.src;delete b.src;var d="(function(_){with(_){delete _;return function $$"+b.friendlyPath.replace(/[\:\\\/.-]/g,"_")+
"(){"+c+"\n}}})",f=b.exports=a.exports,c=l.eval(d,b.path,c),c=c(a);c.call(f);b.exports=f!=a.module.exports?a.module.exports:a.exports}function P(a,b,c,d){a||(a={});a.exports||(a.exports={});a.jsio=h.bind(this,x,a,c.directory,c.filename);a.require=function(b,c){c||(c={});c.dontExport=!0;return a.jsio(b,c)};a.require.main=l.main;a.module={id:b,exports:a.exports};d||"jsio.base"==b||(a.jsio("from jsio.base import *",{dontPreprocess:!0}),a.logging.__create(b,a));a.jsio.__jsio=e;a.jsio.__env=e.__env;a.jsio.__dir=
c.directory;a.jsio.__filename=c.filename;a.jsio.path=n;a.__dirname=c.directory;a.__filename=h.buildPath(a.__dirname,c.filename);return a}function x(a,b,c,d,f){f=f||{};b=b||"./";c=c||"<initial file>";a=f.exportInto||a||l.global;for(var g=f,k=e.__cmds,h=[],n=!1,q=0,m;(m=k[q])&&!(n=m(a,d,g,h));++q);if(!0!==n)throw new ("undefined"!=typeof SyntaxError?SyntaxError:Error)(String(n||"invalid jsio command: jsio('"+d+"')"));g=h.length;k=1<g?{}:null;for(n=0;n<g;++n){m=h[n];var q=m.from,p=e.__modules,v,r,t;
try{r=e.__env.loadModule(H,b,c,m,f)}catch(y){t=y}if(r)v=r.path;else if(!1===r)return!1;if(t){if(f.suppressErrors)return!1;t.jsioLogged||(l.log("\nError loading module:\n"," [[",d,"]]\n"," requested by:",b+c,"\n"," current directory:",e.__env.getCwd(),"\n"," "+t.stack.split("\n").join("\n ")),t.jsioLogged=!0);throw t;}r&&B.push({friendlyPath:r.friendlyPath,path:r.path,stack:Error().stack});v in p||(p[v]=r);if(!r.exports){q=P(f.context,q,r,m.dontAddBase);if(m.dontUseExports){var w=[";(function(){"],
u=1,z;for(z in m["import"])q.exports[z]=void 0,w[u++]="if(typeof "+z+'!="undefined"&&exports.'+z+"==undefined)exports."+z+"="+z+";";w[u]="})();";r.src+=w.join("")}J(q,r)}B.pop();q=r.exports;1==g&&(k=q);if(!f.dontExport)if(m.as){m=m.as.match(/^\.*(.*?)\.*$/)[1];for(var p=m.split("."),w=p.length-1,A=a,u=0;u<w;++u){var x=p[u];x&&(A[x]||(A[x]={}),A=A[x])}A[p[w]]=q;1<g&&(k[m]=q)}else if(m["import"])if(m["import"]["*"])for(u in p[v].exports)a[u]=q[u];else for(u in m["import"])a[m["import"][u]]=q[u]}return k}
var K=Array.prototype.slice,l,L=/(\/|\\)$/;y.prototype.setBase=function(a,b){this.baseMod=a;this.basePath=b+"/"+a};var Q=/^([a-z][a-z0-9+\-\.]*:\/\/.*?\/)(.*)$/,M=/^[a-z][a-z0-9+\-\.]*:/,h={bind:function(a,b){var c=K.call(arguments,2);return function(){b="string"==typeof b?a[b]:b;return b.apply(a,c.concat(K.call(arguments,0)))}},addEndSlash:function(a){return L.test(a)?a:a+"/"},removeEndSlash:function(a){return a.replace(L,"")},relative:function(a,b){var c=a.length;if(b.substring(0,c)==a)return b.slice(c+
/[\/\\]/.test(b.charAt(c)));for(var c=h.removeEndSlash(b).split(l.pathSep),d=h.removeEndSlash(a).split(l.pathSep),f=0;c[f]==d[f];)++f;if(f)for(b=c.slice(f).join(l.pathSep),c=d.length-f;0<c;--c)b="../"+b;return b},buildPath:function(){for(var a=[],b=0,c=arguments.length;b<c;++b){var d=arguments[b];M.test(d)&&(a.length=0);"."!=d&&"./"!=d&&d&&a.push(d)}return h.resolveRelativePath(a.join("/"))},resolveRelativePath:function(a){var b=a.match(Q);b&&(a=b[2]);for(a=a.replace(/\/+/g,"/").replace(/\/\.\//g,
"/");a!=(a=a.replace(/(^|\/)(?!\.?\.\/)([^\/]+)\/\.\.\//g,"$1")););return b?b[1]+a.replace(/^\//,""):a},isAbsolutePath:function(a){return/^\//.test(a)||M.test(a)},resolve:function(a,b){return this.isAbsolutePath(b)?h.resolveRelativePath(b):h.buildPath(a,b)},resolveRelativeModule:function(a,b){for(var c=[],d=a.split("."),f=d.length,e=1<f&&!d[0],k=e?0:-1;++k<f;)c.push(d[k]?d[k]:"..");return h.buildPath(e?b:"",c.join("/"))},resolveModulePath:function(a,b){if("."==a.charAt(0))return[v(h.resolveRelativeModule(a,
b)),v(h.resolveRelativeModule(a+".index",b))];for(var c=a.split("."),d=c.length;0<d;--d){var e=c.slice(0,d).join("."),g=n.cache[e],e=c.slice(d).join("/");if(g)return[v(h.buildPath(g,e)),v(h.buildPath(g,e+"/index"))]}for(var g=c[0],e=c.join("/"),c=[],k=n.get(),l=k.length,d=0;d<l;++d){var p=k[d],q=h.buildPath(p,e),m=v(q);m.setBase(g,p);c.push(m);m=v(q+"/index");m.setBase(g,p);c.push(m)}return c},splitPath:function(a,b){b||(b={});var c=a.lastIndexOf("/")+1;b.directory=a.substring(0,c);b.filename=a.substring(c);
return b}},e=h.bind(this,x,null,null,null);e.__util=h;e.__init__=init;var t;e.setCache=function(a){t=e.__srcCache=a};e.setCache(p&&p.__srcCache||{});e.setCachedSrc=function(a,b,c){t[a]&&t[a].locked?console.warn("Cache is ignoring (already present and locked) src "+a):t[a]={path:a,src:b,locked:c}};e.getCachedSrc=function(a){return t[a]};e.__filename="jsio.js";e.__cmds=[];e.__jsio=e;e.__require=x;e.__modules={preprocessors:{}};var n={set:function(a){this.value=[];("string"==typeof a?[a]:a).map(this.add,
this)},get:function(){return n.value.slice(0)},add:function(a){if(2==arguments.length){var b=arguments[0],c=h.resolve(l.getCwd(),arguments[1]);this.cache[b]=c}else{a=h.resolve(l.getCwd(),a);for(var b=n.value,c=b.length,d=0;d<c;++d)if(b[d]==a)return;b.push(a)}},remove:function(a){for(var b=n.value,c=b.length,d=0;d<c;++d)b[d]==a&&b.splice(d,1)},value:[],cache:{}};e.path=n;e.addPath=h.bind(n,"add");e.addCmd=h.bind(e.__cmds,"push");e.setEnv=function(a){!a&&p?l=new p.__env.constructor(h):("string"==typeof a&&
(a={node:N,browser:D}[a]||D),l=new a(h));this.__env=l;this.__dir=l.getCwd();l.loadModule||(l.loadModule=H);e.path.cache.jsio=p?p.path.cache.jsio:l.getPath();a==D&&e.path.set(l.getPath())};p?e.setEnv():"undefined"!==typeof JSIO_ENV_CTOR?e.setEnv(JSIO_ENV_CTOR):"undefined"!==typeof process&&process.version?e.setEnv("node"):"undefined"==typeof XMLHttpRequest&&"undefined"==typeof ActiveXObject||e.setEnv("browser");e.main=l&&l.main;var F,O=function(a){F||(F=h.bind(this,x,{},l.getPath(),"jsio.js"));return F(a,
{dontExport:!0,dontPreprocess:!0})},I={},B=[];e.addCmd(function(a,b,c,d){if(a=b.match(/^\s*(from|external)\s+([\w.\-$]+)\s+(import|grab)\s+(.*)$/))return d.push({from:a[2],dontAddBase:"external"==a[1],dontUseExports:"grab"==a[3]||"external"==a[1],"import":{}}),a[4].replace(/\s*([\w.\-$*]+)(?:\s+as\s+([\w.\-$]+))?/g,function(a,b,c){d[0]["import"][b]=c||b}),!0});e.addCmd(function(a,b,c,d){if(a=b.match(/^\s*import\s+(.*)$/))return a[1].replace(/\s*([\w.\-$]+)(?:\s+as\s+([\w.\-$]+))?,?/g,function(a,b,
c){d.push(c?{from:b,as:c}:{from:b,as:b})}),!0});e.addCmd(function(a,b,c,d){if(a=b.match(/^\s*[\w.0-9$\/\-:\\]+\s*$/))return a=h.resolveRelativePath(a[0]),c="."==a.charAt(0),a=a.replace(/\.\.\//g,".").replace(/\.\//g,"").replace(/\/+$/g,""),"\\"===l.pathSep&&a.match(/^[a-zA-Z]:.*/)||(a=a.replace(/\//g,".")),d[0]={from:(c?".":"")+a,original:b},!0});e.install=function(){e("from .base import *");GLOBAL.logger=logging.get("jsiocore")};e.eval=function(a,b){b=l.getCwd()||"/";var c=new y(b);c.src=a;E(b,c,
["import","cls"],{});J(l.global,c)};e.clone=h.bind(null,init,e);var C=h.resolveModulePath("jsio")[0];C&&(e.__modules[C.path]=new y(C.path),e.__modules[C.path].exports=e);return e}();jsio.path.set([]);jsio.path.cache={jsio:"./",jsio_compile:"../compilers/jsio_compile"};
jsio.setCache({"../compilers/jsio_compile/node_interface.js":{path:"../compilers/jsio_compile/node_interface.js",friendlyPath:"jsio_compile.node_interface",directory:"../compilers/jsio_compile",filename:"node_interface.js",pre:!0,src:'jsio("import jsio.util.optparse as optparse");jsio("import .optsDef");var fs=require("fs"),path=require("path");try{var crypto=require("crypto")}catch(e$$12){}var closurePath="";(function(){var a=require("path"),a=a.join(a.dirname(jsio.__filename),"compiler","compiler.jar");fs.existsSync(a)&&(closurePath=a)})();exports.logger=logger;function findMinifier(a){require("path");fs.existsSync(a)&&(closurePath=a)}\nfunction usage(){optparse.printUsage(\'jsio_compile <initial import>\\n\\t where <initial import> looks like "import .myModule"\',optsDef)}var _compiler;exports.setCompiler=function(a){_compiler=a};exports.run=function(a,c){if(!a){var b=optparse(process.argv,optsDef);a=b.args;c=b.opts}c.help&&(usage(),process.exit());findMinifier(c.closurePath);_compiler.run(a,c)};exports.onError=function(a){usage();jsio.__env.log("\\n"+a.message);process.exit(1)};\nexports.onFinish=function(a,c){a.outputFile?(logger.info("Writing output to",a.outputFile),require("fs").writeFileSync(a.outputFile,c)):(logger.info("Writing output to stdout"),process.stdout.write(c))};\nexports.compress=function(a,c,b,f){var d;if(closurePath){if(b.compressorCachePath&&a)try{var g=(/^\\.\\//.test(a)?"R-"+a.substring(2):"A-"+a).replace(/\\.\\.\\//g,"--U--").replace(/\\//g,"---");d=path.join(b.compressorCachePath,g);if(crypto){var k=crypto.createHash("md5");k.update(c);var e=k.digest("hex")}else e=""+fs.statSync(a).mtime;if(fs.existsSync(d)){var h=fs.readFileSync(d,"utf8"),l=h.indexOf("\\n"),m=h.substring(0,l);logger.debug(d,"current:",e,"cached:",m);if(e==m){f(h.substring(l+1));return}}}catch(q){logger.error(q)}a=\nrequire("child_process").spawn;g=["-jar",closurePath||"jsio_minify.jar","--compilation_level","SIMPLE_OPTIMIZATIONS"];b.noIE&&g.push("--jscomp_off=internetExplorerChecks");b=a("java",g);var n=[],p=[];b.stdout.on("data",function(a){n.push(a)});b.stderr.on("data",function(a){p.push(a)});b.on("exit",function(a){if(0==a){a=n.join("");try{d&&(logger.debug("updating cache for",d,e),fs.writeFileSync(d,e+"\\n"+a))}catch(b){logger.error(b)}f(a)}else(a=p.join(""))&&logger.error(a),f(c)});b.stdin.write(c);b.stdin.end()}else f(c)};\n'},"util/optparse.js":{path:"util/optparse.js",
friendlyPath:"jsio.util.optparse",directory:"util/",filename:"optparse.js",pre:!0,src:'jsio("import .jsonSchema");jsio("import ..lib.Enum");function ERROR(e){logger.error(e);process.exit(1)}function addAlso(e,d,b){"string"==typeof d?e[d]=b:isArray(d)?d.forEach(function(a){e[a]=b}):logger.warn("Key specified in option",e.name,"is invalid. Ignoring:",d)}var truthyValues=lib.Enum("true","1","yes"),falsyValues=lib.Enum("false","0","no");\nfunction addArg(e,d,b,a){var c,g=b[a];d=d[b[a]];var h=b.length,f=d&&d.type&&d.type.toLowerCase();++a;switch(f){case "boolean":"undefined"==typeof b[a]?(c=!0,--a):b[a].toLowerCase()in truthyValues?c=!0:b[a].toLowerCase()in falsyValues?c=!1:(c=!0,--a);break;case "int":case "integer":c=parseInt(b[a]);break;case "float":case "double":case "number":c=parseFloat(b[a]);break;case "array":case "object":for(f=b[a];;){try{c=eval("("+f+")");break}catch(k){}++a;a>=h&&ERROR(\'Could not parse "\'+g+\'": \'+d.type+\n"\\n"+f+"\\n"+JSON.stringify(b));f+=b[a]}break;default:c=b[a]}h=jsonSchema.validate(c,d);if(h.valid)return e[d.name]=c,a+1;e=[];for(c=0;f=h.errors[c];++c)e.push("\\n\\t\\t"+(f.property?f.property+": ":"")+f.message);ERROR("\\n"+g+": provided value "+b[a]+"\\n\\t"+d.name+" option:"+e.join(""))}\nexports=function(e,d){var b=merge({},d),a={},c;for(c in b){var g=b[c];"default"in g&&(a[g.name]=g["default"]);var h=g.also;if(h)if(isArray(h))for(var f=0,k=h.length;f<k;++f)addAlso(b,h[f],g);else addAlso(b,h,g)}g=[];c=0;for(k=e.length;c<k;)e[c]in b?c=addArg(a,b,e,c):(g.push(e[c]),c++);return{args:g,opts:a}};\nexports.printUsage=function(e,d){jsio("import ..util.wordWrap");var b=jsio.__env.log;b("Usage:");b("\\t"+e);b("Options:");for(var a in d){var c=[a];d[a].also&&(isArray(d[a].also)?c=c.concat(d[a].also):c.push(d[a].also));b("\\t"+c.join(", "));d[a].description&&b(util.wordWrap(d[a].description,80,"\\t\\t"))}};\n'},
"util/jsonSchema.js":{path:"util/jsonSchema.js",friendlyPath:".jsonSchema",directory:"util/",filename:"jsonSchema.js",pre:!0,src:'exports={validate:validate,checkPropertyChange:function(b,a,f){return validate(b,a,f||"property")}};var gCheckPropChange=!1;function validate(b,a,f){gCheckPropChange=f;a=a?checkProp(b,a,"",f||""):[];!f&&b&&b.$schema&&checkProp(b,b.$schema,"","",a);return{valid:!a.length,errors:a}}\nfunction checkProp(b,a,f,d,e){function c(a){e.push({property:f,message:a})}e||(e=[]);f+=f?"number"==typeof d?"["+d+"]":"undefined"==typeof d?"":"."+d:d;var g=typeof a,h="function"==g;if(("object"!=g||Array.isArray(a))&&(f||!h))return h?b instanceof a||c("is not an instance of the class/constructor "+a.name):a&&c("Invalid schema/property definition "+a),e;gCheckPropChange&&a.readonly&&c("is a readonly field, it can not be changed");a["extends"]&&checkProp(b,a["extends"],f,d,e);if(void 0===b)a.optional||\nc("is missing and it is not optional");else if(e=e.concat(checkType(a.type,b)),a.disallow&&!checkType(a.disallow,b).length&&c(" disallowed value was matched"),null!==b){if(Array.isArray(b)){if(a.items)if(Array.isArray(a.items))for(d=0,g=b.length;d<g;d++)e.concat(checkProp(b[d],a.items[d],f,d,e));else for(d=0,g=b.length;d<g;d++)e.concat(checkProp(b[d],a.items,f,d,e));a.minItems&&b.length<a.minItems&&c("There must be a minimum of "+a.minItems+" in the array");a.maxItems&&b.length>a.maxItems&&c("There must be a maximum of "+\na.maxItems+" in the array")}else a.properties&&e.concat(checkObj(b,a.properties,f,a.additionalProperties,e));a.pattern&&"string"==typeof b&&!b.match(a.pattern)&&c("does not match the regex pattern "+a.pattern);a.maxLength&&"string"==typeof b&&b.length>a.maxLength&&c("may only be "+a.maxLength+" characters long");a.minLength&&"string"==typeof b&&b.length<a.minLength&&c("must be at least "+a.minLength+" characters long");void 0!==typeof a.minimum&&typeof b==typeof a.minimum&&a.minimum>b&&c("must have a minimum value of "+\na.minimum);void 0!==typeof a.maximum&&typeof b==typeof a.maximum&&a.maximum<b&&c("must have a maximum value of "+a.maximum);if(a["enum"]){d=a["enum"];for(var k,g=d.length,h=0;h<g;h++)if(d[h]===b){k=1;break}k||c("does not have a value in the enumeration "+d.join(", "))}"number"==typeof a.maxDecimal&&b.toString().match(new RegExp("\\\\.[0-9]{"+(a.maxDecimal+1)+",}"))&&c("may only have "+a.maxDecimal+" digits of decimal places")}return e}\nfunction checkObj(b,a,f,d,e){if("object"==typeof a){("object"!=typeof b||Array.isArray(b))&&e.push({property:f,message:"an object is required"});for(var c in a)if(a.hasOwnProperty(c)&&("_"!=c.charAt(0)||"_"!=c.charAt(1))){var g=b[c];checkProp(g,a[c],f,c,e)}}for(c in b)!b.hasOwnProperty(c)||"_"==c.charAt(0)&&"_"==c.charAt(1)||!a||a[c]||!1!==d||e.push({property:f,message:typeof g+"The property "+c+" is not defined in the schema and the schema does not allow additional properties"}),g=a&&a[c]&&a[c].requires,\n!g||g in b||e.push({property:f,message:"the presence of the property "+c+" requires that "+g+" also be present"}),g=b[c],!a||"object"!=typeof a||c in a||checkProp(g,d,f,c,e),!gCheckPropChange&&g&&g.$schema&&(e=e.concat(checkProp(g,g.$schema,f,c,e)));return e}\nfunction checkType(b,a,f){if(b){var d=typeof a;if("string"==typeof b){b=b.toLowerCase();switch(b){case "any":break;case "array":if(!Array.isArray(a))return[{property:path,message:"expected an array, but "+d+" found instead"}];break;case "integer":case "int":break;case "float":case "double":case "number":b="number";default:if(d!=b)return[{property:path,message:"expected "+b+", but "+d+" found instead"}]}return[]}if(Array.isArray(b)){for(var d=[],e=0;e<b.length;e++){var c=checkType(b[e],a,f);if(!c.length)return[];\nd=d.concat(c)}return d}if("object"==typeof b)return checkProp(a,b,path)}return[]};\n'},
"lib/Enum.js":{path:"lib/Enum.js",friendlyPath:"..lib.Enum",directory:"lib/",filename:"Enum.js",pre:!0,src:'exports=function(){if(1==arguments.length){if("object"==typeof arguments[0]){var b=arguments[0],a;for(a in b)b[a]in b||(b[b[a]]=a);return b}"string"!=typeof arguments[0]&&(c=arguments[0])}if(!c)var c=arguments;b={};a=0;for(var d=c.length;a<d;++a)c[a]&&(b[c[a]]=a+1),b[a+1]=c[a];return b};\n'},"util/wordWrap.js":{path:"util/wordWrap.js",friendlyPath:"..util.wordWrap",directory:"util/",filename:"wordWrap.js",
src:'exports=function(b,d,c,g){function m(){e[f]=c+a.str.join(" ");++f}c=c||"";d-=exports.getLengthWithTabs(c,g);if(!d)return c+b;b=b.split(" ");g=b.length;for(var e=[{str:[],len:0}],f=0,a=e[f],h=0;h<g;++h){var k=b[h],l=k.length;a.len&&a.len+l+1>d?(m(),a=e[f]={str:[k],len:l}):(a.str.push(k),a.len&&a.len++,a.len+=l)}a.len?m():e.pop();return e.join("\\n")};exports.getLengthWithTabs=function(b,d){var c=0;b=b.replace(/\\t/g,function(){++c});return b.length+c*(d||8)};\n',pre:!0},"../compilers/jsio_compile/optsDef.js":{path:"../compilers/jsio_compile/optsDef.js",
friendlyPath:".optsDef",directory:"../compilers/jsio_compile",filename:"optsDef.js",pre:!0,src:'exports={"-g":{also:"--compressResult",name:"compressResult",type:"boolean",description:"Compress final output with Google\'s Closure Compiler"},"-c":{also:"--compress",name:"compressSources",type:"boolean","default":!1,description:"Compress individual source files with Google\'s Closure Compiler"},"--cwd":{name:"cwd",description:"sets the current working directory"},"--pathCache":{name:"pathCache",type:"object"},"--closure":{name:"closurePath",type:"string",description:"Path to closure.jar, if using compression (default: cwd)"},\n"--environment":{name:"environment",type:"string",description:"runtime environment to target"},"-d":{also:"--debug",name:"debug",type:"integer",minimum:0,maximum:5,constants:{DEBUG:1,LOG:2,INFO:3,WARN:4,ERROR:5},description:"Turn on the compiler logger. A value of i logs all levels i and higher. 1: DEBUG, 2: LOG, 3: INFO, 4: WARN, 5: ERROR"},"--dynamic":{name:"dynamicImports",type:"object",description:"Specify dynamic jsio imports"},"-p":{name:"package",also:"--package",type:"object",description:"Specifies a package file. The compiler looks for configuration parameters from the command line as well as the package file. Command line options have precedence over package settings provided in the package file."},\n"--no-ie":{name:"noIE",also:"--noIE",type:"boolean","default":!1,description:"Disables IE checks like trailing commas"},"-j":{name:"jsioPath",type:"string",also:["--jsio","--jsioPath"],description:"Provides an alternative path for jsio. This path must contain the file \'jsio.js\'. The compiler contains a copy of jsio, so this is optional (can be used to compile against custom versions of jsio)."},"--path":{name:"path",type:"array",description:"Provide extra paths (follow --path with a JSON literal array of strings)"},\n"-o":{name:"outputFile",type:"string",also:"--output",description:"The filename to write the compiled code to. Defaults to stdout (prints to the console)."},"--includeJsio":{name:"includeJsio",type:"boolean","default":!0,description:"(advanced option) Defaults to true. Set to false to exclude jsio from the resulting source. Setting to false enables --preserveJsioSource."},"--appendImport":{name:"appendImport",type:"boolean","default":!0,description:"Defaults to true. When true, the import statement passed to the compiler is appended to the end of the file."},\n"--compressorCachePath":{name:"compressorCachePath",type:"string",description:"Provide a path to cache compressed source."},"--help":{type:"boolean",description:"prints this help message"}};\n'},
"preprocessors/compiler.js":{path:"preprocessors/compiler.js",friendlyPath:"jsio.preprocessors.compiler",directory:"preprocessors/",filename:"compiler.js",pre:!0,src:'var path=require("jsio/util/path"),JSIO=jsio.__jsio,gSrcTable={},gDynamicList={},gCompilerOpts={};function testComment(a){return!/\\/\\//.test(a[1])}\nexports=function(a,b,c){if(!gSrcTable[b.path]){logger.info("compiling",b.path);checkDynamicImports(b);gSrcTable[b.path]=!0;var e=b.path;if(gCompilerOpts.autoDetectPaths)for(logger.debug("detecting paths for",e),c=/^(.*)jsio\\.path\\.add\\s*\\(\\s*([\'"][^\'"]+?[\'"])\\s*\\)/gm;;){var d=c.exec(b.src);if(!d||!testComment(d))break;try{a=d[2],jsio.path.add(eval(a)),logger.info("added path",a)}catch(h){logger.info("failed to add path",a)}}for(var g=/^(.*)jsio\\s*\\(\\s*([\'"].+?[\'"])\\s*(,\\s*\\{[^}]+\\})?\\)/gm;;){d=g.exec(b.src);\nif(!d)break;if(testComment(d)){logger.debug(b.path,"detected",d[0]);c=d[2];var f=d[3]?d[3].substring(1):"";try{c=eval(c)}catch(l){logger.warn("could not compile import from",e+":",c);continue}if(f)try{f=eval("("+f+")")||{}}catch(m){logger.warn("could not parse opts for jsio in",e+":",f)}f||(f={});gCompilerOpts.preprocessors&&(f.preprocessors?gCompilerOpts.preprocessors.forEach(function(a){-1==f.preprocessors.indexOf(a)&&f.preprocessors.push(a)}):f.preprocessors=gCompilerOpts.preprocessors.slice(0));\ntry{run(b,c,f)}catch(n){logger.warn("could not compile import from",e+":",c)}}}for(e=/^(.*)jsio\\s*\\(\\s*DYNAMIC_IMPORT_(.*?)\\s*(,\\s*\\{[^}]+\\})?\\)/gm;;){d=e.exec(b.src);if(!d||!testComment(d))break;c=d[2];try{f=eval(d[3]||"")||{}}catch(p){f={}}if(gCompilerOpts.dynamicImports&&c in gCompilerOpts.dynamicImports)if(d=gCompilerOpts.dynamicImports[c])if(isArray(d))for(var g=0,k;k=d[g];++g)logger.debug("Dynamic import "+c+": "+k),run(b,k,f);else logger.debug("Dynamic import "+c+": "+d),run(b,d,f);else logger.debug("Dynamic import "+\nc+": <nothing>");else logger.error("Missing: import definition\\nConstant",c,"for DYNAMIC_IMPORT_"+c," was not provided to the compiler for ",a,"from",b.path)}gSrcTable[b.path]=merge({},b);delete gSrcTable[b.path].exports}b.src=""};exports.reset=function(){gSrcTable={}};exports.generateSrc=function(a,b){a=merge(a,{compressSources:!1,includeJsio:!0});a.preCompress&&a.preCompress(gSrcTable);var c=bind(this,buildJsio,a,b);a.compressSources?compressTable(gSrcTable,a,c):c()};\nexports.getPathJS=function(){var a=jsio.__env.getCwd(),b={};Object.keys(jsio.path.cache).forEach(function(c){b[c]=replaceSlashes(path.relative(a,jsio.path.cache[c]))||"./"});return"jsio.path.set("+JSON.stringify(jsio.path.get().map(function(b){return replaceSlashes(path.relative(a,b))}))+");jsio.path.cache="+JSON.stringify(b)+";"};function replaceSlashes(a){return a.replace(/\\\\+/g,"/").replace(/\\/{2,}/g,"/")}\nfunction buildJsio(a,b){var c,e;a.includeJsio?(e=jsio.__jsio.__init__.toString(-1),"function"==e.substring(0,8)&&(e="jsio=("+e+")();")):e="";e+=exports.getPathJS();var d=jsio.__env.getCwd(),h={},g;for(g in gSrcTable){var f=replaceSlashes(path.relative(d,g));h[f]=gSrcTable[g];h[f].path=f;h[f].directory=replaceSlashes(path.relative(d,gSrcTable[g].directory))}if(a.includeJsio)logger.info("source include method: jsio.setCache"),c=e+"jsio.setCache("+JSON.stringify(h)+");";else{logger.info("source include method: jsio.setCachedSrc");\ng=[];for(c in h)g.push("jsio.setCachedSrc(\'"+h[c].path+"\',"+JSON.stringify(h[c].src)+");");c=e+g.join("\\n")}a.compressResult&&gCompilerOpts.compressor?(logger.info("compressing final code..."),gCompilerOpts.compressor(null,c,a,b)):b(c)}function compressTable(a,b,c){logger.info("compressing sources");var e=[],d;for(d in a)e.push(d);compressStep(e,a,b,e.pop(),c)}\nfunction compressStep(a,b,c,e,d){e&&gCompilerOpts.compressor?(logger.log("compressing",e+"..."),gCompilerOpts.compressor(e,b[e].src,c,function(h){b[e].src=h;compressStep(a,b,c,a.pop(),d)})):d()}exports.getTable=function(){return gSrcTable};exports.setCompilerOpts=function(a){gCompilerOpts=a;"debugLevel"in a&&logger.setLevel(a.debugLevel);if(a.path)if(isArray(a.path))for(var b=0,c=a.path.length;b<c;++b)jsio.path.add(a.path[b]);else"string"==typeof a.path&&jsio.path.add(a.path)};\nexports.compile=function(a,b){JSIO(a,updateOpts(b))};function run(a,b,c){JSIO.__require({},a.directory,a.filename,b,updateOpts(c))}function updateOpts(a){a=a||{};a.preprocessors?-1==a.preprocessors.indexOf("compiler")&&a.preprocessors.push("compiler"):a.preprocessors=["compiler"];a.reload=!0;a.initialImport=!0;return a}\nfunction checkDynamicImports(a){var b=a.directory;if(!gDynamicList[b]){gDynamicList[b]=!0;logger.info("Checking directory",b,"for dynamic imports... ("+gCompilerOpts.environment+")");var c=path.join(b,"__imports__");if((b=JSIO.__require(null,b,"compiler","./__imports__",{dontExport:!0,suppressErrors:!0}))&&b.resolve){try{var e=b.resolve(gCompilerOpts.environment,gCompilerOpts)}catch(d){throw logger.error("Error running module.resolve for",c,"\\n\\n",d,"\\n\\n"),d;}e&&e.forEach&&e.forEach(function(b){logger.log("dynamic import:",\nb);var d={};gCompilerOpts.preprocessors&&(d.preprocessors=gCompilerOpts.preprocessors.slice(0));try{run(a,"import "+b,d)}catch(e){throw logger.error("module",b,"failed to compile (requested from",c,")\\n\\n"),e;}})}else logger.info("None found.")}};\n'},
"../compilers/jsio_compile/compiler.js":{path:"../compilers/jsio_compile/compiler.js",friendlyPath:"jsio_compile.compiler",directory:"../compilers/jsio_compile",filename:"compiler.js",src:'jsio("import jsio.util.path as path");var JSIO="jsio",J,supportedEnvs={node:!0,browser:!0},_interface=null;exports.start=function(c,a){if(a&&a["interface"])_interface=a["interface"],delete a["interface"];else{J||(J=jsio.__jsio.clone());if(!J.__env.name in supportedEnvs){logger.error("autostart failed: unknown environment.\\n\\n\\tTry using compiler.run(args, opts) instead.");return}_interface=jsio("import ."+J.__env.name+"_interface")}_interface.setCompiler(this);try{_interface.run(c,a)}catch(g){_interface.onError(g)}};\nfunction getPackage(c){try{var a=eval("("+J.__env.fetch(c)+")");logger.info("Package definition loaded from",c);return a}catch(g){logger.log(J.__env.getCwd()),logger.warn(\'If "\'+c+\'" is a package file, it could not be read.\',g)}return!1}exports.setDebugLevel=function(c){logger.setLevel(c);_interface.logger&&_interface.logger.setLevel(c)};\nexports.run=function(c,a){J=jsio.__jsio.clone();a.cwd&&(J.__env.getCwd=function(){return a.cwd});var g="debug"in a?a.debug:5;exports.setDebugLevel(g);var f=JSON.stringify(a,null,"\\t");logger.info("Starting compiler with args: ",c,"and options:",f.substring(1,f.length-1));if(a.jsioPath){J.path.cache.jsio=a.jsioPath;J.__jsio.__init__.toString=function(){return J.__env.fetch(J.__jsio.__util.buildPath(a.jsioPath,"jsio.js"))};var f=J.__jsio.__srcCache,b;for(b in f)delete f[b]}if(a.path){b=0;for(f=a.path.length;b<\nf;++b)a.path[b]&&J.path.add(a.path[b]);delete a.path}if(a.pathCache)for(var e in a.pathCache)J.path.cache[e]=a.pathCache[e];logger.info("js.io path:",JSON.stringify(J.path.get()));var d;/\\.pkg$/.test(c[2])&&(b=getPackage(c[2]),0!=b&&(c.splice(2,1),a["package"]=b));"string"==typeof a["package"]&&/\\.pkg$/.test(a["package"])&&(a["package"]=getPackage(a["package"]));if(a["package"]){b=function(b,c){a[b]=JS.merge(a[b]||{},h[c||b])};e=function(b,c){a[b]=(a[b]||[]).concat(h[c||b])};var h=a["package"];logger.debug(h);\n"root"in h&&(d=h.root,/^\\./.test(d)||(d="."+d),a.appendImport=!0);h.environments&&e("environments");h.transports&&e("transports");h.additional_dependancies&&e("additionalDeps","additional_dependancies");h.dynamicImports&&b("dynamicImports")}2<c.length&&(d=c[2]);if(d){logger.info("dynamic imports: ",a.dynamicImports);a.dynamicImports||(a.dynamicImports={});a.dynamicImports.ENV||(a.dynamicImports.ENV=null);if(a.transports&&a.environments)for(a.dynamicImports.ENV=a.dynamicImports.ENV||[],b=0,e=a.transports.length;b<\ne;++b)for(var f=0,k=a.environments.length;f<k;++f)a.dynamicImports.ENV.push("import net.env."+a.environments[f]+"."+a.transports[b]);if(b=d.match(/^(.*)\\.js$/))d=b[1],"/"!=d.charAt[0]&&"."!=d.charAt[0]&&(d="./"+d);e=J("import jsio.preprocessors.compiler");e.setCompilerOpts({debugLevel:g,compressor:a.compressor||("compress"in _interface?bind(_interface,"compress"):null),defines:a.defines,path:a.path,autoDetectPaths:!0,environment:a.environment,dynamicImports:a.dynamicImports,preprocessors:a.preprocessors,\nrawOpts:a});e.compile("import jsio.base");if(a.additionalDeps)for(g=a.additionalDeps,f=g.length,b=0;b<f;++b)logger.info("compiling dependencies...",g[b]),e.compile(g[b]);logger.info("compiling main program",d);e.compile(d);e.generateSrc(a,function(b){a.appendImport&&(b=b+";"+JSIO+\'("\'+d+\'")\');a.footer&&(b+=a.footer||"");_interface.onFinish(a,b)})}else _interface.onError(Error("No initial import specified"))};\n',
pre:!0},"util/path.js":{path:"util/path.js",friendlyPath:"jsio.util.path",directory:"util/",filename:"path.js",pre:!0,src:'var util=jsio.__jsio.__util;exports.join=util.buildPath;exports.resolveRelativePath=util.resolveRelativePath;exports.splitPath=util.splitPath;exports.relative=util.relative;exports.splitExt=function(a){a=exports.splitPath(a);var b=a.filename.lastIndexOf(".");-1==b?(a.basename=a.filename,a.ext=""):(a.basename=a.filename.substring(0,b),a.ext=a.filename.substring(b));return a};\n'},
"lib/Callback.js":{path:"lib/Callback.js",friendlyPath:"jsio.lib.Callback",directory:"lib/",filename:"Callback.js",pre:!0,src:'exports=Class(function(){this._fired=!1;this._id=0;this._pending=null;this.init=function(){this._run=[]};this.hasFired=this.fired=function(){return this._fired};this.reset=function(){this._args=[];this._fired=!1};this.clear=function(){this.reset();this._run=[];this._stat=this._pending=null};this.forward=function(a){this.run.apply(this,a)};this.run=function(a,b){var c=b?bind.apply(this,arguments):a;c&&(this._fired?c.apply(this,this._args):this._run.push(c));return this};this.runOrTimeout=function(a,\nb,c){if(a||b)if(this._fired)a.apply(this,this._args);else{var d=bind(this,function(){clearTimeout(e);a.apply(this,this._args)});this.run(d);var e=setTimeout(bind(this,function(){for(var a=0,c=this._run.length;a<c;++a)if(this._run[a]==d){this._run.splice(a,1);break}b()}),c)}};this.fire=function(){if(!this._fired){this._fired=!0;var a=this._run;this._args=arguments;for(var b=0,c=a.length;b<c;++b)a[b]&&a[b].apply(this,arguments)}};this.chain=function(a){this._pending||(this._pending={});void 0===a&&\n(a=this._id++);this._pending[a]=!0;this.reset();return bind(this,"_deferred",a)};this._deferred=function(a){this._stat||(this._stat={});if(!this._stat.hasOwnProperty(a)){this._stat[a]=Array.prototype.slice.call(arguments,1);var b=this._pending;delete b[a];for(a in b)if(b.hasOwnProperty(a))return;this.fire(this._stat)}}});\n'},
"lib/Hash.js":{path:"lib/Hash.js",friendlyPath:"jsio.lib.Hash",directory:"lib/",filename:"Hash.js",src:'exports=Class(function(){this.init=function(){this._keys={};this._dict={};this._values={};if(1==arguments.length&&"object"==typeof arguments){var b=arguments[0],a;for(a in b)b.hasOwnProperty(a)&&(this._keys[a]=!0,this._values[a]=b[a])}else for(a=0,b=arguments.length;a<b;a++)this._keys[arguments[a]]=!0,this._values[arguments[a]]=!0};this.contains=function(b){return this._values.hasOwnProperty(b)};this.hasKey=this.containsKey=function(b){return this._keys.hasOwnProperty(b)};this.each=function(b,a){for(var c in keys)this._keys.hasOwnProperty(c)&&\nb.call(a||GLOBAL,c,this._values[c],this)}});\n',
pre:!0},"lib/PubSub.js":{path:"lib/PubSub.js",friendlyPath:"jsio.lib.PubSub",directory:"lib/",filename:"PubSub.js",src:'jsio("from ..std.uuid import uuid");var ctx=jsio.__env.global,SLICE=Array.prototype.slice;\nexports=Class(function(){this.init=function(){};this.publish=function(a){if(this._subscribers){var b=SLICE.call(arguments,1);if(this._subscribers.__any)for(var e=[a].concat(b),d=this._subscribers.__any.slice(0),c=0,f;f=d[c];++c)f.apply(ctx,e);if(!this._subscribers[a])return this;d=this._subscribers[a].slice(0);for(c=0;f=d[c];++c)f.apply(ctx,b)}return this};this.subscribe=function(a,b,e){var d;2==arguments.length?d=b:(d=bind.apply(GLOBAL,SLICE.call(arguments,1)),d._ctx=b,d._method=e);var c=this._subscribers||\n(this._subscribers={});(c[a]||(c[a]=[])).push(d);return this};this.subscribeOnce=function(a,b,e){var d=arguments,c=bind(this,function(){this.unsubscribe(a,c);2==d.length?b.apply(GLOBAL,arguments):bind.apply(GLOBAL,SLICE.call(d,1)).apply(GLOBAL,arguments)});3<=d.length&&(c._ctx=b,c._method=e);return this.subscribe(a,c)};this.unsubscribe=function(a,b,e){if(!this._subscribers||!this._subscribers[a])return this;a=this._subscribers[a];for(var d=0,c;c=a[d];++d)c!=b&&(c._ctx!=b||e&&c._method!=e)||a.splice(d--,\n1);return this};this.listeners=function(a){this._subscribers=this._subscribers?this._subscribers:{};return this.hasOwnProperty.call(this._subscribers,a)?this._subscribers[a]:this._subscribers[a]=[]};this.addListener=this.on=function(a,b){this.listeners(a).length+1>this._maxListeners&&0!==this._maxListeners&&"undefined"!==typeof console&&console.warn("Possible EventEmitter memory leak detected. "+this._subscribers[a].length+" listeners added. Use emitter.setMaxListeners() to increase limit.");this.emit("newListener",\na,b);return this.subscribe(a,this,b)};this.once=function(a,b){return this.subscribeOnce(a,this,b)};this.removeListener=function(a,b){this.unsubscribe(a,this,b);return this};this.removeAllListeners=function(a){if(this._subscribers)for(var b in this._subscribers)null!=a&&a!=b||delete this._subscribers[b];return this};this.emit=function(a){this.publish.apply(this,arguments);return 0<this.listeners(a).length};this._maxListeners=10;this.setMaxListeners=function(a){this._maxListeners=a};this.hasListeners=\nfunction(a){return this._subscribers&&this._subscribers[a]&&this._subscribers[a].length};this.listenTo=function(a,b,e){var d=this._listeningTo||(this._listeningTo={}),c=a._listenId||(a._listenId=uuid(8,16));d[c]=a;a.subscribe(b,this,e);return this};this.stopListening=function(a,b,e){var d,c,f,g,h,m,n,k,l=this._listeningTo;if(!l)return this;logger.log(a);var q=!b&&!e;a&&((l={})[a._listenId]=a);for(var p in l){a=l[p];c=b?[b]:Object.keys(a._subscribers);g=0;for(n=c.length;g<n;g++)if(b=c[g],d=a._subscribers[b]){a._subscribers[b]=\nf=[];h=0;for(m=d.length;h<m;h++)k=d[h],(e&&e!==k._method||this&&this!==k._ctx)&&f.push(k);f.length||delete a._subscribers[b]}q&&delete this._listeningTo[p]}return this}});\n',
pre:!0},"std/uuid.js":{path:"std/uuid.js",friendlyPath:"..std.uuid",directory:"std/",filename:"uuid.js",src:'var CHARS="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");exports.uuid=function(f,c){var d=CHARS,a=[],g=Math.random;c=c||d.length;if(f)for(var b=0;b<f;b++)a[b]=d[0|g()*c];else{var e;a[8]=a[13]=a[18]=a[23]="-";a[14]="4";for(b=0;36>b;b++)a[b]||(e=0|16*g(),a[b]=d[19==b?e&3|8:e&15])}return a.join("")};\n',pre:!0},"lib/Sortable.js":{path:"lib/Sortable.js",friendlyPath:"jsio.lib.Sortable",
directory:"lib/",filename:"Sortable.js",src:'exports=Class("lib.Sortable",function(c){this.toStringPush=function(c){this._toString&&this._toString.push?this._toString.push(this.toString):this._toString=[this.toString];this.toString=c};this.toStringPop=function(){this.toString=this._toString.pop()}});var zeroPadding=[];function ensurePadding(c){for(var e=zeroPadding.length;e<c;++e){for(var d=[],b=0;b<e;++b)d.push("0");zeroPadding[e]=d.join("")}}function sortIndex(c){return this[c]}\nexports.sort=function(c,e){var d=c.length,b=Array(d),g=Array(d),m=Array(d),p=Array.prototype.slice.call(arguments,1),n=!!p[1];if(n)for(var a=0;a<d;++a)g[a]=[];for(var q=0;e=p[q];++q){for(a=0;a<d;++a)b[a]=e.call(c[a],a);if("number"==typeof b[0]){for(var h=b[0],k=b[0],a=1;a<d;++a)b[a]>h?h=b[a]:b[a]<k&&(k=b[a]);var h=String(Math.floor(h)).length,r=String(Math.floor(k)).length;ensurePadding(Math.max(h,r));for(var l,a=0;a<d;++a){var f=b[a];0>f?(f=-(k-f),l=(""+Math.floor(f)).length,b[a]="-"+zeroPadding[r-\nl]+f):(l=(""+Math.floor(f)).length,b[a]=zeroPadding[h-l]+f)}}if(n)for(a=0;a<d;++a)g[a].push(b[a]);else g=b}for(a=0;a<d;++a)n&&(g[a]=g[a].join("|")),m[a]=c[a].hasOwnProperty("toString")&&c[a].toString||null,c[a].toString=bind(g,sortIndex,a);Array.prototype.sort.apply(c);for(a=0;a<d;++a)m[a]?c[a].toString=m[a]:delete c[a].toString};\n',
pre:!0},"lib/sort.js":{path:"lib/sort.js",friendlyPath:"jsio.lib.sort",directory:"lib/",filename:"sort.js",src:'var zeroPadding=[];function ensurePadding(d){for(var e=zeroPadding.length;e<d;++e){for(var c=[],b=0;b<e;++b)c.push("0");zeroPadding[e]=c.join("")}}function sortIndex(d){return this[d]}\nexports=function(d,e){var c=d.length,b=Array(c),g=Array(c),m=Array(c),p=Array.prototype.slice.call(arguments,1),n=!!p[1];if(n)for(var a=0;a<c;++a)g[a]=[];for(var q=0;e=p[q];++q){for(a=0;a<c;++a)b[a]=e.call(d[a],a);if("number"==typeof b[0]){for(var h=b[0],k=b[0],a=1;a<c;++a)b[a]>h?h=b[a]:b[a]<k&&(k=b[a]);var h=String(Math.floor(h)).length,r=String(Math.floor(k)).length;ensurePadding(Math.max(h,r));for(var l,a=0;a<c;++a){var f=b[a];0>f?(f=-(k-f),l=(""+Math.floor(f)).length,b[a]="-"+zeroPadding[r-l]+\nf):(l=(""+Math.floor(f)).length,b[a]=zeroPadding[h-l]+f)}}if(n)for(a=0;a<c;++a)g[a].push(b[a]);else g=b}for(a=0;a<c;++a)n&&(g[a]=g[a].join("|")),m[a]=d[a].hasOwnProperty("toString")&&d[a].toString||null,d[a].toString=bind(g,sortIndex,a);Array.prototype.sort.apply(d);for(a=0;a<c;++a)m[a]?d[a].toString=m[a]:delete d[a].toString};\n',
pre:!0},"math/geom/Circle.js":{path:"math/geom/Circle.js",friendlyPath:"jsio.math.geom.Circle",directory:"math/geom/",filename:"Circle.js",src:'jsio("import .Point");exports=Class(Point,function(b){this.init=function(a,b,c){switch(arguments.length){case 0:this.radius=this.y=this.x=0;break;case 1:case 2:this.x=a.x||0;this.y=a.y||0;this.radius=a.radius||0;break;case 3:this.x=a,this.y=b,this.radius=c}};this.scale=function(a){b(this,"scale",arguments);this.radius*=a;return this}});\n',pre:!0},"math/geom/Point.js":{path:"math/geom/Point.js",
friendlyPath:".Point",directory:"math/geom/",filename:"Point.js",src:'var Point=exports=Class(function(){this.init=function(a,b){switch(arguments.length){case 0:this.y=this.x=0;break;case 1:this.x=a.x||0;this.y=a.y||0;break;case 2:this.x=a||0,this.y=b||0}};this.rotate=function(a){var b=this.x,c=this.y,d=Math.cos(a);a=Math.sin(a);this.x=b*d-c*a;this.y=b*a+c*d;return this};this.translate=this.add=function(a,b){"number"==typeof a?(this.x+=a,this.y+=b):(this.x+=a.x,this.y+=a.y);return this};this.subtract=function(a,b){"number"==typeof a?(this.x-=a,this.y-=b):(this.x-=a.x,\nthis.y-=a.y);return this};this.scale=function(a,b){void 0===b&&(b=a);this.x*=a;this.y*=b;return this};this.setMagnitude=function(a){var b=this.getAngle();this.x=a*Math.cos(b);this.y=a*Math.sin(b);return this};this.normalize=function(){var a=this.getMagnitude();this.x/=a;this.y/=a;return this};this.addMagnitude=function(a){return this.setMagnitude(this.getMagnitude()+a)};this.getMagnitude=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};this.getSquaredMagnitude=function(){return this.x*this.x+\nthis.y*this.y};this.getDirection=this.getAngle=function(){return Math.atan2(this.y,this.x)}});Point.getPolarR=function(a,b){throw"notImplemented";};Point.getPolarTheta=function(a,b){var c=Math.atan2(b,a)+2*Math.PI;return c>2*Math.PI?c%(2*Math.PI):c};Point.add=Point.translate=function(a,b,c,d){switch(arguments.length){case 2:return(new Point(a)).add(b);case 3:return(new Point(a)).add(b,c);case 4:return(new Point(a,b)).add(c,d)}};\nPoint.subtract=function(a,b,c,d){switch(arguments.length){case 2:return(new Point(a)).subtract(b);case 3:return(new Point(a)).subtract(b,c);case 4:return(new Point(a,b)).subtract(c,d)}};Point.scale=function(a,b,c){switch(arguments.length){case 2:return(new Point(a)).scale(b);case 3:return(new Point(a,b)).scale(c)}};Point.setMagnitude=function(a,b,c){switch(arguments.length){case 2:return(new Point(a)).setMagnitude(c);case 3:return(new Point(a,b)).setMagnitude(c)}};\nPoint.addMagnitude=function(a,b,c){switch(arguments.length){case 2:pt=new Point(a);break;case 3:pt=new Point(a,b),b=c}return pt.addMagnitude(b)};Point.getMagnitude=function(a,b){return(new Point(a,b)).getMagnitude()};Point.rotate=function(a,b,c){switch(arguments.length){case 2:return(new Point(a)).rotate(b);case 3:return(new Point(a,b)).rotate(c)}};Point.project=function(a,b){var c=(new Point(b)).normalize();return c.scale(c.x*a.x+c.y*a.y)};\n',
pre:!0},"math/geom/Line.js":{path:"math/geom/Line.js",friendlyPath:"jsio.math.geom.Line",directory:"math/geom/",filename:"Line.js",src:'jsio("import .Point");\nexports=Class(function(){this.init=function(a,b,c,d){switch(arguments.length){case 0:this.start=new Point;this.end=new Point;break;case 1:this.start=new Point(a.start);this.end=new Point(a.end);break;case 2:this.start=new Point(a);this.end=new Point(b);break;case 3:this.start=new Point(a);this.end=new Point(b,c);break;default:this.start=new Point(a,b),this.end=new Point(c,d)}};this.getMagnitude=this.getLength=function(){var a=this.end.x-this.start.x,b=this.end.y-this.start.y;return Math.sqrt(a*a+\nb*b)}});\n',
pre:!0},"math/geom/Polygon.js":{path:"math/geom/Polygon.js",friendlyPath:"jsio.math.geom.Polygon",directory:"math/geom/",filename:"Polygon.js",src:'exports=Class(function(){function l(a){var b=0;for(k=0;k<a.length;k++)b+=a[k];return b}function m(a){return Math.pow(a[0]*a[0]+a[1]*a[1],.5)}this.init=function(a){this.x=a.x;this.y=a.y;"convex"in a&&(this.convex=a.convex)};this.isConvex=function(){var a=this.x,b=this.y,d=a.length;if(3>d)return!1;for(var c=a[0]-a[d-1],e=b[0]-b[d-1],f=a[1]-a[0],g=b[1]-b[0],c=Math.asin((g*c-f*e)/(m([c,e])*m([f,g]))),n=0>c?-1:0<c?1:0,h=1;h<d-1;h++)if(c=a[h]-a[h-1],e=b[h]-b[h-1],f=a[h+1]-a[h],g=b[h+1]-b[h],c=Math.asin((g*\nc-f*e)/(m([c,e])*m([f,g]))),0!=c&&0==n+(0>c?-1:0<c?1:0))return this.convex=!1;c=a[d-1]-a[d-2];e=b[d-1]-b[d-2];f=a[0]-a[d-1];g=b[0]-b[d-1];c=Math.asin((g*c-f*e)/(m([c,e])*m([f,g])));return 0!=c&&0==n+(0>c?-1:0<c?1:0)?this.convex=!1:this.convex=!0};this.getCenter=function(){var a=this.x,b=this.y;return[l(a)/a.length,l(b)/b.length]};this.containsPoint=function(a){var b=a[0];a=a[1];for(var d=0,c=this.x,e=this.y,f,g,n,h=0,l=this.x.length,p=0;p<l;p++)d=p===l-1?0:p+1,f=c[p],n=e[p],g=c[d],d=e[d],f-=b,n-=\na,g-=b,d-=a,h+=Math.asin((f*d-n*g)/(m([f,n])*m([g,d])));h=Math.abs(h);return 1E-6>Math.abs(h-2*Math.PI)};this.scale=function(a){for(var b=this.x,d=this.y,c=[l(b)/b.length,l(d)/d.length],e=0;e<b.length;e++)b[e]=c[0]+(b[e]-c[0])*a,d[e]=c[1]+(d[e]-c[1])*a};this.translate=function(a){for(var b=0;b<this.x.length;b++)this.x[b]+=a[0],this.y[b]+=a[1]};this.rotate=function(a){var b=this.x,d=this.y,c=[l(b)/b.length,l(d)/d.length],e=Math.cos(a);a=Math.sin(a);for(var f=0;f<b.length;f++){var g=[b[f]-c[0],d[f]-\nc[1]];this.x[f]=e*g[0]-a*g[1];this.y[f]=a*g[0]-e*g[1]}}});\n',
pre:!0},"math/geom/Rect.js":{path:"math/geom/Rect.js",friendlyPath:"jsio.math.geom.Rect",directory:"math/geom/",filename:"Rect.js",src:'jsio("import lib.Enum");jsio("import .Point");jsio("import .Line");jsio("import .intersect");\nvar Rect=exports=Class(function(){this.init=function(a,b,c,d){switch(arguments.length){case 0:this.width=this.height=this.x=this.y=0;break;case 1:this.width=a.width;this.height=a.height;this.x=a.x;this.y=a.y;break;case 2:this.x=a.x;this.y=a.y;this.width=b.x;this.height=b.y;break;case 3:this.x=a.x;this.y=a.y;this.width=b;this.height=c;break;case 4:this.x=a,this.y=b,this.width=c,this.height=d}};this.normalize=function(){0>this.width&&(this.x-=this.width,this.width=-this.width);0>this.height&&(this.y-=\nthis.height,this.height=-this.height);return this};this.intersectRect=function(a){if(intersect.isRectAndRect(this,a)){var b=this.y,c=this.x+this.width,d=this.y+this.height;this.x=Math.max(this.x,a.x);this.y=Math.max(b,a.y);this.width=Math.min(c,a.x+a.width)-this.x;this.height=Math.min(d,a.y+a.height)-this.y}else this.height=this.width=0};this.unionRect=function(a){this.normalize();a.normalize&&a.normalize();var b=this.x+this.width,c=this.y+this.height,d=a.x+a.width,e=a.y+a.height;this.x=this.x<a.x?\nthis.x:a.x;this.y=this.y<a.y?this.y:a.y;this.width=(b>d?b:d)-this.x;this.height=(c>e?c:e)-this.y};this.getCorner=function(a){switch(a){case CORNERS.TOP_LEFT:return new Point(this.x,this.y);case CORNERS.TOP_RIGHT:return new Point(this.x+this.width,this.y);case CORNERS.BOTTOM_LEFT:return new Point(this.x,this.y+this.height);case CORNERS.BOTTOM_RIGHT:return new Point(this.x+this.width,this.y+this.height)}};this.getSide=function(a){switch(a){case SIDES.TOP:return new Line(this.getCorner(CORNERS.TOP_LEFT),\nthis.getCorner(CORNERS.TOP_RIGHT));case SIDES.RIGHT:return new Line(this.getCorner(CORNERS.TOP_RIGHT),this.getCorner(CORNERS.BOTTOM_RIGHT));case SIDES.BOTTOM:return new Line(this.getCorner(CORNERS.BOTTOM_RIGHT),this.getCorner(CORNERS.BOTTOM_LEFT));case SIDES.LEFT:return new Line(this.getCorner(CORNERS.BOTTOM_LEFT),this.getCorner(CORNERS.TOP_LEFT))}};this.getCenter=function(){return new Point(this.x+this.width/2,this.y+this.height/2)}}),SIDES=Rect.SIDES=lib.Enum("TOP","BOTTOM","LEFT","RIGHT"),CORNERS=\nRect.CORNERS=lib.Enum("TOP_LEFT","TOP_RIGHT","BOTTOM_RIGHT","BOTTOM_LEFT");\n',
pre:!0},"math/geom/intersect.js":{path:"math/geom/intersect.js",friendlyPath:".intersect",directory:"math/geom/",filename:"intersect.js",src:'jsio("import .Point");jsio("import .Line");jsio("import .Rect");var intersect=exports;intersect.pointAndRect=intersect.ptAndRect=function(b,a){var c=b.x,d=b.y;return c>=a.x&&c<=a.x+a.width&&d>=a.y&&d<=a.y+a.height};intersect.rectAndPoint=intersect.rectAndPt=function(b,a){return intersect.pointAndRect(a,b)};intersect.pointAndCircle=intersect.ptAndCirc=function(b,a){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d<a.radius*a.radius};\nintersect.circleAndPoint=intersect.circAndPt=function(b,a){return intersect.pointAndCircle(a,b)};intersect.circleAndCircle=function(b,a){var c=a.x-b.x,d=a.y-b.y,e=b.radius+a.radius;return c*c+d*d<=e*e};intersect.isRectAndRect=function(b,a){return!(b.y+b.height<a.y||a.y+a.height<b.y||b.x+b.width<a.x||a.x+a.width<b.x)};\nintersect.circleAndRect=function(b,a){return intersect.pointAndRect(b,a)?!0:intersect.lineAndCircle(a.getSide(1),b)||intersect.lineAndCircle(a.getSide(2),b)||intersect.lineAndCircle(a.getSide(3),b)||intersect.lineAndCircle(a.getSide(4),b)};intersect.rectAndCircle=function(b,a){return intersect.circleAndRect(a,b)};intersect.lineAndCircle=function(b,a){return intersect.pointToLine(a,b).getMagnitude()<a.radius};intersect.circleAndLine=function(b,a){return intersect.lineAndCircle(a,b)};\nintersect.pointToLine=intersect.ptToLine=function(b,a){var c=a.end.x-a.start.x,d=a.end.y-a.start.y,e=((b.x-a.start.x)*c+(b.y-a.start.y)*d)/(c*c+d*d),c=0>e?new Point(a.start):1<e?new Point(a.end):new Point(a.start.x+e*c,a.start.y+e*d);return new Line(c,b)};\nintersect.rectAndRect=function(b,a){jsio("import .Rect");return(intersect.rectAndRect=function(a,b){if(!0===a||!0===b)return new Rect(b);if(intersect.isRectAndRect(a,b)){var e=Math.max(a.x,b.x),f=Math.max(a.y,b.y),g=Math.min(a.x+a.width,b.x+b.width),h=Math.min(a.y+a.height,b.y+b.height);return new Rect(e,f,g-e,h-f)}return null})(b,a)};\n',
pre:!0},"math/geom/Vec2D.js":{path:"math/geom/Vec2D.js",friendlyPath:"jsio.math.geom.Vec2D",directory:"math/geom/",filename:"Vec2D.js",src:'var Vec2D=exports=Class(function(){this.init=function(a){"angle"in a?(this.x=a.magnitude*Math.cos(a.angle),this.y=a.magnitude*Math.sin(a.angle)):(this.x=a.x,this.y=a.y)};this.addForce=function(a){this.x+=a.x;this.y+=a.y};this.getAngle=function(){return Math.atan2(this.y,this.x)};this.getMagnitude=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};this.getUnitVector=function(){return new Vec2D({magnitude:1,angle:this.getAngle()})};this.dot=function(a){return this.x*a.x+this.y*a.y};this.add=\nfunction(a){return new Vec2D({x:this.x+a.x,y:this.y+a.y})};this.minus=function(a){return new Vec2D({x:this.x-a.x,y:this.y-a.y})};this.negate=function(){return new Vec2D({x:-this.x,y:-this.y})};this.multiply=function(a){return new Vec2D({angle:this.getAngle(),magnitude:this.getMagnitude()*a})}});\n',
pre:!0},"math/geom/angle.js":{path:"math/geom/angle.js",friendlyPath:"jsio.math.geom.angle",directory:"math/geom/",filename:"angle.js",src:"var PI=Math.PI,TAU=2*Math.PI;exports.average=function(b,c,a){void 0===a&&(a=.5);var d=exports.range(b,c);b=d<PI?b+d*(1-a):c+(2*PI-d)*a;return b>PI?b-2*PI:b<-PI?b+2*PI:b};exports.normalize=function(b){return b-((b+Math.PI)/TAU|0)*TAU};exports.add=function(b,c){var a=b+c;return a>PI?a-TAU:a<-PI?a+TAU:a};exports.difference=function(b,c){var a=exports.range(b,c);return a>PI?a-TAU:a};exports.range=function(b,c){var a=c-b;return 0>a?a+TAU:a};\n",
pre:!0},"math/array.js":{path:"math/array.js",friendlyPath:"jsio.math.array",directory:"math/",filename:"array.js",src:'jsio("import math.util as util");exports.weightedAverage=function(d,e,b){b=b||d.length;for(var c=0,a=b-1;0<=a;--a)c+=d[a]*e;return c/b};exports.subtract=function(d,e){for(var b=d.length,c=Array(b),a=0;a<b;++a)c[a]=d[a]-e[a];return c};exports.average=function(d,e){e=e||d.length;for(var b=0,c=e-1;0<=c;--c)b+=d[c];return b/e};exports.stddev=function(d,e){var b=exports.average(d,e);e=e||d.length;for(var c=0,a=e-1;0<=a;--a)var f=d[a]-b,c=c+f*f;return Math.sqrt(c/(e-1))};\nexports.shuffle=function(d,e){for(var b=d.length,c=0;c<b;++c){var a=util.random(c,b,e),f=d[a];d[a]=d[c];d[c]=f}return d};exports.rotate=function(d,e){var b=d.length,c=Array(b),a=e%b;0>a&&(a%=b)&&(a+=b);for(var f=0;f<b;++f)c[f]=d[a],a=(a+1)%b;return c};\n',
pre:!0},"math/random.js":{path:"math/random.js",friendlyPath:"jsio.math.random",directory:"math/",filename:"random.js",src:'var RNG=Class(function(){this.init=function(a){if("number"!=typeof a){a=4294967296*Math.random();var b=(new Date).getTime();a^=b}234567891!==a&&(this.x=a^234567891);this.y=a^123456789;this.z=345678912;this.w=456789123;this.c=0};this.uint32=function(){var a=this.x,a=a^a<<5,a=a^a>>>7;this.x=a^=a<<22;var b=this.y,b=b+1411392427;this.y=b>>>0;var c=this.w,d=this.z+c+this.c>>>0;this.z=c;this.c=d>>>31;this.w=c=d&2147483647;return a+b+c>>>0};this.uint31=function(){return this.uint32()>>>1};this.random=function(){return this.uint32()*\n(1/4294967296)};this.rangeReal=function(a,b){return this.uint32()*(1/4294967296)*(b-a)+a};this.rangeInteger=function(a,b){return this.uint32()*(1/4294967296)*(b-a)+a+.5>>>0};this.normal=function(){for(var a=0,b=0;0==a*b;)a=this.random(),b=this.random();return Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*b)};this.gaussian=function(a,b){return b*this.normal()+a};this.gaussianClamp=function(a,b,c,d){a=b*this.normal()+a;a<c?a=c:a>d&&(a=d);return a}});exports=new RNG(Date.now());exports.RNG=RNG;\n',
pre:!0},"math/util.js":{path:"math/util.js",friendlyPath:"jsio.math.util",directory:"math/",filename:"util.js",src:'jsio("import lib.Enum as Enum");exports.interpolate=function(a,b,c){return a*(1-c)+b*c};exports.random=function(a,b,c){return a+((c||Math.random)()*(b-a)|0)};exports.randomInclusive=function(a,b,c){return exports.random(a,b+1,c)};exports.clip=function(a,b,c){return Math.max(Math.min(a,c),b)};exports.sign=function(a){return a&&a/Math.abs(a)};exports.mod=function(a,b){return(a%b+b)%b};\nvar round=exports.round=function(a,b,c){if(!c||c==round.ROUND_HALF_AWAY_FROM_ZERO)return a.toFixed(b);if(!b){c==round.ROUND_HALF_UP&&Math.round(a);var d=a|0,e=a-d;if(.5!=e&&-.5!=e)return Math.round(a);e=0>a?-1:1;switch(c){case round.ROUND_HALF_TO_EVEN:return d%2?d+e:d;case round.ROUND_HALF_TO_ODD:return d%2?d:d+e;case round.ROUND_HALF_STOCHASTIC:return.5>Math.random()?d+e:d;case round.ROUND_HALF_ALTERNATE:return(round.alt=!round.alt)?d+e:d}}d=a|0;e=a-d;a=Math.pow(10,b);return(d+round(e*a,0,c)/a).toFixed(b)};\nEnum.call(round,"ROUND_HALF_UP","ROUND_HALF_AWAY_FROM_ZERO","ROUND_HALF_TO_EVEN","ROUND_HALF_TO_ODD","ROUND_HALF_STOCHASTIC","ROUND_HALF_ALTERNATE");round.alt=!0;\n',
pre:!0},"math2D/Circle.js":{path:"math2D/Circle.js",friendlyPath:"jsio.math2D.Circle",directory:"math2D/",filename:"Circle.js",src:'jsio("import math.geom.Circle");exports=math.geom.Circle;logger.log("Warning: math2D.Circle is deprecated");\n',pre:!0},"math2D/Line.js":{path:"math2D/Line.js",friendlyPath:"jsio.math2D.Line",directory:"math2D/",filename:"Line.js",src:'jsio("import math.geom.Line");exports=math.geom.Line;logger.log("Warning: math2D.Line is deprecated");\n',pre:!0},"math2D/Point.js":{path:"math2D/Point.js",
friendlyPath:"jsio.math2D.Point",directory:"math2D/",filename:"Point.js",src:'jsio("import math.geom.Point");exports=math.geom.Point;logger.log("Warning: math2D.Point is deprecated");\n',pre:!0},"math2D/Polygon.js":{path:"math2D/Polygon.js",friendlyPath:"jsio.math2D.Polygon",directory:"math2D/",filename:"Polygon.js",src:'jsio("import math.geom.Polygon");exports=math.geom.Polygon;logger.log("Warning: math2D.Polygon is deprecated");\n',pre:!0},"math2D/Rect.js":{path:"math2D/Rect.js",friendlyPath:"jsio.math2D.Rect",
directory:"math2D/",filename:"Rect.js",src:'jsio("import math.geom.Rect");exports=math.geom.Rect;logger.log("Warning: math2D.Rect is deprecated");\n',pre:!0},"math2D/Vec2D.js":{path:"math2D/Vec2D.js",friendlyPath:"jsio.math2D.Vec2D",directory:"math2D/",filename:"Vec2D.js",src:'jsio("import math.geom.Vec2D");exports=math.geom.Vec2D;logger.log("Warning: math2D.Vec2D is deprecated");\n',pre:!0},"math2D/angle.js":{path:"math2D/angle.js",friendlyPath:"jsio.math2D.angle",directory:"math2D/",filename:"angle.js",
src:'jsio("import math.geom.angle");exports=math.geom.angle;logger.log("Warning: math2D.angle is deprecated");\n',pre:!0},"math2D/intersect.js":{path:"math2D/intersect.js",friendlyPath:"jsio.math2D.intersect",directory:"math2D/",filename:"intersect.js",src:'jsio("import math.geom.intersect");exports=math.geom.intersect;logger.log("Warning: math2D.intersect is deprecated");\n',pre:!0},"math2D/morphology.js":{path:"math2D/morphology.js",friendlyPath:"jsio.math2D.morphology",directory:"math2D/",filename:"morphology.js",
src:'logger.log("Warning: math2D.morphology is deprecated");\n',pre:!0},"net/csp/client.js":{path:"net/csp/client.js",friendlyPath:"jsio.net.csp.client",directory:"net/csp/",filename:"client.js",src:'jsio("import std.base64 as base64");jsio("import std.utf8 as utf8");jsio("import std.uri as uri");jsio("import net.errors as errors");jsio("import .transports");jsio("import lib.Enum as Enum");var READYSTATE=exports.READYSTATE=Enum({INITIAL:0,CONNECTING:1,CONNECTED:2,DISCONNECTING:3,DISCONNECTED:4});\nexports.CometSession=Class(function(g){var d=0;this.init=function(){this._id=++d;this._url=null;this.readyState=READYSTATE.INITIAL;this._options=this._transport=this._sessionKey=null;this._writeBuffer=this._utf8ReadBuffer="";this._handshakeLater=this._lastSentId=this._lastEventId=this._packetsInFlight=null;this._handshakeBackoff=50;this._timeoutTimer=this._handshakeTimeoutTimer=this._handshakeRetryTimer=null;this._cometBackoff=this._writeBackoff=50;this._nullReceived=this._nullSent=this._nullInFlight=\nthis._nullInBuffer=!1};this.setEncoding=function(a){if(a!=this._options.encoding){if("utf8"!=a&&"plain"!=a)throw new errors.InvalidEncodingError;if("plain"==a&&this._buffer){var b=this._utf8ReadBuffer;this._utf8ReadBuffer="";this._doOnRead(b)}this._options.encoding=a}};this.connect=function(a,b){this._url=a.replace(/\\/$/,"");this._options=b||{};this._options.encoding=this._options.encoding||"utf8";this.setEncoding(this._options.encoding);this._options.connectTimeout=this._options.connectTimeout||\n1E4;this._transport=new (transports.chooseTransport(a,this._options));this._transport.handshakeFailure=bind(this,this._handshakeFailure);this._transport.handshakeSuccess=bind(this,this._handshakeSuccess);this._transport.cometFailure=bind(this,this._cometFailure);this._transport.cometSuccess=bind(this,this._cometSuccess);this._transport.sendFailure=bind(this,this._writeFailure);this._transport.sendSuccess=bind(this,this._writeSuccess);this.readyState=READYSTATE.CONNECTING;this._transport.handshake(this._url,\nthis._options);this._handshakeTimeoutTimer=setTimeout(bind(this,this._handshakeTimeout),this._options.connectTimeout)};this.write=function(a,b){if(this.readyState!=READYSTATE.CONNECTED)throw new errors.ReadyStateError;b=b||this._options.encoding||"utf8";"utf8"==b&&(a=utf8.encode(a));this._writeBuffer+=a;this._doWrite()};this._protocolError=function(a){logger.debug("_protocolError",a);this.readyState=READYSTATE.DISCONNECTED;this._doWrite(!0);this._doOnDisconnect(new errors.ServerProtocolError(a))};\nthis._receivedNullPacket=function(){logger.debug("_receivedNullPacket");this._receivedNull=!0;this._nullInFlight||this._nullInBuffer||this._nullSent?this.readyState=READYSTATE.DISCONNECTED:(this.readyState=READYSTATE.DISCONNECTING,this._doWrite(!0));this._doOnDisconnect(new errors.ConnectionClosedCleanly)};this._sentNullPacket=function(){logger.debug("_sentNullPacket");if(this._nullSent=!0,this._nullReceived)this.readyState=READYSTATE.DISCONNECTED};this.close=function(a){logger.debug("close called",\na,"readyState",this.readyState);switch(this.readyState){case READYSTATE.CONNECTING:clearTimeout(this._handshakeRetryTimer);clearTimeout(this._handshakeTimeoutTimer);this.readyState=READYSTATE.DISCONNECTED;this._doOnDisconnect(a);break;case READYSTATE.CONNECTED:this.readyState=READYSTATE.DISCONNECTING;this._doWrite(!0);clearTimeout(this._timeoutTimer);break;case READYSTATE.DISCONNECTED:throw new errors.ReadyStateError("Session is already disconnected");}this._opened=!1;this.readyState=READYSTATE.DISCONNECTED;\nthis._doOnDisconnect(a);this._sessionKey=null};this._handshakeTimeout=function(){logger.debug("handshake timeout");this._handshakeTimeoutTimer=null;clearTimeout(this._handshakeRetryTimer);this.readyState==READYSTATE.CONNECTING&&(this.readyState=READYSTATE.DISCONNECTED);this._doOnDisconnect(new errors.ServerUnreachable)};this._handshakeSuccess=function(a){logger.debug("handshake success",a);this.readyState!=READYSTATE.CONNECTING?logger.debug("received handshake success in invalid readyState:",this.readyState):\n(clearTimeout(this._handshakeTimeoutTimer),this._handshakeTimeoutTimer=null,this._sessionKey=a.response.session,this._opened=!0,this.readyState=READYSTATE.CONNECTED,this._doOnConnect(),this._doConnectComet())};this._handshakeFailure=function(a){logger.debug("handshake failure",a);if(this.readyState==READYSTATE.CONNECTING){if(404==a.status)return clearTimeout(this._handshakeTimeoutTimer),this._doOnDisconnect(new errors.ServerUnreachable);logger.debug("trying again in ",this._handshakeBackoff);this._handshakeRetryTimer=\nsetTimeout(bind(this,function(){this._handshakeRetryTimer=null;this._transport.handshake(this._url,this._options)}),this._handshakeBackoff);this._handshakeBackoff*=2}};this._writeSuccess=function(){if(this.readyState==READYSTATE.CONNECTED||this.readyState==READYSTATE.DISCONNECTING){if(this._nullInFlight)return this._sentNullPacket();this._resetTimeoutTimer();this.writeBackoff=50;this._packetsInFlight=null;(this._writeBuffer||this._nullInBuffer)&&this._doWrite(this._nullInBuffer)}};this._writeFailure=\nfunction(){if(this.readyState==READYSTATE.CONNECTED||this.READYSTATE==READYSTATE.DISCONNECTING)this._writeTimer=setTimeout(bind(this,function(){this._writeTimer=null;this.__doWrite(this._nullInBuffer)}),this._writeBackoff),this._writeBackoff*=2};this._doWrite=function(a){this._packetsInFlight?a&&(this._nullInBuffer=!0):this.__doWrite(a)};this.__doWrite=function(a){logger.debug("_writeBuffer:",this._writeBuffer);!this._packetsInFlight&&this._writeBuffer&&(this._packetsInFlight=[this._transport.encodePacket(++this._lastSentId,\nthis._writeBuffer,this._options)],this._writeBuffer="");a&&!this._writeBuffer&&(this._packetsInFlight||(this._packetsInFlight=[]),this._packetsInFlight.push([++this._lastSentId,0,null]),this._nullInFlight=!0);this._packetsInFlight?(logger.debug("sending packets:",JSON.stringify(this._packetsInFlight)),this._transport.send(this._url,this._sessionKey,this._lastEventId||0,JSON.stringify(this._packetsInFlight),this._options)):logger.debug("no packets to send")};this._doConnectComet=function(){logger.debug("_doConnectComet");\nthis._transport.comet(this._url,this._sessionKey,this._lastEventId||0,this._options)};this._cometFailure=function(a){if(this.readyState==READYSTATE.CONNECTED){if(404==a.status&&"Session not found"==a.response)return this.close(new errors.ExpiredSession(a));this._cometTimer=setTimeout(bind(this,"_doConnectComet"),this._cometBackoff);this._cometBackoff*=2}};this._cometSuccess=function(a){if(this.readyState==READYSTATE.CONNECTED||this.readyState==READYSTATE.DISCONNECTING){logger.debug("comet Success:",\na);this._cometBackoff=50;this._resetTimeoutTimer();for(var b=a.response,e=0,c;(c=b[e])||e<b.length;e++){logger.debug("process packet:",c);if(null===c)return this.close(new errors.ServerProtocolError(a));logger.debug("process packet",c);var f=c[0],d=c[1];a=c[2];if(!("number"==typeof this._lastEventId&&f<=this._lastEventId)){if("number"==typeof this._lastEventId&&f!=this._lastEventId+1)return this._protocolError("Ack id too high");this._lastEventId=f;if(null==a)return this._receivedNullPacket();if(1==\nd)try{logger.debug("before base64 decode:",a),a=base64.decode(a),logger.debug("after base64 decode:",a)}catch(g){return this._protocolError("Unable to decode base64 payload")}"utf8"==this._options.encoding&&(this._utf8ReadBuffer+=a,logger.debug("before utf8 decode, _utf8ReadBuffer:",this._utf8ReadBuffer),c=utf8.decode(this._utf8ReadBuffer),a=c[0],this._utf8ReadBuffer=this._utf8ReadBuffer.slice(c[1]),logger.debug("after utf8 decode, _utf8ReadBuffer:",this._utf8ReadBuffer,"data:",a));logger.debug("dispatching data:",\na);this._doOnRead(a)}}this.readyState!=READYSTATE.CONNECTED&&this.readyState!=READYSTATE.DISCONNECTING||this._doConnectComet()}};this._doOnRead=function(a){"function"==typeof this.onread?(logger.debug("call onread function",a),this.onread(a)):logger.debug("skipping onread callback (function missing)")};this._doOnDisconnect=function(a){"function"==typeof this.ondisconnect?(logger.debug("call ondisconnect function",a),this.ondisconnect(a)):logger.debug("skipping ondisconnect callback (function missing)")};\nthis._doOnConnect=function(){if("function"==typeof this.onconnect){logger.debug("call onconnect function");try{this.onconnect()}catch(a){logger.debug("onconnect caused errror",a),setTimeout(function(){throw a;},0)}}else logger.debug("skipping onconnect callback (function missing)")};this._resetTimeoutTimer=function(){clearTimeout(this._timeoutTimer);this._timeoutTimer=setTimeout(bind(this,function(){logger.debug("connection timeout expired");this.close(new errors.ConnectionTimeout)}),this._getTimeoutInterval())};\nthis._getTimeoutInterval=function(){return 45E3}});\n',
pre:!0},"net/csp/transports.js":{path:"net/csp/transports.js",friendlyPath:".transports",directory:"net/csp/",filename:"transports.js",src:"jsio('import std.uri as uri'); \njsio('import std.base64 as base64');\njsio('from util.browserdetect import BrowserDetect');\n\n;(function() {\n\tvar doc;\n\texports.getDoc = function() {\n\t\tif (doc) { return doc; }\n\t\ttry {\n\t\t\tdoc = window.ActiveXObject && new ActiveXObject('htmlfile');\n\t\t\tif (doc) {\n\t\t\t\tdoc.open().write('<html></html>');\n\t\t\t\tdoc.close();\n\t\t\t\twindow.attachEvent('onunload', function() {\n\t\t\t\t\ttry { doc.body.innerHTML = ''; } catch(e) {}\n\t\t\t\t\tdoc = null;\n\t\t\t\t});\n\t\t\t}\n\t\t} catch(e) {}\n\t\t\n\t\tif (!doc) { doc = document; }\n\t\treturn doc;\n\t};\n\n\texports.XHR = function() {\n\t\tvar win = window,\n\t\t\tdoc = exports.getDoc();\n\t\t//if (doc.parentWindow) { win = doc.parentWindow; }\n\t\t\n\t\treturn new (exports.XHR = win.XMLHttpRequest ? win.XMLHttpRequest\n\t\t\t: function() { return win.ActiveXObject && new win.ActiveXObject('Msxml2.XMLHTTP') || null; });\n\t}\n\t\n\texports.createXHR = function() { return new exports.XHR(); }\n\n})();\n\nfunction isLocalFile(url) { return /^file:\\/\\//.test(url); }\nfunction isWindowDomain(url) { return uri.isSameDomain(url, window.location.href); }\n\nvar xhrSupportsBinary = undefined;\nfunction checkXHRBinarySupport(xhr) {\n\txhrSupportsBinary = !!xhr.sendAsBinary;\n}\n\nfunction canUseXHR(url) {\n\t// always use jsonp for local files\n\tif (isLocalFile(url)) { return false; }\n\t\n\t// try to create an XHR using the same function the XHR transport uses\n\tvar xhr = new exports.XHR();\n\tif (!xhr) { return false; }\n\t\n\tcheckXHRBinarySupport(xhr);\n\t\n\t// if the URL requested is the same domain as the window,\n\t// then we can use same-domain XHRs\n\tif (isWindowDomain(url)) { return true; }\n\t\n\t// if the URL requested is a different domain than the window,\n\t// then we need to check for cross-domain support\n\tif (window.XMLHttpRequest\n\t\t\t&& (xhr.__proto__ == XMLHttpRequest.prototype // WebKit Bug 25205\n\t\t\t\t|| xhr instanceof window.XMLHttpRequest)\n\t\t\t&& xhr.withCredentials !== undefined\n\t\t|| window.XDomainRequest \n\t\t\t&& xhr instanceof window.XDomainRequest) {\n\t\treturn true;\n\t}\n};\n\nvar transports = exports.transports = {};\n\nexports.chooseTransport = function(url, options) {\n\tswitch(options.preferredTransport) {\n\t\tcase 'jsonp':\n\t\t\treturn transports.jsonp;\n\t\tcase 'xhr':\n\t\tdefault:\n\t\t\tif (canUseXHR(url)) { return transports.xhr; };\n\t\t\treturn transports.jsonp;\n\t}\n};\n\n// TODO: would be nice to use these somewhere...\n\nvar PARAMS = {\n\t'xhrstream': {\"is\": \"1\", \"bs\": \"\\n\"},\n\t'xhrpoll': {\"du\": \"0\"},\n\t'xhrlongpoll': {},\n\t'sselongpoll': {\"bp\": \"data: \", \"bs\": \"\\r\\n\", \"se\": \"1\"},\n\t'ssestream': {\"bp\": \"data: \", \"bs\": \"\\r\\n\", \"se\": \"1\", \"is\": \"1\"}\n};\n\nexports.Transport = Class(function(supr) {\n\tthis.handshake = function(url, options) {\n\t\tthrow new Error(\"handshake Not Implemented\"); \n\t};\n\tthis.comet = function(url, sessionKey, lastEventId, options) { \n\t\tthrow new Error(\"comet Not Implemented\"); \n\t};\n\tthis.send = function(url, sessionKey, data, options) { \n\t\tthrow new Error(\"send Not Implemented\");\n\t};\n\tthis.encodePacket = function(packetId, data, options) { \n\t\tthrow new Error(\"encodePacket Not Implemented\"); \n\t};\n\tthis.abort = function() { \n\t\tthrow new Error(\"abort Not Implemented\"); \n\t};\n});\n\nvar baseTransport = Class(exports.Transport, function(supr) {\n\tthis.init = function() {\n\t\tthis._aborted = false;\n\t\tthis._handshakeArgs = {ct:'application/javascript'};\n\t\tthis._handshakeData = '{}'\n\t};\n\t\n\tthis.handshake = function(url, options) {\n\t\tlogger.debug('handshake:', url, options);\n\t\tthis._makeRequest('send', url + '/handshake', \n\t\t\t\t\t\t this._handshakeArgs,\n\t\t\t\t\t\t this._handshakeData,\n\t\t\t\t\t\t this.handshakeSuccess, \n\t\t\t\t\t\t this.handshakeFailure);\n\t};\n\t\n\tthis.comet = function(url, sessionKey, lastEventId, options) {\n\t\tlogger.debug('comet:', url, sessionKey, lastEventId, options);\n\t\tvar args = {\n\t\t\ts: sessionKey,\n\t\t\ta: lastEventId\n\t\t};\n\t\tthis._makeRequest('comet', url + '/comet', \n\t\t\t\t\t\t args,\n\t\t\t\t\t\t null,\n\t\t\t\t\t\t this.cometSuccess, \n\t\t\t\t\t\t this.cometFailure);\n\t};\n\t\n\tthis.send = function(url, sessionKey, lastEventId, data, options) {\n\t\t//logger.debug('send:', url, sessionKey, data, options);\n\t\tvar args = {\n\t\t\ts: sessionKey,\n\t\t\ta: lastEventId\n\t\t};\n\t\tthis._makeRequest('send', url + '/send', \n\t\t\t\t\t\t args,\n\t\t\t\t\t\t data,\n\t\t\t\t\t\t this.sendSuccess, \n\t\t\t\t\t\t this.sendFailure);\n\t};\n});\n\ntransports.xhr = Class(baseTransport, function(supr) {\n\t\n\tthis.init = function() {\n\t\tsupr(this, 'init');\n\t\n\t\tthis._xhr = {\n\t\t\t'send': new exports.XHR(),\n\t\t\t'comet': new exports.XHR()\n\t\t};\n\t};\n\n\tthis.abort = function() {\n\t\tthis._aborted = true;\n\t\tfor(var i in this._xhr) {\n\t\t\tif(this._xhr.hasOwnProperty(i)) {\n\t\t\t\tthis._abortXHR(i);\n\t\t\t}\n\t\t}\n\t};\n\t\n\tthis._abortXHR = function(type) {\n\t\tlogger.debug('aborting XHR');\n\n\t\tvar xhr = this._xhr[type];\n\t\ttry {\n\t\t\tif('onload' in xhr) {\n\t\t\t\txhr.onload = xhr.onerror = xhr.ontimeout = null;\n\t\t\t} else if('onreadystatechange' in xhr) {\n\t\t\t\txhr.onreadystatechange = null;\n\t\t\t}\n\t\t\tif(xhr.abort) { xhr.abort(); }\n\t\t} catch(e) {\n\t\t\tlogger.debug('error aborting xhr', e);\n\t\t}\n\t\t\n\t\t// do not reuse aborted XHRs\n\t\tthis._xhr[type] = new exports.XHR();\n\t};\n\t\n\tthis.encodePacket = function(packetId, data, options) {\n\t\t// we don't need to base64 encode things unless there's a null character in there\n\t\treturn !xhrSupportsBinary ? [ packetId, 1, base64.encode(data) ] : [ packetId, 0, data ];\n\t};\n\n\tfunction onReadyStateChange(xhr, rType, cb, eb) {\n\t\ttry {\n\t\t\tvar data = {status: xhr.status};\n\t\t} catch(e) { eb({response: 'Could not access status'}); }\n\t\t\n\t\ttry {\n\t\t\tif(xhr.readyState != 4) { return; }\n\t\t\t\n\t\t\tdata.response = eval(xhr.responseText);\n\t\t\tif(data.status != 200) { \n\t\t\t\tlogger.debug('XHR failed with status ', xhr.status);\n\t\t\t\teb(data);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tlogger.debug('XHR data received');\n\t\t} catch(e) {\n\t\t\tlogger.debug('Error in XHR::onReadyStateChange', e);\n\t\t\teb(data);\n\t\t\tthis._abortXHR(rType);\n\t\t\tlogger.debug('done handling XHR error');\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tcb(data);\n\t};\n\n\t/**\n\t * even though we encode the POST body as in application/x-www-form-urlencoded\n\t */\n\tthis._makeRequest = function(rType, url, args, data, cb, eb) {\n\t\tif (this._aborted) { return; }\n\t\tvar xhr = this._xhr[rType];\n\t\txhr.open('POST', url + '?' + uri.buildQuery(args)); // must open XHR first\n\t\txhr.setRequestHeader('Content-Type', 'text/plain'); // avoid preflighting\n\t\tif('onload' in xhr) {\n\t\t\txhr.onload = bind(this, onReadyStateChange, xhr, rType, cb, eb);\n\t\t\txhr.onerror = xhr.ontimeout = eb;\n\t\t} else if('onreadystatechange' in xhr) {\n\t\t\txhr.onreadystatechange = bind(this, onReadyStateChange, xhr, rType, cb, eb);\n\t\t}\n\t\t// NOTE WELL: Firefox (and probably everyone else) likes to encode our nice\n\t\t//\t\t\t\t\t\tbinary strings as utf8. Don't let them! Say no to double utf8\n\t\t//\t\t\t\t\t\tencoding. Once is good, twice isn't better.\n\t\t// if (xhrSupportsBinary) {\n\t\t// \t\txhr.setRequestHeader('x-CSP-SendAsBinary', 'true');\n\t\t// }\n\t\tsetTimeout(function() {\n\t\t\txhr[xhrSupportsBinary ? 'sendAsBinary' : 'send'](data || null)\n\t\t}, 0);\n\t};\n});\n\nvar EMPTY_FUNCTION = function() {},\n\tSLICE = Array.prototype.slice;\n\ntransports.jsonp = Class(baseTransport, function(supr) {\n\tvar doc;\n\t\n\tvar createIframe = function() {\n\t\tvar doc = exports.getDoc();\n\t\tif (!doc.body) { return false; }\n\t\t\n\t\tvar i = doc.createElement(\"iframe\");\n\t\twith(i.style) { display = 'block'; width = height = border = margin = padding = '0'; overflow = visibility = 'hidden'; position = 'absolute'; top = left = '-999px'; }\n\t\ti.cbId = 0;\n\t\tdoc.body.appendChild(i);\n\t\ti.src = 'about:blank';\n\t\treturn i;\n\t};\n\n\tvar cleanupIframe = function(ifr) {\n\t\tvar win = ifr.contentWindow, doc = win.document;\n\t\tlogger.debug('removing script tags');\n\t\t\n\t\tvar scripts = doc.getElementsByTagName('script');\n\t\tfor (var i = scripts.length - 1; i >= 0; --i) {\n\t\t\tdoc.body.removeChild(scripts[i]);\n\t\t}\n\t\t\n\t\tlogger.debug('deleting iframe callbacks');\n\t\twin['cb' + ifr.cbId] = win['eb' + ifr.cbId] = EMPTY_FUNCTION;\n\t};\n\n\tvar removeIframe = function(ifr) {\n\t\tsetTimeout(function() {\n\t\t\tif(ifr && ifr.parentNode) { ifr.parentNode.removeChild(ifr); }\n\t\t}, 60000);\n\t};\n\n\tthis.init = function() {\n\t\tsupr(this, 'init');\n\n\t\tthis._onReady = [];\n\t\tthis._isReady = false;\n\n\t\tthis._createIframes();\n\t};\n\n\tthis._createIframes = function() {\n\t\tthis._ifr = {\n\t\t\tsend: createIframe(),\n\t\t\tcomet: createIframe()\n\t\t};\n\t\t\n\t\tif(this._ifr.send === false) { return setTimeout(bind(this, '_createIframes'), 100); }\n\t\t\n\t\tthis._isReady = true;\n\n\t\tvar readyArgs = this._onReady;\n\t\tthis._onReady = [];\n\t\tfor(var i = 0, args; args = readyArgs[i]; ++i) {\n\t\t\tthis._makeRequest.apply(this, args);\n\t\t}\n\t};\n\n\tthis.encodePacket = function(packetId, data, options) {\n\t\treturn [ packetId, 1, base64.encode(data) ];\n\t};\n\n\tthis.abort = function() {\n\t\tthis._aborted = true;\n\t\tfor(var i in this._ifr) {\n\t\t\tif(this._ifr.hasOwnProperty(i)) {\n\t\t\t\tvar ifr = this._ifr[i];\n\t\t\t\tcleanupIframe(ifr);\n\t\t\t\tremoveIframe(ifr);\n\t\t\t}\n\t\t}\n\t};\n\t\n\tthis._makeRequest = function(rType, url, args, data, cb, eb) {\n\t\tif(!this._isReady) { return this._onReady.push(arguments); }\n\t\t\n\t\tvar ifr = this._ifr[rType],\n\t\t\tid = ++ifr.cbId,\n\t\t\treq = {\n\t\t\t\ttype: rType,\n\t\t\t\tid: id,\n\t\t\t\tcb: cb,\n\t\t\t\teb: eb,\n\t\t\t\tcbName: 'cb' + id,\n\t\t\t\tebName: 'eb' + id,\n\t\t\t\tcompleted: false\n\t\t\t};\n\t\t\n\t\targs.d = data;\n\t\targs.n = Math.random();\t\n\t\tswitch(rType) {\n\t\t\tcase 'send': args.rs = ';'; args.rp = req.cbName; break;\n\t\t\tcase 'comet': args.bs = ';'; args.bp = req.cbName; break;\n\t\t}\n\t\t\n\t\treq.url = url + '?' + uri.buildQuery(args)\n\t\t\n\t\tsetTimeout(bind(this, '_request', req), 0);\n\t}\n\t\n\tthis._request = function(req) {\n\t\tvar ifr = this._ifr[req.type],\n\t\t\twin = ifr.contentWindow,\n\t\t\tdoc = win.document,\n\t\t\tbody = doc.body;\n /*added by skysbird for opera support*/\n if (!body){return setTimeout(bind(this,'_request',req),100); }\n\t\twin[req.ebName] = bind(this, checkForError, req);\n\t\twin[req.cbName] = bind(this, onSuccess, req);\n\t\t\n\t\tif(BrowserDetect.isWebKit) {\n\t\t\t// this will probably cause loading bars in Safari -- might want to rethink?\n\t\t\tdoc.open();\n\t\t\tdoc.write('<scr'+'ipt src=\"'+req.url+'\"></scr'+'ipt><scr'+'ipt>'+ebName+'(false)</scr'+'ipt>');\n\t\t\tdoc.close();\n\t\t} else {\n\t\t\tvar s = doc.createElement('script');\n\t\t\ts.src = req.url;\n\t\t\t\n\t\t\t// IE\n\t\t\tif(s.onreadystatechange === null) { s.onreadystatechange = bind(this, onReadyStateChange, req, s); }\n\t\t\tbody.appendChild(s);\n\t\t\t\n\t\t\tif(!BrowserDetect.isIE) {\n\t\t\t\tvar s = doc.createElement('script');\n\t\t\t\ts.innerHTML = req.ebName+'(false)';\n\t\t\t\tbody.appendChild(s);\n\t\t\t}\n\t\t}\n\t\t\n\t\tkillLoadingBar();\n\t};\n\t\n\tfunction onSuccess(req, response) {\n\t\tlogger.debug('successful: ', req.url, response);\n\t\treq.completed = true;\n\t\t\n\t\tlogger.debug('calling the cb');\n\t\treq.cb.call(GLOBAL, {status: 200, response: response});\n\t\tlogger.debug('cb called');\n\t}\n\t\n\t// IE6/7 onReadyStateChange\n\tfunction onReadyStateChange(req, scriptTag) {\n\t\tif (scriptTag && scriptTag.readyState != 'loaded') { return; }\n\t\tscriptTag.onreadystatechange = function() {};\n\t\tcheckForError.call(this, req);\n\t}\n\n\tfunction checkForError(req, response) {\n\t\tcleanupIframe(this._ifr[req.type]);\n\t\t\n\t\tif (!req.completed) {\n\t\t\tvar data = {\n\t\t\t\tstatus: response ? 200 : 404,\n\t\t\t\tresponse: response || 'Unable to load resouce'\n\t\t\t};\n\t\t\t\n\t\t\tlogger.debug('error making request:', req.url, data);\n\t\t\tlogger.debug('calling eb');\n\t\t\treq.eb.call(GLOBAL, data);\n\t\t}\n\t}\n\t\n\tvar killLoadingBar = BrowserDetect.isFirefox || BrowserDetect.isOpera ? function() {\n\t\tvar b = document.body;\n\t\tif (!b) { return; }\n\t\t\n\t\tif (!killLoadingBar.iframe) { killLoadingBar.iframe = document.createElement('iframe'); }\n\t\tb.insertBefore(killLoadingBar.iframe, b.firstChild);\n\t\tb.removeChild(killLoadingBar.iframe);\n\t} : function() {};\n});\n\t\n",
pre:!0},"net/env/browser/csp.js":{path:"net/env/browser/csp.js",friendlyPath:"jsio.net.env.browser.csp",directory:"net/env/browser/",filename:"csp.js",src:'jsio("import ...interfaces");jsio("from ...csp.client import CometSession");jsio("import ....std.utf8 as utf8");\nexports.Connector=Class(interfaces.Connector,function(){this.connect=function(){this._state=interfaces.STATE.CONNECTING;var a=new CometSession;a.onconnect=bind(this,"cometSessionOnConnect",a);a.ondisconnect=bind(this,"onDisconnect");logger.debug("opening the connection");this._opts.encoding||(this._opts.encoding="utf8");a.connect(this._opts.url,this._opts)};this.cometSessionOnConnect=function(a){logger.debug("conn has opened");this.onConnect(new Transport(a))}});\nvar Transport=Class(interfaces.Transport,function(){this.init=function(a){this._conn=a};this.makeConnection=function(a){this._conn.onread=bind(a,"dataReceived")};this.write=function(a){this._conn.write(a)};this.loseConnection=function(a){this._conn.close()}});\n',
pre:!0},"std/utf8.js":{path:"std/utf8.js",friendlyPath:"....std.utf8",directory:"std/",filename:"utf8.js",src:'exports.UnicodeCodecError=function(a){this.message=a};var UnicodeCodecError=exports.UnicodeCodecError;UnicodeCodecError.prototype.toString=function(){return"UnicodeCodecError"+(this.message?": "+this.message:"")};exports.encode=function(a){try{return unescape(encodeURIComponent(a))}catch(b){throw new UnicodeCodecError("invalid input string");}};\nexports.decode=function(a){if(/[^\\x00-\\xFF]/.test(a))throw new UnicodeCodecError("invalid utf-8 bytes");var b,c;b=c=a.length;if(128<=a.charCodeAt(b-1)){for(var d=1;3>=d;d++)if(192<=a.charCodeAt(b-d)){c=b-d;break}try{decodeURIComponent(escape(a.slice(c))),c=b}catch(e){}}try{return[decodeURIComponent(escape(a.slice(0,c))),c]}catch(f){throw new UnicodeCodecError("invalid utf-8 bytes");}};\n',
pre:!0},"net/env/browser/postmessage.js":{path:"net/env/browser/postmessage.js",friendlyPath:"jsio.net.env.browser.postmessage",directory:"net/env/browser/",filename:"postmessage.js",src:'jsio("import net.interfaces");jsio("from util.browser import $");jsio("import std.uuid");\nexports.Listener=Class(net.interfaces.Listener,function(a){this.init=function(){a(this,"init",arguments);this._clients={};this._opts.clientUrl||(this._opts.clientUrl=jsio.__dir+"/networkConsole.html");this._port=""+(this._opts.port||"")};this.listen=function(){$.onEvent(window,"message",bind(this,"_onMessage"))};this.getButton=function(a,b){var c=$({tagName:"button",text:b||"launch client",className:"clientButton"});$.onEvent(c,"click",bind(this,"openWindow",a||this._opts.clientUrl));return c};var c=\n1;this.openWindow=function(a){var b={menubar:"no",location:"no",toolbar:"no",width:550,height:350,scrollbars:"yes",status:"yes",resizable:"yes"},f=[],d;for(d in b)f.push(d+"="+b[d]);window.open(a,"W"+c++,f.join(",")).focus()};this._onMessage=function(a){if("string"==typeof a.data&&this._port==a.data.substring(0,this._port.length)){var b=a.data.substring(this._port.length);try{b=JSON.parse(b)}catch(c){logger.warn("invalid packet",a.data);return}switch(b.type){case "open":var d=this._clients[b.uid]=\nnew exports.Transport(a.source,this._port,b.uid);a.source.postMessage(this._port+JSON.stringify({type:"open",uid:b.uid}),"*");this.onConnect(d);break;case "data":if(d=this._clients[b.uid])d.onData(b.payload);break;case "close":if(d=this._clients[b.uid])d.onClose();a.source.postMessage(this._port+JSON.stringify({type:"close",uid:b.uid}),"*");delete this._clients[b.uid]}}}});\nexports.Connector=Class(net.interfaces.Connector,function(){this.connect=function(){this._port=""+(this._opts.port||"");this._win=this._opts.win||window.opener||window.parent;$.onEvent(window,"message",bind(this,"_onMessage"));this._uid=std.uuid.uuid();this._win.postMessage(this._port+JSON.stringify({type:"open",uid:this._uid}),"*")};this._onMessage=function(a){if("string"==typeof a.data&&this._port==a.data.substring(0,this._port.length)){var c=a.data.substring(this._port.length);try{c=JSON.parse(c)}catch(e){logger.warn("invalid packet",\na.data);return}switch(c.type){case "open":this._transport=new exports.Transport(a.source,this._port,this._uid);this.onConnect(this._transport);break;case "close":if(c.uid!=this._uid)break;this._transport.onClose();break;case "data":if(c.uid!=this._uid)break;this._transport.onData(c.payload)}}}});\nexports.Transport=Class(net.interfaces.Transport,function(){this.init=function(a,c,e){if(!e)debugger;this._win=a;this._port=c;this._uid=e};this.makeConnection=function(a){this._protocol=a};this.write=function(a,c){"utf8"==this.encoding?this._win.postMessage(this._port+JSON.stringify({type:"data",uid:this._uid,payload:utf8.encode(a)}),"*"):this._win.postMessage(this._port+JSON.stringify({type:"data",uid:this._uid,payload:a}),"*")};this.loseConnection=function(a){this._win.postMessage(this._port+JSON.stringify({type:"close",\nuid:this._uid,code:301}),"*")};this.onData=function(){this._protocol.dataReceived.apply(this._protocol,arguments)};this.onClose=function(){this._protocol._connectionLost.apply(this._protocol,arguments)}});\n',
pre:!0},"net/env/browser/socketio.js":{path:"net/env/browser/socketio.js",friendlyPath:"jsio.net.env.browser.socketio",directory:"net/env/browser/",filename:"socketio.js",src:'jsio("import lib.Callback");jsio("import net.interfaces");jsio("import std.utf8 as utf8");var _script,_scriptOnLoad=new lib.Callback;\nexports.Connector=Class(net.interfaces.Connector,function(){this.connect=function(){this._state=net.interfaces.STATE.CONNECTING;var a=this._opts.url||"/";/\\/$/.test(a)||(a+="/");"function"!=typeof io&&"undefined"!=typeof document?(_script=document.createElement("script"),_script.onload=_script.onreadystatechange=function(){"function"==typeof io&&(_script.onload=_script.onreadystatechange=null,_scriptOnLoad.fire(io))},_script.src="/socket.io/socket.io.js",document.getElementsByTagName("head")[0].appendChild(_script)):\n_scriptOnLoad.hasFired()||_scriptOnLoad.fire(io);_scriptOnLoad.run(bind(this,"_connect"))};this._connect=function(a){logger.debug("opening the connection");a=a(window.location.origin+this._opts.namespace,{multiplex:!1});var b=new Transport(a),b=bind(this,"onConnect",b);a.on("disconnect",bind(this,"onDisconnect"));if(a.connected)b();else a.on("connect",b)}});\nvar Transport=Class(net.interfaces.Transport,function(){this.init=function(a){this._socket=a};this.makeConnection=function(a){this._socket.on("message",bind(a,"dataReceived"))};this.write=function(a){this._socket.send(a)};this.loseConnection=function(a){this._socket.close()}});\n',
pre:!0},"net/env/browser/websocket.js":{path:"net/env/browser/websocket.js",friendlyPath:"jsio.net.env.browser.websocket",directory:"net/env/browser/",filename:"websocket.js",src:'jsio("import net.interfaces");jsio("import std.utf8 as utf8");jsio("import net.errors as Errors");\nexports.Connector=Class(net.interfaces.Connector,function(){this.connect=function(){this._state=net.interfaces.STATE.CONNECTING;var a=this._opts.url,b=this._opts.wsConstructor||window.WebSocket;logger.info("this._opts",this._opts);a=new b(a);a.onopen=bind(this,"webSocketOnOpen",a);a.onclose=bind(this,"webSocketOnClose",a)};this.webSocketOnOpen=function(a){this.onConnect(new Transport(a))};this.webSocketOnClose=function(a,b){var c;c={rawError:b,webSocket:a};c=b.wasClean?new Errors.ServerClosedConnection("WebSocket Connection Closed",\nc):this._state==net.interfaces.STATE.CONNECTED?new Errors.ConnectionTimeout("WebSocket Connection Timed Out",c):new Errors.ServerUnreachable("WebSocket Connection Failed",c);logger.debug("conn closed",c);this.onDisconnect(c)}});\nvar Transport=Class(net.interfaces.Transport,function(){this.init=function(a){this._ws=a};this.makeConnection=function(a){this._ws.onmessage=function(b){b=utf8.encode(b.data);a.dataReceived(b)}};this.write=function(a,b){"plain"==this._encoding&&(result=utf8.decode(a),a=result[0]);this._ws.send(a)};this.loseConnection=function(a){this._ws.close()}});\n',
pre:!0},"net/env/node/csp/index.js":{path:"net/env/node/csp/index.js",friendlyPath:"jsio.net.env.node.csp.index",directory:"net/env/node/csp/",filename:"index.js",src:'jsio("import ....interfaces");jsio("import .server");var Transport=Class(interfaces.Transport,function(){this.init=function(a){this._socket=a;logger.debug("init",a)};this.makeConnection=function(a){logger.debug("makeConnection:",a);this._socket.addListener("receive",bind(a,"dataReceived"));this._socket.addListener("close",bind(a,"_connectionLost"))};this.write=function(a){this._socket.send(a)};this.loseConnection=function(){this._socket.forceClose()}});\nexports.Listener=Class(interfaces.Listener,function(a){this.listen=function(){var a=server.createServer(bind(this,"_onConnect"));this._cspServer=a;var b=(this._opts["interface"]||"")+":"+this._opts.port;this._opts.app?(a=this._opts.app,b=this.createMiddleware(),this._opts.url?a.use(this._opts.url,b):a.use(b)):this._opts.skipListen||(logger.info("Listening csp@"+b),a.listen(this._opts.port,this._opts["interface"]||""))};this._onConnect=function(a){logger.info("Incoming connection");a.setEncoding("utf8");\na.addListener("connect",bind(this,function(){this.onConnect(new Transport(a))}))};this.createMiddleware=function(){return bind(this._cspServer,"_handleRequest")}});\n',
pre:!0},"net/interfaces.js":{path:"net/interfaces.js",friendlyPath:"....interfaces",directory:"net/",filename:"interfaces.js",src:'jsio("import .index as net");jsio("import ..lib.Enum as Enum");jsio("import ..lib.PubSub as PubSub");var ctx=jsio.__env.global;\nexports.Protocol=Class(function(){this.connectionMade=function(a){};this.dataReceived=function(a){};this.connectionLost=function(a){};this._connectionMade=function(){this._isConnected=!0;this.connectionMade.apply(this,arguments)};this._connectionLost=function(){this._isConnected=!1;this.connectionLost.apply(this,arguments)};this._isConnected=!1;this.isConnected=function(){return!!this._isConnected};this.end=function(){this.transport&&this.transport.loseConnection()}});\nexports.Client=Class(function(){this.init=function(a){this._protocol=a};this.connect=function(a,b){this._remote=new this._protocol;this._remote._client=this;net.connect(this._remote,a,b)}});exports.Server=Class(function(){this.init=function(a){this._protocolClass=a};this.buildProtocol=function(){return new this._protocolClass};this.listen=function(a,b){return net.listen(this,a,b)}});\nexports.Transport=Class(function(){this._encoding="plain";this.write=function(a,b){throw Error("Not implemented");};this.getPeer=function(){throw Error("Not implemented");};this.setEncoding=function(a){this._encoding=a};this.getEncoding=function(){return this._encoding}});\nexports.Listener=Class(PubSub,function(){this.init=function(a,b){this._server=a;this._opts=b||{}};this.onConnect=function(a){var b=this._server.buildProtocol();b.transport=a;b.server=this._server;a.protocol=b;a.makeConnection(b);b._connectionMade()};this.listen=function(){throw Error("Abstract class");};this.stop=function(){}});exports.STATE=Enum("INITIAL","DISCONNECTED","CONNECTING","CONNECTED");\nexports.Connector=Class(function(){this.init=function(a,b){this._protocol=a;this._opts=b;this._state=exports.STATE.INITIAL};this.getState=function(){return this._state};this.onConnect=function(a){this._state=exports.STATE.CONNECTED;a.makeConnection(this._protocol);this._protocol.transport=a;try{this._protocol._connectionMade()}catch(b){throw logger.error(b);}};this.onDisconnect=function(a){var b=this._state==exports.STATE.CONNECTED;this._state=exports.STATE.DISCONNECTED;try{this._protocol._connectionLost(a,\nb)}catch(c){throw logger.error(c);}};this.getProtocol=function(){return this._protocol}});\n',
pre:!0},"net/index.js":{path:"net/index.js",friendlyPath:".index",directory:"net/",filename:"index.js",src:'jsio("import .env");jsio("import ..std.JSON as JSON");jsio("import .interfaces");JSON.createGlobal();exports.listen=function(a,b,c){if(!b)throw logger.error("No transport provided for net.listen");a=new ("string"==typeof b?env.getListener(b):b)(a,c);a.listen();return a};exports.connect=function(a,b,c){a=new ("string"==typeof b?env.getConnector(b):b)(a,c);a.connect();return a};exports.quickServer=function(a){return new interfaces.Server(a)};\n',
pre:!0},"net/env/index.js":{path:"net/env/index.js",friendlyPath:".env",directory:"net/env/",filename:"index.js",src:'function getObj(c,a,b){try{jsio("from ."+(b||jsio.__env.name)+"."+a+" import "+c+" as result")}catch(d){throw logger.error("Invalid transport (",a,") or environment (",b,")",d);}return result}exports.getListener=bind(this,getObj,"Listener");exports.getConnector=bind(this,getObj,"Connector");\n',pre:!0},"std/JSON.js":{path:"std/JSON.js",friendlyPath:"..std.JSON",directory:"std/",filename:"JSON.js",
src:'exports.createGlobal=function(){"undefined"==typeof JSON&&(JSON={});"function"!==typeof JSON.stringify&&(JSON.stringify=exports.stringify);"function"!==typeof JSON.parse&&(JSON.parse=exports.parse)};\n(function(){function q(a){r.lastIndex=0;return r.test(a)?\'"\'+a.replace(r,function(a){var c=t[a];return"string"===typeof c?c:"\\\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+\'"\':\'"\'+a+\'"\'}function p(a,l){var c=e,b=l[a];b&&"object"===typeof b&&"function"===typeof b.toJSON&&(b=b.toJSON(a));"function"===typeof m&&(b=m.call(l,a,b));switch(typeof b){case "string":return q(b);case "number":return isFinite(b)?String(b):"null";case "boolean":return String(b);case "object":if(null===b)return"null";if(b.constructor===\nDate)return exports.stringifyDate(b);e+=n;var g=[];if(b.constructor===Array){for(var k=b.length,d=0;d<k;d+=1)g[d]=p(d,b)||"null";var h=0===g.length?"[]":e?"[\\n"+e+g.join(",\\n"+e)+"\\n"+c+"]":"["+g.join(",")+"]";e=c;return h}if(m&&"object"===typeof m)for(k=m.length,d=0;d<k;d+=1){var f=m[d];"string"===typeof f&&(h=p(f,b))&&g.push(q(f)+(e?": ":":")+h)}else for(f in b)Object.hasOwnProperty.call(b,f)&&(h=p(f,b))&&g.push(q(f)+(e?": ":":")+h);h=0===g.length?"{}":e?"{\\n"+e+g.join(",\\n"+e)+"\\n"+c+"}":"{"+g.join(",")+\n"}";e=c;return h}}var s=/[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,r=/[\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,e,n,t={"\\b":"\\\\b","\\t":"\\\\t","\\n":"\\\\n","\\f":"\\\\f","\\r":"\\\\r",\'"\':\'\\\\"\',"\\\\":"\\\\\\\\"},m;exports.stringify=function(a,l,c){n=e="";if("number"===typeof c)for(var b=0;b<c;b+=1)n+=" ";else"string"===typeof c&&(n=c);if((m=l)&&"function"!==typeof l&&("object"!==\ntypeof l||"number"!==typeof l.length))throw Error("JSON stringify: invalid replacer");return p("",{"":a})};exports.stringifyDate=function(a){var e=a.getUTCFullYear(),c=a.getUTCMonth()+1,b=a.getUTCDate(),g=a.getUTCHours(),k=a.getUTCMinutes(),d=a.getUTCSeconds();a=a.getUTCMilliseconds();10>c&&(c="0"+c);10>b&&(b="0"+b);10>g&&(g="0"+g);10>k&&(k="0"+k);10>d&&(d="0"+d);10>a?a="00"+a:100>a&&(a="0"+a);return\'"\'+e+"-"+c+"-"+b+"T"+g+":"+k+":"+d+"."+a+\'Z"\'};exports.parse=function(a,e){s.lastIndex=0;s.test(a)&&\n(a=a.replace(s,function(a){return"\\\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\\],:{}\\s]*$/.test(a.replace(/\\\\(?:["\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\\\\n\\r]*"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,"]").replace(/(?:^|:|,)(?:\\s*\\[)+/g,""))){var c=eval("("+a+")");if(e){var b=function(a,c){var d,h,f=a[c];if(f&&"object"===typeof f)for(d in f)Object.hasOwnProperty.call(f,d)&&(h=b(f,d),void 0!==h?f[d]=h:delete f[d]);return e.call(a,c,f)};return b({"":c},"")}return c}throw new SyntaxError("JSON.parse");\n}})();\n',
pre:!0},"net/env/node/csp/server.js":{path:"net/env/node/csp/server.js",friendlyPath:".server",directory:"net/env/node/csp/",filename:"server.js",src:'jsio("import .....std.uuid as uuid");jsio("import .....std.utf8 as utf8");jsio("import .....std.base64 as base64");jsio("import .....lib.Hash as Hash");jsio("from .util import *");var http=require("http"),nodeUrl=require("url"),sessionDict={},varNames={ct:"contentType",ps:"prebufferSize",p:"preamble",rp:"requestPrefix",rs:"requestSuffix",bp:"batchPrefix",bs:"batchSuffix",i:"interval",du:"duration",is:"isStreaming",g:"gzipOk",se:"sse"};\nexports.Session=Class(function(){this.init=function(){this.key=uuid.uuid(8);sessionDict[this.key]=this;this.connection=null;this.outgoingPacketBuffer=[];this.incomingPacketBuffer=[];this.lastSequentialIncomingId=0;this.timeoutTimer=this.intervalTimer=this.durationTimer=this.cometResponse=null;this.outgoingPacketId=1;this.variables={contentType:"text/html",prebuffer:"",preamble:"",requestPrefix:"",requestSuffix:"",batchPrefix:"",batchSuffix:"",interval:"0",duration:"30",isStreaming:"0",gzipOk:"",sse:""};\nthis.resetTimeoutTimer()};this.teardownSession=function(){clearTimeout(this.durationTimer);this.connection.readyState="open"===this.connection.readyState?"writeOnly":"closed";this.connection.emit("eof");delete sessionDict[this.key]};this.send=function(a){a="string"===typeof a&&/[^\\r\\n\\t\\x32-\\x7E]/.test(a)?[this.outgoingPacketId,1,base64.encode(a)]:[this.outgoingPacketId,0,a];this.outgoingPacketId+=1;this.outgoingPacketBuffer.push(a);this.cometResponse&&this.sendBatch([a])};this.close=function(){this.send(null);\nthis.connection.readyState="open"===this.connection.readyState?"readOnly":"closed";this.connection.emit("close")};var d=new Hash("gzipOk","contentType");this.updateVars=function(a){for(var c in a){var b=varNames[c];if(b){var k=a[c];d.contains(b)&&k!=this.variables[b]&&this.cometResponse&&this.completeResponse();b in this.variables?this.variables[b]=k:"prebufferSize"==b&&(b=parseInt(k),0<b&&(this.variables.prebuffer=Array(b+1).join(" ")))}}};this.isStreaming=function(){return"1"===this.variables.isStreaming&&\n0<parseInt(this.variables.duration)};this.resetDurationTimer=function(){var a=1E3*parseInt(this.variables.duration);this.durationTimer=setTimeout(bind(this,this.completeResponse),a)};this.resetIntervalTimer=function(){clearTimeout(this.intervalTimer);if("0"!==this.variables.interval){var a=1E3*parseInt(this.variables.interval);this.intervalTimer=setTimeout(bind(this,this.sendBatch),a)}};this.resetTimeoutTimer=function(){clearTimeout(this.timeoutTimer);var a=1500*parseInt(this.variables.duration);\nthis.timeoutTimer=setTimeout(bind(this,this.teardownSession),a)};this.sendHeaders=function(a,c){"stream"===c?a.writeHead(200,{"Content-Type":this.variables.contentType,"Cache-Control":"no-cache, must-revalidate","Transfer-Encoding":"chunked","Access-Control-Allow-Origin":"*"}):0<=c&&a.writeHead(200,{"Content-Type":this.variables.contentType,"Cache-Control":"no-cache, must-revalidate","Content-Length":c,"Access-Control-Allow-Origin":"*"})};this.startStream=function(){this.sendHeaders(this.cometResponse,\n"stream");var a=this.variables.prebuffer+this.variables.preamble;a&&this.cometResponse.write(a);this.resetIntervalTimer()};this.sendBatch=function(a){a||(a=[]);var c=this.variables.batchPrefix+"(",b=")"+this.variables.batchSuffix;"1"===this.variables.sse&&a&&(b+="id: "+a[a.length-1][0]+"\\r\\n");a=c+JSON.stringify(a)+b;this.isStreaming()?(this.cometResponse.write(a),this.resetIntervalTimer()):(a=this.variables.prebuffer+this.variables.preamble+a,this.sendHeaders(this.cometResponse,a.length),this.cometResponse.write(a),\nthis.cometResponse.end(),this.cometResponse=null,clearTimeout(this.durationTimer))};this.completeResponse=function(){this.isStreaming()?(this.cometResponse.end(),this.cometResponse=null,clearTimeout(this.durationTimer),clearTimeout(this.intervalTimer)):this.sendBatch()};this.receiveAck=function(a){for(this.resetTimeoutTimer();this.outgoingPacketBuffer.length&&a>=this.outgoingPacketBuffer[0][0];)this.outgoingPacketBuffer.shift()};this.renderResponse=function(a,c){c=this.variables.requestPrefix+"("+\nc+(")"+this.variables.requestSuffix);this.sendHeaders(a,c.length);a.write(c);a.end()};this.dispatch={handshake:function(a,c){this.renderResponse(c,JSON.stringify({session:this.key}))},comet:function(a,c){this.cometResponse=c;this.isStreaming()&&this.startStream();this.outgoingPacketBuffer.length&&this.sendBatch(this.outgoingPacketBuffer);this.outgoingPacketBuffer.length&&!this.isStreaming()||this.resetDurationTimer()},send:function(a,c){var b=JSON.parse(a.data);for(logger.debug("received packet batch:",\nb);void 0!=b[0];){var d,f=b.shift(),e=f[0],h=f[1],f=f[2];if(null===f)this.close();else if(0===h)d=f;else if(1===h)d=base64.decode(f);else{logger.debug("BAD PACKET ENCODING,",h,"... dropping packet");break}this.incomingPacketBuffer[e-1-this.lastSequentialIncomingId]=d}for(logger.debug("incomingPacketBuffer",this.incomingPacketBuffer);void 0!==this.incomingPacketBuffer[0];)b=this.incomingPacketBuffer.shift(),this.lastSequentialIncomingId+=1,this.connection._receive(b);this.renderResponse(c,\'"OK"\')},\nclose:function(a,c){this.teardownSession();this.renderResponse(c,\'"OK"\')},reflect:function(a,c){var b=a.data;this.sendHeaders(c,b.length);c.write(b);c.end()},streamtest:function(a,c){logger.debug("streamtest")}}});\nexports.Connection=Class(process.EventEmitter,function(){this.init=function(a){this.remoteAddress=null;this.readyState="open";this._session=a;this._encoding="binary";this._utf8buffer=""};this._receive=function(a){if("utf8"===this._encoding){this._utf8buffer+=a;var b=utf8.decode(this._utf8buffer);a=b[0];this._utf8buffer=this._utf8buffer.slice(b[1])}this.emit("receive",a)};var d=new Hash("utf8","plain","binary");this.setEncoding=function(a){assert(d.contains(a),"unrecognized encoding: "+a);"utf8"!==\na&&assert(!this._utf8buffer,"cannot switch encodings with dirty utf8 buffer");this._encoding=a};var a=new Hash("writeOnly","open");this.send=function(c,b){if(!a.contains(this.readyState))throw Error("Socket is not writable in readyState: "+this.readyState);b=b||this._encoding||"binary";assert(d.contains(b),"unrecognized encoding: "+b);c="utf8"===b?utf8.encode(c):c;this._session.send(c)};this.close=function(){this._session.close()}});\nexports.createServer=function(d){return(new exports.Server).addListener("connection",d)};\nexports.Server=Class(process.EventEmitter,function(){this.init=function(a){process.EventEmitter.call(this);this._sessionUrl=a||"";log("starting server, session url is <"+this._sessionUrl+">")};var d=Class(AssertionError,function(a){this.name="CSPError";this.init=function(c){a(this,"init",b);this.code=c;var b=Array.prototype.slice.call(arguments,1)}}),a=function(a,c,b){if(!a)throw new d(c,b);},c=function(a,c,b){a.writeHead(c,{"Content-Type":"text/plain","Content-Length":b.length});a.write(b);a.end()},\nb=function(a,c){if("GET"===a.method)reschedule(function(){c("")});else{var b=[];a.setEncoding("binary");a.addListener("data",function(a){b.push(a)}).addListener("end",function(){c(b.join(""))})}},k=new Hash("static","handshake","comet","send","close","reflect","streamtest"),f=new Hash("GET","POST");this._handleRequest=function(e,h){b(e,bind(this,function(b){logger.debug("received request",e.url);try{var r=nodeUrl.parse(e.url,!0),n=r.pathname,s=this._sessionUrl;a(startswith(n,s+"/"),404,"Request to invalid session URL");\nlogger.debug(e.method);a(f.contains(e.method),405,"Invalid HTTP method, "+e.method);var p=n.split("/").pop();if("static"===p)a(startswith(n,s+"/"),404,"sendStatic Not Implemented");else{a(k.contains(p),404,"Invalid resource, "+n);var l=r.query;e.data=b||l.d||null;if("handshake"===p){a(!l.s,400,"Handshake cannot have session");try{var t=JSON.parse(e.data);assert(t instanceof Object&&!(t instanceof Array))}catch(u){throw logger.debug("INVALID HANDSHAKE, ",e,u),new d(400,"Invalid data parameter for handshake");\n}var g=new exports.Session,q=new exports.Connection(g);g.connection=q;this.emit("connection",q);q.emit("connect")}else{g=sessionDict[l.s];a(g,400,"Invalid or missing session");var v=parseInt(e.headers["Last-Event-Id"])||parseInt(l.a)||-1;g.receiveAck(v)}g.updateVars(l);g.dispatch[p].call(g,e,h)}}catch(m){m instanceof d?c(h,m.code,m.message):(logger.warn("Unexpected Error: ",m.message,m.stack),c(h,500,"Unknown Server error"))}}))};this.listen=function(a,b){var c=http.createServer(bind(this,this._handleRequest));\nif(!a)throw logger.error("No port specified");c.listen(a,b)}});\n',
pre:!0},"std/base64.js":{path:"std/base64.js",friendlyPath:".....std.base64",directory:"std/",filename:"base64.js",src:'for(var alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",trailingPad="=",padChar=alphabet.charAt(alphabet.length-1),decodeMap={},i=0,len=alphabet.length;i<len;i++)decodeMap[alphabet.charAt(i)]=i;var alphabet_inverse=new RegExp("[^"+alphabet.replace("-","\\\\-")+"]");exports.Base64CodecError=Class(Error,function(a){this.name="Base64CodecError";this.init=function(a){this.message=a}});var assertOrBadInput=function(a,b){if(!a)throw new exports.Base64CodecError(b);};\nexports.encode=function(a,b){assertOrBadInput(!/[^\\x00-\\xFF]/.test(a),"Input contains out-of-range characters.");var d=a.length%3,c="\\x00\\x00\\x00".slice(d||3);a+=c;for(var e=[],f=0,h=a.length;f<h;f+=3){var g=(a.charCodeAt(f)<<16)+(a.charCodeAt(f+1)<<8)+a.charCodeAt(f+2);e.push(alphabet.charAt(g>>18&63),alphabet.charAt(g>>12&63),alphabet.charAt(g>>6&63),alphabet.charAt(g&63))}e.length-=c.length;c=e.join("");b||(1==d?c+="==":2==d&&(c+="="));return c};\nexports.decode=function(a){logger.debug("decode",a);a=a.replace(/\\s/g,"");for(var b=a.length;a.charAt(--b)===trailingPad;);a=a.slice(0,b+1);assertOrBadInput(!alphabet_inverse.test(a),"Input contains out-of-range characters.");var d=4-(a.length%4||4),c=Array(d+1).join(padChar);a+=c;for(var c=[],e=b+d+1,b=0;b<e;b+=4)newchars=(decodeMap[a.charAt(b)]<<18)+(decodeMap[a.charAt(b+1)]<<12)+(decodeMap[a.charAt(b+2)]<<6)+decodeMap[a.charAt(b+3)],c.push(newchars>>16&255,newchars>>8&255,newchars&255);e=c.length-=\nd;if(65536<e){a=[];for(d=b=0;b<e;)a[d++]=String.fromCharCode.apply(String,c.slice(b,b+65536)),b+=65536;a=a.join("")}else a=String.fromCharCode.apply(String,c);logger.debug("decoded",a);return a};\n',
pre:!0},"net/env/node/csp/util.js":{path:"net/env/node/csp/util.js",friendlyPath:".util",directory:"net/env/node/csp/",filename:"util.js",src:'exports.startswith=function(a,b){return a.substring(0,b.length)==b};exports.JSIOError=Class(Error,function(){this.name="JSIOError";this.toString=Error.prototype.toString;this.init=function(a,b,c){this.name=this.name;this.message=a||"";this.fileName=b||"\\u00abfilename\\u00bb";this.lineNumber=isNaN(+c)?0:+c}});exports.AssertionError=Class(exports.JSIOError,function(a){this.name="AssertionError";this.init=function(){a(this,"init",arguments)}});\nexports.assert=function(a,b){if(!a)throw new exports.AssertionError(b);};exports.reschedule=function(a){return setTimeout(a,0)};exports.staticFile=function(){var a={};return function(b,c){cacheContent=a[b];void 0!==cacheContent?exports.reschedule(function(){c(null,[cacheContent])}):process.fs.readFile(b,"utf8",function(d,e){d?c("staticFile readFile error "+d):(a[b]=e,c(null,[e]))});return promise}}();\n',
pre:!0},"net/env/node/csp/proxy.js":{path:"net/env/node/csp/proxy.js",friendlyPath:"jsio.net.env.node.csp.proxy",directory:"net/env/node/csp/",filename:"proxy.js",src:'jsio("from .util import *");jsio("from .server import csp");var msp=this.msp=exports;\n(function(){var g=["open","close","data"],e={InvalidHandshake:102,UserConnectionReset:103,RemoteConnectionTimeout:104,Unauthorized:106,RemoteConnectionFailed:108,RemoteConnectionClosed:109,ProtocolError:110};msp.ProxyConnection=Class(function(){this.init=function(a){this.inConnection=a;this.inBuffer="";this.outConnections={};this.inConnection.addListener("receive",bind(this,this.receiveData)).addListener("eof",bind(this,this.shutdown)).addListener("disconnect",bind(this,this.shutdown)).setEncoding("bytes")};\nthis.receiveData=function(a){var b;this.inBuffer+=a;try{for(;-1!=(b=this.inBuffer.indexOf("["));){var c=parseInt(this.inBuffer.slice(0,b))+b;assert(!isNaN(c),"Invalid frame size prefix");if(this.inBuffer.length<c)break;var d=JSON.parse(this.inBuffer.slice(b,c));this.inBuffer=this.inBuffer.slice(c);assert(d instanceof Array&&2<=d.length,"Invalid frame");var e=d.shift(),f=g[d.shift()];assert(f,"Unrecognized frame type");a=d;a.unshift(e);dispatchFrame[f].apply(this,a)}}catch(h){debug("PROTOCOL ERROR: ",\nh.message||"unknown error"),this.shutdown(!0)}};this.shutdown=function(a){for(var b in this.outConnections)a?this.closeOutgoing(b,"ProtocolError"):this.closeOutgoing(b,"UserConnectionReset")};this.send=function(a){payload=JSON.stringify(a);this.inConnection.send(payload.length+","+payload,"bytes")};this.closeOutgoing=function(a,b){a in this.outConnections&&(this.send([a,1,e[b]]),this.outConnections[a].close(),delete this.outConnections[a])};this.dispatchFrame={open:function(a,b,c){assert(!(a in this.outConnections),\n"OPEN frame for existing connection");assert(b&&c,"Invalid host or port");b=this.outConnections[a]=node.tcp.createConnection(c,b);b.setEncoding("bytes");b.addListener("connect",function(){this.send([a,0])}).addListener("receive",function(b){this.send([a,2,b])}).addListener("eof",function(){this.closeOutgoing(a,"RemoteConnectionClosed")}).addListener("disconnect",function(b){this.closeOutgoing(a,"RemoteConnectionClosed")})},close:function(a){this.closeOutgoing(a,"UserConnectionReset")},data:function(a,\nb){b=unescape(b);this.outConnections[a].send(b,"bytes")}}});msp.Proxy=Class(function(){this.init=function(){this.cspserver=csp.createServer(function(a){proxyConnection=new msp.ProxyConnection(a)})};this.listen=function(a,b){this.cspserver.listen(a,b)}})})();function start_server(){(new msp.Proxy).listen(8050);log("Proxying from http://:8050")}start_server();\n',
pre:!0},"net/env/node/socketio.js":{path:"net/env/node/socketio.js",friendlyPath:"jsio.net.env.node.socketio",directory:"net/env/node/",filename:"socketio.js",src:'jsio("import ...interfaces");var Transport=Class(interfaces.Transport,function(){this.init=function(a){this._socket=a;logger.debug("init",a)};this.makeConnection=function(a){logger.debug("makeConnection:",a);this._socket.on("message",bind(a,"dataReceived"));this._socket.on("disconnect",bind(a,"_connectionLost"))};this.write=function(a){this._socket.send(a)};this.loseConnection=function(){this._socket.close()}});\nexports.Listener=Class(interfaces.Listener,function(a){this.listen=function(){if(this._opts.port){var a=require("http").Server();a.listen(this._opts.port);this._ioServer=this._opts.io(a)}else this._opts.io&&(this._ioServer=this._opts.namespace?this._opts.io.of(this._opts.namespace):this._opts.io);if(this._ioServer)this._ioServer.on("connection",bind(this,"_onConnect"));else logger.warn("socket.io not setup properly: please provide an io instance or an http port to the net.listen opts")};this._onConnect=\nfunction(a){logger.info("Incoming connection");this.onConnect(new Transport(a))}});\n',
pre:!0},"net/env/node/stdio.js":{path:"net/env/node/stdio.js",friendlyPath:"jsio.net.env.node.stdio",directory:"net/env/node/",filename:"stdio.js",src:'jsio("import ...interfaces");\nvar Transport=Class(interfaces.Transport,function(b){this.init=function(a,b){this._inStream=a;this._outStream=b;this.setEncoding("plain")};this.setEncoding=function(a){b(this,"setEncoding",arguments);"plain"==a&&(a="binary");this._inStream.setEncoding(a);this._outStream.setEncoding(a)};this.makeConnection=function(a){this._inStream.on("data",bind(a,"dataReceived"));this._inStream.on("end",bind(a,"connectionLost"))};this.write=function(a){this._outStream.write(a);this._outStream.flush()};this.loseConnection=\nfunction(){}});exports.Connector=Class(interfaces.Connector,function(){this.connect=function(){var b=process.openStdin(),b=new Transport(b,process.stdout);this.onConnect(b)}});\n',
pre:!0},"net/env/node/tcp.js":{path:"net/env/node/tcp.js",friendlyPath:"jsio.net.env.node.tcp",directory:"net/env/node/",filename:"tcp.js",src:'jsio("import ...interfaces");var net=require("net"),Transport=Class(interfaces.Transport,function(){this.init=function(a){this._socket=a};this.makeConnection=function(a){this._socket.addListener("data",bind(a,"dataReceived"));this._socket.addListener("close",bind(a,"connectionLost"))};this.write=function(a){this._socket.write(a)};this.loseConnection=function(){this._socket.end()}});\nexports.Connector=Class(interfaces.Connector,function(){this.connect=function(){var a=net.createConnection(this._opts.port,this._opts.host);a.addListener("connect",bind(this,function(){this.onConnect(new Transport(a))}));this._opts.encoding="plain";a.setEncoding("binary");"number"==typeof this._opts.timeout&&a.setTimeout(this._opts.timeout)}});\nexports.Listener=Class(interfaces.Listener,function(a){this.listen=function(){var a=net.createServer(bind(this,function(a){"number"==typeof this._opts.timeout&&a.setTimeout(this._opts.timeout);a.setEncoding("utf8");this.onConnect(new Transport(a))}));logger.info("Listening tcp@"+((this._opts["interface"]||"")+":"+this._opts.port));a.listen(this._opts.port,this._opts["interface"]||"").on("error",bind(this,function(a){logger.error(a);this.emit("error",a)}))}});\n',
pre:!0},"net/protocols/Cuppa.js":{path:"net/protocols/Cuppa.js",friendlyPath:"jsio.net.protocols.Cuppa",directory:"net/protocols/",filename:"Cuppa.js",src:'jsio("import jsio.lib.Callback");jsio("import jsio.lib.PubSub");jsio("from .rtjp import RTJPProtocol");\nvar Error=Class(function(){this.init=function(a,b,f,c,d){this.id=b;this.msg=f;this.details=c;this.requestId=d}}),RPCRequest=Class(function(){this.init=function(a,b){this.protocol=a;this.id=b;this._onError=new lib.Callback;this._onSuccess=new lib.Callback};this.onError=function(){this._onError.forward(arguments)};this.onSuccess=function(){this._onSuccess.forward(arguments)};this.bindLater=function(a){var b=[].slice(arguments,1);this._onError.forward([a,a.fail].concat(b));this._onSuccess.forward([a,\na.succed].concat(b));return a}}),ReceivedRequest=Class(function(){this.type="request";this.init=function(a,b,f,c,d){this.protocol=a;this.id=b;this.name=f;this.responded=!1;this.args=c;this.target=d};this.error=function(a,b){if(this.responded)throw Error("already responded");this._timer&&(clearTimeout(this._timer),this._timer=null);args={id:this.id,msg:a+""};void 0!==b&&(args.details=b);this.responded=!0;this.protocol.sendFrame("ERROR",args)};this.respond=function(a){if(this.responded)throw Error("already responded");\nthis._timer&&(clearTimeout(this._timer),this._timer=null);this.responded=!0;this.protocol.sendFrame("RESPONSE",{id:this.id,args:void 0==a?{}:a})};this.timeoutAfter=function(a,b){this.responded||(this._timer&&clearTimeout(this._timer),this._timer=setTimeout(bind(this,"_timeout",b),a))};this._timeout=function(a){this.responded||this.error(a)}}),ReceivedEvent=Class(function(){this.init=function(a,b,f,c,d){this.id=b;this.name=f;this.args=c;this.target=d}});\nexports=Class(RTJPProtocol,function(a){this.init=function(){a(this,"init",arguments);this._onConnect=new lib.Callback;this._onDisconnect=new lib.Callback;this._requests={};this.onEvent=new lib.PubSub;this.onRequest=new lib.PubSub};this.disconnect=function(){this.transport.loseConnection()};this.onConnect=function(){this._onConnect.forward(arguments)};this.onDisconnect=function(){this._onDisconnect.forward(arguments)};this.reset=function(){this._onConnect.reset();this._onDisconnect.reset()};this.connectionMade=\nfunction(){this._isConnected=!0;this._onConnect.fire()};this.connectionLost=function(b){for(var a in this._requests){var c=this._requests[a];delete this._requests[a];c._onError.fire(b)}this._isConnected=!1;this._onDisconnect.fire(b)};this.sendRequest=function(b,a,c,d){4<arguments.length&&(d=bind.apply(GLOBAL,Array.prototype.slice.call(arguments,3)));var e={name:b,args:a};c&&(e.target=c);e=this.sendFrame("RPC",e);e=this._requests[e]=new RPCRequest(this,e);d&&(e.onSuccess(GLOBAL,d,!1),e.onError(GLOBAL,\nd));return e};this.sendEvent=function(b,a,c){this.sendFrame("EVENT",{name:b,args:a,target:c||null})};this.frameReceived=function(b,a,c){logger.debug("RECEIVED",b,a,c);switch(a.toUpperCase()){case "RESPONSE":var d=this._requests[c.id];if(!d)break;delete this._requests[c.id];d._onSuccess.fire(c.args);break;case "ERROR":a=c.msg||"unknown";var e=c.id,d=this._requests[e];b=Error(this,b,a,c.details,e);if(d)delete this._requests[e],d._onError.fire(b);else return this.errorReceived&&this.errorReceived(b);\nbreak;case "RPC":case "EVENT":if(!c.name)return self.sendFrame("ERROR",{id:c.id||b,msg:\'missing "name"\'});var d=c.args||{},e=c.target||null,g="RPC"==a.toUpperCase();a=g?this.onRequest:this.onEvent;d=new (g?ReceivedRequest:ReceivedEvent)(this,c.id||b,c.name,d,e);a.publish(d.name,d)}}});\n',
pre:!0},"net/protocols/rtjp.js":{path:"net/protocols/rtjp.js",friendlyPath:".rtjp",directory:"net/protocols/",filename:"rtjp.js",src:'jsio("from .delimited import DelimitedProtocol");\nexports.RTJPProtocol=Class(DelimitedProtocol,function(d){this.init=function(){d(this,"init",["\\r\\n"]);this.frameId=0};this.connectionMade=function(){this._client&&this._client.connectionMade&&this._client.connectionMade();logger.debug("connectionMade")};this.frameReceived=function(b,a,c){};this.sendFrame=function(b,a){a||(a={});logger.debug("sendFrame",b,JSON.stringify(a));this.sendLine(JSON.stringify([++this.frameId,b,a]));return this.frameId};this.lineReceived=function(b){try{var a=JSON.parse(b);\nif(3!=a.length){logger.error("Invalid frame length");return}if("number"!=typeof a[0]){logger.error("Invalid frame id");return}if("string"!=typeof a[1]){logger.error("Invalid frame name");return}logger.debug("frameReceived:",a[0],a[1],JSON.stringify(a[2]))}catch(c){logger.error(c)}a&&this.frameReceived(a[0],a[1],a[2])};this.connectionLost=function(){logger.debug("conn lost")}});\n',
pre:!0},"net/protocols/delimited.js":{path:"net/protocols/delimited.js",friendlyPath:".delimited",directory:"net/protocols/",filename:"delimited.js",src:'jsio("import ..interfaces");\nexports.DelimitedProtocol=Class(interfaces.Protocol,function(c){this.init=function(a){a||(a="\\r\\n");this.delimiter=a;this.buffer=""};this.connectionMade=function(){logger.debug("connectionMade")};this.dataReceived=function(a){if(a)for(logger.debug("dataReceived:",a.length,a),this.buffer+=a;-1!=(a=this.buffer.indexOf(this.delimiter));){var b=this.buffer.slice(0,a);this.buffer=this.buffer.slice(a+this.delimiter.length);this.lineReceived(b)}};this.lineReceived=function(a){logger.debug("Not implemented, lineReceived:",a)};\nthis.sendLine=function(a){a+=this.delimiter;logger.debug("WRITE:",a);this.transport&&this.transport.write(a)};this.connectionLost=function(){logger.debug("connectionLost")}});\n',
pre:!0},"net/protocols/buffered.js":{path:"net/protocols/buffered.js",friendlyPath:"jsio.net.protocols.buffered",directory:"net/protocols/",filename:"buffered.js",src:'jsio("from net.interfaces import Protocol");jsio("from net.buffer import Buffer");exports.BufferedProtocol=Class(Protocol,function(b){this.init=function(){this.buffer=new Buffer};this.bufferUpdated=function(){};this.dataReceived=function(a){this.buffer.append(a);this.bufferUpdated()}});\n',pre:!0},"net/protocols/echo.js":{path:"net/protocols/echo.js",
friendlyPath:"jsio.net.protocols.echo",directory:"net/protocols/",filename:"echo.js",src:'jsio("import net.interfaces");exports.Protocol=Class(net.interfaces.Protocol,function(){this.connectionMade=function(){logger.debug("in connectionMade");this.transport.write("Welcome")};this.dataReceived=function(a){logger.debug("dataReceived:",a);this.transport.write("Echo: "+a)};this.connectionLost=function(){logger.debug("conn lost")}});exports.Server=Class(net.interfaces.Server,function(a){this.init=function(){a(this,"init",[exports.Protocol])}});\n',
pre:!0},"net/protocols/mspp.js":{path:"net/protocols/mspp.js",friendlyPath:"jsio.net.protocols.mspp",directory:"net/protocols/",filename:"mspp.js",src:'jsio("import net");jsio("from net.protocols.buffered import BufferedProtocol");jsio("import std.utf8 as utf8");var loggers={};loggers.stream=logging.get("MSPPStream");loggers.protocol=logging.get("MSPPProtocol");var frames={OPEN:0,CLOSE:1,DATA:2};\nexports.MSPPStream=Class(function(){this.setMultiplexer=function(b){loggers.stream.debug("setMultiplexer: "+b);this.multiplexer=b};this.setEncoding=function(b){loggers.stream.debug("setEncoding: "+b);this.encoding=b};this.open=function(b,a,e){e&&(this.encoding="utf8");this.id=this.multiplexer.openStream(this,b,a);loggers.stream.debug("open "+this.id+": "+b+" "+a+" "+e)};this.close=function(){loggers.stream.debug("close "+this.id);this.multiplexer.close(this.id)};this.send=function(b,a){loggers.stream.debug("send "+\nthis.id+": "+b+" "+a);"utf8"==(a||this.encoding)&&(b=utf8.encode(b));this.multiplexer.writeToStream(this.id,b)};this._onreadraw=function(b){if("utf8"==this.encoding){var a=utf8.decode(b);if(a[1]!=b.length)throw Error("Incomplete utf8 codepoint");b=a[0]}loggers.stream.debug("_onreadraw "+b);this.onread(b)};this.onopen=function(){};this.onclose=function(b){};this.onread=function(b){}});var state={closed:0,connecting:1,consuming:2};\nexports.MSPPProtocol=Class(BufferedProtocol,function(b){this.init=function(){loggers.protocol.debug("new MSPPProtocol");b(this,"init",[]);this.state=state.closed;this.transportOptions=this.transportType=null;this.currentId=0;this.streams={};this.writeBuffer=[]};this.setTransport=function(a,b){this.transportType=a;this.transportOptions=b};this.connectionMade=function(a){loggers.protocol.debug("connectionMade");this.state=state.consuming;for(a=0;a<this.writeBuffer.length;a++)this._write(this.writeBuffer[a]);\nwriteBuffer=[]};this.connectionLost=function(a){loggers.protocol.debug("closed: "+a);this.state=state.closed;for(var b in this.streams)this.streams[b].onclose(a)};this.openStream=function(a,b,c){this.state==state.closed&&(this.state=state.connecting,net.connect(this,this.transportType,this.transportOptions));var d=++this.currentId;this.streams[d]=a;this._write([d,frames.OPEN,b+","+c]);return d};this.closeStream=function(a){this._write([a,frames.CLOSE,""])};this.writeToStream=function(a,b){this._write([a,\nframes.DATA,b])};this.bufferUpdated=function(){loggers.protocol.debug("bufferUpdated. state: "+this.state+". buffer: "+this.buffer._rawBuffer);if(this.state!=state.consuming)throw Error("buffer update in invalid MSPP state: "+this.state);if(this.buffer.hasDelimiter(":")){var a=this.buffer.peekToDelimiter(":"),b=parseInt(a);if(this.buffer.hasBytes(b+a.length+1)){this.buffer.consumeThroughDelimiter(":");a=this.buffer.consumeToDelimiter(",");this.buffer.consumeBytes(1);var c=parseInt(this.buffer.consumeBytes(1)),\nb=b-(a.length+2),a=parseInt(a),b=this.buffer.consumeBytes(b);switch(c){case frames.OPEN:this.streams[a].onopen();break;case frames.CLOSE:this.streams[a].onclose(b);break;case frames.DATA:this.streams[a]._onreadraw(b);break;default:throw Error("invalid MSPP data type!");}}}};this._write=function(a){this.state!=state.consuming?(loggers.protocol.debug("buffering write: "+a),this.writeBuffer.push(a)):(a=a[0]+","+a[1]+a[2],a=a.length+":"+a,loggers.protocol.debug("write: "+a),this.transport.write(a))}});\n',
pre:!0},"net/protocols/stomp.js":{path:"net/protocols/stomp.js",friendlyPath:"jsio.net.protocols.stomp",directory:"net/protocols/",filename:"stomp.js",src:'jsio("from net.protocols.buffered import BufferedProtocol");jsio("from util.sprintf import sprintf");\nexports.StompProtocol=Class(BufferedProtocol,function(a){this.init=function(){a(this,"init",[]);this.state="peek"};this.connect=function(d,a){var b=new StompFrame("CONNECT");d&&b.setHeader("login",d);a&&b.setHeader("passcode",a);this.sendFrame(b)};this.send=function(a,c,b){c=new StompFrame("SEND",c,b);c.setHeader("destination",a);this.sendFrame(c)};this.subscribe=function(a,c){var b=new StompFrame("SUBSCRIBE",null,c);b.setHeader("destination",a);this.sendFrame(b)};this.unsubscribe=function(a,c){var b=\nnew StompFrame("UNSUBSCRIBE",null,c);b.setHeader("destination",a);this.sendFrame(b)};this.sendFrame=function(a){this.transport.write(a.serialize())};this.frameReceived=function(a){logger.info("frame received",a)};this.bufferUpdated=function(){logger.debug("bufferUpdated");for(var a=0;10>++a;)switch(this.state){case "peek":"\\n"==this.buffer.peekBytes(1)&&(logger.debug("consuming a single \\n byte"),this.buffer.consumeBytes(1)),this.state="method";case "method":logger.debug("case method");if(!this.buffer.hasLine())return;\nthis._frame=new StompFrame;var c=this.buffer.consumeThroughDelimiter();logger.debug("method is",JSON.stringify(c));this._frame.setMethod(c);this.state="headers";case "headers":logger.debug("case headers");for(c=0;this.buffer.hasLine()&&10>++c;){var b=this.buffer.consumeThroughDelimiter();if(0==b.length){this.state="body";break}for(var e=b.split(":"),b=e[0],e=e.slice(1).join(":");" "==e[0];)e=e.slice(1);for(;" "==e[1];)e=e.slice(0,e.length-1);logger.debug("add header",b,e);this._frame.setHeader(b,\ne)}if("headers"==this.state)return;case "body":if("length"==this._frame.getBodyMode()){if(!this.buffer.hasBytes(this._frame.getContentLength()+1))return;this._frame.setBody(this.buffer.consumeBytes(this._frame.getContentLength()));this.buffer.consumeBytes(1)}else{if(!this.buffer.hasLine("\\x00"))return;this._frame.setBody(this.buffer.consumeThroughDelimiter("\\x00"))}this.frameReceived(this._frame);this._frame=null;this.state="peek"}}});\nvar StompFrame=exports.StompFrame=Class(function(){this.init=function(a,d,c){this._headers=c?c:{};this._method=a?a:null;this._body=d?d:""};this.setHeader=function(a,d){this._headers[a]=d};this.getHeader=function(a){return this._headers[a]};this.getHeaders=function(){return this._headers};this.setMethod=function(a){this._method=a};this.getMethod=function(){return this._method};this.setBody=function(a){this._body=a};this.getbody=function(){return this._body};this.toString=function(){var a=0,d;for(d in this._headers)++a;\nreturn sprintf("[StompFrame method(%s), num-headers(%d), body-length(%d)]",this._method,a,this._body.length)};this.getContentLength=function(){return parseInt(this._headers["content-length"])};this.getBodyMode=function(){return"content-length"in this._headers?"length":"delimited"};this.serialize=function(){var a=this._method+"\\n",d;for(d in this._headers)a+=d+": "+this._headers[d]+"\\n";a+="content-length: "+this._body.length+"\\n";a=a+"\\n"+this._body;return a+="\\x00"}});\n',
pre:!0},"net/__imports__.js":{path:"net/__imports__.js",friendlyPath:"jsio.net.__imports__",directory:"net/",filename:"__imports__.js",pre:!0,src:'exports.map={node:["net.env.node.stdio"],browser:["net.env.browser.csp","net.env.browser.postmessage","net.env.browser.websocket","net.env.browser.socketio"],mobile:[]};exports.resolve=function(a,b){return exports.map[a]||[]};\n'},"net/buffer.js":{path:"net/buffer.js",friendlyPath:"jsio.net.buffer",directory:"net/",filename:"buffer.js",src:'jsio("from net.interfaces import Protocol");var EmptyBufferError=exports.EmptyBufferError=Class(function(){this.init=function(c){this.message=c}});\nexports.Buffer=Class(function(c){this.init=function(a){this._rawBuffer=a?a:""};this.getLength=function(){return this._rawBuffer.length};this.append=function(a){logger.debug("append",JSON.stringify(a));this._rawBuffer+=a};this.peekBytes=function(a){return a?this._rawBuffer.slice(0,a):this._rawBuffer};this.peekToDelimiter=function(a){a=a?a:"\\n";var b=this._rawBuffer.indexOf(a);if(-1==b)throw new EmptyBufferError("delimiter "+a+"not present in buffer");return this._rawBuffer.slice(0,b)};this.consumeBytes=\nfunction(a){a=this.peekBytes(a);this._rawBuffer=this._rawBuffer.slice(a.length);return a};this.consumeMaxBytes=function(a){var b=this._rawBuffer.slice(0,a);this._rawBuffer=this._rawBuffer(a);return b};this.consumeAllBytes=function(){var a=this._rawBuffer;this._rawBuffer="";return a};this.consumeThroughDelimiter=function(a){return this.consumeToDelimiter(a)+this.consumeBytes(a.length)};this.consumeToDelimiter=function(a){a=this.peekToDelimiter(a?a:"\\n");this._rawBuffer=this._rawBuffer.slice(a.length);\nreturn a};this.hasBytes=function(a){return this._rawBuffer.length>=(a?a:0)};this.hasDelimiter=function(a){return-1!=this._rawBuffer.indexOf(a?a:"\\n")}});\n',
pre:!0},"net/errors.js":{path:"net/errors.js",friendlyPath:"jsio.net.errors",directory:"net/",filename:"errors.js",src:'var makeErrorClass=function(b,d){var c=function(a){"string"==typeof a?this.message=a:this.data=a};c.prototype={type:b,toString:function(){return b+(this.message?": "+this.message:"")}};return c};exports.ReadyStateError=makeErrorClass("ReadyStateError");exports.InvalidEncodingError=makeErrorClass("InvalidEncodingError");exports.ExpiredSession=makeErrorClass("ExpiredSession");exports.ServerUnreachable=makeErrorClass("ServerUnreachable",100);\nexports.ConnectionTimeout=makeErrorClass("ConnectionTimeout",101);exports.ServerProtocolError=makeErrorClass("ServerProtocolError",200);exports.ServerClosedConnection=makeErrorClass("ServerClosedConnection",301);exports.ConnectionClosedCleanly=makeErrorClass("ConnectionClosedCleanly",300);\n',
pre:!0},"net/later.js":{path:"net/later.js",friendlyPath:"jsio.net.later",directory:"net/",filename:"later.js",src:'exports.Later=Class(function(){this.init=function(){this.eb=this.cb=null;this.values=[];this.errors=[];this.cancelback=null};this.succeed=this.callback=function(){logger.debug("callback",[].slice.call(arguments,0));this.cb?0==this.cb.apply(this,arguments)&&this.cancel():this.values.push(arguments)};this.fail=this.errback=function(){logger.debug("eb",[].slice.call(arguments,0));this.eb?this.eb.apply(this,arguments):this.errors.push(arguments)};this.cancel=function(){if(this.cancelback){var a=this.cancelback;\nthis.cancelback=null;a.call(this)}};this.setCallback=function(a){this.cb=a;a=0;for(var b;b=this.values[a];++a)this.cb.apply(this,b);this.values=[];return this};this.setErrback=function(a){this.eb=a;for(a=0;e=this.errors[a];++a)this.eb.apply(this,e);this.errors=[];return this};this.setCancelback=function(a){this.cancelback=a;return this}});exports.Later.fail=function(){var a=new Later;return a.fail.apply(a,arguments)};exports.Later.succeed=function(){var a=new Later;return a.succeed.apply(a,arguments)};\n',
pre:!0},"preprocessors/cls.js":{path:"preprocessors/cls.js",friendlyPath:"jsio.preprocessors.cls",directory:"preprocessors/",filename:"cls.js",src:'var classExport=/^(.*?)exports\\s*=\\s*Class\\s*\\(/gm,class2Export=/^(\\s*)(.*?[ \\t]+)?([a-zA-Z0-9\\.$]+)\\s*=\\s*Class\\s*\\(/gm;function replacer(a,b,d,c){return/\\/\\//.test(a)?a:b+c+"=__class__;"+(d||"")+c+"="+c+"(function "+c.replace(/[\\.]/g,"_")+"(){return this.init&&this.init.apply(this,arguments)},"}\nexports=function(a,b,d){a=b.path.replace(/(^[.\\/]+|\\.([^.]+?)$)/g,"").replace(/[\\:\\\\\\/\\-\\. ]/g,"_");b.src=b.src.replace(classExport,"var "+a+"=__class__;$1exports="+a+"(function "+a+"(){return this.init&&this.init.apply(this,arguments)},").replace(class2Export,replacer)};\n',
pre:!0},"preprocessors/import.js":{path:"preprocessors/import.js",friendlyPath:"jsio.preprocessors.import",directory:"preprocessors/",filename:"import.js",src:'var importExpr=/^(\\s*)(import\\s+[^=+*"\'\\r\\n;\\/]+|from\\s+[^=+"\'\\r\\n;\\/ ]+\\s+import\\s+[^=+"\'\\r\\n;\\/]+)(;|\\/|$)/gm;function replace(b,a,c,d){return/\\/\\//.test(a)?b:a+"jsio(\'"+c+"\')"+d}exports=function(b,a,c){a.src=a.src.replace(importExpr,replace)};\n',pre:!0},"preprocessors/inlineSlice.js":{path:"preprocessors/inlineSlice.js",
friendlyPath:"jsio.preprocessors.inlineSlice",directory:"preprocessors/",filename:"inlineSlice.js",src:'var sliceExpr=/INLINE_SLICE\\s*\\((.+),\\s*(.+)\\s*\\);/g;function replace(c,a,b){return"var "+a+" = new Array("+b+".length); var $_len = "+b+".length; for (var $_i = 0; $_i !== "+b+".length; $_i++) { "+a+"[$_i] = "+b+"[$_i]; }"}exports=function(c,a,b){a.src=a.src.replace(sliceExpr,replace)};\n',pre:!0},"preprocessors/logger.js":{path:"preprocessors/logger.js",friendlyPath:"jsio.preprocessors.logger",
directory:"preprocessors/",filename:"logger.js",src:'var loggerRegex=/logger\\.(log|warn|info|error|debug)\\(/g,delimiterRegex=/^(\\\\.|[\\(\\)"\'\\\\])/;exports=function(b,f,g){f.src=exports.replaceLogger(f.src,f.friendlyPath)};\nexports.replaceLogger=function(b,f){for(loggerRegex.lastIndex=0;;){var g=function(){var a;do{a=h();if(\'"\'==a||"\'"==a){var b=a,c=void 0;do c=h();while(c&&c!=b)}"("==a&&g()}while(a&&")"!=a)},h=function(){if(k.length)return k.shift();var a=(b[c]+b[c+1]).match(delimiterRegex);if(a)return c+=a[0].length,a[0];a="";do a+=b[c++];while(b[c]&&!delimiterRegex.test(b[c]));return a},d=loggerRegex.exec(b);if(!d)break;var c=d.index+d[0].length,k=[];g();var e=d[1],l=b.substring(d.index+d[0].length,c-1),e="logger."+\ne.toUpperCase()+"&&console."+e+\'("\'+e.toUpperCase()+\'","\'+f+\'",\'+l+")";b=b.substring(0,d.index)+e+b.substring(c);loggerRegex.lastIndex=d.index+e.length}return b};\n',
pre:!0},"std/XML.js":{path:"std/XML.js",friendlyPath:"jsio.std.XML",directory:"std/",filename:"XML.js",src:'exports.parseString=function(b){if("browser"==jsio.__env.name){if(window.ActiveXObject){var a=new ActiveXObject("Microsoft.XMLDOM");return a.loadXML(b)}a=new DOMParser;return a.parseFromString(b,"text/xml")}};\n',pre:!0},"std/uri.js":{path:"std/uri.js",friendlyPath:"jsio.std.uri",directory:"std/",filename:"uri.js",src:'var attrs="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),URI=exports=Class(function(a){this.init=function(b,a){if(b instanceof URI)for(var c=0,d;d=attrs[c];++c)this["_"+d]=b["_"+d];else for(d in this._isStrict=a,c=exports.parse(b,a),c)this["_"+d]=c[d]};a=0;for(var d;d=attrs[a];++a)(function(b){var a=b.charAt(0).toUpperCase()+b.slice(1);this["get"+a]=function(){return this["_"+b]};this["set"+a]=function(a){this["_"+b]=a;return this}}).call(this,\nd);this.query=function(b){return exports.parseQuery(this._query)[b]};this.hash=function(b){return exports.parseQuery(this._anchor)[b]};this.addHash=function(b){var a=exports.parseQuery(this._anchor),c;for(c in b)a[c]=b[c];this._anchor=exports.buildQuery(a);return this};this.push=function(b){b&&(this._path=(this._path+"/"+b).replace(/\\/\\/+/g,"/"));return this};this.addQuery=function(b){var a=exports.parseQuery(this._query),c;for(c in b)a[c]=b[c];this._query=exports.buildQuery(a);return this};this.removeQuery=\nfunction(b){var a=exports.parseQuery(this._query);if(isArray(b))for(var c=0,d=b.length;c<d;++c)delete a[b[c]];else delete a[b];this._query=exports.buildQuery(a);return this};this.toJSON=function(){return this.toString(!1)};this.toString=function(a){var d=this._protocol?this._protocol+"://":"",c=this._host?this._host+(80==(this._port||80)?"":":"+this._port):"";return a?d+c:d+c+this._path+(this._query?"?"+this._query:"")+(this._anchor?"#"+this._anchor:"")}});\nexports.relativeTo=function(a,d){a=String(a);if(d&&!/^http(s?):\\/\\//.test(a)){var b=(new exports(d)).setAnchor("").setQuery("").setFile("").toString("/"==a.charAt(0));a=exports.resolveRelative(b+a)}return new URI(a)};exports.resolveRelative=function(a){for(;a!=(a=a.replace(/(^|\\/)([^\\/]+)\\/\\.\\.\\//g,"/")););return a.replace(/[^.]\\.\\//g,"")};exports.buildQuery=function(a){var d=[],b;for(b in a)d.push(encodeURIComponent(b)+"="+encodeURIComponent(a[b]));return d.join("&")};\nexports.parseQuery=function(a){a=a.split("&");for(var d=a.length,b={},e=0;e<d;++e){var c=a[e].split("="),f=decodeURIComponent(c[0]);f&&(b[f]=decodeURIComponent(c[1]))}return b};\nvar strictRegex=/^(?:([^:\\/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?))?((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,looseRegex=/^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,queryStringRegex=/(?:^|&)([^&=]*)=?([^&]*)/g;\nexports.parse=function(a,d){for(var b={},e=(d?strictRegex:looseRegex).exec(a),c=0,f;f=attrs[c];++c)b[f]=e[c]||"";var g=b.queryKey={};b.query.replace(queryStringRegex,function(a,b,c){a&&(g[b]=c)});return b};exports.isSameDomain=function(a,d){var b=exports.parse(a),e=exports.parse(d);return b.port==e.port&&b.host==e.host&&b.protocol==e.protocol};\n',
pre:!0},"string/pad.js":{path:"string/pad.js",friendlyPath:"jsio.string.pad",directory:"string/",filename:"pad.js",src:'exports=function(a,c,b){a=String(a);for(b=b||" ";a.length<c;)a=b+a;return a};\n',pre:!0},"string/timeAgo.js":{path:"string/timeAgo.js",friendlyPath:"jsio.string.timeAgo",directory:"string/",filename:"timeAgo.js",src:'var FORMATS=[[60,"just now",1],[120,"1 minute ago","just now"],[3600,"minutes",60],[7200,"1 hour ago","1 hour from now"],[86400,"hours",3600],[172800,"yesterday","tomorrow"],[604800,"days",86400],[1209600,"last week","next week"],[2419200,"weeks",604800],[4838400,"last month","next month"],[29030400,"months",2419200],[58060800,"last year","next year"],[290304E4,"years",29030400],[580608E4,"last century","next century"],[580608E5,"centuries",290304E4]];\nexports=function(a,e,b,c){c=c||0;a instanceof Date?b=!1:("string"==typeof a?(a=(""+a).replace(/-/g,"/").replace(/[TZ]/g," ").replace(/^\\s+|\\s+$/g,""),"."==a.charAt(a.length-4)&&(a=a.substr(0,a.length-4))):b=!1,a=new Date(a));b=(new Date-a-c)/1E3+(b?60*(new Date).getTimezoneOffset():0);c="ago";e=1;0>b&&(b=-b,c="from now",e=2);if(60>b)return"just now";for(var f=0,d;d=FORMATS[f];++f)if(b<d[0])return"string"==typeof d[2]?d[e]:(b/d[2]|0)+" "+d[1]+" "+c;return a};\n',
pre:!0},"util/Animation.js":{path:"util/Animation.js",friendlyPath:"jsio.util.Animation",directory:"util/",filename:"Animation.js",src:'var SyncTimer=Class(function(){this.init=function(){this._items=[];this._tick=bind(this,"tick");this._length=0};this.tick=function(){var a=+new Date,b=a-this._last;this._last=a;for(a=0;a<this._length;++a)this._items[a](b)};this.add=function(a){a&&(this._items.push(a),++this._length,a(0),this.start())};this.remove=function(a){for(var b=0,c=this._items.length;b<c;++b)if(this._items[b]==a){this._items.splice(b,1);--this._length||this.stop();break}};this.start=function(){this._isRunning||(this._isRunning=\n!0,this._last=+new Date,this._timer=setInterval(this._tick,15))};this.stop=function(){this._isRunning&&(this._isRunning=!1,clearInterval(this._timer))}}),timer=new SyncTimer;\nexports=Class(function(){this.init=function(a){this._start="start"in a?a.start:0;this._end="end"in a?a.end:1;this._transition=a.transition||null;this._easing=a.easing||!1;this._subject=a.subject;this._duration=a.duration||1E3;this._s=a.current||this._start;this._onFinish=a.onFinish||null;this._range=this._end-this._start;this._isAnimating=!1;this._animate=bind(this,"animate");this._timer=null};this.stop=function(){this.jumpTo(this._s)};this.play=function(){this.seekTo(this._end)};this.seekTo=function(a,\nb){if(a!=this._s){this._t0=0;this._s0=this._s;this._s1=a;b&&(this._duration=b);this._ds=a-this._s;var c=this._ds/this._range*this._duration;this._dt=0>c?-c:c;this._isAnimating||(this._isAnimating=!0,timer.add(this._animate));return this}};this.onFinish=function(a){this._onFinish=a;return this};this.jumpTo=function(a){this._s1=this._s0=a;this._t0=0;this._dt=1;this._ds=0;this.animate(0);return this};this.animate=function(a){a=(this._t0+=a)/this._dt;1<a&&(a=1);this._s=this._s0+a*this._ds;var b=this._transition?\nthis._transition(this._s):this._s;try{this._subject(b,this._s)}finally{1==a&&(timer.remove(this._animate),this._isAnimating=!1,this._onFinish&&this._onFinish())}}});exports.linear=function(a){return a};exports.easeIn=function(a){return a*a};exports.easeInOut=function(a){return 1>(a*=2)?.5*a*a*a:.5*((a-=2)*a*a+2)};exports.easeOut=function(a){return a*(2-a)};\n',
pre:!0},"util/ajax.js":{path:"util/ajax.js",friendlyPath:"jsio.util.ajax",directory:"util/",filename:"ajax.js",src:'jsio("import std.uri as URI");exports.MAX_SIMULTANEOUS=4;var _inflight=0,doc;exports.getDoc=function(){if(doc)return doc;try{if(doc=window.ActiveXObject&&new ActiveXObject("htmlfile"))doc.open().write("<html></html>"),doc.close(),window.attachEvent("onunload",function(){try{doc.body.innerHTML=""}catch(a){}doc=null})}catch(b){}doc||(doc=document);return doc};\nvar ctor=function(){var b=window;exports.getDoc();return new (ctor=b.XMLHttpRequest?b.XMLHttpRequest:function(){return b.ActiveXObject&&new b.ActiveXObject("Msxml2.XMLHTTP")||null})};exports.createXHR=function(){return new ctor};exports.post=function(b,a){return exports.get(merge({method:"POST"},b),a)};\nvar Request=Class(function(){var b=0;this.init=function(a,c){"string"==typeof a&&(a={url:a});if(a&&a.url){this.method=(a.method||"GET").toUpperCase();this.url=a.url;this.type=a.type;this.async=a.async;this.timeout=a.timeout;this.withCredentials=!!a.withCredentials;this.id=++b;this.headers={};this.cb=c;if(a.headers)for(var d in a.headers)a.headers.hasOwnProperty(d)&&(this.headers[d]=a.headers[d]);d=a.data&&"object"==typeof a.data;"GET"==this.method&&a.data&&(this.url=(new URI(this.url)).addQuery(d?\na.data:URI.parseQuery(a.data)).toString());a.query&&(this.url=(new URI(this.url)).addQuery("object"==typeof a.query?a.query:URI.parseQuery(a.query)).toString());try{this.data="GET"!=this.method?d?JSON.stringify(a.data):a.data:null,d&&!this.headers["Content-Type"]&&(this.headers["Content-Type"]="application/json")}catch(e){c&&c({invalidData:!0},null,"")}}else logger.error("no url provided")}}),_pending=[];\nexports.get=function(b,a){var c=new Request(b,a);_inflight>=exports.MAX_SIMULTANEOUS?_pending.push(c):_send(c)};function _sendNext(){if(_inflight<exports.MAX_SIMULTANEOUS){var b=_pending.shift();b&&_send(b)}}\nfunction _send(b){++_inflight;var a=exports.createXHR();a.open(b.method,b.url,0!=b.async);var c=!1,d;for(d in b.headers)"content-type"==d.toLowerCase()&&(c=!0),a.setRequestHeader(d,b.headers[d]);a.withCredentials=b.withCredentials;c||a.setRequestHeader("Content-Type","text/plain");a.onreadystatechange=bind(this,onReadyStateChange,b,a);b.timeout&&(b.timeoutRef=setTimeout(bind(this,cancel,a,b),b.timeout));b.ts=+new Date;a.send(b.data||null)}\nfunction cancel(b,a){--_inflight;a.timedOut&&logger.log("already timed out?!");b.onreadystatechange=null;a.timedOut=!0;if(b.readyState>=b.HEADERS_RECEIVED)try{var c=b.getAllResponseHeaders()}catch(d){}a.cb&&a.cb({timeout:!0},null,c)}\nfunction onReadyStateChange(b,a){if(4==a.readyState){if(b.timedOut)throw"Unexpected?!";--_inflight;setTimeout(_sendNext,0);var c=b.cb;"timeoutRef"in b&&(clearTimeout(b.timeoutRef),b.timeoutRef=null);if(c&&!b.handled){b.handled=!0;var d=/^application\\/json(;|$)/.test(a.getResponseHeader("Content-Type"))||"json"==b.type,e=a.response||a.responseText,f=e,g=!1;if(d&&e&&"string"==typeof e)try{f=JSON.parse(e)}catch(h){g=!0}200!=a.status&&0!=a.status||g?c({status:a.status,response:f,parseError:g},null,a.getAllResponseHeaders()):\nc(null,f,a.getAllResponseHeaders())}}};\n',
pre:!0},"util/browser.js":{path:"util/browser.js",friendlyPath:"jsio.util.browser",directory:"util/",filename:"browser.js",src:'jsio("external .sizzle import Sizzle");jsio("import math.geom.Rect");function isWindow(a){return a&&!$.isElement(a)&&$.isElement(a.document)}var singleId=/^#([\\w-]+)$/,$=exports.$=function(a,b){switch(typeof a){case "object":return $.isElement(a)?$.remove(a):$.isElement(a.document&&a.document.body)?$.size(a):$.create(a);case "string":return singleId.test(a)?$.id(a.substring(1),b):Sizzle.apply(GLOBAL,arguments)}},DOM2="object"===typeof HTMLElement;\n$.isElement=DOM2?function(a){return a&&a instanceof HTMLElement}:function(a){return a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName};$.id=function(a,b){return"string"==typeof a?(b||window).document.getElementById(a):a};\n$.apply=function(a,b){if(b.attrs)for(attr in b.attrs)a.setAttribute(attr,b.attrs[attr]);b.id&&(a.id=b.id);b.style&&$.style(a,b.style);b.src&&(a.src=b.src);if(b["class"]||b.className)a.className=b["class"]||b.className;var c=b.parent||b.parentNode;c&&b.first?$.insertBefore(c,a,c.firstChild):b.before?$.insertBefore(b.before.parentNode||c,a,b.before):b.after?$.insertAfter(b.after.parentNode||c,a,b.after):c&&c.appendChild(a);"html"in b&&(a.innerHTML=b.html);"text"in b&&$.setText(a,b.text);if(b.children)for(var c=\nb.children,d=0,e=c.length;d<e;++d)a.appendChild($.isElement(c[d])?c[d]:$(c[d]));return a};$.insertBefore=function(a,b,c){a&&b&&(c&&c.parentNode==a?a.insertBefore(b,c):a.appendChild(b))};$.insertAfter=function(a,b,c){a&&b&&(c&&c.parentNode==a?c.nextSibling?a.insertBefore(b,c.nextSibling):a.appendChild(b):$.insertBefore(a,b,a.firstChild))};\n$.create=function(a){var b=(a&&a.win||window).document;return a&&"string"!=typeof a?$.apply(a.el||b.createElement(a.tag||a.tagName||"div"),a):b.createElement(a||"div")};$.show=function(a,b){$.id(a).style.display=b||"block"};$.hide=function(a){$.id(a).style.display="none"};$.addClass=function(a,b){if(a){a=$.id(a);"string"==typeof b&&(b=b.split(" "));for(var c=" "+a.className+" ",d=0,e=b.length;d<e;++d){var f=b[d];-1==c.indexOf(" "+f+" ")&&(c+=f+" ")}a.className=c.replace(/^\\s+|\\s+$/g,"");return $}};\n$.hasClass=function(a,b){if(!a)return!1;a=$.id(a);for(var c=a.className.split(" "),d=0,e=c.length;d<e;++d)if(c[d].trim()===b)return!0;return!1};$.getTag=function(a,b){return a.getElementsByTagName(b)};$.removeClass=function(a,b){a&&(a=$.id(a),a.className=(" "+a.className+" ").replace(" "," ").replace(new RegExp("( "+b.replace("s+"," | ").replace("-","-")+" )","g")," ").replace(/\\s+/," ").replace(/^\\s+|\\s+$/g,""))};\nfunction ieGetAlpha(a){try{return a.filters.item("alpha")}catch(b){}try{return a.filters.item("progid:DXImageTransform.Microsoft.Alpha")}catch(c){}return null}\n$.style=function(a,b){if(a instanceof Array)for(var c=0,d;d=a[c];++c)$.style(d,b);else for(prop in a=$.id(a),c=a.style,b)switch(prop){case "styleFloat":case "cssFloat":case "float":c.styleFloat=c.cssFloat=b[prop];break;case "opacity":c.opacity=b[prop];if(a.filters)try{d=ieGetAlpha();var e=1==b[prop]?99.99:100*b[prop];d?d.Opacity=e:c.filter="alpha(opacity="+e+")"}catch(f){}break;case "borderRadius":c.borderRadius=c.MozBorderRadius=b[prop];break;case "boxSizing":c.MsBoxSizing=c.MozBoxSizing=c.WebkitBoxSizing=\nb[prop];default:c[prop]=b[prop]}};$.onEvent=function(a,b,c){"function"!=typeof c&&(c=bind.apply(GLOBAL,Array.prototype.slice.call(arguments,2)));var d=c;a=$.id(a);a.addEventListener?a.addEventListener(b,d,!1):(d=function(a){c(a||window.event)},a.attachEvent("on"+b,d));return bind($,"removeEvent",a,b,d)};$.removeEvent=function(a,b,c){a=$.id(a);a.addEventListener?a.removeEventListener(b,c,!1):a.detachEvent("on"+b,c)};\n$.stopEvent=function(a){a&&(a.cancelBubble=!0,a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault())};$.setText=function(a,b){a=$.id(a);b=String(b);"textContent"in a?a.textContent=b:"innerText"in a?a.innerText=b.replace(/\\n/g," "):(a.innerHTML="",a.appendChild(document.createTextNode(b)))};$.setValue=function(a,b){a=$.id(a);"value"in a?a.value=b:"value"in a.firstChild&&(a.firstChild.value=b)};$.remove=function(a){(a=$.id(a))&&a.parentNode&&a.parentNode.removeChild(a)};\n$.cursorPos=function(a,b){var c=$.pos(b);c.top=a.clientY-c.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop);c.left=a.clientX-c.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft);return c};$.pos=function(a){for(var b={top:0,left:0};a&&a!=document.body;){b.left+=a.offsetLeft;for(b.top+=a.offsetTop;a.offsetParent!=a.parentNode;)b.top-=a.scrollTop,b.left-=a.scrollLeft,a=a.parentNode;a=a.offsetParent}return b};\n$.size=function(a){if($.isElement(a))return{width:a.offsetWidth,height:a.offsetHeight};if(a.document){var b=a.document.documentElement||a.document.body;return new math.geom.Rect(b.offsetTop,b.offsetLeft,a.innerWidth||b.clientWidth||b.clientWidth,a.innerHeight||b.clientHeight||b.clientHeight)}};$.insertCSSFile=function(a){document.getElementsByTagName("head")[0].appendChild($({tag:"link",attrs:{rel:"stylesheet",type:"text/css",href:a}}))};\n',
pre:!0},"util/sizzle.js":{path:"util/sizzle.js",friendlyPath:".sizzle",directory:"util/",filename:"sizzle.js",src:'Sizzle=function(){function z(a,b,c,d,f,e){f="previousSibling"==a&&!e;for(var h=0,k=d.length;h<k;h++){var g=d[h];if(g){f&&1===g.nodeType&&(g.sizcache=c,g.sizset=h);for(var g=g[a],l=!1;g;){if(g.sizcache===c){l=d[g.sizset];break}1!==g.nodeType||e||(g.sizcache=c,g.sizset=h);if(g.nodeName===b){l=g;break}g=g[a]}d[h]=l}}}function A(a,b,c,d,f,e){f="previousSibling"==a&&!e;for(var h=0,k=d.length;h<k;h++){var g=d[h];if(g){f&&1===g.nodeType&&(g.sizcache=c,g.sizset=h);for(var g=g[a],n=!1;g;){if(g.sizcache===\nc){n=d[g.sizset];break}if(1===g.nodeType)if(e||(g.sizcache=c,g.sizset=h),"string"!==typeof b){if(g===b){n=!0;break}}else if(0<l.filter(b,[g]).length){n=g;break}g=g[a]}d[h]=n}}}var w=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^[\\]]*\\]|[\'"][^\'"]*[\'"]|[^[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?/g,x=0,B=Object.prototype.toString,p=!1,l=function(a,b,c,d){c=c||[];var f=b=b||document;if(1!==b.nodeType&&9!==b.nodeType)return[];if(!a||"string"!==typeof a)return c;var e=[],h,r,g,n,s=!0,u=v(b);for(w.lastIndex=\n0;null!==(h=w.exec(a));)if(e.push(h[1]),h[2]){n=RegExp.rightContext;break}if(1<e.length&&D.exec(a))if(2===e.length&&k.relative[e[0]])r=C(e[0]+e[1],b);else for(r=k.relative[e[0]]?[b]:l(e.shift(),b);e.length;)a=e.shift(),k.relative[a]&&(a+=e.shift()),r=C(a,r);else if(!d&&1<e.length&&9===b.nodeType&&!u&&k.match.ID.test(e[0])&&!k.match.ID.test(e[e.length-1])&&(h=l.find(e.shift(),b,u),b=h.expr?l.filter(h.expr,h.set)[0]:h.set[0]),b)for(h=d?{expr:e.pop(),set:q(d)}:l.find(e.pop(),1!==e.length||"~"!==e[0]&&\n"+"!==e[0]||!b.parentNode?b:b.parentNode,u),r=h.expr?l.filter(h.expr,h.set):h.set,0<e.length?g=q(r):s=!1;e.length;){var m=e.pop();h=m;k.relative[m]?h=e.pop():m="";null==h&&(h=b);k.relative[m](g,h,u)}else g=[];g||(g=r);if(!g)throw"Syntax error, unrecognized expression: "+(m||a);if("[object Array]"===B.call(g))if(s)if(b&&1===b.nodeType)for(a=0;null!=g[a];a++)g[a]&&(!0===g[a]||1===g[a].nodeType&&E(b,g[a]))&&c.push(r[a]);else for(a=0;null!=g[a];a++)g[a]&&1===g[a].nodeType&&c.push(r[a]);else c.push.apply(c,\ng);else q(g,c);n&&(l(n,f,c,d),l.uniqueSort(c));return c};l.uniqueSort=function(a){if(t&&(p=!1,a.sort(t),p))for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)};l.matches=function(a,b){return l(a,null,null,b)};l.find=function(a,b,c){var d,f;if(!a)return[];for(var e=0,h=k.order.length;e<h;e++){var l=k.order[e];if(f=k.match[l].exec(a)){var g=RegExp.leftContext;if("\\\\"!==g.substr(g.length-1)&&(f[1]=(f[1]||"").replace(/\\\\/g,""),d=k.find[l](f,b,c),null!=d)){a=a.replace(k.match[l],"");break}}}d||(d=\nb.getElementsByTagName("*"));return{set:d,expr:a}};l.filter=function(a,b,c,d){for(var f=a,e=[],h=b,l,g,n=b&&b[0]&&v(b[0]);a&&b.length;){for(var s in k.filter)if(null!=(l=k.match[s].exec(a))){var u=k.filter[s],m,p;g=!1;h==e&&(e=[]);if(k.preFilter[s])if(l=k.preFilter[s](l,h,c,e,d,n),!l)g=m=!0;else if(!0===l)continue;if(l)for(var q=0;null!=(p=h[q]);q++)if(p){m=u(p,l,q,h);var t=d^!!m;c&&null!=m?t?g=!0:h[q]=!1:t&&(e.push(p),g=!0)}if(void 0!==m){c||(h=e);a=a.replace(k.match[s],"");if(!g)return[];break}}if(a==\nf){if(null==g)throw"Syntax error, unrecognized expression: "+a;break}f=a}return h};var k=l.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)/,CLASS:/\\.((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)/,NAME:/\\[name=[\'"]*((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)[\'"]*\\]/,ATTR:/\\[\\s*((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)\\s*(?:(\\S?=)\\s*([\'"]*)(.*?)\\3|)\\s*\\]/,TAG:/^((?:[\\w\\u00c0-\\uFFFF\\*_-]|\\\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\\((even|odd|[\\dn+-]*)\\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\))?(?=[^-]|$)/,\nPSEUDO:/:((?:[\\w\\u00c0-\\uFFFF_-]|\\\\.)+)(?:\\(([\'"]*)((?:\\([^\\)]+\\)|[^\\2\\(\\)]*)+)\\2\\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")}},relative:{"+":function(a,b,c){var d="string"===typeof b,f=d&&!/\\W/.test(b),d=d&&!f;f&&!c&&(b=b.toUpperCase());c=0;for(var f=a.length,e;c<f;c++)if(e=a[c]){for(;(e=e.previousSibling)&&1!==e.nodeType;);a[c]=d||e&&e.nodeName===b?e||!1:e===b}d&&l.filter(b,a,!0)},">":function(a,b,c){var d="string"===typeof b;if(d&&\n!/\\W/.test(b)){b=c?b:b.toUpperCase();c=0;for(var f=a.length;c<f;c++){var e=a[c];e&&(d=e.parentNode,a[c]=d.nodeName===b?d:!1)}}else{c=0;for(f=a.length;c<f;c++)(e=a[c])&&(a[c]=d?e.parentNode:e.parentNode===b);d&&l.filter(b,a,!0)}},"":function(a,b,c){var d=x++,f=A;if(!/\\W/.test(b))var e=b=c?b:b.toUpperCase(),f=z;f("parentNode",b,d,a,e,c)},"~":function(a,b,c){var d=x++,f=A;if("string"===typeof b&&!/\\W/.test(b))var e=b=c?b:b.toUpperCase(),f=z;f("previousSibling",b,d,a,e,c)}},find:{ID:function(a,b,c){if("undefined"!==\ntypeof b.getElementById&&!c)return(a=b.getElementById(a[1]))?[a]:[]},NAME:function(a,b,c){if("undefined"!==typeof b.getElementsByName){c=[];b=b.getElementsByName(a[1]);for(var d=0,f=b.length;d<f;d++)b[d].getAttribute("name")===a[1]&&c.push(b[d]);return 0===c.length?null:c}},TAG:function(a,b){return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,f,e){a=" "+a[1].replace(/\\\\/g,"")+" ";if(e)return a;e=0;for(var h;null!=(h=b[e]);e++)h&&(f^(h.className&&0<=(" "+h.className+" ").indexOf(a))?\nc||d.push(h):c&&(b[e]=!1));return!1},ID:function(a){return a[1].replace(/\\\\/g,"")},TAG:function(a,b){for(var c=0;!1===b[c];c++);return b[c]&&v(b[c])?a[1]:a[1].toUpperCase()},CHILD:function(a){if("nth"==a[1]){var b=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.exec("even"==a[2]&&"2n"||"odd"==a[2]&&"2n+1"||!/\\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0;a[3]=b[3]-0}a[0]=x++;return a},ATTR:function(a,b,c,d,f,e){b=a[1].replace(/\\\\/g,"");!e&&k.attrMap[b]&&(a[1]=k.attrMap[b]);"~="===a[2]&&(a[4]=" "+a[4]+" ");return a},\nPSEUDO:function(a,b,c,d,f){if("not"===a[1])if(1<w.exec(a[3]).length||/^\\w/.test(a[3]))a[3]=l(a[3],null,null,b);else return a=l.filter(a[3],b,c,1^f),c||d.push.apply(d,a),!1;else if(k.match.POS.test(a[0])||k.match.CHILD.test(a[0]))return!0;return a},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return!1===a.disabled&&"hidden"!==a.type},disabled:function(a){return!0===a.disabled},checked:function(a){return!0===a.checked},selected:function(a){a.parentNode.selectedIndex;return!0===\na.selected},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!l(c[3],a).length},header:function(a){return/h\\d/i.test(a.nodeName)},text:function(a){return"text"===a.type},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===\na.type},button:function(a){return"button"===a.type||"BUTTON"===a.nodeName.toUpperCase()},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return 0===b},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return 0===b%2},odd:function(a,b){return 1===b%2},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0==b},eq:function(a,b,c){return c[3]-0==b}},filter:{PSEUDO:function(a,b,\nc,d){var f=b[1],e=k.filters[f];if(e)return e(a,c,b,d);if("contains"===f)return 0<=(a.textContent||a.innerText||"").indexOf(b[3]);if("not"===f){b=b[3];c=0;for(d=b.length;c<d;c++)if(b[c]===a)return!1;return!0}},CHILD:function(a,b){var c=b[1],d=a;switch(c){case "only":case "first":for(;d=d.previousSibling;)if(1===d.nodeType)return!1;if("first"==c)return!0;d=a;case "last":for(;d=d.nextSibling;)if(1===d.nodeType)return!1;return!0;case "nth":var c=b[2],f=b[3];if(1==c&&0==f)return!0;var e=b[0],h=a.parentNode;\nif(h&&(h.sizcache!==e||!a.nodeIndex)){for(var k=0,d=h.firstChild;d;d=d.nextSibling)1===d.nodeType&&(d.nodeIndex=++k);h.sizcache=e}d=a.nodeIndex-f;return 0==c?0==d:0==d%c&&0<=d/c}},ID:function(a,b){return 1===a.nodeType&&a.getAttribute("id")===b},TAG:function(a,b){return"*"===b&&1===a.nodeType||a.nodeName===b},CLASS:function(a,b){return-1<(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)},ATTR:function(a,b){var c=b[1],c=k.attrHandle[c]?k.attrHandle[c](a):null!=a[c]?a[c]:a.getAttribute(c),\nd=c+"",f=b[2],e=b[4];return null==c?"!="===f:"="===f?d===e:"*="===f?0<=d.indexOf(e):"~="===f?0<=(" "+d+" ").indexOf(e):e?"!="===f?d!=e:"^="===f?0===d.indexOf(e):"$="===f?d.substr(d.length-e.length)===e:"|="===f?d===e||d.substr(0,e.length+1)===e+"-":!1:d&&!1!==c},POS:function(a,b,c,d){var f=k.setFilters[b[2]];if(f)return f(a,c,b,d)}}},D=k.match.POS,y;for(y in k.match)k.match[y]=new RegExp(k.match[y].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source);var q=function(a,b){a=Array.prototype.slice.call(a,0);return b?\n(b.push.apply(b,a),b):a};try{Array.prototype.slice.call(document.documentElement.childNodes,0)}catch(F){q=function(a,b){var c=b||[];if("[object Array]"===B.call(a))Array.prototype.push.apply(c,a);else if("number"===typeof a.length)for(var d=0,f=a.length;d<f;d++)c.push(a[d]);else for(d=0;a[d];d++)c.push(a[d]);return c}}var t;document.documentElement.compareDocumentPosition?t=function(a,b){var c=a.compareDocumentPosition(b)&4?-1:a===b?0:1;0===c&&(p=!0);return c}:"sourceIndex"in document.documentElement?\nt=function(a,b){var c=a.sourceIndex-b.sourceIndex;0===c&&(p=!0);return c}:document.createRange&&(t=function(a,b){var c=a.ownerDocument.createRange(),d=b.ownerDocument.createRange();c.selectNode(a);c.collapse(!0);d.selectNode(b);d.collapse(!0);c=c.compareBoundaryPoints(Range.START_TO_END,d);0===c&&(p=!0);return c});(function(){var a=document.createElement("div"),b="script"+(new Date).getTime();a.innerHTML="<a name=\'"+b+"\'/>";var c=document.documentElement;c.insertBefore(a,c.firstChild);document.getElementById(b)&&\n(k.find.ID=function(a,b,c){if("undefined"!==typeof b.getElementById&&!c)return(b=b.getElementById(a[1]))?b.id===a[1]||"undefined"!==typeof b.getAttributeNode&&b.getAttributeNode("id").nodeValue===a[1]?[b]:void 0:[]},k.filter.ID=function(a,b){var c="undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id");return 1===a.nodeType&&c&&c.nodeValue===b});c.removeChild(a);c=a=null})();(function(){var a=document.createElement("div");a.appendChild(document.createComment(""));0<a.getElementsByTagName("*").length&&\n(k.find.TAG=function(a,c){var d=c.getElementsByTagName(a[1]);if("*"===a[1]){for(var f=[],e=0;d[e];e++)1===d[e].nodeType&&f.push(d[e]);d=f}return d});a.innerHTML="<a href=\'#\'></a>";a.firstChild&&"undefined"!==typeof a.firstChild.getAttribute&&"#"!==a.firstChild.getAttribute("href")&&(k.attrHandle.href=function(a){return a.getAttribute("href",2)});a=null})();document.querySelectorAll&&function(){var a=l,b=document.createElement("div");b.innerHTML="<p class=\'TEST\'></p>";if(!b.querySelectorAll||0!==b.querySelectorAll(".TEST").length){l=\nfunction(b,c,e,h){c=c||document;if(!h&&9===c.nodeType&&!v(c))try{return q(c.querySelectorAll(b),e)}catch(k){}return a(b,c,e,h)};for(var c in a)l[c]=a[c];b=null}}();document.getElementsByClassName&&document.documentElement.getElementsByClassName&&function(){var a=document.createElement("div");a.innerHTML="<div class=\'test e\'></div><div class=\'test\'></div>";0!==a.getElementsByClassName("e").length&&(a.lastChild.className="e",1!==a.getElementsByClassName("e").length&&(k.order.splice(1,0,"CLASS"),k.find.CLASS=\nfunction(a,c,d){if("undefined"!==typeof c.getElementsByClassName&&!d)return c.getElementsByClassName(a[1])},a=null))}();var E=document.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)&16}:function(a,b){return a!==b&&(a.contains?a.contains(b):!0)},v=function(a){return 9===a.nodeType&&"HTML"!==a.documentElement.nodeName||!!a.ownerDocument&&"HTML"!==a.ownerDocument.documentElement.nodeName},C=function(a,b){for(var c=[],d="",f,e=b.nodeType?[b]:b;f=k.match.PSEUDO.exec(a);)d+=f[0],\na=a.replace(k.match.PSEUDO,"");a=k.relative[a]?a+"*":a;f=0;for(var h=e.length;f<h;f++)l(a,e[f],c);return l.filter(d,c)};return l}();\n',
pre:!0},"util/browserdetect.js":{path:"util/browserdetect.js",friendlyPath:"jsio.util.browserdetect",directory:"util/",filename:"browserdetect.js",src:'exports.BrowserDetect=new function(){function b(c){for(var f=0,a;a=c[f];f++){var b=a.string,d=a.prop;a.identity=a.identity||a.subString;e=a.versionSearch||a.identity;if(b){if(-1!=b.indexOf(a.subString))return a.identity}else if(d)return a.identity}}function d(c){if(c&&"string"===typeof c){var b=c.indexOf(e);if(-1!=b)return parseFloat(c.substring(b+e.length+1))}}var e,g=[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac"},{string:navigator.userAgent,\nsubString:"iPhone",identity:"iPhone/iPod"},{string:navigator.platform,subString:"Linux"}];this.browser=b([{string:navigator.userAgent,subString:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox"},\n{string:navigator.vendor,subString:"Camino"},{string:navigator.userAgent,subString:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"IE",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}])||"unknown";this.version=d(navigator.userAgent)||d(navigator.appVersion)||"unknown";this.OS=b(g)||"unknown";this.isWebKit=/ AppleWebKit\\//.test(navigator.userAgent);\nthis["is"+this.browser]=this.version};\n',
pre:!0},"util/esprima.js":{path:"util/esprima.js",friendlyPath:"jsio.util.esprima",directory:"util/",filename:"esprima.js",src:'(function(ja,P){"function"===typeof define&&define.amd?define(["exports"],P):"undefined"!==typeof exports?P(exports):P(ja.esprima={})})(this,function(ja){function P(a,b){if(!a)throw Error("ASSERT: "+b);}function X(a){return 48<=a&&57>=a}function Da(a){return 0<="0123456789abcdefABCDEF".indexOf(a)}function ba(a){return 0<="01234567".indexOf(a)}function Z(a){return 10===a||13===a||8232===a||8233===a}function da(a){return 36===a||95===a||65<=a&&90>=a||97<=a&&122>=a||92===a||128<=a&&Ea.NonAsciiIdentifierStart.test(String.fromCharCode(a))}\nfunction ta(a){return 36===a||95===a||65<=a&&90>=a||97<=a&&122>=a||48<=a&&57>=a||92===a||128<=a&&Ea.NonAsciiIdentifierPart.test(String.fromCharCode(a))}function ka(a){switch(a){case "implements":case "interface":case "package":case "private":case "protected":case "public":case "static":case "yield":case "let":return!0;default:return!1}}function Q(a){return"eval"===a||"arguments"===a}function qb(a){switch(a.length){case 2:return"if"===a||"in"===a||"do"===a;case 3:return"var"===a||"for"===a||"new"===\na||"try"===a||"let"===a;case 4:return"this"===a||"else"===a||"case"===a||"void"===a||"with"===a||"enum"===a;case 5:return"while"===a||"break"===a||"catch"===a||"throw"===a||"const"===a||"yield"===a||"class"===a||"super"===a;case 6:return"return"===a||"typeof"===a||"delete"===a||"switch"===a||"export"===a||"import"===a;case 7:return"default"===a||"finally"===a||"extends"===a;case 8:return"function"===a||"continue"===a||"debugger"===a;case 10:return"instanceof"===a;default:return!1}}function ua(a,b,\nc,f,d){P("number"===typeof c,"Comment must have valid position");n.lastCommentStart=c;a={type:a,value:b};e.range&&(a.range=[c,f]);e.loc&&(a.loc=d);e.comments.push(a);e.attachComment&&(e.leadingComments.push(a),e.trailingComments.push(a))}function Fa(a){var b,c,f;b=d-a;for(c={start:{line:s,column:d-t-a}};d<x;)if(f=g.charCodeAt(d),++d,Z(f)){R=!0;e.comments&&(a=g.slice(b+a,d-1),c.end={line:s,column:d-t-1},ua("Line",a,b,d-1,c));13===f&&10===g.charCodeAt(d)&&++d;++s;t=d;return}e.comments&&(a=g.slice(b+\na,d),c.end={line:s,column:d-t},ua("Line",a,b,d,c))}function va(){var a,b;R=!1;for(b=0===d;d<x;)if(a=g.charCodeAt(d),32===a||9===a||11===a||12===a||160===a||5760<=a&&0<=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(a))++d;else if(Z(a))R=!0,++d,13===a&&10===g.charCodeAt(d)&&++d,++s,t=d,b=!0;else if(47===a)if(a=g.charCodeAt(d+1),47===a)++d,++d,Fa(2),b=!0;else if(42===a){++d;++d;a:{var c=a=void 0,f=void 0,f=void 0;e.comments&&(a=d-2,c={start:{line:s,\ncolumn:d-t-2}});for(;d<x;)if(f=g.charCodeAt(d),Z(f))13===f&&10===g.charCodeAt(d+1)&&++d,R=!0,++s,++d,t=d;else{if(42===f&&47===g.charCodeAt(d+1)){++d;++d;e.comments&&(f=g.slice(a+2,d-2),c.end={line:s,column:d-t},ua("Block",f,a,d,c));break a}++d}e.comments&&(c.end={line:s,column:d-t},f=g.slice(a+2,d),ua("Block",f,a,d,c));C()}}else break;else if(b&&45===a)if(45===g.charCodeAt(d+1)&&62===g.charCodeAt(d+2))d+=3,Fa(3);else break;else if(60===a)if("!--"===g.slice(d+1,d+4))++d,++d,++d,++d,Fa(4);else break;\nelse break}function qa(a){var b,c,f=0;b="u"===a?4:2;for(a=0;a<b;++a)if(d<x&&Da(g[d]))c=g[d++],f=16*f+"0123456789abcdef".indexOf(c.toLowerCase());else return"";return String.fromCharCode(f)}function Pa(){var a,b;a=g[d];b=0;for("}"===a&&v();d<x;){a=g[d++];if(!Da(a))break;b=16*b+"0123456789abcdef".indexOf(a.toLowerCase())}(1114111<b||"}"!==a)&&v();return 65535>=b?String.fromCharCode(b):String.fromCharCode((b-65536>>10)+55296,(b-65536&1023)+56320)}function Qa(){var a,b;a=g.charCodeAt(d++);b=String.fromCharCode(a);\n92===a&&(117!==g.charCodeAt(d)&&v(),++d,(a=qa("u"))&&"\\\\"!==a&&da(a.charCodeAt(0))||v(),b=a);for(;d<x;){a=g.charCodeAt(d);if(!ta(a))break;++d;b+=String.fromCharCode(a);92===a&&(b=b.substr(0,b.length-1),117!==g.charCodeAt(d)&&v(),++d,(a=qa("u"))&&"\\\\"!==a&&ta(a.charCodeAt(0))||v(),b+=a)}return b}function $(){var a,b;a={type:m.Punctuator,value:"",lineNumber:s,lineStart:t,start:d,end:d};b=g[d];switch(b){case "(":e.tokenize&&(e.openParenToken=e.tokens.length);++d;break;case "{":e.tokenize&&(e.openCurlyToken=\ne.tokens.length);n.curlyStack.push("{");++d;break;case ".":++d;"."===g[d]&&"."===g[d+1]&&(d+=2,b="...");break;case "}":++d;n.curlyStack.pop();break;case ")":case ";":case ",":case "[":case "]":case ":":case "?":case "~":++d;break;default:b=g.substr(d,4),">>>="===b?d+=4:(b=b.substr(0,3),"==="===b||"!=="===b||">>>"===b||"<<="===b||">>="===b?d+=3:(b=b.substr(0,2),"&&"===b||"||"===b||"=="===b||"!="===b||"+="===b||"-="===b||"*="===b||"/="===b||"++"===b||"--"===b||"<<"===b||">>"===b||"&="===b||"|="===b||\n"^="===b||"%="===b||"<="===b||">="===b||"=>"===b?d+=2:(b=g[d],0<="<>=!+-*%&|^/".indexOf(b)&&++d)))}d===a.start&&v();a.end=d;a.value=b;return a}function Ra(){var a,b,c;c=g[d];P(X(c.charCodeAt(0))||"."===c,"Numeric literal must start with a decimal digit or a decimal point");b=d;a="";if("."!==c){a=g[d++];c=g[d];if("0"===a){if("x"===c||"X"===c){++d;for(a="";d<x&&Da(g[d]);)a+=g[d++];0===a.length&&v();da(g.charCodeAt(d))&&v();return{type:m.NumericLiteral,value:parseInt("0x"+a,16),lineNumber:s,lineStart:t,\nstart:b,end:d}}if("b"===c||"B"===c){++d;for(c="";d<x;){a=g[d];if("0"!==a&&"1"!==a)break;c+=g[d++]}0===c.length&&v();d<x&&(a=g.charCodeAt(d),(da(a)||X(a))&&v());return{type:m.NumericLiteral,value:parseInt(c,2),lineNumber:s,lineStart:t,start:b,end:d}}var f;if(!(f="o"===c||"O"===c)&&(f=ba(c)))a:{var D;for(f=d+1;f<x;++f){D=g[f];if("8"===D||"9"===D){f=!1;break a}if(!ba(D))break}f=!0}if(f){ba(c)?(c=!0,a="0"+g[d++]):(c=!1,++d,a="");for(;d<x&&ba(g[d]);)a+=g[d++];c||0!==a.length||v();(da(g.charCodeAt(d))||\nX(g.charCodeAt(d)))&&v();return{type:m.NumericLiteral,value:parseInt(a,8),octal:c,lineNumber:s,lineStart:t,start:b,end:d}}}for(;X(g.charCodeAt(d));)a+=g[d++];c=g[d]}if("."===c){for(a+=g[d++];X(g.charCodeAt(d));)a+=g[d++];c=g[d]}if("e"===c||"E"===c){a+=g[d++];c=g[d];if("+"===c||"-"===c)a+=g[d++];if(X(g.charCodeAt(d)))for(;X(g.charCodeAt(d));)a+=g[d++];else v()}da(g.charCodeAt(d))&&v();return{type:m.NumericLiteral,value:parseFloat(a),lineNumber:s,lineStart:t,start:b,end:d}}function rb(a,b){var c=a;\n0<=b.indexOf("u")&&(c=c.replace(/\\\\u\\{([0-9a-fA-F]+)\\}|\\\\u([a-fA-F0-9]{4})/g,function(a,b,c){a=parseInt(b||c,16);1114111<a&&v(null,r.InvalidRegExp);return 65535>=a?String.fromCharCode(a):"\\uffff"}).replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,"\\uffff"));try{RegExp(c)}catch(f){v(null,r.InvalidRegExp)}try{return new RegExp(a,b)}catch(d){return null}}function Sa(){var a,b,c,f;aa=!0;var D,w;k=null;va();D=d;c=g[d];P("/"===c,"Regular expression literal must start with a slash");f=g[d++];for(a=b=!1;d<x;)if(c=\ng[d++],f+=c,"\\\\"===c)c=g[d++],Z(c.charCodeAt(0))&&v(null,r.UnterminatedRegExp),f+=c;else if(Z(c.charCodeAt(0)))v(null,r.UnterminatedRegExp);else if(b)"]"===c&&(b=!1);else if("/"===c){a=!0;break}else"["===c&&(b=!0);a||v(null,r.UnterminatedRegExp);c=f.substr(1,f.length-2);var h;for(w=b="";d<x;){a=g[d];if(!ta(a.charCodeAt(0)))break;++d;if("\\\\"===a&&d<x){a=g[d];if("u"===a)if(++d,h=d,a=qa("u"))for(w+=a,b+="\\\\u";h<d;++h)b+=g[h];else d=h,w+="u",b+="\\\\u";else b+="\\\\";C()}else w+=a,b+=a}a=w;w=rb(c,a);aa=!1;\nreturn e.tokenize?{type:m.RegularExpression,value:w,regex:{pattern:c,flags:a},lineNumber:s,lineStart:t,start:D,end:d}:{literal:f+b,value:w,regex:{pattern:c,flags:a},start:D,end:d}}function la(){var a,b,c,f;va();a=d;b={start:{line:s,column:d-t}};c=Sa();b.end={line:s,column:d-t};e.tokenize||(0<e.tokens.length&&(f=e.tokens[e.tokens.length-1],f.range[0]===a&&"Punctuator"===f.type&&("/"!==f.value&&"/="!==f.value||e.tokens.pop())),e.tokens.push({type:"RegularExpression",value:c.literal,regex:c.regex,range:[a,\nd],loc:b}));return c}function Ta(a){return a.type===m.Identifier||a.type===m.Keyword||a.type===m.BooleanLiteral||a.type===m.NullLiteral}function sb(){var a;a=e.tokens[e.tokens.length-1];if(!a)return la();if("Punctuator"===a.type){if("]"===a.value)return $();if(")"===a.value)return a=e.tokens[e.openParenToken-1],!a||"Keyword"!==a.type||"if"!==a.value&&"while"!==a.value&&"for"!==a.value&&"with"!==a.value?$():la();if("}"===a.value){if(e.tokens[e.openCurlyToken-3]&&"Keyword"===e.tokens[e.openCurlyToken-\n3].type){if(a=e.tokens[e.openCurlyToken-4],!a)return $()}else if(e.tokens[e.openCurlyToken-4]&&"Keyword"===e.tokens[e.openCurlyToken-4].type){if(a=e.tokens[e.openCurlyToken-5],!a)return la()}else return $();if(0<=Ua.indexOf(a.value))return $()}return la()}return"Keyword"===a.type&&"this"!==a.value?la():$()}function Ga(){var a,b,c;if(d>=x)return{type:m.EOF,lineNumber:s,lineStart:t,start:d,end:d};c=g.charCodeAt(d);if(da(c)){var f;c=d;if(92===g.charCodeAt(d))f=Qa();else a:{var D;for(f=d++;d<x;){D=g.charCodeAt(d);\nif(92===D){d=f;f=Qa();break a}if(ta(D))++d;else break}f=g.slice(f,d)}c={type:1===f.length?m.Identifier:qb(f)?m.Keyword:"null"===f?m.NullLiteral:"true"===f||"false"===f?m.BooleanLiteral:m.Identifier,value:f,lineNumber:s,lineStart:t,start:c,end:d};y&&ka(c.value)&&(c.type=m.Keyword);return c}if(40===c||41===c||59===c)return $();if(39===c||34===c){c="";var h=!1;f=g[d];P("\'"===f||\'"\'===f,"String literal must starts with a quote");D=d;for(++d;d<x;)if(b=g[d++],b===f){f="";break}else if("\\\\"===b)if((b=g[d++])&&\nZ(b.charCodeAt(0)))++s,"\\r"===b&&"\\n"===g[d]&&++d,t=d;else switch(b){case "u":case "x":if("{"===g[d])++d,c+=Pa();else{b=qa(b);if(!b)throw v();c+=b}break;case "n":c+="\\n";break;case "r":c+="\\r";break;case "t":c+="\\t";break;case "b":c+="\\b";break;case "f":c+="\\f";break;case "v":c+="\\x0B";break;case "8":case "9":throw v();default:if(ba(b)){a=b;b="0"!==a;var k="01234567".indexOf(a);d<x&&ba(g[d])&&(b=!0,k=8*k+"01234567".indexOf(g[d++]),0<="0123".indexOf(a)&&d<x&&ba(g[d])&&(k=8*k+"01234567".indexOf(g[d++])));\na=k;h=b||h;c+=String.fromCharCode(a)}else c+=b}else if(Z(b.charCodeAt(0)))break;else c+=b;""!==f&&v();return{type:m.StringLiteral,value:c,octal:h,lineNumber:ea,lineStart:fa,start:D,end:d}}if(46===c)return X(g.charCodeAt(d+1))?Ra():$();if(X(c))return Ra();if(e.tokenize&&47===c)return sb();if(96===c||125===c&&"${"===n.curlyStack[n.curlyStack.length-1]){c="";var l,p,k=b=!1;D=d;a="`"===g[d];h=2;for(++d;d<x;)if(f=g[d++],"`"===f){h=1;b=k=!0;break}else if("$"===f){if("{"===g[d]){n.curlyStack.push("${");\n++d;b=!0;break}c+=f}else if("\\\\"===f)if(f=g[d++],Z(f.charCodeAt(0)))++s,"\\r"===f&&"\\n"===g[d]&&++d,t=d;else switch(f){case "n":c+="\\n";break;case "r":c+="\\r";break;case "t":c+="\\t";break;case "u":case "x":"{"===g[d]?(++d,c+=Pa()):(l=d,(p=qa(f))?c+=p:(d=l,c+=f));break;case "b":c+="\\b";break;case "f":c+="\\f";break;case "v":c+="\\v";break;default:"0"===f?(X(g.charCodeAt(d))&&F(r.TemplateOctalLiteral),c+="\\x00"):ba(f)?F(r.TemplateOctalLiteral):c+=f}else Z(f.charCodeAt(0))?(++s,"\\r"===f&&"\\n"===g[d]&&++d,\nt=d,c+="\\n"):c+=f;b||v();a||n.curlyStack.pop();return{type:m.Template,value:{cooked:c,raw:g.slice(D+1,d-h)},head:a,tail:k,lineNumber:s,lineStart:t,start:D,end:d}}return $()}function Va(){var a,b,c;a={start:{line:s,column:d-t}};b=Ga();a.end={line:s,column:d-t};b.type!==m.EOF&&(c=g.slice(b.start,b.end),a={type:S[b.type],value:c,range:[b.start,b.end],loc:a},b.regex&&(a.regex={pattern:b.regex.pattern,flags:b.regex.flags}),e.tokens.push(a));return b}function p(){var a;aa=!0;V=d;ma=s;ra=t;va();a=k;H=d;\nea=s;fa=t;k="undefined"!==typeof e.tokens?Va():Ga();aa=!1;return a}function Wa(){aa=!0;va();V=d;ma=s;ra=t;H=d;ea=s;fa=t;k="undefined"!==typeof e.tokens?Va():Ga();aa=!1}function tb(){this.line=ea;this.column=H-fa}function ub(){this.start=new tb;this.end=null}function vb(a){this.start={line:a.lineNumber,column:a.start-a.lineStart};this.end=null}function u(){e.range&&(this.range=[H,0]);e.loc&&(this.loc=new ub)}function I(a){e.range&&(this.range=[a.start,0]);e.loc&&(this.loc=new vb(a))}function Ha(a){var b,\nc;for(b=0;b<e.errors.length;b++)if(c=e.errors[b],c.index===a.index&&c.message===a.message)return;e.errors.push(a)}function wa(a,b,c){var f=Error("Line "+a+": "+c);f.index=b;f.lineNumber=a;f.column=b-(aa?t:ra)+1;f.description=c;return f}function F(a){var b,c;b=Array.prototype.slice.call(arguments,1);c=a.replace(/%(\\d)/g,function(a,c){P(c<b.length,"Message reference must be in range");return b[c]});throw wa(ma,V,c);}function N(a){var b,c;b=Array.prototype.slice.call(arguments,1);c=a.replace(/%(\\d)/g,\nfunction(a,c){P(c<b.length,"Message reference must be in range");return b[c]});c=wa(s,V,c);if(e.errors)Ha(c);else throw c;}function Xa(a,b){var c,f=b||r.UnexpectedToken;if(a){if(!b&&(f=a.type===m.EOF?r.UnexpectedEOS:a.type===m.Identifier?r.UnexpectedIdentifier:a.type===m.NumericLiteral?r.UnexpectedNumber:a.type===m.StringLiteral?r.UnexpectedString:a.type===m.Template?r.UnexpectedTemplate:r.UnexpectedToken,a.type===m.Keyword)){a:switch(a.value){case "enum":case "export":case "import":case "super":c=\n!0;break a;default:c=!1}c?f=r.UnexpectedReserved:y&&ka(a.value)&&(f=r.StrictReservedWord)}c=a.type===m.Template?a.value.raw:a.value}else c="ILLEGAL";f=f.replace("%0",c);return a&&"number"===typeof a.lineNumber?wa(a.lineNumber,a.start,f):wa(aa?s:ma,aa?d:V,f)}function v(a,b){throw Xa(a,b);}function C(a,b){var c=Xa(a,b);if(e.errors)Ha(c);else throw c;}function q(a){var b=p();b.type===m.Punctuator&&b.value===a||v(b)}function Ya(){var a;e.errors?(a=k,a.type===m.Punctuator&&","===a.value?p():a.type===m.Punctuator&&\n";"===a.value?(p(),C(a)):C(a,r.UnexpectedToken)):q(",")}function G(a){var b=p();b.type===m.Keyword&&b.value===a||v(b)}function h(a){return k.type===m.Punctuator&&k.value===a}function B(a){return k.type===m.Keyword&&k.value===a}function W(a){return k.type===m.Identifier&&k.value===a}function M(){59===g.charCodeAt(H)||h(";")?p():R||(V=H,ma=ea,ra=fa,k.type===m.EOF||h("}")||v(k))}function J(a){var b=z,c=A,f=T;A=z=!0;T=null;a=a();null!==T&&v(T);z=b;A=c;T=f;return a}function L(a){var b=z,c=A,f=T;A=z=!0;\nT=null;a=a();z=z&&b;A=A&&c;T=f||T;return a}function wb(a){var b=new u,c,f,d=h("[");if(k.type===m.Identifier){f=k;c=U();if(h("="))return a.push(f),p(),a=E(),b.finishProperty("init",c,!1,(new I(f)).finishAssignmentPattern(c,a),!1,!1);if(!h(":"))return a.push(f),b.finishProperty("init",c,!1,c,!1,!0)}else c=ga(a);q(":");a=Ia(a);return b.finishProperty("init",c,d,a,!1,!1)}function xa(a){if(k.type===m.Identifier)return a.push(k),a=U();if(h("[")){var b=new u,c=[],f;for(q("[");!h("]");)if(h(","))p(),c.push(null);\nelse{if(h("...")){f=new u;p();a.push(k);a=U(a);c.push(f.finishRestElement(a));break}else c.push(Ia(a));h("]")||q(",")}q("]");return b.finishArrayPattern(c)}if(h("{")){b=new u;c=[];for(q("{");!h("}");)c.push(wb(a)),h("}")||q(",");p();return b.finishObjectPattern(c)}v(k)}function Ia(a){var b=k,c;a=xa(a);h("=")&&(p(),c=J(E),a=(new I(b)).finishAssignmentPattern(a,c));return a}function Za(){var a=[],b=new u,c;for(q("[");!h("]");)h(",")?(p(),a.push(null)):h("...")?(c=new u,p(),c.finishSpreadElement(L(E)),\nh("]")||(A=z=!1,q(",")),a.push(c)):(a.push(L(E)),h("]")||q(","));p();return b.finishArrayExpression(a)}function ya(a,b,c){var f,d;A=z=!1;f=y;d=J(za);y&&b.firstRestricted&&C(b.firstRestricted,b.message);y&&b.stricted&&C(b.stricted,b.message);y=f;return a.finishFunctionExpression(null,b.params,b.defaults,d,c)}function ga(){var a,b=new u;a=p();switch(a.type){case m.StringLiteral:case m.NumericLiteral:return y&&a.octal&&C(a,r.StrictOctalLiteral),b.finishLiteral(a);case m.Identifier:case m.BooleanLiteral:case m.NullLiteral:case m.Keyword:return b.finishIdentifier(a.value);\ncase m.Punctuator:if("["===a.value)return a=J(E),q("]"),a}v(a)}function Aa(){switch(k.type){case m.Identifier:case m.StringLiteral:case m.BooleanLiteral:case m.NullLiteral:case m.NumericLiteral:case m.Keyword:return!0;case m.Punctuator:return"["===k.value}return!1}function $a(a,b,c,f){var d,w=n.allowYield;if(a.type===m.Identifier){if("get"===a.value&&Aa())return c=h("["),b=ga(),a=new u,q("("),q(")"),n.allowYield=!1,a=ya(a,{params:[],defaults:[],stricted:null,firstRestricted:null,message:null},!1),\nn.allowYield=w,f.finishProperty("get",b,c,a,!1,!1);if("set"===a.value&&Aa())return c=h("["),b=ga(),a=new u,q("("),d={params:[],defaultCount:0,defaults:[],firstRestricted:null,paramSet:{}},h(")")?C(k):(n.allowYield=!1,ab(d),n.allowYield=w,0===d.defaultCount&&(d.defaults=[])),q(")"),n.allowYield=!1,a=ya(a,d,!1),n.allowYield=w,f.finishProperty("set",b,c,a,!1,!1)}else if(a.type===m.Punctuator&&"*"===a.value&&Aa())return c=h("["),b=ga(),a=new u,n.allowYield=!1,d=Ba(),n.allowYield=w,n.allowYield=!0,a=ya(a,\nd,!0),n.allowYield=w,f.finishProperty("init",b,c,a,!0,!1);return b&&h("(")?(d=new u,w=n.allowYield,n.allowYield=!1,a=Ba(),n.allowYield=w,n.allowYield=!1,a=ya(d,a,!1),n.allowYield=w,f.finishProperty("init",b,c,a,!0,!1)):null}function bb(a,b,c){!1===b&&(a.type===l.Identifier&&"__proto__"===a.name||a.type===l.Literal&&"__proto__"===a.value)&&(c.value?N(r.DuplicateProtoProperty):c.value=!0)}function xb(a){var b=k,c=new u,f,d,w;f=h("[");h("*")?p():d=ga();if(w=$a(b,d,f,c))return bb(w.key,w.computed,a),\nw;d||v(k);bb(d,f,a);if(h(":"))return p(),a=L(E),c.finishProperty("init",d,f,a,!1,!1);if(b.type===m.Identifier)return h("=")?(T=k,p(),a=J(E),c.finishProperty("init",d,f,(new I(b)).finishAssignmentPattern(d,a),!1,!0)):c.finishProperty("init",d,f,d,!1,!0);v(k)}function cb(){var a=[],b={value:!1},c=new u;for(q("{");!h("}");)a.push(xb(b)),h("}")||Ya();q("}");return c.finishObjectExpression(a)}function Y(a){var b;switch(a.type){case l.SpreadElement:a.type=l.RestElement;Y(a.argument);break;case l.ArrayExpression:a.type=\nl.ArrayPattern;for(b=0;b<a.elements.length;b++)null!==a.elements[b]&&Y(a.elements[b]);break;case l.ObjectExpression:a.type=l.ObjectPattern;for(b=0;b<a.properties.length;b++)Y(a.properties[b].value);break;case l.AssignmentExpression:a.type=l.AssignmentPattern,Y(a.left)}}function db(a){var b;(k.type!==m.Template||a.head&&!k.head)&&v();a=new u;b=p();return a.finishTemplateElement({raw:b.value.raw,cooked:b.value.cooked},b.tail)}function Ja(){var a,b,c,f=new u;a=db({head:!0});b=[a];for(c=[];!a.tail;)c.push(K()),\na=db({head:!1}),b.push(a);return f.finishTemplateLiteral(b,c)}function yb(){var a,b,c=[];q("(");if(h(")"))return p(),h("=>")||q("=>"),{type:ha.ArrowParameterPlaceHolder,params:[],rawParams:[]};b=k;if(h("..."))return a=Ka(c),q(")"),h("=>")||q("=>"),{type:ha.ArrowParameterPlaceHolder,params:[a]};z=!0;a=L(E);if(h(",")){A=!1;for(a=[a];H<x&&h(",");){p();if(h("...")){z||v(k);a.push(Ka(c));q(")");h("=>")||q("=>");z=!1;for(b=0;b<a.length;b++)Y(a[b]);return{type:ha.ArrowParameterPlaceHolder,params:a}}a.push(L(E))}a=\n(new I(b)).finishSequenceExpression(a)}q(")");if(h("=>")){z||v(k);if(a.type===l.SequenceExpression)for(b=0;b<a.expressions.length;b++)Y(a.expressions[b]);else Y(a);a={type:ha.ArrowParameterPlaceHolder,params:a.type===l.SequenceExpression?a.expressions:[a]}}z=!1;return a}function eb(){var a,b,c,f;if(h("("))return z=!1,L(yb);if(h("["))return L(Za);if(h("{"))return L(cb);a=k.type;f=new u;if(a===m.Identifier)c=f.finishIdentifier(p().value);else if(a===m.StringLiteral||a===m.NumericLiteral)A=z=!1,y&&k.octal&&\nC(k,r.StrictOctalLiteral),c=f.finishLiteral(p());else if(a===m.Keyword){A=z=!1;if(B("function")){var D;f=null;var w,l,g=[],q=[],s;a=new u;var x;G("function");(c=h("*"))&&p();h("(")||(D=k,f=U(),y?Q(D.value)&&C(D,r.StrictFunctionName):Q(D.value)?(b=D,w=r.StrictFunctionName):ka(D.value)&&(b=D,w=r.StrictReservedWord));x=n.allowYield;n.allowYield=!1;l=Ba(b);n.allowYield=x;g=l.params;q=l.defaults;D=l.stricted;b=l.firstRestricted;l.message&&(w=l.message);s=y;x=n.allowYield;n.allowYield=c;l=za();y&&b&&v(b,\nw);y&&D&&C(D,w);y=s;n.allowYield=x;return a.finishFunctionExpression(f,g,q,l,c)}if(B("this"))return p(),f.finishThisExpression();if(B("class"))return w=b=null,f=new u,c=y,y=!0,G("class"),k.type===m.Identifier&&(b=U()),B("extends")&&(p(),w=J(La)),a=fb(),y=c,f.finishClassExpression(b,w,a);v(p())}else a===m.BooleanLiteral?(A=z=!1,b=p(),b.value="true"===b.value,c=f.finishLiteral(b)):a===m.NullLiteral?(A=z=!1,b=p(),b.value=null,c=f.finishLiteral(b)):h("/")||h("/=")?(A=z=!1,d=H,b="undefined"!==typeof e.tokens?\nla():Sa(),p(),c=f.finishLiteral(b)):a===m.Template?c=Ja():v(p());return c}function gb(){var a=[],b;q("(");if(!h(")"))for(;H<x;){h("...")?(b=new u,p(),b.finishSpreadElement(J(E))):b=J(E);a.push(b);if(h(")"))break;Ya()}q(")");return a}function sa(){var a,b=new u;a=p();Ta(a)||v(a);return b.finishIdentifier(a.value)}function hb(){q(".");return sa()}function ib(){var a;q("[");a=J(K);q("]");return a}function jb(){var a,b,c=new u;G("new");a=J(zb);b=h("(")?gb():[];A=z=!1;return c.finishNewExpression(a,b)}\nfunction La(){var a,b,c,f=n.allowIn;c=k;n.allowIn=!0;B("super")&&n.inFunctionBody?(b=new u,p(),b=b.finishSuper(),h("(")||h(".")||h("[")||v(k)):b=L(B("new")?jb:eb);for(;;)if(h("."))z=!1,A=!0,a=hb(),b=(new I(c)).finishMemberExpression(".",b,a);else if(h("("))A=z=!1,a=gb(),b=(new I(c)).finishCallExpression(b,a);else if(h("["))z=!1,A=!0,a=ib(),b=(new I(c)).finishMemberExpression("[",b,a);else if(k.type===m.Template&&k.head)a=Ja(),b=(new I(c)).finishTaggedTemplateExpression(b,a);else break;n.allowIn=f;\nreturn b}function zb(){var a,b,c;P(n.allowIn,"callee of new expression always allow in keyword.");c=k;B("super")&&n.inFunctionBody?(b=new u,p(),b=b.finishSuper(),h("[")||h(".")||v(k)):b=L(B("new")?jb:eb);for(;;)if(h("["))z=!1,A=!0,a=ib(),b=(new I(c)).finishMemberExpression("[",b,a);else if(h("."))z=!1,A=!0,a=hb(),b=(new I(c)).finishMemberExpression(".",b,a);else if(k.type===m.Template&&k.head)a=Ja(),b=(new I(c)).finishTaggedTemplateExpression(b,a);else break;return b}function kb(){var a,b,c=k;a=L(La);\nR||k.type!==m.Punctuator||!h("++")&&!h("--")||(y&&a.type===l.Identifier&&Q(a.name)&&N(r.StrictLHSPostfix),A||N(r.InvalidLHSInAssignment),A=z=!1,b=p(),a=(new I(c)).finishPostfixExpression(b.value,a));return a}function na(){var a,b,c;k.type!==m.Punctuator&&k.type!==m.Keyword?b=kb():h("++")||h("--")?(c=k,a=p(),b=L(na),y&&b.type===l.Identifier&&Q(b.name)&&N(r.StrictLHSPrefix),A||N(r.InvalidLHSInAssignment),b=(new I(c)).finishUnaryExpression(a.value,b),A=z=!1):h("+")||h("-")||h("~")||h("!")?(c=k,a=p(),\nb=L(na),b=(new I(c)).finishUnaryExpression(a.value,b),A=z=!1):B("delete")||B("void")||B("typeof")?(c=k,a=p(),b=L(na),b=(new I(c)).finishUnaryExpression(a.value,b),y&&"delete"===b.operator&&b.argument.type===l.Identifier&&N(r.StrictDelete),A=z=!1):b=kb();return b}function lb(a,b){var c=0;if(a.type!==m.Punctuator&&a.type!==m.Keyword)return 0;switch(a.value){case "||":c=1;break;case "&&":c=2;break;case "|":c=3;break;case "^":c=4;break;case "&":c=5;break;case "==":case "!=":case "===":case "!==":c=6;\nbreak;case "<":case ">":case "<=":case ">=":case "instanceof":c=7;break;case "in":c=b?7:0;break;case "<<":case ">>":case ">>>":c=8;break;case "+":case "-":c=9;break;case "*":case "/":case "%":c=11}return c}function Ab(){var a,b,c,f,d,h;a=k;b=L(na);c=k;f=lb(c,n.allowIn);if(0===f)return b;A=z=!1;c.prec=f;p();a=[a,k];h=J(na);for(d=[b,c,h];0<(f=lb(k,n.allowIn));){for(;2<d.length&&f<=d[d.length-2].prec;)h=d.pop(),c=d.pop().value,b=d.pop(),a.pop(),b=(new I(a[a.length-1])).finishBinaryExpression(c,b,h),\nd.push(b);c=p();c.prec=f;d.push(c);a.push(k);b=J(na);d.push(b)}f=d.length-1;b=d[f];for(a.pop();1<f;)b=(new I(a.pop())).finishBinaryExpression(d[f-1].value,d[f-2],b),f-=2;return b}function oa(a,b){var c;switch(b.type){case l.Identifier:Ma(a,b,b.name);break;case l.RestElement:oa(a,b.argument);break;case l.AssignmentPattern:oa(a,b.left);break;case l.ArrayPattern:for(c=0;c<b.elements.length;c++)null!==b.elements[c]&&oa(a,b.elements[c]);break;default:for(P(b.type===l.ObjectPattern,"Invalid type"),c=0;c<\nb.properties.length;c++)oa(a,b.properties[c].value)}}function E(){var a,b,c,f;a=f=k;if(B("yield"))return f=new u,n.allowYield||C(k,r.IllegalYield),G("yield"),R||((c=h("*"))?(p(),b=K()):h(";")||h("}")||k.type===m.EOF||(b=K())),f.finishYieldExpression(b,c);var d,e;e=k;b=L(Ab);h("?")&&(p(),d=n.allowIn,n.allowIn=!0,c=J(E),n.allowIn=d,q(":"),d=J(E),b=(new I(e)).finishConditionalExpression(b,c,d),A=z=!1);if(b.type===ha.ArrowParameterPlaceHolder||h("=>")){A=z=!1;a:{var g,x,s;c=[];e=0;a=[b];switch(b.type){case l.Identifier:break;\ncase ha.ArrowParameterPlaceHolder:a=b.params;break;default:a=null;break a}d={paramSet:{}};g=0;for(x=a.length;g<x;g+=1)switch(s=a[g],s.type){case l.AssignmentPattern:a[g]=s.left;c.push(s.right);++e;oa(d,s.left);break;default:oa(d,s),a[g]=s,c.push(null)}d.message===r.StrictParamDupe&&(g=y?d.stricted:d.firstRestricted,v(g,d.message));0===e&&(c=[]);a={params:a,defaults:c,stricted:d.stricted,firstRestricted:d.firstRestricted,message:d.message}}return a?(T=null,b=a,f=new I(f),R&&C(k),q("=>"),a=y,c=h("{")?\nza():J(E),y&&b.firstRestricted&&v(b.firstRestricted,b.message),y&&b.stricted&&C(b.stricted,b.message),y=a,f.finishArrowFunctionExpression(b.params,b.defaults,c,c.type!==l.BlockStatement)):b}k.type!==m.Punctuator?c=!1:(c=k.value,c="="===c||"*="===c||"/="===c||"%="===c||"+="===c||"-="===c||"<<="===c||">>="===c||">>>="===c||"&="===c||"^="===c||"|="===c);c&&(A||N(r.InvalidLHSInAssignment),y&&b.type===l.Identifier&&Q(b.name)&&C(a,r.StrictLHSAssignment),h("=")?Y(b):A=z=!1,a=p(),c=J(E),b=(new I(f)).finishAssignmentExpression(a.value,\nb,c),T=null);return b}function K(){var a,b=k;a=J(E);if(h(",")){for(a=[a];H<x&&h(",");)p(),a.push(J(E));a=(new I(b)).finishSequenceExpression(a)}return a}function ia(){if(k.type===m.Keyword)switch(k.value){case "export":return"module"!==pa&&C(k,r.IllegalExportDeclaration),Bb();case "import":"module"!==pa&&C(k,r.IllegalImportDeclaration);var a;var b,c=new u;n.inFunctionBody&&F(r.IllegalImportDeclaration);G("import");a=[];k.type!==m.StringLiteral&&(!B("default")&&Ta(k)&&(a.push(Cb()),h(",")&&p()),h("*")?\na.push(Db()):h("{")&&(a=a.concat(Eb())),W("from")||F(k.value?r.UnexpectedToken:r.MissingFromClause,k.value),p());b=Na();M();a=c.finishImportDeclaration(a,b);return a;case "const":case "let":return c=new u,a=p().value,P("let"===a||"const"===a,"Lexical declaration must be either let or const"),b=mb(a,{inFor:!1}),M(),c.finishLexicalDeclaration(b,a);case "function":return Oa(new u);case "class":return nb()}return ca()}function Ca(){var a=new u;q("{");for(var b=[];H<x&&!h("}");)b.push(ia());q("}");return a.finishBlockStatement(b)}\nfunction U(){var a,b=new u;a=p();a.type!==m.Identifier&&(y&&a.type===m.Keyword&&ka(a.value)?C(a,r.StrictReservedWord):v(a));return b.finishIdentifier(a.value)}function Fb(){var a=null,b,c=new u;b=xa([]);y&&Q(b.name)&&N(r.StrictVarName);h("=")?(p(),a=J(E)):b.type!==l.Identifier&&q("=");return c.finishVariableDeclarator(b,a)}function ob(){var a=[];do{a.push(Fb());if(!h(","))break;p()}while(H<x);return a}function Gb(a,b){var c=null,d,e=new u;d=xa([]);y&&d.type===l.Identifier&&Q(d.name)&&N(r.StrictVarName);\nif("const"===a)B("in")||W("of")||(q("="),c=J(E));else if(!b.inFor&&d.type!==l.Identifier||h("="))q("="),c=J(E);return e.finishVariableDeclarator(d,c)}function mb(a,b){var c=[];do{c.push(Gb(a,b));if(!h(","))break;p()}while(H<x);return c}function Ka(a){var b=new u;p();h("{")&&F(r.ObjectPatternAsRestParameter);a.push(k);a=U();h("=")&&F(r.DefaultRestParameter);h(")")||F(r.ParameterAfterRestParameter);return b.finishRestElement(a)}function ca(){var a=k.type,b,c,d;a===m.EOF&&v(k);if(a===m.Punctuator&&"{"===\nk.value)return Ca();A=z=!0;d=new u;if(a===m.Punctuator)switch(k.value){case ";":return q(";"),d.finishEmptyStatement();case "(":return b=K(),M(),d.finishExpressionStatement(b)}else if(a===m.Keyword)switch(k.value){case "break":return b=null,G("break"),59===g.charCodeAt(V)?(p(),n.inIteration||n.inSwitch||F(r.IllegalBreak),d=d.finishBreakStatement(null)):R?(n.inIteration||n.inSwitch||F(r.IllegalBreak),d=d.finishBreakStatement(null)):(k.type===m.Identifier&&(b=U(),c="$"+b.name,Object.prototype.hasOwnProperty.call(n.labelSet,\nc)||F(r.UnknownLabel,b.name)),M(),null!==b||n.inIteration||n.inSwitch||F(r.IllegalBreak),d=d.finishBreakStatement(b)),d;case "continue":return b=null,G("continue"),59===g.charCodeAt(H)?(p(),n.inIteration||F(r.IllegalContinue),d=d.finishContinueStatement(null)):R?(n.inIteration||F(r.IllegalContinue),d=d.finishContinueStatement(null)):(k.type===m.Identifier&&(b=U(),c="$"+b.name,Object.prototype.hasOwnProperty.call(n.labelSet,c)||F(r.UnknownLabel,b.name)),M(),null!==b||n.inIteration||F(r.IllegalContinue),\nd=d.finishContinueStatement(b)),d;case "debugger":return G("debugger"),M(),d.finishDebuggerStatement();case "do":return G("do"),c=n.inIteration,n.inIteration=!0,b=ca(),n.inIteration=c,G("while"),q("("),c=K(),q(")"),h(";")&&p(),d.finishDoWhileStatement(b,c);case "for":var e,w,s,t,C,O;O=n.allowIn;e=s=t=null;a=!0;G("for");q("(");if(h(";"))p();else if(B("var"))e=new u,p(),n.allowIn=!1,e=e.finishVariableDeclaration(ob()),n.allowIn=O,1===e.declarations.length&&B("in")?(p(),b=e,c=K(),e=null):1===e.declarations.length&&\nnull===e.declarations[0].init&&W("of")?(p(),b=e,c=E(),e=null,a=!1):q(";");else if(B("const")||B("let"))e=new u,w=p().value,n.allowIn=!1,C=mb(w,{inFor:!0}),n.allowIn=O,1===C.length&&null===C[0].init&&B("in")?(e=e.finishLexicalDeclaration(C,w),p(),b=e,c=K(),e=null):1===C.length&&null===C[0].init&&W("of")?(e=e.finishLexicalDeclaration(C,w),p(),b=e,c=E(),e=null,a=!1):(M(),e=e.finishLexicalDeclaration(C,w));else if(w=k,n.allowIn=!1,e=L(E),n.allowIn=O,B("in"))A||N(r.InvalidLHSInForIn),p(),Y(e),b=e,c=K(),\ne=null;else if(W("of"))A||N(r.InvalidLHSInForLoop),p(),Y(e),b=e,c=E(),e=null,a=!1;else{if(h(",")){for(e=[e];h(",");)p(),e.push(J(E));e=(new I(w)).finishSequenceExpression(e)}q(";")}"undefined"===typeof b&&(h(";")||(s=K()),q(";"),h(")")||(t=K()));q(")");w=n.inIteration;n.inIteration=!0;O=J(ca);n.inIteration=w;return"undefined"===typeof b?d.finishForStatement(e,s,t,O):a?d.finishForInStatement(b,c,O):d.finishForOfStatement(b,c,O);case "function":return Oa(d);case "if":return G("if"),q("("),b=K(),q(")"),\nc=ca(),B("else")?(p(),a=ca()):a=null,d.finishIfStatement(b,c,a);case "return":return b=null,G("return"),n.inFunctionBody||N(r.IllegalReturn),32===g.charCodeAt(V)&&da(g.charCodeAt(V+1))?(b=K(),M(),d=d.finishReturnStatement(b)):R?d=d.finishReturnStatement(null):(h(";")||h("}")||k.type===m.EOF||(b=K()),M(),d=d.finishReturnStatement(b)),d;case "switch":G("switch");q("(");b=K();q(")");q("{");c=[];if(h("}"))p();else{a=n.inSwitch;n.inSwitch=!0;for(s=!1;H<x&&!h("}");){t=void 0;e=[];O=void 0;w=new u;B("default")?\n(p(),t=null):(G("case"),t=K());for(q(":");H<x&&!(h("}")||B("default")||B("case"));)O=ia(),e.push(O);t=w.finishSwitchCase(t,e);null===t.test&&(s&&F(r.MultipleDefaultsInSwitch),s=!0);c.push(t)}n.inSwitch=a;q("}")}d=d.finishSwitchStatement(b,c);return d;case "throw":return G("throw"),R&&F(r.NewlineAfterThrow),b=K(),M(),d.finishThrowStatement(b);case "try":c=a=null;G("try");b=Ca();if(B("catch")){t=[];e={};s=new u;G("catch");q("(");h(")")&&v(k);a=xa(t);for(w=0;w<t.length;w++)O="$"+t[w].value,Object.prototype.hasOwnProperty.call(e,\nO)&&N(r.DuplicateBinding,t[w].value),e[O]=!0;y&&Q(a.name)&&N(r.StrictCatchVariable);q(")");t=Ca();a=s.finishCatchClause(a,t)}B("finally")&&(p(),c=Ca());a||c||F(r.NoCatchOrFinally);return d.finishTryStatement(b,a,c);case "var":return G("var"),b=ob(),M(),d.finishVariableDeclaration(b);case "while":return G("while"),q("("),b=K(),q(")"),a=n.inIteration,n.inIteration=!0,c=ca(),n.inIteration=a,d.finishWhileStatement(b,c);case "with":return y&&N(r.StrictModeWith),G("with"),q("("),b=K(),q(")"),c=ca(),d.finishWithStatement(b,\nc)}b=K();if(b.type===l.Identifier&&h(":"))return p(),a="$"+b.name,Object.prototype.hasOwnProperty.call(n.labelSet,a)&&F(r.Redeclaration,"Label",b.name),n.labelSet[a]=!0,c=ca(),delete n.labelSet[a],d.finishLabeledStatement(b,c);M();return d.finishExpressionStatement(b)}function za(){var a,b=[],c,d,e,w,p=new u;for(q("{");H<x&&k.type===m.StringLiteral;){c=k;a=ia();b.push(a);if(a.expression.type!==l.Literal)break;a=g.slice(c.start+1,c.end-1);"use strict"===a?(y=!0,d&&C(d,r.StrictOctalLiteral)):!d&&c.octal&&\n(d=c)}c=n.labelSet;d=n.inIteration;a=n.inSwitch;e=n.inFunctionBody;w=n.parenthesizedCount;n.labelSet={};n.inIteration=!1;n.inSwitch=!1;n.inFunctionBody=!0;for(n.parenthesizedCount=0;H<x&&!h("}");)b.push(ia());q("}");n.labelSet=c;n.inIteration=d;n.inSwitch=a;n.inFunctionBody=e;n.parenthesizedCount=w;return p.finishBlockStatement(b)}function Ma(a,b,c){var d="$"+c;y?(Q(c)&&(a.stricted=b,a.message=r.StrictParamName),Object.prototype.hasOwnProperty.call(a.paramSet,d)&&(a.stricted=b,a.message=r.StrictParamDupe)):\na.firstRestricted||(Q(c)?(a.firstRestricted=b,a.message=r.StrictParamName):ka(c)?(a.firstRestricted=b,a.message=r.StrictReservedWord):Object.prototype.hasOwnProperty.call(a.paramSet,d)&&(a.stricted=b,a.message=r.StrictParamDupe));a.paramSet[d]=!0}function ab(a){var b,c=[],d,e;if("..."===k.value)return b=Ka(c),Ma(a,b.argument,b.argument.name),a.params.push(b),a.defaults.push(null),!1;b=Ia(c);for(d=0;d<c.length;d++)Ma(a,c[d],c[d].value);b.type===l.AssignmentPattern&&(e=b.right,b=b.left,++a.defaultCount);\na.params.push(b);a.defaults.push(e);return!h(")")}function Ba(a){a={params:[],defaultCount:0,defaults:[],firstRestricted:a};q("(");if(!h(")"))for(a.paramSet={};H<x&&ab(a);)q(",");q(")");0===a.defaultCount&&(a.defaults=[]);return{params:a.params,defaults:a.defaults,stricted:a.stricted,firstRestricted:a.firstRestricted,message:a.message}}function Oa(a,b){var c=null,d=[],e=[],g,l,m,q,s,t,u;G("function");(t=h("*"))&&p();b&&h("(")||(d=k,c=U(),y?Q(d.value)&&C(d,r.StrictFunctionName):Q(d.value)?(m=d,q=r.StrictFunctionName):\nka(d.value)&&(m=d,q=r.StrictReservedWord));u=n.allowYield;n.allowYield=!1;g=Ba(m);n.allowYield=u;d=g.params;e=g.defaults;l=g.stricted;m=g.firstRestricted;g.message&&(q=g.message);u=n.allowYield;s=y;n.allowYield=t;g=za();y&&m&&v(m,q);y&&l&&C(l,q);y=s;n.allowYield=u;return a.finishFunctionDeclaration(c,d,e,g,t)}function fb(){var a,b,c,d=!1,e,g,m,n;a=new u;q("{");for(e=[];!h("}");)h(";")?p():(g=new u,b=k,c=!1,m=h("["),h("*")?p():(n=ga(),"static"===n.name&&(Aa()||h("*"))&&(b=k,c=!0,m=h("["),h("*")?p():\nn=ga())),(g=$a(b,n,m,g))?(g["static"]=c,"init"===g.kind&&(g.kind="method"),c?g.computed||"prototype"!==(g.key.name||g.key.value.toString())||v(b,r.StaticPrototype):g.computed||"constructor"!==(g.key.name||g.key.value.toString())||("method"===g.kind&&g.method&&!g.value.generator||v(b,r.ConstructorSpecialMethod),d?v(b,r.DuplicateConstructor):d=!0,g.kind="constructor"),g.type=l.MethodDefinition,delete g.method,delete g.shorthand,e.push(g)):v(k));p();return a.finishClassBody(e)}function nb(a){var b=null,\nc=null,d=new u,e=y;y=!0;G("class");a&&k.type!==m.Identifier||(b=U());B("extends")&&(p(),c=J(La));a=fb();y=e;return d.finishClassDeclaration(b,c,a)}function Na(){var a=new u;k.type!==m.StringLiteral&&F(r.InvalidModuleSpecifier);return a.finishLiteral(p())}function Hb(){var a,b,c=new u;B("default")?(b=new u,p(),b=b.finishIdentifier("default")):b=U();W("as")&&(p(),a=sa());return c.finishExportSpecifier(b,a)}function Bb(){var a=new u;n.inFunctionBody&&F(r.IllegalExportDeclaration);G("export");if(B("default")){var b=\nnull,b=null;G("default");B("function")?b=Oa(new u,!0):B("class")?b=nb(!0):(W("from")&&F(r.UnexpectedToken,k.value),b=h("{")?cb():h("[")?Za():E(),M());a=a.finishExportDefaultDeclaration(b);return a}if(h("*"))return q("*"),W("from")||F(k.value?r.UnexpectedToken:r.MissingFromClause,k.value),p(),b=Na(),M(),a.finishExportAllDeclaration(b);a:{var b=null,c,d=null,e=[];if(k.type===m.Keyword)switch(k.value){case "let":case "const":case "var":case "class":case "function":b=ia();a=a.finishExportNamedDeclaration(b,\ne,null);break a}q("{");if(!h("}")){do c=c||B("default"),e.push(Hb());while(h(",")&&p())}q("}");W("from")?(p(),d=Na(),M()):c?F(k.value?r.UnexpectedToken:r.MissingFromClause,k.value):M();a=a.finishExportNamedDeclaration(b,e,d)}return a}function Ib(){var a,b,c=new u;b=sa();W("as")&&(p(),a=U());return c.finishImportSpecifier(a,b)}function Eb(){var a=[];q("{");if(!h("}")){do a.push(Ib());while(h(",")&&p())}q("}");return a}function Cb(){var a,b=new u;a=sa();return b.finishImportDefaultSpecifier(a)}function Db(){var a,\nb=new u;q("*");W("as")||F(r.NoAsAfterImportNamespace);p();a=sa();return b.finishImportNamespaceSpecifier(a)}function pb(){var a,b,c,d=[];for(a=0;a<e.tokens.length;++a)b=e.tokens[a],c={type:b.type,value:b.value},b.regex&&(c.regex={pattern:b.regex.pattern,flags:b.regex.flags}),e.range&&(c.range=b.range),e.loc&&(c.loc=b.loc),d.push(c);e.tokens=d}var m,S,Ua,l,ha,r,Ea,g,y,pa,d,s,t,R,V,ma,ra,H,ea,fa,aa,x,k,n,e,z,A,T;m={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,\nStringLiteral:8,RegularExpression:9,Template:10};S={};S[m.BooleanLiteral]="Boolean";S[m.EOF]="<end>";S[m.Identifier]="Identifier";S[m.Keyword]="Keyword";S[m.NullLiteral]="Null";S[m.NumericLiteral]="Numeric";S[m.Punctuator]="Punctuator";S[m.StringLiteral]="String";S[m.RegularExpression]="RegularExpression";S[m.Template]="Template";Ua="( { [ in typeof instanceof new return case delete throw void = += -= *= /= %= <<= >>= >>>= &= |= ^= , + - * / % ++ -- << >> >>> & | ^ ! ~ && || ? : === == >= <= < > != !==".split(" ");\nl={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",\nDoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",\nIfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",\nReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",\nWhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"};ha={ArrowParameterPlaceHolder:"ArrowParameterPlaceHolder"};r={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",\nUnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label \'%0\'",Redeclaration:"%0 \'%1\' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",\nIllegalReturn:"Illegal return statement",IllegalYield:"Unexpected token yield",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",\nStrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",\nParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",ObjectPatternAsRestParameter:"Unexpected token {",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",\nInvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token",DuplicateBinding:"Duplicate binding %0"};Ea={NonAsciiIdentifierStart:RegExp("[\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0-\\u08b2\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua7ad\\ua7b0\\ua7b1\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab5f\\uab64\\uab65\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]"),\nNonAsciiIdentifierPart:RegExp("[\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u0800-\\u082d\\u0840-\\u085b\\u08a0-\\u08b2\\u08e4-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b5c\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c03\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c58\\u0c59\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1\\u0cf2\\u0d01-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d57\\u0d60-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb9\\u0ebb-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772\\u1773\\u1780-\\u17d3\\u17d7\\u17dc\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19d9\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1cd0-\\u1cd2\\u1cd4-\\u1cf6\\u1cf8\\u1cf9\\u1d00-\\u1df5\\u1dfc-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u200c\\u200d\\u203f\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u2e2f\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099\\u309a\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua69d\\ua69f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua7ad\\ua7b0\\ua7b1\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c4\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua900-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab5f\\uab64\\uab65\\uabc0-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2d\\ufe33\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]")};\nI.prototype=u.prototype={processComment:function(){var a,b,c,d=e.bottomRightStack,g,h,k=d[d.length-1];if(!(this.type===l.Program&&0<this.body.length)){if(0<e.trailingComments.length){c=[];for(g=e.trailingComments.length-1;0<=g;--g)h=e.trailingComments[g],h.range[0]>=this.range[1]&&(c.unshift(h),e.trailingComments.splice(g,1));e.trailingComments=[]}else k&&k.trailingComments&&k.trailingComments[0].range[0]>=this.range[1]&&(c=k.trailingComments,delete k.trailingComments);for(;k&&k.range[0]>=this.range[0];)a=\nd.pop(),k=d[d.length-1];if(a){if(a.leadingComments){b=[];for(g=a.leadingComments.length-1;0<=g;--g)h=a.leadingComments[g],h.range[1]<=this.range[0]&&(b.unshift(h),a.leadingComments.splice(g,1));a.leadingComments.length||(a.leadingComments=void 0)}}else if(0<e.leadingComments.length)for(b=[],g=e.leadingComments.length-1;0<=g;--g)h=e.leadingComments[g],h.range[1]<=this.range[0]&&(b.unshift(h),e.leadingComments.splice(g,1));b&&0<b.length&&(this.leadingComments=b);c&&0<c.length&&(this.trailingComments=\nc);d.push(this)}},finish:function(){e.range&&(this.range[1]=V);e.loc&&(this.loc.end={line:ma,column:V-ra},e.source&&(this.loc.source=e.source));e.attachComment&&this.processComment()},finishArrayExpression:function(a){this.type=l.ArrayExpression;this.elements=a;this.finish();return this},finishArrayPattern:function(a){this.type=l.ArrayPattern;this.elements=a;this.finish();return this},finishArrowFunctionExpression:function(a,b,c,d){this.type=l.ArrowFunctionExpression;this.id=null;this.params=a;this.defaults=\nb;this.body=c;this.generator=!1;this.expression=d;this.finish();return this},finishAssignmentExpression:function(a,b,c){this.type=l.AssignmentExpression;this.operator=a;this.left=b;this.right=c;this.finish();return this},finishAssignmentPattern:function(a,b){this.type=l.AssignmentPattern;this.left=a;this.right=b;this.finish();return this},finishBinaryExpression:function(a,b,c){this.type="||"===a||"&&"===a?l.LogicalExpression:l.BinaryExpression;this.operator=a;this.left=b;this.right=c;this.finish();\nreturn this},finishBlockStatement:function(a){this.type=l.BlockStatement;this.body=a;this.finish();return this},finishBreakStatement:function(a){this.type=l.BreakStatement;this.label=a;this.finish();return this},finishCallExpression:function(a,b){this.type=l.CallExpression;this.callee=a;this.arguments=b;this.finish();return this},finishCatchClause:function(a,b){this.type=l.CatchClause;this.param=a;this.body=b;this.finish();return this},finishClassBody:function(a){this.type=l.ClassBody;this.body=a;\nthis.finish();return this},finishClassDeclaration:function(a,b,c){this.type=l.ClassDeclaration;this.id=a;this.superClass=b;this.body=c;this.finish();return this},finishClassExpression:function(a,b,c){this.type=l.ClassExpression;this.id=a;this.superClass=b;this.body=c;this.finish();return this},finishConditionalExpression:function(a,b,c){this.type=l.ConditionalExpression;this.test=a;this.consequent=b;this.alternate=c;this.finish();return this},finishContinueStatement:function(a){this.type=l.ContinueStatement;\nthis.label=a;this.finish();return this},finishDebuggerStatement:function(){this.type=l.DebuggerStatement;this.finish();return this},finishDoWhileStatement:function(a,b){this.type=l.DoWhileStatement;this.body=a;this.test=b;this.finish();return this},finishEmptyStatement:function(){this.type=l.EmptyStatement;this.finish();return this},finishExpressionStatement:function(a){this.type=l.ExpressionStatement;this.expression=a;this.finish();return this},finishForStatement:function(a,b,c,d){this.type=l.ForStatement;\nthis.init=a;this.test=b;this.update=c;this.body=d;this.finish();return this},finishForOfStatement:function(a,b,c){this.type=l.ForOfStatement;this.left=a;this.right=b;this.body=c;this.finish();return this},finishForInStatement:function(a,b,c){this.type=l.ForInStatement;this.left=a;this.right=b;this.body=c;this.each=!1;this.finish();return this},finishFunctionDeclaration:function(a,b,c,d,e){this.type=l.FunctionDeclaration;this.id=a;this.params=b;this.defaults=c;this.body=d;this.generator=e;this.expression=\n!1;this.finish();return this},finishFunctionExpression:function(a,b,c,d,e){this.type=l.FunctionExpression;this.id=a;this.params=b;this.defaults=c;this.body=d;this.generator=e;this.expression=!1;this.finish();return this},finishIdentifier:function(a){this.type=l.Identifier;this.name=a;this.finish();return this},finishIfStatement:function(a,b,c){this.type=l.IfStatement;this.test=a;this.consequent=b;this.alternate=c;this.finish();return this},finishLabeledStatement:function(a,b){this.type=l.LabeledStatement;\nthis.label=a;this.body=b;this.finish();return this},finishLiteral:function(a){this.type=l.Literal;this.value=a.value;this.raw=g.slice(a.start,a.end);a.regex&&(this.regex=a.regex);this.finish();return this},finishMemberExpression:function(a,b,c){this.type=l.MemberExpression;this.computed="["===a;this.object=b;this.property=c;this.finish();return this},finishNewExpression:function(a,b){this.type=l.NewExpression;this.callee=a;this.arguments=b;this.finish();return this},finishObjectExpression:function(a){this.type=\nl.ObjectExpression;this.properties=a;this.finish();return this},finishObjectPattern:function(a){this.type=l.ObjectPattern;this.properties=a;this.finish();return this},finishPostfixExpression:function(a,b){this.type=l.UpdateExpression;this.operator=a;this.argument=b;this.prefix=!1;this.finish();return this},finishProgram:function(a){this.type=l.Program;this.body=a;"module"===pa&&(this.sourceType=pa);this.finish();return this},finishProperty:function(a,b,c,d,e,g){this.type=l.Property;this.key=b;this.computed=\nc;this.value=d;this.kind=a;this.method=e;this.shorthand=g;this.finish();return this},finishRestElement:function(a){this.type=l.RestElement;this.argument=a;this.finish();return this},finishReturnStatement:function(a){this.type=l.ReturnStatement;this.argument=a;this.finish();return this},finishSequenceExpression:function(a){this.type=l.SequenceExpression;this.expressions=a;this.finish();return this},finishSpreadElement:function(a){this.type=l.SpreadElement;this.argument=a;this.finish();return this},\nfinishSwitchCase:function(a,b){this.type=l.SwitchCase;this.test=a;this.consequent=b;this.finish();return this},finishSuper:function(){this.type=l.Super;this.finish();return this},finishSwitchStatement:function(a,b){this.type=l.SwitchStatement;this.discriminant=a;this.cases=b;this.finish();return this},finishTaggedTemplateExpression:function(a,b){this.type=l.TaggedTemplateExpression;this.tag=a;this.quasi=b;this.finish();return this},finishTemplateElement:function(a,b){this.type=l.TemplateElement;this.value=\na;this.tail=b;this.finish();return this},finishTemplateLiteral:function(a,b){this.type=l.TemplateLiteral;this.quasis=a;this.expressions=b;this.finish();return this},finishThisExpression:function(){this.type=l.ThisExpression;this.finish();return this},finishThrowStatement:function(a){this.type=l.ThrowStatement;this.argument=a;this.finish();return this},finishTryStatement:function(a,b,c){this.type=l.TryStatement;this.block=a;this.guardedHandlers=[];this.handlers=b?[b]:[];this.handler=b;this.finalizer=\nc;this.finish();return this},finishUnaryExpression:function(a,b){this.type="++"===a||"--"===a?l.UpdateExpression:l.UnaryExpression;this.operator=a;this.argument=b;this.prefix=!0;this.finish();return this},finishVariableDeclaration:function(a){this.type=l.VariableDeclaration;this.declarations=a;this.kind="var";this.finish();return this},finishLexicalDeclaration:function(a,b){this.type=l.VariableDeclaration;this.declarations=a;this.kind=b;this.finish();return this},finishVariableDeclarator:function(a,\nb){this.type=l.VariableDeclarator;this.id=a;this.init=b;this.finish();return this},finishWhileStatement:function(a,b){this.type=l.WhileStatement;this.test=a;this.body=b;this.finish();return this},finishWithStatement:function(a,b){this.type=l.WithStatement;this.object=a;this.body=b;this.finish();return this},finishExportSpecifier:function(a,b){this.type=l.ExportSpecifier;this.exported=b||a;this.local=a;this.finish();return this},finishImportDefaultSpecifier:function(a){this.type=l.ImportDefaultSpecifier;\nthis.local=a;this.finish();return this},finishImportNamespaceSpecifier:function(a){this.type=l.ImportNamespaceSpecifier;this.local=a;this.finish();return this},finishExportNamedDeclaration:function(a,b,c){this.type=l.ExportNamedDeclaration;this.declaration=a;this.specifiers=b;this.source=c;this.finish();return this},finishExportDefaultDeclaration:function(a){this.type=l.ExportDefaultDeclaration;this.declaration=a;this.finish();return this},finishExportAllDeclaration:function(a){this.type=l.ExportAllDeclaration;\nthis.source=a;this.finish();return this},finishImportSpecifier:function(a,b){this.type=l.ImportSpecifier;this.local=a||b;this.imported=b;this.finish();return this},finishImportDeclaration:function(a,b){this.type=l.ImportDeclaration;this.specifiers=a;this.source=b;this.finish();return this},finishYieldExpression:function(a,b){this.type=l.YieldExpression;this.argument=a;this.delegate=b;this.finish();return this}};ja.version="2.4.1";ja.tokenize=function(a,b){var c,f;c=String;"string"===typeof a||a instanceof\nString||(a=c(a));g=a;d=0;s=0<g.length?1:0;t=0;H=d;ea=s;fa=t;x=g.length;k=null;n={allowIn:!0,allowYield:!1,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,curlyStack:[]};e={};b=b||{};b.tokens=!0;e.tokens=[];e.tokenize=!0;e.openParenToken=-1;e.openCurlyToken=-1;e.range="boolean"===typeof b.range&&b.range;e.loc="boolean"===typeof b.loc&&b.loc;"boolean"===typeof b.comment&&b.comment&&(e.comments=[]);"boolean"===typeof b.tolerant&&b.tolerant&&(e.errors=[]);try{Wa();if(k.type===\nm.EOF)return e.tokens;for(p();k.type!==m.EOF;)try{p()}catch(h){if(e.errors){Ha(h);break}else throw h;}pb();f=e.tokens;"undefined"!==typeof e.comments&&(f.comments=e.comments);"undefined"!==typeof e.errors&&(f.errors=e.errors)}catch(l){throw l;}finally{e={}}return f};ja.parse=function(a,b){var c,f;f=String;"string"===typeof a||a instanceof String||(a=f(a));g=a;d=0;s=0<g.length?1:0;t=0;H=d;ea=s;fa=t;x=g.length;k=null;n={allowIn:!0,allowYield:!1,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,\nlastCommentStart:-1,curlyStack:[]};pa="script";y=!1;e={};"undefined"!==typeof b&&(e.range="boolean"===typeof b.range&&b.range,e.loc="boolean"===typeof b.loc&&b.loc,e.attachComment="boolean"===typeof b.attachComment&&b.attachComment,e.loc&&null!==b.source&&void 0!==b.source&&(e.source=f(b.source)),"boolean"===typeof b.tokens&&b.tokens&&(e.tokens=[]),"boolean"===typeof b.comment&&b.comment&&(e.comments=[]),"boolean"===typeof b.tolerant&&b.tolerant&&(e.errors=[]),e.attachComment&&(e.range=!0,e.comments=\n[],e.bottomRightStack=[],e.trailingComments=[],e.leadingComments=[]),"module"===b.sourceType&&(pa=b.sourceType,y=!0));try{var h;Wa();h=new u;var p;f=[];for(var q,v,z;H<x;){q=k;if(q.type!==m.StringLiteral)break;p=ia();f.push(p);if(p.expression.type!==l.Literal)break;v=g.slice(q.start+1,q.end-1);"use strict"===v?(y=!0,z&&C(z,r.StrictOctalLiteral)):!z&&q.octal&&(z=q)}for(;H<x;){p=ia();if("undefined"===typeof p)break;f.push(p)}c=h.finishProgram(f);"undefined"!==typeof e.comments&&(c.comments=e.comments);\n"undefined"!==typeof e.tokens&&(pb(),c.tokens=e.tokens);"undefined"!==typeof e.errors&&(c.errors=e.errors)}catch(A){throw A;}finally{e={}}return c};ja.Syntax=function(){var a,b={};"function"===typeof Object.create&&(b=Object.create(null));for(a in l)l.hasOwnProperty(a)&&(b[a]=l[a]);"function"===typeof Object.freeze&&Object.freeze(b);return b}()});\n',
pre:!0},"util/formatNumber.js":{path:"util/formatNumber.js",friendlyPath:"jsio.util.formatNumber",directory:"util/",filename:"formatNumber.js",src:'exports.integer=function(a,c,b,d){c=c||"";b=b?" "+b:"";d=d?" "+d:b;var e=(""+Math.round(a)).split(""),f=e.length;if(1==a)return c+1+d;if(3<f)for(a=e.length-1;0<a;--a)0==(f-a)%3&&e.splice(a,0,",");return c+e.join("")+b};\n',pre:!0},"util/jslint.js":{path:"util/jslint.js",friendlyPath:"jsio.util.jslint",directory:"util/",filename:"jslint.js",src:'logger.warn("String.prototype has been modified. Current browser session should only be used for debugging.");"use strict";\nvar JSLINT=exports=function(){function jb(){}function R(a,c){return Object.prototype.hasOwnProperty.call(a,c)}function oa(a,c){for(var b in c)R(c,b)&&(a[b]=c[b])}function Na(){h.safe||(h.rhino&&oa(D,xb),h.devel&&oa(D,yb),h.browser&&oa(D,zb),h.windows&&oa(D,Ab),h.widget&&oa(D,Bb))}function Oa(a,c,b){throw{name:"JSLintError",line:c,character:b,message:a+" ("+Math.floor(c/pa.length*100)+"% scanned)."};}function e(d,c,b,f,e,l){var A;c=c||a;"(end)"===c.id&&(c=g);A=c.line||0;c=c.from||0;b={id:"(error)",\nraw:d,evidence:pa[A-1]||"",line:A,character:c,a:b,b:f,c:e,d:l};b.reason=d.supplant(b);JSLINT.errors.push(b);h.passfail&&Oa("Stopping. ",A,c);ya+=1;ya>=h.maxerr&&Oa("Too many errors.",A,c);return b}function r(a,c,b,f,g,l,h){return e(a,{line:c,from:b},f,g,l,h)}function q(a,c,b,f,g,l){a=e(a,c,b,f,g,l);Oa("Stopping, unable to continue.",a.line,a.character)}function J(a,c,b,f,e,g,h){return q(a,{line:c,from:b},f,e,g,h)}function ca(d,c){h.safe&&k["(global)"]&&"boolean"!==typeof D[d]?e("ADsafe global: "+\nd+".",g):"hasOwnProperty"===d&&e("\'hasOwnProperty\' is a really bad name.");R(k,d)&&!k["(global)"]&&e(!0===k[d]?"\'{a}\' was used before it was defined.":"\'{a}\' is already defined.",a,d);k[d]=c;k["(global)"]?(kb[d]=k,R(Y,d)&&(e("\'{a}\' was used before it was defined.",a,d),delete Y[d])):E[d]=k}function K(a){a=a||0;for(var c=0,b;c<=a;)(b=za[c])||(b=za[c]=U.token()),c+=1;return b}function f(d,c){switch(g.id){case "(number)":"."===a.id&&e("A dot following a number can be confused with a decimal point.",\ng);break;case "-":"-"!==a.id&&"--"!==a.id||e("Confusing minusses.");break;case "+":"+"!==a.id&&"++"!==a.id||e("Confusing plusses.")}if("(string)"===g.type||g.identifier)Pa=g.value;d&&a.id!==d&&(c?"(end)"===a.id?e("Unmatched \'{a}\'.",c,c.id):e("Expected \'{a}\' to match \'{b}\' from line {c} and instead saw \'{d}\'.",a,d,c.id,c.line,a.value):"(identifier)"===a.type&&a.value===d||e("Expected \'{a}\' and instead saw \'{b}\'.",a,d,a.value));G=g;for(g=a;;){a=za.shift()||U.token();if("(end)"===a.id||"(error)"===a.id)break;\nif("special"===a.type){var b=void 0,f=void 0,O=void 0,l=a.value,A=b=void 0;switch(l){case "*/":q("Unbegun comment.");break;case "/*members":case "/*member":l="/*members";da||(da={});f=da;break;case "/*jslint":h.safe&&e("ADsafe restriction.");f=h;O=Cb;break;case "/*global":h.safe&&e("ADsafe restriction."),f=D}b=U.token();a:for(;;){for(;;){if("special"===b.type&&"*/"===b.value)break a;if("(endline)"!==b.id&&","!==b.id)break;b=U.token()}"(string)"!==b.type&&"(identifier)"!==b.type&&"/*members"!==l&&\nq("Bad option.",b);A=U.token();":"===A.id?(A=U.token(),f===da&&q("Expected \'{a}\' and instead saw \'{b}\'.",b,"*/",":"),"indent"===b.value&&"/*jslint"===l?(b=+A.value,("number"!==typeof b||!isFinite(b)||0>=b||Math.floor(b)!==b)&&q("Expected a small integer and instead saw \'{a}\'.",A,A.value),f.white=!0,f.indent=b):"maxerr"===b.value&&"/*jslint"===l?(b=+A.value,("number"!==typeof b||!isFinite(b)||0>=b||Math.floor(b)!==b)&&q("Expected a small integer and instead saw \'{a}\'.",A,A.value),f.maxerr=b):"maxlen"===\nb.value&&"/*jslint"===l?(b=+A.value,("number"!==typeof b||!isFinite(b)||0>=b||Math.floor(b)!==b)&&q("Expected a small integer and instead saw \'{a}\'.",A,A.value),f.maxlen=b):"true"===A.value?f[b.value]=!0:"false"===A.value?f[b.value]=!1:q("Bad option value.",A),b=U.token()):("/*jslint"===l&&q("Missing option value.",b),f[b.value]=!1,b=A)}O&&Na()}else if("(endline)"!==a.id)break}}function n(d,c){var b;"(end)"===a.id&&q("Unexpected early end of program.",g);f();h.safe&&"boolean"===typeof D[g.value]&&\n"("!==a.id&&"."!==a.id&&e("ADsafe violation.",g);c&&(Pa="anonymous",k["(verb)"]=g.value);if(!0===c&&g.fud)b=g.fud();else{if(g.nud)b=g.nud();else{if("(number)"===a.type&&"."===g.id)return e("A leading decimal point can be confused with a dot: \'.{a}\'.",g,a.value),f(),g;q("Expected an identifier and instead saw \'{a}\'.",g,g.id)}for(;d<a.lbp;)f(),g.led?b=g.led(b):q("Expected an operator and instead saw \'{a}\'.",g,g.id)}return b}function F(d,c){d=d||g;c=c||a;(h.white||"styleproperty"===t||"style"===t)&&\nd.character!==c.from&&d.line===c.line&&e("Unexpected space after \'{a}\'.",c,d.value)}function Qa(d,c){d=d||g;c=c||a;d.character===c.from&&d.line===c.line||e("Unexpected space before \'{a}\'.",c,c.value)}function B(d,c){d=d||g;c=c||a;h.white&&!d.comment&&d.line===c.line&&F(d,c)}function C(d,c){h.white&&(d=d||g,c=c||a,d.line===c.line&&d.character===c.from&&e("Missing space after \'{a}\'.",a,d.value))}function lb(d,c){d=d||g;c=c||a;h.laxbreak||d.line===c.line?h.white&&(d=d||g,c=c||a,d.character===c.from&&\ne("Missing space after \'{a}\'.",a,d.value)):e("Bad line breaking before \'{a}\'.",c,c.id)}function S(d){h.white&&"(end)"!==a.id&&(d=x+(d||0),a.from!==d&&e("Expected \'{a}\' to have an indentation at {b} instead at {c}.",a,a.value,d,a.from))}function Z(d){d=d||g;d.line!==a.line&&e("Line breaking error \'{a}\'.",d,d.value)}function P(){g.line!==a.line?h.laxbreak||e("Bad line breaking before \'{a}\'.",g,a.id):g.character!==a.from&&h.white&&e("Unexpected space after \'{a}\'.",a,g.value);f(",");C(g,a)}function $(a,\nc){var b=L[a];b&&"object"===typeof b||(L[a]=b={id:a,lbp:c,value:a});return b}function y(a){return $(a,0)}function aa(a,c){var b=y(a);b.identifier=b.reserved=!0;b.fud=c;return b}function ga(a,c){var b=aa(a,c);b.block=!0;return b}function Ra(a){var c=a.id.charAt(0);if("a"<=c&&"z">=c||"A"<=c&&"Z">=c)a.identifier=a.reserved=!0;return a}function M(a,c){var b=$(a,150);Ra(b);b.nud="function"===typeof c?c:function(){this.right=n(150);this.arity="unary";if("++"===this.id||"--"===this.id)h.plusplus?e("Unexpected use of \'{a}\'.",\nthis,this.id):this.right.identifier&&!this.right.reserved||"."===this.right.id||"["===this.right.id||e("Bad operand.",this);return this};return b}function Aa(a,c){var b=y(a);b.type=a;b.nud=c;return b}function w(a,c){var b=Aa(a,c);b.identifier=b.reserved=!0;return b}function V(a,c){return w(a,function(){"function"===typeof c&&c(this);return this})}function I(d,c,b,f){d=$(d,b);Ra(d);d.led=function(d){f||(lb(G,g),C(g,a));if("function"===typeof c)return c(d,this);this.left=d;this.right=n(b);return this};\nreturn d}function ba(d,c){var b=$(d,100);b.led=function(d){lb(G,g);C(g,a);var b=n(100);d&&"NaN"===d.id||b&&"NaN"===b.id?e("Use the isNaN function to compare with NaN.",this):c&&c.apply(this,[d,b]);"!"===d.id&&e("Confusing use of \'{a}\'.",d,"!");"!"===b.id&&e("Confusing use of \'{a}\'.",d,"!");this.left=d;this.right=b;return this};return b}function Ba(a){return a&&("(number)"===a.type&&0===+a.value||"(string)"===a.type&&""===a.value||"true"===a.type||"false"===a.type||"undefined"===a.type||"null"===a.type)}\nfunction ha(a,c){$(a,20).exps=!0;return I(a,function(a,d){var c;d.left=a;!1===D[a.value]&&!0===E[a.value]["(global)"]?e("Read only.",a):a["function"]&&e("\'{a}\' is a function.",a,a.value);if(h.safe){c=a;do"boolean"===typeof D[c.value]&&e("ADsafe violation.",c),c=c.left;while(c)}if(a){if("."===a.id||"["===a.id)return a.left&&"arguments"!==a.left.value||e("Bad assignment.",d),d.right=n(19),d;if(a.identifier&&!a.reserved)return"exception"===k[a.value]&&e("Do not assign to the exception parameter.",a),\nd.right=n(19),d;a===L["function"]&&e("Expected an identifier in an assignment and instead saw a function invocation.",g)}q("Bad assignment.",d)},20)}function ia(a,c,b){a=$(a,b);Ra(a);a.led="function"===typeof c?c:function(a){h.bitwise&&e("Unexpected use of \'{a}\'.",this,this.id);this.left=a;this.right=n(b);return this};return a}function ja(d){$(d,20).exps=!0;return I(d,function(d,b){h.bitwise&&e("Unexpected use of \'{a}\'.",b,b.id);C(G,g);C(g,a);if(d){if("."===d.id||"["===d.id||d.identifier&&!d.reserved)return n(19),\nb;d===L["function"]&&e("Expected an identifier in an assignment, and instead saw a function invocation.",g);return b}q("Bad assignment.",b)},20)}function mb(a,c){var b=$(a,150);b.led=function(a){h.plusplus?e("Unexpected use of \'{a}\'.",this,this.id):a.identifier&&!a.reserved||"."===a.id||"["===a.id||e("Bad operand.",this);this.left=a;return this};return b}function Sa(){if(a.identifier)return f(),h.safe&&Ta[g.value]?e("ADsafe violation: \'{a}\'.",g,g.value):g.reserved&&!h.es5&&e("Expected an identifier and instead saw \'{a}\' (a reserved word).",\ng,g.id),g.value}function qa(){var d=Sa();if(d)return d;"function"===g.id&&"("===a.id?e("Missing name in function statement."):q("Expected an identifier and instead saw \'{a}\'.",a,a.value)}function Ca(d){var c=0,b;if(";"===a.id&&!Ua)for(;;){b=K(c);if(b.reach)break;if("(endline)"!==b.id){if("function"===b.id){e("Inner functions should be listed at the top of the outer function.",b);break}e("Unreachable \'{a}\' after \'{b}\'.",b,b.value,d);break}c+=1}}function Va(d){var c=x,b=E,s=a;if(";"===s.id)e("Unnecessary semicolon.",\ns),f(";");else return s.identifier&&!s.reserved&&":"===K().id&&(f(),f(":"),E=Object.create(b),ca(s.value,"label"),a.labelled||e("Label \'{a}\' on {b} statement.",a,s.value,a.value),Wa.test(s.value+":")&&e("Label \'{a}\' looks like a javascript url.",s,s.value),a.label=s.value,s=a),d||S(),d=n(0,!0),s.block||(d&&d.exps?"("===d.id&&"new"===d.left.id&&e("Do not use \'new\' for side effects."):e("Expected an assignment or function call and instead saw an expression.",g),";"!==a.id?r("Missing semicolon.",g.line,\ng.from+g.value.length):(F(g,a),f(";"),C(g,a))),x=c,E=b,d}function nb(){return"use strict"===a.value?(f(),f(";"),Da=!0,h.newcap=!0,h.undef=!0):!1}function ra(d){var c=[],b;d&&!nb()&&h.strict&&e(\'Missing "use strict" statement.\',a);if(h.adsafe)switch(d){case "script":ka||("ADSAFE"!==a.value||"."!==K(0).id||"id"!==K(1).value&&"go"!==K(1).value)&&q("ADsafe violation: Missing ADSAFE.id or ADSAFE.go.",a);"ADSAFE"===a.value&&"."===K(0).id&&"id"===K(1).value&&(ka&&q("ADsafe violation.",a),f("ADSAFE"),f("."),\nf("id"),f("("),a.value!==Q&&q("ADsafe violation: id does not match.",a),f("(string)"),f(")"),f(";"),ka=!0);break;case "lib":if("ADSAFE"===a.value)return f("ADSAFE"),f("."),f("lib"),f("("),f("(string)"),P(),d=n(0),"function"!==d.id&&q("The second argument to lib must be a function.",d),(b=(b=d.funct["(params)"])&&b.join(", "))&&"lib"!==b&&q("Expected \'{a}\' and instead saw \'{b}\'.",d,"(lib)","("+b+")"),f(")"),f(";"),c;q("ADsafe lib violation.")}for(;!a.reach&&"(end)"!==a.id;)";"===a.id?(e("Unnecessary semicolon."),\nf(";")):c.push(Va());return c}function T(d){var c,b=sa,s=x,O=E,l;sa=d;E=Object.create(E);C(g,a);l=a;if("{"===a.id){f("{");if("}"!==a.id||g.line!==a.line){for(x+=h.indent;!d&&a.from>x;)x+=h.indent;d||nb();c=ra();x-=h.indent;S()}f("}",l);x=s}else e("Expected \'{a}\' and instead saw \'{b}\'.",a,"{",a.value),Ua=!0,c=[Va()],Ua=!1;k["(verb)"]=null;E=O;sa=b;!d||c&&0!==c.length||e("Empty block.");return c}function Ea(a){da&&"boolean"!==typeof da[a]&&e("Unexpected /*member \'{a}\'.",g,a);ea[a]="number"===typeof ea[a]?\nea[a]+1:1}function Xa(a){var c=a.value;a=a.line;var b=Y[c];"function"===typeof b&&(b=!1);b?b[b.length-1]!==a&&b.push(a):(b=[a],Y[c]=b)}function Ya(){if(a.identifier)return f(),!0}function Fa(){"-"===a.id&&(f("-"),F(),Z());if("(number)"===a.type)return f("(number)"),!0}function Za(){if("(string)"===a.type)return f(),!0}function W(){var d,c,b;if(a.identifier){b=a.value;if("rgb"===b||"rgba"===b){f();f("(");for(d=0;3>d;d+=1)d&&f(","),c=a.value,"(number)"!==a.type||0>c?(e("Expected a positive number and instead saw \'{a}\'",\na,c),f()):(f(),"%"===a.id?(f("%"),100<c&&e("Expected a percentage and instead saw \'{a}\'",g,c)):255<c&&e("Expected a small number and instead saw \'{a}\'",g,c));"rgba"===b&&(f(","),c=+a.value,("(number)"!==a.type||0>c||1<c)&&e("Expected a number between 0 and 1 and instead saw \'{a}\'",a,c),f(),"%"===a.id&&(e("Unexpected \'%\'."),f("%")));f(")");return!0}if(!0===Db[a.value])return f(),!0}else if("(color)"===a.type)return f(),!0;return!1}function z(){"-"===a.id&&(f("-"),F(),Z());return"(number)"===a.type?\n(f(),"(string)"!==a.type&&!0===ob[a.value]?(F(),f()):0!==+g.value&&e("Expected a linear unit and instead saw \'{a}\'.",a,a.value),!0):!1}function la(){if(a.identifier)switch(a.value){case "thin":case "medium":case "thick":return f(),!0}else return z()}function ta(){if(a.identifier){if("auto"===a.value)return f(),!0}else return z()}function fa(){var d,c;if(a.identifier&&"url"===a.value){a=U.range("(",")");c=a.value;d=c.charAt(0);if(\'"\'===d||"\'"===d)c.slice(-1)!==d?e("Bad url string."):(c=c.slice(1,-1),\n0<=c.indexOf(d)&&e("Bad url string."));c||e("Missing url.");f();h.safe&&pb.test(c)&&q("ADsafe URL violation.");ua.push(c);return!0}return!1}function $a(d){var c=0,b,e,g,h=0;switch(typeof d){case "function":return d();case "string":return a.identifier&&a.value===d?(f(),!0):!1}for(;;){if(c>=d.length)return!1;g=d[c];c+=1;if(!0===g)break;else"number"===typeof g?(b=g,g=d[c],c+=1):b=1;for(e=!1;0<b;)if($a(g))e=!0,b-=1;else break;if(e)return!0}h=c;for(b=[];;){g=!1;for(c=h;c<d.length;c+=1)if(!b[c]&&$a(Ga[d[c]])){g=\ne=!0;b[c]=!0;break}if(!g)return e}}function qb(){for(var d;!("}"===a.id||"(end)"===a.id||N&&a.id===N);){for(;";"===a.id;)e("Misplaced \';\'."),f(";");for(d=void 0;"*"===a.id||"#"===a.id||"_"===a.value;)h.css||e("Unexpected \'{a}\'.",a,a.value),f();"-"===a.id?(h.css||e("Unexpected \'{a}\'.",a,a.value),f("-"),a.identifier||e("Expected a non-standard style attribute and instead saw \'{a}\'.",a,a.value),f(),d=ab):(a.identifier?R(Ga,a.value)?d=Ga[a.value]:(d=ab,h.css||e("Unrecognized style attribute \'{a}\'.",a,\na.value)):e("Excepted a style attribute, and instead saw \'{a}\'.",a,a.value),f());f(":");a.identifier&&"inherit"===a.value?f():$a(d)||(e("Unexpected token \'{a}\'.",a,a.value),f());"!"===a.id&&(f("!"),F(),a.identifier&&"important"===a.value?f():e("Expected \'{a}\' and instead saw \'{b}\'.",a,"important",a.value));"}"===a.id||a.id===N?e("Missing \'{a}\'.",a,";"):f(";")}}function bb(){if(a.identifier)R(cb,h.cap?a.value.toLowerCase():a.value)||e("Expected a tagName, and instead saw {a}.",a,a.value),f();else switch(a.id){case ">":case "+":f();\nbb();break;case ":":f(":");switch(a.value){case "active":case "after":case "before":case "checked":case "disabled":case "empty":case "enabled":case "first-child":case "first-letter":case "first-line":case "first-of-type":case "focus":case "hover":case "last-child":case "last-of-type":case "link":case "only-of-type":case "root":case "target":case "visited":f();break;case "lang":f();f("(");a.identifier||e("Expected a lang code, and instead saw :{a}.",a,a.value);f(")");break;case "nth-child":case "nth-last-child":case "nth-last-of-type":case "nth-of-type":f();\nf("(");a:if("(number)"===a.id)f(),"n"===a.value&&a.identifier&&(F(),f(),"+"===a.id&&(F(),f("+"),F(),f("(number)")));else{switch(a.value){case "odd":case "even":if(a.identifier){f();break a}}e("Unexpected token \'{a}\'.",a,a.value)}f(")");break;case "not":f();f("(");":"===a.id&&"not"===K(0).value&&e("Nested not.");bb();f(")");break;default:e("Expected a pseudo, and instead saw :{a}.",a,a.value)}break;case "#":f("#");a.identifier||e("Expected an id, and instead saw #{a}.",a,a.value);f();break;case "*":f("*");\nbreak;case ".":f(".");a.identifier||e("Expected a class, and instead saw #.{a}.",a,a.value);f();break;case "[":f("[");a.identifier||e("Expected an attribute, and instead saw [{a}].",a,a.value);f();if("="===a.id||"~="===a.value||"$="===a.value||"|="===a.value||"*="===a.id||"^="===a.id)f(),"(string)"!==a.type&&e("Expected a string, and instead saw {a}.",a,a.value),f();f("]");break;default:q("Expected a CSS selector, and instead saw {a}.",a,a.value)}}function rb(){for(;"</"!==a.id&&"(end)"!==a.id;){a:for("{"===\na.id&&e("Expected a style pattern, and instead saw \'{a}\'.",a,a.id);;){bb();if("</"===a.id||"{"===a.id||"(end)"===a.id)break a;","===a.id&&P()}t="styleproperty";";"===a.id?f(";"):(f("{"),qb(),t="style",f("}"))}}function sb(){for(;"@"===a.id;)if(K(),f("@"),a.identifier)switch(a.value){case "import":f();fa()||(e("Expected \'{a}\' and instead saw \'{b}\'.",a,"url",a.value),f());f(";");break;case "media":for(f();;){a.identifier&&!0!==tb[a.value]||q("Expected a CSS media type, and instead saw \'{a}\'.",a,a.id);\nf();if(","!==a.id)break;f(",")}f("{");rb();f("}");break;default:e("Expected an at-rule, and instead saw @{a}.",a,a.value)}else e("Expected an at-rule, and instead saw \'{a}\'.",a,a.value);rb()}function db(){var d=Sa(!0);d||("(string)"===a.id?(d=a.value,!h.adsafe||"_"!==d.charAt(0)&&"_"!==d.charAt(d.length-1)||e("Unexpected {a} in \'{b}\'.",g,"dangling \'_\'",d),f()):"(number)"===a.id&&(d=a.value.toString(),f()));return d}function Ha(d,c){var b,e=E;E=Object.create(e);b=k={"(name)":d||\'"\'+Pa+\'"\',"(line)":a.line,\n"(context)":k,"(breakage)":0,"(loopage)":0,"(scope)":E,"(statement)":c};g.funct=k;va.push(k);d&&ca(d,"function");var h=k,l;a:{var A=a,q=[];f("(");B();if(")"===a.id)f(")"),B(G,g),l=void 0;else for(;;)if(l=qa(),q.push(l),ca(l,"parameter"),","===a.id)P();else{f(")",A);B(G,g);l=q;break a}}h["(params)"]=l;T(!1);E=e;k["(last)"]=g.line;k=k["(context)"];return b}function eb(){function d(){var d={},c=a;f("{");if("}"!==a.id)for(;;){if("(end)"===a.id)q("Missing \'}\' to match \'{\' from line {a}.",a,c.line);else if("}"===\na.id){e("Unexpected comma.",g);break}else","===a.id?q("Unexpected comma.",a):"(string)"!==a.id&&e("Expected a string and instead saw {a}.",a,a.value);!0===d[a.value]?e("Duplicate key \'{a}\'.",a,a.value):"__proto__"===a.value?e("Stupid key \'{a}\'.",a,a.value):d[a.value]=!0;f();f(":");eb();if(","!==a.id)break;f(",")}f("}")}function c(){var d=a;f("[");if("]"!==a.id)for(;;){if("(end)"===a.id)q("Missing \']\' to match \'[\' from line {a}.",a,d.line);else if("]"===a.id){e("Unexpected comma.",g);break}else","===\na.id&&q("Unexpected comma.",a);eb();if(","!==a.id)break;f(",")}f("]")}switch(a.id){case "{":d();break;case "[":c();break;case "true":case "false":case "null":case "(number)":case "(string)":f();break;case "-":f("-");g.character!==a.from&&e("Unexpected space after \'-\'.",g);F(g,a);f("(number)");break;default:q("Expected a JSON value.",a)}}function ub(a){var c=[],b;for(b in a)R(a,b)&&c.push(b);return c}var Q,ka,wa,Pa,Ia,Eb={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,\n"*":!0,"/":!0,"%":!0},Ta={arguments:!0,callee:!0,caller:!0,constructor:!0,eval:!0,prototype:!0,stack:!0,unwatch:!0,valueOf:!0,watch:!0},Cb={adsafe:!0,bitwise:!0,browser:!0,cap:!0,css:!0,debug:!0,devel:!0,eqeqeq:!0,es5:!0,evil:!0,forin:!0,fragment:!0,immed:!0,laxbreak:!0,newcap:!0,nomen:!0,on:!0,onevar:!0,passfail:!0,plusplus:!0,regexp:!0,rhino:!0,undef:!0,safe:!0,windows:!0,strict:!0,sub:!0,white:!0,widget:!0},zb={addEventListener:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,defaultStatus:!1,\ndocument:!1,event:!1,focus:!1,frames:!1,getComputedStyle:!1,history:!1,Image:!1,length:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,XMLHttpRequest:!1},Ga,ab,Db={aliceblue:!0,antiquewhite:!0,aqua:!0,aquamarine:!0,azure:!0,beige:!0,\nbisque:!0,black:!0,blanchedalmond:!0,blue:!0,blueviolet:!0,brown:!0,burlywood:!0,cadetblue:!0,chartreuse:!0,chocolate:!0,coral:!0,cornflowerblue:!0,cornsilk:!0,crimson:!0,cyan:!0,darkblue:!0,darkcyan:!0,darkgoldenrod:!0,darkgray:!0,darkgreen:!0,darkkhaki:!0,darkmagenta:!0,darkolivegreen:!0,darkorange:!0,darkorchid:!0,darkred:!0,darksalmon:!0,darkseagreen:!0,darkslateblue:!0,darkslategray:!0,darkturquoise:!0,darkviolet:!0,deeppink:!0,deepskyblue:!0,dimgray:!0,dodgerblue:!0,firebrick:!0,floralwhite:!0,\nforestgreen:!0,fuchsia:!0,gainsboro:!0,ghostwhite:!0,gold:!0,goldenrod:!0,gray:!0,green:!0,greenyellow:!0,honeydew:!0,hotpink:!0,indianred:!0,indigo:!0,ivory:!0,khaki:!0,lavender:!0,lavenderblush:!0,lawngreen:!0,lemonchiffon:!0,lightblue:!0,lightcoral:!0,lightcyan:!0,lightgoldenrodyellow:!0,lightgreen:!0,lightpink:!0,lightsalmon:!0,lightseagreen:!0,lightskyblue:!0,lightslategray:!0,lightsteelblue:!0,lightyellow:!0,lime:!0,limegreen:!0,linen:!0,magenta:!0,maroon:!0,mediumaquamarine:!0,mediumblue:!0,\nmediumorchid:!0,mediumpurple:!0,mediumseagreen:!0,mediumslateblue:!0,mediumspringgreen:!0,mediumturquoise:!0,mediumvioletred:!0,midnightblue:!0,mintcream:!0,mistyrose:!0,moccasin:!0,navajowhite:!0,navy:!0,oldlace:!0,olive:!0,olivedrab:!0,orange:!0,orangered:!0,orchid:!0,palegoldenrod:!0,palegreen:!0,paleturquoise:!0,palevioletred:!0,papayawhip:!0,peachpuff:!0,peru:!0,pink:!0,plum:!0,powderblue:!0,purple:!0,red:!0,rosybrown:!0,royalblue:!0,saddlebrown:!0,salmon:!0,sandybrown:!0,seagreen:!0,seashell:!0,\nsienna:!0,silver:!0,skyblue:!0,slateblue:!0,slategray:!0,snow:!0,springgreen:!0,steelblue:!0,tan:!0,teal:!0,thistle:!0,tomato:!0,turquoise:!0,violet:!0,wheat:!0,white:!0,whitesmoke:!0,yellow:!0,yellowgreen:!0,activeborder:!0,activecaption:!0,appworkspace:!0,background:!0,buttonface:!0,buttonhighlight:!0,buttonshadow:!0,buttontext:!0,captiontext:!0,graytext:!0,highlight:!0,highlighttext:!0,inactiveborder:!0,inactivecaption:!0,inactivecaptiontext:!0,infobackground:!0,infotext:!0,menu:!0,menutext:!0,\nscrollbar:!0,threeddarkshadow:!0,threedface:!0,threedhighlight:!0,threedlightshadow:!0,threedshadow:!0,window:!0,windowframe:!0,windowtext:!0},ma,fb,ob={"%":!0,cm:!0,em:!0,ex:!0,"in":!0,mm:!0,pc:!0,pt:!0,px:!0},tb,Ja,yb={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},Fb={"\\b":"\\\\b","\\t":"\\\\t","\\n":"\\\\n","\\f":"\\\\f","\\r":"\\\\r",\'"\':\'\\\\"\',"/":"\\\\/","\\\\":"\\\\\\\\"},k,xa="closure exception global label outer unused var".split(" "),va,kb,cb={a:{},abbr:{},acronym:{},address:{},applet:{},area:{empty:!0,\nparent:" map "},article:{},aside:{},audio:{},b:{},base:{empty:!0,parent:" head "},bdo:{},big:{},blockquote:{},body:{parent:" html noframes "},br:{empty:!0},button:{},canvas:{parent:" body p div th td "},caption:{parent:" table "},center:{},cite:{},code:{},col:{empty:!0,parent:" table colgroup "},colgroup:{parent:" table "},command:{parent:" menu "},datalist:{},dd:{parent:" dl "},del:{},details:{},dialog:{},dfn:{},dir:{},div:{},dl:{},dt:{parent:" dl "},em:{},embed:{},fieldset:{},figure:{},font:{},\nfooter:{},form:{},frame:{empty:!0,parent:" frameset "},frameset:{parent:" html frameset "},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{parent:" html "},header:{},hgroup:{},hr:{empty:!0},"hta:application":{empty:!0,parent:" head "},html:{parent:"*"},i:{},iframe:{},img:{empty:!0},input:{empty:!0},ins:{},kbd:{},keygen:{},label:{},legend:{parent:" details fieldset figure "},li:{parent:" dir menu ol ul "},link:{empty:!0,parent:" head "},map:{},mark:{},menu:{},meta:{empty:!0,parent:" head noframes noscript "},\nmeter:{},nav:{},noframes:{parent:" html body "},noscript:{parent:" body head noframes "},object:{},ol:{},optgroup:{parent:" select "},option:{parent:" optgroup select "},output:{},p:{},param:{empty:!0,parent:" applet object "},pre:{},progress:{},q:{},rp:{},rt:{},ruby:{},samp:{},script:{empty:!0,parent:" body div frame head iframe p pre span "},section:{},select:{},small:{},span:{},source:{},strong:{},style:{parent:" head ",empty:!0},sub:{},sup:{},table:{},tbody:{parent:" table "},td:{parent:" tr "},\ntextarea:{},tfoot:{parent:" table "},th:{parent:" tr "},thead:{parent:" table "},time:{},title:{parent:" head "},tr:{parent:" table tbody thead tfoot "},tt:{},u:{},ul:{},"var":{},video:{}},Ka,Y,sa,x,na,pa,za,ea,da,a,Ua,h,D,gb,G,xb={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},E,La,H,Gb={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,\nError:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},Hb={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},Da,L={},Ma,g,ua,ya,Bb={alert:!0,animator:!0,appleScript:!0,beep:!0,bytesToUIString:!0,Canvas:!0,chooseColor:!0,chooseFile:!0,chooseFolder:!0,\ncloseWidget:!0,COM:!0,convertPathToHFS:!0,convertPathToPlatform:!0,CustomAnimation:!0,escape:!0,FadeAnimation:!0,filesystem:!0,Flash:!0,focusWidget:!0,form:!0,FormField:!0,Frame:!0,HotKey:!0,Image:!0,include:!0,isApplicationRunning:!0,iTunes:!0,konfabulatorVersion:!0,log:!0,md5:!0,MenuItem:!0,MoveAnimation:!0,openURL:!0,play:!0,Point:!0,popupMenu:!0,preferenceGroups:!0,preferences:!0,print:!0,prompt:!0,random:!0,Rectangle:!0,reloadWidget:!0,ResizeAnimation:!0,resolvePath:!0,resumeUpdates:!0,RotateAnimation:!0,\nrunCommand:!0,runCommandInBg:!0,saveAs:!0,savePreferences:!0,screen:!0,ScrollBar:!0,showWidgetPreferences:!0,sleep:!0,speak:!0,Style:!0,suppressUpdates:!0,system:!0,tellWidget:!0,Text:!0,TextArea:!0,Timer:!0,unescape:!0,updateNow:!0,URL:!0,Web:!0,widget:!0,Window:!0,XMLDOM:!0,XMLHttpRequest:!0,yahooCheckLogin:!0,yahooLogin:!0,yahooLogout:!0},Ab={ActiveXObject:!1,CScript:!1,Debug:!1,Enumerator:!1,System:!1,VBArray:!1,WScript:!1},t,N,hb=/@cc|<\\/?|script|\\]\\s*\\]|<\\s*!|</i,Ib=/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/,\nJb=/^\\s*([(){}\\[.,:;\'"~\\?\\]#@]|==?=?|\\/(\\*(jslint|members?|global)?|=|\\/)?|\\*[\\/=]?|\\+(?:=|\\++)?|-(?:=|-+)?|%=?|&[&=]?|\\|[|=]?|>>?>?=?|<([\\/=!]|\\!(\\[|--)?|<=?)?|\\^=?|\\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\\.[0-9]*)?([eE][+\\-]?[0-9]+)?)/,vb=/^\\s*([\'"=>\\/&#]|<(?:\\/|\\!(?:--)?)?|[a-zA-Z][a-zA-Z0-9_\\-:]*|[0-9]+|--)/,Kb=/[\\u0000-\\u001f&<"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/,Lb=/[\\u0000-\\u001f&<"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\nMb=/[>&]|<[\\/!]?|--/,Nb=/\\*\\/|\\/\\*/,wb=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Wa=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\\s*:/i,pb=/&|\\+|\\u00AD|\\.\\.|\\/\\*|%[^;]|base64|url|expression|data|mailto/i,Ob=/[^a-zA-Z0-9+\\-_\\/ ]/,Pb=/[\\[\\]\\/\\\\"\'*<>.&:(){}+=#]/,Qb={outer:vb,html:vb,style:/^\\s*([{:#%.=,>+\\[\\]@()"\';]|\\*=?|\\$=|\\|=|\\^=|~=|[a-zA-Z_][a-zA-Z0-9_\\-]*|[0-9]+|<\\/|\\/\\*)/,styleproperty:/^\\s*([@#!"\'};:\\-%.=,+\\[\\]()*_]|[a-zA-Z][a-zA-Z0-9._\\-]*|\\/\\*?|\\d+(?:\\.\\d+)?|<\\/)/};"function"!==typeof Object.create&&\n(Object.create=function(a){jb.prototype=a;return new jb});String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")};String.prototype.isAlpha=function(){return"a"<=this&&"z\\uffff">=this||"A"<=this&&"Z\\uffff">=this};String.prototype.isDigit=function(){return"0"<=this&&"9">=this};String.prototype.supplant=function(a){return this.replace(/\\{([^{}]*)\\}/g,function(c,b){var f=a[b];return"string"===typeof f||"number"===typeof f?f:c})};String.prototype.name=\nfunction(){return wb.test(this)?this:Kb.test(this)?\'"\'+this.replace(Lb,function(a){var c=Fb[a];return c?c:"\\\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+\'"\':\'"\'+this+\'"\'};var U=function(){function a(){var d;if(e>=pa.length)return!1;b=1;l=pa[e];e+=1;d=l.search(/ \\t/);0<=d&&r("Mixed spaces and tabs.",e,d+1);l=l.replace(/\\t/g,Ma);d=l.search(Ib);0<=d&&r("Unsafe character.",e,d);h.maxlen&&h.maxlen<l.length&&r("Line too long.",e,l.length);return!0}function c(a,d){var c,g;g="(color)"===a||"(range)"===\na?{type:a}:"(punctuator)"===a||"(identifier)"===a&&R(L,d)?L[d]||L["(error)"]:L[a];g=Object.create(g);("(string)"===a||"(range)"===a)&&Wa.test(d)&&r("Script URL.",e,f);"(identifier)"===a&&(g.identifier=!0,"__iterator__"===d||"__proto__"===d?J("Reserved name \'{a}\'.",e,f,d):!h.nomen||"_"!==d.charAt(0)&&"_"!==d.charAt(d.length-1)||r("Unexpected {a} in \'{b}\'.",e,f,"dangling \'_\'",d));g.value=d;g.line=e;g.character=b;g.from=f;c=g.id;"(endline)"!==c&&(gb=c&&(0<="(,=:[!&|?{};".indexOf(c.charAt(c.length-1))||\n"return"===c));return g}var b,f,e,l;return{init:function(b){pa="string"===typeof b?b.replace(/\\r\\n/g,"\\n").replace(/\\r/g,"\\n").split("\\n"):b;e=0;a();f=1},range:function(a,d){var g,h="";f=b;for(l.charAt(0)!==a&&J("Expected \'{a}\' and instead saw \'{b}\'.",e,b,a,l.charAt(0));;){l=l.slice(1);b+=1;g=l.charAt(0);switch(g){case "":J("Missing \'{a}\'.",e,b,g);break;case d:return l=l.slice(1),b+=1,c("(range)",h);case N:case "\\\\":r("Unexpected \'{a}\'.",e,b,g)}h+=g}},token:function(){function k(a){if(a=a.exec(l))return p=\na[0].length,a=a[1],m=a.charAt(0),l=l.substr(p),f=b+p-a.length,b+=p,a}function q(g){function p(a){var d=parseInt(l.substr(m+1,a),16);m+=a;32<=d&&126>=d&&34!==d&&92!==d&&39!==d&&r("Unnecessary escapement.",e,b);b+=a;k=String.fromCharCode(d)}var k,m,n="";na&&\'"\'!==g&&r("Strings must use doublequote.",e,b);if(N===g||"scriptstring"===t&&!N)return c("(punctuator)",g);for(m=0;;){for(;m>=l.length;)m=0,"html"===t&&a()||J("Unclosed string.",e,f);k=l.charAt(m);if(k===g)return b+=1,l=l.substr(m+1),c("(string)",\nn,g);if(" ">k){if("\\n"===k||"\\r"===k)break;r("Control character in string: {a}.",e,b+m,l.slice(0,m))}else if(k===N)r("Bad HTML string",e,b+m);else if("<"===k)h.safe&&"html"===t?r("ADsafe string violation.",e,b+m):"/"===l.charAt(m+1)&&(t||h.safe)?r("Expected \'<\\\\/\' and instead saw \'</\'.",e,b):"!"===l.charAt(m+1)&&(t||h.safe)&&r("Unexpected \'<!\' in a string.",e,b);else if("\\\\"===k)if("html"===t)h.safe&&r("ADsafe string violation.",e,b+m);else if("styleproperty"===t)m+=1,b+=1,k=l.charAt(m),k!==g&&r("Escapement in style string.",\ne,b+m);else switch(m+=1,b+=1,k=l.charAt(m),k){case N:r("Bad HTML string",e,b+m);break;case "\\\\":case "\'":case \'"\':case "/":break;case "b":k="\\b";break;case "f":k="\\f";break;case "n":k="\\n";break;case "r":k="\\r";break;case "t":k="\\t";break;case "u":p(4);break;case "v":k="\\v";break;case "x":na&&r("Avoid \\\\x-.",e,b);p(2);break;default:r("Bad escapement.",e,b)}n+=k;b+=1;m+=1}}for(var u,m,v,p,n;;){if(!l)return c(a()?"(endline)":"(end)","");for(;"outer"===t&&(v=l.search(Mb),0!==v);)if(0<v){b+=1;l=l.slice(v);\nbreak}else if(!a())return c("(end)","");if(u=k(Qb[t]||Jb)){if(m.isAlpha()||"_"===m||"$"===m)return c("(identifier)",u);if(m.isDigit())return"style"===t||isFinite(Number(u))||r("Bad number \'{a}\'.",e,b,u),"style"!==t&&"styleproperty"!==t&&l.substr(0,1).isAlpha()&&r("Missing space after \'{a}\'.",e,b,u),"0"===m&&(v=u.substr(1,1),v.isDigit()?"."!==g.id&&"styleproperty"!==t&&r("Don\'t use extra leading zeros \'{a}\'.",e,b,u):!na||"x"!==v&&"X"!==v||r("Avoid 0x-. \'{a}\'.",e,b,u)),"."===u.substr(u.length-1)&&r("A trailing decimal point can be confused with a dot \'{a}\'.",\ne,b,u),c("(number)",u);switch(u){case \'"\':case "\'":return q(u);case "//":La||t&&"script"!==t?r("Unexpected comment.",e,b):"script"===t&&/<\\s*\\//i.test(l)?r("Unexpected </ in comment.",e,b):(h.safe||"script"===t)&&hb.test(l)&&r("Dangerous comment.",e,b);l="";g.comment=!0;break;case "/*":(La||t&&"script"!==t&&"style"!==t&&"styleproperty"!==t)&&r("Unexpected comment.",e,b);for(h.safe&&hb.test(l)&&r("ADsafe comment violation.",e,b);;){v=l.search(Nb);if(0<=v)break;a()?h.safe&&hb.test(l)&&r("ADsafe comment violation.",\ne,b):J("Unclosed comment.",e,b)}b+=v+2;"/"===l.substr(v,1)&&J("Nested comment.",e,b);l=l.substr(v+2);g.comment=!0;break;case "/*members":case "/*member":case "/*jslint":case "/*global":case "*/":return{value:u,type:"special",line:e,character:b,from:f};case "":break;case "/":"/="===g.id&&J("A regular expression literal can be confused with \'/=\'.",e,f);if(gb)for(p=v=0;;){u=!0;m=l.charAt(p);p+=1;switch(m){case "":J("Unclosed regular expression.",e,f);return;case "/":0<v&&r("Unescaped \'{a}\'.",e,f+p,"/");\nm=l.substr(0,p-1);for(n={g:!0,i:!0,m:!0};!0===n[l.charAt(p)];)n[l.charAt(p)]=!1,p+=1;b+=p;l=l.substr(p);n=l.charAt(0);"/"!==n&&"*"!==n||J("Confusing regular expression.",e,f);return c("(regexp)",m);case "\\\\":m=l.charAt(p);" ">m?r("Unexpected control character in regular expression.",e,f+p):"<"===m&&r("Unexpected escaped character \'{a}\' in regular expression.",e,f+p,m);p+=1;break;case "(":v+=1;u=!1;if("?"===l.charAt(p))switch(p+=1,l.charAt(p)){case ":":case "=":case "!":p+=1;break;default:r("Expected \'{a}\' and instead saw \'{b}\'.",\ne,f+p,":",l.charAt(p))}break;case "|":u=!1;break;case ")":0===v?r("Unescaped \'{a}\'.",e,f+p,")"):v-=1;break;case " ":for(n=1;" "===l.charAt(p);)p+=1,n+=1;1<n&&r("Spaces are hard to count. Use {{a}}.",e,f+p,n);break;case "[":m=l.charAt(p);"^"===m&&(p+=1,h.regexp?r("Insecure \'{a}\'.",e,f+p,m):"]"===l.charAt(p)&&J("Unescaped \'{a}\'.",e,f+p,"^"));n=!1;"]"===m&&(r("Empty class.",e,f+p-1),n=!0);a:do switch(m=l.charAt(p),p+=1,m){case "[":case "^":r("Unescaped \'{a}\'.",e,f+p,m);n=!0;break;case "-":n?n=!1:(r("Unescaped \'{a}\'.",\ne,f+p,"-"),n=!0);break;case "]":n||r("Unescaped \'{a}\'.",e,f+p-1,"-");break a;case "\\\\":m=l.charAt(p);" ">m?r("Unexpected control character in regular expression.",e,f+p):"<"===m&&r("Unexpected escaped character \'{a}\' in regular expression.",e,f+p,m);p+=1;n=!0;break;case "/":r("Unescaped \'{a}\'.",e,f+p-1,"/");n=!0;break;case "<":"script"===t&&(m=l.charAt(p),"!"!==m&&"/"!==m||r("HTML confusion in regular expression \'<{a}\'.",e,f+p,m));n=!0;break;default:n=!0}while(m);break;case ".":h.regexp&&r("Insecure \'{a}\'.",\ne,f+p,m);break;case "]":case "?":case "{":case "}":case "+":case "*":r("Unescaped \'{a}\'.",e,f+p,m);break;case "<":"script"===t&&(m=l.charAt(p),"!"!==m&&"/"!==m||r("HTML confusion in regular expression \'<{a}\'.",e,f+p,m))}if(u)switch(l.charAt(p)){case "?":case "+":case "*":p+=1;"?"===l.charAt(p)&&(p+=1);break;case "{":p+=1;m=l.charAt(p);("0">m||"9"<m)&&r("Expected a number and instead saw \'{a}\'.",e,f+p,m);p+=1;for(n=+m;;){m=l.charAt(p);if("0">m||"9"<m)break;p+=1;n=+m+10*n}u=n;if(","===m&&(p+=1,u=Infinity,\nm=l.charAt(p),"0"<=m&&"9">=m))for(p+=1,u=+m;;){m=l.charAt(p);if("0">m||"9"<m)break;p+=1;u=+m+10*u}"}"!==l.charAt(p)?r("Expected \'{a}\' and instead saw \'{b}\'.",e,f+p,"}",m):p+=1;"?"===l.charAt(p)&&(p+=1);n>u&&r("\'{a}\' should not be greater than \'{b}\'.",e,f+p,n,u)}}return c("(punctuator)",u);case "\\x3c!--":p=e;for(m=b;;){v=l.indexOf("--");if(0<=v)break;v=l.indexOf("<!");0<=v&&J("Nested HTML comment.",e,b+v);a()||J("Unclosed HTML comment.",p,m)}p=l.indexOf("<!");0<=p&&p<v&&J("Nested HTML comment.",e,\nb+p);b+=v;">"!==l.charAt(v+2)&&J("Expected --\\x3e.",e,b);b+=3;l=l.slice(v+3);break;case "#":if("html"===t||"styleproperty"===t){for(;;){m=l.charAt(0);if(("0">m||"9"<m)&&("a">m||"f"<m)&&("A">m||"F"<m))break;b+=1;l=l.substr(1);u+=m}4!==u.length&&7!==u.length&&r("Bad hex color \'{a}\'.",e,f+p,u);return c("(color)",u)}return c("(punctuator)",u);default:if("outer"===t&&"&"===m){b+=1;for(l=l.substr(1);;){m=l.charAt(0);b+=1;l=l.substr(1);if(";"===m)break;"0"<=m&&"9">=m||"a"<=m&&"z">=m||"#"===m||J("Bad entity",\ne,f+p,b)}break}return c("(punctuator)",u)}}else{for(m=u="";l&&"!">l;)l=l.substr(1);if(l){if("html"===t)return c("(error)",l.charAt(0));J("Unexpected \'{a}\'.",e,b,l.substr(0,1))}}}}}}();ab=[fa,function(){for(;;)if(a.identifier)switch(a.value.toLowerCase()){case "url":fa();break;case "expression":e("Unexpected expression \'{a}\'.",a,a.value);f();break;default:f()}else{if(";"===a.id||"!"===a.id||"(end)"===a.id||"}"===a.id)return!0;f()}}];ma="none dashed dotted double groove hidden inset outset ridge solid".split(" ");\nfb=["auto","always","avoid","left","right"];tb={all:!0,braille:!0,embossed:!0,handheld:!0,print:!0,projection:!0,screen:!0,speech:!0,tty:!0,tv:!0};Ja=["auto","hidden","scroll","visible"];Ga={background:[!0,"background-attachment","background-color","background-image","background-position","background-repeat"],"background-attachment":["scroll","fixed"],"background-color":["transparent",W],"background-image":["none",fa],"background-position":[2,[z,"top","bottom","left","right","center"]],"background-repeat":["repeat",\n"repeat-x","repeat-y","no-repeat"],border:[!0,"border-color","border-style","border-width"],"border-bottom":[!0,"border-bottom-color","border-bottom-style","border-bottom-width"],"border-bottom-color":W,"border-bottom-style":ma,"border-bottom-width":la,"border-collapse":["collapse","separate"],"border-color":["transparent",4,W],"border-left":[!0,"border-left-color","border-left-style","border-left-width"],"border-left-color":W,"border-left-style":ma,"border-left-width":la,"border-right":[!0,"border-right-color",\n"border-right-style","border-right-width"],"border-right-color":W,"border-right-style":ma,"border-right-width":la,"border-spacing":[2,z],"border-style":[4,ma],"border-top":[!0,"border-top-color","border-top-style","border-top-width"],"border-top-color":W,"border-top-style":ma,"border-top-width":la,"border-width":[4,la],bottom:[z,"auto"],"caption-side":["bottom","left","right","top"],clear:["both","left","none","right"],clip:[function(){var d;if(a.identifier&&"rect"===a.value){f();f("(");for(d=0;4>\nd;d+=1)if(!z()){e("Expected a number and instead saw \'{a}\'.",a,a.value);break}f(")");return!0}return!1},"auto"],color:W,content:["open-quote","close-quote","no-open-quote","no-close-quote",Za,fa,function(){return a.identifier&&"counter"===a.value?(f(),f("("),f(),","===a.id&&(P(),"(string)"!==a.type&&e("Expected a string and instead saw \'{a}\'.",a,a.value),f()),f(")"),!0):a.identifier&&"counters"===a.value?(f(),f("("),a.identifier||e("Expected a name and instead saw \'{a}\'.",a,a.value),f(),","===a.id&&\n(P(),"(string)"!==a.type&&e("Expected a string and instead saw \'{a}\'.",a,a.value),f()),","===a.id&&(P(),"(string)"!==a.type&&e("Expected a string and instead saw \'{a}\'.",a,a.value),f()),f(")"),!0):!1},function(){return a.identifier&&"attr"===a.value?(f(),f("("),a.identifier||e("Expected a name and instead saw \'{a}\'.",a,a.value),f(),f(")"),!0):!1}],"counter-increment":[Ya,"none"],"counter-reset":[Ya,"none"],cursor:[fa,"auto","crosshair","default","e-resize","help","move","n-resize","ne-resize","nw-resize",\n"pointer","s-resize","se-resize","sw-resize","w-resize","text","wait"],direction:["ltr","rtl"],display:"block compact inline inline-block inline-table list-item marker none run-in table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group".split(" "),"empty-cells":["show","hide"],"float":["left","none","right"],font:["caption","icon","menu","message-box","small-caption","status-bar",!0,"font-size","font-style","font-weight","font-family"],\n"font-family":function(){for(;";"!==a.id;){Ya()||Za()||e("Expected a name and instead saw \'{a}\'.",a,a.value);if(","!==a.id)return!0;P()}},"font-size":["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller",z],"font-size-adjust":["none",Fa],"font-stretch":"normal wider narrower ultra-condensed extra-condensed condensed semi-condensed semi-expanded expanded extra-expanded".split(" "),"font-style":["normal","italic","oblique"],"font-variant":["normal","small-caps"],"font-weight":["normal",\n"bold","bolder","lighter",Fa],height:[z,"auto"],left:[z,"auto"],"letter-spacing":["normal",z],"line-height":["normal",function(){"-"===a.id&&(f("-"),F());return"(number)"===a.type?(f(),"(string)"!==a.type&&!0===ob[a.value]&&(F(),f()),!0):!1}],"list-style":[!0,"list-style-image","list-style-position","list-style-type"],"list-style-image":["none",fa],"list-style-position":["inside","outside"],"list-style-type":"circle disc square decimal decimal-leading-zero lower-roman upper-roman lower-greek lower-alpha lower-latin upper-alpha upper-latin hebrew katakana hiragana-iroha katakana-oroha none".split(" "),\nmargin:[4,ta],"margin-bottom":ta,"margin-left":ta,"margin-right":ta,"margin-top":ta,"marker-offset":[z,"auto"],"max-height":[z,"none"],"max-width":[z,"none"],"min-height":z,"min-width":z,opacity:Fa,outline:[!0,"outline-color","outline-style","outline-width"],"outline-color":["invert",W],"outline-style":"dashed dotted double groove inset none outset ridge solid".split(" "),"outline-width":la,overflow:Ja,"overflow-x":Ja,"overflow-y":Ja,padding:[4,z],"padding-bottom":z,"padding-left":z,"padding-right":z,\n"padding-top":z,"page-break-after":fb,"page-break-before":fb,position:["absolute","fixed","relative","static"],quotes:[8,Za],right:[z,"auto"],"table-layout":["auto","fixed"],"text-align":["center","justify","left","right"],"text-decoration":["none","underline","overline","line-through","blink"],"text-indent":z,"text-shadow":["none",4,[W,z]],"text-transform":["capitalize","uppercase","lowercase","none"],top:[z,"auto"],"unicode-bidi":["normal","embed","bidi-override"],"vertical-align":["baseline","bottom",\n"sub","super","top","text-top","middle","text-bottom",z],visibility:["visible","hidden","collapse"],"white-space":"normal nowrap pre pre-line pre-wrap inherit".split(" "),width:[z,"auto"],"word-spacing":["normal",z],"word-wrap":["break-word","normal"],"z-index":["auto",Fa]};Aa("(number)",function(){return this});Aa("(string)",function(){return this});L["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var a=this.value,c=E[a],b;"function"===typeof c?c=void 0:"boolean"===typeof c&&\n(b=k,k=va[0],ca(a,"var"),c=k,k=b);if(k===c)switch(k[a]){case "unused":k[a]="var";break;case "unction":k[a]="function";this["function"]=!0;break;case "function":this["function"]=!0;break;case "label":e("\'{a}\' is a statement label.",g,a)}else if(k["(global)"])h.undef&&"boolean"!==D[a]&&e("\'{a}\' is not defined.",g,a),Xa(g);else switch(k[a]){case "closure":case "function":case "var":case "unused":e("\'{a}\' used out of scope.",g,a);break;case "label":e("\'{a}\' is a statement label.",g,a);break;case "outer":case "global":break;\ndefault:if(!0===c)k[a]=!0;else if(null===c)e("\'{a}\' is not allowed.",g,a),Xa(g);else if("object"!==typeof c)h.undef?e("\'{a}\' is not defined.",g,a):k[a]=!0,Xa(g);else switch(c[a]){case "function":case "unction":this["function"]=!0;c[a]="closure";k[a]=c["(global)"]?"global":"outer";break;case "var":case "unused":c[a]="closure";k[a]=c["(global)"]?"global":"outer";break;case "closure":case "parameter":k[a]=c["(global)"]?"global":"outer";break;case "label":e("\'{a}\' is a statement label.",g,a)}}return this},\nled:function(){q("Expected an operator and instead saw \'{a}\'.",a,a.value)}};Aa("(regexp)",function(){return this});y("(endline)");y("(begin)");y("(end)").reach=!0;y("</").reach=!0;y("<!");y("\\x3c!--");y("--\\x3e");y("(error)").reach=!0;y("}").reach=!0;y(")");y("]");y(\'"\').reach=!0;y("\'").reach=!0;y(";");y(":").reach=!0;y(",");y("#");y("@");w("else");w("case").reach=!0;w("catch");w("default").reach=!0;w("finally");V("arguments",function(a){Da&&k["(global)"]?e("Strict violation.",a):h.safe&&e("ADsafe violation.",\na)});V("eval",function(a){h.safe&&e("ADsafe violation.",a)});V("false");V("Infinity");V("NaN");V("null");V("this",function(a){Da&&(k["(statement)"]&&"Z"<k["(name)"].charAt(0)||k["(global)"])?e("Strict violation.",a):h.safe&&e("ADsafe violation.",a)});V("true");V("undefined");ha("=","assign",20);ha("+=","assignadd",20);ha("-=","assignsub",20);ha("*=","assignmult",20);ha("/=","assigndiv",20).nud=function(){q("A regular expression literal can be confused with \'/=\'.")};ha("%=","assignmod",20);ja("&=",\n"assignbitand",20);ja("|=","assignbitor",20);ja("^=","assignbitxor",20);ja("<<=","assignshiftleft",20);ja(">>=","assignshiftright",20);ja(">>>=","assignshiftrightunsigned",20);I("?",function(a,c){c.left=a;c.right=n(10);f(":");c["else"]=n(10);return c},30);I("||","or",40);I("&&","and",50);ia("|","bitor",70);ia("^","bitxor",80);ia("&","bitand",90);ba("==",function(a,c){h.eqeqeq?e("Expected \'{a}\' and instead saw \'{b}\'.",this,"===","=="):Ba(a)?e("Use \'{a}\' to compare with \'{b}\'.",this,"===",a.value):\nBa(c)&&e("Use \'{a}\' to compare with \'{b}\'.",this,"===",c.value);return this});ba("===");ba("!=",function(a,c){h.eqeqeq?e("Expected \'{a}\' and instead saw \'{b}\'.",this,"!==","!="):Ba(a)?e("Use \'{a}\' to compare with \'{b}\'.",this,"!==",a.value):Ba(c)&&e("Use \'{a}\' to compare with \'{b}\'.",this,"!==",c.value);return this});ba("!==");ba("<");ba(">");ba("<=");ba(">=");ia("<<","shiftleft",120);ia(">>","shiftright",120);ia(">>>","shiftrightunsigned",120);I("in","in",120);I("instanceof","instanceof",120);I("+",\nfunction(a,c){var b=n(130);if(a&&b&&"(string)"===a.id&&"(string)"===b.id)return a.value+=b.value,a.character=b.character,Wa.test(a.value)&&e("JavaScript URL.",a),a;c.left=a;c.right=b;return c},130);M("+","num");M("+++",function(){e("Confusing pluses.");this.right=n(150);this.arity="unary";return this});I("+++",function(a){e("Confusing pluses.");this.left=a;this.right=n(130);return this},130);I("-","sub",130);M("-","neg");M("---",function(){e("Confusing minuses.");this.right=n(150);this.arity="unary";\nreturn this});I("---",function(a){e("Confusing minuses.");this.left=a;this.right=n(130);return this},130);I("*","mult",140);I("/","div",140);I("%","mod",140);mb("++","postinc");M("++","preinc");L["++"].exps=!0;mb("--","postdec");M("--","predec");L["--"].exps=!0;M("delete",function(){var a=n(0);(!a||"."!==a.id&&"["!==a.id)&&e("Variables should not be deleted.");this.first=a;return this}).exps=!0;M("~",function(){h.bitwise&&e("Unexpected \'{a}\'.",this,"~");n(150);return this});M("!",function(){this.right=\nn(150);this.arity="unary";!0===Eb[this.right.id]&&e("Confusing use of \'{a}\'.",this,"!");return this});M("typeof","typeof");M("new",function(){var d=n(155),c;if(d&&"function"!==d.id)if(d.identifier)switch(d["new"]=!0,d.value){case "Object":e("Use the object literal notation {}.",g);break;case "Array":return"("!==a.id?e("Use the array literal notation [].",g):(f("("),")"===a.id?e("Use the array literal notation [].",g):(c=n(0),d.dimension=c,("(number)"===c.id&&/[.+\\-Ee]/.test(c.value)||"-"===c.id&&\n!c.right||"(string)"===c.id||"["===c.id||"{"===c.id||"true"===c.id||"false"===c.id||"null"===c.id||"undefined"===c.id||"Infinity"===c.id)&&e("Use the array literal notation [].",g),")"!==a.id&&q("Use the array literal notation [].",g)),f(")")),this.first=d,this;case "Number":case "String":case "Boolean":case "Math":case "JSON":e("Do not use {a} as a constructor.",g,d.value);break;case "Function":h.evil||e("The Function constructor is eval.");break;case "Date":case "RegExp":break;default:"function"!==\nd.id&&(c=d.value.substr(0,1),h.newcap&&("A">c||"Z"<c)&&e("A constructor name should start with an uppercase letter.",g))}else"."!==d.id&&"["!==d.id&&"("!==d.id&&e("Bad constructor.",g);else e("Weird construction. Delete \'new\'.",this);F(g,a);"("!==a.id&&e("Missing \'()\' invoking a constructor.");this.first=d;return this});L["new"].exps=!0;I(".",function(d,c){F(G,g);Qa();var b=qa();"string"===typeof b&&Ea(b);c.left=d;c.right=b;!d||"arguments"!==d.value||"callee"!==b&&"caller"!==b?h.evil||!d||"document"!==\nd.value||"write"!==b&&"writeln"!==b?h.adsafe&&d&&"ADSAFE"===d.value&&("id"===b||"lib"===b?e("ADsafe violation.",c):"go"===b&&("script"!==t?e("ADsafe violation.",c):(wa||"("!==a.id||"(string)"!==K(0).id||K(0).value!==Q||","!==K(1).id)&&q("ADsafe violation: go.",c),wa=!0,ka=!1)):e("document.write can be a form of eval.",d):e("Avoid arguments.{a}.",d,b);if(!h.evil&&("eval"===b||"execScript"===b))e("eval is evil.");else if(h.safe)for(;;){!0===Ta[b]&&e("ADsafe restricted word \'{a}\'.",g,b);if("boolean"!==\ntypeof D[d.value]||"("===a.id)break;if(!0===Hb[b]){"."===a.id&&e("ADsafe violation.",c);break}if("."!==a.id){e("ADsafe violation.",c);break}f(".");g.left=c;g.right=b;c=g;b=qa();"string"===typeof b&&Ea(b)}return c},160,!0);I("(",function(d,c){"}"!==G.id&&")"!==G.id&&Qa(G,g);B();h.immed&&!d.immed&&"function"===d.id&&e("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var b=0,k=[];\nd&&("(identifier)"===d.type?d.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&"Number"!==d.value&&"String"!==d.value&&"Boolean"!==d.value&&"Date"!==d.value&&("Math"===d.value?e("Math is not a function.",d):h.newcap&&e("Missing \'new\' prefix when invoking a constructor.",d)):"."===d.id&&h.safe&&"Math"===d.left.value&&"random"===d.right&&e("ADsafe violation.",d));if(")"!==a.id)for(;;){k[k.length]=n(10);b+=1;if(","!==a.id)break;P()}f(")");B(G,g);"object"===typeof d&&("parseInt"===d.value&&1===\nb&&e("Missing radix parameter.",d),h.evil||("eval"===d.value||"Function"===d.value||"execScript"===d.value?e("eval is evil.",d):!k[0]||"(string)"!==k[0].id||"setTimeout"!==d.value&&"setInterval"!==d.value||e("Implied eval is evil. Pass a function instead of a string.",d)),d.identifier||"."===d.id||"["===d.id||"("===d.id||"&&"===d.id||"||"===d.id||"?"===d.id||e("Bad invocation.",d));c.left=d;return c},155,!0).exps=!0;M("(",function(){B();"function"===a.id&&(a.immed=!0);var d=n(0);f(")",this);B(G,g);\nh.immed&&"function"===d.id&&("("===a.id?e("Move the invocation into the parens that contain the function.",a):e("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return d});I("[",function(a,c){Qa(G,g);B();var b=n(0),k;b&&"(string)"===b.type?(h.safe&&!0===Ta[b.value]?e("ADsafe restricted word \'{a}\'.",c,b.value):h.evil||"eval"!==b.value&&"execScript"!==b.value?!h.safe||"_"!==b.value.charAt(0)&&"-"!==b.value.charAt(0)||e("ADsafe restricted subscript \'{a}\'.",\nc,b.value):e("eval is evil.",c),Ea(b.value),!h.sub&&wb.test(b.value)&&((k=L[b.value])&&k.reserved||e("[\'{a}\'] is better written in dot notation.",b,b.value))):(!b||"(number)"!==b.type||0>b.value)&&h.safe&&e("ADsafe subscripting.");f("]",c);B(G,g);c.left=a;c.right=b;return c},160,!0);M("[",function(){var d=g.line!==a.line;this.first=[];d&&(x+=h.indent,a.from===x+h.indent&&(x+=h.indent));for(;"(end)"!==a.id;){for(;","===a.id;)e("Extra comma."),f(",");if("]"===a.id)break;d&&g.line!==a.line&&S();this.first.push(n(10));\nif(","===a.id){if(P(),"]"===a.id&&!h.es5){e("Extra comma.",g);break}}else break}d&&(x-=h.indent,S());f("]",this);return this},160);(function(d){d.nud=function(){var c,b,d,O,l={};if(c=g.line!==a.line)x+=h.indent,a.from===x+h.indent&&(x+=h.indent);for(;"}"!==a.id;){c&&S();if("get"===a.value&&":"!==K().id)f("get"),h.es5||q("get/set are ES5 features."),(d=db())||q("Missing property name."),O=a,F(g,a),b=Ha(d),k["(loopage)"]&&e("Don\'t make functions within a loop.",O),(b=b["(params)"])&&e("Unexpected parameter \'{a}\' in get {b} function.",\nO,b[0],d),F(g,a),f(","),S(),f("set"),O=db(),d!==O&&q("Expected {a} and instead saw {b}.",g,d,O),O=a,F(g,a),b=Ha(d),(b=b["(params)"])&&1===b.length&&"value"===b[0]||e("Expected (value) in set {a} function.",O,d);else{d=db();if("string"!==typeof d)break;f(":");C(g,a);n(10)}!0===l[d]&&e("Duplicate member \'{a}\'.",a,d);l[d]=!0;Ea(d);if(","===a.id)P(),","===a.id?e("Extra comma.",g):"}"!==a.id||h.es5||e("Extra comma.",g);else break}c&&(x-=h.indent,S());f("}",this);return this};d.fud=function(){q("Expected to see a statement and instead saw a block.",\ng)}})(y("{"));var ib=function(d){var c,b;k["(onevar)"]&&h.onevar?e("Too many var statements."):k["(global)"]||(k["(onevar)"]=!0);for(this.first=[];;){C(g,a);c=qa();k["(global)"]&&!1===D[c]&&e("Redefinition of \'{a}\'.",g,c);ca(c,"unused");if(d)break;b=g;this.first.push(g);"="===a.id&&(C(g,a),f("="),C(g,a),"undefined"===a.id&&e("It is not necessary to initialize \'{a}\' to \'undefined\'.",g,c),"="===K(0).id&&a.identifier&&(f(),f("="),f()),c=n(0),b.first=c);if(","!==a.id)break;P()}return this};aa("var",ib).exps=\n!0;ga("function",function(){sa&&e("Function statements cannot be placed in blocks. Use a function expression or move the statement to the top of the outer function.",g);var d=qa();F(g,a);ca(d,"unction");Ha(d,!0);"("===a.id&&a.line===g.line&&q("Function statements are not invocable. Wrap the whole function invocation in parens.");return this});M("function",function(){var d=Sa();d?F(g,a):C(g,a);Ha(d);k["(loopage)"]&&e("Don\'t make functions within a loop.");return this});ga("if",function(){var d=a;f("(");\nC(this,d);B();n(20);"="===a.id&&(e("Expected a conditional expression and instead saw an assignment."),f("="),n(20));f(")",d);B(G,g);T(!0);"else"===a.id&&(C(g,a),f("else"),"if"===a.id||"switch"===a.id?Va(!0):T(!0));return this});ga("try",function(){var d,c;h.adsafe&&e("ADsafe try violation.",this);T(!1);"catch"===a.id&&(f("catch"),C(g,a),f("("),c=E,E=Object.create(c),d=a.value,"(identifier)"!==a.type?e("Expected an identifier and instead saw \'{a}\'.",a,d):ca(d,"exception"),f(),f(")"),T(!1),d=!0,E=\nc);if("finally"===a.id)f("finally"),T(!1);else return d||q("Expected \'{a}\' and instead saw \'{b}\'.",a,"catch",a.value),this});ga("while",function(){var d=a;k["(breakage)"]+=1;k["(loopage)"]+=1;f("(");C(this,d);B();n(20);"="===a.id&&(e("Expected a conditional expression and instead saw an assignment."),f("="),n(20));f(")",d);B(G,g);T(!0);k["(breakage)"]-=1;k["(loopage)"]-=1;return this}).labelled=!0;w("with");ga("switch",function(){var d=a,c=!1;k["(breakage)"]+=1;f("(");C(this,d);B();this.condition=\nn(20);f(")",d);B(G,g);C(g,a);d=a;f("{");C(g,a);x+=h.indent;for(this.cases=[];;)switch(a.id){case "case":switch(k["(verb)"]){case "break":case "case":case "continue":case "return":case "switch":case "throw":break;default:e("Expected a \'break\' statement before \'case\'.",g)}S(-h.indent);f("case");this.cases.push(n(20));c=!0;f(":");k["(verb)"]="case";break;case "default":switch(k["(verb)"]){case "break":case "continue":case "return":case "throw":break;default:e("Expected a \'break\' statement before \'default\'.",\ng)}S(-h.indent);f("default");c=!0;f(":");break;case "}":x-=h.indent;S();f("}",d);1!==this.cases.length&&"true"!==this.condition.id&&"false"!==this.condition.id||e("This \'switch\' should be an \'if\'.",this);k["(breakage)"]-=1;k["(verb)"]=void 0;return;case "(end)":q("Missing \'{a}\'.",a,"}");return;default:if(c)switch(g.id){case ",":q("Each value should have its own case label.");return;case ":":ra();break;default:q("Missing \':\' on a case clause.",g)}else q("Expected \'{a}\' and instead saw \'{b}\'.",a,"case",\na.value)}}).labelled=!0;aa("debugger",function(){h.debug||e("All \'debugger\' statements should be removed.");return this}).exps=!0;(function(){var d=aa("do",function(){k["(breakage)"]+=1;k["(loopage)"]+=1;this.first=T(!0);f("while");var d=a;C(g,d);f("(");B();n(20);"="===a.id&&(e("Expected a conditional expression and instead saw an assignment."),f("="),n(20));f(")",d);B(G,g);k["(breakage)"]-=1;k["(loopage)"]-=1;return this});d.labelled=!0;d.exps=!0})();ga("for",function(){var d=h.forin,c;c=a;k["(breakage)"]+=\n1;k["(loopage)"]+=1;f("(");C(this,c);B();if("in"===K("var"===a.id?1:0).id){if("var"===a.id)f("var"),ib(!0);else{switch(k[a.value]){case "unused":k[a.value]="var";break;case "var":break;default:e("Bad for in variable \'{a}\'.",a,a.value)}f()}f("in");n(20);f(")",c);c=T(!0);!d&&(1<c.length||"object"!==typeof c[0]||"if"!==c[0].value)&&e("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this)}else{if(";"!==a.id)if("var"===a.id)f("var"),ib();else for(;;){n(0,\n"for");if(","!==a.id)break;P()}Z(g);f(";");";"!==a.id&&(n(20),"="===a.id&&(e("Expected a conditional expression and instead saw an assignment."),f("="),n(20)));Z(g);f(";");";"===a.id&&q("Expected \'{a}\' and instead saw \'{b}\'.",a,")",";");if(")"!==a.id)for(;;){n(0,"for");if(","!==a.id)break;P()}f(")",c);B(G,g);T(!0)}k["(breakage)"]-=1;k["(loopage)"]-=1;return this}).labelled=!0;aa("break",function(){var d=a.value;0===k["(breakage)"]&&e("Unexpected \'{a}\'.",a,this.value);Z(this);";"!==a.id&&g.line===\na.line&&("label"!==k[d]?e("\'{a}\' is not a statement label.",a,d):E[d]!==k&&e("\'{a}\' is out of scope.",a,d),this.first=a,f());Ca("break");return this}).exps=!0;aa("continue",function(){var d=a.value;0===k["(breakage)"]&&e("Unexpected \'{a}\'.",a,this.value);Z(this);";"!==a.id?g.line===a.line&&("label"!==k[d]?e("\'{a}\' is not a statement label.",a,d):E[d]!==k&&e("\'{a}\' is out of scope.",a,d),this.first=a,f()):k["(loopage)"]||e("Unexpected \'{a}\'.",a,this.value);Ca("continue");return this}).exps=!0;aa("return",\nfunction(){Z(this);"(regexp)"===a.id&&e("Wrap the /regexp/ literal in parens to disambiguate the slash operator.");";"===a.id||a.reach||(C(g,a),this.first=n(20));Ca("return");return this}).exps=!0;aa("throw",function(){Z(this);C(g,a);this.first=n(20);Ca("throw");return this}).exps=!0;w("void");w("class");w("const");w("enum");w("export");w("extends");w("import");w("super");w("let");w("yield");w("implements");w("interface");w("package");w("private");w("protected");w("public");w("static");var X=function(d,\nc){var b,s;JSLINT.errors=[];D=Object.create(Gb);if(c){b=c.predef;if(b instanceof Array)for(s=0;s<b.length;s+=1)D[b[s]]=!0;c.adsafe&&(c.safe=!0);c.safe&&(c.browser=c.css=c.debug=c.devel=c.evil=c.forin=c.on=c.rhino=c.windows=c.sub=c.widget=!1,c.eqeqeq=c.nomen=c.safe=c.strict=c.undef=!0,D.Date=D.eval=D.Function=D.Object=null,D.ADSAFE=D.lib=!1);h=c}else h={};h.indent=h.indent||4;h.maxerr=h.maxerr||50;Q="";wa=ka=!1;Ia={};if(h.approved)for(s=0;s<h.approved.length;s+=1)Ia[h.approved[s]]=h.approved[s];else Ia.test=\n"test";Ma="";for(s=0;s<h.indent;s+=1)Ma+=" ";x=1;E=kb=Object.create(D);k={"(global)":!0,"(name)":"(global)","(scope)":E,"(breakage)":0,"(loopage)":0};va=[k];Ka={};ua=[];t=La=!1;H=null;ea={};da=null;Y={};sa=!1;za=[];na=!1;ya=0;U.init(d);gb=!0;Da=!1;G=g=a=L["(begin)"];Na();try{f();if("<"===a.value.charAt(0)){a:{var n,l,A,r,u,m,v,p=h.white,z;t="html";N="";for(H=null;;){switch(a.value){case "<":t="html";f("<");l={};m=a;m.identifier||e("Bad identifier {a}.",m,m.value);r=m.value;h.cap&&(r=r.toLowerCase());\nm.name=r;f();H||(H=[],b=r,"html"===b||h.fragment||("div"===b&&h.adsafe?q("ADSAFE: Use the fragment option."):q("Expected \'{a}\' and instead saw \'{b}\'.",g,"html",b)),h.adsafe&&("html"===b&&q("Currently, ADsafe does not operate on whole HTML documents. It operates on <div> fragments and .js files.",g),h.fragment?"div"!==b&&q("ADsafe violation: Wrap the widget in a div.",g):q("Use the fragment option.",g)),h.browser=!0,Na());v=cb[r];"object"!==typeof v&&q("Unrecognized tag \'<{a}>\'.",m,r);A=v.empty;for(m.type=\nr;;){if("/"===a.id){f("/");">"!==a.id&&e("Expected \'{a}\' and instead saw \'{b}\'.",a,">",a.value);break}if(a.id&&">"===a.id.substr(0,1))break;a.identifier||("(end)"!==a.id&&"(error)"!==a.id||q("Missing \'>\'.",a),e("Bad identifier."));h.white=!0;C(g,a);n=a.value;h.white=p;f();h.cap||n===n.toLowerCase()||e("Attribute \'{a}\' not all lower case.",a,n);n=n.toLowerCase();N="";R(l,n)&&e("Attribute \'{a}\' repeated.",a,n);"on"===n.slice(0,2)?(h.on||e("Avoid HTML event handlers."),t="scriptstring",f("="),u=a.id,\n\'"\'!==u&&"\'"!==u&&q("Missing quote."),N=u,z=h.white,h.white=!1,f(u),ra("on"),h.white=z,a.id!==u&&q("Missing close quote on script attribute."),t="html",N="",f(u),v=!1):"style"===n?(t="scriptstring",f("="),u=a.id,\'"\'!==u&&"\'"!==u&&q("Missing quote."),t="styleproperty",N=u,f(u),qb(),t="html",N="",f(u),v=!1):"="===a.id?(f("="),v=a.value,a.identifier||\'"\'===a.id||"\'"===a.id||"(string)"===a.type||"(number)"===a.type||"(color)"===a.type||e("Expected an attribute value and instead saw \'{a}\'.",g,n),f()):\nv=!0;l[n]=v;b=n;s=v;var w=void 0,y=void 0;"id"===b?(w="string"===typeof s?s.toUpperCase():"",!0===Ka[w]&&e("Duplicate id=\'{a}\'.",a,s),/^[A-Za-z][A-Za-z0-9._:\\-]*$/.test(s)?h.adsafe&&(Q?s.slice(0,Q.length)!==Q?e("ADsafe violation: An id must have a \'{a}\' prefix",a,Q):/^[A-Z]+_[A-Z]+$/.test(s)||e("ADSAFE violation: bad id."):(Q=s,/^[A-Z]+_$/.test(s)||e("ADSAFE violation: bad id."))):e("Bad id: \'{a}\'.",a,s),y=s.search(Pb),0<=y&&e("Unexpected character \'{a}\' in {b}.",g,s.charAt(y),b),Ka[w]=!0):"class"===\nb||"type"===b||"name"===b?(y=s.search(Ob),0<=y&&e("Unexpected character \'{a}\' in {b}.",g,s.charAt(y),b),Ka[w]=!0):"href"===b||"background"===b||"content"===b||"data"===b||0<=b.indexOf("src")||0<=b.indexOf("url")?(h.safe&&pb.test(s)&&q("ADsafe URL violation."),ua.push(s)):"for"===b?h.adsafe&&(Q?s.slice(0,Q.length)!==Q?e("ADsafe violation: An id must have a \'{a}\' prefix",a,Q):/^[A-Z]+_[A-Z]+$/.test(s)||e("ADSAFE violation: bad id."):e("ADSAFE violation: bad id.")):"name"===b&&h.adsafe&&0<=s.indexOf("_")&&\ne("ADsafe name violation.")}b=r;s=l;var w=void 0,F=cb[b],y=void 0;La=!1;F||q("Unrecognized tag \'<{a}>\'.",a,b===b.toLowerCase()?b:b+" (capitalization error)");if(0<H.length)if("html"===b&&q("Too many <html> tags.",g),y=F.parent)0>y.indexOf(" "+H[H.length-1].name+" ")&&q("A \'<{a}>\' must be within \'<{b}>\'.",g,b,y);else if(!h.adsafe&&!h.fragment){w=H.length;do 0>=w&&q("A \'<{a}>\' must be within \'<{b}>\'.",g,b,"body"),w-=1;while("body"!==H[w].name)}switch(b){case "div":h.adsafe&&1===H.length&&!Q&&e("ADSAFE violation: missing ID_.");\nbreak;case "script":t="script";f(">");x=a.from;s.lang&&e("lang is deprecated.",g);h.adsafe&&1!==H.length&&e("ADsafe script placement violation.",g);s.src?(!h.adsafe||ka&&Ia[s.src]||e("ADsafe unapproved script source.",g),s.type&&e("type is unnecessary.",g)):(wa&&q("ADsafe script violation.",g),ra("script"));t="html";f("</");a.identifier||"script"===a.value||e("Expected \'{a}\' and instead saw \'{b}\'.",a,"script",a.value);f();t="outer";break;case "style":t="style";f(">");sb();t="html";f("</");a.identifier||\n"style"===a.value||e("Expected \'{a}\' and instead saw \'{b}\'.",a,"style",a.value);f();t="outer";break;case "input":switch(s.type){case "radio":case "checkbox":case "button":case "reset":case "submit":break;case "text":case "file":case "password":case "file":case "hidden":case "image":h.adsafe&&"off"!==s.autocomplete&&e("ADsafe autocomplete violation.");break;default:e("Bad input type.")}break;case "applet":case "body":case "embed":case "frame":case "frameset":case "head":case "iframe":case "noembed":case "noframes":case "object":case "param":h.adsafe&&\ne("ADsafe violation: Disallowed tag: "+b)}A||H.push(m);t="outer";f(">");break;case "</":t="html";f("</");a.identifier||e("Bad identifier.");r=a.value;h.cap&&(r=r.toLowerCase());f();H||q("Unexpected \'{a}\'.",a,"</"+r+">");(m=H.pop())||q("Unexpected \'{a}\'.",a,"</"+r+">");m.name!==r&&q("Expected \'{a}\' and instead saw \'{b}\'.",a,"</"+m.name+">","</"+r+">");">"!==a.id&&q("Missing \'{a}\'.",a,">");t="outer";f(">");break;case "<!":h.safe&&e("ADsafe HTML violation.");for(t="html";;){f();if(">"===a.id||"(end)"===\na.id)break;0<=a.value.indexOf("--")&&q("Unexpected --.");0<=a.value.indexOf("<")&&q("Unexpected <.");0<=a.value.indexOf(">")&&q("Unexpected >.")}t="outer";f(">");break;case "(end)":break a;default:"(end)"===a.id?q("Missing \'{a}\'.",a,"</"+H[H.length-1].value+">"):f()}if(H&&0===H.length&&(h.adsafe||!h.fragment||"(end)"===a.id))break}"(end)"!==a.id&&q("Unexpected material after the end.")}h.adsafe&&!wa&&e("ADsafe violation: Missing ADSAFE.go.",this)}else switch(a.id){case "{":case "[":na=h.laxbreak=\n!0;eb();break;case "@":case "*":case "#":case ".":case ":":t="style";f();"@"===g.id&&a.identifier&&"charset"===a.value&&1===g.line&&1===g.from||q("A css file should begin with @charset \'UTF-8\';");f();"(string)"!==a.type&&"UTF-8"!==a.value&&q("A css file should begin with @charset \'UTF-8\';");f();f(";");sb();break;default:h.adsafe&&h.fragment&&q("Expected \'{a}\' and instead saw \'{b}\'.",a,"<div>",a.value),ra("lib")}f("(end)")}catch(B){B&&JSLINT.errors.push({reason:B.message,line:B.line||a.line,character:B.character||\na.from},null)}return 0===JSLINT.errors.length};X.data=function(){var a={functions:[]},c;c=[];var b,e,f,g,h=[];X.errors.length&&(a.errors=X.errors);na&&(a.json=!0);for(g in Y)R(Y,g)&&c.push({name:g,line:Y[g]});0<c.length&&(a.implieds=c);0<ua.length&&(a.urls=ua);c=ub(E);0<c.length&&(a.globals=c);for(e=1;e<va.length;e+=1){b=va[e];c={};for(f=0;f<xa.length;f+=1)c[xa[f]]=[];for(g in b)R(b,g)&&"("!==g.charAt(0)&&(f=b[g],"unction"===f&&(f="unused"),"[object Array]"===Object.prototype.toString.apply(c[f])&&\n(c[f].push(g),"unused"===f&&h.push({name:g,line:b["(line)"],"function":b["(name)"]})));for(f=0;f<xa.length;f+=1)0===c[xa[f]].length&&delete c[xa[f]];c.name=b["(name)"];c.param=b["(params)"];c.line=b["(line)"];c.last=b["(last)"];a.functions.push(c)}0<h.length&&(a.unused=h);for(g in ea)if("number"===typeof ea[g]){a.member=ea;break}return a};X.report=function(a){function c(a,b){var c,d,e;if(b){n.push("<div><i>"+a+"</i> ");b=b.sort();for(d=0;d<b.length;d+=1)b[d]!==e&&(e=b[d],n.push((c?", ":"")+e),c=!0);\nn.push("</div>")}}var b=X.data(),e=[],f,g,h;f="";var k,n=[];if(b.errors||b.implieds||b.unused){g=!0;n.push("<div id=errors><i>Error:</i>");if(b.errors)for(h=0;h<b.errors.length;h+=1)if(e=b.errors[h])f=e.evidence||"",n.push("<p>Problem"+(isFinite(e.line)?" at line "+e.line+" character "+e.character:"")+": "+e.reason.entityify()+"</p><p class=evidence>"+(f&&(80<f.length?f.slice(0,77)+"...":f).entityify())+"</p>");if(b.implieds){e=[];for(h=0;h<b.implieds.length;h+=1)e[h]="<code>"+b.implieds[h].name+\n"</code> <i>"+b.implieds[h].line+"</i>";n.push("<p><i>Implied global:</i> "+e.join(", ")+"</p>")}if(b.unused){e=[];for(h=0;h<b.unused.length;h+=1)e[h]="<code><u>"+b.unused[h].name+"</u></code> <i>"+b.unused[h].line+"</i> <code>"+b.unused[h]["function"]+"</code>";n.push("<p><i>Unused variable:</i> "+e.join(", ")+"</p>")}b.json&&n.push("<p>JSON: bad.</p>");n.push("</div>")}if(!a){n.push("<br><div id=functions>");b.urls&&c("URLs<br>",b.urls,"<br>");"style"===t?n.push("<p>CSS.</p>"):b.json&&\n!g?n.push("<p>JSON: good.</p>"):b.globals?n.push("<div><i>Global</i> "+b.globals.sort().join(", ")+"</div>"):n.push("<div><i>No new global variables introduced.</i></div>");for(h=0;h<b.functions.length;h+=1)a=b.functions[h],n.push("<br><div class=function><i>"+a.line+"-"+a.last+"</i> "+(a.name||"")+"("+(a.param?a.param.join(", "):"")+")</div>"),c("<big><b>Unused</b></big>",a.unused),c("Closure",a.closure),c("Variable",a["var"]),c("Exception",a.exception),c("Outer",a.outer),c("Global",a.global),c("Label",\na.label);if(b.member){e=ub(b.member);if(e.length){e=e.sort();f="<br><pre id=members>/*members ";g=10;for(h=0;h<e.length;h+=1)a=e[h],k=a.name(),72<g+k.length&&(n.push(f+"<br>"),f=" ",g=1),g+=k.length+2,1===b.member[a]&&(k="<i>"+k+"</i>"),h<e.length-1&&(k+=", "),f+=k;n.push(f+"<br>*/</pre>")}n.push("</div>")}}return n.join("")};X.jslint=X;X.edition="2010-11-18";return X}();\n',
pre:!0},"util/parseJS.js":{path:"util/parseJS.js",friendlyPath:"jsio.util.parseJS",directory:"util/",filename:"parseJS.js",src:'var KEYWORDS=array_to_hash("break case catch const continue debugger default delete do else finally for function if import in as instanceof new return switch throw try typeof var void while with".split(" ")),RESERVED_WORDS=array_to_hash("abstract boolean byte char class double enum export extends final float goto implements int interface long native package private protected public short static super synchronized throws transient volatile".split(" ")),KEYWORDS_BEFORE_EXPRESSION=array_to_hash("return new delete throw else case".split(" ")),\nKEYWORDS_ATOM=array_to_hash(["false","null","true","undefined"]),OPERATOR_CHARS=array_to_hash(characters("+-*&%=<>!?|~^")),RE_HEX_NUMBER=/^0x[0-9a-f]+$/i,RE_OCT_NUMBER=/^0[0-7]+$/,RE_DEC_NUMBER=/^\\d*\\.?\\d*(?:e[+-]?\\d*(?:\\d\\.?|\\.?\\d)\\d*)?$/i,OPERATORS=array_to_hash("in as instanceof typeof new void delete ++ -- + - ! ~ & | ^ * / % >> << >>> < > <= >= == === != !== ? = += -= /= *= %= >>= <<= >>>= |= ^= &= && ||".split(" ")),WHITESPACE_CHARS=array_to_hash(characters(" \\u00a0\\n\\r\\t\\f\\x0B\\u200b\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000")),\nPUNC_BEFORE_EXPRESSION=array_to_hash(characters("[{(,.;:")),PUNC_CHARS=array_to_hash(characters("[]{}(),;:")),REGEXP_MODIFIERS=array_to_hash(characters("gmsiy")),UNICODE={letter:RegExp("[\\\\u0041-\\\\u005A\\\\u0061-\\\\u007A\\\\u00AA\\\\u00B5\\\\u00BA\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u0527\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0\\\\u08A2-\\\\u08AC\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0977\\\\u0979-\\\\u097F\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C33\\\\u0C35-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F0\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191C\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA697\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA793\\\\uA7A0-\\\\uA7AA\\\\uA7F8-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA80-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]"),\ncombining_mark:RegExp("[\\\\u0300-\\\\u036F\\\\u0483-\\\\u0487\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0610-\\\\u061A\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DC\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u08E4-\\\\u08FE\\\\u0900-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C01-\\\\u0C03\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C82\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0D02\\\\u0D03\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D82\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EB9\\\\u0EBB\\\\u0EBC\\\\u0EC8-\\\\u0ECD\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1714\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u19B0-\\\\u19C0\\\\u19C8\\\\u19C9\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF2-\\\\u1CF4\\\\u1DC0-\\\\u1DE6\\\\u1DFC-\\\\u1DFF\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C4\\\\uA8E0-\\\\uA8F1\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE26]"),\nconnector_punctuation:RegExp("[\\\\u005F\\\\u203F\\\\u2040\\\\u2054\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFF3F]"),digit:RegExp("[\\\\u0030-\\\\u0039\\\\u0660-\\\\u0669\\\\u06F0-\\\\u06F9\\\\u07C0-\\\\u07C9\\\\u0966-\\\\u096F\\\\u09E6-\\\\u09EF\\\\u0A66-\\\\u0A6F\\\\u0AE6-\\\\u0AEF\\\\u0B66-\\\\u0B6F\\\\u0BE6-\\\\u0BEF\\\\u0C66-\\\\u0C6F\\\\u0CE6-\\\\u0CEF\\\\u0D66-\\\\u0D6F\\\\u0E50-\\\\u0E59\\\\u0ED0-\\\\u0ED9\\\\u0F20-\\\\u0F29\\\\u1040-\\\\u1049\\\\u1090-\\\\u1099\\\\u17E0-\\\\u17E9\\\\u1810-\\\\u1819\\\\u1946-\\\\u194F\\\\u19D0-\\\\u19D9\\\\u1A80-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1B50-\\\\u1B59\\\\u1BB0-\\\\u1BB9\\\\u1C40-\\\\u1C49\\\\u1C50-\\\\u1C59\\\\uA620-\\\\uA629\\\\uA8D0-\\\\uA8D9\\\\uA900-\\\\uA909\\\\uA9D0-\\\\uA9D9\\\\uAA50-\\\\uAA59\\\\uABF0-\\\\uABF9\\\\uFF10-\\\\uFF19]")};\nfunction is_letter(a){return UNICODE.letter.test(a)}function is_digit(a){a=a.charCodeAt(0);return 48<=a&&57>=a}function is_unicode_digit(a){return UNICODE.digit.test(a)}function is_alphanumeric_char(a){return is_digit(a)||is_letter(a)}function is_unicode_combining_mark(a){return UNICODE.combining_mark.test(a)}function is_unicode_connector_punctuation(a){return UNICODE.connector_punctuation.test(a)}function is_identifier_start(a){return"$"==a||"_"==a||is_letter(a)}\nfunction is_identifier_char(a){return is_identifier_start(a)||is_unicode_combining_mark(a)||is_unicode_digit(a)||is_unicode_connector_punctuation(a)||"\\u200c"==a||"\\u200d"==a}function parse_js_number(a){if(RE_HEX_NUMBER.test(a))return parseInt(a.substr(2),16);if(RE_OCT_NUMBER.test(a))return parseInt(a.substr(1),8);if(RE_DEC_NUMBER.test(a))return parseFloat(a)}function JS_Parse_Error(a,e,f,d){this.message=a;this.line=e+1;this.col=f+1;this.pos=d+1;this.stack=Error().stack}\nJS_Parse_Error.prototype.toString=function(){return this.message+" (line: "+this.line+", col: "+this.col+", pos: "+this.pos+")\\n\\n"+this.stack};function js_error(a,e,f,d){throw new JS_Parse_Error(a,e,f,d);}function is_token(a,e,f){return a.type==e&&(null==f||a.value==f)}var EX_EOF={};\nfunction tokenizer(a){function e(){return b.text.charAt(b.pos)}function f(l,a){var h=b.text.charAt(b.pos++);if(l&&!h)throw EX_EOF;"\\n"==h?(b.newline_before=b.newline_before||!a,++b.line,b.col=0):++b.col;return h}function d(l,a){var h=b.text.indexOf(l,b.pos);if(a&&-1==h)throw EX_EOF;return h}function c(l,a,h){b.regex_allowed="operator"==l&&!HOP(UNARY_POSTFIX,a)||"keyword"==l&&HOP(KEYWORDS_BEFORE_EXPRESSION,a)||"punc"==l&&HOP(PUNC_BEFORE_EXPRESSION,a);l={type:l,value:a,line:b.tokline,col:b.tokcol,pos:b.tokpos,\nendpos:b.pos,nlb:b.newline_before};if(!h)for(l.comments_before=b.comments_before,b.comments_before=[],h=0,a=l.comments_before.length;h<a;h++)l.nlb=l.nlb||l.comments_before[h].nlb;b.newline_before=!1;return l}function n(l){for(var a="",h=e(),c=0;h&&l(h,c++);)a+=f(),h=e();return a}function p(l){js_error(l,b.tokline,b.tokcol,b.tokpos)}function A(l){var a=!1,h=!1,d=!1,b="."==l,f=n(function(c,f){if("x"==c||"X"==c)return d?!1:d=!0;if(!d&&("E"==c||"e"==c))return a?!1:a=h=!0;if("-"==c)return h||0==f&&!l?\n!0:!1;if("+"==c)return h;h=!1;return"."==c?b||d||a?!1:b=!0:is_alphanumeric_char(c)});l&&(f=l+f);var e=parse_js_number(f);if(isNaN(e))p("Invalid syntax: "+f);else return c("num",e)}function m(a){a=f(!0,a);switch(a){case "n":return"\\n";case "r":return"\\r";case "t":return"\\t";case "b":return"\\b";case "v":return"\\x0B";case "f":return"\\f";case "0":return"\\x00";case "x":return String.fromCharCode(x(2));case "u":return String.fromCharCode(x(4));case "\\n":return"";default:return a}}function x(a){for(var c=\n0;0<a;--a){var h=parseInt(f(!0),16);isNaN(h)&&p("Invalid hex-character pattern in string");c=c<<4|h}return c}function q(){return y("Unterminated string constant",function(){for(var a=f(),d="";;){var h=f(!0);if("\\\\"==h)var b=0,e=null,h=n(function(a){if("0"<=a&&"7">=a)if(e){if("3">=e&&2>=b||"4"<=e&&1>=b)return++b}else return e=a,++b;return!1}),h=0<b?String.fromCharCode(parseInt(h,8)):m(!0);else if(h==a)break;d+=h}return c("string",d)})}function k(){f();var a=d("\\n"),e;-1==a?(e=b.text.substr(b.pos),\nb.pos=b.text.length):(e=b.text.substring(b.pos,a),b.pos=a);return c("comment1",e,!0)}function t(){f();return y("Unterminated multiline comment",function(){var a=d("*/",!0),e=b.text.substring(b.pos,a);b.pos=a+2;b.line+=e.split("\\n").length-1;b.newline_before=b.newline_before||0<=e.indexOf("\\n");/^@cc_on/i.test(e)&&(warn("WARNING: at line "+b.line),warn(\'*** Found "conditional comment": \'+e),warn("*** UglifyJS DISCARDS ALL COMMENTS. This means your code might no longer work properly in Internet Explorer."));\nreturn c("comment2",e,!0)})}function z(){for(var a=!1,c="",d,b=!1;null!=(d=e());)if(a)"u"!=d&&p("Expecting UnicodeEscapeSequence -- uXXXX"),d=m(),is_identifier_char(d)||p("Unicode char: "+d.charCodeAt(0)+" is not valid in identifier"),c+=d,a=!1;else if("\\\\"==d)b=a=!0,f();else if(is_identifier_char(d))c+=f();else break;HOP(KEYWORDS,c)&&b&&(a=c.charCodeAt(0).toString(16).toUpperCase(),c="\\\\u"+"0000".substr(a.length)+a+c.slice(1));return c}function u(a){return y("Unterminated regular expression",function(){for(var d=\n!1,b,e=!1;b=f(!0);)if(d)a+="\\\\"+b,d=!1;else if("["==b)e=!0,a+=b;else if("]"==b&&e)e=!1,a+=b;else if("/"!=b||e)"\\\\"==b?d=!0:a+=b;else break;d=z();return c("regexp",[a,d])})}function C(a){function d(a){if(!e())return a;var c=a+e();return HOP(OPERATORS,c)?(f(),d(c)):a}return c("operator",d(a||f()))}function v(){f();var a=b.regex_allowed;switch(e()){case "/":return b.comments_before.push(k()),b.regex_allowed=a,w();case "*":return b.comments_before.push(t()),b.regex_allowed=a,w()}return b.regex_allowed?\nu(""):C("/")}function y(a,c){try{return c()}catch(d){if(d===EX_EOF)p(a);else throw d;}}function w(a){if(null!=a)return u(a);for(;HOP(WHITESPACE_CHARS,e());)f();b.tokline=b.line;b.tokcol=b.col;b.tokpos=b.pos;a=e();if(!a)return c("eof");if(is_digit(a))return A();if(\'"\'==a||"\'"==a)return q();if(HOP(PUNC_CHARS,a))return c("punc",f());if("."==a)return f(),is_digit(e())?A("."):c("punc",".");if("/"==a)return v();if(HOP(OPERATOR_CHARS,a))return C();if("\\\\"==a||is_identifier_start(a))return a=z(),HOP(KEYWORDS,\na)?HOP(OPERATORS,a)?c("operator",a):HOP(KEYWORDS_ATOM,a)?c("atom",a):c("keyword",a):c("name",a);p("Unexpected character \'"+a+"\'")}var b={text:a.replace(/\\r\\n?|[\\n\\u2028\\u2029]/g,"\\n").replace(/^\\uFEFF/,""),pos:0,tokpos:0,line:0,tokline:0,col:0,tokcol:0,newline_before:!1,regex_allowed:!1,comments_before:[]};w.context=function(a){a&&(b=a);return b};return w}\nvar UNARY_PREFIX=array_to_hash("typeof void delete -- ++ ! ~ - +".split(" ")),UNARY_POSTFIX=array_to_hash(["--","++"]),ASSIGNMENT=function(a,e,f){for(;f<a.length;)e[a[f]]=a[f].substr(0,a[f].length-1),f++;return e}("+= -= /= *= %= >>= <<= >>>= |= ^= &=".split(" "),{"=":!0},0),PRECEDENCE=function(a,e){for(var f=0,d=1;f<a.length;++f,++d)for(var c=a[f],n=0;n<c.length;++n)e[c[n]]=d;return e}([["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],"< > <= >= in as instanceof".split(" "),[">>","<<",">>>"],\n["+","-"],["*","/","%"]],{}),STATEMENTS_WITH_LABELS=array_to_hash(["for","do","while","switch"]),ATOMIC_START_TOKEN=array_to_hash(["atom","num","string","regexp","name"]);function NodeWithToken(a,e,f){this.name=a;this.start=e;this.end=f}NodeWithToken.prototype.toString=function(){return this.name};\nfunction parse(a,e,f){function d(a,c){return is_token(g.token,a,c)}function c(){g.prev=g.token;g.peeked?(g.token=g.peeked,g.peeked=null):g.token=g.input();g.in_directives=g.in_directives&&("string"==g.token.type||d("punc",";"));return g.token}function n(a,c,d,b){var e=g.input.context();js_error(a,null!=c?c:e.tokline,null!=d?d:e.tokcol,null!=b?b:e.tokpos)}function p(a){null==a&&(a=g.token);n("Unexpected token: "+a.type+" ("+a.value+")",a.line,a.col)}function A(a,b){if(d(a,b))return c();var e=g.token;\nn("Unexpected token "+g.token.type+", expected "+a,e.line,e.col)}function m(a){return A("punc",a)}function x(){return!e&&(g.token.nlb||d("eof")||d("punc","}"))}function q(){d("punc",";")?c():x()||p()}function k(){var a=slice(arguments);a.line=(g.prev?g.prev.line:0)+1;return a}function t(){m("(");var a=r();m(")");return a}function z(a){return f?function(){var c=g.token,d=a.apply(this,arguments),b=d[0],c=b instanceof NodeWithToken?b:new NodeWithToken(b,c,g.prev);d[0]=c;return d}:a}function u(){return k("stat",\nprog1(r,q))}function C(a){var b;x()||(b=d("name")?g.token.value:null);null!=b?(c(),member(b,g.labels)||n("Label "+b+" without matching loop or statement")):0==g.in_loop&&n(a+" not inside a loop or switch");q();return k(a,b)}function v(){m("{");for(var a=[];!d("punc","}");)d("eof")&&p(),a.push(s());c();return a}function y(a){for(var b=[];;){d("name")||p();var e=g.token.value;c();d("operator","=")?(c(),b.push([e,r(!1,a)])):b.push([e]);if(!d("punc",","))break;c()}return b}function w(a){return k("var",\ny(a))}function b(){return k("const",y())}function l(a,b,g){for(var e=!0,f=[];!d("punc",a);){e?e=!1:m(",");if(b&&d("punc",a))break;d("punc",",")&&g?f.push(["atom","undefined"]):f.push(r(!1))}c();return f}function E(){switch(g.token.type){case "name":case "operator":case "keyword":case "atom":return prog1(g.token.value,c);default:p()}}function h(a,b){return d("punc",".")?(c(),h(k("dot",a,E()),b)):d("punc","[")?(c(),h(k("sub",a,prog1(r,curry(m,"]"))),b)):b&&d("punc","(")?(c(),h(k("call",a,l(")")),!0)):\na}function F(a){if(d("operator")&&HOP(UNARY_PREFIX,g.token.value))return I("unary-prefix",prog1(g.token.value,c),F(a));for(a=D(a);d("operator")&&HOP(UNARY_POSTFIX,g.token.value)&&!g.token.nlb;)a=I("unary-postfix",g.token.value,a),c();return a}function I(a,c,b){"++"!=c&&"--"!=c||K(b)||n("Invalid use of "+c+" operator");return k(a,c,b)}function G(a,b,e){var f=d("operator")?g.token.value:null;f&&"in"==f&&e&&(f=null);var h=null!=f?PRECEDENCE[f]:null;return null!=h&&h>b?(c(),h=G(F(!0),h,e),G(k("binary",\nf,a,h),b,e)):a}function K(a){if(!e)return!0;switch(a[0]+""){case "dot":case "sub":case "new":case "call":return!0;case "name":return"this"!=a[1]}}function J(a){var b;b=G(F(!0),0,a);if(d("operator","?")){c();var e=r(!1);m(":");b=k("conditional",b,e,r(!1,a))}e=g.token.value;if(d("operator")&&HOP(ASSIGNMENT,e)){if(K(b))return c(),k("assign",ASSIGNMENT[e],b,J(a));n("Invalid assignment")}return b}function B(a){try{return++g.in_loop,a()}finally{--g.in_loop}}var g={input:"string"==typeof a?tokenizer(a,!0):\na,token:null,prev:null,peeked:null,in_function:0,in_directives:!0,in_loop:0,labels:[]};g.token=c();var s=z(function(){if(d("operator","/")||d("operator","/="))g.peeked=null,g.token=g.input(g.token.value.substr(1));switch(g.token.type){case "string":var a=g.in_directives,f=u();return a&&"string"==f[1][0]&&!d("punc",",")?k("directive",f[1][1]):f;case "num":case "regexp":case "operator":case "atom":return u();case "name":if(is_token(g.peeked||(g.peeked=g.input()),"punc",":")){a=prog1(g.token.value,c,\nc);g.labels.push(a);var f=g.token,h=s();e&&!HOP(STATEMENTS_WITH_LABELS,h[0])&&p(f);g.labels.pop();a=k("label",a,h)}else a=u();return a;case "punc":switch(g.token.value){case "{":return k("block",v());case "[":case "(":return u();case ";":return c(),k("block");default:p()}case "keyword":switch(prog1(g.token.value,c)){case "break":return C("break");case "continue":return C("continue");case "debugger":return q(),k("debugger");case "do":return a=B(s),A("keyword","while"),k("do",prog1(t,q),a);case "import":for(a=\n"";"punc"==g.token.type&&"."==g.token.value;)a+=".",c();f=D(!1);logger.error(g.token.type,g.token.value);"operator"==g.token.type&&"as"==g.token.value?(c(),h=D(!1),a=k("import",a,f,"as",h)):a=k("import",a,f);q();return a;case "for":a:{m("(");a=null;if(!d("punc",";")&&(a=d("keyword","var")?(c(),w(!0)):r(!0,!0),d("operator","in"))){"var"==a[0]&&1<a[1].length&&n("Only one variable declaration allowed in for..in loop");f="var"==a[0]?k("name",a[1][0]):a;c();h=r();m(")");a=k("for-in",a,f,h,B(s));break a}m(";");\nf=d("punc",";")?null:r();m(";");h=d("punc",")")?null:r();m(")");a=k("for",a,f,h,B(s))}return a;case "function":return H(!0);case "if":return f=t(),h=s(),d("keyword","else")&&(c(),a=s()),k("if",f,h,a);case "return":return 0==g.in_function&&n("\'return\' outside of function"),k("return",d("punc",";")?(c(),null):x()?null:prog1(r,q));case "switch":return k("switch",t(),L());case "throw":return g.token.nlb&&n("Illegal newline after \'throw\'"),k("throw",prog1(r,q));case "try":return a=v(),d("keyword","catch")&&\n(c(),m("("),d("name")||n("Name expected"),h=g.token.value,c(),m(")"),h=[h,v()]),d("keyword","finally")&&(c(),f=v()),h||f||n("Missing catch/finally blocks"),k("try",a,h,f);case "var":return prog1(w,q);case "const":return prog1(b,q);case "while":return k("while",t(),B(s));case "with":return k("with",t(),s());default:p()}}}),H=function(a){var b=d("name")?prog1(g.token.value,c):null;a&&!b&&p();m("(");return k(a?"defun":"function",b,function(a,b){for(;!d("punc",")");)a?a=!1:m(","),d("name")||p(),b.push(g.token.value),\nc();c();return b}(!0,[]),function(){++g.in_function;var a=g.in_loop;g.in_directives=!0;g.in_loop=0;var b=v();--g.in_function;g.in_loop=a;return b}())},L=curry(B,function(){m("{");for(var a=[],b=null;!d("punc","}");)d("eof")&&p(),d("keyword","case")?(c(),b=[],a.push([r(),b]),m(":")):d("keyword","default")?(c(),m(":"),b=[],a.push([null,b])):(b||p(),b.push(s()));c();return a}),D=z(function(a){if(d("operator","new")){c();a=D(!1);var b;d("punc","(")?(c(),b=l(")")):b=[];return h(k("new",a,b),!0)}if(d("punc")){switch(g.token.value){case "(":return c(),\nh(prog1(r,curry(m,")")),a);case "[":return c(),h(k("array",l("]",!e,!0)),a);case "{":c();b=!0;for(var f=[];!d("punc","}");){b?b=!1:m(",");if(!e&&d("punc","}"))break;var n=g.token.type,q;a:{switch(g.token.type){case "num":case "string":q=prog1(g.token.value,c);break a}q=E()}"name"!=n||"get"!=q&&"set"!=q||d("punc",":")?(m(":"),f.push([q,r(!1)])):f.push([E(),H(!1),q])}c();b=k("object",f);return h(b,a)}p()}if(d("keyword","function"))return c(),h(H(!1),a);if(HOP(ATOMIC_START_TOKEN,g.token.type))return b=\n"regexp"==g.token.type?k("regexp",g.token.value[0],g.token.value[1]):k(g.token.type,g.token.value),h(prog1(b,c),a);p()}),r=z(function(a,b){0==arguments.length&&(a=!0);var e=J(b);return a&&d("punc",",")?(c(),k("seq",e,r(!0,b))):e});return k("toplevel",function(a){for(;!d("eof");)a.push(s());return a}([]))}function curry(a){var e=slice(arguments,1);return function(){return a.apply(this,e.concat(slice(arguments)))}}\nfunction prog1(a){a instanceof Function&&(a=a());for(var e=1,f=arguments.length;0<--f;++e)arguments[e]();return a}function array_to_hash(a){for(var e={},f=0;f<a.length;++f)e[a[f]]=!0;return e}function slice(a,e){return Array.prototype.slice.call(a,e||0)}function characters(a){return a.split("")}function member(a,e){for(var f=e.length;0<=--f;)if(e[f]==a)return!0;return!1}function HOP(a,e){return Object.prototype.hasOwnProperty.call(a,e)}var warn=function(){};exports.tokenizer=tokenizer;\nexports.parse=parse;exports.slice=slice;exports.curry=curry;exports.member=member;exports.array_to_hash=array_to_hash;exports.PRECEDENCE=PRECEDENCE;exports.KEYWORDS_ATOM=KEYWORDS_ATOM;exports.RESERVED_WORDS=RESERVED_WORDS;exports.KEYWORDS=KEYWORDS;exports.ATOMIC_START_TOKEN=ATOMIC_START_TOKEN;exports.OPERATORS=OPERATORS;exports.is_alphanumeric_char=is_alphanumeric_char;exports.set_logger=function(a){warn=a};\n',
pre:!0},"util/setProperty.js":{path:"util/setProperty.js",friendlyPath:"jsio.util.setProperty",directory:"util/",filename:"setProperty.js",src:'function createGetter(c,b){return function(){return this[b]}}function createSetter(c,b,a,e){void 0!==e&&(c[b]=e);return"function"==typeof a?function(c){if(this[b]!==c){var d=this[b];this[b]=c;a.call(this,b,c,d)}}:"string"==typeof a?function(c){if(this[b]!==c){var d=this[b];this[b]=c;this[a](b,c,d)}}:function(a){this[b]=a}}\nexports=function(c,b,a){!a.get&&!a.set&&!a.cb&&"value"in a?c[b]=a.value:(a.get||(a.get=createGetter(c,"_"+b)),a.set||(a.set=createSetter(c,"_"+b,a.cb,a.value)),"value"in a&&(c["_"+b]=a.value),delete a.value,Object.defineProperty?Object.defineProperty(c,b,a):c.__defineSetter__?(c.__defineSetter__(b,a.set),c.__defineGetter__(b,a.get)):c[b]=a.value)};\n',
pre:!0},"util/sprintf.js":{path:"util/sprintf.js",friendlyPath:"jsio.util.sprintf",directory:"util/",filename:"sprintf.js",src:'var sprintfWrapper={init:function(){if("undefined"==typeof arguments||1>arguments.length||"string"!=typeof arguments[0]||"undefined"==typeof RegExp)return null;for(var a=arguments[0],d=new RegExp(/(%([%]|(\\-)?(\\+|\\x20)?(0)?(\\d+)?(\\.(\\d)?)?([bcdfosxX])))/g),b=[],f=[],e=0,h=0,k=0,h=0,g="",c=null;c=d.exec(a);)c[9]&&(e+=1),k=d.lastIndex-c[0].length,f[f.length]=a.substring(h,k),h=d.lastIndex,b[b.length]={match:c[0],left:c[3]?!0:!1,sign:c[4]||"",pad:c[5]||" ",min:c[6]||0,precision:c[8],code:c[9]||"%",negative:0>\nparseInt(arguments[e])?!0:!1,argument:"object"==typeof arguments[e]?JSON.stringify(arguments[e]):String(arguments[e])};f[f.length]=a.substring(h);if(0==b.length)return a;if(arguments.length-1<e)return null;a=null;for(a=0;a<b.length;a++)"%"==b[a].code?substitution="%":"b"==b[a].code?(b[a].argument=String(Math.abs(parseInt(b[a].argument)).toString(2)),substitution=sprintfWrapper.convert(b[a],!0)):"c"==b[a].code?(b[a].argument=String(String.fromCharCode(parseInt(Math.abs(parseInt(b[a].argument))))),\nsubstitution=sprintfWrapper.convert(b[a],!0)):"d"==b[a].code?(b[a].argument=String(Math.abs(parseInt(b[a].argument))),substitution=sprintfWrapper.convert(b[a])):"f"==b[a].code?(b[a].argument=String(Math.abs(parseFloat(b[a].argument)).toFixed(b[a].precision?b[a].precision:6)),substitution=sprintfWrapper.convert(b[a])):"o"==b[a].code?(b[a].argument=String(Math.abs(parseInt(b[a].argument)).toString(8)),substitution=sprintfWrapper.convert(b[a])):"s"==b[a].code?(b[a].argument=b[a].argument.substring(0,\nb[a].precision?b[a].precision:b[a].argument.length),substitution=sprintfWrapper.convert(b[a],!0)):"x"==b[a].code?(b[a].argument=String(Math.abs(parseInt(b[a].argument)).toString(16)),substitution=sprintfWrapper.convert(b[a])):"X"==b[a].code?(b[a].argument=String(Math.abs(parseInt(b[a].argument)).toString(16)),substitution=sprintfWrapper.convert(b[a]).toUpperCase()):substitution=b[a].match,g+=f[a],g+=substitution;return g+=f[a]},convert:function(a,d){a.sign=d?"":a.negative?"-":a.sign;var b=a.min-a.argument.length+\n1-a.sign.length,b=Array(0>b?0:b).join(a.pad);return a.left?"0"==a.pad||d?a.sign+a.argument+b.replace(/0/g," "):a.sign+a.argument+b:"0"==a.pad||d?a.sign+b+a.argument:b+a.sign+a.argument}};exports.sprintf=sprintfWrapper.init;\n',
pre:!0},"util/syntax.js":{path:"util/syntax.js",friendlyPath:"jsio.util.syntax",directory:"util/",filename:"syntax.js",src:'jsio("import .esprima");function validate(a,b){try{var d=esprima.parse(a,{tolerant:!0,loc:!0}).errors;0<d.length&&logErrors(b,a,d)}catch(c){logErrors(b,a,[c])}}function padString(a,b){for(a+="";a.length<b;)a=" "+a;return a}function logColor(a,b){console.group?console.log("%c"+b,"color:"+a):console.log(b)}\nfunction logErrors(a,b,d){console.group?console.group("%c"+("Syntax Error ("+a+"):"),"color: red; text-decoration: underline"):console.error("Syntax Error:");a=b.split("\\n");for(b=0;b<d.length;b+=1){var c=d[b],e=(""+(c.lineNumber+3)).length;printLines(e,a,c.lineNumber-3,c.lineNumber-1);logColor("red",padString(c.lineNumber,e)+" "+a[c.lineNumber-1]);logColor("blue",Array(e+c.column+1).join("\\u00b7")+"^");printLines(e,a,c.lineNumber+1,c.lineNumber+1+3);logColor("red","Line "+c.lineNumber+": "+c.description)}console.groupEnd&&\nconsole.groupEnd()}var printLines=console.group?function(a,b,d,c){for(;d<=c;++d)console.log("%c"+padString(d,a)+" %c"+b[d-1],"color: gray","color: auto")}:function(a,b,d,c){for(;d<=c;++d)console.log(padString(d,a),b[d-1])};exports=validate;\n',
pre:!0},"util/underscore.js":{path:"util/underscore.js",friendlyPath:"jsio.util.underscore",directory:"util/",filename:"underscore.js",src:'(function(){var v=this,P=v._,r={},m=Array.prototype,s=Object.prototype,D=m.push,k=m.slice,t=m.concat,p=s.toString,Q=s.hasOwnProperty,E=m.forEach,F=m.map,G=m.reduce,H=m.reduceRight,I=m.filter,J=m.every,K=m.some,u=m.indexOf,L=m.lastIndexOf,s=Array.isArray,M=Object.keys,w=Function.prototype.bind,b=function(a){if(a instanceof b)return a;if(!(this instanceof b))return new b(a);this._wrapped=a};"undefined"!==typeof exports?("undefined"!==typeof module&&module.exports&&(exports=module.exports=b),exports._=\nb):v._=b;b.VERSION="1.6.0";var l=b.each=b.forEach=function(a,d,c){if(null==a)return a;if(E&&a.forEach===E)a.forEach(d,c);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(d.call(c,a[e],e,a)===r)return}else for(var g=b.keys(a),e=0,f=g.length;e<f;e++)if(d.call(c,a[g[e]],g[e],a)===r)return;return a};b.map=b.collect=function(a,d,b){var e=[];if(null==a)return e;if(F&&a.map===F)return a.map(d,b);l(a,function(a,g,h){e.push(d.call(b,a,g,h))});return e};b.reduce=b.foldl=b.inject=function(a,d,\nc,e){var f=2<arguments.length;null==a&&(a=[]);if(G&&a.reduce===G)return e&&(d=b.bind(d,e)),f?a.reduce(d,c):a.reduce(d);l(a,function(a,b,n){f?c=d.call(e,c,a,b,n):(c=a,f=!0)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return c};b.reduceRight=b.foldr=function(a,d,c,e){var f=2<arguments.length;null==a&&(a=[]);if(H&&a.reduceRight===H)return e&&(d=b.bind(d,e)),f?a.reduceRight(d,c):a.reduceRight(d);var g=a.length;if(g!==+g)var h=b.keys(a),g=h.length;l(a,function(b,k,l){k=h?\nh[--g]:--g;f?c=d.call(e,c,a[k],k,l):(c=a[k],f=!0)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return c};b.find=b.detect=function(a,d,b){var e;N(a,function(a,g,h){if(d.call(b,a,g,h))return e=a,!0});return e};b.filter=b.select=function(a,d,b){var e=[];if(null==a)return e;if(I&&a.filter===I)return a.filter(d,b);l(a,function(a,g,h){d.call(b,a,g,h)&&e.push(a)});return e};b.reject=function(a,d,c){return b.filter(a,function(a,b,g){return!d.call(c,a,b,g)},c)};b.every=b.all=\nfunction(a,d,c){d||(d=b.identity);var e=!0;if(null==a)return e;if(J&&a.every===J)return a.every(d,c);l(a,function(a,b,h){if(!(e=e&&d.call(c,a,b,h)))return r});return!!e};var N=b.some=b.any=function(a,d,c){d||(d=b.identity);var e=!1;if(null==a)return e;if(K&&a.some===K)return a.some(d,c);l(a,function(a,b,h){if(e||(e=d.call(c,a,b,h)))return r});return!!e};b.contains=b.include=function(a,d){return null==a?!1:u&&a.indexOf===u?-1!=a.indexOf(d):N(a,function(a){return a===d})};b.invoke=function(a,d){var c=\nk.call(arguments,2),e=b.isFunction(d);return b.map(a,function(a){return(e?d:a[d]).apply(a,c)})};b.pluck=function(a,d){return b.map(a,b.property(d))};b.where=function(a,d){return b.filter(a,b.matches(d))};b.findWhere=function(a,d){return b.find(a,b.matches(d))};b.max=function(a,d,c){if(!d&&b.isArray(a)&&a[0]===+a[0]&&65535>a.length)return Math.max.apply(Math,a);var e=-Infinity,f=-Infinity;l(a,function(a,b,n){b=d?d.call(c,a,b,n):a;b>f&&(e=a,f=b)});return e};b.min=function(a,d,c){if(!d&&b.isArray(a)&&\na[0]===+a[0]&&65535>a.length)return Math.min.apply(Math,a);var e=Infinity,f=Infinity;l(a,function(a,b,n){b=d?d.call(c,a,b,n):a;b<f&&(e=a,f=b)});return e};b.shuffle=function(a){var d,c=0,e=[];l(a,function(a){d=b.random(c++);e[c-1]=e[d];e[d]=a});return e};b.sample=function(a,d,c){return null==d||c?(a.length!==+a.length&&(a=b.values(a)),a[b.random(a.length-1)]):b.shuffle(a).slice(0,Math.max(0,d))};var x=function(a){return null==a?b.identity:b.isFunction(a)?a:b.property(a)};b.sortBy=function(a,d,c){d=\nx(d);return b.pluck(b.map(a,function(a,b,g){return{value:a,index:b,criteria:d.call(c,a,b,g)}}).sort(function(a,d){var b=a.criteria,c=d.criteria;if(b!==c){if(b>c||void 0===b)return 1;if(b<c||void 0===c)return-1}return a.index-d.index}),"value")};var y=function(a){return function(d,b,e){var f={};b=x(b);l(d,function(g,h){var n=b.call(e,g,h,d);a(f,n,g)});return f}};b.groupBy=y(function(a,d,c){b.has(a,d)?a[d].push(c):a[d]=[c]});b.indexBy=y(function(a,b,c){a[b]=c});b.countBy=y(function(a,d){b.has(a,d)?\na[d]++:a[d]=1});b.sortedIndex=function(a,b,c,e){c=x(c);b=c.call(e,b);for(var f=0,g=a.length;f<g;){var h=f+g>>>1;c.call(e,a[h])<b?f=h+1:g=h}return f};b.toArray=function(a){return a?b.isArray(a)?k.call(a):a.length===+a.length?b.map(a,b.identity):b.values(a):[]};b.size=function(a){return null==a?0:a.length===+a.length?a.length:b.keys(a).length};b.first=b.head=b.take=function(a,b,c){return null==a?void 0:null==b||c?a[0]:0>b?[]:k.call(a,0,b)};b.initial=function(a,b,c){return k.call(a,0,a.length-(null==\nb||c?1:b))};b.last=function(a,b,c){return null==a?void 0:null==b||c?a[a.length-1]:k.call(a,Math.max(a.length-b,0))};b.rest=b.tail=b.drop=function(a,b,c){return k.call(a,null==b||c?1:b)};b.compact=function(a){return b.filter(a,b.identity)};var O=function(a,d,c){if(d&&b.every(a,b.isArray))return t.apply(c,a);l(a,function(a){b.isArray(a)||b.isArguments(a)?d?D.apply(c,a):O(a,d,c):c.push(a)});return c};b.flatten=function(a,b){return O(a,b,[])};b.without=function(a){return b.difference(a,k.call(arguments,\n1))};b.partition=function(a,b){var c=[],e=[];l(a,function(a){(b(a)?c:e).push(a)});return[c,e]};b.uniq=b.unique=function(a,d,c,e){b.isFunction(d)&&(e=c,c=d,d=!1);c=c?b.map(a,c,e):a;var f=[],g=[];l(c,function(c,e){(d?e&&g[g.length-1]===c:b.contains(g,c))||(g.push(c),f.push(a[e]))});return f};b.union=function(){return b.uniq(b.flatten(arguments,!0))};b.intersection=function(a){var d=k.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(d,function(d){return b.contains(d,a)})})};b.difference=\nfunction(a){var d=t.apply(m,k.call(arguments,1));return b.filter(a,function(a){return!b.contains(d,a)})};b.zip=function(){for(var a=b.max(b.pluck(arguments,"length").concat(0)),d=Array(a),c=0;c<a;c++)d[c]=b.pluck(arguments,""+c);return d};b.object=function(a,b){if(null==a)return{};for(var c={},e=0,f=a.length;e<f;e++)b?c[a[e]]=b[e]:c[a[e][0]]=a[e][1];return c};b.indexOf=function(a,d,c){if(null==a)return-1;var e=0,f=a.length;if(c)if("number"==typeof c)e=0>c?Math.max(0,f+c):c;else return e=b.sortedIndex(a,\nd),a[e]===d?e:-1;if(u&&a.indexOf===u)return a.indexOf(d,c);for(;e<f;e++)if(a[e]===d)return e;return-1};b.lastIndexOf=function(a,b,c){if(null==a)return-1;var e=null!=c;if(L&&a.lastIndexOf===L)return e?a.lastIndexOf(b,c):a.lastIndexOf(b);for(c=e?c:a.length;c--;)if(a[c]===b)return c;return-1};b.range=function(a,b,c){1>=arguments.length&&(b=a||0,a=0);c=arguments[2]||1;for(var e=Math.max(Math.ceil((b-a)/c),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=c;return g};var z=function(){};b.bind=function(a,d){var c,e;if(w&&\na.bind===w)return w.apply(a,k.call(arguments,1));if(!b.isFunction(a))throw new TypeError;c=k.call(arguments,2);return e=function(){if(!(this instanceof e))return a.apply(d,c.concat(k.call(arguments)));z.prototype=a.prototype;var b=new z;z.prototype=null;var g=a.apply(b,c.concat(k.call(arguments)));return Object(g)===g?g:b}};b.partial=function(a){var d=k.call(arguments,1);return function(){for(var c=0,e=d.slice(),f=0,g=e.length;f<g;f++)e[f]===b&&(e[f]=arguments[c++]);for(;c<arguments.length;)e.push(arguments[c++]);\nreturn a.apply(this,e)}};b.bindAll=function(a){var d=k.call(arguments,1);if(0===d.length)throw Error("bindAll must be passed function names");l(d,function(d){a[d]=b.bind(a[d],a)});return a};b.memoize=function(a,d){var c={};d||(d=b.identity);return function(){var e=d.apply(this,arguments);return b.has(c,e)?c[e]:c[e]=a.apply(this,arguments)}};b.delay=function(a,b){var c=k.call(arguments,2);return setTimeout(function(){return a.apply(null,c)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(k.call(arguments,\n1)))};b.throttle=function(a,d,c){var e,f,g,h=null,n=0;c||(c={});var k=function(){n=!1===c.leading?0:b.now();h=null;g=a.apply(e,f);e=f=null};return function(){var l=b.now();n||!1!==c.leading||(n=l);var m=d-(l-n);e=this;f=arguments;0>=m?(clearTimeout(h),h=null,n=l,g=a.apply(e,f),e=f=null):h||!1===c.trailing||(h=setTimeout(k,m));return g}};b.debounce=function(a,d,c){var e,f,g,h,k,l=function(){var m=b.now()-h;m<d?e=setTimeout(l,d-m):(e=null,c||(k=a.apply(g,f),g=f=null))};return function(){g=this;f=arguments;\nh=b.now();var m=c&&!e;e||(e=setTimeout(l,d));m&&(k=a.apply(g,f),g=f=null);return k}};b.once=function(a){var b=!1,c;return function(){if(b)return c;b=!0;c=a.apply(this,arguments);a=null;return c}};b.wrap=function(a,d){return b.partial(d,a)};b.compose=function(){var a=arguments;return function(){for(var b=arguments,c=a.length-1;0<=c;c--)b=[a[c].apply(this,b)];return b[0]}};b.after=function(a,b){return function(){if(1>--a)return b.apply(this,arguments)}};b.keys=function(a){if(!b.isObject(a))return[];\nif(M)return M(a);var d=[],c;for(c in a)b.has(a,c)&&d.push(c);return d};b.values=function(a){for(var d=b.keys(a),c=d.length,e=Array(c),f=0;f<c;f++)e[f]=a[d[f]];return e};b.pairs=function(a){for(var d=b.keys(a),c=d.length,e=Array(c),f=0;f<c;f++)e[f]=[d[f],a[d[f]]];return e};b.invert=function(a){for(var d={},c=b.keys(a),e=0,f=c.length;e<f;e++)d[a[c[e]]]=c[e];return d};b.functions=b.methods=function(a){var d=[],c;for(c in a)b.isFunction(a[c])&&d.push(c);return d.sort()};b.extend=function(a){l(k.call(arguments,\n1),function(b){if(b)for(var c in b)a[c]=b[c]});return a};b.pick=function(a){var b={},c=t.apply(m,k.call(arguments,1));l(c,function(c){c in a&&(b[c]=a[c])});return b};b.omit=function(a){var d={},c=t.apply(m,k.call(arguments,1)),e;for(e in a)b.contains(c,e)||(d[e]=a[e]);return d};b.defaults=function(a){l(k.call(arguments,1),function(b){if(b)for(var c in b)void 0===a[c]&&(a[c]=b[c])});return a};b.clone=function(a){return b.isObject(a)?b.isArray(a)?a.slice():b.extend({},a):a};b.tap=function(a,b){b(a);\nreturn a};var A=function(a,d,c,e){if(a===d)return 0!==a||1/a==1/d;if(null==a||null==d)return a===d;a instanceof b&&(a=a._wrapped);d instanceof b&&(d=d._wrapped);var f=p.call(a);if(f!=p.call(d))return!1;switch(f){case "[object String]":return a==String(d);case "[object Number]":return a!=+a?d!=+d:0==a?1/a==1/d:a==+d;case "[object Date]":case "[object Boolean]":return+a==+d;case "[object RegExp]":return a.source==d.source&&a.global==d.global&&a.multiline==d.multiline&&a.ignoreCase==d.ignoreCase}if("object"!=\ntypeof a||"object"!=typeof d)return!1;for(var g=c.length;g--;)if(c[g]==a)return e[g]==d;var g=a.constructor,h=d.constructor;if(g!==h&&!(b.isFunction(g)&&g instanceof g&&b.isFunction(h)&&h instanceof h)&&"constructor"in a&&"constructor"in d)return!1;c.push(a);e.push(d);g=0;h=!0;if("[object Array]"==f){if(g=a.length,h=g==d.length)for(;g--&&(h=A(a[g],d[g],c,e)););}else{for(var k in a)if(b.has(a,k)&&(g++,!(h=b.has(d,k)&&A(a[k],d[k],c,e))))break;if(h){for(k in d)if(b.has(d,k)&&!g--)break;h=!g}}c.pop();\ne.pop();return h};b.isEqual=function(a,b){return A(a,b,[],[])};b.isEmpty=function(a){if(null==a)return!0;if(b.isArray(a)||b.isString(a))return 0===a.length;for(var d in a)if(b.has(a,d))return!1;return!0};b.isElement=function(a){return!(!a||1!==a.nodeType)};b.isArray=s||function(a){return"[object Array]"==p.call(a)};b.isObject=function(a){return a===Object(a)};l("Arguments Function String Number Date RegExp".split(" "),function(a){b["is"+a]=function(b){return p.call(b)=="[object "+a+"]"}});b.isArguments(arguments)||\n(b.isArguments=function(a){return!(!a||!b.has(a,"callee"))});"function"!==typeof/./&&(b.isFunction=function(a){return"function"===typeof a});b.isFinite=function(a){return isFinite(a)&&!isNaN(parseFloat(a))};b.isNaN=function(a){return b.isNumber(a)&&a!=+a};b.isBoolean=function(a){return!0===a||!1===a||"[object Boolean]"==p.call(a)};b.isNull=function(a){return null===a};b.isUndefined=function(a){return void 0===a};b.has=function(a,b){return Q.call(a,b)};b.noConflict=function(){v._=P;return this};b.identity=\nfunction(a){return a};b.constant=function(a){return function(){return a}};b.property=function(a){return function(b){return b[a]}};b.matches=function(a){return function(b){if(b===a)return!0;for(var c in a)if(a[c]!==b[c])return!1;return!0}};b.times=function(a,b,c){for(var e=Array(Math.max(0,a)),f=0;f<a;f++)e[f]=b.call(c,f);return e};b.random=function(a,b){null==b&&(b=a,a=0);return a+Math.floor(Math.random()*(b-a+1))};b.now=Date.now||function(){return(new Date).getTime()};var q={escape:{"&":"&",\n"<":"<",">":">",\'"\':""","\'":"'"}};q.unescape=b.invert(q.escape);var R={escape:new RegExp("["+b.keys(q.escape).join("")+"]","g"),unescape:new RegExp("("+b.keys(q.unescape).join("|")+")","g")};b.each(["escape","unescape"],function(a){b[a]=function(b){return null==b?"":(""+b).replace(R[a],function(b){return q[a][b]})}});b.result=function(a,d){if(null!=a){var c=a[d];return b.isFunction(c)?c.call(a):c}};b.mixin=function(a){l(b.functions(a),function(d){var c=b[d]=a[d];b.prototype[d]=function(){var a=\n[this._wrapped];D.apply(a,arguments);return B.call(this,c.apply(b,a))}})};var S=0;b.uniqueId=function(a){var b=++S+"";return a?a+b:b};b.templateSettings={evaluate:/<%([\\s\\S]+?)%>/g,interpolate:/<%=([\\s\\S]+?)%>/g,escape:/<%-([\\s\\S]+?)%>/g};var C=/(.)^/,T={"\'":"\'","\\\\":"\\\\","\\r":"r","\\n":"n","\\t":"t","\\u2028":"u2028","\\u2029":"u2029"},U=/\\\\|\'|\\r|\\n|\\t|\\u2028|\\u2029/g;b.template=function(a,d,c){var e;c=b.defaults({},c,b.templateSettings);var f=new RegExp([(c.escape||C).source,(c.interpolate||C).source,\n(c.evaluate||C).source].join("|")+"|$","g"),g=0,h="__p+=\'";a.replace(f,function(b,c,d,e,f){h+=a.slice(g,f).replace(U,function(a){return"\\\\"+T[a]});c&&(h+="\'+\\n((__t=("+c+"))==null?\'\':_.escape(__t))+\\n\'");d&&(h+="\'+\\n((__t=("+d+"))==null?\'\':__t)+\\n\'");e&&(h+="\';\\n"+e+"\\n__p+=\'");g=f+b.length;return b});h+="\';\\n";c.variable||(h="with(obj||{}){\\n"+h+"}\\n");h="var __t,__p=\'\',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,\'\');};\\n"+h+"return __p;\\n";try{e=new Function(c.variable||"obj",\n"_",h)}catch(k){throw k.source=h,k;}if(d)return e(d,b);d=function(a){return e.call(this,a,b)};d.source="function("+(c.variable||"obj")+"){\\n"+h+"}";return d};b.chain=function(a){return b(a).chain()};var B=function(a){return this._chain?b(a).chain():a};b.mixin(b);l("pop push reverse shift sort splice unshift".split(" "),function(a){var d=m[a];b.prototype[a]=function(){var b=this._wrapped;d.apply(b,arguments);"shift"!=a&&"splice"!=a||0!==b.length||delete b[0];return B.call(this,b)}});l(["concat","join",\n"slice"],function(a){var d=m[a];b.prototype[a]=function(){return B.call(this,d.apply(this._wrapped,arguments))}});b.extend(b.prototype,{chain:function(){this._chain=!0;return this},value:function(){return this._wrapped}});"function"===typeof define&&define.amd&&define("underscore",[],function(){return b})}).call(this);\n',
pre:!0},"base.js":{path:"base.js",friendlyPath:"jsio.base",directory:"",filename:"base.js",src:'exports.log=jsio.__env.log;exports.GLOBAL=jsio.__env.global;Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});\nFunction.prototype.bind||(Function.prototype.bind=function(a){if("function"!==typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,e=function(){},d=function(){return c.apply(this instanceof e?this:a,b.concat(Array.prototype.slice.call(arguments)))};e.prototype=this.prototype;d.prototype=new e;return d});var SLICE=Array.prototype.slice;\nexports.isArray="function"===typeof Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)};\nexports.bind=function(a,b){if(2<arguments.length){var c=SLICE.call(arguments,2);return"string"==typeof b?function(){if(a[b])return a[b].apply(a,c.concat(SLICE.call(arguments,0)));throw logger.error("No method:",b,"for context",a);}:function(){return b.apply(a,c.concat(SLICE.call(arguments,0)))}}return"string"==typeof b?function(){if(a[b])return a[b].apply(a,arguments);throw logger.error("No method:",b,"for context",a);}:function(){return b.apply(a,arguments)}};\nexports.Class=function(a,b,c){return exports.__class__(function(){return this.init&&this.init.apply(this,arguments)},a,b,c)};\nexports.__class__=function(a,b,c,e){var d=function(){},f;"string"!=typeof b&&(e=c,c=b,b=null);b&&(f=exports.logging.get(b));if(!c)throw Error("parent or prototype not provided");e||(e=c,c=null);if(c)if(exports.isArray(c)){d.prototype={};for(var g=0,h;h=c[g];++g){h==Error&&ErrorParentClass&&(h=ErrorParentClass);for(var k in h.prototype)k in d.prototype||(d.prototype[k]=h.prototype[k])}c=c[0]}else c==Error&&ErrorParentClass&&(c=ErrorParentClass),d.prototype=c.prototype;g=c?function(a,b,f){var g=c.prototype[b];\nif(!g)throw Error("method "+b+" does not exist");return g.apply(a,f||[])}:null;h=a.prototype=new d;h.constructor=a;h.__parentClass__=c;b&&(h.__class__=b);e.call(h,f||g,f&&g);return a};var ErrorParentClass=exports.__class__(function(){var a=Error.prototype.constructor.apply(this,arguments),b;for(b in a)a.hasOwnProperty(b)&&(this[b]=a[b])},function(){});\nexports.Class.defaults=exports.merge=function(a,b){a=a||{};for(var c=1,e=arguments.length;c<e;++c){var d=arguments[c],f;for(f in d)d.hasOwnProperty(f)&&!a.hasOwnProperty(f)&&(a[f]=d[f])}return a};exports.delay=function(a,b){var c=null,e,d,f=function(){a.apply(e,d)};return function(){e=this;d=arguments;c&&clearTimeout(c);c=setTimeout(f,b||0)}};\nexports.logging=function(){var a={DEBUG:1,LOG:2,INFO:3,WARN:4,ERROR:5,NONE:10},b={},c=!1,e="";a.setPrefix=function(a){e=a+" "};a.setProduction=function(a){c=!!a;for(var g in b)b[g].setProduction(c)};a.get=function(a){a=a in b?b[a]:b[a]=new d(a);a.setProduction(c);return a};a.set=function(a,c){b[a]=c};a.getAll=function(){return b};a.__create=function(b,c){c.logger=a.get(b)};var d=exports.__class__(function(b,g){this._name=b;this._isProduction=c;this.setLevel(g||a.LOG)},function(){function b(c){var d=\na[c];return function(){if(!this._isProduction&&d>=this._level){var a=c+" "+e+this._name,b=this._listener||exports.log;return b&&b.apply(this._listener,[a].concat(SLICE.call(arguments)))}return arguments[0]}}this.setProduction=function(b){(this._isProduction=b)&&this.setLevel(a.NONE)};this.setLevel=function(b){this._level=b;this._isProduction&&(b=a.NONE);this.DEBUG=b<=a.DEBUG;this.LOG=b<=a.LOG;this.INFO=b<=a.INFO;this.WARN=b<=a.WARN;this.ERROR=b<=a.ERROR};this.setListener=function(a){this._listener=\na};this.debug=b("DEBUG");this.log=b("LOG");this.info=b("INFO");this.warn=b("WARN");this.error=b("ERROR")});return a}();var logger=exports.logging.get("jsiocore");\n',
pre:!0},"index.js":{path:"index.js",friendlyPath:"jsio.index",directory:"",filename:"index.js",src:'require("./jsio");\n',pre:!0},"logging.js":{path:"logging.js",friendlyPath:"jsio.logging",directory:"",filename:"logging.js",src:"exports.UIWatcher=Class(function(){});\n",pre:!0}});
jsio("import jsio_compile.compiler").start()