//     Underscore.js 1.2.3
//     (c) 2009-2011 Jeremy Ashkenas, DocumentCloud Inc.
//     Underscore is freely distributable under the MIT license.
//     Portions of Underscore are inspired or borrowed from Prototype,
//     Oliver Steele's Functional, and John Resig's Micro-Templating.
//     For all details and documentation:
//     http://documentcloud.github.com/underscore
((function(){function B(a,b,c){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;a._chain&&(a=a._wrapped),b._chain&&(b=b._wrapped);if(a.isEqual&&x.isFunction(a.isEqual))return a.isEqual(b);if(b.isEqual&&x.isFunction(b.isEqual))return b.isEqual(a);var d=j.call(a);if(d!=j.call(b))return!1;switch(d){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return!1;var e=c.length;while(e--)if(c[e]==a)return!0;c.push(a);var f=0,g=!0;if(d=="[object Array]"){f=a.length,g=f==b.length;if(g)while(f--)if(!(g=f in a==f in b&&B(a[f],b[f],c)))break}else{if("constructor"in a!="constructor"in b||a.constructor!=b.constructor)return!1;for(var h in a)if(k.call(a,h)){f++;if(!(g=k.call(b,h)&&B(a[h],b[h],c)))break}if(g){for(h in b)if(k.call(b,h)&&!(f--))break;g=!f}}return c.pop(),g}var a=this,b=a._,c={},d=Array.prototype,e=Object.prototype,f=Function.prototype,g=d.slice,h=d.concat,i=d.unshift,j=e.toString,k=e.hasOwnProperty,l=d.forEach,m=d.map,n=d.reduce,o=d.reduceRight,p=d.filter,q=d.every,r=d.some,s=d.indexOf,t=d.lastIndexOf,u=Array.isArray,v=Object.keys,w=f.bind,x=function(a){return new D(a)};typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=x),exports._=x):typeof define=="function"&&define.amd?define("underscore",function(){return x}):a._=x,x.VERSION="1.2.3";var y=x.each=x.forEach=function(a,b,d){if(a==null)return;if(l&&a.forEach===l)a.forEach(b,d);else if(a.length===+a.length){for(var e=0,f=a.length;e<f;e++)if(e in a&&b.call(d,a[e],e,a)===c)return}else for(var g in a)if(k.call(a,g)&&b.call(d,a[g],g,a)===c)return};x.map=function(a,b,c){var d=[];return a==null?d:m&&a.map===m?a.map(b,c):(y(a,function(a,e,f){d[d.length]=b.call(c,a,e,f)}),d)},x.reduce=x.foldl=x.inject=function(a,b,c,d){var e=arguments.length>2;a==null&&(a=[]);if(n&&a.reduce===n)return d&&(b=x.bind(b,d)),e?a.reduce(b,c):a.reduce(b);y(a,function(a,f,g){e?c=b.call(d,c,a,f,g):(c=a,e=!0)});if(!e)throw new TypeError("Reduce of empty array with no initial value");return c},x.reduceRight=x.foldr=function(a,b,c,d){var e=arguments.length>2;a==null&&(a=[]);if(o&&a.reduceRight===o)return d&&(b=x.bind(b,d)),e?a.reduceRight(b,c):a.reduceRight(b);var f=x.toArray(a).reverse();return d&&!e&&(b=x.bind(b,d)),e?x.reduce(f,b,c,d):x.reduce(f,b)},x.find=x.detect=function(a,b,c){var d;return z(a,function(a,e,f){if(b.call(c,a,e,f))return d=a,!0}),d},x.filter=x.select=function(a,b,c){var d=[];return a==null?d:p&&a.filter===p?a.filter(b,c):(y(a,function(a,e,f){b.call(c,a,e,f)&&(d[d.length]=a)}),d)},x.reject=function(a,b,c){var d=[];return a==null?d:(y(a,function(a,e,f){b.call(c,a,e,f)||(d[d.length]=a)}),d)},x.every=x.all=function(a,b,d){var e=!0;return a==null?e:q&&a.every===q?a.every(b,d):(y(a,function(a,f,g){if(!(e=e&&b.call(d,a,f,g)))return c}),e)};var z=x.some=x.any=function(a,b,d){b||(b=x.identity);var e=!1;return a==null?e:r&&a.some===r?a.some(b,d):(y(a,function(a,f,g){if(e||(e=b.call(d,a,f,g)))return c}),!!e)};x.include=x.contains=function(a,b){var c=!1;return a==null?c:s&&a.indexOf===s?a.indexOf(b)!=-1:(c=z(a,function(a){return a===b}),c)},x.invoke=function(a,b){var c=g.call(arguments,2);return x.map(a,function(a){return(b.call?b||a:a[b]).apply(a,c)})},x.pluck=function(a,b){return x.map(a,function(a){return a[b]})},x.max=function(a,b,c){if(!b&&x.isArray(a))return Math.max.apply(Math,a);if(!b&&x.isEmpty(a))return-Infinity;var d={computed:-Infinity};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g>=d.computed&&(d={value:a,computed:g})}),d.value},x.min=function(a,b,c){if(!b&&x.isArray(a))return Math.min.apply(Math,a);if(!b&&x.isEmpty(a))return Infinity;var d={computed:Infinity};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g<d.computed&&(d={value:a,computed:g})}),d.value},x.shuffle=function(a){var b=[],c;return y(a,function(a,d,e){d==0?b[0]=a:(c=Math.floor(Math.random()*(d+1)),b[d]=b[c],b[c]=a)}),b},x.sortBy=function(a,b,c){return x.pluck(x.map(a,function(a,d,e){return{value:a,criteria:b.call(c,a,d,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")},x.groupBy=function(a,b){var c={},d=x.isFunction(b)?b:function(a){return a[b]};return y(a,function(a,b){var e=d(a,b);(c[e]||(c[e]=[])).push(a)}),c},x.sortedIndex=function(a,b,c){c||(c=x.identity);var d=0,e=a.length;while(d<e){var f=d+e>>1;c(a[f])<c(b)?d=f+1:e=f}return d},x.toArray=function(a){return a?a.toArray?a.toArray():x.isArray(a)?g.call(a):x.isArguments(a)?g.call(a):x.values(a):[]},x.size=function(a){return x.toArray(a).length},x.first=x.head=function(a,b,c){return b!=null&&!c?g.call(a,0,b):a[0]},x.initial=function(a,b,c){return g.call(a,0,a.length-(b==null||c?1:b))},x.last=function(a,b,c){return b!=null&&!c?g.call(a,Math.max(a.length-b,0)):a[a.length-1]},x.rest=x.tail=function(a,b,c){return g.call(a,b==null||c?1:b)},x.compact=function(a){return x.filter(a,function(a){return!!a})},x.flatten=function(a,b){return x.reduce(a,function(a,c){return x.isArray(c)?a.concat(b?c:x.flatten(c)):(a[a.length]=c,a)},[])},x.without=function(a){return x.difference(a,g.call(arguments,1))},x.uniq=x.unique=function(a,b,c){var d=c?x.map(a,c):a,e=[];return x.reduce(d,function(c,d,f){if(0==f||(b===!0?x.last(c)!=d:!x.include(c,d)))c[c.length]=d,e[e.length]=a[f];return c},[]),e},x.union=function(){return x.uniq(x.flatten(arguments,!0))},x.intersection=x.intersect=function(a){var b=g.call(arguments,1);return x.filter(x.uniq(a),function(a){return x.every(b,function(b){return x.indexOf(b,a)>=0})})},x.difference=function(a){var b=x.flatten(g.call(arguments,1));return x.filter(a,function(a){return!x.include(b,a)})},x.zip=function(){var a=g.call(arguments),b=x.max(x.pluck(a,"length")),c=new Array(b);for(var d=0;d<b;d++)c[d]=x.pluck(a,""+d);return c},x.indexOf=function(a,b,c){if(a==null)return-1;var d,e;if(c)return d=x.sortedIndex(a,b),a[d]===b?d:-1;if(s&&a.indexOf===s)return a.indexOf(b);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===b)return d;return-1},x.lastIndexOf=function(a,b){if(a==null)return-1;if(t&&a.lastIndexOf===t)return a.lastIndexOf(b);var c=a.length;while(c--)if(c in a&&a[c]===b)return c;return-1},x.range=function(a,b,c){arguments.length<=1&&(b=a||0,a=0),c=arguments[2]||1;var d=Math.max(Math.ceil((b-a)/c),0),e=0,f=new Array(d);while(e<d)f[e++]=a,a+=c;return f};var A=function(){};x.bind=function(b,c){var d,e;if(b.bind===w&&w)return w.apply(b,g.call(arguments,1));if(!x.isFunction(b))throw new TypeError;return e=g.call(arguments,2),d=function(){if(this instanceof d){A.prototype=b.prototype;var a=new A,f=b.apply(a,e.concat(g.call(arguments)));return Object(f)===f?f:a}return b.apply(c,e.concat(g.call(arguments)))}},x.bindAll=function(a){var b=g.call(arguments,1);return b.length==0&&(b=x.functions(a)),y(b,function(b){a[b]=x.bind(a[b],a)}),a},x.memoize=function(a,b){var c={};return b||(b=x.identity),function(){var d=b.apply(this,arguments);return k.call(c,d)?c[d]:c[d]=a.apply(this,arguments)}},x.delay=function(a,b){var c=g.call(arguments,2);return setTimeout(function(){return a.apply(a,c)},b)},x.defer=function(a){return x.delay.apply(x,[a,1].concat(g.call(arguments,1)))},x.throttle=function(a,b){var c,d,e,f,g,h=x.debounce(function(){g=f=!1},b);return function(){c=this,d=arguments;var i=function(){e=null,g&&a.apply(c,d),h()};e||(e=setTimeout(i,b)),f?g=!0:a.apply(c,d),h(),f=!0}},x.debounce=function(a,b){var c;return function(){var d=this,e=arguments,f=function(){c=null,a.apply(d,e)};clearTimeout(c),c=setTimeout(f,b)}},x.once=function(a){var b=!1,c;return function(){return b?c:(b=!0,c=a.apply(this,arguments))}},x.wrap=function(a,b){return function(){var c=h.apply([a],arguments);return b.apply(this,c)}},x.compose=function(){var a=arguments;return function(){var b=arguments;for(var c=a.length-1;c>=0;c--)b=[a[c].apply(this,b)];return b[0]}},x.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}},x.keys=v||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)k.call(a,c)&&(b[b.length]=c);return b},x.values=function(a){return x.map(a,x.identity)},x.functions=x.methods=function(a){var b=[];for(var c in a)x.isFunction(a[c])&&b.push(c);return b.sort()},x.extend=function(a){return y(g.call(arguments,1),function(b){for(var c in b)b[c]!==void 0&&(a[c]=b[c])}),a},x.defaults=function(a){return y(g.call(arguments,1),function(b){for(var c in b)a[c]==null&&(a[c]=b[c])}),a},x.clone=function(a){return x.isObject(a)?x.isArray(a)?a.slice():x.extend({},a):a},x.tap=function(a,b){return b(a),a},x.isEqual=function(a,b){return B(a,b,[])},x.isEmpty=function(a){if(x.isArray(a)||x.isString(a))return a.length===0;for(var b in a)if(k.call(a,b))return!1;return!0},x.isElement=function(a){return!!a&&a.nodeType==1},x.isArray=u||function(a){return j.call(a)=="[object Array]"},x.isObject=function(a){return a===Object(a)},x.isArguments=function(a){return j.call(a)=="[object Arguments]"},x.isArguments(arguments)||(x.isArguments=function(a){return!!a&&!!k.call(a,"callee")}),x.isFunction=function(a){return j.call(a)=="[object Function]"},x.isString=function(a){return j.call(a)=="[object String]"},x.isNumber=function(a){return j.call(a)=="[object Number]"},x.isNaN=function(a){return a!==a},x.isBoolean=function(a){return a===!0||a===!1||j.call(a)=="[object Boolean]"},x.isDate=function(a){return j.call(a)=="[object Date]"},x.isRegExp=function(a){return j.call(a)=="[object RegExp]"},x.isNull=function(a){return a===null},x.isUndefined=function(a){return a===void 0},x.noConflict=function(){return a._=b,this},x.identity=function(a){return a},x.times=function(a,b,c){for(var d=0;d<a;d++)b.call(c,d)},x.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")},x.mixin=function(a){y(x.functions(a),function(b){F(b,x[b]=a[b])})};var C=0;x.uniqueId=function(a){var b=C++;return a?a+b:b},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},x.template=function(a,b){var c=x.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(c.escape,function(a,b){return"',_.escape("+b.replace(/\\'/g,"'")+"),'"}).replace(c.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(c.evaluate||null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return b?e(b,x):function(a){return e.call(this,a,x)}};var D=function(a){this._wrapped=a};x.prototype=D.prototype;var E=function(a,b){return b?x(a).chain():a},F=function(a,b){D.prototype[a]=function(){var a=g.call(arguments);return i.call(a,this._wrapped),E(b.apply(x,a),this._chain)}};x.mixin(x),y(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=d[a];D.prototype[a]=function(){return b.apply(this._wrapped,arguments),E(this._wrapped,this._chain)}}),y(["concat","join","slice"],function(a){var b=d[a];D.prototype[a]=function(){return E(b.apply(this._wrapped,arguments),this._chain)}}),D.prototype.chain=function(){return this._chain=!0,this},D.prototype.value=function(){return this._wrapped}})).call(this),function(a){"use strict";var b=String.prototype.trim,c=function(a){return a*1||0},d=function(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")},e=function(a){return Array.prototype.slice.call(a)},f=function(a){return a?i.escapeRegExp(a):"\\s"},g=function(a){return function(){var b=e(arguments);for(var c=0;c<b.length;c++)b[c]=b[c]==null?"":""+b[c];return a.apply(null,b)}},h=function(){function a(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}var b=d,c=function(){return c.cache.hasOwnProperty(arguments[0])||(c.cache[arguments[0]]=c.parse(arguments[0])),c.format.call(null,c.cache[arguments[0]],arguments)};return c.format=function(c,d){var e=1,f=c.length,g="",i,j=[],k,l,m,n,o,p;for(k=0;k<f;k++){g=a(c[k]);if(g==="string")j.push(c[k]);else if(g==="array"){m=c[k];if(m[2]){i=d[e];for(l=0;l<m[2].length;l++){if(!i.hasOwnProperty(m[2][l]))throw h('[_.sprintf] property "%s" does not exist',m[2][l]);i=i[m[2][l]]}}else m[1]?i=d[m[1]]:i=d[e++];if(/[^s]/.test(m[8])&&a(i)!="number")throw h("[_.sprintf] expecting number but found %s",a(i));switch(m[8]){case"b":i=i.toString(2);break;case"c":i=String.fromCharCode(i);break;case"d":i=parseInt(i,10);break;case"e":i=m[7]?i.toExponential(m[7]):i.toExponential();break;case"f":i=m[7]?parseFloat(i).toFixed(m[7]):parseFloat(i);break;case"o":i=i.toString(8);break;case"s":i=(i=String(i))&&m[7]?i.substring(0,m[7]):i;break;case"u":i=Math.abs(i);break;case"x":i=i.toString(16);break;case"X":i=i.toString(16).toUpperCase()}i=/[def]/.test(m[8])&&m[3]&&i>=0?"+"+i:i,o=m[4]?m[4]=="0"?"0":m[4].charAt(1):" ",p=m[6]-String(i).length,n=m[6]?b(o,p):"",j.push(m[5]?i+n:n+i)}}return j.join("")},c.cache={},c.parse=function(a){var b=a,c=[],d=[],e=0;while(b){if((c=/^[^\x25]+/.exec(b))!==null)d.push(c[0]);else if((c=/^\x25{2}/.exec(b))!==null)d.push("%");else{if((c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b))===null)throw"[_.sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if((h=/^([a-z_][a-z_\d]*)/i.exec(g))===null)throw"[_.sprintf] huh?";f.push(h[1]);while((g=g.substring(h[0].length))!=="")if((h=/^\.([a-z_][a-z_\d]*)/i.exec(g))!==null)f.push(h[1]);else if((h=/^\[(\d+)\]/.exec(g))!==null)f.push(h[1]);else throw"[_.sprintf] huh?";c[2]=f}else e|=2;if(e===3)throw"[_.sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d},c}(),i={VERSION:"2.0.0",isBlank:g(function(a){return/^\s*$/.test(a)}),stripTags:g(function(a){return a.replace(/<\/?[^>]+>/ig,"")}),capitalize:g(function(a){return a.charAt(0).toUpperCase()+a.substring(1).toLowerCase()}),chop:g(function(a,b){b=c(b)||a.length;var d=[];for(var e=0;e<a.length;)d.push(a.slice(e,e+b)),e+=b;return d}),clean:g(function(a){return i.strip(a.replace(/\s+/g," "))}),count:g(function(a,b){var c=0,d;for(var e=0;e<a.length;)d=a.indexOf(b,e),d>=0&&c++,e=e+(d>=0?d:0)+b.length;return c}),chars:g(function(a){return a.split("")}),escapeHTML:g(function(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}),unescapeHTML:g(function(a){return a.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&amp;/g,"&")}),escapeRegExp:g(function(a){return a.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")}),insert:g(function(a,b,d){var e=a.split("");return e.splice(c(b),0,d),e.join("")}),include:g(function(a,b){return a.indexOf(b)!==-1}),join:g(function(a){var b=e(arguments);return b.join(b.shift())}),lines:g(function(a){return a.split("\n")}),reverse:g(function(a){return Array.prototype.reverse.apply(String(a).split("")).join("")}),splice:g(function(a,b,d,e){var f=a.split("");return f.splice(c(b),c(d),e),f.join("")}),startsWith:g(function(a,b){return a.length>=b.length&&a.substring(0,b.length)===b}),endsWith:g(function(a,b){return a.length>=b.length&&a.substring(a.length-b.length)===b}),succ:g(function(a){var b=a.split("");return b.splice(a.length-1,1,String.fromCharCode(a.charCodeAt(a.length-1)+1)),b.join("")}),titleize:g(function(a){var b=a.split(" "),c;for(var d=0;d<b.length;d++)c=b[d].split(""),typeof c[0]!="undefined"&&(c[0]=c[0].toUpperCase()),d+1===b.length?b[d]=c.join(""):b[d]=c.join("")+" ";return b.join("")}),camelize:g(function(a){return i.trim(a).replace(/(\-|_|\s)+(.)?/g,function(a,b,c){return c?c.toUpperCase():""})}),underscored:function(a){return i.trim(a).replace(/([a-z\d])([A-Z]+)/g,"$1_$2").replace(/\-|\s+/g,"_").toLowerCase()},dasherize:function(a){return i.trim(a).replace(/([a-z\d])([A-Z]+)/g,"$1-$2").replace(/^([A-Z]+)/,"-$1").replace(/\_|\s+/g,"-").toLowerCase()},humanize:function(a){return i.capitalize(this.underscored(a).replace(/_id$/,"").replace(/_/g," "))},trim:g(function(a,c){return!c&&b?b.call(a):(c=f(c),a.replace(new RegExp("^["+c+"]+|["+c+"]+$","g"),""))}),ltrim:g(function(a,b){return b=f(b),a.replace(new RegExp("^["+b+"]+","g"),"")}),rtrim:g(function(a,b){return b=f(b),a.replace(new RegExp("["+b+"]+$","g"),"")}),truncate:g(function(a,b,d){return d=d||"...",b=c(b),a.length>b?a.slice(0,b)+d:a}),prune:g(function(a,b,d){var e=function(a){return a.toUpperCase()!=a.toLowerCase()||/[-_\d]/.test(a)},f="",g="",h=0;d=d||"...",b=c(b);for(h in a)f+=e(a[h])?"A":" ";return f.substring(b-1,b+1).search(/^\w\w$/)===0?g=i.rtrim(f.slice(0,b).replace(/([\W][\w]*)$/,"")):g=i.rtrim(f.slice(0,b)),g=g.replace(/\W+$/,""),g.length+d.length>a.length?a:a.substring(0,g.length)+d}),words:function(a,b){return String(a).split(b||" ")},pad:g(function(a,b,e,f){var g="",h=0;b=c(b),e?e.length>1&&(e=e.charAt(0)):e=" ";switch(f){case"right":h=b-a.length,g=d(e,h),a+=g;break;case"both":h=b-a.length,g={left:d(e,Math.ceil(h/2)),right:d(e,Math.floor(h/2))},a=g.left+a+g.right;break;default:h=b-a.length,g=d(e,h),a=g+a}return a}),lpad:function(a,b,c){return i.pad(a,b,c)},rpad:function(a,b,c){return i.pad(a,b,c,"right")},lrpad:function(a,b,c){return i.pad(a,b,c,"both")},sprintf:h,vsprintf:function(a,b){return b.unshift(a),h.apply(null,b)},toNumber:function(a,b){var d=c(c(a).toFixed(c(b)));return d!==0||a==="0"||a===0?d:Number.NaN},strRight:g(function(a,b){var c=b?a.indexOf(b):-1;return c!=-1?a.slice(c+b.length,a.length):a}),strRightBack:g(function(a,b){var c=b?a.lastIndexOf(b):-1;return c!=-1?a.slice(c+b.length,a.length):a}),strLeft:g(function(a,b){var c=b?a.indexOf(b):-1;return c!=-1?a.slice(0,c):a}),strLeftBack:g(function(a,b){var c=a.lastIndexOf(b);return c!=-1?a.slice(0,c):a}),exports:function(){var a={};for(var b in this){if(!this.hasOwnProperty(b)||b=="include"||b=="contains"||b=="reverse")continue;a[b]=this[b]}return a}};i.strip=i.trim,i.lstrip=i.ltrim,i.rstrip=i.rtrim,i.center=i.lrpad,i.ljust=i.lpad,i.rjust=i.rpad,i.contains=i.include,typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(module.exports=i),exports._s=i):typeof a._!="undefined"?(a._.string=i,a._.str=a._.string):a._={string:i,str:i}}(this||window),function(){var a=this,b=a.Backbone,c;typeof exports!="undefined"?c=exports:c=a.Backbone={},c.VERSION="0.5.3";var d=a._;!d&&typeof require!="undefined"&&(d=require("underscore")._);var e=a.jQuery||a.Zepto;c.noConflict=function(){return a.Backbone=b,this},c.emulateHTTP=!1,c.emulateJSON=!1,c.Events={bind:function(a,b,c){var d=this._callbacks||(this._callbacks={}),e=d[a]||(d[a]=[]);return e.push([b,c]),this},unbind:function(a,b){var c;if(!a)this._callbacks={};else if(c=this._callbacks)if(!b)c[a]=[];else{var d=c[a];if(!d)return this;for(var e=0,f=d.length;e<f;e++)if(d[e]&&b===d[e][0]){d[e]=null;break}}return this},trigger:function(a){var b,c,d,e,f,g=2;if(!(c=this._callbacks))return this;while(g--){d=g?a:"all";if(b=c[d])for(var h=0,i=b.length;h<i;h++)(e=b[h])?(f=g?Array.prototype.slice.call(arguments,1):arguments,e[0].apply(e[1]||this,f)):(b.splice(h,1),h--,i--)}return this}},c.Model=function(a,b){var c;a||(a={});if(c=this.defaults)d.isFunction(c)&&(c=c.call(this)),a=d.extend({},c,a);this.attributes={},this._escapedAttributes={},this.cid=d.uniqueId("c"),this.set(a,{silent:!0}),this._changed=!1,this._previousAttributes=d.clone(this.attributes),b&&b.collection&&(this.collection=b.collection),this.initialize(a,b)},d.extend(c.Model.prototype,c.Events,{_previousAttributes:null,_changed:!1,idAttribute:"id",initialize:function(){},toJSON:function(){return d.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;var c=this.attributes[a];return this._escapedAttributes[a]=w(c==null?"":""+c)},has:function(a){return this.attributes[a]!=null},set:function(a,b){b||(b={});if(!a)return this;a.attributes&&(a=a.attributes);var c=this.attributes,e=this._escapedAttributes;if(!b.silent&&this.validate&&!this._performValidation(a,b))return!1;this.idAttribute in a&&(this.id=a[this.idAttribute]);var f=this._changing;this._changing=!0;for(var g in a){var h=a[g];d.isEqual(c[g],h)||(c[g]=h,delete e[g],this._changed=!0,b.silent||this.trigger("change:"+g,this,h,b))}return!f&&!b.silent&&this._changed&&this.change(b),this._changing=!1,this},unset:function(a,b){if(a in this.attributes){b||(b={});var c=this.attributes[a],d={};return d[a]=void 0,!b.silent&&this.validate&&!this._performValidation(d,b)?!1:(delete this.attributes[a],delete this._escapedAttributes[a],a==this.idAttribute&&delete this.id,this._changed=!0,b.silent||(this.trigger("change:"+a,this,void 0,b),this.change(b)),this)}return this},clear:function(a){a||(a={});var b,c=this.attributes,d={};for(b in c)d[b]=void 0;if(!a.silent&&this.validate&&!this._performValidation(d,a))return!1;this.attributes={},this._escapedAttributes={},this._changed=!0;if(!a.silent){for(b in c)this.trigger("change:"+b,this,void 0,a);this.change(a)}return this},fetch:function(a){a||(a={});var b=this,d=a.success;return a.success=function(c,e,f){if(!b.set(b.parse(c,f),a))return!1;d&&d(b,c)},a.error=v(a.error,b,a),(this.sync||c.sync).call(this,"read",this,a)},save:function(a,b){b||(b={});if(a&&!this.set(a,b))return!1;var d=this,e=b.success;b.success=function(a,c,f){if(!d.set(d.parse(a,f),b))return!1;e&&e(d,a,f)},b.error=v(b.error,d,b);var f=this.isNew()?"create":"update";return(this.sync||c.sync).call(this,f,this,b)},destroy:function(a){a||(a={});if(this.isNew())return this.trigger("destroy",this,this.collection,a);var b=this,d=a.success;return a.success=function(c){b.trigger("destroy",b,b.collection,a),d&&d(b,c)},a.error=v(a.error,b,a),(this.sync||c.sync).call(this,"delete",this,a)},url:function(){var a=t(this.collection)||this.urlRoot||u();return this.isNew()?a:a+(a.charAt(a.length-1)=="/"?"":"/")+encodeURIComponent(this.id)},parse:function(a,b){return a},clone:function(){return new this.constructor(this)},isNew:function(){return this.id==null},change:function(a){this.trigger("change",this,a),this._previousAttributes=d.clone(this.attributes),this._changed=!1},hasChanged:function(a){return a?this._previousAttributes[a]!=this.attributes[a]:this._changed},changedAttributes:function(a){a||(a=this.attributes);var b=this._previousAttributes,c=!1;for(var e in a)d.isEqual(b[e],a[e])||(c=c||{},c[e]=a[e]);return c},previous:function(a){return!a||!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return d.clone(this._previousAttributes)},_performValidation:function(a,b){var c=this.validate(a);return c?(b.error?b.error(this,c,b):this.trigger("error",this,c,b),!1):!0}}),c.Collection=function(a,b){b||(b={}),b.comparator&&(this.comparator=b.comparator),d.bindAll(this,"_onModelEvent","_removeReference"),this._reset(),a&&this.reset(a,{silent:!0}),this.initialize.apply(this,arguments)},d.extend(c.Collection.prototype,c.Events,{model:c.Model,initialize:function(){},toJSON:function(){return this.map(function(a){return a.toJSON()})},add:function(a,b){if(d.isArray(a))for(var c=0,e=a.length;c<e;c++)this._add(a[c],b);else this._add(a,b);return this},remove:function(a,b){if(d.isArray(a))for(var c=0,e=a.length;c<e;c++)this._remove(a[c],b);else this._remove(a,b);return this},get:function(a){return a==null?null:this._byId[a.id!=null?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},sort:function(a){a||(a={});if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return this.models=this.sortBy(this.comparator),a.silent||this.trigger("reset",this,a),this},pluck:function(a){return d.map(this.models,function(b){return b.get(a)})},reset:function(a,b){return a||(a=[]),b||(b={}),this.each(this._removeReference),this._reset(),this.add(a,{silent:!0}),b.silent||this.trigger("reset",this,b),this},fetch:function(a){a||(a={});var b=this,d=a.success;return a.success=function(c,e,f){b[a.add?"add":"reset"](b.parse(c,f),a),d&&d(b,c)},a.error=v(a.error,b,a),(this.sync||c.sync).call(this,"read",this,a)},create:function(a,b){var c=this;b||(b={}),a=this._prepareModel(a,b);if(!a)return!1;var d=b.success;return b.success=function(a,e,f){c.add(a,b),d&&d(a,e,f)},a.save(null,b),a},parse:function(a,b){return a},chain:function(){return d(this.models).chain()},_reset:function(a){this.length=0,this.models=[],this._byId={},this._byCid={}},_prepareModel:function(a,b){if(a instanceof c.Model)a.collection||(a.collection=this);else{var d=a;a=new this.model(d,{collection:this}),a.validate&&!a._performValidation(d,b)&&(a=!1)}return a},_add:function(a,b){b||(b={}),a=this._prepareModel(a,b);if(!a)return!1;var c=this.getByCid(a);if(c)throw new Error(["Can't add the same model to a set twice",c.id]);this._byId[a.id]=a,this._byCid[a.cid]=a;var d=b.at!=null?b.at:this.comparator?this.sortedIndex(a,this.comparator):this.length;return this.models.splice(d,0,a),a.bind("all",this._onModelEvent),this.length++,b.silent||a.trigger("add",a,this,b),a},_remove:function(a,b){return b||(b={}),a=this.getByCid(a)||this.get(a),a?(delete this._byId[a.id],delete this._byCid[a.cid],this.models.splice(this.indexOf(a),1),this.length--,b.silent||a.trigger("remove",a,this,b),this._removeReference(a),a):null},_removeReference:function(a){this==a.collection&&delete a.collection,a.unbind("all",this._onModelEvent)},_onModelEvent:function(a,b,c,d){if(a!="add"&&a!="remove"||c==this)a=="destroy"&&this._remove(b,d),b&&a==="change:"+b.idAttribute&&(delete this._byId[b.previous(b.idAttribute)],this._byId[b.id]=b),this.trigger.apply(this,arguments);else return}});var f=["forEach","each","map","reduce","reduceRight","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","sortBy","sortedIndex","toArray","size","first","rest","last","without","indexOf","lastIndexOf","isEmpty","groupBy"];d.each(f,function(a){c.Collection.prototype[a]=function(){return d[a].apply(d,[this.models].concat(d.toArray(arguments)))}}),c.Router=function(a){a||(a={}),a.routes&&(this.routes=a.routes),this._bindRoutes(),this.initialize.apply(this,arguments)};var g=/:([\w\d]+)/g,h=/\*([\w\d]+)/g,i=/[-[\]{}()+?.,\\^$|#\s]/g;d.extend(c.Router.prototype,c.Events,{initialize:function(){},route:function(a,b,e){c.history||(c.history=new c.History),d.isRegExp(a)||(a=this._routeToRegExp(a)),c.history.route(a,d.bind(function(c){var d=this._extractParameters(a,c);e.apply(this,d),this.trigger.apply(this,["route:"+b].concat(d))},this))},navigate:function(a,b){c.history.navigate(a,b)},_bindRoutes:function(){if(!this.routes)return;var a=[];for(var b in this.routes)a.unshift([b,this.routes[b]]);for(var c=0,d=a.length;c<d;c++)this.route(a[c][0],a[c][1],this[a[c][1]])},_routeToRegExp:function(a){return a=a.replace(i,"\\$&").replace(g,"([^/]*)").replace(h,"(.*?)"),new RegExp("^"+a+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}}),c.History=function(){this.handlers=[],d.bindAll(this,"checkUrl")};var j=/^#*/,k=/msie [\w.]+/,l=!1;d.extend(c.History.prototype,{interval:50,getFragment:function(a,b){if(a==null)if(this._hasPushState||b){a=window.location.pathname;var c=window.location.search;c&&(a+=c),a.indexOf(this.options.root)==0&&(a=a.substr(this.options.root.length))}else a=window.location.hash;return decodeURIComponent(a.replace(j,""))},start:function(a){if(l)throw new Error("Backbone.history has already been started");this.options=d.extend({},{root:"/"},this.options,a),this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&window.history&&window.history.pushState);var b=this.getFragment(),c=document.documentMode,f=k.exec(navigator.userAgent.toLowerCase())&&(!c||c<=7);f&&(this.iframe=e('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(b)),this._hasPushState?e(window).bind("popstate",this.checkUrl):"onhashchange"in window&&!f?e(window).bind("hashchange",this.checkUrl):setInterval(this.checkUrl,this.interval),this.fragment=b,l=!0;var g=window.location,h=g.pathname==this.options.root;if(this._wantsPushState&&!this._hasPushState&&!h)return this.fragment=this.getFragment(null,!0),window.location.replace(this.options.root+"#"+this.fragment),!0;this._wantsPushState&&this._hasPushState&&h&&g.hash&&(this.fragment=g.hash.replace(j,""),window.history.replaceState({},document.title,g.protocol+"//"+g.host+this.options.root+this.fragment));if(!this.options.silent)return this.loadUrl()},route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(a){var b=this.getFragment();b==this.fragment&&this.iframe&&(b=this.getFragment(this.iframe.location.hash));if(b==this.fragment||b==decodeURIComponent(this.fragment))return!1;this.iframe&&this.navigate(b),this.loadUrl()||this.loadUrl(window.location.hash)},loadUrl:function(a){var b=this.fragment=this.getFragment(a),c=d.any(this.handlers,function(a){if(a.route.test(b))return a.callback(b),!0});return c},navigate:function(a,b){var c=(a||"").replace(j,"");if(this.fragment==c||this.fragment==decodeURIComponent(c))return;if(this._hasPushState){var d=window.location;c.indexOf(this.options.root)!=0&&(c=this.options.root+c),this.fragment=c,window.history.pushState({},document.title,d.protocol+"//"+d.host+c)}else window.location.hash=this.fragment=c,this.iframe&&c!=this.getFragment(this.iframe.location.hash)&&(this.iframe.document.open().close(),this.iframe.location.hash=c);b&&this.loadUrl(a)}}),c.View=function(a){this.cid=d.uniqueId("view"),this._configure(a||{}),this._ensureElement(),this.delegateEvents(),this.initialize.apply(this,arguments)};var m=function(a){return e(a,this.el)},n=/^(\S+)\s*(.*)$/,o=["model","collection","el","id","attributes","className","tagName"];d.extend(c.View.prototype,c.Events,{tagName:"div",$:m,initialize:function(){},render:function(){return this},remove:function(){return e(this.el).remove(),this},make:function(a,b,c){var d=document.createElement(a);return b&&e(d).attr(b),c&&e(d).html(c),d},delegateEvents:function(a){if(!a&&!(a=this.events))return;d.isFunction(a)&&(a=a.call(this)),e(this.el).unbind(".delegateEvents"+this.cid);for(var b in a){var c=this[a[b]];if(!c)throw new Error('Event "'+a[b]+'" does not exist');var f=b.match(n),g=f[1],h=f[2];c=d.bind(c,this),g+=".delegateEvents"+this.cid,h===""?e(this.el).bind(g,c):e(this.el).delegate(h,g,c)}},_configure:function(a){this.options&&(a=d.extend({},this.options,a));for(var b=0,c=o.length;b<c;b++){var e=o[b];a[e]&&(this[e]=a[e])}this.options=a},_ensureElement:function(){if(!this.el){var a=this.attributes||{};this.id&&(a.id=this.id),this.className&&(a["class"]=this.className),this.el=this.make(this.tagName,a)}else d.isString(this.el)&&(this.el=e(this.el).get(0))}});var p=function(a,b){var c=s(this,a,b);return c.extend=this.extend,c};c.Model.extend=c.Collection.extend=c.Router.extend=c.View.extend=p;var q={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};c.sync=function(a,b,f){var g=q[a],h=d.extend({type:g,dataType:"json"},f);return h.url||(h.url=t(b)||u()),!h.data&&b&&(a=="create"||a=="update")&&(h.contentType="application/json",h.data=JSON.stringify(b.toJSON())),c.emulateJSON&&(h.contentType="application/x-www-form-urlencoded",h.data=h.data?{model:h.data}:{}),c.emulateHTTP&&(g==="PUT"||g==="DELETE")&&(c.emulateJSON&&(h.data._method=g),h.type="POST",h.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",g)}),h.type!=="GET"&&!c.emulateJSON&&(h.processData=!1),e.ajax(h)};var r=function(){},s=function(a,b,c){var e;return b&&b.hasOwnProperty("constructor")?e=b.constructor:e=function(){return a.apply(this,arguments)},d.extend(e,a),r.prototype=a.prototype,e.prototype=new r,b&&d.extend(e.prototype,b),c&&d.extend(e,c),e.prototype.constructor=e,e.__super__=a.prototype,e},t=function(a){return!a||!a.url?null:d.isFunction(a.url)?a.url():a.url},u=function(){throw new Error('A "url" property or function must be specified')},v=function(a,b,c){return function(d){a?a(b,d,c):b.trigger("error",b,d,c)}},w=function(a){return a.replace(/&(?!\w+;|#\d+;|#x[\da-f]+;)/gi,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g
,"&#x2F;")}}.call(this);var Handlebars={};Handlebars.VERSION="1.0.beta.6",Handlebars.helpers={},Handlebars.partials={},Handlebars.registerHelper=function(a,b,c){c&&(b.not=c),this.helpers[a]=b},Handlebars.registerPartial=function(a,b){this.partials[a]=b},Handlebars.registerHelper("helperMissing",function(a){if(arguments.length===2)return undefined;throw new Error("Could not find property '"+a+"'")});var toString=Object.prototype.toString,functionType="[object Function]";Handlebars.registerHelper("blockHelperMissing",function(a,b){var c=b.inverse||function(){},d=b.fn,e="",f=toString.call(a);f===functionType&&(a=a.call(this));if(a===!0)return d(this);if(a===!1||a==null)return c(this);if(f==="[object Array]"){if(a.length>0)for(var g=0,h=a.length;g<h;g++)e+=d(a[g]);else e=c(this);return e}return d(a)}),Handlebars.registerHelper("each",function(a,b){var c=b.fn,d=b.inverse,e="";if(a&&a.length>0)for(var f=0,g=a.length;f<g;f++)e+=c(a[f]);else e=d(this);return e}),Handlebars.registerHelper("if",function(a,b){var c=toString.call(a);return c===functionType&&(a=a.call(this)),!a||Handlebars.Utils.isEmpty(a)?b.inverse(this):b.fn(this)}),Handlebars.registerHelper("unless",function(a,b){var c=b.fn,d=b.inverse;return b.fn=d,b.inverse=c,Handlebars.helpers["if"].call(this,a,b)}),Handlebars.registerHelper("with",function(a,b){return b.fn(a)}),Handlebars.registerHelper("log",function(a){Handlebars.log(a)});var handlebars=function(){var a={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,statements:6,simpleInverse:7,statement:8,openInverse:9,closeBlock:10,openBlock:11,mustache:12,partial:13,CONTENT:14,COMMENT:15,OPEN_BLOCK:16,inMustache:17,CLOSE:18,OPEN_INVERSE:19,OPEN_ENDBLOCK:20,path:21,OPEN:22,OPEN_UNESCAPED:23,OPEN_PARTIAL:24,params:25,hash:26,param:27,STRING:28,INTEGER:29,BOOLEAN:30,hashSegments:31,hashSegment:32,ID:33,EQUALS:34,pathSegments:35,SEP:36,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",28:"STRING",29:"INTEGER",30:"BOOLEAN",33:"ID",34:"EQUALS",36:"SEP"},productions_:[0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],performAction:function(b,c,d,e,f,g,h){var i=g.length-1;switch(f){case 1:return g[i-1];case 2:this.$=new e.ProgramNode(g[i-2],g[i]);break;case 3:this.$=new e.ProgramNode(g[i]);break;case 4:this.$=new e.ProgramNode([]);break;case 5:this.$=[g[i]];break;case 6:g[i-1].push(g[i]),this.$=g[i-1];break;case 7:this.$=new e.InverseNode(g[i-2],g[i-1],g[i]);break;case 8:this.$=new e.BlockNode(g[i-2],g[i-1],g[i]);break;case 9:this.$=g[i];break;case 10:this.$=g[i];break;case 11:this.$=new e.ContentNode(g[i]);break;case 12:this.$=new e.CommentNode(g[i]);break;case 13:this.$=new e.MustacheNode(g[i-1][0],g[i-1][1]);break;case 14:this.$=new e.MustacheNode(g[i-1][0],g[i-1][1]);break;case 15:this.$=g[i-1];break;case 16:this.$=new e.MustacheNode(g[i-1][0],g[i-1][1]);break;case 17:this.$=new e.MustacheNode(g[i-1][0],g[i-1][1],!0);break;case 18:this.$=new e.PartialNode(g[i-1]);break;case 19:this.$=new e.PartialNode(g[i-2],g[i-1]);break;case 20:break;case 21:this.$=[[g[i-2]].concat(g[i-1]),g[i]];break;case 22:this.$=[[g[i-1]].concat(g[i]),null];break;case 23:this.$=[[g[i-1]],g[i]];break;case 24:this.$=[[g[i]],null];break;case 25:g[i-1].push(g[i]),this.$=g[i-1];break;case 26:this.$=[g[i]];break;case 27:this.$=g[i];break;case 28:this.$=new e.StringNode(g[i]);break;case 29:this.$=new e.IntegerNode(g[i]);break;case 30:this.$=new e.BooleanNode(g[i]);break;case 31:this.$=new e.HashNode(g[i]);break;case 32:g[i-1].push(g[i]),this.$=g[i-1];break;case 33:this.$=[g[i]];break;case 34:this.$=[g[i-2],g[i]];break;case 35:this.$=[g[i-2],new e.StringNode(g[i])];break;case 36:this.$=[g[i-2],new e.IntegerNode(g[i])];break;case 37:this.$=[g[i-2],new e.BooleanNode(g[i])];break;case 38:this.$=new e.IdNode(g[i]);break;case 39:g[i-2].push(g[i]),this.$=g[i-2];break;case 40:this.$=[g[i]]}},table:[{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],defaultActions:{16:[2,1],37:[2,23],53:[2,21]},parseError:function(b,c){throw new Error(b)},parse:function(b){function o(a){d.length=d.length-2*a,e.length=e.length-a,f.length=f.length-a}function p(){var a;return a=c.lexer.lex()||1,typeof a!="number"&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0,l=2,m=1;this.lexer.setInput(b),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var n=this.lexer.yylloc;f.push(n),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var q,r,s,t,u,v,w={},x,y,z,A;for(;;){s=d[d.length-1],this.defaultActions[s]?t=this.defaultActions[s]:(q==null&&(q=p()),t=g[s]&&g[s][q]);if(typeof t=="undefined"||!t.length||!t[0])if(!k){A=[];for(x in g[s])this.terminals_[x]&&x>2&&A.push("'"+this.terminals_[x]+"'");var B="";this.lexer.showPosition?B="Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+A.join(", ")+", got '"+this.terminals_[q]+"'":B="Parse error on line "+(i+1)+": Unexpected "+(q==1?"end of input":"'"+(this.terminals_[q]||q)+"'"),this.parseError(B,{text:this.lexer.match,token:this.terminals_[q]||q,line:this.lexer.yylineno,loc:n,expected:A})}if(t[0]instanceof Array&&t.length>1)throw new Error("Parse Error: multiple actions possible at state: "+s+", token: "+q);switch(t[0]){case 1:d.push(q),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(t[1]),q=null,r?(q=r,r=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,n=this.lexer.yylloc,k>0&&k--);break;case 2:y=this.productions_[t[1]][1],w.$=e[e.length-y],w._$={first_line:f[f.length-(y||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(y||1)].first_column,last_column:f[f.length-1].last_column},v=this.performAction.call(w,h,j,i,this.yy,t[1],e,f);if(typeof v!="undefined")return v;y&&(d=d.slice(0,-1*y*2),e=e.slice(0,-1*y),f=f.slice(0,-1*y)),d.push(this.productions_[t[1]][0]),e.push(w.$),f.push(w._$),z=g[d[d.length-2]][d[d.length-1]],d.push(z);break;case 3:return!0}}return!0}},b=function(){var a={EOF:1,parseError:function(b,c){if(this.yy.parseError)this.yy.parseError(b,c);else throw new Error(b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,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},this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.match+=a,this.matched+=a;var b=a.match(/\n/);return b&&this.yylineno++,this._input=this._input.slice(1),a},unput:function(a){return this._input=a+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=(new Array(a.length+1)).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d;this._more||(this.yytext="",this.match="");var e=this._currentRules();for(var f=0;f<e.length;f++){b=this._input.match(this.rules[e[f]]);if(b){d=b[0].match(/\n.*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-1:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,e[f],this.conditionStack[this.conditionStack.length-1]);if(a)return a;return}}if(this._input==="")return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var b=this.next();return typeof b!="undefined"?b:this.lex()},begin:function(b){this.conditionStack.push(b)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(b){this.begin(b)}};return a.performAction=function(b,c,d,e){var f=e;switch(d){case 0:c.yytext.slice(-1)!=="\\"&&this.begin("mu"),c.yytext.slice(-1)==="\\"&&(c.yytext=c.yytext.substr(0,c.yyleng-1),this.begin("emu"));if(c.yytext)return 14;break;case 1:return 14;case 2:return this.popState(),14;case 3:return 24;case 4:return 16;case 5:return 20;case 6:return 19;case 7:return 19;case 8:return 23;case 9:return 23;case 10:return c.yytext=c.yytext.substr(3,c.yyleng-5),this.popState(),15;case 11:return 22;case 12:return 34;case 13:return 33;case 14:return 33;case 15:return 36;case 16:break;case 17:return this.popState(),18;case 18:return this.popState(),18;case 19:return c.yytext=c.yytext.substr(1,c.yyleng-2).replace(/\\"/g,'"'),28;case 20:return 30;case 21:return 30;case 22:return 29;case 23:return 33;case 24:return c.yytext=c.yytext.substr(1,c.yyleng-2),33;case 25:return"INVALID";case 26:return 5}},a.rules=[/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/],a.conditions={mu:{rules:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],inclusive:!1},emu:{rules:[2],inclusive:!1},INITIAL:{rules:[0,1,26],inclusive:!0}},a}();return a.lexer=b,a}();typeof require!="undefined"&&typeof exports!="undefined"&&(exports.parser=handlebars,exports.parse=function(){return handlebars.parse.apply(handlebars,arguments)},exports.main=function(b){if(!b[1])throw new Error("Usage: "+b[0]+" FILE");if(typeof process!="undefined")var c=require("fs").readFileSync(require("path").join(process.cwd(),b[1]),"utf8");else var d=require("file").path(require("file").cwd()),c=d.join(b[1]).read({charset:"utf-8"});return exports.parser.parse(c)},typeof module!="undefined"&&require.main===module&&exports.main(typeof process!="undefined"?process.argv.slice(1):require("system").args)),Handlebars.Parser=handlebars,Handlebars.parse=function(a){return Handlebars.Parser.yy=Handlebars.AST,Handlebars.Parser.parse(a)},Handlebars.print=function(a){return(new Handlebars.PrintVisitor).accept(a)},Handlebars.logger={DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(a,b){}},Handlebars.log=function(a,b){Handlebars.logger.log(a,b)},function(){Handlebars.AST={},Handlebars.AST.ProgramNode=function(a,b){this.type="program",this.statements=a,b&&(this.inverse=new Handlebars.AST.ProgramNode(b))},Handlebars.AST.MustacheNode=function(a,b,c){this.type="mustache",this.id=a[0],this.params=a.slice(1),this.hash=b,this.escaped=!c},Handlebars.AST.PartialNode=function(a,b){this.type="partial",this.id=a,this.context=b};var a=function(a,b){if(a.original!==b.original)throw new Handlebars.Exception(a.original+" doesn't match "+b.original)};Handlebars.AST.BlockNode=function(b,c,d){a(b.id,d),this.type="block",this.mustache=b,this.program=c},Handlebars.AST.InverseNode=function(b,c,d){a(b.id,d),this.type="inverse",this.mustache=b,this.program=c},Handlebars.AST.ContentNode=function(a){this.type="content",this.string=a},Handlebars.AST.HashNode=function(a){this.type="hash",this.pairs=a},Handlebars.AST.IdNode=function(a){this.type="ID",this.original=a.join(".");var b=[],c=0;for(var d=0,e=a.length;d<e;d++){var f=a[d];f===".."?c++:f==="."||f==="this"?this.isScoped=!0:b.push(f)}this.parts=b,this.string=b.join("."),this.depth=c,this.isSimple=b.length===1&&c===0},Handlebars.AST.StringNode=function(a){this.type="STRING",this.string=a},Handlebars.AST.IntegerNode=function(a){this.type="INTEGER",this.integer=a},Handlebars.AST.BooleanNode=function(a){this.type="BOOLEAN",this.bool=a},Handlebars.AST.CommentNode=function(a){this.type="comment",this.comment=a}}(),Handlebars.Exception=function(a){var b=Error.prototype.constructor.apply(this,arguments);for(var c in b)b.hasOwnProperty(c)&&(this[c]=b[c]);this.message=b.message},Handlebars.Exception.prototype=new Error,Handlebars.SafeString=function(a){this.string=a},Handlebars.SafeString.prototype.toString=function(){return this.string.toString()},function(){var a={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},b=/&(?!\w+;)|[<>"'`]/g,c=/[&<>"'`]/,d=function(b){return a[b]||"&amp;"};Handlebars.Utils={escapeExpression:function(a){return a instanceof Handlebars.SafeString?a.toString():a==null||a===!1?"":c.test(a)?a.replace(b,d):a},isEmpty:function(a){return typeof a=="undefined"?!0:a===null?!0:a===!1?!0:Object.prototype.toString.call(a)==="[object Array]"&&a.length===0?!0:!1}}}(),Handlebars.Compiler=function(){},Handlebars.JavaScriptCompiler=function(){},function(a,b){a.OPCODE_MAP={appendContent:1,getContext:2,lookupWithHelpers:3,lookup:4,append:5,invokeMustache:6,appendEscaped:7,pushString:8,truthyOrFallback:9,functionOrFallback:10,invokeProgram:11,invokePartial:12,push:13,assignToHash:15,pushStringParam:16},a.MULTI_PARAM_OPCODES={appendContent:1,getContext:1,lookupWithHelpers:2,lookup:1,invokeMustache:3,pushString:1,truthyOrFallback:1,functionOrFallback:1,invokeProgram:3,invokePartial:1,push:1,assignToHash:1,pushStringParam:1},a.DISASSEMBLE_MAP={};for(var c in a.OPCODE_MAP){var d=a.OPCODE_MAP[c];a.DISASSEMBLE_MAP[d]=c}a.multiParamSize=function(b){return a.MULTI_PARAM_OPCODES[a.DISASSEMBLE_MAP[b]]},a.prototype={compiler:a,disassemble:function(){var b=this.opcodes,c,d,e=[],f,g,h;for(var i=0,j=b.length;i<j;i++){c=b[i];if(c==="DECLARE")g=b[++i],h=b[++i],e.push("DECLARE "+g+" = "+h);else{f=a.DISASSEMBLE_MAP[c];var k=a.multiParamSize(c),l=[];for(var m=0;m<k;m++)d=b[++i],typeof d=="string"&&(d='"'+d.replace("\n","\\n")+'"'),l.push(d);f=f+" "+l.join(" "),e.push(f)}}return e.join("\n")},guid:0,compile:function(a,b){this.children=[],this.depths={list:[]},this.options=b;var c=this.options.knownHelpers;this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0};if(c)for(var d in c)this.options.knownHelpers[d]=c[d];return this.program(a)},accept:function(a){return this[a.type](a)},program:function(a){var b=a.statements,c;this.opcodes=[];for(var d=0,e=b.length;d<e;d++)c=b[d],this[c.type](c);return this.isSimple=e===1,this.depths.list=this.depths.list.sort(function(a,b){return a-b}),this},compileProgram:function(a){var b=(new this.compiler).compile(a,this.options),c=this.guid++;this.usePartial=this.usePartial||b.usePartial,this.children[c]=b;for(var d=0,e=b.depths.list.length;d<e;d++){depth=b.depths.list[d];if(depth<2)continue;this.addDepth(depth-1)}return c},block:function(a){var b=a.mustache,c,d,e,f,g=this.setupStackForMustache(b),h=this.compileProgram(a.program);a.program.inverse&&(f=this.compileProgram(a.program.inverse),this.declare("inverse",f)),this.opcode("invokeProgram",h,g.length,!!b.hash),this.declare("inverse",null),this.opcode("append")},inverse:function(a){var b=this.setupStackForMustache(a.mustache),c=this.compileProgram(a.program);this.declare("inverse",c),this.opcode("invokeProgram",null,b.length,!!a.mustache.hash),this.declare("inverse",null),this.opcode("append")},hash:function(a){var b=a.pairs,c,d;this.opcode("push","{}");for(var e=0,f=b.length;e<f;e++)c=b[e],d=c[1],this.accept(d),this.opcode("assignToHash",c[0])},partial:function(a){var b=a.id;this.usePartial=!0,a.context?this.ID(a.context):this.opcode("push","depth0"),this.opcode("invokePartial",b.original),this.opcode("append")},content:function(a){this.opcode("appendContent",a.string)},mustache:function(a){var b=this.setupStackForMustache(a);this.opcode("invokeMustache",b.length,a.id.original,!!a.hash),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ID:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth),this.opcode("lookupWithHelpers",a.parts[0]||null,a.isScoped||!1);for(var b=1,c=a.parts.length;b<c;b++)this.opcode("lookup",a.parts[b])},STRING:function(a){this.opcode("pushString",a.string)},INTEGER:function(a){this.opcode("push",a.integer)},BOOLEAN:function(a){this.opcode("push",a.bool)},comment:function(){},pushParams:function(a){var b=a.length,c;while(b--)c=a[b],this.options.stringParams?(c.depth&&this.addDepth(c.depth),this.opcode("getContext",c.depth||0),this.opcode("pushStringParam",c.string)):this[c.type](c)},opcode:function(b,c,d,e){this.opcodes.push(a.OPCODE_MAP[b]),c!==undefined&&this.opcodes.push(c),d!==undefined&&this.opcodes.push(d),e!==undefined&&this.opcodes.push(e)},declare:function(a,b){this.opcodes.push("DECLARE"),this.opcodes.push(a),this.opcodes.push(b)},addDepth:function(a){if(a===0)return;this.depths[a]||(this.depths[a]=!0,this.depths.list.push(a))},setupStackForMustache:function(a){var b=a.params;return this.pushParams(b),a.hash&&this.hash(a.hash),this.ID(a.id),b}},b.prototype={nameLookup:function(a,c,d){return/^[0-9]+$/.test(c)?a+"["+c+"]":b.isValidJavaScriptVariableName(c)?a+"."+c:a+"['"+c+"']"},appendToBuffer:function(a){return this.environment.isSimple?"return "+a+";":"buffer += "+a+";"},initializeBuffer:function(){return this.quotedString("")},namespace:"Handlebars",compile:function(a,b,c,d){this.environment=a,this.options=b||{},this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],aliases:{self:"this"},registers:{list:[]}},this.preamble(),this.stackSlot=0,this.stackVars=[],this.compileChildren(a,b);var e=a.opcodes,f;this.i=0;for(h=e.length;this.i<h;this.i++)f=this.nextOpcode(0),f[0]==="DECLARE"?(this.i=this.i+2,this[f[1]]=f[2]):(this.i=this.i+f[1].length,this[f[0]].apply(this,f[1]));return this.createFunctionContext(d)},nextOpcode:function(b){var c=this.environment.opcodes,d=c[this.i+b],e,f,g,h;if(d==="DECLARE")return e=c[this.i+1],f=c[this.i+2],["DECLARE",e,f];e=a.DISASSEMBLE_MAP[d],g=a.multiParamSize(d),h=[];for(var i=0;i<g;i++)h.push(c[this.i+i+1+b]);return[e,h]},eat:function(a){this.i=this.i+a.length},preamble:function(){var a=[];this.useRegister("foundHelper");if(!this.isChild){var b=this.namespace,c="helpers = helpers || "+b+".helpers;";this.environment.usePartial&&(c=c+" partials = partials || "+b+".partials;"),a.push(c)}else a.push("");this.environment.isSimple?a.push(""):a.push(", buffer = "+this.initializeBuffer()),this.lastContext=0,this.source=a},createFunctionContext:function(a){var b=this.stackVars;this.isChild||(b=b.concat(this.context.registers.list)),b.length>0&&(this.source[1]=this.source[1]+", "+b.join(", "));if(!this.isChild){var c=[];for(var d in this.context.aliases)this.source[1]=this.source[1]+", "+d+"="+this.context.aliases[d]}this.source[1]&&(this.source[1]="var "+this.source[1].substring(2)+";"),this.isChild||(this.source[1]+="\n"+this.context.programs.join("\n")+"\n"),this.environment.isSimple||this.source.push("return buffer;");var e=this.isChild?["depth0","data"]:["Handlebars","depth0","helpers","partials","data"];for(var f=0,g=this.environment.depths.list.length;f<g;f++)e.push("depth"+this.environment.depths.list[f]);if(a)return e.push(this.source.join("\n  ")),Function.apply(this,e);var h="function "+(this.name||"")+"("+e.join(",")+") {\n  "+this.source.join("\n  ")+"}";return Handlebars.log(Handlebars.logger.DEBUG,h+"\n\n"),h},appendContent:function(a){this.source.push(this.appendToBuffer(this.quotedString(a)))},append:function(){var a=this.popStack();this.source.push("if("+a+" || "+a+" === 0) { "+this.appendToBuffer(a)+" }"),this.environment.isSimple&&this.source.push("else { "+this.appendToBuffer("''")+" }")},appendEscaped:function(){var a=this.nextOpcode(1),b="";this.context.aliases.escapeExpression="this.escapeExpression",a[0]==="appendContent"&&(b=" + "+this.quotedString(a[1][0]),this.eat(a)),this.source.push(this.appendToBuffer("escapeExpression("+this.popStack()+")"+b))},getContext:function(a){this.lastContext!==a&&(this.lastContext=a)},lookupWithHelpers:function(a,b){if(a){var c=this.nextStack();this.usingKnownHelper=!1;var d;!b&&this.options.knownHelpers[a]?(d=c+" = "+this.nameLookup("helpers",a,"helper"),this.usingKnownHelper=!0):b||this.options.knownHelpersOnly?d=c+" = "+this.nameLookup("depth"+this.lastContext,a,"context"):(this.register("foundHelper",this.nameLookup("helpers",a,"helper")),d=c+" = foundHelper || "+this.nameLookup("depth"+this.lastContext,a,"context")),d+=";",this.source.push(d)}else this.pushStack("depth"+this.lastContext)},lookup:function(a){var b=this.topStack();this.source.push(b+" = ("+b+" === null || "+b+" === undefined || "+b+" === false ? "+b+" : "+this.nameLookup(b,a,"context")+");")},pushStringParam:function(a){this.pushStack("depth"+this.lastContext),this.pushString(a)},pushString:function(a){this.pushStack(this.quotedString(a))},push:function(a){this.pushStack(a)},invokeMustache:function(a,b,c){this.populateParams(a,this.quotedString(b),"{}",null,c,function(a,b,c){this.usingKnownHelper||(this.context.aliases.helperMissing="helpers.helperMissing",this.context.aliases.undef="void 0",this.source.push("else if("+c+"=== undef) { "+a+" = helperMissing.call("+b+"); }"),a!==c&&this.source.push("else { "+a+" = "+c+"; }"))})},invokeProgram:function(a,b,c){var d=this.programExpression(this.inverse),e=this.programExpression(a);this.populateParams(b,null,e,d,c,function(a,b,c){this.usingKnownHelper||(this.context.aliases.blockHelperMissing="helpers.blockHelperMissing",this.source.push("else { "+a+" = blockHelperMissing.call("+b+"); }"))})},populateParams:function(a,b,c,d,e,f){var g=e||this.options.stringParams||d||this.options.data,h=this.popStack(),i,j=[],k,l,m;g?(this.register("tmp1",c),m="tmp1"):m="{ hash: {} }";if(g){var n=e?this.popStack():"{}";this.source.push("tmp1.hash = "+n+";")}this.options.stringParams&&this.source.push("tmp1.contexts = [];");for(var o=0;o<a;o++)k=this.popStack(),j.push(k),this.options.stringParams&&this.source.push("tmp1.contexts.push("+this.popStack()+");");d&&(this.source.push("tmp1.fn = tmp1;"),this.source.push("tmp1.inverse = "+d+";")),this.options.data&&this.source.push("tmp1.data = data;"),j.push(m),this.populateCall(j,h,b||h,f,c!=="{}")},populateCall:function(a,b,c,d,e){var f=["depth0"].concat(a).join(", "),g=["depth0"].concat(c).concat(a).join(", "),h=this.nextStack();if(this.usingKnownHelper)this.source.push(h+" = "+b+".call("+f+");");else{this.context.aliases.functionType='"function"';var i=e?"foundHelper && ":"";this.source.push("if("+i+"typeof "+b+" === functionType) { "+h+" = "+b+".call("+f+"); }")}d.call(this,h,g,b),this.usingKnownHelper=!1},invokePartial:function(a){params=[this.nameLookup("partials",a,"partial"),"'"+a+"'",this.popStack(),"helpers","partials"],this.options.data&&params.push("data"),this.pushStack("self.invokePartial("+params.join(", ")+");")},assignToHash:function(a){var b=this.popStack(),c=this.topStack();this.source.push(c+"['"+a+"'] = "+b+";")},compiler:b,compileChildren:function(a,b){var c=a.children,d,e;for(var f=0,g=c.length;f<g;f++){d=c[f],e=new this.compiler,this.context.programs.push("");var h=this.context.programs.length;d.index=h,d.name="program"+h,this.context.programs[h]=e.compile(d,b,this.context)}},programExpression:function(a){if(a==null)return"self.noop";var b=this.environment.children[a],c=b.depths.list,d=[b.index,b.name,"data"];for(var e=0,f=c.length;e<f;e++)depth=c[e],depth===1?d.push("depth0"):d.push("depth"+(depth-1));return c.length===0?"self.program("+d.join(", ")+")":(d.shift(),"self.programWithDepth("+d.join(", ")+")")},register:function(a,b){this.useRegister(a),this.source.push(a+" = "+b+";")},useRegister:function(a){this.context.registers[a]||(this.context.registers[a]=!0,this.context.registers.list.push(a))},pushStack:function(a){return this.source.push(this.nextStack()+" = "+a+";"),"stack"+this.stackSlot},nextStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),"stack"+this.stackSlot},popStack:function(){return"stack"+this.stackSlot--},topStack:function(){return"stack"+this.stackSlot},quotedString:function(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r")+'"'}};var e="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "),f=b.RESERVED_WORDS={};for(var g=0,h=e.length;g<h;g++)f[e[g]]=!0;b.isValidJavaScriptVariableName=function(a){return!b.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(a)?!0:!1}}(Handlebars.Compiler,Handlebars.JavaScriptCompiler),Handlebars.precompile=function(a,b){b=b||{};var c=Handlebars.parse(a),d=(new Handlebars.Compiler).compile(c,b);return(new Handlebars.JavaScriptCompiler).compile(d,b)},Handlebars.compile=function(a,b){function d(){var c=Handlebars.parse(a),d=(new Handlebars.Compiler).compile(c,b),e=(new Handlebars.JavaScriptCompiler).compile(d,b,undefined,!0);return Handlebars.template(e)}b=b||{};var c;return function(a,b){return c||(c=d()),c.call(this,a,b)}},Handlebars.VM={template:function(a){var b={escapeExpression:Handlebars.Utils.escapeExpression,invokePartial:Handlebars.VM.invokePartial,programs:[],program:function(a,b,c){var d=this.programs[a];return c?Handlebars.VM.program(b,c):d?d:(d=this.programs[a]=Handlebars.VM.program(b),d)},programWithDepth:Handlebars.VM.programWithDepth,noop:Handlebars.VM.noop};return function(c,d){return d=d||{},a.call(b,Handlebars,c,d.helpers,d.partials,d.data)}},programWithDepth:function(a,b,c){var d=Array.prototype.slice.call(arguments,2);return function(c,e){return e=e||{},a.apply(this,[c,e.data||b].concat(d))}},program:function(a,b){return function(c,d){return d=d||{},a(c,d.data||b)}},noop:function(){return""},invokePartial:function(a,b,c,d,e,f){options={helpers:d,partials:e,data:f};if(a===undefined)throw new Handlebars.Exception("The partial "+b+" could not be found");if(a instanceof Function)return a(c,options);if(!Handlebars.compile)throw new Handlebars.Exception("The partial "+b+" could not be compiled when running in runtime-only mode");return e[b]=Handlebars.compile(a),e[b](c,options)}},Handlebars.template=Handlebars.VM.template,function(a,b){function k(a,b){var c=a+"";while(c.length<b)c="0"+c;return c}function l(b,c,d,e){var f=typeof c=="string",g=f?{}:c,h,i,j,k;return f&&e&&(g[c]=e),h=(g.ms||g.milliseconds||0)+(g.s||g.seconds||0)*1e3+(g.m||g.minutes||0)*6e4+(g.h||g.hours||0)*36e5,i=(g.d||g.days||0)+(g.w||g.weeks||0)*7,j=(g.M||g.months||0)+(g.y||g.years||0)*12,h&&b.setTime(+b+h*d),i&&b.setDate(b.getDate()+i*d),j&&(k=b.getDate(),b.setDate(1),b.setMonth(b.getMonth()+j*d),b.setDate(Math.min((new a(b.getFullYear(),b.getMonth()+1,0)).getDate(),k))),b}function m(a){return Object.prototype.toString.call(a)==="[object Array]"}function n(b){return new a(b[0],b[1]||0,b[2]||1,b[3]||0,b[4]||0,b[5]||0,b[6]||0)}function o(b,d){function t(d){var n,u;switch(d){case"M":return e+1;case"Mo":return e+1+r(e+1);case"MM":return k(e+1,2);case"MMM":return c.monthsShort[e];case"MMMM":return c.months[e];case"D":return f;case"Do":return f+r(f);case"DD":return k(f,2);case"DDD":return n=new a(g,e,f),u=new a(g,0,1),~~((n-u)/864e5+1.5);case"DDDo":return n=t("DDD"),n+r(n);case"DDDD":return k(t("DDD"),3);case"d":return h;case"do":return h+r(h);case"ddd":return c.weekdaysShort[h];case"dddd":return c.weekdays[h];case"w":return n=new a(g,e,f-h+5),u=new a(n.getFullYear(),0,4),~~((n-u)/864e5/7+1.5);case"wo":return n=t("w"),n+r(n);case"ww":return k(t("w"),2);case"YY":return k(g%100,2);case"YYYY":return g;case"a":return i>11?s.pm:s.am;case"A":return i>11?s.PM:s.AM;case"H":return i;case"HH":return k(i,2);case"h":return i%12||12;case"hh":return k(i%12||12,2);case"m":return j;case"mm":return k(j,2);case"s":return l;case"ss":return k(l,2);case"zz":case"z":return(b.toString().match(q)||[""])[0].replace(p,"");case"Z":return(m>0?"+":"-")+k(~~(m/60),2)+":"+k(~~(m%60),2);case"ZZ":return(m>0?"+":"-")+k(~~(10*m/6),4);case"L":case"LL":case"LLL":case"LLLL":return o(b,c.longDateFormat[d]);default:return d.replace("\\","")}}var e=b.getMonth(),f=b.getDate(),g=b.getFullYear(),h=b.getDay(),i=b.getHours(),j=b.getMinutes(),l=b.getSeconds(),m=b.getTimezoneOffset(),n=/(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|dddd?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|zz?|ZZ?|LL?L?L?)/g,p=/[^A-Z]/g,q=/\([A-Za-z ]+\)|:[0-9]{2} [A-Z]{3} /g,r=c.ordinal,s=c.meridiem;return d.replace(n,t)}function p(b,c){function p(a,b){var c;switch(a){case"M":case"MM":d[1]=~~b-1;break;case"D":case"DD":case"DDD":case"DDDD":d[2]=~~b;break;case"YY":b=~~b,d[0]=b+(b>70?1900:2e3);break;case"YYYY":d[0]=~~Math.abs(b);break;case"a":case"A":o=b.toLowerCase
()==="pm";break;case"H":case"HH":case"h":case"hh":d[3]=~~b;break;case"m":case"mm":d[4]=~~b;break;case"s":case"ss":d[5]=~~b;break;case"Z":case"ZZ":g=!0,c=b.match(j),c[1]&&(e=~~c[1]),c[2]&&(f=~~c[2]),c[0]==="-"&&(e=-e,f=-f)}}var d=[0,0,1,0,0,0,0],e=0,f=0,g=!1,h=/(\\)?(MM?|DD?D?D?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|ZZ?)/g,i=/(\\)?([0-9]+|am|pm|([\+\-]\d\d:?\d\d))/gi,j=/([\+\-]|\d\d)/gi,k=b.match(i),l=c.match(h),m,o;for(m=0;m<l.length;m++)p(l[m],k[m]);return o&&d[3]<12&&(d[3]+=12),!o&&d[3]===12&&(d[3]=0),d[3]+=e,d[4]+=f,g?new a(a.UTC.apply({},d)):n(d)}function q(a,b){var c=Math.min(a.length,b.length),d=Math.abs(a.length-b.length),e=0,f;for(f=0;f<c;f++)~~a[f]!==~~b[f]&&e++;return e+d}function r(a,b){var c,d=/(\\)?([0-9]+|am|pm|([\+\-]\d\d:?\d\d))/gi,e=a.match(d),f=[],g=99,h,i,j;for(h=0;h<b.length;h++)i=p(a,b[h]),j=q(e,o(i,b[h]).match(d)),j<g&&(g=j,c=i);return c}function s(a){this._d=a}function t(a,b,d){var e=c.relativeTime[a];return typeof e=="function"?e(b||1,!!d,a):e.replace(/%d/i,b||1)}function u(a,b){var c=d(Math.abs(a)/1e3),e=d(c/60),f=d(e/60),g=d(f/24),h=d(g/365),i=c<45&&["s",c]||e===1&&["m"]||e<45&&["mm",e]||f===1&&["h"]||f<22&&["hh",f]||g===1&&["d"]||g<=25&&["dd",g]||g<=45&&["M"]||g<345&&["MM",d(g/30)]||h===1&&["y"]||["yy",h];return i[2]=b,t.apply({},i)}function v(a,b){c.fn[a]=function(a){return a!=null?(this._d["set"+b](a),this):this._d["get"+b]()}}var c,d=Math.round,e={},f=typeof module!="undefined",g="months|monthsShort|weekdays|weekdaysShort|longDateFormat|relativeTime|ordinal|meridiem".split("|"),h,i="1.2.0",j="Month|Date|Hours|Minutes|Seconds".split("|");c=function(c,d){if(c===null)return null;var e;return c&&c._d instanceof a?e=new a(+c._d):d?m(d)?e=r(c,d):e=p(c,d):e=c===b?new a:c instanceof a?c:m(c)?n(c):new a(c),new s(e)},c.version=i,c.lang=function(a,b){var d,h,i;b&&(e[a]=b);if(e[a])for(d=0;d<g.length;d++)h=g[d],c[h]=e[a][h]||c[h];else f&&(i=require("./lang/"+a),c.lang(a,i))},c.lang("en",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),longDateFormat:{L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY h:mm A",LLLL:"dddd, MMMM D YYYY h:mm A"},meridiem:{AM:"AM",am:"am",PM:"PM",pm:"pm"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10;return~~(a%100/10)===1?"th":b===1?"st":b===2?"nd":b===3?"rd":"th"}}),c.fn=s.prototype={clone:function(){return c(this)},valueOf:function(){return+this._d},"native":function(){return this._d},toString:function(){return this._d.toString()},toDate:function(){return this._d},format:function(a){return o(this._d,a)},add:function(a,b){return this._d=l(this._d,a,1,b),this},subtract:function(a,b){return this._d=l(this._d,a,-1,b),this},diff:function(a,b,e){var f=c(a),g=this._d-f._d,h=this.year()-f.year(),i=this.month()-f.month(),j=this.day()-f.day(),k;return b==="months"?k=h*12+i+j/30:b==="years"?k=h+i/12:k=b==="seconds"?g/1e3:b==="minutes"?g/6e4:b==="hours"?g/36e5:b==="days"?g/864e5:b==="weeks"?g/6048e5:b==="days"?g/3600:g,e?k:d(k)},from:function(a,b){var d=this.diff(a),e=c.relativeTime,f=u(d,b);return b?f:(d<=0?e.past:e.future).replace(/%s/i,f)},fromNow:function(a){return this.from(c(),a)},isLeapYear:function(){var a=this.year();return a%4===0&&a%100!==0||a%400===0},isDST:function(){return this.zone()!==c([this.year()]).zone()}};for(h=0;h<j.length;h++)v(j[h].toLowerCase(),j[h]);v("year","FullYear"),c.fn.day=function(){return this._d.getDay()},c.fn.zone=function(){return this._d.getTimezoneOffset()},f&&(module.exports=c),typeof window!="undefined"&&(window.moment=c)}(Date);var textile;(function(){function a(a){this.osrc=this.src=a,this.out="",this.footnotes=[]}function o(a){var b={style:""};if(!a)return b;var c=0,d=0,e;if(e=m.exec(a)){var f=e[1];f.length&&!/;$/.test(f)&&(f+=";"),b.style=f}if(e=a.match(h))c+=e.length;if(e=a.match(i))d+=e.length;if(e=a.match(k)){var o=e.length;for(j=0;j<o&&e[j].length==2;j++);if(j<o){e=l.exec(e[j]);if(e[1]||e[2])c-=o-j,d-=o-j;e[1]&&(b["class"]=e[1]),e[2]&&(b.id=e[2])}}if(e=n.exec(a))b.lang=e[1];c>0&&(b.style+="padding-left:"+c+"em;"),d>0&&(b.style+="padding-right:"+d+"em;");if(e=g.exec(a))b.style+="text-align:"+g.values[e[0]]+";";return b}function r(a,b,c){var e=new RegExp("(?:^|\\{|\\[|(["+q+"]|\\s|>))"+a+"(?:"+f.source+" ?)?([^\\s"+a+"]+|\\S[^"+a+"\\n]*[^\\s"+a+"\\n])"+a+"(?:$|[\\]}]|("+d.source+"{1,2}|\\s))","g");return function(a){var d=[],f;while(f=e.exec(a)){var g=f[1]||"",h=f[4]||"",i=o(f[2]),j=this.makeTag(b,i),k=[a.slice(0,f.index)+g,h];if(c){var l=this.escapeHTML(f[3]);k.splice(1,0,j.open+l+j.close)}else k.splice(1,0,j.open,f[3],j.close);d=this.joinPhraseBits(d,k,d.length),a=a.slice(e.lastIndex),e.lastIndex=0}return d.length&&(d[d.length-1]+=a),d}}textile=function(b){return tc=new a(b),tc.convert()},a.prototype={convert:function(){this.src=this.src.replace(/^\n+/,"");while(this.src.length){for(var a=0;a<z.length;a++)if(z[a].match.apply(this)){z[a].run.apply(this);break}if(a==z.length)throw new Error("Error - couldn't match any block type for:\n\n"+this.src);this.out+="\n\n",this.src=this.src.replace(/^\n+/,"")}return this.out.trim()},getBlock:function(){var a=this.src.search("\n\n");a==-1&&(a=this.src.length);var b=this.src.slice(0,a).trim();return this.src=this.src.slice(a+2),b},getLine:function(){var a=this.src.search("\n");a==-1&&(a=this.src.length);var b=this.src.slice(0,a).trim();return this.src=this.src.slice(a+1),b},footnoteID:function(a){return this.footnotes[a]||(this.footnotes[a]="fn"+(Math.random()+"").slice(2)+(new Date).getTime()),this.footnotes[a]},convertSpan:function(a){var b=[a];for(var c=0;c<p.length;c++)for(var d=0;d<b.length;d+=2){var e=p[c].call(this,b[d]);e.length&&(b[d]="",b=this.joinPhraseBits(b,e,d+1))}for(var c=0;c<b.length;c+=2)b[c]=this.convertGlyphs(b[c]);return b.join("")},joinPhraseBits:function(a,b,c){return a.length?(c=Math.min(c,a.length),c%2&&(a[c-1]+=b[0],b=b.slice(1)),b.length%2&&c<a.length&&b.length>1&&(a[c]+=b[b.length-1],b=b.slice(0,-1)),a.slice(0,c).concat(b,a.slice(c))):b},convertGlyphs:function(a){for(var b=0;b<e.length;b++)a=a.replace(e[b][0],e[b][1]);var c=a.split(/(<[^<]+?>)/);for(var b=0;b<c.length;b+=2)c[b]=c[b].replace("<","&#60;").replace(">","&#62;");return a=c.join(""),a},makeTag:function(a,b){var c="<"+a;for(var d in b)b[d]&&(c+=" "+d+'="'+b[d]+'"');var e=c+" />";c+=">";var f="</"+a+">";return{single:e,open:c,close:f,name:a}}};var b=a.prototype.makeTag("p"),c=/<[^<]+?>/g,d=/[!"#$%&\'()*+,\-./:;<=>?@[\\\]^_`{|}~]/,e=[[/\n(?! )/g,"<br />\n"],[/(\w)'(\w)/g,"$1&#8217;$2"],[/(\s)'(\d+\w?)\b(?!')/g,"$1&#8217;$2"],[new RegExp("(\\S)'(?=\\s|"+d.source+"|<|$)","g"),"$1&#8217;"],[/'/g,"&#8216;"],[new RegExp('(\\S)"(?=\\s|'+d.source+"|<|$)","g"),"$1&#8221;"],[/"/g,"&#8220;"],[/\b([A-Z][A-Z0-9]{2,})\b(?:\(([^\)]*)\))/g,'<acronym title="$2"><span class="caps">$1</span></acronym>'],[/\b([A-Z][A-Z'\-]+[A-Z])(?=[\s.,\)>]|$)/g,'<span class="caps">$1</span>'],[/\b( ?)\.{3}/g,"$1&#8230;"],[/(\s?)--(\s?)/g,"$1&#8212;$2"],[/(\s?)-(?:\s|$)/g," &#8211; "],[/(\d)( ?)x( ?)(?=\d)/g,"$1$2&#215;$3"],[/(?:^|\b)( ?)\(TM\)/gi,"$1&#8482;"],[/(?:^|\b)( ?)\(R\)/gi,"$1&#174;"],[/(?:^|\b)( ?)\(C\)/gi,"$1&#169;"]],f=/((?:<|>|=|<>|\(+(?!\w)|\)+|(?:\([^#\)]*(?:#(?:[a-zA-Z]+[_a-zA-Z0-9-:.]*))?\))|\{.*?\}|\[.*?\])+)/,g=/<>|<|>|=/;g.values={"<":"left",">":"right","<>":"justify","=":"center"};var h=/\(/g,i=/\)/g,k=/\(([^\(#\)]*)(?:#([a-zA-Z]+[_a-zA-Z0-9-:.]*))?\)/g,l=new RegExp(k.source),m=/\{(.*?)\}/,n=/\[(.*?)\]/,p=textile.phraseTypes=[],q="\\.,\"'?!;:";p.push(r("\\*\\*","b")),p.push(r("__","i")),p.push(r("\\*","strong")),p.push(r("_","em")),p.push(r("\\?\\?","cite")),p.push(r("\\-","del")),p.push(r("\\+","ins")),p.push(r("\\%","span")),p.push(r("~","sub")),p.push(r("\\^","sup"));var s=/(?:^|([\s(>])|\[|\{)@(.*?)@(?:([\s)])|$|\]|\})?/gm;p.push(function(a){var b=[],c;while(c=s.exec(a)){var d=c[1]||"",e=c[3]||"",f=[a.slice(0,c.index)+d,"<code>"+this.escapeHTML(c[2])+"</code>",e];b=this.joinPhraseBits(b,f,b.length),a=a.slice(s.lastIndex),s.lastIndex=0}return b.length&&(b[b.length-1]+=a),b});var t=/(?:^|([\s(>])|\[|\{)==(.*?)==(?:([\s)])|$|\]\})?/gm;p.push(function(a){var b=[],c;while(c=t.exec(a)){var d=c[1]||"",e=c[3]||"",f=[a.slice(0,c.index)+d,c[2],e];b=this.joinPhraseBits(b,f,b.length),a=a.slice(t.lastIndex),t.lastIndex=0}return b.length&&(b[b.length-1]+=a),b});var u=/(?:^|([\s(>])|\[|\{)"(.*?)(?:\((.*)\))?":(\S+?)(?:$|([\s),!?;]|\.(?:$|\s))|\]|\})/g;p.push(function(a){var b=[],c;while(c=u.exec(a)){var d=c[1]||"",e=c[5]||"",f={href:c[4],title:c[3]},g=this.makeTag("a",f),h=[a.slice(0,c.index)+d,g.open,c[2],g.close,e];b=this.joinPhraseBits(b,h,b.length),a=a.slice(u.lastIndex),u.lastIndex=0}return b.length&&(b[b.length-1]+=a),b});var v=/(?:^|([\s(>])|\[|\{)!(.*?)(?:\((.*)\))?!(?::(\S+))?(?:$|([\s)])|\]|\})/g;p.push(function(a){var b=[],c;while(c=v.exec(a)){var d=c[1]||"",e=c[5]||"",f={src:c[2],title:c[3],alt:c[3]},g=this.makeTag("img",f).single;if(c[4]){var h=this.makeTag("a",{href:c[4]});g=h.open+g+h.close}var i=[a.slice(0,c.index)+d,g,e];b=this.joinPhraseBits(b,i,b.length),a=a.slice(v.lastIndex),v.lastIndex=0}return b.length&&(b[b.length-1]+=a),b});var w=/(^|\S)\[(\d+)\]([\s\.,;:?!'"]|$)/g;p.push(function(a){var b=[],c;while(c=w.exec(a)){var d=c[1]||"",e=c[3]||"",f=this.footnoteID(c[2]),g=this.makeTag("a",{href:"#"+f}),h=[a.slice(0,c.index)+d,'<sup class="footnote">'+g.open+c[2]+g.close+"</sup>",e];b=this.joinPhraseBits(b,h,b.length),a=a.slice(w.lastIndex),w.lastIndex=0}return b.length&&(b[b.length-1]+=a),b});var x=/<code>((?:.|\n)*?)<\/code>/gm;p.push(function(a){var b,c=[];while(b=x.exec(a)){var d=a.slice(0,b.index),e="<code>"+this.escapeHTML(b[1])+"</code>";a=a.slice(x.lastIndex),d=this.convertGlyphs(d),c=this.joinPhraseBits(c,[d,e],c.length+1),x.lastIndex=0}return c.length&&c.push(a),c});var y=/<notextile>((?:.|\n)*?)<\/notextile>/gm;p.push(function(a){var b,c=[];while(b=y.exec(a)){var d=a.slice(0,b.index),e=b[1];a=a.slice(y.lastIndex),d=this.convertGlyphs(d),c=this.joinPhraseBits(c,[d,e],c.length+1),y.lastIndex=0}return c.length&&c.push(a),c}),p.push(function(a){var b,d=[];while(b=c.exec(a)){var e=a.slice(0,b.index),f=a.slice(b.index,c.lastIndex);a=a.slice(c.lastIndex),e=this.convertGlyphs(e),d=this.joinPhraseBits(d,[e,f],d.length+1),c.lastIndex=0}return d.length&&d.push(a),d});var z=textile.blockTypes=[],A=new RegExp("^[a-zA-Z][a-zA-Z0-9]*"+f.source+"?\\.+ "),B=new RegExp("^(#+|\\*+)"+f.source+"? "),C=a.prototype.makeTag("li"),D={match:function(){return B.test(this.src)},run:function(){var a,b="",c=[],d=0,e,b="";while(a=this.src.match(B)){var a=this.src.match(B),b=a[1],f=b[0]=="#"?"ol":"ul",g=b.length;while(g<d){this.out+=C.close+"\n"+e.close;var h=c.pop()||{level:0};d=h.level,e=h.tag}if(g==d&&e&&f!=e.name){this.out+=e.close+C.close+"\n";var h=c.pop()||{level:0};d=h.level,e=h.tag}d>0&&(g==d&&(this.out+=C.close),this.out+="\n");if(g>d||a[2]){e&&c.push({level:d,tag:e});var i=o(a[2]);e=this.makeTag(f,i),d=g,this.out+=e.open+"\n"}this.src=this.src.slice(a[0].length);var j=this.getLine();j=this.convertSpan(j),this.out+=C.open+j}this.out+=C.close+"\n";while(c.length)this.out+=e.close+C.close+"\n",e=c.pop().tag;this.out+=e.close}};z.push(D);var E=new RegExp("^(table"+f.source+"?. *\\n)?(("+f.source+"?\\. )?\\|.*\\|\\n?)+(?:\\n\\n|$)"),F=new RegExp("^(?:"+f.source+"?\\. )?\\|.*\\|(?:\\n|$)"),G=new RegExp("^(_)?(\\^|-|~)?(?:\\\\(\\d+))?(?:/(\\d+))?"+f.source+"?\\. "),H={match:function(){return E.test(this.src)},run:function(){var a=E.exec(this.src);if(a[1]){var b=o(a[2]);tableTag=this.makeTag("table",b),this.getLine()}else tableTag=this.makeTag("table");this.out+=tableTag.open+"\n";while(a=F.exec(this.src)){var c;a[1]?(b=o(a[1]),c=this.makeTag("tr",b)):c=this.makeTag("tr"),this.out+=c.open+"\n";var d=this.getLine(),e=d.split("|"),f=e.length;for(var g=1;g<f-1;g++){var h=e[g];if(a=G.exec(h)){h=h.slice(a[0].length),b=o(a[5]);var i=a[1]?"th":"td";switch(a[2]){case"^":b.style+="vertical-align:top;";break;case"-":b.style+="vertical-align:middle;";break;case"~":b.style+="vertical-align:bottom;"}a[3]&&(b.colspan=a[3]),a[4]&&(b.rowspan=a[4]);var j=this.makeTag(i,b)}else j=this.makeTag("td");h=this.convertSpan(h),this.out+=j.open+h+j.close+"\n"}this.out+=c.close+"\n"}this.out+=tableTag.close}};z.push(H);var I=new RegExp("^fn(\\d+)"+f.source+"?\\.(\\.)? "),J={match:function(){return I.test(this.src)},run:function(){var a=this.src.match(I),b=parseInt(a[1]),c=o(a[2]);c.id=this.footnoteID(b),c["class"]="footnote";var d=this.makeTag("p",c),e=a[3]!=undefined;this.src=this.src.slice(a[0].length);var f=this.getBlock();f=this.convertSpan(f),this.out+=d.open+"<sup>"+b+"</sup> "+f+d.close;if(e)while(this.src.length&&!A.test(this.src)){var f=this.getBlock();f=this.convertSpan(f),this.out+="\n"+d.open+f+d.close}}};z.push(J);var K=new RegExp("^bq"+f.source+"?\\.(\\.)?(?::(\\S+))? "),L={match:function(){return K.test(this.src)},run:function(){var a=this.src.match(K),b=o(a[1]),c=this.makeTag("p",b);a[3]&&(b.cite=a[3]);var d=this.makeTag("blockquote",b),e=a[2]!=undefined;this.src=this.src.slice(a[0].length);var f=this.getBlock();f=this.convertSpan(f),this.out+=d.open+"\n"+c.open+f+c.close;if(e)while(this.src.length&&!A.test(this.src)){var f=this.getBlock();f=this.convertSpan(f),this.out+="\n"+c.open+f+c.close}this.out+="\n"+d.close}};z.push(L);var M=new RegExp("^bc"+f.source+"?\\.(\\.)? "),N={match:function(){return M.test(this.src)},run:function(){var a=this.src.match(M),b=o(a[1]),c=this.makeTag("code",b);a[3]&&(b.cite=a[3]);var d=this.makeTag("pre",b),e=a[2]!=undefined;this.src=this.src.slice(a[0].length);var f=this.getBlock();f=this.escapeHTML(f),this.out+=d.open+c.open+f+"\n"+c.close;if(e)while(this.src.length&&!A.test(this.src)){var f=this.getBlock();f=this.escapeHTML(f),this.out+="\n"+c.open+f+"\n"+c.close}this.out+=d.close}};z.push(N);var O=new RegExp("^pre"+f.source+"?.(.)? "),P={match:function(){return O.test(this.src)},run:function(){var a=O.exec(this.src);this.src=this.src.slice(a[0].length);var b=o(a[1]),c=this.makeTag("pre",b),d=a[2]!=undefined,e=this.getBlock();if(d)while(this.src.length&&!A.test(this.src))e+="\n\n"+this.getBlock();e=this.escapeHTML(e),this.out+=c.open+e+"\n"+c.close}};z.push(P);var Q=new RegExp("^notextile"+f.source+"?.(.)? "),R={match:function(){return Q.test(this.src)},run:function(){var a=this.src.match(Q),b=a[2]!=undefined;this.src=this.src.slice(a[0].length);var c=this.getBlock();this.out+=c;if(b)while(this.src.length&&!A.test(this.src)){var c=this.getBlock();this.out+="\n\n"+c}}};z.push(R);var S=["h1","h2","h3","h4","h5","h6","p","div"],T=new RegExp("^("+S.join("|")+")"+f.source+"?.(.)? "),U={match:function(){return T.test(this.src)},run:function(){var a=this.src.match(T),b=a[1],c=o(a[2]),d=this.makeTag(b,c),e=a[3]!=undefined;this.src=this.src.slice(a[0].length);var f=this.getBlock();f=this.convertSpan(f),this.out+=d.open+f+d.close;if(e)while(this.src.length&&!A.test(this.src)){var f=this.getBlock();f=this.convertSpan(f),this.out+="\n"+d.open+f+d.close}}};z.push(U);var V=/^<pre((?:\s+\w+(?:\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)>((?:.|\n(?!\n))*)<\/pre>(?:\n\n|$)/,W={match:function(){return V.test(this.src)},run:function(){var a=V.exec(this.src);this.src=this.src.slice(a[0].length);var b=a[1],c=this.escapeHTML(a[2]);this.out+="<pre"+b+">"+c+"</pre>"}};z.push(W);var X=/^<(\w+)((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)>(.|\n(?!\n))*<\/\1>(\n\n|$)/,Y="a abbr acronym b bdo big br cite code dfn em i img input kbd label q samp select small span strong sub sup textarea tt var notextile",Z={match:function(){var a=this.src.match(X);if(a)return Y.search(a[1])==-1},run:function(){var a=X.exec(this.src)[0];this.src=this.src.slice(a.length),this.out+=a}};z.push(Z);var $={match:function(){return this.src.match(/^ /)},run:function(){var a=this.getBlock();a=this.convertSpan(a),this.out+=a}};z.push($);var _={match:function(){return!0},run:function(){var a=this.getBlock();a=this.convertSpan(a),this.out+=b.open+a+b.close}};z.push(_);var ba=["&","&#38;","<","&#60;",">","&#62;","'","&#39;",'"',"&#34;"];for(var bb=0;bb<ba.length;bb+=2)ba[bb]=new RegExp(ba[bb],"g");a.prototype.escapeHTML=function(a){for(var b=0;b<ba.length;b+=2)a=a.replace(ba[b],ba[b+1]);return a}})()
