var Handlebars,toString,functionType,handlebars,Marionette;(function(n,t,i){function h(n){return"[object Function]"==y.call(n)}function c(n){return"string"==typeof n}function l(){}function w(n){return!n||"loaded"==n||"complete"==n||"uninitialized"==n}function f(){var n=a.shift();v=1,n?n.t?o(function(){("c"==n.t?u.injectCss:u.injectJs)(n.s,0,n.a,n.x,n.e,1)},0):(n(),f()):v=0}function ut(n,i,s,h,c,l,y){function k(t){if(!nt&&w(p.readyState)&&(tt.r=nt=1,!v&&f(),p.onload=p.onreadystatechange=null,t)){"img"!=n&&o(function(){g.removeChild(p)},50);for(var u in r[i])r[i].hasOwnProperty(u)&&r[i][u].onload()}}var y=y||u.errorTimeout,p=t.createElement(n),nt=0,b=0,tt={t:s,s:i,e:c,a:l,x:y};1===r[i]&&(b=1,r[i]=[]),"object"==n?p.data=i:(p.src=i,p.type=n),p.width=p.height="0",p.onerror=p.onload=p.onreadystatechange=function(){k.call(this,b)},a.splice(h,0,tt),"img"!=n&&(b||2===r[i]?(g.insertBefore(p,d?null:e),o(k,y)):r[i].push(p))}function ft(n,t,i,r,u){return v=0,t=t||"j",c(n)?ut("c"==t?et:nt,n,t,this.i++,i,r,u):(a.splice(this.i++,0,n),1==a.length&&f()),this}function b(){var n=u;return n.loader={load:ft,i:0},n}var s=t.documentElement,o=n.setTimeout,e=t.getElementsByTagName("script")[0],y={}.toString,a=[],v=0,k="MozAppearance"in s.style,d=k&&!!t.createRange().compareNode,g=d?s:e.parentNode,s=n.opera&&"[object Opera]"==y.call(n.opera),s=!!t.attachEvent&&!s,nt=k?"object":s?"script":"img",et=s?"script":nt,tt=Array.isArray||function(n){return"[object Array]"==y.call(n)},p=[],r={},it={timeout:function(n,t){return t.length&&(n.timeout=t[0]),n}},rt,u;u=function(n){function a(n){for(var n=n.split("!"),f=p.length,i=n.pop(),e=n.length,i={url:i,origUrl:i,prefixes:n},u,r,t=0;t<e;t++)r=n[t].split("="),(u=it[r.shift()])&&(i=u(i,r));for(t=0;t<f;t++)i=p[t](i);return i}function f(n,t,u,f,e){var o=a(n),s=o.autoCallback;o.url.split(".").pop().split("?").shift(),o.bypass||(t&&(t=h(t)?t:t[n]||t[f]||t[n.split("/").pop().split("?")[0]]),o.instead?o.instead(n,t,u,f,e):(r[o.url]?o.noexec=!0:r[o.url]=1,u.load(o.url,o.forceCSS||!o.forceJS&&"css"==o.url.split(".").pop().split("?").shift()?"c":i,o.noexec,o.attrs,o.timeout),(h(t)||h(s))&&u.load(function(){b(),t&&t(o.origUrl,e,f),s&&s(o.origUrl,e,f),r[o.url]=2})))}function s(n,t){function a(n,o){if(n){if(c(n))o||(i=function(){var n=[].slice.call(arguments);s.apply(this,n),u()}),f(n,i,t,0,e);else if(Object(n)===n)for(r in v=function(){var t=0,i;for(i in n)n.hasOwnProperty(i)&&t++;return t}(),n)n.hasOwnProperty(r)&&(!o&&!--v&&(h(i)?i=function(){var n=[].slice.call(arguments);s.apply(this,n),u()}:i[r]=function(n){return function(){var t=[].slice.call(arguments);n&&n.apply(this,t),u()}}(s[r])),f(n[r],i,t,r,e))}else o||u()}var e=!!n.test,o=n.load||n.both,i=n.callback||l,s=i,u=n.complete||l,v,r;a(e?n.yep:n.nope,!!o),o&&a(o)}var e,t,o=this.yepnope.loader;if(c(n))f(n,0,o,0);else if(tt(n))for(e=0;e<n.length;e++)t=n[e],c(t)?f(t,0,o,0):tt(t)?u(t):Object(t)===t&&s(t,o);else Object(n)===n&&s(n,o)},u.addPrefix=function(n,t){it[n]=t},u.addFilter=function(n){p.push(n)},u.errorTimeout=1e4,null==t.readyState&&t.addEventListener&&(t.readyState="loading",t.addEventListener("DOMContentLoaded",rt=function(){t.removeEventListener("DOMContentLoaded",rt,0),t.readyState="complete"},0)),n.yepnope=b(),n.yepnope.executeStack=f,n.yepnope.injectJs=function(n,i,r,s,h,c){var a=t.createElement("script"),v,y,s=s||u.errorTimeout;a.src=n;for(y in r)a.setAttribute(y,r[y]);i=c?f:i||l,a.onreadystatechange=a.onload=function(){!v&&w(a.readyState)&&(v=1,i(),a.onload=a.onreadystatechange=null)},o(function(){v||(v=1,i(1))},s),h?a.onload():e.parentNode.insertBefore(a,e)},n.yepnope.injectCss=function(n,i,r,u,s,h){var u=t.createElement("link"),c,i=h?f:i||l;u.href=n,u.rel="stylesheet",u.type="text/css";for(c in r)u.setAttribute(c,r[c]);s||(e.parentNode.insertBefore(u,e),o(i,0))}})(this,document),function(){function p(t,i,r){var s,h,f,e,o;if(t===i)return t!==0||1/t==1/i;if(t==null||i==null)return t===i;if(t._chain&&(t=t._wrapped),i._chain&&(i=i._wrapped),t.isEqual&&n.isFunction(t.isEqual))return t.isEqual(i);if(i.isEqual&&n.isFunction(i.isEqual))return i.isEqual(t);if(s=u.call(t),s!=u.call(i))return!1;switch(s){case"[object String]":return t==String(i);case"[object Number]":return t!=+t?i!=+i:t==0?1/t==1/i:t==+i;case"[object Date]":case"[object Boolean]":return+t==+i;case"[object RegExp]":return t.source==i.source&&t.global==i.global&&t.multiline==i.multiline&&t.ignoreCase==i.ignoreCase}if(typeof t!="object"||typeof i!="object")return!1;for(h=r.length;h--;)if(r[h]==t)return!0;if(r.push(t),f=0,e=!0,s=="[object Array]"){if(f=t.length,e=f==i.length,e)while(f--)if(!(e=f in t==f in i&&p(t[f],i[f],r)))break}else{if("constructor"in t!="constructor"in i||t.constructor!=i.constructor)return!1;for(o in t)if(n.has(t,o)&&(f++,!(e=n.has(i,o)&&p(t[o],i[o],r))))break;if(e){for(o in i)if(n.has(i,o)&&!f--)break;e=!f}}return r.pop(),e}var l=this,st=l._,o={},r=Array.prototype,k=Object.prototype,ht=Function.prototype,t=r.slice,ct=r.unshift,u=k.toString,lt=k.hasOwnProperty,d=r.forEach,g=r.map,nt=r.reduce,tt=r.reduceRight,it=r.filter,rt=r.every,ut=r.some,s=r.indexOf,ft=r.lastIndexOf,at=Array.isArray,vt=Object.keys,a=ht.bind,n=function(n){return new f(n)},i,v,y,et,h,e,w,f,c,ot;typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=n),exports._=n):l._=n,n.VERSION="1.3.3",i=n.each=n.forEach=function(t,i,r){var u,e,f;if(t!=null)if(d&&t.forEach===d)t.forEach(i,r);else if(t.length===+t.length){for(u=0,e=t.length;u<e;u++)if(u in t&&i.call(r,t[u],u,t)===o)return}else for(f in t)if(n.has(t,f)&&i.call(r,t[f],f,t)===o)return},n.map=n.collect=function(n,t,r){var u=[];return n==null?u:g&&n.map===g?n.map(t,r):(i(n,function(n,i,f){u[u.length]=t.call(r,n,i,f)}),n.length===+n.length&&(u.length=n.length),u)},n.reduce=n.foldl=n.inject=function(t,r,u,f){var e=arguments.length>2;if(t==null&&(t=[]),nt&&t.reduce===nt)return f&&(r=n.bind(r,f)),e?t.reduce(r,u):t.reduce(r);if(i(t,function(n,t,i){e?u=r.call(f,u,n,t,i):(u=n,e=!0)}),!e)throw new TypeError("Reduce of empty array with no initial value");return u},n.reduceRight=n.foldr=function(t,i,r,u){var f=arguments.length>2,e;return(t==null&&(t=[]),tt&&t.reduceRight===tt)?(u&&(i=n.bind(i,u)),f?t.reduceRight(i,r):t.reduceRight(i)):(e=n.toArray(t).reverse(),u&&!f&&(i=n.bind(i,u)),f?n.reduce(e,i,r,u):n.reduce(e,i))},n.find=n.detect=function(n,t,i){var r;return v(n,function(n,u,f){if(t.call(i,n,u,f))return r=n,!0}),r},n.filter=n.select=function(n,t,r){var u=[];return n==null?u:it&&n.filter===it?n.filter(t,r):(i(n,function(n,i,f){t.call(r,n,i,f)&&(u[u.length]=n)}),u)},n.reject=function(n,t,r){var u=[];return n==null?u:(i(n,function(n,i,f){t.call(r,n,i,f)||(u[u.length]=n)}),u)},n.every=n.all=function(n,t,r){var u=!0;return n==null?u:rt&&n.every===rt?n.every(t,r):(i(n,function(n,i,f){if(!(u=u&&t.call(r,n,i,f)))return o}),!!u)},v=n.some=n.any=function(t,r,u){r||(r=n.identity);var f=!1;return t==null?f:ut&&t.some===ut?t.some(r,u):(i(t,function(n,t,i){if(f||(f=r.call(u,n,t,i)))return o}),!!f)},n.include=n.contains=function(n,t){var i=!1;return n==null?i:s&&n.indexOf===s?n.indexOf(t)!=-1:i=v(n,function(n){return n===t})},n.invoke=function(i,r){var u=t.call(arguments,2);return n.map(i,function(t){return(n.isFunction(r)?r||t:t[r]).apply(t,u)})},n.pluck=function(t,i){return n.map(t,function(n){return n[i]})},n.max=function(t,r,u){if(!r&&n.isArray(t)&&t[0]===+t[0])return Math.max.apply(Math,t);if(!r&&n.isEmpty(t))return-Infinity;var f={computed:-Infinity};return i(t,function(n,t,i){var e=r?r.call(u,n,t,i):n;e>=f.computed&&(f={value:n,computed:e})}),f.value},n.min=function(t,r,u){if(!r&&n.isArray(t)&&t[0]===+t[0])return Math.min.apply(Math,t);if(!r&&n.isEmpty(t))return Infinity;var f={computed:Infinity};return i(t,function(n,t,i){var e=r?r.call(u,n,t,i):n;e<f.computed&&(f={value:n,computed:e})}),f.value},n.shuffle=function(n){var t=[],r;return i(n,function(n,i){r=Math.floor(Math.random()*(i+1)),t[i]=t[r],t[r]=n}),t},n.sortBy=function(t,i,r){var u=n.isFunction(i)?i:function(n){return n[i]};return n.pluck(n.map(t,function(n,t,i){return{value:n,criteria:u.call(r,n,t,i)}}).sort(function(n,t){var i=n.criteria,r=t.criteria;return i===void 0?1:r===void 0?-1:i<r?-1:i>r?1:0}),"value")},n.groupBy=function(t,r){var u={},f=n.isFunction(r)?r:function(n){return n[r]};return i(t,function(n,t){var i=f(n,t);(u[i]||(u[i]=[])).push(n)}),u},n.sortedIndex=function(t,i,r){var u,f,e;for(r||(r=n.identity),u=0,f=t.length;u<f;)e=u+f>>1,r(t[e])<r(i)?u=e+1:f=e;return u},n.toArray=function(i){return i?n.isArray(i)?t.call(i):n.isArguments(i)?t.call(i):i.toArray&&n.isFunction(i.toArray)?i.toArray():n.values(i):[]},n.size=function(t){return n.isArray(t)?t.length:n.keys(t).length},n.first=n.head=n.take=function(n,i,r){return i!=null&&!r?t.call(n,0,i):n[0]},n.initial=function(n,i,r){return t.call(n,0,n.length-(i==null||r?1:i))},n.last=function(n,i,r){return i==null||r?n[n.length-1]:t.call(n,Math.max(n.length-i,0))},n.rest=n.tail=function(n,i,r){return t.call(n,i==null||r?1:i)},n.compact=function(t){return n.filter(t,function(n){return!!n})},n.flatten=function(t,i){return n.reduce(t,function(t,r){return n.isArray(r)?t.concat(i?r:n.flatten(r)):(t[t.length]=r,t)},[])},n.without=function(i){return n.difference(i,t.call(arguments,1))},n.uniq=n.unique=function(t,i,r){var f=r?n.map(t,r):t,u=[];return t.length<3&&(i=!0),n.reduce(f,function(r,f,e){return(i?n.last(r)===f&&r.length:n.include(r,f))||(r.push(f),u.push(t[e])),r},[]),u},n.union=function(){return n.uniq(n.flatten(arguments,!0))},n.intersection=n.intersect=function(i){var r=t.call(arguments,1);return n.filter(n.uniq(i),function(t){return n.every(r,function(i){return n.indexOf(i,t)>=0})})},n.difference=function(i){var r=n.flatten(t.call(arguments,1),!0);return n.filter(i,function(t){return!n.include(r,t)})},n.zip=function(){for(var r=t.call(arguments),u=n.max(n.pluck(r,"length")),f=new Array(u),i=0;i<u;i++)f[i]=n.pluck(r,""+i);return f},n.indexOf=function(t,i,r){if(t==null)return-1;var u,f;if(r)return u=n.sortedIndex(t,i),t[u]===i?u:-1;if(s&&t.indexOf===s)return t.indexOf(i);for(u=0,f=t.length;u<f;u++)if(u in t&&t[u]===i)return u;return-1},n.lastIndexOf=function(n,t){if(n==null)return-1;if(ft&&n.lastIndexOf===ft)return n.lastIndexOf(t);for(var i=n.length;i--;)if(i in n&&n[i]===t)return i;return-1},n.range=function(n,t,i){arguments.length<=1&&(t=n||0,n=0),i=arguments[2]||1;for(var r=Math.max(Math.ceil((t-n)/i),0),u=0,f=new Array(r);u<r;)f[u++]=n,n+=i;return f},y=function(){},n.bind=function(i,r){var f,u;if(i.bind===a&&a)return a.apply(i,t.call(arguments,1));if(!n.isFunction(i))throw new TypeError;return u=t.call(arguments,2),f=function(){if(!(this instanceof f))return i.apply(r,u.concat(t.call(arguments)));y.prototype=i.prototype;var e=new y,n=i.apply(e,u.concat(t.call(arguments)));return Object(n)===n?n:e}},n.bindAll=function(r){var u=t.call(arguments,1);return u.length==0&&(u=n.functions(r)),i(u,function(t){r[t]=n.bind(r[t],r)}),r},n.memoize=function(t,i){var r={};return i||(i=n.identity),function(){var u=i.apply(this,arguments);return n.has(r,u)?r[u]:r[u]=t.apply(this,arguments)}},n.delay=function(n,i){var r=t.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},i)},n.defer=function(i){return n.delay.apply(n,[i,1].concat(t.call(arguments,1)))},n.throttle=function(t,i){var r,u,f,e,o,s,h=n.debounce(function(){o=e=!1},i);return function(){r=this,u=arguments;var n=function(){f=null,o&&t.apply(r,u),h()};return f||(f=setTimeout(n,i)),e?o=!0:s=t.apply(r,u),h(),e=!0,s}},n.debounce=function(n,t,i){var r;return function(){var u=this,f=arguments,e=function(){r=null,i||n.apply(u,f)};i&&!r&&n.apply(u,f),clearTimeout(r),r=setTimeout(e,t)}},n.once=function(n){var t=!1,i;return function(){return t?i:(t=!0,i=n.apply(this,arguments))}},n.wrap=function(n,i){return function(){var r=[n].concat(t.call(arguments,0));return i.apply(this,r)}},n.compose=function(){var n=arguments;return function(){for(var i=arguments,t=n.length-1;t>=0;t--)i=[n[t].apply(this,i)];return i[0]}},n.after=function(n,t){return n<=0?t():function(){if(--n<1)return t.apply(this,arguments)}},n.keys=vt||function(t){var i,r;if(t!==Object(t))throw new TypeError("Invalid object");i=[];for(r in t)n.has(t,r)&&(i[i.length]=r);return i},n.values=function(t){return n.map(t,n.identity)},n.functions=n.methods=function(t){var r=[],i;for(i in t)n.isFunction(t[i])&&r.push(i);return r.sort()},n.extend=function(n){return i(t.call(arguments,1),function(t){for(var i in t)n[i]=t[i]}),n},n.pick=function(r){var u={};return i(n.flatten(t.call(arguments,1)),function(n){n in r&&(u[n]=r[n])}),u},n.defaults=function(n){return i(t.call(arguments,1),function(t){for(var i in t)n[i]==null&&(n[i]=t[i])}),n},n.clone=function(t){return n.isObject(t)?n.isArray(t)?t.slice():n.extend({},t):t},n.tap=function(n,t){return t(n),n},n.isEqual=function(n,t){return p(n,t,[])},n.isEmpty=function(t){if(t==null)return!0;if(n.isArray(t)||n.isString(t))return t.length===0;for(var i in t)if(n.has(t,i))return!1;return!0},n.isElement=function(n){return!!(n&&n.nodeType==1)},n.isArray=at||function(n){return u.call(n)=="[object Array]"},n.isObject=function(n){return n===Object(n)},n.isArguments=function(n){return u.call(n)=="[object Arguments]"},n.isArguments(arguments)||(n.isArguments=function(t){return!!(t&&n.has(t,"callee"))}),n.isFunction=function(n){return u.call(n)=="[object Function]"},n.isString=function(n){return u.call(n)=="[object String]"},n.isNumber=function(n){return u.call(n)=="[object Number]"},n.isFinite=function(t){return n.isNumber(t)&&isFinite(t)},n.isNaN=function(n){return n!==n},n.isBoolean=function(n){return n===!0||n===!1||u.call(n)=="[object Boolean]"},n.isDate=function(n){return u.call(n)=="[object Date]"},n.isRegExp=function(n){return u.call(n)=="[object RegExp]"},n.isNull=function(n){return n===null},n.isUndefined=function(n){return n===void 0},n.has=function(n,t){return lt.call(n,t)},n.noConflict=function(){return l._=st,this},n.identity=function(n){return n},n.times=function(n,t,i){for(var r=0;r<n;r++)t.call(i,r)},n.escape=function(n){return(""+n).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")},n.result=function(t,i){if(t==null)return null;var r=t[i];return n.isFunction(r)?r.call(t):r},n.mixin=function(t){i(n.functions(t),function(i){ot(i,n[i]=t[i])})},et=0,n.uniqueId=function(n){var t=et++;return n?n+t:t},n.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},h=/.^/,e={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"};for(w in e)e[e[w]]=w;var yt=/\\|'|\r|\n|\t|\u2028|\u2029/g,pt=/\\(\\|'|r|n|t|u2028|u2029)/g,b=function(n){return n.replace(pt,function(n,t){return e[t]})};n.template=function(t,i,r){var u,f,o;return(r=n.defaults(r||{},n.templateSettings),u="__p+='"+t.replace(yt,function(n){return"\\"+e[n]}).replace(r.escape||h,function(n,t){return"'+\n_.escape("+b(t)+")+\n'"}).replace(r.interpolate||h,function(n,t){return"'+\n("+b(t)+")+\n'"}).replace(r.evaluate||h,function(n,t){return"';\n"+b(t)+"\n;__p+='"})+"';\n",r.variable||(u="with(obj||{}){\n"+u+"}\n"),u="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+u+"return __p;\n",f=new Function(r.variable||"obj","_",u),i)?f(i,n):(o=function(t){return f.call(this,t,n)},o.source="function("+(r.variable||"obj")+"){\n"+u+"}",o)},n.chain=function(t){return n(t).chain()},f=function(n){this._wrapped=n},n.prototype=f.prototype,c=function(t,i){return i?n(t).chain():t},ot=function(i,r){f.prototype[i]=function(){var i=t.call(arguments);return ct.call(i,this._wrapped),c(r.apply(n,i),this._chain)}},n.mixin(n),i(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=r[n];f.prototype[n]=function(){var i=this._wrapped,r;return t.apply(i,arguments),r=i.length,(n=="shift"||n=="splice")&&r===0&&delete i[0],c(i,this._chain)}}),i(["concat","join","slice"],function(n){var t=r[n];f.prototype[n]=function(){return c(t.apply(this._wrapped,arguments),this._chain)}}),f.prototype.chain=function(){return this._chain=!0,this},f.prototype.value=function(){return this._wrapped}}.call(this),Handlebars={},Handlebars.VERSION="1.0.beta.6",Handlebars.helpers={},Handlebars.partials={},Handlebars.registerHelper=function(n,t,i){i&&(t.not=i),this.helpers[n]=t},Handlebars.registerPartial=function(n,t){this.partials[n]=t},Handlebars.registerHelper("helperMissing",function(n){if(arguments.length===2)return undefined;throw new Error("Could not find property '"+n+"'");}),toString=Object.prototype.toString,functionType="[object Function]",Handlebars.registerHelper("blockHelperMissing",function(n,t){var f=t.inverse||function(){},u=t.fn,i="",e=toString.call(n),r,o;if(e===functionType&&(n=n.call(this)),n===!0)return u(this);if(n===!1||n==null)return f(this);if(e==="[object Array]"){if(n.length>0)for(r=0,o=n.length;r<o;r++)i=i+u(n[r]);else i=f(this);return i}return u(n)}),Handlebars.registerHelper("each",function(n,t){var f=t.fn,e=t.inverse,i="",r,u;if(n&&n.length>0)for(r=0,u=n.length;r<u;r++)i=i+f(n[r]);else i=e(this);return i}),Handlebars.registerHelper("if",function(n,t){var i=toString.call(n);return i===functionType&&(n=n.call(this)),!n||Handlebars.Utils.isEmpty(n)?t.inverse(this):t.fn(this)}),Handlebars.registerHelper("unless",function(n,t){var i=t.fn,r=t.inverse;return t.fn=r,t.inverse=i,Handlebars.helpers["if"].call(this,n,t)}),Handlebars.registerHelper("with",function(n,t){return t.fn(n)}),Handlebars.registerHelper("log",function(n){Handlebars.log(n)}),handlebars=function(){var n={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(n,t,i,r,u,f){var o=f.length-1;switch(u){case 1:return f[o-1];case 2:this.$=new r.ProgramNode(f[o-2],f[o]);break;case 3:this.$=new r.ProgramNode(f[o]);break;case 4:this.$=new r.ProgramNode([]);break;case 5:this.$=[f[o]];break;case 6:f[o-1].push(f[o]),this.$=f[o-1];break;case 7:this.$=new r.InverseNode(f[o-2],f[o-1],f[o]);break;case 8:this.$=new r.BlockNode(f[o-2],f[o-1],f[o]);break;case 9:this.$=f[o];break;case 10:this.$=f[o];break;case 11:this.$=new r.ContentNode(f[o]);break;case 12:this.$=new r.CommentNode(f[o]);break;case 13:this.$=new r.MustacheNode(f[o-1][0],f[o-1][1]);break;case 14:this.$=new r.MustacheNode(f[o-1][0],f[o-1][1]);break;case 15:this.$=f[o-1];break;case 16:this.$=new r.MustacheNode(f[o-1][0],f[o-1][1]);break;case 17:this.$=new r.MustacheNode(f[o-1][0],f[o-1][1],!0);break;case 18:this.$=new r.PartialNode(f[o-1]);break;case 19:this.$=new r.PartialNode(f[o-2],f[o-1]);break;case 21:this.$=[[f[o-2]].concat(f[o-1]),f[o]];break;case 22:this.$=[[f[o-1]].concat(f[o]),null];break;case 23:this.$=[[f[o-1]],f[o]];break;case 24:this.$=[[f[o]],null];break;case 25:f[o-1].push(f[o]),this.$=f[o-1];break;case 26:this.$=[f[o]];break;case 27:this.$=f[o];break;case 28:this.$=new r.StringNode(f[o]);break;case 29:this.$=new r.IntegerNode(f[o]);break;case 30:this.$=new r.BooleanNode(f[o]);break;case 31:this.$=new r.HashNode(f[o]);break;case 32:f[o-1].push(f[o]),this.$=f[o-1];break;case 33:this.$=[f[o]];break;case 34:this.$=[f[o-2],f[o]];break;case 35:this.$=[f[o-2],new r.StringNode(f[o])];break;case 36:this.$=[f[o-2],new r.IntegerNode(f[o])];break;case 37:this.$=[f[o-2],new r.BooleanNode(f[o])];break;case 38:this.$=new r.IdNode(f[o]);break;case 39:f[o-2].push(f[o]),this.$=f[o-2];break;case 40:this.$=[f[o]]}},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(n){throw new Error(n);},parse:function(n){function tt(){var n;return n=k.lexer.lex()||1,typeof n!="number"&&(n=k.symbols_[n]||n),n}var k=this,i=[0],f=[null],t=[],h=this.table,d="",c=0,g=0,p=0,it=2,rt=1,l,r,w,o,u,ut,b,s,a,e,nt,v,y;for(this.lexer.setInput(n),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={}),l=this.lexer.yylloc,t.push(l),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError),s={};;){if(o=i[i.length-1],this.defaultActions[o]?u=this.defaultActions[o]:(r==null&&(r=tt()),u=h[o]&&h[o][r]),(typeof u=="undefined"||!u.length||!u[0])&&!p){v=[];for(a in h[o])this.terminals_[a]&&a>2&&v.push("'"+this.terminals_[a]+"'");y="",y=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+this.terminals_[r]+"'":"Parse error on line "+(c+1)+": Unexpected "+(r==1?"end of input":"'"+(this.terminals_[r]||r)+"'"),this.parseError(y,{text:this.lexer.match,token:this.terminals_[r]||r,line:this.lexer.yylineno,loc:l,expected:v})}if(u[0]instanceof Array&&u.length>1)throw new Error("Parse Error: multiple actions possible at state: "+o+", token: "+r);switch(u[0]){case 1:i.push(r),f.push(this.lexer.yytext),t.push(this.lexer.yylloc),i.push(u[1]),r=null,w?(r=w,w=null):(g=this.lexer.yyleng,d=this.lexer.yytext,c=this.lexer.yylineno,l=this.lexer.yylloc,p>0&&p--);break;case 2:if(e=this.productions_[u[1]][1],s.$=f[f.length-e],s._$={first_line:t[t.length-(e||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(e||1)].first_column,last_column:t[t.length-1].last_column},b=this.performAction.call(s,d,g,c,this.yy,u[1],f,t),typeof b!="undefined")return b;e&&(i=i.slice(0,-2*e),f=f.slice(0,-1*e),t=t.slice(0,-1*e)),i.push(this.productions_[u[1]][0]),f.push(s.$),t.push(s._$),nt=h[i[i.length-2]][i[i.length-1]],i.push(nt);break;case 3:return!0}}return!0}},t=function(){var n={EOF:1,parseError:function(n,t){if(this.yy.parseError)this.yy.parseError(n,t);else throw new Error(n);},setInput:function(n){return this._input=n,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 n=this._input[0],t;return this.yytext+=n,this.yyleng++,this.match+=n,this.matched+=n,t=n.match(/\n/),t&&this.yylineno++,this._input=this._input.slice(1),n},unput:function(n){return this._input=n+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var n=this.pastInput(),t=new Array(n.length+1).join("-");return n+this.upcomingInput()+"\n"+t+"^"},next:function(){var u,n,f,t,r,i;if(this.done)return this.EOF;for(this._input||(this.done=!0),this._more||(this.yytext="",this.match=""),r=this._currentRules(),i=0;i<r.length;i++)if(n=this._input.match(this.rules[r[i]]),n)return(t=n[0].match(/\n.*/g),t&&(this.yylineno+=t.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:t?t[t.length-1].length-1:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(n[0].length),this.matched+=n[0],u=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),u)?u:void 0;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 n=this.next();return typeof n!="undefined"?n:this.lex()},begin:function(n){this.conditionStack.push(n)},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(n){this.begin(n)}};return n.performAction=function(n,t,i,r){var u=r;switch(i){case 0:if(t.yytext.slice(-1)!=="\\"&&this.begin("mu"),t.yytext.slice(-1)==="\\"&&(t.yytext=t.yytext.substr(0,t.yyleng-1),this.begin("emu")),t.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 t.yytext=t.yytext.substr(3,t.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 17:return this.popState(),18;case 18:return this.popState(),18;case 19:return t.yytext=t.yytext.substr(1,t.yyleng-2).replace(/\\"/g,'"'),28;case 20:return 30;case 21:return 30;case 22:return 29;case 23:return 33;case 24:return t.yytext=t.yytext.substr(1,t.yyleng-2),33;case 25:return"INVALID";case 26:return 5}},n.rules=[/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/],n.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}},n}();return n.lexer=t,n}(),typeof require!="undefined"&&typeof exports!="undefined"&&(exports.parser=handlebars,exports.parse=function(){return handlebars.parse.apply(handlebars,arguments)},exports.main=function(n){var i,t;if(!n[1])throw new Error("Usage: "+n[0]+" FILE");return typeof process!="undefined"?t=require("fs").readFileSync(require("path").join(process.cwd(),n[1]),"utf8"):(i=require("file").path(require("file").cwd()),t=i.join(n[1]).read({charset:"utf-8"})),exports.parser.parse(t)},typeof module!="undefined"&&require.main===module&&exports.main(typeof process!="undefined"?process.argv.slice(1):require("system").args)),Handlebars.Parser=handlebars,Handlebars.parse=function(n){return Handlebars.Parser.yy=Handlebars.AST,Handlebars.Parser.parse(n)},Handlebars.print=function(n){return(new Handlebars.PrintVisitor).accept(n)},Handlebars.logger={DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(){}},Handlebars.log=function(n,t){Handlebars.logger.log(n,t)},function(){Handlebars.AST={},Handlebars.AST.ProgramNode=function(n,t){this.type="program",this.statements=n,t&&(this.inverse=new Handlebars.AST.ProgramNode(t))},Handlebars.AST.MustacheNode=function(n,t,i){this.type="mustache",this.id=n[0],this.params=n.slice(1),this.hash=t,this.escaped=!i},Handlebars.AST.PartialNode=function(n,t){this.type="partial",this.id=n,this.context=t};var n=function(n,t){if(n.original!==t.original)throw new Handlebars.Exception(n.original+" doesn't match "+t.original);};Handlebars.AST.BlockNode=function(t,i,r){n(t.id,r),this.type="block",this.mustache=t,this.program=i},Handlebars.AST.InverseNode=function(t,i,r){n(t.id,r),this.type="inverse",this.mustache=t,this.program=i},Handlebars.AST.ContentNode=function(n){this.type="content",this.string=n},Handlebars.AST.HashNode=function(n){this.type="hash",this.pairs=n},Handlebars.AST.IdNode=function(n){var t,r,u,f,i;for(this.type="ID",this.original=n.join("."),t=[],r=0,u=0,f=n.length;u<f;u++)i=n[u],i===".."?r++:i==="."||i==="this"?this.isScoped=!0:t.push(i);this.parts=t,this.string=t.join("."),this.depth=r,this.isSimple=t.length===1&&r===0},Handlebars.AST.StringNode=function(n){this.type="STRING",this.string=n},Handlebars.AST.IntegerNode=function(n){this.type="INTEGER",this.integer=n},Handlebars.AST.BooleanNode=function(n){this.type="BOOLEAN",this.bool=n},Handlebars.AST.CommentNode=function(n){this.type="comment",this.comment=n}}(),Handlebars.Exception=function(){var t=Error.prototype.constructor.apply(this,arguments),i;for(i in t)t.hasOwnProperty(i)&&(this[i]=t[i]);this.message=t.message},Handlebars.Exception.prototype=new Error,Handlebars.SafeString=function(n){this.string=n},Handlebars.SafeString.prototype.toString=function(){return this.string.toString()},function(){var n={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},t=/&(?!\w+;)|[<>"'`]/g,i=/[&<>"'`]/,r=function(t){return n[t]||"&amp;"};Handlebars.Utils={escapeExpression:function(n){return n instanceof Handlebars.SafeString?n.toString():n==null||n===!1?"":i.test(n)?n.replace(t,r):n},isEmpty:function(n){return typeof n=="undefined"?!0:n===null?!0:n===!1?!0:Object.prototype.toString.call(n)==="[object Array]"&&n.length===0?!0:!1}}}(),Handlebars.Compiler=function(){},Handlebars.JavaScriptCompiler=function(){},function(n,t){var u,e,f,o,i,r;n.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},n.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},n.DISASSEMBLE_MAP={};for(u in n.OPCODE_MAP)e=n.OPCODE_MAP[u],n.DISASSEMBLE_MAP[e]=u;for(n.multiParamSize=function(t){return n.MULTI_PARAM_OPCODES[n.DISASSEMBLE_MAP[t]]},n.prototype={compiler:n,disassemble:function(){for(var i=this.opcodes,u,r,e=[],f,h,c,a,o,s,t=0,l=i.length;t<l;t++)if(u=i[t],u==="DECLARE")h=i[++t],c=i[++t],e.push("DECLARE "+h+" = "+c);else{for(f=n.DISASSEMBLE_MAP[u],a=n.multiParamSize(u),o=[],s=0;s<a;s++)r=i[++t],typeof r=="string"&&(r='"'+r.replace("\n","\\n")+'"'),o.push(r);f=f+" "+o.join(" "),e.push(f)}return e.join("\n")},guid:0,compile:function(n,t){var i,r;if(this.children=[],this.depths={list:[]},this.options=t,i=this.options.knownHelpers,this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0},i)for(r in i)this.options.knownHelpers[r]=i[r];return this.program(n)},accept:function(n){return this[n.type](n)},program:function(n){var u=n.statements,i,t,r;for(this.opcodes=[],t=0,r=u.length;t<r;t++)i=u[t],this[i.type](i);return this.isSimple=r===1,this.depths.list=this.depths.list.sort(function(n,t){return n-t}),this},compileProgram:function(n){var t=(new this.compiler).compile(n,this.options),r=this.guid++,i,u;for(this.usePartial=this.usePartial||t.usePartial,this.children[r]=t,i=0,u=t.depths.list.length;i<u;i++)if(depth=t.depths.list[i],depth<2)continue;else this.addDepth(depth-1);return r},block:function(n){var t=n.mustache,f,e,o,i,r=this.setupStackForMustache(t),u=this.compileProgram(n.program);n.program.inverse&&(i=this.compileProgram(n.program.inverse),this.declare("inverse",i)),this.opcode("invokeProgram",u,r.length,!!t.hash),this.declare("inverse",null),this.opcode("append")},inverse:function(n){var t=this.setupStackForMustache(n.mustache),i=this.compileProgram(n.program);this.declare("inverse",i),this.opcode("invokeProgram",null,t.length,!!n.mustache.hash),this.declare("inverse",null),this.opcode("append")},hash:function(n){var r=n.pairs,i,u,t,f;for(this.opcode("push","{}"),t=0,f=r.length;t<f;t++)i=r[t],u=i[1],this.accept(u),this.opcode("assignToHash",i[0])},partial:function(n){var t=n.id;this.usePartial=!0,n.context?this.ID(n.context):this.opcode("push","depth0"),this.opcode("invokePartial",t.original),this.opcode("append")},content:function(n){this.opcode("appendContent",n.string)},mustache:function(n){var t=this.setupStackForMustache(n);this.opcode("invokeMustache",t.length,n.id.original,!!n.hash),n.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ID:function(n){this.addDepth(n.depth),this.opcode("getContext",n.depth),this.opcode("lookupWithHelpers",n.parts[0]||null,n.isScoped||!1);for(var t=1,i=n.parts.length;t<i;t++)this.opcode("lookup",n.parts[t])},STRING:function(n){this.opcode("pushString",n.string)},INTEGER:function(n){this.opcode("push",n.integer)},BOOLEAN:function(n){this.opcode("push",n.bool)},comment:function(){},pushParams:function(n){for(var i=n.length,t;i--;)t=n[i],this.options.stringParams?(t.depth&&this.addDepth(t.depth),this.opcode("getContext",t.depth||0),this.opcode("pushStringParam",t.string)):this[t.type](t)},opcode:function(t,i,r,u){this.opcodes.push(n.OPCODE_MAP[t]),i!==undefined&&this.opcodes.push(i),r!==undefined&&this.opcodes.push(r),u!==undefined&&this.opcodes.push(u)},declare:function(n,t){this.opcodes.push("DECLARE"),this.opcodes.push(n),this.opcodes.push(t)},addDepth:function(n){n!==0&&(this.depths[n]||(this.depths[n]=!0,this.depths.list.push(n)))},setupStackForMustache:function(n){var t=n.params;return this.pushParams(t),n.hash&&this.hash(n.hash),this.ID(n.id),t}},t.prototype={nameLookup:function(n,i){return/^[0-9]+$/.test(i)?n+"["+i+"]":t.isValidJavaScriptVariableName(i)?n+"."+i:n+"['"+i+"']"},appendToBuffer:function(n){return this.environment.isSimple?"return "+n+";":"buffer += "+n+";"},initializeBuffer:function(){return this.quotedString("")},namespace:"Handlebars",compile:function(n,t,i,u){this.environment=n,this.options=t||{},this.name=this.environment.name,this.isChild=!!i,this.context=i||{programs:[],aliases:{self:"this"},registers:{list:[]}},this.preamble(),this.stackSlot=0,this.stackVars=[],this.compileChildren(n,t);var e=n.opcodes,f;for(this.i=0,r=e.length;this.i<r;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(u)},nextOpcode:function(t){var i=this.environment.opcodes,f=i[this.i+t],r,o,s,e,u;if(f==="DECLARE")return r=i[this.i+1],o=i[this.i+2],["DECLARE",r,o];for(r=n.DISASSEMBLE_MAP[f],s=n.multiParamSize(f),e=[],u=0;u<s;u++)e.push(i[this.i+u+1+t]);return[r,e]},eat:function(n){this.i=this.i+n.length},preamble:function(){var n=[],i,t;this.useRegister("foundHelper"),this.isChild?n.push(""):(i=this.namespace,t="helpers = helpers || "+i+".helpers;",this.environment.usePartial&&(t=t+" partials = partials || "+i+".partials;"),n.push(t)),this.environment.isSimple?n.push(""):n.push(", buffer = "+this.initializeBuffer()),this.lastContext=0,this.source=n},createFunctionContext:function(n){var i=this.stackVars,o,u,t,r,e,f;if(this.isChild||(i=i.concat(this.context.registers.list)),i.length>0&&(this.source[1]=this.source[1]+", "+i.join(", ")),!this.isChild){o=[];for(u in this.context.aliases)this.source[1]=this.source[1]+", "+u+"="+this.context.aliases[u]}for(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;"),t=this.isChild?["depth0","data"]:["Handlebars","depth0","helpers","partials","data"],r=0,e=this.environment.depths.list.length;r<e;r++)t.push("depth"+this.environment.depths.list[r]);return n?(t.push(this.source.join("\n  ")),Function.apply(this,t)):(f="function "+(this.name||"")+"("+t.join(",")+") {\n  "+this.source.join("\n  ")+"}",Handlebars.log(Handlebars.logger.DEBUG,f+"\n\n"),f)},appendContent:function(n){this.source.push(this.appendToBuffer(this.quotedString(n)))},append:function(){var n=this.popStack();this.source.push("if("+n+" || "+n+" === 0) { "+this.appendToBuffer(n)+" }"),this.environment.isSimple&&this.source.push("else { "+this.appendToBuffer("''")+" }")},appendEscaped:function(){var n=this.nextOpcode(1),t="";this.context.aliases.escapeExpression="this.escapeExpression",n[0]==="appendContent"&&(t=" + "+this.quotedString(n[1][0]),this.eat(n)),this.source.push(this.appendToBuffer("escapeExpression("+this.popStack()+")"+t))},getContext:function(n){this.lastContext!==n&&(this.lastContext=n)},lookupWithHelpers:function(n,t){var r,i;n?(r=this.nextStack(),this.usingKnownHelper=!1,!t&&this.options.knownHelpers[n]?(i=r+" = "+this.nameLookup("helpers",n,"helper"),this.usingKnownHelper=!0):t||this.options.knownHelpersOnly?i=r+" = "+this.nameLookup("depth"+this.lastContext,n,"context"):(this.register("foundHelper",this.nameLookup("helpers",n,"helper")),i=r+" = foundHelper || "+this.nameLookup("depth"+this.lastContext,n,"context")),i+=";",this.source.push(i)):this.pushStack("depth"+this.lastContext)},lookup:function(n){var t=this.topStack();this.source.push(t+" = ("+t+" === null || "+t+" === undefined || "+t+" === false ? "+t+" : "+this.nameLookup(t,n,"context")+");")},pushStringParam:function(n){this.pushStack("depth"+this.lastContext),this.pushString(n)},pushString:function(n){this.pushStack(this.quotedString(n))},push:function(n){this.pushStack(n)},invokeMustache:function(n,t,i){this.populateParams(n,this.quotedString(t),"{}",null,i,function(n,t,i){this.usingKnownHelper||(this.context.aliases.helperMissing="helpers.helperMissing",this.context.aliases.undef="void 0",this.source.push("else if("+i+"=== undef) { "+n+" = helperMissing.call("+t+"); }"),n!==i&&this.source.push("else { "+n+" = "+i+"; }"))})},invokeProgram:function(n,t,i){var r=this.programExpression(this.inverse),u=this.programExpression(n);this.populateParams(t,null,u,r,i,function(n,t){this.usingKnownHelper||(this.context.aliases.blockHelperMissing="helpers.blockHelperMissing",this.source.push("else { "+n+" = blockHelperMissing.call("+t+"); }"))})},populateParams:function(n,t,i,r,u,f){var h=u||this.options.stringParams||r||this.options.data,c=this.popStack(),v,e=[],l,y,o,a,s;for(h?(this.register("tmp1",i),o="tmp1"):o="{ hash: {} }",h&&(a=u?this.popStack():"{}",this.source.push("tmp1.hash = "+a+";")),this.options.stringParams&&this.source.push("tmp1.contexts = [];"),s=0;s<n;s++)l=this.popStack(),e.push(l),this.options.stringParams&&this.source.push("tmp1.contexts.push("+this.popStack()+");");r&&(this.source.push("tmp1.fn = tmp1;"),this.source.push("tmp1.inverse = "+r+";")),this.options.data&&this.source.push("tmp1.data = data;"),e.push(o),this.populateCall(e,c,t||c,f,i!=="{}")},populateCall:function(n,t,i,r,u){var e=["depth0"].concat(n).join(", "),s=["depth0"].concat(i).concat(n).join(", "),f=this.nextStack(),o;this.usingKnownHelper?this.source.push(f+" = "+t+".call("+e+");"):(this.context.aliases.functionType='"function"',o=u?"foundHelper && ":"",this.source.push("if("+o+"typeof "+t+" === functionType) { "+f+" = "+t+".call("+e+"); }")),r.call(this,f,s,t),this.usingKnownHelper=!1},invokePartial:function(n){params=[this.nameLookup("partials",n,"partial"),"'"+n+"'",this.popStack(),"helpers","partials"],this.options.data&&params.push("data"),this.pushStack("self.invokePartial("+params.join(", ")+");")},assignToHash:function(n){var t=this.popStack(),i=this.topStack();this.source.push(i+"['"+n+"'] = "+t+";")},compiler:t,compileChildren:function(n,t){for(var f=n.children,i,e,u,r=0,o=f.length;r<o;r++)i=f[r],e=new this.compiler,this.context.programs.push(""),u=this.context.programs.length,i.index=u,i.name="program"+u,this.context.programs[u]=e.compile(i,t,this.context)},programExpression:function(n){var i,f;if(n==null)return"self.noop";var r=this.environment.children[n],u=r.depths.list,t=[r.index,r.name,"data"];for(i=0,f=u.length;i<f;i++)depth=u[i],depth===1?t.push("depth0"):t.push("depth"+(depth-1));return u.length===0?"self.program("+t.join(", ")+")":(t.shift(),"self.programWithDepth("+t.join(", ")+")")},register:function(n,t){this.useRegister(n),this.source.push(n+" = "+t+";")},useRegister:function(n){this.context.registers[n]||(this.context.registers[n]=!0,this.context.registers.list.push(n))},pushStack:function(n){return this.source.push(this.nextStack()+" = "+n+";"),"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(n){return'"'+n.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r")+'"'}},f="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(" "),o=t.RESERVED_WORDS={},i=0,r=f.length;i<r;i++)o[f[i]]=!0;t.isValidJavaScriptVariableName=function(n){return!t.RESERVED_WORDS[n]&&/^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(n)?!0:!1}}(Handlebars.Compiler,Handlebars.JavaScriptCompiler),Handlebars.precompile=function(n,t){t=t||{};var i=Handlebars.parse(n),r=(new Handlebars.Compiler).compile(i,t);return(new Handlebars.JavaScriptCompiler).compile(r,t)},Handlebars.compile=function(n,t){function r(){var i=Handlebars.parse(n),r=(new Handlebars.Compiler).compile(i,t),u=(new Handlebars.JavaScriptCompiler).compile(r,t,undefined,!0);return Handlebars.template(u)}t=t||{};var i;return function(n,t){return i||(i=r()),i.call(this,n,t)}},Handlebars.VM={template:function(n){var t={escapeExpression:Handlebars.Utils.escapeExpression,invokePartial:Handlebars.VM.invokePartial,programs:[],program:function(n,t,i){var r=this.programs[n];return i?Handlebars.VM.program(t,i):r?r:r=this.programs[n]=Handlebars.VM.program(t)},programWithDepth:Handlebars.VM.programWithDepth,noop:Handlebars.VM.noop};return function(i,r){return r=r||{},n.call(t,Handlebars,i,r.helpers,r.partials,r.data)}},programWithDepth:function(n,t){var r=Array.prototype.slice.call(arguments,2);return function(i,u){return u=u||{},n.apply(this,[i,u.data||t].concat(r))}},program:function(n,t){return function(i,r){return r=r||{},n(i,r.data||t)}},noop:function(){return""},invokePartial:function(n,t,i,r,u,f){if(options={helpers:r,partials:u,data:f},n===undefined)throw new Handlebars.Exception("The partial "+t+" could not be found");else{if(n instanceof Function)return n(i,options);if(Handlebars.compile)return u[t]=Handlebars.compile(n),u[t](i,options);throw new Handlebars.Exception("The partial "+t+" could not be compiled when running in runtime-only mode");}}},Handlebars.template=Handlebars.VM.template,function(){var u=this,g=u.Backbone,s=[],nt=s.push,c=s.slice,tt=s.splice,t,n,f,e,v,y,k,d,h;t=typeof exports!="undefined"?exports:u.Backbone={},t.VERSION="0.9.9",n=u._,n||typeof require=="undefined"||(n=require("underscore")),t.$=u.jQuery||u.Zepto||u.ender,t.noConflict=function(){return u.Backbone=g,this},t.emulateHTTP=!1,t.emulateJSON=!1;var l=/\s+/,o=function(n,t,i,r){var f,e,u,o;if(!i)return!0;if(typeof i=="object")for(f in i)n[t].apply(n,[f,i[f]].concat(r));else if(l.test(i))for(e=i.split(l),u=0,o=e.length;u<o;u++)n[t].apply(n,[e[u]].concat(r));else return!0},a=function(n,t,i){var r,u=-1,f=t.length;switch(i.length){case 0:while(++u<f)(r=t[u]).callback.call(r.ctx);return;case 1:while(++u<f)(r=t[u]).callback.call(r.ctx,i[0]);return;case 2:while(++u<f)(r=t[u]).callback.call(r.ctx,i[0],i[1]);return;case 3:while(++u<f)(r=t[u]).callback.call(r.ctx,i[0],i[1],i[2]);return;default:while(++u<f)(r=t[u]).callback.apply(r.ctx,i)}},i=t.Events={on:function(n,t,i){if(!(o(this,"on",n,[t,i])&&t))return this;this._events||(this._events={});var r=this._events[n]||(this._events[n]=[]);return r.push({callback:t,context:i,ctx:i||this}),this},once:function(t,i,r){if(!(o(this,"once",t,[i,r])&&i))return this;var f=this,u=n.once(function(){f.off(t,u),i.apply(this,arguments)});u._callback=i;this.on(t,u,r);return this},off:function(t,i,r){var s,u,h,c,f,l,e,a;if(!this._events||!o(this,"off",t,[i,r]))return this;if(!t&&!i&&!r)return this._events={},this;for(c=t?[t]:n.keys(this._events),f=0,l=c.length;f<l;f++)if(t=c[f],s=this._events[t]){if(h=[],i||r)for(e=0,a=s.length;e<a;e++)u=s[e],(i&&i!==(u.callback._callback||u.callback)||r&&r!==u.context)&&h.push(u);this._events[t]=h}return this},trigger:function(n){var t,i,r;return this._events?(t=c.call(arguments,1),!o(this,"trigger",n,t))?this:(i=this._events[n],r=this._events.all,i&&a(this,i,t),r&&a(this,r,arguments),this):this},listenTo:function(t,i,r){var u=this._listeners||(this._listeners={}),f=t._listenerId||(t._listenerId=n.uniqueId("l"));u[f]=t;t.on(i,r||this,this);return this},stopListening:function(n,t,i){var r=this._listeners,u;if(r){if(n)n.off(t,i,this),t||i||delete r[n._listenerId];else{for(u in r)r[u].off(null,null,this);this._listeners={}}return this}}};i.bind=i.on,i.unbind=i.off,n.extend(t,i),f=t.Model=function(t,i){var u,r=t||{};this.cid=n.uniqueId("c"),this.changed={},this.attributes={},this._changes=[],i&&i.collection&&(this.collection=i.collection),i&&i.parse&&(r=this.parse(r)),(u=n.result(this,"defaults"))&&n.defaults(r,u),this.set(r,{silent:!0}),this._currentAttributes=n.clone(this.attributes),this._previousAttributes=n.clone(this.attributes),this.initialize.apply(this,arguments)},n.extend(f.prototype,i,{changed:null,idAttribute:"id",initialize:function(){},toJSON:function(){return n.clone(this.attributes)},sync:function(){return t.sync.apply(this,arguments)},get:function(n){return this.attributes[n]},escape:function(t){return n.escape(this.get(t))},has:function(n){return this.get(n)!=null},set:function(t,i,r){var f,u,o,s,e;if(t==null)return this;if(n.isObject(t)?(u=t,r=i):(u={})[t]=i,o=r&&r.silent,s=r&&r.unset,!this._validate(u,r))return!1;this.idAttribute in u&&(this.id=u[this.idAttribute]),e=this.attributes;for(f in u)i=u[f],s?delete e[f]:e[f]=i,this._changes.push(f,i);return this._hasComputed=!1,o||this.change(r),this},unset:function(t,i){return this.set(t,void 0,n.extend({},i,{unset:!0}))},clear:function(t){var i={},r;for(r in this.attributes)i[r]=void 0;return this.set(i,n.extend({},t,{unset:!0}))},fetch:function(t){t=t?n.clone(t):{},t.parse===void 0&&(t.parse=!0);var i=this,r=t.success;return t.success=function(n){if(!i.set(i.parse(n),t))return!1;r&&r(i,n,t)},this.sync("read",this,t)},save:function(t,i,r){var u,h,c,f,e,o,s,l;if(t==null||n.isObject(t)?(u=t,r=i):t!=null&&((u={})[t]=i),r=r?n.clone(r):{},r.wait){if(u&&!this._validate(u,r))return!1;h=n.clone(this.attributes)}return(f=n.extend({},r,{silent:!0}),u&&!this.set(u,r.wait?f:r))?!1:!u&&!this._validate(null,r)?!1:(e=this,o=r.success,r.success=function(t){c=!0;var s=e.parse(t);if(r.wait&&(s=n.extend(u||{},s)),!e.set(s,r))return!1;o&&o(e,t,r)},s=this.isNew()?"create":r.patch?"patch":"update",s=="patch"&&(r.attrs=u),l=this.sync(s,this,r),!c&&r.wait&&(this.clear(f),this.set(h,f)),l)},destroy:function(t){var f;t=t?n.clone(t):{};var i=this,r=t.success,u=function(){i.trigger("destroy",i,i.collection,t)};return(t.success=function(n){(t.wait||i.isNew())&&u(),r&&r(i,n,t)},this.isNew())?(t.success(),!1):(f=this.sync("delete",this,t),t.wait||u(),f)},url:function(){var t=n.result(this,"urlRoot")||n.result(this.collection,"url")||h();return this.isNew()?t:t+(t.charAt(t.length-1)==="/"?"":"/")+encodeURIComponent(this.id)},parse:function(n){return n},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return this.id==null},change:function(t){var u=this._changing,i,r;for(this._changing=!0,i=this._computeChanges(!0),this._pending=!!i.length,r=i.length-2;r>=0;r-=2)this.trigger("change:"+i[r],this,i[r+1],t);if(u)return this;while(this._pending)this._pending=!1,this.trigger("change",this,t),this._previousAttributes=n.clone(this.attributes);return this._changing=!1,this},hasChanged:function(t){return(this._hasComputed||this._computeChanges(),t==null)?!n.isEmpty(this.changed):n.has(this.changed,t)},changedAttributes:function(t){var u,i,f,r;if(!t)return this.hasChanged()?n.clone(this.changed):!1;i=!1,f=this._previousAttributes;for(r in t)n.isEqual(f[r],u=t[r])||((i||(i={}))[r]=u);return i},_computeChanges:function(n){var i,t,r;this.changed={};var f={},e=[],o=this._currentAttributes,u=this._changes;for(i=u.length-2;i>=0;i-=2)if((t=u[i],r=u[i+1],!f[t])&&(f[t]=!0,o[t]!==r)){if(this.changed[t]=r,!n)continue;e.push(t,r),o[t]=r}return n&&(this._changes=[]),this._hasComputed=!0,e},previous:function(n){return n==null||!this._previousAttributes?null:this._previousAttributes[n]},previousAttributes:function(){return n.clone(this._previousAttributes)},_validate:function(t,i){if(!this.validate)return!0;t=n.extend({},this.attributes,t);var r=this.validate(t,i);return r?(i&&i.error&&i.error(this,r,i),this.trigger("error",this,r,i),!1):!0}}),e=t.Collection=function(t,i){i||(i={}),i.model&&(this.model=i.model),i.comparator!==void 0&&(this.comparator=i.comparator),this._reset(),this.initialize.apply(this,arguments),t&&this.reset(t,n.extend({silent:!0},i))},n.extend(e.prototype,i,{model:f,initialize:function(){},toJSON:function(n){return this.map(function(t){return t.toJSON(n)})},sync:function(){return t.sync.apply(this,arguments)},add:function(t,i){var u,e,c,r,f,o,s=i&&i.at,h=(i&&i.sort)==null?!0:i.sort;for(t=n.isArray(t)?t.slice():[t],u=t.length-1;u>=0;u--){if(!(r=this._prepareModel(t[u],i))){this.trigger("error",this,t[u],i),t.splice(u,1);continue}if(t[u]=r,f=r.id!=null&&this._byId[r.id],f||this._byCid[r.cid]){i&&i.merge&&f&&(f.set(r.attributes,i),o=h),t.splice(u,1);continue}r.on("all",this._onModelEvent,this);this._byCid[r.cid]=r,r.id!=null&&(this._byId[r.id]=r)}if(t.length&&(o=h),this.length+=t.length,e=[s!=null?s:this.models.length,0],nt.apply(e,t),tt.apply(this.models,e),o&&this.comparator&&s==null&&this.sort({silent:!0}),i&&i.silent)return this;while(r=t.shift())r.trigger("add",r,this,i);return this},remove:function(t,i){var u,e,f,r;for(i||(i={}),t=n.isArray(t)?t.slice():[t],u=0,e=t.length;u<e;u++)(r=this.get(t[u]),r)&&(delete this._byId[r.id],delete this._byCid[r.cid],f=this.indexOf(r),this.models.splice(f,1),this.length--,i.silent||(i.index=f,r.trigger("remove",r,this,i)),this._removeReference(r));return this},push:function(t,i){return t=this._prepareModel(t,i),this.add(t,n.extend({at:this.length},i)),t},pop:function(n){var t=this.at(this.length-1);return this.remove(t,n),t},unshift:function(t,i){return t=this._prepareModel(t,i),this.add(t,n.extend({at:0},i)),t},shift:function(n){var t=this.at(0);return this.remove(t,n),t},slice:function(n,t){return this.models.slice(n,t)},get:function(n){if(n!=null)return this._byId[n.id!=null?n.id:n]||this._byCid[n.cid||n]},at:function(n){return this.models[n]},where:function(t){return n.isEmpty(t)?[]:this.filter(function(n){for(var i in t)if(t[i]!==n.get(i))return!1;return!0})},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return n.isString(this.comparator)||this.comparator.length===1?this.models=this.sortBy(this.comparator,this):this.models.sort(n.bind(this.comparator,this)),t&&t.silent||this.trigger("sort",this,t),this},pluck:function(t){return n.invoke(this.models,"get",t)},update:function(t,i){var r,u,e,f,o=[],s=[],h={},c=this.model.prototype.idAttribute;if(i=n.extend({add:!0,merge:!0,remove:!0},i),i.parse&&(t=this.parse(t)),n.isArray(t)||(t=t?[t]:[]),i.add&&!i.remove)return this.add(t,i);for(u=0,e=t.length;u<e;u++)r=t[u],f=this.get(r.id||r.cid||r[c]),i.remove&&f&&(h[f.cid]=!0),(i.add&&!f||i.merge&&f)&&o.push(r);if(i.remove)for(u=0,e=this.models.length;u<e;u++)r=this.models[u],h[r.cid]||s.push(r);return s.length&&this.remove(s,i),o.length&&this.add(o,i),this},reset:function(t,i){i||(i={}),i.parse&&(t=this.parse(t));for(var r=0,u=this.models.length;r<u;r++)this._removeReference(this.models[r]);return i.previousModels=this.models,this._reset(),t&&this.add(t,n.extend({silent:!0},i)),i.silent||this.trigger("reset",this,i),this},fetch:function(t){t=t?n.clone(t):{},t.parse===void 0&&(t.parse=!0);var i=this,r=t.success;return t.success=function(n){var e=t.update?"update":"reset";i[e](n,t),r&&r(i,n,t)},this.sync("read",this,t)},create:function(t,i){var u=this,r;return(i=i?n.clone(i):{},t=this._prepareModel(t,i),!t)?!1:(i.wait||u.add(t,i),r=i.success,i.success=function(n,t,i){i.wait&&u.add(n,i),r&&r(n,t,i)},t.save(null,i),t)},parse:function(n){return n},clone:function(){return new this.constructor(this.models)},chain:function(){return n(this.models).chain()},_reset:function(){this.length=0,this.models=[],this._byId={},this._byCid={}},_prepareModel:function(n,t){if(n instanceof f)return n.collection||(n.collection=this),n;t||(t={}),t.collection=this;var i=new this.model(n,t);return i._validate(n,t)?i:!1},_removeReference:function(n){this===n.collection&&delete n.collection,n.off("all",this._onModelEvent,this)},_onModelEvent:function(n,t,i,r){(n!=="add"&&n!=="remove"||i===this)&&(n==="destroy"&&this.remove(t,r),t&&n==="change:"+t.idAttribute&&(delete this._byId[t.previous(t.idAttribute)],t.id!=null&&(this._byId[t.id]=t)),this.trigger.apply(this,arguments))}}),v=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","sortedIndex","toArray","size","first","head","take","initial","rest","tail","last","without","indexOf","shuffle","lastIndexOf","isEmpty"],n.each(v,function(t){e.prototype[t]=function(){var i=c.call(arguments);return i.unshift(this.models),n[t].apply(n,i)}}),y=["groupBy","countBy","sortBy"],n.each(y,function(t){e.prototype[t]=function(i,r){var u=n.isFunction(i)?i:function(n){return n.get(i)};return n[t](this.models,u,r)}});var p=t.Router=function(n){n||(n={}),n.routes&&(this.routes=n.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},it=/\((.*?)\)/g,rt=/:\w+/g,ut=/\*\w+/g,ft=/[\-{}\[\]+?.,\\\^$|#\s]/g;n.extend(p.prototype,i,{initialize:function(){},route:function(i,r,u){return n.isRegExp(i)||(i=this._routeToRegExp(i)),u||(u=this[r]),t.history.route(i,n.bind(function(n){var f=this._extractParameters(i,n);u&&u.apply(this,f),this.trigger.apply(this,["route:"+r].concat(f)),t.history.trigger("route",this,r,f)},this)),this},navigate:function(n,i){return t.history.navigate(n,i),this},_bindRoutes:function(){if(this.routes)for(var t,i=n.keys(this.routes);(t=i.pop())!=null;)this.route(t,this.routes[t])},_routeToRegExp:function(n){return n=n.replace(ft,"\\$&").replace(it,"(?:$1)?").replace(rt,"([^/]+)").replace(ut,"(.*?)"),new RegExp("^"+n+"$")},_extractParameters:function(n,t){return n.exec(t).slice(1)}});var r=t.History=function(){this.handlers=[],n.bindAll(this,"checkUrl"),typeof window!="undefined"&&(this.location=window.location,this.history=window.history)},w=/^[#\/]|\s+$/g,et=/^\/+|\/+$/g,ot=/msie [\w.]+/,st=/\/$/;r.started=!1,n.extend(r.prototype,i,{interval:50,getHash:function(n){var t=(n||this).location.href.match(/#(.*)$/);return t?t[1]:""},getFragment:function(n,t){if(n==null)if(this._hasPushState||!this._wantsHashChange||t){n=this.location.pathname.toLowerCase();var i=this.root.replace(st,"");n.indexOf(i)||(n=n.substr(i.length))}else n=this.getHash();return n.replace(w,"")},start:function(i){var u,f;if(r.started)throw new Error("Backbone.history has already been started");r.started=!0,this.options=n.extend({},{root:"/"},this.options,i),this.root=this.options.root,this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var e=this.getFragment(),o=document.documentMode,s=ot.exec(navigator.userAgent.toLowerCase())&&(!o||o<=7);return(this.root=("/"+this.root+"/").replace(et,"/"),s&&this._wantsHashChange&&(this.iframe=t.$('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(e)),this._hasPushState?t.$(window).bind("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!s?t.$(window).bind("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),this.fragment=e,u=this.location,f=u.pathname.replace(/[^\/]$/,"$&/")===this.root,this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!f)?(this.fragment=this.getFragment(null,!0),this.location.replace(this.root+this.location.search+"#"+this.fragment),!0):(this._wantsPushState&&this._hasPushState&&f&&u.hash&&(this.fragment=this.getHash().replace(w,""),this.history.replaceState({},document.title,this.root+this.fragment+u.search)),this.options.silent?void 0:this.loadUrl())},stop:function(){t.$(window).unbind("popstate",this.checkUrl).unbind("hashchange",this.checkUrl),clearInterval(this._checkUrlInterval),r.started=!1},route:function(n,t){this.handlers.unshift({route:n,callback:t})},checkUrl:function(){var t=this.getFragment();if(t===this.fragment&&this.iframe&&(t=this.getFragment(this.getHash(this.iframe))),t===this.fragment)return!1;this.iframe&&this.navigate(t),this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(t){var i=this.fragment=this.getFragment(t);return n.any(this.handlers,function(n){if(n.route.test(i))return n.callback(i),!0})},navigate:function(n,t){if(!r.started)return!1;if(t&&t!==!0||(t={trigger:t}),n=this.getFragment(n||""),this.fragment!==n){this.fragment=n;var i=this.root+n;if(this._hasPushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,i);else if(this._wantsHashChange)this._updateHash(this.location,n,t.replace),this.iframe&&n!==this.getFragment(this.getHash(this.iframe))&&(t.replace||this.iframe.document.open().close(),this._updateHash(this.iframe.location,n,t.replace));else return this.location.assign(i);t.trigger&&this.loadUrl(n)}},_updateHash:function(n,t,i){if(i){var r=n.href.replace(/(javascript:|#).*$/,"");n.replace(r+"#"+t)}else n.hash="#"+t}}),t.history=new r;var b=t.View=function(t){this.cid=n.uniqueId("view"),this._configure(t||{}),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},ht=/^(\S+)\s*(.*)$/,ct=["model","collection","el","id","attributes","className","tagName","events"];n.extend(b.prototype,i,{tagName:"div",$:function(n){return this.$el.find(n)},initialize:function(){},render:function(){return this},remove:function(){return this.$el.remove(),this.stopListening(),this},make:function(n,i,r){var u=document.createElement(n);return i&&t.$(u).attr(i),r!=null&&t.$(u).html(r),u},setElement:function(n,i){return this.$el&&this.undelegateEvents(),this.$el=n instanceof t.$?n:t.$(n),this.el=this.$el[0],i!==!1&&this.delegateEvents(),this},delegateEvents:function(t){var r,i;if(t||(t=n.result(this,"events"))){this.undelegateEvents();for(r in t){if(i=t[r],n.isFunction(i)||(i=this[t[r]]),!i)throw new Error('Method "'+t[r]+'" does not exist');var f=r.match(ht),u=f[1],e=f[2];i=n.bind(i,this),u+=".delegateEvents"+this.cid,e===""?this.$el.bind(u,i):this.$el.delegate(e,u,i)}}},undelegateEvents:function(){this.$el.unbind(".delegateEvents"+this.cid)},_configure:function(t){this.options&&(t=n.extend({},n.result(this,"options"),t)),n.extend(this,n.pick(t,ct)),this.options=t},_ensureElement:function(){if(this.el)this.setElement(n.result(this,"el"),!1);else{var t=n.extend({},n.result(this,"attributes"));this.id&&(t.id=n.result(this,"id")),this.className&&(t["class"]=n.result(this,"className")),this.setElement(this.make(n.result(this,"tagName"),t),!1)}}}),k={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"},t.sync=function(i,r,u){var e=k[i],f,o,s,c,l;return n.defaults(u||(u={}),{emulateHTTP:t.emulateHTTP,emulateJSON:t.emulateJSON}),f={type:e,dataType:"json"},u.url||(f.url=n.result(r,"url")||h()),u.data==null&&r&&(i==="create"||i==="update"||i==="patch")&&(f.contentType="application/json",f.data=JSON.stringify(u.attrs||r.toJSON(u))),u.emulateJSON&&(f.contentType="application/x-www-form-urlencoded",f.data=f.data?{model:f.data}:{}),u.emulateHTTP&&(e==="PUT"||e==="DELETE"||e==="PATCH")&&(f.type="POST",u.emulateJSON&&(f.data._method=e),o=u.beforeSend,u.beforeSend=function(n){return n.setRequestHeader("X-HTTP-Method-Override",e),o?o.apply(this,arguments):void 0}),f.type==="GET"||u.emulateJSON||(f.processData=!1),s=u.success,u.success=function(n,t,i){s&&s(n,t,i),r.trigger("sync",r,n,u)},c=u.error,u.error=function(n){c&&c(r,n,u),r.trigger("error",r,n,u)},l=t.ajax(n.extend(f,u)),r.trigger("request",r,l,u),l},t.ajax=function(){return t.$.ajax.apply(t.$,arguments)},d=function(t,i){var u=this,r,f;return r=t&&n.has(t,"constructor")?t.constructor:function(){u.apply(this,arguments)},n.extend(r,u,i),f=function(){this.constructor=r},f.prototype=u.prototype,r.prototype=new f,t&&n.extend(r.prototype,t),r.__super__=u.prototype,r},f.extend=e.extend=p.extend=b.extend=r.extend=d,h=function(){throw new Error('A "url" property or function must be specified');}}.call(this);
/*!
 * Includes BabySitter
 * https://github.com/marionettejs/backbone.babysitter/
 *
 * Includes Wreqr
 * https://github.com/marionettejs/backbone.wreqr/
 */
Backbone.ChildViewContainer=function(n,t){var i=function(n){this._views={},this._indexByModel={},this._indexByCollection={},this._indexByCustom={},this._updateLength(),this._addInitialViews(n)},r;return t.extend(i.prototype,{add:function(n,t){var i=n.cid;this._views[i]=n,n.model&&(this._indexByModel[n.model.cid]=i),n.collection&&(this._indexByCollection[n.collection.cid]=i),t&&(this._indexByCustom[t]=i),this._updateLength()},findByModel:function(n){var t=this._indexByModel[n.cid];return this.findByCid(t)},findByCollection:function(n){var t=this._indexByCollection[n.cid];return this.findByCid(t)},findByCustom:function(n){var t=this._indexByCustom[n];return this.findByCid(t)},findByIndex:function(n){return t.values(this._views)[n]},findByCid:function(n){return this._views[n]},remove:function(n){var r=n.cid,i,t;n.model&&delete this._indexByModel[n.model.cid],n.collection&&delete this._indexByCollection[n.collection.cid];for(t in this._indexByCustom)if(this._indexByCustom.hasOwnProperty(t)&&this._indexByCustom[t]===r){i=t;break}i&&delete this._indexByCustom[i],delete this._views[r],this._updateLength()},call:function(n,t){t=Array.prototype.slice.call(arguments,1),this.apply(n,t)},apply:function(n,i){var r;i=i||[],t.each(this._views,function(r){t.isFunction(r[n])&&r[n].apply(r,i)})},_updateLength:function(){this.length=t.size(this._views)},_addInitialViews:function(n){if(n)for(var i,r=n.length,t=0;t<r;t++)i=n[t],this.add(i)}}),r=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck"],t.each(r,function(n){i.prototype[n]=function(){var i=t.values(this._views),r=[i].concat(t.toArray(arguments));return t[n].apply(t,r)}}),i}(Backbone,_),Backbone.Wreqr=function(n,t,i){"option strict";var r={};return r.Handlers=function(n,t){"option strict";var i=function(){"use strict";this._handlers={}};return i.extend=n.Model.extend,t.extend(i.prototype,{addHandler:function(n,t,i){var r={callback:t,context:i};this._handlers[n]=r},getHandler:function(n){var t=this._handlers[n];if(!t)throw new Error("Handler not found for '"+n+"'");return function(){var n=Array.prototype.slice.apply(arguments);return t.callback.apply(t.context,n)}},removeHandler:function(n){delete this._handlers[n]},removeAllHandlers:function(){this._handlers={}}}),i}(n,i),r.Commands=function(n){"option strict";return n.Handlers.extend({execute:function(){var n=arguments[0],t=Array.prototype.slice.call(arguments,1);this.getHandler(n).apply(this,t)}})}(r),r.RequestResponse=function(n){"option strict";return n.Handlers.extend({request:function(){var n=arguments[0],t=Array.prototype.slice.call(arguments,1);return this.getHandler(n).apply(this,t)}})}(r),r.EventAggregator=function(n,t){function u(n,i,u,f,e){return e=e||n,r.call(n,i,u,t.bind(f,e))}function i(){}var r=n.Events.listenTo;return t.extend(i.prototype,n.Events,{listenTo:function(n,t,i,r){return u(this,n,t,i,r)}}),i.extend=n.Model.extend,i}(n,i),r}(Backbone,Backbone.Marionette,_),Marionette=function(n,t,i){"use strict";var r={},u;return n.Marionette=r,u=Array.prototype.slice,r.extend=n.Model.extend,r.getOption=function(n,t){if(n&&t){var i;return i=n.options&&n.options[t]?n.options[t]:n[t]}},r.createObject=function(){function t(){}var n;return n=typeof Object.create=="function"?Object.create:function(n){t.prototype=n;var i=new t;return t.prototype=null,i}}(),r.triggerMethod=function(){for(var n=Array.prototype.slice.apply(arguments),o=n[0],f=o.split(":"),r,e,u="on",i=0;i<f.length;i++)r=f[i],e=r.charAt(0).toUpperCase(),u+=e+r.slice(1);return this.trigger.apply(this,n),t.isFunction(this[u])?(n.shift(),this[u].apply(this,n)):void 0},r.MonitorDOMRefresh=function(){function i(t){t._isShown=!0,n(t)}function r(t){t._isRendered=!0,n(t)}function n(n){n._isShown&&n._isRendered&&t.isFunction(n.triggerMethod)&&n.triggerMethod("dom:refresh")}return function(n){n.listenTo(n,"show",function(){i(n)}),n.listenTo(n,"render",function(){r(n)})}}(),function(n,t,i){var r=n.Events.listenTo;t.addEventBinder=function(t){t.on||t.off||t.listenTo||t.stopListening||i.extend(t,n.Events),t.listenTo=function(n,t,u,f){return f=f||this,r.call(this,n,t,i.bind(u,f))}}}(n,r,t),r.EventAggregator=n.Wreqr.EventAggregator.extend({constructor:function(){r.addEventBinder(this);var t=Array.prototype.slice.apply(arguments);n.Wreqr.EventAggregator.prototype.constructor.apply(this,t)}}),function(n){function r(n,i,r,u){var f=u.split(/\s+/);t.each(f,function(t){var u=n[t];if(!u)throw new Error("Method '"+t+"' was configured as an event handler, but does not exist.");n.listenTo(i,r,u,n)})}function u(n,t,i,r){n.listenTo(t,i,r,n)}function f(n,i,r,u){var f=u.split(/\s+/);t.each(f,function(){var u=n[u];n.stopListening(i,r,u,n)})}function e(n,t,i,r){n.stopListening(t,i,r,n)}function i(n,i,r,u,f){i&&r&&(t.isFunction(r)&&(r=r.call(n)),t.each(r,function(r,e){t.isFunction(r)?u(n,i,e,r):f(n,i,e,r)}))}n.bindEntityEvents=function(n,t,f){i(n,t,f,u,r)},n.unbindEntityEvents=function(n,t,r){i(n,t,r,e,f)}}(r),r.Callbacks=function(){this._deferred=i.Deferred(),this._callbacks=[]},t.extend(r.Callbacks.prototype,{add:function(n,t){this._callbacks.push({cb:n,ctx:t}),this._deferred.done(function(i,r){t&&(i=t),n.call(i,r)})},run:function(n,t){this._deferred.resolve(t,n)},reset:function(){var n=this,r=this._callbacks;this._deferred=i.Deferred(),this._callbacks=[],t.each(r,function(t){n.add(t.cb,t.ctx)})}}),r.Controller=function(n){this.triggerMethod=r.triggerMethod,this.options=n||{},r.addEventBinder(this),t.isFunction(this.initialize)&&this.initialize(this.options)},r.Controller.extend=r.extend,t.extend(r.Controller.prototype,n.Events,{close:function(){this.stopListening(),this.triggerMethod("close"),this.unbind()}}),r.Region=function(n){var t,i;if(this.options=n||{},r.addEventBinder(this),this.el=r.getOption(this,"el"),!this.el){t=new Error("An 'el' must be specified for a region."),t.name="NoElError";throw t;}this.initialize&&(i=Array.prototype.slice.apply(arguments),this.initialize.apply(this,i))},t.extend(r.Region,{buildRegion:function(n,t){var f=typeof n=="string",o=typeof n.selector=="string",s=typeof n.regionType=="undefined",r=typeof n=="function",u,i,e;if(!r&&!f&&!o)throw new Error("Region must be specified as a Region type, a selector string or an object with selector property");return f&&(u=n),n.selector&&(u=n.selector),r&&(i=n),!r&&s&&(i=t),n.regionType&&(i=n.regionType),e=new i({el:u})}}),t.extend(r.Region.prototype,n.Events,{show:function(n){this.ensureEl(),this.close(),n.render(),this.open(n),r.triggerMethod.call(n,"show"),r.triggerMethod.call(this,"show",n),this.currentView=n},ensureEl:function(){this.$el&&this.$el.length!==0||(this.$el=this.getEl(this.el))},getEl:function(n){return i(n)},open:function(n){this.$el.empty().append(n.el)},close:function(){var n=this.currentView;n&&!n.isClosed&&(n.close&&n.close(),r.triggerMethod.call(this,"close"),delete this.currentView)},attachView:function(n){this.currentView=n},reset:function(){this.close(),delete this.$el}}),r.Region.extend=r.extend,r.TemplateCache=function(n){this.templateId=n},t.extend(r.TemplateCache,{templateCaches:{},get:function(n){var i=this,t=this.templateCaches[n];return t||(t=new r.TemplateCache(n),this.templateCaches[n]=t),t.load()},clear:function(){var n,t=Array.prototype.slice.apply(arguments),i=t.length;if(i>0)for(n=0;n<i;n++)delete this.templateCaches[t[n]];else this.templateCaches={}}}),t.extend(r.TemplateCache.prototype,{load:function(){var t=this,n;return this.compiledTemplate?this.compiledTemplate:(n=this.loadTemplate(this.templateId),this.compiledTemplate=this.compileTemplate(n))},loadTemplate:function(n){var t=i(n).html(),u,r;if(!t||t.length===0){u="Could not find template: '"+n+"'",r=new Error(u),r.name="NoTemplateError";throw r;}return t},compileTemplate:function(n){return t.template(n)}}),r.Renderer={render:function(n,t){var i=typeof n=="function"?n:r.TemplateCache.get(n);return i(t)}},r.View=n.View.extend({constructor:function(){t.bindAll(this,"render"),r.addEventBinder(this);var i=Array.prototype.slice.apply(arguments);n.View.prototype.constructor.apply(this,i),r.MonitorDOMRefresh(this),this.listenTo(this,"show",this.onShowCalled,this)},triggerMethod:r.triggerMethod,getTemplate:function(){return r.getOption(this,"template")},mixinTemplateHelpers:function(n){n=n||{};var i=this.templateHelpers;return t.isFunction(i)&&(i=i.call(this)),t.extend(n,i)},configureTriggers:function(){if(this.triggers){var i=this,n={},r=t.result(this,"triggers");return t.each(r,function(t,r){n[r]=function(n){n&&n.preventDefault&&n.preventDefault(),n&&n.stopPropagation&&n.stopPropagation();var r={view:this,model:this.model,collection:this.collection};i.trigger(t,r)}}),n}},delegateEvents:function(n){this._delegateDOMEvents(n),r.bindEntityEvents(this,this.model,r.getOption(this,"modelEvents")),r.bindEntityEvents(this,this.collection,r.getOption(this,"collectionEvents"))},_delegateDOMEvents:function(i){i=i||this.events,t.isFunction(i)&&(i=i.call(this));var r={},u=this.configureTriggers();t.extend(r,i,u),n.View.prototype.delegateEvents.call(this,r)},undelegateEvents:function(){var t=Array.prototype.slice.call(arguments);n.View.prototype.undelegateEvents.apply(this,t),r.unbindEntityEvents(this,this.model,r.getOption(this,"modelEvents")),r.unbindEntityEvents(this,this.collection,r.getOption(this,"collectionEvents"))},onShowCalled:function(){},close:function(){if(!this.isClosed){var n=this.triggerMethod("before:close");n!==!1&&(this.isClosed=!0,this.triggerMethod("close"),this.remove())}},bindUIElements:function(){if(this.ui){var n=this;this.uiBindings||(this.uiBindings=t.result(this,"ui")),this.ui={},t.each(t.keys(this.uiBindings),function(t){var i=n.uiBindings[t];n.ui[t]=n.$(i)})}}}),r.ItemView=r.View.extend({constructor:function(){var n=Array.prototype.slice.apply(arguments);r.View.prototype.constructor.apply(this,n)},serializeData:function(){var n={};return this.model?n=this.model.toJSON():this.collection&&(n={items:this.collection.toJSON()}),n},render:function(){var n,t,i;return this.isClosed=!1,this.triggerMethod("before:render",this),this.triggerMethod("item:before:render",this),n=this.serializeData(),n=this.mixinTemplateHelpers(n),t=this.getTemplate(),i=r.Renderer.render(t,n),this.$el.html(i),this.bindUIElements(),this.triggerMethod("render",this),this.triggerMethod("item:rendered",this),this},close:function(){if(!this.isClosed){this.triggerMethod("item:before:close");var n=Array.prototype.slice.apply(arguments);r.View.prototype.close.apply(this,n),this.triggerMethod("item:closed")}}}),r.CollectionView=r.View.extend({itemViewEventPrefix:"itemview",constructor:function(){this._initChildViewStorage();var t=Array.prototype.slice.apply(arguments);r.View.prototype.constructor.apply(this,t),this._initialEvents()},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this.addChildView,this),this.listenTo(this.collection,"remove",this.removeItemView,this),this.listenTo(this.collection,"reset",this.render,this))},addChildView:function(n){this.closeEmptyView();var r=this.getItemView(n),u=this.collection.indexOf(n);return this.addItemView(n,r,u)},onShowCalled:function(){this.children.each(function(n){r.triggerMethod.call(n,"show")})},triggerBeforeRender:function(){this.triggerMethod("before:render",this),this.triggerMethod("collection:before:render",this)},triggerRendered:function(){this.triggerMethod("render",this),this.triggerMethod("collection:rendered",this)},render:function(){return this.isClosed=!1,this.triggerBeforeRender(),this.closeEmptyView(),this.closeChildren(),this.collection&&this.collection.length>0?this.showCollection():this.showEmptyView(),this.triggerRendered(),this},showCollection:function(){var n=this,t;this.collection.each(function(i,r){t=n.getItemView(i),n.addItemView(i,t,r)})},showEmptyView:function(){var t=r.getOption(this,"emptyView"),i;t&&!this._showingEmptyView&&(this._showingEmptyView=!0,i=new n.Model,this.addItemView(i,t,0))},closeEmptyView:function(){this._showingEmptyView&&(this.closeChildren(),delete this._showingEmptyView)},getItemView:function(){var i=r.getOption(this,"itemView"),t;if(!i){t=new Error("An `itemView` must be specified"),t.name="NoItemViewError";throw t;}return i},addItemView:function(n,i,u){var s=this,e=r.getOption(this,"itemViewOptions"),f,o;return t.isFunction(e)&&(e=e.call(this,n)),f=this.buildItemView(n,i,e),this.addChildViewEventForwarding(f),this.triggerMethod("before:item:added",f),this.children.add(f),this._isShown&&r.triggerMethod.call(f,"show"),o=this.renderItemView(f,u),this.triggerMethod("after:item:added",f),o},addChildViewEventForwarding:function(n){var t=r.getOption(this,"itemViewEventPrefix");this.listenTo(n,"all",function(){var i=u.call(arguments);i[0]=t+":"+i[0],i.splice(1,0,n),r.triggerMethod.apply(this,i)},this)},renderItemView:function(n,t){n.render(),this.appendHtml(this,n,t)},buildItemView:function(n,i,r){var u=t.extend({model:n},r);return new i(u)},removeItemView:function(n){var t=this.children.findByModel(n);this.removeChildView(t)},removeChildView:function(n){n&&(this.stopListening(n),n.close&&n.close(),this.children.remove(n)),this.collection&&this.collection.length!==0||this.showEmptyView(),this.triggerMethod("item:removed",n)},appendHtml:function(n,t){n.$el.append(t.el)},_initChildViewStorage:function(){this.children=new n.ChildViewContainer},close:function(){if(!this.isClosed){this.triggerMethod("collection:before:close"),this.closeChildren(),this.triggerMethod("collection:closed");var n=Array.prototype.slice.apply(arguments);r.View.prototype.close.apply(this,n)}},closeChildren:function(){this.children.each(function(n){this.removeChildView(n)},this),this._initChildViewStorage()}}),r.CompositeView=r.CollectionView.extend({constructor:function(){var t=Array.prototype.slice.apply(arguments);r.CollectionView.apply(this,t),this.itemView=this.getItemView()},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this.addChildView,this),this.listenTo(this.collection,"remove",this.removeItemView,this),this.listenTo(this.collection,"reset",this.renderCollection,this))},getItemView:function(){var i=r.getOption(this,"itemView")||this.constructor,t;if(!i){t=new Error("An `itemView` must be specified"),t.name="NoItemViewError";throw t;}return i},serializeData:function(){var n={};return this.model&&(n=this.model.toJSON()),n},render:function(){this.isClosed=!1,this.resetItemViewContainer();var n=this.renderModel();return this.$el.html(n),this.bindUIElements(),this.triggerMethod("composite:model:rendered"),this.renderCollection(),this.triggerMethod("composite:rendered"),this},renderCollection:function(){var n=Array.prototype.slice.apply(arguments);r.CollectionView.prototype.render.apply(this,n),this.triggerMethod("composite:collection:rendered")},renderModel:function(){var n={},t;return n=this.serializeData(),n=this.mixinTemplateHelpers(n),t=this.getTemplate(),r.Renderer.render(t,n)},appendHtml:function(n,t){var i=this.getItemViewContainer(n);i.append(t.el)},getItemViewContainer:function(n){var i,u,r;if("$itemViewContainer"in n)return n.$itemViewContainer;if(n.itemViewContainer){if(u=t.result(n,"itemViewContainer"),i=n.$(u),i.length<=0){r=new Error("The specified `itemViewContainer` was not found: "+n.itemViewContainer),r.name="ItemViewContainerMissingError";throw r;}}else i=n.$el;return n.$itemViewContainer=i,i},resetItemViewContainer:function(){this.$itemViewContainer&&delete this.$itemViewContainer}}),r.Layout=r.ItemView.extend({regionType:r.Region,constructor:function(){this._firstRender=!0,this.initializeRegions();var n=Array.prototype.slice.apply(arguments);r.ItemView.apply(this,n)},render:function(){this._firstRender?this._firstRender=!1:(this.closeRegions(),this.reInitializeRegions());var n=Array.prototype.slice.apply(arguments);return r.ItemView.prototype.render.apply(this,n)},close:function(){if(!this.isClosed){this.closeRegions(),this.destroyRegions();var n=Array.prototype.slice.apply(arguments);r.ItemView.prototype.close.apply(this,n)}},initializeRegions:function(){this.regionManagers||(this.regionManagers={});var n=this,i=this.regions||{};t.each(i,function(t,i){var u=r.Region.buildRegion(t,n.regionType);u.getEl=function(t){return n.$(t)},n.regionManagers[i]=u,n[i]=u})},reInitializeRegions:function(){this.regionManagers&&t.size(this.regionManagers)===0?this.initializeRegions():t.each(this.regionManagers,function(n){n.reset()})},closeRegions:function(){var n=this;t.each(this.regionManagers,function(n){n.close()})},destroyRegions:function(){var n=this;t.each(this.regionManagers,function(t,i){delete n[i]}),this.regionManagers={}}}),r.AppRouter=n.Router.extend({constructor:function(t){var u=Array.prototype.slice.apply(arguments),i;n.Router.prototype.constructor.apply(this,u),this.options=t,this.appRoutes&&(i=r.getOption(this,"controller"),this.processAppRoutes(i,this.appRoutes))},processAppRoutes:function(n,i){var u,e,r,h,f,o=[],l=this,c,s;for(r in i)i.hasOwnProperty(r)&&o.unshift([r,i[r]]);for(h=o.length,f=0;f<h;f++){if(r=o[f][0],e=o[f][1],u=n[e],!u){c="Method '"+e+"' was not found on the controller",s=new Error(c),s.name="NoMethodError";throw s;}u=t.bind(u,n),l.route(r,e,u)}}}),r.Application=function(i){this.initCallbacks=new r.Callbacks,this.vent=new r.EventAggregator,this.commands=new n.Wreqr.Commands,this.reqres=new n.Wreqr.RequestResponse,this.submodules={},t.extend(this,i),r.addEventBinder(this),this.triggerMethod=r.triggerMethod},t.extend(r.Application.prototype,n.Events,{execute:function(){var n=Array.prototype.slice.apply(arguments);this.commands.execute.apply(this.commands,n)},request:function(){var n=Array.prototype.slice.apply(arguments);return this.reqres.request.apply(this.reqres,n)},addInitializer:function(n){this.initCallbacks.add(n)},start:function(n){this.triggerMethod("initialize:before",n),this.initCallbacks.run(n,this),this.triggerMethod("initialize:after",n),this.triggerMethod("start",n)},addRegions:function(n){var i=this;t.each(n,function(n,t){var u=r.Region.buildRegion(n,r.Region);i[t]=u})},removeRegion:function(n){this[n].close(),delete this[n]},module:function(){var i=u.call(arguments);return i.unshift(this),r.Module.create.apply(r.Module,i)}}),r.Application.extend=r.extend,r.Module=function(n,t){this.moduleName=n,this.submodules={},this._setupInitializersAndFinalizers(),this.app=t,this.startWithParent=!0,r.addEventBinder(this),this.triggerMethod=r.triggerMethod},t.extend(r.Module.prototype,n.Events,{addInitializer:function(n){this._initializerCallbacks.add(n)},addFinalizer:function(n){this._finalizerCallbacks.add(n)},start:function(n){this._isInitialized||(t.each(this.submodules,function(t){var i=!0;i=t.startWithParent,i&&t.start(n)}),this.triggerMethod("before:start",n),this._initializerCallbacks.run(n,this),this._isInitialized=!0,this.triggerMethod("start",n))},stop:function(){this._isInitialized&&(this._isInitialized=!1,r.triggerMethod.call(this,"before:stop"),t.each(this.submodules,function(n){n.stop()}),this._finalizerCallbacks.run(),this._initializerCallbacks.reset(),this._finalizerCallbacks.reset(),r.triggerMethod.call(this,"stop"))},addDefinition:function(n,t){this._runModuleDefinition(n,t)},_runModuleDefinition:function(u,f){if(u){var e=t.flatten([this,this.app,n,r,i,t,f]);u.apply(this,e)}},_setupInitializersAndFinalizers:function(){this._initializerCallbacks=new r.Callbacks,this._finalizerCallbacks=new r.Callbacks}}),t.extend(r.Module,{create:function(n,i,r){var o=this,f=n,s=u.apply(arguments),h,e;return s.splice(0,3),i=i.split("."),h=i.length,e=[],e[h-1]=r,t.each(i,function(t,i){var r=f;f=o._getModule(r,t,n),o._addModuleDefinition(r,f,e[i],s)}),f},_getModule:function(n,t,i){var e=n[t];return e||(e=new r.Module(t,i),n[t]=e,n.submodules[t]=e),e},_addModuleDefinition:function(n,i,r,u){var f,e,o;t.isFunction(r)?(f=r,e=!0):t.isObject(r)?(f=r.define,e=r.startWithParent):e=!0,f&&i.addDefinition(f,u),o=i.startWithParent,i.startWithParent=i.startWithParent&&e,i.startWithParent&&!i.startWithParentIsConfigured&&(i.startWithParentIsConfigured=!0,n.addInitializer(function(n){i.startWithParent&&i.start(n)}))}}),r}(Backbone,_,$||window.jQuery||window.Zepto||window.ender)