").append(st.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,a||[e.responseText,t,e])}),this},st.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){st.fn[t]=function(e){return this.on(t,e)}}),st.each(["get","post"],function(e,n){st[n]=function(e,r,i,o){return st.isFunction(r)&&(o=o||i,i=r,r=t),st.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),st.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dn,type:"GET",isLocal:Fn.test(jn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":In,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":st.parseJSON,"text xml":st.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,st.ajaxSettings),t):H(st.ajaxSettings,e)},ajaxPrefilter:D(Wn),ajaxTransport:D($n),ajax:function(e,n){function r(e,n,r,s){var l,f,v,b,T,N=n;2!==x&&(x=2,u&&clearTimeout(u),i=t,a=s||"",w.readyState=e>0?4:0,r&&(b=M(p,w,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=w.getResponseHeader("Last-Modified"),T&&(st.lastModified[o]=T),T=w.getResponseHeader("etag"),T&&(st.etag[o]=T)),304===e?(l=!0,N="notmodified"):(l=q(p,b),N=l.state,f=l.data,v=l.error,l=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),w.status=e,w.statusText=(n||N)+"",l?g.resolveWith(d,[f,N,w]):g.rejectWith(d,[w,N,v]),w.statusCode(y),y=t,c&&h.trigger(l?"ajaxSuccess":"ajaxError",[w,p,l?f:v]),m.fireWith(d,[w,N]),c&&(h.trigger("ajaxComplete",[w,p]),--st.active||st.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,u,l,c,f,p=st.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?st(d):st.event,g=st.Deferred(),m=st.Callbacks("once memory"),y=p.statusCode||{},v={},b={},x=0,T="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!s)for(s={};t=_n.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=b[n]=b[n]||e,v[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)y[t]=[y[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(g.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Dn)+"").replace(Mn,"").replace(Bn,jn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=st.trim(p.dataType||"*").toLowerCase().match(lt)||[""],null==p.crossDomain&&(l=Pn.exec(p.url.toLowerCase()),p.crossDomain=!(!l||l[1]===jn[1]&&l[2]===jn[2]&&(l[3]||("http:"===l[1]?80:443))==(jn[3]||("http:"===jn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=st.param(p.data,p.traditional)),L(Wn,p,n,w),2===x)return w;c=p.global,c&&0===st.active++&&st.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!On.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(Hn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=qn.test(o)?o.replace(qn,"$1_="+Ln++):o+(Hn.test(o)?"&":"?")+"_="+Ln++)),p.ifModified&&(st.lastModified[o]&&w.setRequestHeader("If-Modified-Since",st.lastModified[o]),st.etag[o]&&w.setRequestHeader("If-None-Match",st.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+In+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)w.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,w,p)===!1||2===x))return w.abort();T="abort";for(f in{success:1,error:1,complete:1})w[f](p[f]);if(i=L($n,p,n,w)){w.readyState=1,c&&h.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(u=setTimeout(function(){w.abort("timeout")},p.timeout));try{x=1,i.send(v,r)}catch(N){if(!(2>x))throw N;r(-1,N)}}else r(-1,"No Transport");return w},getScript:function(e,n){return st.get(e,t,n,"script")},getJSON:function(e,t,n){return st.get(e,t,n,"json")}}),st.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return st.globalEval(e),e}}}),st.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),st.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=V.head||st("head")[0]||V.documentElement;return{send:function(t,i){n=V.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Xn=[],Un=/(=)\?(?=&|$)|\?\?/;st.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xn.pop()||st.expando+"_"+Ln++;return this[e]=!0,e}}),st.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Un.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Un.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=st.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Un,"$1"+o):n.jsonp!==!1&&(n.url+=(Hn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||st.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Xn.push(o)),s&&st.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Vn,Yn,Jn=0,Gn=e.ActiveXObject&&function(){var e;for(e in Vn)Vn[e](t,!0)};st.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&_()||F()}:_,Yn=st.ajaxSettings.xhr(),st.support.cors=!!Yn&&"withCredentials"in Yn,Yn=st.support.ajax=!!Yn,Yn&&st.ajaxTransport(function(n){if(!n.crossDomain||st.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,f,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=st.noop,Gn&&delete Vn[a]),i)4!==u.readyState&&u.abort();else{f={},s=u.status,p=u.responseXML,c=u.getAllResponseHeaders(),p&&p.documentElement&&(f.xml=p),"string"==typeof u.responseText&&(f.text=u.responseText);try{l=u.statusText}catch(d){l=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=f.text?200:404}}catch(h){i||o(-1,h)}f&&o(s,l,f,c)},n.async?4===u.readyState?setTimeout(r):(a=++Jn,Gn&&(Vn||(Vn={},st(e).unload(Gn)),Vn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Qn,Kn,Zn=/^(?:toggle|show|hide)$/,er=RegExp("^(?:([+-])=|)("+ut+")([a-z%]*)$","i"),tr=/queueHooks$/,nr=[W],rr={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=er.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(st.cssNumber[e]?"":"px"),"px"!==r&&s){s=st.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,st.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};st.Animation=st.extend(P,{tweener:function(e,t){st.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],rr[n]=rr[n]||[],rr[n].unshift(t)},prefilter:function(e,t){t?nr.unshift(e):nr.push(e)}}),st.Tween=$,$.prototype={constructor:$,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(st.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.pos=t=this.options.duration?st.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=st.css(e.elem,e.prop,"auto"),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){st.fx.step[e.prop]?st.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[st.cssProps[e.prop]]||st.cssHooks[e.prop])?st.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},st.each(["toggle","show","hide"],function(e,t){var n=st.fn[t];st.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(I(t,!0),e,r,i)}}),st.fn.extend({fadeTo:function(e,t,n,r){return this.filter(w).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=st.isEmptyObject(e),o=st.speed(t,n,r),a=function(){var t=P(this,st.extend({},e),o);a.finish=function(){t.stop(!0)},(i||st._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=st.timers,a=st._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&tr.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&st.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=st._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=st.timers,a=r?r.length:0;for(n.finish=!0,st.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),st.each({slideDown:I("show"),slideUp:I("hide"),slideToggle:I("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){st.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),st.speed=function(e,t,n){var r=e&&"object"==typeof e?st.extend({},e):{complete:n||!n&&t||st.isFunction(e)&&e,duration:e,easing:n&&t||t&&!st.isFunction(t)&&t};return r.duration=st.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in st.fx.speeds?st.fx.speeds[r.duration]:st.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){st.isFunction(r.old)&&r.old.call(this),r.queue&&st.dequeue(this,r.queue)},r},st.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},st.timers=[],st.fx=$.prototype.init,st.fx.tick=function(){var e,n=st.timers,r=0;for(Qn=st.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||st.fx.stop(),Qn=t},st.fx.timer=function(e){e()&&st.timers.push(e)&&st.fx.start()},st.fx.interval=13,st.fx.start=function(){Kn||(Kn=setInterval(st.fx.tick,st.fx.interval))},st.fx.stop=function(){clearInterval(Kn),Kn=null},st.fx.speeds={slow:600,fast:200,_default:400},st.fx.step={},st.expr&&st.expr.filters&&(st.expr.filters.animated=function(e){return st.grep(st.timers,function(t){return e===t.elem}).length}),st.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){st.offset.setOffset(this,e,t)});var n,r,i={top:0,left:0},o=this[0],a=o&&o.ownerDocument;if(a)return n=a.documentElement,st.contains(n,o)?(o.getBoundingClientRect!==t&&(i=o.getBoundingClientRect()),r=z(a),{top:i.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:i.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):i},st.offset={setOffset:function(e,t,n){var r=st.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=st(e),s=a.offset(),u=st.css(e,"top"),l=st.css(e,"left"),c=("absolute"===r||"fixed"===r)&&st.inArray("auto",[u,l])>-1,f={},p={};c?(p=a.position(),i=p.top,o=p.left):(i=parseFloat(u)||0,o=parseFloat(l)||0),st.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+i),null!=t.left&&(f.left=t.left-s.left+o),"using"in t?t.using.call(e,f):a.css(f)}},st.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===st.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),st.nodeName(e[0],"html")||(n=e.offset()),n.top+=st.css(e[0],"borderTopWidth",!0),n.left+=st.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-st.css(r,"marginTop",!0),left:t.left-n.left-st.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||V.documentElement;e&&!st.nodeName(e,"html")&&"static"===st.css(e,"position");)e=e.offsetParent;return e||V.documentElement})}}),st.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);st.fn[e]=function(i){return st.access(this,function(e,i,o){var a=z(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?st(a).scrollLeft():o,r?o:st(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}}),st.each({Height:"height",Width:"width"},function(e,n){st.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){st.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return st.access(this,function(n,r,i){var o;return st.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?st.css(n,r,s):st.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=st,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return st})})(window);
+//@ sourceMappingURL=jquery.min.map
\ No newline at end of file
diff --git a/test/express4/public/javascripts/test_cases.js b/test/express4/public/javascripts/test_cases.js
new file mode 100644
index 0000000..6abc176
--- /dev/null
+++ b/test/express4/public/javascripts/test_cases.js
@@ -0,0 +1,4404 @@
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/bad_unicode/input.toffee"] = {
+ bundlePath: "/bad_unicode/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var u2028, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/bad_unicode/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\\u2028:
\n");
+ _ln(2);
+ _to(" \n");
+ _ln(3);
+ _to("\\u2029:
\n");
+ _ln(4);
+ _to(" \n");
+ _ln(5);
+ _ln(3);
+ _ts(2);
+ _ts(2);
+ u2028 = "u2029 = ";
+ _ts(1);
+ _ln(6);
+ _to("\n");
+ _ln(7);
+ _to("
HI 2028: ");
+ _to("" + (escape("")));
+ _to("
\n");
+ _ln(8);
+ _to("
HI 2028: ");
+ _to("" + (escape("")));
+ _to("
\n");
+ _ln(9);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/bad_unicode/output.toffee"] = {
+ bundlePath: "/bad_unicode/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/bad_unicode/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\\u2028:
\n");
+ _ln(2);
+ _to(" \n");
+ _ln(3);
+ _to("\\u2029:
\n");
+ _ln(4);
+ _to(" \n");
+ _ln(5);
+ _to("\n");
+ _ln(6);
+ _to("
HI 2028:
\n");
+ _ln(7);
+ _to("
HI 2028:
\n");
+ _ln(8);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/big_file/input.toffee"] = {
+ bundlePath: "/big_file/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var count, i, __repress, _i, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/big_file/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ count = 0;
+ for (i = _i = 0; _i < 2; i = ++_i) {
+ _ts(1);
+ _ts(1);
+ _ln(3);
+ _to("" + (escape(count++)));
+ _ln(4);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(5);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(6);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(7);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(8);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(9);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(10);
+ _to("...");
+ _ts(2);
+ _ts(2);
+ count += 1;
+ print(" " + count + "...");
+ _ts(1);
+ _ln(13);
+ _to(" ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(14);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(15);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(16);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(17);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(18);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(19);
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _to("... ");
+ _to("" + (escape(count++)));
+ _ln(20);
+ _to("...");
+ _ts(2);
+ _ts(2);
+ count += 1;
+ print(" " + count + "...");
+ }
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/big_file/output.toffee"] = {
+ bundlePath: "/big_file/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/big_file/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("0... 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... 70... 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... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/comments/input.toffee"] = {
+ bundlePath: "/comments/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/comments/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\n");
+ _ln(2);
+ _to("Pass 1\n");
+ _ln(3);
+ _ts(2);
+ _ts(1);
+ _ln(8);
+ _to("\n");
+ _ln(9);
+ _to("Pass 2\n");
+ _ln(10);
+ _ts(2);
+ _ts(2);
+
+ /*
+ print "FAIL FAIL FAIL"
+ #{ foo }
+ */
+ _ts(1);
+ _ln(19);
+ _to("\n");
+ _ln(20);
+ _to("Pass 3");
+ _ts(2);
+ _ts(1);
+ _to("\n");
+ _ln(21);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/comments/output.toffee"] = {
+ bundlePath: "/comments/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/comments/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\n");
+ _ln(2);
+ _to("Pass 1\n");
+ _ln(3);
+ _to("\n");
+ _ln(4);
+ _to("Pass 2\n");
+ _ln(5);
+ _to("\n");
+ _ln(6);
+ _to("Pass 3\n");
+ _ln(7);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/custom_escape/input.toffee"] = {
+ bundlePath: "/custom_escape/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var w, x, y, z, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/custom_escape/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ x = '"Hello world"';
+ y = '
';
+ z = 'click&clack';
+ w = [
+ 1, 2, {
+ "place": "The Dreadfort"
+ }
+ ];
+ _ts(1);
+ _ln(6);
+ _to("\n");
+ _ln(7);
+ _to(" custom x = ");
+ _to("" + (x != null ? escape(x) : ''));
+ _to("\n");
+ _ln(8);
+ _to(" custom y = ");
+ _to("" + (y != null ? escape(y) : ''));
+ _to("\n");
+ _ln(9);
+ _to(" custom z = ");
+ _to("" + (z != null ? escape(z) : ''));
+ _to("\n");
+ _ln(10);
+ _to(" custom w = ");
+ _to("" + (w != null ? escape(w) : ''));
+ _to("\n");
+ _ln(11);
+ _to("
");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/custom_escape/output.toffee"] = {
+ bundlePath: "/custom_escape/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/custom_escape/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\n");
+ _ln(2);
+ _to(" custom x = Helloworldscriptvarx100script\n");
+ _ln(3);
+ _to(" custom y = td\n");
+ _ln(4);
+ _to(" custom z = clickclack\n");
+ _ln(5);
+ _to(" custom w = 12objectObject\n");
+ _ln(6);
+ _to("
");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/eco_compare/input.toffee"] = {
+ bundlePath: "/eco_compare/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var f, friends, project, __repress, _i, _len, _ln, _ref, _ref1, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/eco_compare/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ this.projects = [
+ {
+ url: "http://localhost:3000",
+ name: "okcupid",
+ description: "A site for singles"
+ }, {
+ url: "http://localhost:3001",
+ name: "tallygram",
+ description: "A site for anyone"
+ }
+ ];
+ if (this.projects.length) {
+ _ref1 = this.projects;
+ for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+ project = _ref1[_i];
+ _ts(1);
+ _ts(1);
+ _ln(8);
+ _to("\n");
+ _ln(9);
+ _to(" ");
+ _to("" + (escape(project.name)));
+ _to(" \n");
+ _ln(10);
+ _to(" ");
+ _to("" + (escape(project.description)));
+ _to("
\n");
+ _ln(11);
+ _to(" ");
+ _ts(2);
+ }
+ } else {
+ _ts(1);
+ _ts(1);
+ _ln(12);
+ _to(" No projects ");
+ _ts(2);
+ }
+ friends = [
+ {
+ gender: "f",
+ name: "Jennie"
+ }, {
+ gender: "f",
+ name: "Rachel"
+ }, {
+ gender: "m",
+ name: "Petar"
+ }, {
+ gender: "f",
+ name: "Marissa"
+ }
+ ];
+ _ts(1);
+ _ln(20);
+ _to("\n");
+ _ln(21);
+ _to("\n");
+ _ln(22);
+ _to("You have ");
+ _to("" + (escape(((function() {
+ var _j, _len1, _results;
+ _results = [];
+ for (_j = 0, _len1 = friends.length; _j < _len1; _j++) {
+ f = friends[_j];
+ if (f.gender === "f") {
+ _results.push(f);
+ }
+ }
+ return _results;
+ })()).length)));
+ _to(" female friends.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/eco_compare/output.toffee"] = {
+ bundlePath: "/eco_compare/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/eco_compare/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\n");
+ _ln(2);
+ _to(" okcupid \n");
+ _ln(3);
+ _to(" A site for singles
\n");
+ _ln(4);
+ _to(" \n");
+ _ln(5);
+ _to(" tallygram \n");
+ _ln(6);
+ _to(" A site for anyone
\n");
+ _ln(7);
+ _to(" \n");
+ _ln(8);
+ _to("\n");
+ _ln(9);
+ _to("You have 3 female friends.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/escape/input.toffee"] = {
+ bundlePath: "/escape/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var dir, v, w, x, y, z, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/escape/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ x = '"Hello world"';
+ y = ' ';
+ z = 'click&clack';
+ w = [
+ 1, 2, {
+ "place": "The Dreadfort",
+ "evil \"code\" ": "italic "
+ }
+ ];
+ v = ["\u2028", "\u2029"];
+ dir = ["hi\u{202e}there"];
+ _ts(1);
+ _ln(8);
+ _to("\n");
+ _ln(9);
+ _to(" default x = ");
+ _to("" + (x != null ? escape(x) : ''));
+ _to("\n");
+ _ln(10);
+ _to(" default y = ");
+ _to("" + (y != null ? escape(y) : ''));
+ _to("\n");
+ _ln(11);
+ _to(" default z = ");
+ _to("" + (z != null ? escape(z) : ''));
+ _to("\n");
+ _ln(12);
+ _to(" default w = ");
+ _to("" + (w != null ? escape(w) : ''));
+ _to("\n");
+ _ln(13);
+ _to(" default r = ");
+ _to("" + (typeof r !== "undefined" && r !== null ? escape(r) : ''));
+ _to("eol\n");
+ _ln(14);
+ _to(" default w.foo = ");
+ _to("" + (escape(w.foo)));
+ _to("eol\n");
+ _ln(15);
+ _to(" default v = ");
+ _to("" + (v != null ? escape(v) : ''));
+ _to("\n");
+ _ln(16);
+ _to(" default dir = ");
+ _to("" + (dir != null ? escape(dir) : ''));
+ _to("\n");
+ _ln(17);
+ _to(" default dir0 = ");
+ _to("" + (escape(dir[0])));
+ _to("\n");
+ _ln(18);
+ _to("
\n");
+ _ln(19);
+ _to("\n");
+ _ln(20);
+ _to(" raw x = ");
+ _to("" + (raw(x)));
+ _to("\n");
+ _ln(21);
+ _to(" raw y = ");
+ _to("" + (raw(y)));
+ _to("\n");
+ _ln(22);
+ _to(" raw z = ");
+ _to("" + (raw(z)));
+ _to("\n");
+ _ln(23);
+ _to(" raw w = ");
+ _to("" + (raw(w)));
+ _to("\n");
+ _ln(24);
+ _to("
\n");
+ _ln(25);
+ _to("\n");
+ _ln(26);
+ _to(" w_as_json_stringify=");
+ _to("" + (escape(JSON.stringify(w))));
+ _to("\n");
+ _ln(27);
+ _to(" w_as_json_stringify_raw=");
+ _to("" + (raw(JSON.stringify(w))));
+ _to("\n");
+ _ln(28);
+ _to(" \n");
+ _ln(29);
+ _to("\n");
+ _ln(36);
+ _to("\n");
+ _ln(37);
+ _ts(2);
+ _ts(2);
+ print(" raw printed x = " + x + "\n");
+ print(" raw printed y = " + y + "\n");
+ print(" raw printed z = " + z + "\n");
+ print(" raw printed w = " + w);
+ _ts(1);
+ _ln(42);
+ _to("\n");
+ _ln(43);
+ _to("
\n");
+ _ln(44);
+ _to("\n");
+ _ln(45);
+ _ts(2);
+ _ts(2);
+ print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n");
+ print(" json printed y = " + (raw(raw(raw(raw(json(y)))))) + "\n");
+ print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n");
+ print(" json printed w = " + (raw(raw(raw(raw(json(w)))))) + "\n");
+ print(" json printed v = " + (raw(raw(raw(raw(json(v)))))));
+ _ts(1);
+ _ln(51);
+ _to("\n");
+ _ln(52);
+ _to("
\n");
+ _ln(53);
+ _to("\n");
+ _ln(54);
+ _ts(2);
+ _ts(2);
+ print(" html printed longhand x = " + (__toffee.html(x)) + "\n");
+ print(" html printed longhand y = " + (__toffee.html(y)) + "\n");
+ print(" html printed longhand z = " + (__toffee.html(z)) + "\n");
+ print(" html printed longhand w = " + (__toffee.html(w)));
+ _ts(1);
+ _ln(59);
+ _to("\n");
+ _ln(60);
+ _to("
\n");
+ _ln(61);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/escape/output.toffee"] = {
+ bundlePath: "/escape/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/escape/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\n");
+ _ln(2);
+ _to(" default x = "Hello world"\n");
+ _ln(3);
+ _to(" default y = <hr />\n");
+ _ln(4);
+ _to(" default z = click&clack\n");
+ _ln(5);
+ _to(" default w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003E\\\"code\\\"\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n");
+ _ln(6);
+ _to(" default r = eol\n");
+ _ln(7);
+ _to(" default w.foo = eol\n");
+ _ln(8);
+ _to(" default v = [\"\\u2028\",\"\\u2029\"]\n");
+ _ln(9);
+ _to(" default dir = [\"hi\\u202ethere\"]\n");
+ _ln(10);
+ _to(" default dir0 = hithere\n");
+ _ln(11);
+ _to("
\n");
+ _ln(12);
+ _to("\n");
+ _ln(13);
+ _to(" raw x = \"Hello world\"\n");
+ _ln(14);
+ _to(" raw y =
\n");
+ _ln(15);
+ _to(" raw z = click&clack\n");
+ _ln(16);
+ _to(" raw w = 1,2,[object Object]\n");
+ _ln(17);
+ _to("\n");
+ _ln(18);
+ _to("\n");
+ _ln(19);
+ _to(" w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>\\"code\\"</b>":"<i>italic</i>"}]\n");
+ _ln(20);
+ _to(" w_as_json_stringify_raw=[1,2,{\"place\":\"The Dreadfort\",\"evil \\\"code\\\" \":\"italic \"}]\n");
+ _ln(21);
+ _to(" \n");
+ _ln(22);
+ _to("\n");
+ _ln(29);
+ _to("\n");
+ _ln(30);
+ _to(" raw printed x = \"Hello world\"\n");
+ _ln(31);
+ _to(" raw printed y =
\n");
+ _ln(32);
+ _to(" raw printed z = click&clack\n");
+ _ln(33);
+ _to(" raw printed w = 1,2,[object Object]\n");
+ _ln(34);
+ _to("\n");
+ _ln(35);
+ _to("\n");
+ _ln(36);
+ _to(" json printed x = \"\\\"Hello world\\\"\"\n");
+ _ln(37);
+ _to(" json printed y = \"\\u003Chr /\\u003E\"\n");
+ _ln(38);
+ _to(" json printed z = \"click\\u0026clack\"\n");
+ _ln(39);
+ _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003E\\\"code\\\"\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n");
+ _ln(40);
+ _to(" json printed v = [\"\\u2028\",\"\\u2029\"]\n");
+ _ln(41);
+ _to("
\n");
+ _ln(42);
+ _to("\n");
+ _ln(43);
+ _to(" html printed longhand x = "Hello world"\n");
+ _ln(44);
+ _to(" html printed longhand y = <hr />\n");
+ _ln(45);
+ _to(" html printed longhand z = click&clack\n");
+ _ln(46);
+ _to(" html printed longhand w = 1,2,[object Object]\n");
+ _ln(47);
+ _to("
\n");
+ _ln(48);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/hello_world/input.toffee"] = {
+ bundlePath: "/hello_world/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/hello_world/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : ''));
+ _to(", world.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/hello_world/output.toffee"] = {
+ bundlePath: "/hello_world/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/hello_world/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("Hello, world.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/hello_world/temp.toffee"] = {
+ bundlePath: "/hello_world/temp.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/hello_world/temp.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("a\n");
+ _ln(2);
+ _to("b\n");
+ _ln(3);
+ _to("c\n");
+ _ln(4);
+ _to("" + (escape(passed_fn(100))));
+ _to("\n");
+ _ln(5);
+ _to("d\n");
+ _ln(6);
+ _to("e\n");
+ _ln(7);
+ _to("f");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/include_order/child.toffee"] = {
+ bundlePath: "/include_order/child.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/include_order/child.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("a\n");
+ _ln(2);
+ _ts(2);
+ _ts(2);
+ say_hi();
+ _ts(1);
+ _ln(4);
+ _to("\n");
+ _ln(5);
+ _to("b");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/include_order/input.toffee"] = {
+ bundlePath: "/include_order/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var say_hi, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/include_order/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ say_hi = function() {
+ _ts(1);
+ _ts(1);
+ _ln(3);
+ _to("hi");
+ return _ts(2);
+ };
+ _ts(1);
+ _ln(4);
+ _to("1\n");
+ _ln(5);
+ _to("2\n");
+ _ln(6);
+ _to("" + (partial("child.toffee", {
+ say_hi: say_hi
+ })));
+ _to("\n");
+ _ln(7);
+ _to("3\n");
+ _ln(8);
+ _to("4");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/include_order/output.toffee"] = {
+ bundlePath: "/include_order/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/include_order/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("1\n");
+ _ln(2);
+ _to("2\n");
+ _ln(3);
+ _to("hia\n");
+ _ln(4);
+ _to("\n");
+ _ln(5);
+ _to("b\n");
+ _ln(6);
+ _to("3\n");
+ _ln(7);
+ _to("4");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/include_recursion/input.toffee"] = {
+ bundlePath: "/include_recursion/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/include_recursion/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ if (countdown === 0) {
+ _ts(1);
+ _ts(1);
+ _ln(2);
+ _to("blastoff!");
+ _ts(2);
+ } else {
+ print("" + countdown + "..." + (partial('input.toffee', {
+ countdown: countdown - 1
+ })));
+ }
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/include_recursion/output.toffee"] = {
+ bundlePath: "/include_recursion/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/include_recursion/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("10...9...8...7...6...5...4...3...2...1...blastoff!");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/include_techniques/input.toffee"] = {
+ bundlePath: "/include_techniques/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/include_techniques/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("" + (partial("message.toffee", {
+ from: "Chris "
+ })));
+ _to("\n");
+ _ln(2);
+ _to("" + (partial("message.toffee", {
+ from: "Max & Sam"
+ })));
+ _to("\n");
+ _ln(3);
+ _ts(2);
+ _ts(2);
+ print(partial("message.toffee", {
+ from: "Christian"
+ }));
+ _ts(1);
+ _ts(1);
+ _ln(5);
+ _to("" + (partial("message.toffee", {
+ from: "Jennie"
+ })));
+ _ts(2);
+ print(partial("message.toffee", {
+ sender: "The enemy"
+ }));
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/include_techniques/message.toffee"] = {
+ bundlePath: "/include_techniques/message.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var from, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/include_techniques/message.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ from = from || "Unknown";
+ _ts(1);
+ _ln(3);
+ _to("From: ");
+ _to("" + (from != null ? escape(from) : ''));
+ _to(" \n");
+ _ln(4);
+ _to("Msg: Hello, world\n");
+ _ln(5);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/include_techniques/output.toffee"] = {
+ bundlePath: "/include_techniques/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/include_techniques/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("From: Chris <ccoyne77@gmail> \n");
+ _ln(2);
+ _to("Msg: Hello, world\n");
+ _ln(3);
+ _to("\n");
+ _ln(4);
+ _to("From: Max & Sam \n");
+ _ln(5);
+ _to("Msg: Hello, world\n");
+ _ln(6);
+ _to("\n");
+ _ln(7);
+ _to("From: Christian \n");
+ _ln(8);
+ _to("Msg: Hello, world\n");
+ _ln(9);
+ _to("From: Jennie \n");
+ _ln(10);
+ _to("Msg: Hello, world\n");
+ _ln(11);
+ _to("From: Unknown \n");
+ _ln(12);
+ _to("Msg: Hello, world\n");
+ _ln(13);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/indent_attack/input.toffee"] = {
+ bundlePath: "/indent_attack/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var i, square, x, __repress, _i, _j, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/indent_attack/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to(" \n");
+ _ln(2);
+ _to(" ");
+ _ts(2);
+ _ts(2);
+ if (1 === 1) {
+ if (2 === 2) {
+ if (3 === 3) {
+ _ts(1);
+ _ts(1);
+ _ln(5);
+ _to("Pass1");
+ _ts(2);
+ }
+ }
+ }
+ if (1 === 1) {
+ if (2 === 3) {
+ if (3 === 3) {
+ _ts(1);
+ _ts(1);
+ _ln(9);
+ _to("Fail");
+ _ts(2);
+ } else {
+ _ts(1);
+ _ts(1);
+ _ln(11);
+ _to("Fail");
+ _ts(2);
+ }
+ } else {
+ if (2 === 2) {
+ if (3 === 3) {
+ _ts(1);
+ _ts(1);
+ _ln(14);
+ _to("Pass2");
+ _ts(2);
+ }
+ }
+ }
+ }
+ _ts(1);
+ _ln(15);
+ _to("\n");
+ _ln(16);
+ _to(" \n");
+ _ln(17);
+ _to("\n");
+ _ln(18);
+ _ts(2);
+ _ts(2);
+ if (1 === 1) {
+ if (2 === 2) {
+ if (3 === 3) {
+ _ts(1);
+ _ts(1);
+ _ln(21);
+ _to("Pass3");
+ _ts(2);
+ }
+ }
+ }
+ if (1 === 1) {
+ if (2 === 3) {
+ if (3 === 3) {
+ _ts(1);
+ _ts(1);
+ _ln(25);
+ _to("Fail");
+ _ts(2);
+ } else {
+ _ts(1);
+ _ts(1);
+ _ln(27);
+ _to("Fail");
+ _ts(2);
+ }
+ } else {
+ if (2 === 2) {
+ if (3 === 3) {
+ _ts(1);
+ _ts(1);
+ _ln(30);
+ _to("Pass4");
+ _ts(2);
+ }
+ }
+ }
+ }
+ _ts(1);
+ _ln(31);
+ _to("\n");
+ _ln(32);
+ _to(" \n");
+ _ln(33);
+ _to("\n");
+ _ln(34);
+ _ts(2);
+ _ts(2);
+ if (10 === 10) {
+ if (20 === 20) {
+ if (30 === 30) {
+ _ts(1);
+ _ts(1);
+ _ln(37);
+ _to("Pass5");
+ _ts(2);
+ }
+ }
+ }
+ if (10 === 10) {
+ if (20 === 30) {
+ if (30 === 30) {
+ _ts(1);
+ _ts(1);
+ _ln(41);
+ _to("Fail");
+ _ts(2);
+ } else {
+ _ts(1);
+ _ts(1);
+ _ln(43);
+ _to("Fail");
+ _ts(2);
+ }
+ } else {
+ if (20 === 20) {
+ if (30 === 30) {
+ _ts(1);
+ _ts(1);
+ _ln(46);
+ _to("Pass6");
+ _ts(2);
+ }
+ }
+ }
+ }
+ _ts(1);
+ _ln(47);
+ _to("\n");
+ _ln(48);
+ _to("\n");
+ _ln(49);
+ _ts(2);
+ _ts(2);
+ if (99 === 99) {
+ print('Pass7');
+ } else {
+ print('Fail');
+ _ts(1);
+ _ts(1);
+ _ln(54);
+ _to("Fail8");
+ _ts(2);
+ }
+ _ts(1);
+ _ts(1);
+ _ln(55);
+ _to("Pass8");
+ _ts(2);
+ _ts(1);
+ _ln(56);
+ _to("\n");
+ _ln(57);
+ _to("\n");
+ _ln(58);
+ _ts(2);
+ _ts(2);
+ _ts(1);
+ _ts(1);
+ _ln(60);
+ _to("...passed with flying colors.");
+ _ts(2);
+ _ts(1);
+ _ln(82);
+ _to("\n");
+ _ln(83);
+ _to("\n");
+ _ln(84);
+ _to(" ");
+ _ts(2);
+ _ts(2);
+ x = 20;
+ if (x > 1) {
+ for (i = _i = 12; 12 <= x ? _i < x : _i > x; i = 12 <= x ? ++_i : --_i) {
+ square = 16;
+ _ts(1);
+ _ts(1);
+ _ln(89);
+ _to("Pass");
+ _to("" + (i != null ? escape(i) : ''));
+ _ts(2);
+ _ts(2);
+ if (i === square) {
+ _ts(1);
+ _ts(1);
+ _ln(90);
+ _to("(a perfect square)");
+ _ts(2);
+ }
+ }
+ }
+ _ts(1);
+ _ln(92);
+ _to("\n");
+ _ln(93);
+ _to(" ");
+ _ts(2);
+ _ts(2);
+ x = 20;
+ if (x > 1) {
+ for (i = _j = 12; 12 <= x ? _j < x : _j > x; i = 12 <= x ? ++_j : --_j) {
+ square = 16;
+ }
+ _ts(1);
+ _ts(1);
+ _ln(98);
+ _to("Pass");
+ _to("" + (i != null ? escape(i) : ''));
+ _ts(2);
+ _ts(2);
+ if (i === square) {
+ _ts(1);
+ _ts(1);
+ _ln(99);
+ _to("(a perfect square)");
+ _ts(2);
+ }
+ }
+ _ts(1);
+ _ln(101);
+ _to("\n");
+ _ln(102);
+ _to("
");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/indent_attack/output.toffee"] = {
+ bundlePath: "/indent_attack/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/indent_attack/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to(" \n");
+ _ln(2);
+ _to(" Pass1Pass2\n");
+ _ln(3);
+ _to(" \n");
+ _ln(4);
+ _to("\n");
+ _ln(5);
+ _to("Pass3Pass4\n");
+ _ln(6);
+ _to(" \n");
+ _ln(7);
+ _to("\n");
+ _ln(8);
+ _to("Pass5Pass6\n");
+ _ln(9);
+ _to("\n");
+ _ln(10);
+ _to("Pass7Pass8\n");
+ _ln(11);
+ _to("\n");
+ _ln(12);
+ _to("...passed with flying colors.\n");
+ _ln(13);
+ _to("\n");
+ _ln(14);
+ _to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n");
+ _ln(15);
+ _to(" Pass20\n");
+ _ln(16);
+ _to("
");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/json_formatting/input.toffee"] = {
+ bundlePath: "/json_formatting/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var x, y, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/json_formatting/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ x = {
+ foo: [1, 2, 3],
+ bar: {
+ car: [
+ 4, 5, "<\/html", {
+ zar: [6, 7, null]
+ }
+ ]
+ }
+ };
+ y = [1, 2, "<\/script>\""];
+ _ts(1);
+ _ln(7);
+ _to("\n");
+ _ln(8);
+ _to("" + (x != null ? escape(x) : ''));
+ _to("\n");
+ _ln(9);
+ _to("" + (json(x, {
+ indent: ' '
+ })));
+ _to("\n");
+ _ln(10);
+ _to("" + (json(x, {
+ indent: 2
+ })));
+ _to("\n");
+ _ln(11);
+ _to("" + (json(x, {
+ indent: '\t'
+ })));
+ _to("\n");
+ _ln(12);
+ _to("" + (__toffee.json(y, {
+ indent: 3
+ })));
+ _to("\n");
+ _ln(13);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/json_formatting/output.toffee"] = {
+ bundlePath: "/json_formatting/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/json_formatting/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\n");
+ _ln(2);
+ _to("{\"foo\":[1,2,3],\"bar\":{\"car\":[4,5,\"\\u003C/html\",{\"zar\":[6,7,null]}]}}\n");
+ _ln(3);
+ _to("{\n");
+ _ln(4);
+ _to(" \"foo\": [\n");
+ _ln(5);
+ _to(" 1,\n");
+ _ln(6);
+ _to(" 2,\n");
+ _ln(7);
+ _to(" 3\n");
+ _ln(8);
+ _to(" ],\n");
+ _ln(9);
+ _to(" \"bar\": {\n");
+ _ln(10);
+ _to(" \"car\": [\n");
+ _ln(11);
+ _to(" 4,\n");
+ _ln(12);
+ _to(" 5,\n");
+ _ln(13);
+ _to(" \"\\u003C/html\",\n");
+ _ln(14);
+ _to(" {\n");
+ _ln(15);
+ _to(" \"zar\": [\n");
+ _ln(16);
+ _to(" 6,\n");
+ _ln(17);
+ _to(" 7,\n");
+ _ln(18);
+ _to(" null\n");
+ _ln(19);
+ _to(" ]\n");
+ _ln(20);
+ _to(" }\n");
+ _ln(21);
+ _to(" ]\n");
+ _ln(22);
+ _to(" }\n");
+ _ln(23);
+ _to("}\n");
+ _ln(24);
+ _to("{\n");
+ _ln(25);
+ _to(" \"foo\": [\n");
+ _ln(26);
+ _to(" 1,\n");
+ _ln(27);
+ _to(" 2,\n");
+ _ln(28);
+ _to(" 3\n");
+ _ln(29);
+ _to(" ],\n");
+ _ln(30);
+ _to(" \"bar\": {\n");
+ _ln(31);
+ _to(" \"car\": [\n");
+ _ln(32);
+ _to(" 4,\n");
+ _ln(33);
+ _to(" 5,\n");
+ _ln(34);
+ _to(" \"\\u003C/html\",\n");
+ _ln(35);
+ _to(" {\n");
+ _ln(36);
+ _to(" \"zar\": [\n");
+ _ln(37);
+ _to(" 6,\n");
+ _ln(38);
+ _to(" 7,\n");
+ _ln(39);
+ _to(" null\n");
+ _ln(40);
+ _to(" ]\n");
+ _ln(41);
+ _to(" }\n");
+ _ln(42);
+ _to(" ]\n");
+ _ln(43);
+ _to(" }\n");
+ _ln(44);
+ _to("}\n");
+ _ln(45);
+ _to("{\n");
+ _ln(46);
+ _to("\t\"foo\": [\n");
+ _ln(47);
+ _to("\t\t1,\n");
+ _ln(48);
+ _to("\t\t2,\n");
+ _ln(49);
+ _to("\t\t3\n");
+ _ln(50);
+ _to("\t],\n");
+ _ln(51);
+ _to("\t\"bar\": {\n");
+ _ln(52);
+ _to("\t\t\"car\": [\n");
+ _ln(53);
+ _to("\t\t\t4,\n");
+ _ln(54);
+ _to("\t\t\t5,\n");
+ _ln(55);
+ _to("\t\t\t\"\\u003C/html\",\n");
+ _ln(56);
+ _to("\t\t\t{\n");
+ _ln(57);
+ _to("\t\t\t\t\"zar\": [\n");
+ _ln(58);
+ _to("\t\t\t\t\t6,\n");
+ _ln(59);
+ _to("\t\t\t\t\t7,\n");
+ _ln(60);
+ _to("\t\t\t\t\tnull\n");
+ _ln(61);
+ _to("\t\t\t\t]\n");
+ _ln(62);
+ _to("\t\t\t}\n");
+ _ln(63);
+ _to("\t\t]\n");
+ _ln(64);
+ _to("\t}\n");
+ _ln(65);
+ _to("}\n");
+ _ln(66);
+ _to("[\n");
+ _ln(67);
+ _to(" 1,\n");
+ _ln(68);
+ _to(" 2,\n");
+ _ln(69);
+ _to(" \"\\u003C/script\\u003E\\\"\"\n");
+ _ln(70);
+ _to("]\n");
+ _ln(71);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/junk/input.toffee"] = {
+ bundlePath: "/junk/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var supplies, supply, __repress, _i, _len, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/junk/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ supplies = ["broom", "mop", "vacuum"];
+ _ts(1);
+ _ln(3);
+ _to("\n");
+ _ln(4);
+ _to(" ");
+ _ts(2);
+ _ts(2);
+ for (_i = 0, _len = supplies.length; _i < _len; _i++) {
+ supply = supplies[_i];
+ _ts(1);
+ _ts(1);
+ _to("");
+ _to("" + (supply != null ? escape(supply) : ''));
+ _to(" ");
+ _ts(2);
+ }
+ _ts(1);
+ _to("\n");
+ _ln(5);
+ _to(" \n");
+ _ln(6);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/junk/output.toffee"] = {
+ bundlePath: "/junk/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/junk/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\n");
+ _ln(2);
+ _to(" broom mop vacuum \n");
+ _ln(3);
+ _to(" \n");
+ _ln(4);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/lambda_fns/input.toffee"] = {
+ bundlePath: "/lambda_fns/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var echo_it, print_it, print_it_twice, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/lambda_fns/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ print_it = function(msg) {
+ _ts(1);
+ _ts(1);
+ _ln(2);
+ _to("" + (msg != null ? escape(msg) : ''));
+ return _ts(2);
+ };
+ print_it_twice = function(msg) {
+ var m;
+ _ts(1);
+ _ts(1);
+ _ln(5);
+ _to("" + (msg != null ? escape(msg) : ''));
+ _ts(2);
+ m = msg;
+ _ts(1);
+ _ts(1);
+ _ln(7);
+ _to("" + (m != null ? escape(m) : ''));
+ return _ts(2);
+ };
+ echo_it = function(msg) {
+ var v;
+ v = msg;
+ return v;
+ };
+ print_it("Pass");
+ print_it_twice("Pass");
+ print(echo_it("Pass"));
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/lambda_fns/output.toffee"] = {
+ bundlePath: "/lambda_fns/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/lambda_fns/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("PassPassPassPass");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/multiline_interpolation/foo.toffee"] = {
+ bundlePath: "/multiline_interpolation/foo.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/multiline_interpolation/foo.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("" + (typeof a !== "undefined" && a !== null ? escape(a) : ''));
+ _to(" ");
+ _to("" + (typeof b !== "undefined" && b !== null ? escape(b) : ''));
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/multiline_interpolation/input.toffee"] = {
+ bundlePath: "/multiline_interpolation/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/multiline_interpolation/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("" + (escape("Hello, " + "world")));
+ _ln(4);
+ _to("\n");
+ _ln(5);
+ _to(" \n");
+ _ln(6);
+ _to("" + (partial("foo.toffee", {
+ a: "Goodbye" + ',',
+ b: "world"
+ })));
+ _ln(10);
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/multiline_interpolation/output.toffee"] = {
+ bundlePath: "/multiline_interpolation/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/multiline_interpolation/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("Hello, world\n");
+ _ln(2);
+ _to(" \n");
+ _ln(3);
+ _to("Goodbye, world");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/const1.toffee"] = {
+ bundlePath: "/passback/const1.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/const1.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ passback.vx = "vx1";
+ passback.vy = "vy1";
+ passback.x = "oh shit";
+ passback.y = "oh noze";
+ _ts(1);
+ _ln(6);
+ _to("\n");
+ _ln(7);
+ _to("This should output (1).");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/const2.toffee"] = {
+ bundlePath: "/passback/const2.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var vx, vy, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/const2.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ passback.vz = "vz2";
+ vx = "Should not set.";
+ vy = "Should not set.";
+ _ts(1);
+ _ln(5);
+ _to("\n");
+ _ln(6);
+ _to("This should not output (2).");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/const3.toffee"] = {
+ bundlePath: "/passback/const3.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/const3.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ passback["vx"] = "vx3";
+ passback["vy"] = "vy3";
+ _ts(1);
+ _ln(4);
+ _to("\n");
+ _ln(5);
+ _to("This should not output (3).");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/const4.toffee"] = {
+ bundlePath: "/passback/const4.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/const4.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ passback.vx = "vx4";
+ passback.vy = "vy4";
+ partial("./const4_sub.toffee");
+ _ts(1);
+ _ln(5);
+ _to("\n");
+ _ln(6);
+ _to("This should not output (4).");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/const4_sub.toffee"] = {
+ bundlePath: "/passback/const4_sub.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/const4_sub.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ passback.vx = "vx4_sub";
+ passback.vy = "vy4_sub";
+ _ts(1);
+ _ln(4);
+ _to("\n");
+ _ln(5);
+ _to("This should not output (4_sub).");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/const5.toffee"] = {
+ bundlePath: "/passback/const5.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/const5.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ passback.vx = "vx5";
+ passback.vy = "vy5";
+ print(load("./const5_sub.toffee"));
+ passback.vx = vx;
+ passback.vy = vy;
+ _ts(1);
+ _ln(7);
+ _to("\n");
+ _ln(8);
+ _to("This should not output (5).");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/const5_sub.toffee"] = {
+ bundlePath: "/passback/const5_sub.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/const5_sub.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ passback.vx = "vx5_sub";
+ passback.vy = "vy5_sub";
+ _ts(1);
+ _ln(4);
+ _to("\n");
+ _ln(5);
+ _to("This should not output (5_sub).");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/input.toffee"] = {
+ bundlePath: "/passback/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("vx,vy,vz = ");
+ _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : ''));
+ _to(",");
+ _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : ''));
+ _to(",");
+ _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : ''));
+ _to("\n");
+ _ln(2);
+ _to("" + (partial("./const1.toffee")));
+ _to("\n");
+ _ln(3);
+ _to("vx,vy,vz = ");
+ _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : ''));
+ _to(",");
+ _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : ''));
+ _to(",");
+ _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : ''));
+ _to("\n");
+ _ln(4);
+ _to("" + (load("./const2.toffee")));
+ _to("\n");
+ _ln(5);
+ _to("vx,vy,vz = ");
+ _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : ''));
+ _to(",");
+ _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : ''));
+ _to(",");
+ _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : ''));
+ _to("\n");
+ _ln(6);
+ _to("" + (load("./const3.toffee")));
+ _to("\n");
+ _ln(7);
+ _to("vx,vy,vz = ");
+ _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : ''));
+ _to(",");
+ _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : ''));
+ _to(",");
+ _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : ''));
+ _to("\n");
+ _ln(8);
+ _to("" + (load("./const4.toffee")));
+ _to("\n");
+ _ln(9);
+ _to("vx,vy,vz = ");
+ _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : ''));
+ _to(",");
+ _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : ''));
+ _to(",");
+ _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : ''));
+ _to("\n");
+ _ln(10);
+ _to("" + (load("./const5.toffee")));
+ _to("\n");
+ _ln(11);
+ _to("vx,vy,vz = ");
+ _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : ''));
+ _to(",");
+ _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : ''));
+ _to(",");
+ _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : ''));
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/passback/output.toffee"] = {
+ bundlePath: "/passback/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/passback/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("vx,vy,vz = vx0,,\n");
+ _ln(2);
+ _to("\n");
+ _ln(3);
+ _to("This should output (1).\n");
+ _ln(4);
+ _to("vx,vy,vz = vx1,vy1,\n");
+ _ln(5);
+ _to("\n");
+ _ln(6);
+ _to("vx,vy,vz = vx1,vy1,vz2\n");
+ _ln(7);
+ _to("\n");
+ _ln(8);
+ _to("vx,vy,vz = vx3,vy3,vz2\n");
+ _ln(9);
+ _to("\n");
+ _ln(10);
+ _to("vx,vy,vz = vx4,vy4,vz2\n");
+ _ln(11);
+ _to("\n");
+ _ln(12);
+ _to("vx,vy,vz = vx5_sub,vy5_sub,vz2");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/plaintext/input.toffee"] = {
+ bundlePath: "/plaintext/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/plaintext/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("Hi there.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/plaintext/output.toffee"] = {
+ bundlePath: "/plaintext/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/plaintext/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("Hi there.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/post_process/buncha_junk.toffee"] = {
+ bundlePath: "/post_process/buncha_junk.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/post_process/buncha_junk.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("T3246h354is345-i3245s345-534a534-h534i543d534d534e534n543-m534e543s543s543ag5e534.543");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/post_process/input.toffee"] = {
+ bundlePath: "/post_process/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var clean, reverse, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/post_process/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : ''));
+ _to(", world. \n");
+ _ln(2);
+ _to("" + (partial('./signature.toffee')));
+ _to("\n");
+ _ln(3);
+ _ts(2);
+ _ts(2);
+ reverse = function(s) {
+ var c;
+ return ((function() {
+ var _i, _results;
+ _results = [];
+ for (_i = s.length - 1; _i >= 0; _i += -1) {
+ c = s[_i];
+ _results.push(c);
+ }
+ return _results;
+ })()).join("");
+ };
+ clean = function(s) {
+ var c;
+ return ((function() {
+ var _i, _len, _results;
+ _results = [];
+ for (_i = 0, _len = s.length; _i < _len; _i++) {
+ c = s[_i];
+ if (c.match(/[a-z\-]/gi)) {
+ _results.push(c);
+ }
+ }
+ return _results;
+ })()).join("");
+ };
+ _ts(1);
+ _ln(6);
+ _to("\n");
+ _ln(7);
+ _to("" + (partial('./buncha_junk.toffee', {
+ postProcess: function(s) {
+ return reverse(clean(s));
+ }
+ })));
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/post_process/output.toffee"] = {
+ bundlePath: "/post_process/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/post_process/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("This-is-a-hidden-message\n");
+ _ln(2);
+ _to("\n");
+ _ln(3);
+ _to(".dlrow leurc ,eybdooG\n");
+ _ln(4);
+ _to(" .dlrow ,olleH");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/post_process/signature.toffee"] = {
+ bundlePath: "/post_process/signature.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/post_process/signature.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("Goodbye, cruel world.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/render_no_args/input.toffee"] = {
+ bundlePath: "/render_no_args/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/render_no_args/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("No arguments passed.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/render_no_args/output.toffee"] = {
+ bundlePath: "/render_no_args/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/render_no_args/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("No arguments passed.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/snippets/foo/bar/body.toffee"] = {
+ bundlePath: "/snippets/foo/bar/body.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var msg, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/snippets/foo/bar/body.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ msg = msg || "Unknown message";
+ print(msg);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/snippets/foo/message.toffee"] = {
+ bundlePath: "/snippets/foo/message.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var from, msg, __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/snippets/foo/message.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(2);
+ from = from || "Unknown sender";
+ msg = msg || "Unknown message.";
+ print("From: " + from + "\n" + (snippet('./bar/body.toffee', {
+ msg: msg
+ })));
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/snippets/input.toffee"] = {
+ bundlePath: "/snippets/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/snippets/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("" + (partial("./foo/message.toffee")));
+ _to("\n");
+ _ln(2);
+ _to("" + (escape(snippet("./foo/message.toffee"))));
+ _to("\n");
+ _ln(3);
+ _to("" + (partial("./foo/message.toffee", {
+ from: "Sam"
+ })));
+ _to("\n");
+ _ln(4);
+ _to("" + (escape(snippet("./foo/message.toffee", {
+ from: "Max"
+ }))));
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/snippets/output.toffee"] = {
+ bundlePath: "/snippets/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/snippets/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("From: Preloaded sender\n");
+ _ln(2);
+ _to("Preloaded message.\n");
+ _ln(3);
+ _to("From: Unknown sender\n");
+ _ln(4);
+ _to("Unknown message.\n");
+ _ln(5);
+ _to("From: Sam\n");
+ _ln(6);
+ _to("Preloaded message.\n");
+ _ln(7);
+ _to("From: Max\n");
+ _ln(8);
+ _to("Unknown message.");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/special_cases/input.toffee"] = {
+ bundlePath: "/special_cases/input.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/special_cases/input.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(5);
+ _to("\n");
+ _ln(6);
+ _ts(2);
+ _ts(2);
+ _ts(1);
+ _ts(1);
+ _ln(7);
+ _to('"' + "PASSED" + '"');
+ _ts(2);
+ _ts(1);
+ _ln(8);
+ _to("\n");
+ _ln(9);
+ _ts(2);
+ _ts(1);
+ _ln(13);
+ _to("\n");
+ _ln(14);
+ _to("\n");
+ _ln(15);
+ _to(" ");
+ _to("" + (print("" + 'click & clack' + " ")));
+ _to("\n");
+ _ln(16);
+ _to("
\n");
+ _ln(17);
+ _ts(2);
+ _ts(1);
+ _ln(21);
+ _to("\n");
+ _ln(22);
+ _to("A backslash is a \\\n");
+ _ln(23);
+ _to("");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
+
+;
+(function() {
+ var tmpl;
+
+ tmpl = toffee.templates["/special_cases/output.toffee"] = {
+ bundlePath: "/special_cases/output.toffee"
+ };
+
+ tmpl.render = tmpl.pub = function(__locals) {
+ var __repress, _ln, _ref, _to, _ts;
+ __locals = __locals || {};
+ __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0;
+ _to = function(x) {
+ return __locals.__toffee.out.push(x);
+ };
+ _ln = function(x) {
+ return __locals.__toffee.lineno = x;
+ };
+ _ts = function(x) {
+ return __locals.__toffee.state = x;
+ };
+ toffee.__augmentLocals(__locals, "/special_cases/output.toffee");
+ with (__locals) {;
+ __toffee.out = [];
+ _ts(1);
+ _ts(1);
+ _ln(1);
+ _to("\n");
+ _ln(2);
+ _to('"' + "PASSED\"\n");
+ _ln(3);
+ _to("\n");
+ _ln(4);
+ _to("\n");
+ _ln(5);
+ _to(" click & clack \n");
+ _ln(6);
+ _to("
\n");
+ _ln(7);
+ _to("\n");
+ _ln(8);
+ _to("A backslash is a \\\n");
+ _ln(9);
+ _to("");
+ _ts(2);
+ __toffee.res = __toffee.out.join("");
+ if (typeof postProcess !== "undefined" && postProcess !== null) {
+ __toffee.res = postProcess(__toffee.res);
+ }
+ if (!__repress) {
+ return __toffee.res;
+ } else {
+ return "";
+ }
+ };
+
+ true; } /* closing JS 'with' */ ;
+
+ if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) {
+ return tmpl.pub(__toffee_run_input);
+ }
+
+}).call(this);
diff --git a/test/express4/public/javascripts/toffee.js b/test/express4/public/javascripts/toffee.js
new file mode 100644
index 0000000..5d6b01c
--- /dev/null
+++ b/test/express4/public/javascripts/toffee.js
@@ -0,0 +1,205 @@
+var toffee;
+
+if (typeof toffee === "undefined" || toffee === null) {
+ toffee = {};
+}
+
+if (!toffee.templates) {
+ toffee.templates = {};
+}
+
+toffee.states = {
+ "TOFFEE": 1,
+ "COFFEE": 2
+};
+
+toffee.__json = function(locals, o, opts) {
+ opts || (opts = {});
+ opts.indent || (opts.indent = "");
+ if (o == null) {
+ return "null";
+ } else {
+ return "" + JSON.stringify(o, null, opts.indent).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f').replace(/\u2066/g, '\\u2066').replace(/\u2067/g, '\\u2067').replace(/\u2068/g, '\\u2068').replace(/\u2069/g, '\\u2069');
+ }
+};
+
+toffee.__raw = function(locals, o) {
+ return o;
+};
+
+toffee.__html = function(locals, o) {
+ return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\u200e/g, '').replace(/\u200f/g, '').replace(/\u202a/g, '').replace(/\u202b/g, '').replace(/\u202c/g, '').replace(/\u202d/g, '').replace(/\u202e/g, '').replace(/\u206a/g, '').replace(/\u206b/g, '').replace(/\u206c/g, '').replace(/\u206d/g, '').replace(/\u206e/g, '').replace(/\u206f/g, '').replace(/\u2066/g, '').replace(/\u2067/g, '').replace(/\u2068/g, '').replace(/\u2069/g, '');
+};
+
+toffee.__escape = function(locals, o) {
+ var ae;
+ if (locals.__toffee.autoEscape != null) {
+ ae = locals.__toffee.autoEscape;
+ } else if (true) {
+ ae = true;
+ } else {
+ ae = true;
+ }
+ if (ae) {
+ if (o === void 0) {
+ return '';
+ }
+ if ((o != null) && (typeof o) === "object") {
+ return locals.json(o);
+ }
+ return locals.html(o);
+ }
+ return o;
+};
+
+toffee.__augmentLocals = function(locals, bundle_path) {
+ var _l, _t;
+ _l = locals;
+ _t = _l.__toffee = {
+ out: []
+ };
+ if (_l.print == null) {
+ _l.print = function(o) {
+ return toffee.__print(_l, o);
+ };
+ }
+ if (_l.json == null) {
+ _l.json = function(o, opts) {
+ return toffee.__json(_l, o, opts);
+ };
+ }
+ if (_l.raw == null) {
+ _l.raw = function(o) {
+ return toffee.__raw(_l, o);
+ };
+ }
+ if (_l.html == null) {
+ _l.html = function(o) {
+ return toffee.__html(_l, o);
+ };
+ }
+ if (_l.escape == null) {
+ _l.escape = function(o) {
+ return toffee.__escape(_l, o);
+ };
+ }
+ if (_l.partial == null) {
+ _l.partial = function(path, vars) {
+ return toffee.__partial(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ if (_l.snippet == null) {
+ _l.snippet = function(path, vars) {
+ return toffee.__snippet(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ if (_l.load == null) {
+ _l.load = function(path, vars) {
+ return toffee.__load(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ _t.print = _l.print;
+ _t.json = _l.json;
+ _t.raw = _l.raw;
+ _t.html = _l.html;
+ _t.escape = _l.escape;
+ _t.partial = _l.partial;
+ _t.snippet = _l.snippet;
+ return _t.load = _l.load;
+};
+
+toffee.__print = function(locals, o) {
+ if (locals.__toffee.state === toffee.states.COFFEE) {
+ locals.__toffee.out.push(o);
+ return '';
+ } else {
+ return "" + o;
+ }
+};
+
+toffee.__normalize = function(path) {
+ var np, part, parts, _i, _len;
+ if ((path == null) || path === "/") {
+ return path;
+ } else {
+ parts = path.split("/");
+ np = [];
+ if (parts[0]) {
+ np.push('');
+ }
+ for (_i = 0, _len = parts.length; _i < _len; _i++) {
+ part = parts[_i];
+ if (part === "..") {
+ if (np.length > 1) {
+ np.pop();
+ } else {
+ np.push(part);
+ }
+ } else {
+ if (part !== ".") {
+ np.push(part);
+ }
+ }
+ }
+ path = np.join("/");
+ if (!path) {
+ path = "/";
+ }
+ return path;
+ }
+};
+
+toffee.__partial = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
+
+toffee.__snippet = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ vars = vars != null ? vars : {};
+ vars.__toffee = vars.__toffee || {};
+ vars.__toffee.noInheritance = true;
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
+
+toffee.__load = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ vars = vars != null ? vars : {};
+ vars.__toffee = vars.__toffee || {};
+ vars.__toffee.repress = true;
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
+
+toffee.__inlineInclude = function(path, locals, parent_locals) {
+ var k, options, res, reserved, v, _i, _len, _ref, _ref1;
+ options = locals || {};
+ options.passback = {};
+ options.__toffee = options.__toffee || {};
+ reserved = {};
+ _ref = ["passback", "load", "print", "partial", "snippet", "layout", "__toffee", "postProcess"];
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ k = _ref[_i];
+ reserved[k] = true;
+ }
+ if (!options.__toffee.noInheritance) {
+ for (k in parent_locals) {
+ v = parent_locals[k];
+ if ((locals != null ? locals[k] : void 0) == null) {
+ if (reserved[k] == null) {
+ options[k] = v;
+ }
+ }
+ }
+ }
+ if (!toffee.templates[path]) {
+ return "Inline toffee include: Could not find " + path;
+ } else {
+ res = toffee.templates[path].pub(options);
+ _ref1 = options.passback;
+ for (k in _ref1) {
+ v = _ref1[k];
+ parent_locals[k] = v;
+ }
+ return res;
+ }
+};
diff --git a/test/express3/public/stylesheets/style.css b/test/express4/public/stylesheets/style.css
similarity index 100%
rename from test/express3/public/stylesheets/style.css
rename to test/express4/public/stylesheets/style.css
diff --git a/test/express4/views/index.toffee b/test/express4/views/index.toffee
new file mode 100644
index 0000000..baf5c2a
--- /dev/null
+++ b/test/express4/views/index.toffee
@@ -0,0 +1,654 @@
+
+
+ Testing Toffee in the Browser
+
+
+
+
+
+
+
+
+ FILE EXPECTED OUTPUT SERVER RENDER BROWSER RENDER
+
+
+
+
+ bad_unicode
+ \u2028:
+
+\u2029:
+
+
+HI 2028:
+HI 2028:
+
+ #{partial '../../cases/bad_unicode/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ big_file
+ 0... 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... 70... 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... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...
+ #{partial '../../cases/big_file/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ comments
+
+Pass 1
+
+Pass 2
+
+Pass 3
+
+ #{partial '../../cases/comments/input.toffee', {
+ "greeting": "Hello"
+}}
+
+
+
+
+
+
+
+
+
+
+
+ custom_escape
+
+ custom x = Helloworldscriptvarx100script
+ custom y = td
+ custom z = clickclack
+ custom w = 12objectObject
+
+ #{partial '../../cases/custom_escape/input.toffee', {
+ escape: (s) -> "#{s}".replace /[^a-z0-9]/gi, ''
+}}
+
+
+
+
+
+
+
+
+
+
+
+ eco_compare
+
+ okcupid
+ A site for singles
+
+ tallygram
+ A site for anyone
+
+
+You have 3 female friends.
+ #{partial '../../cases/eco_compare/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ escape
+
+ default x = "Hello world"
+ default y = <hr />
+ default z = click&clack
+ default w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003E\"code\"\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}]
+ default r = eol
+ default w.foo = eol
+ default v = ["\u2028","\u2029"]
+ default dir = ["hi\u202ethere"]
+ default dir0 = hithere
+
+
+ raw x = "Hello world"
+ raw y =
+ raw z = click&clack
+ raw w = 1,2,[object Object]
+
+
+ w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>\"code\"</b>":"<i>italic</i>"}]
+ w_as_json_stringify_raw=[1,2,{"place":"The Dreadfort","evil \"code\" ":"italic "}]
+
+
+
+ raw printed x = "Hello world"
+ raw printed y =
+ raw printed z = click&clack
+ raw printed w = 1,2,[object Object]
+
+
+ json printed x = "\"Hello world\""
+ json printed y = "\u003Chr /\u003E"
+ json printed z = "click\u0026clack"
+ json printed w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003E\"code\"\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}]
+ json printed v = ["\u2028","\u2029"]
+
+
+ html printed longhand x = "Hello world"
+ html printed longhand y = <hr />
+ html printed longhand z = click&clack
+ html printed longhand w = 1,2,[object Object]
+
+
+ #{partial '../../cases/escape/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ hello_world
+ Hello, world.
+ #{partial '../../cases/hello_world/input.toffee', {
+ "greeting": "Hello"
+}}
+
+
+
+
+
+
+
+
+
+
+
+ include_order
+ 1
+2
+hia
+
+b
+3
+4
+ #{partial '../../cases/include_order/input.toffee', {
+ "greeting": "Hello"
+}}
+
+
+
+
+
+
+
+
+
+
+
+ include_recursion
+ 10...9...8...7...6...5...4...3...2...1...blastoff!
+ #{partial '../../cases/include_recursion/input.toffee', {
+ "countdown" : 10
+}}
+
+
+
+
+
+
+
+
+
+
+
+ include_techniques
+ From: Chris <ccoyne77@gmail>
+Msg: Hello, world
+
+From: Max & Sam
+Msg: Hello, world
+
+From: Christian
+Msg: Hello, world
+From: Jennie
+Msg: Hello, world
+From: Unknown
+Msg: Hello, world
+
+ #{partial '../../cases/include_techniques/input.toffee', {
+}}
+
+
+
+
+
+
+
+
+
+
+
+ indent_attack
+
+ Pass1Pass2
+
+
+Pass3Pass4
+
+
+Pass5Pass6
+
+Pass7Pass8
+
+...passed with flying colors.
+
+ Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19
+ Pass20
+
+ #{partial '../../cases/indent_attack/input.toffee', {
+}}
+
+
+
+
+
+
+
+
+
+
+
+ json_formatting
+
+{"foo":[1,2,3],"bar":{"car":[4,5,"\u003C/html",{"zar":[6,7,null]}]}}
+{
+ "foo": [
+ 1,
+ 2,
+ 3
+ ],
+ "bar": {
+ "car": [
+ 4,
+ 5,
+ "\u003C/html",
+ {
+ "zar": [
+ 6,
+ 7,
+ null
+ ]
+ }
+ ]
+ }
+}
+{
+ "foo": [
+ 1,
+ 2,
+ 3
+ ],
+ "bar": {
+ "car": [
+ 4,
+ 5,
+ "\u003C/html",
+ {
+ "zar": [
+ 6,
+ 7,
+ null
+ ]
+ }
+ ]
+ }
+}
+{
+ "foo": [
+ 1,
+ 2,
+ 3
+ ],
+ "bar": {
+ "car": [
+ 4,
+ 5,
+ "\u003C/html",
+ {
+ "zar": [
+ 6,
+ 7,
+ null
+ ]
+ }
+ ]
+ }
+}
+[
+ 1,
+ 2,
+ "\u003C/script\u003E\""
+]
+
+ #{partial '../../cases/json_formatting/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ junk
+
+
+ #{partial '../../cases/junk/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ lambda_fns
+ PassPassPassPass
+ #{partial '../../cases/lambda_fns/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ multiline_interpolation
+ Hello, world
+
+Goodbye, world
+ #{partial '../../cases/multiline_interpolation/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ passback
+ vx,vy,vz = vx0,,
+
+This should output (1).
+vx,vy,vz = vx1,vy1,
+
+vx,vy,vz = vx1,vy1,vz2
+
+vx,vy,vz = vx3,vy3,vz2
+
+vx,vy,vz = vx4,vy4,vz2
+
+vx,vy,vz = vx5_sub,vy5_sub,vz2
+ #{partial '../../cases/passback/input.toffee', {
+ "vx": "vx0",
+ "x" : "hi"
+}}
+
+
+
+
+
+
+
+
+
+
+
+ plaintext
+ Hi there.
+ #{partial '../../cases/plaintext/input.toffee', {}}
+
+
+
+
+
+
+
+
+
+
+
+ post_process
+ This-is-a-hidden-message
+
+.dlrow leurc ,eybdooG
+ .dlrow ,olleH
+ #{partial '../../cases/post_process/input.toffee', {
+ greeting: 'Hello'
+ postProcess: (s) -> (c for c in s by -1).join ''
+}}
+
+
+
+
+
+
+
+
+
+
+
+ render_no_args
+ No arguments passed.
+ #{partial '../../cases/render_no_args/input.toffee', }
+
+
+
+
+
+
+
+
+
+
+
+ snippets
+ From: Preloaded sender
+Preloaded message.
+From: Unknown sender
+Unknown message.
+From: Sam
+Preloaded message.
+From: Max
+Unknown message.
+ #{partial '../../cases/snippets/input.toffee', {
+ "from": "Preloaded sender",
+ "msg" : "Preloaded message."
+}}
+
+
+
+
+
+
+
+
+
+
+
+ special_cases
+
+"PASSED"
+
+
+ click & clack
+
+
+A backslash is a \
+
+ #{partial '../../cases/special_cases/input.toffee', {}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/express4/views/subdir1/hello_world.toffee b/test/express4/views/subdir1/hello_world.toffee
new file mode 100644
index 0000000..793a15b
--- /dev/null
+++ b/test/express4/views/subdir1/hello_world.toffee
@@ -0,0 +1,13 @@
+Hello, world!
+
+ {#
+ i = 1
+ for j in [0...rows] {:
+
+ {#
+ for k in [0...cols] {:#{i++} :}
+ #}
+
+ :}
+ #}
+
\ No newline at end of file
diff --git a/test/express3/views/subdir2/foo/goodbye.toffee b/test/express4/views/subdir2/foo/goodbye.toffee
similarity index 100%
rename from test/express3/views/subdir2/foo/goodbye.toffee
rename to test/express4/views/subdir2/foo/goodbye.toffee
diff --git a/test/express4/views/subdir2/goodbye_world.toffee b/test/express4/views/subdir2/goodbye_world.toffee
new file mode 100644
index 0000000..e46d272
--- /dev/null
+++ b/test/express4/views/subdir2/goodbye_world.toffee
@@ -0,0 +1,14 @@
+{#
+ #
+ # let's test some recursion.
+ #
+ # ----------------------------
+
+ if not countdown? then countdown = 32
+ if countdown is 0
+ print partial "foo/goodbye.toffee"
+ else {:
+ #{countdown} #{partial './goodbye_world.toffee', {countdown: countdown - 1}}
+ :}
+
+#}
\ No newline at end of file
diff --git a/test/express4_error_handling/app.coffee b/test/express4_error_handling/app.coffee
new file mode 100644
index 0000000..e9726d0
--- /dev/null
+++ b/test/express4_error_handling/app.coffee
@@ -0,0 +1,58 @@
+toffee = require '../../index.js'
+
+run = (port, express_engine, cb) ->
+ express = require 'express'
+ routes = require './routes'
+ http = require 'http'
+
+ app = express()
+
+
+ app.configure ->
+
+ app.set 'port', port
+ app.set 'views', __dirname + '/views'
+ app.engine 'toffee', express_engine
+ app.use express.favicon()
+ app.use express.logger 'dev'
+ app.use express.bodyParser()
+ app.use express.methodOverride()
+ app.use app.router
+ app.use express.static __dirname + '/public'
+
+ app.configure 'development', ->
+ app.use express.errorHandler()
+
+ app.get '/', routes.index
+ app.get '/:path([^ ]+)', routes.path
+
+ http.createServer(app).listen app.get('port'), ->
+ console.log "Express server listening on port #{app.get('port')}"
+ if cb? then cb()
+
+# -----------------------------------------------------------------------
+
+run_all = (cb) ->
+
+ # run a standard version on port 3034
+ # -----------------------------------
+ run 3034, toffee.__express, ->
+
+ # run a version that doesn't catch errors on port 3035
+ # ----------------------------------------------------
+ e2 = new toffee.engine {
+ prettyPrintErrors: false
+ }
+ run 3035, toffee.toExpress(e2), ->
+
+ cb()
+
+# -----------------------------------------------------------------------
+
+
+if not module.parent
+ run_all ->
+ console.log "All running"
+
+else
+ exports.run = (cb) -> run_all cb
\ No newline at end of file
diff --git a/test/express3/package.json b/test/express4_error_handling/package.json
similarity index 100%
rename from test/express3/package.json
rename to test/express4_error_handling/package.json
diff --git a/test/express4_error_handling/public/javascripts/jquery-1.9.0.min.js b/test/express4_error_handling/public/javascripts/jquery-1.9.0.min.js
new file mode 100644
index 0000000..50d1b22
--- /dev/null
+++ b/test/express4_error_handling/public/javascripts/jquery-1.9.0.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.9.0 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license */(function(e,t){"use strict";function n(e){var t=e.length,n=st.type(e);return st.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=Tt[e]={};return st.each(e.match(lt)||[],function(e,n){t[n]=!0}),t}function i(e,n,r,i){if(st.acceptData(e)){var o,a,s=st.expando,u="string"==typeof n,l=e.nodeType,c=l?st.cache:e,f=l?e[s]:e[s]&&s;if(f&&c[f]&&(i||c[f].data)||!u||r!==t)return f||(l?e[s]=f=K.pop()||st.guid++:f=s),c[f]||(c[f]={},l||(c[f].toJSON=st.noop)),("object"==typeof n||"function"==typeof n)&&(i?c[f]=st.extend(c[f],n):c[f].data=st.extend(c[f].data,n)),o=c[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[st.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[st.camelCase(n)])):a=o,a}}function o(e,t,n){if(st.acceptData(e)){var r,i,o,a=e.nodeType,u=a?st.cache:e,l=a?e[st.expando]:st.expando;if(u[l]){if(t&&(r=n?u[l]:u[l].data)){st.isArray(t)?t=t.concat(st.map(t,st.camelCase)):t in r?t=[t]:(t=st.camelCase(t),t=t in r?[t]:t.split(" "));for(i=0,o=t.length;o>i;i++)delete r[t[i]];if(!(n?s:st.isEmptyObject)(r))return}(n||(delete u[l].data,s(u[l])))&&(a?st.cleanData([e],!0):st.support.deleteExpando||u!=u.window?delete u[l]:u[l]=null)}}}function a(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(Nt,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:wt.test(r)?st.parseJSON(r):r}catch(o){}st.data(e,n,r)}else r=t}return r}function s(e){var t;for(t in e)if(("data"!==t||!st.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function u(){return!0}function l(){return!1}function c(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function f(e,t,n){if(t=t||0,st.isFunction(t))return st.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return st.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=st.grep(e,function(e){return 1===e.nodeType});if(Wt.test(t))return st.filter(t,r,!n);t=st.filter(t,r)}return st.grep(e,function(e){return st.inArray(e,t)>=0===n})}function p(e){var t=zt.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function d(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function h(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function g(e){var t=nn.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function m(e,t){for(var n,r=0;null!=(n=e[r]);r++)st._data(n,"globalEval",!t||st._data(t[r],"globalEval"))}function y(e,t){if(1===t.nodeType&&st.hasData(e)){var n,r,i,o=st._data(e),a=st._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)st.event.add(t,n,s[n][r])}a.data&&(a.data=st.extend({},a.data))}}function v(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!st.support.noCloneEvent&&t[st.expando]){r=st._data(t);for(i in r.events)st.removeEvent(t,i,r.handle);t.removeAttribute(st.expando)}"script"===n&&t.text!==e.text?(h(t).text=e.text,g(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),st.support.html5Clone&&e.innerHTML&&!st.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Zt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function b(e,n){var r,i,o=0,a=e.getElementsByTagName!==t?e.getElementsByTagName(n||"*"):e.querySelectorAll!==t?e.querySelectorAll(n||"*"):t;if(!a)for(a=[],r=e.childNodes||e;null!=(i=r[o]);o++)!n||st.nodeName(i,n)?a.push(i):st.merge(a,b(i,n));return n===t||n&&st.nodeName(e,n)?st.merge([e],a):a}function x(e){Zt.test(e.type)&&(e.defaultChecked=e.checked)}function T(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Nn.length;i--;)if(t=Nn[i]+n,t in e)return t;return r}function w(e,t){return e=t||e,"none"===st.css(e,"display")||!st.contains(e.ownerDocument,e)}function N(e,t){for(var n,r=[],i=0,o=e.length;o>i;i++)n=e[i],n.style&&(r[i]=st._data(n,"olddisplay"),t?(r[i]||"none"!==n.style.display||(n.style.display=""),""===n.style.display&&w(n)&&(r[i]=st._data(n,"olddisplay",S(n.nodeName)))):r[i]||w(n)||st._data(n,"olddisplay",st.css(n,"display")));for(i=0;o>i;i++)n=e[i],n.style&&(t&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=t?r[i]||"":"none"));return e}function C(e,t,n){var r=mn.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function k(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=st.css(e,n+wn[o],!0,i)),r?("content"===n&&(a-=st.css(e,"padding"+wn[o],!0,i)),"margin"!==n&&(a-=st.css(e,"border"+wn[o]+"Width",!0,i))):(a+=st.css(e,"padding"+wn[o],!0,i),"padding"!==n&&(a+=st.css(e,"border"+wn[o]+"Width",!0,i)));return a}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=ln(e),a=st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=un(e,t,o),(0>i||null==i)&&(i=e.style[t]),yn.test(i))return i;r=a&&(st.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+k(e,t,n||(a?"border":"content"),r,o)+"px"}function S(e){var t=V,n=bn[e];return n||(n=A(e,t),"none"!==n&&n||(cn=(cn||st("").css("cssText","display:block !important")).appendTo(t.documentElement),t=(cn[0].contentWindow||cn[0].contentDocument).document,t.write(""),t.close(),n=A(e,t),cn.detach()),bn[e]=n),n}function A(e,t){var n=st(t.createElement(e)).appendTo(t.body),r=st.css(n[0],"display");return n.remove(),r}function j(e,t,n,r){var i;if(st.isArray(t))st.each(t,function(t,i){n||kn.test(e)?r(e,i):j(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==st.type(t))r(e,t);else for(i in t)j(e+"["+i+"]",t[i],n,r)}function D(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(lt)||[];if(st.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function L(e,n,r,i){function o(u){var l;return a[u]=!0,st.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||s||a[c]?s?!(l=c):t:(n.dataTypes.unshift(c),o(c),!1)}),l}var a={},s=e===$n;return o(n.dataTypes[0])||!a["*"]&&o("*")}function H(e,n){var r,i,o=st.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);return i&&st.extend(!0,e,i),e}function M(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(o in c)o in r&&(n[c[o]]=r[o]);for(;"*"===l[0];)l.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("Content-Type"));if(i)for(o in u)if(u[o]&&u[o].test(i)){l.unshift(o);break}if(l[0]in r)a=l[0];else{for(o in r){if(!l[0]||e.converters[o+" "+l[0]]){a=o;break}s||(s=o)}a=a||s}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function q(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=u[++s];)if("*"!==i){if("*"!==l&&l!==i){if(n=a[l+" "+i]||a["* "+i],!n)for(r in a)if(o=r.split(" "),o[1]===i&&(n=a[l+" "+o[0]]||a["* "+o[0]])){n===!0?n=a[r]:a[r]!==!0&&(i=o[0],u.splice(s--,0,i));break}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(c){return{state:"parsererror",error:n?c:"No conversion from "+l+" to "+i}}}l=i}return{state:"success",data:t}}function _(){try{return new e.XMLHttpRequest}catch(t){}}function F(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function O(){return setTimeout(function(){Qn=t}),Qn=st.now()}function B(e,t){st.each(t,function(t,n){for(var r=(rr[t]||[]).concat(rr["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function P(e,t,n){var r,i,o=0,a=nr.length,s=st.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Qn||O(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:st.extend({},t),opts:st.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Qn||O(),duration:n.duration,tweens:[],createTween:function(t,n){var r=st.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(R(c,l.opts.specialEasing);a>o;o++)if(r=nr[o].call(l,e,c,l.opts))return r;return B(l,c),st.isFunction(l.opts.start)&&l.opts.start.call(e,l),st.fx.timer(st.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function R(e,t){var n,r,i,o,a;for(n in e)if(r=st.camelCase(n),i=t[r],o=e[n],st.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=st.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function W(e,t,n){var r,i,o,a,s,u,l,c,f,p=this,d=e.style,h={},g=[],m=e.nodeType&&w(e);n.queue||(c=st._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,f=c.empty.fire,c.empty.fire=function(){c.unqueued||f()}),c.unqueued++,p.always(function(){p.always(function(){c.unqueued--,st.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===st.css(e,"display")&&"none"===st.css(e,"float")&&(st.support.inlineBlockNeedsLayout&&"inline"!==S(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",st.support.shrinkWrapBlocks||p.done(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Zn.exec(o)){if(delete t[r],u=u||"toggle"===o,o===(m?"hide":"show"))continue;g.push(r)}if(a=g.length){s=st._data(e,"fxshow")||st._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?st(e).show():p.done(function(){st(e).hide()}),p.done(function(){var t;st._removeData(e,"fxshow");for(t in h)st.style(e,t,h[t])});for(r=0;a>r;r++)i=g[r],l=p.createTween(i,m?s[i]:0),h[i]=s[i]||st.style(e,i),i in s||(s[i]=l.start,m&&(l.end=l.start,l.start="width"===i||"height"===i?1:0))}}function $(e,t,n,r,i){return new $.prototype.init(e,t,n,r,i)}function I(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=wn[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function z(e){return st.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var X,U,V=e.document,Y=e.location,J=e.jQuery,G=e.$,Q={},K=[],Z="1.9.0",et=K.concat,tt=K.push,nt=K.slice,rt=K.indexOf,it=Q.toString,ot=Q.hasOwnProperty,at=Z.trim,st=function(e,t){return new st.fn.init(e,t,X)},ut=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,lt=/\S+/g,ct=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ft=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,pt=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,dt=/^[\],:{}\s]*$/,ht=/(?:^|:|,)(?:\s*\[)+/g,gt=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,mt=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,yt=/^-ms-/,vt=/-([\da-z])/gi,bt=function(e,t){return t.toUpperCase()},xt=function(){V.addEventListener?(V.removeEventListener("DOMContentLoaded",xt,!1),st.ready()):"complete"===V.readyState&&(V.detachEvent("onreadystatechange",xt),st.ready())};st.fn=st.prototype={jquery:Z,constructor:st,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:ft.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof st?n[0]:n,st.merge(this,st.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:V,!0)),pt.test(i[1])&&st.isPlainObject(n))for(i in n)st.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=V.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=V,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):st.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),st.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return nt.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=st.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return st.each(this,e,t)},ready:function(e){return st.ready.promise().done(e),this},slice:function(){return this.pushStack(nt.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(st.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:tt,sort:[].sort,splice:[].splice},st.fn.init.prototype=st.fn,st.extend=st.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||st.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(e=arguments[u]))for(n in e)r=s[n],i=e[n],s!==i&&(c&&i&&(st.isPlainObject(i)||(o=st.isArray(i)))?(o?(o=!1,a=r&&st.isArray(r)?r:[]):a=r&&st.isPlainObject(r)?r:{},s[n]=st.extend(c,a,i)):i!==t&&(s[n]=i));return s},st.extend({noConflict:function(t){return e.$===st&&(e.$=G),t&&e.jQuery===st&&(e.jQuery=J),st},isReady:!1,readyWait:1,holdReady:function(e){e?st.readyWait++:st.ready(!0)},ready:function(e){if(e===!0?!--st.readyWait:!st.isReady){if(!V.body)return setTimeout(st.ready);st.isReady=!0,e!==!0&&--st.readyWait>0||(U.resolveWith(V,[st]),st.fn.trigger&&st(V).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===st.type(e)},isArray:Array.isArray||function(e){return"array"===st.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Q[it.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==st.type(e)||e.nodeType||st.isWindow(e))return!1;try{if(e.constructor&&!ot.call(e,"constructor")&&!ot.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||ot.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||V;var r=pt.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=st.buildFragment([e],t,i),i&&st(i).remove(),st.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=st.trim(n),n&&dt.test(n.replace(gt,"@").replace(mt,"]").replace(ht,"")))?Function("return "+n)():(st.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||st.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&st.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(yt,"ms-").replace(vt,bt)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,a=e.length,s=n(e);if(r){if(s)for(;a>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(s)for(;a>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:at&&!at.call("\ufeff\u00a0")?function(e){return null==e?"":at.call(e)}:function(e){return null==e?"":(e+"").replace(ct,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?st.merge(r,"string"==typeof e?[e]:e):tt.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(rt)return rt.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,a=e.length,s=n(e),u=[];if(s)for(;a>o;o++)i=t(e[o],o,r),null!=i&&(u[u.length]=i);else for(o in e)i=t(e[o],o,r),null!=i&&(u[u.length]=i);return et.apply([],u)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(r=e[n],n=e,e=r),st.isFunction(e)?(i=nt.call(arguments,2),o=function(){return e.apply(n||this,i.concat(nt.call(arguments)))},o.guid=e.guid=e.guid||st.guid++,o):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===st.type(r)){o=!0;for(u in r)st.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,st.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(st(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),st.ready.promise=function(t){if(!U)if(U=st.Deferred(),"complete"===V.readyState)setTimeout(st.ready);else if(V.addEventListener)V.addEventListener("DOMContentLoaded",xt,!1),e.addEventListener("load",st.ready,!1);else{V.attachEvent("onreadystatechange",xt),e.attachEvent("onload",st.ready);var n=!1;try{n=null==e.frameElement&&V.documentElement}catch(r){}n&&n.doScroll&&function i(){if(!st.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}st.ready()}}()}return U.promise(t)},st.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Q["[object "+t+"]"]=t.toLowerCase()}),X=st(V);var Tt={};st.Callbacks=function(e){e="string"==typeof e?Tt[e]||r(e):st.extend({},e);var n,i,o,a,s,u,l=[],c=!e.once&&[],f=function(t){for(n=e.memory&&t,i=!0,u=a||0,a=0,s=l.length,o=!0;l&&s>u;u++)if(l[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}o=!1,l&&(c?c.length&&f(c.shift()):n?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function r(t){st.each(t,function(t,n){var i=st.type(n);"function"===i?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==i&&r(n)})})(arguments),o?s=l.length:n&&(a=t,f(n))}return this},remove:function(){return l&&st.each(arguments,function(e,t){for(var n;(n=st.inArray(t,l,n))>-1;)l.splice(n,1),o&&(s>=n&&s--,u>=n&&u--)}),this},has:function(e){return st.inArray(e,l)>-1},empty:function(){return l=[],this},disable:function(){return l=c=n=t,this},disabled:function(){return!l},lock:function(){return c=t,n||p.disable(),this},locked:function(){return!c},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!l||i&&!c||(o?c.push(t):f(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},st.extend({Deferred:function(e){var t=[["resolve","done",st.Callbacks("once memory"),"resolved"],["reject","fail",st.Callbacks("once memory"),"rejected"],["notify","progress",st.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return st.Deferred(function(n){st.each(t,function(t,o){var a=o[0],s=st.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&st.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?st.extend(e,r):r}},i={};return r.pipe=r.then,st.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=nt.call(arguments),a=o.length,s=1!==a||e&&st.isFunction(e.promise)?a:0,u=1===s?e:st.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?nt.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=Array(a),n=Array(a),r=Array(a);a>i;i++)o[i]&&st.isFunction(o[i].promise)?o[i].promise().done(l(i,r,o)).fail(u.reject).progress(l(i,n,t)):--s;return s||u.resolveWith(r,o),u.promise()}}),st.support=function(){var n,r,i,o,a,s,u,l,c,f,p=V.createElement("div");if(p.setAttribute("className","t"),p.innerHTML=" a ",r=p.getElementsByTagName("*"),i=p.getElementsByTagName("a")[0],!r||!i||!r.length)return{};o=V.createElement("select"),a=o.appendChild(V.createElement("option")),s=p.getElementsByTagName("input")[0],i.style.cssText="top:1px;float:left;opacity:.5",n={getSetAttribute:"t"!==p.className,leadingWhitespace:3===p.firstChild.nodeType,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(i.getAttribute("style")),hrefNormalized:"/a"===i.getAttribute("href"),opacity:/^0.5/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:!!s.value,optSelected:a.selected,enctype:!!V.createElement("form").enctype,html5Clone:"<:nav>"!==V.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===V.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},s.checked=!0,n.noCloneChecked=s.cloneNode(!0).checked,o.disabled=!0,n.optDisabled=!a.disabled;try{delete p.test}catch(d){n.deleteExpando=!1}s=V.createElement("input"),s.setAttribute("value",""),n.input=""===s.getAttribute("value"),s.value="t",s.setAttribute("type","radio"),n.radioValue="t"===s.value,s.setAttribute("checked","t"),s.setAttribute("name","t"),u=V.createDocumentFragment(),u.appendChild(s),n.appendChecked=s.checked,n.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,p.attachEvent&&(p.attachEvent("onclick",function(){n.noCloneEvent=!1}),p.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})p.setAttribute(l="on"+f,"t"),n[f+"Bubbles"]=l in e||p.attributes[l].expando===!1;return p.style.backgroundClip="content-box",p.cloneNode(!0).style.backgroundClip="",n.clearCloneStyle="content-box"===p.style.backgroundClip,st(function(){var r,i,o,a="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",s=V.getElementsByTagName("body")[0];s&&(r=V.createElement("div"),r.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",s.appendChild(r).appendChild(p),p.innerHTML="",o=p.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",n.reliableHiddenOffsets=c&&0===o[0].offsetHeight,p.innerHTML="",p.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",n.boxSizing=4===p.offsetWidth,n.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,e.getComputedStyle&&(n.pixelPosition="1%"!==(e.getComputedStyle(p,null)||{}).top,n.boxSizingReliable="4px"===(e.getComputedStyle(p,null)||{width:"4px"}).width,i=p.appendChild(V.createElement("div")),i.style.cssText=p.style.cssText=a,i.style.marginRight=i.style.width="0",p.style.width="1px",n.reliableMarginRight=!parseFloat((e.getComputedStyle(i,null)||{}).marginRight)),p.style.zoom!==t&&(p.innerHTML="",p.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",n.inlineBlockNeedsLayout=3===p.offsetWidth,p.style.display="block",p.innerHTML="
",p.firstChild.style.width="5px",n.shrinkWrapBlocks=3!==p.offsetWidth,s.style.zoom=1),s.removeChild(r),r=p=o=i=null)}),r=o=u=a=i=s=null,n}();var wt=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,Nt=/([A-Z])/g;st.extend({cache:{},expando:"jQuery"+(Z+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?st.cache[e[st.expando]]:e[st.expando],!!e&&!s(e)},data:function(e,t,n){return i(e,t,n,!1)},removeData:function(e,t){return o(e,t,!1)},_data:function(e,t,n){return i(e,t,n,!0)},_removeData:function(e,t){return o(e,t,!0)},acceptData:function(e){var t=e.nodeName&&st.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),st.fn.extend({data:function(e,n){var r,i,o=this[0],s=0,u=null;if(e===t){if(this.length&&(u=st.data(o),1===o.nodeType&&!st._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>s;s++)i=r[s].name,i.indexOf("data-")||(i=st.camelCase(i.substring(5)),a(o,i,u[i]));st._data(o,"parsedAttrs",!0)}return u}return"object"==typeof e?this.each(function(){st.data(this,e)}):st.access(this,function(n){return n===t?o?a(o,e,st.data(o,e)):null:(this.each(function(){st.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){st.removeData(this,e)})}}),st.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=st._data(e,n),r&&(!i||st.isArray(r)?i=st._data(e,n,st.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=st.queue(e,t),r=n.length,i=n.shift(),o=st._queueHooks(e,t),a=function(){st.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return st._data(e,n)||st._data(e,n,{empty:st.Callbacks("once memory").add(function(){st._removeData(e,t+"queue"),st._removeData(e,n)})})}}),st.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?st.queue(this[0],e):n===t?this:this.each(function(){var t=st.queue(this,e,n);st._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&st.dequeue(this,e)})},dequeue:function(e){return this.each(function(){st.dequeue(this,e)})},delay:function(e,t){return e=st.fx?st.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=st.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=st._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var Ct,kt,Et=/[\t\r\n]/g,St=/\r/g,At=/^(?:input|select|textarea|button|object)$/i,jt=/^(?:a|area)$/i,Dt=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,Lt=/^(?:checked|selected)$/i,Ht=st.support.getSetAttribute,Mt=st.support.input;st.fn.extend({attr:function(e,t){return st.access(this,st.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){st.removeAttr(this,e)})},prop:function(e,t){return st.access(this,st.prop,e,t,arguments.length>1)},removeProp:function(e){return e=st.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(st.isFunction(e))return this.each(function(t){st(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(lt)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Et," "):" ")){for(o=0;i=t[o++];)0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=st.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(st.isFunction(e))return this.each(function(t){st(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(lt)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Et," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?st.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return st.isFunction(e)?this.each(function(n){st(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,a=st(this),s=t,u=e.match(lt)||[];i=u[o++];)s=r?s:!a.hasClass(i),a[s?"addClass":"removeClass"](i);else("undefined"===n||"boolean"===n)&&(this.className&&st._data(this,"__className__",this.className),this.className=this.className||e===!1?"":st._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(Et," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=st.isFunction(e),this.each(function(r){var o,a=st(this);1===this.nodeType&&(o=i?e.call(this,r,a.val()):e,null==o?o="":"number"==typeof o?o+="":st.isArray(o)&&(o=st.map(o,function(e){return null==e?"":e+""})),n=st.valHooks[this.type]||st.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))});if(o)return n=st.valHooks[o.type]||st.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,"string"==typeof r?r.replace(St,""):null==r?"":r)}}}),st.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(st.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&st.nodeName(n.parentNode,"optgroup"))){if(t=st(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=st.makeArray(t);return st(e).find("option").each(function(){this.selected=st.inArray(st(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return e.getAttribute===t?st.prop(e,n,r):(a=1!==s||!st.isXMLDoc(e),a&&(n=n.toLowerCase(),o=st.attrHooks[n]||(Dt.test(n)?kt:Ct)),r===t?o&&a&&"get"in o&&null!==(i=o.get(e,n))?i:(e.getAttribute!==t&&(i=e.getAttribute(n)),null==i?t:i):null!==r?o&&a&&"set"in o&&(i=o.set(e,r,n))!==t?i:(e.setAttribute(n,r+""),r):(st.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(lt);if(o&&1===e.nodeType)for(;n=o[i++];)r=st.propFix[n]||n,Dt.test(n)?!Ht&&Lt.test(n)?e[st.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:st.attr(e,n,""),e.removeAttribute(Ht?n:r)},attrHooks:{type:{set:function(e,t){if(!st.support.radioValue&&"radio"===t&&st.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!st.isXMLDoc(e),a&&(n=st.propFix[n]||n,o=st.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):At.test(e.nodeName)||jt.test(e.nodeName)&&e.href?0:t}}}}),kt={get:function(e,n){var r=st.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?Mt&&Ht?null!=i:Lt.test(n)?e[st.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?st.removeAttr(e,n):Mt&&Ht||!Lt.test(n)?e.setAttribute(!Ht&&st.propFix[n]||n,n):e[st.camelCase("default-"+n)]=e[n]=!0,n}},Mt&&Ht||(st.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return st.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t
+},set:function(e,n,r){return st.nodeName(e,"input")?(e.defaultValue=n,t):Ct&&Ct.set(e,n,r)}}),Ht||(Ct=st.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},st.attrHooks.contenteditable={get:Ct.get,set:function(e,t,n){Ct.set(e,""===t?!1:t,n)}},st.each(["width","height"],function(e,n){st.attrHooks[n]=st.extend(st.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),st.support.hrefNormalized||(st.each(["href","src","width","height"],function(e,n){st.attrHooks[n]=st.extend(st.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),st.each(["href","src"],function(e,t){st.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),st.support.style||(st.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),st.support.optSelected||(st.propHooks.selected=st.extend(st.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),st.support.enctype||(st.propFix.enctype="encoding"),st.support.checkOn||st.each(["radio","checkbox"],function(){st.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),st.each(["radio","checkbox"],function(){st.valHooks[this]=st.extend(st.valHooks[this],{set:function(e,n){return st.isArray(n)?e.checked=st.inArray(st(e).val(),n)>=0:t}})});var qt=/^(?:input|select|textarea)$/i,_t=/^key/,Ft=/^(?:mouse|contextmenu)|click/,Ot=/^(?:focusinfocus|focusoutblur)$/,Bt=/^([^.]*)(?:\.(.+)|)$/;st.event={global:{},add:function(e,n,r,i,o){var a,s,u,l,c,f,p,d,h,g,m,y=3!==e.nodeType&&8!==e.nodeType&&st._data(e);if(y){for(r.handler&&(a=r,r=a.handler,o=a.selector),r.guid||(r.guid=st.guid++),(l=y.events)||(l=y.events={}),(s=y.handle)||(s=y.handle=function(e){return st===t||e&&st.event.triggered===e.type?t:st.event.dispatch.apply(s.elem,arguments)},s.elem=e),n=(n||"").match(lt)||[""],c=n.length;c--;)u=Bt.exec(n[c])||[],h=m=u[1],g=(u[2]||"").split(".").sort(),p=st.event.special[h]||{},h=(o?p.delegateType:p.bindType)||h,p=st.event.special[h]||{},f=st.extend({type:h,origType:m,data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&st.expr.match.needsContext.test(o),namespace:g.join(".")},a),(d=l[h])||(d=l[h]=[],d.delegateCount=0,p.setup&&p.setup.call(e,i,g,s)!==!1||(e.addEventListener?e.addEventListener(h,s,!1):e.attachEvent&&e.attachEvent("on"+h,s))),p.add&&(p.add.call(e,f),f.handler.guid||(f.handler.guid=r.guid)),o?d.splice(d.delegateCount++,0,f):d.push(f),st.event.global[h]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,m=st.hasData(e)&&st._data(e);if(m&&(u=m.events)){for(t=(t||"").match(lt)||[""],l=t.length;l--;)if(s=Bt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){for(f=st.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,p=u[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||st.removeEvent(e,d,m.handle),delete u[d])}else for(d in u)st.event.remove(e,d+t[l],n,r,!0);st.isEmptyObject(u)&&(delete m.handle,st._removeData(e,"events"))}},trigger:function(n,r,i,o){var a,s,u,l,c,f,p,d=[i||V],h=n.type||n,g=n.namespace?n.namespace.split("."):[];if(s=u=i=i||V,3!==i.nodeType&&8!==i.nodeType&&!Ot.test(h+st.event.triggered)&&(h.indexOf(".")>=0&&(g=h.split("."),h=g.shift(),g.sort()),c=0>h.indexOf(":")&&"on"+h,n=n[st.expando]?n:new st.Event(h,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=g.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:st.makeArray(r,[n]),p=st.event.special[h]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!st.isWindow(i)){for(l=p.delegateType||h,Ot.test(l+h)||(s=s.parentNode);s;s=s.parentNode)d.push(s),u=s;u===(i.ownerDocument||V)&&d.push(u.defaultView||u.parentWindow||e)}for(a=0;(s=d[a++])&&!n.isPropagationStopped();)n.type=a>1?l:p.bindType||h,f=(st._data(s,"events")||{})[n.type]&&st._data(s,"handle"),f&&f.apply(s,r),f=c&&s[c],f&&st.acceptData(s)&&f.apply&&f.apply(s,r)===!1&&n.preventDefault();if(n.type=h,!(o||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===h&&st.nodeName(i,"a")||!st.acceptData(i)||!c||!i[h]||st.isWindow(i))){u=i[c],u&&(i[c]=null),st.event.triggered=h;try{i[h]()}catch(m){}st.event.triggered=t,u&&(i[c]=u)}return n.result}},dispatch:function(e){e=st.event.fix(e);var n,r,i,o,a,s=[],u=nt.call(arguments),l=(st._data(this,"events")||{})[e.type]||[],c=st.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(s=st.event.handlers.call(this,e,l),n=0;(o=s[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,r=0;(a=o.handlers[r++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(a.namespace))&&(e.handleObj=a,e.data=a.data,i=((st.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u),i!==t&&(e.result=i)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(l.disabled!==!0||"click"!==e.type){for(i=[],r=0;u>r;r++)a=n[r],o=a.selector+" ",i[o]===t&&(i[o]=a.needsContext?st(o,this).index(l)>=0:st.find(o,this,null,[l]).length),i[o]&&i.push(a);i.length&&s.push({elem:l,handlers:i})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[st.expando])return e;var t,n,r=e,i=st.event.fixHooks[e.type]||{},o=i.props?this.props.concat(i.props):this.props;for(e=new st.Event(r),t=o.length;t--;)n=o[t],e[n]=r[n];return e.target||(e.target=r.srcElement||V),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,i.filter?i.filter(e,r):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,a=n.button,s=n.fromElement;return null==e.pageX&&null!=n.clientX&&(r=e.target.ownerDocument||V,i=r.documentElement,o=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?n.toElement:s),e.which||a===t||(e.which=1&a?1:2&a?3:4&a?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return st.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==V.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===V.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=st.extend(new st.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?st.event.trigger(i,null,t):st.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},st.removeEvent=V.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,n,r){var i="on"+n;e.detachEvent&&(e[i]===t&&(e[i]=null),e.detachEvent(i,r))},st.Event=function(e,n){return this instanceof st.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?u:l):this.type=e,n&&st.extend(this,n),this.timeStamp=e&&e.timeStamp||st.now(),this[st.expando]=!0,t):new st.Event(e,n)},st.Event.prototype={isDefaultPrevented:l,isPropagationStopped:l,isImmediatePropagationStopped:l,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=u,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=u,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u,this.stopPropagation()}},st.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){st.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!st.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),st.support.submitBubbles||(st.event.special.submit={setup:function(){return st.nodeName(this,"form")?!1:(st.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=st.nodeName(n,"input")||st.nodeName(n,"button")?n.form:t;r&&!st._data(r,"submitBubbles")&&(st.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),st._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&st.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return st.nodeName(this,"form")?!1:(st.event.remove(this,"._submit"),t)}}),st.support.changeBubbles||(st.event.special.change={setup:function(){return qt.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(st.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),st.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),st.event.simulate("change",this,e,!0)})),!1):(st.event.add(this,"beforeactivate._change",function(e){var t=e.target;qt.test(t.nodeName)&&!st._data(t,"changeBubbles")&&(st.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||st.event.simulate("change",this.parentNode,e,!0)}),st._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return st.event.remove(this,"._change"),!qt.test(this.nodeName)}}),st.support.focusinBubbles||st.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){st.event.simulate(t,e.target,st.event.fix(e),!0)};st.event.special[t]={setup:function(){0===n++&&V.addEventListener(e,r,!0)},teardown:function(){0===--n&&V.removeEventListener(e,r,!0)}}}),st.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(s in e)this.on(s,n,r,e[s],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=l;else if(!i)return this;return 1===o&&(a=i,i=function(e){return st().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=st.guid++)),this.each(function(){st.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,st(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=l),this.each(function(){st.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){st.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?st.event.trigger(e,n,r,!0):t},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),st.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){st.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)},_t.test(t)&&(st.event.fixHooks[t]=st.event.keyHooks),Ft.test(t)&&(st.event.fixHooks[t]=st.event.mouseHooks)}),function(e,t){function n(e){return ht.test(e+"")}function r(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>C.cacheLength&&delete e[t.shift()],e[n]=r}}function i(e){return e[P]=!0,e}function o(e){var t=L.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function a(e,t,n,r){var i,o,a,s,u,l,c,d,h,g;if((t?t.ownerDocument||t:R)!==L&&D(t),t=t||L,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!M&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Q.apply(n,K.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&W.getByClassName&&t.getElementsByClassName)return Q.apply(n,K.call(t.getElementsByClassName(a),0)),n}if(W.qsa&&!q.test(e)){if(c=!0,d=P,h=t,g=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(l=f(e),(c=t.getAttribute("id"))?d=c.replace(vt,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=l.length;u--;)l[u]=d+p(l[u]);h=dt.test(e)&&t.parentNode||t,g=l.join(",")}if(g)try{return Q.apply(n,K.call(h.querySelectorAll(g),0)),n}catch(m){}finally{c||t.removeAttribute("id")}}}return x(e.replace(at,"$1"),t,n,r)}function s(e,t){for(var n=e&&t&&e.nextSibling;n;n=n.nextSibling)if(n===t)return-1;return e?1:-1}function u(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return i(function(t){return t=+t,i(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function f(e,t){var n,r,i,o,s,u,l,c=X[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=C.preFilter;s;){(!n||(r=ut.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(i=[])),n=!1,(r=lt.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(at," ")}),s=s.slice(n.length));for(o in C.filter)!(r=pt[o].exec(s))||l[o]&&!(r=l[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?a.error(e):X(e,u).slice(0)}function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=n&&"parentNode"===t.dir,o=I++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,l,c=$+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(l=t[P]||(t[P]={}),(u=l[r])&&u[0]===c){if((s=u[1])===!0||s===N)return s===!0}else if(u=l[r]=[c],u[1]=e(t,n,a)||N,u[1]===!0)return!0}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function m(e,t,n,r,o,a){return r&&!r[P]&&(r=m(r)),o&&!o[P]&&(o=m(o,a)),i(function(i,a,s,u){var l,c,f,p=[],d=[],h=a.length,m=i||b(t||"*",s.nodeType?[s]:s,[]),y=!e||!i&&t?m:g(m,p,e,s,u),v=n?o||(i?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r)for(l=g(v,d),r(l,[],s,u),c=l.length;c--;)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f));if(i){if(o||e){if(o){for(l=[],c=v.length;c--;)(f=v[c])&&l.push(y[c]=f);o(null,v=[],l,u)}for(c=v.length;c--;)(f=v[c])&&(l=o?Z.call(i,f):p[c])>-1&&(i[l]=!(a[l]=f))}}else v=g(v===a?v.splice(h,v.length):v),o?o(null,a,v,u):Q.apply(a,v)})}function y(e){for(var t,n,r,i=e.length,o=C.relative[e[0].type],a=o||C.relative[" "],s=o?1:0,u=d(function(e){return e===t},a,!0),l=d(function(e){return Z.call(t,e)>-1},a,!0),c=[function(e,n,r){return!o&&(r||n!==j)||((t=n).nodeType?u(e,n,r):l(e,n,r))}];i>s;s++)if(n=C.relative[e[s].type])c=[d(h(c),n)];else{if(n=C.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;i>r&&!C.relative[e[r].type];r++);return m(s>1&&h(c),s>1&&p(e.slice(0,s-1)).replace(at,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&p(e))}c.push(n)}return h(c)}function v(e,t){var n=0,r=t.length>0,o=e.length>0,s=function(i,s,u,l,c){var f,p,d,h=[],m=0,y="0",v=i&&[],b=null!=c,x=j,T=i||o&&C.find.TAG("*",c&&s.parentNode||s),w=$+=null==x?1:Math.E;for(b&&(j=s!==L&&s,N=n);null!=(f=T[y]);y++){if(o&&f){for(p=0;d=e[p];p++)if(d(f,s,u)){l.push(f);break}b&&($=w,N=++n)}r&&((f=!d&&f)&&m--,i&&v.push(f))}if(m+=y,r&&y!==m){for(p=0;d=t[p];p++)d(v,h,s,u);if(i){if(m>0)for(;y--;)v[y]||h[y]||(h[y]=G.call(l));h=g(h)}Q.apply(l,h),b&&!i&&h.length>0&&m+t.length>1&&a.uniqueSort(l)}return b&&($=w,j=x),v};return r?i(s):s}function b(e,t,n){for(var r=0,i=t.length;i>r;r++)a(e,t[r],n);return n}function x(e,t,n,r){var i,o,a,s,u,l=f(e);if(!r&&1===l.length){if(o=l[0]=l[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&!M&&C.relative[o[1].type]){if(t=C.find.ID(a.matches[0].replace(xt,Tt),t)[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?-1:o.length-1;i>=0&&(a=o[i],!C.relative[s=a.type]);i--)if((u=C.find[s])&&(r=u(a.matches[0].replace(xt,Tt),dt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&p(o),!e)return Q.apply(n,K.call(r,0)),n;break}}return S(e,l)(r,t,M,n,dt.test(e)),n}function T(){}var w,N,C,k,E,S,A,j,D,L,H,M,q,_,F,O,B,P="sizzle"+-new Date,R=e.document,W={},$=0,I=0,z=r(),X=r(),U=r(),V=typeof t,Y=1<<31,J=[],G=J.pop,Q=J.push,K=J.slice,Z=J.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},et="[\\x20\\t\\r\\n\\f]",tt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",nt=tt.replace("w","w#"),rt="([*^$|!~]?=)",it="\\["+et+"*("+tt+")"+et+"*(?:"+rt+et+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+nt+")|)|)"+et+"*\\]",ot=":("+tt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+it.replace(3,8)+")*)|.*)\\)|)",at=RegExp("^"+et+"+|((?:^|[^\\\\])(?:\\\\.)*)"+et+"+$","g"),ut=RegExp("^"+et+"*,"+et+"*"),lt=RegExp("^"+et+"*([\\x20\\t\\r\\n\\f>+~])"+et+"*"),ct=RegExp(ot),ft=RegExp("^"+nt+"$"),pt={ID:RegExp("^#("+tt+")"),CLASS:RegExp("^\\.("+tt+")"),NAME:RegExp("^\\[name=['\"]?("+tt+")['\"]?\\]"),TAG:RegExp("^("+tt.replace("w","w*")+")"),ATTR:RegExp("^"+it),PSEUDO:RegExp("^"+ot),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+et+"*(even|odd|(([+-]|)(\\d*)n|)"+et+"*(?:([+-]|)"+et+"*(\\d+)|))"+et+"*\\)|)","i"),needsContext:RegExp("^"+et+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+et+"*((?:-\\d)?\\d*)"+et+"*\\)|)(?=[^-]|$)","i")},dt=/[\x20\t\r\n\f]*[+~]/,ht=/\{\s*\[native code\]\s*\}/,gt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,mt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,vt=/'|\\/g,bt=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,Tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{K.call(H.childNodes,0)[0].nodeType}catch(wt){K=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}E=a.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},D=a.setDocument=function(e){var r=e?e.ownerDocument||e:R;return r!==L&&9===r.nodeType&&r.documentElement?(L=r,H=r.documentElement,M=E(r),W.tagNameNoComments=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),W.attributes=o(function(e){e.innerHTML=" ";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),W.getByClassName=o(function(e){return e.innerHTML="
",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),W.getByName=o(function(e){e.id=P+0,e.innerHTML="
",H.insertBefore(e,H.firstChild);var t=r.getElementsByName&&r.getElementsByName(P).length===2+r.getElementsByName(P+0).length;return W.getIdNotName=!r.getElementById(P),H.removeChild(e),t}),C.attrHandle=o(function(e){return e.innerHTML=" ",e.firstChild&&typeof e.firstChild.getAttribute!==V&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},W.getIdNotName?(C.find.ID=function(e,t){if(typeof t.getElementById!==V&&!M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},C.filter.ID=function(e){var t=e.replace(xt,Tt);return function(e){return e.getAttribute("id")===t}}):(C.find.ID=function(e,n){if(typeof n.getElementById!==V&&!M){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==V&&r.getAttributeNode("id").value===e?[r]:t:[]}},C.filter.ID=function(e){var t=e.replace(xt,Tt);return function(e){var n=typeof e.getAttributeNode!==V&&e.getAttributeNode("id");return n&&n.value===t}}),C.find.TAG=W.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==V?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i];i++)1===n.nodeType&&r.push(n);return r}return o},C.find.NAME=W.getByName&&function(e,n){return typeof n.getElementsByName!==V?n.getElementsByName(name):t},C.find.CLASS=W.getByClassName&&function(e,n){return typeof n.getElementsByClassName===V||M?t:n.getElementsByClassName(e)},_=[],q=[":focus"],(W.qsa=n(r.querySelectorAll))&&(o(function(e){e.innerHTML=" ",e.querySelectorAll("[selected]").length||q.push("\\["+et+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||q.push(":checked")}),o(function(e){e.innerHTML=" ",e.querySelectorAll("[i^='']").length&&q.push("[*^$]="+et+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),q.push(",.*:")})),(W.matchesSelector=n(F=H.matchesSelector||H.mozMatchesSelector||H.webkitMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&o(function(e){W.disconnectedMatch=F.call(e,"div"),F.call(e,"[s!='']:x"),_.push("!=",ot)}),q=RegExp(q.join("|")),_=RegExp(_.join("|")),O=n(H.contains)||H.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},B=H.compareDocumentPosition?function(e,t){var n;return e===t?(A=!0,0):(n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&n||e.parentNode&&11===e.parentNode.nodeType?e===r||O(R,e)?-1:t===r||O(R,t)?1:0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,a=t.parentNode,u=[e],l=[t];if(e===t)return A=!0,0;if(e.sourceIndex&&t.sourceIndex)return(~t.sourceIndex||Y)-(O(R,e)&&~e.sourceIndex||Y);if(!o||!a)return e===r?-1:t===r?1:o?-1:a?1:0;if(o===a)return s(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;u[i]===l[i];)i++;return i?s(u[i],l[i]):u[i]===R?-1:l[i]===R?1:0},A=!1,[0,0].sort(B),W.detectDuplicates=A,L):L},a.matches=function(e,t){return a(e,null,null,t)},a.matchesSelector=function(e,t){if((e.ownerDocument||e)!==L&&D(e),t=t.replace(bt,"='$1']"),!(!W.matchesSelector||M||_&&_.test(t)||q.test(t)))try{var n=F.call(e,t);if(n||W.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return a(t,L,null,[e]).length>0},a.contains=function(e,t){return(e.ownerDocument||e)!==L&&D(e),O(e,t)},a.attr=function(e,t){var n;return(e.ownerDocument||e)!==L&&D(e),M||(t=t.toLowerCase()),(n=C.attrHandle[t])?n(e):M||W.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},a.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},a.uniqueSort=function(e){var t,n=[],r=1,i=0;if(A=!W.detectDuplicates,e.sort(B),A){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},k=a.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=k(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=k(t);return n},C=a.selectors={cacheLength:50,createPseudo:i,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,Tt),e[3]=(e[4]||e[5]||"").replace(xt,Tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||a.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&a.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&ct.test(n)&&(t=f(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,Tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=z[e+" "];return t||(t=RegExp("(^|"+et+")"+e+"("+et+"|$)"))&&z(e,function(e){return t.test(e.className||typeof e.getAttribute!==V&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=a.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.substr(i.length-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){for(;g;){for(f=t;f=f[g];)if(s?f.nodeName.toLowerCase()===y:1===f.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(c=m[P]||(m[P]={}),l=c[e]||[],d=l[0]===$&&l[1],p=l[0]===$&&l[2],f=d&&m.childNodes[d];f=++d&&f&&f[g]||(p=d=0)||h.pop();)if(1===f.nodeType&&++p&&f===t){c[e]=[$,d,p];break}}else if(v&&(l=(t[P]||(t[P]={}))[e])&&l[0]===$)p=l[1];else for(;(f=++d&&f&&f[g]||(p=d=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==y:1!==f.nodeType)||!++p||(v&&((f[P]||(f[P]={}))[e]=[$,p]),f!==t)););return p-=i,p===r||0===p%r&&p/r>=0}}},PSEUDO:function(e,t){var n,r=C.pseudos[e]||C.setFilters[e.toLowerCase()]||a.error("unsupported pseudo: "+e);return r[P]?r(t):r.length>1?(n=[e,e,"",t],C.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=Z.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:i(function(e){var t=[],n=[],r=S(e.replace(at,"$1"));return r[P]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:i(function(e){return function(t){return a(e,t).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||k(t)).indexOf(e)>-1}}),lang:i(function(e){return ft.test(e||"")||a.error("unsupported lang: "+e),e=e.replace(xt,Tt).toLowerCase(),function(t){var n;do if(n=M?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===H},focus:function(e){return e===L.activeElement&&(!L.hasFocus||L.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return mt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})C.pseudos[w]=u(w);for(w in{submit:!0,reset:!0})C.pseudos[w]=l(w);S=a.compile=function(e,t){var n,r=[],i=[],o=U[e+" "];if(!o){for(t||(t=f(e)),n=t.length;n--;)o=y(t[n]),o[P]?r.push(o):i.push(o);o=U(e,v(i,r))}return o},C.pseudos.nth=C.pseudos.eq,C.filters=T.prototype=C.pseudos,C.setFilters=new T,D(),a.attr=st.attr,st.find=a,st.expr=a.selectors,st.expr[":"]=st.expr.pseudos,st.unique=a.uniqueSort,st.text=a.getText,st.isXMLDoc=a.isXML,st.contains=a.contains}(e);var Pt=/Until$/,Rt=/^(?:parents|prev(?:Until|All))/,Wt=/^.[^:#\[\.,]*$/,$t=st.expr.match.needsContext,It={children:!0,contents:!0,next:!0,prev:!0};st.fn.extend({find:function(e){var t,n,r;if("string"!=typeof e)return r=this,this.pushStack(st(e).filter(function(){for(t=0;r.length>t;t++)if(st.contains(r[t],this))return!0}));for(n=[],t=0;this.length>t;t++)st.find(e,this[t],n);return n=this.pushStack(st.unique(n)),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=st(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(st.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(f(this,e,!1))},filter:function(e){return this.pushStack(f(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?$t.test(e)?st(e,this.context).index(this[0])>=0:st.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=$t.test(e)||"string"!=typeof e?st(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:st.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return this.pushStack(o.length>1?st.unique(o):o)},index:function(e){return e?"string"==typeof e?st.inArray(this[0],st(e)):st.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?st(e,t):st.makeArray(e&&e.nodeType?[e]:e),r=st.merge(this.get(),n);return this.pushStack(st.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),st.fn.andSelf=st.fn.addBack,st.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return st.dir(e,"parentNode")},parentsUntil:function(e,t,n){return st.dir(e,"parentNode",n)},next:function(e){return c(e,"nextSibling")},prev:function(e){return c(e,"previousSibling")
+},nextAll:function(e){return st.dir(e,"nextSibling")},prevAll:function(e){return st.dir(e,"previousSibling")},nextUntil:function(e,t,n){return st.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return st.dir(e,"previousSibling",n)},siblings:function(e){return st.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return st.sibling(e.firstChild)},contents:function(e){return st.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:st.merge([],e.childNodes)}},function(e,t){st.fn[e]=function(n,r){var i=st.map(this,t,n);return Pt.test(e)||(r=n),r&&"string"==typeof r&&(i=st.filter(r,i)),i=this.length>1&&!It[e]?st.unique(i):i,this.length>1&&Rt.test(e)&&(i=i.reverse()),this.pushStack(i)}}),st.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?st.find.matchesSelector(t[0],e)?[t[0]]:[]:st.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!st(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var zt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Xt=/ jQuery\d+="(?:null|\d+)"/g,Ut=RegExp("<(?:"+zt+")[\\s/>]","i"),Vt=/^\s+/,Yt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Jt=/<([\w:]+)/,Gt=/\s*$/g,on={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:st.support.htmlSerialize?[0,"",""]:[1,"X","
"]},an=p(V),sn=an.appendChild(V.createElement("div"));on.optgroup=on.option,on.tbody=on.tfoot=on.colgroup=on.caption=on.thead,on.th=on.td,st.fn.extend({text:function(e){return st.access(this,function(e){return e===t?st.text(this):this.empty().append((this[0]&&this[0].ownerDocument||V).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(st.isFunction(e))return this.each(function(t){st(this).wrapAll(e.call(this,t))});if(this[0]){var t=st(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return st.isFunction(e)?this.each(function(t){st(this).wrapInner(e.call(this,t))}):this.each(function(){var t=st(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=st.isFunction(e);return this.each(function(n){st(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){st.nodeName(this,"body")||st(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=0;null!=(n=this[r]);r++)(!e||st.filter(e,[n]).length>0)&&(t||1!==n.nodeType||st.cleanData(b(n)),n.parentNode&&(t&&st.contains(n.ownerDocument,n)&&m(b(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&st.cleanData(b(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&st.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return st.clone(this,e,t)})},html:function(e){return st.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(Xt,""):t;if(!("string"!=typeof e||Kt.test(e)||!st.support.htmlSerialize&&Ut.test(e)||!st.support.leadingWhitespace&&Vt.test(e)||on[(Jt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Yt,"<$1>$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(st.cleanData(b(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=st.isFunction(e);return t||"string"==typeof e||(e=st(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;(n&&1===this.nodeType||11===this.nodeType)&&(st(this).remove(),t?t.parentNode.insertBefore(e,t):n.appendChild(e))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=et.apply([],e);var i,o,a,s,u,l,c=0,f=this.length,p=this,m=f-1,y=e[0],v=st.isFunction(y);if(v||!(1>=f||"string"!=typeof y||st.support.checkClone)&&en.test(y))return this.each(function(i){var o=p.eq(i);v&&(e[0]=y.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(f&&(i=st.buildFragment(e,this[0].ownerDocument,!1,this),o=i.firstChild,1===i.childNodes.length&&(i=o),o)){for(n=n&&st.nodeName(o,"tr"),a=st.map(b(i,"script"),h),s=a.length;f>c;c++)u=i,c!==m&&(u=st.clone(u,!0,!0),s&&st.merge(a,b(u,"script"))),r.call(n&&st.nodeName(this[c],"table")?d(this[c],"tbody"):this[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,st.map(a,g),c=0;s>c;c++)u=a[c],tn.test(u.type||"")&&!st._data(u,"globalEval")&&st.contains(l,u)&&(u.src?st.ajax({url:u.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):st.globalEval((u.text||u.textContent||u.innerHTML||"").replace(rn,"")));i=o=null}return this}}),st.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){st.fn[e]=function(e){for(var n,r=0,i=[],o=st(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),st(o[r])[t](n),tt.apply(i,n.get());return this.pushStack(i)}}),st.extend({clone:function(e,t,n){var r,i,o,a,s,u=st.contains(e.ownerDocument,e);if(st.support.html5Clone||st.isXMLDoc(e)||!Ut.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(sn.innerHTML=e.outerHTML,sn.removeChild(s=sn.firstChild)),!(st.support.noCloneEvent&&st.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||st.isXMLDoc(e)))for(r=b(s),i=b(e),a=0;null!=(o=i[a]);++a)r[a]&&v(o,r[a]);if(t)if(n)for(i=i||b(e),r=r||b(s),a=0;null!=(o=i[a]);a++)y(o,r[a]);else y(e,s);return r=b(s,"script"),r.length>0&&m(r,!u&&b(e,"script")),r=i=o=null,s},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,l,c,f=e.length,d=p(t),h=[],g=0;f>g;g++)if(o=e[g],o||0===o)if("object"===st.type(o))st.merge(h,o.nodeType?[o]:o);else if(Qt.test(o)){for(s=s||d.appendChild(t.createElement("div")),a=(Jt.exec(o)||["",""])[1].toLowerCase(),u=on[a]||on._default,s.innerHTML=u[1]+o.replace(Yt,"<$1>$2>")+u[2],c=u[0];c--;)s=s.lastChild;if(!st.support.leadingWhitespace&&Vt.test(o)&&h.push(t.createTextNode(Vt.exec(o)[0])),!st.support.tbody)for(o="table"!==a||Gt.test(o)?""!==u[1]||Gt.test(o)?0:s:s.firstChild,c=o&&o.childNodes.length;c--;)st.nodeName(l=o.childNodes[c],"tbody")&&!l.childNodes.length&&o.removeChild(l);for(st.merge(h,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=d.lastChild}else h.push(t.createTextNode(o));for(s&&d.removeChild(s),st.support.appendChecked||st.grep(b(h,"input"),x),g=0;o=h[g++];)if((!r||-1===st.inArray(o,r))&&(i=st.contains(o.ownerDocument,o),s=b(d.appendChild(o),"script"),i&&m(s),n))for(c=0;o=s[c++];)tn.test(o.type||"")&&n.push(o);return s=null,d},cleanData:function(e,n){for(var r,i,o,a,s=0,u=st.expando,l=st.cache,c=st.support.deleteExpando,f=st.event.special;null!=(o=e[s]);s++)if((n||st.acceptData(o))&&(i=o[u],r=i&&l[i])){if(r.events)for(a in r.events)f[a]?st.event.remove(o,a):st.removeEvent(o,a,r.handle);l[i]&&(delete l[i],c?delete o[u]:o.removeAttribute!==t?o.removeAttribute(u):o[u]=null,K.push(i))}}});var un,ln,cn,fn=/alpha\([^)]*\)/i,pn=/opacity\s*=\s*([^)]*)/,dn=/^(top|right|bottom|left)$/,hn=/^(none|table(?!-c[ea]).+)/,gn=/^margin/,mn=RegExp("^("+ut+")(.*)$","i"),yn=RegExp("^("+ut+")(?!px)[a-z%]+$","i"),vn=RegExp("^([+-])=("+ut+")","i"),bn={BODY:"block"},xn={position:"absolute",visibility:"hidden",display:"block"},Tn={letterSpacing:0,fontWeight:400},wn=["Top","Right","Bottom","Left"],Nn=["Webkit","O","Moz","ms"];st.fn.extend({css:function(e,n){return st.access(this,function(e,n,r){var i,o,a={},s=0;if(st.isArray(n)){for(i=ln(e),o=n.length;o>s;s++)a[n[s]]=st.css(e,n[s],!1,i);return a}return r!==t?st.style(e,n,r):st.css(e,n)},e,n,arguments.length>1)},show:function(){return N(this,!0)},hide:function(){return N(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:w(this))?st(this).show():st(this).hide()})}}),st.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=un(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":st.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=st.camelCase(n),l=e.style;if(n=st.cssProps[u]||(st.cssProps[u]=T(l,u)),s=st.cssHooks[n]||st.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=vn.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(st.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||st.cssNumber[u]||(r+="px"),st.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=st.camelCase(n);return n=st.cssProps[u]||(st.cssProps[u]=T(e.style,u)),s=st.cssHooks[n]||st.cssHooks[u],s&&"get"in s&&(o=s.get(e,!0,r)),o===t&&(o=un(e,n,i)),"normal"===o&&n in Tn&&(o=Tn[n]),r?(a=parseFloat(o),r===!0||st.isNumeric(a)?a||0:o):o},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(ln=function(t){return e.getComputedStyle(t,null)},un=function(e,n,r){var i,o,a,s=r||ln(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||st.contains(e.ownerDocument,e)||(u=st.style(e,n)),yn.test(u)&&gn.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):V.documentElement.currentStyle&&(ln=function(e){return e.currentStyle},un=function(e,n,r){var i,o,a,s=r||ln(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),yn.test(u)&&!dn.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u}),st.each(["height","width"],function(e,n){st.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&hn.test(st.css(e,"display"))?st.swap(e,xn,function(){return E(e,n,i)}):E(e,n,i):t},set:function(e,t,r){var i=r&&ln(e);return C(e,t,r?k(e,n,r,st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,i),i):0)}}}),st.support.opacity||(st.cssHooks.opacity={get:function(e,t){return pn.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=st.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===st.trim(o.replace(fn,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=fn.test(o)?o.replace(fn,i):o+" "+i)}}),st(function(){st.support.reliableMarginRight||(st.cssHooks.marginRight={get:function(e,n){return n?st.swap(e,{display:"inline-block"},un,[e,"marginRight"]):t}}),!st.support.pixelPosition&&st.fn.position&&st.each(["top","left"],function(e,n){st.cssHooks[n]={get:function(e,r){return r?(r=un(e,n),yn.test(r)?st(e).position()[n]+"px":r):t}}})}),st.expr&&st.expr.filters&&(st.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!st.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||st.css(e,"display"))},st.expr.filters.visible=function(e){return!st.expr.filters.hidden(e)}),st.each({margin:"",padding:"",border:"Width"},function(e,t){st.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+wn[r]+t]=o[r]||o[r-2]||o[0];return i}},gn.test(e)||(st.cssHooks[e+t].set=C)});var Cn=/%20/g,kn=/\[\]$/,En=/\r?\n/g,Sn=/^(?:submit|button|image|reset)$/i,An=/^(?:input|select|textarea|keygen)/i;st.fn.extend({serialize:function(){return st.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=st.prop(this,"elements");return e?st.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!st(this).is(":disabled")&&An.test(this.nodeName)&&!Sn.test(e)&&(this.checked||!Zt.test(e))}).map(function(e,t){var n=st(this).val();return null==n?null:st.isArray(n)?st.map(n,function(e){return{name:t.name,value:e.replace(En,"\r\n")}}):{name:t.name,value:n.replace(En,"\r\n")}}).get()}}),st.param=function(e,n){var r,i=[],o=function(e,t){t=st.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=st.ajaxSettings&&st.ajaxSettings.traditional),st.isArray(e)||e.jquery&&!st.isPlainObject(e))st.each(e,function(){o(this.name,this.value)});else for(r in e)j(r,e[r],n,o);return i.join("&").replace(Cn,"+")};var jn,Dn,Ln=st.now(),Hn=/\?/,Mn=/#.*$/,qn=/([?&])_=[^&]*/,_n=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Fn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,On=/^(?:GET|HEAD)$/,Bn=/^\/\//,Pn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Rn=st.fn.load,Wn={},$n={},In="*/".concat("*");try{Dn=Y.href}catch(zn){Dn=V.createElement("a"),Dn.href="",Dn=Dn.href}jn=Pn.exec(Dn.toLowerCase())||[],st.fn.load=function(e,n,r){if("string"!=typeof e&&Rn)return Rn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),st.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(o="POST"),s.length>0&&st.ajax({url:e,type:o,dataType:"html",data:n}).done(function(e){a=arguments,s.html(i?st("").append(st.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,a||[e.responseText,t,e])}),this},st.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){st.fn[t]=function(e){return this.on(t,e)}}),st.each(["get","post"],function(e,n){st[n]=function(e,r,i,o){return st.isFunction(r)&&(o=o||i,i=r,r=t),st.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),st.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dn,type:"GET",isLocal:Fn.test(jn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":In,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":st.parseJSON,"text xml":st.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,st.ajaxSettings),t):H(st.ajaxSettings,e)},ajaxPrefilter:D(Wn),ajaxTransport:D($n),ajax:function(e,n){function r(e,n,r,s){var l,f,v,b,T,N=n;2!==x&&(x=2,u&&clearTimeout(u),i=t,a=s||"",w.readyState=e>0?4:0,r&&(b=M(p,w,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=w.getResponseHeader("Last-Modified"),T&&(st.lastModified[o]=T),T=w.getResponseHeader("etag"),T&&(st.etag[o]=T)),304===e?(l=!0,N="notmodified"):(l=q(p,b),N=l.state,f=l.data,v=l.error,l=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),w.status=e,w.statusText=(n||N)+"",l?g.resolveWith(d,[f,N,w]):g.rejectWith(d,[w,N,v]),w.statusCode(y),y=t,c&&h.trigger(l?"ajaxSuccess":"ajaxError",[w,p,l?f:v]),m.fireWith(d,[w,N]),c&&(h.trigger("ajaxComplete",[w,p]),--st.active||st.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,u,l,c,f,p=st.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?st(d):st.event,g=st.Deferred(),m=st.Callbacks("once memory"),y=p.statusCode||{},v={},b={},x=0,T="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!s)for(s={};t=_n.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=b[n]=b[n]||e,v[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)y[t]=[y[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(g.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Dn)+"").replace(Mn,"").replace(Bn,jn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=st.trim(p.dataType||"*").toLowerCase().match(lt)||[""],null==p.crossDomain&&(l=Pn.exec(p.url.toLowerCase()),p.crossDomain=!(!l||l[1]===jn[1]&&l[2]===jn[2]&&(l[3]||("http:"===l[1]?80:443))==(jn[3]||("http:"===jn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=st.param(p.data,p.traditional)),L(Wn,p,n,w),2===x)return w;c=p.global,c&&0===st.active++&&st.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!On.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(Hn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=qn.test(o)?o.replace(qn,"$1_="+Ln++):o+(Hn.test(o)?"&":"?")+"_="+Ln++)),p.ifModified&&(st.lastModified[o]&&w.setRequestHeader("If-Modified-Since",st.lastModified[o]),st.etag[o]&&w.setRequestHeader("If-None-Match",st.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+In+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)w.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,w,p)===!1||2===x))return w.abort();T="abort";for(f in{success:1,error:1,complete:1})w[f](p[f]);if(i=L($n,p,n,w)){w.readyState=1,c&&h.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(u=setTimeout(function(){w.abort("timeout")},p.timeout));try{x=1,i.send(v,r)}catch(N){if(!(2>x))throw N;r(-1,N)}}else r(-1,"No Transport");return w},getScript:function(e,n){return st.get(e,t,n,"script")},getJSON:function(e,t,n){return st.get(e,t,n,"json")}}),st.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return st.globalEval(e),e}}}),st.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),st.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=V.head||st("head")[0]||V.documentElement;return{send:function(t,i){n=V.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Xn=[],Un=/(=)\?(?=&|$)|\?\?/;st.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xn.pop()||st.expando+"_"+Ln++;return this[e]=!0,e}}),st.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Un.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Un.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=st.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Un,"$1"+o):n.jsonp!==!1&&(n.url+=(Hn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||st.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Xn.push(o)),s&&st.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Vn,Yn,Jn=0,Gn=e.ActiveXObject&&function(){var e;for(e in Vn)Vn[e](t,!0)};st.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&_()||F()}:_,Yn=st.ajaxSettings.xhr(),st.support.cors=!!Yn&&"withCredentials"in Yn,Yn=st.support.ajax=!!Yn,Yn&&st.ajaxTransport(function(n){if(!n.crossDomain||st.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,f,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=st.noop,Gn&&delete Vn[a]),i)4!==u.readyState&&u.abort();else{f={},s=u.status,p=u.responseXML,c=u.getAllResponseHeaders(),p&&p.documentElement&&(f.xml=p),"string"==typeof u.responseText&&(f.text=u.responseText);try{l=u.statusText}catch(d){l=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=f.text?200:404}}catch(h){i||o(-1,h)}f&&o(s,l,f,c)},n.async?4===u.readyState?setTimeout(r):(a=++Jn,Gn&&(Vn||(Vn={},st(e).unload(Gn)),Vn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Qn,Kn,Zn=/^(?:toggle|show|hide)$/,er=RegExp("^(?:([+-])=|)("+ut+")([a-z%]*)$","i"),tr=/queueHooks$/,nr=[W],rr={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=er.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(st.cssNumber[e]?"":"px"),"px"!==r&&s){s=st.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,st.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};st.Animation=st.extend(P,{tweener:function(e,t){st.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],rr[n]=rr[n]||[],rr[n].unshift(t)},prefilter:function(e,t){t?nr.unshift(e):nr.push(e)}}),st.Tween=$,$.prototype={constructor:$,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(st.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.pos=t=this.options.duration?st.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=st.css(e.elem,e.prop,"auto"),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){st.fx.step[e.prop]?st.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[st.cssProps[e.prop]]||st.cssHooks[e.prop])?st.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},st.each(["toggle","show","hide"],function(e,t){var n=st.fn[t];st.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(I(t,!0),e,r,i)}}),st.fn.extend({fadeTo:function(e,t,n,r){return this.filter(w).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=st.isEmptyObject(e),o=st.speed(t,n,r),a=function(){var t=P(this,st.extend({},e),o);a.finish=function(){t.stop(!0)},(i||st._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=st.timers,a=st._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&tr.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&st.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=st._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=st.timers,a=r?r.length:0;for(n.finish=!0,st.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),st.each({slideDown:I("show"),slideUp:I("hide"),slideToggle:I("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){st.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),st.speed=function(e,t,n){var r=e&&"object"==typeof e?st.extend({},e):{complete:n||!n&&t||st.isFunction(e)&&e,duration:e,easing:n&&t||t&&!st.isFunction(t)&&t};return r.duration=st.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in st.fx.speeds?st.fx.speeds[r.duration]:st.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){st.isFunction(r.old)&&r.old.call(this),r.queue&&st.dequeue(this,r.queue)},r},st.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},st.timers=[],st.fx=$.prototype.init,st.fx.tick=function(){var e,n=st.timers,r=0;for(Qn=st.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||st.fx.stop(),Qn=t},st.fx.timer=function(e){e()&&st.timers.push(e)&&st.fx.start()},st.fx.interval=13,st.fx.start=function(){Kn||(Kn=setInterval(st.fx.tick,st.fx.interval))},st.fx.stop=function(){clearInterval(Kn),Kn=null},st.fx.speeds={slow:600,fast:200,_default:400},st.fx.step={},st.expr&&st.expr.filters&&(st.expr.filters.animated=function(e){return st.grep(st.timers,function(t){return e===t.elem}).length}),st.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){st.offset.setOffset(this,e,t)});var n,r,i={top:0,left:0},o=this[0],a=o&&o.ownerDocument;if(a)return n=a.documentElement,st.contains(n,o)?(o.getBoundingClientRect!==t&&(i=o.getBoundingClientRect()),r=z(a),{top:i.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:i.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):i},st.offset={setOffset:function(e,t,n){var r=st.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=st(e),s=a.offset(),u=st.css(e,"top"),l=st.css(e,"left"),c=("absolute"===r||"fixed"===r)&&st.inArray("auto",[u,l])>-1,f={},p={};c?(p=a.position(),i=p.top,o=p.left):(i=parseFloat(u)||0,o=parseFloat(l)||0),st.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+i),null!=t.left&&(f.left=t.left-s.left+o),"using"in t?t.using.call(e,f):a.css(f)}},st.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===st.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),st.nodeName(e[0],"html")||(n=e.offset()),n.top+=st.css(e[0],"borderTopWidth",!0),n.left+=st.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-st.css(r,"marginTop",!0),left:t.left-n.left-st.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||V.documentElement;e&&!st.nodeName(e,"html")&&"static"===st.css(e,"position");)e=e.offsetParent;return e||V.documentElement})}}),st.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);st.fn[e]=function(i){return st.access(this,function(e,i,o){var a=z(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?st(a).scrollLeft():o,r?o:st(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}}),st.each({Height:"height",Width:"width"},function(e,n){st.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){st.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return st.access(this,function(n,r,i){var o;return st.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?st.css(n,r,s):st.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=st,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return st})})(window);
+//@ sourceMappingURL=jquery.min.map
\ No newline at end of file
diff --git a/test/express4_error_handling/public/javascripts/test_cases.js b/test/express4_error_handling/public/javascripts/test_cases.js
new file mode 100644
index 0000000..09387c0
--- /dev/null
+++ b/test/express4_error_handling/public/javascripts/test_cases.js
@@ -0,0 +1,107 @@
+
+;
+(function(){var tmpl;return tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var count,i,__repress,_i,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/big_file/input.toffee"),__locals){for(__toffee.out=[],_ts(1),_ts(2),count=0,i=_i=0;2>_i;i=++_i)_ts(1),_ts(1),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"..."),_ts(1),_to(" "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"...");return __toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/big_file/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("0... 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... 70... 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... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/comments/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_ts(2),_ts(1),_to("\n"),_to("Pass 2\n"),_ts(2),_ts(2),_ts(1),_to("\n"),_to("Pass 3"),_ts(2),_ts(1),_to("\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/comments/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_to("\n"),_to("Pass 2\n"),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var w,x,y,z,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/custom_escape/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("\n"),_to(" custom x = "),_to(""+(null!=x?escape(x):"")),_to("\n"),_to(" custom y = "),_to(""+(null!=y?escape(y):"")),_to("\n"),_to(" custom z = "),_to(""+(null!=z?escape(z):"")),_to("\n"),_to(" custom w = "),_to(""+(null!=w?escape(w):"")),_to("\n"),_to("
"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/custom_escape/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(" custom x = Helloworldscriptvarx100script\n"),_to(" custom y = td\n"),_to(" custom z = clickclack\n"),_to(" custom w = 12objectObject\n"),_to("
"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var f,friends,project,__repress,_i,_len,_ln,_ref,_ref1,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/input.toffee"),__locals){if(__toffee.out=[],_ts(1),_ts(2),this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}],this.projects.length)for(_ref1=this.projects,_i=0,_len=_ref1.length;_len>_i;_i++)project=_ref1[_i],_ts(1),_ts(1),_to("\n"),_to(' '),_to(""+escape(project.name)),_to(" \n"),_to(" "),_to(""+escape(project.description)),_to("
\n"),_to(" "),_ts(2);else _ts(1),_ts(1),_to(" No projects "),_ts(2);return friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}],_ts(1),_to("\n"),_to("\n"),_to("You have "),_to(""+escape(function(){var e,t,_;for(_=[],e=0,t=friends.length;t>e;e++)f=friends[e],"f"===f.gender&&_.push(f);return _}().length)),_to(" female friends."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/eco_compare/output.toffee"]={bundlePath:"/eco_compare/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(' okcupid \n'),_to(" A site for singles
\n"),_to(" \n"),_to(' tallygram \n'),_to(" A site for anyone
\n"),_to(" \n"),_to("\n"),_to("You have 3 female friends."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var w,x,y,z,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/escape/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y=" ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("\n"),_to(" default x = "),_to(""+(null!=x?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(null!=y?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(null!=z?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(null!=w?escape(w):"")),_to("\n"),_to(" default r = "),_to(""+("undefined"!=typeof r&&null!==r?escape(r):"")),_to("\n"),_to(" default w.foo = "),_to(""+escape(w.foo)),_to("\n"),_to("
\n"),_to("\n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("
\n"),_to("\n"),_to("\n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("
\n"),_to("\n"),_ts(2),_ts(2),print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n"),print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n"),print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n"),print(" json printed w = "+raw(raw(raw(raw(json(w)))))),_ts(1),_to("\n"),_to("
\n"),_to("\n"),_ts(2),_ts(2),print(" html printed longhand x = "+__toffee.html(x)+"\n"),print(" html printed longhand y = "+__toffee.html(y)+"\n"),print(" html printed longhand z = "+__toffee.html(z)+"\n"),print(" html printed longhand w = "+__toffee.html(w)),_ts(1),_to("\n"),_to("
"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/escape/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(" default x = "Hello world"\n"),_to(" default y = <hr />\n"),_to(" default z = click&clack\n"),_to(' default w = [1,2,{"place":"The Dreadfort"}]\n'),_to(" default r = \n"),_to(" default w.foo = \n"),_to("
\n"),_to("\n"),_to(' raw x = "Hello world"\n'),_to(" raw y =
\n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("\n"),_to("\n"),_to("\n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =
\n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("\n"),_to("\n"),_to(' json printed x = "\\"Hello world\\""\n'),_to(' json printed y = "\\u003Chr /\\u003E"\n'),_to(' json printed z = "click\\u0026clack"\n'),_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n'),_to("
\n"),_to("\n"),_to(" html printed longhand x = "Hello world"\n"),_to(" html printed longhand y = <hr />\n"),_to(" html printed longhand z = click&clack\n"),_to(" html printed longhand w = 1,2,[object Object]\n"),_to("
"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof greeting&&null!==greeting?escape(greeting):"")),_to(", world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/temp.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_to("b\n"),_to("c\n"),_to(""+escape(passed_fn(100))),_to("\n"),_to("d\n"),_to("e\n"),_to("f"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/child.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_ts(2),_ts(2),say_hi(),_ts(1),_to("\n"),_to("b"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var say_hi,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),say_hi=function(){return _ts(1),_ts(1),_to("hi"),_ts(2)},_ts(1),_to("1\n"),_to("2\n"),_to(""+partial("child.toffee",{say_hi:say_hi})),_to("\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("1\n"),_to("2\n"),_to("hia\n"),_to("\n"),_to("b\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),0===countdown?(_ts(1),_ts(1),_to("blastoff!"),_ts(2)):print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("10...9...8...7...6...5...4...3...2...1...blastoff!"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Chris "})),_to("\n"),_to(""+partial("message.toffee",{from:"Max & Sam"})),_to("\n"),_ts(2),_ts(2),print(partial("message.toffee",{from:"Christian"})),_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Jennie"})),_ts(2),print(partial("message.toffee",{sender:"The enemy"})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"},tmpl.render=tmpl.pub=function(__locals){var from,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/message.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown",_ts(1),_to("From: "),_to(""+(null!=from?escape(from):"")),_to(" \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Chris <ccoyne77@gmail> \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Max & Sam \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Christian \n"),_to("Msg: Hello, world\n"),_to("From: Jennie \n"),_to("Msg: Hello, world\n"),_to("From: Unknown \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var i,square,x,__repress,_i,_j,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/indent_attack/input.toffee"),__locals){if(__toffee.out=[],_ts(1),_ts(1),_to(" \n"),_to(" "),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass1"),_ts(2),_ts(1),_ts(1),_to("Pass2"),_ts(2),_ts(1),_to("\n"),_to(" \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass3"),_ts(2),_ts(1),_ts(1),_to("Pass4"),_ts(2),_ts(1),_to("\n"),_to(" \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass5"),_ts(2),_ts(1),_ts(1),_to("Pass6"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),print("Pass7"),_ts(1),_ts(1),_to("Pass8"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("...passed with flying colors."),_ts(2),_ts(1),_to("\n"),_to("\n"),_to(" "),_ts(2),_ts(2),x=20,x>1)for(i=_i=12;x>=12?x>_i:_i>x;i=x>=12?++_i:--_i)square=16,_ts(1),_ts(1),_to("Pass"),_to(""+(null!=i?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2));if(_ts(1),_to("\n"),_to(" "),_ts(2),_ts(2),x=20,x>1){for(i=_j=12;x>=12?x>_j:_j>x;i=x>=12?++_j:--_j)square=16;_ts(1),_ts(1),_to("Pass"),_to(""+(null!=i?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2))}return _ts(1),_to("\n"),_to("
"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/indent_attack/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(" \n"),_to(" Pass1Pass2\n"),_to(" \n"),_to("\n"),_to("Pass3Pass4\n"),_to(" \n"),_to("\n"),_to("Pass5Pass6\n"),_to("\n"),_to("Pass7Pass8\n"),_to("\n"),_to("...passed with flying colors.\n"),_to("\n"),_to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n"),_to(" Pass20\n"),_to("
"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var supplies,supply,__repress,_i,_len,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/junk/input.toffee"),__locals){for(__toffee.out=[],_ts(1),_ts(2),supplies=["broom","mop","vacuum"],_ts(1),_to("\n"),_to(" "),_ts(2),_ts(2),_i=0,_len=supplies.length;_len>_i;_i++)supply=supplies[_i],_ts(1),_ts(1),_to(""),_to(""+(null!=supply?escape(supply):"")),_to(" "),_ts(2);return _ts(1),_to("\n"),_to(" "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/junk/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(" broom mop vacuum \n"),_to(" "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var echo_it,print_it,print_it_twice,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/lambda_fns/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),print_it=function(t){return _ts(1),_ts(1),_to(""+(null!=t?escape(t):"")),_ts(2)},print_it_twice=function(t){var _;return _ts(1),_ts(1),_to(""+(null!=t?escape(t):"")),_ts(2),_=t,_ts(1),_ts(1),_to(""+(null!=_?escape(_):"")),_ts(2)},echo_it=function(t){var _;return _=t},print_it("Pass"),print_it_twice("Pass"),print(echo_it("Pass")),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/lambda_fns/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("PassPassPassPass"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/foo.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof a&&null!==a?escape(a):"")),_to(" "),_to(""+("undefined"!=typeof b&&null!==b?escape(b):"")),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+escape("Hello, world")),_to("\n"),_to(" \n"),_to(""+partial("foo.toffee",{a:"Goodbye,",b:"world"})),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world\n"),_to(" \n"),_to("Goodbye, world"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/const1.toffee"]={bundlePath:"/passback/const1.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const1.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx1",passback.vy="vy1",passback.x="oh shit",passback.y="oh noze",_ts(1),_to("\n"),_to("This should output (1)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/const2.toffee"]={bundlePath:"/passback/const2.toffee"},tmpl.render=tmpl.pub=function(__locals){var vx,vy,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const2.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vz="vz2",vx="Should not set.",vy="Should not set.",_ts(1),_to("\n"),_to("This should not output (2)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/const3.toffee"]={bundlePath:"/passback/const3.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const3.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx3",passback.vy="vy3",_ts(1),_to("\n"),_to("This should not output (3)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/const4.toffee"]={bundlePath:"/passback/const4.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const4.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx4",passback.vy="vy4",partial("./const4_sub.toffee"),_ts(1),_to("\n"),_to("This should not output (4)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/const4_sub.toffee"]={bundlePath:"/passback/const4_sub.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/const4_sub.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx4_sub",passback.vy="vy4_sub",_ts(1),_to("\n"),_to("This should not output (4_sub)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/const5.toffee"]={bundlePath:"/passback/const5.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const5.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx5",passback.vy="vy5",print(load("./const5_sub.toffee")),passback.vx=vx,passback.vy=vy,_ts(1),_to("\n"),_to("This should not output (5)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/const5_sub.toffee"]={bundlePath:"/passback/const5_sub.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/const5_sub.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx5_sub",passback.vy="vy5_sub",_ts(1),_to("\n"),_to("This should not output (5_sub)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/input.toffee"]={bundlePath:"/passback/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+partial("./const1.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const2.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const3.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const4.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const5.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/passback/output.toffee"]={bundlePath:"/passback/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("vx,vy,vz = vx0,,\n"),_to("\n"),_to("This should output (1).\n"),_to("vx,vy,vz = vx1,vy1,\n"),_to("\n"),_to("vx,vy,vz = vx1,vy1,vz2\n"),_to("\n"),_to("vx,vy,vz = vx3,vy3,vz2\n"),_to("\n"),_to("vx,vy,vz = vx4,vy4,vz2\n"),_to("\n"),_to("vx,vy,vz = vx5_sub,vy5_sub,vz2"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/post_process/buncha_junk.toffee"]={bundlePath:"/post_process/buncha_junk.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/buncha_junk.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("T3246h354is345-i3245s345-534a534-h534i543d534d534e534n543-m534e543s543s543ag5e534.543"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/post_process/input.toffee"]={bundlePath:"/post_process/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var clean,reverse,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof greeting&&null!==greeting?escape(greeting):"")),_to(", world. \n"),_to(""+partial("./signature.toffee")),_to("\n"),_ts(2),_ts(2),reverse=function(e){var t;return function(){var _,o;for(o=[],_=e.length-1;_>=0;_+=-1)t=e[_],o.push(t);return o}().join("")},clean=function(e){var t;return function(){var _,o,n;for(n=[],_=0,o=e.length;o>_;_++)t=e[_],t.match(/[a-z\-]/gi)&&n.push(t);return n}().join("")},_ts(1),_to("\n"),_to(""+partial("./buncha_junk.toffee",{postProcess:function(e){return reverse(clean(e))}})),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/post_process/output.toffee"]={bundlePath:"/post_process/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("This-is-a-hidden-message\n"),_to("\n"),_to(".dlrow leurc ,eybdooG\n"),_to(" .dlrow ,olleH"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/post_process/signature.toffee"]={bundlePath:"/post_process/signature.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/signature.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Goodbye, cruel world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/render_no_args/input.toffee"]={bundlePath:"/render_no_args/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/render_no_args/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("No arguments passed."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/render_no_args/output.toffee"]={bundlePath:"/render_no_args/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/render_no_args/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("No arguments passed."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/snippets/foo/bar/body.toffee"]={bundlePath:"/snippets/foo/bar/body.toffee"},tmpl.render=tmpl.pub=function(__locals){var msg,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/foo/bar/body.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),msg=msg||"Unknown message",print(msg),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/snippets/foo/message.toffee"]={bundlePath:"/snippets/foo/message.toffee"},tmpl.render=tmpl.pub=function(__locals){var from,msg,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/foo/message.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown sender",msg=msg||"Unknown message.",print("From: "+from+"\n"+snippet("./bar/body.toffee",{msg:msg})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/snippets/input.toffee"]={bundlePath:"/snippets/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("./foo/message.toffee")),_to("\n"),_to(""+escape(snippet("./foo/message.toffee"))),_to("\n"),_to(""+partial("./foo/message.toffee",{from:"Sam"})),_to("\n"),_to(""+escape(snippet("./foo/message.toffee",{from:"Max"}))),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/snippets/output.toffee"]={bundlePath:"/snippets/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Preloaded sender\n"),_to("Preloaded message.\n"),_to("From: Unknown sender\n"),_to("Unknown message.\n"),_to("From: Sam\n"),_to("Preloaded message.\n"),_to("From: Max\n"),_to("Unknown message."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/special_cases/input.toffee"]={bundlePath:"/special_cases/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/special_cases/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to('"PASSED"'),_ts(2),_ts(1),_to("\n"),_ts(2),_ts(1),_to("\n"),_to("\n"),_to(" "),_to(""+print("click & clack ")),_to("\n"),_to("
\n"),_ts(2),_ts(1),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
+;
+(function(){var tmpl;return tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/special_cases/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to('"PASSED"\n'),_to("\n"),_to("\n"),_to(" click & clack \n"),_to("
\n"),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this);
\ No newline at end of file
diff --git a/test/express4_error_handling/public/javascripts/toffee.js b/test/express4_error_handling/public/javascripts/toffee.js
new file mode 100644
index 0000000..482625c
--- /dev/null
+++ b/test/express4_error_handling/public/javascripts/toffee.js
@@ -0,0 +1,205 @@
+var toffee;
+
+
+
+if (typeof toffee === "undefined" || toffee === null) {
+ toffee = {};
+}
+
+if (!toffee.templates) {
+ toffee.templates = {};
+}
+
+toffee.states = {
+ "TOFFEE": 1,
+ "COFFEE": 2
+};
+
+toffee.__json = function(locals, o) {
+ if (o == null) {
+ return "null";
+ } else {
+ return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026');
+ }
+};
+
+toffee.__raw = function(locals, o) {
+ return o;
+};
+
+toffee.__html = function(locals, o) {
+ return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"');
+};
+
+toffee.__escape = function(locals, o) {
+ var ae;
+ if (locals.__toffee.autoEscape != null) {
+ ae = locals.__toffee.autoEscape;
+ } else if (true) {
+ ae = true;
+ } else {
+ ae = true;
+ }
+ if (ae) {
+ if (o === void 0) {
+ return '';
+ }
+ if ((o != null) && (typeof o) === "object") {
+ return locals.json(o);
+ }
+ return locals.html(o);
+ }
+ return o;
+};
+
+toffee.__augmentLocals = function(locals, bundle_path) {
+ var _l, _t;
+ _l = locals;
+ _t = _l.__toffee = {
+ out: []
+ };
+ if (_l.print == null) {
+ _l.print = function(o) {
+ return toffee.__print(_l, o);
+ };
+ }
+ if (_l.json == null) {
+ _l.json = function(o) {
+ return toffee.__json(_l, o);
+ };
+ }
+ if (_l.raw == null) {
+ _l.raw = function(o) {
+ return toffee.__raw(_l, o);
+ };
+ }
+ if (_l.html == null) {
+ _l.html = function(o) {
+ return toffee.__html(_l, o);
+ };
+ }
+ if (_l.escape == null) {
+ _l.escape = function(o) {
+ return toffee.__escape(_l, o);
+ };
+ }
+ if (_l.partial == null) {
+ _l.partial = function(path, vars) {
+ return toffee.__partial(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ if (_l.snippet == null) {
+ _l.snippet = function(path, vars) {
+ return toffee.__snippet(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ if (_l.load == null) {
+ _l.load = function(path, vars) {
+ return toffee.__load(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ _t.print = _l.print;
+ _t.json = _l.json;
+ _t.raw = _l.raw;
+ _t.html = _l.html;
+ _t.escape = _l.escape;
+ _t.partial = _l.partial;
+ _t.snippet = _l.snippet;
+ return _t.load = _l.load;
+};
+
+toffee.__print = function(locals, o) {
+ if (locals.__toffee.state === toffee.states.COFFEE) {
+ locals.__toffee.out.push(o);
+ return '';
+ } else {
+ return "" + o;
+ }
+};
+
+toffee.__normalize = function(path) {
+ var np, part, parts, _i, _len;
+ if ((path == null) || path === "/") {
+ return path;
+ } else {
+ parts = path.split("/");
+ np = [];
+ if (parts[0]) {
+ np.push('');
+ }
+ for (_i = 0, _len = parts.length; _i < _len; _i++) {
+ part = parts[_i];
+ if (part === "..") {
+ if (np.length > 1) {
+ np.pop();
+ } else {
+ np.push(part);
+ }
+ } else {
+ if (part !== ".") {
+ np.push(part);
+ }
+ }
+ }
+ path = np.join("/");
+ if (!path) {
+ path = "/";
+ }
+ return path;
+ }
+};
+
+toffee.__partial = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
+
+toffee.__snippet = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ vars = vars != null ? vars : {};
+ vars.__toffee = vars.__toffee || {};
+ vars.__toffee.noInheritance = true;
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
+
+toffee.__load = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ vars = vars != null ? vars : {};
+ vars.__toffee = vars.__toffee || {};
+ vars.__toffee.repress = true;
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
+
+toffee.__inlineInclude = function(path, locals, parent_locals) {
+ var k, options, res, reserved, v, _i, _len, _ref, _ref1;
+ options = locals || {};
+ options.passback = {};
+ options.__toffee = options.__toffee || {};
+ reserved = {};
+ _ref = ["passback", "load", "print", "partial", "snippet", "layout", "__toffee", "postProcess"];
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ k = _ref[_i];
+ reserved[k] = true;
+ }
+ if (!options.__toffee.noInheritance) {
+ for (k in parent_locals) {
+ v = parent_locals[k];
+ if ((locals != null ? locals[k] : void 0) == null) {
+ if (reserved[k] == null) {
+ options[k] = v;
+ }
+ }
+ }
+ }
+ if (!toffee.templates[path]) {
+ return "Inline toffee include: Could not find " + path;
+ } else {
+ res = toffee.templates[path].pub(options);
+ _ref1 = options.passback;
+ for (k in _ref1) {
+ v = _ref1[k];
+ parent_locals[k] = v;
+ }
+ return res;
+ }
+};
diff --git a/test/express4_error_handling/public/stylesheets/style.css b/test/express4_error_handling/public/stylesheets/style.css
new file mode 100644
index 0000000..30e047d
--- /dev/null
+++ b/test/express4_error_handling/public/stylesheets/style.css
@@ -0,0 +1,8 @@
+body {
+ padding: 50px;
+ font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
+}
+
+a {
+ color: #00B7FF;
+}
\ No newline at end of file
diff --git a/test/express4_error_handling/routes/index.js b/test/express4_error_handling/routes/index.js
new file mode 100644
index 0000000..b609354
--- /dev/null
+++ b/test/express4_error_handling/routes/index.js
@@ -0,0 +1,19 @@
+
+/*
+ * GET home page.
+ */
+
+exports.index = function(req, res){
+ var vars = { }
+ res.render('index.toffee', vars);
+};
+
+/*
+ * individual test cases
+*/
+
+exports.path = function(req, res){
+ var vars = { };
+ vars.path = req.params.path
+ res.render("./" + vars.path + ".toffee", vars);
+};
diff --git a/test/express4_error_handling/views/index.toffee b/test/express4_error_handling/views/index.toffee
new file mode 100644
index 0000000..ee48515
--- /dev/null
+++ b/test/express4_error_handling/views/index.toffee
@@ -0,0 +1,37 @@
+
+
+ Express 3 Test
+
+
+
+ {#
+ ports = [3034, 3035]
+ percent = ~~(100 / (ports.length)) - 2
+ tests = [
+ ["test_bad_str_interpolate", 300]
+ ["test_bad_toffee_syntax", 300]
+ ["test_bad_coffee_syntax", 300]
+ ["test_bad_runtime", 300]
+ ]
+ #}
+
+
+
+ {#
+ for [t,height] in tests
+ {:#{t} :}
+ for p in ports
+ {:
+
+
+
+ :}
+ {: :}
+ #}
+
+
+
\ No newline at end of file
diff --git a/test/express4_error_handling/views/test_bad_coffee_syntax.toffee b/test/express4_error_handling/views/test_bad_coffee_syntax.toffee
new file mode 100644
index 0000000..1df5dd2
--- /dev/null
+++ b/test/express4_error_handling/views/test_bad_coffee_syntax.toffee
@@ -0,0 +1,15 @@
+
+{#
+ x = "Foo"
+#}
+
+{#
+ y = "Bar"
+ {:
+ Hello there
+ {#
+ var x = 100
+ #}
+ :}
+#}
+Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah
\ No newline at end of file
diff --git a/test/express4_error_handling/views/test_bad_runtime.toffee b/test/express4_error_handling/views/test_bad_runtime.toffee
new file mode 100644
index 0000000..0a8d912
--- /dev/null
+++ b/test/express4_error_handling/views/test_bad_runtime.toffee
@@ -0,0 +1,13 @@
+
+About to convert a circular JSON structure
+
+{#
+ x = [1,2,3]
+ x.push x
+ {:
+ x as JSON
+ {#
+ print JSON.stringify x
+ #}
+ :}
+#}
diff --git a/test/express4_error_handling/views/test_bad_str_interpolate.toffee b/test/express4_error_handling/views/test_bad_str_interpolate.toffee
new file mode 100644
index 0000000..d0e946d
--- /dev/null
+++ b/test/express4_error_handling/views/test_bad_str_interpolate.toffee
@@ -0,0 +1,6 @@
+
+This is a bad variable.
+
+foo.bar = #{foo.bar}
+
+Hah.
\ No newline at end of file
diff --git a/test/express4_error_handling/views/test_bad_toffee_syntax.toffee b/test/express4_error_handling/views/test_bad_toffee_syntax.toffee
new file mode 100644
index 0000000..d5dff31
--- /dev/null
+++ b/test/express4_error_handling/views/test_bad_toffee_syntax.toffee
@@ -0,0 +1,10 @@
+
+{#
+ x = "Foo"
+#}
+
+{#
+ {: :}
+ y = "Bar"
+ {:
+#}
diff --git a/test/generate_express_test.coffee b/test/generate_express_test.coffee
new file mode 100644
index 0000000..d62dbae
--- /dev/null
+++ b/test/generate_express_test.coffee
@@ -0,0 +1,96 @@
+{spawn, exec} = require 'child_process'
+fs = require 'fs'
+path = require 'path'
+coffee = require 'coffee-script'
+
+
+generateExpressTest = (cb) ->
+
+ proc = spawn path.join(__dirname,"../node_modules/.bin/coffee"), ['./src/command_line.coffee', '-n', './test/cases', '-o', './test/express4/public/javascripts/test_cases.js']
+ proc.stderr.on 'data', (buffer) -> console.log buffer.toString()
+ proc.stdout.on 'data', (buffer) -> console.log buffer.toString()
+ proc.on 'exit', (status) ->
+ if status isnt 0
+ console.log "Error running command line. #{status}"
+ process.exit 1
+ cb() if typeof cb is 'function'
+
+ {getCommonHeadersJs} = require '../lib/view'
+ headers = getCommonHeadersJs true, true
+ fs.writeFileSync "./test/express4/public/javascripts/toffee.js", headers, "utf8"
+
+ # generate an index page that tests them all
+
+ test_page = """
+
+
+ Testing Toffee in the Browser
+
+
+
+
+
+
+
+
+ FILE EXPECTED OUTPUT SERVER RENDER BROWSER RENDER
+ """
+
+ case_dirs = fs.readdirSync "./test/cases/"
+
+ for dir,i in case_dirs
+ expected_output = fs.readFileSync "./test/cases/#{dir}/output.toffee", "utf8"
+ if fs.existsSync "./test/cases/#{dir}/vars.coffee"
+ coffee_vars = fs.readFileSync "./test/cases/#{dir}/vars.coffee", "utf8"
+ js_vars = coffee.compile(coffee_vars, {bare: true}).replace(/;[ \n]*$/,'')
+ else if fs.existsSync "./test/cases/#{dir}/vars.js"
+ coffee_vars = fs.readFileSync "./test/cases/#{dir}/vars.js", "utf8"
+ js_vars = coffee_vars;
+ else
+ if dir == "render_no_args"
+ coffee_vars = ""
+ js_vars = ""
+ else
+ coffee_vars = "{}"
+ js_vars = "{}"
+ rid = i
+ test_page += """
+ \n\n\n
+
+ #{dir}
+ #{expected_output}
+ \#{partial '../../cases/#{dir}/input.toffee', #{coffee_vars}}
+
+
+
+ \n\n\n
+ """
+
+ test_page += """
+
+
+
+ """
+ fs.writeFileSync "./test/express4/views/index.toffee", test_page, "utf8"
+
+exports.generate = generateExpressTest
+
diff --git a/test/run_cases.coffee b/test/run_cases.coffee
deleted file mode 100644
index 440e464..0000000
--- a/test/run_cases.coffee
+++ /dev/null
@@ -1,60 +0,0 @@
-{engine} = require '../lib/engine'
-fs = require 'fs'
-path = require 'path'
-
-e = new engine({
- verbose: false
- prettyPrintErrors: false
-})
-
-run_case_dir = (dir, cb) ->
- expected = fs.readFileSync "#{dir}/output.toffee", "utf8"
- if path.existsSync "#{dir}/vars.js"
- vars = fs.readFileSync "#{dir}/vars.js", "utf8"
- vars = eval "(#{vars})"
- else
- vars = {}
- d = Date.now()
- e.run "#{dir}/input.toffee", vars, (err, res) ->
- time_ms = Date.now() - d
- if err
- cb err, time_ms
- else
- if res isnt expected
- cb "Failure in case #{dir}." +
- "\n\nExpected\n=====\n#{expected}\n=====" +
- "\nGot\n=====\n#{res}\n=====\n", time_ms
- else
- cb null, time_ms
-
-run_all_case_dirs = (cb) ->
- time_ms = 0
- case_dirs = fs.readdirSync "#{__dirname}/cases/"
- countdown = case_dirs.length
- for dir in case_dirs
- run_case_dir "#{__dirname}/cases/#{dir}", (err, ms) ->
- countdown--
- time_ms += ms
- if err
- console.log err
- process.exit 1
- if countdown is 0
- cb null, time_ms, case_dirs.length
-
-run_all_case_dirs (err, time, tests_run) ->
-
- console.log "SUCCESS for #{tests_run} cold tests in #{time}ms"
-
- times = []
- speed_runs = 20
- countdown = speed_runs
- total_time = 0
- total_tests = 0
- for i in [0...speed_runs]
- run_all_case_dirs (err, time, tests_run) ->
- countdown--
- total_time += time
- total_tests += tests_run
- if countdown is 0
- console.log "SUCCESS for #{total_tests} hot tests in #{total_time}ms. #{total_time / total_tests}ms/test"
- process.exit 0
\ No newline at end of file
diff --git a/test/run_cases.iced b/test/run_cases.iced
new file mode 100644
index 0000000..a64ec0e
--- /dev/null
+++ b/test/run_cases.iced
@@ -0,0 +1,106 @@
+{engine} = require '../lib/engine'
+fs = require 'fs'
+path = require 'path'
+Browser = require 'zombie'
+coffee = require 'coffee-script'
+tablify = require 'tablify'
+colors = require 'colors'
+jsdiff = require 'diff'
+
+regular_engine = new engine({
+ verbose: false
+ prettyPrintErrors: false
+})
+
+# ---------------------------------------------------------------
+
+MULTI_RUNS = 50
+
+file_cache = {}
+
+# ---------------------------------------------------------------
+
+read_file_sync = (fname) ->
+ if not file_cache[fname]?
+ file_cache[fname] = fs.readFileSync fname, "utf8"
+ return file_cache[fname]
+
+# ---------------------------------------------------------------
+
+run_case_dir = (eng, dir, cb) ->
+ start = Date.now()
+ expected = read_file_sync "#{dir}/output.toffee"
+ existsSync = if path.existsSync? then path.existsSync else fs.existsSync
+ if existsSync "#{dir}/vars.coffee"
+ txt = read_file_sync "#{dir}/vars.coffee"
+ vars = coffee.compile(txt, {bare: true})
+ vars = eval "#{vars}"
+ else if existsSync "#{dir}/vars.js"
+ vars = read_file_sync "#{dir}/vars.js"
+ vars = eval "(#{vars})"
+ else
+ vars = {}
+ vars["rand_#{Math.random()}"] = ("foo" for i in [0...(~~(20000*Math.random()))]).join ""
+ await eng.run "#{dir}/input.toffee", vars, defer err, res
+ time_ms = Date.now() - start
+ if err
+ cb err, time_ms
+ else
+ if res isnt expected
+ diff = jsdiff.diffLines res, expected
+ delta = ""
+ diff.forEach (part) ->
+ c = if part.added then 'green' else if part.removed then 'red' else 'grey'
+ v = part.value
+ delta += v[c]
+ cb "Failure in case #{dir}." +
+ "#{delta}", time_ms
+ else
+ cb null, time_ms
+
+run_all_case_dirs = (eng, cb) ->
+ start = Date.now()
+ case_dirs = fs.readdirSync "#{__dirname}/cases/"
+ for dir in case_dirs
+ await run_case_dir eng, "#{__dirname}/cases/#{dir}", defer err, ms
+ if err
+ console.log err
+ process.exit 1
+ cb null, (Date.now() - start), case_dirs.length
+
+run_multiple_runs = (eng, num_runs, cb) ->
+ total_tests = 0
+ start = Date.now()
+ for i in [0...num_runs]
+ await setTimeout defer(), 1
+ await run_all_case_dirs regular_engine, defer err, time, tests_run
+ total_tests += tests_run
+ cb null, (Date.now() - start), total_tests
+
+run_express_test = (cb) ->
+ require('./express4/app').run ->
+ browser = new Browser()
+ browser.visit 'http://127.0.0.1:3033', (e) ->
+ if e
+ console.log e
+ $ = browser.window.$
+ successes = $('.success').length
+ fails = $('.fail').length
+ if (fails is 0) and (successes > 0)
+ console.log "Express SUCCESS: #{successes} succeeded, #{fails} failed"
+ return cb()
+ console.log "BROWSER ERROR! Server left running at http://localhost:3033 for your convenience"
+
+# ----------------------------------------------------------------
+go = ->
+ await run_all_case_dirs regular_engine, defer err, time, tests_run
+ console.log "Regular Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)"
+ await run_multiple_runs regular_engine, MULTI_RUNS, defer err, time, tests_run
+ console.log "Regular Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)"
+ await run_express_test defer()
+ process.exit 0
+
+if not module.parent?
+ go()
+
+else exports.test = go
diff --git a/toffee.js b/toffee.js
index af1c6ee..5d6b01c 100644
--- a/toffee.js
+++ b/toffee.js
@@ -1,8505 +1,205 @@
+var toffee;
-(function(/*! Stitch !*/) {
- if (!this.require) {
- var modules = {}, cache = {}, require = function(name, root) {
- var path = expand(root, name), module = cache[path], fn;
- if (module) {
- return module.exports;
- } else if (fn = modules[path] || modules[path = expand(path, './index')]) {
- module = {id: path, exports: {}};
- try {
- cache[path] = module;
- fn(module.exports, function(name) {
- return require(name, dirname(path));
- }, module);
- return module.exports;
- } catch (err) {
- delete cache[path];
- throw err;
- }
- } else {
- throw 'module \'' + name + '\' not found';
- }
- }, expand = function(root, name) {
- var results = [], parts, part;
- if (/^\.\.?(\/|$)/.test(name)) {
- parts = [root, name].join('/').split('/');
- } else {
- parts = name.split('/');
- }
- for (var i = 0, length = parts.length; i < length; i++) {
- part = parts[i];
- if (part == '..') {
- results.pop();
- } else if (part != '.' && part != '') {
- results.push(part);
- }
- }
- return results.join('/');
- }, dirname = function(path) {
- return path.split('/').slice(0, -1).join('/');
- };
- this.require = function(name) {
- return require(name, '');
- }
- this.require.define = function(bundle) {
- for (var key in bundle)
- modules[key] = bundle[key];
- };
- }
- return this.require.define;
-}).call(this)({"coffee-script/browser": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var CoffeeScript, runScripts;
-
- CoffeeScript = require('./coffee-script');
-
- CoffeeScript.require = require;
+if (typeof toffee === "undefined" || toffee === null) {
+ toffee = {};
+}
- CoffeeScript["eval"] = function(code, options) {
- if (options == null) {
- options = {};
- }
- if (options.bare == null) {
- options.bare = true;
- }
- return eval(CoffeeScript.compile(code, options));
- };
+if (!toffee.templates) {
+ toffee.templates = {};
+}
- CoffeeScript.run = function(code, options) {
- if (options == null) {
- options = {};
- }
- options.bare = true;
- return Function(CoffeeScript.compile(code, options))();
- };
+toffee.states = {
+ "TOFFEE": 1,
+ "COFFEE": 2
+};
- if (typeof window === "undefined" || window === null) {
- return;
+toffee.__json = function(locals, o, opts) {
+ opts || (opts = {});
+ opts.indent || (opts.indent = "");
+ if (o == null) {
+ return "null";
+ } else {
+ return "" + JSON.stringify(o, null, opts.indent).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f').replace(/\u2066/g, '\\u2066').replace(/\u2067/g, '\\u2067').replace(/\u2068/g, '\\u2068').replace(/\u2069/g, '\\u2069');
}
+};
- CoffeeScript.load = function(url, callback) {
- var xhr;
- xhr = new (window.ActiveXObject || XMLHttpRequest)('Microsoft.XMLHTTP');
- xhr.open('GET', url, true);
- if ('overrideMimeType' in xhr) {
- xhr.overrideMimeType('text/plain');
- }
- xhr.onreadystatechange = function() {
- var _ref;
- if (xhr.readyState === 4) {
- if ((_ref = xhr.status) === 0 || _ref === 200) {
- CoffeeScript.run(xhr.responseText);
- } else {
- throw new Error("Could not load " + url);
- }
- if (callback) {
- return callback();
- }
- }
- };
- return xhr.send(null);
- };
+toffee.__raw = function(locals, o) {
+ return o;
+};
- runScripts = function() {
- var coffees, execute, index, length, s, scripts;
- scripts = document.getElementsByTagName('script');
- coffees = (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = scripts.length; _i < _len; _i++) {
- s = scripts[_i];
- if (s.type === 'text/coffeescript') {
- _results.push(s);
- }
- }
- return _results;
- })();
- index = 0;
- length = coffees.length;
- (execute = function() {
- var script;
- script = coffees[index++];
- if ((script != null ? script.type : void 0) === 'text/coffeescript') {
- if (script.src) {
- return CoffeeScript.load(script.src, execute);
- } else {
- CoffeeScript.run(script.innerHTML);
- return execute();
- }
- }
- })();
- return null;
- };
+toffee.__html = function(locals, o) {
+ return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\u200e/g, '').replace(/\u200f/g, '').replace(/\u202a/g, '').replace(/\u202b/g, '').replace(/\u202c/g, '').replace(/\u202d/g, '').replace(/\u202e/g, '').replace(/\u206a/g, '').replace(/\u206b/g, '').replace(/\u206c/g, '').replace(/\u206d/g, '').replace(/\u206e/g, '').replace(/\u206f/g, '').replace(/\u2066/g, '').replace(/\u2067/g, '').replace(/\u2068/g, '').replace(/\u2069/g, '');
+};
- if (window.addEventListener) {
- addEventListener('DOMContentLoaded', runScripts, false);
+toffee.__escape = function(locals, o) {
+ var ae;
+ if (locals.__toffee.autoEscape != null) {
+ ae = locals.__toffee.autoEscape;
+ } else if (true) {
+ ae = true;
} else {
- attachEvent('onload', runScripts);
+ ae = true;
}
-
-}).call(this);
-}, "coffee-script/cake": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var CoffeeScript, cakefileDirectory, fatalError, fs, helpers, missingTask, oparse, options, optparse, path, printTasks, switches, tasks;
-
- fs = require('fs');
-
- path = require('path');
-
- helpers = require('./helpers');
-
- optparse = require('./optparse');
-
- CoffeeScript = require('./coffee-script');
-
- tasks = {};
-
- options = {};
-
- switches = [];
-
- oparse = null;
-
- helpers.extend(global, {
- task: function(name, description, action) {
- var _ref;
- if (!action) {
- _ref = [description, action], action = _ref[0], description = _ref[1];
- }
- return tasks[name] = {
- name: name,
- description: description,
- action: action
- };
- },
- option: function(letter, flag, description) {
- return switches.push([letter, flag, description]);
- },
- invoke: function(name) {
- if (!tasks[name]) {
- missingTask(name);
- }
- return tasks[name].action(options);
- }
- });
-
- exports.run = function() {
- var arg, args, _i, _len, _ref, _results;
- global.__originalDirname = fs.realpathSync('.');
- process.chdir(cakefileDirectory(__originalDirname));
- args = process.argv.slice(2);
- CoffeeScript.run(fs.readFileSync('Cakefile').toString(), {
- filename: 'Cakefile'
- });
- oparse = new optparse.OptionParser(switches);
- if (!args.length) {
- return printTasks();
- }
- try {
- options = oparse.parse(args);
- } catch (e) {
- return fatalError("" + e);
- }
- _ref = options["arguments"];
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- arg = _ref[_i];
- _results.push(invoke(arg));
- }
- return _results;
- };
-
- printTasks = function() {
- var cakefilePath, desc, name, relative, spaces, task;
- relative = path.relative || path.resolve;
- cakefilePath = path.join(relative(__originalDirname, process.cwd()), 'Cakefile');
- console.log("" + cakefilePath + " defines the following tasks:\n");
- for (name in tasks) {
- task = tasks[name];
- spaces = 20 - name.length;
- spaces = spaces > 0 ? Array(spaces + 1).join(' ') : '';
- desc = task.description ? "# " + task.description : '';
- console.log("cake " + name + spaces + " " + desc);
+ if (ae) {
+ if (o === void 0) {
+ return '';
}
- if (switches.length) {
- return console.log(oparse.help());
+ if ((o != null) && (typeof o) === "object") {
+ return locals.json(o);
}
- };
-
- fatalError = function(message) {
- console.error(message + '\n');
- console.log('To see a list of all tasks/options, run "cake"');
- return process.exit(1);
- };
-
- missingTask = function(task) {
- return fatalError("No such task: " + task);
- };
+ return locals.html(o);
+ }
+ return o;
+};
- cakefileDirectory = function(dir) {
- var parent;
- if (path.existsSync(path.join(dir, 'Cakefile'))) {
- return dir;
- }
- parent = path.normalize(path.join(dir, '..'));
- if (parent !== dir) {
- return cakefileDirectory(parent);
- }
- throw new Error("Cakefile not found in " + (process.cwd()));
+toffee.__augmentLocals = function(locals, bundle_path) {
+ var _l, _t;
+ _l = locals;
+ _t = _l.__toffee = {
+ out: []
};
-
-}).call(this);
-}, "coffee-script/coffee-script": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var Lexer, RESERVED, compile, fs, lexer, parser, path, vm, _ref,
- __hasProp = {}.hasOwnProperty;
-
- fs = require('fs');
-
- path = require('path');
-
- _ref = require('./lexer'), Lexer = _ref.Lexer, RESERVED = _ref.RESERVED;
-
- parser = require('./parser').parser;
-
- vm = require('vm');
-
- if (require.extensions) {
- require.extensions['.coffee'] = function(module, filename) {
- var content;
- content = compile(fs.readFileSync(filename, 'utf8'), {
- filename: filename
- });
- return module._compile(content, filename);
+ if (_l.print == null) {
+ _l.print = function(o) {
+ return toffee.__print(_l, o);
};
- } else if (require.registerExtension) {
- require.registerExtension('.coffee', function(content) {
- return compile(content);
- });
}
+ if (_l.json == null) {
+ _l.json = function(o, opts) {
+ return toffee.__json(_l, o, opts);
+ };
+ }
+ if (_l.raw == null) {
+ _l.raw = function(o) {
+ return toffee.__raw(_l, o);
+ };
+ }
+ if (_l.html == null) {
+ _l.html = function(o) {
+ return toffee.__html(_l, o);
+ };
+ }
+ if (_l.escape == null) {
+ _l.escape = function(o) {
+ return toffee.__escape(_l, o);
+ };
+ }
+ if (_l.partial == null) {
+ _l.partial = function(path, vars) {
+ return toffee.__partial(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ if (_l.snippet == null) {
+ _l.snippet = function(path, vars) {
+ return toffee.__snippet(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ if (_l.load == null) {
+ _l.load = function(path, vars) {
+ return toffee.__load(toffee.templates["" + bundle_path], _l, path, vars);
+ };
+ }
+ _t.print = _l.print;
+ _t.json = _l.json;
+ _t.raw = _l.raw;
+ _t.html = _l.html;
+ _t.escape = _l.escape;
+ _t.partial = _l.partial;
+ _t.snippet = _l.snippet;
+ return _t.load = _l.load;
+};
- exports.VERSION = '1.3.1';
-
- exports.RESERVED = RESERVED;
-
- exports.helpers = require('./helpers');
-
- exports.compile = compile = function(code, options) {
- var header, js, merge;
- if (options == null) {
- options = {};
- }
- merge = exports.helpers.merge;
- try {
- js = (parser.parse(lexer.tokenize(code))).compile(options);
- if (!options.header) {
- return js;
- }
- } catch (err) {
- if (options.filename) {
- err.message = "In " + options.filename + ", " + err.message;
- }
- throw err;
- }
- header = "Generated by CoffeeScript " + this.VERSION;
- return "// " + header + "\n" + js;
- };
-
- exports.tokens = function(code, options) {
- return lexer.tokenize(code, options);
- };
-
- exports.nodes = function(source, options) {
- if (typeof source === 'string') {
- return parser.parse(lexer.tokenize(source, options));
- } else {
- return parser.parse(source);
- }
- };
-
- exports.run = function(code, options) {
- var mainModule;
- if (options == null) {
- options = {};
- }
- mainModule = require.main;
- mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.';
- mainModule.moduleCache && (mainModule.moduleCache = {});
- mainModule.paths = require('module')._nodeModulePaths(path.dirname(fs.realpathSync(options.filename)));
- if (path.extname(mainModule.filename) !== '.coffee' || require.extensions) {
- return mainModule._compile(compile(code, options), mainModule.filename);
- } else {
- return mainModule._compile(code, mainModule.filename);
- }
- };
+toffee.__print = function(locals, o) {
+ if (locals.__toffee.state === toffee.states.COFFEE) {
+ locals.__toffee.out.push(o);
+ return '';
+ } else {
+ return "" + o;
+ }
+};
- exports["eval"] = function(code, options) {
- var Module, Script, js, k, o, r, sandbox, v, _i, _len, _module, _ref1, _ref2, _require;
- if (options == null) {
- options = {};
- }
- if (!(code = code.trim())) {
- return;
+toffee.__normalize = function(path) {
+ var np, part, parts, _i, _len;
+ if ((path == null) || path === "/") {
+ return path;
+ } else {
+ parts = path.split("/");
+ np = [];
+ if (parts[0]) {
+ np.push('');
}
- Script = vm.Script;
- if (Script) {
- if (options.sandbox != null) {
- if (options.sandbox instanceof Script.createContext().constructor) {
- sandbox = options.sandbox;
+ for (_i = 0, _len = parts.length; _i < _len; _i++) {
+ part = parts[_i];
+ if (part === "..") {
+ if (np.length > 1) {
+ np.pop();
} else {
- sandbox = Script.createContext();
- _ref1 = options.sandbox;
- for (k in _ref1) {
- if (!__hasProp.call(_ref1, k)) continue;
- v = _ref1[k];
- sandbox[k] = v;
- }
- }
- sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox;
- } else {
- sandbox = global;
- }
- sandbox.__filename = options.filename || 'eval';
- sandbox.__dirname = path.dirname(sandbox.__filename);
- if (!(sandbox !== global || sandbox.module || sandbox.require)) {
- Module = require('module');
- sandbox.module = _module = new Module(options.modulename || 'eval');
- sandbox.require = _require = function(path) {
- return Module._load(path, _module, true);
- };
- _module.filename = sandbox.__filename;
- _ref2 = Object.getOwnPropertyNames(require);
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- r = _ref2[_i];
- if (r !== 'paths') {
- _require[r] = require[r];
- }
- }
- _require.paths = _module.paths = Module._nodeModulePaths(process.cwd());
- _require.resolve = function(request) {
- return Module._resolveFilename(request, _module);
- };
- }
- }
- o = {};
- for (k in options) {
- if (!__hasProp.call(options, k)) continue;
- v = options[k];
- o[k] = v;
- }
- o.bare = true;
- js = compile(code, o);
- if (sandbox === global) {
- return vm.runInThisContext(js);
- } else {
- return vm.runInContext(js, sandbox);
- }
- };
-
- lexer = new Lexer;
-
- parser.lexer = {
- lex: function() {
- var tag, _ref1;
- _ref1 = this.tokens[this.pos++] || [''], tag = _ref1[0], this.yytext = _ref1[1], this.yylineno = _ref1[2];
- return tag;
- },
- setInput: function(tokens) {
- this.tokens = tokens;
- return this.pos = 0;
- },
- upcomingInput: function() {
- return "";
- }
- };
-
- parser.yy = require('./nodes');
-
-}).call(this);
-}, "coffee-script/command": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var BANNER, CoffeeScript, EventEmitter, SWITCHES, compileJoin, compileOptions, compilePath, compileScript, compileStdio, exec, forkNode, fs, helpers, hidden, joinTimeout, lint, loadRequires, notSources, optionParser, optparse, opts, outputPath, parseOptions, path, printLine, printTokens, printWarn, removeSource, sourceCode, sources, spawn, timeLog, unwatchDir, usage, version, wait, watch, watchDir, watchers, writeJs, _ref;
-
- fs = require('fs');
-
- path = require('path');
-
- helpers = require('./helpers');
-
- optparse = require('./optparse');
-
- CoffeeScript = require('./coffee-script');
-
- _ref = require('child_process'), spawn = _ref.spawn, exec = _ref.exec;
-
- EventEmitter = require('events').EventEmitter;
-
- helpers.extend(CoffeeScript, new EventEmitter);
-
- printLine = function(line) {
- return process.stdout.write(line + '\n');
- };
-
- printWarn = function(line) {
- return process.stderr.write(line + '\n');
- };
-
- hidden = function(file) {
- return /^\.|~$/.test(file);
- };
-
- BANNER = 'Usage: coffee [options] path/to/script.coffee -- [args]\n\nIf called without options, `coffee` will run your script.';
-
- SWITCHES = [['-b', '--bare', 'compile without a top-level function wrapper'], ['-c', '--compile', 'compile to JavaScript and save as .js files'], ['-e', '--eval', 'pass a string from the command line as input'], ['-h', '--help', 'display this help message'], ['-i', '--interactive', 'run an interactive CoffeeScript REPL'], ['-j', '--join [FILE]', 'concatenate the source CoffeeScript before compiling'], ['-l', '--lint', 'pipe the compiled JavaScript through JavaScript Lint'], ['-n', '--nodes', 'print out the parse tree that the parser produces'], ['--nodejs [ARGS]', 'pass options directly to the "node" binary'], ['-o', '--output [DIR]', 'set the output directory for compiled JavaScript'], ['-p', '--print', 'print out the compiled JavaScript'], ['-r', '--require [FILE*]', 'require a library before executing your script'], ['-s', '--stdio', 'listen for and compile scripts over stdio'], ['-t', '--tokens', 'print out the tokens that the lexer/rewriter produce'], ['-v', '--version', 'display the version number'], ['-w', '--watch', 'watch scripts for changes and rerun commands']];
-
- opts = {};
-
- sources = [];
-
- sourceCode = [];
-
- notSources = {};
-
- watchers = {};
-
- optionParser = null;
-
- exports.run = function() {
- var literals, source, _i, _len, _results;
- parseOptions();
- if (opts.nodejs) {
- return forkNode();
- }
- if (opts.help) {
- return usage();
- }
- if (opts.version) {
- return version();
- }
- if (opts.require) {
- loadRequires();
- }
- if (opts.interactive) {
- return require('./repl');
- }
- if (opts.watch && !fs.watch) {
- return printWarn("The --watch feature depends on Node v0.6.0+. You are running " + process.version + ".");
- }
- if (opts.stdio) {
- return compileStdio();
- }
- if (opts["eval"]) {
- return compileScript(null, sources[0]);
- }
- if (!sources.length) {
- return require('./repl');
- }
- literals = opts.run ? sources.splice(1) : [];
- process.argv = process.argv.slice(0, 2).concat(literals);
- process.argv[0] = 'coffee';
- process.execPath = require.main.filename;
- _results = [];
- for (_i = 0, _len = sources.length; _i < _len; _i++) {
- source = sources[_i];
- _results.push(compilePath(source, true, path.normalize(source)));
- }
- return _results;
- };
-
- compilePath = function(source, topLevel, base) {
- return fs.stat(source, function(err, stats) {
- if (err && err.code !== 'ENOENT') {
- throw err;
- }
- if ((err != null ? err.code : void 0) === 'ENOENT') {
- if (topLevel && source.slice(-7) !== '.coffee') {
- source = sources[sources.indexOf(source)] = "" + source + ".coffee";
- return compilePath(source, topLevel, base);
- }
- if (topLevel) {
- console.error("File not found: " + source);
- process.exit(1);
- }
- return;
- }
- if (stats.isDirectory()) {
- if (opts.watch) {
- watchDir(source, base);
- }
- return fs.readdir(source, function(err, files) {
- var file, index, _i, _len, _ref1, _ref2, _results;
- if (err && err.code !== 'ENOENT') {
- throw err;
- }
- if ((err != null ? err.code : void 0) === 'ENOENT') {
- return;
- }
- index = sources.indexOf(source);
- [].splice.apply(sources, [index, index - index + 1].concat(_ref1 = (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = files.length; _i < _len; _i++) {
- file = files[_i];
- _results.push(path.join(source, file));
- }
- return _results;
- })())), _ref1;
- [].splice.apply(sourceCode, [index, index - index + 1].concat(_ref2 = files.map(function() {
- return null;
- }))), _ref2;
- _results = [];
- for (_i = 0, _len = files.length; _i < _len; _i++) {
- file = files[_i];
- if (!hidden(file)) {
- _results.push(compilePath(path.join(source, file), false, base));
- }
- }
- return _results;
- });
- } else if (topLevel || path.extname(source) === '.coffee') {
- if (opts.watch) {
- watch(source, base);
+ np.push(part);
}
- return fs.readFile(source, function(err, code) {
- if (err && err.code !== 'ENOENT') {
- throw err;
- }
- if ((err != null ? err.code : void 0) === 'ENOENT') {
- return;
- }
- return compileScript(source, code.toString(), base);
- });
- } else {
- notSources[source] = true;
- return removeSource(source, base);
- }
- });
- };
-
- compileScript = function(file, input, base) {
- var o, options, t, task;
- o = opts;
- options = compileOptions(file);
- try {
- t = task = {
- file: file,
- input: input,
- options: options
- };
- CoffeeScript.emit('compile', task);
- if (o.tokens) {
- return printTokens(CoffeeScript.tokens(t.input));
- } else if (o.nodes) {
- return printLine(CoffeeScript.nodes(t.input).toString().trim());
- } else if (o.run) {
- return CoffeeScript.run(t.input, t.options);
- } else if (o.join && t.file !== o.join) {
- sourceCode[sources.indexOf(t.file)] = t.input;
- return compileJoin();
} else {
- t.output = CoffeeScript.compile(t.input, t.options);
- CoffeeScript.emit('success', task);
- if (o.print) {
- return printLine(t.output.trim());
- } else if (o.compile) {
- return writeJs(t.file, t.output, base);
- } else if (o.lint) {
- return lint(t.file, t.output);
- }
- }
- } catch (err) {
- CoffeeScript.emit('failure', err, task);
- if (CoffeeScript.listeners('failure').length) {
- return;
- }
- if (o.watch) {
- return printLine(err.message + '\x07');
- }
- printWarn(err instanceof Error && err.stack || ("ERROR: " + err));
- return process.exit(1);
- }
- };
-
- compileStdio = function() {
- var code, stdin;
- code = '';
- stdin = process.openStdin();
- stdin.on('data', function(buffer) {
- if (buffer) {
- return code += buffer.toString();
- }
- });
- return stdin.on('end', function() {
- return compileScript(null, code);
- });
- };
-
- joinTimeout = null;
-
- compileJoin = function() {
- if (!opts.join) {
- return;
- }
- if (!sourceCode.some(function(code) {
- return code === null;
- })) {
- clearTimeout(joinTimeout);
- return joinTimeout = wait(100, function() {
- return compileScript(opts.join, sourceCode.join('\n'), opts.join);
- });
- }
- };
-
- loadRequires = function() {
- var realFilename, req, _i, _len, _ref1;
- realFilename = module.filename;
- module.filename = '.';
- _ref1 = opts.require;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- req = _ref1[_i];
- require(req);
- }
- return module.filename = realFilename;
- };
-
- watch = function(source, base) {
- var compile, compileTimeout, prevStats, rewatch, watchErr, watcher;
- prevStats = null;
- compileTimeout = null;
- watchErr = function(e) {
- if (e.code === 'ENOENT') {
- if (sources.indexOf(source) === -1) {
- return;
+ if (part !== ".") {
+ np.push(part);
}
- try {
- rewatch();
- return compile();
- } catch (e) {
- removeSource(source, base, true);
- return compileJoin();
- }
- } else {
- throw e;
}
- };
- compile = function() {
- clearTimeout(compileTimeout);
- return compileTimeout = wait(25, function() {
- return fs.stat(source, function(err, stats) {
- if (err) {
- return watchErr(err);
- }
- if (prevStats && stats.size === prevStats.size && stats.mtime.getTime() === prevStats.mtime.getTime()) {
- return rewatch();
- }
- prevStats = stats;
- return fs.readFile(source, function(err, code) {
- if (err) {
- return watchErr(err);
- }
- compileScript(source, code.toString(), base);
- return rewatch();
- });
- });
- });
- };
- try {
- watcher = fs.watch(source, compile);
- } catch (e) {
- watchErr(e);
}
- return rewatch = function() {
- if (watcher != null) {
- watcher.close();
- }
- return watcher = fs.watch(source, compile);
- };
- };
-
- watchDir = function(source, base) {
- var readdirTimeout, watcher;
- readdirTimeout = null;
- try {
- return watcher = fs.watch(source, function() {
- clearTimeout(readdirTimeout);
- return readdirTimeout = wait(25, function() {
- return fs.readdir(source, function(err, files) {
- var file, _i, _len, _results;
- if (err) {
- if (err.code !== 'ENOENT') {
- throw err;
- }
- watcher.close();
- return unwatchDir(source, base);
- }
- _results = [];
- for (_i = 0, _len = files.length; _i < _len; _i++) {
- file = files[_i];
- if (!(!hidden(file) && !notSources[file])) {
- continue;
- }
- file = path.join(source, file);
- if (sources.some(function(s) {
- return s.indexOf(file) >= 0;
- })) {
- continue;
- }
- sources.push(file);
- sourceCode.push(null);
- _results.push(compilePath(file, false, base));
- }
- return _results;
- });
- });
- });
- } catch (e) {
- if (e.code !== 'ENOENT') {
- throw e;
- }
+ path = np.join("/");
+ if (!path) {
+ path = "/";
}
- };
+ return path;
+ }
+};
- unwatchDir = function(source, base) {
- var file, prevSources, toRemove, _i, _len;
- prevSources = sources.slice(0);
- toRemove = (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = sources.length; _i < _len; _i++) {
- file = sources[_i];
- if (file.indexOf(source) >= 0) {
- _results.push(file);
- }
- }
- return _results;
- })();
- for (_i = 0, _len = toRemove.length; _i < _len; _i++) {
- file = toRemove[_i];
- removeSource(file, base, true);
- }
- if (!sources.some(function(s, i) {
- return prevSources[i] !== s;
- })) {
- return;
- }
- return compileJoin();
- };
+toffee.__partial = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
- removeSource = function(source, base, removeJs) {
- var index, jsPath;
- index = sources.indexOf(source);
- sources.splice(index, 1);
- sourceCode.splice(index, 1);
- if (removeJs && !opts.join) {
- jsPath = outputPath(source, base);
- return path.exists(jsPath, function(exists) {
- if (exists) {
- return fs.unlink(jsPath, function(err) {
- if (err && err.code !== 'ENOENT') {
- throw err;
- }
- return timeLog("removed " + source);
- });
- }
- });
- }
- };
+toffee.__snippet = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ vars = vars != null ? vars : {};
+ vars.__toffee = vars.__toffee || {};
+ vars.__toffee.noInheritance = true;
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
- outputPath = function(source, base) {
- var baseDir, dir, filename, srcDir;
- filename = path.basename(source, path.extname(source)) + '.js';
- srcDir = path.dirname(source);
- baseDir = base === '.' ? srcDir : srcDir.substring(base.length);
- dir = opts.output ? path.join(opts.output, baseDir) : srcDir;
- return path.join(dir, filename);
- };
+toffee.__load = function(parent_tmpl, parent_locals, path, vars) {
+ path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path);
+ vars = vars != null ? vars : {};
+ vars.__toffee = vars.__toffee || {};
+ vars.__toffee.repress = true;
+ return toffee.__inlineInclude(path, vars, parent_locals);
+};
- writeJs = function(source, js, base) {
- var compile, jsDir, jsPath;
- jsPath = outputPath(source, base);
- jsDir = path.dirname(jsPath);
- compile = function() {
- if (js.length <= 0) {
- js = ' ';
- }
- return fs.writeFile(jsPath, js, function(err) {
- if (err) {
- return printLine(err.message);
- } else if (opts.compile && opts.watch) {
- return timeLog("compiled " + source);
+toffee.__inlineInclude = function(path, locals, parent_locals) {
+ var k, options, res, reserved, v, _i, _len, _ref, _ref1;
+ options = locals || {};
+ options.passback = {};
+ options.__toffee = options.__toffee || {};
+ reserved = {};
+ _ref = ["passback", "load", "print", "partial", "snippet", "layout", "__toffee", "postProcess"];
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ k = _ref[_i];
+ reserved[k] = true;
+ }
+ if (!options.__toffee.noInheritance) {
+ for (k in parent_locals) {
+ v = parent_locals[k];
+ if ((locals != null ? locals[k] : void 0) == null) {
+ if (reserved[k] == null) {
+ options[k] = v;
}
- });
- };
- return path.exists(jsDir, function(exists) {
- if (exists) {
- return compile();
- } else {
- return exec("mkdir -p " + jsDir, compile);
- }
- });
- };
-
- wait = function(milliseconds, func) {
- return setTimeout(func, milliseconds);
- };
-
- timeLog = function(message) {
- return console.log("" + ((new Date).toLocaleTimeString()) + " - " + message);
- };
-
- lint = function(file, js) {
- var conf, jsl, printIt;
- printIt = function(buffer) {
- return printLine(file + ':\t' + buffer.toString().trim());
- };
- conf = __dirname + '/../../extras/jsl.conf';
- jsl = spawn('jsl', ['-nologo', '-stdin', '-conf', conf]);
- jsl.stdout.on('data', printIt);
- jsl.stderr.on('data', printIt);
- jsl.stdin.write(js);
- return jsl.stdin.end();
- };
-
- printTokens = function(tokens) {
- var strings, tag, token, value;
- strings = (function() {
- var _i, _len, _ref1, _results;
- _results = [];
- for (_i = 0, _len = tokens.length; _i < _len; _i++) {
- token = tokens[_i];
- _ref1 = [token[0], token[1].toString().replace(/\n/, '\\n')], tag = _ref1[0], value = _ref1[1];
- _results.push("[" + tag + " " + value + "]");
}
- return _results;
- })();
- return printLine(strings.join(' '));
- };
-
- parseOptions = function() {
- var i, o, source, _i, _len;
- optionParser = new optparse.OptionParser(SWITCHES, BANNER);
- o = opts = optionParser.parse(process.argv.slice(2));
- o.compile || (o.compile = !!o.output);
- o.run = !(o.compile || o.print || o.lint);
- o.print = !!(o.print || (o["eval"] || o.stdio && o.compile));
- sources = o["arguments"];
- for (i = _i = 0, _len = sources.length; _i < _len; i = ++_i) {
- source = sources[i];
- sourceCode[i] = null;
}
- };
-
- compileOptions = function(filename) {
- return {
- filename: filename,
- bare: opts.bare,
- header: opts.compile
- };
- };
-
- forkNode = function() {
- var args, nodeArgs;
- nodeArgs = opts.nodejs.split(/\s+/);
- args = process.argv.slice(1);
- args.splice(args.indexOf('--nodejs'), 2);
- return spawn(process.execPath, nodeArgs.concat(args), {
- cwd: process.cwd(),
- env: process.env,
- customFds: [0, 1, 2]
- });
- };
-
- usage = function() {
- return printLine((new optparse.OptionParser(SWITCHES, BANNER)).help());
- };
-
- version = function() {
- return printLine("CoffeeScript version " + CoffeeScript.VERSION);
- };
-
-}).call(this);
-}, "coffee-script/grammar": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var Parser, alt, alternatives, grammar, name, o, operators, token, tokens, unwrap;
-
- Parser = require('jison').Parser;
-
- unwrap = /^function\s*\(\)\s*\{\s*return\s*([\s\S]*);\s*\}/;
-
- o = function(patternString, action, options) {
- var match;
- patternString = patternString.replace(/\s{2,}/g, ' ');
- if (!action) {
- return [patternString, '$$ = $1;', options];
+ }
+ if (!toffee.templates[path]) {
+ return "Inline toffee include: Could not find " + path;
+ } else {
+ res = toffee.templates[path].pub(options);
+ _ref1 = options.passback;
+ for (k in _ref1) {
+ v = _ref1[k];
+ parent_locals[k] = v;
}
- action = (match = unwrap.exec(action)) ? match[1] : "(" + action + "())";
- action = action.replace(/\bnew /g, '$&yy.');
- action = action.replace(/\b(?:Block\.wrap|extend)\b/g, 'yy.$&');
- return [patternString, "$$ = " + action + ";", options];
- };
-
- grammar = {
- Root: [
- o('', function() {
- return new Block;
- }), o('Body'), o('Block TERMINATOR')
- ],
- Body: [
- o('Line', function() {
- return Block.wrap([$1]);
- }), o('Body TERMINATOR Line', function() {
- return $1.push($3);
- }), o('Body TERMINATOR')
- ],
- Line: [o('Expression'), o('Statement')],
- Statement: [
- o('Return'), o('Comment'), o('STATEMENT', function() {
- return new Literal($1);
- })
- ],
- Expression: [o('Value'), o('Invocation'), o('Code'), o('Operation'), o('Assign'), o('If'), o('Try'), o('While'), o('For'), o('Switch'), o('Class'), o('Throw')],
- Block: [
- o('INDENT OUTDENT', function() {
- return new Block;
- }), o('INDENT Body OUTDENT', function() {
- return $2;
- })
- ],
- Identifier: [
- o('IDENTIFIER', function() {
- return new Literal($1);
- })
- ],
- AlphaNumeric: [
- o('NUMBER', function() {
- return new Literal($1);
- }), o('STRING', function() {
- return new Literal($1);
- })
- ],
- Literal: [
- o('AlphaNumeric'), o('JS', function() {
- return new Literal($1);
- }), o('REGEX', function() {
- return new Literal($1);
- }), o('DEBUGGER', function() {
- return new Literal($1);
- }), o('BOOL', function() {
- var val;
- val = new Literal($1);
- if ($1 === 'undefined') {
- val.isUndefined = true;
- }
- return val;
- })
- ],
- Assign: [
- o('Assignable = Expression', function() {
- return new Assign($1, $3);
- }), o('Assignable = TERMINATOR Expression', function() {
- return new Assign($1, $4);
- }), o('Assignable = INDENT Expression OUTDENT', function() {
- return new Assign($1, $4);
- })
- ],
- AssignObj: [
- o('ObjAssignable', function() {
- return new Value($1);
- }), o('ObjAssignable : Expression', function() {
- return new Assign(new Value($1), $3, 'object');
- }), o('ObjAssignable :\
- INDENT Expression OUTDENT', function() {
- return new Assign(new Value($1), $4, 'object');
- }), o('Comment')
- ],
- ObjAssignable: [o('Identifier'), o('AlphaNumeric'), o('ThisProperty')],
- Return: [
- o('RETURN Expression', function() {
- return new Return($2);
- }), o('RETURN', function() {
- return new Return;
- })
- ],
- Comment: [
- o('HERECOMMENT', function() {
- return new Comment($1);
- })
- ],
- Code: [
- o('PARAM_START ParamList PARAM_END FuncGlyph Block', function() {
- return new Code($2, $5, $4);
- }), o('FuncGlyph Block', function() {
- return new Code([], $2, $1);
- })
- ],
- FuncGlyph: [
- o('->', function() {
- return 'func';
- }), o('=>', function() {
- return 'boundfunc';
- })
- ],
- OptComma: [o(''), o(',')],
- ParamList: [
- o('', function() {
- return [];
- }), o('Param', function() {
- return [$1];
- }), o('ParamList , Param', function() {
- return $1.concat($3);
- })
- ],
- Param: [
- o('ParamVar', function() {
- return new Param($1);
- }), o('ParamVar ...', function() {
- return new Param($1, null, true);
- }), o('ParamVar = Expression', function() {
- return new Param($1, $3);
- })
- ],
- ParamVar: [o('Identifier'), o('ThisProperty'), o('Array'), o('Object')],
- Splat: [
- o('Expression ...', function() {
- return new Splat($1);
- })
- ],
- SimpleAssignable: [
- o('Identifier', function() {
- return new Value($1);
- }), o('Value Accessor', function() {
- return $1.add($2);
- }), o('Invocation Accessor', function() {
- return new Value($1, [].concat($2));
- }), o('ThisProperty')
- ],
- Assignable: [
- o('SimpleAssignable'), o('Array', function() {
- return new Value($1);
- }), o('Object', function() {
- return new Value($1);
- })
- ],
- Value: [
- o('Assignable'), o('Literal', function() {
- return new Value($1);
- }), o('Parenthetical', function() {
- return new Value($1);
- }), o('Range', function() {
- return new Value($1);
- }), o('This')
- ],
- Accessor: [
- o('. Identifier', function() {
- return new Access($2);
- }), o('?. Identifier', function() {
- return new Access($2, 'soak');
- }), o(':: Identifier', function() {
- return [new Access(new Literal('prototype')), new Access($2)];
- }), o('::', function() {
- return new Access(new Literal('prototype'));
- }), o('Index')
- ],
- Index: [
- o('INDEX_START IndexValue INDEX_END', function() {
- return $2;
- }), o('INDEX_SOAK Index', function() {
- return extend($2, {
- soak: true
- });
- })
- ],
- IndexValue: [
- o('Expression', function() {
- return new Index($1);
- }), o('Slice', function() {
- return new Slice($1);
- })
- ],
- Object: [
- o('{ AssignList OptComma }', function() {
- return new Obj($2, $1.generated);
- })
- ],
- AssignList: [
- o('', function() {
- return [];
- }), o('AssignObj', function() {
- return [$1];
- }), o('AssignList , AssignObj', function() {
- return $1.concat($3);
- }), o('AssignList OptComma TERMINATOR AssignObj', function() {
- return $1.concat($4);
- }), o('AssignList OptComma INDENT AssignList OptComma OUTDENT', function() {
- return $1.concat($4);
- })
- ],
- Class: [
- o('CLASS', function() {
- return new Class;
- }), o('CLASS Block', function() {
- return new Class(null, null, $2);
- }), o('CLASS EXTENDS Expression', function() {
- return new Class(null, $3);
- }), o('CLASS EXTENDS Expression Block', function() {
- return new Class(null, $3, $4);
- }), o('CLASS SimpleAssignable', function() {
- return new Class($2);
- }), o('CLASS SimpleAssignable Block', function() {
- return new Class($2, null, $3);
- }), o('CLASS SimpleAssignable EXTENDS Expression', function() {
- return new Class($2, $4);
- }), o('CLASS SimpleAssignable EXTENDS Expression Block', function() {
- return new Class($2, $4, $5);
- })
- ],
- Invocation: [
- o('Value OptFuncExist Arguments', function() {
- return new Call($1, $3, $2);
- }), o('Invocation OptFuncExist Arguments', function() {
- return new Call($1, $3, $2);
- }), o('SUPER', function() {
- return new Call('super', [new Splat(new Literal('arguments'))]);
- }), o('SUPER Arguments', function() {
- return new Call('super', $2);
- })
- ],
- OptFuncExist: [
- o('', function() {
- return false;
- }), o('FUNC_EXIST', function() {
- return true;
- })
- ],
- Arguments: [
- o('CALL_START CALL_END', function() {
- return [];
- }), o('CALL_START ArgList OptComma CALL_END', function() {
- return $2;
- })
- ],
- This: [
- o('THIS', function() {
- return new Value(new Literal('this'));
- }), o('@', function() {
- return new Value(new Literal('this'));
- })
- ],
- ThisProperty: [
- o('@ Identifier', function() {
- return new Value(new Literal('this'), [new Access($2)], 'this');
- })
- ],
- Array: [
- o('[ ]', function() {
- return new Arr([]);
- }), o('[ ArgList OptComma ]', function() {
- return new Arr($2);
- })
- ],
- RangeDots: [
- o('..', function() {
- return 'inclusive';
- }), o('...', function() {
- return 'exclusive';
- })
- ],
- Range: [
- o('[ Expression RangeDots Expression ]', function() {
- return new Range($2, $4, $3);
- })
- ],
- Slice: [
- o('Expression RangeDots Expression', function() {
- return new Range($1, $3, $2);
- }), o('Expression RangeDots', function() {
- return new Range($1, null, $2);
- }), o('RangeDots Expression', function() {
- return new Range(null, $2, $1);
- }), o('RangeDots', function() {
- return new Range(null, null, $1);
- })
- ],
- ArgList: [
- o('Arg', function() {
- return [$1];
- }), o('ArgList , Arg', function() {
- return $1.concat($3);
- }), o('ArgList OptComma TERMINATOR Arg', function() {
- return $1.concat($4);
- }), o('INDENT ArgList OptComma OUTDENT', function() {
- return $2;
- }), o('ArgList OptComma INDENT ArgList OptComma OUTDENT', function() {
- return $1.concat($4);
- })
- ],
- Arg: [o('Expression'), o('Splat')],
- SimpleArgs: [
- o('Expression'), o('SimpleArgs , Expression', function() {
- return [].concat($1, $3);
- })
- ],
- Try: [
- o('TRY Block', function() {
- return new Try($2);
- }), o('TRY Block Catch', function() {
- return new Try($2, $3[0], $3[1]);
- }), o('TRY Block FINALLY Block', function() {
- return new Try($2, null, null, $4);
- }), o('TRY Block Catch FINALLY Block', function() {
- return new Try($2, $3[0], $3[1], $5);
- })
- ],
- Catch: [
- o('CATCH Identifier Block', function() {
- return [$2, $3];
- })
- ],
- Throw: [
- o('THROW Expression', function() {
- return new Throw($2);
- })
- ],
- Parenthetical: [
- o('( Body )', function() {
- return new Parens($2);
- }), o('( INDENT Body OUTDENT )', function() {
- return new Parens($3);
- })
- ],
- WhileSource: [
- o('WHILE Expression', function() {
- return new While($2);
- }), o('WHILE Expression WHEN Expression', function() {
- return new While($2, {
- guard: $4
- });
- }), o('UNTIL Expression', function() {
- return new While($2, {
- invert: true
- });
- }), o('UNTIL Expression WHEN Expression', function() {
- return new While($2, {
- invert: true,
- guard: $4
- });
- })
- ],
- While: [
- o('WhileSource Block', function() {
- return $1.addBody($2);
- }), o('Statement WhileSource', function() {
- return $2.addBody(Block.wrap([$1]));
- }), o('Expression WhileSource', function() {
- return $2.addBody(Block.wrap([$1]));
- }), o('Loop', function() {
- return $1;
- })
- ],
- Loop: [
- o('LOOP Block', function() {
- return new While(new Literal('true')).addBody($2);
- }), o('LOOP Expression', function() {
- return new While(new Literal('true')).addBody(Block.wrap([$2]));
- })
- ],
- For: [
- o('Statement ForBody', function() {
- return new For($1, $2);
- }), o('Expression ForBody', function() {
- return new For($1, $2);
- }), o('ForBody Block', function() {
- return new For($2, $1);
- })
- ],
- ForBody: [
- o('FOR Range', function() {
- return {
- source: new Value($2)
- };
- }), o('ForStart ForSource', function() {
- $2.own = $1.own;
- $2.name = $1[0];
- $2.index = $1[1];
- return $2;
- })
- ],
- ForStart: [
- o('FOR ForVariables', function() {
- return $2;
- }), o('FOR OWN ForVariables', function() {
- $3.own = true;
- return $3;
- })
- ],
- ForValue: [
- o('Identifier'), o('Array', function() {
- return new Value($1);
- }), o('Object', function() {
- return new Value($1);
- })
- ],
- ForVariables: [
- o('ForValue', function() {
- return [$1];
- }), o('ForValue , ForValue', function() {
- return [$1, $3];
- })
- ],
- ForSource: [
- o('FORIN Expression', function() {
- return {
- source: $2
- };
- }), o('FOROF Expression', function() {
- return {
- source: $2,
- object: true
- };
- }), o('FORIN Expression WHEN Expression', function() {
- return {
- source: $2,
- guard: $4
- };
- }), o('FOROF Expression WHEN Expression', function() {
- return {
- source: $2,
- guard: $4,
- object: true
- };
- }), o('FORIN Expression BY Expression', function() {
- return {
- source: $2,
- step: $4
- };
- }), o('FORIN Expression WHEN Expression BY Expression', function() {
- return {
- source: $2,
- guard: $4,
- step: $6
- };
- }), o('FORIN Expression BY Expression WHEN Expression', function() {
- return {
- source: $2,
- step: $4,
- guard: $6
- };
- })
- ],
- Switch: [
- o('SWITCH Expression INDENT Whens OUTDENT', function() {
- return new Switch($2, $4);
- }), o('SWITCH Expression INDENT Whens ELSE Block OUTDENT', function() {
- return new Switch($2, $4, $6);
- }), o('SWITCH INDENT Whens OUTDENT', function() {
- return new Switch(null, $3);
- }), o('SWITCH INDENT Whens ELSE Block OUTDENT', function() {
- return new Switch(null, $3, $5);
- })
- ],
- Whens: [
- o('When'), o('Whens When', function() {
- return $1.concat($2);
- })
- ],
- When: [
- o('LEADING_WHEN SimpleArgs Block', function() {
- return [[$2, $3]];
- }), o('LEADING_WHEN SimpleArgs Block TERMINATOR', function() {
- return [[$2, $3]];
- })
- ],
- IfBlock: [
- o('IF Expression Block', function() {
- return new If($2, $3, {
- type: $1
- });
- }), o('IfBlock ELSE IF Expression Block', function() {
- return $1.addElse(new If($4, $5, {
- type: $3
- }));
- })
- ],
- If: [
- o('IfBlock'), o('IfBlock ELSE Block', function() {
- return $1.addElse($3);
- }), o('Statement POST_IF Expression', function() {
- return new If($3, Block.wrap([$1]), {
- type: $2,
- statement: true
- });
- }), o('Expression POST_IF Expression', function() {
- return new If($3, Block.wrap([$1]), {
- type: $2,
- statement: true
- });
- })
- ],
- Operation: [
- o('UNARY Expression', function() {
- return new Op($1, $2);
- }), o('- Expression', (function() {
- return new Op('-', $2);
- }), {
- prec: 'UNARY'
- }), o('+ Expression', (function() {
- return new Op('+', $2);
- }), {
- prec: 'UNARY'
- }), o('-- SimpleAssignable', function() {
- return new Op('--', $2);
- }), o('++ SimpleAssignable', function() {
- return new Op('++', $2);
- }), o('SimpleAssignable --', function() {
- return new Op('--', $1, null, true);
- }), o('SimpleAssignable ++', function() {
- return new Op('++', $1, null, true);
- }), o('Expression ?', function() {
- return new Existence($1);
- }), o('Expression + Expression', function() {
- return new Op('+', $1, $3);
- }), o('Expression - Expression', function() {
- return new Op('-', $1, $3);
- }), o('Expression MATH Expression', function() {
- return new Op($2, $1, $3);
- }), o('Expression SHIFT Expression', function() {
- return new Op($2, $1, $3);
- }), o('Expression COMPARE Expression', function() {
- return new Op($2, $1, $3);
- }), o('Expression LOGIC Expression', function() {
- return new Op($2, $1, $3);
- }), o('Expression RELATION Expression', function() {
- if ($2.charAt(0) === '!') {
- return new Op($2.slice(1), $1, $3).invert();
- } else {
- return new Op($2, $1, $3);
- }
- }), o('SimpleAssignable COMPOUND_ASSIGN\
- Expression', function() {
- return new Assign($1, $3, $2);
- }), o('SimpleAssignable COMPOUND_ASSIGN\
- INDENT Expression OUTDENT', function() {
- return new Assign($1, $4, $2);
- }), o('SimpleAssignable EXTENDS Expression', function() {
- return new Extends($1, $3);
- })
- ]
- };
-
- operators = [['left', '.', '?.', '::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['right', 'POST_IF']];
-
- tokens = [];
-
- for (name in grammar) {
- alternatives = grammar[name];
- grammar[name] = (function() {
- var _i, _j, _len, _len1, _ref, _results;
- _results = [];
- for (_i = 0, _len = alternatives.length; _i < _len; _i++) {
- alt = alternatives[_i];
- _ref = alt[0].split(' ');
- for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
- token = _ref[_j];
- if (!grammar[token]) {
- tokens.push(token);
- }
- }
- if (name === 'Root') {
- alt[1] = "return " + alt[1];
- }
- _results.push(alt);
- }
- return _results;
- })();
+ return res;
}
-
- exports.parser = new Parser({
- tokens: tokens.join(' '),
- bnf: grammar,
- operators: operators.reverse(),
- startSymbol: 'Root'
- });
-
-}).call(this);
-}, "coffee-script/helpers": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var extend, flatten;
-
- exports.starts = function(string, literal, start) {
- return literal === string.substr(start, literal.length);
- };
-
- exports.ends = function(string, literal, back) {
- var len;
- len = literal.length;
- return literal === string.substr(string.length - len - (back || 0), len);
- };
-
- exports.compact = function(array) {
- var item, _i, _len, _results;
- _results = [];
- for (_i = 0, _len = array.length; _i < _len; _i++) {
- item = array[_i];
- if (item) {
- _results.push(item);
- }
- }
- return _results;
- };
-
- exports.count = function(string, substr) {
- var num, pos;
- num = pos = 0;
- if (!substr.length) {
- return 1 / 0;
- }
- while (pos = 1 + string.indexOf(substr, pos)) {
- num++;
- }
- return num;
- };
-
- exports.merge = function(options, overrides) {
- return extend(extend({}, options), overrides);
- };
-
- extend = exports.extend = function(object, properties) {
- var key, val;
- for (key in properties) {
- val = properties[key];
- object[key] = val;
- }
- return object;
- };
-
- exports.flatten = flatten = function(array) {
- var element, flattened, _i, _len;
- flattened = [];
- for (_i = 0, _len = array.length; _i < _len; _i++) {
- element = array[_i];
- if (element instanceof Array) {
- flattened = flattened.concat(flatten(element));
- } else {
- flattened.push(element);
- }
- }
- return flattened;
- };
-
- exports.del = function(obj, key) {
- var val;
- val = obj[key];
- delete obj[key];
- return val;
- };
-
- exports.last = function(array, back) {
- return array[array.length - (back || 0) - 1];
- };
-
-}).call(this);
-}, "coffee-script/index": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var key, val, _ref;
-
- _ref = require('./coffee-script');
- for (key in _ref) {
- val = _ref[key];
- exports[key] = val;
- }
-
-}).call(this);
-}, "coffee-script/lexer": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, WHITESPACE, compact, count, key, last, starts, _ref, _ref1,
- __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
- _ref = require('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES;
-
- _ref1 = require('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last;
-
- exports.Lexer = Lexer = (function() {
-
- Lexer.name = 'Lexer';
-
- function Lexer() {}
-
- Lexer.prototype.tokenize = function(code, opts) {
- var i, tag;
- if (opts == null) {
- opts = {};
- }
- if (WHITESPACE.test(code)) {
- code = "\n" + code;
- }
- code = code.replace(/\r/g, '').replace(TRAILING_SPACES, '');
- this.code = code;
- this.line = opts.line || 0;
- this.indent = 0;
- this.indebt = 0;
- this.outdebt = 0;
- this.indents = [];
- this.ends = [];
- this.tokens = [];
- i = 0;
- while (this.chunk = code.slice(i)) {
- i += this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken();
- }
- this.closeIndentation();
- if (tag = this.ends.pop()) {
- this.error("missing " + tag);
- }
- if (opts.rewrite === false) {
- return this.tokens;
- }
- return (new Rewriter).rewrite(this.tokens);
- };
-
- Lexer.prototype.identifierToken = function() {
- var colon, forcedIdentifier, id, input, match, prev, tag, _ref2, _ref3;
- if (!(match = IDENTIFIER.exec(this.chunk))) {
- return 0;
- }
- input = match[0], id = match[1], colon = match[2];
- if (id === 'own' && this.tag() === 'FOR') {
- this.token('OWN', id);
- return id.length;
- }
- forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::') || !prev.spaced && prev[0] === '@');
- tag = 'IDENTIFIER';
- if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) {
- tag = id.toUpperCase();
- if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) {
- tag = 'LEADING_WHEN';
- } else if (tag === 'FOR') {
- this.seenFor = true;
- } else if (tag === 'UNLESS') {
- tag = 'IF';
- } else if (__indexOf.call(UNARY, tag) >= 0) {
- tag = 'UNARY';
- } else if (__indexOf.call(RELATION, tag) >= 0) {
- if (tag !== 'INSTANCEOF' && this.seenFor) {
- tag = 'FOR' + tag;
- this.seenFor = false;
- } else {
- tag = 'RELATION';
- if (this.value() === '!') {
- this.tokens.pop();
- id = '!' + id;
- }
- }
- }
- }
- if (__indexOf.call(JS_FORBIDDEN, id) >= 0) {
- if (forcedIdentifier) {
- tag = 'IDENTIFIER';
- id = new String(id);
- id.reserved = true;
- } else if (__indexOf.call(RESERVED, id) >= 0) {
- this.error("reserved word \"" + id + "\"");
- }
- }
- if (!forcedIdentifier) {
- if (__indexOf.call(COFFEE_ALIASES, id) >= 0) {
- id = COFFEE_ALIAS_MAP[id];
- }
- tag = (function() {
- switch (id) {
- case '!':
- return 'UNARY';
- case '==':
- case '!=':
- return 'COMPARE';
- case '&&':
- case '||':
- return 'LOGIC';
- case 'true':
- case 'false':
- case 'null':
- case 'undefined':
- return 'BOOL';
- case 'break':
- case 'continue':
- return 'STATEMENT';
- default:
- return tag;
- }
- })();
- }
- this.token(tag, id);
- if (colon) {
- this.token(':', ':');
- }
- return input.length;
- };
-
- Lexer.prototype.numberToken = function() {
- var binaryLiteral, lexedLength, match, number, octalLiteral;
- if (!(match = NUMBER.exec(this.chunk))) {
- return 0;
- }
- number = match[0];
- if (/^0[BOX]/.test(number)) {
- this.error("radix prefix '" + number + "' must be lowercase");
- } else if (/E/.test(number) && !/^0x/.test(number)) {
- this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'");
- } else if (/^0\d*[89]/.test(number)) {
- this.error("decimal literal '" + number + "' must not be prefixed with '0'");
- } else if (/^0\d+/.test(number)) {
- this.error("octal literal '" + number + "' must be prefixed with '0o'");
- }
- lexedLength = number.length;
- if (octalLiteral = /^0o([0-7]+)/.exec(number)) {
- number = '0x' + (parseInt(octalLiteral[1], 8)).toString(16);
- }
- if (binaryLiteral = /^0b([01]+)/.exec(number)) {
- number = '0x' + (parseInt(binaryLiteral[1], 2)).toString(16);
- }
- this.token('NUMBER', number);
- return lexedLength;
- };
-
- Lexer.prototype.stringToken = function() {
- var match, octalEsc, string;
- switch (this.chunk.charAt(0)) {
- case "'":
- if (!(match = SIMPLESTR.exec(this.chunk))) {
- return 0;
- }
- this.token('STRING', (string = match[0]).replace(MULTILINER, '\\\n'));
- break;
- case '"':
- if (!(string = this.balancedString(this.chunk, '"'))) {
- return 0;
- }
- if (0 < string.indexOf('#{', 1)) {
- this.interpolateString(string.slice(1, -1));
- } else {
- this.token('STRING', this.escapeLines(string));
- }
- break;
- default:
- return 0;
- }
- if (octalEsc = /^(?:\\.|[^\\])*\\[0-7]/.test(string)) {
- this.error("octal escape sequences " + string + " are not allowed");
- }
- this.line += count(string, '\n');
- return string.length;
- };
-
- Lexer.prototype.heredocToken = function() {
- var doc, heredoc, match, quote;
- if (!(match = HEREDOC.exec(this.chunk))) {
- return 0;
- }
- heredoc = match[0];
- quote = heredoc.charAt(0);
- doc = this.sanitizeHeredoc(match[2], {
- quote: quote,
- indent: null
- });
- if (quote === '"' && 0 <= doc.indexOf('#{')) {
- this.interpolateString(doc, {
- heredoc: true
- });
- } else {
- this.token('STRING', this.makeString(doc, quote, true));
- }
- this.line += count(heredoc, '\n');
- return heredoc.length;
- };
-
- Lexer.prototype.commentToken = function() {
- var comment, here, match;
- if (!(match = this.chunk.match(COMMENT))) {
- return 0;
- }
- comment = match[0], here = match[1];
- if (here) {
- this.token('HERECOMMENT', this.sanitizeHeredoc(here, {
- herecomment: true,
- indent: Array(this.indent + 1).join(' ')
- }));
- }
- this.line += count(comment, '\n');
- return comment.length;
- };
-
- Lexer.prototype.jsToken = function() {
- var match, script;
- if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) {
- return 0;
- }
- this.token('JS', (script = match[0]).slice(1, -1));
- return script.length;
- };
-
- Lexer.prototype.regexToken = function() {
- var flags, length, match, prev, regex, _ref2, _ref3;
- if (this.chunk.charAt(0) !== '/') {
- return 0;
- }
- if (match = HEREGEX.exec(this.chunk)) {
- length = this.heregexToken(match);
- this.line += count(match[0], '\n');
- return length;
- }
- prev = last(this.tokens);
- if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) {
- return 0;
- }
- if (!(match = REGEX.exec(this.chunk))) {
- return 0;
- }
- _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2];
- if (regex.slice(0, 2) === '/*') {
- this.error('regular expressions cannot begin with `*`');
- }
- if (regex === '//') {
- regex = '/(?:)/';
- }
- this.token('REGEX', "" + regex + flags);
- return match.length;
- };
-
- Lexer.prototype.heregexToken = function(match) {
- var body, flags, heregex, re, tag, tokens, value, _i, _len, _ref2, _ref3, _ref4, _ref5;
- heregex = match[0], body = match[1], flags = match[2];
- if (0 > body.indexOf('#{')) {
- re = body.replace(HEREGEX_OMIT, '').replace(/\//g, '\\/');
- if (re.match(/^\*/)) {
- this.error('regular expressions cannot begin with `*`');
- }
- this.token('REGEX', "/" + (re || '(?:)') + "/" + flags);
- return heregex.length;
- }
- this.token('IDENTIFIER', 'RegExp');
- this.tokens.push(['CALL_START', '(']);
- tokens = [];
- _ref2 = this.interpolateString(body, {
- regex: true
- });
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- _ref3 = _ref2[_i], tag = _ref3[0], value = _ref3[1];
- if (tag === 'TOKENS') {
- tokens.push.apply(tokens, value);
- } else {
- if (!(value = value.replace(HEREGEX_OMIT, ''))) {
- continue;
- }
- value = value.replace(/\\/g, '\\\\');
- tokens.push(['STRING', this.makeString(value, '"', true)]);
- }
- tokens.push(['+', '+']);
- }
- tokens.pop();
- if (((_ref4 = tokens[0]) != null ? _ref4[0] : void 0) !== 'STRING') {
- this.tokens.push(['STRING', '""'], ['+', '+']);
- }
- (_ref5 = this.tokens).push.apply(_ref5, tokens);
- if (flags) {
- this.tokens.push([',', ','], ['STRING', '"' + flags + '"']);
- }
- this.token(')', ')');
- return heregex.length;
- };
-
- Lexer.prototype.lineToken = function() {
- var diff, indent, match, noNewlines, prev, size;
- if (!(match = MULTI_DENT.exec(this.chunk))) {
- return 0;
- }
- indent = match[0];
- this.line += count(indent, '\n');
- this.seenFor = false;
- prev = last(this.tokens, 1);
- size = indent.length - 1 - indent.lastIndexOf('\n');
- noNewlines = this.unfinished();
- if (size - this.indebt === this.indent) {
- if (noNewlines) {
- this.suppressNewlines();
- } else {
- this.newlineToken();
- }
- return indent.length;
- }
- if (size > this.indent) {
- if (noNewlines) {
- this.indebt = size - this.indent;
- this.suppressNewlines();
- return indent.length;
- }
- diff = size - this.indent + this.outdebt;
- this.token('INDENT', diff);
- this.indents.push(diff);
- this.ends.push('OUTDENT');
- this.outdebt = this.indebt = 0;
- } else {
- this.indebt = 0;
- this.outdentToken(this.indent - size, noNewlines);
- }
- this.indent = size;
- return indent.length;
- };
-
- Lexer.prototype.outdentToken = function(moveOut, noNewlines) {
- var dent, len;
- while (moveOut > 0) {
- len = this.indents.length - 1;
- if (this.indents[len] === void 0) {
- moveOut = 0;
- } else if (this.indents[len] === this.outdebt) {
- moveOut -= this.outdebt;
- this.outdebt = 0;
- } else if (this.indents[len] < this.outdebt) {
- this.outdebt -= this.indents[len];
- moveOut -= this.indents[len];
- } else {
- dent = this.indents.pop() - this.outdebt;
- moveOut -= dent;
- this.outdebt = 0;
- this.pair('OUTDENT');
- this.token('OUTDENT', dent);
- }
- }
- if (dent) {
- this.outdebt -= moveOut;
- }
- while (this.value() === ';') {
- this.tokens.pop();
- }
- if (!(this.tag() === 'TERMINATOR' || noNewlines)) {
- this.token('TERMINATOR', '\n');
- }
- return this;
- };
-
- Lexer.prototype.whitespaceToken = function() {
- var match, nline, prev;
- if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) {
- return 0;
- }
- prev = last(this.tokens);
- if (prev) {
- prev[match ? 'spaced' : 'newLine'] = true;
- }
- if (match) {
- return match[0].length;
- } else {
- return 0;
- }
- };
-
- Lexer.prototype.newlineToken = function() {
- while (this.value() === ';') {
- this.tokens.pop();
- }
- if (this.tag() !== 'TERMINATOR') {
- this.token('TERMINATOR', '\n');
- }
- return this;
- };
-
- Lexer.prototype.suppressNewlines = function() {
- if (this.value() === '\\') {
- this.tokens.pop();
- }
- return this;
- };
-
- Lexer.prototype.literalToken = function() {
- var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5;
- if (match = OPERATOR.exec(this.chunk)) {
- value = match[0];
- if (CODE.test(value)) {
- this.tagParameters();
- }
- } else {
- value = this.chunk.charAt(0);
- }
- tag = value;
- prev = last(this.tokens);
- if (value === '=' && prev) {
- if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) {
- this.error("reserved word \"" + (this.value()) + "\" can't be assigned");
- }
- if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') {
- prev[0] = 'COMPOUND_ASSIGN';
- prev[1] += '=';
- return value.length;
- }
- }
- if (value === ';') {
- this.seenFor = false;
- tag = 'TERMINATOR';
- } else if (__indexOf.call(MATH, value) >= 0) {
- tag = 'MATH';
- } else if (__indexOf.call(COMPARE, value) >= 0) {
- tag = 'COMPARE';
- } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) {
- tag = 'COMPOUND_ASSIGN';
- } else if (__indexOf.call(UNARY, value) >= 0) {
- tag = 'UNARY';
- } else if (__indexOf.call(SHIFT, value) >= 0) {
- tag = 'SHIFT';
- } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) {
- tag = 'LOGIC';
- } else if (prev && !prev.spaced) {
- if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) {
- if (prev[0] === '?') {
- prev[0] = 'FUNC_EXIST';
- }
- tag = 'CALL_START';
- } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) {
- tag = 'INDEX_START';
- switch (prev[0]) {
- case '?':
- prev[0] = 'INDEX_SOAK';
- }
- }
- }
- switch (value) {
- case '(':
- case '{':
- case '[':
- this.ends.push(INVERSES[value]);
- break;
- case ')':
- case '}':
- case ']':
- this.pair(value);
- }
- this.token(tag, value);
- return value.length;
- };
-
- Lexer.prototype.sanitizeHeredoc = function(doc, options) {
- var attempt, herecomment, indent, match, _ref2;
- indent = options.indent, herecomment = options.herecomment;
- if (herecomment) {
- if (HEREDOC_ILLEGAL.test(doc)) {
- this.error("block comment cannot contain \"*/\", starting");
- }
- if (doc.indexOf('\n') <= 0) {
- return doc;
- }
- } else {
- while (match = HEREDOC_INDENT.exec(doc)) {
- attempt = match[1];
- if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) {
- indent = attempt;
- }
- }
- }
- if (indent) {
- doc = doc.replace(RegExp("\\n" + indent, "g"), '\n');
- }
- if (!herecomment) {
- doc = doc.replace(/^\n/, '');
- }
- return doc;
- };
-
- Lexer.prototype.tagParameters = function() {
- var i, stack, tok, tokens;
- if (this.tag() !== ')') {
- return this;
- }
- stack = [];
- tokens = this.tokens;
- i = tokens.length;
- tokens[--i][0] = 'PARAM_END';
- while (tok = tokens[--i]) {
- switch (tok[0]) {
- case ')':
- stack.push(tok);
- break;
- case '(':
- case 'CALL_START':
- if (stack.length) {
- stack.pop();
- } else if (tok[0] === '(') {
- tok[0] = 'PARAM_START';
- return this;
- } else {
- return this;
- }
- }
- }
- return this;
- };
-
- Lexer.prototype.closeIndentation = function() {
- return this.outdentToken(this.indent);
- };
-
- Lexer.prototype.balancedString = function(str, end) {
- var continueCount, i, letter, match, prev, stack, _i, _ref2;
- continueCount = 0;
- stack = [end];
- for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) {
- if (continueCount) {
- --continueCount;
- continue;
- }
- switch (letter = str.charAt(i)) {
- case '\\':
- ++continueCount;
- continue;
- case end:
- stack.pop();
- if (!stack.length) {
- return str.slice(0, i + 1 || 9e9);
- }
- end = stack[stack.length - 1];
- continue;
- }
- if (end === '}' && (letter === '"' || letter === "'")) {
- stack.push(end = letter);
- } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) {
- continueCount += match[0].length - 1;
- } else if (end === '}' && letter === '{') {
- stack.push(end = '}');
- } else if (end === '"' && prev === '#' && letter === '{') {
- stack.push(end = '}');
- }
- prev = letter;
- }
- return this.error("missing " + (stack.pop()) + ", starting");
- };
-
- Lexer.prototype.interpolateString = function(str, options) {
- var expr, heredoc, i, inner, interpolated, len, letter, nested, pi, regex, tag, tokens, value, _i, _len, _ref2, _ref3, _ref4;
- if (options == null) {
- options = {};
- }
- heredoc = options.heredoc, regex = options.regex;
- tokens = [];
- pi = 0;
- i = -1;
- while (letter = str.charAt(i += 1)) {
- if (letter === '\\') {
- i += 1;
- continue;
- }
- if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) {
- continue;
- }
- if (pi < i) {
- tokens.push(['NEOSTRING', str.slice(pi, i)]);
- }
- inner = expr.slice(1, -1);
- if (inner.length) {
- nested = new Lexer().tokenize(inner, {
- line: this.line,
- rewrite: false
- });
- nested.pop();
- if (((_ref2 = nested[0]) != null ? _ref2[0] : void 0) === 'TERMINATOR') {
- nested.shift();
- }
- if (len = nested.length) {
- if (len > 1) {
- nested.unshift(['(', '(', this.line]);
- nested.push([')', ')', this.line]);
- }
- tokens.push(['TOKENS', nested]);
- }
- }
- i += expr.length;
- pi = i + 1;
- }
- if ((i > pi && pi < str.length)) {
- tokens.push(['NEOSTRING', str.slice(pi)]);
- }
- if (regex) {
- return tokens;
- }
- if (!tokens.length) {
- return this.token('STRING', '""');
- }
- if (tokens[0][0] !== 'NEOSTRING') {
- tokens.unshift(['', '']);
- }
- if (interpolated = tokens.length > 1) {
- this.token('(', '(');
- }
- for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) {
- _ref3 = tokens[i], tag = _ref3[0], value = _ref3[1];
- if (i) {
- this.token('+', '+');
- }
- if (tag === 'TOKENS') {
- (_ref4 = this.tokens).push.apply(_ref4, value);
- } else {
- this.token('STRING', this.makeString(value, '"', heredoc));
- }
- }
- if (interpolated) {
- this.token(')', ')');
- }
- return tokens;
- };
-
- Lexer.prototype.pair = function(tag) {
- var size, wanted;
- if (tag !== (wanted = last(this.ends))) {
- if ('OUTDENT' !== wanted) {
- this.error("unmatched " + tag);
- }
- this.indent -= size = last(this.indents);
- this.outdentToken(size, true);
- return this.pair(tag);
- }
- return this.ends.pop();
- };
-
- Lexer.prototype.token = function(tag, value) {
- return this.tokens.push([tag, value, this.line]);
- };
-
- Lexer.prototype.tag = function(index, tag) {
- var tok;
- return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]);
- };
-
- Lexer.prototype.value = function(index, val) {
- var tok;
- return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]);
- };
-
- Lexer.prototype.unfinished = function() {
- var _ref2;
- return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS');
- };
-
- Lexer.prototype.escapeLines = function(str, heredoc) {
- return str.replace(MULTILINER, heredoc ? '\\n' : '');
- };
-
- Lexer.prototype.makeString = function(body, quote, heredoc) {
- if (!body) {
- return quote + quote;
- }
- body = body.replace(/\\([\s\S])/g, function(match, contents) {
- if (contents === '\n' || contents === quote) {
- return contents;
- } else {
- return match;
- }
- });
- body = body.replace(RegExp("" + quote, "g"), '\\$&');
- return quote + this.escapeLines(body, heredoc) + quote;
- };
-
- Lexer.prototype.error = function(message) {
- throw SyntaxError("" + message + " on line " + (this.line + 1));
- };
-
- return Lexer;
-
- })();
-
- JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super'];
-
- COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when'];
-
- COFFEE_ALIAS_MAP = {
- and: '&&',
- or: '||',
- is: '==',
- isnt: '!=',
- not: '!',
- yes: 'true',
- no: 'false',
- on: 'true',
- off: 'false'
- };
-
- COFFEE_ALIASES = (function() {
- var _results;
- _results = [];
- for (key in COFFEE_ALIAS_MAP) {
- _results.push(key);
- }
- return _results;
- })();
-
- COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES);
-
- RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'let', 'package', 'private', 'protected', 'public', 'static', 'yield'];
-
- STRICT_PROSCRIBED = ['arguments', 'eval'];
-
- JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED);
-
- exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED);
-
- exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED;
-
- IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/;
-
- NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;
-
- HEREDOC = /^("""|''')([\s\S]*?)(?:\n[^\n\S]*)?\1/;
-
- OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/;
-
- WHITESPACE = /^[^\n\S]+/;
-
- COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/;
-
- CODE = /^[-=]>/;
-
- MULTI_DENT = /^(?:\n[^\n\S]*)+/;
-
- SIMPLESTR = /^'[^\\']*(?:\\.[^\\']*)*'/;
-
- JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/;
-
- REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/;
-
- HEREGEX = /^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/;
-
- HEREGEX_OMIT = /\s+(?:#.*)?/g;
-
- MULTILINER = /\n/g;
-
- HEREDOC_INDENT = /\n+([^\n\S]*)/g;
-
- HEREDOC_ILLEGAL = /\*\//;
-
- LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/;
-
- TRAILING_SPACES = /\s+$/;
-
- COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|='];
-
- UNARY = ['!', '~', 'NEW', 'TYPEOF', 'DELETE', 'DO'];
-
- LOGIC = ['&&', '||', '&', '|', '^'];
-
- SHIFT = ['<<', '>>', '>>>'];
-
- COMPARE = ['==', '!=', '<', '>', '<=', '>='];
-
- MATH = ['*', '/', '%'];
-
- RELATION = ['IN', 'OF', 'INSTANCEOF'];
-
- BOOL = ['TRUE', 'FALSE', 'NULL', 'UNDEFINED'];
-
- NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', '++', '--', ']'];
-
- NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING');
-
- CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER'];
-
- INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL');
-
- LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR'];
-
-}).call(this);
-}, "coffee-script/nodes": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, compact, del, ends, extend, flatten, last, merge, multident, starts, unfoldSoak, utility, _ref, _ref1,
- __hasProp = {}.hasOwnProperty,
- __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; },
- __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
- Scope = require('./scope').Scope;
-
- _ref = require('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED;
-
- _ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last;
-
- exports.extend = extend;
-
- YES = function() {
- return true;
- };
-
- NO = function() {
- return false;
- };
-
- THIS = function() {
- return this;
- };
-
- NEGATE = function() {
- this.negated = !this.negated;
- return this;
- };
-
- exports.Base = Base = (function() {
-
- Base.name = 'Base';
-
- function Base() {}
-
- Base.prototype.compile = function(o, lvl) {
- var node;
- o = extend({}, o);
- if (lvl) {
- o.level = lvl;
- }
- node = this.unfoldSoak(o) || this;
- node.tab = o.indent;
- if (o.level === LEVEL_TOP || !node.isStatement(o)) {
- return node.compileNode(o);
- } else {
- return node.compileClosure(o);
- }
- };
-
- Base.prototype.compileClosure = function(o) {
- if (this.jumps()) {
- throw SyntaxError('cannot use a pure statement in an expression.');
- }
- o.sharedScope = true;
- return Closure.wrap(this).compileNode(o);
- };
-
- Base.prototype.cache = function(o, level, reused) {
- var ref, sub;
- if (!this.isComplex()) {
- ref = level ? this.compile(o, level) : this;
- return [ref, ref];
- } else {
- ref = new Literal(reused || o.scope.freeVariable('ref'));
- sub = new Assign(ref, this);
- if (level) {
- return [sub.compile(o, level), ref.value];
- } else {
- return [sub, ref];
- }
- }
- };
-
- Base.prototype.compileLoopReference = function(o, name) {
- var src, tmp;
- src = tmp = this.compile(o, LEVEL_LIST);
- if (!((-Infinity < +src && +src < Infinity) || IDENTIFIER.test(src) && o.scope.check(src, true))) {
- src = "" + (tmp = o.scope.freeVariable(name)) + " = " + src;
- }
- return [src, tmp];
- };
-
- Base.prototype.makeReturn = function(res) {
- var me;
- me = this.unwrapAll();
- if (res) {
- return new Call(new Literal("" + res + ".push"), [me]);
- } else {
- return new Return(me);
- }
- };
-
- Base.prototype.contains = function(pred) {
- var contains;
- contains = false;
- this.traverseChildren(false, function(node) {
- if (pred(node)) {
- contains = true;
- return false;
- }
- });
- return contains;
- };
-
- Base.prototype.containsType = function(type) {
- return this instanceof type || this.contains(function(node) {
- return node instanceof type;
- });
- };
-
- Base.prototype.lastNonComment = function(list) {
- var i;
- i = list.length;
- while (i--) {
- if (!(list[i] instanceof Comment)) {
- return list[i];
- }
- }
- return null;
- };
-
- Base.prototype.toString = function(idt, name) {
- var tree;
- if (idt == null) {
- idt = '';
- }
- if (name == null) {
- name = this.constructor.name;
- }
- tree = '\n' + idt + name;
- if (this.soak) {
- tree += '?';
- }
- this.eachChild(function(node) {
- return tree += node.toString(idt + TAB);
- });
- return tree;
- };
-
- Base.prototype.eachChild = function(func) {
- var attr, child, _i, _j, _len, _len1, _ref2, _ref3;
- if (!this.children) {
- return this;
- }
- _ref2 = this.children;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- attr = _ref2[_i];
- if (this[attr]) {
- _ref3 = flatten([this[attr]]);
- for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
- child = _ref3[_j];
- if (func(child) === false) {
- return this;
- }
- }
- }
- }
- return this;
- };
-
- Base.prototype.traverseChildren = function(crossScope, func) {
- return this.eachChild(function(child) {
- if (func(child) === false) {
- return false;
- }
- return child.traverseChildren(crossScope, func);
- });
- };
-
- Base.prototype.invert = function() {
- return new Op('!', this);
- };
-
- Base.prototype.unwrapAll = function() {
- var node;
- node = this;
- while (node !== (node = node.unwrap())) {
- continue;
- }
- return node;
- };
-
- Base.prototype.children = [];
-
- Base.prototype.isStatement = NO;
-
- Base.prototype.jumps = NO;
-
- Base.prototype.isComplex = YES;
-
- Base.prototype.isChainable = NO;
-
- Base.prototype.isAssignable = NO;
-
- Base.prototype.unwrap = THIS;
-
- Base.prototype.unfoldSoak = NO;
-
- Base.prototype.assigns = NO;
-
- return Base;
-
- })();
-
- exports.Block = Block = (function(_super) {
-
- __extends(Block, _super);
-
- Block.name = 'Block';
-
- function Block(nodes) {
- this.expressions = compact(flatten(nodes || []));
- }
-
- Block.prototype.children = ['expressions'];
-
- Block.prototype.push = function(node) {
- this.expressions.push(node);
- return this;
- };
-
- Block.prototype.pop = function() {
- return this.expressions.pop();
- };
-
- Block.prototype.unshift = function(node) {
- this.expressions.unshift(node);
- return this;
- };
-
- Block.prototype.unwrap = function() {
- if (this.expressions.length === 1) {
- return this.expressions[0];
- } else {
- return this;
- }
- };
-
- Block.prototype.isEmpty = function() {
- return !this.expressions.length;
- };
-
- Block.prototype.isStatement = function(o) {
- var exp, _i, _len, _ref2;
- _ref2 = this.expressions;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- exp = _ref2[_i];
- if (exp.isStatement(o)) {
- return true;
- }
- }
- return false;
- };
-
- Block.prototype.jumps = function(o) {
- var exp, _i, _len, _ref2;
- _ref2 = this.expressions;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- exp = _ref2[_i];
- if (exp.jumps(o)) {
- return exp;
- }
- }
- };
-
- Block.prototype.makeReturn = function(res) {
- var expr, len;
- len = this.expressions.length;
- while (len--) {
- expr = this.expressions[len];
- if (!(expr instanceof Comment)) {
- this.expressions[len] = expr.makeReturn(res);
- if (expr instanceof Return && !expr.expression) {
- this.expressions.splice(len, 1);
- }
- break;
- }
- }
- return this;
- };
-
- Block.prototype.compile = function(o, level) {
- if (o == null) {
- o = {};
- }
- if (o.scope) {
- return Block.__super__.compile.call(this, o, level);
- } else {
- return this.compileRoot(o);
- }
- };
-
- Block.prototype.compileNode = function(o) {
- var code, codes, node, top, _i, _len, _ref2;
- this.tab = o.indent;
- top = o.level === LEVEL_TOP;
- codes = [];
- _ref2 = this.expressions;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- node = _ref2[_i];
- node = node.unwrapAll();
- node = node.unfoldSoak(o) || node;
- if (node instanceof Block) {
- codes.push(node.compileNode(o));
- } else if (top) {
- node.front = true;
- code = node.compile(o);
- if (!node.isStatement(o)) {
- code = "" + this.tab + code + ";";
- if (node instanceof Literal) {
- code = "" + code + "\n";
- }
- }
- codes.push(code);
- } else {
- codes.push(node.compile(o, LEVEL_LIST));
- }
- }
- if (top) {
- if (this.spaced) {
- return "\n" + (codes.join('\n\n')) + "\n";
- } else {
- return codes.join('\n');
- }
- }
- code = codes.join(', ') || 'void 0';
- if (codes.length > 1 && o.level >= LEVEL_LIST) {
- return "(" + code + ")";
- } else {
- return code;
- }
- };
-
- Block.prototype.compileRoot = function(o) {
- var code, exp, i, prelude, preludeExps, rest;
- o.indent = o.bare ? '' : TAB;
- o.scope = new Scope(null, this, null);
- o.level = LEVEL_TOP;
- this.spaced = true;
- prelude = "";
- if (!o.bare) {
- preludeExps = (function() {
- var _i, _len, _ref2, _results;
- _ref2 = this.expressions;
- _results = [];
- for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
- exp = _ref2[i];
- if (!(exp.unwrap() instanceof Comment)) {
- break;
- }
- _results.push(exp);
- }
- return _results;
- }).call(this);
- rest = this.expressions.slice(preludeExps.length);
- this.expressions = preludeExps;
- if (preludeExps.length) {
- prelude = "" + (this.compileNode(merge(o, {
- indent: ''
- }))) + "\n";
- }
- this.expressions = rest;
- }
- code = this.compileWithDeclarations(o);
- if (o.bare) {
- return code;
- }
- return "" + prelude + "(function() {\n" + code + "\n}).call(this);\n";
- };
-
- Block.prototype.compileWithDeclarations = function(o) {
- var assigns, code, declars, exp, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4;
- code = post = '';
- _ref2 = this.expressions;
- for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
- exp = _ref2[i];
- exp = exp.unwrap();
- if (!(exp instanceof Comment || exp instanceof Literal)) {
- break;
- }
- }
- o = merge(o, {
- level: LEVEL_TOP
- });
- if (i) {
- rest = this.expressions.splice(i, 9e9);
- _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1];
- _ref4 = [this.compileNode(o), spaced], code = _ref4[0], this.spaced = _ref4[1];
- this.expressions = rest;
- }
- post = this.compileNode(o);
- scope = o.scope;
- if (scope.expressions === this) {
- declars = o.scope.hasDeclarations();
- assigns = scope.hasAssignments;
- if (declars || assigns) {
- if (i) {
- code += '\n';
- }
- code += "" + this.tab + "var ";
- if (declars) {
- code += scope.declaredVariables().join(', ');
- }
- if (assigns) {
- if (declars) {
- code += ",\n" + (this.tab + TAB);
- }
- code += scope.assignedVariables().join(",\n" + (this.tab + TAB));
- }
- code += ';\n';
- }
- }
- return code + post;
- };
-
- Block.wrap = function(nodes) {
- if (nodes.length === 1 && nodes[0] instanceof Block) {
- return nodes[0];
- }
- return new Block(nodes);
- };
-
- return Block;
-
- })(Base);
-
- exports.Literal = Literal = (function(_super) {
-
- __extends(Literal, _super);
-
- Literal.name = 'Literal';
-
- function Literal(value) {
- this.value = value;
- }
-
- Literal.prototype.makeReturn = function() {
- if (this.isStatement()) {
- return this;
- } else {
- return Literal.__super__.makeReturn.apply(this, arguments);
- }
- };
-
- Literal.prototype.isAssignable = function() {
- return IDENTIFIER.test(this.value);
- };
-
- Literal.prototype.isStatement = function() {
- var _ref2;
- return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger';
- };
-
- Literal.prototype.isComplex = NO;
-
- Literal.prototype.assigns = function(name) {
- return name === this.value;
- };
-
- Literal.prototype.jumps = function(o) {
- if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) {
- return this;
- }
- if (this.value === 'continue' && !(o != null ? o.loop : void 0)) {
- return this;
- }
- };
-
- Literal.prototype.compileNode = function(o) {
- var code, _ref2;
- code = this.isUndefined ? o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0' : this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value;
- if (this.isStatement()) {
- return "" + this.tab + code + ";";
- } else {
- return code;
- }
- };
-
- Literal.prototype.toString = function() {
- return ' "' + this.value + '"';
- };
-
- return Literal;
-
- })(Base);
-
- exports.Return = Return = (function(_super) {
-
- __extends(Return, _super);
-
- Return.name = 'Return';
-
- function Return(expr) {
- if (expr && !expr.unwrap().isUndefined) {
- this.expression = expr;
- }
- }
-
- Return.prototype.children = ['expression'];
-
- Return.prototype.isStatement = YES;
-
- Return.prototype.makeReturn = THIS;
-
- Return.prototype.jumps = THIS;
-
- Return.prototype.compile = function(o, level) {
- var expr, _ref2;
- expr = (_ref2 = this.expression) != null ? _ref2.makeReturn() : void 0;
- if (expr && !(expr instanceof Return)) {
- return expr.compile(o, level);
- } else {
- return Return.__super__.compile.call(this, o, level);
- }
- };
-
- Return.prototype.compileNode = function(o) {
- return this.tab + ("return" + [this.expression ? " " + (this.expression.compile(o, LEVEL_PAREN)) : void 0] + ";");
- };
-
- return Return;
-
- })(Base);
-
- exports.Value = Value = (function(_super) {
-
- __extends(Value, _super);
-
- Value.name = 'Value';
-
- function Value(base, props, tag) {
- if (!props && base instanceof Value) {
- return base;
- }
- this.base = base;
- this.properties = props || [];
- if (tag) {
- this[tag] = true;
- }
- return this;
- }
-
- Value.prototype.children = ['base', 'properties'];
-
- Value.prototype.add = function(props) {
- this.properties = this.properties.concat(props);
- return this;
- };
-
- Value.prototype.hasProperties = function() {
- return !!this.properties.length;
- };
-
- Value.prototype.isArray = function() {
- return !this.properties.length && this.base instanceof Arr;
- };
-
- Value.prototype.isComplex = function() {
- return this.hasProperties() || this.base.isComplex();
- };
-
- Value.prototype.isAssignable = function() {
- return this.hasProperties() || this.base.isAssignable();
- };
-
- Value.prototype.isSimpleNumber = function() {
- return this.base instanceof Literal && SIMPLENUM.test(this.base.value);
- };
-
- Value.prototype.isString = function() {
- return this.base instanceof Literal && IS_STRING.test(this.base.value);
- };
-
- Value.prototype.isAtomic = function() {
- var node, _i, _len, _ref2;
- _ref2 = this.properties.concat(this.base);
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- node = _ref2[_i];
- if (node.soak || node instanceof Call) {
- return false;
- }
- }
- return true;
- };
-
- Value.prototype.isStatement = function(o) {
- return !this.properties.length && this.base.isStatement(o);
- };
-
- Value.prototype.assigns = function(name) {
- return !this.properties.length && this.base.assigns(name);
- };
-
- Value.prototype.jumps = function(o) {
- return !this.properties.length && this.base.jumps(o);
- };
-
- Value.prototype.isObject = function(onlyGenerated) {
- if (this.properties.length) {
- return false;
- }
- return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated);
- };
-
- Value.prototype.isSplice = function() {
- return last(this.properties) instanceof Slice;
- };
-
- Value.prototype.unwrap = function() {
- if (this.properties.length) {
- return this;
- } else {
- return this.base;
- }
- };
-
- Value.prototype.cacheReference = function(o) {
- var base, bref, name, nref;
- name = last(this.properties);
- if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) {
- return [this, this];
- }
- base = new Value(this.base, this.properties.slice(0, -1));
- if (base.isComplex()) {
- bref = new Literal(o.scope.freeVariable('base'));
- base = new Value(new Parens(new Assign(bref, base)));
- }
- if (!name) {
- return [base, bref];
- }
- if (name.isComplex()) {
- nref = new Literal(o.scope.freeVariable('name'));
- name = new Index(new Assign(nref, name.index));
- nref = new Index(nref);
- }
- return [base.add(name), new Value(bref || base.base, [nref || name])];
- };
-
- Value.prototype.compileNode = function(o) {
- var code, prop, props, _i, _len;
- this.base.front = this.front;
- props = this.properties;
- code = this.base.compile(o, props.length ? LEVEL_ACCESS : null);
- if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(code)) {
- code = "" + code + ".";
- }
- for (_i = 0, _len = props.length; _i < _len; _i++) {
- prop = props[_i];
- code += prop.compile(o);
- }
- return code;
- };
-
- Value.prototype.unfoldSoak = function(o) {
- var result,
- _this = this;
- if (this.unfoldedSoak != null) {
- return this.unfoldedSoak;
- }
- result = (function() {
- var fst, i, ifn, prop, ref, snd, _i, _len, _ref2;
- if (ifn = _this.base.unfoldSoak(o)) {
- Array.prototype.push.apply(ifn.body.properties, _this.properties);
- return ifn;
- }
- _ref2 = _this.properties;
- for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
- prop = _ref2[i];
- if (!prop.soak) {
- continue;
- }
- prop.soak = false;
- fst = new Value(_this.base, _this.properties.slice(0, i));
- snd = new Value(_this.base, _this.properties.slice(i));
- if (fst.isComplex()) {
- ref = new Literal(o.scope.freeVariable('ref'));
- fst = new Parens(new Assign(ref, fst));
- snd.base = ref;
- }
- return new If(new Existence(fst), snd, {
- soak: true
- });
- }
- return null;
- })();
- return this.unfoldedSoak = result || false;
- };
-
- return Value;
-
- })(Base);
-
- exports.Comment = Comment = (function(_super) {
-
- __extends(Comment, _super);
-
- Comment.name = 'Comment';
-
- function Comment(comment) {
- this.comment = comment;
- }
-
- Comment.prototype.isStatement = YES;
-
- Comment.prototype.makeReturn = THIS;
-
- Comment.prototype.compileNode = function(o, level) {
- var code;
- code = '/*' + multident(this.comment, this.tab) + ("\n" + this.tab + "*/\n");
- if ((level || o.level) === LEVEL_TOP) {
- code = o.indent + code;
- }
- return code;
- };
-
- return Comment;
-
- })(Base);
-
- exports.Call = Call = (function(_super) {
-
- __extends(Call, _super);
-
- Call.name = 'Call';
-
- function Call(variable, args, soak) {
- this.args = args != null ? args : [];
- this.soak = soak;
- this.isNew = false;
- this.isSuper = variable === 'super';
- this.variable = this.isSuper ? null : variable;
- }
-
- Call.prototype.children = ['variable', 'args'];
-
- Call.prototype.newInstance = function() {
- var base, _ref2;
- base = ((_ref2 = this.variable) != null ? _ref2.base : void 0) || this.variable;
- if (base instanceof Call && !base.isNew) {
- base.newInstance();
- } else {
- this.isNew = true;
- }
- return this;
- };
-
- Call.prototype.superReference = function(o) {
- var accesses, method, name;
- method = o.scope.method;
- if (!method) {
- throw SyntaxError('cannot call super outside of a function.');
- }
- name = method.name;
- if (name == null) {
- throw SyntaxError('cannot call super on an anonymous function.');
- }
- if (method.klass) {
- accesses = [new Access(new Literal('__super__'))];
- if (method["static"]) {
- accesses.push(new Access(new Literal('constructor')));
- }
- accesses.push(new Access(new Literal(name)));
- return (new Value(new Literal(method.klass), accesses)).compile(o);
- } else {
- return "" + name + ".__super__.constructor";
- }
- };
-
- Call.prototype.unfoldSoak = function(o) {
- var call, ifn, left, list, rite, _i, _len, _ref2, _ref3;
- if (this.soak) {
- if (this.variable) {
- if (ifn = unfoldSoak(o, this, 'variable')) {
- return ifn;
- }
- _ref2 = new Value(this.variable).cacheReference(o), left = _ref2[0], rite = _ref2[1];
- } else {
- left = new Literal(this.superReference(o));
- rite = new Value(left);
- }
- rite = new Call(rite, this.args);
- rite.isNew = this.isNew;
- left = new Literal("typeof " + (left.compile(o)) + " === \"function\"");
- return new If(left, new Value(rite), {
- soak: true
- });
- }
- call = this;
- list = [];
- while (true) {
- if (call.variable instanceof Call) {
- list.push(call);
- call = call.variable;
- continue;
- }
- if (!(call.variable instanceof Value)) {
- break;
- }
- list.push(call);
- if (!((call = call.variable.base) instanceof Call)) {
- break;
- }
- }
- _ref3 = list.reverse();
- for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
- call = _ref3[_i];
- if (ifn) {
- if (call.variable instanceof Call) {
- call.variable = ifn;
- } else {
- call.variable.base = ifn;
- }
- }
- ifn = unfoldSoak(o, call, 'variable');
- }
- return ifn;
- };
-
- Call.prototype.filterImplicitObjects = function(list) {
- var node, nodes, obj, prop, properties, _i, _j, _len, _len1, _ref2;
- nodes = [];
- for (_i = 0, _len = list.length; _i < _len; _i++) {
- node = list[_i];
- if (!((typeof node.isObject === "function" ? node.isObject() : void 0) && node.base.generated)) {
- nodes.push(node);
- continue;
- }
- obj = null;
- _ref2 = node.base.properties;
- for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
- prop = _ref2[_j];
- if (prop instanceof Assign || prop instanceof Comment) {
- if (!obj) {
- nodes.push(obj = new Obj(properties = [], true));
- }
- properties.push(prop);
- } else {
- nodes.push(prop);
- obj = null;
- }
- }
- }
- return nodes;
- };
-
- Call.prototype.compileNode = function(o) {
- var arg, args, code, _ref2;
- if ((_ref2 = this.variable) != null) {
- _ref2.front = this.front;
- }
- if (code = Splat.compileSplattedArray(o, this.args, true)) {
- return this.compileSplat(o, code);
- }
- args = this.filterImplicitObjects(this.args);
- args = ((function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = args.length; _i < _len; _i++) {
- arg = args[_i];
- _results.push(arg.compile(o, LEVEL_LIST));
- }
- return _results;
- })()).join(', ');
- if (this.isSuper) {
- return this.superReference(o) + (".call(this" + (args && ', ' + args) + ")");
- } else {
- return (this.isNew ? 'new ' : '') + this.variable.compile(o, LEVEL_ACCESS) + ("(" + args + ")");
- }
- };
-
- Call.prototype.compileSuper = function(args, o) {
- return "" + (this.superReference(o)) + ".call(this" + (args.length ? ', ' : '') + args + ")";
- };
-
- Call.prototype.compileSplat = function(o, splatArgs) {
- var base, fun, idt, name, ref;
- if (this.isSuper) {
- return "" + (this.superReference(o)) + ".apply(this, " + splatArgs + ")";
- }
- if (this.isNew) {
- idt = this.tab + TAB;
- return "(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args), t = typeof result;\n" + idt + "return t == \"object\" || t == \"function\" ? result || child : child;\n" + this.tab + "})(" + (this.variable.compile(o, LEVEL_LIST)) + ", " + splatArgs + ", function(){})";
- }
- base = new Value(this.variable);
- if ((name = base.properties.pop()) && base.isComplex()) {
- ref = o.scope.freeVariable('ref');
- fun = "(" + ref + " = " + (base.compile(o, LEVEL_LIST)) + ")" + (name.compile(o));
- } else {
- fun = base.compile(o, LEVEL_ACCESS);
- if (SIMPLENUM.test(fun)) {
- fun = "(" + fun + ")";
- }
- if (name) {
- ref = fun;
- fun += name.compile(o);
- } else {
- ref = 'null';
- }
- }
- return "" + fun + ".apply(" + ref + ", " + splatArgs + ")";
- };
-
- return Call;
-
- })(Base);
-
- exports.Extends = Extends = (function(_super) {
-
- __extends(Extends, _super);
-
- Extends.name = 'Extends';
-
- function Extends(child, parent) {
- this.child = child;
- this.parent = parent;
- }
-
- Extends.prototype.children = ['child', 'parent'];
-
- Extends.prototype.compile = function(o) {
- return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compile(o);
- };
-
- return Extends;
-
- })(Base);
-
- exports.Access = Access = (function(_super) {
-
- __extends(Access, _super);
-
- Access.name = 'Access';
-
- function Access(name, tag) {
- this.name = name;
- this.name.asKey = true;
- this.soak = tag === 'soak';
- }
-
- Access.prototype.children = ['name'];
-
- Access.prototype.compile = function(o) {
- var name;
- name = this.name.compile(o);
- if (IDENTIFIER.test(name)) {
- return "." + name;
- } else {
- return "[" + name + "]";
- }
- };
-
- Access.prototype.isComplex = NO;
-
- return Access;
-
- })(Base);
-
- exports.Index = Index = (function(_super) {
-
- __extends(Index, _super);
-
- Index.name = 'Index';
-
- function Index(index) {
- this.index = index;
- }
-
- Index.prototype.children = ['index'];
-
- Index.prototype.compile = function(o) {
- return "[" + (this.index.compile(o, LEVEL_PAREN)) + "]";
- };
-
- Index.prototype.isComplex = function() {
- return this.index.isComplex();
- };
-
- return Index;
-
- })(Base);
-
- exports.Range = Range = (function(_super) {
-
- __extends(Range, _super);
-
- Range.name = 'Range';
-
- Range.prototype.children = ['from', 'to'];
-
- function Range(from, to, tag) {
- this.from = from;
- this.to = to;
- this.exclusive = tag === 'exclusive';
- this.equals = this.exclusive ? '' : '=';
- }
-
- Range.prototype.compileVariables = function(o) {
- var step, _ref2, _ref3, _ref4, _ref5;
- o = merge(o, {
- top: true
- });
- _ref2 = this.from.cache(o, LEVEL_LIST), this.fromC = _ref2[0], this.fromVar = _ref2[1];
- _ref3 = this.to.cache(o, LEVEL_LIST), this.toC = _ref3[0], this.toVar = _ref3[1];
- if (step = del(o, 'step')) {
- _ref4 = step.cache(o, LEVEL_LIST), this.step = _ref4[0], this.stepVar = _ref4[1];
- }
- _ref5 = [this.fromVar.match(SIMPLENUM), this.toVar.match(SIMPLENUM)], this.fromNum = _ref5[0], this.toNum = _ref5[1];
- if (this.stepVar) {
- return this.stepNum = this.stepVar.match(SIMPLENUM);
- }
- };
-
- Range.prototype.compileNode = function(o) {
- var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref2, _ref3;
- if (!this.fromVar) {
- this.compileVariables(o);
- }
- if (!o.index) {
- return this.compileArray(o);
- }
- known = this.fromNum && this.toNum;
- idx = del(o, 'index');
- idxName = del(o, 'name');
- namedIndex = idxName && idxName !== idx;
- varPart = "" + idx + " = " + this.fromC;
- if (this.toC !== this.toVar) {
- varPart += ", " + this.toC;
- }
- if (this.step !== this.stepVar) {
- varPart += ", " + this.step;
- }
- _ref2 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref2[0], gt = _ref2[1];
- condPart = this.stepNum ? +this.stepNum > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref3 = [+this.fromNum, +this.toNum], from = _ref3[0], to = _ref3[1], _ref3), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar);
- stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--";
- if (namedIndex) {
- varPart = "" + idxName + " = " + varPart;
- }
- if (namedIndex) {
- stepPart = "" + idxName + " = " + stepPart;
- }
- return "" + varPart + "; " + condPart + "; " + stepPart;
- };
-
- Range.prototype.compileArray = function(o) {
- var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref2, _ref3, _results;
- if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) {
- range = (function() {
- _results = [];
- for (var _i = _ref2 = +this.fromNum, _ref3 = +this.toNum; _ref2 <= _ref3 ? _i <= _ref3 : _i >= _ref3; _ref2 <= _ref3 ? _i++ : _i--){ _results.push(_i); }
- return _results;
- }).apply(this);
- if (this.exclusive) {
- range.pop();
- }
- return "[" + (range.join(', ')) + "]";
- }
- idt = this.tab + TAB;
- i = o.scope.freeVariable('i');
- result = o.scope.freeVariable('results');
- pre = "\n" + idt + result + " = [];";
- if (this.fromNum && this.toNum) {
- o.index = i;
- body = this.compileNode(o);
- } else {
- vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : '');
- cond = "" + this.fromVar + " <= " + this.toVar;
- body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--";
- }
- post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent;
- hasArgs = function(node) {
- return node != null ? node.contains(function(n) {
- return n instanceof Literal && n.value === 'arguments' && !n.asKey;
- }) : void 0;
- };
- if (hasArgs(this.from) || hasArgs(this.to)) {
- args = ', arguments';
- }
- return "(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")";
- };
-
- return Range;
-
- })(Base);
-
- exports.Slice = Slice = (function(_super) {
-
- __extends(Slice, _super);
-
- Slice.name = 'Slice';
-
- Slice.prototype.children = ['range'];
-
- function Slice(range) {
- this.range = range;
- Slice.__super__.constructor.call(this);
- }
-
- Slice.prototype.compileNode = function(o) {
- var compiled, from, fromStr, to, toStr, _ref2;
- _ref2 = this.range, to = _ref2.to, from = _ref2.from;
- fromStr = from && from.compile(o, LEVEL_PAREN) || '0';
- compiled = to && to.compile(o, LEVEL_PAREN);
- if (to && !(!this.range.exclusive && +compiled === -1)) {
- toStr = ', ' + (this.range.exclusive ? compiled : SIMPLENUM.test(compiled) ? "" + (+compiled + 1) : (compiled = to.compile(o, LEVEL_ACCESS), "" + compiled + " + 1 || 9e9"));
- }
- return ".slice(" + fromStr + (toStr || '') + ")";
- };
-
- return Slice;
-
- })(Base);
-
- exports.Obj = Obj = (function(_super) {
-
- __extends(Obj, _super);
-
- Obj.name = 'Obj';
-
- function Obj(props, generated) {
- this.generated = generated != null ? generated : false;
- this.objects = this.properties = props || [];
- }
-
- Obj.prototype.children = ['properties'];
-
- Obj.prototype.compileNode = function(o) {
- var i, idt, indent, join, lastNoncom, node, obj, prop, propName, propNames, props, _i, _j, _len, _len1, _ref2;
- props = this.properties;
- propNames = [];
- _ref2 = this.properties;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- prop = _ref2[_i];
- if (prop.isComplex()) {
- prop = prop.variable;
- }
- if (prop != null) {
- propName = prop.unwrapAll().value.toString();
- if (__indexOf.call(propNames, propName) >= 0) {
- throw SyntaxError("multiple object literal properties named \"" + propName + "\"");
- }
- propNames.push(propName);
- }
- }
- if (!props.length) {
- return (this.front ? '({})' : '{}');
- }
- if (this.generated) {
- for (_j = 0, _len1 = props.length; _j < _len1; _j++) {
- node = props[_j];
- if (node instanceof Value) {
- throw new Error('cannot have an implicit value in an implicit object');
- }
- }
- }
- idt = o.indent += TAB;
- lastNoncom = this.lastNonComment(this.properties);
- props = (function() {
- var _k, _len2, _results;
- _results = [];
- for (i = _k = 0, _len2 = props.length; _k < _len2; i = ++_k) {
- prop = props[i];
- join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n';
- indent = prop instanceof Comment ? '' : idt;
- if (prop instanceof Value && prop["this"]) {
- prop = new Assign(prop.properties[0].name, prop, 'object');
- }
- if (!(prop instanceof Comment)) {
- if (!(prop instanceof Assign)) {
- prop = new Assign(prop, prop, 'object');
- }
- (prop.variable.base || prop.variable).asKey = true;
- }
- _results.push(indent + prop.compile(o, LEVEL_TOP) + join);
- }
- return _results;
- })();
- props = props.join('');
- obj = "{" + (props && '\n' + props + '\n' + this.tab) + "}";
- if (this.front) {
- return "(" + obj + ")";
- } else {
- return obj;
- }
- };
-
- Obj.prototype.assigns = function(name) {
- var prop, _i, _len, _ref2;
- _ref2 = this.properties;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- prop = _ref2[_i];
- if (prop.assigns(name)) {
- return true;
- }
- }
- return false;
- };
-
- return Obj;
-
- })(Base);
-
- exports.Arr = Arr = (function(_super) {
-
- __extends(Arr, _super);
-
- Arr.name = 'Arr';
-
- function Arr(objs) {
- this.objects = objs || [];
- }
-
- Arr.prototype.children = ['objects'];
-
- Arr.prototype.filterImplicitObjects = Call.prototype.filterImplicitObjects;
-
- Arr.prototype.compileNode = function(o) {
- var code, obj, objs;
- if (!this.objects.length) {
- return '[]';
- }
- o.indent += TAB;
- objs = this.filterImplicitObjects(this.objects);
- if (code = Splat.compileSplattedArray(o, objs)) {
- return code;
- }
- code = ((function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = objs.length; _i < _len; _i++) {
- obj = objs[_i];
- _results.push(obj.compile(o, LEVEL_LIST));
- }
- return _results;
- })()).join(', ');
- if (code.indexOf('\n') >= 0) {
- return "[\n" + o.indent + code + "\n" + this.tab + "]";
- } else {
- return "[" + code + "]";
- }
- };
-
- Arr.prototype.assigns = function(name) {
- var obj, _i, _len, _ref2;
- _ref2 = this.objects;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- obj = _ref2[_i];
- if (obj.assigns(name)) {
- return true;
- }
- }
- return false;
- };
-
- return Arr;
-
- })(Base);
-
- exports.Class = Class = (function(_super) {
-
- __extends(Class, _super);
-
- Class.name = 'Class';
-
- function Class(variable, parent, body) {
- this.variable = variable;
- this.parent = parent;
- this.body = body != null ? body : new Block;
- this.boundFuncs = [];
- this.body.classBody = true;
- }
-
- Class.prototype.children = ['variable', 'parent', 'body'];
-
- Class.prototype.determineName = function() {
- var decl, tail;
- if (!this.variable) {
- return null;
- }
- decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value;
- if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) {
- throw SyntaxError("variable name may not be " + decl);
- }
- return decl && (decl = IDENTIFIER.test(decl) && decl);
- };
-
- Class.prototype.setContext = function(name) {
- return this.body.traverseChildren(false, function(node) {
- if (node.classBody) {
- return false;
- }
- if (node instanceof Literal && node.value === 'this') {
- return node.value = name;
- } else if (node instanceof Code) {
- node.klass = name;
- if (node.bound) {
- return node.context = name;
- }
- }
- });
- };
-
- Class.prototype.addBoundFunctions = function(o) {
- var bvar, lhs, _i, _len, _ref2, _results;
- if (this.boundFuncs.length) {
- _ref2 = this.boundFuncs;
- _results = [];
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- bvar = _ref2[_i];
- lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o);
- _results.push(this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)")));
- }
- return _results;
- }
- };
-
- Class.prototype.addProperties = function(node, name, o) {
- var assign, base, exprs, func, props;
- props = node.base.properties.slice(0);
- exprs = (function() {
- var _results;
- _results = [];
- while (assign = props.shift()) {
- if (assign instanceof Assign) {
- base = assign.variable.base;
- delete assign.context;
- func = assign.value;
- if (base.value === 'constructor') {
- if (this.ctor) {
- throw new Error('cannot define more than one constructor in a class');
- }
- if (func.bound) {
- throw new Error('cannot define a constructor as a bound function');
- }
- if (func instanceof Code) {
- assign = this.ctor = func;
- } else {
- this.externalCtor = o.scope.freeVariable('class');
- assign = new Assign(new Literal(this.externalCtor), func);
- }
- } else {
- if (assign.variable["this"]) {
- func["static"] = true;
- if (func.bound) {
- func.context = name;
- }
- } else {
- assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]);
- if (func instanceof Code && func.bound) {
- this.boundFuncs.push(base);
- func.bound = false;
- }
- }
- }
- }
- _results.push(assign);
- }
- return _results;
- }).call(this);
- return compact(exprs);
- };
-
- Class.prototype.walkBody = function(name, o) {
- var _this = this;
- return this.traverseChildren(false, function(child) {
- var exps, i, node, _i, _len, _ref2;
- if (child instanceof Class) {
- return false;
- }
- if (child instanceof Block) {
- _ref2 = exps = child.expressions;
- for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
- node = _ref2[i];
- if (node instanceof Value && node.isObject(true)) {
- exps[i] = _this.addProperties(node, name, o);
- }
- }
- return child.expressions = exps = flatten(exps);
- }
- });
- };
-
- Class.prototype.hoistDirectivePrologue = function() {
- var expressions, index, node;
- index = 0;
- expressions = this.body.expressions;
- while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) {
- ++index;
- }
- return this.directives = expressions.splice(0, index);
- };
-
- Class.prototype.ensureConstructor = function(name) {
- if (!this.ctor) {
- this.ctor = new Code;
- if (this.parent) {
- this.ctor.body.push(new Literal("" + name + ".__super__.constructor.apply(this, arguments)"));
- }
- if (this.externalCtor) {
- this.ctor.body.push(new Literal("" + this.externalCtor + ".apply(this, arguments)"));
- }
- this.ctor.body.makeReturn();
- this.body.expressions.unshift(this.ctor);
- }
- this.ctor.ctor = this.ctor.name = name;
- this.ctor.klass = null;
- return this.ctor.noReturn = true;
- };
-
- Class.prototype.compileNode = function(o) {
- var call, decl, klass, lname, name, params, _ref2;
- decl = this.determineName();
- name = decl || '_Class';
- if (name.reserved) {
- name = "_" + name;
- }
- lname = new Literal(name);
- this.hoistDirectivePrologue();
- this.setContext(name);
- this.walkBody(name, o);
- this.ensureConstructor(name);
- this.body.spaced = true;
- if (!(this.ctor instanceof Code)) {
- this.body.expressions.unshift(this.ctor);
- }
- if (decl) {
- this.body.expressions.unshift(new Assign(new Value(new Literal(name), [new Access(new Literal('name'))]), new Literal("'" + name + "'")));
- }
- this.body.expressions.push(lname);
- (_ref2 = this.body.expressions).unshift.apply(_ref2, this.directives);
- this.addBoundFunctions(o);
- call = Closure.wrap(this.body);
- if (this.parent) {
- this.superClass = new Literal(o.scope.freeVariable('super', false));
- this.body.expressions.unshift(new Extends(lname, this.superClass));
- call.args.push(this.parent);
- params = call.variable.params || call.variable.base.params;
- params.push(new Param(this.superClass));
- }
- klass = new Parens(call, true);
- if (this.variable) {
- klass = new Assign(this.variable, klass);
- }
- return klass.compile(o);
- };
-
- return Class;
-
- })(Base);
-
- exports.Assign = Assign = (function(_super) {
-
- __extends(Assign, _super);
-
- Assign.name = 'Assign';
-
- function Assign(variable, value, context, options) {
- var forbidden, name, _ref2;
- this.variable = variable;
- this.value = value;
- this.context = context;
- this.param = options && options.param;
- this.subpattern = options && options.subpattern;
- forbidden = (_ref2 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0);
- if (forbidden && this.context !== 'object') {
- throw SyntaxError("variable name may not be \"" + name + "\"");
- }
- }
-
- Assign.prototype.children = ['variable', 'value'];
-
- Assign.prototype.isStatement = function(o) {
- return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0;
- };
-
- Assign.prototype.assigns = function(name) {
- return this[this.context === 'object' ? 'value' : 'variable'].assigns(name);
- };
-
- Assign.prototype.unfoldSoak = function(o) {
- return unfoldSoak(o, this, 'variable');
- };
-
- Assign.prototype.compileNode = function(o) {
- var isValue, match, name, val, varBase, _ref2, _ref3, _ref4, _ref5;
- if (isValue = this.variable instanceof Value) {
- if (this.variable.isArray() || this.variable.isObject()) {
- return this.compilePatternMatch(o);
- }
- if (this.variable.isSplice()) {
- return this.compileSplice(o);
- }
- if ((_ref2 = this.context) === '||=' || _ref2 === '&&=' || _ref2 === '?=') {
- return this.compileConditional(o);
- }
- }
- name = this.variable.compile(o, LEVEL_LIST);
- if (!this.context) {
- if (!(varBase = this.variable.unwrapAll()).isAssignable()) {
- throw SyntaxError("\"" + (this.variable.compile(o)) + "\" cannot be assigned.");
- }
- if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) {
- if (this.param) {
- o.scope.add(name, 'var');
- } else {
- o.scope.find(name);
- }
- }
- }
- if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) {
- if (match[1]) {
- this.value.klass = match[1];
- }
- this.value.name = (_ref3 = (_ref4 = (_ref5 = match[2]) != null ? _ref5 : match[3]) != null ? _ref4 : match[4]) != null ? _ref3 : match[5];
- }
- val = this.value.compile(o, LEVEL_LIST);
- if (this.context === 'object') {
- return "" + name + ": " + val;
- }
- val = name + (" " + (this.context || '=') + " ") + val;
- if (o.level <= LEVEL_LIST) {
- return val;
- } else {
- return "(" + val + ")";
- }
- };
-
- Assign.prototype.compilePatternMatch = function(o) {
- var acc, assigns, code, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, splat, top, val, value, vvar, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8;
- top = o.level === LEVEL_TOP;
- value = this.value;
- objects = this.variable.base.objects;
- if (!(olen = objects.length)) {
- code = value.compile(o);
- if (o.level >= LEVEL_OP) {
- return "(" + code + ")";
- } else {
- return code;
- }
- }
- isObject = this.variable.isObject();
- if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) {
- if (obj instanceof Assign) {
- _ref2 = obj, (_ref3 = _ref2.variable, idx = _ref3.base), obj = _ref2.value;
- } else {
- if (obj.base instanceof Parens) {
- _ref4 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref4[0], idx = _ref4[1];
- } else {
- idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0);
- }
- }
- acc = IDENTIFIER.test(idx.unwrap().value || 0);
- value = new Value(value);
- value.properties.push(new (acc ? Access : Index)(idx));
- if (_ref5 = obj.unwrap().value, __indexOf.call(RESERVED, _ref5) >= 0) {
- throw new SyntaxError("assignment to a reserved word: " + (obj.compile(o)) + " = " + (value.compile(o)));
- }
- return new Assign(obj, value, null, {
- param: this.param
- }).compile(o, LEVEL_TOP);
- }
- vvar = value.compile(o, LEVEL_LIST);
- assigns = [];
- splat = false;
- if (!IDENTIFIER.test(vvar) || this.variable.assigns(vvar)) {
- assigns.push("" + (ref = o.scope.freeVariable('ref')) + " = " + vvar);
- vvar = ref;
- }
- for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) {
- obj = objects[i];
- idx = i;
- if (isObject) {
- if (obj instanceof Assign) {
- _ref6 = obj, (_ref7 = _ref6.variable, idx = _ref7.base), obj = _ref6.value;
- } else {
- if (obj.base instanceof Parens) {
- _ref8 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref8[0], idx = _ref8[1];
- } else {
- idx = obj["this"] ? obj.properties[0].name : obj;
- }
- }
- }
- if (!splat && obj instanceof Splat) {
- name = obj.name.unwrap().value;
- obj = obj.unwrap();
- val = "" + olen + " <= " + vvar + ".length ? " + (utility('slice')) + ".call(" + vvar + ", " + i;
- if (rest = olen - i - 1) {
- ivar = o.scope.freeVariable('i');
- val += ", " + ivar + " = " + vvar + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])";
- } else {
- val += ") : []";
- }
- val = new Literal(val);
- splat = "" + ivar + "++";
- } else {
- name = obj.unwrap().value;
- if (obj instanceof Splat) {
- obj = obj.name.compile(o);
- throw new SyntaxError("multiple splats are disallowed in an assignment: " + obj + "...");
- }
- if (typeof idx === 'number') {
- idx = new Literal(splat || idx);
- acc = false;
- } else {
- acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0);
- }
- val = new Value(new Literal(vvar), [new (acc ? Access : Index)(idx)]);
- }
- if ((name != null) && __indexOf.call(RESERVED, name) >= 0) {
- throw new SyntaxError("assignment to a reserved word: " + (obj.compile(o)) + " = " + (val.compile(o)));
- }
- assigns.push(new Assign(obj, val, null, {
- param: this.param,
- subpattern: true
- }).compile(o, LEVEL_LIST));
- }
- if (!(top || this.subpattern)) {
- assigns.push(vvar);
- }
- code = assigns.join(', ');
- if (o.level < LEVEL_LIST) {
- return code;
- } else {
- return "(" + code + ")";
- }
- };
-
- Assign.prototype.compileConditional = function(o) {
- var left, right, _ref2;
- _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1];
- if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) {
- throw new Error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been defined.");
- }
- if (__indexOf.call(this.context, "?") >= 0) {
- o.isExistentialEquals = true;
- }
- return new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compile(o);
- };
-
- Assign.prototype.compileSplice = function(o) {
- var code, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref2, _ref3, _ref4;
- _ref2 = this.variable.properties.pop().range, from = _ref2.from, to = _ref2.to, exclusive = _ref2.exclusive;
- name = this.variable.compile(o);
- _ref3 = (from != null ? from.cache(o, LEVEL_OP) : void 0) || ['0', '0'], fromDecl = _ref3[0], fromRef = _ref3[1];
- if (to) {
- if ((from != null ? from.isSimpleNumber() : void 0) && to.isSimpleNumber()) {
- to = +to.compile(o) - +fromRef;
- if (!exclusive) {
- to += 1;
- }
- } else {
- to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef;
- if (!exclusive) {
- to += ' + 1';
- }
- }
- } else {
- to = "9e9";
- }
- _ref4 = this.value.cache(o, LEVEL_LIST), valDef = _ref4[0], valRef = _ref4[1];
- code = "[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat(" + valDef + ")), " + valRef;
- if (o.level > LEVEL_TOP) {
- return "(" + code + ")";
- } else {
- return code;
- }
- };
-
- return Assign;
-
- })(Base);
-
- exports.Code = Code = (function(_super) {
-
- __extends(Code, _super);
-
- Code.name = 'Code';
-
- function Code(params, body, tag) {
- this.params = params || [];
- this.body = body || new Block;
- this.bound = tag === 'boundfunc';
- if (this.bound) {
- this.context = '_this';
- }
- }
-
- Code.prototype.children = ['params', 'body'];
-
- Code.prototype.isStatement = function() {
- return !!this.ctor;
- };
-
- Code.prototype.jumps = NO;
-
- Code.prototype.compileNode = function(o) {
- var code, exprs, i, idt, lit, name, p, param, params, ref, splats, uniqs, val, wasEmpty, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8;
- o.scope = new Scope(o.scope, this.body, this);
- o.scope.shared = del(o, 'sharedScope');
- o.indent += TAB;
- delete o.bare;
- delete o.isExistentialEquals;
- params = [];
- exprs = [];
- _ref2 = this.paramNames();
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- name = _ref2[_i];
- if (!o.scope.check(name)) {
- o.scope.parameter(name);
- }
- }
- _ref3 = this.params;
- for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
- param = _ref3[_j];
- if (!param.splat) {
- continue;
- }
- _ref4 = this.params;
- for (_k = 0, _len2 = _ref4.length; _k < _len2; _k++) {
- p = _ref4[_k];
- if (p.name.value) {
- o.scope.add(p.name.value, 'var', true);
- }
- }
- splats = new Assign(new Value(new Arr((function() {
- var _l, _len3, _ref5, _results;
- _ref5 = this.params;
- _results = [];
- for (_l = 0, _len3 = _ref5.length; _l < _len3; _l++) {
- p = _ref5[_l];
- _results.push(p.asReference(o));
- }
- return _results;
- }).call(this))), new Value(new Literal('arguments')));
- break;
- }
- _ref5 = this.params;
- for (_l = 0, _len3 = _ref5.length; _l < _len3; _l++) {
- param = _ref5[_l];
- if (param.isComplex()) {
- val = ref = param.asReference(o);
- if (param.value) {
- val = new Op('?', ref, param.value);
- }
- exprs.push(new Assign(new Value(param.name), val, '=', {
- param: true
- }));
- } else {
- ref = param;
- if (param.value) {
- lit = new Literal(ref.name.value + ' == null');
- val = new Assign(new Value(param.name), param.value, '=');
- exprs.push(new If(lit, val));
- }
- }
- if (!splats) {
- params.push(ref);
- }
- }
- wasEmpty = this.body.isEmpty();
- if (splats) {
- exprs.unshift(splats);
- }
- if (exprs.length) {
- (_ref6 = this.body.expressions).unshift.apply(_ref6, exprs);
- }
- for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) {
- p = params[i];
- o.scope.parameter(params[i] = p.compile(o));
- }
- uniqs = [];
- _ref7 = this.paramNames();
- for (_n = 0, _len5 = _ref7.length; _n < _len5; _n++) {
- name = _ref7[_n];
- if (__indexOf.call(uniqs, name) >= 0) {
- throw SyntaxError("multiple parameters named '" + name + "'");
- }
- uniqs.push(name);
- }
- if (!(wasEmpty || this.noReturn)) {
- this.body.makeReturn();
- }
- if (this.bound) {
- if ((_ref8 = o.scope.parent.method) != null ? _ref8.bound : void 0) {
- this.bound = this.context = o.scope.parent.method.context;
- } else if (!this["static"]) {
- o.scope.parent.assign('_this', 'this');
- }
- }
- idt = o.indent;
- code = 'function';
- if (this.ctor) {
- code += ' ' + this.name;
- }
- code += '(' + params.join(', ') + ') {';
- if (!this.body.isEmpty()) {
- code += "\n" + (this.body.compileWithDeclarations(o)) + "\n" + this.tab;
- }
- code += '}';
- if (this.ctor) {
- return this.tab + code;
- }
- if (this.front || (o.level >= LEVEL_ACCESS)) {
- return "(" + code + ")";
- } else {
- return code;
- }
- };
-
- Code.prototype.paramNames = function() {
- var names, param, _i, _len, _ref2;
- names = [];
- _ref2 = this.params;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- param = _ref2[_i];
- names.push.apply(names, param.names());
- }
- return names;
- };
-
- Code.prototype.traverseChildren = function(crossScope, func) {
- if (crossScope) {
- return Code.__super__.traverseChildren.call(this, crossScope, func);
- }
- };
-
- return Code;
-
- })(Base);
-
- exports.Param = Param = (function(_super) {
-
- __extends(Param, _super);
-
- Param.name = 'Param';
-
- function Param(name, value, splat) {
- var _ref2;
- this.name = name;
- this.value = value;
- this.splat = splat;
- if (_ref2 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) {
- throw SyntaxError("parameter name \"" + name + "\" is not allowed");
- }
- }
-
- Param.prototype.children = ['name', 'value'];
-
- Param.prototype.compile = function(o) {
- return this.name.compile(o, LEVEL_LIST);
- };
-
- Param.prototype.asReference = function(o) {
- var node;
- if (this.reference) {
- return this.reference;
- }
- node = this.name;
- if (node["this"]) {
- node = node.properties[0].name;
- if (node.value.reserved) {
- node = new Literal(o.scope.freeVariable(node.value));
- }
- } else if (node.isComplex()) {
- node = new Literal(o.scope.freeVariable('arg'));
- }
- node = new Value(node);
- if (this.splat) {
- node = new Splat(node);
- }
- return this.reference = node;
- };
-
- Param.prototype.isComplex = function() {
- return this.name.isComplex();
- };
-
- Param.prototype.names = function(name) {
- var atParam, names, obj, _i, _len, _ref2;
- if (name == null) {
- name = this.name;
- }
- atParam = function(obj) {
- var value;
- value = obj.properties[0].name.value;
- if (value.reserved) {
- return [];
- } else {
- return [value];
- }
- };
- if (name instanceof Literal) {
- return [name.value];
- }
- if (name instanceof Value) {
- return atParam(name);
- }
- names = [];
- _ref2 = name.objects;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- obj = _ref2[_i];
- if (obj instanceof Assign) {
- names.push(obj.variable.base.value);
- } else if (obj.isArray() || obj.isObject()) {
- names.push.apply(names, this.names(obj.base));
- } else if (obj["this"]) {
- names.push.apply(names, atParam(obj));
- } else {
- names.push(obj.base.value);
- }
- }
- return names;
- };
-
- return Param;
-
- })(Base);
-
- exports.Splat = Splat = (function(_super) {
-
- __extends(Splat, _super);
-
- Splat.name = 'Splat';
-
- Splat.prototype.children = ['name'];
-
- Splat.prototype.isAssignable = YES;
-
- function Splat(name) {
- this.name = name.compile ? name : new Literal(name);
- }
-
- Splat.prototype.assigns = function(name) {
- return this.name.assigns(name);
- };
-
- Splat.prototype.compile = function(o) {
- if (this.index != null) {
- return this.compileParam(o);
- } else {
- return this.name.compile(o);
- }
- };
-
- Splat.prototype.unwrap = function() {
- return this.name;
- };
-
- Splat.compileSplattedArray = function(o, list, apply) {
- var args, base, code, i, index, node, _i, _len;
- index = -1;
- while ((node = list[++index]) && !(node instanceof Splat)) {
- continue;
- }
- if (index >= list.length) {
- return '';
- }
- if (list.length === 1) {
- code = list[0].compile(o, LEVEL_LIST);
- if (apply) {
- return code;
- }
- return "" + (utility('slice')) + ".call(" + code + ")";
- }
- args = list.slice(index);
- for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) {
- node = args[i];
- code = node.compile(o, LEVEL_LIST);
- args[i] = node instanceof Splat ? "" + (utility('slice')) + ".call(" + code + ")" : "[" + code + "]";
- }
- if (index === 0) {
- return args[0] + (".concat(" + (args.slice(1).join(', ')) + ")");
- }
- base = (function() {
- var _j, _len1, _ref2, _results;
- _ref2 = list.slice(0, index);
- _results = [];
- for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
- node = _ref2[_j];
- _results.push(node.compile(o, LEVEL_LIST));
- }
- return _results;
- })();
- return "[" + (base.join(', ')) + "].concat(" + (args.join(', ')) + ")";
- };
-
- return Splat;
-
- })(Base);
-
- exports.While = While = (function(_super) {
-
- __extends(While, _super);
-
- While.name = 'While';
-
- function While(condition, options) {
- this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition;
- this.guard = options != null ? options.guard : void 0;
- }
-
- While.prototype.children = ['condition', 'guard', 'body'];
-
- While.prototype.isStatement = YES;
-
- While.prototype.makeReturn = function(res) {
- if (res) {
- return While.__super__.makeReturn.apply(this, arguments);
- } else {
- this.returns = !this.jumps({
- loop: true
- });
- return this;
- }
- };
-
- While.prototype.addBody = function(body) {
- this.body = body;
- return this;
- };
-
- While.prototype.jumps = function() {
- var expressions, node, _i, _len;
- expressions = this.body.expressions;
- if (!expressions.length) {
- return false;
- }
- for (_i = 0, _len = expressions.length; _i < _len; _i++) {
- node = expressions[_i];
- if (node.jumps({
- loop: true
- })) {
- return node;
- }
- }
- return false;
- };
-
- While.prototype.compileNode = function(o) {
- var body, code, rvar, set;
- o.indent += TAB;
- set = '';
- body = this.body;
- if (body.isEmpty()) {
- body = '';
- } else {
- if (this.returns) {
- body.makeReturn(rvar = o.scope.freeVariable('results'));
- set = "" + this.tab + rvar + " = [];\n";
- }
- if (this.guard) {
- if (body.expressions.length > 1) {
- body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
- } else {
- if (this.guard) {
- body = Block.wrap([new If(this.guard, body)]);
- }
- }
- }
- body = "\n" + (body.compile(o, LEVEL_TOP)) + "\n" + this.tab;
- }
- code = set + this.tab + ("while (" + (this.condition.compile(o, LEVEL_PAREN)) + ") {" + body + "}");
- if (this.returns) {
- code += "\n" + this.tab + "return " + rvar + ";";
- }
- return code;
- };
-
- return While;
-
- })(Base);
-
- exports.Op = Op = (function(_super) {
- var CONVERSIONS, INVERSIONS;
-
- __extends(Op, _super);
-
- Op.name = 'Op';
-
- function Op(op, first, second, flip) {
- if (op === 'in') {
- return new In(first, second);
- }
- if (op === 'do') {
- return this.generateDo(first);
- }
- if (op === 'new') {
- if (first instanceof Call && !first["do"] && !first.isNew) {
- return first.newInstance();
- }
- if (first instanceof Code && first.bound || first["do"]) {
- first = new Parens(first);
- }
- }
- this.operator = CONVERSIONS[op] || op;
- this.first = first;
- this.second = second;
- this.flip = !!flip;
- return this;
- }
-
- CONVERSIONS = {
- '==': '===',
- '!=': '!==',
- 'of': 'in'
- };
-
- INVERSIONS = {
- '!==': '===',
- '===': '!=='
- };
-
- Op.prototype.children = ['first', 'second'];
-
- Op.prototype.isSimpleNumber = NO;
-
- Op.prototype.isUnary = function() {
- return !this.second;
- };
-
- Op.prototype.isComplex = function() {
- var _ref2;
- return !(this.isUnary() && ((_ref2 = this.operator) === '+' || _ref2 === '-')) || this.first.isComplex();
- };
-
- Op.prototype.isChainable = function() {
- var _ref2;
- return (_ref2 = this.operator) === '<' || _ref2 === '>' || _ref2 === '>=' || _ref2 === '<=' || _ref2 === '===' || _ref2 === '!==';
- };
-
- Op.prototype.invert = function() {
- var allInvertable, curr, fst, op, _ref2;
- if (this.isChainable() && this.first.isChainable()) {
- allInvertable = true;
- curr = this;
- while (curr && curr.operator) {
- allInvertable && (allInvertable = curr.operator in INVERSIONS);
- curr = curr.first;
- }
- if (!allInvertable) {
- return new Parens(this).invert();
- }
- curr = this;
- while (curr && curr.operator) {
- curr.invert = !curr.invert;
- curr.operator = INVERSIONS[curr.operator];
- curr = curr.first;
- }
- return this;
- } else if (op = INVERSIONS[this.operator]) {
- this.operator = op;
- if (this.first.unwrap() instanceof Op) {
- this.first.invert();
- }
- return this;
- } else if (this.second) {
- return new Parens(this).invert();
- } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref2 = fst.operator) === '!' || _ref2 === 'in' || _ref2 === 'instanceof')) {
- return fst;
- } else {
- return new Op('!', this);
- }
- };
-
- Op.prototype.unfoldSoak = function(o) {
- var _ref2;
- return ((_ref2 = this.operator) === '++' || _ref2 === '--' || _ref2 === 'delete') && unfoldSoak(o, this, 'first');
- };
-
- Op.prototype.generateDo = function(exp) {
- var call, func, param, passedParams, ref, _i, _len, _ref2;
- passedParams = [];
- func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp;
- _ref2 = func.params || [];
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- param = _ref2[_i];
- if (param.value) {
- passedParams.push(param.value);
- delete param.value;
- } else {
- passedParams.push(param);
- }
- }
- call = new Call(exp, passedParams);
- call["do"] = true;
- return call;
- };
-
- Op.prototype.compileNode = function(o) {
- var code, isChain, _ref2, _ref3;
- isChain = this.isChainable() && this.first.isChainable();
- if (!isChain) {
- this.first.front = this.front;
- }
- if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) {
- throw SyntaxError('delete operand may not be argument or var');
- }
- if (((_ref2 = this.operator) === '--' || _ref2 === '++') && (_ref3 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref3) >= 0)) {
- throw SyntaxError('prefix increment/decrement may not have eval or arguments operand');
- }
- if (this.isUnary()) {
- return this.compileUnary(o);
- }
- if (isChain) {
- return this.compileChain(o);
- }
- if (this.operator === '?') {
- return this.compileExistence(o);
- }
- code = this.first.compile(o, LEVEL_OP) + ' ' + this.operator + ' ' + this.second.compile(o, LEVEL_OP);
- if (o.level <= LEVEL_OP) {
- return code;
- } else {
- return "(" + code + ")";
- }
- };
-
- Op.prototype.compileChain = function(o) {
- var code, fst, shared, _ref2;
- _ref2 = this.first.second.cache(o), this.first.second = _ref2[0], shared = _ref2[1];
- fst = this.first.compile(o, LEVEL_OP);
- code = "" + fst + " " + (this.invert ? '&&' : '||') + " " + (shared.compile(o)) + " " + this.operator + " " + (this.second.compile(o, LEVEL_OP));
- return "(" + code + ")";
- };
-
- Op.prototype.compileExistence = function(o) {
- var fst, ref;
- if (this.first.isComplex() && o.level > LEVEL_TOP) {
- ref = new Literal(o.scope.freeVariable('ref'));
- fst = new Parens(new Assign(ref, this.first));
- } else {
- fst = this.first;
- ref = fst;
- }
- return new If(new Existence(fst), ref, {
- type: 'if'
- }).addElse(this.second).compile(o);
- };
-
- Op.prototype.compileUnary = function(o) {
- var op, parts, plusMinus;
- if (o.level >= LEVEL_ACCESS) {
- return (new Parens(this)).compile(o);
- }
- parts = [op = this.operator];
- plusMinus = op === '+' || op === '-';
- if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) {
- parts.push(' ');
- }
- if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) {
- this.first = new Parens(this.first);
- }
- parts.push(this.first.compile(o, LEVEL_OP));
- if (this.flip) {
- parts.reverse();
- }
- return parts.join('');
- };
-
- Op.prototype.toString = function(idt) {
- return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator);
- };
-
- return Op;
-
- })(Base);
-
- exports.In = In = (function(_super) {
-
- __extends(In, _super);
-
- In.name = 'In';
-
- function In(object, array) {
- this.object = object;
- this.array = array;
- }
-
- In.prototype.children = ['object', 'array'];
-
- In.prototype.invert = NEGATE;
-
- In.prototype.compileNode = function(o) {
- var hasSplat, obj, _i, _len, _ref2;
- if (this.array instanceof Value && this.array.isArray()) {
- _ref2 = this.array.base.objects;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- obj = _ref2[_i];
- if (!(obj instanceof Splat)) {
- continue;
- }
- hasSplat = true;
- break;
- }
- if (!hasSplat) {
- return this.compileOrTest(o);
- }
- }
- return this.compileLoopTest(o);
- };
-
- In.prototype.compileOrTest = function(o) {
- var cmp, cnj, i, item, ref, sub, tests, _ref2, _ref3;
- if (this.array.base.objects.length === 0) {
- return "" + (!!this.negated);
- }
- _ref2 = this.object.cache(o, LEVEL_OP), sub = _ref2[0], ref = _ref2[1];
- _ref3 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref3[0], cnj = _ref3[1];
- tests = (function() {
- var _i, _len, _ref4, _results;
- _ref4 = this.array.base.objects;
- _results = [];
- for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) {
- item = _ref4[i];
- _results.push((i ? ref : sub) + cmp + item.compile(o, LEVEL_ACCESS));
- }
- return _results;
- }).call(this);
- tests = tests.join(cnj);
- if (o.level < LEVEL_OP) {
- return tests;
- } else {
- return "(" + tests + ")";
- }
- };
-
- In.prototype.compileLoopTest = function(o) {
- var code, ref, sub, _ref2;
- _ref2 = this.object.cache(o, LEVEL_LIST), sub = _ref2[0], ref = _ref2[1];
- code = utility('indexOf') + (".call(" + (this.array.compile(o, LEVEL_LIST)) + ", " + ref + ") ") + (this.negated ? '< 0' : '>= 0');
- if (sub === ref) {
- return code;
- }
- code = sub + ', ' + code;
- if (o.level < LEVEL_LIST) {
- return code;
- } else {
- return "(" + code + ")";
- }
- };
-
- In.prototype.toString = function(idt) {
- return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : ''));
- };
-
- return In;
-
- })(Base);
-
- exports.Try = Try = (function(_super) {
-
- __extends(Try, _super);
-
- Try.name = 'Try';
-
- function Try(attempt, error, recovery, ensure) {
- this.attempt = attempt;
- this.error = error;
- this.recovery = recovery;
- this.ensure = ensure;
- }
-
- Try.prototype.children = ['attempt', 'recovery', 'ensure'];
-
- Try.prototype.isStatement = YES;
-
- Try.prototype.jumps = function(o) {
- var _ref2;
- return this.attempt.jumps(o) || ((_ref2 = this.recovery) != null ? _ref2.jumps(o) : void 0);
- };
-
- Try.prototype.makeReturn = function(res) {
- if (this.attempt) {
- this.attempt = this.attempt.makeReturn(res);
- }
- if (this.recovery) {
- this.recovery = this.recovery.makeReturn(res);
- }
- return this;
- };
-
- Try.prototype.compileNode = function(o) {
- var catchPart, ensurePart, errorPart, tryPart;
- o.indent += TAB;
- errorPart = this.error ? " (" + (this.error.compile(o)) + ") " : ' ';
- tryPart = this.attempt.compile(o, LEVEL_TOP);
- catchPart = (function() {
- var _ref2;
- if (this.recovery) {
- if (_ref2 = this.error.value, __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) {
- throw SyntaxError("catch variable may not be \"" + this.error.value + "\"");
- }
- if (!o.scope.check(this.error.value)) {
- o.scope.add(this.error.value, 'param');
- }
- return " catch" + errorPart + "{\n" + (this.recovery.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}";
- } else if (!(this.ensure || this.recovery)) {
- return ' catch (_error) {}';
- }
- }).call(this);
- ensurePart = this.ensure ? " finally {\n" + (this.ensure.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" : '';
- return "" + this.tab + "try {\n" + tryPart + "\n" + this.tab + "}" + (catchPart || '') + ensurePart;
- };
-
- return Try;
-
- })(Base);
-
- exports.Throw = Throw = (function(_super) {
-
- __extends(Throw, _super);
-
- Throw.name = 'Throw';
-
- function Throw(expression) {
- this.expression = expression;
- }
-
- Throw.prototype.children = ['expression'];
-
- Throw.prototype.isStatement = YES;
-
- Throw.prototype.jumps = NO;
-
- Throw.prototype.makeReturn = THIS;
-
- Throw.prototype.compileNode = function(o) {
- return this.tab + ("throw " + (this.expression.compile(o)) + ";");
- };
-
- return Throw;
-
- })(Base);
-
- exports.Existence = Existence = (function(_super) {
-
- __extends(Existence, _super);
-
- Existence.name = 'Existence';
-
- function Existence(expression) {
- this.expression = expression;
- }
-
- Existence.prototype.children = ['expression'];
-
- Existence.prototype.invert = NEGATE;
-
- Existence.prototype.compileNode = function(o) {
- var cmp, cnj, code, _ref2;
- this.expression.front = this.front;
- code = this.expression.compile(o, LEVEL_OP);
- if (IDENTIFIER.test(code) && !o.scope.check(code)) {
- _ref2 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref2[0], cnj = _ref2[1];
- code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null";
- } else {
- code = "" + code + " " + (this.negated ? '==' : '!=') + " null";
- }
- if (o.level <= LEVEL_COND) {
- return code;
- } else {
- return "(" + code + ")";
- }
- };
-
- return Existence;
-
- })(Base);
-
- exports.Parens = Parens = (function(_super) {
-
- __extends(Parens, _super);
-
- Parens.name = 'Parens';
-
- function Parens(body) {
- this.body = body;
- }
-
- Parens.prototype.children = ['body'];
-
- Parens.prototype.unwrap = function() {
- return this.body;
- };
-
- Parens.prototype.isComplex = function() {
- return this.body.isComplex();
- };
-
- Parens.prototype.compileNode = function(o) {
- var bare, code, expr;
- expr = this.body.unwrap();
- if (expr instanceof Value && expr.isAtomic()) {
- expr.front = this.front;
- return expr.compile(o);
- }
- code = expr.compile(o, LEVEL_PAREN);
- bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns));
- if (bare) {
- return code;
- } else {
- return "(" + code + ")";
- }
- };
-
- return Parens;
-
- })(Base);
-
- exports.For = For = (function(_super) {
-
- __extends(For, _super);
-
- For.name = 'For';
-
- function For(body, source) {
- var _ref2;
- this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index;
- this.body = Block.wrap([body]);
- this.own = !!source.own;
- this.object = !!source.object;
- if (this.object) {
- _ref2 = [this.index, this.name], this.name = _ref2[0], this.index = _ref2[1];
- }
- if (this.index instanceof Value) {
- throw SyntaxError('index cannot be a pattern matching expression');
- }
- this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length;
- this.pattern = this.name instanceof Value;
- if (this.range && this.index) {
- throw SyntaxError('indexes do not apply to range loops');
- }
- if (this.range && this.pattern) {
- throw SyntaxError('cannot pattern match over range loops');
- }
- this.returns = false;
- }
-
- For.prototype.children = ['body', 'source', 'guard', 'step'];
-
- For.prototype.compileNode = function(o) {
- var body, defPart, forPart, forVarPart, guardPart, idt1, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, stepPart, stepvar, svar, varPart, _ref2;
- body = Block.wrap([this.body]);
- lastJumps = (_ref2 = last(body.expressions)) != null ? _ref2.jumps() : void 0;
- if (lastJumps && lastJumps instanceof Return) {
- this.returns = false;
- }
- source = this.range ? this.source.base : this.source;
- scope = o.scope;
- name = this.name && this.name.compile(o, LEVEL_LIST);
- index = this.index && this.index.compile(o, LEVEL_LIST);
- if (name && !this.pattern) {
- scope.find(name, {
- immediate: true
- });
- }
- if (index) {
- scope.find(index, {
- immediate: true
- });
- }
- if (this.returns) {
- rvar = scope.freeVariable('results');
- }
- ivar = (this.object && index) || scope.freeVariable('i');
- kvar = (this.range && name) || index || ivar;
- kvarAssign = kvar !== ivar ? "" + kvar + " = " : "";
- if (this.step && !this.range) {
- stepvar = scope.freeVariable("step");
- }
- if (this.pattern) {
- name = ivar;
- }
- varPart = '';
- guardPart = '';
- defPart = '';
- idt1 = this.tab + TAB;
- if (this.range) {
- forPart = source.compile(merge(o, {
- index: ivar,
- name: name,
- step: this.step
- }));
- } else {
- svar = this.source.compile(o, LEVEL_LIST);
- if ((name || this.own) && !IDENTIFIER.test(svar)) {
- defPart = "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n";
- svar = ref;
- }
- if (name && !this.pattern) {
- namePart = "" + name + " = " + svar + "[" + kvar + "]";
- }
- if (!this.object) {
- lvar = scope.freeVariable('len');
- forVarPart = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length";
- if (this.step) {
- forVarPart += ", " + stepvar + " = " + (this.step.compile(o, LEVEL_OP));
- }
- stepPart = "" + kvarAssign + (this.step ? "" + ivar + " += " + stepvar : (kvar !== ivar ? "++" + ivar : "" + ivar + "++"));
- forPart = "" + forVarPart + "; " + ivar + " < " + lvar + "; " + stepPart;
- }
- }
- if (this.returns) {
- resultPart = "" + this.tab + rvar + " = [];\n";
- returnResult = "\n" + this.tab + "return " + rvar + ";";
- body.makeReturn(rvar);
- }
- if (this.guard) {
- if (body.expressions.length > 1) {
- body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
- } else {
- if (this.guard) {
- body = Block.wrap([new If(this.guard, body)]);
- }
- }
- }
- if (this.pattern) {
- body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]")));
- }
- defPart += this.pluckDirectCall(o, body);
- if (namePart) {
- varPart = "\n" + idt1 + namePart + ";";
- }
- if (this.object) {
- forPart = "" + kvar + " in " + svar;
- if (this.own) {
- guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + kvar + ")) continue;";
- }
- }
- body = body.compile(merge(o, {
- indent: idt1
- }), LEVEL_TOP);
- if (body) {
- body = '\n' + body + '\n';
- }
- return "" + defPart + (resultPart || '') + this.tab + "for (" + forPart + ") {" + guardPart + varPart + body + this.tab + "}" + (returnResult || '');
- };
-
- For.prototype.pluckDirectCall = function(o, body) {
- var base, defs, expr, fn, idx, ref, val, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7;
- defs = '';
- _ref2 = body.expressions;
- for (idx = _i = 0, _len = _ref2.length; _i < _len; idx = ++_i) {
- expr = _ref2[idx];
- expr = expr.unwrapAll();
- if (!(expr instanceof Call)) {
- continue;
- }
- val = expr.variable.unwrapAll();
- if (!((val instanceof Code) || (val instanceof Value && ((_ref3 = val.base) != null ? _ref3.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref4 = (_ref5 = val.properties[0].name) != null ? _ref5.value : void 0) === 'call' || _ref4 === 'apply')))) {
- continue;
- }
- fn = ((_ref6 = val.base) != null ? _ref6.unwrapAll() : void 0) || val;
- ref = new Literal(o.scope.freeVariable('fn'));
- base = new Value(ref);
- if (val.base) {
- _ref7 = [base, val], val.base = _ref7[0], base = _ref7[1];
- }
- body.expressions[idx] = new Call(base, expr.args);
- defs += this.tab + new Assign(ref, fn).compile(o, LEVEL_TOP) + ';\n';
- }
- return defs;
- };
-
- return For;
-
- })(While);
-
- exports.Switch = Switch = (function(_super) {
-
- __extends(Switch, _super);
-
- Switch.name = 'Switch';
-
- function Switch(subject, cases, otherwise) {
- this.subject = subject;
- this.cases = cases;
- this.otherwise = otherwise;
- }
-
- Switch.prototype.children = ['subject', 'cases', 'otherwise'];
-
- Switch.prototype.isStatement = YES;
-
- Switch.prototype.jumps = function(o) {
- var block, conds, _i, _len, _ref2, _ref3, _ref4;
- if (o == null) {
- o = {
- block: true
- };
- }
- _ref2 = this.cases;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- _ref3 = _ref2[_i], conds = _ref3[0], block = _ref3[1];
- if (block.jumps(o)) {
- return block;
- }
- }
- return (_ref4 = this.otherwise) != null ? _ref4.jumps(o) : void 0;
- };
-
- Switch.prototype.makeReturn = function(res) {
- var pair, _i, _len, _ref2, _ref3;
- _ref2 = this.cases;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- pair = _ref2[_i];
- pair[1].makeReturn(res);
- }
- if (res) {
- this.otherwise || (this.otherwise = new Block([new Literal('void 0')]));
- }
- if ((_ref3 = this.otherwise) != null) {
- _ref3.makeReturn(res);
- }
- return this;
- };
-
- Switch.prototype.compileNode = function(o) {
- var block, body, code, cond, conditions, expr, i, idt1, idt2, _i, _j, _len, _len1, _ref2, _ref3, _ref4, _ref5;
- idt1 = o.indent + TAB;
- idt2 = o.indent = idt1 + TAB;
- code = this.tab + ("switch (" + (((_ref2 = this.subject) != null ? _ref2.compile(o, LEVEL_PAREN) : void 0) || false) + ") {\n");
- _ref3 = this.cases;
- for (i = _i = 0, _len = _ref3.length; _i < _len; i = ++_i) {
- _ref4 = _ref3[i], conditions = _ref4[0], block = _ref4[1];
- _ref5 = flatten([conditions]);
- for (_j = 0, _len1 = _ref5.length; _j < _len1; _j++) {
- cond = _ref5[_j];
- if (!this.subject) {
- cond = cond.invert();
- }
- code += idt1 + ("case " + (cond.compile(o, LEVEL_PAREN)) + ":\n");
- }
- if (body = block.compile(o, LEVEL_TOP)) {
- code += body + '\n';
- }
- if (i === this.cases.length - 1 && !this.otherwise) {
- break;
- }
- expr = this.lastNonComment(block.expressions);
- if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) {
- continue;
- }
- code += idt2 + 'break;\n';
- }
- if (this.otherwise && this.otherwise.expressions.length) {
- code += idt1 + ("default:\n" + (this.otherwise.compile(o, LEVEL_TOP)) + "\n");
- }
- return code + this.tab + '}';
- };
-
- return Switch;
-
- })(Base);
-
- exports.If = If = (function(_super) {
-
- __extends(If, _super);
-
- If.name = 'If';
-
- function If(condition, body, options) {
- this.body = body;
- if (options == null) {
- options = {};
- }
- this.condition = options.type === 'unless' ? condition.invert() : condition;
- this.elseBody = null;
- this.isChain = false;
- this.soak = options.soak;
- }
-
- If.prototype.children = ['condition', 'body', 'elseBody'];
-
- If.prototype.bodyNode = function() {
- var _ref2;
- return (_ref2 = this.body) != null ? _ref2.unwrap() : void 0;
- };
-
- If.prototype.elseBodyNode = function() {
- var _ref2;
- return (_ref2 = this.elseBody) != null ? _ref2.unwrap() : void 0;
- };
-
- If.prototype.addElse = function(elseBody) {
- if (this.isChain) {
- this.elseBodyNode().addElse(elseBody);
- } else {
- this.isChain = elseBody instanceof If;
- this.elseBody = this.ensureBlock(elseBody);
- }
- return this;
- };
-
- If.prototype.isStatement = function(o) {
- var _ref2;
- return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref2 = this.elseBodyNode()) != null ? _ref2.isStatement(o) : void 0);
- };
-
- If.prototype.jumps = function(o) {
- var _ref2;
- return this.body.jumps(o) || ((_ref2 = this.elseBody) != null ? _ref2.jumps(o) : void 0);
- };
-
- If.prototype.compileNode = function(o) {
- if (this.isStatement(o)) {
- return this.compileStatement(o);
- } else {
- return this.compileExpression(o);
- }
- };
-
- If.prototype.makeReturn = function(res) {
- if (res) {
- this.elseBody || (this.elseBody = new Block([new Literal('void 0')]));
- }
- this.body && (this.body = new Block([this.body.makeReturn(res)]));
- this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)]));
- return this;
- };
-
- If.prototype.ensureBlock = function(node) {
- if (node instanceof Block) {
- return node;
- } else {
- return new Block([node]);
- }
- };
-
- If.prototype.compileStatement = function(o) {
- var body, child, cond, exeq, ifPart;
- child = del(o, 'chainChild');
- exeq = del(o, 'isExistentialEquals');
- if (exeq) {
- return new If(this.condition.invert(), this.elseBodyNode(), {
- type: 'if'
- }).compile(o);
- }
- cond = this.condition.compile(o, LEVEL_PAREN);
- o.indent += TAB;
- body = this.ensureBlock(this.body);
- ifPart = "if (" + cond + ") {\n" + (body.compile(o)) + "\n" + this.tab + "}";
- if (!child) {
- ifPart = this.tab + ifPart;
- }
- if (!this.elseBody) {
- return ifPart;
- }
- return ifPart + ' else ' + (this.isChain ? (o.indent = this.tab, o.chainChild = true, this.elseBody.unwrap().compile(o, LEVEL_TOP)) : "{\n" + (this.elseBody.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}");
- };
-
- If.prototype.compileExpression = function(o) {
- var alt, body, code, cond;
- cond = this.condition.compile(o, LEVEL_COND);
- body = this.bodyNode().compile(o, LEVEL_LIST);
- alt = this.elseBodyNode() ? this.elseBodyNode().compile(o, LEVEL_LIST) : 'void 0';
- code = "" + cond + " ? " + body + " : " + alt;
- if (o.level >= LEVEL_COND) {
- return "(" + code + ")";
- } else {
- return code;
- }
- };
-
- If.prototype.unfoldSoak = function() {
- return this.soak && this;
- };
-
- return If;
-
- })(Base);
-
- Closure = {
- wrap: function(expressions, statement, noReturn) {
- var args, call, func, mentionsArgs, meth;
- if (expressions.jumps()) {
- return expressions;
- }
- func = new Code([], Block.wrap([expressions]));
- args = [];
- if ((mentionsArgs = expressions.contains(this.literalArgs)) || expressions.contains(this.literalThis)) {
- meth = new Literal(mentionsArgs ? 'apply' : 'call');
- args = [new Literal('this')];
- if (mentionsArgs) {
- args.push(new Literal('arguments'));
- }
- func = new Value(func, [new Access(meth)]);
- }
- func.noReturn = noReturn;
- call = new Call(func, args);
- if (statement) {
- return Block.wrap([call]);
- } else {
- return call;
- }
- },
- literalArgs: function(node) {
- return node instanceof Literal && node.value === 'arguments' && !node.asKey;
- },
- literalThis: function(node) {
- return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound);
- }
- };
-
- unfoldSoak = function(o, parent, name) {
- var ifn;
- if (!(ifn = parent[name].unfoldSoak(o))) {
- return;
- }
- parent[name] = ifn.body;
- ifn.body = new Value(parent);
- return ifn;
- };
-
- UTILITIES = {
- "extends": function() {
- return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; }";
- },
- bind: function() {
- return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }';
- },
- indexOf: function() {
- return "[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }";
- },
- hasProp: function() {
- return '{}.hasOwnProperty';
- },
- slice: function() {
- return '[].slice';
- }
- };
-
- LEVEL_TOP = 1;
-
- LEVEL_PAREN = 2;
-
- LEVEL_LIST = 3;
-
- LEVEL_COND = 4;
-
- LEVEL_OP = 5;
-
- LEVEL_ACCESS = 6;
-
- TAB = ' ';
-
- IDENTIFIER_STR = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*";
-
- IDENTIFIER = RegExp("^" + IDENTIFIER_STR + "$");
-
- SIMPLENUM = /^[+-]?\d+$/;
-
- METHOD_DEF = RegExp("^(?:(" + IDENTIFIER_STR + ")\\.prototype(?:\\.(" + IDENTIFIER_STR + ")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\]))|(" + IDENTIFIER_STR + ")$");
-
- IS_STRING = /^['"]/;
-
- utility = function(name) {
- var ref;
- ref = "__" + name;
- Scope.root.assign(ref, UTILITIES[name]());
- return ref;
- };
-
- multident = function(code, tab) {
- code = code.replace(/\n/g, '$&' + tab);
- return code.replace(/\s+$/, '');
- };
-
-}).call(this);
-}, "coffee-script/optparse": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments;
-
- exports.OptionParser = OptionParser = (function() {
-
- OptionParser.name = 'OptionParser';
-
- function OptionParser(rules, banner) {
- this.banner = banner;
- this.rules = buildRules(rules);
- }
-
- OptionParser.prototype.parse = function(args) {
- var arg, i, isOption, matchedRule, options, originalArgs, pos, rule, seenNonOptionArg, skippingArgument, value, _i, _j, _len, _len1, _ref;
- options = {
- "arguments": []
- };
- skippingArgument = false;
- originalArgs = args;
- args = normalizeArguments(args);
- for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) {
- arg = args[i];
- if (skippingArgument) {
- skippingArgument = false;
- continue;
- }
- if (arg === '--') {
- pos = originalArgs.indexOf('--');
- options["arguments"] = options["arguments"].concat(originalArgs.slice(pos + 1));
- break;
- }
- isOption = !!(arg.match(LONG_FLAG) || arg.match(SHORT_FLAG));
- seenNonOptionArg = options["arguments"].length > 0;
- if (!seenNonOptionArg) {
- matchedRule = false;
- _ref = this.rules;
- for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
- rule = _ref[_j];
- if (rule.shortFlag === arg || rule.longFlag === arg) {
- value = true;
- if (rule.hasArgument) {
- skippingArgument = true;
- value = args[i + 1];
- }
- options[rule.name] = rule.isList ? (options[rule.name] || []).concat(value) : value;
- matchedRule = true;
- break;
- }
- }
- if (isOption && !matchedRule) {
- throw new Error("unrecognized option: " + arg);
- }
- }
- if (seenNonOptionArg || !isOption) {
- options["arguments"].push(arg);
- }
- }
- return options;
- };
-
- OptionParser.prototype.help = function() {
- var letPart, lines, rule, spaces, _i, _len, _ref;
- lines = [];
- if (this.banner) {
- lines.unshift("" + this.banner + "\n");
- }
- _ref = this.rules;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- rule = _ref[_i];
- spaces = 15 - rule.longFlag.length;
- spaces = spaces > 0 ? Array(spaces + 1).join(' ') : '';
- letPart = rule.shortFlag ? rule.shortFlag + ', ' : ' ';
- lines.push(' ' + letPart + rule.longFlag + spaces + rule.description);
- }
- return "\n" + (lines.join('\n')) + "\n";
- };
-
- return OptionParser;
-
- })();
-
- LONG_FLAG = /^(--\w[\w\-]*)/;
-
- SHORT_FLAG = /^(-\w)$/;
-
- MULTI_FLAG = /^-(\w{2,})/;
-
- OPTIONAL = /\[(\w+(\*?))\]/;
-
- buildRules = function(rules) {
- var tuple, _i, _len, _results;
- _results = [];
- for (_i = 0, _len = rules.length; _i < _len; _i++) {
- tuple = rules[_i];
- if (tuple.length < 3) {
- tuple.unshift(null);
- }
- _results.push(buildRule.apply(null, tuple));
- }
- return _results;
- };
-
- buildRule = function(shortFlag, longFlag, description, options) {
- var match;
- if (options == null) {
- options = {};
- }
- match = longFlag.match(OPTIONAL);
- longFlag = longFlag.match(LONG_FLAG)[1];
- return {
- name: longFlag.substr(2),
- shortFlag: shortFlag,
- longFlag: longFlag,
- description: description,
- hasArgument: !!(match && match[1]),
- isList: !!(match && match[2])
- };
- };
-
- normalizeArguments = function(args) {
- var arg, l, match, result, _i, _j, _len, _len1, _ref;
- args = args.slice(0);
- result = [];
- for (_i = 0, _len = args.length; _i < _len; _i++) {
- arg = args[_i];
- if (match = arg.match(MULTI_FLAG)) {
- _ref = match[1].split('');
- for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
- l = _ref[_j];
- result.push('-' + l);
- }
- } else {
- result.push(arg);
- }
- }
- return result;
- };
-
-}).call(this);
-}, "coffee-script/parser": function(exports, require, module) {/* Jison generated parser */
-var parser = (function(){
-undefined
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"Root":3,"Body":4,"Block":5,"TERMINATOR":6,"Line":7,"Expression":8,"Statement":9,"Return":10,"Comment":11,"STATEMENT":12,"Value":13,"Invocation":14,"Code":15,"Operation":16,"Assign":17,"If":18,"Try":19,"While":20,"For":21,"Switch":22,"Class":23,"Throw":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"BOOL":36,"Assignable":37,"=":38,"AssignObj":39,"ObjAssignable":40,":":41,"ThisProperty":42,"RETURN":43,"HERECOMMENT":44,"PARAM_START":45,"ParamList":46,"PARAM_END":47,"FuncGlyph":48,"->":49,"=>":50,"OptComma":51,",":52,"Param":53,"ParamVar":54,"...":55,"Array":56,"Object":57,"Splat":58,"SimpleAssignable":59,"Accessor":60,"Parenthetical":61,"Range":62,"This":63,".":64,"?.":65,"::":66,"Index":67,"INDEX_START":68,"IndexValue":69,"INDEX_END":70,"INDEX_SOAK":71,"Slice":72,"{":73,"AssignList":74,"}":75,"CLASS":76,"EXTENDS":77,"OptFuncExist":78,"Arguments":79,"SUPER":80,"FUNC_EXIST":81,"CALL_START":82,"CALL_END":83,"ArgList":84,"THIS":85,"@":86,"[":87,"]":88,"RangeDots":89,"..":90,"Arg":91,"SimpleArgs":92,"TRY":93,"Catch":94,"FINALLY":95,"CATCH":96,"THROW":97,"(":98,")":99,"WhileSource":100,"WHILE":101,"WHEN":102,"UNTIL":103,"Loop":104,"LOOP":105,"ForBody":106,"FOR":107,"ForStart":108,"ForSource":109,"ForVariables":110,"OWN":111,"ForValue":112,"FORIN":113,"FOROF":114,"BY":115,"SWITCH":116,"Whens":117,"ELSE":118,"When":119,"LEADING_WHEN":120,"IfBlock":121,"IF":122,"POST_IF":123,"UNARY":124,"-":125,"+":126,"--":127,"++":128,"?":129,"MATH":130,"SHIFT":131,"COMPARE":132,"LOGIC":133,"RELATION":134,"COMPOUND_ASSIGN":135,"$accept":0,"$end":1},
-terminals_: {2:"error",6:"TERMINATOR",12:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"BOOL",38:"=",41:":",43:"RETURN",44:"HERECOMMENT",45:"PARAM_START",47:"PARAM_END",49:"->",50:"=>",52:",",55:"...",64:".",65:"?.",66:"::",68:"INDEX_START",70:"INDEX_END",71:"INDEX_SOAK",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},
-productions_: [0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[17,3],[17,4],[17,5],[39,1],[39,3],[39,5],[39,1],[40,1],[40,1],[40,1],[10,2],[10,1],[11,1],[15,5],[15,2],[48,1],[48,1],[51,0],[51,1],[46,0],[46,1],[46,3],[53,1],[53,2],[53,3],[54,1],[54,1],[54,1],[54,1],[58,2],[59,1],[59,2],[59,2],[59,1],[37,1],[37,1],[37,1],[13,1],[13,1],[13,1],[13,1],[13,1],[60,2],[60,2],[60,2],[60,1],[60,1],[67,3],[67,2],[69,1],[69,1],[57,4],[74,0],[74,1],[74,3],[74,4],[74,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[14,2],[78,0],[78,1],[79,2],[79,4],[63,1],[63,1],[42,2],[56,2],[56,4],[89,1],[89,1],[62,5],[72,3],[72,2],[72,2],[72,1],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[19,2],[19,3],[19,4],[19,5],[94,3],[24,2],[61,3],[61,5],[100,2],[100,4],[100,2],[100,4],[20,2],[20,2],[20,2],[20,1],[104,2],[104,2],[21,2],[21,2],[21,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[22,5],[22,7],[22,4],[22,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,3]],
-performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1:return this.$ = new yy.Block;
-break;
-case 2:return this.$ = $$[$0];
-break;
-case 3:return this.$ = $$[$0-1];
-break;
-case 4:this.$ = yy.Block.wrap([$$[$0]]);
-break;
-case 5:this.$ = $$[$0-2].push($$[$0]);
-break;
-case 6:this.$ = $$[$0-1];
-break;
-case 7:this.$ = $$[$0];
-break;
-case 8:this.$ = $$[$0];
-break;
-case 9:this.$ = $$[$0];
-break;
-case 10:this.$ = $$[$0];
-break;
-case 11:this.$ = new yy.Literal($$[$0]);
-break;
-case 12:this.$ = $$[$0];
-break;
-case 13:this.$ = $$[$0];
-break;
-case 14:this.$ = $$[$0];
-break;
-case 15:this.$ = $$[$0];
-break;
-case 16:this.$ = $$[$0];
-break;
-case 17:this.$ = $$[$0];
-break;
-case 18:this.$ = $$[$0];
-break;
-case 19:this.$ = $$[$0];
-break;
-case 20:this.$ = $$[$0];
-break;
-case 21:this.$ = $$[$0];
-break;
-case 22:this.$ = $$[$0];
-break;
-case 23:this.$ = $$[$0];
-break;
-case 24:this.$ = new yy.Block;
-break;
-case 25:this.$ = $$[$0-1];
-break;
-case 26:this.$ = new yy.Literal($$[$0]);
-break;
-case 27:this.$ = new yy.Literal($$[$0]);
-break;
-case 28:this.$ = new yy.Literal($$[$0]);
-break;
-case 29:this.$ = $$[$0];
-break;
-case 30:this.$ = new yy.Literal($$[$0]);
-break;
-case 31:this.$ = new yy.Literal($$[$0]);
-break;
-case 32:this.$ = new yy.Literal($$[$0]);
-break;
-case 33:this.$ = (function () {
- var val;
- val = new yy.Literal($$[$0]);
- if ($$[$0] === 'undefined') val.isUndefined = true;
- return val;
- }());
-break;
-case 34:this.$ = new yy.Assign($$[$0-2], $$[$0]);
-break;
-case 35:this.$ = new yy.Assign($$[$0-3], $$[$0]);
-break;
-case 36:this.$ = new yy.Assign($$[$0-4], $$[$0-1]);
-break;
-case 37:this.$ = new yy.Value($$[$0]);
-break;
-case 38:this.$ = new yy.Assign(new yy.Value($$[$0-2]), $$[$0], 'object');
-break;
-case 39:this.$ = new yy.Assign(new yy.Value($$[$0-4]), $$[$0-1], 'object');
-break;
-case 40:this.$ = $$[$0];
-break;
-case 41:this.$ = $$[$0];
-break;
-case 42:this.$ = $$[$0];
-break;
-case 43:this.$ = $$[$0];
-break;
-case 44:this.$ = new yy.Return($$[$0]);
-break;
-case 45:this.$ = new yy.Return;
-break;
-case 46:this.$ = new yy.Comment($$[$0]);
-break;
-case 47:this.$ = new yy.Code($$[$0-3], $$[$0], $$[$0-1]);
-break;
-case 48:this.$ = new yy.Code([], $$[$0], $$[$0-1]);
-break;
-case 49:this.$ = 'func';
-break;
-case 50:this.$ = 'boundfunc';
-break;
-case 51:this.$ = $$[$0];
-break;
-case 52:this.$ = $$[$0];
-break;
-case 53:this.$ = [];
-break;
-case 54:this.$ = [$$[$0]];
-break;
-case 55:this.$ = $$[$0-2].concat($$[$0]);
-break;
-case 56:this.$ = new yy.Param($$[$0]);
-break;
-case 57:this.$ = new yy.Param($$[$0-1], null, true);
-break;
-case 58:this.$ = new yy.Param($$[$0-2], $$[$0]);
-break;
-case 59:this.$ = $$[$0];
-break;
-case 60:this.$ = $$[$0];
-break;
-case 61:this.$ = $$[$0];
-break;
-case 62:this.$ = $$[$0];
-break;
-case 63:this.$ = new yy.Splat($$[$0-1]);
-break;
-case 64:this.$ = new yy.Value($$[$0]);
-break;
-case 65:this.$ = $$[$0-1].add($$[$0]);
-break;
-case 66:this.$ = new yy.Value($$[$0-1], [].concat($$[$0]));
-break;
-case 67:this.$ = $$[$0];
-break;
-case 68:this.$ = $$[$0];
-break;
-case 69:this.$ = new yy.Value($$[$0]);
-break;
-case 70:this.$ = new yy.Value($$[$0]);
-break;
-case 71:this.$ = $$[$0];
-break;
-case 72:this.$ = new yy.Value($$[$0]);
-break;
-case 73:this.$ = new yy.Value($$[$0]);
-break;
-case 74:this.$ = new yy.Value($$[$0]);
-break;
-case 75:this.$ = $$[$0];
-break;
-case 76:this.$ = new yy.Access($$[$0]);
-break;
-case 77:this.$ = new yy.Access($$[$0], 'soak');
-break;
-case 78:this.$ = [new yy.Access(new yy.Literal('prototype')), new yy.Access($$[$0])];
-break;
-case 79:this.$ = new yy.Access(new yy.Literal('prototype'));
-break;
-case 80:this.$ = $$[$0];
-break;
-case 81:this.$ = $$[$0-1];
-break;
-case 82:this.$ = yy.extend($$[$0], {
- soak: true
- });
-break;
-case 83:this.$ = new yy.Index($$[$0]);
-break;
-case 84:this.$ = new yy.Slice($$[$0]);
-break;
-case 85:this.$ = new yy.Obj($$[$0-2], $$[$0-3].generated);
-break;
-case 86:this.$ = [];
-break;
-case 87:this.$ = [$$[$0]];
-break;
-case 88:this.$ = $$[$0-2].concat($$[$0]);
-break;
-case 89:this.$ = $$[$0-3].concat($$[$0]);
-break;
-case 90:this.$ = $$[$0-5].concat($$[$0-2]);
-break;
-case 91:this.$ = new yy.Class;
-break;
-case 92:this.$ = new yy.Class(null, null, $$[$0]);
-break;
-case 93:this.$ = new yy.Class(null, $$[$0]);
-break;
-case 94:this.$ = new yy.Class(null, $$[$0-1], $$[$0]);
-break;
-case 95:this.$ = new yy.Class($$[$0]);
-break;
-case 96:this.$ = new yy.Class($$[$0-1], null, $$[$0]);
-break;
-case 97:this.$ = new yy.Class($$[$0-2], $$[$0]);
-break;
-case 98:this.$ = new yy.Class($$[$0-3], $$[$0-1], $$[$0]);
-break;
-case 99:this.$ = new yy.Call($$[$0-2], $$[$0], $$[$0-1]);
-break;
-case 100:this.$ = new yy.Call($$[$0-2], $$[$0], $$[$0-1]);
-break;
-case 101:this.$ = new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))]);
-break;
-case 102:this.$ = new yy.Call('super', $$[$0]);
-break;
-case 103:this.$ = false;
-break;
-case 104:this.$ = true;
-break;
-case 105:this.$ = [];
-break;
-case 106:this.$ = $$[$0-2];
-break;
-case 107:this.$ = new yy.Value(new yy.Literal('this'));
-break;
-case 108:this.$ = new yy.Value(new yy.Literal('this'));
-break;
-case 109:this.$ = new yy.Value(new yy.Literal('this'), [new yy.Access($$[$0])], 'this');
-break;
-case 110:this.$ = new yy.Arr([]);
-break;
-case 111:this.$ = new yy.Arr($$[$0-2]);
-break;
-case 112:this.$ = 'inclusive';
-break;
-case 113:this.$ = 'exclusive';
-break;
-case 114:this.$ = new yy.Range($$[$0-3], $$[$0-1], $$[$0-2]);
-break;
-case 115:this.$ = new yy.Range($$[$0-2], $$[$0], $$[$0-1]);
-break;
-case 116:this.$ = new yy.Range($$[$0-1], null, $$[$0]);
-break;
-case 117:this.$ = new yy.Range(null, $$[$0], $$[$0-1]);
-break;
-case 118:this.$ = new yy.Range(null, null, $$[$0]);
-break;
-case 119:this.$ = [$$[$0]];
-break;
-case 120:this.$ = $$[$0-2].concat($$[$0]);
-break;
-case 121:this.$ = $$[$0-3].concat($$[$0]);
-break;
-case 122:this.$ = $$[$0-2];
-break;
-case 123:this.$ = $$[$0-5].concat($$[$0-2]);
-break;
-case 124:this.$ = $$[$0];
-break;
-case 125:this.$ = $$[$0];
-break;
-case 126:this.$ = $$[$0];
-break;
-case 127:this.$ = [].concat($$[$0-2], $$[$0]);
-break;
-case 128:this.$ = new yy.Try($$[$0]);
-break;
-case 129:this.$ = new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]);
-break;
-case 130:this.$ = new yy.Try($$[$0-2], null, null, $$[$0]);
-break;
-case 131:this.$ = new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0]);
-break;
-case 132:this.$ = [$$[$0-1], $$[$0]];
-break;
-case 133:this.$ = new yy.Throw($$[$0]);
-break;
-case 134:this.$ = new yy.Parens($$[$0-1]);
-break;
-case 135:this.$ = new yy.Parens($$[$0-2]);
-break;
-case 136:this.$ = new yy.While($$[$0]);
-break;
-case 137:this.$ = new yy.While($$[$0-2], {
- guard: $$[$0]
- });
-break;
-case 138:this.$ = new yy.While($$[$0], {
- invert: true
- });
-break;
-case 139:this.$ = new yy.While($$[$0-2], {
- invert: true,
- guard: $$[$0]
- });
-break;
-case 140:this.$ = $$[$0-1].addBody($$[$0]);
-break;
-case 141:this.$ = $$[$0].addBody(yy.Block.wrap([$$[$0-1]]));
-break;
-case 142:this.$ = $$[$0].addBody(yy.Block.wrap([$$[$0-1]]));
-break;
-case 143:this.$ = $$[$0];
-break;
-case 144:this.$ = new yy.While(new yy.Literal('true')).addBody($$[$0]);
-break;
-case 145:this.$ = new yy.While(new yy.Literal('true')).addBody(yy.Block.wrap([$$[$0]]));
-break;
-case 146:this.$ = new yy.For($$[$0-1], $$[$0]);
-break;
-case 147:this.$ = new yy.For($$[$0-1], $$[$0]);
-break;
-case 148:this.$ = new yy.For($$[$0], $$[$0-1]);
-break;
-case 149:this.$ = {
- source: new yy.Value($$[$0])
- };
-break;
-case 150:this.$ = (function () {
- $$[$0].own = $$[$0-1].own;
- $$[$0].name = $$[$0-1][0];
- $$[$0].index = $$[$0-1][1];
- return $$[$0];
- }());
-break;
-case 151:this.$ = $$[$0];
-break;
-case 152:this.$ = (function () {
- $$[$0].own = true;
- return $$[$0];
- }());
-break;
-case 153:this.$ = $$[$0];
-break;
-case 154:this.$ = new yy.Value($$[$0]);
-break;
-case 155:this.$ = new yy.Value($$[$0]);
-break;
-case 156:this.$ = [$$[$0]];
-break;
-case 157:this.$ = [$$[$0-2], $$[$0]];
-break;
-case 158:this.$ = {
- source: $$[$0]
- };
-break;
-case 159:this.$ = {
- source: $$[$0],
- object: true
- };
-break;
-case 160:this.$ = {
- source: $$[$0-2],
- guard: $$[$0]
- };
-break;
-case 161:this.$ = {
- source: $$[$0-2],
- guard: $$[$0],
- object: true
- };
-break;
-case 162:this.$ = {
- source: $$[$0-2],
- step: $$[$0]
- };
-break;
-case 163:this.$ = {
- source: $$[$0-4],
- guard: $$[$0-2],
- step: $$[$0]
- };
-break;
-case 164:this.$ = {
- source: $$[$0-4],
- step: $$[$0-2],
- guard: $$[$0]
- };
-break;
-case 165:this.$ = new yy.Switch($$[$0-3], $$[$0-1]);
-break;
-case 166:this.$ = new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1]);
-break;
-case 167:this.$ = new yy.Switch(null, $$[$0-1]);
-break;
-case 168:this.$ = new yy.Switch(null, $$[$0-3], $$[$0-1]);
-break;
-case 169:this.$ = $$[$0];
-break;
-case 170:this.$ = $$[$0-1].concat($$[$0]);
-break;
-case 171:this.$ = [[$$[$0-1], $$[$0]]];
-break;
-case 172:this.$ = [[$$[$0-2], $$[$0-1]]];
-break;
-case 173:this.$ = new yy.If($$[$0-1], $$[$0], {
- type: $$[$0-2]
- });
-break;
-case 174:this.$ = $$[$0-4].addElse(new yy.If($$[$0-1], $$[$0], {
- type: $$[$0-2]
- }));
-break;
-case 175:this.$ = $$[$0];
-break;
-case 176:this.$ = $$[$0-2].addElse($$[$0]);
-break;
-case 177:this.$ = new yy.If($$[$0], yy.Block.wrap([$$[$0-2]]), {
- type: $$[$0-1],
- statement: true
- });
-break;
-case 178:this.$ = new yy.If($$[$0], yy.Block.wrap([$$[$0-2]]), {
- type: $$[$0-1],
- statement: true
- });
-break;
-case 179:this.$ = new yy.Op($$[$0-1], $$[$0]);
-break;
-case 180:this.$ = new yy.Op('-', $$[$0]);
-break;
-case 181:this.$ = new yy.Op('+', $$[$0]);
-break;
-case 182:this.$ = new yy.Op('--', $$[$0]);
-break;
-case 183:this.$ = new yy.Op('++', $$[$0]);
-break;
-case 184:this.$ = new yy.Op('--', $$[$0-1], null, true);
-break;
-case 185:this.$ = new yy.Op('++', $$[$0-1], null, true);
-break;
-case 186:this.$ = new yy.Existence($$[$0-1]);
-break;
-case 187:this.$ = new yy.Op('+', $$[$0-2], $$[$0]);
-break;
-case 188:this.$ = new yy.Op('-', $$[$0-2], $$[$0]);
-break;
-case 189:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]);
-break;
-case 190:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]);
-break;
-case 191:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]);
-break;
-case 192:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]);
-break;
-case 193:this.$ = (function () {
- if ($$[$0-1].charAt(0) === '!') {
- return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert();
- } else {
- return new yy.Op($$[$0-1], $$[$0-2], $$[$0]);
- }
- }());
-break;
-case 194:this.$ = new yy.Assign($$[$0-2], $$[$0], $$[$0-1]);
-break;
-case 195:this.$ = new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3]);
-break;
-case 196:this.$ = new yy.Extends($$[$0-2], $$[$0]);
-break;
-}
-},
-table: [{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,72]},{6:[1,73]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:75,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[1,74],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:88,101:[1,63],103:[1,64],106:89,107:[1,66],108:67,123:[1,87]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],47:[2,12],52:[2,12],55:[2,12],60:91,64:[1,93],65:[1,94],66:[1,95],67:96,68:[1,97],70:[2,12],71:[1,98],75:[2,12],78:90,81:[1,92],82:[2,103],83:[2,12],88:[2,12],90:[2,12],99:[2,12],101:[2,12],102:[2,12],103:[2,12],107:[2,12],115:[2,12],123:[2,12],125:[2,12],126:[2,12],129:[2,12],130:[2,12],131:[2,12],132:[2,12],133:[2,12],134:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],47:[2,13],52:[2,13],55:[2,13],60:100,64:[1,93],65:[1,94],66:[1,95],67:96,68:[1,97],70:[2,13],71:[1,98],75:[2,13],78:99,81:[1,92],82:[2,103],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],47:[2,14],52:[2,14],55:[2,14],70:[2,14],75:[2,14],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],47:[2,15],52:[2,15],55:[2,15],70:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],47:[2,16],52:[2,16],55:[2,16],70:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],47:[2,17],52:[2,17],55:[2,17],70:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],47:[2,18],52:[2,18],55:[2,18],70:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],47:[2,19],52:[2,19],55:[2,19],70:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],47:[2,20],52:[2,20],55:[2,20],70:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],47:[2,21],52:[2,21],55:[2,21],70:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],47:[2,22],52:[2,22],55:[2,22],70:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],47:[2,23],52:[2,23],55:[2,23],70:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],38:[1,101],47:[2,71],52:[2,71],55:[2,71],64:[2,71],65:[2,71],66:[2,71],68:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],47:[2,72],52:[2,72],55:[2,72],64:[2,72],65:[2,72],66:[2,72],68:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],47:[2,73],52:[2,73],55:[2,73],64:[2,73],65:[2,73],66:[2,73],68:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],47:[2,74],52:[2,74],55:[2,74],64:[2,74],65:[2,74],66:[2,74],68:[2,74],70:[2,74],71:[2,74],75:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],47:[2,75],52:[2,75],55:[2,75],64:[2,75],65:[2,75],66:[2,75],68:[2,75],70:[2,75],71:[2,75],75:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],47:[2,101],52:[2,101],55:[2,101],64:[2,101],65:[2,101],66:[2,101],68:[2,101],70:[2,101],71:[2,101],75:[2,101],79:102,81:[2,101],82:[1,103],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{27:107,28:[1,71],42:108,46:104,47:[2,53],52:[2,53],53:105,54:106,56:109,57:110,73:[1,68],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:119,14:120,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:121,42:61,56:47,57:48,59:118,61:25,62:26,63:27,73:[1,68],80:[1,28],85:[1,56],86:[1,57],87:[1,55],98:[1,54]},{13:119,14:120,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:121,42:61,56:47,57:48,59:122,61:25,62:26,63:27,73:[1,68],80:[1,28],85:[1,56],86:[1,57],87:[1,55],98:[1,54]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],38:[2,68],47:[2,68],52:[2,68],55:[2,68],64:[2,68],65:[2,68],66:[2,68],68:[2,68],70:[2,68],71:[2,68],75:[2,68],77:[1,126],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],127:[1,123],128:[1,124],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[1,125]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],47:[2,175],52:[2,175],55:[2,175],70:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],101:[2,175],102:[2,175],103:[2,175],107:[2,175],115:[2,175],118:[1,127],123:[2,175],125:[2,175],126:[2,175],129:[2,175],130:[2,175],131:[2,175],132:[2,175],133:[2,175],134:[2,175]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],47:[2,143],52:[2,143],55:[2,143],70:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],101:[2,143],102:[2,143],103:[2,143],107:[2,143],115:[2,143],123:[2,143],125:[2,143],126:[2,143],129:[2,143],130:[2,143],131:[2,143],132:[2,143],133:[2,143],134:[2,143]},{5:130,25:[1,5]},{8:131,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,132],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,91],5:133,6:[2,91],13:119,14:120,25:[1,5],26:[2,91],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:121,42:61,47:[2,91],52:[2,91],55:[2,91],56:47,57:48,59:135,61:25,62:26,63:27,70:[2,91],73:[1,68],75:[2,91],77:[1,134],80:[1,28],83:[2,91],85:[1,56],86:[1,57],87:[1,55],88:[2,91],90:[2,91],98:[1,54],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{8:136,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,45],6:[2,45],8:137,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,45],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],99:[2,45],100:39,101:[2,45],103:[2,45],104:40,105:[1,65],106:41,107:[2,45],108:67,116:[1,42],121:37,122:[1,62],123:[2,45],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],52:[2,46],75:[2,46],99:[2,46],101:[2,46],103:[2,46],107:[2,46],123:[2,46]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],38:[2,69],47:[2,69],52:[2,69],55:[2,69],64:[2,69],65:[2,69],66:[2,69],68:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],38:[2,70],47:[2,70],52:[2,70],55:[2,70],64:[2,70],65:[2,70],66:[2,70],68:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],47:[2,29],52:[2,29],55:[2,29],64:[2,29],65:[2,29],66:[2,29],68:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],47:[2,30],52:[2,30],55:[2,30],64:[2,30],65:[2,30],66:[2,30],68:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],47:[2,31],52:[2,31],55:[2,31],64:[2,31],65:[2,31],66:[2,31],68:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],47:[2,32],52:[2,32],55:[2,32],64:[2,32],65:[2,32],66:[2,32],68:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],47:[2,33],52:[2,33],55:[2,33],64:[2,33],65:[2,33],66:[2,33],68:[2,33],70:[2,33],71:[2,33],75:[2,33],81:[2,33],82:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],101:[2,33],102:[2,33],103:[2,33],107:[2,33],115:[2,33],123:[2,33],125:[2,33],126:[2,33],129:[2,33],130:[2,33],131:[2,33],132:[2,33],133:[2,33],134:[2,33]},{4:138,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,139],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],84:142,85:[1,56],86:[1,57],87:[1,55],88:[1,141],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],47:[2,107],52:[2,107],55:[2,107],64:[2,107],65:[2,107],66:[2,107],68:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],27:146,28:[1,71],47:[2,108],52:[2,108],55:[2,108],64:[2,108],65:[2,108],66:[2,108],68:[2,108],70:[2,108],71:[2,108],75:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108]},{25:[2,49]},{25:[2,50]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],38:[2,64],47:[2,64],52:[2,64],55:[2,64],64:[2,64],65:[2,64],66:[2,64],68:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],38:[2,67],47:[2,67],52:[2,67],55:[2,67],64:[2,67],65:[2,67],66:[2,67],68:[2,67],70:[2,67],71:[2,67],75:[2,67],77:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],127:[2,67],128:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67],135:[2,67]},{8:147,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,71],56:157,57:158,62:152,73:[1,68],87:[1,55],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,86],11:165,25:[2,86],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],39:163,40:164,42:168,44:[1,46],52:[2,86],74:162,75:[2,86],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],41:[2,27],47:[2,27],52:[2,27],55:[2,27],64:[2,27],65:[2,27],66:[2,27],68:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],41:[2,28],47:[2,28],52:[2,28],55:[2,28],64:[2,28],65:[2,28],66:[2,28],68:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],38:[2,26],41:[2,26],47:[2,26],52:[2,26],55:[2,26],64:[2,26],65:[2,26],66:[2,26],68:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,6],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],99:[2,6],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],47:[2,24],52:[2,24],55:[2,24],70:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,72],26:[1,170]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],47:[2,186],52:[2,186],55:[2,186],70:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],101:[2,186],102:[2,186],103:[2,186],107:[2,186],115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[2,186],130:[2,186],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{8:171,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],47:[2,142],52:[2,142],55:[2,142],70:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],47:[2,147],52:[2,147],55:[2,147],70:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{8:179,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],47:[2,141],52:[2,141],55:[2,141],70:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],47:[2,146],52:[2,146],55:[2,146],70:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{79:180,82:[1,103]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],38:[2,65],47:[2,65],52:[2,65],55:[2,65],64:[2,65],65:[2,65],66:[2,65],68:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{82:[2,104]},{27:181,28:[1,71]},{27:182,28:[1,71]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],27:183,28:[1,71],38:[2,79],47:[2,79],52:[2,79],55:[2,79],64:[2,79],65:[2,79],66:[2,79],68:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],38:[2,80],47:[2,80],52:[2,80],55:[2,80],64:[2,80],65:[2,80],66:[2,80],68:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{8:185,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],55:[1,189],56:47,57:48,59:36,61:25,62:26,63:27,69:184,72:186,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],89:187,90:[1,188],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{67:190,68:[1,97],71:[1,98]},{79:191,82:[1,103]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],38:[2,66],47:[2,66],52:[2,66],55:[2,66],64:[2,66],65:[2,66],66:[2,66],68:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[2,66],128:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[2,66]},{6:[1,193],8:192,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,194],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,102],6:[2,102],25:[2,102],26:[2,102],47:[2,102],52:[2,102],55:[2,102],64:[2,102],65:[2,102],66:[2,102],68:[2,102],70:[2,102],71:[2,102],75:[2,102],81:[2,102],82:[2,102],83:[2,102],88:[2,102],90:[2,102],99:[2,102],101:[2,102],102:[2,102],103:[2,102],107:[2,102],115:[2,102],123:[2,102],125:[2,102],126:[2,102],129:[2,102],130:[2,102],131:[2,102],132:[2,102],133:[2,102],134:[2,102]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,56],86:[1,57],87:[1,55],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{47:[1,198],52:[1,199]},{47:[2,54],52:[2,54]},{38:[1,201],47:[2,56],52:[2,56],55:[1,200]},{38:[2,59],47:[2,59],52:[2,59],55:[2,59]},{38:[2,60],47:[2,60],52:[2,60],55:[2,60]},{38:[2,61],47:[2,61],52:[2,61],55:[2,61]},{38:[2,62],47:[2,62],52:[2,62],55:[2,62]},{27:146,28:[1,71]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],84:142,85:[1,56],86:[1,57],87:[1,55],88:[1,141],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],47:[2,48],52:[2,48],55:[2,48],70:[2,48],75:[2,48],83:[2,48],88:[2,48],90:[2,48],99:[2,48],101:[2,48],102:[2,48],103:[2,48],107:[2,48],115:[2,48],123:[2,48],125:[2,48],126:[2,48],129:[2,48],130:[2,48],131:[2,48],132:[2,48],133:[2,48],134:[2,48]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],47:[2,179],52:[2,179],55:[2,179],70:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:85,101:[2,179],102:[2,179],103:[2,179],106:86,107:[2,179],108:67,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,76],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{100:88,101:[1,63],103:[1,64],106:89,107:[1,66],108:67,123:[1,87]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],47:[2,180],52:[2,180],55:[2,180],70:[2,180],75:[2,180],83:[2,180],88:[2,180],90:[2,180],99:[2,180],100:85,101:[2,180],102:[2,180],103:[2,180],106:86,107:[2,180],108:67,115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[1,76],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],47:[2,181],52:[2,181],55:[2,181],70:[2,181],75:[2,181],83:[2,181],88:[2,181],90:[2,181],99:[2,181],100:85,101:[2,181],102:[2,181],103:[2,181],106:86,107:[2,181],108:67,115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[1,76],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],47:[2,182],52:[2,182],55:[2,182],64:[2,68],65:[2,68],66:[2,68],68:[2,68],70:[2,182],71:[2,68],75:[2,182],81:[2,68],82:[2,68],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{60:91,64:[1,93],65:[1,94],66:[1,95],67:96,68:[1,97],71:[1,98],78:90,81:[1,92],82:[2,103]},{60:100,64:[1,93],65:[1,94],66:[1,95],67:96,68:[1,97],71:[1,98],78:99,81:[1,92],82:[2,103]},{64:[2,71],65:[2,71],66:[2,71],68:[2,71],71:[2,71],81:[2,71],82:[2,71]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],47:[2,183],52:[2,183],55:[2,183],64:[2,68],65:[2,68],66:[2,68],68:[2,68],70:[2,183],71:[2,68],75:[2,183],81:[2,68],82:[2,68],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],47:[2,184],52:[2,184],55:[2,184],70:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],47:[2,185],52:[2,185],55:[2,185],70:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],101:[2,185],102:[2,185],103:[2,185],107:[2,185],115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[2,185],130:[2,185],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{8:202,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,203],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],47:[2,128],52:[2,128],55:[2,128],70:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],94:207,95:[1,208],96:[1,209],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],47:[2,140],52:[2,140],55:[2,140],70:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],47:[2,148],52:[2,148],55:[2,148],70:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{25:[1,210],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{117:211,119:212,120:[1,213]},{1:[2,92],6:[2,92],25:[2,92],26:[2,92],47:[2,92],52:[2,92],55:[2,92],70:[2,92],75:[2,92],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{8:214,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,95],5:215,6:[2,95],25:[1,5],26:[2,95],47:[2,95],52:[2,95],55:[2,95],64:[2,68],65:[2,68],66:[2,68],68:[2,68],70:[2,95],71:[2,68],75:[2,95],77:[1,216],81:[2,68],82:[2,68],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],47:[2,133],52:[2,133],55:[2,133],70:[2,133],75:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],100:85,101:[2,133],102:[2,133],103:[2,133],106:86,107:[2,133],108:67,115:[2,133],123:[2,133],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,44],6:[2,44],26:[2,44],99:[2,44],100:85,101:[2,44],103:[2,44],106:86,107:[2,44],108:67,123:[2,44],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,72],99:[1,217]},{4:218,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,124],25:[2,124],52:[2,124],55:[1,220],88:[2,124],89:219,90:[1,188],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],38:[2,110],47:[2,110],52:[2,110],55:[2,110],64:[2,110],65:[2,110],66:[2,110],68:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{6:[2,51],25:[2,51],51:221,52:[1,222],88:[2,51]},{6:[2,119],25:[2,119],26:[2,119],52:[2,119],83:[2,119],88:[2,119]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],84:223,85:[1,56],86:[1,57],87:[1,55],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,125],25:[2,125],26:[2,125],52:[2,125],83:[2,125],88:[2,125]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],38:[2,109],41:[2,109],47:[2,109],52:[2,109],55:[2,109],64:[2,109],65:[2,109],66:[2,109],68:[2,109],70:[2,109],71:[2,109],75:[2,109],77:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],127:[2,109],128:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109],135:[2,109]},{5:224,25:[1,5],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],47:[2,136],52:[2,136],55:[2,136],70:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:85,101:[1,63],102:[1,225],103:[1,64],106:86,107:[1,66],108:67,115:[2,136],123:[2,136],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],47:[2,138],52:[2,138],55:[2,138],70:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],100:85,101:[1,63],102:[1,226],103:[1,64],106:86,107:[1,66],108:67,115:[2,138],123:[2,138],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],47:[2,144],52:[2,144],55:[2,144],70:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],47:[2,145],52:[2,145],55:[2,145],70:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],100:85,101:[1,63],102:[2,145],103:[1,64],106:86,107:[1,66],108:67,115:[2,145],123:[2,145],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],47:[2,149],52:[2,149],55:[2,149],70:[2,149],75:[2,149],83:[2,149],88:[2,149],90:[2,149],99:[2,149],101:[2,149],102:[2,149],103:[2,149],107:[2,149],115:[2,149],123:[2,149],125:[2,149],126:[2,149],129:[2,149],130:[2,149],131:[2,149],132:[2,149],133:[2,149],134:[2,149]},{113:[2,151],114:[2,151]},{27:156,28:[1,71],56:157,57:158,73:[1,68],87:[1,112],110:227,112:155},{52:[1,228],113:[2,156],114:[2,156]},{52:[2,153],113:[2,153],114:[2,153]},{52:[2,154],113:[2,154],114:[2,154]},{52:[2,155],113:[2,155],114:[2,155]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],47:[2,150],52:[2,150],55:[2,150],70:[2,150],75:[2,150],83:[2,150],88:[2,150],90:[2,150],99:[2,150],101:[2,150],102:[2,150],103:[2,150],107:[2,150],115:[2,150],123:[2,150],125:[2,150],126:[2,150],129:[2,150],130:[2,150],131:[2,150],132:[2,150],133:[2,150],134:[2,150]},{8:229,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:230,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,51],25:[2,51],51:231,52:[1,232],75:[2,51]},{6:[2,87],25:[2,87],26:[2,87],52:[2,87],75:[2,87]},{6:[2,37],25:[2,37],26:[2,37],41:[1,233],52:[2,37],75:[2,37]},{6:[2,40],25:[2,40],26:[2,40],52:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],41:[2,41],52:[2,41],75:[2,41]},{6:[2,42],25:[2,42],26:[2,42],41:[2,42],52:[2,42],75:[2,42]},{6:[2,43],25:[2,43],26:[2,43],41:[2,43],52:[2,43],75:[2,43]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],47:[2,25],52:[2,25],55:[2,25],70:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],47:[2,187],52:[2,187],55:[2,187],70:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:85,101:[2,187],102:[2,187],103:[2,187],106:86,107:[2,187],108:67,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,76],130:[1,79],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],47:[2,188],52:[2,188],55:[2,188],70:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:85,101:[2,188],102:[2,188],103:[2,188],106:86,107:[2,188],108:67,115:[2,188],123:[2,188],125:[2,188],126:[2,188],129:[1,76],130:[1,79],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],47:[2,189],52:[2,189],55:[2,189],70:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:85,101:[2,189],102:[2,189],103:[2,189],106:86,107:[2,189],108:67,115:[2,189],123:[2,189],125:[2,189],126:[2,189],129:[1,76],130:[2,189],131:[2,189],132:[2,189],133:[2,189],134:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],47:[2,190],52:[2,190],55:[2,190],70:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:85,101:[2,190],102:[2,190],103:[2,190],106:86,107:[2,190],108:67,115:[2,190],123:[2,190],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[2,190],132:[2,190],133:[2,190],134:[2,190]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],47:[2,191],52:[2,191],55:[2,191],70:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:85,101:[2,191],102:[2,191],103:[2,191],106:86,107:[2,191],108:67,115:[2,191],123:[2,191],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[2,191],133:[2,191],134:[1,83]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],47:[2,192],52:[2,192],55:[2,192],70:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:85,101:[2,192],102:[2,192],103:[2,192],106:86,107:[2,192],108:67,115:[2,192],123:[2,192],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[2,192],134:[1,83]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],47:[2,193],52:[2,193],55:[2,193],70:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],100:85,101:[2,193],102:[2,193],103:[2,193],106:86,107:[2,193],108:67,115:[2,193],123:[2,193],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[2,193],133:[2,193],134:[2,193]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],47:[2,178],52:[2,178],55:[2,178],70:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:85,101:[1,63],102:[2,178],103:[1,64],106:86,107:[1,66],108:67,115:[2,178],123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],47:[2,177],52:[2,177],55:[2,177],70:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:85,101:[1,63],102:[2,177],103:[1,64],106:86,107:[1,66],108:67,115:[2,177],123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],47:[2,99],52:[2,99],55:[2,99],64:[2,99],65:[2,99],66:[2,99],68:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],38:[2,76],47:[2,76],52:[2,76],55:[2,76],64:[2,76],65:[2,76],66:[2,76],68:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],38:[2,77],47:[2,77],52:[2,77],55:[2,77],64:[2,77],65:[2,77],66:[2,77],68:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],38:[2,78],47:[2,78],52:[2,78],55:[2,78],64:[2,78],65:[2,78],66:[2,78],68:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{70:[1,234]},{55:[1,189],70:[2,83],89:235,90:[1,188],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{70:[2,84]},{8:236,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,70:[2,118],73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{12:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],36:[2,112],43:[2,112],44:[2,112],45:[2,112],49:[2,112],50:[2,112],70:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{12:[2,113],28:[2,113],30:[2,113],31:[2,113],33:[2,113],34:[2,113],35:[2,113],36:[2,113],43:[2,113],44:[2,113],45:[2,113],49:[2,113],50:[2,113],70:[2,113],73:[2,113],76:[2,113],80:[2,113],85:[2,113],86:[2,113],87:[2,113],93:[2,113],97:[2,113],98:[2,113],101:[2,113],103:[2,113],105:[2,113],107:[2,113],116:[2,113],122:[2,113],124:[2,113],125:[2,113],126:[2,113],127:[2,113],128:[2,113]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],38:[2,82],47:[2,82],52:[2,82],55:[2,82],64:[2,82],65:[2,82],66:[2,82],68:[2,82],70:[2,82],71:[2,82],75:[2,82],77:[2,82],81:[2,82],82:[2,82],83:[2,82],88:[2,82],90:[2,82],99:[2,82],101:[2,82],102:[2,82],103:[2,82],107:[2,82],115:[2,82],123:[2,82],125:[2,82],126:[2,82],127:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],47:[2,100],52:[2,100],55:[2,100],64:[2,100],65:[2,100],66:[2,100],68:[2,100],70:[2,100],71:[2,100],75:[2,100],81:[2,100],82:[2,100],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],47:[2,34],52:[2,34],55:[2,34],70:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],100:85,101:[2,34],102:[2,34],103:[2,34],106:86,107:[2,34],108:67,115:[2,34],123:[2,34],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:237,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:238,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],47:[2,105],52:[2,105],55:[2,105],64:[2,105],65:[2,105],66:[2,105],68:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{6:[2,51],25:[2,51],51:239,52:[1,222],83:[2,51]},{6:[2,124],25:[2,124],26:[2,124],52:[2,124],55:[1,240],83:[2,124],88:[2,124],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{48:241,49:[1,58],50:[1,59]},{27:107,28:[1,71],42:108,53:242,54:106,56:109,57:110,73:[1,68],86:[1,111],87:[1,112]},{47:[2,57],52:[2,57]},{8:243,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],47:[2,194],52:[2,194],55:[2,194],70:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:85,101:[2,194],102:[2,194],103:[2,194],106:86,107:[2,194],108:67,115:[2,194],123:[2,194],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:244,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],47:[2,196],52:[2,196],55:[2,196],70:[2,196],75:[2,196],83:[2,196],88:[2,196],90:[2,196],99:[2,196],100:85,101:[2,196],102:[2,196],103:[2,196],106:86,107:[2,196],108:67,115:[2,196],123:[2,196],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],47:[2,176],52:[2,176],55:[2,176],70:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],101:[2,176],102:[2,176],103:[2,176],107:[2,176],115:[2,176],123:[2,176],125:[2,176],126:[2,176],129:[2,176],130:[2,176],131:[2,176],132:[2,176],133:[2,176],134:[2,176]},{8:245,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],47:[2,129],52:[2,129],55:[2,129],70:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],95:[1,246],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{5:247,25:[1,5]},{27:248,28:[1,71]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,169],118:[2,169],120:[2,169]},{8:254,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],92:253,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,93],5:255,6:[2,93],25:[1,5],26:[2,93],47:[2,93],52:[2,93],55:[2,93],70:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],100:85,101:[1,63],102:[2,93],103:[1,64],106:86,107:[1,66],108:67,115:[2,93],123:[2,93],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,96],6:[2,96],25:[2,96],26:[2,96],47:[2,96],52:[2,96],55:[2,96],70:[2,96],75:[2,96],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{8:256,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],47:[2,134],52:[2,134],55:[2,134],64:[2,134],65:[2,134],66:[2,134],68:[2,134],70:[2,134],71:[2,134],75:[2,134],81:[2,134],82:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],101:[2,134],102:[2,134],103:[2,134],107:[2,134],115:[2,134],123:[2,134],125:[2,134],126:[2,134],129:[2,134],130:[2,134],131:[2,134],132:[2,134],133:[2,134],134:[2,134]},{6:[1,72],26:[1,257]},{8:258,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,63],12:[2,113],25:[2,63],28:[2,113],30:[2,113],31:[2,113],33:[2,113],34:[2,113],35:[2,113],36:[2,113],43:[2,113],44:[2,113],45:[2,113],49:[2,113],50:[2,113],52:[2,63],73:[2,113],76:[2,113],80:[2,113],85:[2,113],86:[2,113],87:[2,113],88:[2,63],93:[2,113],97:[2,113],98:[2,113],101:[2,113],103:[2,113],105:[2,113],107:[2,113],116:[2,113],122:[2,113],124:[2,113],125:[2,113],126:[2,113],127:[2,113],128:[2,113]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,52],8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[2,52],26:[2,52],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],83:[2,52],85:[1,56],86:[1,57],87:[1,55],88:[2,52],91:262,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,51],25:[2,51],26:[2,51],51:263,52:[1,222]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],47:[2,173],52:[2,173],55:[2,173],70:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[2,173],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{8:264,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,152],114:[2,152]},{27:156,28:[1,71],56:157,57:158,73:[1,68],87:[1,112],112:266},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],47:[2,158],52:[2,158],55:[2,158],70:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:85,101:[2,158],102:[1,267],103:[2,158],106:86,107:[2,158],108:67,115:[1,268],123:[2,158],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],47:[2,159],52:[2,159],55:[2,159],70:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:85,101:[2,159],102:[1,269],103:[2,159],106:86,107:[2,159],108:67,115:[2,159],123:[2,159],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,52],11:165,25:[2,52],26:[2,52],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],39:273,40:164,42:168,44:[1,46],75:[2,52],86:[1,111]},{8:274,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,275],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],38:[2,81],47:[2,81],52:[2,81],55:[2,81],64:[2,81],65:[2,81],66:[2,81],68:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{8:276,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,70:[2,116],73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{70:[2,117],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],47:[2,35],52:[2,35],55:[2,35],70:[2,35],75:[2,35],83:[2,35],88:[2,35],90:[2,35],99:[2,35],100:85,101:[2,35],102:[2,35],103:[2,35],106:86,107:[2,35],108:67,115:[2,35],123:[2,35],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{26:[1,277],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,63],25:[2,63],26:[2,63],52:[2,63],83:[2,63],88:[2,63]},{5:279,25:[1,5]},{47:[2,55],52:[2,55]},{47:[2,58],52:[2,58],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{26:[1,280],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{5:281,25:[1,5],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{5:282,25:[1,5]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],47:[2,130],52:[2,130],55:[2,130],70:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],47:[2,167],52:[2,167],55:[2,167],70:[2,167],75:[2,167],83:[2,167],88:[2,167],90:[2,167],99:[2,167],101:[2,167],102:[2,167],103:[2,167],107:[2,167],115:[2,167],123:[2,167],125:[2,167],126:[2,167],129:[2,167],130:[2,167],131:[2,167],132:[2,167],133:[2,167],134:[2,167]},{5:286,25:[1,5]},{26:[2,170],118:[2,170],120:[2,170]},{5:287,25:[1,5],52:[1,288]},{25:[2,126],52:[2,126],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,94],6:[2,94],25:[2,94],26:[2,94],47:[2,94],52:[2,94],55:[2,94],70:[2,94],75:[2,94],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,97],5:289,6:[2,97],25:[1,5],26:[2,97],47:[2,97],52:[2,97],55:[2,97],70:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],100:85,101:[1,63],102:[2,97],103:[1,64],106:86,107:[1,66],108:67,115:[2,97],123:[2,97],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{99:[1,290]},{88:[1,291],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],38:[2,111],47:[2,111],52:[2,111],55:[2,111],64:[2,111],65:[2,111],66:[2,111],68:[2,111],70:[2,111],71:[2,111],75:[2,111],81:[2,111],82:[2,111],83:[2,111],88:[2,111],90:[2,111],99:[2,111],101:[2,111],102:[2,111],103:[2,111],107:[2,111],113:[2,111],114:[2,111],115:[2,111],123:[2,111],125:[2,111],126:[2,111],129:[2,111],130:[2,111],131:[2,111],132:[2,111],133:[2,111],134:[2,111]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],91:292,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],84:293,85:[1,56],86:[1,57],87:[1,55],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,120],25:[2,120],26:[2,120],52:[2,120],83:[2,120],88:[2,120]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],47:[2,137],52:[2,137],55:[2,137],70:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:85,101:[1,63],102:[2,137],103:[1,64],106:86,107:[1,66],108:67,115:[2,137],123:[2,137],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],47:[2,139],52:[2,139],55:[2,139],70:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],100:85,101:[1,63],102:[2,139],103:[1,64],106:86,107:[1,66],108:67,115:[2,139],123:[2,139],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{113:[2,157],114:[2,157]},{8:295,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],38:[2,85],47:[2,85],52:[2,85],55:[2,85],64:[2,85],65:[2,85],66:[2,85],68:[2,85],70:[2,85],71:[2,85],75:[2,85],81:[2,85],82:[2,85],83:[2,85],88:[2,85],90:[2,85],99:[2,85],101:[2,85],102:[2,85],103:[2,85],107:[2,85],113:[2,85],114:[2,85],115:[2,85],123:[2,85],125:[2,85],126:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85]},{11:165,27:166,28:[1,71],29:167,30:[1,69],31:[1,70],39:298,40:164,42:168,44:[1,46],86:[1,111]},{6:[2,86],11:165,25:[2,86],26:[2,86],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],39:163,40:164,42:168,44:[1,46],52:[2,86],74:299,86:[1,111]},{6:[2,88],25:[2,88],26:[2,88],52:[2,88],75:[2,88]},{6:[2,38],25:[2,38],26:[2,38],52:[2,38],75:[2,38],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:300,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{70:[2,115],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],47:[2,36],52:[2,36],55:[2,36],70:[2,36],75:[2,36],83:[2,36],88:[2,36],90:[2,36],99:[2,36],101:[2,36],102:[2,36],103:[2,36],107:[2,36],115:[2,36],123:[2,36],125:[2,36],126:[2,36],129:[2,36],130:[2,36],131:[2,36],132:[2,36],133:[2,36],134:[2,36]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],47:[2,106],52:[2,106],55:[2,106],64:[2,106],65:[2,106],66:[2,106],68:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,47],6:[2,47],25:[2,47],26:[2,47],47:[2,47],52:[2,47],55:[2,47],70:[2,47],75:[2,47],83:[2,47],88:[2,47],90:[2,47],99:[2,47],101:[2,47],102:[2,47],103:[2,47],107:[2,47],115:[2,47],123:[2,47],125:[2,47],126:[2,47],129:[2,47],130:[2,47],131:[2,47],132:[2,47],133:[2,47],134:[2,47]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],47:[2,195],52:[2,195],55:[2,195],70:[2,195],75:[2,195],83:[2,195],88:[2,195],90:[2,195],99:[2,195],101:[2,195],102:[2,195],103:[2,195],107:[2,195],115:[2,195],123:[2,195],125:[2,195],126:[2,195],129:[2,195],130:[2,195],131:[2,195],132:[2,195],133:[2,195],134:[2,195]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],47:[2,174],52:[2,174],55:[2,174],70:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],118:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{1:[2,131],6:[2,131],25:[2,131],26:[2,131],47:[2,131],52:[2,131],55:[2,131],70:[2,131],75:[2,131],83:[2,131],88:[2,131],90:[2,131],99:[2,131],101:[2,131],102:[2,131],103:[2,131],107:[2,131],115:[2,131],123:[2,131],125:[2,131],126:[2,131],129:[2,131],130:[2,131],131:[2,131],132:[2,131],133:[2,131],134:[2,131]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],47:[2,132],52:[2,132],55:[2,132],70:[2,132],75:[2,132],83:[2,132],88:[2,132],90:[2,132],95:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],47:[2,165],52:[2,165],55:[2,165],70:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,171],118:[2,171],120:[2,171]},{8:304,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],47:[2,98],52:[2,98],55:[2,98],70:[2,98],75:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],47:[2,135],52:[2,135],55:[2,135],64:[2,135],65:[2,135],66:[2,135],68:[2,135],70:[2,135],71:[2,135],75:[2,135],81:[2,135],82:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],101:[2,135],102:[2,135],103:[2,135],107:[2,135],115:[2,135],123:[2,135],125:[2,135],126:[2,135],129:[2,135],130:[2,135],131:[2,135],132:[2,135],133:[2,135],134:[2,135]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],47:[2,114],52:[2,114],55:[2,114],64:[2,114],65:[2,114],66:[2,114],68:[2,114],70:[2,114],71:[2,114],75:[2,114],81:[2,114],82:[2,114],83:[2,114],88:[2,114],90:[2,114],99:[2,114],101:[2,114],102:[2,114],103:[2,114],107:[2,114],115:[2,114],123:[2,114],125:[2,114],126:[2,114],129:[2,114],130:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114]},{6:[2,121],25:[2,121],26:[2,121],52:[2,121],83:[2,121],88:[2,121]},{6:[2,51],25:[2,51],26:[2,51],51:305,52:[1,222]},{6:[2,122],25:[2,122],26:[2,122],52:[2,122],83:[2,122],88:[2,122]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],47:[2,160],52:[2,160],55:[2,160],70:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:85,101:[2,160],102:[2,160],103:[2,160],106:86,107:[2,160],108:67,115:[1,306],123:[2,160],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],47:[2,162],52:[2,162],55:[2,162],70:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:85,101:[2,162],102:[1,307],103:[2,162],106:86,107:[2,162],108:67,115:[2,162],123:[2,162],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],47:[2,161],52:[2,161],55:[2,161],70:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:85,101:[2,161],102:[2,161],103:[2,161],106:86,107:[2,161],108:67,115:[2,161],123:[2,161],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[2,89],25:[2,89],26:[2,89],52:[2,89],75:[2,89]},{6:[2,51],25:[2,51],26:[2,51],51:308,52:[1,232]},{26:[1,309],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{26:[1,310]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],47:[2,168],52:[2,168],55:[2,168],70:[2,168],75:[2,168],83:[2,168],88:[2,168],90:[2,168],99:[2,168],101:[2,168],102:[2,168],103:[2,168],107:[2,168],115:[2,168],123:[2,168],125:[2,168],126:[2,168],129:[2,168],130:[2,168],131:[2,168],132:[2,168],133:[2,168],134:[2,168]},{26:[2,172],118:[2,172],120:[2,172]},{25:[2,127],52:[2,127],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,39],25:[2,39],26:[2,39],52:[2,39],75:[2,39]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],47:[2,166],52:[2,166],55:[2,166],70:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{6:[2,123],25:[2,123],26:[2,123],52:[2,123],83:[2,123],88:[2,123]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],47:[2,163],52:[2,163],55:[2,163],70:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],100:85,101:[2,163],102:[2,163],103:[2,163],106:86,107:[2,163],108:67,115:[2,163],123:[2,163],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],47:[2,164],52:[2,164],55:[2,164],70:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],100:85,101:[2,164],102:[2,164],103:[2,164],106:86,107:[2,164],108:67,115:[2,164],123:[2,164],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[2,90],25:[2,90],26:[2,90],52:[2,90],75:[2,90]}],
-defaultActions: {58:[2,49],59:[2,50],73:[2,3],92:[2,104],186:[2,84]},
-parseError: function parseError(str, hash) {
- throw new Error(str);
-},
-parse: function parse(input) {
- var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
- this.lexer.setInput(input);
- this.lexer.yy = this.yy;
- this.yy.lexer = this.lexer;
- if (typeof this.lexer.yylloc == "undefined")
- this.lexer.yylloc = {};
- var yyloc = this.lexer.yylloc;
- lstack.push(yyloc);
- if (typeof this.yy.parseError === "function")
- this.parseError = this.yy.parseError;
- function popStack(n) {
- stack.length = stack.length - 2 * n;
- vstack.length = vstack.length - n;
- lstack.length = lstack.length - n;
- }
- function lex() {
- var token;
- token = self.lexer.lex() || 1;
- if (typeof token !== "number") {
- token = self.symbols_[token] || token;
- }
- return token;
- }
- var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state = stack[stack.length - 1];
- if (this.defaultActions[state]) {
- action = this.defaultActions[state];
- } else {
- if (symbol == null)
- symbol = lex();
- action = table[state] && table[state][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- if (!recovering) {
- expected = [];
- for (p in table[state])
- if (this.terminals_[p] && p > 2) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- var errStr = "";
- if (this.lexer.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + this.terminals_[symbol] + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
- }
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(this.lexer.yytext);
- lstack.push(this.lexer.yylloc);
- stack.push(action[1]);
- symbol = null;
- if (!preErrorSymbol) {
- yyleng = this.lexer.yyleng;
- yytext = this.lexer.yytext;
- yylineno = this.lexer.yylineno;
- yyloc = this.lexer.yylloc;
- if (recovering > 0)
- recovering--;
- } else {
- symbol = preErrorSymbol;
- preErrorSymbol = null;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
- r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
-}
-};
-return parser;
-})();
-if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
-exports.parser = parser;
-exports.parse = function () { return parser.parse.apply(parser, arguments); }
-exports.main = function commonjsMain(args) {
- if (!args[1])
- throw new Error('Usage: '+args[0]+' FILE');
- if (typeof process !== 'undefined') {
- var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8");
- } else {
- var cwd = require("file").path(require("file").cwd());
- var source = cwd.join(args[1]).read({charset: "utf-8"});
- }
- return exports.parser.parse(source);
-}
-if (typeof module !== 'undefined' && require.main === module) {
- exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
-}
-}}, "coffee-script/repl": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var ACCESSOR, CoffeeScript, Module, REPL_PROMPT, REPL_PROMPT_CONTINUATION, REPL_PROMPT_MULTILINE, SIMPLEVAR, Script, autocomplete, backlog, completeAttribute, completeVariable, enableColours, error, getCompletions, inspect, multilineMode, pipedInput, readline, repl, run, stdin, stdout;
-
- stdin = process.openStdin();
-
- stdout = process.stdout;
-
- CoffeeScript = require('./coffee-script');
-
- readline = require('readline');
-
- inspect = require('util').inspect;
-
- Script = require('vm').Script;
-
- Module = require('module');
-
- REPL_PROMPT = 'coffee> ';
-
- REPL_PROMPT_MULTILINE = '------> ';
-
- REPL_PROMPT_CONTINUATION = '......> ';
-
- enableColours = false;
-
- if (process.platform !== 'win32') {
- enableColours = !process.env.NODE_DISABLE_COLORS;
- }
-
- error = function(err) {
- return stdout.write((err.stack || err.toString()) + '\n');
- };
-
- ACCESSOR = /\s*([\w\.]+)(?:\.(\w*))$/;
-
- SIMPLEVAR = /(\w+)$/i;
-
- autocomplete = function(text) {
- return completeAttribute(text) || completeVariable(text) || [[], text];
- };
-
- completeAttribute = function(text) {
- var all, completions, match, obj, prefix, val;
- if (match = text.match(ACCESSOR)) {
- all = match[0], obj = match[1], prefix = match[2];
- try {
- val = Script.runInThisContext(obj);
- } catch (error) {
- return;
- }
- completions = getCompletions(prefix, Object.getOwnPropertyNames(Object(val)));
- return [completions, prefix];
- }
- };
-
- completeVariable = function(text) {
- var completions, free, keywords, possibilities, r, vars, _ref;
- free = (_ref = text.match(SIMPLEVAR)) != null ? _ref[1] : void 0;
- if (text === "") {
- free = "";
- }
- if (free != null) {
- vars = Script.runInThisContext('Object.getOwnPropertyNames(Object(this))');
- keywords = (function() {
- var _i, _len, _ref1, _results;
- _ref1 = CoffeeScript.RESERVED;
- _results = [];
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- r = _ref1[_i];
- if (r.slice(0, 2) !== '__') {
- _results.push(r);
- }
- }
- return _results;
- })();
- possibilities = vars.concat(keywords);
- completions = getCompletions(free, possibilities);
- return [completions, free];
- }
- };
-
- getCompletions = function(prefix, candidates) {
- var el, _i, _len, _results;
- _results = [];
- for (_i = 0, _len = candidates.length; _i < _len; _i++) {
- el = candidates[_i];
- if (el.indexOf(prefix) === 0) {
- _results.push(el);
- }
- }
- return _results;
- };
-
- process.on('uncaughtException', error);
-
- backlog = '';
-
- run = function(buffer) {
- var code, returnValue, _;
- buffer = buffer.replace(/[\r\n]+$/, "");
- if (multilineMode) {
- backlog += "" + buffer + "\n";
- repl.setPrompt(REPL_PROMPT_CONTINUATION);
- repl.prompt();
- return;
- }
- if (!buffer.toString().trim() && !backlog) {
- repl.prompt();
- return;
- }
- code = backlog += buffer;
- if (code[code.length - 1] === '\\') {
- backlog = "" + backlog.slice(0, -1) + "\n";
- repl.setPrompt(REPL_PROMPT_CONTINUATION);
- repl.prompt();
- return;
- }
- repl.setPrompt(REPL_PROMPT);
- backlog = '';
- try {
- _ = global._;
- returnValue = CoffeeScript["eval"]("_=(undefined\n;" + code + "\n)", {
- filename: 'repl',
- modulename: 'repl'
- });
- if (returnValue === void 0) {
- global._ = _;
- }
- repl.output.write("" + (inspect(returnValue, false, 2, enableColours)) + "\n");
- } catch (err) {
- error(err);
- }
- return repl.prompt();
- };
-
- if (stdin.readable) {
- pipedInput = '';
- repl = {
- prompt: function() {
- return stdout.write(this._prompt);
- },
- setPrompt: function(p) {
- return this._prompt = p;
- },
- input: stdin,
- output: stdout,
- on: function() {}
- };
- stdin.on('data', function(chunk) {
- return pipedInput += chunk;
- });
- stdin.on('end', function() {
- var line, _i, _len, _ref;
- _ref = pipedInput.trim().split("\n");
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- line = _ref[_i];
- stdout.write("" + line + "\n");
- run(line);
- }
- stdout.write('\n');
- return process.exit(0);
- });
- } else {
- if (readline.createInterface.length < 3) {
- repl = readline.createInterface(stdin, autocomplete);
- stdin.on('data', function(buffer) {
- return repl.write(buffer);
- });
- } else {
- repl = readline.createInterface(stdin, stdout, autocomplete);
- }
- }
-
- multilineMode = false;
-
- repl.input.on('keypress', function(char, key) {
- var cursorPos, newPrompt;
- if (!(key && key.ctrl && !key.meta && !key.shift && key.name === 'v')) {
- return;
- }
- cursorPos = repl.cursor;
- repl.output.cursorTo(0);
- repl.output.clearLine(1);
- multilineMode = !multilineMode;
- if (!multilineMode && backlog) {
- repl._line();
- }
- backlog = '';
- repl.setPrompt((newPrompt = multilineMode ? REPL_PROMPT_MULTILINE : REPL_PROMPT));
- repl.prompt();
- return repl.output.cursorTo(newPrompt.length + (repl.cursor = cursorPos));
- });
-
- repl.input.on('keypress', function(char, key) {
- if (!(multilineMode && repl.line)) {
- return;
- }
- if (!(key && key.ctrl && !key.meta && !key.shift && key.name === 'd')) {
- return;
- }
- multilineMode = false;
- return repl._line();
- });
-
- repl.on('attemptClose', function() {
- if (multilineMode) {
- multilineMode = false;
- repl.output.cursorTo(0);
- repl.output.clearLine(1);
- repl._onLine(repl.line);
- return;
- }
- if (backlog) {
- backlog = '';
- repl.output.write('\n');
- repl.setPrompt(REPL_PROMPT);
- return repl.prompt();
- } else {
- return repl.close();
- }
- });
-
- repl.on('close', function() {
- repl.output.write('\n');
- return repl.input.destroy();
- });
-
- repl.on('line', run);
-
- repl.setPrompt(REPL_PROMPT);
-
- repl.prompt();
-
-}).call(this);
-}, "coffee-script/rewriter": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var BALANCED_PAIRS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_BLOCK, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, left, rite, _i, _len, _ref,
- __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
- __slice = [].slice;
-
- exports.Rewriter = (function() {
-
- Rewriter.name = 'Rewriter';
-
- function Rewriter() {}
-
- Rewriter.prototype.rewrite = function(tokens) {
- this.tokens = tokens;
- this.removeLeadingNewlines();
- this.removeMidExpressionNewlines();
- this.closeOpenCalls();
- this.closeOpenIndexes();
- this.addImplicitIndentation();
- this.tagPostfixConditionals();
- this.addImplicitBraces();
- this.addImplicitParentheses();
- return this.tokens;
- };
-
- Rewriter.prototype.scanTokens = function(block) {
- var i, token, tokens;
- tokens = this.tokens;
- i = 0;
- while (token = tokens[i]) {
- i += block.call(this, token, i, tokens);
- }
- return true;
- };
-
- Rewriter.prototype.detectEnd = function(i, condition, action) {
- var levels, token, tokens, _ref, _ref1;
- tokens = this.tokens;
- levels = 0;
- while (token = tokens[i]) {
- if (levels === 0 && condition.call(this, token, i)) {
- return action.call(this, token, i);
- }
- if (!token || levels < 0) {
- return action.call(this, token, i - 1);
- }
- if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) {
- levels += 1;
- } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) {
- levels -= 1;
- }
- i += 1;
- }
- return i - 1;
- };
-
- Rewriter.prototype.removeLeadingNewlines = function() {
- var i, tag, _i, _len, _ref;
- _ref = this.tokens;
- for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
- tag = _ref[i][0];
- if (tag !== 'TERMINATOR') {
- break;
- }
- }
- if (i) {
- return this.tokens.splice(0, i);
- }
- };
-
- Rewriter.prototype.removeMidExpressionNewlines = function() {
- return this.scanTokens(function(token, i, tokens) {
- var _ref;
- if (!(token[0] === 'TERMINATOR' && (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0))) {
- return 1;
- }
- tokens.splice(i, 1);
- return 0;
- });
- };
-
- Rewriter.prototype.closeOpenCalls = function() {
- var action, condition;
- condition = function(token, i) {
- var _ref;
- return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')';
- };
- action = function(token, i) {
- return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END';
- };
- return this.scanTokens(function(token, i) {
- if (token[0] === 'CALL_START') {
- this.detectEnd(i + 1, condition, action);
- }
- return 1;
- });
- };
-
- Rewriter.prototype.closeOpenIndexes = function() {
- var action, condition;
- condition = function(token, i) {
- var _ref;
- return (_ref = token[0]) === ']' || _ref === 'INDEX_END';
- };
- action = function(token, i) {
- return token[0] = 'INDEX_END';
- };
- return this.scanTokens(function(token, i) {
- if (token[0] === 'INDEX_START') {
- this.detectEnd(i + 1, condition, action);
- }
- return 1;
- });
- };
-
- Rewriter.prototype.addImplicitBraces = function() {
- var action, condition, sameLine, stack, start, startIndent, startsLine;
- stack = [];
- start = null;
- startsLine = null;
- sameLine = true;
- startIndent = 0;
- condition = function(token, i) {
- var one, tag, three, two, _ref, _ref1;
- _ref = this.tokens.slice(i + 1, (i + 3) + 1 || 9e9), one = _ref[0], two = _ref[1], three = _ref[2];
- if ('HERECOMMENT' === (one != null ? one[0] : void 0)) {
- return false;
- }
- tag = token[0];
- if (__indexOf.call(LINEBREAKS, tag) >= 0) {
- sameLine = false;
- }
- return (((tag === 'TERMINATOR' || tag === 'OUTDENT') || (__indexOf.call(IMPLICIT_END, tag) >= 0 && sameLine)) && ((!startsLine && this.tag(i - 1) !== ',') || !((two != null ? two[0] : void 0) === ':' || (one != null ? one[0] : void 0) === '@' && (three != null ? three[0] : void 0) === ':'))) || (tag === ',' && one && ((_ref1 = one[0]) !== 'IDENTIFIER' && _ref1 !== 'NUMBER' && _ref1 !== 'STRING' && _ref1 !== '@' && _ref1 !== 'TERMINATOR' && _ref1 !== 'OUTDENT'));
- };
- action = function(token, i) {
- var tok;
- tok = this.generate('}', '}', token[2]);
- return this.tokens.splice(i, 0, tok);
- };
- return this.scanTokens(function(token, i, tokens) {
- var ago, idx, prevTag, tag, tok, value, _ref, _ref1;
- if (_ref = (tag = token[0]), __indexOf.call(EXPRESSION_START, _ref) >= 0) {
- stack.push([(tag === 'INDENT' && this.tag(i - 1) === '{' ? '{' : tag), i]);
- return 1;
- }
- if (__indexOf.call(EXPRESSION_END, tag) >= 0) {
- start = stack.pop();
- return 1;
- }
- if (!(tag === ':' && ((ago = this.tag(i - 2)) === ':' || ((_ref1 = stack[stack.length - 1]) != null ? _ref1[0] : void 0) !== '{'))) {
- return 1;
- }
- sameLine = true;
- stack.push(['{']);
- idx = ago === '@' ? i - 2 : i - 1;
- while (this.tag(idx - 2) === 'HERECOMMENT') {
- idx -= 2;
- }
- prevTag = this.tag(idx - 1);
- startsLine = !prevTag || (__indexOf.call(LINEBREAKS, prevTag) >= 0);
- value = new String('{');
- value.generated = true;
- tok = this.generate('{', value, token[2]);
- tokens.splice(idx, 0, tok);
- this.detectEnd(i + 2, condition, action);
- return 2;
- });
- };
-
- Rewriter.prototype.addImplicitParentheses = function() {
- var action, condition, noCall, seenControl, seenSingle;
- noCall = seenSingle = seenControl = false;
- condition = function(token, i) {
- var post, tag, _ref, _ref1;
- tag = token[0];
- if (!seenSingle && token.fromThen) {
- return true;
- }
- if (tag === 'IF' || tag === 'ELSE' || tag === 'CATCH' || tag === '->' || tag === '=>' || tag === 'CLASS') {
- seenSingle = true;
- }
- if (tag === 'IF' || tag === 'ELSE' || tag === 'SWITCH' || tag === 'TRY' || tag === '=') {
- seenControl = true;
- }
- if ((tag === '.' || tag === '?.' || tag === '::') && this.tag(i - 1) === 'OUTDENT') {
- return true;
- }
- return !token.generated && this.tag(i - 1) !== ',' && (__indexOf.call(IMPLICIT_END, tag) >= 0 || (tag === 'INDENT' && !seenControl)) && (tag !== 'INDENT' || (((_ref = this.tag(i - 2)) !== 'CLASS' && _ref !== 'EXTENDS') && (_ref1 = this.tag(i - 1), __indexOf.call(IMPLICIT_BLOCK, _ref1) < 0) && !((post = this.tokens[i + 1]) && post.generated && post[0] === '{')));
- };
- action = function(token, i) {
- return this.tokens.splice(i, 0, this.generate('CALL_END', ')', token[2]));
- };
- return this.scanTokens(function(token, i, tokens) {
- var callObject, current, next, prev, tag, _ref, _ref1, _ref2;
- tag = token[0];
- if (tag === 'CLASS' || tag === 'IF' || tag === 'FOR' || tag === 'WHILE') {
- noCall = true;
- }
- _ref = tokens.slice(i - 1, (i + 1) + 1 || 9e9), prev = _ref[0], current = _ref[1], next = _ref[2];
- callObject = !noCall && tag === 'INDENT' && next && next.generated && next[0] === '{' && prev && (_ref1 = prev[0], __indexOf.call(IMPLICIT_FUNC, _ref1) >= 0);
- seenSingle = false;
- seenControl = false;
- if (__indexOf.call(LINEBREAKS, tag) >= 0) {
- noCall = false;
- }
- if (prev && !prev.spaced && tag === '?') {
- token.call = true;
- }
- if (token.fromThen) {
- return 1;
- }
- if (!(callObject || (prev != null ? prev.spaced : void 0) && (prev.call || (_ref2 = prev[0], __indexOf.call(IMPLICIT_FUNC, _ref2) >= 0)) && (__indexOf.call(IMPLICIT_CALL, tag) >= 0 || !(token.spaced || token.newLine) && __indexOf.call(IMPLICIT_UNSPACED_CALL, tag) >= 0))) {
- return 1;
- }
- tokens.splice(i, 0, this.generate('CALL_START', '(', token[2]));
- this.detectEnd(i + 1, condition, action);
- if (prev[0] === '?') {
- prev[0] = 'FUNC_EXIST';
- }
- return 2;
- });
- };
-
- Rewriter.prototype.addImplicitIndentation = function() {
- var action, condition, indent, outdent, starter;
- starter = indent = outdent = null;
- condition = function(token, i) {
- var _ref;
- return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'ELSE' && (starter !== 'IF' && starter !== 'THEN'));
- };
- action = function(token, i) {
- return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent);
- };
- return this.scanTokens(function(token, i, tokens) {
- var tag, _ref, _ref1;
- tag = token[0];
- if (tag === 'TERMINATOR' && this.tag(i + 1) === 'THEN') {
- tokens.splice(i, 1);
- return 0;
- }
- if (tag === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') {
- tokens.splice.apply(tokens, [i, 0].concat(__slice.call(this.indentation(token))));
- return 2;
- }
- if (tag === 'CATCH' && ((_ref = this.tag(i + 2)) === 'OUTDENT' || _ref === 'TERMINATOR' || _ref === 'FINALLY')) {
- tokens.splice.apply(tokens, [i + 2, 0].concat(__slice.call(this.indentation(token))));
- return 4;
- }
- if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) {
- starter = tag;
- _ref1 = this.indentation(token, true), indent = _ref1[0], outdent = _ref1[1];
- if (starter === 'THEN') {
- indent.fromThen = true;
- }
- tokens.splice(i + 1, 0, indent);
- this.detectEnd(i + 2, condition, action);
- if (tag === 'THEN') {
- tokens.splice(i, 1);
- }
- return 1;
- }
- return 1;
- });
- };
-
- Rewriter.prototype.tagPostfixConditionals = function() {
- var action, condition, original;
- original = null;
- condition = function(token, i) {
- var _ref;
- return (_ref = token[0]) === 'TERMINATOR' || _ref === 'INDENT';
- };
- action = function(token, i) {
- if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) {
- return original[0] = 'POST_' + original[0];
- }
- };
- return this.scanTokens(function(token, i) {
- if (token[0] !== 'IF') {
- return 1;
- }
- original = token;
- this.detectEnd(i + 1, condition, action);
- return 1;
- });
- };
-
- Rewriter.prototype.indentation = function(token, implicit) {
- var indent, outdent;
- if (implicit == null) {
- implicit = false;
- }
- indent = ['INDENT', 2, token[2]];
- outdent = ['OUTDENT', 2, token[2]];
- if (implicit) {
- indent.generated = outdent.generated = true;
- }
- return [indent, outdent];
- };
-
- Rewriter.prototype.generate = function(tag, value, line) {
- var tok;
- tok = [tag, value, line];
- tok.generated = true;
- return tok;
- };
-
- Rewriter.prototype.tag = function(i) {
- var _ref;
- return (_ref = this.tokens[i]) != null ? _ref[0] : void 0;
- };
-
- return Rewriter;
-
- })();
-
- BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']];
-
- exports.INVERSES = INVERSES = {};
-
- EXPRESSION_START = [];
-
- EXPRESSION_END = [];
-
- for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) {
- _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1];
- EXPRESSION_START.push(INVERSES[rite] = left);
- EXPRESSION_END.push(INVERSES[left] = rite);
- }
-
- EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END);
-
- IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS'];
-
- IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'UNARY', 'SUPER', '@', '->', '=>', '[', '(', '{', '--', '++'];
-
- IMPLICIT_UNSPACED_CALL = ['+', '-'];
-
- IMPLICIT_BLOCK = ['->', '=>', '{', '[', ','];
-
- IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR'];
-
- SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN'];
-
- SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN'];
-
- LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT'];
-
-}).call(this);
-}, "coffee-script/scope": function(exports, require, module) {// Generated by CoffeeScript 1.3.1
-(function() {
- var Scope, extend, last, _ref;
-
- _ref = require('./helpers'), extend = _ref.extend, last = _ref.last;
-
- exports.Scope = Scope = (function() {
-
- Scope.name = 'Scope';
-
- Scope.root = null;
-
- function Scope(parent, expressions, method) {
- this.parent = parent;
- this.expressions = expressions;
- this.method = method;
- this.variables = [
- {
- name: 'arguments',
- type: 'arguments'
- }
- ];
- this.positions = {};
- if (!this.parent) {
- Scope.root = this;
- }
- }
-
- Scope.prototype.add = function(name, type, immediate) {
- if (this.shared && !immediate) {
- return this.parent.add(name, type, immediate);
- }
- if (Object.prototype.hasOwnProperty.call(this.positions, name)) {
- return this.variables[this.positions[name]].type = type;
- } else {
- return this.positions[name] = this.variables.push({
- name: name,
- type: type
- }) - 1;
- }
- };
-
- Scope.prototype.find = function(name, options) {
- if (this.check(name, options)) {
- return true;
- }
- this.add(name, 'var');
- return false;
- };
-
- Scope.prototype.parameter = function(name) {
- if (this.shared && this.parent.check(name, true)) {
- return;
- }
- return this.add(name, 'param');
- };
-
- Scope.prototype.check = function(name, immediate) {
- var found, _ref1;
- found = !!this.type(name);
- if (found || immediate) {
- return found;
- }
- return !!((_ref1 = this.parent) != null ? _ref1.check(name) : void 0);
- };
-
- Scope.prototype.temporary = function(name, index) {
- if (name.length > 1) {
- return '_' + name + (index > 1 ? index - 1 : '');
- } else {
- return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a');
- }
- };
-
- Scope.prototype.type = function(name) {
- var v, _i, _len, _ref1;
- _ref1 = this.variables;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- v = _ref1[_i];
- if (v.name === name) {
- return v.type;
- }
- }
- return null;
- };
-
- Scope.prototype.freeVariable = function(name, reserve) {
- var index, temp;
- if (reserve == null) {
- reserve = true;
- }
- index = 0;
- while (this.check((temp = this.temporary(name, index)))) {
- index++;
- }
- if (reserve) {
- this.add(temp, 'var', true);
- }
- return temp;
- };
-
- Scope.prototype.assign = function(name, value) {
- this.add(name, {
- value: value,
- assigned: true
- }, true);
- return this.hasAssignments = true;
- };
-
- Scope.prototype.hasDeclarations = function() {
- return !!this.declaredVariables().length;
- };
-
- Scope.prototype.declaredVariables = function() {
- var realVars, tempVars, v, _i, _len, _ref1;
- realVars = [];
- tempVars = [];
- _ref1 = this.variables;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- v = _ref1[_i];
- if (v.type === 'var') {
- (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name);
- }
- }
- return realVars.sort().concat(tempVars.sort());
- };
-
- Scope.prototype.assignedVariables = function() {
- var v, _i, _len, _ref1, _results;
- _ref1 = this.variables;
- _results = [];
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- v = _ref1[_i];
- if (v.type.assigned) {
- _results.push("" + v.name + " = " + v.type.value);
- }
- }
- return _results;
- };
-
- return Scope;
-
- })();
-
-}).call(this);
-}, "command_line": function(exports, require, module) {// Generated by CoffeeScript 1.3.3
-(function() {
- var engine, fs, getVersionNumber, printUsage, view;
-
- fs = require("fs");
-
- engine = require('../lib/engine').engine;
-
- view = require('../lib/view').view;
-
- printUsage = function() {
- console.log(" Usage: toffee [-c] input.toffee\n\n -c == output to CoffeeScript (instead of JS)\n\n TODO: make a more useful command line tool.");
- return process.exit(1);
- };
-
- getVersionNumber = function() {
- return JSON.parse(fs.readFileSync("" + __dirname + "/../package.json", "utf8")).version;
- };
-
- exports.run = function() {
- var args, coffee, e, fname, source, v;
- e = new engine();
- args = process.argv.slice(2);
- if (args.length === 2) {
- coffee = true;
- if (args[0] !== "-c") {
- printUsage();
- }
- } else if (args.length !== 1) {
- printUsage();
- }
- fname = args.slice(-1)[0];
- source = fs.readFileSync(fname, "utf8");
- v = new view(source, {
- fileName: fname
- });
- if (coffee) {
- return console.log(v._toCoffee());
- } else {
- return console.log(v._toJavaScript());
- }
- };
-
-}).call(this);
-}, "consts": function(exports, require, module) {// Generated by CoffeeScript 1.3.3
-(function() {
-
- exports.states = {
- TOFFEE: 1,
- COFFEE: 2
- };
-
- exports.TAB_SPACES = 2;
-
-}).call(this);
-}, "engine": function(exports, require, module) {// Generated by CoffeeScript 1.3.3
-(function() {
- var engine, fs, path, states, util, utils, view,
- __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
-
- view = require('./view').view;
-
- states = require('./consts').states;
-
- utils = require('./utils');
-
- fs = require('fs');
-
- path = require('path');
-
- util = require('util');
-
- engine = (function() {
-
- function engine(options) {
- this._fn_partial = __bind(this._fn_partial, this);
-
- this._fn_snippet = __bind(this._fn_snippet, this);
-
- this._inlineInclude = __bind(this._inlineInclude, this);
-
- this.run = __bind(this.run, this);
- options = options || {};
- this.verbose = options.verbose || false;
- this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true;
- this.viewCache = {};
- }
-
- engine.prototype._log = function(o) {
- var _ref;
- if (this.verbose) {
- if ((_ref = typeof o) === "string" || _ref === "number" || _ref === "boolean") {
- return console.log("toffee: " + o);
- } else {
- return console.log("toffee: " + (util.inspect(o)));
- }
- }
- };
-
- engine.prototype.run = function(filename, options, cb) {
- /*
- "options" contains the pub vars and may contain special items:
- layout: path to a template expecting a body var (express 2.x style, but for use with express 3.x)
- __toffee.dir: path to look relative to
- __toffee.parent: parent file
- __toffee.noInheritance: if true, don't pass variables through unless explicitly passed
- __toffee.autoEscape: if set as false, don't escape output of #{} vars by default
- */
-
- var err, res, _ref, _ref1, _ref2, _ref3;
- _ref = this.runSync(filename, options), err = _ref[0], res = _ref[1];
- if (err && this.prettyPrintErrors) {
- _ref1 = [null, err], err = _ref1[0], res = _ref1[1];
- }
- if ((!err) && (options != null ? options.layout : void 0)) {
- options.body = res;
- _ref2 = this.runSync(options.layout, options), err = _ref2[0], res = _ref2[1];
- if (err && this.prettyPrintErrors) {
- _ref3 = [null, err], err = _ref3[0], res = _ref3[1];
- }
- }
- return cb(err, res);
- };
-
- engine.prototype.runSync = function(filename, options) {
- /*
- "options" the same as run() above
- */
-
- var err, pwd, realpath, res, start_time, v, _ref, _ref1,
- _this = this;
- start_time = Date.now();
- options = options || {};
- options.__toffee = options.__toffee || {};
- options.__toffee.dir = options.__toffee.dir || process.cwd();
- filename = filename[0] !== "/" ? "" + options.__toffee.dir + "/" + filename : filename;
- realpath = path.normalize(filename);
- pwd = path.dirname(realpath);
- v = this.viewCache[realpath] || this._loadCacheAndMonitor(realpath, options);
- if (v) {
- options.__toffee.parent = realpath;
- options.partial = options.partial || function(fname, lvars) {
- return _this._fn_partial(fname, lvars, realpath, options);
- };
- options.snippet = options.snippet || function(fname, lvars) {
- return _this._fn_snippet(fname, lvars, realpath, options);
- };
- options.print = options.print || function(txt) {
- return _this._fn_print(txt, options);
- };
- if (!(options.console != null)) {
- options.console = {
- log: console.log
- };
- }
- _ref = v.run(options), err = _ref[0], res = _ref[1];
- } else {
- _ref1 = ["Couldn't load " + realpath, null], err = _ref1[0], res = _ref1[1];
- }
- this._log("" + realpath + " run in " + (Date.now() - start_time) + "ms");
- return [err, res];
- };
-
- engine.prototype._inlineInclude = function(filename, local_vars, parent_realpath, parent_options) {
- var err, k, options, res, v, _ref;
- options = local_vars || {};
- options.__toffee = options.__toffee || {};
- options.__toffee.dir = path.dirname(parent_realpath);
- options.__toffee.parent = parent_realpath;
- if (!options.__toffee.noInheritance) {
- for (k in parent_options) {
- v = parent_options[k];
- if (!((local_vars != null ? local_vars[k] : void 0) != null)) {
- if (!(k === "print" || k === "partial" || k === "snippet" || k === "layout" || k === "__toffee")) {
- options[k] = v;
- }
- }
- }
- }
- _ref = this.runSync(filename, options), err = _ref[0], res = _ref[1];
- return err || res;
- };
-
- engine.prototype._fn_snippet = function(fname, lvars, realpath, options) {
- lvars = lvars != null ? lvars : {};
- lvars.__toffee = lvars.__toffee || {};
- lvars.__toffee.noInheritance = true;
- return this._inlineInclude(fname, lvars, realpath, options);
- };
-
- engine.prototype._fn_partial = function(fname, lvars, realpath, options) {
- return this._inlineInclude(fname, lvars, realpath, options);
- };
-
- engine.prototype._fn_print = function(txt, options) {
- if (options.__toffee.state === states.COFFEE) {
- options.__toffee.out.push(txt);
- return '';
- } else {
- return txt;
- }
- };
-
- engine.prototype._loadCacheAndMonitor = function(filename, options) {
- var txt, v, view_options, _ref;
- try {
- txt = fs.readFileSync(filename, 'utf8');
- } catch (e) {
- txt = "Error: Could not read " + filename;
- if (((_ref = options.__toffee) != null ? _ref.parent : void 0) != null) {
- txt += " requested in " + options.__toffee.parent;
- }
- }
- view_options = {
- fileName: filename,
- verbose: this.verbose,
- prettyPrintErrors: this.prettyPrintErrors
- };
- v = new view(txt, view_options);
- this.viewCache[filename] = v;
- this._monitorForChanges(filename, options);
- return v;
- };
-
- engine.prototype._monitorForChanges = function(filename, options) {
- /*
- we must continuously unwatch/rewatch because some editors/systems invoke a "rename"
- event and we'll end up following the wrong, old 'file' as a new one
- is dropped in its place.
- */
-
- var fsw,
- _this = this;
- fsw = null;
- return fsw = fs.watch(filename, {
- persistent: true
- }, function(change) {
- fsw.close();
- _this._log("Got an fs.watch hit on " + filename);
- return fs.readFile(filename, 'utf8', function(err, txt) {
- var v, view_options, _ref;
- _this._monitorForChanges(filename, options);
- if (txt !== _this.viewCache[filename].txt) {
- if (err) {
- txt = "Error: Could not read " + filename + " after fs.watch() hit.";
- if (((_ref = options.__toffee) != null ? _ref.parent : void 0) != null) {
- txt += " requested in " + options.__toffee.parent;
- }
- }
- view_options = {
- fileName: filename,
- verbose: _this.verbose,
- prettyPrintErrors: _this.prettyPrintErrors,
- cb: function(v) {
- _this._log("" + filename + " updated and ready");
- return _this.viewCache[filename] = v;
- }
- };
- return v = new view(txt, view_options);
- }
- });
- });
- };
-
- return engine;
-
- })();
-
- exports.engine = engine;
-
-}).call(this);
-}, "errorHandler": function(exports, require, module) {// Generated by CoffeeScript 1.3.3
-(function() {
- var eh, errorTypes, path, toffeeError, util, _ppEscape;
-
- path = require("path");
-
- util = require("util");
-
- errorTypes = exports.errorTypes = {
- PARSER: 0,
- STR_INTERPOLATE: 1,
- COFFEE_COMPILE: 2,
- RUNTIME: 3
- };
-
- toffeeError = (function() {
-
- function toffeeError(view, err_type, e) {
- this.errType = err_type;
- this.view = view;
- this.e = e;
- this.toffeeSrc = view.txt;
- switch (this.errType) {
- case errorTypes.PARSER:
- this.offensiveSrc = this.toffeeSrc;
- break;
- case errorTypes.STR_INTERPOLATE:
- this.offensiveSrc = this.toffeeSrc;
- break;
- case errorTypes.COFFEE_COMPILE:
- this.offensiveSrc = this.view.coffeeScript;
- break;
- case errorTypes.RUNTIME:
- this.offensiveSrc = this.view.javaScript;
- }
- this.toffeeSrcLines = this.toffeeSrc.split("\n");
- this.offensiveSrcLines = this.offensiveSrc.split("\n");
- }
-
- toffeeError.prototype.getConvertedError = function() {
- /* --------------------------------------
- returns a JS style error, but with some extras
- {
- stack: array of lines
- message: error message
- line_range: line range in the toffee file
- filename: filename, if available; or null
- ...etc...
- }
- ------------------------------------------
- */
-
- var line, res, _ref;
- res = {
- stack: [],
- message: "",
- type: this.errType,
- full_path: this.view.fileName,
- dir_name: path.dirname(this.view.fileName),
- file: path.basename(this.view.fileName),
- line_range: [0, 0]
- };
- if (((_ref = this.e) != null ? _ref.message : void 0) != null) {
- res.message = this.e.message;
- }
- switch (this.errType) {
- case errorTypes.PARSER:
- line = this._extractOffensiveLineNo(this.e.message, /on line ([0-9]+)/);
- res.line_range = [line, line + 1];
- break;
- case errorTypes.STR_INTERPOLATE:
- res.line_range = [this.e.relayed_line_range[0], this.e.relayed_line_range[1]];
- res.message = res.message.replace('starting on line NaN', this._lineRangeToPhrase(res.line_range));
- res.message = res.message.replace('missing }', 'unclosed `\#{}`');
- break;
- case errorTypes.COFFEE_COMPILE:
- line = this._extractOffensiveLineNo(this.e.message, /on line ([0-9]+)/);
- res.line_range = this._convertOffensiveLineToToffeeRange(line);
- res.message = res.message.replace(/on line [0-9]+/, this._lineRangeToPhrase(res.line_range));
- break;
- case errorTypes.RUNTIME:
- if (this.e.stack) {
- res.stack = this.e.stack.split("\n");
- this._convertRuntimeStackLines(res);
- }
- }
- return res;
- };
-
- toffeeError.prototype._convertRuntimeStackLines = function(converted_err) {
- /*
- a little more complicated, so extracted. Returns an array
- of dictionaries where there's extra info on each line in the stack.
- */
-
- var at_pub_call, hit_pub_yet, i, in_src_file, line, lineno, lrange, m, rxx_inline, rxx_pub, stack, _i, _len, _results;
- hit_pub_yet = false;
- stack = converted_err.stack;
- _results = [];
- for (i = _i = 0, _len = stack.length; _i < _len; i = ++_i) {
- line = stack[i];
- rxx_pub = RegExp("Object[\\.]" + this.view.identifier + "[\\s]\\(undefined\\:([0-9]+)\\:[0-9]+");
- m = line.match(rxx_pub);
- in_src_file = false;
- lrange = [null, null];
- at_pub_call = false;
- if ((m != null ? m.length : void 0) >= 2) {
- line = line.replace("undefined", converted_err.full_path);
- lineno = this._extractOffensiveLineNo(line, /([0-9]+)\:[0-9]+/);
- lrange = this._convertOffensiveLineToToffeeRange(lineno);
- line = line.replace(/\:[0-9]+\:[0-9]+/, "");
- hit_pub_yet = true;
- in_src_file = true;
- at_pub_call = true;
- }
- rxx_inline = /at[\s]undefined\:([0-9]+)\:[0-9]+/;
- m = line.match(rxx_inline);
- if ((m != null ? m.length : void 0) >= 2) {
- line = line.replace("undefined", converted_err.full_path);
- lineno = this._extractOffensiveLineNo(line, /([0-9]+)\:[0-9]+/);
- lrange = this._convertOffensiveLineToToffeeRange(lineno);
- line = line.replace(/\:[0-9]+\:[0-9]+/, "");
- in_src_file = true;
- }
- stack[i] = {
- line: line,
- above_pub_call: !hit_pub_yet,
- at_pub_call: at_pub_call,
- in_src_file: in_src_file,
- line_range: lrange
- };
- if (stack[i].line_range[0] && !converted_err.line_range[0]) {
- _results.push(converted_err.line_range = stack[i].line_range);
- } else {
- _results.push(void 0);
- }
- }
- return _results;
- };
-
- toffeeError.prototype.getPrettyPrintText = function() {
- /*
- returns a TEXT only blob explaining the error
- */
-
- var cerr, count, header, i, item, res, _i, _len, _ref, _ref1;
- cerr = this.getConvertedError();
- if (cerr.type === errorTypes.RUNTIME) {
- header = cerr.message;
- } else {
- header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message;
- }
- res = "ERROR\n=====\n" + header;
- if ((_ref = cerr.stack) != null ? _ref.length : void 0) {
- res += "\n\nSTACK\n=====\n";
- count = 0;
- _ref1 = cerr.stack;
- for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) {
- item = _ref1[i];
- if (i === 0) {
- res += "" + (count++) + " " + item.line;
- } else if (item.in_src_file && (item.above_pub_call || item.at_pub_call)) {
- res += "" + (count++) + " [" + (this._lineRangeToPhrase(item.line_range)) + "] " + cerr.dir_name + "/" + cerr.file;
- } else if (item.in_src_file) {
- continue;
- } else {
- res += "" + (count++) + item.line;
- }
- if (i < cerr.stack.length - 1) {
- res += "\n";
- }
- }
- }
- res += "\n";
- return res;
- };
-
- toffeeError.prototype.getPrettyPrint = function() {
- /*
- returns an HTML blob explaining the error
- with lines highlighted
- */
-
- var cerr, count, extra, header, i, item, j, line, padding, padding_len, res, _i, _j, _len, _ref, _ref1, _ref2, _ref3, _ref4;
- cerr = this.getConvertedError();
- res = "";
- if (cerr.type === 234432) {
- header = cerr.message;
- } else {
- header = "" + cerr.dir_name + "/" + cerr.file + " : " + cerr.message + " ";
- }
- res += "\n \n
" + header + " \n \n
\n \n
";
- if ((_ref = cerr.stack) != null ? _ref.length : void 0) {
- res += "
";
- count = 0;
- _ref1 = cerr.stack;
- for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) {
- item = _ref1[i];
- if (i === 0) {
- res += "
" + (count++) + " " + item.line + "
";
- } else if (item.in_src_file && (item.above_pub_call || item.at_pub_call)) {
- res += "
" + (count++) + " [" + (this._lineRangeToPhrase(item.line_range)) + "] " + cerr.dir_name + "/" + cerr.file + "
";
- } else if (item.in_src_file) {
- continue;
- } else {
- res += "
" + (count++) + item.line + "
";
- }
- }
- res += "
";
- }
- for (i = _j = _ref2 = cerr.line_range[0] - 3, _ref3 = cerr.line_range[1] + 1; _ref2 <= _ref3 ? _j < _ref3 : _j > _ref3; i = _ref2 <= _ref3 ? ++_j : --_j) {
- if ((i < 0) || i > this.toffeeSrcLines.length - 1) {
- continue;
- }
- line = _ppEscape(this.toffeeSrcLines[i]);
- padding_len = 5 - ("" + (i + 1)).length;
- padding = ((function() {
- var _k, _results;
- _results = [];
- for (j = _k = 0; 0 <= padding_len ? _k < padding_len : _k > padding_len; j = 0 <= padding_len ? ++_k : --_k) {
- _results.push(" ");
- }
- return _results;
- })()).join("");
- if ((cerr.line_range[0] <= (_ref4 = i + 1) && _ref4 < cerr.line_range[1])) {
- extra = "
";
- } else {
- extra = "";
- }
- res += "" + extra + "\n" + (i + 1) + ": " + padding + " " + line + " ";
- }
- res += " \n \n\n
";
- return res;
- };
-
- toffeeError.prototype._lineRangeToPhrase = function(lrange) {
- if (lrange[0] >= lrange[1] - 1) {
- return "on line " + lrange[0];
- } else {
- return "between lines " + lrange[0] + " and " + (lrange[1] - 1);
- }
- };
-
- toffeeError.prototype._extractOffensiveLineNo = function(msg, rxx) {
- var m;
- m = msg.match(rxx);
- if (!((m != null ? m.length : void 0) >= 2)) {
- return null;
- }
- return parseInt(m[1]);
- };
-
- toffeeError.prototype._convertOffensiveLineToToffeeRange = function(lineno) {
- /*
- Given the error line in a converted file, hunts for surrounding
- __toffee.lineno calls and returns a pair array with the error position
- range in the original toffee file.
- */
-
- var next, next_matches, ol, prev, prev_matches, res, tl;
- ol = this.offensiveSrcLines;
- tl = this.toffeeSrcLines;
- if ((!(lineno != null)) || isNaN(lineno)) {
- return [1, tl.length];
- }
- prev = ol.slice(0, lineno).join("\n");
- next = ol.slice(lineno).join("\n");
- prev_matches = prev.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g);
- next_matches = next.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g);
- res = [1, tl.length];
- if (prev_matches != null ? prev_matches.length : void 0) {
- res[0] = parseInt(prev_matches[prev_matches.length - 1].match(/[0-9]+/)[0]);
- }
- if (next_matches != null ? next_matches.length : void 0) {
- res[1] = parseInt(next_matches[0].match(/[0-9]+/)[0]);
- }
- return res;
- };
-
- return toffeeError;
-
- })();
-
- exports.toffeeError = toffeeError;
-
- eh = exports.errorHandler = {
- generateRuntimeError: function(view, e) {
- /*
- e: the error caught when running
- */
-
- var after, after_matches, before, msg, new_msg, prev_matches, res, search, src, src_lines, stack, txt_lines;
- src = view.javaScript;
- msg = e.message;
- stack = e.stack;
- res = {
- src_line: 0,
- toffee_line_range: [0, 1],
- original_msg: msg,
- converted_msg: msg
- };
- search = stack.match(/pub\ \(undefined\:([0-9]+):[0-9]+/);
- if (!((search != null ? search.length : void 0) >= 2)) {
- return res;
- }
- res.src_line = search[1];
- src_lines = src.split('\n');
- txt_lines = view.txt.split('\n');
- before = src_lines.slice(0, res.src_line).join("\n");
- after = src_lines.slice(res.src_line).join("\n");
- prev_matches = before.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g);
- after_matches = after.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g);
- if (prev_matches != null ? prev_matches.length : void 0) {
- res.toffee_line_range[0] = parseInt(prev_matches[prev_matches.length - 1].match(/[0-9]+/)[0]);
- } else {
- res.toffee_line_range[0] = 1;
- }
- if (after_matches != null ? after_matches.length : void 0) {
- res.toffee_line_range[1] = parseInt(after_matches[0].match(/[0-9]+/)[0]);
- } else {
- res.toffee_line_range[1] = txt_lines.length;
- }
- res.offensive_lines = txt_lines.slice(res.toffee_line_range[0] - 1, res.toffee_line_range[1] - 1);
- if (res.toffee_line_range[0] === res.toffee_line_range[1] - 1) {
- new_msg = "on line " + res.toffee_line_range[0];
- } else {
- new_msg = "between lines " + res.toffee_line_range[0] + " and " + res.toffee_line_range[1];
- }
- res.converted_msg = res.original_msg + " " + new_msg;
- if (view.fileName) {
- res.converted_msg = "" + view.fileName + ": " + res.converted_msg;
- }
- return res;
- },
- generateCompileToJsError: function(view, e) {
- /*
- e: the error caught when compiling
- */
-
- var msg, new_msg, res, search, src;
- src = view.coffeeScript;
- msg = e.message;
- res = {
- src_line: 0,
- toffee_line_range: [0, 1],
- original_msg: msg,
- converted_msg: msg
- };
- search = msg.match(/on line ([0-9]+)/);
- if ((search != null ? search.length : void 0) >= 2) {
- res.src_line = search[1];
- res.toffee_line_range = this._convertSrcLineToToffeeRange(view.coffeeScript, res.src_line);
- res.offensive_lines = txt_lines.slice(res.toffee_line_range[0] - 1, res.toffee_line_range[1] - 1);
- if (res.toffee_line_range[0] === res.toffee_line_range[1] - 1) {
- new_msg = "on line " + res.toffee_line_range[0];
- } else {
- new_msg = "between lines " + res.toffee_line_range[0] + " and " + res.toffee_line_range[1];
- }
- res.converted_msg = res.original_msg.replace("on line " + res.src_line, new_msg);
- if (view.fileName) {
- res.converted_msg = "" + view.fileName + ": " + res.converted_msg;
- }
- }
- return res;
- },
- prettyPrintError: function(view) {
- var i, line, lineno, padding, padding_len, res, txt_lines, _i, _ref, _ref1;
- if (!view.error) {
- return "";
- } else {
- res = "";
- res += "
" + (eh._ppEscape(view.error.converted_msg)) + " ";
- res += "\n
--------
";
- res += "\n
";
- txt_lines = view.txt.split('\n');
- for (i = _i = _ref = view.error.toffee_line_range[0] - 3, _ref1 = view.error.toffee_line_range[1] + 1; _ref <= _ref1 ? _i < _ref1 : _i > _ref1; i = _ref <= _ref1 ? ++_i : --_i) {
- if ((i < 0) || i > txt_lines.length - 1) {
- continue;
- }
- line = eh._ppEscape(txt_lines[i]);
- lineno = i + 1;
- padding_len = 5 - ("" + lineno).length;
- padding = ((function() {
- var _j, _results;
- _results = [];
- for (i = _j = 0; 0 <= padding_len ? _j < padding_len : _j > padding_len; i = 0 <= padding_len ? ++_j : --_j) {
- _results.push(" ");
- }
- return _results;
- })()).join("");
- res += "\n" + lineno + ": " + padding + " " + line + " ";
- }
- res += "\n
";
- res += "\n
";
- return res;
- }
- }
- };
-
- _ppEscape = function(txt) {
- var i, m;
- txt = txt.replace(/&/g, '&').replace(/ _ref; i = 0 <= _ref ? ++_i : --_i) {
- _results.push(" ");
- }
- return _results;
- })()).join(""));
- return txt;
- };
-
-}).call(this);
-}, "toffee_lang": function(exports, require, module) {/* Jison generated parser */
-var toffee_lang = (function(){
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"starter":3,"toffee_zone":4,"EOF":5,"toffee_code":6,"flip_to_coffee":7,"flip_to_toffeecomment":8,"START_TOFFEE_COMMENT":9,"code":10,"END_TOFFEE_COMMENT":11,"START_COFFEE":12,"coffee_zone":13,"END_COFFEE":14,"coffee_code":15,"flip_to_toffee":16,"START_TOFFEE":17,"END_TOFFEE":18,"START_INDENTED_TOFFEE":19,"CODE":20,"$accept":0,"$end":1},
-terminals_: {2:"error",5:"EOF",9:"START_TOFFEE_COMMENT",11:"END_TOFFEE_COMMENT",12:"START_COFFEE",14:"END_COFFEE",17:"START_TOFFEE",18:"END_TOFFEE",19:"START_INDENTED_TOFFEE",20:"CODE"},
-productions_: [0,[3,2],[4,1],[4,3],[4,2],[4,3],[4,2],[4,0],[8,3],[7,3],[13,1],[13,3],[13,2],[13,0],[16,3],[16,3],[6,1],[15,1],[10,1],[10,2]],
-performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; return this.$;
-break;
-case 2: this.$ = [$$[$0]];
-break;
-case 3: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]);
-break;
-case 4: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]);
-break;
-case 5: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2]);
-break;
-case 6: this.$ = $$[$0];
-break;
-case 7: this.$ = [];
-break;
-case 9: this.$ = ["COFFEE_ZONE", $$[$0-1]];
-break;
-case 10: this.$ = [$$[$0]];
-break;
-case 11: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]);
-break;
-case 12: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]);
-break;
-case 13: this.$ = [];
-break;
-case 14: this.$ = ["TOFFEE_ZONE", $$[$0-1]];
-break;
-case 15: this.$ = ["INDENTED_TOFFEE_ZONE", $$[$0-1]];
-break;
-case 16: this.$ = ["TOFFEE", $$[$0][0], $$[$0][1] ];
-break;
-case 17: this.$ = ["COFFEE", $$[$0][0], $$[$0][1] ];
-break;
-case 18: var ln = yylineno + 1 - $$[$0].split("\n").length + 1;
- this.$ = [$$[$0], ln];
-
-break;
-case 19: var c = $$[$0-1][0] + $$[$0];
- var ln = yylineno + 1 - c.split("\n").length + 1;
- this.$ = [c, ln];
-
-break;
-}
-},
-table: [{3:1,4:2,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],20:[1,9]},{1:[3]},{5:[1,10]},{5:[2,2],7:11,8:12,9:[1,8],12:[1,7],18:[2,2]},{4:13,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:14,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{5:[2,16],9:[2,16],12:[2,16],18:[2,16],20:[1,15]},{10:19,13:16,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{10:22,20:[1,9]},{5:[2,18],9:[2,18],11:[2,18],12:[2,18],14:[2,18],17:[2,18],18:[2,18],19:[2,18],20:[2,18]},{1:[2,1]},{4:23,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:24,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{5:[2,4],18:[2,4]},{5:[2,6],18:[2,6]},{5:[2,19],9:[2,19],11:[2,19],12:[2,19],14:[2,19],17:[2,19],18:[2,19],19:[2,19],20:[2,19]},{14:[1,25]},{14:[2,10],16:26,17:[1,20],19:[1,21]},{10:19,13:27,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{14:[2,17],17:[2,17],19:[2,17],20:[1,15]},{4:28,6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:29,6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{11:[1,30],20:[1,15]},{5:[2,3],18:[2,3]},{5:[2,5],18:[2,5]},{5:[2,9],9:[2,9],12:[2,9],18:[2,9],20:[2,9]},{10:19,13:31,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{14:[2,12]},{18:[1,32]},{18:[1,33]},{5:[2,8],9:[2,8],12:[2,8],18:[2,8],20:[2,8]},{14:[2,11]},{14:[2,14],17:[2,14],19:[2,14],20:[2,14]},{14:[2,15],17:[2,15],19:[2,15],20:[2,15]}],
-defaultActions: {10:[2,1],27:[2,12],31:[2,11]},
-parseError: function parseError(str, hash) {
- throw new Error(str);
-},
-parse: function parse(input) {
- var self = this,
- stack = [0],
- vstack = [null], // semantic value stack
- lstack = [], // location stack
- table = this.table,
- yytext = '',
- yylineno = 0,
- yyleng = 0,
- recovering = 0,
- TERROR = 2,
- EOF = 1;
-
- //this.reductionCount = this.shiftCount = 0;
-
- this.lexer.setInput(input);
- this.lexer.yy = this.yy;
- this.yy.lexer = this.lexer;
- if (typeof this.lexer.yylloc == 'undefined')
- this.lexer.yylloc = {};
- var yyloc = this.lexer.yylloc;
- lstack.push(yyloc);
-
- if (typeof this.yy.parseError === 'function')
- this.parseError = this.yy.parseError;
-
- function popStack (n) {
- stack.length = stack.length - 2*n;
- vstack.length = vstack.length - n;
- lstack.length = lstack.length - n;
- }
-
- function lex() {
- var token;
- token = self.lexer.lex() || 1; // $end = 1
- // if token isn't its numeric value, convert
- if (typeof token !== 'number') {
- token = self.symbols_[token] || token;
- }
- return token;
- }
-
- var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;
- while (true) {
- // retreive state number from top of stack
- state = stack[stack.length-1];
-
- // use default actions if available
- if (this.defaultActions[state]) {
- action = this.defaultActions[state];
- } else {
- if (symbol == null)
- symbol = lex();
- // read action for current state and first input
- action = table[state] && table[state][symbol];
- }
-
- // handle parse error
- _handle_error:
- if (typeof action === 'undefined' || !action.length || !action[0]) {
-
- if (!recovering) {
- // Report error
- expected = [];
- for (p in table[state]) if (this.terminals_[p] && p > 2) {
- expected.push("'"+this.terminals_[p]+"'");
- }
- var errStr = '';
- if (this.lexer.showPosition) {
- errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'";
- } else {
- errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
- (symbol == 1 /*EOF*/ ? "end of input" :
- ("'"+(this.terminals_[symbol] || symbol)+"'"));
- }
- this.parseError(errStr,
- {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
- }
-
- // just recovered from another error
- if (recovering == 3) {
- if (symbol == EOF) {
- throw new Error(errStr || 'Parsing halted.');
- }
-
- // discard current lookahead and grab another
- yyleng = this.lexer.yyleng;
- yytext = this.lexer.yytext;
- yylineno = this.lexer.yylineno;
- yyloc = this.lexer.yylloc;
- symbol = lex();
- }
-
- // try to recover from error
- while (1) {
- // check for error recovery rule in this state
- if ((TERROR.toString()) in table[state]) {
- break;
- }
- if (state == 0) {
- throw new Error(errStr || 'Parsing halted.');
- }
- popStack(1);
- state = stack[stack.length-1];
- }
-
- preErrorSymbol = symbol; // save the lookahead token
- symbol = TERROR; // insert generic error symbol as new lookahead
- state = stack[stack.length-1];
- action = table[state] && table[state][TERROR];
- recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
- }
-
- // this shouldn't happen, unless resolve defaults are off
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
- }
-
- switch (action[0]) {
-
- case 1: // shift
- //this.shiftCount++;
-
- stack.push(symbol);
- vstack.push(this.lexer.yytext);
- lstack.push(this.lexer.yylloc);
- stack.push(action[1]); // push state
- symbol = null;
- if (!preErrorSymbol) { // normal execution/no error
- yyleng = this.lexer.yyleng;
- yytext = this.lexer.yytext;
- yylineno = this.lexer.yylineno;
- yyloc = this.lexer.yylloc;
- if (recovering > 0)
- recovering--;
- } else { // error just occurred, resume old lookahead f/ before error
- symbol = preErrorSymbol;
- preErrorSymbol = null;
- }
- break;
-
- case 2: // reduce
- //this.reductionCount++;
-
- len = this.productions_[action[1]][1];
-
- // perform semantic action
- yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
- // default location, uses first token for firsts, last for lasts
- yyval._$ = {
- first_line: lstack[lstack.length-(len||1)].first_line,
- last_line: lstack[lstack.length-1].last_line,
- first_column: lstack[lstack.length-(len||1)].first_column,
- last_column: lstack[lstack.length-1].last_column
- };
- r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
-
- if (typeof r !== 'undefined') {
- return r;
- }
-
- // pop off stack
- if (len) {
- stack = stack.slice(0,-1*len*2);
- vstack = vstack.slice(0, -1*len);
- lstack = lstack.slice(0, -1*len);
- }
-
- stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- // goto new state = table[STATE][NONTERMINAL]
- newState = table[stack[stack.length-2]][stack[stack.length-1]];
- stack.push(newState);
- break;
-
- case 3: // accept
- return true;
- }
-
- }
-
- return true;
-}};
-/* Jison generated lexer */
-var lexer = (function(){
-var lexer = ({EOF:1,
-parseError:function parseError(str, hash) {
- if (this.yy.parseError) {
- this.yy.parseError(str, hash);
- } else {
- throw new Error(str);
- }
- },
-setInput:function (input) {
- this._input = input;
- this._more = this._less = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = '';
- this.conditionStack = ['INITIAL'];
- this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
- return this;
- },
-input:function () {
- var ch = this._input[0];
- this.yytext+=ch;
- this.yyleng++;
- this.match+=ch;
- this.matched+=ch;
- var lines = ch.match(/\n/);
- if (lines) this.yylineno++;
- this._input = this._input.slice(1);
- return ch;
- },
-unput:function (ch) {
- this._input = ch + this._input;
- return this;
- },
-more:function () {
- this._more = true;
- return this;
- },
-less:function (n) {
- this._input = this.match.slice(n) + this._input;
- },
-pastInput:function () {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
- },
-upcomingInput:function () {
- var next = this.match;
- if (next.length < 20) {
- next += this._input.substr(0, 20-next.length);
- }
- return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
- },
-showPosition:function () {
- var pre = this.pastInput();
- var c = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c+"^";
- },
-next:function () {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) this.done = true;
-
- var token,
- match,
- tempMatch,
- index,
- col,
- lines;
- if (!this._more) {
- this.yytext = '';
- this.match = '';
- }
- var rules = this._currentRules();
- for (var i=0;i < rules.length; i++) {
- tempMatch = this._input.match(this.rules[rules[i]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i;
- if (!this.options.flex) break;
- }
- }
- if (match) {
- lines = match[0].match(/\n.*/g);
- if (lines) this.yylineno += lines.length;
- this.yylloc = {first_line: this.yylloc.last_line,
- last_line: this.yylineno+1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}
- this.yytext += match[0];
- this.match += match[0];
- this.yyleng = this.yytext.length;
- this._more = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
- if (this.done && this._input) this.done = false;
- if (token) return token;
- else return;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
- {text: "", token: null, line: this.yylineno});
- }
- },
-lex:function lex() {
- var r = this.next();
- if (typeof r !== 'undefined') {
- return r;
- } else {
- return this.lex();
- }
- },
-begin:function begin(condition) {
- this.conditionStack.push(condition);
- },
-popState:function popState() {
- return this.conditionStack.pop();
- },
-_currentRules:function _currentRules() {
- return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
- },
-topState:function () {
- return this.conditionStack[this.conditionStack.length-2];
- },
-pushState:function begin(condition) {
- this.begin(condition);
- }});
-lexer.options = {};
-lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
-
-var YYSTATE=YY_START
-switch($avoiding_name_collisions) {
-case 0:return 9;
-break;
-case 1:return 11;
-break;
-case 2:return 18;
-break;
-case 3:return 19;
-break;
-case 4:return 12;
-break;
-case 5:return 14;
-break;
-case 6:return 17;
-break;
-case 7:return 20;
-break;
-case 8:return 5;
-break;
-}
};
-lexer.rules = [/^\{##/,/^##\}/,/^:\}/,/^\{:/,/^\{#/,/^#\}/,/^[\-][\t\r\n ]*\{:/,/^[^{}#\\:\-]+|[\\{}#:\-]/,/^$/];
-lexer.conditions = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8],"inclusive":true}};
-return lexer;})()
-parser.lexer = lexer;
-return parser;
-})();
-if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
-exports.parser = toffee_lang;
-exports.parse = function () { return toffee_lang.parse.apply(toffee_lang, arguments); }
-exports.main = function commonjsMain(args) {
- if (!args[1])
- throw new Error('Usage: '+args[0]+' FILE');
- if (typeof process !== 'undefined') {
- var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8");
- } else {
- var cwd = require("file").path(require("file").cwd());
- var source = cwd.join(args[1]).read({charset: "utf-8"});
- }
- return exports.parser.parse(source);
-}
-if (typeof module !== 'undefined' && require.main === module) {
- exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
-}
-}}, "utils": function(exports, require, module) {// Generated by CoffeeScript 1.3.3
-(function() {
- var lex, lexer;
-
- lexer = require('./coffee-script/lexer');
-
- lex = new lexer.Lexer();
-
- exports.interpolateString = function(str) {
- /*
- Similar to the interpolateString function in CoffeeScript,
- except that it doesn't actually work on anything inside an outer #{};
- we're just looking to recognize them.
- */
-
- var expr, i, inner, interpolated, letter, pi, res, tag, tokens, value, _i, _len, _ref;
- tokens = [];
- res = [];
- pi = 0;
- i = -1;
- while (letter = str.charAt(i += 1)) {
- if (letter === '\\') {
- i += 1;
- continue;
- }
- if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = lex.balancedString(str.slice(i + 1), '}')))) {
- continue;
- }
- if (pi < i) {
- tokens.push(['NEOSTRING', str.slice(pi, i)]);
- }
- inner = expr.slice(1, -1);
- if (inner.length) {
- tokens.push(['TOKENS', inner]);
- }
- i += expr.length;
- pi = i + 1;
- }
- if ((i > pi && pi < str.length)) {
- tokens.push(['NEOSTRING', str.slice(pi)]);
- }
- if (!tokens.length) {
- return res.push('STRING', '""');
- }
- if (tokens[0][0] !== 'NEOSTRING') {
- tokens.unshift(['', '']);
- }
- if (interpolated = tokens.length > 1) {
- res.push('(', '(');
- }
- for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) {
- _ref = tokens[i], tag = _ref[0], value = _ref[1];
- if (i) {
- res.push('+', '+');
- }
- if (tag === 'TOKENS') {
- res.push([tag, value]);
- } else {
- res.push(['STRING', value]);
- }
- }
- if (interpolated) {
- res.push(')', ')');
- }
- return tokens;
- };
-
-}).call(this);
-}, "view": function(exports, require, module) {// Generated by CoffeeScript 1.3.3
-(function() {
- var TAB_SPACES, coffee, errorHandler, errorTypes, parser, states, toffeeError, utils, view, vm, _ref, _ref1;
-
- parser = require('./toffee_lang').parser;
-
- _ref = require('./errorHandler'), errorHandler = _ref.errorHandler, toffeeError = _ref.toffeeError, errorTypes = _ref.errorTypes;
-
- _ref1 = require('./consts'), states = _ref1.states, TAB_SPACES = _ref1.TAB_SPACES;
-
- utils = require('./utils');
-
- vm = require('vm');
-
- try {
- coffee = require("iced-coffee-script");
- } catch (e) {
- coffee = require("coffee-script");
- }
-
- view = (function() {
-
- function view(txt, options) {
- /*
- important options:
- cb: if this is set, compilation will happen async and cb will be executed when it's ready
- */
-
- var _this = this;
- options = options || {};
- this.fileName = options.fileName || options.filename || null;
- this.identifier = options.indentifier || "pub";
- this.verbose = options.verbose || false;
- this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true;
- this.txt = txt;
- this.tokenObj = null;
- this.coffeeScript = null;
- this.javaScript = null;
- this.scriptObj = null;
- this.error = null;
- if (options.cb) {
- this._prepAsync(txt, function() {
- return options.cb(_this);
- });
- }
- }
-
- view.prototype._prepAsync = function(txt, cb) {
- /*
- Only once it's fully compiled does it callback.
- Defers via setTimeouts in each stage in the compile process
- for CPU friendliness. This is a lot prettier with iced-coffee-script.
- */
-
- var v;
- this._log("Prepping " + (this.fileName != null ? this.fileName : 'unknown') + " async.");
- this._toTokenObj();
- v = this;
- return setTimeout(function() {
- v._toCoffee();
- return setTimeout(function() {
- v._toJavaScript();
- return setTimeout(function() {
- v._toScriptObj();
- v._log("Done async prep of " + (v.fileName != null ? v.fileName : 'unknown') + ". Calling back.");
- return cb();
- }, 0);
- }, 0);
- }, 0);
- };
-
- view.prototype._log = function(o) {
- var _ref2;
- if (this.verbose) {
- if ((_ref2 = typeof o) === "string" || _ref2 === "number" || _ref2 === "boolean") {
- return console.log("toffee: " + o);
- } else {
- return console.log("toffee: " + (util.inspect(o)));
- }
- }
- };
-
- view.prototype._cleanTabs = function(obj) {
- /*
- replaces tabs with spaces in their coffee regions
- */
-
- var item, _i, _len, _ref2, _ref3, _results;
- if ((_ref2 = obj[0]) === "INDENTED_TOFFEE_ZONE" || _ref2 === "TOFFEE_ZONE" || _ref2 === "COFFEE_ZONE") {
- _ref3 = obj[1];
- _results = [];
- for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
- item = _ref3[_i];
- _results.push(this._cleanTabs(item));
- }
- return _results;
- } else if (obj[0] === "COFFEE") {
- return obj[1] = obj[1].replace(/\t/g, this._tabAsSpaces());
- }
- };
-
- view.prototype.run = function(options) {
- /*
- returns [err, str]
- */
-
- var res, sandbox, script;
- script = this._toScriptObj();
- res = null;
- if (!this.error) {
- try {
- sandbox = {
- __toffee_run_input: options
- };
- script.runInNewContext(sandbox);
- res = sandbox.__toffee_run_input.__toffee.res;
- delete sandbox.__toffee_run_input.__toffee;
- } catch (e) {
- this.error = new toffeeError(this, errorTypes.RUNTIME, e);
- }
- }
- if (this.error) {
- if (this.prettyPrintErrors) {
- return [null, this.error.getPrettyPrint()];
- } else {
- return [null, this.error.getPrettyPrintText()];
- }
- } else {
- return [null, res];
- }
- };
-
- view.prototype._toTokenObj = function() {
- /*
- compiles Toffee to token array
- */
- if (!(this.tokenObj != null)) {
- try {
- this.tokenObj = parser.parse(this.txt);
- } catch (e) {
- this.error = new toffeeError(this, errorTypes.PARSER, e);
- }
- if (!(this.error != null)) {
- this._cleanTabs(this.tokenObj);
- }
- }
- return this.tokenObj;
- };
-
- view.prototype._toScriptObj = function() {
- var d, txt;
- if (!(this.scriptObj != null)) {
- txt = this._toJavaScript();
- if (!this.error) {
- d = Date.now();
- this.scriptObj = vm.createScript(txt);
- this._log("" + this.fileName + " compiled to scriptObj in " + (Date.now() - d) + "ms");
- }
- }
- return this.scriptObj;
- };
-
- view.prototype._toJavaScript = function() {
- var c, d;
- if (!(this.javaScript != null)) {
- c = this._toCoffee();
- if (!this.error) {
- d = Date.now();
- try {
- this.javaScript = coffee.compile(c, {
- bare: false
- });
- } catch (e) {
- this.error = new toffeeError(this, errorTypes.COFFEE_COMPILE, e);
- }
- this._log("" + this.fileName + " compiled to JavaScript in " + (Date.now() - d) + "ms");
- }
- }
- return this.javaScript;
- };
-
- view.prototype._toCoffee = function() {
- var d, res, tobj;
- if (!(this.coffeeScript != null)) {
- tobj = this._toTokenObj();
- if (!this.error) {
- d = Date.now();
- res = this._coffeeHeaders();
- try {
- res += this._toCoffeeRecurse(tobj, TAB_SPACES, 0)[0];
- res += this._coffeeFooters();
- this.coffeeScript = res;
- } catch (e) {
- this.error;
- }
- this._log("" + this.fileName + " compiled to CoffeeScript in " + (Date.now() - d) + "ms");
- }
- }
- return this.coffeeScript;
- };
-
- view.prototype._printLineNo = function(n, ind) {
- if ((this.lastLineNo != null) && (n === this.lastLineNo)) {
- return "";
- } else {
- this.lastLineNo = n;
- return "\n" + (this._space(ind)) + "__toffee.lineno = " + n;
- }
- };
-
- view.prototype._snippetHasEscapeOverride = function(str) {
- var token, _i, _len, _ref2, _ref3;
- _ref2 = ['print', ' snippet', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json', 'JSON.stringify'];
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- token = _ref2[_i];
- if (str.slice(0, token.length) === token) {
- if ((str.length > token.length) && ((_ref3 = str[token.length]) === ' ' || _ref3 === '\t' || _ref3 === '\n' || _ref3 === '(')) {
- return true;
- }
- }
- }
- return false;
- };
-
- view.prototype._toCoffeeRecurse = function(obj, indent_level, indent_baseline) {
- var c, chunk, delta, i, i_delta, ind, interp, item, lbreak, line, lineno, lines, part, res, s, t_int, temp_indent_level, zone_baseline, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7;
- res = "";
- i_delta = 0;
- switch (obj[0]) {
- case "INDENTED_TOFFEE_ZONE":
- indent_level += TAB_SPACES;
- _ref2 = obj[1];
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- item = _ref2[_i];
- _ref3 = this._toCoffeeRecurse(item, indent_level, indent_baseline), s = _ref3[0], delta = _ref3[1];
- res += s;
- }
- break;
- case "TOFFEE_ZONE":
- res += "\n" + (this._space(indent_level)) + "__toffee.state = states.TOFFEE";
- _ref4 = obj[1];
- for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) {
- item = _ref4[_j];
- _ref5 = this._toCoffeeRecurse(item, indent_level, indent_baseline), s = _ref5[0], delta = _ref5[1];
- res += s;
- }
- break;
- case "COFFEE_ZONE":
- res += "\n" + (this._space(indent_level)) + "__toffee.state = states.COFFEE";
- zone_baseline = this._getZoneBaseline(obj[1]);
- temp_indent_level = indent_level;
- _ref6 = obj[1];
- for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) {
- item = _ref6[_k];
- _ref7 = this._toCoffeeRecurse(item, temp_indent_level, zone_baseline), s = _ref7[0], delta = _ref7[1];
- res += s;
- temp_indent_level = indent_level + delta;
- }
- break;
- case "TOFFEE":
- ind = indent_level;
- res += "\n" + (this._space(ind)) + "__toffee.state = states.TOFFEE";
- lineno = obj[2];
- try {
- t_int = utils.interpolateString(obj[1]);
- } catch (e) {
- e.relayed_line_range = [lineno, lineno + obj[1].split("\n").length];
- this.error = new toffeeError(this, errorTypes.STR_INTERPOLATE, e);
- throw e;
- }
- for (_l = 0, _len3 = t_int.length; _l < _len3; _l++) {
- part = t_int[_l];
- if (part[0] === "TOKENS") {
- res += this._printLineNo(lineno, ind);
- interp = part[1].replace(/^[\n \t]+/, '');
- if (this._snippetHasEscapeOverride(interp)) {
- chunk = "\#{" + interp + "}";
- } else {
- chunk = "\#{escape(" + interp + ")}";
- }
- res += "\n" + (this._space(ind)) + "__toffee.out.push " + (this._quoteStr(chunk));
- lineno += part[1].split("\n").length - 1;
- } else {
- lines = part[1].split("\n");
- for (i = _m = 0, _len4 = lines.length; _m < _len4; i = ++_m) {
- line = lines[i];
- res += this._printLineNo(lineno, ind);
- lbreak = i !== lines.length - 1 ? "\n" : "";
- chunk = this._escapeForStr("" + line + lbreak);
- if (chunk.length) {
- res += "\n" + (this._space(ind)) + "__toffee.out.push " + (this._quoteStr(chunk + lbreak));
- }
- if (i < lines.length - 1) {
- lineno++;
- }
- }
- }
- }
- res += this._printLineNo(obj[2] + (obj[1].split('\n').length - 1), ind);
- res += "\n" + (this._space(ind)) + "__toffee.state = states.COFFEE";
- break;
- case "COFFEE":
- c = obj[1];
- res += "\n" + (this._reindent(c, indent_level, indent_baseline));
- i_delta = this._getIndentationDelta(c, indent_baseline);
- break;
- default:
- throw "Bad parsing. " + obj + " not handled.";
- return ["", 0];
- }
- return [res, i_delta];
- };
-
- view.prototype._quoteStr = function(s) {
- /*
- returns a triple-quoted string, dividing into single quoted
- start and stops, if the string begins with double quotes, since
- coffee doesn't want to let us escape those.
- */
-
- var follow, lead, res;
- lead = "";
- follow = "";
- while (s.length && (s[0] === '"')) {
- s = s.slice(1);
- lead += '"';
- }
- while (s.length && (s.slice(-1) === '"')) {
- s = s.slice(0, -1);
- follow += '"';
- }
- res = '';
- if (lead.length) {
- res += "\'" + lead + "\' + ";
- }
- res += '"""' + s + '"""';
- if (follow.length) {
- res += "+ \'" + follow + "\'";
- }
- return res;
- };
-
- view.prototype._escapeForStr = function(s) {
- /*
- escapes a string so it can make it into coffeescript
- triple quotes without losing whitespace, etc.
- */
- s = s.replace(/\n/g, '\\n');
- s = s.replace(/\t/g, '\\t');
- return s;
- };
-
- view.prototype._getZoneBaseline = function(obj_arr) {
- var ib, obj, _i, _len;
- for (_i = 0, _len = obj_arr.length; _i < _len; _i++) {
- obj = obj_arr[_i];
- if (obj[0] === "COFFEE") {
- ib = this._getIndentationBaseline(obj[1]);
- if (ib != null) {
- return ib;
- }
- }
- }
- return 0;
- };
-
- view.prototype._getIndentationBaseline = function(coffee) {
- var i, line, lines, res, _i, _len;
- res = null;
- lines = coffee.split("\n");
- if (lines.length) {
- for (i = _i = 0, _len = lines.length; _i < _len; i = ++_i) {
- line = lines[i];
- if ((!line.match(/^[ ]*$/)) || i === (lines.length - 1)) {
- res = line.match(/[ ]*/)[0].length;
- break;
- }
- }
- }
- if (!(res != null)) {
- res = coffee.length;
- }
- return res;
- };
-
- view.prototype._getIndentationDelta = function(coffee, baseline) {
- /*
- given an arbitrarily indented set of coffeescript, returns the delta
- between the first and last lines, in chars.
- Ignores leading/trailing whitespace lines
- If passed a baseline, uses that instead of own.
- */
-
- var lines, res, y, y_l;
- if (!(baseline != null)) {
- baseline = this._getIndentationBaseline(coffee);
- }
- if (!(baseline != null)) {
- res = 0;
- } else {
- lines = coffee.split("\n");
- if (lines.length < 1) {
- res = 0;
- } else {
- y = lines[lines.length - 1];
- y_l = y.match(/[ ]*/)[0].length;
- res = y_l - baseline;
- }
- }
- return res;
- };
-
- view.prototype._reindent = function(coffee, indent_level, indent_baseline) {
- var indent, line, lines, res, rxx, strip;
- lines = coffee.split('\n');
- while (lines.length && lines[0].match(/^[ ]*$/)) {
- lines = lines.slice(1);
- }
- if (!lines.length) {
- return '';
- }
- rxx = /^[ ]*/;
- strip = indent_baseline;
- indent = this._space(indent_level);
- res = ((function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = lines.length; _i < _len; _i++) {
- line = lines[_i];
- _results.push("" + indent + line.slice(strip));
- }
- return _results;
- })()).join("\n");
- return res;
- };
-
- view.prototype._space = function(indent) {
- var i;
- return ((function() {
- var _i, _results;
- _results = [];
- for (i = _i = 0; 0 <= indent ? _i < indent : _i > indent; i = 0 <= indent ? ++_i : --_i) {
- _results.push(" ");
- }
- return _results;
- })()).join("");
- };
-
- view.prototype._tabAsSpaces = function() {
- var i;
- return ((function() {
- var _i, _results;
- _results = [];
- for (i = _i = 0; 0 <= TAB_SPACES ? _i < TAB_SPACES : _i > TAB_SPACES; i = 0 <= TAB_SPACES ? ++_i : --_i) {
- _results.push(" ");
- }
- return _results;
- })()).join("");
- };
-
- view.prototype._coffeeHeaders = function() {
- var ___;
- ___ = this._tabAsSpaces();
- return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify o\n" + ___ + ___ + "catch e \n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states));
- };
-
- view.prototype._coffeeFooters = function() {
- var ___;
- ___ = this._tabAsSpaces();
- return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return domain.toffeeTemplates[\"" + this.identifier + "\"] __toffee_run_input";
- };
-
- return view;
-
- })();
-
- exports.view = view;
-
- exports.expressCompile = function(txt, options) {
- var v;
- v = new view(txt, options);
- return function(vars) {
- var res;
- res = v.run(vars);
- if (res[0]) {
- return res[0];
- } else {
- return res[1];
- }
- };
- };
-
-}).call(this);
-}});
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..2829e32
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,1423 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+JSONSelect@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d"
+ integrity sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==
+
+"JSV@>= 4.0.x":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57"
+ integrity sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw==
+
+abab@^2.0.0:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
+ integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+
+accepts@~1.3.8:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+ dependencies:
+ mime-types "~2.1.34"
+ negotiator "0.6.3"
+
+acorn-globals@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
+ integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
+ dependencies:
+ acorn "^6.0.1"
+ acorn-walk "^6.0.1"
+
+acorn-walk@^6.0.1:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
+ integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
+
+acorn@^5.5.3:
+ version "5.7.4"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
+ integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
+
+acorn@^6.0.1:
+ version "6.4.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
+ integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
+
+ajv@^6.12.3:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+ integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==
+
+ansi-styles@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
+ integrity sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA==
+
+array-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
+ integrity sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA==
+
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
+
+asn1@~0.2.3:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
+ integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
+ dependencies:
+ safer-buffer "~2.1.0"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+ integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
+
+assert@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32"
+ integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==
+ dependencies:
+ es6-object-assign "^1.1.0"
+ is-nan "^1.2.1"
+ object-is "^1.0.1"
+ util "^0.12.0"
+
+async-limiter@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
+ integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+available-typed-arrays@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
+ integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
+
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+ integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
+
+aws4@^1.8.0:
+ version "1.12.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
+ integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
+
+babel-runtime@6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
+ dependencies:
+ tweetnacl "^0.14.3"
+
+bluebird@^3.5.1:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
+body-parser@1.20.1:
+ version "1.20.1"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
+ integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
+ dependencies:
+ bytes "3.1.2"
+ content-type "~1.0.4"
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ on-finished "2.4.1"
+ qs "6.11.0"
+ raw-body "2.5.1"
+ type-is "~1.6.18"
+ unpipe "1.0.0"
+
+browser-process-hrtime@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
+ integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
+
+bytes@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
+call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
+
+chalk@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
+ integrity sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==
+ dependencies:
+ ansi-styles "~1.0.0"
+ has-color "~0.1.0"
+ strip-ansi "~0.1.0"
+
+cjson@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14"
+ integrity sha512-bBRQcCIHzI1IVH59fR0bwGrFmi3Btb/JNwM/n401i1DnYgWndpsUBiQRAddLflkZage20A2d25OAWZZk0vBRlA==
+ dependencies:
+ jsonlint "1.6.0"
+
+coffee-script@1.12.7:
+ version "1.12.7"
+ resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53"
+ integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==
+
+colors@0.5.x:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
+ integrity sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg==
+
+colors@1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
+ integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
+
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1"
+ integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==
+
+content-disposition@0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ dependencies:
+ safe-buffer "5.2.1"
+
+content-type@~1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
+
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
+
+cookie@0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
+ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+
+core-js@^2.4.0:
+ version "2.6.12"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
+ integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
+
+core-util-is@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
+
+cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1"
+ integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==
+ dependencies:
+ cssom "0.3.x"
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
+ dependencies:
+ assert-plus "^1.0.0"
+
+data-urls@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
+ integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
+ dependencies:
+ abab "^2.0.0"
+ whatwg-mimetype "^2.2.0"
+ whatwg-url "^7.0.0"
+
+debug@2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
+deep-is@~0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+define-properties@^1.1.3:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
+ integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
+ dependencies:
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
+depd@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
+destroy@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
+ integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
+
+diff@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40"
+ integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
+
+domexception@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
+ integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==
+ dependencies:
+ webidl-conversions "^4.0.2"
+
+ebnf-parser@0.1.10:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331"
+ integrity sha512-urvSxVQ6XJcoTpc+/x2pWhhuOX4aljCNQpwzw+ifZvV1andZkAmiJc3Rq1oGEAQmcjiLceyMXOy1l8ms8qs2fQ==
+
+ecc-jsbn@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
+ dependencies:
+ jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
+
+encodeurl@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+
+es6-object-assign@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
+ integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==
+
+escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+
+escodegen@1.3.x:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23"
+ integrity sha512-z9FWgKc48wjMlpzF5ymKS1AF8OIgnKLp9VyN7KbdtyrP/9lndwUFqCtMm+TAJmJf7KJFFYc4cFJfVTTGkKEwsA==
+ dependencies:
+ esprima "~1.1.1"
+ estraverse "~1.5.0"
+ esutils "~1.0.0"
+ optionalDependencies:
+ source-map "~0.1.33"
+
+escodegen@^1.9.1:
+ version "1.14.3"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
+ integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+esprima@1.1.x, esprima@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549"
+ integrity sha512-qxxB994/7NtERxgXdFgLHIs9M6bhLXc6qtUmWZ3L8+gTQ9qaoyki2887P2IqAYsoENyr8SUbTutStDniOHSDHg==
+
+esprima@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+estraverse@^4.2.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@~1.5.0:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71"
+ integrity sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+esutils@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570"
+ integrity sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==
+
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
+
+eventsource@^1.0.5:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.2.tgz#bc75ae1c60209e7cb1541231980460343eaea7c2"
+ integrity sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA==
+
+express@4.18.2:
+ version "4.18.2"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
+ integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
+ dependencies:
+ accepts "~1.3.8"
+ array-flatten "1.1.1"
+ body-parser "1.20.1"
+ content-disposition "0.5.4"
+ content-type "~1.0.4"
+ cookie "0.5.0"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "2.0.0"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "1.2.0"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ merge-descriptors "1.0.1"
+ methods "~1.1.2"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.7"
+ proxy-addr "~2.0.7"
+ qs "6.11.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.2.1"
+ send "0.18.0"
+ serve-static "1.15.0"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
+extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
+extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
+
+extsprintf@^1.2.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
+ integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
+
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
+finalhandler@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
+ integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ statuses "2.0.1"
+ unpipe "~1.0.0"
+
+for-each@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
+ integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
+ dependencies:
+ is-callable "^1.1.3"
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
+
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
+ mime-types "^2.1.12"
+
+forwarded@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f"
+ integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.3"
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
+ dependencies:
+ assert-plus "^1.0.0"
+
+gopd@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
+ dependencies:
+ get-intrinsic "^1.1.3"
+
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+ integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==
+
+har-validator@~5.1.3:
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
+ dependencies:
+ ajv "^6.12.3"
+ har-schema "^2.0.0"
+
+has-color@~0.1.0:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
+ integrity sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw==
+
+has-property-descriptors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
+ integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
+ dependencies:
+ get-intrinsic "^1.1.1"
+
+has-symbols@^1.0.2, has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
+has-tostringtag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
+ integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
+ dependencies:
+ has-symbols "^1.0.2"
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+highlight.js@11.7.0:
+ version "11.7.0"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.7.0.tgz#3ff0165bc843f8c9bce1fd89e2fda9143d24b11e"
+ integrity sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==
+
+html-encoding-sniffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
+ integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==
+ dependencies:
+ whatwg-encoding "^1.0.1"
+
+http-errors@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
+ dependencies:
+ depd "2.0.0"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ toidentifier "1.0.1"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+iced-coffee-script@108.0.14:
+ version "108.0.14"
+ resolved "https://registry.yarnpkg.com/iced-coffee-script/-/iced-coffee-script-108.0.14.tgz#9ca5b258decf4a5eafb16f5663ff7683227c4f1a"
+ integrity sha512-e0CNmz51UGWRa2glPnUMnJM7oKQE81cxeC0WAgCjJDRImv3FDHldZr/Ngkbrgdbf1drGGzYWp+PWeJwXIfHwDw==
+ dependencies:
+ iced-runtime ">=0.0.1"
+ uglify-js "^3.5.9"
+
+iced-lock@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/iced-lock/-/iced-lock-2.0.1.tgz#92fe46ffe01b872bf88f963c2a319fa8ad80d13b"
+ integrity sha512-J6dnGMpAoHNyACUYJYhiJkLY7YFRTa7NMZ8ZygpYB3HNDOGWtzv55+kT2u1zItRi4Y1EXruG9d1VDsx8R5faTw==
+ dependencies:
+ iced-runtime "^1.0.0"
+
+iced-runtime@>=0.0.1, iced-runtime@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/iced-runtime/-/iced-runtime-1.0.4.tgz#e9de26dfe98cd8621201f7f3dfb9f7f09c550990"
+ integrity sha512-rgiJXNF6ZgF2Clh/TKUlBDW3q51YPDJUXmxGQXx1b8tbZpVpTn+1RX9q1sjNkujXIIaVxZByQzPHHORg7KV51g==
+
+iconv-lite@0.4.24, iconv-lite@^0.4.21:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+inherits@2.0.4, inherits@^2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+is-arguments@^1.0.4:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
+ integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-callable@^1.1.3:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
+ integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+
+is-generator-function@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
+ integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-nan@^1.2.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
+ integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+
+is-typed-array@^1.1.10, is-typed-array@^1.1.3:
+ version "1.1.10"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
+ integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.0"
+
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
+
+jison-lex@0.3.x:
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5"
+ integrity sha512-EBh5wrXhls1cUwROd5DcDHR1sG7CdsCFSqY1027+YA1RGxz+BX2TDLAhdsQf40YEtFDGoiO0Qm8PpnBl2EzDJw==
+ dependencies:
+ lex-parser "0.1.x"
+ nomnom "1.5.2"
+
+jison@0.4.18:
+ version "0.4.18"
+ resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.18.tgz#c68a6a54bfe7028fa40bcfc6cc8bbd9ed291f502"
+ integrity sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w==
+ dependencies:
+ JSONSelect "0.4.0"
+ cjson "0.3.0"
+ ebnf-parser "0.1.10"
+ escodegen "1.3.x"
+ esprima "1.1.x"
+ jison-lex "0.3.x"
+ lex-parser "~0.1.3"
+ nomnom "1.5.2"
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
+
+jsdom@11.12.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
+ integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==
+ dependencies:
+ abab "^2.0.0"
+ acorn "^5.5.3"
+ acorn-globals "^4.1.0"
+ array-equal "^1.0.0"
+ cssom ">= 0.3.2 < 0.4.0"
+ cssstyle "^1.0.0"
+ data-urls "^1.0.0"
+ domexception "^1.0.1"
+ escodegen "^1.9.1"
+ html-encoding-sniffer "^1.0.2"
+ left-pad "^1.3.0"
+ nwsapi "^2.0.7"
+ parse5 "4.0.0"
+ pn "^1.1.0"
+ request "^2.87.0"
+ request-promise-native "^1.0.5"
+ sax "^1.2.4"
+ symbol-tree "^3.2.2"
+ tough-cookie "^2.3.4"
+ w3c-hr-time "^1.0.1"
+ webidl-conversions "^4.0.2"
+ whatwg-encoding "^1.0.3"
+ whatwg-mimetype "^2.1.0"
+ whatwg-url "^6.4.1"
+ ws "^5.2.0"
+ xml-name-validator "^3.0.0"
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
+ integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+ integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
+
+jsonlint@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.0.tgz#88aa46bc289a7ac93bb46cae2d58a187a9bb494a"
+ integrity sha512-x6YLBe6NjdpmIeiklwQOxsZuYj/SOWkT33GlTpaG1UdFGjdWjPcxJ1CWZAX3wA7tarz8E2YHF6KiW5HTapPlXw==
+ dependencies:
+ JSV ">= 4.0.x"
+ nomnom ">= 1.5.x"
+
+jsprim@^1.2.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
+ integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.4.0"
+ verror "1.10.0"
+
+left-pad@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
+ integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
+
+levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+lex-parser@0.1.x, lex-parser@~0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550"
+ integrity sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w==
+
+lodash.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+ integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==
+
+lodash@^4.17.10, lodash@^4.17.19:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
+
+merge-descriptors@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
+
+methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
+
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mime@^2.3.1:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
+ integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
+
+mkdirp@2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f"
+ integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@2.1.3, ms@^2.1.1:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+negotiator@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+nomnom@1.5.2:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f"
+ integrity sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==
+ dependencies:
+ colors "0.5.x"
+ underscore "1.1.x"
+
+"nomnom@>= 1.5.x":
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
+ integrity sha512-5s0JxqhDx9/rksG2BTMVN1enjWSvPidpoSgViZU4ZXULyTe+7jxcCRLB6f42Z0l1xYJpleCBtSyY6Lwg3uu5CQ==
+ dependencies:
+ chalk "~0.4.0"
+ underscore "~1.6.0"
+
+nwsapi@^2.0.7:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0"
+ integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==
+
+oauth-sign@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+
+object-inspect@^1.9.0:
+ version "1.12.3"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
+ integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
+
+object-is@^1.0.1:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
+ integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+on-finished@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
+ dependencies:
+ ee-first "1.1.1"
+
+optionator@^0.8.1:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.6"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ word-wrap "~1.2.3"
+
+parse5@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
+ integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
+
+parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+path-to-regexp@0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
+
+pn@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
+ integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
+
+proxy-addr@~2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
+ dependencies:
+ forwarded "0.2.0"
+ ipaddr.js "1.9.1"
+
+psl@^1.1.28:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
+ integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
+
+punycode@^2.1.0, punycode@^2.1.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
+ integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+
+qs@6.11.0:
+ version "6.11.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
+ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
+ dependencies:
+ side-channel "^1.0.4"
+
+qs@~6.5.2:
+ version "6.5.3"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
+ integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
+
+range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
+ integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
+ dependencies:
+ bytes "3.1.2"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+ integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
+
+request-promise-core@1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
+ integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
+ dependencies:
+ lodash "^4.17.19"
+
+request-promise-native@^1.0.5:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
+ integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==
+ dependencies:
+ request-promise-core "1.1.4"
+ stealthy-require "^1.1.1"
+ tough-cookie "^2.3.3"
+
+request@^2.85.0, request@^2.87.0:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.8.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
+ forever-agent "~0.6.1"
+ form-data "~2.3.2"
+ har-validator "~5.1.3"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.19"
+ oauth-sign "~0.9.0"
+ performance-now "^2.1.0"
+ qs "~6.5.2"
+ safe-buffer "^5.1.2"
+ tough-cookie "~2.5.0"
+ tunnel-agent "^0.6.0"
+ uuid "^3.3.2"
+
+safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.2:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sax@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+send@0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
+ integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
+ dependencies:
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ mime "1.6.0"
+ ms "2.1.3"
+ on-finished "2.4.1"
+ range-parser "~1.2.1"
+ statuses "2.0.1"
+
+serve-static@1.15.0:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
+ integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.18.0"
+
+setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+side-channel@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+ integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+ dependencies:
+ call-bind "^1.0.0"
+ get-intrinsic "^1.0.2"
+ object-inspect "^1.9.0"
+
+source-map@~0.1.33:
+ version "0.1.43"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
+ integrity sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+sshpk@^1.7.0:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
+ integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
+ ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
+ jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
+ tweetnacl "~0.14.0"
+
+statuses@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
+
+stealthy-require@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
+ integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==
+
+strip-ansi@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
+ integrity sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg==
+
+symbol-tree@^3.2.2:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+
+tablify@0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/tablify/-/tablify-0.1.5.tgz#47160ce2918be291d63cecceddb5254dd72982c7"
+ integrity sha512-puOS3ef9p20DqujVs5JBCAYp5EeQke7B7+5g0SUdQKUNWkX6oM3jSzW8OD42HXowB7NTLisFGLsbYms3x+q9HA==
+
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
+tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+ dependencies:
+ psl "^1.1.28"
+ punycode "^2.1.1"
+
+tr46@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+ integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==
+ dependencies:
+ punycode "^2.1.0"
+
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==
+ dependencies:
+ prelude-ls "~1.1.2"
+
+type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+uglify-js@^3.5.9:
+ version "3.17.4"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
+ integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==
+
+underscore@1.1.x:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0"
+ integrity sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==
+
+underscore@~1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
+ integrity sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ==
+
+unpipe@1.0.0, unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+util@^0.12.0:
+ version "0.12.5"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
+ integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
+ dependencies:
+ inherits "^2.0.3"
+ is-arguments "^1.0.4"
+ is-generator-function "^1.0.7"
+ is-typed-array "^1.1.3"
+ which-typed-array "^1.1.2"
+
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
+
+uuid@^3.3.2:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+
+vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+w3c-hr-time@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
+ integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
+ dependencies:
+ browser-process-hrtime "^1.0.0"
+
+webidl-conversions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+ integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+
+whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
+ integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
+ dependencies:
+ iconv-lite "0.4.24"
+
+whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
+ integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
+
+whatwg-url@^6.4.1:
+ version "6.5.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
+ integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
+
+whatwg-url@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
+
+which-typed-array@^1.1.2:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
+ integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.0"
+ is-typed-array "^1.1.10"
+
+word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+ws@^5.2.0:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d"
+ integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==
+ dependencies:
+ async-limiter "~1.0.0"
+
+ws@^6.1.2:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
+ integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
+ dependencies:
+ async-limiter "~1.0.0"
+
+xml-name-validator@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
+ integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+
+zombie@6.1.4:
+ version "6.1.4"
+ resolved "https://registry.yarnpkg.com/zombie/-/zombie-6.1.4.tgz#9f0f53f3d9a032beb7f3fe5b382146a3475a4d47"
+ integrity sha512-yxNvKtyz3PP8lkr31AYh7vdbBD4is9hYXiOQKPp+k/7GiDiFQXX1Ex+peCl4ttodu/bHZcIluJ8lxMla5XefBQ==
+ dependencies:
+ babel-runtime "6.26.0"
+ bluebird "^3.5.1"
+ debug "^4.1.0"
+ eventsource "^1.0.5"
+ iconv-lite "^0.4.21"
+ jsdom "11.12.0"
+ lodash "^4.17.10"
+ mime "^2.3.1"
+ ms "^2.1.1"
+ request "^2.85.0"
+ tough-cookie "^2.3.4"
+ ws "^6.1.2"