travis-web/public/scripts/app.js
2012-10-23 23:39:12 +02:00

22 lines
674 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*! jQuery v1.7.2 jquery.com | jquery.org/license */
(function(e,t){function n(e){return H.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}function r(e){if(!vn[e]){var t=_.body,n=H("<"+e+">").appendTo(t),r=n.css("display");n.remove();if(r==="none"||r===""){mn||(mn=_.createElement("iframe"),mn.frameBorder=mn.width=mn.height=0),t.appendChild(mn);if(!gn||!mn.createElement)gn=(mn.contentWindow||mn.contentDocument).document,gn.write((H.support.boxModel?"<!doctype html>":"")+"<html><body>"),gn.close();n=gn.createElement(e),gn.body.appendChild(n),r=H.css(n,"display"),t.removeChild(mn)}vn[e]=r}return vn[e]}function i(e,t){var n={};return H.each(En.concat.apply([],En.slice(0,t)),function(){n[this]=e}),n}function s(){Sn=t}function o(){return setTimeout(s,0),Sn=H.now()}function u(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function a(){try{return new e.XMLHttpRequest}catch(t){}}function f(e,n){e.dataFilter&&(n=e.dataFilter(n,e.dataType));var r=e.dataTypes,i={},s,o,u=r.length,a,f=r[0],l,c,h,p,d;for(s=1;s<u;s++){if(s===1)for(o in e.converters)typeof o=="string"&&(i[o.toLowerCase()]=e.converters[o]);l=f,f=r[s];if(f==="*")f=l;else if(l!=="*"&&l!==f){c=l+" "+f,h=i[c]||i["* "+f];if(!h){d=t;for(p in i){a=p.split(" ");if(a[0]===l||a[0]==="*"){d=i[a[1]+" "+f];if(d){p=i[p],p===!0?h=d:d===!0&&(h=p);break}}}}!h&&!d&&H.error("No conversion from "+c.replace(" "," to ")),h!==!0&&(n=h?h(n):d(p(n)))}}return n}function l(e,n,r){var i=e.contents,s=e.dataTypes,o=e.responseFields,u,a,f,l;for(a in o)a in r&&(n[o[a]]=r[a]);while(s[0]==="*")s.shift(),u===t&&(u=e.mimeType||n.getResponseHeader("content-type"));if(u)for(a in i)if(i[a]&&i[a].test(u)){s.unshift(a);break}if(s[0]in r)f=s[0];else{for(a in r){if(!s[0]||e.converters[a+" "+s[0]]){f=a;break}l||(l=a)}f=f||l}if(f)return f!==s[0]&&s.unshift(f),r[f]}function c(e,t,n,r){if(H.isArray(t))H.each(t,function(t,i){n||Ut.test(e)?r(e,i):c(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&H.type(t)==="object")for(var i in t)c(e+"["+i+"]",t[i],n,r);else r(e,t)}function h(e,n){var r,i,s=H.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&H.extend(!0,e,i)}function p(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u=e[s],a=0,f=u?u.length:0,l=e===rn,c;for(;a<f&&(l||!c);a++)c=u[a](n,r,i),typeof c=="string"&&(!l||o[c]?c=t:(n.dataTypes.unshift(c),c=p(e,n,r,i,c,o)));return(l||!c)&&!o["*"]&&(c=p(e,n,r,i,"*",o)),c}function d(e){return function(t,n){typeof t!="string"&&(n=t,t="*");if(H.isFunction(n)){var r=t.toLowerCase().split(Zt),i=0,s=r.length,o,u,a;for(;i<s;i++)o=r[i],a=/^\+/.test(o),a&&(o=o.substr(1)||"*"),u=e[o]=e[o]||[],u[a?"unshift":"push"](n)}}}function v(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=t==="width"?1:0,s=4;if(r>0){if(n!=="border")for(;i<s;i+=2)n||(r-=parseFloat(H.css(e,"padding"+jt[i]))||0),n==="margin"?r+=parseFloat(H.css(e,n+jt[i]))||0:r-=parseFloat(H.css(e,"border"+jt[i]+"Width"))||0;return r+"px"}r=Ft(e,t);if(r<0||r==null)r=e.style[t];if(Dt.test(r))return r;r=parseFloat(r)||0;if(n)for(;i<s;i+=2)r+=parseFloat(H.css(e,"padding"+jt[i]))||0,n!=="padding"&&(r+=parseFloat(H.css(e,"border"+jt[i]+"Width"))||0),n==="margin"&&(r+=parseFloat(H.css(e,n+jt[i]))||0);return r+"px"}function m(e){var t=_.createElement("div");return Lt.appendChild(t),t.innerHTML=e.outerHTML,t.firstChild}function g(e){var t=(e.nodeName||"").toLowerCase();t==="input"?y(e):t!=="script"&&typeof e.getElementsByTagName!="undefined"&&H.grep(e.getElementsByTagName("input"),y)}function y(e){if(e.type==="checkbox"||e.type==="radio")e.defaultChecked=e.checked}function b(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function w(e,t){var n;t.nodeType===1&&(t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?t.outerHTML=e.outerHTML:n!=="input"||e.type!=="checkbox"&&e.type!=="radio"?n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text):(e.checked&&(t.defaultChecked=t.checked=e.checked),t.value!==e.value&&(t.value=e.value)),t.removeAttribute(H.expando),t.removeAttribute("_submit_attached"),t.removeAttribute("_change_attached"))}function E(e,t){if(t.nodeType===1&&!!H.hasData(e)){var n,r,i,s=H._data(e),o=H._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)H.event.add(t,n,u[n][r])}o.data&&(o.data=H.extend({},o.data))}}function S(e,t){return H.nodeName(e,"table")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function x(e){var t=dt.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function T(e,t,n){t=t||0;if(H.isFunction(t))return H.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return H.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=H.grep(e,function(e){return e.nodeType===1});if(lt.test(t))return H.filter(t,r,!n);t=H.filter(t,r)}return H.grep(e,function(e,r){return H.inArray(e,t)>=0===n})}function N(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function C(){return!0}function k(){return!1}function L(e,t,n){var r=t+"defer",i=t+"queue",s=t+"mark",o=H._data(e,r);o&&(n==="queue"||!H._data(e,i))&&(n==="mark"||!H._data(e,s))&&setTimeout(function(){!H._data(e,i)&&!H._data(e,s)&&(H.removeData(e,r,!0),o.fire())},0)}function A(e){for(var t in e){if(t==="data"&&H.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function O(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(I,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:H.isNumeric(r)?+r:F.test(r)?H.parseJSON(r):r}catch(s){}H.data(e,n,r)}else r=t}return r}function M(e){var t=B[e]={},n,r;e=e.split(/\s+/);for(n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}var _=e.document,D=e.navigator,P=e.location,H=function(){function n(){if(!r.isReady){try{_.documentElement.doScroll("left")}catch(e){setTimeout(n,1);return}r.ready()}}var r=function(e,t){return new r.fn.init(e,t,o)},i=e.jQuery,s=e.$,o,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,a=/\S/,f=/^\s+/,l=/\s+$/,c=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,h=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,d=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,v=/(?:^|:|,)(?:\s*\[)+/g,m=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,y=/(msie) ([\w.]+)/,b=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,E=/^-ms-/,S=function(e,t){return(t+"").toUpperCase()},x=D.userAgent,T,N,C,k=Object.prototype.toString,L=Object.prototype.hasOwnProperty,A=Array.prototype.push,O=Array.prototype.slice,M=String.prototype.trim,P=Array.prototype.indexOf,H={};return r.fn=r.prototype={constructor:r,init:function(e,n,i){var s,o,a,f;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(e==="body"&&!n&&_.body)return this.context=_,this[0]=_.body,this.selector=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)!=="<"||e.charAt(e.length-1)!==">"||e.length<3?s=u.exec(e):s=[null,e,null];if(s&&(s[1]||!n)){if(s[1])return n=n instanceof r?n[0]:n,f=n?n.ownerDocument||n:_,a=c.exec(e),a?r.isPlainObject(n)?(e=[_.createElement(a[1])],r.fn.attr.call(e,n,!0)):e=[f.createElement(a[1])]:(a=r.buildFragment([s[1]],[f]),e=(a.cacheable?r.clone(a.fragment):a.fragment).childNodes),r.merge(this,e);o=_.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return i.find(e);this.length=1,this[0]=o}return this.context=_,this.selector=e,this}return!n||n.jquery?(n||i).find(e):this.constructor(n).find(e)}return r.isFunction(e)?i.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),r.makeArray(e,this))},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return O.call(this,0)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var i=this.constructor();return r.isArray(e)?A.apply(i,e):r.merge(i,e),i.prevObject=this,i.context=this.context,t==="find"?i.selector=this.selector+(this.selector?" ":"")+n:t&&(i.selector=this.selector+"."+t+"("+n+")"),i},each:function(e,t){return r.each(this,e,t)},ready:function(e){return r.bindReady(),N.add(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(O.apply(this,arguments),"slice",O.call(arguments).join(","))},map:function(e){return this.pushStack(r.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:A,sort:[].sort,splice:[].splice},r.fn.init.prototype=r.fn,r.extend=r.fn.extend=function(){var e,n,i,s,o,u,a=arguments[0]||{},f=1,l=arguments.length,c=!1;typeof a=="boolean"&&(c=a,a=arguments[1]||{},f=2),typeof a!="object"&&!r.isFunction(a)&&(a={}),l===f&&(a=this,--f);for(;f<l;f++)if((e=arguments[f])!=null)for(n in e){i=a[n],s=e[n];if(a===s)continue;c&&s&&(r.isPlainObject(s)||(o=r.isArray(s)))?(o?(o=!1,u=i&&r.isArray(i)?i:[]):u=i&&r.isPlainObject(i)?i:{},a[n]=r.extend(c,u,s)):s!==t&&(a[n]=s)}return a},r.extend({noConflict:function(t){return e.$===r&&(e.$=s),t&&e.jQuery===r&&(e.jQuery=i),r},isReady:!1,readyWait:1,holdReady:function(e){e?r.readyWait++:r.ready(!0)},ready:function(e){if(e===!0&&!--r.readyWait||e!==!0&&!r.isReady){if(!_.body)return setTimeout(r.ready,1);r.isReady=!0;if(e!==!0&&--r.readyWait>0)return;N.fireWith(_,[r]),r.fn.trigger&&r(_).trigger("ready").off("ready")}},bindReady:function(){if(!N){N=r.Callbacks("once memory");if(_.readyState==="complete")return setTimeout(r.ready,1);if(_.addEventListener)_.addEventListener("DOMContentLoaded",C,!1),e.addEventListener("load",r.ready,!1);else if(_.attachEvent){_.attachEvent("onreadystatechange",C),e.attachEvent("onload",r.ready);var t=!1;try{t=e.frameElement==null}catch(i){}_.documentElement.doScroll&&t&&n()}}},isFunction:function(e){return r.type(e)==="function"},isArray:Array.isArray||function(e){return r.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):H[k.call(e)]||"object"},isPlainObject:function(e){if(!e||r.type(e)!=="object"||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!L.call(e,"constructor")&&!L.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var i;for(i in e);return i===t||L.call(e,i)},isEmptyObject:function(e){for(var t in e)return!1;return!0},error:function(e){throw new Error(e)},parseJSON:function(t){if(typeof t!="string"||!t)return null;t=r.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(h.test(t.replace(p,"@").replace(d,"]").replace(v,"")))return(new Function("return "+t))();r.error("Invalid JSON: "+t)},parseXML:function(n){if(typeof n!="string"||!n)return null;var i,s;try{e.DOMParser?(s=new DOMParser,i=s.parseFromString(n,"text/xml")):(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(n))}catch(o){i=t}return(!i||!i.documentElement||i.getElementsByTagName("parsererror").length)&&r.error("Invalid XML: "+n),i},noop:function(){},globalEval:function(t){t&&a.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(E,"ms-").replace(w,S)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toUpperCase()===t.toUpperCase()},each:function(e,n,i){var s,o=0,u=e.length,a=u===t||r.isFunction(e);if(i){if(a){for(s in e)if(n.apply(e[s],i)===!1)break}else for(;o<u;)if(n.apply(e[o++],i)===!1)break}else if(a){for(s in e)if(n.call(e[s],s,e[s])===!1)break}else for(;o<u;)if(n.call(e[o],o,e[o++])===!1)break;return e},trim:M?function(e){return e==null?"":M.call(e)}:function(e){return e==null?"":(e+"").replace(f,"").replace(l,"")},makeArray:function(e,t){var n=t||[];if(e!=null){var i=r.type(e);e.length==null||i==="string"||i==="function"||i==="regexp"||r.isWindow(e)?A.call(n,e):r.merge(n,e)}return n},inArray:function(e,t,n){var r;if(t){if(P)return P.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=e.length,i=0;if(typeof n.length=="number")for(var s=n.length;i<s;i++)e[r++]=n[i];else while(n[i]!==t)e[r++]=n[i++];return e.length=r,e},grep:function(e,t,n){var r=[],i;n=!!n;for(var s=0,o=e.length;s<o;s++)i=!!t(e[s],s),n!==i&&r.push(e[s]);return r},map:function(e,n,i){var s,o,u=[],a=0,f=e.length,l=e instanceof r||f!==t&&typeof f=="number"&&(f>0&&e[0]&&e[f-1]||f===0||r.isArray(e));if(l)for(;a<f;a++)s=n(e[a],a,i),s!=null&&(u[u.length]=s);else for(o in e)s=n(e[o],o,i),s!=null&&(u[u.length]=s);return u.concat.apply([],u)},guid:1,proxy:function(e,n){if(typeof n=="string"){var i=e[n];n=e,e=i}if(!r.isFunction(e))return t;var s=O.call(arguments,2),o=function(){return e.apply(n,s.concat(O.call(arguments)))};return o.guid=e.guid=e.guid||o.guid||r.guid++,o},access:function(e,n,i,s,o,u,a){var f,l=i==null,c=0,h=e.length;if(i&&typeof i=="object"){for(c in i)r.access(e,n,c,i[c],1,u,s);o=1}else if(s!==t){f=a===t&&r.isFunction(s),l&&(f?(f=n,n=function(e,t,n){return f.call(r(e),n)}):(n.call(e,s),n=null));if(n)for(;c<h;c++)n(e[c],i,f?s.call(e[c],c,n(e[c],i)):s,a);o=1}return o?e:l?n.call(e):h?n(e[0],i):u},now:function(){return(new Date).getTime()},uaMatch:function(e){e=e.toLowerCase();var t=m.exec(e)||g.exec(e)||y.exec(e)||e.indexOf("compatible")<0&&b.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},sub:function(){function e(t,n){return new e.fn.init(t,n)}r.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(n,i){return i&&i instanceof r&&!(i instanceof e)&&(i=e(i)),r.fn.init.call(this,n,i,t)},e.fn.init.prototype=e.fn;var t=e(_);return e},browser:{}}),r.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){H["[object "+t+"]"]=t.toLowerCase()}),T=r.uaMatch(x),T.browser&&(r.browser[T.browser]=!0,r.browser.version=T.version),r.browser.webkit&&(r.browser.safari=!0),a.test(" ")&&(f=/^[\s\xA0]+/,l=/[\s\xA0]+$/),o=r(_),_.addEventListener?C=function(){_.removeEventListener("DOMContentLoaded",C,!1),r.ready()}:_.attachEvent&&(C=function(){_.readyState==="complete"&&(_.detachEvent("onreadystatechange",C),r.ready())}),r}(),B={};H.Callbacks=function(e){e=e?B[e]||M(e):{};var n=[],r=[],i,s,o,u,a,f,l=function(t){var r,i,s,o,u;for(r=0,i=t.length;r<i;r++)s=t[r],o=H.type(s),o==="array"?l(s):o==="function"&&(!e.unique||!h.has(s))&&n.push(s)},c=function(t,l){l=l||[],i=!e.memory||[t,l],s=!0,o=!0,f=u||0,u=0,a=n.length;for(;n&&f<a;f++)if(n[f].apply(t,l)===!1&&e.stopOnFalse){i=!0;break}o=!1,n&&(e.once?i===!0?h.disable():n=[]:r&&r.length&&(i=r.shift(),h.fireWith(i[0],i[1])))},h={add:function(){if(n){var e=n.length;l(arguments),o?a=n.length:i&&i!==!0&&(u=e,c(i[0],i[1]))}return this},remove:function(){if(n){var t=arguments,r=0,i=t.length;for(;r<i;r++)for(var s=0;s<n.length;s++)if(t[r]===n[s]){o&&s<=a&&(a--,s<=f&&f--),n.splice(s--,1);if(e.unique)break}}return this},has:function(e){if(n){var t=0,r=n.length;for(;t<r;t++)if(e===n[t])return!0}return!1},empty:function(){return n=[],this},disable:function(){return n=r=i=t,this},disabled:function(){return!n},lock:function(){return r=t,(!i||i===!0)&&h.disable(),this},locked:function(){return!r},fireWith:function(t,n){return r&&(o?e.once||r.push([t,n]):(!e.once||!i)&&c(t,n)),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!s}};return h};var j=[].slice;H.extend({Deferred:function(e){var t=H.Callbacks("once memory"),n=H.Callbacks("once memory"),r=H.Callbacks("memory"),i="pending",s={resolve:t,reject:n,notify:r},o={done:t.add,fail:n.add,progress:r.add,state:function(){return i},isResolved:t.fired,isRejected:n.fired,then:function(e,t,n){return u.done(e).fail(t).progress(n),this},always:function(){return u.done.apply(u,arguments).fail.apply(u,arguments),this},pipe:function(e,t,n){return H.Deferred(function(r){H.each({done:[e,"resolve"],fail:[t,"reject"],progress:[n,"notify"]},function(e,t){var n=t[0],i=t[1],s;H.isFunction(n)?u[e](function(){s=n.apply(this,arguments),s&&H.isFunction(s.promise)?s.promise().then(r.resolve,r.reject,r.notify):r[i+"With"](this===u?r:this,[s])}):u[e](r[i])})}).promise()},promise:function(e){if(e==null)e=o;else for(var t in o)e[t]=o[t];return e}},u=o.promise({}),a;for(a in s)u[a]=s[a].fire,u[a+"With"]=s[a].fireWith;return u.done(function(){i="resolved"},n.disable,r.lock).fail(function(){i="rejected"},t.disable,r.lock),e&&e.call(u,u),u},when:function(e){function t(e){return function(t){o[e]=arguments.length>1?j.call(arguments,0):t,f.notifyWith(l,o)}}function n(e){return function(t){r[e]=arguments.length>1?j.call(arguments,0):t,--u||f.resolveWith(f,r)}}var r=j.call(arguments,0),i=0,s=r.length,o=Array(s),u=s,a=s,f=s<=1&&e&&H.isFunction(e.promise)?e:H.Deferred(),l=f.promise();if(s>1){for(;i<s;i++)r[i]&&r[i].promise&&H.isFunction(r[i].promise)?r[i].promise().then(n(i),f.reject,t(i)):--u;u||f.resolveWith(f,r)}else f!==e&&f.resolveWith(f,s?[e]:[]);return l}}),H.support=function(){var t,n,r,i,s,o,u,a,f,l,c,h,p=_.createElement("div"),d=_.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!n.length||!r)return{};i=_.createElement("select"),s=i.appendChild(_.createElement("option")),o=p.getElementsByTagName("input")[0],t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.55/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:o.value==="on",optSelected:s.selected,getSetAttribute:p.className!=="t",enctype:!!_.createElement("form").enctype,html5Clone:_.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},H.boxModel=t.boxModel=_.compatMode==="CSS1Compat",o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,i.disabled=!0,t.optDisabled=!s.disabled;try{delete p.test}catch(v){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),o=_.createElement("input"),o.value="t",o.setAttribute("type","radio"),t.radioValue=o.value==="t",o.setAttribute("checked","checked"),o.setAttribute("name","t"),p.appendChild(o),u=_.createDocumentFragment(),u.appendChild(p.lastChild),t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=o.checked,u.removeChild(o),u.appendChild(p);if(p.attachEvent)for(c in{submit:1,change:1,focusin:1})l="on"+c,h=l in p,h||(p.setAttribute(l,"return;"),h=typeof p[l]=="function"),t[c+"Bubbles"]=h;return u.removeChild(p),u=i=s=p=o=null,H(function(){var n,r,i,s,o,u,f,l,c,d,v,m,g,y=_.getElementsByTagName("body")[0];!y||(l=1,g="padding:0;margin:0;border:",v="position:absolute;top:0;left:0;width:1px;height:1px;",m=g+"0;visibility:hidden;",c="style='"+v+g+"5px solid #000;",d="<div "+c+"display:block;'><div style='"+g+"0;display:block;overflow:hidden;'></div></div>"+"<table "+c+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",n=_.createElement("div"),n.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+l+"px",y.insertBefore(n,y.firstChild),p=_.createElement("div"),n.appendChild(p),p.innerHTML="<table><tr><td style='"+g+"0;display:none'></td><td>t</td></tr></table>",a=p.getElementsByTagName("td"),h=a[0].offsetHeight===0,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=h&&a[0].offsetHeight===0,e.getComputedStyle&&(p.innerHTML="",f=_.createElement("div"),f.style.width="0",f.style.marginRight="0",p.style.width="2px",p.appendChild(f),t.reliableMarginRight=(parseInt((e.getComputedStyle(f,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,t.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",t.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=v+m,p.innerHTML=d,r=p.firstChild,i=r.firstChild,o=r.nextSibling.firstChild.firstChild,u={doesNotAddBorder:i.offsetTop!==5,doesAddBorderForTableAndCells:o.offsetTop===5},i.style.position="fixed",i.style.top="20px",u.fixedPosition=i.offsetTop===20||i.offsetTop===15,i.style.position=i.style.top="",r.style.overflow="hidden",r.style.position="relative",u.subtractsBorderForOverflowNotVisible=i.offsetTop===-5,u.doesNotIncludeMarginInBodyOffset=y.offsetTop!==l,e.getComputedStyle&&(p.style.marginTop="1%",t.pixelMargin=(e.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof n.style.zoom!="undefined"&&(n.style.zoom=1),y.removeChild(n),f=p=n=null,H.extend(t,u))}),t}();var F=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;H.extend({cache:{},uuid:0,expando:"jQuery"+(H.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?H.cache[e[H.expando]]:e[H.expando],!!e&&!A(e)},data:function(e,n,r,i){if(!!H.acceptData(e)){var s,o,u,a=H.expando,f=typeof n=="string",l=e.nodeType,c=l?H.cache:e,h=l?e[a]:e[a]&&a,p=n==="events";if((!h||!c[h]||!p&&!i&&!c[h].data)&&f&&r===t)return;h||(l?e[a]=h=++H.uuid:h=a),c[h]||(c[h]={},l||(c[h].toJSON=H.noop));if(typeof n=="object"||typeof n=="function")i?c[h]=H.extend(c[h],n):c[h].data=H.extend(c[h].data,n);return s=o=c[h],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[H.camelCase(n)]=r),p&&!o[n]?s.events:(f?(u=o[n],u==null&&(u=o[H.camelCase(n)])):u=o,u)}},removeData:function(e,t,n){if(!!H.acceptData(e)){var r,i,s,o=H.expando,u=e.nodeType,a=u?H.cache:e,f=u?e[o]:o;if(!a[f])return;if(t){r=n?a[f]:a[f].data;if(r){H.isArray(t)||(t in r?t=[t]:(t=H.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?A:H.isEmptyObject)(r))return}}if(!n){delete a[f].data;if(!A(a[f]))return}H.support.deleteExpando||!a.setInterval?delete a[f]:a[f]=null,u&&(H.support.deleteExpando?delete e[o]:e.removeAttribute?e.removeAttribute(o):e[o]=null)}},_data:function(e,t,n){return H.data(e,t,n,!0)},acceptData:function(e){if(e.nodeName){var t=H.noData[e.nodeName.toLowerCase()];if(t)return t!==!0&&e.getAttribute("classid")===t}return!0}}),H.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=H.data(a);if(a.nodeType===1&&!H._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")===0&&(o=H.camelCase(o.substring(5)),O(a,o,l[o]));H._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){H.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",H.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=H.data(a,e),l=O(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=H(this);t.triggerHandler("setData"+i,r),H.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){H.removeData(this,e)})}}),H.extend({_mark:function(e,t){e&&(t=(t||"fx")+"mark",H._data(e,t,(H._data(e,t)||0)+1))},_unmark:function(e,t,n){e!==!0&&(n=t,t=e,e=!1);if(t){n=n||"fx";var r=n+"mark",i=e?0:(H._data(t,r)||1)-1;i?H._data(t,r,i):(H.removeData(t,r,!0),L(t,n,"mark"))}},queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=H._data(e,t),n&&(!r||H.isArray(n)?r=H._data(e,t,H.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=H.queue(e,t),r=n.shift(),i={};r==="inprogress"&&(r=n.shift()),r&&(t==="fx"&&n.unshift("inprogress"),H._data(e,t+".run",i),r.call(e,function(){H.dequeue(e,t)},i)),n.length||(H.removeData(e,t+"queue "+t+".run",!0),L(e,t,"queue"))}}),H.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?H.queue(this[0],e):n===t?this:this.each(function(){var t=H.queue(this,e,n);e==="fx"&&t[0]!=="inprogress"&&H.dequeue(this,e)})},dequeue:function(e){return this.each(function(){H.dequeue(this,e)})},delay:function(e,t){return e=H.fx?H.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){function r(){--u||i.resolveWith(s,[s])}typeof e!="string"&&(n=e,e=t),e=e||"fx";var i=H.Deferred(),s=this,o=s.length,u=1,a=e+"defer",f=e+"queue",l=e+"mark",c;while(o--)if(c=H.data(s[o],a,t,!0)||(H.data(s[o],f,t,!0)||H.data(s[o],l,t,!0))&&H.data(s[o],a,H.Callbacks("once memory"),!0))u++,c.add(r);return r(),i.promise(n)}});var q=/[\n\t\r]/g,R=/\s+/,U=/\r/g,z=/^(?:button|input)$/i,W=/^(?:button|input|object|select|textarea)$/i,X=/^a(?:rea)?$/i,V=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,$=H.support.getSetAttribute,J,K,Q;H.fn.extend({attr:function(e,t){return H.access(this,H.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){H.removeAttr(this,e)})},prop:function(e,t){return H.access(this,H.prop,e,t,arguments.length>1)},removeProp:function(e){return e=H.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(H.isFunction(e))return this.each(function(t){H(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(R);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)~s.indexOf(" "+t[o]+" ")||(s+=t[o]+" ");i.className=H.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(H.isFunction(e))return this.each(function(t){H(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(R);for(r=0,i=this.length;r<i;r++){s=this[r];if(s.nodeType===1&&s.className)if(e){o=(" "+s.className+" ").replace(q," ");for(u=0,a=n.length;u<a;u++)o=o.replace(" "+n[u]+" "," ");s.className=H.trim(o)}else s.className=""}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return H.isFunction(e)?this.each(function(n){H(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=H(this),u=t,a=e.split(R);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&H._data(this,"__className__",this.className),this.className=this.className||e===!1?"":H._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>-1)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!!arguments.length)return i=H.isFunction(e),this.each(function(r){var s=H(this),o;if(this.nodeType===1){i?o=e.call(this,r,s.val()):o=e,o==null?o="":typeof o=="number"?o+="":H.isArray(o)&&(o=H.map(o,function(e){return e==null?"":e+""})),n=H.valHooks[this.type]||H.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,o,"value")===t)this.value=o}});if(s)return n=H.valHooks[s.type]||H.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(U,""):r==null?"":r)}}),H.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r,i,s=e.selectedIndex,o=[],u=e.options,a=e.type==="select-one";if(s<0)return null;n=a?s:0,r=a?s+1:u.length;for(;n<r;n++){i=u[n];if(i.selected&&(H.support.optDisabled?!i.disabled:i.getAttribute("disabled")===null)&&(!i.parentNode.disabled||!H.nodeName(i.parentNode,"optgroup"))){t=H(i).val();if(a)return t;o.push(t)}}return a&&!o.length&&u.length?H(u[s]).val():o},set:function(e,t){var n=H.makeArray(t);return H(e).find("option").each(function(){this.selected=H.inArray(H(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!!e&&a!==3&&a!==8&&a!==2){if(i&&n in H.attrFn)return H(e)[n](r);if(typeof e.getAttribute=="undefined")return H.prop(e,n,r);u=a!==1||!H.isXMLDoc(e),u&&(n=n.toLowerCase(),o=H.attrHooks[n]||(V.test(n)?K:J));if(r!==t){if(r===null){H.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,""+r),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)}},removeAttr:function(e,t){var n,r,i,s,o,u=0;if(t&&e.nodeType===1){r=t.toLowerCase().split(R),s=r.length;for(;u<s;u++)i=r[u],i&&(n=H.propFix[i]||i,o=V.test(i),o||H.attr(e,i,""),e.removeAttribute($?i:n),o&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(z.test(e.nodeName)&&e.parentNode)H.error("type property can't be changed");else if(!H.support.radioValue&&t==="radio"&&H.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return J&&H.nodeName(e,"button")?J.get(e,t):t in e?e.value:null},set:function(e,t,n){if(J&&H.nodeName(e,"button"))return J.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!!e&&u!==3&&u!==8&&u!==2)return o=u!==1||!H.isXMLDoc(e),o&&(n=H.propFix[n]||n,s=H.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):W.test(e.nodeName)||X.test(e.nodeName)&&e.href?0:t}}}}),H.attrHooks.tabindex=H.propHooks.tabIndex,K={get:function(e,n){var r,i=H.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?H.removeAttr(e,n):(r=H.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},$||(Q={name:!0,id:!0,coords:!0},J=H.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(Q[n]?r.nodeValue!=="":r.specified)?r.nodeValue:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=_.createAttribute(n),e.setAttributeNode(r)),r.nodeValue=t+""}},H.attrHooks.tabindex.set=J.set,H.each(["width","height"],function(e,t){H.attrHooks[t]=H.extend(H.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),H.attrHooks.contenteditable={get:J.get,set:function(e,t,n){t===""&&(t="false"),J.set(e,t,n)}}),H.support.hrefNormalized||H.each(["href","src","width","height"],function(e,n){H.attrHooks[n]=H.extend(H.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),H.support.style||(H.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=""+t}}),H.support.optSelected||(H.propHooks.selected=H.extend(H.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),H.support.enctype||(H.propFix.enctype="encoding"),H.support.checkOn||H.each(["radio","checkbox"],function(){H.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),H.each(["radio","checkbox"],function(){H.valHooks[this]=H.extend(H.valHooks[this],{set:function(e,t){if(H.isArray(t))return e.checked=H.inArray(H(e).val(),t)>=0}})});var G=/^(?:textarea|input|select)$/i,Y=/^([^\.]*)?(?:\.(.+))?$/,Z=/(?:^|\s)hover(\.\S+)?\b/,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,it=function(e){var t=rt.exec(e);return t&&(t[1]=(t[1]||"").toLowerCase(),t[3]=t[3]&&new RegExp("(?:^|\\s)"+t[3]+"(?:\\s|$)")),t},st=function(e,t){var n=e.attributes||{};return(!t[1]||e.nodeName.toLowerCase()===t[1])&&(!t[2]||(n.id||{}).value===t[2])&&(!t[3]||t[3].test((n["class"]||{}).value))},ot=function(e){return H.event.special.hover?e:e.replace(Z,"mouseenter$1 mouseleave$1")};H.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,v,m,g;
if(!(e.nodeType===3||e.nodeType===8||!n||!r||!(o=H._data(e)))){r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=H.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof H=="undefined"||!!e&&H.event.triggered===e.type?t:H.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=H.trim(ot(n)).split(" ");for(f=0;f<n.length;f++){l=Y.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=H.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=H.event.special[c]||{},p=H.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,quick:s&&it(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),H.event.global[c]=!0}e=null}},global:{},remove:function(e,t,n,r,i){var s=H.hasData(e)&&H._data(e),o,u,a,f,l,c,h,p,d,v,m,g;if(!!s&&!!(p=s.events)){t=H.trim(ot(t||"")).split(" ");for(o=0;o<t.length;o++){u=Y.exec(t[o])||[],a=f=u[1],l=u[2];if(!a){for(a in p)H.event.remove(e,a+t[o],n,r,!0);continue}d=H.event.special[a]||{},a=(r?d.delegateType:d.bindType)||a,m=p[a]||[],c=m.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(h=0;h<m.length;h++)g=m[h],(i||f===g.origType)&&(!n||n.guid===g.guid)&&(!l||l.test(g.namespace))&&(!r||r===g.selector||r==="**"&&g.selector)&&(m.splice(h--,1),g.selector&&m.delegateCount--,d.remove&&d.remove.call(e,g));m.length===0&&c!==m.length&&((!d.teardown||d.teardown.call(e,l)===!1)&&H.removeEvent(e,a,s.handle),delete p[a])}H.isEmptyObject(p)&&(v=s.handle,v&&(v.elem=null),H.removeData(e,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,i,s){if(!i||i.nodeType!==3&&i.nodeType!==8){var o=n.type||n,u=[],a,f,l,c,h,p,d,v,m,g;if(nt.test(o+H.event.triggered))return;o.indexOf("!")>=0&&(o=o.slice(0,-1),f=!0),o.indexOf(".")>=0&&(u=o.split("."),o=u.shift(),u.sort());if((!i||H.event.customEvent[o])&&!H.event.global[o])return;n=typeof n=="object"?n[H.expando]?n:new H.Event(o,n):new H.Event(o),n.type=o,n.isTrigger=!0,n.exclusive=f,n.namespace=u.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+u.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,p=o.indexOf(":")<0?"on"+o:"";if(!i){a=H.cache;for(l in a)a[l].events&&a[l].events[o]&&H.event.trigger(n,r,a[l].handle.elem,!0);return}n.result=t,n.target||(n.target=i),r=r!=null?H.makeArray(r):[],r.unshift(n),d=H.event.special[o]||{};if(d.trigger&&d.trigger.apply(i,r)===!1)return;m=[[i,d.bindType||o]];if(!s&&!d.noBubble&&!H.isWindow(i)){g=d.delegateType||o,c=nt.test(g+o)?i:i.parentNode,h=null;for(;c;c=c.parentNode)m.push([c,g]),h=c;h&&h===i.ownerDocument&&m.push([h.defaultView||h.parentWindow||e,g])}for(l=0;l<m.length&&!n.isPropagationStopped();l++)c=m[l][0],n.type=m[l][1],v=(H._data(c,"events")||{})[n.type]&&H._data(c,"handle"),v&&v.apply(c,r),v=p&&c[p],v&&H.acceptData(c)&&v.apply(c,r)===!1&&n.preventDefault();return n.type=o,!s&&!n.isDefaultPrevented()&&(!d._default||d._default.apply(i.ownerDocument,r)===!1)&&(o!=="click"||!H.nodeName(i,"a"))&&H.acceptData(i)&&p&&i[o]&&(o!=="focus"&&o!=="blur"||n.target.offsetWidth!==0)&&!H.isWindow(i)&&(h=i[p],h&&(i[p]=null),H.event.triggered=o,i[o](),H.event.triggered=t,h&&(i[p]=h)),n.result}},dispatch:function(n){n=H.event.fix(n||e.event);var r=(H._data(this,"events")||{})[n.type]||[],i=r.delegateCount,s=[].slice.call(arguments,0),o=!n.exclusive&&!n.namespace,u=H.event.special[n.type]||{},a=[],f,l,c,h,p,d,v,m,g,y,b;s[0]=n,n.delegateTarget=this;if(!u.preDispatch||u.preDispatch.call(this,n)!==!1){if(i&&(!n.button||n.type!=="click")){h=H(this),h.context=this.ownerDocument||this;for(c=n.target;c!=this;c=c.parentNode||this)if(c.disabled!==!0){d={},m=[],h[0]=c;for(f=0;f<i;f++)g=r[f],y=g.selector,d[y]===t&&(d[y]=g.quick?st(c,g.quick):h.is(y)),d[y]&&m.push(g);m.length&&a.push({elem:c,matches:m})}}r.length>i&&a.push({elem:this,matches:r.slice(i)});for(f=0;f<a.length&&!n.isPropagationStopped();f++){v=a[f],n.currentTarget=v.elem;for(l=0;l<v.matches.length&&!n.isImmediatePropagationStopped();l++){g=v.matches[l];if(o||!n.namespace&&!g.namespace||n.namespace_re&&n.namespace_re.test(g.namespace))n.data=g.data,n.handleObj=g,p=((H.event.special[g.origType]||{}).handle||g.handler).apply(v.elem,s),p!==t&&(n.result=p,p===!1&&(n.preventDefault(),n.stopPropagation()))}}return u.postDispatch&&u.postDispatch.call(this,n),n.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,s,o=n.button,u=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||_,i=r.documentElement,s=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||s&&s.scrollLeft||0)-(i&&i.clientLeft||s&&s.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||s&&s.scrollTop||0)-(i&&i.clientTop||s&&s.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),!e.which&&o!==t&&(e.which=o&1?1:o&2?3:o&4?2:0),e}},fix:function(e){if(e[H.expando])return e;var n,r,i=e,s=H.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=H.Event(i);for(n=o.length;n;)r=o[--n],e[r]=i[r];return e.target||(e.target=i.srcElement||_),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey===t&&(e.metaKey=e.ctrlKey),s.filter?s.filter(e,i):e},special:{ready:{setup:H.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){H.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=H.extend(new H.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?H.event.trigger(i,null,t):H.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},H.event.handle=H.event.dispatch,H.removeEvent=_.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){e.detachEvent&&e.detachEvent("on"+t,n)},H.Event=function(e,t){if(!(this instanceof H.Event))return new H.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?C:k):this.type=e,t&&H.extend(this,t),this.timeStamp=e&&e.timeStamp||H.now(),this[H.expando]=!0},H.Event.prototype={preventDefault:function(){this.isDefaultPrevented=C;var e=this.originalEvent;!e||(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=C;var e=this.originalEvent;!e||(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=C,this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k},H.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){H.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n=this,r=e.relatedTarget,i=e.handleObj,s=i.selector,o;if(!r||r!==n&&!H.contains(n,r))e.type=i.origType,o=i.handler.apply(this,arguments),e.type=t;return o}}}),H.support.submitBubbles||(H.event.special.submit={setup:function(){if(H.nodeName(this,"form"))return!1;H.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=H.nodeName(n,"input")||H.nodeName(n,"button")?n.form:t;r&&!r._submit_attached&&(H.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),r._submit_attached=!0)})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&H.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(H.nodeName(this,"form"))return!1;H.event.remove(this,"._submit")}}),H.support.changeBubbles||(H.event.special.change={setup:function(){if(G.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")H.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),H.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1,H.event.simulate("change",this,e,!0))});return!1}H.event.add(this,"beforeactivate._change",function(e){var t=e.target;G.test(t.nodeName)&&!t._change_attached&&(H.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&H.event.simulate("change",this.parentNode,e,!0)}),t._change_attached=!0)})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return H.event.remove(this,"._change"),G.test(this.nodeName)}}),H.support.focusinBubbles||H.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){H.event.simulate(t,e.target,H.event.fix(e),!0)};H.event.special[t]={setup:function(){n++===0&&_.addEventListener(e,r,!0)},teardown:function(){--n===0&&_.removeEventListener(e,r,!0)}}}),H.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=k;else if(!i)return this;return s===1&&(o=i,i=function(e){return H().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=H.guid++)),this.each(function(){H.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){if(e&&e.preventDefault&&e.handleObj){var i=e.handleObj;return H(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this}if(typeof e=="object"){for(var s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=k),this.each(function(){H.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return H(this.context).on(e,this.selector,t,n),this},die:function(e,t){return H(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length==1?this.off(e,"**"):this.off(t,e,n)},trigger:function(e,t){return this.each(function(){H.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return H.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||H.guid++,r=0,i=function(n){var i=(H._data(this,"lastToggle"+e.guid)||0)%r;return H._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),H.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){H.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},H.attrFn&&(H.attrFn[t]=!0),et.test(t)&&(H.event.fixHooks[t]=H.event.keyHooks),tt.test(t)&&(H.event.fixHooks[t]=H.event.mouseHooks)}),function(){function e(e,t,n,r,s,o){for(var u=0,a=r.length;u<a;u++){var f=r[u];if(f){var l=!1;f=f[e];while(f){if(f[i]===n){l=r[f.sizset];break}if(f.nodeType===1){o||(f[i]=n,f.sizset=u);if(typeof t!="string"){if(f===t){l=!0;break}}else if(h.filter(t,[f]).length>0){l=f;break}}f=f[e]}r[u]=l}}}function n(e,t,n,r,s,o){for(var u=0,a=r.length;u<a;u++){var f=r[u];if(f){var l=!1;f=f[e];while(f){if(f[i]===n){l=r[f.sizset];break}f.nodeType===1&&!o&&(f[i]=n,f.sizset=u);if(f.nodeName.toLowerCase()===t){l=f;break}f=f[e]}r[u]=l}}}var r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i="sizcache"+(Math.random()+"").replace(".",""),s=0,o=Object.prototype.toString,u=!1,a=!0,f=/\\/g,l=/\r\n/g,c=/\W/;[0,0].sort(function(){return a=!1,0});var h=function(e,t,n,i){n=n||[],t=t||_;var s=t;if(t.nodeType!==1&&t.nodeType!==9)return[];if(!e||typeof e!="string")return n;var u,a,f,l,c,p,m,g,b=!0,w=h.isXML(t),E=[],x=e;do{r.exec(""),u=r.exec(x);if(u){x=u[3],E.push(u[1]);if(u[2]){l=u[3];break}}}while(u);if(E.length>1&&v.exec(e))if(E.length===2&&d.relative[E[0]])a=S(E[0]+E[1],t,i);else{a=d.relative[E[0]]?[t]:h(E.shift(),t);while(E.length)e=E.shift(),d.relative[e]&&(e+=E.shift()),a=S(e,a,i)}else{!i&&E.length>1&&t.nodeType===9&&!w&&d.match.ID.test(E[0])&&!d.match.ID.test(E[E.length-1])&&(c=h.find(E.shift(),t,w),t=c.expr?h.filter(c.expr,c.set)[0]:c.set[0]);if(t){c=i?{expr:E.pop(),set:y(i)}:h.find(E.pop(),E.length!==1||E[0]!=="~"&&E[0]!=="+"||!t.parentNode?t:t.parentNode,w),a=c.expr?h.filter(c.expr,c.set):c.set,E.length>0?f=y(a):b=!1;while(E.length)p=E.pop(),m=p,d.relative[p]?m=E.pop():p="",m==null&&(m=t),d.relative[p](f,m,w)}else f=E=[]}f||(f=a),f||h.error(p||e);if(o.call(f)==="[object Array]")if(!b)n.push.apply(n,f);else if(t&&t.nodeType===1)for(g=0;f[g]!=null;g++)f[g]&&(f[g]===!0||f[g].nodeType===1&&h.contains(t,f[g]))&&n.push(a[g]);else for(g=0;f[g]!=null;g++)f[g]&&f[g].nodeType===1&&n.push(a[g]);else y(f,n);return l&&(h(l,s,n,i),h.uniqueSort(n)),n};h.uniqueSort=function(e){if(w){u=a,e.sort(w);if(u)for(var t=1;t<e.length;t++)e[t]===e[t-1]&&e.splice(t--,1)}return e},h.matches=function(e,t){return h(e,null,null,t)},h.matchesSelector=function(e,t){return h(t,null,null,[e]).length>0},h.find=function(e,t,n){var r,i,s,o,u,a;if(!e)return[];for(i=0,s=d.order.length;i<s;i++){u=d.order[i];if(o=d.leftMatch[u].exec(e)){a=o[1],o.splice(1,1);if(a.substr(a.length-1)!=="\\"){o[1]=(o[1]||"").replace(f,""),r=d.find[u](o,t,n);if(r!=null){e=e.replace(d.match[u],"");break}}}}return r||(r=typeof t.getElementsByTagName!="undefined"?t.getElementsByTagName("*"):[]),{set:r,expr:e}},h.filter=function(e,n,r,i){var s,o,u,a,f,l,c,p,v,m=e,g=[],y=n,b=n&&n[0]&&h.isXML(n[0]);while(e&&n.length){for(u in d.filter)if((s=d.leftMatch[u].exec(e))!=null&&s[2]){l=d.filter[u],c=s[1],o=!1,s.splice(1,1);if(c.substr(c.length-1)==="\\")continue;y===g&&(g=[]);if(d.preFilter[u]){s=d.preFilter[u](s,y,r,g,i,b);if(!s)o=a=!0;else if(s===!0)continue}if(s)for(p=0;(f=y[p])!=null;p++)f&&(a=l(f,s,p,y),v=i^a,r&&a!=null?v?o=!0:y[p]=!1:v&&(g.push(f),o=!0));if(a!==t){r||(y=g),e=e.replace(d.match[u],"");if(!o)return[];break}}if(e===m){if(o!=null)break;h.error(e)}m=e}return y},h.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var p=h.getText=function(e){var t,n,r=e.nodeType,i="";if(r){if(r===1||r===9||r===11){if(typeof e.textContent=="string")return e.textContent;if(typeof e.innerText=="string")return e.innerText.replace(l,"");for(e=e.firstChild;e;e=e.nextSibling)i+=p(e)}else if(r===3||r===4)return e.nodeValue}else for(t=0;n=e[t];t++)n.nodeType!==8&&(i+=p(n));return i},d=h.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(e,t){var n=typeof t=="string",r=n&&!c.test(t),i=n&&!r;r&&(t=t.toLowerCase());for(var s=0,o=e.length,u;s<o;s++)if(u=e[s]){while((u=u.previousSibling)&&u.nodeType!==1);e[s]=i||u&&u.nodeName.toLowerCase()===t?u||!1:u===t}i&&h.filter(t,e,!0)},">":function(e,t){var n,r=typeof t=="string",i=0,s=e.length;if(r&&!c.test(t)){t=t.toLowerCase();for(;i<s;i++){n=e[i];if(n){var o=n.parentNode;e[i]=o.nodeName.toLowerCase()===t?o:!1}}}else{for(;i<s;i++)n=e[i],n&&(e[i]=r?n.parentNode:n.parentNode===t);r&&h.filter(t,e,!0)}},"":function(t,r,i){var o,u=s++,a=e;typeof r=="string"&&!c.test(r)&&(r=r.toLowerCase(),o=r,a=n),a("parentNode",r,u,t,o,i)},"~":function(t,r,i){var o,u=s++,a=e;typeof r=="string"&&!c.test(r)&&(r=r.toLowerCase(),o=r,a=n),a("previousSibling",r,u,t,o,i)}},find:{ID:function(e,t,n){if(typeof t.getElementById!="undefined"&&!n){var r=t.getElementById(e[1]);return r&&r.parentNode?[r]:[]}},NAME:function(e,t){if(typeof t.getElementsByName!="undefined"){var n=[],r=t.getElementsByName(e[1]);for(var i=0,s=r.length;i<s;i++)r[i].getAttribute("name")===e[1]&&n.push(r[i]);return n.length===0?null:n}},TAG:function(e,t){if(typeof t.getElementsByTagName!="undefined")return t.getElementsByTagName(e[1])}},preFilter:{CLASS:function(e,t,n,r,i,s){e=" "+e[1].replace(f,"")+" ";if(s)return e;for(var o=0,u;(u=t[o])!=null;o++)u&&(i^(u.className&&(" "+u.className+" ").replace(/[\t\n\r]/g," ").indexOf(e)>=0)?n||r.push(u):n&&(t[o]=!1));return!1},ID:function(e){return e[1].replace(f,"")},TAG:function(e,t){return e[1].replace(f,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){e[2]||h.error(e[0]),e[2]=e[2].replace(/^\+|\s*/g,"");var t=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=t[1]+(t[2]||1)-0,e[3]=t[3]-0}else e[2]&&h.error(e[0]);return e[0]=s++,e},ATTR:function(e,t,n,r,i,s){var o=e[1]=e[1].replace(f,"");return!s&&d.attrMap[o]&&(e[1]=d.attrMap[o]),e[4]=(e[4]||e[5]||"").replace(f,""),e[2]==="~="&&(e[4]=" "+e[4]+" "),e},PSEUDO:function(e,t,n,i,s){if(e[1]==="not"){if(!((r.exec(e[3])||"").length>1||/^\w/.test(e[3]))){var o=h.filter(e[3],t,n,!0^s);return n||i.push.apply(i,o),!1}e[3]=h(e[3],null,null,t)}else if(d.match.POS.test(e[0])||d.match.CHILD.test(e[0]))return!0;return e},POS:function(e){return e.unshift(!0),e}},filters:{enabled:function(e){return e.disabled===!1&&e.type!=="hidden"},disabled:function(e){return e.disabled===!0},checked:function(e){return e.checked===!0},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!!e.firstChild},empty:function(e){return!e.firstChild},has:function(e,t,n){return!!h(n[3],e).length},header:function(e){return/h\d/i.test(e.nodeName)},text:function(e){var t=e.getAttribute("type"),n=e.type;return e.nodeName.toLowerCase()==="input"&&"text"===n&&(t===n||t===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(e){var t=e.nodeName.toLowerCase();return(t==="input"||t==="button")&&"submit"===e.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(e){var t=e.nodeName.toLowerCase();return(t==="input"||t==="button")&&"reset"===e.type},button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&"button"===e.type||t==="button"},input:function(e){return/input|select|textarea|button/i.test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(e,t){return t===0},last:function(e,t,n,r){return t===r.length-1},even:function(e,t){return t%2===0},odd:function(e,t){return t%2===1},lt:function(e,t,n){return t<n[3]-0},gt:function(e,t,n){return t>n[3]-0},nth:function(e,t,n){return n[3]-0===t},eq:function(e,t,n){return n[3]-0===t}},filter:{PSEUDO:function(e,t,n,r){var i=t[1],s=d.filters[i];if(s)return s(e,n,t,r);if(i==="contains")return(e.textContent||e.innerText||p([e])||"").indexOf(t[3])>=0;if(i==="not"){var o=t[3];for(var u=0,a=o.length;u<a;u++)if(o[u]===e)return!1;return!0}h.error(i)},CHILD:function(e,t){var n,r,s,o,u,a,f,l=t[1],c=e;switch(l){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(l==="first")return!0;c=e;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0;case"nth":n=t[2],r=t[3];if(n===1&&r===0)return!0;s=t[0],o=e.parentNode;if(o&&(o[i]!==s||!e.nodeIndex)){a=0;for(c=o.firstChild;c;c=c.nextSibling)c.nodeType===1&&(c.nodeIndex=++a);o[i]=s}return f=e.nodeIndex-r,n===0?f===0:f%n===0&&f/n>=0}},ID:function(e,t){return e.nodeType===1&&e.getAttribute("id")===t},TAG:function(e,t){return t==="*"&&e.nodeType===1||!!e.nodeName&&e.nodeName.toLowerCase()===t},CLASS:function(e,t){return(" "+(e.className||e.getAttribute("class"))+" ").indexOf(t)>-1},ATTR:function(e,t){var n=t[1],r=h.attr?h.attr(e,n):d.attrHandle[n]?d.attrHandle[n](e):e[n]!=null?e[n]:e.getAttribute(n),i=r+"",s=t[2],o=t[4];return r==null?s==="!=":!s&&h.attr?r!=null:s==="="?i===o:s==="*="?i.indexOf(o)>=0:s==="~="?(" "+i+" ").indexOf(o)>=0:o?s==="!="?i!==o:s==="^="?i.indexOf(o)===0:s==="$="?i.substr(i.length-o.length)===o:s==="|="?i===o||i.substr(0,o.length+1)===o+"-":!1:i&&r!==!1},POS:function(e,t,n,r){var i=t[2],s=d.setFilters[i];if(s)return s(e,n,t,r)}}},v=d.match.POS,m=function(e,t){return"\\"+(t-0+1)};for(var g in d.match)d.match[g]=new RegExp(d.match[g].source+/(?![^\[]*\])(?![^\(]*\))/.source),d.leftMatch[g]=new RegExp(/(^(?:.|\r|\n)*?)/.source+d.match[g].source.replace(/\\(\d+)/g,m));d.match.globalPOS=v;var y=function(e,t){return e=Array.prototype.slice.call(e,0),t?(t.push.apply(t,e),t):e};try{Array.prototype.slice.call(_.documentElement.childNodes,0)[0].nodeType}catch(b){y=function(e,t){var n=0,r=t||[];if(o.call(e)==="[object Array]")Array.prototype.push.apply(r,e);else if(typeof e.length=="number")for(var i=e.length;n<i;n++)r.push(e[n]);else for(;e[n];n++)r.push(e[n]);return r}}var w,E;_.documentElement.compareDocumentPosition?w=function(e,t){return e===t?(u=!0,0):!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition?-1:1:e.compareDocumentPosition(t)&4?-1:1}:(w=function(e,t){if(e===t)return u=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,a=t.parentNode,f=o;if(o===a)return E(e,t);if(!o)return-1;if(!a)return 1;while(f)i.unshift(f),f=f.parentNode;f=a;while(f)s.unshift(f),f=f.parentNode;n=i.length,r=s.length;for(var l=0;l<n&&l<r;l++)if(i[l]!==s[l])return E(i[l],s[l]);return l===n?E(e,s[l],-1):E(i[l],t,1)},E=function(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}),function(){var e=_.createElement("div"),n="script"+(new Date).getTime(),r=_.documentElement;e.innerHTML="<a name='"+n+"'/>",r.insertBefore(e,r.firstChild),_.getElementById(n)&&(d.find.ID=function(e,n,r){if(typeof n.getElementById!="undefined"&&!r){var i=n.getElementById(e[1]);return i?i.id===e[1]||typeof i.getAttributeNode!="undefined"&&i.getAttributeNode("id").nodeValue===e[1]?[i]:t:[]}},d.filter.ID=function(e,t){var n=typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id");return e.nodeType===1&&n&&n.nodeValue===t}),r.removeChild(e),r=e=null}(),function(){var e=_.createElement("div");e.appendChild(_.createComment("")),e.getElementsByTagName("*").length>0&&(d.find.TAG=function(e,t){var n=t.getElementsByTagName(e[1]);if(e[1]==="*"){var r=[];for(var i=0;n[i];i++)n[i].nodeType===1&&r.push(n[i]);n=r}return n}),e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!="undefined"&&e.firstChild.getAttribute("href")!=="#"&&(d.attrHandle.href=function(e){return e.getAttribute("href",2)}),e=null}(),_.querySelectorAll&&function(){var e=h,t=_.createElement("div"),n="__sizzle__";t.innerHTML="<p class='TEST'></p>";if(!t.querySelectorAll||t.querySelectorAll(".TEST").length!==0){h=function(t,r,i,s){r=r||_;if(!s&&!h.isXML(r)){var o=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(t);if(o&&(r.nodeType===1||r.nodeType===9)){if(o[1])return y(r.getElementsByTagName(t),i);if(o[2]&&d.find.CLASS&&r.getElementsByClassName)return y(r.getElementsByClassName(o[2]),i)}if(r.nodeType===9){if(t==="body"&&r.body)return y([r.body],i);if(o&&o[3]){var u=r.getElementById(o[3]);if(!u||!u.parentNode)return y([],i);if(u.id===o[3])return y([u],i)}try{return y(r.querySelectorAll(t),i)}catch(a){}}else if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){var f=r,l=r.getAttribute("id"),c=l||n,p=r.parentNode,v=/^\s*[+~]/.test(t);l?c=c.replace(/'/g,"\\$&"):r.setAttribute("id",c),v&&p&&(r=r.parentNode);try{if(!v||p)return y(r.querySelectorAll("[id='"+c+"'] "+t),i)}catch(m){}finally{l||f.removeAttribute("id")}}}return e(t,r,i,s)};for(var r in e)h[r]=e[r];t=null}}(),function(){var e=_.documentElement,t=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(t){var n=!t.call(_.createElement("div"),"div"),r=!1;try{t.call(_.documentElement,"[test!='']:sizzle")}catch(i){r=!0}h.matchesSelector=function(e,i){i=i.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!h.isXML(e))try{if(r||!d.match.PSEUDO.test(i)&&!/!=/.test(i)){var s=t.call(e,i);if(s||!n||e.document&&e.document.nodeType!==11)return s}}catch(o){}return h(i,null,null,[e]).length>0}}}(),function(){var e=_.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!e.getElementsByClassName&&e.getElementsByClassName("e").length!==0){e.lastChild.className="e";if(e.getElementsByClassName("e").length===1)return;d.order.splice(1,0,"CLASS"),d.find.CLASS=function(e,t,n){if(typeof t.getElementsByClassName!="undefined"&&!n)return t.getElementsByClassName(e[1])},e=null}}(),_.documentElement.contains?h.contains=function(e,t){return e!==t&&(e.contains?e.contains(t):!0)}:_.documentElement.compareDocumentPosition?h.contains=function(e,t){return!!(e.compareDocumentPosition(t)&16)}:h.contains=function(){return!1},h.isXML=function(e){var t=(e?e.ownerDocument||e:0).documentElement;return t?t.nodeName!=="HTML":!1};var S=function(e,t,n){var r,i=[],s="",o=t.nodeType?[t]:t;while(r=d.match.PSEUDO.exec(e))s+=r[0],e=e.replace(d.match.PSEUDO,"");e=d.relative[e]?e+"*":e;for(var u=0,a=o.length;u<a;u++)h(e,o[u],i,n);return h.filter(s,i)};h.attr=H.attr,h.selectors.attrMap={},H.find=h,H.expr=h.selectors,H.expr[":"]=H.expr.filters,H.unique=h.uniqueSort,H.text=h.getText,H.isXMLDoc=h.isXML,H.contains=h.contains}();var ut=/Until$/,at=/^(?:parents|prevUntil|prevAll)/,ft=/,/,lt=/^.[^:#\[\.,]*$/,ct=Array.prototype.slice,ht=H.expr.match.globalPOS,pt={children:!0,contents:!0,next:!0,prev:!0};H.fn.extend({find:function(e){var t=this,n,r;if(typeof e!="string")return H(e).filter(function(){for(n=0,r=t.length;n<r;n++)if(H.contains(t[n],this))return!0});var i=this.pushStack("","find",e),s,o,u;for(n=0,r=this.length;n<r;n++){s=i.length,H.find(e,this[n],i);if(n>0)for(o=s;o<i.length;o++)for(u=0;u<s;u++)if(i[u]===i[o]){i.splice(o--,1);break}}return i},has:function(e){var t=H(e);return this.filter(function(){for(var e=0,n=t.length;e<n;e++)if(H.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(T(this,e,!1),"not",e)},filter:function(e){return this.pushStack(T(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?ht.test(e)?H(e,this.context).index(this[0])>=0:H.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n=[],r,i,s=this[0];if(H.isArray(e)){var o=1;while(s&&s.ownerDocument&&s!==t){for(r=0;r<e.length;r++)H(s).is(e[r])&&n.push({selector:e[r],elem:s,level:o});s=s.parentNode,o++}return n}var u=ht.test(e)||typeof e!="string"?H(e,t||this.context):0;for(r=0,i=this.length;r<i;r++){s=this[r];while(s){if(u?u.index(s)>-1:H.find.matchesSelector(s,e)){n.push(s);break}s=s.parentNode;if(!s||!s.ownerDocument||s===t||s.nodeType===11)break}}return n=n.length>1?H.unique(n):n,this.pushStack(n,"closest",e)},index:function(e){return e?typeof e=="string"?H.inArray(this[0],H(e)):H.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?H(e,t):H.makeArray(e&&e.nodeType?[e]:e),r=H.merge(this.get(),n);return this.pushStack(N(n[0])||N(r[0])?r:H.unique(r))},andSelf:function(){return this.add(this.prevObject)}}),H.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return H.dir(e,"parentNode")},parentsUntil:function(e,t,n){return H.dir(e,"parentNode",n)},next:function(e){return H.nth(e,2,"nextSibling")},prev:function(e){return H.nth(e,2,"previousSibling")},nextAll:function(e){return H.dir(e,"nextSibling")},prevAll:function(e){return H.dir(e,"previousSibling")},nextUntil:function(e,t,n){return H.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return H.dir(e,"previousSibling",n)},siblings:function(e){return H.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return H.sibling(e.firstChild)},contents:function(e){return H.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:H.makeArray(e.childNodes)}},function(e,t){H.fn[e]=function(n,r){var i=H.map(this,t,n);return ut.test(e)||(r=n),r&&typeof r=="string"&&(i=H.filter(r,i)),i=this.length>1&&!pt[e]?H.unique(i):i,(this.length>1||ft.test(r))&&at.test(e)&&(i=i.reverse()),this.pushStack(i,e,ct.call(arguments).join(","))}}),H.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?H.find.matchesSelector(t[0],e)?[t[0]]:[]:H.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!H(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},nth:function(e,t,n,r){t=t||1;var i=0;for(;e;e=e[n])if(e.nodeType===1&&++i===t)break;return e},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var dt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",vt=/ jQuery\d+="(?:\d+|null)"/g,mt=/^\s+/,gt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,yt=/<([\w:]+)/,bt=/<tbody/i,wt=/<|&#?\w+;/,Et=/<(?:script|style)/i,St=/<(?:script|object|embed|option|style)/i,xt=new RegExp("<(?:"+dt+")[\\s/>]","i"),Tt=/checked\s*(?:[^=]|=\s*.checked.)/i,Nt=/\/(java|ecma)script/i,Ct=/^\s*<!(?:\[CDATA\[|\-\-)/,kt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Lt=x(_);kt.optgroup=kt.option,kt.tbody=kt.tfoot=kt.colgroup=kt.caption=kt.thead,kt.th=kt.td,H.support.htmlSerialize||(kt._default=[1,"div<div>","</div>"]),H.fn.extend({text:function(e){return H.access(this,function(e){return e===t?H.text(this):this.empty().append((this[0]&&this[0].ownerDocument||_).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(H.isFunction(e))return this.each(function(t){H(this).wrapAll(e.call(this,t))});if(this[0]){var t=H(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return H.isFunction(e)?this.each(function(t){H(this).wrapInner(e.call(this,t))}):this.each(function(){var t=H(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=H.isFunction(e);return this.each(function(n){H(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){H.nodeName(this,"body")||H(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){this.nodeType===1&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){this.nodeType===1&&this.insertBefore(e,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=H.clean(arguments);return e.push.apply(e,this.toArray()),this.pushStack(e,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=this.pushStack(this,"after",arguments);return e.push.apply(e,H.clean(arguments)),e}},remove:function(e,t){for(var n=0,r;(r=this[n])!=null;n++)if(!e||H.filter(e,[r]).length)!t&&r.nodeType===1&&(H.cleanData
(r.getElementsByTagName("*")),H.cleanData([r])),r.parentNode&&r.parentNode.removeChild(r);return this},empty:function(){for(var e=0,t;(t=this[e])!=null;e++){t.nodeType===1&&H.cleanData(t.getElementsByTagName("*"));while(t.firstChild)t.removeChild(t.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return H.clone(this,e,t)})},html:function(e){return H.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(vt,""):null;if(typeof e=="string"&&!Et.test(e)&&(H.support.leadingWhitespace||!mt.test(e))&&!kt[(yt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(gt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(H.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return this[0]&&this[0].parentNode?H.isFunction(e)?this.each(function(t){var n=H(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=H(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;H(this).remove(),t?H(t).before(e):H(n).append(e)})):this.length?this.pushStack(H(H.isFunction(e)?e():e),"replaceWith",e):this},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){var i,s,o,u,a=e[0],f=[];if(!H.support.checkClone&&arguments.length===3&&typeof a=="string"&&Tt.test(a))return this.each(function(){H(this).domManip(e,n,r,!0)});if(H.isFunction(a))return this.each(function(i){var s=H(this);e[0]=a.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){u=a&&a.parentNode,H.support.parentNode&&u&&u.nodeType===11&&u.childNodes.length===this.length?i={fragment:u}:i=H.buildFragment(e,this,f),o=i.fragment,o.childNodes.length===1?s=o=o.firstChild:s=o.firstChild;if(s){n=n&&H.nodeName(s,"tr");for(var l=0,c=this.length,h=c-1;l<c;l++)r.call(n?S(this[l],s):this[l],i.cacheable||c>1&&l<h?H.clone(o,!0,!0):o)}f.length&&H.each(f,function(e,t){t.src?H.ajax({type:"GET",global:!1,url:t.src,async:!1,dataType:"script"}):H.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Ct,"/*$0*/")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),H.buildFragment=function(e,t,n){var r,i,s,o,u=e[0];return t&&t[0]&&(o=t[0].ownerDocument||t[0]),o.createDocumentFragment||(o=_),e.length===1&&typeof u=="string"&&u.length<512&&o===_&&u.charAt(0)==="<"&&!St.test(u)&&(H.support.checkClone||!Tt.test(u))&&(H.support.html5Clone||!xt.test(u))&&(i=!0,s=H.fragments[u],s&&s!==1&&(r=s)),r||(r=o.createDocumentFragment(),H.clean(e,o,r,n)),i&&(H.fragments[u]=s?r:1),{fragment:r,cacheable:i}},H.fragments={},H.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){H.fn[e]=function(n){var r=[],i=H(n),s=this.length===1&&this[0].parentNode;if(s&&s.nodeType===11&&s.childNodes.length===1&&i.length===1)return i[t](this[0]),this;for(var o=0,u=i.length;o<u;o++){var a=(o>0?this.clone(!0):this).get();H(i[o])[t](a),r=r.concat(a)}return this.pushStack(r,e,i.selector)}}),H.extend({clone:function(e,t,n){var r,i,s,o=H.support.html5Clone||H.isXMLDoc(e)||!xt.test("<"+e.nodeName+">")?e.cloneNode(!0):m(e);if((!H.support.noCloneEvent||!H.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!H.isXMLDoc(e)){w(e,o),r=b(e),i=b(o);for(s=0;r[s];++s)i[s]&&w(r[s],i[s])}if(t){E(e,o);if(n){r=b(e),i=b(o);for(s=0;r[s];++s)E(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var i,s,o,u=[];t=t||_,typeof t.createElement=="undefined"&&(t=t.ownerDocument||t[0]&&t[0].ownerDocument||_);for(var a=0,f;(f=e[a])!=null;a++){typeof f=="number"&&(f+="");if(!f)continue;if(typeof f=="string")if(!wt.test(f))f=t.createTextNode(f);else{f=f.replace(gt,"<$1></$2>");var l=(yt.exec(f)||["",""])[1].toLowerCase(),c=kt[l]||kt._default,h=c[0],p=t.createElement("div"),d=Lt.childNodes,v;t===_?Lt.appendChild(p):x(t).appendChild(p),p.innerHTML=c[1]+f+c[2];while(h--)p=p.lastChild;if(!H.support.tbody){var m=bt.test(f),y=l==="table"&&!m?p.firstChild&&p.firstChild.childNodes:c[1]==="<table>"&&!m?p.childNodes:[];for(o=y.length-1;o>=0;--o)H.nodeName(y[o],"tbody")&&!y[o].childNodes.length&&y[o].parentNode.removeChild(y[o])}!H.support.leadingWhitespace&&mt.test(f)&&p.insertBefore(t.createTextNode(mt.exec(f)[0]),p.firstChild),f=p.childNodes,p&&(p.parentNode.removeChild(p),d.length>0&&(v=d[d.length-1],v&&v.parentNode&&v.parentNode.removeChild(v)))}var b;if(!H.support.appendChecked)if(f[0]&&typeof (b=f.length)=="number")for(o=0;o<b;o++)g(f[o]);else g(f);f.nodeType?u.push(f):u=H.merge(u,f)}if(n){i=function(e){return!e.type||Nt.test(e.type)};for(a=0;u[a];a++){s=u[a];if(r&&H.nodeName(s,"script")&&(!s.type||Nt.test(s.type)))r.push(s.parentNode?s.parentNode.removeChild(s):s);else{if(s.nodeType===1){var w=H.grep(s.getElementsByTagName("script"),i);u.splice.apply(u,[a+1,0].concat(w))}n.appendChild(s)}}}return u},cleanData:function(e){var t,n,r=H.cache,i=H.event.special,s=H.support.deleteExpando;for(var o=0,u;(u=e[o])!=null;o++){if(u.nodeName&&H.noData[u.nodeName.toLowerCase()])continue;n=u[H.expando];if(n){t=r[n];if(t&&t.events){for(var a in t.events)i[a]?H.event.remove(u,a):H.removeEvent(u,a,t.handle);t.handle&&(t.handle.elem=null)}s?delete u[H.expando]:u.removeAttribute&&u.removeAttribute(H.expando),delete r[n]}}}});var At=/alpha\([^)]*\)/i,Ot=/opacity=([^)]*)/,Mt=/([A-Z]|^ms)/g,_t=/^[\-+]?(?:\d*\.)?\d+$/i,Dt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,Pt=/^([\-+])=([\-+.\de]+)/,Ht=/^margin/,Bt={position:"absolute",visibility:"hidden",display:"block"},jt=["Top","Right","Bottom","Left"],Ft,It,qt;H.fn.css=function(e,n){return H.access(this,function(e,n,r){return r!==t?H.style(e,n,r):H.css(e,n)},e,n,arguments.length>1)},H.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ft(e,"opacity");return n===""?"1":n}return e.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":H.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!!e&&e.nodeType!==3&&e.nodeType!==8&&!!e.style){var s,o,u=H.camelCase(n),a=e.style,f=H.cssHooks[u];n=H.cssProps[u]||u;if(r===t)return f&&"get"in f&&(s=f.get(e,!1,i))!==t?s:a[n];o=typeof r,o==="string"&&(s=Pt.exec(r))&&(r=+(s[1]+1)*+s[2]+parseFloat(H.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!H.cssNumber[u]&&(r+="px");if(!f||!("set"in f)||(r=f.set(e,r))!==t)try{a[n]=r}catch(l){}}},css:function(e,n,r){var i,s;n=H.camelCase(n),s=H.cssHooks[n],n=H.cssProps[n]||n,n==="cssFloat"&&(n="float");if(s&&"get"in s&&(i=s.get(e,!0,r))!==t)return i;if(Ft)return Ft(e,n)},swap:function(e,t,n){var r={},i,s;for(s in t)r[s]=e.style[s],e.style[s]=t[s];i=n.call(e);for(s in t)e.style[s]=r[s];return i}}),H.curCSS=H.css,_.defaultView&&_.defaultView.getComputedStyle&&(It=function(e,t){var n,r,i,s,o=e.style;return t=t.replace(Mt,"-$1").toLowerCase(),(r=e.ownerDocument.defaultView)&&(i=r.getComputedStyle(e,null))&&(n=i.getPropertyValue(t),n===""&&!H.contains(e.ownerDocument.documentElement,e)&&(n=H.style(e,t))),!H.support.pixelMargin&&i&&Ht.test(t)&&Dt.test(n)&&(s=o.width,o.width=n,n=i.width,o.width=s),n}),_.documentElement.currentStyle&&(qt=function(e,t){var n,r,i,s=e.currentStyle&&e.currentStyle[t],o=e.style;return s==null&&o&&(i=o[t])&&(s=i),Dt.test(s)&&(n=o.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),o.left=t==="fontSize"?"1em":s,s=o.pixelLeft+"px",o.left=n,r&&(e.runtimeStyle.left=r)),s===""?"auto":s}),Ft=It||qt,H.each(["height","width"],function(e,t){H.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth!==0?v(e,t,r):H.swap(e,Bt,function(){return v(e,t,r)})},set:function(e,t){return _t.test(t)?t+"px":t}}}),H.support.opacity||(H.cssHooks.opacity={get:function(e,t){return Ot.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?parseFloat(RegExp.$1)/100+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=H.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&H.trim(s.replace(At,""))===""){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=At.test(s)?s.replace(At,i):s+" "+i}}),H(function(){H.support.reliableMarginRight||(H.cssHooks.marginRight={get:function(e,t){return H.swap(e,{display:"inline-block"},function(){return t?Ft(e,"margin-right"):e.style.marginRight})}})}),H.expr&&H.expr.filters&&(H.expr.filters.hidden=function(e){var t=e.offsetWidth,n=e.offsetHeight;return t===0&&n===0||!H.support.reliableHiddenOffsets&&(e.style&&e.style.display||H.css(e,"display"))==="none"},H.expr.filters.visible=function(e){return!H.expr.filters.hidden(e)}),H.each({margin:"",padding:"",border:"Width"},function(e,t){H.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+jt[r]+t]=i[r]||i[r-2]||i[0];return s}}});var Rt=/%20/g,Ut=/\[\]$/,zt=/\r?\n/g,Wt=/#.*$/,Xt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,Vt=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,$t=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,Jt=/^(?:GET|HEAD)$/,Kt=/^\/\//,Qt=/\?/,Gt=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,Yt=/^(?:select|textarea)/i,Zt=/\s+/,en=/([?&])_=[^&]*/,tn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,nn=H.fn.load,rn={},sn={},on,un,an=["*/"]+["*"];try{on=P.href}catch(fn){on=_.createElement("a"),on.href="",on=on.href}un=tn.exec(on.toLowerCase())||[],H.fn.extend({load:function(e,n,r){if(typeof e!="string"&&nn)return nn.apply(this,arguments);if(!this.length)return this;var i=e.indexOf(" ");if(i>=0){var s=e.slice(i,e.length);e=e.slice(0,i)}var o="GET";n&&(H.isFunction(n)?(r=n,n=t):typeof n=="object"&&(n=H.param(n,H.ajaxSettings.traditional),o="POST"));var u=this;return H.ajax({url:e,type:o,dataType:"html",data:n,complete:function(e,t,n){n=e.responseText,e.isResolved()&&(e.done(function(e){n=e}),u.html(s?H("<div>").append(n.replace(Gt,"")).find(s):n)),r&&u.each(r,[n,t,e])}}),this},serialize:function(){return H.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?H.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||Yt.test(this.nodeName)||Vt.test(this.type))}).map(function(e,t){var n=H(this).val();return n==null?null:H.isArray(n)?H.map(n,function(e,n){return{name:t.name,value:e.replace(zt,"\r\n")}}):{name:t.name,value:n.replace(zt,"\r\n")}}).get()}}),H.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){H.fn[t]=function(e){return this.on(t,e)}}),H.each(["get","post"],function(e,n){H[n]=function(e,r,i,s){return H.isFunction(r)&&(s=s||i,i=r,r=t),H.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),H.extend({getScript:function(e,n){return H.get(e,t,n,"script")},getJSON:function(e,t,n){return H.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?h(e,H.ajaxSettings):(t=e,e=H.ajaxSettings),h(e,t),e},ajaxSettings:{url:on,isLocal:$t.test(un[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":an},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":H.parseJSON,"text xml":H.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:d(rn),ajaxTransport:d(sn),ajax:function(e,n){function r(e,n,r,p){if(E!==2){E=2,b&&clearTimeout(b),y=t,m=p||"",T.readyState=e>0?4:0;var d,v,g,w=n,x=r?l(i,T,r):t,N,C;if(e>=200&&e<300||e===304){if(i.ifModified){if(N=T.getResponseHeader("Last-Modified"))H.lastModified[h]=N;if(C=T.getResponseHeader("Etag"))H.etag[h]=C}if(e===304)w="notmodified",d=!0;else try{v=f(i,x),w="success",d=!0}catch(k){w="parsererror",g=k}}else{g=w;if(!w||e)w="error",e<0&&(e=0)}T.status=e,T.statusText=""+(n||w),d?u.resolveWith(s,[v,w,T]):u.rejectWith(s,[T,w,g]),T.statusCode(c),c=t,S&&o.trigger("ajax"+(d?"Success":"Error"),[T,i,d?v:g]),a.fireWith(s,[T,w]),S&&(o.trigger("ajaxComplete",[T,i]),--H.active||H.event.trigger("ajaxStop"))}}typeof e=="object"&&(n=e,e=t),n=n||{};var i=H.ajaxSetup({},n),s=i.context||i,o=s!==i&&(s.nodeType||s instanceof H)?H(s):H.event,u=H.Deferred(),a=H.Callbacks("once memory"),c=i.statusCode||{},h,d={},v={},m,g,y,b,w,E=0,S,x,T={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=v[n]=v[n]||e,d[e]=t}return this},getAllResponseHeaders:function(){return E===2?m:null},getResponseHeader:function(e){var n;if(E===2){if(!g){g={};while(n=Xt.exec(m))g[n[1].toLowerCase()]=n[2]}n=g[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(i.mimeType=e),this},abort:function(e){return e=e||"abort",y&&y.abort(e),r(0,e),this}};u.promise(T),T.success=T.done,T.error=T.fail,T.complete=a.add,T.statusCode=function(e){if(e){var t;if(E<2)for(t in e)c[t]=[c[t],e[t]];else t=e[T.status],T.then(t,t)}return this},i.url=((e||i.url)+"").replace(Wt,"").replace(Kt,un[1]+"//"),i.dataTypes=H.trim(i.dataType||"*").toLowerCase().split(Zt),i.crossDomain==null&&(w=tn.exec(i.url.toLowerCase()),i.crossDomain=!(!w||w[1]==un[1]&&w[2]==un[2]&&(w[3]||(w[1]==="http:"?80:443))==(un[3]||(un[1]==="http:"?80:443)))),i.data&&i.processData&&typeof i.data!="string"&&(i.data=H.param(i.data,i.traditional)),p(rn,i,n,T);if(E===2)return!1;S=i.global,i.type=i.type.toUpperCase(),i.hasContent=!Jt.test(i.type),S&&H.active++===0&&H.event.trigger("ajaxStart");if(!i.hasContent){i.data&&(i.url+=(Qt.test(i.url)?"&":"?")+i.data,delete i.data),h=i.url;if(i.cache===!1){var N=H.now(),C=i.url.replace(en,"$1_="+N);i.url=C+(C===i.url?(Qt.test(i.url)?"&":"?")+"_="+N:"")}}(i.data&&i.hasContent&&i.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",i.contentType),i.ifModified&&(h=h||i.url,H.lastModified[h]&&T.setRequestHeader("If-Modified-Since",H.lastModified[h]),H.etag[h]&&T.setRequestHeader("If-None-Match",H.etag[h])),T.setRequestHeader("Accept",i.dataTypes[0]&&i.accepts[i.dataTypes[0]]?i.accepts[i.dataTypes[0]]+(i.dataTypes[0]!=="*"?", "+an+"; q=0.01":""):i.accepts["*"]);for(x in i.headers)T.setRequestHeader(x,i.headers[x]);if(!i.beforeSend||i.beforeSend.call(s,T,i)!==!1&&E!==2){for(x in{success:1,error:1,complete:1})T[x](i[x]);y=p(sn,i,n,T);if(!y)r(-1,"No Transport");else{T.readyState=1,S&&o.trigger("ajaxSend",[T,i]),i.async&&i.timeout>0&&(b=setTimeout(function(){T.abort("timeout")},i.timeout));try{E=1,y.send(d,r)}catch(k){if(!(E<2))throw k;r(-1,k)}}return T}return T.abort(),!1},param:function(e,n){var r=[],i=function(e,t){t=H.isFunction(t)?t():t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=H.ajaxSettings.traditional);if(H.isArray(e)||e.jquery&&!H.isPlainObject(e))H.each(e,function(){i(this.name,this.value)});else for(var s in e)c(s,e[s],n,i);return r.join("&").replace(Rt,"+")}}),H.extend({active:0,lastModified:{},etag:{}});var ln=H.now(),cn=/(\=)\?(&|$)|\?\?/i;H.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return H.expando+"_"+ln++}}),H.ajaxPrefilter("json jsonp",function(t,n,r){var i=typeof t.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(t.contentType);if(t.dataTypes[0]==="jsonp"||t.jsonp!==!1&&(cn.test(t.url)||i&&cn.test(t.data))){var s,o=t.jsonpCallback=H.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,u=e[o],a=t.url,f=t.data,l="$1"+o+"$2";return t.jsonp!==!1&&(a=a.replace(cn,l),t.url===a&&(i&&(f=f.replace(cn,l)),t.data===f&&(a+=(/\?/.test(a)?"&":"?")+t.jsonp+"="+o))),t.url=a,t.data=f,e[o]=function(e){s=[e]},r.always(function(){e[o]=u,s&&H.isFunction(u)&&e[o](s[0])}),t.converters["script json"]=function(){return s||H.error(o+" was not called"),s[0]},t.dataTypes[0]="json","script"}}),H.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return H.globalEval(e),e}}}),H.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),H.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=_.head||_.getElementsByTagName("head")[0]||_.documentElement;return{send:function(i,s){n=_.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||s(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var hn=e.ActiveXObject?function(){for(var e in dn)dn[e](0,1)}:!1,pn=0,dn;H.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&a()||u()}:a,function(e){H.extend(H.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(H.ajaxSettings.xhr()),H.support.ajax&&H.ajaxTransport(function(n){if(!n.crossDomain||H.support.cors){var r;return{send:function(i,s){var o=n.xhr(),u,a;n.username?o.open(n.type,n.url,n.async,n.username,n.password):o.open(n.type,n.url,n.async);if(n.xhrFields)for(a in n.xhrFields)o[a]=n.xhrFields[a];n.mimeType&&o.overrideMimeType&&o.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(a in i)o.setRequestHeader(a,i[a])}catch(f){}o.send(n.hasContent&&n.data||null),r=function(e,i){var a,f,l,c,h;try{if(r&&(i||o.readyState===4)){r=t,u&&(o.onreadystatechange=H.noop,hn&&delete dn[u]);if(i)o.readyState!==4&&o.abort();else{a=o.status,l=o.getAllResponseHeaders(),c={},h=o.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=o.responseText}catch(e){}try{f=o.statusText}catch(p){f=""}!a&&n.isLocal&&!n.crossDomain?a=c.text?200:404:a===1223&&(a=204)}}}catch(d){i||s(-1,d)}c&&s(a,f,c,l)},!n.async||o.readyState===4?r():(u=++pn,hn&&(dn||(dn={},H(e).unload(hn)),dn[u]=r),o.onreadystatechange=r)},abort:function(){r&&r(0,1)}}}});var vn={},mn,gn,yn=/^(?:toggle|show|hide)$/,bn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,wn,En=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],Sn;H.fn.extend({show:function(e,t,n){var s,o;if(e||e===0)return this.animate(i("show",3),e,t,n);for(var u=0,a=this.length;u<a;u++)s=this[u],s.style&&(o=s.style.display,!H._data(s,"olddisplay")&&o==="none"&&(o=s.style.display=""),(o===""&&H.css(s,"display")==="none"||!H.contains(s.ownerDocument.documentElement,s))&&H._data(s,"olddisplay",r(s.nodeName)));for(u=0;u<a;u++){s=this[u];if(s.style){o=s.style.display;if(o===""||o==="none")s.style.display=H._data(s,"olddisplay")||""}}return this},hide:function(e,t,n){if(e||e===0)return this.animate(i("hide",3),e,t,n);var r,s,o=0,u=this.length;for(;o<u;o++)r=this[o],r.style&&(s=H.css(r,"display"),s!=="none"&&!H._data(r,"olddisplay")&&H._data(r,"olddisplay",s));for(o=0;o<u;o++)this[o].style&&(this[o].style.display="none");return this},_toggle:H.fn.toggle,toggle:function(e,t,n){var r=typeof e=="boolean";return H.isFunction(e)&&H.isFunction(t)?this._toggle.apply(this,arguments):e==null||r?this.each(function(){var t=r?e:H(this).is(":hidden");H(this)[t?"show":"hide"]()}):this.animate(i("toggle",3),e,t,n),this},fadeTo:function(e,t,n,r){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,i){function s(){o.queue===!1&&H._mark(this);var t=H.extend({},o),n=this.nodeType===1,i=n&&H(this).is(":hidden"),s,u,a,f,l,c,h,p,d,v,m;t.animatedProperties={};for(a in e){s=H.camelCase(a),a!==s&&(e[s]=e[a],delete e[a]);if((l=H.cssHooks[s])&&"expand"in l){c=l.expand(e[s]),delete e[s];for(a in c)a in e||(e[a]=c[a])}}for(s in e){u=e[s],H.isArray(u)?(t.animatedProperties[s]=u[1],u=e[s]=u[0]):t.animatedProperties[s]=t.specialEasing&&t.specialEasing[s]||t.easing||"swing";if(u==="hide"&&i||u==="show"&&!i)return t.complete.call(this);n&&(s==="height"||s==="width")&&(t.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],H.css(this,"display")==="inline"&&H.css(this,"float")==="none"&&(!H.support.inlineBlockNeedsLayout||r(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}t.overflow!=null&&(this.style.overflow="hidden");for(a in e)f=new H.fx(this,t,a),u=e[a],yn.test(u)?(m=H._data(this,"toggle"+a)||(u==="toggle"?i?"show":"hide":0),m?(H._data(this,"toggle"+a,m==="show"?"hide":"show"),f[m]()):f[u]()):(h=bn.exec(u),p=f.cur(),h?(d=parseFloat(h[2]),v=h[3]||(H.cssNumber[a]?"":"px"),v!=="px"&&(H.style(this,a,(d||1)+v),p=(d||1)/f.cur()*p,H.style(this,a,p+v)),h[1]&&(d=(h[1]==="-="?-1:1)*d+p),f.custom(p,d,v)):f.custom(p,u,""));return!0}var o=H.speed(t,n,i);return H.isEmptyObject(e)?this.each(o.complete,[!1]):(e=H.extend({},e),o.queue===!1?this.each(s):this.queue(o.queue,s))},stop:function(e,n,r){return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){function t(e,t,n){var i=t[n];H.removeData(e,n,!0),i.stop(r)}var n,i=!1,s=H.timers,o=H._data(this);r||H._unmark(!0,this);if(e==null)for(n in o)o[n]&&o[n].stop&&n.indexOf(".run")===n.length-4&&t(this,o,n);else o[n=e+".run"]&&o[n].stop&&t(this,o,n);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(r?s[n](!0):s[n].saveState(),i=!0,s.splice(n,1));(!r||!i)&&H.dequeue(this,e)})}}),H.each({slideDown:i("show",1),slideUp:i("hide",1),slideToggle:i("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){H.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),H.extend({speed:function(e,t,n){var r=e&&typeof e=="object"?H.extend({},e):{complete:n||!n&&t||H.isFunction(e)&&e,duration:e,easing:n&&t||t&&!H.isFunction(t)&&t};r.duration=H.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in H.fx.speeds?H.fx.speeds[r.duration]:H.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(e){H.isFunction(r.old)&&r.old.call(this),r.queue?H.dequeue(this,r.queue):e!==!1&&H._unmark(this)},r},easing:{linear:function(e){return e},swing:function(e){return-Math.cos(e*Math.PI)/2+.5}},timers:[],fx:function(e,t,n){this.options=t,this.elem=e,this.prop=n,t.orig=t.orig||{}}}),H.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(H.fx.step[this.prop]||H.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]==null||!!this.elem.style&&this.elem.style[this.prop]!=null){var e,t=H.css(this.elem,this.prop);return isNaN(e=parseFloat(t))?!t||t==="auto"?0:t:e}return this.elem[this.prop]},custom:function(e,n,r){function i(e){return s.step(e)}var s=this,u=H.fx;this.startTime=Sn||o(),this.end=n,this.now=this.start=e,this.pos=this.state=0,this.unit=r||this.unit||(H.cssNumber[this.prop]?"":"px"),i.queue=this.options.queue,i.elem=this.elem,i.saveState=function(){H._data(s.elem,"fxshow"+s.prop)===t&&(s.options.hide?H._data(s.elem,"fxshow"+s.prop,s.start):s.options.show&&H._data(s.elem,"fxshow"+s.prop,s.end))},i()&&H.timers.push(i)&&!wn&&(wn=setInterval(u.tick,u.interval))},show:function(){var e=H._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||H.style(this.elem,this.prop),this.options.show=!0,e!==t?this.custom(this.cur(),e):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),H(this.elem).show()},hide:function(){this.options.orig[this.prop]=H._data(this.elem,"fxshow"+this.prop)||H.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(e){var t,n,r,i=Sn||o(),s=!0,u=this.elem,a=this.options;if(e||i>=a.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),a.animatedProperties[this.prop]=!0;for(t in a.animatedProperties)a.animatedProperties[t]!==!0&&(s=!1);if(s){a.overflow!=null&&!H.support.shrinkWrapBlocks&&H.each(["","X","Y"],function(e,t){u.style["overflow"+t]=a.overflow[e]}),a.hide&&H(u).hide();if(a.hide||a.show)for(t in a.animatedProperties)H.style(u,t,a.orig[t]),H.removeData(u,"fxshow"+t,!0),H.removeData(u,"toggle"+t,!0);r=a.complete,r&&(a.complete=!1,r.call(u))}return!1}return a.duration==Infinity?this.now=i:(n=i-this.startTime,this.state=n/a.duration,this.pos=H.easing[a.animatedProperties[this.prop]](this.state,n,0,1,a.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update(),!0}},H.extend(H.fx,{tick:function(){var e,t=H.timers,n=0;for(;n<t.length;n++)e=t[n],!e()&&t[n]===e&&t.splice(n--,1);t.length||H.fx.stop()},interval:13,stop:function(){clearInterval(wn),wn=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){H.style(e.elem,"opacity",e.now)},_default:function(e){e.elem.style&&e.elem.style[e.prop]!=null?e.elem.style[e.prop]=e.now+e.unit:e.elem[e.prop]=e.now}}}),H.each(En.concat.apply([],En),function(e,t){t.indexOf("margin")&&(H.fx.step[t]=function(e){H.style(e.elem,t,Math.max(0,e.now)+e.unit)})}),H.expr&&H.expr.filters&&(H.expr.filters.animated=function(e){return H.grep(H.timers,function(t){return e===t.elem}).length});var xn,Tn=/^t(?:able|d|h)$/i,Nn=/^(?:body|html)$/i;"getBoundingClientRect"in _.documentElement?xn=function(e,t,r,i){try{i=e.getBoundingClientRect()}catch(s){}if(!i||!H.contains(r,e))return i?{top:i.top,left:i.left}:{top:0,left:0};var o=t.body,u=n(t),a=r.clientTop||o.clientTop||0,f=r.clientLeft||o.clientLeft||0,l=u.pageYOffset||H.support.boxModel&&r.scrollTop||o.scrollTop,c=u.pageXOffset||H.support.boxModel&&r.scrollLeft||o.scrollLeft,h=i.top+l-a,p=i.left+c-f;return{top:h,left:p}}:xn=function(e,t,n){var r,i=e.offsetParent,s=e,o=t.body,u=t.defaultView,a=u?u.getComputedStyle(e,null):e.currentStyle,f=e.offsetTop,l=e.offsetLeft;while((e=e.parentNode)&&e!==o&&e!==n){if(H.support.fixedPosition&&a.position==="fixed")break;r=u?u.getComputedStyle(e,null):e.currentStyle,f-=e.scrollTop,l-=e.scrollLeft,e===i&&(f+=e.offsetTop,l+=e.offsetLeft,H.support.doesNotAddBorder&&(!H.support.doesAddBorderForTableAndCells||!Tn.test(e.nodeName))&&(f+=parseFloat(r.borderTopWidth)||0,l+=parseFloat(r.borderLeftWidth)||0),s=i,i=e.offsetParent),H.support.subtractsBorderForOverflowNotVisible&&r.overflow!=="visible"&&(f+=parseFloat(r.borderTopWidth)||0,l+=parseFloat(r.borderLeftWidth)||0),a=r}if(a.position==="relative"||a.position==="static")f+=o.offsetTop,l+=o.offsetLeft;return H.support.fixedPosition&&a.position==="fixed"&&(f+=Math.max(n.scrollTop,o.scrollTop),l+=Math.max(n.scrollLeft,o.scrollLeft)),{top:f,left:l}},H.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){H.offset.setOffset(this,e,t)});var n=this[0],r=n&&n.ownerDocument;return r?n===r.body?H.offset.bodyOffset(n):xn(n,r,r.documentElement):null},H.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return H.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(H.css(e,"marginTop"))||0,n+=parseFloat(H.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=H.css(e,"position");r==="static"&&(e.style.position="relative");var i=H(e),s=i.offset(),o=H.css(e,"top"),u=H.css(e,"left"),a=(r==="absolute"||r==="fixed")&&H.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),H.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},H.fn.extend({position:function(){if(!this[0])return null;var e=this[0],t=this.offsetParent(),n=this.offset(),r=Nn.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(H.css(e,"marginTop"))||0,n.left-=parseFloat(H.css(e,"marginLeft"))||0,r.top+=parseFloat(H.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(H.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||_.body;while(e&&!Nn.test(e.nodeName)&&H.css(e,"position")==="static")e=e.offsetParent;return e})}}),H.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,r){var i=/Y/.test(r);H.fn[e]=function(s){return H.access(this,function(e,s,o){var u=n(e);if(o===t)return u?r in u?u[r]:H.support.boxModel&&u.document.documentElement[s]||u.document.body[s]:e[s];u?u.scrollTo(i?H(u).scrollLeft():o,i?o:H(u).scrollTop()):e[s]=o},e,s,arguments.length,null)}}),H.each({Height:"height",Width:"width"},function(e,n){var r="client"+e,i="scroll"+e,s="offset"+e;H.fn["inner"+e]=function(){var e=this[0];return e?e.style?parseFloat(H.css(e,n,"padding")):this[n]():null},H.fn["outer"+e]=function(e){var t=this[0];return t?t.style?parseFloat(H.css(t,n,e?"margin":"border")):this[n]():null},H.fn[n]=function(e){return H.access(this,function(e,n,o){var u,a,f,l;if(H.isWindow(e))return u=e.document,a=u.documentElement[r],H.support.boxModel&&a||u.body&&u.body[r]||a;if(e.nodeType===9)return u=e.documentElement,u[r]>=u[i]?u[r]:Math.max(e.body[i],u[i],e.body[s],u[s]);if(o===t)return f=H.css(e,n),l=parseFloat(f),H.isNumeric(l)?l:f;H(e).css(n,o)},n,e,arguments.length,null)}}),e.jQuery=e.$=H,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return H})})(window),minispade={root:null,modules:{},loaded:{},globalEval:function(e){e&&(window.execScript||function(e){window.eval.call(window,e)})(e)},require:function(e){var t=minispade.loaded[e],n=minispade.modules[e];if(!t){if(!n){if(minispade.root&&e.substr(0,minispade.root.length)!==minispade.root)return minispade.require(minispade.root+e);throw"The module '"+e+"' could not be found"}minispade.loaded[e]=!0,typeof n=="string"?this.globalEval(n):n()}return t},requireAll:function(e){for(var t in this.modules){if(!this.modules.hasOwnProperty(t))continue;if(e&&!e.test(t))continue;minispade.require(t)}},register:function(e,t){minispade.modules[e]=t}},this.Handlebars={},function(){Handlebars.VERSION="1.0.rc.1",Handlebars.helpers={},Handlebars.partials={},Handlebars.registerHelper=function(e,t,n){n&&(t.not=n),this.helpers[e]=t},Handlebars.registerPartial=function(e,t){this.partials[e]=t},Handlebars.registerHelper("helperMissing",function(e){if(arguments.length===2)return undefined;throw new Error("Could not find property '"+e+"'")});var e=Object.prototype.toString,t="[object Function]";Handlebars.registerHelper("blockHelperMissing",function(n,r){var i=r.inverse||function(){},s=r.fn,o="",u=e.call(n);u===t&&(n=n.call(this));if(n===!0)return s(this);if(n===!1||n==null)return i(this);if(u==="[object Array]"){if(n.length>0)for(var a=0,f=n.length;a<f;a++)o+=s(n[a]);else o=i(this);return o}return s(n)}),Handlebars.registerHelper("each",function(e,t){var n=t.fn,r=t.inverse,i="";if(e&&e.length>0)for(var s=0,o=e.length;s<o;s++)i+=n(e[s]);else i=r(this);return i}),Handlebars.registerHelper("if",function(n,r){var i=e.call(n);return i===t&&(n=n.call(this)),!n||Handlebars.Utils.isEmpty(n)?r.inverse(this):r.fn(this)}),Handlebars.registerHelper("unless",function(e,t){var n=t.fn,r=t.inverse;return t.fn=r,t.inverse=n,Handlebars.helpers["if"].call(this,e,t)}),Handlebars.registerHelper("with",function(e,t){return t.fn(e)}),Handlebars.registerHelper("log",function(e){Handlebars.log(e)})}();var handlebars=function(){var e={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(e,t,n,r,i,s,o){var u=s.length-1;switch(i){case 1:return s[u-1];case 2:this.$=new r.ProgramNode(s[u-2],s[u]);break;case 3:this.$=new r.ProgramNode(s[u]);break;case 4:this.$=new r.ProgramNode([]);break;case 5:this.$=[s[u]];break;case 6:s[u-1].push(s[u]),this.$=s[u-1];break;case 7:this.$=new r.BlockNode(s[u-2],s[u-1].inverse,s[u-1],s[u]);break;case 8:this.$=new r.BlockNode(s[u-2],s[u-1],s[u-1].inverse,s[u]);break;case 9:this.$=s[u];break;case 10:this.$=s[u];break;case 11:this.$=new r.ContentNode(s[u]);break;case 12:this.$=new r.CommentNode(s[u]);break;case 13:this.$=new r.MustacheNode(s[u-1][0],s[u-1][1]);break;case 14:this.$=new r.MustacheNode(s[u-1][0],s[u-1][1]);break;case 15:this.$=s[u-1];break;case 16:this
.$=new r.MustacheNode(s[u-1][0],s[u-1][1]);break;case 17:this.$=new r.MustacheNode(s[u-1][0],s[u-1][1],!0);break;case 18:this.$=new r.PartialNode(s[u-1]);break;case 19:this.$=new r.PartialNode(s[u-2],s[u-1]);break;case 20:break;case 21:this.$=[[s[u-2]].concat(s[u-1]),s[u]];break;case 22:this.$=[[s[u-1]].concat(s[u]),null];break;case 23:this.$=[[s[u-1]],s[u]];break;case 24:this.$=[[s[u]],null];break;case 25:s[u-1].push(s[u]),this.$=s[u-1];break;case 26:this.$=[s[u]];break;case 27:this.$=s[u];break;case 28:this.$=new r.StringNode(s[u]);break;case 29:this.$=new r.IntegerNode(s[u]);break;case 30:this.$=new r.BooleanNode(s[u]);break;case 31:this.$=new r.HashNode(s[u]);break;case 32:s[u-1].push(s[u]),this.$=s[u-1];break;case 33:this.$=[s[u]];break;case 34:this.$=[s[u-2],s[u]];break;case 35:this.$=[s[u-2],new r.StringNode(s[u])];break;case 36:this.$=[s[u-2],new r.IntegerNode(s[u])];break;case 37:this.$=[s[u-2],new r.BooleanNode(s[u])];break;case 38:this.$=new r.IdNode(s[u]);break;case 39:s[u-2].push(s[u]),this.$=s[u-2];break;case 40:this.$=[s[u]]}},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(e,t){throw new Error(e)},parse:function(e){function t(e){i.length=i.length-2*e,s.length=s.length-e,o.length=o.length-e}function n(){var e;return e=r.lexer.lex()||1,typeof e!="number"&&(e=r.symbols_[e]||e),e}var r=this,i=[0],s=[null],o=[],u=this.table,a="",f=0,l=0,c=0,h=2,p=1;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var d=this.lexer.yylloc;o.push(d),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var v,m,g,y,b,w,E={},S,x,T,N;for(;;){g=i[i.length-1],this.defaultActions[g]?y=this.defaultActions[g]:(v==null&&(v=n()),y=u[g]&&u[g][v]);if(typeof y=="undefined"||!y.length||!y[0]){if(!c){N=[];for(S in u[g])this.terminals_[S]&&S>2&&N.push("'"+this.terminals_[S]+"'");var C="";this.lexer.showPosition?C="Parse error on line "+(f+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+N.join(", ")+", got '"+this.terminals_[v]+"'":C="Parse error on line "+(f+1)+": Unexpected "+(v==1?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(C,{text:this.lexer.match,token:this.terminals_[v]||v,line:this.lexer.yylineno,loc:d,expected:N})}if(c==3){if(v==p)throw new Error(C||"Parsing halted.");l=this.lexer.yyleng,a=this.lexer.yytext,f=this.lexer.yylineno,d=this.lexer.yylloc,v=n()}for(;;){if(h.toString()in u[g])break;if(g==0)throw new Error(C||"Parsing halted.");t(1),g=i[i.length-1]}m=v,v=h,g=i[i.length-1],y=u[g]&&u[g][h],c=3}if(y[0]instanceof Array&&y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+v);switch(y[0]){case 1:i.push(v),s.push(this.lexer.yytext),o.push(this.lexer.yylloc),i.push(y[1]),v=null,m?(v=m,m=null):(l=this.lexer.yyleng,a=this.lexer.yytext,f=this.lexer.yylineno,d=this.lexer.yylloc,c>0&&c--);break;case 2:x=this.productions_[y[1]][1],E.$=s[s.length-x],E._$={first_line:o[o.length-(x||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(x||1)].first_column,last_column:o[o.length-1].last_column},w=this.performAction.call(E,a,l,f,this.yy,y[1],s,o);if(typeof w!="undefined")return w;x&&(i=i.slice(0,-1*x*2),s=s.slice(0,-1*x),o=o.slice(0,-1*x)),i.push(this.productions_[y[1]][0]),s.push(E.$),o.push(E._$),T=u[i[i.length-2]][i[i.length-1]],i.push(T);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,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 e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=(new Array(e.length+1)).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext="",this.match="");var i=this._currentRules();for(var s=0;s<i.length;s++){t=this._input.match(this.rules[i[s]]);if(t){r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i[s],this.conditionStack[this.conditionStack.length-1]);if(e)return e;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 e=this.next();return typeof e!="undefined"?e:this.lex()},begin:function(e){this.conditionStack.push(e)},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(e){this.begin(e)}};return e.performAction=function(e,t,n,r){var i=r;switch(n){case 0:t.yytext.slice(-1)!=="\\"&&this.begin("mu"),t.yytext.slice(-1)==="\\"&&(t.yytext=t.yytext.substr(0,t.yyleng-1),this.begin("emu"));if(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 16:break;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}},e.rules=[/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/],e.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}},e}();return e.lexer=t,e}();typeof require!="undefined"&&typeof exports!="undefined"&&(exports.parser=handlebars,exports.parse=function(){return handlebars.parse.apply(handlebars,arguments)},exports.main=function(e){if(!e[1])throw new Error("Usage: "+e[0]+" FILE");if(typeof process!="undefined")var t=require("fs").readFileSync(require("path").join(process.cwd(),e[1]),"utf8");else var n=require("file").path(require("file").cwd()),t=n.join(e[1]).read({charset:"utf-8"});return 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(e){return Handlebars.Parser.yy=Handlebars.AST,Handlebars.Parser.parse(e)},Handlebars.print=function(e){return(new Handlebars.PrintVisitor).accept(e)},Handlebars.logger={DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(e,t){}},Handlebars.log=function(e,t){Handlebars.logger.log(e,t)},function(){Handlebars.AST={},Handlebars.AST.ProgramNode=function(e,t){this.type="program",this.statements=e,t&&(this.inverse=new Handlebars.AST.ProgramNode(t))},Handlebars.AST.MustacheNode=function(e,t,n){this.type="mustache",this.escaped=!n,this.hash=t;var r=this.id=e[0],i=this.params=e.slice(1),s=this.eligibleHelper=r.isSimple;this.isHelper=s&&(i.length||t)},Handlebars.AST.PartialNode=function(e,t){this.type="partial",this.id=e,this.context=t};var e=function(e,t){if(e.original!==t.original)throw new Handlebars.Exception(e.original+" doesn't match "+t.original)};Handlebars.AST.BlockNode=function(t,n,r,i){e(t.id,i),this.type="block",this.mustache=t,this.program=n,this.inverse=r,this.inverse&&!this.program&&(this.isInverse=!0)},Handlebars.AST.ContentNode=function(e){this.type="content",this.string=e},Handlebars.AST.HashNode=function(e){this.type="hash",this.pairs=e},Handlebars.AST.IdNode=function(e){this.type="ID",this.original=e.join(".");var t=[],n=0;for(var r=0,i=e.length;r<i;r++){var s=e[r];s===".."?n++:s==="."||s==="this"?this.isScoped=!0:t.push(s)}this.parts=t,this.string=t.join("."),this.depth=n,this.isSimple=e.length===1&&!this.isScoped&&n===0},Handlebars.AST.StringNode=function(e){this.type="STRING",this.string=e},Handlebars.AST.IntegerNode=function(e){this.type="INTEGER",this.integer=e},Handlebars.AST.BooleanNode=function(e){this.type="BOOLEAN",this.bool=e},Handlebars.AST.CommentNode=function(e){this.type="comment",this.comment=e}}(),Handlebars.Exception=function(e){var t=Error.prototype.constructor.apply(this,arguments);for(var n in t)t.hasOwnProperty(n)&&(this[n]=t[n]);this.message=t.message},Handlebars.Exception.prototype=new Error,Handlebars.SafeString=function(e){this.string=e},Handlebars.SafeString.prototype.toString=function(){return this.string.toString()},function(){var e={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},t=/&(?!\w+;)|[<>"'`]/g,n=/[&<>"'`]/,r=function(t){return e[t]||"&amp;"};Handlebars.Utils={escapeExpression:function(e){return e instanceof Handlebars.SafeString?e.toString():e==null||e===!1?"":n.test(e)?e.replace(t,r):e},isEmpty:function(e){return typeof e=="undefined"?!0:e===null?!0:e===!1?!0:Object.prototype.toString.call(e)==="[object Array]"&&e.length===0?!0:!1}}}(),Handlebars.Compiler=function(){},Handlebars.JavaScriptCompiler=function(){},function(e,t){e.prototype={compiler:e,disassemble:function(){var e=this.opcodes,t,n=[],r,i;for(var s=0,o=e.length;s<o;s++){t=e[s];if(t.opcode==="DECLARE")n.push("DECLARE "+t.name+"="+t.value);else{r=[];for(var u=0;u<t.args.length;u++)i=t.args[u],typeof i=="string"&&(i='"'+i.replace("\n","\\n")+'"'),r.push(i);n.push(t.opcode+" "+r.join(" "))}}return n.join("\n")},guid:0,compile:function(e,t){this.children=[],this.depths={list:[]},this.options=t;var n=this.options.knownHelpers;this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0};if(n)for(var r in n)this.options.knownHelpers[r]=n[r];return this.program(e)},accept:function(e){return this[e.type](e)},program:function(e){var t=e.statements,n;this.opcodes=[];for(var r=0,i=t.length;r<i;r++)n=t[r],this[n.type](n);return this.isSimple=i===1,this.depths.list=this.depths.list.sort(function(e,t){return e-t}),this},compileProgram:function(e){var t=(new this.compiler).compile(e,this.options),n=this.guid++,r;this.usePartial=this.usePartial||t.usePartial,this.children[n]=t;for(var i=0,s=t.depths.list.length;i<s;i++){r=t.depths.list[i];if(r<2)continue;this.addDepth(r-1)}return n},block:function(e){var t=e.mustache,n=e.program,r=e.inverse;n&&(n=this.compileProgram(n)),r&&(r=this.compileProgram(r));var i=this.classifyMustache(t);i==="helper"?this.helperMustache(t,n,r):i==="simple"?(this.simpleMustache(t),this.opcode("pushProgram",n),this.opcode("pushProgram",r),this.opcode("pushLiteral","{}"),this.opcode("blockValue")):(this.ambiguousMustache(t,n,r),this.opcode("pushProgram",n),this.opcode("pushProgram",r),this.opcode("pushLiteral","{}"),this.opcode("ambiguousBlockValue")),this.opcode("append")},hash:function(e){var t=e.pairs,n,r;this.opcode("push","{}");for(var i=0,s=t.length;i<s;i++)n=t[i],r=n[1],this.accept(r),this.opcode("assignToHash",n[0])},partial:function(e){var t=e.id;this.usePartial=!0,e.context?this.ID(e.context):this.opcode("push","depth0"),this.opcode("invokePartial",t.original),this.opcode("append")},content:function(e){this.opcode("appendContent",e.string)},mustache:function(e){var t=this.options,n=this.classifyMustache(e);n==="simple"?this.simpleMustache(e):n==="helper"?this.helperMustache(e):this.ambiguousMustache(e),e.escaped&&!t.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ambiguousMustache:function(e,t,n){var r=e.id,i=r.parts[0];this.opcode("getContext",r.depth),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.opcode("invokeAmbiguous",i)},simpleMustache:function(e,t,n){var r=e.id;this.addDepth(r.depth),this.opcode("getContext",r.depth);if(r.parts.length){this.opcode("lookupOnContext",r.parts[0]);for(var i=1,s=r.parts.length;i<s;i++)this.opcode("lookup",r.parts[i])}else this.opcode("pushContext");this.opcode("resolvePossibleLambda")},helperMustache:function(e,t,n){var r=this.setupFullMustacheParams(e,t,n),i=e.id.parts[0];if(this.options.knownHelpers[i])this.opcode("invokeKnownHelper",r.length,i);else{if(this.knownHelpersOnly)throw new Error("You specified knownHelpersOnly, but used the unknown helper "+i);this.opcode("invokeHelper",r.length,i)}},ID:function(e){this.addDepth(e.depth),this.opcode("getContext",e.depth),this.opcode("lookupOnContext",e.parts[0]);for(var t=1,n=e.parts.length;t<n;t++)this.opcode("lookup",e.parts[t])},STRING:function(e){this.opcode("pushString",e.string)},INTEGER:function(e){this.opcode("pushLiteral",e.integer)},BOOLEAN:function(e){this.opcode("pushLiteral",e.bool)},comment:function(){},opcode:function(e){this.opcodes.push({opcode:e,args:[].slice.call(arguments,1)})},declare:function(e,t){this.opcodes.push({opcode:"DECLARE",name:e,value:t})},addDepth:function(e){if(e===0)return;this.depths[e]||(this.depths[e]=!0,this.depths.list.push(e))},classifyMustache:function(e){var t=e.isHelper,n=e.eligibleHelper,r=this.options;if(n&&!t){var i=e.id.parts[0];r.knownHelpers[i]?t=!0:r.knownHelpersOnly&&(n=!1)}return t?"helper":n?"ambiguous":"simple"},pushParams:function(e){var t=e.length,n;while(t--)n=e[t],this.options.stringParams?(n.depth&&this.addDepth(n.depth),this.opcode("getContext",n.depth||0),this.opcode("pushStringParam",n.string)):this[n.type](n)},setupMustacheParams:function(e){var t=e.params;return this.pushParams(t),e.hash?this.hash(e.hash):this.opcode("pushLiteral","{}"),t},setupFullMustacheParams:function(e,t,n){var r=e.params;return this.pushParams(r),this.opcode("pushProgram",t),this.opcode("pushProgram",n),e.hash?this.hash(e.hash):this.opcode("pushLiteral","{}"),r}};var n=function(e){this.value=e};t.prototype={nameLookup:function(e,n,r){return/^[0-9]+$/.test(n)?e+"["+n+"]":t.isValidJavaScriptVariableName(n)?e+"."+n:e+"['"+n+"']"},appendToBuffer:function(e){return this.environment.isSimple?"return "+e+";":"buffer += "+e+";"},initializeBuffer:function(){return this.quotedString("")},namespace:"Handlebars",compile:function(e,t,n,r){this.environment=e,this.options=t||{},Handlebars.log(Handlebars.logger.DEBUG,this.environment.disassemble()+"\n\n"),this.name=this.environment.name,this.isChild=!!n,this.context=n||{programs:[],aliases:{}},this.preamble(),this.stackSlot=0,this.stackVars=[],this.registers={list:[]},this.compileStack=[],this.compileChildren(e,t);var i=e.opcodes,s;this.i=0;for(o=i.length;this.i<o;this.i++)s=i[this.i],s.opcode==="DECLARE"?this[s.name]=s.value:this[s.opcode].apply(this,s.args);return this.createFunctionContext(r)},nextOpcode:function(){var e=this.environment.opcodes,t=e[this.i+1];return e[this.i+1]},eat:function(e){this.i=this.i+1},preamble:function(){var e=[];if(!this.isChild){var t=this.namespace,n="helpers = helpers || "+t+".helpers;";this.environment.usePartial&&(n=n+" partials = partials || "+t+".partials;"),e.push(n)}else e.push("");this.environment.isSimple?e.push(""):e.push(", buffer = "+this.initializeBuffer()),this.lastContext=0,this.source=e},createFunctionContext:function(e){var t=this.stackVars.concat(this.registers.list);t.length>0&&(this.source[1]=this.source[1]+", "+t.join(", "));if(!this.isChild){var n=[];for(var r in this.context.aliases)this.source[1]=this.source[1]+", "+r+"="+this.context.aliases[r]}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 i=this.isChild?["depth0","data"]:["Handlebars","depth0","helpers","partials","data"];for(var s=0,o=this.environment.depths.list.length;s<o;s++)i.push("depth"+this.environment.depths.list[s]);if(e)return i.push(this.source.join("\n ")),Function.apply(this,i);var u="function "+(this.name||"")+"("+i.join(",")+") {\n "+this.source.join("\n ")+"}";return Handlebars.log(Handlebars.logger.DEBUG,u+"\n\n"),u},blockValue:function(){this.context.aliases.blockHelperMissing="helpers.blockHelperMissing";var e=["depth0"];this.setupParams(0,e),this.replaceStack(function(t){return e.splice(1,0,t),t+" = blockHelperMissing.call("+e.join(", ")+")"})},ambiguousBlockValue:function(){this.context.aliases.blockHelperMissing="helpers.blockHelperMissing";var e=["depth0"];this.setupParams(0,e);var t=this.topStack();e.splice(1,0,t),this.source.push("if (!"+this.lastHelper+") { "+t+" = blockHelperMissing.call("+e.join(", ")+"); }")},appendContent:function(e){this.source.push(this.appendToBuffer(this.quotedString(e)))},append:function(){var e=this.popStack();this.source.push("if("+e+" || "+e+" === 0) { "+this.appendToBuffer(e)+" }"),this.environment.isSimple&&this.source.push("else { "+this.appendToBuffer("''")+" }")},appendEscaped:function(){var e=this.nextOpcode(),t="";this.context.aliases.escapeExpression="this.escapeExpression",e&&e.opcode==="appendContent"&&(t=" + "+this.quotedString(e.args[0]),this.eat(e)),this.source.push(this.appendToBuffer("escapeExpression("+this.popStack()+")"+t))},getContext:function(e){this.lastContext!==e&&(this.lastContext=e)},lookupOnContext:function(e){this.pushStack(this.nameLookup("depth"+this.lastContext,e,"context"))},pushContext:function(){this.pushStackLiteral("depth"+this.lastContext)},resolvePossibleLambda:function(){this.context.aliases.functionType='"function"',this.replaceStack(function(e){return"typeof "+e+" === functionType ? "+e+"() : "+e})},lookup:function(e){this.replaceStack(function(t){return t+" == null || "+t+" === false ? "+t+" : "+this.nameLookup(t,e,"context")})},pushStringParam:function(e){this.pushStackLiteral("depth"+this.lastContext),this.pushString(e)},pushString:function(e){this.pushStackLiteral(this.quotedString(e))},push:function(e){this.pushStack(e)},pushLiteral:function(e){this.pushStackLiteral(e)},pushProgram:function(e){e!=null?this.pushStackLiteral(this.programExpression(e)):this.pushStackLiteral(null)},invokeHelper:function(e,t){this.context.aliases.helperMissing="helpers.helperMissing";var n=this.lastHelper=this.setupHelper(e,t);this.register("foundHelper",n.name),this.pushStack("foundHelper ? foundHelper.call("+n.callParams+") "+": helperMissing.call("+n.helperMissingParams+")")},invokeKnownHelper:function(e,t){var n=this.setupHelper(e,t);this.pushStack(n.name+".call("+n.callParams+")")},invokeAmbiguous:function(e){this.context.aliases.functionType='"function"',this.pushStackLiteral("{}");var t=this.setupHelper(0,e),n=this.lastHelper=this.nameLookup("helpers",e,"helper");this.register("foundHelper",n);var r=this.nameLookup("depth"+this.lastContext,e,"context"),i=this.nextStack();this.source.push("if (foundHelper) { "+i+" = foundHelper.call("+t.callParams+"); }"),this.source.push("else { "+i+" = "+r+"; "+i+" = typeof "+i+" === functionType ? "+i+"() : "+i+"; }")},invokePartial:function(e){var t=[this.nameLookup("partials",e,"partial"),"'"+e+"'",this.popStack(),"helpers","partials"];this.options.data&&t.push("data"),this.context.aliases.self="this",this.pushStack("self.invokePartial("+t.join(", ")+");")},assignToHash:function(e){var t=this.popStack(),n=this.topStack();this.source.push(n+"['"+e+"'] = "+t+";")},compiler:t,compileChildren:function(e,t){var n=e.children,r,i;for(var s=0,o=n.length;s<o;s++){r=n[s],i=new this.compiler,this.context.programs.push("");var u=this.context.programs.length;r.index=u,r.name="program"+u,this.context.programs[u]=i.compile(r,t,this.context)}},programExpression:function(e){this.context.aliases.self="this";if(e==null)return"self.noop";var t=this.environment.children[e],n=t.depths.list,r,i=[t.index,t.name,"data"];for(var s=0,o=n.length;s<o;s++)r=n[s],r===1?i.push("depth0"):i.push("depth"+(r-1));return n.length===0?"self.program("+i.join(", ")+")":(i.shift(),"self.programWithDepth("+i.join(", ")+")")},register:function(e,t){this.useRegister(e),this.source.push(e+" = "+t+";")},useRegister:function(e){this.registers[e]||(this.registers[e]=!0,this.registers.list.push(e))},pushStackLiteral:function(e){return this.compileStack.push(new n(e)),e},pushStack:function(e){return this.source.push(this.incrStack()+" = "+e+";"),this.compileStack.push("stack"+this.stackSlot),"stack"+this.stackSlot},replaceStack:function(e){var t=e.call(this,this.topStack());return this.source.push(this.topStack()+" = "+t+";"),"stack"+this.stackSlot},nextStack:function(e){var t=this.incrStack();return this.compileStack.push("stack"+this.stackSlot),t},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),"stack"+this.stackSlot},popStack:function(){var e=this.compileStack.pop();return e instanceof n?e.value:(this.stackSlot--,e)},topStack:function(){var e=this.compileStack[this.compileStack.length-1];return e instanceof n?e.value:e},quotedString:function(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r")+'"'},setupHelper:function(e,t){var n=[];this.setupParams(e,n);var r=this.nameLookup("helpers",t,"helper");return{params:n,name:r,callParams:["depth0"].concat(n).join(", "),helperMissingParams:["depth0",this.quotedString(t)].concat(n).join(", ")}},setupParams:function(e,t){var n=[],r=[],i,s,o;n.push("hash:"+this.popStack()),s=this.popStack(),o=this.popStack();if(o||s)o||(this.context.aliases.self="this",o="self.noop"),s||(this.context.aliases.self="this",s="self.noop"),n.push("inverse:"+s),n.push("fn:"+o);for(var u=0;u<e;u++)i=this.popStack(),t.push(i),this.options.stringParams&&r.push(this.popStack());return this.options.stringParams&&n.push("contexts:["+r.join(",")+"]"),this.options.data&&n.push("data:data"),t.push("{"+n.join(",")+"}"),t.join(", ")}};var r="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(" "),i=t.RESERVED_WORDS={};for(var s=0,o=r.length;s<o;s++)i[r[s]]=!0;t.isValidJavaScriptVariableName=function(e){return!t.RESERVED_WORDS[e]&&/^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(e)?!0:!1}}(Handlebars.Compiler,Handlebars.JavaScriptCompiler),Handlebars.precompile=function(e,t){t=t||{};var n=Handlebars.parse(e),r=(new Handlebars.Compiler).compile(n,t);return(new Handlebars.JavaScriptCompiler).compile(r,t)},Handlebars.compile=function(e,t){function n(){var n=Handlebars.parse(e),r=(new Handlebars.Compiler).compile(n,t),i=(new Handlebars.JavaScriptCompiler).compile(r,t,undefined,!0);return Handlebars.template(i)}t=t||{};var r;return function(e,t){return r||(r=n()),r.call(this,e,t)}},Handlebars.VM={template:function(e){var t={escapeExpression:Handlebars.Utils.escapeExpression,invokePartial:Handlebars.VM.invokePartial,programs:[],program:function(e,t,n){var r=this.programs[e];return n?Handlebars.VM.program(t,n):r?r:(r=this.programs[e]=Handlebars.VM.program(t),r)},programWithDepth:Handlebars.VM.programWithDepth,noop:Handlebars.VM.noop};return function(n,r){return r=r||{},e.call(t,Handlebars,n,r.helpers,r.partials,r.data)}},programWithDepth:function(e,t,n){var r=Array.prototype.slice.call(arguments,2);return function(n,i){return i=i||{},e.apply(this,[n,i.data||t].concat(r))}},program:function(e,t){return function(n,r){return r=r||{},e(n,r.data||t)}},noop:function(){return""},invokePartial:function(e,t,n,r,i,s){var o={helpers:r,partials:i,data:s};if(e===undefined)throw new Handlebars.Exception("The partial "+t+" could not be found");if(e instanceof Function)return e(n,o);if(!Handlebars.compile)throw new Handlebars.Exception("The partial "+t+" could not be compiled when running in runtime-only mode");return i[t]=Handlebars.compile(e),i[t](n,o)}},Handlebars.template=Handlebars.VM.template,function(){"undefined"==typeof Ember&&(Ember={},"undefined"!=typeof window&&(window.Em=window.Ember=Em=Ember)),Ember.ENV="undefined"==typeof ENV?{}:ENV,"MANDATORY_SETTER"in Ember.ENV||(Ember.ENV.MANDATORY_SETTER=!0),Ember.assert=function(e,t){if(!t)throw new Error("assertion failed: "+e)},Ember.warn=function(e,t){t||(Ember.Logger.warn("WARNING: "+e),"trace"in Ember.Logger&&Ember.Logger.trace())},Ember.deprecate=function(e,t){if(Ember&&Ember.TESTING_DEPRECATION)return;arguments.length===1&&(t=!1);if(t)return;if(Ember&&Ember.ENV.RAISE_ON_DEPRECATION)throw new Error(e);var n;try{__fail__.fail()}catch(r){n=r}if(Ember.LOG_STACKTRACE_ON_DEPRECATION&&n.stack){var i,s="";n.arguments?(i=n.stack.replace(/^\s+at\s+/gm,"").replace(/^([^\(]+?)([\n$])/gm,"{anonymous}($1)$2").replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm,"{anonymous}($1)").split("\n"),i.shift()):i=n.stack.replace(/(?:\n@:0)?\s+$/m,"").replace(/^\(/gm,"{anonymous}(").split("\n"),s="\n "+i.slice(2).join("\n "),e+=s}Ember.Logger.warn("DEPRECATION: "+e)},Ember.deprecateFunc=function(e,t){return function(){return t.apply(this,arguments)}},window.ember_assert=Ember.deprecateFunc("ember_assert is deprecated. Please use Ember.assert instead.",Ember.assert),window.ember_warn=Ember.deprecateFunc("ember_warn is deprecated. Please use Ember.warn instead.",Ember.warn),window.ember_deprecate=Ember.deprecateFunc("ember_deprecate is deprecated. Please use Ember.deprecate instead.",Ember.deprecate),window.ember_deprecateFunc=Ember.deprecateFunc("ember_deprecateFunc is deprecated. Please use Ember.deprecateFunc instead.",Ember.deprecateFunc)}(),function(){"undefined"==typeof Ember&&(Ember={});var e=Ember.imports=Ember.imports||this,t=Ember.exports=Ember.exports||this,n=Ember.lookup=Ember.lookup||this;t.Em=t.Ember=Em=Ember,Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.pre",Ember.ENV=Ember.ENV||("undefined"==typeof ENV?{}:ENV),Ember.config=Ember.config||{},Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES,typeof Ember.EXTEND_PROTOTYPES=="undefined"&&(Ember.EXTEND_PROTOTYPES=!0),Ember.LOG_STACKTRACE_ON_DEPRECATION=Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION!==!1,Ember.SHIM_ES5=Ember.ENV.SHIM_ES5===!1?!1:Ember.EXTEND_PROTOTYPES,Ember.K=function(){return this},"undefined"==typeof Ember.assert&&(Ember.assert=Ember.K),"undefined"==typeof Ember.warn&&(Ember.warn=Ember.K),"undefined"==typeof Ember.deprecate&&(Ember.deprecate=Ember.K),"undefined"==typeof Ember.deprecateFunc&&(Ember.deprecateFunc=function(e,t){return t}),"undefined"==typeof ember_assert&&(t.ember_assert=Ember.K),"undefined"==typeof ember_warn&&(t.ember_warn=Ember.K),"undefined"==typeof ember_deprecate&&(t.ember_deprecate=Ember.K),"undefined"==typeof ember_deprecateFunc&&(t.ember_deprecateFunc=function(e,t){return t}),Ember.Logger=e.console||{log:Ember.K,warn:Ember.K,error:Ember.K,info:Ember.K,debug:Ember.K},Ember.onerror=null,Ember.handleErrors=function(e,t){if("function"!=typeof Ember.onerror)return e.apply(t||this);try{return e.apply(t||this)}catch(n){Ember.onerror(n)}}}(),function(){Ember.Instrumentation={};var e=[],t={},n=function(n){var r=[],i;for(var s=0,o=e.length;s<o;s++)i=e[s],i.regex.test(n)&&r.push(i.object);return t[n]=r,r},r=function(){var e=window.performance||{},t=e.now||e.mozNow||e.webkitNow||e.msNow||e.oNow;return t?t.bind(e):function(){return+(new Date)}}();Ember.Instrumentation.instrument=function(e,i,s,o){var u=t[e];u||(u=n(e));if(u.length===0)return s.call(o);var a=[],f,l,c,h;try{for(c=0,h=u.length;c<h;c++)f=u[c],a[c]=f.before(e,r(),i);l=s.call(o)}catch(p){i=i||{},i.exception=p}finally{for(c=0,h=u.length;c<h;c++)f=u[c],f.after(e,r(),i,a[c])}return l},Ember.Instrumentation.subscribe=function(n,r){var i=n.split("."),s,o=[];for(var u=0,a=i.length;u<a;u++)s=i[u],s==="*"?o.push("[^\\.]*"):o.push(s);o=o.join("\\."),o+="(\\..*)?";var f={pattern:n,regex:new RegExp("^"+o+"$"),object:r};return e.push(f),t={},f},Ember.Instrumentation.unsubscribe=function(n){var r;for(var i=0,s=e.length;i<s;i++)e[i]===n&&(r=i);e.splice(r,1),t={}},Ember.Instrumentation.reset=function(){e=[],t={}},Ember.instrument=Ember.Instrumentation
.instrument,Ember.subscribe=Ember.Instrumentation.subscribe}(),function(){var e=function(e){return e&&Function.prototype.toString.call(e).indexOf("[native code]")>-1},t=e(Array.prototype.map)?Array.prototype.map:function(e){if(this===void 0||this===null)throw new TypeError;var t=Object(this),n=t.length>>>0;if(typeof e!="function")throw new TypeError;var r=new Array(n),i=arguments[1];for(var s=0;s<n;s++)s in t&&(r[s]=e.call(i,t[s],s,t));return r},n=e(Array.prototype.forEach)?Array.prototype.forEach:function(e){if(this===void 0||this===null)throw new TypeError;var t=Object(this),n=t.length>>>0;if(typeof e!="function")throw new TypeError;var r=arguments[1];for(var i=0;i<n;i++)i in t&&e.call(r,t[i],i,t)},r=e(Array.prototype.indexOf)?Array.prototype.indexOf:function(e,t){t===null||t===undefined?t=0:t<0&&(t=Math.max(0,this.length+t));for(var n=t,r=this.length;n<r;n++)if(this[n]===e)return n;return-1};Ember.ArrayPolyfills={map:t,forEach:n,indexOf:r};var i=Ember.EnumerableUtils={map:function(e,n,r){return e.map?e.map.call(e,n,r):t.call(e,n,r)},forEach:function(e,t,r){return e.forEach?e.forEach.call(e,t,r):n.call(e,t,r)},indexOf:function(e,t,n){return e.indexOf?e.indexOf.call(e,t,n):r.call(e,t,n)},indexesOf:function(e,t){return t===undefined?[]:i.map(t,function(t){return i.indexOf(e,t)})},removeObject:function(e,t){var n=i.indexOf(e,t);n!==-1&&e.splice(n,1)},replace:function(e,t,n,r){if(e.replace)return e.replace(t,n,r);var i=Array.prototype.concat.apply([t,n],r);return e.splice.apply(e,i)}};Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=t),Array.prototype.forEach||(Array.prototype.forEach=n),Array.prototype.indexOf||(Array.prototype.indexOf=r))}(),function(){var e=Ember.platform={};Ember.create=Object.create;if(!Ember.create){var t=function(){};Ember.create=function(e,n){t.prototype=e,e=new t;if(n){t.prototype=e;for(var r in n)t.prototype[r]=n[r].value;e=new t}return t.prototype=null,e},Ember.create.isSimulated=!0}var n=Object.defineProperty,r,i;if(n)try{n({},"a",{get:function(){}})}catch(s){n=null}n&&(r=function(){var e={};return n(e,"a",{configurable:!0,enumerable:!0,get:function(){},set:function(){}}),n(e,"a",{configurable:!0,enumerable:!0,writable:!0,value:!0}),e.a===!0}(),i=function(){try{return n(document.createElement("div"),"definePropertyOnDOM",{}),!0}catch(e){}return!1}(),r?i||(n=function(e,t,n){var r;return typeof Node=="object"?r=e instanceof Node:r=typeof e=="object"&&typeof e.nodeType=="number"&&typeof e.nodeName=="string",r?e[t]=n.value:Object.defineProperty(e,t,n)}):n=null),e.defineProperty=n,e.hasPropertyAccessors=!0,e.defineProperty||(e.hasPropertyAccessors=!1,e.defineProperty=function(e,t,n){n.get||(e[t]=n.value)},e.defineProperty.isSimulated=!0),Ember.ENV.MANDATORY_SETTER&&!e.hasPropertyAccessors&&(Ember.ENV.MANDATORY_SETTER=!1)}(),function(){function e(e){this.descs={},this.watching={},this.cache={},this.source=e}function t(e,t){return!!e&&typeof e[t]=="function"}var n=Ember.platform.defineProperty,r=Ember.create,i="__ember"+ +(new Date),s=0,o=[],u={},a=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=i;var f={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(e,t){t||(t="ember");var r=t+s++;return e&&(f.value=r,n(e,i,f)),r},Ember.guidFor=function(e){if(e===undefined)return"(undefined)";if(e===null)return"(null)";var t,r,a=typeof e;switch(a){case"number":return r=o[e],r||(r=o[e]="nu"+e),r;case"string":return r=u[e],r||(r=u[e]="st"+s++),r;case"boolean":return e?"(true)":"(false)";default:if(e[i])return e[i];if(e===Object)return"(Object)";if(e===Array)return"(Array)";return r="ember"+s++,f.value=r,n(e,i,f),r}};var l={writable:!0,configurable:!1,enumerable:!1,value:null},c=Ember.GUID_KEY+"_meta";Ember.META_KEY=c;var h={descs:{},watching:{}};a&&(h.values={}),Ember.EMPTY_META=h,Object.freeze&&Object.freeze(h);var p=Ember.platform.defineProperty.isSimulated;p&&(e.prototype.__preventPlainObject__=!0),Ember.meta=function(t,i){var s=t[c];return i===!1?s||h:(s?s.source!==t&&(p||n(t,c,l),s=r(s),s.descs=r(s.descs),s.watching=r(s.watching),s.cache={},s.source=t,a&&(s.values=r(s.values)),t[c]=s):(p||n(t,c,l),s=new e(t),a&&(s.values={}),t[c]=s,s.descs.constructor=null),s)},Ember.getMeta=function(e,t){var n=Ember.meta(e,!1);return n[t]},Ember.setMeta=function(e,t,n){var r=Ember.meta(e,!0);return r[t]=n,n},Ember.metaPath=function(e,t,n){var i=Ember.meta(e,n),s,o;for(var u=0,a=t.length;u<a;u++){s=t[u],o=i[s];if(!o){if(!n)return undefined;o=i[s]={__ember_source__:e}}else if(o.__ember_source__!==e){if(!n)return undefined;o=i[s]=r(o),o.__ember_source__=e}i=o}return o},Ember.wrap=function(e,t){function n(){}var r=function(){var r,i=this._super;return this._super=t||n,r=e.apply(this,arguments),this._super=i,r};return r.base=e,r},Ember.isArray=function(e){return!e||e.setInterval?!1:Array.isArray&&Array.isArray(e)?!0:Ember.Array&&Ember.Array.detect(e)?!0:e.length!==undefined&&"object"==typeof e?!0:!1},Ember.makeArray=function(e){return e===null||e===undefined?[]:Ember.isArray(e)?e:[e]},Ember.canInvoke=t,Ember.tryInvoke=function(e,n,r){if(t(e,n))return e[n].apply(e,r||[])}}(),function(){var e=Ember.guidFor,t=Ember.ArrayPolyfills.indexOf,n=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},r=function(e,t){var r=e.keys.copy(),i=n(e.values);return t.keys=r,t.values=i,t},i=Ember.OrderedSet=function(){this.clear()};i.create=function(){return new i},i.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(t){var n=e(t),r=this.presenceSet,i=this.list;if(n in r)return;r[n]=!0,i.push(t)},remove:function(n){var r=e(n),i=this.presenceSet,s=this.list;delete i[r];var o=t.call(s,n);o>-1&&s.splice(o,1)},isEmpty:function(){return this.list.length===0},has:function(t){var n=e(t),r=this.presenceSet;return n in r},forEach:function(e,t){var n=this.list.slice();for(var r=0,i=n.length;r<i;r++)e.call(t,n[r])},toArray:function(){return this.list.slice()},copy:function(){var e=new i;return e.presenceSet=n(this.presenceSet),e.list=this.list.slice(),e}};var s=Ember.Map=function(){this.keys=Ember.OrderedSet.create(),this.values={}};s.create=function(){return new s},s.prototype={get:function(t){var n=this.values,r=e(t);return n[r]},set:function(t,n){var r=this.keys,i=this.values,s=e(t);r.add(t),i[s]=n},remove:function(t){var n=this.keys,r=this.values,i=e(t),s;return r.hasOwnProperty(i)?(n.remove(t),s=r[i],delete r[i],!0):!1},has:function(t){var n=this.values,r=e(t);return n.hasOwnProperty(r)},forEach:function(t,n){var r=this.keys,i=this.values;r.forEach(function(r){var s=e(r);t.call(n,r,i[s])})},copy:function(){return r(this,new s)}};var o=Ember.MapWithDefault=function(e){s.call(this),this.defaultValue=e.defaultValue};o.create=function(e){return e?new o(e):new s},o.prototype=Ember.create(s.prototype),o.prototype.get=function(e){var t=this.has(e);if(t)return s.prototype.get.call(this,e);var n=this.defaultValue(e);return this.set(e,n),n},o.prototype.copy=function(){return r(this,new o({defaultValue:this.defaultValue}))}}(),function(){function e(e){return e.match(c)[0]}function t(t,n){var r=l.test(n),i=!r&&f.test(n),o;if(!t||i)t=Ember.lookup;r&&(n=n.slice(5)),t===Ember.lookup&&(o=e(n),t=s(t,o),n=n.slice(o.length+1));if(!n||n.length===0)throw new Error("Invalid Path");return[t,n]}function n(e,n){var r,i,o,u,a;if(e===null&&n.indexOf(".")===-1)return s(Ember.lookup,n);r=l.test(n);if(!e||r)o=t(e,n),e=o[0],n=o[1],o.length=0;i=n.split("."),a=i.length;for(u=0;e&&u<a;u++){e=s(e,i[u],!0);if(e&&e.isDestroyed)return undefined}return e}function r(e,t,r,i){var s;s=t.slice(t.lastIndexOf(".")+1),t=t.slice(0,t.length-(s.length+1)),t!=="this"&&(e=n(e,t));if(!s||s.length===0)throw new Error("You passed an empty path");if(!e){if(i)return;throw new Error("Object in path "+t+" could not be found or was destroyed.")}return o(e,s,r)}var i=Ember.META_KEY,s,o,u=Ember.ENV.MANDATORY_SETTER,a=/^([A-Z$]|([0-9][A-Z$]))/,f=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,l=/^this[\.\*]/,c=/^([^\.\*]+)/;s=function(e,t){if(t==="")return e;!t&&"string"==typeof e&&(t=e,e=null);if(!e||t.indexOf(".")!==-1)return n(e,t);var r=e[i],s=r&&r.descs[t],o;return s?s.get(e,t):(u&&r&&r.watching[t]>0?o=r.values[t]:o=e[t],o!==undefined||"object"!=typeof e||t in e||"function"!=typeof e.unknownProperty?o:e.unknownProperty(t))},o=function(e,t,n,s){typeof e=="string"&&(n=t,t=e,e=null);if(!e||t.indexOf(".")!==-1)return r(e,t,n,s);var o=e[i],a=o&&o.descs[t],f,l;return a?a.set(e,t,n):(f="object"==typeof e&&!(t in e),f&&"function"==typeof e.setUnknownProperty?e.setUnknownProperty(t,n):o&&o.watching[t]>0?(u?l=o.values[t]:l=e[t],n!==l&&(Ember.propertyWillChange(e,t),u?l!==undefined||t in e?o.values[t]=n:Ember.defineProperty(e,t,null,n):e[t]=n,Ember.propertyDidChange(e,t))):e[t]=n),n},Ember.config.overrideAccessors&&(Ember.get=s,Ember.set=o,Ember.config.overrideAccessors(),s=Ember.get,o=Ember.set),Ember.normalizeTuple=function(e,n){return t(e,n)},Ember.getWithDefault=function(e,t,n){var r=s(e,t);return r===undefined?n:r},Ember.get=s,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get),Ember.set=o,Ember.setPath=Ember.deprecateFunc("setPath is deprecated since set now supports paths",Ember.set),Ember.trySet=function(e,t,n){return o(e,t,n,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet),Ember.isGlobalPath=function(e){return a.test(e)}}(),function(){var e=Ember.GUID_KEY,t=Ember.META_KEY,n=Ember.EMPTY_META,r=Ember.meta,i=Ember.create,s=Ember.platform.defineProperty,o=Ember.ENV.MANDATORY_SETTER,u=Ember.Descriptor=function(){};Ember.defineProperty=function(e,n,i,u,a){var f,l,c,h;return a||(a=r(e)),f=a.descs,l=a.descs[n],c=a.watching[n]>0,l instanceof Ember.Descriptor&&l.teardown(e,n),i instanceof Ember.Descriptor?(h=i,f[n]=i,o&&c?s(e,n,{configurable:!0,enumerable:!0,writable:!0,value:undefined}):e[n]=undefined,i.setup(e,n)):(f[n]=undefined,i==null?(h=u,o&&c?(a.values[n]=u,s(e,n,{configurable:!0,enumerable:!0,set:function(){},get:function(){var e=this[t];return e&&e.values[n]}})):e[n]=u):(h=i,s(e,n,i))),c&&Ember.overrideChains(e,n,a),e.didDefineProperty&&e.didDefineProperty(e,n,h),this}}(),function(){function e(e,t,n,r){u&&!r?c.push(e,t,n):Ember.sendEvent(e,t,[e,n])}function t(){h.clear(),c.flush()}function n(e){return e+i}function r(e){return e+s}var i=":change",s=":before",o=Ember.guidFor,u=0,a=[].slice,f=function(){this.targetSet={}};f.prototype.add=function(e,t){var n=this.targetSet,r=Ember.guidFor(e),i=n[r];return i||(n[r]=i={}),i[t]?!1:i[t]=!0},f.prototype.clear=function(){this.targetSet={}};var l=function(){this.targetSet={},this.queue=[]};l.prototype.push=function(e,t,n){var r=this.targetSet,i=this.queue,s=Ember.guidFor(e),o=r[s],u;o||(r[s]=o={}),u=o[t],u===undefined?o[t]=i.push(Ember.deferEvent(e,t,[e,n]))-1:i[u]=Ember.deferEvent(e,t,[e,n])},l.prototype.flush=function(){var e=this.queue;this.queue=[],this.targetSet={};for(var t=0,n=e.length;t<n;++t)e[t]()};var c=new l,h=new f;Ember.beginPropertyChanges=function(){return u++,this},Ember.endPropertyChanges=function(){u--,u<=0&&t()},Ember.changeProperties=function(e,t){Ember.beginPropertyChanges();try{e.call(t)}finally{Ember.endPropertyChanges()}},Ember.setProperties=function(e,t){return Ember.changeProperties(function(){for(var n in t)t.hasOwnProperty(n)&&Ember.set(e,n,t[n])}),e},Ember.addObserver=function(e,t,r,i){return Ember.addListener(e,n(t),r,i),Ember.watch(e,t),this},Ember.observersFor=function(e,t){return Ember.listenersFor(e,n(t))},Ember.removeObserver=function(e,t,r,i){return Ember.unwatch(e,t),Ember.removeListener(e,n(t),r,i),this},Ember.addBeforeObserver=function(e,t,n,i){return Ember.addListener(e,r(t),n,i),Ember.watch(e,t),this},Ember._suspendBeforeObserver=function(e,t,n,i,s){return Ember._suspendListener(e,r(t),n,i,s)},Ember._suspendObserver=function(e,t,r,i,s){return Ember._suspendListener(e,n(t),r,i,s)};var p=Ember.ArrayPolyfills.map;Ember._suspendBeforeObservers=function(e,t,n,i,s){var o=p.call(t,r);return Ember._suspendListeners(e,o,n,i,s)},Ember._suspendObservers=function(e,t,r,i,s){var o=p.call(t,n);return Ember._suspendListeners(e,o,r,i,s)},Ember.beforeObserversFor=function(e,t){return Ember.listenersFor(e,r(t))},Ember.removeBeforeObserver=function(e,t,n,i){return Ember.unwatch(e,t),Ember.removeListener(e,r(t),n,i),this},Ember.notifyObservers=function(t,r){if(t.isDestroying)return;e(t,n(r),r)},Ember.notifyBeforeObservers=function(t,n){if(t.isDestroying)return;var i,s,o=!1;if(u){if(!h.add(t,n))return;o=!0}e(t,r(n),n,o)}}(),function(){function e(e){return e.match(T)[0]}function t(e){return e==="*"||!N.test(e)}function n(e,t,n,r,i){var s=v(t);r[s]||(r[s]={});if(r[s][n])return;r[s][n]=!0;var o=i.deps;o=o&&o[n];if(o)for(var u in o){if(L[u])continue;var a=i.descs[u];if(a&&a._suspended===t)continue;e(t,u)}}function r(e,t,r){if(e.isDestroying)return;var i=A,s=!i;s&&(i=A={}),n(p,e,t,i,r),s&&(A=null)}function i(e,t,r){if(e.isDestroying)return;var i=O,s=!i;s&&(i=O={}),n(d,e,t,i,r),s&&(O=null)}function s(e,t,n){if(!e||"object"!=typeof e)return;var r=m(e),i=r.chainWatchers;if(!i||i.__emberproto__!==e)i=r.chainWatchers={__emberproto__:e};i[t]||(i[t]={}),i[t][v(n)]=n,Ember.watch(e,t)}function o(e,t,n){if(!e||"object"!=typeof e)return;var r=m(e,!1),i=r.chainWatchers;if(!i||i.__emberproto__!==e)return;i[t]&&delete i[t][v(n)],Ember.unwatch(e,t)}function u(){if(M.length===0)return;var e=M;M=[],x.call(e,function(e){e[0].add(e[1])})}function a(e){return m(e,!1).proto===e}function f(e){var t=m(e),n=t.chains;return n?n.value()!==e&&(n=t.chains=n.copy(e)):n=t.chains=new _(null,null,e),n}function l(e,t,n,r,i){var s=t.chainWatchers;if(!s||s.__emberproto__!==e)return;s=s[n];if(!s)return;for(var o in s){if(!s.hasOwnProperty(o))continue;s[o][r](i)}}function c(e,t,n){l(e,n,t,"willChange")}function h(e,t,n){l(e,n,t,"didChange")}function p(e,t,n){var i=m(e,!1),s=i.watching[t]>0||t==="length",o=i.proto,u=i.descs[t];if(!s)return;if(o===e)return;u&&u.willChange&&u.willChange(e,t),r(e,t,i),c(e,t,i),Ember.notifyBeforeObservers(e,t)}function d(e,t){var n=m(e,!1),r=n.watching[t]>0||t==="length",s=n.proto,o=n.descs[t];if(s===e)return;o&&o.didChange&&o.didChange(e,t);if(!r&&t!=="length")return;i(e,t,n),h(e,t,n),Ember.notifyObservers(e,t)}var v=Ember.guidFor,m=Ember.meta,g=Ember.get,y=Ember.set,b=Ember.normalizeTuple,w=Ember.GUID_KEY,E=Ember.META_KEY,S=Ember.notifyObservers,x=Ember.ArrayPolyfills.forEach,T=/^([^\.\*]+)/,N=/[\.\*]/,C=Ember.ENV.MANDATORY_SETTER,k=Ember.platform.defineProperty,L={__emberproto__:!0},A,O,M=[],_=function(e,t,n,r){var i;this._parent=e,this._key=t,this._watching=n===undefined,this._value=n,this._separator=r||".",this._paths={},this._watching&&(this._object=e.value(),this._object&&s(this._object,this._key,this)),this._parent&&this._parent._key==="@each"&&this.value()},D=_.prototype;D.value=function(){if(this._value===undefined&&this._watching){var e=this._parent.value();this._value=e&&!a(e)?g(e,this._key):undefined}return this._value},D.destroy=function(){if(this._watching){var e=this._object;e&&o(e,this._key,this),this._watching=!1}},D.copy=function(e){var t=new _(null,null,e,this._separator),n=this._paths,r;for(r in n){if(n[r]<=0)continue;t.add(r)}return t},D.add=function(t){var n,r,i,s,o,u;u=this._paths,u[t]=(u[t]||0)+1,n=this.value(),r=b(n,t);if(r[0]&&r[0]===n)t=r[1],i=e(t),t=t.slice(i.length+1);else{if(!r[0]){M.push([this,t]),r.length=0;return}s=r[0],i=t.slice(0,0-(r[1].length+1)),o=t.slice(i.length,i.length+1),t=r[1]}r.length=0,this.chain(i,t,s,o)},D.remove=function(t){var n,r,i,s,o;o=this._paths,o[t]>0&&o[t]--,n=this.value(),r=b(n,t),r[0]===n?(t=r[1],i=e(t),t=t.slice(i.length+1)):(s=r[0],i=t.slice(0,0-(r[1].length+1)),t=r[1]),r.length=0,this.unchain(i,t)},D.count=0,D.chain=function(t,n,r,i){var s=this._chains,o;s||(s=this._chains={}),o=s[t],o||(o=s[t]=new _(this,t,r,i)),o.count++,n&&n.length>0&&(t=e(n),n=n.slice(t.length+1),o.chain(t,n))},D.unchain=function(t,n){var r=this._chains,i=r[t];n&&n.length>1&&(t=e(n),n=n.slice(t.length+1),i.unchain(t,n)),i.count--,i.count<=0&&(delete r[i._key],i.destroy())},D.willChange=function(){var e=this._chains;if(e)for(var t in e){if(!e.hasOwnProperty(t))continue;e[t].willChange()}this._parent&&this._parent.chainWillChange(this,this._key,1)},D.chainWillChange=function(e,t,n){this._key&&(t=this._key+this._separator+t),this._parent?this._parent.chainWillChange(this,t,n+1):(n>1&&Ember.propertyWillChange(this.value(),t),t="this."+t,this._paths[t]>0&&Ember.propertyWillChange(this.value(),t))},D.chainDidChange=function(e,t,n){this._key&&(t=this._key+this._separator+t),this._parent?this._parent.chainDidChange(this,t,n+1):(n>1&&Ember.propertyDidChange(this.value(),t),t="this."+t,this._paths[t]>0&&Ember.propertyDidChange(this.value(),t))},D.didChange=function(e){if(this._watching){var t=this._parent.value();t!==this._object&&(o(this._object,this._key,this),this._object=t,s(t,this._key,this)),this._value=undefined,this._parent&&this._parent._key==="@each"&&this.value()}var n=this._chains;if(n)for(var r in n){if(!n.hasOwnProperty(r))continue;n[r].didChange(e)}if(e)return;this._parent&&this._parent.chainDidChange(this,this._key,1)},Ember.overrideChains=function(e,t,n){l(e,n,t,"didChange",!0)},Ember.watch=function(e,n){if(n==="length"&&Ember.typeOf(e)==="array")return this;var r=m(e),i=r.watching,s;return i[n]?i[n]=(i[n]||0)+1:(i[n]=1,t(n)?(s=r.descs[n],s&&s.willWatch&&s.willWatch(e,n),"function"==typeof e.willWatchProperty&&e.willWatchProperty(n),C&&n in e&&(r.values[n]=e[n],k(e,n,{configurable:!0,enumerable:!0,set:function(){},get:function(){var e=this[E];return e&&e.values[n]}}))):f(e).add(n)),this},Ember.isWatching=function(e,t){var n=e[E];return(n&&n.watching[t])>0},Ember.watch.flushPending=u,Ember.unwatch=function(e,n){if(n==="length"&&Ember.typeOf(e)==="array")return this;var r=m(e),i=r.watching,s;return i[n]===1?(i[n]=0,t(n)?(s=r.descs[n],s&&s.didUnwatch&&s.didUnwatch(e,n),"function"==typeof e.didUnwatchProperty&&e.didUnwatchProperty(n),C&&n in e&&(k(e,n,{configurable:!0,enumerable:!0,writable:!0,value:r.values[n]}),delete r.values[n])):f(e).remove(n)):i[n]>1&&i[n]--,this},Ember.rewatch=function(e){var t=m(e,!1),n=t.chains;return w in e&&!e.hasOwnProperty(w)&&Ember.generateGuid(e,"ember"),n&&n.value()!==e&&(t.chains=n.copy(e)),this},Ember.finishChains=function(e){var t=m(e,!1),n=t.chains;n&&(n.value()!==e&&(t.chains=n=n.copy(e)),n.didChange(!0))},Ember.propertyWillChange=p,Ember.propertyDidChange=d;var P=[];Ember.destroy=function(e){var t=e[E],n,r,i,s;if(t){e[E]=null,n=t.chains;if(n){P.push(n);while(P.length>0){n=P.pop(),r=n._chains;if(r)for(i in r)r.hasOwnProperty(i)&&P.push(r[i]);n._watching&&(s=n._object,s&&o(s,n._key,n))}}}}}(),function(){function e(e,t,n){var r=t[n];return r?r.__emberproto__!==e&&(r=t[n]=f(r),r.__emberproto__=e):r=t[n]={__emberproto__:e},r}function t(e,t){var n=t.deps;return n?n.__emberproto__!==e&&(n=t.deps=f(n),n.__emberproto__=e):n=t.deps={__emberproto__:e},n}function n(n,r,i,s){var o=n._dependentKeys,u,a,f,l,h;if(!o)return;u=t(r,s);for(a=0,f=o.length;a<f;a++)l=o[a],h=e(r,u,l),h[i]=(h[i]||0)+1,c(r,l)}function r(n,r,i,s){var o=n._dependentKeys,u,a,f,l,c;if(!o)return;u=t(r,s);for(a=0,f=o.length;a<f;a++)l=o[a],c=e(r,u,l),c[i]=(c[i]||0)-1,h(r,l)}function i(e,t){this.func=e,this._cacheable=t&&t.cacheable!==undefined?t.cacheable:!0,this._dependentKeys=t&&t.dependentKeys}var s=Ember.get,o=Ember.meta,u=Ember.guidFor,a=[].slice,f=Ember.create,l=Ember.META_KEY,c=Ember.watch,h=Ember.unwatch;Ember.ComputedProperty=i,i.prototype=new Ember.Descriptor;var p=i.prototype;p.cacheable=function(e){return this._cacheable=e!==!1,this},p.volatile=function(){return this.cacheable(!1)},p.property=function(){var e=[];for(var t=0,n=arguments.length;t<n;t++)e.push(arguments[t]);return this._dependentKeys=e,this},p.meta=function(e){return arguments.length===0?this._meta||{}:(this._meta=e,this)},p.willWatch=function(e,t){var r=e[l];t in r.cache||n(this,e,t,r)},p.didUnwatch=function(e,t){var n=e[l];t in n.cache||r(this,e,t,n)},p.didChange=function(e,t){if(this._cacheable&&this._suspended!==e){var n=o(e);t in n.cache&&(delete n.cache[t],n.watching[t]||r(this,e,t,n))}},p.get=function(e,t){var r,i,s;if(this._cacheable){s=o(e),i=s.cache;if(t in i)return i[t];r=i[t]=this.func.call(e,t),s.watching[t]||n(this,e,t,s)}else r=this.func.call(e,t);return r},p.set=function(e,t,r){var i=this._cacheable,s=o(e,i),u=s.watching[t],a=this._suspended,f=!1,l;this._suspended=e;try{l=this.func.call(e,t,r);if(i&&t in s.cache){if(s.cache[t]===l)return;f=!0}u&&Ember.propertyWillChange(e,t),i&&f&&delete s.cache[t],i&&(!u&&!f&&n(this,e,t,s),s.cache[t]=l),u&&Ember.propertyDidChange(e,t)}finally{this._suspended=a}return l},p.setup=function(e,t){var r=e[l];r&&r.watching[t]&&n(this,e,t,o(e))},p.teardown=function(e,t){var n=o(e);return(n.watching[t]||t in n.cache)&&r(this,e,t,n),this._cacheable&&delete n.cache[t],null},Ember.computed=function(e){var t;arguments.length>1&&(t=a.call(arguments,0,-1),e=a.call(arguments,-1)[0]);var n=new i(e);return t&&n.property.apply(n,t),n},Ember.cacheFor=function(e,t){var n=o(e,!1).cache;if(n&&t in n)return n[t]},Ember.computed.not=function(e){return Ember.computed(e,function(t){return!s(this,e)})},Ember.computed.empty=function(e){return Ember.computed(e,function(t){var n=s(this,e);return n===undefined||n===null||n===""||Ember.isArray(n)&&s(n,"length")===0})},Ember.computed.bool=function(e){return Ember.computed(e,function(t){return!!s(this,e)})}}(),function(){function e(e,t,n,r){return v(e,["listeners",t,m(n)],r)}function t(e,t){var n=d(e,!1).listeners;return n?n[t]||!1:!1}function n(e,n,r,i){var s=t(e,n);if(!s)return!1;for(var o in s){if(y[o])continue;var u=s[o];if(u)for(var a in u){if(y[a])continue;var f=u[a];if(f&&r(f,i,e)===!0)return!0}}return!1}function r(e,t,n){var r=e.method,i=e.target;i||(i=n),"string"==typeof r&&(r=i[r]),t?r.apply(i,t):r.apply(i)}function i(t,n,r,i,s){!i&&"function"==typeof r&&(i=r,r=null);var o=e(t,n,r,!0),u=s||m(i);o[u]||(o[u]={target:r,method:i}),"function"==typeof t.didAddListener&&t.didAddListener(n,r,i)}function s(t,r,i,s){function o(n,i){var s=e(t,r,n,!0),o=m(i);s&&s[o]&&(s[o]=null),"function"==typeof t.didRemoveListener&&t.didRemoveListener(r,n,i)}!s&&"function"==typeof i&&(s=i,i=null),s?o(i,s):n(t,r,function(e){o(e.target,e.method)})}function o(t,n,r,i,s){!i&&"function"==typeof r&&(i=r,r=null);var o=e(t,n,r,!0),u=m(i),a=o&&o[u];o[u]=null;try{return s.call(r)}finally{o[u]=a}}function u(t,n,r,i,s){!i&&"function"==typeof r&&(i=r,r=null);var o=[],u=[],a,f,l,c,h,p;for(h=0,p=n.length;h<p;h++)a=n[h],f=e(t,a,r,!0),l=m(i),o.push(f&&f[l]),u.push(f),f[l]=null;try{return s.call(r)}finally{for(h=0,p=o.length;h<p;h++)a=n[h],u[h][l]=o[h]}}function a(e){var t=d(e,!1).listeners,n=[];if(t)for(var r in t)!y[r]&&t[r]&&n.push(r);return n}function f(e,t,i){return e!==Ember&&"function"==typeof e.sendEvent&&e.sendEvent(t,i),n(e,t,r,i),!0}function l(e,t,i){var s=[];return n(e,t,function(e){s.push(e)}),function(){if(e.isDestroyed)return;e!==Ember&&"function"==typeof e.sendEvent&&e.sendEvent(t,i);for(var n=0,o=s.length;n<o;++n)r(s[n],i,e)}}function c(e,t){if(n(e,t,function(){return!0}))return!0;var r=v(e,["listeners"],!0);return r[t]=null,!1}function h(e,t){var r=[];return n(e,t,function(e){r.push([e.target,e.method])}),r}var p=Ember.create,d=Ember.meta,v=Ember.metaPath,m=Ember.guidFor,g=[].slice,y={__ember_source__:!0};Ember.addListener=i,Ember.removeListener=s,Ember._suspendListener=o,Ember._suspendListeners=u,Ember.sendEvent=f,Ember.hasListeners=c,Ember.watchedEvents=a,Ember.listenersFor=h,Ember.deferEvent=l}(),function(){function e(e,t,n,r){return t===undefined&&(t=e,e=undefined),"string"==typeof t&&(t=e[t]),n&&r>0&&(n=n.length>r?o.call(n,r):null),Ember.handleErrors(function(){return t.apply(e||this,n||[])},this)}function t(){c=null,l.currentRunLoop&&l.end()}function n(){p=null;var t=+(new Date),r=-1;for(var i in h){if(!h.hasOwnProperty(i))continue;var s=h[i];if(s&&s.expires)if(t>=s.expires)delete h[i],e(s.target,s.method,s.args,2);else if(r<0||s.expires<r)r=s.expires}r>0&&(p=setTimeout(n,r- +(new Date)))}function r(t,n){n[this.tguid]&&delete n[this.tguid][this.mguid],h[t]&&e(this.target,this.method,this.args),delete h[t]}function i(e,t,n,i){var s=Ember.guidFor(t),o=Ember.guidFor(n),u=l.autorun().onceTimers,a=u[s]&&u[s][o],f;return a&&h[a]?h[a].args=i:(f={target:t,method:n,args:i,tguid:s,mguid:o},a=Ember.guidFor(f),h[a]=f,u[s]||(u[s]={}),u[s][o]=a,l.schedule(e,f,r,a,u)),a}function s(){d=null;for(var t in h){if(!h.hasOwnProperty(t))continue;var n=h[t];n.next&&(delete h[t],e(n.target,n.method,n.args,2))}}var o=[].slice,u=Ember.ArrayPolyfills.forEach,a,f=function(e){this._prev=e||null,this.onceTimers={}};f.prototype={end:function(){this.flush()},prev:function(){return this._prev},schedule:function(e,t,n){var r=this._queues,i;r||(r=this._queues={}),i=r[e],i||(i=r[e]=[]);var s=arguments.length>3?o.call(arguments,3):null;return i.push({target:t,method:n,args:s}),this},flush:function(t){function n(t){e(t.target,t.method,t.args)}var r,i,s,o,f;if(!this._queues)return this;Ember.watch.flushPending();if(t)while(this._queues&&(o=this._queues[t])){this._queues[t]=null;if(t==="sync"){f=Ember.LOG_BINDINGS,f&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges();try{u.call(o,n)}finally{Ember.endPropertyChanges()}f&&Ember.Logger.log("End: Flush Sync Queue")}else u.call(o,n)}else{r=Ember.run.queues,s=r.length,i=0;e:while(i<s){t=r[i],o=this._queues&&this._queues[t],delete this._queues[t];if(o)if(t==="sync"){f=Ember.LOG_BINDINGS,f&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges();try{u.call(o,n)}finally{Ember.endPropertyChanges()}f&&Ember.Logger.log("End: Flush Sync Queue")}else u.call(o,n);for(var l=0;l<=i;l++)if(this._queues&&this._queues[r[l]]){i=l;continue e}i++}}return a=null,this}},Ember.RunLoop=f,Ember.run=function(t,n){var r,i;l.begin();try{if(t||n)r=e(t,n,arguments,2)}finally{l.end()}return r};var l=Ember.run;Ember.run.begin=function(){l.currentRunLoop=new f(l.currentRunLoop)},Ember.run.end=function(){try{l.currentRunLoop.end()}finally{l.currentRunLoop=l.currentRunLoop.prev()}},Ember.run.queues=["sync","actions","destroy","timers"],Ember.run.schedule=function(e,t,n){var r=l.autorun();r.schedule.apply(r,arguments)};var c;Ember.run.hasScheduledTimers=function(){return!!(c||p||d)},Ember.run.cancelTimers=function(){c&&(clearTimeout(c),c=null),p&&(clearTimeout(p),p=null),d&&(clearTimeout(d),d=null),h={}},Ember.run.autorun=function(){return l.currentRunLoop||(l.begin(),c||(c=setTimeout(t,1))),l.currentRunLoop},Ember.run.sync=function(){l.autorun(),l.currentRunLoop.flush("sync")};var h={},p;Ember.run.later=function(e,t){var r,i,s,u,a;return arguments.length===2&&"function"==typeof e?(a=t,t=e,e=undefined,r=[e,t]):(r=o.call(arguments),a=r.pop()),i=+(new Date)+a,s={target:e,method:t,expires:i,args:r},u=Ember.guidFor(s),h[u]=s,l.once(h,n),u},Ember.run.once=function(e,t){return i("actions",e,t,o.call(arguments,2))},Ember.run.scheduleOnce=function(e,t,n,r){return i(e,t,n,o.call(arguments,3))};var d;Ember.run.next=function(e,t){var n,r={target:e,method:t,args:o.call(arguments),next:!0};return n=Ember.guidFor(r),h[n]=r,d||(d=setTimeout(s,1)),n},Ember.run.cancel=function(e){delete h[e]}}(),function(){function e(e,t){return n(s(t)?Ember.lookup:e,t)}function t(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}Ember.LOG_BINDINGS=!!Ember.ENV.LOG_BINDINGS;var n=Ember.get,r=Ember.set,i=Ember.guidFor,s=Ember.isGlobalPath,o=function(e,t){this._direction="fwd",this._from=t,this._to=e,this._directionMap=Ember.Map.create()};o.prototype={copy:function(){var e=new o(this._to,this._from);return this._oneWay&&(e._oneWay=!0),e},from:function(e){return this._from=e,this},to:function(e){return this._to=e,this},oneWay:function(){return this._oneWay=!0,this},toString:function(){var e=this._oneWay?"[oneWay]":"";return"Ember.Binding<"+i(this)+">("+this._from+" -> "+this._to+")"+e},connect:function(t){var n=this._from,r=this._to;return Ember.trySet(t,r,e(t,n)),Ember.addObserver(t,n,this,this.fromDidChange),this._oneWay||Ember.addObserver(t,r,this,this.toDidChange),this._readyToSync=!0,this},disconnect:function(e){var t=!this._oneWay;return Ember.removeObserver(e,this._from,this,this.fromDidChange),t&&Ember.removeObserver(e,this._to,this,this.toDidChange),this._readyToSync=!1,this},fromDidChange:function(e){this._scheduleSync(e,"fwd")},toDidChange:function(e){this._scheduleSync(e,"back")},_scheduleSync:function(e,t){var n=this._directionMap,r=n.get(e);r||(Ember.run.schedule("sync",this,this._sync,e),n.set(e,t)),r==="back"&&t==="fwd"&&n.set(e,"fwd")},_sync:function(t){var r=Ember.LOG_BINDINGS;if(t.isDestroyed||!this._readyToSync)return;var i=this._directionMap,s=i.get(t),o=this._from,u=this._to;i.remove(t);if(s==="fwd"){var a=e(t,this._from);r&&Ember.Logger.log(" ",this.toString(),"->",a,t),this._oneWay?Ember.trySet(t,u,a):Ember._suspendObserver(t,u,this,this.toDidChange,function(){Ember.trySet(t,u,a)})}else if(s==="back"){var f=n(t,this._to);r&&Ember.Logger.log(" ",this.toString(),"<-",f,t),Ember._suspendObserver(t,o,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(o)?Ember.lookup:t,o,f)})}}},t(o,{from:function(){var e=this,t=new e;return t.from.apply(t,arguments)},to:function(){var e=this,t=new e;return t.to.apply(t,arguments)},oneWay:function(e,t){var n=this,r=new n(null,e);return r.oneWay(t)}}),Ember.Binding=o,Ember.bind=function(e,t,n){return(new Ember.Binding(t,n)).connect(e)},Ember.oneWay=function(e,t,n){return(new Ember.Binding(t,n)).oneWay().connect(e)}}(),function(){function e(e){var t=Ember.meta(e,!0),n=t.mixins;return n?n.__emberproto__!==e&&(n=t.mixins=T(n),n.__emberproto__=e):n=t.mixins={__emberproto__:e},n}function t(e,t){return t&&t.length>0&&(e.mixins=y.call(t,function(e){if(e instanceof p)return e;var t=new p;return t.properties=e,t})),e}function n(e){return"function"==typeof e&&e.isMethod!==!1&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function r(e,t,i,s,o){function u(e){delete i[e],delete s[e]}var a=e.length,f,l,c,h,v,m,g,y;for(f=0;f<a;f++){l=e[f];if(l instanceof p){c=C(l);if(t[c])continue;t[c]=l,h=l.properties}else h=l;if(h){y=s.concatenatedProperties||o.concatenatedProperties,h.concatenatedProperties&&(y=y?y.concat(h.concatenatedProperties):h.concatenatedProperties);for(m in h){if(!h.hasOwnProperty(m))continue;v=h[m];if(v instanceof Ember.Descriptor){if(v===d&&i[m])continue;i[m]=v,s[m]=undefined}else{if(n(v)){g=i[m]===undefined&&s[m],g||(g=o[m]),"function"!=typeof g&&(g=null);if(g){var E=v.__ember_observes__,S=v.__ember_observesBefore__;v=Ember.wrap(v,g),v.__ember_observes__=E,v.__ember_observesBefore__=S}}else if(y&&b.call(y,m)>=0||m==="concatenatedProperties"){var x=s[m]||o[m];x?"function"==typeof x.concat?v=x.concat(v):v=Ember.makeArray(x).concat(v):v=Ember.makeArray(v)}i[m]=undefined,s[m]=v}}h.hasOwnProperty("toString")&&(o.toString=h.toString)}else l.mixins&&(r(l.mixins,t,i,s,o),l._without&&w.call(l._without,u))}}function i(e){var t=Ember.meta(e),n=t.required;if(!n||n.__emberproto__!==e)n=t.required=n?T(n):{__ember_count__:0},n.__emberproto__=e;return n}function s(e,t,n,r){if(k.test(t)){var i=r.bindings;i?i.__emberproto__!==e&&(i=r.bindings=T(r.bindings),i.__emberproto__=e):i=r.bindings={__emberproto__:e},i[t]=n}}function o(e,t){var n=t.bindings,r,i,s;if(n){for(r in n)i=r!=="__emberproto__"&&n[r],i&&(s=r.slice(0,-7),i instanceof Ember.Binding?(i=i.copy(),i.to(s)):i=new Ember.Binding(s,i),i.connect(e),e[r]=i);t.bindings={__emberproto__:e}}}function u(e,t){return o(e,t||Ember.meta(e)),e}function a(t,n,o){var a={},f={},l=Ember.meta(t),c=l.required,h,p,m,g,y,b,w;r(n,e(t),a,f,t);for(h in f){if(h==="contructor")continue;if(!f.hasOwnProperty(h))continue;m=a[h],p=f[h];if(m===d)h in t||(c=i(t),c.__ember_count__++,c[h]=!0);else{while(m&&m instanceof v){var E=m.methodName;a[E]||f[E]?(p=f[E],m=a[E]):l.descs[E]?(m=l.descs[E],p=undefined):(m=undefined,p=t[E])}if(m===undefined&&p===undefined)continue;g=t[h];if("function"==typeof g)if(y=g.__ember_observesBefore__){b=y.length;for(w=0;w<b;w++)Ember.removeBeforeObserver(t,y[w],null,h)}else if(y=g.__ember_observes__){b=y.length;for(w=0;w<b;w++)Ember.removeObserver(t,y[w],null,h)}s(t,h,p,l),N(t,h,m,p,l);if("function"==typeof p)if(y=p.__ember_observesBefore__){b=y.length;for(w=0;w<b;w++)Ember.addBeforeObserver(t,y[w],null,h)}else if(y=p.__ember_observes__){b=y.length;for(w=0;w<b;w++)Ember.addObserver(t,y[w],null,h)}c&&c[h]&&(c=i(t),c.__ember_count__--,c[h]=!1)}}o||u(t,l);if(!o&&c&&c.__ember_count__>0){var S=[];for(h in c){if(x[h])continue;S.push(h)}}return t}function f(e,t,n){var r=C(e);if(n[r])return!1;n[r]=!0;if(e===t)return!0;var i=e.mixins,s=i?i.length:0;while(--s>=0)if(f(i[s],t,n))return!0;return!1}function l(e,t,n){if(n[C(t)])return;n[C(t)]=!0;if(t.properties){var r=t.properties;for(
var i in r)r.hasOwnProperty(i)&&(e[i]=!0)}else t.mixins&&w.call(t.mixins,function(t){l(e,t,n)})}function c(e,t,n){var r=e.length;for(var i in t){if(!t.hasOwnProperty||!t.hasOwnProperty(i))continue;var s=t[i];e[r]=i;if(s&&s.toString===m)s[A]=e.join(".");else if(s&&O(s,"isNamespace")){if(n[C(s)])continue;n[C(s)]=!0,c(e,s,n)}}e.length=r}function h(){var e=Ember.Namespace,t=Ember.lookup,n,r;if(e.PROCESSED)return;for(var i in t){if(i==="globalStorage"&&t.StorageList&&t.globalStorage instanceof t.StorageList)continue;if(t.hasOwnProperty&&!t.hasOwnProperty(i))continue;try{n=Ember.lookup[i],r=n&&O(n,"isNamespace")}catch(s){continue}r&&(n[A]=i)}}var p,d,v,m,g,y=Ember.ArrayPolyfills.map,b=Ember.ArrayPolyfills.indexOf,w=Ember.ArrayPolyfills.forEach,E=[].slice,S={},x={__emberproto__:!0,__ember_count__:!0},T=Ember.create,N=Ember.defineProperty,C=Ember.guidFor,k=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(e){var t=E.call(arguments,1);return a(e,t,!1),e},Ember.Mixin=function(){return t(this,arguments)},p=Ember.Mixin,p._apply=a,p.applyPartial=function(e){var t=E.call(arguments,1);return a(e,t,!0)},p.finishPartial=u,p.create=function(){m.processed=!1;var e=this;return t(new e,arguments)};var L=p.prototype;L.reopen=function(){var e,t;this.properties?(e=p.create(),e.properties=this.properties,delete this.properties,this.mixins=[e]):this.mixins||(this.mixins=[]);var n=arguments.length,r=this.mixins,i;for(i=0;i<n;i++)e=arguments[i],e instanceof p?r.push(e):(t=p.create(),t.properties=e,r.push(t));return this},L.apply=function(e){return a(e,[this],!1)},L.applyPartial=function(e){return a(e,[this],!0)},L.detect=function(e){if(!e)return!1;if(e instanceof p)return f(e,this,{});var t=Ember.meta(e,!1).mixins;return t?!!t[C(this)]:!1},L.without=function(){var e=new p(this);return e._without=E.call(arguments),e},L.keys=function(){var e={},t={},n=[];l(e,this,t);for(var r in e)e.hasOwnProperty(r)&&n.push(r);return n};var A=Ember.GUID_KEY+"_name",O=Ember.get;Ember.identifyNamespaces=h,g=function(e){var t=e.superclass;if(t)return t[A]?t[A]:g(t);return},m=function(){var e=Ember.Namespace,t;if(e&&!this[A]&&!m.processed){e.PROCESSED||(h(),e.PROCESSED=!0),m.processed=!0;var n=e.NAMESPACES;for(var r=0,i=n.length;r<i;r++)t=n[r],c([t.toString()],t,{})}if(this[A])return this[A];var s=g(this);return s?"(subclass of "+s+")":"(unknown mixin)"},L.toString=m,p.mixins=function(e){var t=[],n=Ember.meta(e,!1).mixins,r,i;if(n)for(r in n){if(x[r])continue;i=n[r],i.properties||t.push(n[r])}return t},d=new Ember.Descriptor,d.toString=function(){return"(Required Property)"},Ember.required=function(){return d},v=function(e){this.methodName=e},v.prototype=new Ember.Descriptor,Ember.alias=function(e){return new v(e)},Ember.observer=function(e){var t=E.call(arguments,1);return e.__ember_observes__=t,e},Ember.immediateObserver=function(){for(var e=0,t=arguments.length;e<t;e++)var n=arguments[e];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(e){var t=E.call(arguments,1);return e.__ember_observesBefore__=t,e}}(),function(){}(),function(){(function(e){"use strict";var t=typeof window!="undefined"?window:{},n=t.MutationObserver||t.WebKitMutationObserver,r;if(typeof process!="undefined")r=function(e,t){process.nextTick(function(){e.call(t)})};else if(n){var i=[],s=new n(function(){var e=i.slice();i=[],e.forEach(function(e){var t=e[0],n=e[1];t.call(n)})}),o=document.createElement("div");s.observe(o,{attributes:!0}),r=function(e,t){i.push([e,t]),o.setAttribute("drainQueue","drainQueue")}}else r=function(e,t){setTimeout(function(){e.call(t)},1)};e.async=r;var u=e.Event=function(e,t){this.type=e;for(var n in t){if(!t.hasOwnProperty(n))continue;this[n]=t[n]}},a=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n][0]===t)return n;return-1},f=function(e){var t=e._promiseCallbacks;return t||(t=e._promiseCallbacks={}),t},l=e.EventTarget={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,t,n){var r=f(this),i;n=n||this,i=r[e],i||(i=r[e]=[]),a(i,t)===-1&&i.push([t,n])},off:function(e,t){var n=f(this),r;if(!t){n[e]=[];return}r=n[e];var i=a(r,t);i!==-1&&r.splice(i,1)},trigger:function(e,t){var n=f(this),r,i,s,o,a;if(r=n[e])for(var l=0,c=r.length;l<c;l++)i=r[l],s=i[0],o=i[1],typeof t!="object"&&(t={detail:t}),a=new u(e,t),s.call(o,a)}},c=e.Promise=function(){this.on("promise:resolved",function(e){this.trigger("success",{detail:e.detail})},this),this.on("promise:failed",function(e){this.trigger("error",{detail:e.detail})},this)},h=function(){},p=function(e,t,n,r){var i,s;if(n)try{i=n(r.detail)}catch(o){s=o}else i=r.detail;i instanceof c?i.then(function(e){t.resolve(e)},function(e){t.reject(e)}):n&&i?t.resolve(i):s?t.reject(s):t[e](i)};c.prototype={then:function(e,t){var n=new c;return this.on("promise:resolved",function(t){p("resolve",n,e,t)}),this.on("promise:failed",function(e){p("reject",n,t,e)}),n},resolve:function(t){e.async(function(){this.trigger("promise:resolved",{detail:t}),this.isResolved=t},this),this.resolve=h,this.reject=h},reject:function(t){e.async(function(){this.trigger("promise:failed",{detail:t}),this.isRejected=t},this),this.resolve=h,this.reject=h}},l.mixin(c.prototype)})(window.RSVP={})}(),function(){function e(n,r,i,s){var o,u,a;if("object"!=typeof n||n===null)return n;if(r&&(u=t(i,n))>=0)return s[u];if(Ember.typeOf(n)==="array"){o=n.slice();if(r){u=o.length;while(--u>=0)o[u]=e(o[u],r,i,s)}}else if(Ember.Copyable&&Ember.Copyable.detect(n))o=n.copy(r,i,s);else{o={};for(a in n){if(!n.hasOwnProperty(a))continue;o[a]=r?e(n[a],r,i,s):n[a]}}return r&&(i.push(n),s.push(o)),o}var t=Ember.EnumerableUtils.indexOf,n={},r="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(r,function(e){n["[object "+e+"]"]=e.toLowerCase()});var i=Object.prototype.toString;Ember.typeOf=function(e){var t;return t=e===null||e===undefined?String(e):n[i.call(e)]||"object",t==="function"?Ember.Object&&Ember.Object.detect(e)&&(t="class"):t==="object"&&(e instanceof Error?t="error":Ember.Object&&e instanceof Ember.Object?t="instance":t="object"),t},Ember.none=function(e){return e===null||e===undefined},Ember.empty=function(e){return e===null||e===undefined||e.length===0&&typeof e!="function"||typeof e=="object"&&Ember.get(e,"length")===0},Ember.compare=function o(e,t){if(e===t)return 0;var n=Ember.typeOf(e),r=Ember.typeOf(t),i=Ember.Comparable;if(i){if(n==="instance"&&i.detect(e.constructor))return e.constructor.compare(e,t);if(r==="instance"&&i.detect(t.constructor))return 1-t.constructor.compare(t,e)}var s=Ember.ORDER_DEFINITION_MAPPING;if(!s){var u=Ember.ORDER_DEFINITION;s=Ember.ORDER_DEFINITION_MAPPING={};var a,f;for(a=0,f=u.length;a<f;++a)s[u[a]]=a;delete Ember.ORDER_DEFINITION}var l=s[n],c=s[r];if(l<c)return-1;if(l>c)return 1;switch(n){case"boolean":case"number":if(e<t)return-1;if(e>t)return 1;return 0;case"string":var h=e.localeCompare(t);if(h<0)return-1;if(h>0)return 1;return 0;case"array":var p=e.length,d=t.length,v=Math.min(p,d),m=0,g=0;while(m===0&&g<v)m=o(e[g],t[g]),g++;if(m!==0)return m;if(p<d)return-1;if(p>d)return 1;return 0;case"instance":if(Ember.Comparable&&Ember.Comparable.detect(e))return e.compare(e,t);return 0;case"date":var y=e.getTime(),b=t.getTime();if(y<b)return-1;if(y>b)return 1;return 0;default:return 0}},Ember.copy=function(t,n){return"object"!=typeof t||t===null?t:Ember.Copyable&&Ember.Copyable.detect(t)?t.copy(n):e(t,n,n?[]:null,n?[]:null)},Ember.inspect=function(e){var t,n=[];for(var r in e)if(e.hasOwnProperty(r)){t=e[r];if(t==="toString")continue;Ember.typeOf(t)==="function"&&(t="function() { ... }"),n.push(r+": "+t)}return"{"+n.join(" , ")+"}"},Ember.isEqual=function(e,t){return e&&"function"==typeof e.isEqual?e.isEqual(t):e===t},Ember.ORDER_DEFINITION=Ember.ENV.ORDER_DEFINITION||["undefined","null","boolean","number","string","array","object","instance","function","class","date"],Ember.keys=Object.keys,Ember.keys||(Ember.keys=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t});var s=["description","fileName","lineNumber","message","name","number","stack"];Ember.Error=function(){var e=Error.prototype.constructor.apply(this,arguments);for(var t=0;t<s.length;t++)this[s[t]]=e[s[t]]},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){var e=/[ _]/g,t={},n=/([a-z])([A-Z])/g,r=/(\-|_|\s)+(.)?/g,i=/([a-z\d])([A-Z]+)/g,s=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(e,t){var n=0;return e.replace(/%@([0-9]+)?/g,function(e,r){return r=r?parseInt(r,0)-1:n++,e=t[r],(e===null?"(null)":e===undefined?"":e).toString()})},loc:function(e,t){return e=Ember.STRINGS[e]||e,Ember.String.fmt(e,t)},w:function(e){return e.split(/\s+/)},decamelize:function(e){return e.replace(n,"$1_$2").toLowerCase()},dasherize:function(n){var r=t,i=r[n];return i?i:(i=Ember.String.decamelize(n).replace(e,"-"),r[n]=i,i)},camelize:function(e){return e.replace(r,function(e,t,n){return n?n.toUpperCase():""})},classify:function(e){var t=Ember.String.camelize(e);return t.charAt(0).toUpperCase()+t.substr(1)},underscore:function(e){return e.replace(i,"$1_$2").replace(s,"_").toLowerCase()}}}(),function(){var e=Ember.String.fmt,t=Ember.String.w,n=Ember.String.loc,r=Ember.String.camelize,i=Ember.String.decamelize,s=Ember.String.dasherize,o=Ember.String.underscore,u=Ember.String.classify;if(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.String)String.prototype.fmt=function(){return e(this,arguments)},String.prototype.w=function(){return t(this)},String.prototype.loc=function(){return n(this,arguments)},String.prototype.camelize=function(){return r(this)},String.prototype.decamelize=function(){return i(this)},String.prototype.dasherize=function(){return s(this)},String.prototype.underscore=function(){return o(this)},String.prototype.classify=function(){return u(this)}}(),function(){var e=Array.prototype.slice;if(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.Function)Function.prototype.property=function(){var e=Ember.computed(this);return e.property.apply(e,arguments)},Function.prototype.observes=function(){return this.__ember_observes__=e.call(arguments),this},Function.prototype.observesBefore=function(){return this.__ember_observesBefore__=e.call(arguments),this}}(),function(){}(),function(){function e(){return u.length===0?{}:u.pop()}function t(e){return u.push(e),null}function n(e,t){function n(n){var s=r(n,e);return i?t===s:!!s}var i=arguments.length===2;return n}var r=Ember.get,i=Ember.set,s=Array.prototype.slice,o=Ember.EnumerableUtils.indexOf,u=[];Ember.Enumerable=Ember.Mixin.create({isEnumerable:!0,nextObject:Ember.required(Function),firstObject:Ember.computed(function(){if(r(this,"length")===0)return undefined;var n=e(),i;return i=this.nextObject(0,null,n),t(n),i}).property("[]"),lastObject:Ember.computed(function(){var n=r(this,"length");if(n===0)return undefined;var i=e(),s=0,o,u=null;do u=o,o=this.nextObject(s++,u,i);while(o!==undefined);return t(i),u}).property("[]"),contains:function(e){return this.find(function(t){return t===e})!==undefined},forEach:function(n,i){if(typeof n!="function")throw new TypeError;var s=r(this,"length"),o=null,u=e();i===undefined&&(i=null);for(var a=0;a<s;a++){var f=this.nextObject(a,o,u);n.call(i,f,a,this),o=f}return o=null,u=t(u),this},getEach:function(e){return this.mapProperty(e)},setEach:function(e,t){return this.forEach(function(n){i(n,e,t)})},map:function(e,t){var n=[];return this.forEach(function(r,i,s){n[i]=e.call(t,r,i,s)}),n},mapProperty:function(e){return this.map(function(t){return r(t,e)})},filter:function(e,t){var n=[];return this.forEach(function(r,i,s){e.call(t,r,i,s)&&n.push(r)}),n},filterProperty:function(e,t){return this.filter(n.apply(this,arguments))},find:function(n,i){var s=r(this,"length");i===undefined&&(i=null);var o=null,u,a=!1,f,l=e();for(var c=0;c<s&&!a;c++){u=this.nextObject(c,o,l);if(a=n.call(i,u,c,this))f=u;o=u}return u=o=null,l=t(l),f},findProperty:function(e,t){return this.find(n.apply(this,arguments))},every:function(e,t){return!this.find(function(n,r,i){return!e.call(t,n,r,i)})},everyProperty:function(e,t){return this.every(n.apply(this,arguments))},some:function(e,t){return!!this.find(function(n,r,i){return!!e.call(t,n,r,i)})},someProperty:function(e,t){return this.some(n.apply(this,arguments))},reduce:function(e,t,n){if(typeof e!="function")throw new TypeError;var r=t;return this.forEach(function(t,i){r=e.call(null,r,t,i,this,n)},this),r},invoke:function(e){var t,n=[];return arguments.length>1&&(t=s.call(arguments,1)),this.forEach(function(r,i){var s=r&&r[e];"function"==typeof s&&(n[i]=t?s.apply(r,t):s.call(r))},this),n},toArray:function(){var e=[];return this.forEach(function(t,n){e[n]=t}),e},compact:function(){return this.without(null)},without:function(e){if(!this.contains(e))return this;var t=[];return this.forEach(function(n){n!==e&&(t[t.length]=n)}),t},uniq:function(){var e=[];return this.forEach(function(t){o(e,t)<0&&e.push(t)}),e},"[]":Ember.computed(function(e,t){return this}).property(),addEnumerableObserver:function(e,t){var n=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",s=r(this,"hasEnumerableObservers");return s||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",e,n),Ember.addListener(this,"@enumerable:change",e,i),s||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(e,t){var n=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",s=r(this,"hasEnumerableObservers");return s&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",e,n),Ember.removeListener(this,"@enumerable:change",e,i),s&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}).property(),enumerableContentWillChange:function(e,t){var n,i,s;return"number"==typeof e?n=e:e?n=r(e,"length"):n=e=-1,"number"==typeof t?i=t:t?i=r(t,"length"):i=t=-1,s=i<0||n<0||i-n!==0,e===-1&&(e=null),t===-1&&(t=null),Ember.propertyWillChange(this,"[]"),s&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,e,t]),this},enumerableContentDidChange:function(e,t){var n=this.propertyDidChange,i,s,o;return"number"==typeof e?i=e:e?i=r(e,"length"):i=e=-1,"number"==typeof t?s=t:t?s=r(t,"length"):s=t=-1,o=s<0||i<0||s-i!==0,e===-1&&(e=null),t===-1&&(t=null),Ember.sendEvent(this,"@enumerable:change",[this,e,t]),o&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){function e(e){return e===null||e===undefined}var t=Ember.get,n=Ember.set,r=Ember.meta,i=Ember.EnumerableUtils.map,s=Ember.cacheFor;Ember.Array=Ember.Mixin.create(Ember.Enumerable,{isSCArray:!0,length:Ember.required(),objectAt:function(e){return e<0||e>=t(this,"length")?undefined:t(this,e)},objectsAt:function(e){var t=this;return i(e,function(e){return t.objectAt(e)})},nextObject:function(e){return this.objectAt(e)},"[]":Ember.computed(function(e,n){return n!==undefined&&this.replace(0,t(this,"length"),n),this}).property(),firstObject:Ember.computed(function(){return this.objectAt(0)}).property(),lastObject:Ember.computed(function(){return this.objectAt(t(this,"length")-1)}).property(),contains:function(e){return this.indexOf(e)>=0},slice:function(n,r){var i=[],s=t(this,"length");e(n)&&(n=0);if(e(r)||r>s)r=s;while(n<r)i[i.length]=this.objectAt(n++);return i},indexOf:function(e,n){var r,i=t(this,"length");n===undefined&&(n=0),n<0&&(n+=i);for(r=n;r<i;r++)if(this.objectAt(r,!0)===e)return r;return-1},lastIndexOf:function(e,n){var r,i=t(this,"length");if(n===undefined||n>=i)n=i-1;n<0&&(n+=i);for(r=n;r>=0;r--)if(this.objectAt(r)===e)return r;return-1},addArrayObserver:function(e,n){var r=n&&n.willChange||"arrayWillChange",i=n&&n.didChange||"arrayDidChange",s=t(this,"hasArrayObservers");return s||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",e,r),Ember.addListener(this,"@array:change",e,i),s||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(e,n){var r=n&&n.willChange||"arrayWillChange",i=n&&n.didChange||"arrayDidChange",s=t(this,"hasArrayObservers");return s&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",e,r),Ember.removeListener(this,"@array:change",e,i),s&&Ember.propertyDidChange(this,"hasArrayObservers"),this},hasArrayObservers:Ember.computed(function(){return Ember.hasListeners(this,"@array:change")||Ember.hasListeners(this,"@array:before")}).property(),arrayContentWillChange:function(e,n,r){e===undefined?(e=0,n=r=-1):(n===undefined&&(n=-1),r===undefined&&(r=-1)),Ember.isWatching(this,"@each")&&t(this,"@each"),Ember.sendEvent(this,"@array:before",[this,e,n,r]);var i,s;if(e>=0&&n>=0&&t(this,"hasEnumerableObservers")){i=[],s=e+n;for(var o=e;o<s;o++)i.push(this.objectAt(o))}else i=n;return this.enumerableContentWillChange(i,r),this},arrayContentDidChange:function(e,n,r){e===undefined?(e=0,n=r=-1):(n===undefined&&(n=-1),r===undefined&&(r=-1));var i,o;if(e>=0&&r>=0&&t(this,"hasEnumerableObservers")){i=[],o=e+r;for(var u=e;u<o;u++)i.push(this.objectAt(u))}else i=r;this.enumerableContentDidChange(n,i),Ember.sendEvent(this,"@array:change",[this,e,n,r]);var a=t(this,"length"),f=s(this,"firstObject"),l=s(this,"lastObject");return this.objectAt(0)!==f&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(a-1)!==l&&(Ember.propertyWillChange(this,"lastObject"),Ember.propertyDidChange(this,"lastObject")),this},"@each":Ember.computed(function(){return this.__each||(this.__each=new Ember.EachProxy(this)),this.__each}).property()})}(),function(){Ember.Comparable=Ember.Mixin.create({isComparable:!0,compare:Ember.required(Function)})}(),function(){var e=Ember.get,t=Ember.set;Ember.Copyable=Ember.Mixin.create({copy:Ember.required(Function),frozenCopy:function(){if(Ember.Freezable&&Ember.Freezable.detect(this))return e(this,"isFrozen")?this:this.copy().freeze();throw new Error(Ember.String.fmt("%@ does not support freezing",[this]))}})}(),function(){var e=Ember.get,t=Ember.set;Ember.Freezable=Ember.Mixin.create({isFrozen:!1,freeze:function(){return e(this,"isFrozen")?this:(t(this,"isFrozen",!0),this)}}),Ember.FROZEN_ERROR="Frozen object cannot be modified."}(),function(){var e=Ember.EnumerableUtils.forEach;Ember.MutableEnumerable=Ember.Mixin.create(Ember.Enumerable,{addObject:Ember.required(Function),addObjects:function(t){return Ember.beginPropertyChanges(this),e(t,function(e){this.addObject(e)},this),Ember.endPropertyChanges(this),this},removeObject:Ember.required(Function),removeObjects:function(t){return Ember.beginPropertyChanges(this),e(t,function(e){this.removeObject(e)},this),Ember.endPropertyChanges(this),this}})}(),function(){var e="Index out of range",t=[],n=Ember.get,r=Ember.set,i=Ember.EnumerableUtils.forEach;Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var e=n(this,"length");return e===0?this:(this.replace(0,e,t),this)},insertAt:function(t,r){if(t>n(this,"length"))throw new Error(e);return this.replace(t,0,[r]),this},removeAt:function(r,i){if("number"==typeof r){if(r<0||r>=n(this,"length"))throw new Error(e);i===undefined&&(i=1),this.replace(r,i,t)}return this},pushObject:function(e){return this.insertAt(n(this,"length"),e),e},pushObjects:function(e){return this.replace(n(this,"length"),0,e),this},popObject:function(){var e=n(this,"length");if(e===0)return null;var t=this.objectAt(e-1);return this.removeAt(e-1,1),t},shiftObject:function(){if(n(this,"length")===0)return null;var e=this.objectAt(0);return this.removeAt(0),e},unshiftObject:function(e){return this.insertAt(0,e),e},unshiftObjects:function(e){return this.replace(0,0,e),this},reverseObjects:function(){var e=n(this,"length");if(e===0)return this;var t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects:function(e){if(e.length===0)return this.clear();var t=n(this,"length");return this.replace(0,t,e),this},removeObject:function(e){var t=n(this,"length")||0;while(--t>=0){var r=this.objectAt(t);r===e&&this.removeAt(t)}return this},addObject:function(e){return this.contains(e)||this.pushObject(e),this}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.defineProperty;Ember.Observable=Ember.Mixin.create({isObserverable:!0,get:function(t){return e(this,t)},getProperties:function(){var t={},n=arguments;arguments.length===1&&Ember.typeOf(arguments[0])==="array"&&(n=arguments[0]);for(var r=0;r<n.length;r++)t[n[r]]=e(this,n[r]);return t},set:function(e,n){return t(this,e,n),this},setProperties:function(e){return Ember.setProperties(this,e)},beginPropertyChanges:function(){return Ember.beginPropertyChanges(),this},endPropertyChanges:function(){return Ember.endPropertyChanges(),this},propertyWillChange:function(e){return Ember.propertyWillChange(this,e),this},propertyDidChange:function(e){return Ember.propertyDidChange(this,e),this},notifyPropertyChange:function(e){return this.propertyWillChange(e),this.propertyDidChange(e),this},addBeforeObserver:function(e,t,n){Ember.addBeforeObserver(this,e,t,n)},addObserver:function(e,t,n){Ember.addObserver(this,e,t,n)},removeObserver:function(e,t,n){Ember.removeObserver(this,e,t,n)},hasObserverFor:function(e){return Ember.hasListeners(this,e+":change")},unknownProperty:function(e){return undefined},setUnknownProperty:function(e,r){n(this,e),t(this,e,r)},getPath:function(e){return this.get(e)},setPath:function(e,t){return this.set(e,t)},getWithDefault:function(e,t){return Ember.getWithDefault(this,e,t)},incrementProperty:function(n,r){return r||(r=1),t(this,n,(e(this,n)||0)+r),e(this,n)},decrementProperty:function(n,r){return r||(r=1),t(this,n,(e(this,n)||0)-r),e(this,n)},toggleProperty:function(n){return t(this,n,!e(this,n)),e(this,n)},cacheFor:function(e){return Ember.cacheFor(this,e)},observersForKey:function(e){return Ember.observersFor(this,e)}})}(),function(){var e=Ember.get,t=Ember.set;Ember.TargetActionSupport=Ember.Mixin.create({target:null,action:null,targetObject:Ember.computed(function(){var t=e(this,"target");if(Ember.typeOf(t)==="string"){var n=e(this,t);return n===undefined&&(n=e(Ember.lookup,t)),n}return t}).property("target"),triggerAction:function(){var t=e(this,"action"),n=e(this,"targetObject");if(n&&t){var r;return typeof n.send=="function"?r=n.send(t,this):(typeof t=="string"&&(t=n[t]),r=t.call(n,this)),r!==!1&&(r=!0),r}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(e,t,n){Ember.addListener(this,e,t,n)},one:function(e,t,n){n||(n=t,t=null);var r=this,i=function(){Ember.removeListener(r,e,t,n),"string"==typeof n&&(n=this[n]),n.apply(this,arguments)};Ember.addListener(this,e,t,i,Ember.guidFor(n))},trigger:function(e){var t=[],n,r;for(n=1,r=arguments.length;n<r;n++)t.push(arguments[n]);Ember.sendEvent(this,e,t)},fire:function(e){this.trigger.apply(this,arguments)},off:function(e,t,n){Ember.removeListener(this,e,t,n)},has:function(e){return Ember.hasListeners(this,e)}})}(),function(){var e=Ember.get,t=Array.prototype.slice;Ember.Deferred=Ember.Mixin.create({then:function(t,n){return e(this,"promise").then(t,n)},resolve:function(t){e(this,"promise").resolve(t)},reject:function(t){e(this,"promise").reject(t)},promise:Ember.computed(function(){return new RSVP.Promise})})}(),function(){}(),function(){function e(){var e=!1,t,n=function(){e||n.proto(),i(this,o,b),i(this,"_super",b);var r=f(this);r.proto=this,t&&(this.reopen.apply(this,t),t=null),m(this,r),delete r.proto,c(this),this.init.apply(this,arguments)};return n.toString=y,n.willReopen=function(){e&&(n.PrototypeMixin=d.create(n.PrototypeMixin)),e=!1},n._initMixins=function(e){t=e},n.proto=function(){var t=n.superclass;return t&&t.proto(),e||(e=!0,n.PrototypeMixin.applyPartial(n.prototype),l(n.prototype)),this.prototype},n}var t=Ember.set,n=Ember.get,r=Ember.create,i=Ember.platform.defineProperty,s=Array.prototype.slice,o=Ember.GUID_KEY,u=Ember.guidFor,a=Ember.generateGuid,f=Ember.meta,l=Ember.rewatch,c=Ember.finishChains,h=Ember.destroy,p=Ember.run.schedule,d=Ember.Mixin,v=d._apply,m=d.finishPartial,g=d.prototype.reopen,y=d.prototype.toString,b={configurable:!0,writable:!0,enumerable:!1,value:undefined},w=e();w.PrototypeMixin=d.create({reopen:function(){return v(this,arguments,!0),this},isInstance:!0,init:function(){},isDestroyed:!1,isDestroying:!1,destroy:function(){if(this.isDestroying)return;return this.isDestroying=!0,this.willDestroy&&this.willDestroy(),t(this,"isDestroyed",!0),p("destroy",this,this._scheduledDestroy),this},_scheduledDestroy:function(){h(this),this.didDestroy&&this.didDestroy()},bind:function(e,t){return t instanceof Ember.Binding||(t=Ember.Binding.from(t)),t.to(e).connect(this),t},toString:function(){return"<"+this.constructor.toString()+":"+u(this)+">"}}),Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(w.PrototypeMixin),w.__super__=null;var E=d.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var t=e(),n;return t.ClassMixin=d.create(this.ClassMixin),t.PrototypeMixin=d.create(this.PrototypeMixin),t.ClassMixin.ownerConstructor=t,t.PrototypeMixin.ownerConstructor=t,g.apply(t.PrototypeMixin,arguments),t.superclass=this,t.__super__=this.prototype,n=t.prototype=r(this.prototype),n.constructor=t,a(n,"ember"),f(n).proto=n,t.ClassMixin.apply(t),t},create:function(){var e=this;return arguments.length>0&&this._initMixins(arguments),new e},reopen:function(){return this.willReopen(),g.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return g.apply(this.ClassMixin,arguments),v(this,arguments,!1),this},detect:function(e){if("function"!=typeof e)return!1;while(e){if(e===this)return!0;e=e.superclass}return!1},detectInstance:function(e){return e instanceof this},metaForProperty:function(e){var t=f(this.proto(),!1).descs[e];return t._meta||{}},eachComputedProperty:function(e,t){var n=this.proto(),r=f(n).descs,i={},s;for(var o in r)s=r[o],s instanceof Ember.ComputedProperty&&e.call(t||this,o,s._meta||i)}});Ember.config.overrideClassMixin&&Ember.config.overrideClassMixin(E),w.ClassMixin=E,E.apply(w),Ember.CoreObject=w}(),function(){var e=Ember.get,t=Ember.set,n=Ember.guidFor,r=Ember.none;Ember.Set=Ember.CoreObject.extend(Ember.MutableEnumerable,Ember.Copyable,Ember.Freezable,{length:0,clear:function(){if(this.isFrozen)throw new Error(Ember.FROZEN_ERROR);var r=e(this,"length");if(r===0)return this;var i;this.enumerableContentWillChange(r,0),Ember.propertyWillChange(this,"firstObject"),Ember.propertyWillChange(this,"lastObject");for(var s=0;s<r;s++)i=n(this[s]),delete this[i],delete this[s];return t(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(r,0),this},isEqual:function(t){if(!Ember.Enumerable.detect(t))return!1;var n=e(this,"length");if(e(t,"length")!==n)return!1;while(--n>=0)if(!t.contains(this[n]))return!1;return!0},add:Ember.alias("addObject"),remove:Ember.alias("removeObject"),pop:function(){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);var t=this.length>0?this[this.length-1]:null;return this.remove(t),t},push:Ember.alias("addObject"),shift:Ember.alias("pop"),unshift:Ember.alias("push"),addEach:Ember.alias("addObjects"),removeEach:Ember.alias("removeObjects"),init:function(e){this._super(),e&&this.addObjects(e)},nextObject:function(e){return this[e]},firstObject:Ember.computed(function(){return this.length>0?this[0]:undefined}).property(),lastObject:Ember.computed(function(){return this.length>0?this[this.length-1]:undefined}).property(),addObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(r(i))return this;var s=n(i),o=this[s],u=e(this,"length"),a;return o>=0&&o<u&&this[o]===i?this:(a=[i],this.enumerableContentWillChange(null,a),Ember.propertyWillChange(this,"lastObject"),u=e(this,"length"),this[s]=u,this[u]=i,t(this,"length",u+1),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(null,a),this)},removeObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(r(i))return this;var s=n(i),o=this[s],u=e(this,"length"),a=o===0,f=o===u-1,l,c;return o>=0&&o<u&&this[o]===i&&(c=[i],this.enumerableContentWillChange(c,null),a&&Ember.propertyWillChange(this,"firstObject"),f&&Ember.propertyWillChange(this,"lastObject"),o<u-1&&(l=this[u-1],this[o]=l,this[n(l)]=o),delete this[s],delete this[u-1],t(this,"length",u-1),a&&Ember.propertyDidChange(this,"firstObject"),f&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(c,null)),this},contains:function(e){return this[n(e)]>=0},copy:function(){var r=this.constructor,i=new r,s=e(this,"length");t(i,"length",s);while(--s>=0)i[s]=this[s],i[n(this[s])]=s;return i},toString:function(){var e=this.length,t,n=[];for(t=0;t<e;t++)n[t]=this[t];return"Ember.Set<%@>".fmt(n.join(","))}})}(),function(){Ember.Object=Ember.CoreObject.extend(Ember.Observable)}(),function(){var e=Ember.ArrayPolyfills.indexOf;Ember.Namespace=Ember.Object.extend({isNamespace:!0,init:function(){Ember.Namespace.NAMESPACES.push(this),Ember.Namespace.PROCESSED=!1},toString:function(){return Ember.identifyNamespaces(),this[Ember.GUID_KEY+"_name"]},destroy:function(){var t=Ember.Namespace.NAMESPACES;Ember.lookup[this.toString()]=undefined,t.splice(e.call(t,this),1),this._super()}}),Ember.Namespace.NAMESPACES=[Ember],Ember.Namespace.PROCESSED=!1}(),function(){Ember.Application=Ember.Namespace.extend()}(),function(){var e=Ember.get,t=Ember.set;Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed("content",function(){return e(this,"content")}),objectAtContent:function(t){return e(this,"arrangedContent").objectAt(t)},replaceContent:function(t,n,r){e(this,"arrangedContent").replace(t,n,r)},_contentWillChange:Ember.beforeObserver(function(){this._teardownContent()},"content"),_teardownContent:function(){var t=e(this,"content");t&&t.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){var t=e(this,"content");this._setupContent()},"content"),_setupContent:function(){var t=e(this,"content");t&&t.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},_arrangedContentWillChange:Ember.beforeObserver(function(){var t=e(this,"arrangedContent"),n=t?e(t,"length"):0;this.arrangedContentArrayWillChange(this,0,n,undefined),this.arrangedContentWillChange(this),this._teardownArrangedContent(t)},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var t=e(this,"arrangedContent"),n=t?e(t,"length"):0;this._setupArrangedContent(),this.arrangedContentDidChange(this),this.arrangedContentArrayDidChange(this,0,undefined,n)},"arrangedContent"),_setupArrangedContent:function(){var t=e(this,"arrangedContent");t&&t.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},_teardownArrangedContent:function(){var t=e(this,"arrangedContent");t&&t.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},arrangedContentWillChange:Ember.K,arrangedContentDidChange:Ember.K,objectAt:function(t){return e(this,"content")&&this.objectAtContent(t)},length:Ember.computed(function(){var t=e(this,"arrangedContent");return t?e(t,"length"):0}).property(),replace:function(t,n,r){return e(this,"content")&&this.replaceContent(t,n,r),this},arrangedContentArrayWillChange:function(e,t,n,r){this.arrayContentWillChange(t,n,r)},arrangedContentArrayDidChange:function(e,t,n,r){this.arrayContentDidChange(t,n,r)},init:function(){this._super(),this._setupContent(),this._setupArrangedContent()},willDestroy:function(){this._teardownArrangedContent(),this._teardownContent()}})}(),function(){function e(e,t){var n=t.slice(8);if(n in this)return;f(this,n)}function t(e,t){var n=t.slice(8);if(n in this)return;l(this,n)}var n=Ember.get,r=Ember.set,i=Ember.String.fmt,s=Ember.addBeforeObserver,o=Ember.addObserver,u=Ember.removeBeforeObserver,a=Ember.removeObserver,f=Ember.propertyWillChange,l=Ember.propertyDidChange;Ember.ObjectProxy=Ember.Object.extend({content:null,_contentDidChange:Ember.observer(function(){},"content"),willWatchProperty:function(n){var r="content."+n;s(this,r,null,e),o(this,r,null,t)},didUnwatchProperty:function(n){var r="content."+n;u(this,r,null,e),a(this,r,null,t)},unknownProperty:function(e){var t=n(this,"content"
);if(t)return n(t,e)},setUnknownProperty:function(e,t){var i=n(this,"content");return r(i,e,t)}})}(),function(){function e(e,t,n,r,s){var o=n._objects,u;o||(o=n._objects={});while(--s>=r){var a=e.objectAt(s);a&&(Ember.addBeforeObserver(a,t,n,"contentKeyWillChange"),Ember.addObserver(a,t,n,"contentKeyDidChange"),u=i(a),o[u]||(o[u]=[]),o[u].push(s))}}function t(e,t,n,r,s){var o=n._objects;o||(o=n._objects={});var u,a;while(--s>=r){var f=e.objectAt(s);f&&(Ember.removeBeforeObserver(f,t,n,"contentKeyWillChange"),Ember.removeObserver(f,t,n,"contentKeyDidChange"),a=i(f),u=o[a],u[u.indexOf(s)]=null)}}var n=Ember.set,r=Ember.get,i=Ember.guidFor,s=Ember.EnumerableUtils.forEach,o=Ember.Object.extend(Ember.Array,{init:function(e,t,n){this._super(),this._keyName=t,this._owner=n,this._content=e},objectAt:function(e){var t=this._content.objectAt(e);return t&&r(t,this._keyName)},length:Ember.computed(function(){var e=this._content;return e?r(e,"length"):0}).property()}),u=/^.+:(before|change)$/;Ember.EachProxy=Ember.Object.extend({init:function(e){this._super(),this._content=e,e.addArrayObserver(this),s(Ember.watchedEvents(this),function(e){this.didAddListener(e)},this)},unknownProperty:function(e,t){var n;return n=new o(this._content,e,this),Ember.defineProperty(this,e,null,n),this.beginObservingContentKey(e),n},arrayWillChange:function(e,n,r,i){var s=this._keys,o,u,a;a=r>0?n+r:-1,Ember.beginPropertyChanges(this);for(o in s){if(!s.hasOwnProperty(o))continue;a>0&&t(e,o,this,n,a),Ember.propertyWillChange(this,o)}Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(t,n,r,i){var s=this._keys,o,u,a;a=i>0?n+i:-1,Ember.beginPropertyChanges(this);for(o in s){if(!s.hasOwnProperty(o))continue;a>0&&e(t,o,this,n,a),Ember.propertyDidChange(this,o)}Ember.propertyDidChange(this._content,"@each"),Ember.endPropertyChanges(this)},didAddListener:function(e){u.test(e)&&this.beginObservingContentKey(e.slice(0,-7))},didRemoveListener:function(e){u.test(e)&&this.stopObservingContentKey(e.slice(0,-7))},beginObservingContentKey:function(t){var n=this._keys;n||(n=this._keys={});if(!n[t]){n[t]=1;var i=this._content,s=r(i,"length");e(i,t,this,0,s)}else n[t]++},stopObservingContentKey:function(e){var n=this._keys;if(n&&n[e]>0&&--n[e]<=0){var i=this._content,s=r(i,"length");t(i,e,this,0,s)}},contentKeyWillChange:function(e,t){Ember.propertyWillChange(this,t)},contentKeyDidChange:function(e,t){Ember.propertyDidChange(this,t)}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.Mixin.create(Ember.MutableArray,Ember.Observable,Ember.Copyable,{get:function(e){return e==="length"?this.length:"number"==typeof e?this[e]:this._super(e)},objectAt:function(e){return this[e]},replace:function(t,n,r){if(this.isFrozen)throw Ember.FROZEN_ERROR;var i=r?e(r,"length"):0;this.arrayContentWillChange(t,n,i);if(!r||r.length===0)this.splice(t,n);else{var s=[t,n].concat(r);this.splice.apply(this,s)}return this.arrayContentDidChange(t,n,i),this},unknownProperty:function(e,t){var n;return t!==undefined&&n===undefined&&(n=this[e]=t),n},indexOf:function(e,t){var n,r=this.length;t===undefined?t=0:t=t<0?Math.ceil(t):Math.floor(t),t<0&&(t+=r);for(n=t;n<r;n++)if(this[n]===e)return n;return-1},lastIndexOf:function(e,t){var n,r=this.length;t===undefined?t=r-1:t=t<0?Math.ceil(t):Math.floor(t),t<0&&(t+=r);for(n=t;n>=0;n--)if(this[n]===e)return n;return-1},copy:function(){return this.slice()}}),r=["length"];Ember.EnumerableUtils.forEach(n.keys(),function(e){Array.prototype[e]&&r.push(e)}),r.length>0&&(n=n.without.apply(n,r)),Ember.NativeArray=n,Ember.A=function(e){return e===undefined&&(e=[]),Ember.NativeArray.apply(e)},Ember.NativeArray.activate=function(){n.apply(Array.prototype),Ember.A=function(e){return e||[]}},(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.Array)&&Ember.NativeArray.activate()}(),function(){var e=Ember.get,t=Ember.set;Ember._PromiseChain=Ember.Object.extend({promises:null,failureCallback:Ember.K,successCallback:Ember.K,abortCallback:Ember.K,promiseSuccessCallback:Ember.K,runNextPromise:function(){if(e(this,"isDestroyed"))return;var t=e(this,"promises").shiftObject();if(t){var n=e(t,"promise")||t,r=this,i=function(){r.promiseSuccessCallback.call(this,t,arguments),r.runNextPromise()},s=e(r,"failureCallback");n.then(i,s)}else this.successCallback()},start:function(){return this.runNextPromise(),this},abort:function(){this.abortCallback(),this.destroy()},init:function(){t(this,"promises",Ember.A(e(this,"promises"))),this._super()}})}(),function(){var e={},t={};Ember.onLoad=function(n,r){var i;e[n]=e[n]||Ember.A(),e[n].pushObject(r),(i=t[n])&&r(i)},Ember.runLoadHooks=function(n,r){var i;t[n]=r,(i=e[n])&&e[n].forEach(function(e){e(r)})}}(),function(){}(),function(){Ember.ControllerMixin=Ember.Mixin.create({target:null,store:null}),Ember.Controller=Ember.Object.extend(Ember.ControllerMixin)}(),function(){var e=Ember.get,t=Ember.set,n=Ember.EnumerableUtils.forEach;Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,addObject:function(t){var n=e(this,"content");n.pushObject(t)},removeObject:function(t){var n=e(this,"content");n.removeObject(t)},orderBy:function(t,r){var i=0,s=e(this,"sortProperties"),o=e(this,"sortAscending");return n(s,function(n){i===0&&(i=Ember.compare(e(t,n),e(r,n)),i!==0&&!o&&(i=-1*i))}),i},destroy:function(){var t=e(this,"content"),r=e(this,"sortProperties");return t&&r&&n(t,function(e){n(r,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed("sortProperties",function(){return!!e(this,"sortProperties")}),arrangedContent:Ember.computed("content","sortProperties.@each",function(t,r){var i=e(this,"content"),s=e(this,"isSorted"),o=e(this,"sortProperties"),u=this;return i&&s?(i=i.slice(),i.sort(function(e,t){return u.orderBy(e,t)}),n(i,function(e){n(o,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(i)):i}),_contentWillChange:Ember.beforeObserver(function(){var t=e(this,"content"),r=e(this,"sortProperties");t&&r&&n(t,function(e){n(r,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},"content"),sortAscendingWillChange:Ember.beforeObserver(function(){this._lastSortAscending=e(this,"sortAscending")},"sortAscending"),sortAscendingDidChange:Ember.observer(function(){if(e(this,"sortAscending")!==this._lastSortAscending){var t=e(this,"arrangedContent");t.reverseObjects()}},"sortAscending"),contentArrayWillChange:function(t,r,i,s){var o=e(this,"isSorted");if(o){var u=e(this,"arrangedContent"),a=t.slice(r,r+i),f=e(this,"sortProperties");n(a,function(e){u.removeObject(e),n(f,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)})}return this._super(t,r,i,s)},contentArrayDidChange:function(t,r,i,s){var o=e(this,"isSorted"),u=e(this,"sortProperties");if(o){var a=t.slice(r,r+s),f=e(this,"arrangedContent");n(a,function(e){this.insertItemSorted(e),n(u,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(t,r,i,s)},insertItemSorted:function(t){var n=e(this,"arrangedContent"),r=e(n,"length"),i=this._binarySearch(t,0,r);n.insertAt(i,t)},contentItemSortPropertyDidChange:function(t){var n=e(this,"arrangedContent"),r=n.indexOf(t),i=this._binarySearch(t,0,e(n,"length"));i!==r&&(n.removeObject(t),this.insertItemSorted(t))},_binarySearch:function(t,n,r){var i,s,o,u;return n===r?n:(u=e(this,"arrangedContent"),i=n+Math.floor((r-n)/2),s=u.objectAt(i),o=this.orderBy(s,t),o<0?this._binarySearch(t,i+1,r):o>0?this._binarySearch(t,n,i):i)}})}(),function(){var e=Ember.get,t=Ember.set;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin)}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}(),function(){}(),function(){}(),function(){function e(t,n,r,i){var s=t.name,o=t.incoming,u=t.incomingNames,a=u.length,f;r||(r={}),i||(i=[]);if(r.hasOwnProperty(s))return;i.push(s),r[s]=!0;for(f=0;f<a;f++)e(o[u[f]],n,r,i);n(t,i),i.pop()}function t(){this.names=[],this.vertices={}}t.prototype.add=function(e){if(!e)return;if(this.vertices.hasOwnProperty(e))return this.vertices[e];var t={name:e,incoming:{},incomingNames:[],hasOutgoing:!1,value:null};return this.vertices[e]=t,this.names.push(e),t},t.prototype.map=function(e,t){this.add(e).value=t},t.prototype.addEdge=function(t,n){function r(e,t){if(e.name===n)throw new Error("cycle detected: "+n+" <- "+t.join(" <- "))}if(!t||!n||t===n)return;var i=this.add(t),s=this.add(n);if(s.incoming.hasOwnProperty(t))return;e(i,r),i.hasOutgoing=!0,s.incoming[t]=i,s.incomingNames.push(t)},t.prototype.topsort=function(t){var n={},r=this.vertices,i=this.names,s=i.length,o,u;for(o=0;o<s;o++)u=r[i[o]],u.hasOutgoing||e(u,t,n)},t.prototype.addEdges=function(e,t,n,r){var i;this.map(e,t);if(n)if(typeof n=="string")this.addEdge(e,n);else for(i=0;i<n.length;i++)this.addEdge(e,n[i]);if(r)if(typeof r=="string")this.addEdge(r,e);else for(i=0;i<r.length;i++)this.addEdge(r[i],e)},Ember.DAG=t}(),function(){var e=Ember.get,t=Ember.set;Ember.Application=Ember.Namespace.extend({rootElement:"body",eventDispatcher:null,customEvents:null,autoinit:!Ember.testing,isInitialized:!1,init:function(){this.$||(this.$=Ember.$),this._super(),this.createEventDispatcher(),this._readinessDeferrals=1,this.waitForDOMContentLoaded();if(this.autoinit){var e=this;this.$().ready(function(){if(e.isDestroyed||e.isInitialized)return;e.initialize()})}},createEventDispatcher:function(){var n=e(this,"rootElement"),r=Ember.EventDispatcher.create({rootElement:n});t(this,"eventDispatcher",r)},waitForDOMContentLoaded:function(){this.deferReadiness();var e=this;this.$().ready(function(){e.advanceReadiness()})},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){this._readinessDeferrals--,this._readinessDeferrals===0&&Ember.run.once(this,this.didBecomeReady)},initialize:function(e){return e=this.setupRouter(e),this.runInjections(e),Ember.runLoadHooks("application",this),this.isInitialized=!0,this.advanceReadiness(),this},runInjections:function(t){var n=e(this.constructor,"injections"),r=new Ember.DAG,i=this,s,o,u;for(o=0;o<n.length;o++)u=n[o],r.addEdges(u.name,u.injection,u.before,u.after);r.topsort(function(e){var n=e.value,r=Ember.A(Ember.keys(i));r.forEach(function(e){n(i,t,e)})})},setupRouter:function(e){return!e&&Ember.Router.detect(this.Router)&&(e=this.Router.create(),this._createdRouter=e),e&&(t(this,"router",e),t(e,"namespace",this)),e},didBecomeReady:function(){var t=e(this,"eventDispatcher"),n=e(this,"customEvents"),r;t.setup(n),this.ready(),r=e(this,"router"),this.createApplicationView(r),r&&r instanceof Ember.Router&&this.startRouting(r)},createApplicationView:function(n){var r=e(this,"rootElement"),i={},s=this.ApplicationView,o=Ember.TEMPLATES.application,u,a;if(!s&&!o)return;n&&(u=e(n,"applicationController"),u&&(i.controller=u)),o&&(i.template=o),s||(s=Ember.View),a=s.create(i),this._createdApplicationView=a,n&&t(n,"applicationView",a),a.appendTo(r)},startRouting:function(t){var n=e(t,"location");t.route(n.getURL()),n.onUpdateURL(function(e){t.route(e)})},ready:Ember.K,willDestroy:function(){e(this,"eventDispatcher").destroy(),this._createdRouter&&this._createdRouter.destroy(),this._createdApplicationView&&this._createdApplicationView.destroy()},registerInjection:function(e){this.constructor.registerInjection(e)}}),Ember.Application.reopenClass({concatenatedProperties:["injections"],injections:Ember.A(),registerInjection:function(t){var n=e(this,"injections");n.push(t)}}),Ember.Application.registerInjection({name:"controllers",injection:function(e,t,n){if(!t)return;if(!/^[A-Z].*Controller$/.test(n))return;var r=n.charAt(0).toLowerCase()+n.substr(1),i=e[n],s;if(!Ember.Object.detect(i))return;s=e[n].create(),t.set(r,s),s.setProperties({target:t,controllers:t,namespace:e})}}),Ember.runLoadHooks("Ember.Application",Ember.Application)}(),function(){}(),function(){}(),function(){var e=Ember.imports.jQuery;Ember.$=e}(),function(){var e=Ember.String.w("dragstart drag dragenter dragleave dragover drop dragend");Ember.EnumerableUtils.forEach(e,function(e){Ember.$.event.fixHooks[e]={props:["dataTransfer"]}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.ArrayPolyfills.indexOf,r=function(){this.seen={},this.list=[]};r.prototype={add:function(e){if(e in this.seen)return;this.seen[e]=!0,this.list.push(e)},toDOM:function(){return this.list.join(" ")}},Ember.RenderBuffer=function(e){return new Ember._RenderBuffer(e)},Ember._RenderBuffer=function(e){this.elementTag=e,this.childBuffers=[]},Ember._RenderBuffer.prototype={elementClasses:null,elementId:null,elementAttributes:null,elementTag:null,elementStyle:null,parentBuffer:null,push:function(e){return this.childBuffers.push(String(e)),this},addClass:function(e){var t=this.elementClasses=this.elementClasses||new r;return this.elementClasses.add(e),this},id:function(e){return this.elementId=e,this},attr:function(e,t){var n=this.elementAttributes=this.elementAttributes||{};return arguments.length===1?n[e]:(n[e]=t,this)},removeAttr:function(e){var t=this.elementAttributes;return t&&delete t[e],this},style:function(e,t){var n=this.elementStyle=this.elementStyle||{};return this.elementStyle[e]=t,this},newBuffer:function(e,t,n,r){var i=new Ember._RenderBuffer(e);return i.parentBuffer=t,r&&Ember.$.extend(i,r),n&&n.call(this,i),i},replaceWithBuffer:function(e){var t=this.parentBuffer;if(!t)return;var r=t.childBuffers,i=n.call(r,this);e?r.splice(i,1,e):r.splice(i,1)},begin:function(e){return this.newBuffer(e,this,function(e){this.childBuffers.push(e)})},prepend:function(e){return this.newBuffer(e,this,function(e){this.childBuffers.splice(0,0,e)})},replaceWith:function(e){var t=this.parentBuffer;return this.newBuffer(e,t,function(e){this.replaceWithBuffer(e)})},insertAfter:function(t){var r=e(this,"parentBuffer");return this.newBuffer(t,r,function(e){var t=r.childBuffers,i=n.call(t,this);t.splice(i+1,0,e)})},end:function(){var e=this.parentBuffer;return e||this},remove:function(){this.replaceWithBuffer(null)},element:function(){return Ember.$(this.string())[0]},string:function(){var e="",t=this.elementTag,n;if(t){var r=this.elementId,i=this.elementClasses,s=this.elementAttributes,o=this.elementStyle,u="",a;n=["<"+t],r&&n.push('id="'+this._escapeAttribute(r)+'"'),i&&n.push('class="'+this._escapeAttribute(i.toDOM())+'"');if(o){for(a in o)o.hasOwnProperty(a)&&(u+=a+":"+this._escapeAttribute(o[a])+";");n.push('style="'+u+'"')}if(s)for(a in s)s.hasOwnProperty(a)&&n.push(a+'="'+this._escapeAttribute(s[a])+'"');n=n.join(" ")+">"}var f=this.childBuffers;return Ember.ArrayPolyfills.forEach.call(f,function(t){var n=typeof t=="string";e+=n?t:t.string()}),t?n+e+"</"+t+">":e},_escapeAttribute:function(e){var t={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},n=/&(?!\w+;)|[<>"'`]/g,r=/[&<>"'`]/,i=function(e){return t[e]||"&amp;"},s=e.toString();return r.test(s)?s.replace(n,i):s}}}(),function(){var e=Ember.get,t=Ember.set,n=Ember.String.fmt;Ember.EventDispatcher=Ember.Object.extend({rootElement:"body",setup:function(t){var n,r={touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",mousemove:"mouseMove",focusin:"focusIn",focusout:"focusOut",mouseenter:"mouseEnter",mouseleave:"mouseLeave",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"};Ember.$.extend(r,t||{});var i=Ember.$(e(this,"rootElement"));i.addClass("ember-application");for(n in r)r.hasOwnProperty(n)&&this.setupHandler(i,n,r[n])},setupHandler:function(e,t,n){var r=this;e.delegate(".ember-view",t+".ember",function(e,t){return Ember.handleErrors(function(){var i=Ember.View.views[this.id],s=!0,o=null;return o=r._findNearestEventManager(i,n),o&&o!==t?s=r._dispatchEvent(o,e,n,i):i?s=r._bubbleEvent(i,e,n):e.stopPropagation(),s},this)}),e.delegate("[data-ember-action]",t+".ember",function(e){return Ember.handleErrors(function(){var t=Ember.$(e.currentTarget).attr("data-ember-action"),r=Ember.Handlebars.ActionHelper.registeredActions[t],i=r.handler;if(r.eventName===n)return i(e)},this)})},_findNearestEventManager:function(t,n){var r=null;while(t){r=e(t,"eventManager");if(r&&r[n])break;t=e(t,"parentView")}return r},_dispatchEvent:function(e,t,n,r){var i=!0,s=e[n];return Ember.typeOf(s)==="function"?(i=s.call(e,t,r),t.stopPropagation()):i=this._bubbleEvent(r,t,n),i},_bubbleEvent:function(e,t,n){return Ember.run(function(){return e.handleEvent(n,t)})},destroy:function(){var t=e(this,"rootElement");return Ember.$(t).undelegate(".ember").removeClass("ember-application"),this._super()}})}(),function(){var e=Ember.run.queues;e.splice(Ember.$.inArray("actions",e)+1,0,"render")}(),function(){var e=Ember.get,t=Ember.set;Ember.ControllerMixin.reopen({target:null,controllers:null,namespace:null,view:null,connectOutlet:function(n,r){var i,s,o,u,a;Ember.typeOf(r)==="string"&&(i=n,n=r,r=arguments[2]),arguments.length===1?Ember.typeOf(n)==="object"&&(a=n,i=a.outletName,n=a.name,s=a.viewClass,u=a.controller,r=a.context):a={},i=i||"view";if(n){var f=e(this,"namespace"),l=e(this,"controllers"),c=n.charAt(0).toUpperCase()+n.substr(1)+"View";s=e(f,c),u=e(l,n+"Controller")}return u&&r&&t(u,"content",r),o=this.createOutletView(i,s),u&&t(o,"controller",u),t(this,i,o),o},connectControllers:function(){var n=e(this,"controllers"),r=Array.prototype.slice.apply(arguments),i;for(var s=0,o=r.length;s<o;s++)i=r[s]+"Controller",t(this,i,e(n,i))},disconnectOutlet:function(e){e=e||"view",t(this,e,null)},createOutletView:function(e,t){return t.create()}})}(),function(){}(),function(){var e=Ember.get,t=Ember.set,n=Ember.addObserver,r=Ember.removeObserver,i=Ember.meta,s=Ember.String.fmt,o=[].slice,u=Ember.EnumerableUtils.forEach,a=Ember.computed(function(){var t=this._childViews,n=Ember.A();return u(t,function(t){t.isVirtual?n.pushObjects(e(t,"childViews")):n.push(t)}),n}).property();Ember.TEMPLATES={};var f={preRender:{},inBuffer:{},hasElement:{},inDOM:{},destroyed:{}};Ember.CoreView=Ember.Object.extend(Ember.Evented,{init:function(){this._super(),this.isVirtual||(Ember.View.views[e(this,"elementId")]=this)},parentView:Ember.computed(function(){var t=e(this,"_parentView");return t&&t.isVirtual?e(t,"parentView"):t}).property("_parentView").volatile(),state:"preRender",_parentView:null,concreteView:Ember.computed(function(){return this.isVirtual?e(this,"parentView"):this}).property("_parentView").volatile(),renderBuffer:function(t){t=t||e(this,"tagName");if(t===null||t===undefined)t="div";return Ember.RenderBuffer(t)},instrumentName:"render.core_view",instrumentDetails:function(e){e.type=this.constructor.toString()},renderToBuffer:function(t,n){var r=e(this,"instrumentName"),i={};return this.instrumentDetails(i),Ember.instrument(r,i,function(){return this._renderToBuffer(t,n)},this)},_renderToBuffer:function(t,n){var r;Ember.run.sync(),n=n||"begin";if(t){var i=e(this,"tagName");if(i===null||i===undefined)i="div";r=t[n](i)}else r=this.renderBuffer();return this.buffer=r,this.transitionTo("inBuffer",!1),this.beforeRender(r),this.render(r),this.afterRender(r),r},trigger:function(e){this._super.apply(this,arguments);var t=this[e];if(t){var n=[],r,i;for(r=1,i=arguments.length;r<i;r++)n.push(arguments[r]);return t.apply(this,n)}},has:function(e){return Ember.typeOf(this[e])==="function"||this._super(e)},willDestroy:function(){var t=e(this,"_parentView");this.removedFromDOM||this.destroyElement(),t&&t.removeChild(this),this.state="destroyed",this.isVirtual||delete Ember.View.views[e(this,"elementId")]},clearRenderedChildren:Ember.K,invokeRecursively:Ember.K,invalidateRecursively:Ember.K,transitionTo:Ember.K,destroyElement:Ember.K,_notifyWillInsertElement:Ember.K,_notifyDidInsertElement:Ember.K}),Ember.View=Ember.CoreView.extend({concatenatedProperties:["classNames","classNameBindings","attributeBindings"],isView:!0,templateName:null,layoutName:null,templates:Ember.TEMPLATES,template:Ember.computed(function(t,n){if(n!==undefined)return n;var r=e(this,"templateName"),i=this.templateForName(r,"template");return i||e(this,"defaultTemplate")}).property("templateName"),controller:Ember.computed(function(t,n){var r;return arguments.length===2?n:(r=e(this,"parentView"),r?e(r,"controller"):null)}).property(),layout:Ember.computed(function(t,n){if(arguments.length===2)return n;var r=e(this,"layoutName"),i=this.templateForName(r,"layout");return i||e(this,"defaultLayout")}).property("layoutName"),templateForName:function(t,n){if(!t)return;var r=e(this,"templates"),i=e(r,t);if(!i)throw new Ember.Error(s('%@ - Unable to find %@ "%@".',[this,n,t]));return i},context:Ember.computed(function(n,r){return arguments.length===2?(t(this,"_context",r),r):e(this,"_context")}).volatile(),_context:Ember.computed(function(t,n){var r,i;return arguments.length===2?n:(i=e(this,"controller"))?i:(r=e(this,"_parentView"),r?e(r,"_context"):this)}),_displayPropertyDidChange:Ember.observer(function(){this.rerender()},"context","controller"),isVisible:!0,childViews:a,_childViews:[],_childViewsWillChange:Ember.beforeObserver(function(){if(this.isVirtual){var t=e(this,"parentView");t&&Ember.propertyWillChange(t,"childViews")}},"childViews"),_childViewsDidChange:Ember.observer(function(){if(this.isVirtual){var t=e(this,"parentView");t&&Ember.propertyDidChange(t,"childViews")}},"childViews"),nearestInstanceOf:function(t){var n=e(this,"parentView");while(n){if(n instanceof t)return n;n=e(n,"parentView")}},nearestOfType:function(t){var n=e(this,"parentView"),r=t instanceof Ember.Mixin?function(e){return t.detect(e)}:function(e){return t.detect(e.constructor)};while(n){if(r(n))return n;n=e(n,"parentView")}},nearestWithProperty:function(t){var n=e(this,"parentView");while(n){if(t in n)return n;n=e(n,"parentView")}},nearestChildOf:function(t){var n=e(this,"parentView");while(n){if(e(n,"parentView")instanceof t)return n;n=e(n,"parentView")}},collectionView:Ember.computed(function(){return this.nearestOfType(Ember.CollectionView)}),itemView:Ember.computed(function(){return this.nearestChildOf(Ember.CollectionView)}),contentView:Ember.computed(function(){return this.nearestWithProperty("content")}),_parentViewDidChange:Ember.observer(function(){if(this.isDestroying)return;this.invokeRecursively(function(e){e.propertyDidChange("collectionView"),e.propertyDidChange("itemView"),e.propertyDidChange("contentView")}),e(this,"parentView.controller")&&!e(this,"controller")&&this.notifyPropertyChange("controller")},"_parentView"),_controllerDidChange:Ember.observer(function(){if(this.isDestroying)return;this.forEachChildView(function(e){e.propertyDidChange("controller")})},"controller"),cloneKeywords:function(){var n=e(this,"templateData"),r=n?Ember.copy(n.keywords):{};return t(r,"view",e(this,"concreteView")),t(r,"controller",e(this,"controller")),r},render:function(t){var n=e(this,"layout")||e(this,"template");if(n){var r=e(this,"context"),i=this.cloneKeywords(),s={view:this,buffer:t,isRenderData:!0,keywords:i},o=n(r,{data:s});o!==undefined&&t.push(o)}},invokeForState:function(e){var t=this.state,n,r;if(r=f[t][e])return n=o.call(arguments),n[0]=this,r.apply(this,n);var i=this,s=i.states,u;while(s){u=s[t];while(u){r=u[e];if(r)return f[t][e]=r,n=o.call(arguments,1),n.unshift(this),r.apply(this,n);u=u.parentState}s=s.parent}},rerender:function(){return this.invokeForState("rerender")},clearRenderedChildren:function(){var e=this.lengthBeforeRender,t=this.lengthAfterRender,n=this._childViews;for(var r=t-1;r>=e;r--)n[r]&&n[r].destroy()},_applyClassNameBindings:function(){var t=e(this,"classNameBindings"),i=e(this,"classNames"),s,o,a;if(!t)return;u(t,function(e){var t,u=Ember.View._parsePropertyPath(e),f=function(){o=this._classStringForProperty(e),s=this.$();if(!s){r(this,u.path,f);return}t&&(s.removeClass(t),i.removeObject(t)),o?(s.addClass(o),t=o):t=null};a=this._classStringForProperty(e),a&&(i.push(a),t=a),n(this,u.path,f),this.one("willClearRender",function(){r(this,u.path,f)})},this)},_applyAttributeBindings:function(t){var i=e(this,"attributeBindings"),s,o,a;if(!i)return;u(i,function(i){var u=i.split(":"),a=u[0],f=u[1]||a,l=function(){o=this.$();if(!o)return;s=e(this,a),Ember.View.applyAttributeBindings(o,f,s)};n(this,a,l),this.one("willClearRender",function(){r(this,a,l)}),s=e(this,a),Ember.View.applyAttributeBindings(t,f,s)},this)},_classStringForProperty:function(t){var n=Ember.View._parsePropertyPath(t),r=n.path,i=e(this,r);return i===undefined&&Ember.isGlobalPath(r)&&(i=e(Ember.lookup,r)),Ember.View._classStringForValue(r,i,n.className,n.falsyClassName)},element:Ember.computed(function(e,t){return t!==undefined?this.invokeForState("setElement",t):this.invokeForState("getElement")}).property("_parentView"),$:function(e){return this.invokeForState("$",e)},mutateChildViews:function(e){var t=this._childViews,n=t.length,r;while(--n>=0)r=t[n],e.call(this,r,n);return this},forEachChildView:function(e){var t=this._childViews;if(!t)return this;var n=t.length,r,i;for(i=0;i<n;i++)r=t[i],e.call(this,r);return this},appendTo:function(e){return this._insertElementLater(function(){this.$().appendTo(e)}),this},replaceIn:function(e){return this._insertElementLater(function(){Ember.$(e).empty(),this.$().appendTo(e)}),this},_insertElementLater:function(e){this._scheduledInsert=Ember.run.scheduleOnce("render",this,"_insertElement",e)},_insertElement:function(e){this._scheduledInsert=null,this.invokeForState("insertElement",e)},append:function(){return this.appendTo(document.body)},remove:function(){this.destroyElement(),this.invokeRecursively(function(e){e.clearRenderedChildren()})},elementId:Ember.computed(function(e,t){return t!==undefined?t:Ember.guidFor(this)}),_elementIdDidChange:Ember.beforeObserver(function(){throw"Changing a view's elementId after creation is not allowed."},"elementId"),findElementInParentElement:function(t){var n="#"+e(this,"elementId");return Ember.$(n)[0]||Ember.$(n,t)[0]},createElement:function(){if(e(this,"element"))return this;var n=this.renderToBuffer();return t(this,"element",n.element()),this},willInsertElement:Ember.K,didInsertElement:Ember.K,willClearRender:Ember.K,invokeRecursively:function(e){e.call(this,this),this.forEachChildView(function(t){t.invokeRecursively(e)})},invalidateRecursively:function(e){this.forEachChildView(function(t){t.propertyDidChange(e)})},_notifyWillInsertElement:function(){this.invokeRecursively(function(e){e.trigger("willInsertElement")})},_notifyDidInsertElement:function(){this.invokeRecursively(function(e){e.trigger("didInsertElement")})},_notifyWillClearRender:function(){this.invokeRecursively(function(e){e.trigger("willClearRender")})},destroyElement:function(){return this.invokeForState("destroyElement")},willDestroyElement:function(){},_notifyWillDestroyElement:function(){this._notifyWillClearRender(),this.invokeRecursively(function(e){e.trigger("willDestroyElement")})},_elementWillChange:Ember.beforeObserver(function(){this.forEachChildView(function(e){Ember.propertyWillChange(e,"element")})},"element"),_elementDidChange:Ember.observer(function(){this.forEachChildView(function(e){Ember.propertyDidChange(e,"element")})},"element"),parentViewDidChange:Ember.K,instrumentName:"render.view",instrumentDetails:function(t){t.template=e(this,"templateName"),this._super(t)},_renderToBuffer:function(e,t){this.lengthBeforeRender=this._childViews.length;var n=this._super(e,t);return this.lengthAfterRender=this._childViews.length,n},renderToBufferIfNeeded:function(){return this.invokeForState("renderToBufferIfNeeded",this)},beforeRender:function(e){this.applyAttributesToBuffer(e)},afterRender:Ember.K,applyAttributesToBuffer:function(t){this._applyClassNameBindings(),this._applyAttributeBindings(t),u(e(this,"classNames"),function(e){t.addClass(e)}),t.id(e(this,"elementId"));var n=e(this,"ariaRole");n&&t.attr("role",n),e(this,"isVisible")===!1&&t.style("display","none")},tagName:null,ariaRole:null,classNames:["ember-view"],classNameBindings:[],attributeBindings:[],init:function(){this._super(),this._childViews=this._childViews.slice(),this.classNameBindings=Ember.A(this.classNameBindings.slice()),this.classNames=Ember.A(this.classNames.slice());var n=e(this,"viewController");n&&(n=e(n),n&&t(n,"view",this))},appendChild:function(e,t){return this.invokeForState("appendChild",e,t)},removeChild:function(e){if(this.isDestroying)return;t(e,"_parentView",null);var n=this._childViews;return Ember.EnumerableUtils.removeObject(n,e),this.propertyDidChange("childViews"),this},removeAllChildren:function(){return this.mutateChildViews(function(e){this.removeChild(e)})},destroyAllChildren:function(){return this.mutateChildViews(function(e){e.destroy()})},removeFromParent:function(){var t=e(this,"_parentView");return this.remove(),t&&t.removeChild(this),this},willDestroy:function(){var n=this._childViews,r=e(this,"_parentView"),i;this.removedFromDOM||this.destroyElement();if(this.viewName){var s=e(this,"parentView");s&&t(s,this.viewName,null)}r&&r.removeChild(this),this.state="destroyed",i=n.length;for(var o=i-1;o>=0;o--)n[o].removedFromDOM=!0,n[o].destroy();this.isVirtual||delete Ember.View.views[e(this,"elementId")]},createChildView:function(n,r){return Ember.CoreView.detect(n)?(r=r||{},r._parentView=this,r.templateData=r.templateData||e(this,"templateData"),n=n.create(r),n.viewName&&t(e(this,"concreteView"),n.viewName,n)):(e(n,"templateData")||t(n,"templateData",e(this,"templateData")),t(n,"_parentView",this)),n},becameVisible:Ember.K,becameHidden:Ember.K,_isVisibleDidChange:Ember.observer(function(){var t=this.$();if(!t)return;var n=e(this,"isVisible");t.toggle(n);if(this._isAncestorHidden())return;n?this._notifyBecameVisible():this._notifyBecameHidden()},"isVisible"),_notifyBecameVisible:function(){this.trigger("becameVisible"),this.forEachChildView(function(t){var n=e(t,"isVisible");(n||n===null)&&t._notifyBecameVisible()})},_notifyBecameHidden:function(){this.trigger("becameHidden"),this.forEachChildView(function(t){var n=e(t,"isVisible");(n||n===null)&&t._notifyBecameHidden()})},_isAncestorHidden:function(){var t=e(this,"parentView");while(t){if(e(t,"isVisible")===!1)return!0;t=e(t,"parentView")}return!1},clearBuffer:function(){this.invokeRecursively(function(e){this.buffer=null})},transitionTo:function(e,t){this.state=e,t!==!1&&this.forEachChildView(function(t){t.transitionTo(e)})},handleEvent:function(e,t){return this.invokeForState("handleEvent",e,t)}});var l={prepend:function(e,t){e.$().prepend(t)},after:function(e,t){e.$().after(t)},html:function(e,t){e.$().html(t)},replace:function(n){var r=e(n,"element");t(n,"element",null),n._insertElementLater(function(){Ember.$(r).replaceWith(e(n,"element"))})},remove:function(e){e.$().remove()},empty:function(e){e.$().empty()}};Ember.View.reopen({states:Ember.View.states,domManager:l}),Ember.View.reopenClass({_parsePropertyPath:function(e){var t=e.split(":"),n=t[0],r="",i,s;return t.length>1&&(i=t[1],t.length===3&&(s=t[2]),r=":"+i,s&&(r+=":"+s)),{path:n,classNames:r,className:i===""?undefined:i,falsyClassName:s}},_classStringForValue:function(e,t,n,r){if(n||r)return n&&!!t?n:r&&!t?r:null;if(t===!0){var i=e.split(".");return Ember.String.dasherize(i[i.length-1])}return t!==!1&&t!==undefined&&t!==null?t:null}}),Ember.View.views={},Ember.View.childViewsProperty=a,Ember.View.applyAttributeBindings=function(e,t,n){var r=Ember.typeOf(n),i=e.attr(t);(r==="string"||r==="number"&&!isNaN(n))&&n!==i?e.attr(t,n):n&&r==="boolean"?e.attr(t,t):n||e.removeAttr(t)}}(),function(){var e=Ember.get,t=Ember.set;Ember.View.states={_default:{appendChild:function(){throw"You can't use appendChild outside of the rendering process"},$:function(){return undefined},getElement:function(){return null},handleEvent:function(){return!0},destroyElement:function(e){return t(e,"element",null),e._scheduledInsert&&(Ember.run.cancel(e._scheduledInsert),e._scheduledInsert=null),e},renderToBufferIfNeeded:function(){return!1}}},Ember.View.reopen({states:Ember.View.states})}(),function(){Ember.View.states.preRender={parentState:Ember.View.states._default,insertElement:function(e,t){e.createElement(),e._notifyWillInsertElement(),t.call(e),e.transitionTo("inDOM"),e._notifyDidInsertElement()},renderToBufferIfNeeded:function(e){return e.renderToBuffer()},empty:Ember.K,setElement:function(e,t){return t!==null&&e.transitionTo("hasElement"),t}}}(),function(){var e=Ember.get,t=Ember.set,n=Ember.meta;Ember.View.states.inBuffer={parentState:Ember.View.states._default
,$:function(e,t){return e.rerender(),Ember.$()},rerender:function(e){e._notifyWillClearRender(),e.clearRenderedChildren(),e.renderToBuffer(e.buffer,"replaceWith")},appendChild:function(e,t,n){var r=e.buffer;return t=this.createChildView(t,n),e._childViews.push(t),t.renderToBuffer(r),e.propertyDidChange("childViews"),t},destroyElement:function(e){return e.clearBuffer(),e._notifyWillDestroyElement(),e.transitionTo("preRender"),e},empty:function(){},renderToBufferIfNeeded:function(e){return e.buffer},insertElement:function(){throw"You can't insert an element that has already been rendered"},setElement:function(e,t){return t===null?e.transitionTo("preRender"):(e.clearBuffer(),e.transitionTo("hasElement")),t}}}(),function(){var e=Ember.get,t=Ember.set,n=Ember.meta;Ember.View.states.hasElement={parentState:Ember.View.states._default,$:function(t,n){var r=e(t,"element");return n?Ember.$(n,r):Ember.$(r)},getElement:function(t){var n=e(t,"parentView");return n&&(n=e(n,"element")),n?t.findElementInParentElement(n):Ember.$("#"+e(t,"elementId"))[0]},setElement:function(e,t){if(t!==null)throw"You cannot set an element to a non-null value when the element is already in the DOM.";return e.transitionTo("preRender"),t},rerender:function(e){return e._notifyWillClearRender(),e.clearRenderedChildren(),e.domManager.replace(e),e},destroyElement:function(e){return e._notifyWillDestroyElement(),e.domManager.remove(e),t(e,"element",null),e._scheduledInsert&&(Ember.run.cancel(e._scheduledInsert),e._scheduledInsert=null),e},empty:function(e){var t=e._childViews,n,r;if(t){n=t.length;for(r=0;r<n;r++)t[r]._notifyWillDestroyElement()}e.domManager.empty(e)},handleEvent:function(e,t,n){return e.has(t)?e.trigger(t,n):!0}},Ember.View.states.inDOM={parentState:Ember.View.states.hasElement,insertElement:function(e,t){throw"You can't insert an element into the DOM that has already been inserted"}}}(),function(){var e="You can't call %@ on a destroyed view",t=Ember.String.fmt;Ember.View.states.destroyed={parentState:Ember.View.states._default,appendChild:function(){throw t(e,["appendChild"])},rerender:function(){throw t(e,["rerender"])},destroyElement:function(){throw t(e,["destroyElement"])},empty:function(){throw t(e,["empty"])},setElement:function(){throw t(e,["set('element', ...)"])},renderToBufferIfNeeded:function(){throw t(e,["renderToBufferIfNeeded"])},insertElement:Ember.K}}(),function(){}(),function(){var e=Ember.get,t=Ember.set,n=Ember.meta,r=Ember.EnumerableUtils.forEach,i=Ember.computed(function(){return e(this,"_childViews")}).property("_childViews");Ember.ContainerView=Ember.View.extend({init:function(){this._super();var n=e(this,"childViews");Ember.defineProperty(this,"childViews",i);var s=this._childViews;r(n,function(n,r){var i;"string"==typeof n?(i=e(this,n),i=this.createChildView(i),t(this,n,i)):i=this.createChildView(n),s[r]=i},this),Ember.A(s),e(this,"childViews").addArrayObserver(this,{willChange:"childViewsWillChange",didChange:"childViewsDidChange"});var o=e(this,"currentView");o&&this._currentViewDidChange()},render:function(e){this.forEachChildView(function(t){t.renderToBuffer(e)})},instrumentName:"render.container",willDestroy:function(){e(this,"childViews").removeArrayObserver(this,{willChange:"childViewsWillChange",didChange:"childViewsDidChange"}),this._super()},childViewsWillChange:function(e,t,n){if(n===0)return;var r=e.slice(t,t+n);this.initializeViews(r,null,null),this.invokeForState("childViewsWillChange",e,t,n)},childViewsDidChange:function(t,n,r,i){var s=e(t,"length");if(i===0)return;var o=t.slice(n,n+i);this.initializeViews(o,this,e(this,"templateData")),this.invokeForState("childViewsDidChange",t,n,i)},initializeViews:function(n,i,s){r(n,function(n){t(n,"_parentView",i),e(n,"templateData")||t(n,"templateData",s)})},currentView:null,presentCurrentView:function(e,t){t()},appendCurrentView:function(t,n){var r=e(this,"childViews");t.one("didInsertElement",n),r.pushObject(t)},dismissCurrentView:function(e,t){t()},removeCurrentView:function(t,n){var r=e(this,"childViews");t.one("didDisappear",function(){t.destroy()}),r.removeObject(t),n()},_currentViewWillChange:Ember.beforeObserver(function(){var n=e(this,"currentView"),r=this;n&&(t(n,"isBeingDismissed",!0),n.trigger("willDisappear",n),this.dismissCurrentView(n,function(){r.removeCurrentView(n,function(){t(n,"isBeingDismissed",!1),n.trigger("didDisappear",n)})}))},"currentView"),_currentViewDidChange:Ember.observer(function(){var n=e(this,"currentView"),r=this;n&&(t(n,"isBeingPresented",!0),n.trigger("willAppear",n),this.appendCurrentView(n,function(){r.presentCurrentView(n,function(){t(n,"isBeingPresented",!1),n.trigger("didAppear",n)})}))},"currentView"),_ensureChildrenAreInDOM:function(){this.invokeForState("ensureChildrenAreInDOM",this)}}),Ember.ContainerView.states={parent:Ember.View.states,inBuffer:{childViewsDidChange:function(e,t,n,r){var i=e.buffer,s,o,u,a;n===0?(a=t[n],s=n+1,a.renderToBuffer(i,"prepend")):(a=t[n-1],s=n);for(var f=s;f<n+r;f++)o=a,a=t[f],u=o.buffer,a.renderToBuffer(u,"insertAfter")}},hasElement:{childViewsWillChange:function(e,t,n,r){for(var i=n;i<n+r;i++)t[i].remove()},childViewsDidChange:function(e,t,n,r){Ember.run.scheduleOnce("render",this,"_ensureChildrenAreInDOM")},ensureChildrenAreInDOM:function(e){var t=e.get("childViews"),n,r,i,s,o;for(n=0,r=t.length;n<r;n++)i=t[n],o=i.renderToBufferIfNeeded(),o&&(i._notifyWillInsertElement(),s?s.domManager.after(s,o.string()):e.domManager.prepend(e,o.string()),i.transitionTo("inDOM"),i.propertyDidChange("element"),i._notifyDidInsertElement()),s=i}}},Ember.ContainerView.states.inDOM={parentState:Ember.ContainerView.states.hasElement},Ember.ContainerView.reopen({states:Ember.ContainerView.states})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.String.fmt;Ember.CollectionView=Ember.ContainerView.extend({content:null,emptyViewClass:Ember.View,emptyView:null,itemViewClass:Ember.View,init:function(){var e=this._super();return this._contentDidChange(),e},_contentWillChange:Ember.beforeObserver(function(){var t=this.get("content");t&&t.removeArrayObserver(this);var n=t?e(t,"length"):0;this.arrayWillChange(t,0,n)},"content"),_contentDidChange:Ember.observer(function(){var t=e(this,"content");t&&t.addArrayObserver(this);var n=t?e(t,"length"):0;this.arrayDidChange(t,0,null,n)},"content"),willDestroy:function(){var t=e(this,"content");t&&t.removeArrayObserver(this),this._super()},arrayWillChange:function(t,n,r){var i=e(this,"emptyView");i&&i instanceof Ember.View&&i.removeFromParent();var s=e(this,"childViews"),o,u,a;a=e(s,"length");var f=r===a;f&&this.invokeForState("empty");for(u=n+r-1;u>=n;u--)o=s[u],f&&(o.removedFromDOM=!0),o.destroy()},arrayDidChange:function(n,r,i,s){var o=e(this,"itemViewClass"),u=e(this,"childViews"),a=[],f,l,c,h,p;"string"==typeof o&&(o=e(o)),h=n?e(n,"length"):0;if(h)for(c=r;c<r+s;c++)l=n.objectAt(c),f=this.createChildView(o,{content:l,contentIndex:c}),a.push(f);else{var d=e(this,"emptyView");if(!d)return;d=this.createChildView(d),a.push(d),t(this,"emptyView",d)}u.replace(r,0,a)},createChildView:function(n,r){n=this._super(n,r);var i=e(n,"tagName"),s=i===null||i===undefined?Ember.CollectionView.CONTAINER_MAP[e(this,"tagName")]:i;return t(n,"tagName",s),n}}),Ember.CollectionView.CONTAINER_MAP={ul:"li",ol:"li",table:"tr",thead:"tr",tbody:"tr",tfoot:"tr",tr:"td",select:"option"}}(),function(){}(),function(){}(),function(){var e=Ember.get,t=Ember.set;Ember.State=Ember.Object.extend(Ember.Evented,{isState:!0,parentState:null,start:null,name:null,path:Ember.computed(function(){var t=e(this,"parentState.path"),n=e(this,"name");return t&&(n=t+"."+n),n}).property(),trigger:function(e){this[e]&&this[e].apply(this,[].slice.call(arguments,1)),this._super.apply(this,arguments)},init:function(){var n=e(this,"states"),r;t(this,"childStates",Ember.A()),t(this,"eventTransitions",e(this,"eventTransitions")||{});var i,s,o;if(!n){n={};for(i in this){if(i==="constructor")continue;if(s=this[i]){if(o=s.transitionTarget)this.eventTransitions[i]=o;this.setupChild(n,i,s)}}t(this,"states",n)}else for(i in n)this.setupChild(n,i,n[i]);t(this,"pathsCache",{}),t(this,"pathsCacheNoContext",{})},setupChild:function(n,r,i){if(!i)return!1;i.isState?t(i,"name",r):Ember.State.detect(i)&&(i=i.create({name:r}));if(i.isState)return t(i,"parentState",this),e(this,"childStates").pushObject(i),n[r]=i,i},lookupEventTransition:function(e){var t,n=this;while(n&&!t)t=n.eventTransitions[e],n=n.get("parentState");return t},isLeaf:Ember.computed(function(){return!e(this,"childStates").length}),hasContext:!0,setup:Ember.K,enter:Ember.K,exit:Ember.K}),Ember.State.reopenClass({transitionTo:function(e){var t=function(t,n){var r=[],i,s=Ember.$&&Ember.$.Event;n&&s&&n instanceof s?n.hasOwnProperty("contexts")&&(r=n.contexts.slice()):r=[].slice.call(arguments,1),r.unshift(e),t.transitionTo.apply(t,r)};return t.transitionTarget=e,t}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.String.fmt,r=Ember.ArrayPolyfills.forEach,i=function(e){this.enterStates=e.enterStates.slice(),this.exitStates=e.exitStates.slice(),this.resolveState=e.resolveState,this.finalState=e.enterStates[e.enterStates.length-1]||e.resolveState};i.prototype={normalize:function(e,t){return this.matchContextsToStates(t),this.addInitialStates(),this.removeUnchangedContexts(e),this},matchContextsToStates:function(t){var n=this.enterStates.length-1,r=[],i,s;while(t.length>0){if(n>=0)i=this.enterStates[n--];else{if(this.enterStates.length){i=e(this.enterStates[0],"parentState");if(!i)throw"Cannot match all contexts to states"}else i=this.resolveState;this.enterStates.unshift(i),this.exitStates.unshift(i)}e(i,"hasContext")?s=t.pop():s=null,r.unshift(s)}this.contexts=r},addInitialStates:function(){var t=this.finalState,n;for(;;){n=e(t,"initialState")||"start",t=e(t,"states."+n);if(!t)break;this.finalState=t,this.enterStates.push(t),this.contexts.push(undefined)}},removeUnchangedContexts:function(e){while(this.enterStates.length>0){if(this.enterStates[0]!==this.exitStates[0])break;if(this.enterStates.length===this.contexts.length){if(e.getStateMeta(this.enterStates[0],"context")!==this.contexts[0])break;this.contexts.shift()}this.resolveState=this.enterStates.shift(),this.exitStates.shift()}}},Ember.StateManager=Ember.State.extend({init:function(){this._super(),t(this,"stateMeta",Ember.Map.create());var n=e(this,"initialState");!n&&e(this,"states.start")&&(n="start"),n&&this.transitionTo(n)},stateMetaFor:function(t){var n=e(this,"stateMeta"),r=n.get(t);return r||(r={},n.set(t,r)),r},setStateMeta:function(e,n,r){return t(this.stateMetaFor(e),n,r)},getStateMeta:function(t,n){return e(this.stateMetaFor(t),n)},currentState:null,currentPath:Ember.computed("currentState",function(){return e(this,"currentState.path")}),transitionEvent:"setup",errorOnUnhandledEvent:!0,send:function(t){var n,r;return n=[].slice.call(arguments,1),r=n,r.unshift(t,e(this,"currentState")),this.sendRecursively.apply(this,r)},sendRecursively:function(t,r){var i=this.enableLogging,s=r[t],o,u,a;o=[].slice.call(arguments,2);if(typeof s=="function")return i&&Ember.Logger.log(n("STATEMANAGER: Sending event '%@' to state %@.",[t,e(r,"path")])),a=o,a.unshift(this),s.apply(r,a);var f=e(r,"parentState");if(f)return u=o,u.unshift(t,f),this.sendRecursively.apply(this,u);if(e(this,"errorOnUnhandledEvent"))throw new Ember.Error(this.toString()+" could not respond to event "+t+" in state "+e(this,"currentState.path")+".")},getStateByPath:function(t,n){var r=n.split("."),i=t;for(var s=0,o=r.length;s<o;s++){i=e(e(i,"states"),r[s]);if(!i)break}return i},findStateByPath:function(t,n){var r;while(!r&&t)r=this.getStateByPath(t,n),t=e(t,"parentState");return r},getStatesInPath:function(t,n){if(!n||n==="")return undefined;var r=n.split("."),i=[],s,o;for(var u=0,a=r.length;u<a;u++){s=e(t,"states");if(!s)return undefined;o=e(s,r[u]);if(!o)return undefined;t=o,i.push(o)}return i},goToState:function(){return this.transitionTo.apply(this,arguments)},transitionTo:function(t,n){if(Ember.empty(t))return;var r=n?Array.prototype.slice.call(arguments,1):[],s=e(this,"currentState")||this,o=this.contextFreeTransition(s,t),u=(new i(o)).normalize(this,r);this.enterState(u),this.triggerSetupContext(u)},contextFreeTransition:function(t,n){var r=t.pathsCache[n];if(r)return r;var i=this.getStatesInPath(t,n),s=[],o=t;while(o&&!i){s.unshift(o),o=e(o,"parentState");if(!o){i=this.getStatesInPath(this,n);if(!i)return}i=this.getStatesInPath(o,n)}while(i.length>0&&i[0]===s[0])o=i.shift(),s.shift();var u=t.pathsCache[n]={exitStates:s,enterStates:i,resolveState:o};return u},triggerSetupContext:function(t){var n=t.contexts,i=t.enterStates.length-n.length,s=t.enterStates,o=e(this,"transitionEvent");r.call(s,function(e,t){e.trigger(o,this,n[t-i])},this)},getState:function(t){var n=e(this,t),r=e(this,"parentState");if(n)return n;if(r)return r.getState(t)},enterState:function(n){var i=this.enableLogging,s=n.exitStates.slice(0).reverse();r.call(s,function(e){e.trigger("exit",this)},this),r.call(n.enterStates,function(t){i&&Ember.Logger.log("STATEMANAGER: Entering "+e(t,"path")),t.trigger("enter",this)},this),t(this,"currentState",n.finalState)}})}(),function(){}(),function(){var e=Ember.get;Ember._ResolvedState=Ember.Object.extend({manager:null,state:null,match:null,object:Ember.computed(function(t,n){if(arguments.length===2)return this._object=n,n;if(this._object)return this._object;var r=e(this,"state"),i=e(this,"match"),s=e(this,"manager");return r.deserialize(s,i.hash)}).property(),hasPromise:Ember.computed(function(){return Ember.canInvoke(e(this,"object"),"then")}).property("object"),promise:Ember.computed(function(){var t=e(this,"object");return Ember.canInvoke(t,"then")?t:{then:function(e){e(t)}}}).property("object"),transition:function(){var t=e(this,"manager"),n=e(this,"state.path"),r=e(this,"object");t.transitionTo(n,r)}})}(),function(){var e=Ember.get,t=function(e){var t=e.toString(),n=t.split("."),r=n[n.length-1];return Ember.String.underscore(r)+"_id"},n=function(e,t){for(var n in t){if(!t.hasOwnProperty(n))continue;if(e.hasOwnProperty(n))continue;e[n]=t[n]}};Ember.Routable=Ember.Mixin.create({init:function(){var t;this.on("setup",this,this.stashContext);if(t=e(this,"redirectsTo"))this.connectOutlets=function(e){e.transitionTo(t)};var n=e(this,"route");n===""&&(n="/"),this._super()},setup:function(){return this.connectOutlets.apply(this,arguments)},stashContext:function(t,n){this.router=t;var r=this.serialize(t,n);t.setStateMeta(this,"context",n),t.setStateMeta(this,"serialized",r),e(this,"isRoutable")&&!e(t,"isRouting")&&this.updateRoute(t,e(t,"location"))},updateRoute:function(t,n){if(e(this,"isLeafRoute")){var r=this.absoluteRoute(t);n.setURL(r)}},absoluteRoute:function(t,r){var i=e(this,"parentState"),s="",o;e(i,"isRoutable")&&(s=i.absoluteRoute(t,r));var u=e(this,"routeMatcher"),a=t.getStateMeta(this,"serialized");return r=r||{},n(r,a),o=u&&u.generate(r),o&&(s=s+"/"+o),s},isRoutable:Ember.computed(function(){return typeof e(this,"route")=="string"}),isLeafRoute:Ember.computed(function(){return e(this,"isLeaf")?!0:!e(this,"childStates").findProperty("isRoutable")}),routeMatcher:Ember.computed(function(){var t=e(this,"route");if(t)return Ember._RouteMatcher.create({route:t,dynamicSegmentPattern:e(this,"dynamicSegmentPattern"),dynamicSegmentTerminators:e(this,"dynamicSegmentTerminators")})}),hasContext:Ember.computed(function(){var t=e(this,"routeMatcher");if(t)return t.identifiers.length>0}),modelClass:Ember.computed(function(){var t=e(this,"modelType");return typeof t=="string"?Ember.get(Ember.lookup,t):t}),modelClassFor:function(t){var n,r,i,s,o;if(n=e(this,"modelClass"))return n;if(!t)return;r=e(this,"routeMatcher");if(!r)return;i=r.identifiers;if(i.length!==2)return;s=i[1].match(/^(.*)_id$/);if(!s)return;return o=Ember.String.classify(s[1]),e(t,o)},deserialize:function(n,r){var i,s,o;return(i=this.modelClassFor(e(n,"namespace")))?i.find(r[t(i)]):r},serialize:function(n,r){var i,s,o,u,a;if(Ember.empty(r))return"";if(i=this.modelClassFor(e(n,"namespace")))u=t(i),a=e(r,"id"),r={},r[u]=a;return r},resolvePath:function(t,n){if(e(this,"isLeafRoute"))return Ember.A();var r=e(this,"childStates"),i;r=Ember.A(r.filterProperty("isRoutable")),r=r.sort(function(t,n){var r=e(t,"routeMatcher.identifiers.length"),i=e(n,"routeMatcher.identifiers.length"),s=e(t,"route"),o=e(n,"route"),u=t.get("index"),a=n.get("index");return!u&&u!=0||!a&&a!=0?s.indexOf(o)===0?-1:o.indexOf(s)===0?1:r!==i?r-i:e(n,"route.length")-e(t,"route.length"):u-a});var s=r.find(function(t){var r=e(t,"routeMatcher");if(i=r.match(n))return!0}),o=Ember._ResolvedState.create({manager:t,state:s,match:i}),u=s.resolvePath(t,i.remaining);return Ember.A([o]).pushObjects(u)},routePath:function(t,n){function r(){i.forEach(function(e){e.transition()})}if(e(this,"isLeafRoute"))return;var i=this.resolvePath(t,n),s=i.some(function(t){return e(t,"hasPromise")});s?(t.transitionTo("loading"),t.handleStatePromises(i,r)):r()},unroutePath:function(t,n){var r=e(this,"parentState");if(r===t)return;n=n.replace(/^(?=[^\/])/,"/");var i=this.absoluteRoute(t),s=e(this,"route");if(s!=="/"){var o=n.indexOf(i),u=n.charAt(i.length);if(o===0&&(u==="/"||u===""))return}t.enterState({exitStates:[this],enterStates:[],finalState:r}),t.send("unroutePath",n)},parentTemplate:Ember.computed(function(){var t=this,n,r;while(t=e(t,"parentState"))if(r=e(t,"template"))return r;return"application"}),_template:Ember.computed(function(t,n){if(arguments.length>1)return n;if(n=e(this,"template"))return n;var r=this.constructor.toString(),i;if(/^[^\[].*Route$/.test(r))return i=r.match(/([^\.]+\.)*([^\.]+)/)[2],i=i.replace(/Route$/,""),i.charAt(0).toLowerCase()+i.substr(1)}),render:function(t){t=t||{};var n=t.template||e(this,"_template"),r=t.into||e(this,"parentTemplate"),i=e(this.router,r+"Controller"),s=Ember.String.classify(n)+"View",o=e(e(this.router,"namespace"),s);o=(o||Ember.View).extend({templateName:n}),i.set("view",o.create())},connectOutlets:Ember.K,navigateAway:Ember.K})}(),function(){Ember.Route=Ember.State.extend(Ember.Routable)}(),function(){var e=function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^\$|#\s]/g,"\\$&")};Ember._RouteMatcher=Ember.Object.extend({state:null,init:function(){var t=this.route,n=this.dynamicSegmentPattern||"([^/]+)",r=this.dynamicSegmentTerminators||[],i=[],s=1,o,u;t.charAt(0)==="/"&&(t=this.route=t.substr(1)),o=e(t),r.push("$|/"),str=":([a-z_]+)(?="+r.join("|")+")",u=new RegExp(str,"gi");var a=o.replace(u,function(e,t){return i[s++]=t,n});this.identifiers=i,this.regex=new RegExp("^/?"+a)},match:function(e){var t=e.match(this.regex);if(t){var n=this.identifiers,r={};for(var i=1,s=n.length;i<s;i++)r[n[i]]=t[i];return{remaining:e.substr(t[0].length),hash:n.length>0?r:null}}},generate:function(e){var t=this.identifiers,n=this.route,r;for(var i=1,s=t.length;i<s;i++)r=t[i],n=n.replace(new RegExp(":"+r),e[r]);return n}})}(),function(){var e=Ember.get,t=Ember.set;Ember.Location={create:function(e){var t=e&&e.implementation,n=this.implementations[t];return n.create.apply(n,arguments)},registerImplementation:function(e,t){this.implementations[e]=t},implementations:{}}}(),function(){var e=Ember.get,t=Ember.set;Ember.NoneLocation=Ember.Object.extend({path:"",getURL:function(){return e(this,"path")},setURL:function(e){t(this,"path",e)},onUpdateURL:function(e){},formatURL:function(e){return e}}),Ember.Location.registerImplementation("none",Ember.NoneLocation)}(),function(){var e=Ember.get,t=Ember.set;Ember.HashLocation=Ember.Object.extend({init:function(){t(this,"location",e(this,"location")||window.location)},getURL:function(){return e(this,"location").hash.substr(1)},setURL:function(n){e(this,"location").hash=n,t(this,"lastSetURL",n)},onUpdateURL:function(n){var r=this,i=Ember.guidFor(this);Ember.$(window).bind("hashchange.ember-location-"+i,function(){var i=location.hash.substr(1);if(e(r,"lastSetURL")===i)return;t(r,"lastSetURL",null),n(location.hash.substr(1))})},formatURL:function(e){return"#"+e},willDestroy:function(){var e=Ember.guidFor(this);Ember.$(window).unbind("hashchange.ember-location-"+e)}}),Ember.Location.registerImplementation("hash",Ember.HashLocation)}(),function(){var e=Ember.get,t=Ember.set,n=!1;Ember.HistoryLocation=Ember.Object.extend({init:function(){t(this,"location",e(this,"location")||window.location),this.initState()},initState:function(){this.replaceState(e(this,"location").pathname),t(this,"history",window.history)},rootURL:"/",getURL:function(){return e(this,"location").pathname},setURL:function(e){e=this.formatURL(e),this.getState().path!==e&&(n=!0,this.pushState(e))},getState:function(){return e(this,"history").state},pushState:function(e){window.history.pushState({path:e},null,e)},replaceState:function(e){window.history.replaceState({path:e},null,e)},onUpdateURL:function(e){var t=Ember.guidFor(this);Ember.$(window).bind("popstate.ember-location-"+t,function(t){if(!n)return;e(this.getURL())})},formatURL:function(t){var n=e(this,"rootURL");return t!==""&&(n=n.replace(/\/$/,"")),n+t},willDestroy:function(){var e=Ember.guidFor(this);Ember.$(window).unbind("popstate.ember-location-"+e)}}),Ember.Location.registerImplementation("history",Ember.HistoryLocation)}(),function(){}(),function(){var e=Ember.get,t=Ember.set,n=function(e,t){for(var n in t){if(!t.hasOwnProperty(n))continue;if(e.hasOwnProperty(n))continue;e[n]=t[n]}};Ember.Router=Ember.StateManager.extend({initialState:"root",location:"hash",rootURL:"/",transitionTo:function(){this.abortRoutingPromises(),this._super.apply(this,arguments)},route:function(n){this.abortRoutingPromises(),t(this,"isRouting",!0);var r;try{n=n.replace(e(this,"rootURL"),""),n=n.replace(/^(?=[^\/])/,"/"),this.send("navigateAway"),this.send("unroutePath",n),r=e(this,"currentState");while(r&&!r.get("isRoutable"))r=e(r,"parentState");var i=r?r.absoluteRoute(this):"",s=n.substr(i.length);this.send("routePath",s)}finally{t(this,"isRouting",!1)}r=e(this,"currentState");while(r&&!r.get("isRoutable"))r=e(r,"parentState");r&&r.updateRoute(this,e(this,"location"))},urlFor:function(t,n){var r=e(this,"currentState")||this,i=this.findStateByPath(r,t),s=e(this,"location"),o=i.absoluteRoute(this,n);return s.formatURL(o)},urlForEvent:function(t){var n=Array.prototype.slice.call(arguments,1),r=e(this,"currentState"),i=r.lookupEventTransition(t),s=this.findStateByPath(r,i),o=this.serializeRecursively(s,n,{});return this.urlFor(i,o)},serializeRecursively:function(t,r,i){var s,o=e(t,"hasContext")?r.pop():null;return n(i,t.serialize(this,o)),s=t.get("parentState"),s&&s instanceof Ember.Route?this.serializeRecursively(s,r,i):i},abortRoutingPromises:function(){this._routingPromises&&(this._routingPromises.abort(),this._routingPromises=null)},handleStatePromises:function(e,n){this.abortRoutingPromises(),this.set("isLocked",!0);var r=this;this._routingPromises=Ember._PromiseChain.create({promises:e.slice(),successCallback:function(){r.set("isLocked",!1),n()},failureCallback:function(){throw"Unable to load object"},promiseSuccessCallback:function(e,n){t(e,"object",n[0])},abortCallback:function(){r.set("isLocked",!1)}}).start()},moveStatesIntoRoot:function(){this.root=Ember.Route.extend();for(var e in this){if(e==="constructor")continue;var t=this[e];if(t instanceof Ember.Route||Ember.Route.detect(t))this.root[e]=t,delete this[e]}},init:function(){this.root||this.moveStatesIntoRoot(),this._super();var n=e(this,"location"),r=e(this,"rootURL");"string"==typeof n&&t(this,"location",Ember.Location.create({implementation:n,rootURL:r})),this.assignRouter(this,this)},assignRouter:function(e,t){e.router=t;var n=e.states;if(n)for(var r in n){if(!n.hasOwnProperty(r))continue;this.assignRouter(n[r],t)}},willDestroy:function(){e(this,"location").destroy()}})}(),function(){}(),function(){(function(e){var t=function(){},n=0,r=e.document,i="createRange"in r&&typeof Range!="undefined"&&Range.prototype.createContextualFragment,s=function(){var e=r.createElement("div");return e.innerHTML="<div></div>",e.firstChild.innerHTML="<script></script>",e.firstChild.innerHTML===""}(),o=function(e){var r;this instanceof o?r=this:r=new t,r.innerHTML=e;var i="metamorph-"+n++;return r.start=i+"-start",r.end=i+"-end",r};t.prototype=o.prototype;var u,a,f,l,c,h,p,d,v;l=function(){return this.startTag()+this.innerHTML+this.endTag()},d=function(){return"<script id='"+this.start+"' type='text/x-placeholder'></script>"},v=function(){return"<script id='"+this.end+"' type='text/x-placeholder'></script>"};if(i)u=function(e,t){var n=r.createRange(),i=r.getElementById(e.start),s=r.getElementById(e.end);return t?(n.setStartBefore(i),n.setEndAfter(s)):(n.setStartAfter(i),n.setEndBefore(s)),n},a=function(e,t){var n=u(this,t);n.deleteContents();var r=n.createContextualFragment(e);n.insertNode(r)},f=function(){var e=u(this,!0);e.deleteContents()},c=function(e){var t=r.createRange();t.setStart(e),t.collapse(!1);var n=t.createContextualFragment(this.outerHTML());e.appendChild(n)},h=function(e){var t=r.createRange(),n=r.getElementById(this.end);t.setStartAfter(n),t.setEndAfter(n);var i=t.createContextualFragment(e);t.insertNode(i)},p=function(e){var t=r.createRange(),n=r.getElementById(this.start);t.setStartAfter(n),t.setEndAfter(n);var i=t.createContextualFragment(e);t.insertNode(i)};else{var m={select:[1,"<select multiple='multiple'>","</select>"],fieldset:[1,"<fieldset>","</fieldset>"],table:[1,"<table>","</table>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"],colgroup:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],map:[1,"<map>","</map>"],_default:[0,"",""]},g=function(e,t){var n=m[e.tagName.toLowerCase()]||m._default,i=n[0],o=n[1],u=n[2];s&&(t="&shy;"+t);var a=r.createElement("div");a.innerHTML=o+t+u;for(var f=0;f<=i;f++)a=a.firstChild;if(s){var l=a;while(l.nodeType===1&&!l.nodeName)l=l.firstChild;l.nodeType===3&&l.nodeValue.charAt(0)==="­"&&(l.nodeValue=l.nodeValue.slice(1))}return a},y=function(e){while(e.parentNode.tagName==="")e=e.parentNode;return e},b=function(e,t){e.parentNode!==t.parentNode&&t.parentNode.insertBefore(e,t.parentNode.firstChild)};a=function(e,t){var n=y(r.getElementById(this.start)),i=r.getElementById(this.end),s=i.parentNode,o,u,a;b(n,i),o=n.nextSibling;while(o){u=o.nextSibling,a=o===i;if(a){if(!t)break;i=o.nextSibling}o.parentNode.removeChild(o);if(a)break;o=u}o=g(n.parentNode,e);while(o)u=o.nextSibling,s.insertBefore(o,i),o=u},f=function(){var e=y(r.getElementById(this.start)),t=r.getElementById(this.end);this.html(""),e.parentNode.removeChild(e),t.parentNode.removeChild(t)},c=function(e){var t=g(e,this.outerHTML());while(t)nextSibling=t.nextSibling,e.appendChild(t),t=nextSibling},h=function(e){var t=r.getElementById(this.end),n=t.nextSibling,i=t.parentNode,s,o;o=g(i,e);while(o)s=o.nextSibling,i.insertBefore(o,n),o=s},p=function(e){var t=r.getElementById(this.start),n=t.parentNode,i,s;s=g(n,e);var o=t.nextSibling;while(s)i=s.nextSibling,n.insertBefore(s,o),s=i}}o.prototype.html=function(e){this.checkRemoved();if(e===undefined)return this.innerHTML;a.call(this,e),this.innerHTML=e},o.prototype.replaceWith=function(e){this.checkRemoved(),a.call(this,e,!0)},o.prototype.remove=f,o.prototype.outerHTML=l,o.prototype.appendTo=c,o.prototype.after=h,o.prototype.prepend=p,o.prototype.startTag=d,o.prototype.endTag=v,o.prototype.isRemoved=function(){var e=r.getElementById(this.start),t=r.getElementById(this.end);return!e||!t},o.prototype.checkRemoved=function(){if(this.isRemoved())throw new Error("Cannot perform operations on a Metamorph that is not in the DOM.")},e.Metamorph=o})(this)}(),function(){var e=Ember.create,t=Ember.imports.Handlebars;Ember.Handlebars=e(t),Ember.Handlebars.helpers=e(t.helpers),Ember.Handlebars.Compiler=function(){},t.Compiler&&(Ember.Handlebars.Compiler.prototype=e(t.Compiler.prototype)),Ember.Handlebars.Compiler.prototype.compiler=Ember.Handlebars.Compiler,Ember.Handlebars.JavaScriptCompiler=function(){},t.JavaScriptCompiler&&(Ember.Handlebars.JavaScriptCompiler.prototype=e(t.JavaScriptCompiler.prototype),Ember.Handlebars.JavaScriptCompiler.prototype.compiler=Ember.Handlebars.JavaScriptCompiler),Ember.Handlebars.JavaScriptCompiler.prototype.namespace="Ember.Handlebars",Ember.Handlebars.JavaScriptCompiler.prototype.initializeBuffer=function(){return"''"},Ember.Handlebars.JavaScriptCompiler.prototype.appendToBuffer=function(e){return"data.buffer.push("+e+");"},Ember.Handlebars.Compiler.prototype.mustache=function(e){if(e.params.length||e.hash)return t.Compiler.prototype.mustache.call(this,e);var n=new t.AST.IdNode(["_triageMustache"]);return e.escaped||(e.hash=e.hash||new t.AST.HashNode([]),e.hash.pairs.push(["unescaped",new t.AST.StringNode("true")])),e=new t.AST.MustacheNode([n].concat([e.id]),e.hash,!e.escaped),t.Compiler.prototype.mustache.call(this,e)},Ember.Handlebars.precompile=function(e){var n=t.parse(e),r={knownHelpers:{action:!0,unbound:!0,bindAttr:!0,template:!0,view:!0,_triageMustache:!0},data:!0,stringParams:!0},i=(new Ember.Handlebars.Compiler).compile(n,r);return(new Ember.Handlebars.JavaScriptCompiler).compile(i,r,undefined,!0)},t.compile&&(Ember.Handlebars.compile=function(e){var n=t.parse(e),r={data:!0,stringParams:!0},i=(new Ember.Handlebars.Compiler).compile(n,r),s=(new Ember.Handlebars.JavaScriptCompiler).compile(i,r,undefined,!0);return t.template(s)});var n=Ember.Handlebars.normalizePath=function(e,t,n){var r=n&&n.keywords||{},i,s;return i=t.split(".",1)[0],r.hasOwnProperty(i)&&(e=r[i],s=!0,t===i?t="":t=t.substr(i.length+1)),{root:e,path:t,isKeyword:s}};Ember.Handlebars.getPath=function(e,t,r){var i=r&&r.data,s=n(e,t,i),o;return e=s.root,t=s.path,o=Ember.get(e,t),o===undefined&&e!==Ember.lookup&&Ember.isGlobalPath(t)&&(o=Ember.get(Ember.lookup,t)),o},Ember.Handlebars.registerHelper("helperMissing",function(e,t){var n,r="";throw n="%@ Handlebars error: Could not find property '%@' on object %@.",t.data&&(r=t.data.view),new Ember.Error(Ember.String.fmt(n,[r,e,this]))})}(),function(){Ember.String.htmlSafe=function(e){return new Handlebars.SafeString(e)};var e=Ember.String.htmlSafe;if(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.String)String.prototype.htmlSafe=function(){return e(this)}}(),function(){var e=Ember.set,t=Ember.get,n={remove:function(e){e.morph.remove()},prepend:function(e,t){e.morph.prepend(t)},after:function(e,t){e.morph.after(t)},html:function(e,t){e.morph.html(t)},replace:function(e){var n=e.morph;e.transitionTo("preRender"),e.clearRenderedChildren();var r=e.renderToBuffer();Ember.run.schedule("render",this,function(){if(t(e,"isDestroyed"))return;e.invalidateRecursively("element"),e._notifyWillInsertElement(),n.replaceWith(r.string()),e.transitionTo("inDOM"),e._notifyDidInsertElement()})},empty:function(e){e.morph.html("")}};Ember._Metamorph=Ember.Mixin.create({isVirtual:!0,tagName:"",instrumentName:"render.metamorph",init:function(){this._super(),this.morph=Metamorph()},beforeRender:function(e){e.push(this.morph.startTag())},afterRender:function(e){e.push(this.morph.endTag())},createElement:function(){var e=this.renderToBuffer();this.outerHTML=e.string(),this.clearBuffer()},domManager:n}),Ember._MetamorphView=Ember.View.extend(Ember._Metamorph),Ember._SimpleMetamorphView=Ember.CoreView.extend(Ember._Metamorph)}(),function(){var e=Ember.get,t=Ember.set,n=Ember.Handlebars.getPath;Ember._SimpleHandlebarsView=Ember._SimpleMetamorphView.extend({instrumentName:"render.simpleHandlebars",normalizedValue:Ember.computed(function(){var t=e(this,"path"),r=e(this,"pathRoot"),i,s;return t===""?i=r:(s=e(this,"templateData"),i=n(r,t,{data:s})),i}).property("path","pathRoot").volatile(),render:function(t){var n=e(this,"isEscaped"),r=e(this,"normalizedValue");r===null||r===undefined?r="":r instanceof Handlebars.SafeString||(r=String(r)),n&&(r=Handlebars.Utils.escapeExpression(r)),t.push(r);return},rerender:function(){switch(this.state){case"preRender":case"destroyed":break;case"inBuffer":throw new Error("Something you did tried to replace an {{expression}} before it was inserted into the DOM.");case"hasElement":case"inDOM":this.domManager.replace(this)}return this},transitionTo:function(e){this.state=e}}),Ember._HandlebarsBoundView=Ember._MetamorphView.extend({instrumentName:"render.boundHandlebars",shouldDisplayFunc:null,preserveContext:!1,previousContext:null,displayTemplate:null,inverseTemplate:null,path:null,pathRoot:null,normalizedValue:Ember.computed(function(){var t=e(this,"path"),r=e(this,"pathRoot"),i=e(this,"valueNormalizerFunc"),s,o;return t===""?s=r:(o=e(this,"templateData"),s=n(r,t,{data:o})),i?i(s):s}).property("path","pathRoot","valueNormalizerFunc").volatile(),rerenderIfNeeded:function(){!e(this,"isDestroyed")&&e(this,"normalizedValue")!==this._lastNormalizedValue&&this.rerender()},render:function(n){var r=
e(this,"isEscaped"),i=e(this,"shouldDisplayFunc"),s=e(this,"preserveContext"),o=e(this,"previousContext"),u=e(this,"inverseTemplate"),a=e(this,"displayTemplate"),f=e(this,"normalizedValue");this._lastNormalizedValue=f;if(i(f)){t(this,"template",a);if(s)t(this,"_context",o);else{if(!a){f===null||f===undefined?f="":f instanceof Handlebars.SafeString||(f=String(f)),r&&(f=Handlebars.Utils.escapeExpression(f)),n.push(f);return}t(this,"_context",f)}}else u?(t(this,"template",u),s?t(this,"_context",o):t(this,"_context",f)):t(this,"template",function(){return""});return this._super(n)}})}(),function(){function e(e,t,n,r,i){var u=t.data,a=t.fn,f=t.inverse,l=u.view,c=this,h,p,d;d=o(c,e,u),h=d.root,p=d.path;if("object"==typeof this){var v=l.createChildView(Ember._HandlebarsBoundView,{preserveContext:n,shouldDisplayFunc:r,valueNormalizerFunc:i,displayTemplate:a,inverseTemplate:f,path:p,pathRoot:h,previousContext:c,isEscaped:!t.hash.unescaped,templateData:t.data});l.appendChild(v);var m=function(){Ember.run.scheduleOnce("render",v,"rerenderIfNeeded")};p!==""&&(Ember.addObserver(h,p,m),l.one("willClearRender",function(){Ember.removeObserver(h,p,m)}))}else u.buffer.push(s(h,p,t))}function t(e,t){var n=t.data,r=n.view,i=this,u,a,f;f=o(i,e,n),u=f.root,a=f.path;if("object"==typeof this){var l=Ember._SimpleHandlebarsView.create().setProperties({path:a,pathRoot:u,isEscaped:!t.hash.unescaped,previousContext:i,templateData:t.data});r.createChildView(l),r.appendChild(l);var c=function(){Ember.run.scheduleOnce("render",l,"rerender")};a!==""&&(Ember.addObserver(u,a,c),r.one("willClearRender",function(){Ember.removeObserver(u,a,c)}))}else n.buffer.push(s(u,a,t))}var n=Ember.get,r=Ember.set,i=Ember.String.fmt,s=Ember.Handlebars.getPath,o=Ember.Handlebars.normalizePath,u=Ember.ArrayPolyfills.forEach,a=Ember.Handlebars,f=a.helpers;a.registerHelper("_triageMustache",function(e,t){return f[e]?f[e].call(this,t):f.bind.apply(this,arguments)}),a.registerHelper("bind",function(n,r){var i=r.contexts&&r.contexts[0]||this;return r.fn?e.call(i,n,r,!1,function(e){return!Ember.none(e)}):t.call(i,n,r)}),a.registerHelper("boundIf",function(t,r){var i=r.contexts&&r.contexts[0]||this,s=function(e){return Ember.typeOf(e)==="array"?n(e,"length")!==0:!!e};return e.call(i,t,r,!0,s,s)}),a.registerHelper("with",function(t,n){if(arguments.length===4){var r,i,s,u;n=arguments[3],r=arguments[2],i=arguments[0];if(Ember.isGlobalPath(i))Ember.bind(n.data.keywords,r,i);else{u=o(this,i,n.data),i=u.path,s=u.root;var a=Ember.$.expando+Ember.guidFor(s);n.data.keywords[a]=s;var l=i?a+"."+i:a;Ember.bind(n.data.keywords,r,l)}return e.call(this,i,n,!0,function(e){return!Ember.none(e)})}return f.bind.call(n.contexts[0],t,n)}),a.registerHelper("if",function(e,t){return f.boundIf.call(t.contexts[0],e,t)}),a.registerHelper("unless",function(e,t){var n=t.fn,r=t.inverse;return t.fn=r,t.inverse=n,f.boundIf.call(t.contexts[0],e,t)}),a.registerHelper("bindAttr",function(e){var t=e.hash,n=e.data.view,r=[],i=this,f=++Ember.$.uuid,l=t["class"];if(l!==null&&l!==undefined){var c=a.bindClasses(this,l,n,f,e);r.push('class="'+Handlebars.Utils.escapeExpression(c.join(" "))+'"'),delete t["class"]}var h=Ember.keys(t);return u.call(h,function(u){var a=t[u],l,c;c=o(i,a,e.data),l=c.root,a=c.path;var h=a==="this"?l:s(l,a,e),p=Ember.typeOf(h),d,v;d=function(){var t=s(l,a,e),r=n.$("[data-bindattr-"+f+"='"+f+"']");if(!r||r.length===0){Ember.removeObserver(l,a,v);return}Ember.View.applyAttributeBindings(r,u,t)},v=function(){Ember.run.scheduleOnce("render",d)},a!=="this"&&(Ember.addObserver(l,a,v),n.one("willClearRender",function(){Ember.removeObserver(l,a,v)})),p==="string"||p==="number"&&!isNaN(h)?r.push(u+'="'+Handlebars.Utils.escapeExpression(h)+'"'):h&&p==="boolean"&&r.push(u+'="'+u+'"')},this),r.push("data-bindattr-"+f+'="'+f+'"'),new a.SafeString(r.join(" "))}),a.bindClasses=function(e,t,n,r,i){var a=[],f,l,c,h=function(e,t,n){var r,i=t.path;return i==="this"?r=e:i===""?r=!0:r=s(e,i,n),Ember.View._classStringForValue(i,r,t.className,t.falsyClassName)};return u.call(t.split(" "),function(t){var s,u,p,d=Ember.View._parsePropertyPath(t),v=d.path,m=e,g;v!==""&&v!=="this"&&(g=o(e,v,i.data),m=g.root,v=g.path),u=function(){f=h(m,d,i),c=r?n.$("[data-bindattr-"+r+"='"+r+"']"):n.$(),!c||c.length===0?Ember.removeObserver(m,v,p):(s&&c.removeClass(s),f?(c.addClass(f),s=f):s=null)},p=function(){Ember.run.scheduleOnce("render",u)},v!==""&&v!=="this"&&(Ember.addObserver(m,v,p),n.one("willClearRender",function(){Ember.removeObserver(m,v,p)})),l=h(m,d,i),l&&(a.push(l),s=l)}),a}}(),function(){var e=Ember.get,t=Ember.set,n=/^parentView\./,r=Ember.Handlebars;r.ViewHelper=Ember.Object.create({propertiesFromHTMLOptions:function(e,t){var n=e.hash,r=e.data,i={},s=n["class"],o=!1;n.id&&(i.elementId=n.id,o=!0),s&&(s=s.split(" "),i.classNames=s,o=!0),n.classBinding&&(i.classNameBindings=n.classBinding.split(" "),o=!0),n.classNameBindings&&(i.classNameBindings===undefined&&(i.classNameBindings=[]),i.classNameBindings=i.classNameBindings.concat(n.classNameBindings.split(" ")),o=!0),n.attributeBindings&&(i.attributeBindings=null,o=!0),o&&(n=Ember.$.extend({},n),delete n.id,delete n["class"],delete n.classBinding);var u;for(var a in n){if(!n.hasOwnProperty(a))continue;Ember.IS_BINDING.test(a)&&typeof n[a]=="string"&&(u=this.contextualizeBindingPath(n[a],r),u&&(n[a]=u))}if(i.classNameBindings)for(var f in i.classNameBindings){var l=i.classNameBindings[f];if(typeof l=="string"){var c=Ember.View._parsePropertyPath(l);u=this.contextualizeBindingPath(c.path,r),u&&(i.classNameBindings[f]=u+c.classNames)}}return i.bindingContext=t,Ember.$.extend(n,i)},contextualizeBindingPath:function(e,t){var n=Ember.Handlebars.normalizePath(null,e,t);return n.isKeyword?"templateData.keywords."+e:Ember.isGlobalPath(e)?null:e==="this"?"bindingContext":"bindingContext."+e},helper:function(e,t,n){var i=n.inverse,s=n.data,o=s.view,u=n.fn,a=n.hash,f;"string"==typeof t?f=r.getPath(e,t,n):f=t;var l=this.propertiesFromHTMLOptions(n,e),c=s.view;l.templateData=n.data,u&&(l.template=u),!f.proto().controller&&!f.proto().controllerBinding&&!l.controller&&!l.controllerBinding&&(l._context=e),c.appendChild(f,l)}}),r.registerHelper("view",function(e,t){return e&&e.data&&e.data.isRenderData&&(t=e,e="Ember.View"),r.ViewHelper.helper(this,e,t)})}(),function(){var e=Ember.get,t=Ember.Handlebars.getPath,n=Ember.String.fmt;Ember.Handlebars.registerHelper("collection",function(n,r){n&&n.data&&n.data.isRenderData&&(r=n,n=undefined);var i=r.fn,s=r.data,o=r.inverse,u;u=n?t(this,n,r):Ember.CollectionView;var a=r.hash,f={},l,c,h=a.itemViewClass,p=u.proto();delete a.itemViewClass,c=h?t(p,h,r):p.itemViewClass;for(var d in a)a.hasOwnProperty(d)&&(l=d.match(/^item(.)(.*)$/),l&&(f[l[1].toLowerCase()+l[2]]=a[d],delete a[d]));var v=a.tagName||p.tagName;i&&(f.template=i,delete r.fn);var m;o&&o!==Handlebars.VM.noop?(m=e(p,"emptyViewClass"),m=m.extend({template:o,tagName:f.tagName})):a.emptyViewClass&&(m=t(this,a.emptyViewClass,r)),a.emptyView=m,a.eachHelper==="each"&&(f._context=Ember.computed(function(){return e(this,"content")}).property("content"),delete a.eachHelper);var g=Ember.Handlebars.ViewHelper.propertiesFromHTMLOptions({data:s,hash:f},this);return a.itemViewClass=c.extend(g),Ember.Handlebars.helpers.view.call(this,u,r)})}(),function(){var e=Ember.Handlebars.getPath;Ember.Handlebars.registerHelper("unbound",function(t,n){var r=n.contexts&&n.contexts[0]||this;return e(r,t,n)})}(),function(){var e=Ember.Handlebars.getPath,t=Ember.Handlebars.normalizePath;Ember.Handlebars.registerHelper("log",function(n,r){var i=r.contexts&&r.contexts[0]||this,s=t(i,n,r.data),o=s.root,u=s.path,a=u==="this"?o:e(o,u,r);Ember.Logger.log(a)}),Ember.Handlebars.registerHelper("debugger",function(){debugger})}(),function(){var e=Ember.get,t=Ember.set;Ember.Handlebars.EachView=Ember.CollectionView.extend(Ember._Metamorph,{itemViewClass:Ember._MetamorphView,emptyViewClass:Ember._MetamorphView,createChildView:function(n,r){n=this._super(n,r);var i=e(this,"keyword");if(i){var s=e(n,"templateData");s=Ember.copy(s),s.keywords=n.cloneKeywords(),t(n,"templateData",s);var o=e(n,"content");s.keywords[i]=o}return n}}),Ember.Handlebars.registerHelper("each",function(e,t){if(arguments.length===4){var n=arguments[0];t=arguments[3],e=arguments[2],e===""&&(e="this"),t.hash.keyword=n}else t.hash.eachHelper="each";return t.hash.contentBinding=e,Ember.Handlebars.helpers.collection.call(this,"Ember.Handlebars.EachView",t)})}(),function(){Ember.Handlebars.registerHelper("template",function(e,t){var n=Ember.TEMPLATES[e];Ember.TEMPLATES[e](this,{data:t.data})})}(),function(){var e=Ember.Handlebars,t=e.getPath,n=Ember.get,r=Array.prototype.slice,i=e.ActionHelper={registeredActions:{}};i.registerAction=function(e,t){var n=(++Ember.$.uuid).toString();return i.registeredActions[n]={eventName:t.eventName,handler:function(n){var r=n.shiftKey||n.metaKey||n.altKey||n.ctrlKey,i=n.which>1,s=r||i;if(t.link&&s)return;n.preventDefault(),n.view=t.view,t.hasOwnProperty("context")&&(n.context=t.context),t.hasOwnProperty("contexts")&&(n.contexts=t.contexts);var o=t.target;return o.isState&&typeof o.send=="function"?o.send(e,n):o[e].call(o,n)}},t.view.on("willClearRender",function(){delete i.registeredActions[n]}),n},e.registerHelper("action",function(s){var o=arguments[arguments.length-1],u=r.call(arguments,1,-1),a=o.hash,f=o.data.view,l,c,h,p={eventName:a.on||"click"};p.view=f=n(f,"concreteView");if(a.target)l=t(this,a.target,o);else if(c=o.data.keywords.controller)l=n(c,"target");p.target=l=l||f,u.length&&(p.contexts=u=Ember.EnumerableUtils.map(u,function(e){return t(this,e,o)},this),p.context=u[0]);var d=[],v;a.href&&l.urlForEvent&&(v=l.urlForEvent.apply(l,[s].concat(u)),d.push('href="'+v+'"'),p.link=!0);var m=i.registerAction(s,p);return d.push('data-ember-action="'+m+'"'),new e.SafeString(d.join(" "))})}(),function(){var e=Ember.get,t=Ember.set;Ember.Handlebars.registerHelper("yield",function(t){var n=t.data.view,r;while(n&&!e(n,"layout"))n=e(n,"parentView");r=e(n,"template"),r&&r(this,t)})}(),function(){Ember.Handlebars.OutletView=Ember.ContainerView.extend(Ember._Metamorph),Ember.Handlebars.registerHelper("outlet",function(e,t){return e&&e.data&&e.data.isRenderData&&(t=e,e="view"),t.hash.currentViewBinding="view.context."+e,Ember.Handlebars.helpers.view.call(this,Ember.Handlebars.OutletView,t)})}(),function(){}(),function(){}(),function(){var e=Ember.set,t=Ember.get;Ember.Checkbox=Ember.View.extend({classNames:["ember-checkbox"],tagName:"input",attributeBindings:["type","checked","disabled","tabindex"],type:"checkbox",checked:!1,disabled:!1,init:function(){this._super(),this.on("change",this,this._updateElementValue)},_updateElementValue:function(){e(this,"checked",this.$().prop("checked"))}})}(),function(){var e=Ember.get,t=Ember.set;Ember.TextSupport=Ember.Mixin.create({value:"",attributeBindings:["placeholder","disabled","maxlength","tabindex"],placeholder:null,disabled:!1,maxlength:null,insertNewline:Ember.K,cancel:Ember.K,init:function(){this._super(),this.on("focusOut",this,this._elementValueDidChange),this.on("change",this,this._elementValueDidChange),this.on("keyUp",this,this.interpretKeyEvents)},interpretKeyEvents:function(e){var t=Ember.TextSupport.KEY_EVENTS,n=t[e.keyCode];this._elementValueDidChange();if(n)return this[n](e)},_elementValueDidChange:function(){t(this,"value",this.$().val())}}),Ember.TextSupport.KEY_EVENTS={13:"insertNewline",27:"cancel"}}(),function(){var e=Ember.get,t=Ember.set;Ember.TextField=Ember.View.extend(Ember.TextSupport,{classNames:["ember-text-field"],tagName:"input",attributeBindings:["type","value","size"],value:"",type:"text",size:null})}(),function(){var e=Ember.get,t=Ember.set;Ember.Button=Ember.View.extend(Ember.TargetActionSupport,{classNames:["ember-button"],classNameBindings:["isActive"],tagName:"button",propagateEvents:!1,attributeBindings:["type","disabled","href","tabindex"],targetObject:Ember.computed(function(){var t=e(this,"target"),n=e(this,"context"),r=e(this,"templateData");return typeof t!="string"?t:Ember.Handlebars.getPath(n,t,{data:r})}).property("target"),type:Ember.computed(function(e,t){var n=this.get("tagName");t!==undefined&&(this._type=t);if(this._type!==undefined)return this._type;if(n==="input"||n==="button")return"button"}).property("tagName"),disabled:!1,href:Ember.computed(function(){return this.get("tagName")==="a"?"#":null}).property("tagName"),mouseDown:function(){return e(this,"disabled")||(t(this,"isActive",!0),this._mouseDown=!0,this._mouseEntered=!0),e(this,"propagateEvents")},mouseLeave:function(){this._mouseDown&&(t(this,"isActive",!1),this._mouseEntered=!1)},mouseEnter:function(){this._mouseDown&&(t(this,"isActive",!0),this._mouseEntered=!0)},mouseUp:function(n){return e(this,"isActive")&&(this.triggerAction(),t(this,"isActive",!1)),this._mouseDown=!1,this._mouseEntered=!1,e(this,"propagateEvents")},keyDown:function(e){(e.keyCode===13||e.keyCode===32)&&this.mouseDown()},keyUp:function(e){(e.keyCode===13||e.keyCode===32)&&this.mouseUp()},touchStart:function(e){return this.mouseDown(e)},touchEnd:function(e){return this.mouseUp(e)},init:function(){this._super()}})}(),function(){var e=Ember.get,t=Ember.set;Ember.TextArea=Ember.View.extend(Ember.TextSupport,{classNames:["ember-text-area"],tagName:"textarea",attributeBindings:["rows","cols"],rows:null,cols:null,_updateElementValue:Ember.observer(function(){var t=e(this,"value"),n=this.$();n&&t!==n.val()&&n.val(t)},"value"),init:function(){this._super(),this.on("didInsertElement",this,this._updateElementValue)}})}(),function(){Ember.TabContainerView=Ember.View.extend({init:function(){this._super()}})}(),function(){var e=Ember.get;Ember.TabPaneView=Ember.View.extend({tabsContainer:Ember.computed(function(){return this.nearestOfType(Ember.TabContainerView)}).property().volatile(),isVisible:Ember.computed(function(){return e(this,"viewName")===e(this,"tabsContainer.currentView")}).property("tabsContainer.currentView").volatile(),init:function(){this._super()}})}(),function(){var e=Ember.get,t=Ember.setPath;Ember.TabView=Ember.View.extend({tabsContainer:Ember.computed(function(){return this.nearestInstanceOf(Ember.TabContainerView)}).property().volatile(),mouseUp:function(){t(this,"tabsContainer.currentView",e(this,"value"))},init:function(){this._super()}})}(),function(){}(),function(){var e=Ember.set,t=Ember.get,n=Ember.EnumerableUtils.indexOf,r=Ember.EnumerableUtils.indexesOf,i=Ember.EnumerableUtils.replace,s=Ember.isArray;Ember.Select=Ember.View.extend({tagName:"select",classNames:["ember-select"],defaultTemplate:Ember.Handlebars.compile('{{#if view.prompt}}<option value>{{view.prompt}}</option>{{/if}}{{#each view.content}}{{view Ember.SelectOption contentBinding="this"}}{{/each}}'),attributeBindings:["multiple","tabindex"],multiple:!1,content:null,selection:null,value:Ember.computed(function(e,n){if(arguments.length===2)return n;var r=t(this,"optionValuePath").replace(/^content\.?/,"");return r?t(this,"selection."+r):t(this,"selection")}).property("selection"),prompt:null,optionLabelPath:"content",optionValuePath:"content",_change:function(){t(this,"multiple")?this._changeMultiple():this._changeSingle()},selectionDidChange:Ember.observer(function(){var n=t(this,"selection");if(t(this,"multiple")){if(!s(n)){e(this,"selection",Ember.A([n]));return}this._selectionDidChangeMultiple()}else this._selectionDidChangeSingle()},"selection.@each"),valueDidChange:Ember.observer(function(){var e=t(this,"content"),n=t(this,"value"),r=t(this,"optionValuePath").replace(/^content\.?/,""),i=r?t(this,"selection."+r):t(this,"selection"),s;n!==i&&(s=e.find(function(e){return n===(r?t(e,r):e)}),this.set("selection",s))},"value"),_triggerChange:function(){var e=t(this,"selection"),n=t(this,"value");e&&this.selectionDidChange(),n&&this.valueDidChange(),this._change()},_changeSingle:function(){var n=this.$()[0].selectedIndex,r=t(this,"content"),i=t(this,"prompt");if(!r)return;if(i&&n===0){e(this,"selection",null);return}i&&(n-=1),e(this,"selection",r.objectAt(n))},_changeMultiple:function(){var n=this.$("option:selected"),r=t(this,"prompt"),o=r?1:0,u=t(this,"content"),a=t(this,"selection");if(!u)return;if(n){var f=n.map(function(){return this.index-o}).toArray(),l=u.objectsAt(f);s(a)?i(a,0,t(a,"length"),l):e(this,"selection",l)}},_selectionDidChangeSingle:function(){var e=this.get("element");if(!e)return;var r=t(this,"content"),i=t(this,"selection"),s=r?n(r,i):-1,o=t(this,"prompt");o&&(s+=1),e&&(e.selectedIndex=s)},_selectionDidChangeMultiple:function(){var e=t(this,"content"),i=t(this,"selection"),s=e?r(e,i):[-1],o=t(this,"prompt"),u=o?1:0,a=this.$("option"),f;a&&a.each(function(){f=this.index>-1?this.index-u:-1,this.selected=n(s,f)>-1})},init:function(){this._super(),this.on("didInsertElement",this,this._triggerChange),this.on("change",this,this._change)}}),Ember.SelectOption=Ember.View.extend({tagName:"option",attributeBindings:["value","selected"],defaultTemplate:function(e,t){t={data:t.data,hash:{}},Ember.Handlebars.helpers.bind.call(e,"view.label",t)},init:function(){this.labelPathDidChange(),this.valuePathDidChange(),this._super()},selected:Ember.computed(function(){var e=t(this,"content"),r=t(this,"parentView.selection");return t(this,"parentView.multiple")?r&&n(r,e.valueOf())>-1:e==r}).property("content","parentView.selection").volatile(),labelPathDidChange:Ember.observer(function(){var e=t(this,"parentView.optionLabelPath");if(!e)return;Ember.defineProperty(this,"label",Ember.computed(function(){return t(this,e)}).property(e))},"parentView.optionLabelPath"),valuePathDidChange:Ember.observer(function(){var e=t(this,"parentView.optionValuePath");if(!e)return;Ember.defineProperty(this,"value",Ember.computed(function(){return t(this,e)}).property(e))},"parentView.optionValuePath")})}(),function(){}(),function(){function e(){Ember.Handlebars.bootstrap(Ember.$(document))}Ember.Handlebars.bootstrap=function(e){var t='script[type="text/x-handlebars"], script[type="text/x-raw-handlebars"]';Ember.$(t,e).each(function(){var e=Ember.$(this),t=e.attr("type"),n=e.attr("type")==="text/x-raw-handlebars"?Ember.$.proxy(Handlebars.compile,Handlebars):Ember.$.proxy(Ember.Handlebars.compile,Ember.Handlebars),r=e.attr("data-template-name")||e.attr("id")||"application",i=n(e.html());Ember.TEMPLATES[r]=i,e.remove()})},Ember.onLoad("application",e)}(),function(){}(),function(){}(),ansiparse=function(e){var t=null,n=null,r="",i=[],s=[],o={};for(var u=0;u<e.length;u++){if(t!=null){t==""&&e[u]=="["?(r&&(o.text=r,s.push(o),o={},r=""),t=null,n=""):(r+=t+e[u],t=null);continue}if(n!=null){e[u]==";"?(i.push(n),n=""):e[u]=="m"?(i.push(n),n=null,r="",i.forEach(function(e){ansiparse.foregroundColors[e]?o.foreground=ansiparse.foregroundColors[e]:ansiparse.backgroundColors[e]?o.background=ansiparse.backgroundColors[e]:e==39?delete o.foreground:e==49?delete o.background:ansiparse.styles[e]?o[ansiparse.styles[e]]=!0:e==22?o.bold=!1:e==23?o.italic=!1:e==24&&(o.underline=!1)}),i=[]):n+=e[u];continue}e[u]==""?t=e[u]:r+=e[u]}return r&&(o.text=r+(t?t:""),s.push(o)),s},ansiparse.foregroundColors={30:"black",31:"red",32:"green",33:"yellow",34:"blue",35:"magenta",36:"cyan",37:"white",90:"grey"},ansiparse.backgroundColors={40:"black",41:"red",42:"green",43:"yellow",44:"blue",45:"magenta",46:"cyan",47:"white"},ansiparse.styles={1:"bold",3:"italic",4:"underline"},typeof module=="object"&&typeof window=="undefined"&&(module.exports=ansiparse),function(){window.DS=Ember.Namespace.create({CURRENT_API_REVISION:4})}(),function(){var e=Ember.get,t=Ember.set;DS.RecordArray=Ember.ArrayProxy.extend({type:null,content:null,store:null,objectAtContent:function(t){var n=e(this,"content"),r=n.objectAt(t),i=e(this,"store");if(r!==undefined)return i.findByClientId(e(this,"type"),r)}})}(),function(){var e=Ember.get;DS.FilteredRecordArray=DS.RecordArray.extend({filterFunction:null,replace:function(){var t=e(this,"type").toString();throw new Error("The result of a client-side filter (on "+t+") is immutable.")},updateFilter:Ember.observer(function(){var t=e(this,"store");t.updateRecordArrayFilter(this,e(this,"type"),e(this,"filterFunction"))},"filterFunction")})}(),function(){var e=Ember.get,t=Ember.set;DS.AdapterPopulatedRecordArray=DS.RecordArray.extend({query:null,isLoaded:!1,replace:function(){var t=e(this,"type").toString();throw new Error("The result of a server query (on "+t+") is immutable.")},load:function(n){var r=e(this,"store"),i=e(this,"type"),s=r.loadMany(i,n).clientIds;this.beginPropertyChanges(),t(this,"content",Ember.A(s)),t(this,"isLoaded",!0),this.endPropertyChanges()}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.guidFor,r=function(){this.hash={},this.list=[]};r.prototype={add:function(e){var t=this.hash,r=n(e);if(t.hasOwnProperty(r))return;t[r]=!0,this.list.push(e)},remove:function(e){var t=this.hash,r=n(e);if(!t.hasOwnProperty(r))return;delete t[r];var i=this.list,s=Ember.EnumerableUtils.indexOf(this,e);i.splice(s,1)},isEmpty:function(){return this.list.length===0}};var i=Ember.State.extend({recordWasAdded:function(t,n){var r=t.dirty,i;r.add(n),i=function(){e(n,"isDirty")||(n.removeObserver("isDirty",i),t.send("childWasSaved",n))},n.addObserver("isDirty",i)},recordWasRemoved:function(t,n){var r=t.dirty,i;r.add(n),i=function(){n.removeObserver("isDirty",i),e(n,"isDirty")||t.send("childWasSaved",n)},n.addObserver("isDirty",i)}}),s={loading:Ember.State.create({isLoaded:!1,isDirty:!1,loadedRecords:function(e,t){e.decrement(t)},becameLoaded:function(e){e.transitionTo("clean")}}),clean:i.create({isLoaded:!0,isDirty:!1,recordWasAdded:function(e,t){this._super(e,t),e.goToState("dirty")},update:function(e,n){var r=e.manyArray;t(r,"content",n)}}),dirty:i.create({isLoaded:!0,isDirty:!0,childWasSaved:function(e,t){var n=e.dirty;n.remove(t),n.isEmpty()&&e.send("arrayBecameSaved")},arrayBecameSaved:function(e){e.goToState("clean")}})};DS.ManyArrayStateManager=Ember.StateManager.extend({manyArray:null,initialState:"loading",states:s,counter:0,init:function(){this._super(),this.dirty=new r,this.counter=e(this,"manyArray.length")},decrement:function(e){var t=this.counter=this.counter-e;t===0&&this.send("becameLoaded")}})}(),function(){var e=Ember.get,t=Ember.set;DS.ManyArray=DS.RecordArray.extend({init:function(){return t(this,"stateManager",DS.ManyArrayStateManager.create({manyArray:this})),this._super()},parentRecord:null,isDirty:Ember.computed(function(){return e(this,"stateManager.currentState.isDirty")}).property("stateManager.currentState").cacheable(),isLoaded:Ember.computed(function(){return e(this,"stateManager.currentState.isLoaded")}).property("stateManager.currentState").cacheable(),send:function(e,t){this.get("stateManager").send(e,t)},fetch:function(){var t=e(this,"content"),n=e(this,"store"),r=e(this,"type");n.fetchUnloadedClientIds(r,t)},replaceContent:function(t,n,r){var i=e(this,"parentRecord"),s=i&&!e(i,"id"),o=e(this,"stateManager");r=r.map(function(e){s&&e.send("waitingOn",i);var t=this.assignInverse(e,i);return e.get("transaction").relationshipBecameDirty(e,t,i),o.send("recordWasAdded",e),e.get("clientId")},this);var u=this.store,a=t+n,f;for(var l=t;l<a;l++){f=this.objectAt(l);var c=this.assignInverse(f,i,!0);f.get("transaction").relationshipBecameDirty(f,i,null),s&&f.send("doneWaitingOn",i),o.send("recordWasAdded",f)}this._super(t,n,r)},assignInverse:function(n,r,i){var s=e(n.constructor,"associations"),o=s.get(r.constructor),u,a,f;if(!o)return;for(var l=0,c=o.length;l<c;l++){u=o[l];if(u.kind==="belongsTo"){a=u;break}}if(a)return f=e(n,a.name),t(n,a.name,i?null:r),f},createRecord:function(t,n){var r=e(this,"parentRecord"),i=e(r,"store"),s=e(this,"type"),o;return n=n||e(r,"transaction"),o=i.createRecord.call(i,s,t,n),this.pushObject(o),o}})}(),function(){}(),function(){var e=Ember.get,t=Ember.set,n=Ember.String.fmt,r=Ember.EnumerableUtils.removeObject;DS.Transaction=Ember.Object.extend({init:function(){t(this,"buckets",{clean:Ember.Map.create(),created:Ember.Map.create(),updated:Ember.Map.create(),deleted:Ember.Map.create(),inflight:Ember.Map.create()}),this.dirtyRelationships={byChild:Ember.Map.create(),byNewParent:Ember.Map.create(),byOldParent:Ember.Map.create()}},createRecord:function(t,n){var r=e(this,"store");return r.createRecord(t,n,this)},add:function(t){var n=e(t,"transaction"),r=e(this,"store.defaultTransaction");this.adoptRecord(t)},commit:function(){var t=this,r;r=function(n,r,i){var s=t.bucketForType(n);s.forEach(function(t,n){if(n.isEmpty())return;var s=[];n.forEach(function(t){t.send("willCommit"),e(t,"isPending")===!1&&s.push(t)}),r.call(i,t,s)})};var i={updated:{eachType:function(e,t){r("updated",e,t)}},created:{eachType:function(e,t){r("created",e,t)}},deleted:{eachType:function(e,t){r("deleted",e,t)}}},s=e(this,"store"),o=e(s,"_adapter");this.removeCleanRecords();if(!o||!o.commit)throw n("Adapter is either null or does not implement `commit` method",this);o.commit(s,i)},rollback:function(){var t=e(this,"store"),n;["created","updated","deleted","inflight"].forEach(function(e){n=this.bucketForType(e),n.forEach(function(e,t){t.forEach(function(e){e.send("rollback")})})},this),this.removeCleanRecords()},remove:function(t){var n=e(this,"store.defaultTransaction");n.adoptRecord(t)},removeCleanRecords:function(){var e=this.bucketForType("clean"),t=this;e.forEach(function(e,n){n.forEach(function(e){t.remove(e)})})},bucketForType:function(t){var n=e(this,"buckets");return e(n,t)},adoptRecord:function(n){var r=e(n,"transaction");r&&r.removeFromBucket("clean",n),this.addToBucket("clean",n),t(n,"transaction",this)},addToBucket:function(e,t){var n=this.bucketForType(e),r=t.constructor,i=n.get(r);i||(i=Ember.OrderedSet.create(),n.set(r,i)),i.add(t)},removeFromBucket:function(e,t){var n=this.bucketForType(e),r=t.constructor,i=n.get(r);i.remove(t)},relationshipBecameDirty:function(e,t,n){var r=this.dirtyRelationships,i,s=r.byChild.get(e),o,u=!0;if(s)for(var a=0,f=s.length;a<f;a++)i=s[a],i.newParent===t&&(t=i.oldParent,this.removeRelationship(i),i.oldParent===n&&(u=!1));i={child:e,oldParent:t,newParent:n},u&&(this.addRelationshipTo("byChild",e,i),this.addRelationshipTo("byOldParent",t,i),this.addRelationshipTo("byNewParent",n,i))},removeRelationship:function(e){var t=this.dirtyRelationships;r(t.byOldParent.get(e.oldParent),e),r(t.byNewParent.get(e.newParent),e),r(t.byChild.get(e.child),e)},addRelationshipTo:function(e,t,n){var r=this.dirtyRelationships[e],i=r.get(t);i?i.push(n):(i=[n],r.set(t,i))},recordBecameDirty:function(e,t){this.removeFromBucket("clean",t),this.addToBucket(e,t)},recordBecameInFlight:function(e,t){this.removeFromBucket(e,t),this.addToBucket("inflight",t)},recordBecameClean:function(e,t){this.removeFromBucket(e,t),this.remove(t)}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.String.fmt,r={get:function(e){return this.savedData[e]}},i="unloaded",s="loading";DS.Store=Ember.Object.extend({init:function(){var n=e(this,"revision");if(n!==DS.CURRENT_API_REVISION&&!Ember.ENV.TESTING)throw new Error("Error: The Ember Data library has had breaking API changes since the last time you updated the library. Please review the list of breaking changes at https://github.com/emberjs/data/blob/master/BREAKING_CHANGES.md, then update your store's `revision` property to "+DS.CURRENT_API_REVISION);return(!e(DS,"defaultStore")||e(this,"isDefaultStore"))&&t(DS,"defaultStore",this),this.typeMaps={},this.recordCache=[],this.clientIdToId={},this.recordArraysByClientId={},this.loadingRecordArrays={},t(this,"defaultTransaction",this.transaction()),this._super()},transaction:function(){return DS.Transaction.create({store:this})},dataForRecord:function(t){var n=t.constructor,r=e(t,"clientId"),i=this.typeMapFor(n);return i.cidToHash[r]},adapter:null,_adapter:Ember.computed(function(){var t=e(this,"adapter");return typeof t=="string"?e(this,t,!1)||e(window,t):t}).property("adapter").cacheable(),clientIdCounter:1,createRecord:function(n,r,i){r=r||{};var s=n._create({store:this});i=i||e(this,"defaultTransaction"),i.adoptRecord(s);var o=e(s,"primaryKey"),u=r[o]||null,a;Ember.none(u)&&(a=e(this,"adapter"),a&&a.generateIdForRecord&&(u=a.generateIdForRecord(this,s),r.id=u));var f={},l;l=this.pushHash(f,u,n),s.send("didChangeData");var c=e(this,"recordCache");return t(s,"clientId",l),c[l]=s,s.setProperties(r),this.updateRecordArrays(n,l,e(s,"data")),s},deleteRecord:function(e){e.send("deleteRecord")},find:function(e,t,n){if(t===undefined)return this.findAll(e);if(n!==undefined)return this.findMany(e,t,n);if(Ember.typeOf(t)==="object")return this.findQuery(e,t);if(Ember.isArray(t))return this.findMany(e,t);var r=this.typeMapFor(e).idToCid[t];return this.findByClientId(e,r,t)},findByClientId:function(t,r,i){var o=e(this,"recordCache"),u,a;if(r!==undefined)a=o[r],a||(a=this.materializeRecord(t,r),u=this.typeMapFor(t).cidToHash,typeof u[r]=="object"&&a.send("didChangeData"));else{r=this.pushHash(s,i,t),a=this.materializeRecord(t,r,i);var f=e(this,"_adapter");if(!f||!f.find)throw n("Adapter is either null or does not implement `find` method",this);f.find(this,t,i)}return a},neededClientIds:function(e,t){var n=[],r=this.typeMapFor(e),o=r.cidToHash,u;for(var a=0,f=t.length;a<f;a++)u=t[a],o[u]===i&&(n.push(u),o[u]=s);return n},fetchUnloadedClientIds:function(e,t){var n=this.neededClientIds(e,t);this.fetchMany(e,n)},fetchMany:function(t,r){var i=this.clientIdToId,s=Ember.EnumerableUtils.map(r,function(e){return i[e]});if(!s.length)return;var o=e(this,"_adapter");if(!o||!o.findMany)throw n("Adapter is either null or does not implement `findMany` method",this);o.findMany(this,t,s)},findMany:function(e,t){var n=this.clientIdsForIds(e,t),r=this.neededClientIds(e,n),i=this.createManyArray(e,Ember.A(n)),s=n.length-r.length,o=this.loadingRecordArrays,u,a,f;i.send("loadedRecords",s);if(r.length){for(a=0,f=r.length;a<f;a++)u=r[a],o[u]?o[u].push(i):this.loadingRecordArrays[u]=[i];this.fetchMany(e,r)}return i},findQuery:function(t,r){var i=DS.AdapterPopulatedRecordArray.create({type:t,content:Ember.A([]),store:this}),s=e(this,"_adapter");if(!s||!s.findQuery)throw n("Adapter is either null or does not implement `findQuery` method",this);return s.findQuery(this,t,r,i),i},findAll:function(t){var n=this.typeMapFor(t),r=n.findAllCache;if(r)return r;var i=DS.RecordArray.create({type:t,content:Ember.A([]),store:this});this.registerRecordArray(i,t);var s=e(this,"_adapter");return s&&s.findAll&&s.findAll(this,t),n.findAllCache=i,i},filter:function(e,t,n){arguments.length===3?this.findQuery(e,t):arguments.length===2&&(n=t);var r=DS.FilteredRecordArray.create({type:e,content:Ember.A([]),store:this,filterFunction:n});return this.registerRecordArray(r,e,n),r},recordIsLoaded:function(e,t){return!Ember.none(this.typeMapFor(e).idToCid[t])},hashWasUpdated:function(t,n,r){if(e(r,"isDeleted"))return;this.updateRecordArrays(t,n,e(r,"data"))},commit:function(){var n=e(this,"defaultTransaction");t(this,"defaultTransaction",this.transaction()),n.commit()},didUpdateRecords:function(e,t){t?e.forEach(function(e,n){this.didUpdateRecord(e,t[n])},this):e.forEach(function(e){this.didUpdateRecord(e)},this)},didUpdateRecord:function(t,n){if(n){var r=e(t,"clientId"),i=this.typeMapFor(t.constructor).cidToHash;i[r]=n,t.send("didChangeData"),t.hashWasUpdated()}else t.send("didSaveData");t.send("didCommit")},didDeleteRecords:function(e){e.forEach(function(e){e.send("didCommit")})},didDeleteRecord:function(e){e.send("didCommit")},_didCreateRecord:function(t,n,r,i,s){var o=e(t,"data"),u,a;n?(r.cidToHash[i]=n,t.beginPropertyChanges(),t.send("didChangeData"),o.adapterDidUpdate(),t.hashWasUpdated(),t.endPropertyChanges(),u=n[s],r.idToCid[u]=i,this.clientIdToId[i]=u):o.commit(),t.send("didCommit")},didCreateRecords:function(t,n,r){var i=t.proto().primaryKey,s=this.typeMapFor(t),o;for(var u=0,a=e(n,"length");u<a;u++){var f=n[u],l=r[u];o=e(f,"clientId"),this._didCreateRecord(f,l,s,o,i)}},didCreateRecord:function(t,n){var r=t.constructor,i=this.typeMapFor(r),s,o;o=r.proto().primaryKey,n,s=e(t,"clientId"),this._didCreateRecord(t,n,i,s,o)},recordWasInvalid:function(e,t){e.send("becameInvalid",t)},registerRecordArray:function(e,t,n){var r=this.typeMapFor(t).recordArrays;r.push(e),this.updateRecordArrayFilter(e,t,n)},createManyArray:function(e,t){var n=DS.ManyArray.create({type:e,content:t,store:this});return t.forEach(function(e){var t=this.recordArraysForClientId(e);t.add(n)},this),n},updateRecordArrayFilter:function(t,n,i){var s=this.typeMapFor(n),o=s.cidToHash,u=s.clientIds,a,f,l,c=e(this,"recordCache"),h,p;for(var d=0,v=u.length;d<v;d++)a=u[d],h=!1,f=o[a],typeof f=="object"&&((p=c[a])?e(p,"isDeleted")||(l=e(p,"data"),h=!0):(r.savedData=f,l=r,h=!0),h&&this.updateRecordArray(t,i,n,a,l))},updateRecordArrays:function(t,n,r){var i=this.typeMapFor(t).recordArrays,s
;i.forEach(function(i){s=e(i,"filterFunction"),this.updateRecordArray(i,s,t,n,r)},this);var o=this.loadingRecordArrays[n],u;if(o){for(var a=0,f=o.length;a<f;a++)o[a].send("loadedRecords",1);this.loadingRecordArrays[n]=null}},updateRecordArray:function(t,n,r,i,s){var o;n?o=n(s):o=!0;var u=e(t,"content"),a=u.indexOf(i)!==-1,f=this.recordArraysForClientId(i);o&&!a?(f.add(t),u.pushObject(i)):!o&&a&&(f.remove(t),u.removeObject(i))},removeFromRecordArrays:function(t){var n=e(t,"clientId"),r=this.recordArraysForClientId(n);r.forEach(function(t){var r=e(t,"content");r.removeObject(n)})},recordArraysForClientId:function(t){var n=e(this,"recordArraysByClientId"),r=n[t];return r||(r=n[t]=Ember.OrderedSet.create()),r},typeMapFor:function(t){var n=e(this,"typeMaps"),r=Ember.guidFor(t),i=n[r];return i?i:n[r]={idToCid:{},clientIds:[],cidToHash:{},recordArrays:[]}},clientIdForId:function(e,t){var n=this.typeMapFor(e).idToCid[t];return n!==undefined?n:this.pushHash(i,t,e)},clientIdsForIds:function(e,t){var n=this.typeMapFor(e),r=n.idToCid;return Ember.EnumerableUtils.map(t,function(t){var n=r[t];return n?n:this.pushHash(i,t,e)},this)},load:function(t,n,i){if(i===undefined){i=n;var s=t.proto().primaryKey;n=i[s]}var o=this.typeMapFor(t),u=o.cidToHash,a=o.idToCid[n],f=e(this,"recordCache");if(a!==undefined){u[a]=i;var l=f[a];l&&l.send("didChangeData")}else a=this.pushHash(i,n,t);return r.savedData=i,this.updateRecordArrays(t,a,r),{id:n,clientId:a}},loadMany:function(t,n,r){var i=Ember.A([]);if(r===undefined){r=n,n=[];var s=t.proto().primaryKey;n=Ember.EnumerableUtils.map(r,function(e){return e[s]})}for(var o=0,u=e(n,"length");o<u;o++){var a=this.load(t,n[o],r[o]);i.pushObject(a.clientId)}return{clientIds:i,ids:n}},pushHash:function(e,t,n){var r=this.typeMapFor(n),i=r.idToCid,s=this.clientIdToId,o=r.clientIds,u=r.cidToHash,a=++this.clientIdCounter;return u[a]=e,t&&(i[t]=a,s[a]=t),o.push(a),a},materializeRecord:function(t,n,r){var i;return e(this,"recordCache")[n]=i=t._create({store:this,clientId:n,_id:r}),e(this,"defaultTransaction").adoptRecord(i),i.send("loadingData"),i},destroy:function(){return e(DS,"defaultStore")===this&&t(DS,"defaultStore",null),this._super()}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.guidFor,r=Ember.computed(function(t){var n=e(this,"parentState");if(n)return e(n,t)}).property(),i=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},s=function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!0;return!1};DS.State=Ember.State.extend({isLoaded:r,isDirty:r,isSaving:r,isDeleted:r,isError:r,isNew:r,isValid:r,isPending:r,dirtyType:r});var o=function(n,r){var i=r.key,s=r.value,o=e(n,"record"),u=e(o,"data");t(u,i,s)},u=function(t,n){var r=n.key,i=n.value,s=e(t,"record"),o=e(s,"data");o.setAssociation(r,i)},a=function(t){var n=e(t,"record"),r=e(n,"data");r._savedData=null,n.notifyPropertyChange("data")},f=function(t,r){var i=e(t,"record"),s=e(i,"pendingQueue"),o=n(r),u=function(){e(r,"id")&&(t.send("doneWaitingOn",r),Ember.removeObserver(r,"id",u))};s[o]=[r,u],Ember.addObserver(r,"id",u)},l=Ember.Mixin.create({setProperty:o,setAssociation:u}),c=Ember.Mixin.create({deleteRecord:function(t){var n=e(t,"record");this._super(t),n.withTransaction(function(e){e.recordBecameClean("created",n)}),t.goToState("deleted.saved")}}),h=Ember.Mixin.create({deleteRecord:function(t){this._super(t);var n=e(t,"record");n.withTransaction(function(e){e.recordBecameClean("updated",n)}),t.goToState("deleted")}}),p=DS.State.extend({initialState:"uncommitted",isDirty:!0,uncommitted:DS.State.extend({enter:function(t){var n=e(this,"dirtyType"),r=e(t,"record");r.withTransaction(function(e){e.recordBecameDirty(n,r)})},deleteRecord:Ember.K,waitingOn:function(e,t){f(e,t),e.goToState("pending")},willCommit:function(e){e.goToState("inFlight")},becameInvalid:function(t){var n=e(this,"dirtyType"),r=e(t,"record");r.withTransaction(function(e){e.recordBecameInFlight(n,r)}),t.goToState("invalid")},rollback:function(t){var n=e(t,"record"),r=e(this,"dirtyType"),i=e(n,"data");i.rollback(),n.withTransaction(function(e){e.recordBecameClean(r,n)}),t.goToState("saved")}},l),inFlight:DS.State.extend({isSaving:!0,enter:function(t){var n=e(this,"dirtyType"),r=e(t,"record");r.withTransaction(function(e){e.recordBecameInFlight(n,r)})},didCommit:function(t){var n=e(this,"dirtyType"),r=e(t,"record");r.withTransaction(function(e){e.recordBecameClean("inflight",r)}),t.goToState("saved"),t.send("invokeLifecycleCallbacks",n)},becameInvalid:function(n,r){var i=e(n,"record");t(i,"errors",r),n.goToState("invalid"),n.send("invokeLifecycleCallbacks")},becameError:function(e){e.goToState("error"),e.send("invokeLifecycleCallbacks")},didChangeData:a}),pending:DS.State.extend({initialState:"uncommitted",isPending:!0,uncommitted:DS.State.extend({deleteRecord:function(t){var n=e(t,"record"),r=e(n,"pendingQueue"),i;for(var s in r){if(!r.hasOwnProperty(s))continue;i=r[s],Ember.removeObserver(i[0],"id",i[1])}},willCommit:function(e){e.goToState("committing")},doneWaitingOn:function(t,r){var s=e(t,"record"),o=e(s,"pendingQueue"),u=n(r);delete o[u],i(o)&&t.send("doneWaiting")},doneWaiting:function(t){var n=e(this,"dirtyType");t.goToState(n+".uncommitted")}},l),committing:DS.State.extend({isSaving:!0,doneWaitingOn:function(t,r){var s=e(t,"record"),o=e(s,"pendingQueue"),u=n(r);delete o[u],i(o)&&t.send("doneWaiting")},doneWaiting:function(t){var n=e(t,"record"),r=e(n,"transaction");Ember.run.once(r,r.commit)},willCommit:function(t){var n=e(t,"record"),r=e(n,"pendingQueue");if(i(r)){var s=e(this,"dirtyType");t.goToState(s+".inFlight")}}})}),invalid:DS.State.extend({isValid:!1,exit:function(t){var n=e(t,"record");n.withTransaction(function(e){e.recordBecameClean("inflight",n)})},deleteRecord:function(e){e.goToState("deleted")},setAssociation:u,setProperty:function(n,r){o(n,r);var i=e(n,"record"),u=e(i,"errors"),a=r.key;t(u,a,null),s(u)||n.send("becameValid")},rollback:function(e){e.send("becameValid"),e.send("rollback")},becameValid:function(e){e.goToState("uncommitted")},invokeLifecycleCallbacks:function(t){var n=e(t,"record");n.trigger("becameInvalid",n)}})}),d=p.create({dirtyType:"created",isNew:!0}),v=p.create({dirtyType:"updated"});d.states.uncommitted.reopen(c),d.states.pending.states.uncommitted.reopen(c),d.states.uncommitted.reopen({rollback:function(e){this._super(e),e.goToState("deleted.saved")}}),v.states.uncommitted.reopen(h),v.states.pending.states.uncommitted.reopen(h),v.states.inFlight.reopen({didSaveData:function(t){var n=e(t,"record"),r=e(n,"data");r.saveData(),r.adapterDidUpdate()}});var m={rootState:Ember.State.create({isLoaded:!1,isDirty:!1,isSaving:!1,isDeleted:!1,isError:!1,isNew:!1,isValid:!0,isPending:!1,empty:DS.State.create({loadingData:function(e){e.goToState("loading")},didChangeData:function(e){a(e),e.goToState("loaded.created")}}),loading:DS.State.create({exit:function(t){var n=e(t,"record");n.trigger("didLoad")},didChangeData:function(e,t){a(e),e.send("loadedData")},loadedData:function(e){e.goToState("loaded")}}),loaded:DS.State.create({initialState:"saved",isLoaded:!0,saved:DS.State.create({setProperty:function(e,t){o(e,t),e.goToState("updated")},setAssociation:function(e,t){u(e,t),e.goToState("updated")},didChangeData:a,deleteRecord:function(e){e.goToState("deleted")},waitingOn:function(e,t){f(e,t),e.goToState("updated.pending")},invokeLifecycleCallbacks:function(t,n){var r=e(t,"record");n==="created"?r.trigger("didCreate",r):r.trigger("didUpdate",r)}}),created:d,updated:v}),deleted:DS.State.create({isDeleted:!0,isLoaded:!0,isDirty:!0,enter:function(t){var n=e(t,"record"),r=e(n,"store");r.removeFromRecordArrays(n)},start:DS.State.create({enter:function(t){var n=e(t,"record");n.withTransaction(function(e){e.recordBecameDirty("deleted",n)})},willCommit:function(e){e.goToState("inFlight")},rollback:function(t){var n=e(t,"record"),r=e(n,"data");r.rollback(),n.withTransaction(function(e){e.recordBecameClean("deleted",n)}),t.goToState("loaded")}}),inFlight:DS.State.create({isSaving:!0,enter:function(t){var n=e(t,"record");n.withTransaction(function(e){e.recordBecameInFlight("deleted",n)})},didCommit:function(t){var n=e(t,"record");n.withTransaction(function(e){e.recordBecameClean("inflight",n)}),t.goToState("saved"),t.send("invokeLifecycleCallbacks")}}),saved:DS.State.create({isDirty:!1,invokeLifecycleCallbacks:function(t){var n=e(t,"record");n.trigger("didDelete",n)}})}),error:DS.State.create({isError:!0,invokeLifecycleCallbacks:function(t){var n=e(t,"record");n.trigger("becameError",n)}})})};DS.StateManager=Ember.StateManager.extend({record:null,initialState:"rootState",states:m})}(),function(){var e=Ember.get,t=Ember.set,n=DS._DataProxy=function(e){this.record=e,this.unsavedData={},this.associations={}};n.prototype={get:function(e){return Ember.get(this,e)},set:function(e,t){return Ember.set(this,e,t)},setAssociation:function(e,t){this.associations[e]=t},savedData:function(){var t=this._savedData;if(t)return t;var n=this.record,r=e(n,"clientId"),i=e(n,"store");if(i)return t=i.dataForRecord(n),this._savedData=t,t},unknownProperty:function(t){var n=this.unsavedData,r=this.associations,i=this.savedData(),s,o=n[t],u;return u=r[t],u!==undefined?(s=e(this.record,"store"),s.clientIdToId[u]):(i&&o===undefined&&(o=i[t]),o)},setUnknownProperty:function(e,t){var n=this.record,r=this.unsavedData;return r[e]=t,n.hashWasUpdated(),t},commit:function(){this.saveData(),this.record.notifyPropertyChange("data")},rollback:function(){this.unsavedData={},this.record.notifyPropertyChange("data")},saveData:function(){var e=this.record,t=this.unsavedData,n=this.savedData();for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r],delete t[r])},adapterDidUpdate:function(){this.unsavedData={}}}}(),function(){var e=Ember.get,t=Ember.set,n=Ember.none,r=Ember.computed(function(t){return e(e(this,"stateManager.currentState"),t)}).property("stateManager.currentState").cacheable();DS.Model=Ember.Object.extend(Ember.Evented,{isLoaded:r,isDirty:r,isSaving:r,isDeleted:r,isError:r,isNew:r,isPending:r,isValid:r,clientId:null,transaction:null,stateManager:null,pendingQueue:null,errors:null,primaryKey:"id",id:Ember.computed(function(n,r){var i=e(this,"primaryKey"),s=e(this,"data");if(arguments.length===2)return t(s,i,r),r;var o=e(s,i);return o?o:this._id}).property("primaryKey","data"),addIdToJSON:function(e,t,n){t&&(e[n]=t)},addAttributesToJSON:function(t,n,r){n.forEach(function(n,i){var s=i.key(this.constructor),o=e(r,s);o===undefined&&(o=i.options.defaultValue),t[s]=o},this)},addHasManyToJSON:function(t,n,r,i){var s=r.key,o=e(this,s),u=[],a,f,l,c;if(r.options.embedded)o.forEach(function(e){u.push(e.toJSON(i))});else{var h=e(o,"content");for(a=0,f=h.length;a<f;a++)l=h[a],c=e(this,"store").clientIdToId[l],c!==undefined&&u.push(c)}s=r.options.key||e(this,"namingConvention").keyToJSONKey(s),t[s]=u},addBelongsToToJSON:function(t,r,i,s){var o=i.key,u,a;i.options.embedded?(o=i.options.key||e(this,"namingConvention").keyToJSONKey(o),u=e(r.record,o),t[o]=u?u.toJSON(s):null):(o=i.options.key||e(this,"namingConvention").foreignKey(o),a=r.get(o),t[o]=n(a)?null:a)},toJSON:function(t){var n=e(this,"data"),r={},i=this.constructor,s=e(i,"attributes"),o=e(this,"primaryKey"),u=e(this,"id"),a=e(this,"store"),f;return t=t||{},this.addIdToJSON(r,u,o),this.addAttributesToJSON(r,s,n),f=e(i,"associationsByName"),f.forEach(function(e,i){t.associations&&i.kind==="hasMany"?this.addHasManyToJSON(r,n,i,t):i.kind==="belongsTo"&&this.addBelongsToToJSON(r,n,i,t)},this),r},data:Ember.computed(function(){return new DS._DataProxy(this)}).cacheable(),didLoad:Ember.K,didUpdate:Ember.K,didCreate:Ember.K,didDelete:Ember.K,becameInvalid:Ember.K,becameError:Ember.K,init:function(){var e=DS.StateManager.create({record:this});t(this,"pendingQueue",{}),t(this,"stateManager",e),e.goToState("empty")},destroy:function(){e(this,"isDeleted")||this.deleteRecord(),this._super()},send:function(t,n){return e(this,"stateManager").send(t,n)},withTransaction:function(t){var n=e(this,"transaction");n&&t(n)},setProperty:function(e,t){this.send("setProperty",{key:e,value:t})},deleteRecord:function(){this.send("deleteRecord")},waitingOn:function(e){this.send("waitingOn",e)},notifyHashWasUpdated:function(){var t=e(this,"store");t&&t.hashWasUpdated(this.constructor,e(this,"clientId"),this)},unknownProperty:function(t){var n=e(this,"data");n&&t in n},setUnknownProperty:function(t,n){var r=e(this,"data");if(!(r&&t in r))return this._super(t,n)},namingConvention:{keyToJSONKey:function(e){return Ember.String.decamelize(e)},foreignKey:function(e){return Ember.String.decamelize(e)+"_id"}},hashWasUpdated:function(){Ember.run.once(this,this.notifyHashWasUpdated)},dataDidChange:Ember.observer(function(){var n=e(this.constructor,"associationsByName"),r=e(this,"data"),i=e(this,"store"),s=i.idToClientId,o;n.forEach(function(n,s){if(s.kind==="hasMany"){o=this.cacheFor(n);if(o){var u=s.options.key||e(this,"namingConvention").keyToJSONKey(n),a=r.get(u)||[],f;s.options.embedded?f=i.loadMany(s.type,a).clientIds:f=Ember.EnumerableUtils.map(a,function(e){return i.clientIdForId(s.type,e)}),t(o,"content",Ember.A(f)),o.fetch()}}},this)},"data"),trigger:function(e){Ember.tryInvoke(this,e,[].slice.call(arguments,1)),this._super.apply(this,arguments)}});var i=function(t){return function(){var n=e(DS,"defaultStore"),r=[].slice.call(arguments);return r.unshift(this),n[t].apply(n,r)}};DS.Model.reopenClass({isLoaded:i("recordIsLoaded"),find:i("find"),filter:i("filter"),_create:DS.Model.create,create:function(){throw new Ember.Error("You should not call `create` on a model. Instead, call `createRecord` with the attributes you would like to set.")},createRecord:i("createRecord")})}(),function(){function e(e,n,r){var i=t(e,"data"),s=t(i,r);return s===undefined&&(s=n.defaultValue),s}var t=Ember.get;DS.Model.reopenClass({attributes:Ember.computed(function(){var e=Ember.Map.create();return this.eachComputedProperty(function(t,n){n.isAttribute&&e.set(t,n)}),e}).cacheable(),processAttributeKeys:function(){if(this.processedAttributeKeys)return;var e=this.proto().namingConvention;this.eachComputedProperty(function(t,n){n.isAttribute&&!n.options.key&&(n.options.key=e.keyToJSONKey(t,this))},this)}}),DS.attr=function(t,n){var r=DS.attr.transforms[t],i=r.from,s=r.to;n=n||{};var o={type:t,isAttribute:!0,options:n,key:function(e){return e.processAttributeKeys(),n.key}};return Ember.computed(function(t,r){var u;return t=o.key(this.constructor),arguments.length===2?(r=s(r),r!==e(this,n,t)&&this.setProperty(t,r)):r=e(this,n,t),i(r)}).property("data").cacheable().meta(o)},DS.attr.transforms={string:{from:function(e){return Ember.none(e)?null:String(e)},to:function(e){return Ember.none(e)?null:String(e)}},number:{from:function(e){return Ember.none(e)?null:Number(e)},to:function(e){return Ember.none(e)?null:Number(e)}},"boolean":{from:function(e){return Boolean(e)},to:function(e){return Boolean(e)}},date:{from:function(e){var t=typeof e;return t==="string"||t==="number"?new Date(e):e===null||e===undefined?e:null},to:function(e){if(e instanceof Date){var t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=function(e){return e<10?"0"+e:""+e},i=e.getUTCFullYear(),s=e.getUTCMonth(),o=e.getUTCDate(),u=e.getUTCDay(),a=e.getUTCHours(),f=e.getUTCMinutes(),l=e.getUTCSeconds(),c=t[u],h=r(o),p=n[s];return c+", "+h+" "+p+" "+i+" "+r(a)+":"+r(f)+":"+r(l)+" GMT"}return e===undefined?undefined:null}}}}(),function(){}(),function(){var e=Ember.get,t=Ember.set,n=Ember.none,r=function(t,r,i,s,o){var u=e(i,s);return n(u)?undefined:t.load(r,u).id},i=function(t,n,r,i,s){return e(r,i)},s=function(t,n,s){n=n||{};var o=n.embedded,u=o?r:i,a={type:t,isAssociation:!0,options:n,kind:"belongsTo"};return Ember.computed(function(r,i){var s=e(this,"data"),a,f,l,c=e(this,"store");return typeof t=="string"&&(t=e(this,t,!1)||e(window,t)),arguments.length===2?(r=n.key||e(this,"namingConvention").foreignKey(r),this.send("setAssociation",{key:r,value:Ember.none(i)?null:e(i,"clientId")}),i):(o?r=n.key||e(this,"namingConvention").keyToJSONKey(r):r=n.key||e(this,"namingConvention").foreignKey(r),f=u(c,t,s,r,!0),l=f?c.find(t,f):null,l)}).property("data").cacheable().meta(a)};DS.belongsTo=function(e,t){return s(e,t)}}(),function(){var e=Ember.get,t=Ember.set,n=function(t,n,r,i){var s=e(r,i);return s?t.loadMany(n,s).ids:[]},r=function(t,n,r,i,s){return e(r,i)},i=function(i,s){s=s||{};var o=s.embedded,u=o?n:r,a={type:i,isAssociation:!0,options:s,kind:"hasMany"};return Ember.computed(function(n,r){var o=e(this,"data"),a=e(this,"store"),f,l,c;return typeof i=="string"&&(i=e(this,i,!1)||e(window,i)),n=s.key||e(this,"namingConvention").keyToJSONKey(n),f=u(a,i,o,n),c=a.findMany(i,f||[]),t(c,"parentRecord",this),c}).property().cacheable().meta(a)};DS.hasMany=function(e,t){return i(e,t)}}(),function(){var e=Ember.get;DS.Model.reopenClass({typeForAssociation:function(t){var n=e(this,"associationsByName").get(t);return n&&n.type},associations:Ember.computed(function(){var t=Ember.Map.create();return this.eachComputedProperty(function(n,r){if(r.isAssociation){var i=r.type,s=t.get(i);typeof i=="string"&&(i=e(this,i,!1)||e(window,i),r.type=i),s||(s=[],t.set(i,s)),s.push({name:n,kind:r.kind})}}),t}).cacheable(),associationsByName:Ember.computed(function(){var t=Ember.Map.create(),n;return this.eachComputedProperty(function(r,i){i.isAssociation&&(i.key=r,n=i.type,typeof n=="string"&&(n=e(this,n,!1)||e(window,n),i.type=n),t.set(r,i))}),t}).cacheable()})}(),function(){}(),function(){DS.Adapter=Ember.Object.extend({find:null,generateIdForRecord:null,commit:function(e,t){t.updated.eachType(function(t,n){this.updateRecords(e,t,n.slice())},this),t.created.eachType(function(t,n){this.createRecords(e,t,n.slice())},this),t.deleted.eachType(function(t,n){this.deleteRecords(e,t,n.slice())},this)},createRecords:function(e,t,n){n.forEach(function(n){this.createRecord(e,t,n)},this)},updateRecords:function(e,t,n){n.forEach(function(n){this.updateRecord(e,t,n)},this)},deleteRecords:function(e,t,n){n.forEach(function(n){this.deleteRecord(e,t,n)},this)},findMany:function(e,t,n){n.forEach(function(n){this.find(e,t,n)},this)}})}(),function(){var e=Ember.set;Ember.onLoad("Ember.Application",function(t){t.registerInjection({name:"store",before:"controllers",injection:function(t,n,r){r==="Store"&&e(n,"store",t[r].create())}}),t.registerInjection({name:"giveStoreToControllers",injection:function(e,t,n){if(/^[A-Z].*Controller$/.test(n)){var r=n.charAt(0).toLowerCase()+n.substr(1),i=t.get("store"),s=t.get(r);s.set("store",i)}}})})}(),function(){var e=Ember.get;DS.FixtureAdapter=DS.Adapter.extend({simulateRemoteResponse:!0,latency:50,fixturesForType:function(e){return e.FIXTURES?Ember.A(e.FIXTURES):null},queryFixtures:function(e,t){return e},mockJSON:function(e,t){return t.toJSON({associations:!0})},generateIdForRecord:function(e,t){return Ember.guidFor(t)},find:function(e,t,n){var r=this.fixturesForType(t);r&&(r=r.findProperty("id",n)),r&&this.simulateRemoteCall(function(){e.load(t,r)},e,t)},findMany:function(e,t,n){var r=this.fixturesForType(t);r&&(r=r.filter(function(e){return n.indexOf(e.id)!==-1})),r&&this.simulateRemoteCall(function(){e.loadMany(t,r)},e,t)},findAll:function(e,t){var n=this.fixturesForType(t);this.simulateRemoteCall(function(){e.loadMany(t,n)},e,t)},findQuery:function(e,t,n,r){var i=this.fixturesForType(t);i=this.queryFixtures(i,n),i&&this.simulateRemoteCall(function(){r.load(i)},e,t)},createRecord:function(e,t,n){var r=this.mockJSON(t,n);r.id=this.generateIdForRecord(e,n),this.simulateRemoteCall(function(){e.didCreateRecord(n,r)},e,t,n)},updateRecord:function(e,t,n){var r=this.mockJSON(t,n);this.simulateRemoteCall(function(){e.didUpdateRecord(n,r)},e,t,n)},deleteRecord:function(e,t,n){this.simulateRemoteCall(function(){e.didDeleteRecord(n)},e,t,n)},simulateRemoteCall:function(t,n,r,i){e(this,"simulateRemoteResponse")?setTimeout(t,e(this,"latency")):t()}}),DS.fixtureAdapter=DS.FixtureAdapter.create()}(),function(){var e=Ember.get,t=Ember.set;DS.RESTAdapter=DS.Adapter.extend({bulkCommit:!1,createRecord:function(e,t,n){var r=this.rootForType(t),i={};i[r]=n.toJSON(),this.ajax(this.buildURL(r),"POST",{data:i,context:this,success:function(r){this.didCreateRecord(e,t,n,r)}})},didCreateRecord:function(e,t,n,r){var i=this.rootForType(t);this.sideload(e,t,r,i),e.didCreateRecord(n,r[i])},createRecords:function(t,n,r){if(e(this,"bulkCommit")===!1)return this._super(t,n,r);var i=this.rootForType(n),s=this.pluralize(i),o={};o[s]=r.map(function(e){return e.toJSON()}),this.ajax(this.buildURL(i),"POST",{data:o,context:this,success:function(e){this.didCreateRecords(t,n,r,e)}})},didCreateRecords:function(e,t,n,r){var i=this.pluralize(this.rootForType(t));this.sideload(e,t,r,i),e.didCreateRecords(t,n,r[i])},updateRecord:function(t,n,r){var i=e(r,"id"),s=this.rootForType(n),o={};o[s]=r.toJSON(),this.ajax(this.buildURL(s,i),"PUT",{data:o,context:this,success:function(e){this.didUpdateRecord(t,n,r,e)}})},didUpdateRecord:function(e,t,n,r){var i=this.rootForType(t);this.sideload(e,t,r,i),e.didUpdateRecord(n,r&&r[i])},updateRecords:function(t,n,r){if(e(this,"bulkCommit")===!1)return this._super(t,n,r);var i=this.rootForType(n),s=this.pluralize(i),o={};o[s]=r.map(function(e){return e.toJSON()}),this.ajax(this.buildURL(i,"bulk"),"PUT",{data:o,context:this,success:function(e){this.didUpdateRecords(t,n,r,e)}})},didUpdateRecords:function(e,t,n,r){var i=this.pluralize(this.rootForType(t));this.sideload(e,t,r,i),e.didUpdateRecords(n,r[i])},deleteRecord:function(t,n,r){var i=e(r,"id"),s=this.rootForType(n);this.ajax(this.buildURL(s,i),"DELETE",{context:this,success:function(e){this.didDeleteRecord(t,n,r,e)}})},didDeleteRecord:function(e,t,n,r){r&&this.sideload(e,t,r),e.didDeleteRecord(n)},deleteRecords:function(t,n,r){if(e(this,"bulkCommit")===!1)return this._super(t,n,r);var i=this.rootForType(n),s=this.pluralize(i),o={};o[s]=r.map(function(t){return e(t,"id")}),this.ajax(this.buildURL(i,"bulk"),"DELETE",{data:o,context:this,success:function(e){this.didDeleteRecords(t,n,r,e)}})},didDeleteRecords:function(e,t,n,r){r&&this.sideload(e,t,r),e.didDeleteRecords(n)},find:function(e,t,n){var r=this.rootForType(t);this.ajax(this.buildURL(r,n),"GET",{success:function(n){this.sideload(e,t,n,r),e.load(t,n[r])}})},findMany:function(e,t,n){var r=this.rootForType(t),i=this.pluralize(r);this.ajax(this.buildURL(r),"GET",{data:{ids:n},success:function(n){this.sideload(e,t,n,i),e.loadMany(t,n[i])}})},findAll:function(e,t){var n=this.rootForType(t),r=this.pluralize(n);this.ajax(this.buildURL(n),"GET",{success:function(n){this.sideload(e,t,n,r),e.loadMany(t,n[r])}})},findQuery:function(e,t,n,r){var i=this.rootForType(t),s=this.pluralize(i);this.ajax(this.buildURL(i),"GET",{data:n,success:function(n){this.sideload(e,t,n,s),r.load(n[s])}})},plurals:{},pluralize:function(e){return this.plurals[e]||e+"s"},rootForType:function(e){if(e.url)return e.url;var t=e.toString().split("."),n=t[t.length-1];return n.replace(/([A-Z])/g,"_$1").toLowerCase().slice(1)},ajax:function(e,t,n){n.url=e,n.type=t,n.dataType="json",n.contentType="application/json; charset=utf-8",n.context=this,n.data&&t!=="GET"&&(n.data=JSON.stringify(n.data)),jQuery.ajax(n)},sideload:function(t,n,r,i){var s,o,u={};u[i]=!0;for(var a in r){if(!r.hasOwnProperty(a))continue;if(a===i)continue;s=n.typeForAssociation(a),s||(o=e(this,"mappings"),s=e(o,a),typeof s=="string"&&(s=e(window,s))),this.sideloadAssociations(t,s,r,a,u)}},sideloadAssociations:function(t,n,r,i,s){s[i]=!0,e(n,"associationsByName").forEach(function(e,n){e=n.key||e,n.kind==="belongsTo"&&(e=this.pluralize(e)),r[e]&&!s[e]&&this.sideloadAssociations(t,n.type,r,e,s)},this),this.loadValue(t,n,r[i])},loadValue:function(e,t,n){n instanceof Array?e.loadMany(t,n):e.load(t,n)},buildURL:function(e,t){var n=[""];return this.namespace!==undefined&&n.push(this.namespace),n.push(this.pluralize(e)),t!==undefined&&n.push(t),n.join("/")}})}(),function(){}(),function(){function e(e,t){var n;e||(e={});for(n in t)e[n]=t[n];return e}function t(){for(var e=0,t=arguments,n=t.length,r={};e<n;e++)r[t[e++]]=t[e];return r}function n(e,t){return parseInt(e,t||10)}function r(e){return typeof e=="string"}function i(e){return typeof e=="object"}function s(e){return Object.prototype.toString.call(e)==="[object Array]"}function o(e){return typeof e=="number"}function u(e){return W.log(e)/W.LN10}function a(e){return W.pow(10,e)}function f(e,t){for(var n=e.length;n--;)if(e[n]===t){e.splice(n,1);break}}function l(e){return e!==R&&e!==null}function c(e,t,n){var s,o;if(r(t))l(n)?e.setAttribute(t,n):e&&e.getAttribute&&(o=e.getAttribute(t));else if(l(t)&&i(t))for(s in t)e.setAttribute(s,t[s]);return o}function h(e){return s(e)?e:[e]}function p(){var e=arguments,t,n,r=e.length;for(t=0;t<r;t++)if(n=e[t],typeof n!="undefined"&&n!==null)return n}function d(t,n){nt&&n&&n.opacity!==R&&(n.filter="alpha(opacity="+n.opacity*100+")"),e(t.style,n)}function v(t,n,r,i,s){return t=U.createElement(t),n&&e(t,n),s&&d(t,{padding:0,border:Et,margin:0}),r&&d(t,r),i&&i.appendChild(t),t}function m(t,n){var r=function(){};return r.prototype=new t,e(r.prototype,n),r}function g(e,t,r,i){var s=dt.lang,o=e;t===-1?(t=(e||0).toString(),e=t.indexOf(".")>-1?t.split(".")[1].length:0):e=isNaN(t=Q(t))?2:t;var t=e,r=r===void 0?s.decimalPoint:r,i=i===void 0?s.thousandsSep:i,s=o<0?"-":"",e=String(n(o=Q(+o||0).toFixed(t))),u=e.length>3?e.length%3:0;return s+(u?e.substr(0,u)+i:"")+e.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+i)+(t?r+Q(o-e).toFixed(t).slice(2):"")}function y(e,t){return Array((t||2)+1-String(e).length).join(0)+e}function b(e,t,n,r){var i,n=p(n,1);i=e/n,t||(t=[1,2,2.5,5,10],r&&r.allowDecimals===!1&&(n===1?t=[1,2,5,10]:n<=.1&&(t=[1/n])));for(r=0;r<t.length;r++)if(e=t[r],i<=(t[r]+(t[r+1]||t[r]))/2)break;return e*=n,e}function w(e,t){var n=t||[[xt,[1,2,5,10,20,25,50,100,200,500]],[Tt,[1,2,5,10,15,30]],[Nt,[1,2,5,10,15,30]],[Ct,[1,2,3,4,6,8,12]],[kt,[1,2]],[Lt,[1,2]],[At,[1,2,3,4,6]],[Ot,null]],r=n[n.length-1],i=yt[r[0]],s=r[1],o;for(o=0;o<n.length;o++)if(r=n[o],i=yt[r[0]],s=r[1],n[o+1]&&e<=(i*s[s.length-1]+yt[n[o+1][0]])/2)break;return i===yt[Ot]&&e<5*i&&(s=[1,2,5]),i===yt[Ot]&&e<5*i&&(s=[1,2,5]),n=b(e/i,s),{unitRange:i,count:n,unitName:r[0]}}function E(t,n,r,i){var s=[],o={},u=dt.global.useUTC,a,f=new Date(n),n=t.unitRange,l=t.count;n>=yt[Tt]&&(f.setMilliseconds(0),f.setSeconds(n>=yt[Nt]?0:l*V(f.getSeconds()/l))),n>=yt[Nt]&&f[Ft](n>=yt[Ct]?0:l*V(f[_t]()/l)),n>=yt[Ct]&&f[It](n>=yt[kt]?0:l*V(f[Dt]()/l)),n>=yt[kt]&&f[qt](n>=yt[At]?1:l*V(f[Ht]()/l)),n>=yt[At]&&(f[Rt](n>=yt[Ot]?0:l*V(f[Bt]()/l)),a=f[jt]()),n>=yt[Ot]&&(a-=a%l,f[Ut](a)),n===yt[Lt]&&f[qt](f[Ht]()-f[Pt]()+p(i,1)),i=1,a=f[jt]();for(var c=f.getTime(),h=f[Bt](),d=f[Ht](),f=u?0:(864e5+f.getTimezoneOffset()*6e4)%864e5;c<r;)s.push(c),n===yt[Ot]?c=Mt(a+i*l,0):n===yt[At]?c=Mt(a,h+i*l):!!u||n!==yt[kt]&&n!==yt[Lt]?(c+=n*l,n<=yt[Ct]&&c%yt[kt]===f&&(o[c]=kt)):c=Mt(a,h,d+i*l*(n===yt[kt]?1:7)),i++;return s.push(c),s.info=e(t,{higherRanks:o,totalRange:n*l}),s}function S(){this.symbol=this.color=0}function x(e,t){var n=e.length,r,i;for(i=0;i<n;i++)e[i].ss_i=i;e.sort(function(e,n){return r=t(e,n),r===0?e.ss_i-n.ss_i:r});for(i=0;i<n;i++)delete e[i].ss_i}function T(e){for(var t=e.length,n=e[0];t--;)e[t]<n&&(n=e[t]);return n}function N(e){for(var t=e.length,n=e[0];t--;)e[t]>n&&(n=e[t]);return n}function C(e,t){for(var n in e)e[n]&&e[n]!==t&&e[n].destroy&&e[n].destroy(),delete e[n]}function k(e){pt||(pt=v(wt)),e&&pt.appendChild(e),pt.innerHTML=""}function L(e,t){var n="Highcharts error #"+e+": www.highcharts.com/errors/"+e;if(t)throw n;z.console&&console.log(n)}function A(e){return parseFloat(e.toPrecision(14))}function O(e,t){mt=p(e,t.animation)}function M(){var e=dt.global.useUTC,t=e?"getUTC":"get",n=e?"setUTC":"set";Mt=e?Date.UTC:function(e,t,n,r,i,s){return(new Date(e,t,p(n,1),p(r,0),p(i,0),p(s,0))).getTime()},_t=t+"Minutes",Dt=t+"Hours",Pt=t+"Day",Ht=t+"Date",Bt=t+"Month",jt=t+"FullYear",Ft=n+"Minutes",It=n+"Hours",qt=n+"Date",Rt=n+"Month",Ut=n+"FullYear"}function _(){}function D(e,t,n){this.axis=e,this.pos=t,this.type=n||"",this.isNew=!0,n||this.addLabel()}function P(e,t){return this.axis=e,t&&(this.options=t,this.id=t.id),this}function H(e,t,n,r,i){var s=e.chart.inverted;this.axis=e,this.isNegative=n,this.options=t,this.x=r,this.stack=i,this.alignOptions={align:t.align||(s?n?"left":"right":"center"),verticalAlign:t.verticalAlign||(s?"middle":n?"bottom":"top"),y:p(t.y,s?4:n?14:-6),x:p(t.x,s?n?-6:6:0)},this.textAlign=t.textAlign||(s?n?"right":"left":"center")}function B(){this.init.apply(this,arguments)}function j(e,t){var r=t.borderWidth,i=t.style,s=t.shared,o=n(i.padding);this.chart=e,this.options=t,i.padding=0,this.crosshairs=[],this.currentY=this.currentX=0,this.tooltipIsHidden=!0,this.label=e.renderer.label("",0,0,null,null,null,t.useHTML,null,"tooltip").attr({padding:o,fill:t.backgroundColor,"stroke-width":r,r:t.borderRadius,zIndex:8}).css(i).hide().add(),at||this.label.shadow(t.shadow),this.shared=s}function F(e,t){var n=at?"":t.chart.zoomType;this.zoomX=/x/.test(n),this.zoomY=/y/.test(n),this.options=t,this.chart=e,this.init(e,t.tooltip)}function I(e){this.init(e)}function q(e,t){var n,r=e.series;e.series=null,n=Yt(dt,e),n.series=e.series=r;var r=n.chart,s=r.margin,s=i(s)?s:[s,s,s,s];this.optionsMarginTop=p(r.marginTop,s[0]),this.optionsMarginRight=p(r.marginRight,s[1]),this.optionsMarginBottom=p(r.marginBottom,s[2]),this.optionsMarginLeft=p(r.marginLeft,s[3]),this.runChartClick=(s=r.events)&&!!s.click,this.callback=t,this.isResizing=0,this.options=n,this.axes=[],this.series=[],this.hasCartesianSeries=r.showAxes,this.init(s)}var R,U=document,z=window,W=Math,X=W.round,V=W.floor,$=W.ceil,J=W.max,K=W.min,Q=W.abs,G=W.cos,Y=W.sin,Z=W.PI,et=Z*2/360,tt=navigator.userAgent,nt=/msie/i.test(tt)&&!z.opera,rt=U.documentMode===8,it=/AppleWebKit/.test(tt),st=/Firefox/.test(tt),ot=!!U.createElementNS&&!!U.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,ut=st&&parseInt(tt.split("Firefox/")[1],10)<4,at=!ot&&!nt&&!!U.createElement("canvas").getContext,ft,lt=U.documentElement.ontouchstart!==R,ct={},ht=0,pt,dt,vt,mt,gt,yt,bt=function(){},wt="div",Et="none",St="rgba(192,192,192,"+(ot?1e-6:.002)+")",xt="millisecond",Tt="second",Nt="minute",Ct="hour",kt="day",Lt="week",At="month",Ot="year",Mt,_t,Dt,Pt,Ht,Bt,jt,Ft,It,qt,Rt,Ut,zt={};z.Highcharts={},vt=function(e,t,n){if(!l(t)||isNaN(t))return"Invalid date";var e=p(e,"%Y-%m-%d %H:%M:%S"),r=new Date(t),i,s=r[Dt](),o=r[Pt](),u=r[Ht](),a=r[Bt](),f=r[jt](),c=dt.lang,h=c.weekdays,t={a:h[o].substr(0,3),A:h[o],d:y(u),e:u,b:c.shortMonths[a],B:c.months[a],m:y(a+1),y:f.toString().substr(2,2),Y:f,H:y(s),I:y(s%12||12),l:s%12||12,M:y(r[_t]()),p:s<12?"AM":"PM",P:s<12?"am":"pm",S:y(r.getSeconds()),L:y(X(t%1e3),3)};for(i in t)e=e.replace("%"+i,t[i]);return n?e.substr(0,1).toUpperCase()+e.substr(1):e},S.prototype={wrapColor:function(e){this.color>=e&&(this.color=0)},wrapSymbol:function(e){this.symbol>=e&&(this.symbol=0)}},yt=t(xt,1,Tt,1e3,Nt,6e4,Ct,36e5,kt,864e5,Lt,6048e5,At,2592e6,Ot,31556952e3),gt={init:function(e,t,n){var t=t||"",r=e.shift,i=t.indexOf("C")>-1,s=i?7:3,o,t=t.split(" "),n=[].concat(n),u,a,f=function(e){for(o=e.length;o--;)e[o]==="M"&&e.splice(o+1,0,e[o+1],e[o+2],e[o+1],e[o+2])};i&&(f(t),f(n)),e.isArea&&(u=t.splice(t.length-6,6),a=n.splice(n.length-6,6));if(r<=n.length/s)for(;r--;)n=[].concat(n).splice(0,s).concat(n);e.shift=0;if(t.length)for(e=n.length;t.length<e;)r=[].concat(t).splice(t.length-s,s),i&&(r[s-6]=r[s-2],r[s-5]=r[s-1]),t=t.concat(r);return u&&(t=t.concat(u),n=n.concat(a)),[t,n]},step:function(e,t,n,r){var i=[],s=e.length;if(n===1)i=r;else if(s===t.length&&n<1)for(;s--;)r=parseFloat(e[s]),i[s]=isNaN(r)?e[s]:n*parseFloat(t[s]-r)+r;else i=t;return i}};var Wt=z.HighchartsAdapter,Xt=Wt||{},Vt=Xt.adapterRun,$t=Xt.getScript,Jt=Xt.each,Kt=Xt.grep,Qt=Xt.offset,Gt=Xt.map,Yt=Xt.merge,Zt=Xt.addEvent,en=Xt.removeEvent,tn=Xt.fireEvent,nn=Xt.washMouseEvent,rn=Xt.animate,sn=Xt.stop;Wt&&Wt.init&&Wt.init(gt);if(!Wt&&z.jQuery){var on=jQuery,$t=on.getScript,Vt=function(e,t){return on(e)[t]()},Jt=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t.call(e[n],e[n],n,e)===!1)return n},Kt=on.grep,Gt=function(e,t){for(var n=[],r=0,i=e.length;r<i;r++)n[r]=t.call(e[r],e[r],r,e);return n},Yt=function(){var e=arguments;return on.extend(!0,null,e[0],e[1],e[2],e[3])},Qt=function(e){return on(e).offset()},Zt=function(e,t,n){on(e).bind(t,n)},en=function(e,t,n){var r=U.removeEventListener?"removeEventListener":"detachEvent";U[r]&&!e[r]&&(e[r]=function(){}),on(e).unbind(t,n)},tn=function(t,n,r,i){var s=on.Event(n),o="detached"+n,u;!nt&&r&&(delete r.layerX,delete r.layerY),e(s,r),t[n]&&(t[o]=t[n],t[n]=null),Jt(["preventDefault","stopPropagation"
],function(e){var t=s[e];s[e]=function(){try{t.call(s)}catch(n){e==="preventDefault"&&(u=!0)}}}),on(t).trigger(s),t[o]&&(t[n]=t[o],t[o]=null),i&&!s.isDefaultPrevented()&&!u&&i(s)},nn=function(e){return e},rn=function(e,t,n){var r=on(e);t.d&&(e.toD=t.d,t.d=1),r.stop(),r.animate(t,n)},sn=function(e){on(e).stop()};on.extend(on.easing,{easeOutQuad:function(e,t,n,r,i){return-r*(t/=i)*(t-2)+n}});var un=on.fx,an=un.step;Jt(["cur","_default","width","height"],function(e,t){var n=an,r,i;e==="cur"?n=un.prototype:e==="_default"&&on.Tween&&(n=on.Tween.propHooks[e],e="set"),(r=n[e])&&(n[e]=function(n){return n=t?n:this,i=n.elem,i.attr?i.attr(n.prop,e==="cur"?R:n.now):r.apply(this,arguments)})}),an.d=function(e){var t=e.elem;if(!e.started){var n=gt.init(t,t.d,t.toD);e.start=n[0],e.end=n[1],e.started=!0}t.attr("d",gt.step(e.start,e.end,e.pos,t.toD))}}Xt={enabled:!0,align:"center",x:0,y:15,style:{color:"#666",fontSize:"11px",lineHeight:"14px"}},dt={colors:"#4572A7,#AA4643,#89A54E,#80699B,#3D96AE,#DB843D,#92A8CD,#A47D7C,#B5CA92".split(","),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),weekdays:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),decimalPoint:".",resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:","},global:{useUTC:!0,canvasToolsURL:"http://code.highcharts.com/2.2.5/modules/canvas-tools.js"},chart:{borderColor:"#4572A7",borderRadius:5,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacingTop:10,spacingRight:10,spacingBottom:15,spacingLeft:10,style:{fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif',fontSize:"12px"},backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0",resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}}},title:{text:"Chart title",align:"center",y:15,style:{color:"#3E576F",fontSize:"16px"}},subtitle:{text:"",align:"center",y:30,style:{color:"#6D869F"}},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},lineWidth:2,shadow:!0,marker:{enabled:!0,lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:Yt(Xt,{enabled:!1,y:-6,formatter:function(){return this.y}}),cropThreshold:300,pointRange:0,showInLegend:!0,states:{hover:{marker:{}},select:{marker:{}}},stickyTracking:!0}},labels:{style:{position:"absolute",color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderWidth:1,borderColor:"#909090",borderRadius:5,navigation:{activeColor:"#3E576F",inactiveColor:"#CCC"},shadow:!1,itemStyle:{cursor:"pointer",color:"#3E576F",fontSize:"12px"},itemHoverStyle:{color:"#000"},itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},symbolWidth:16,symbolPadding:5,verticalAlign:"bottom",x:0,y:0},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"1em"},style:{position:"absolute",backgroundColor:"white",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,backgroundColor:"rgba(255, 255, 255, .85)",borderWidth:2,borderRadius:5,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>',shadow:!0,shared:at,snap:lt?25:10,style:{color:"#333333",fontSize:"12px",padding:"5px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"10px"}}};var fn=dt.plotOptions,Wt=fn.line;M();var ln=function(e){var t=[],r;return function(e){(r=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(e))?t=[n(r[1]),n(r[2]),n(r[3]),parseFloat(r[4],10)]:(r=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(e))&&(t=[n(r[1],16),n(r[2],16),n(r[3],16),1])}(e),{get:function(n){return t&&!isNaN(t[0])?n==="rgb"?"rgb("+t[0]+","+t[1]+","+t[2]+")":n==="a"?t[3]:"rgba("+t.join(",")+")":e},brighten:function(e){if(o(e)&&e!==0){var r;for(r=0;r<3;r++)t[r]+=n(e*255),t[r]<0&&(t[r]=0),t[r]>255&&(t[r]=255)}return this},setOpacity:function(e){return t[3]=e,this}}};_.prototype={init:function(e,t){this.element=t==="span"?v(t):U.createElementNS("http://www.w3.org/2000/svg",t),this.renderer=e,this.attrSetters={}},animate:function(e,t,n){t=p(t,mt,!0),sn(this),t?(t=Yt(t),n&&(t.complete=n),rn(this,e,t)):(this.attr(e),n&&n())},attr:function(e,t){var i,s,o,u,a=this.element,f=a.nodeName,h=this.renderer,p,d=this.attrSetters,v=this.shadows,m,g,y=this;r(e)&&l(t)&&(i=e,e={},e[i]=t);if(r(e))i=e,f==="circle"?i={x:"cx",y:"cy"}[i]||i:i==="strokeWidth"&&(i="stroke-width"),y=c(a,i)||this[i]||0,i!=="d"&&i!=="visibility"&&(y=parseFloat(y));else for(i in e)if(p=!1,s=e[i],o=d[i]&&d[i](s,i),o!==!1){o!==R&&(s=o);if(i==="d")s&&s.join&&(s=s.join(" ")),/(NaN| {2}|^$)/.test(s)&&(s="M 0 0");else if(i==="x"&&f==="text"){for(o=0;o<a.childNodes.length;o++)u=a.childNodes[o],c(u,"x")===c(a,"x")&&c(u,"x",s);this.rotation&&c(a,"transform","rotate("+this.rotation+" "+s+" "+n(e.y||c(a,"y"))+")")}else if(i==="fill")s=h.color(s,a,i);else if(f!=="circle"||i!=="x"&&i!=="y")if(f==="rect"&&i==="r")c(a,{rx:s,ry:s}),p=!0;else if(i==="translateX"||i==="translateY"||i==="rotation"||i==="verticalAlign")p=g=!0;else if(i==="stroke")s=h.color(s,a,i);else if(i==="dashstyle"){if(i="stroke-dasharray",s=s&&s.toLowerCase(),s==="solid")s=Et;else if(s){s=s.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(o=s.length;o--;)s[o]=n(s[o])*e["stroke-width"];s=s.join(",")}}else i==="isTracker"?this[i]=s:i==="width"?s=n(s):i==="align"?(i="text-anchor",s={left:"start",center:"middle",right:"end"}[s]):i==="title"&&(o=a.getElementsByTagName("title")[0],o||(o=U.createElementNS("http://www.w3.org/2000/svg","title"),a.appendChild(o)),o.textContent=s);else i={x:"cx",y:"cy"}[i]||i;i==="strokeWidth"&&(i="stroke-width"),it&&i==="stroke-width"&&s===0&&(s=1e-6),this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(i)&&(m||(this.symbolAttr(e),m=!0),p=!0);if(v&&/^(width|height|visibility|x|y|d|transform)$/.test(i))for(o=v.length;o--;)c(v[o],i,i==="height"?J(s-(v[o].cutHeight||0),0):s);(i==="width"||i==="height")&&f==="rect"&&s<0&&(s=0),this[i]=s,g&&this.updateTransform(),i==="text"?(this.textStr=s,this.added&&h.buildText(this)):p||c(a,i,s)}return it&&/Chrome\/(18|19)/.test(tt)&&f==="text"&&(e.x!==R||e.y!==R)&&(i=a.parentNode,s=a.nextSibling,i&&(i.removeChild(a),s?i.insertBefore(a,s):i.appendChild(a))),y},symbolAttr:function(e){var t=this;Jt("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(n){t[n]=p(e[n],t[n])}),t.attr({d:t.renderer.symbols[t.symbolName](t.x,t.y,t.width,t.height,t)})},clip:function(e){return this.attr("clip-path","url("+this.renderer.url+"#"+e.id+")")},crisp:function(e,t,n,r,i){var s,o={},u={},a,e=e||this.strokeWidth||this.attr&&this.attr("stroke-width")||0;a=X(e)%2/2,u.x=V(t||this.x||0)+a,u.y=V(n||this.y||0)+a,u.width=V((r||this.width||0)-2*a),u.height=V((i||this.height||0)-2*a),u.strokeWidth=e;for(s in u)this[s]!==u[s]&&(this[s]=o[s]=u[s]);return o},css:function(t){var n=this.element,n=t&&t.width&&n.nodeName==="text",r,i="",s=function(e,t){return"-"+t.toLowerCase()};t&&t.color&&(t.fill=t.color),this.styles=t=e(this.styles,t);if(nt&&!ot)n&&delete t.width,d(this.element,t);else{for(r in t)i+=r.replace(/([A-Z])/g,s)+":"+t[r]+";";this.attr({style:i})}return n&&this.added&&this.renderer.buildText(this),this},on:function(e,t){var n=t;return lt&&e==="click"&&(e="touchstart",n=function(e){e.preventDefault(),t()}),this.element["on"+e]=n,this},setRadialReference:function(e){return this.element.radialReference=e,this},translate:function(e,t){return this.attr({translateX:e,translateY:t})},invert:function(){return this.inverted=!0,this.updateTransform(),this},htmlCss:function(t){var n=this.element;if(n=t&&n.tagName==="SPAN"&&t.width)delete t.width,this.textWidth=n,this.updateTransform();return this.styles=e(this.styles,t),d(this.element,t),this},htmlGetBBox:function(e){var t=this.element,n=this.bBox;if(!n||e)t.nodeName==="text"&&(t.style.position="absolute"),n=this.bBox={x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight};return n},htmlUpdateTransform:function(){if(this.added){var e=this.renderer,t=this.element,r=this.translateX||0,i=this.translateY||0,s=this.x||0,o=this.y||0,u=this.textAlign||"left",a={left:0,center:.5,right:1}[u],f=u&&u!=="left",c=this.shadows;if(r||i)d(t,{marginLeft:r,marginTop:i}),c&&Jt(c,function(e){d(e,{marginLeft:r+1,marginTop:i+1})});this.inverted&&Jt(t.childNodes,function(n){e.invertChild(n,t)});if(t.tagName==="SPAN"){var h,v,c=this.rotation,m;h=0;var g=1,y=0,b;m=n(this.textWidth);var w=this.xCorr||0,E=this.yCorr||0,S=[c,u,t.innerHTML,this.textWidth].join(",");S!==this.cTT&&(l(c)&&(h=c*et,g=G(h),y=Y(h),d(t,{filter:c?["progid:DXImageTransform.Microsoft.Matrix(M11=",g,", M12=",-y,", M21=",y,", M22=",g,", sizingMethod='auto expand')"].join(""):Et})),h=p(this.elemWidth,t.offsetWidth),v=p(this.elemHeight,t.offsetHeight),h>m&&/[ \-]/.test(t.innerText)&&(d(t,{width:m+"px",display:"block",whiteSpace:"normal"}),h=m),m=e.fontMetrics(t.style.fontSize).b,w=g<0&&-h,E=y<0&&-v,b=g*y<0,w+=y*m*(b?1-a:a),E-=g*m*(c?b?a:1-a:1),f&&(w-=h*a*(g<0?-1:1),c&&(E-=v*a*(y<0?-1:1)),d(t,{textAlign:u})),this.xCorr=w,this.yCorr=E),d(t,{left:s+w+"px",top:o+E+"px"}),this.cTT=S}}else this.alignOnAdd=!0},updateTransform:function(){var e=this.translateX||0,t=this.translateY||0,n=this.inverted,r=this.rotation,i=[];n&&(e+=this.attr("width"),t+=this.attr("height")),(e||t)&&i.push("translate("+e+","+t+")"),n?i.push("rotate(90) scale(-1,1)"):r&&i.push("rotate("+r+" "+(this.x||0)+" "+(this.y||0)+")"),i.length&&c(this.element,"transform",i.join(" "))},toFront:function(){var e=this.element;return e.parentNode.appendChild(e),this},align:function(e,t,n){e?(this.alignOptions=e,this.alignByTranslate=t,n||this.renderer.alignedObjects.push(this)):(e=this.alignOptions,t=this.alignByTranslate);var n=p(n,this.renderer),r=e.align,i=e.verticalAlign,s=(n.x||0)+(e.x||0),o=(n.y||0)+(e.y||0),u={};return/^(right|center)$/.test(r)&&(s+=(n.width-(e.width||0))/{right:1,center:2}[r]),u[t?"translateX":"x"]=X(s),/^(bottom|middle)$/.test(i)&&(o+=(n.height-(e.height||0))/({bottom:1,middle:2}[i]||1)),u[t?"translateY":"y"]=X(o),this[this.placed?"animate":"attr"](u),this.placed=!0,this.alignAttr=u,this},getBBox:function(t){var n,r,i=this.rotation;r=this.element;var s=i*et;if(r.namespaceURI==="http://www.w3.org/2000/svg"||this.renderer.forExport){try{n=r.getBBox?e({},r.getBBox()):{width:r.offsetWidth,height:r.offsetHeight}}catch(o){}if(!n||n.width<0)n={width:0,height:0};t=n.width,r=n.height,i&&(n.width=Q(r*Y(s))+Q(t*G(s)),n.height=Q(r*G(s))+Q(t*Y(s)))}else n=this.htmlGetBBox(t);return n},show:function(){return this.attr({visibility:"visible"})},hide:function(){return this.attr({visibility:"hidden"})},add:function(e){var t=this.renderer,r=e||t,i=r.element||t.box,s=i.childNodes,o=this.element,u=c(o,"zIndex"),a;this.parentInverted=e&&e.inverted,this.textStr!==void 0&&t.buildText(this),u&&(r.handleZ=!0,u=n(u));if(r.handleZ)for(r=0;r<s.length;r++)if(e=s[r],t=c(e,"zIndex"),e!==o&&(n(t)>u||!l(u)&&l(t))){i.insertBefore(o,e),a=!0;break}return a||i.appendChild(o),this.added=!0,tn(this,"add"),this},safeRemoveChild:function(e){var t=e.parentNode;t&&t.removeChild(e)},destroy:function(){var e=this,t=e.element||{},n=e.shadows,r=e.box,i,s;t.onclick=t.onmouseout=t.onmouseover=t.onmousemove=null,sn(e),e.clipPath&&(e.clipPath=e.clipPath.destroy());if(e.stops){for(s=0;s<e.stops.length;s++)e.stops[s]=e.stops[s].destroy();e.stops=null}e.safeRemoveChild(t),n&&Jt(n,function(t){e.safeRemoveChild(t)}),r&&r.destroy(),f(e.renderer.alignedObjects,e);for(i in e)delete e[i];return null},empty:function(){for(var e=this.element,t=e.childNodes,n=t.length;n--;)e.removeChild(t[n])},shadow:function(e,t,n){var r=[],i,s=this.element,o,u=this.parentInverted?"(-1,-1)":"(1,1)";if(e){for(e=1;e<=3;e++)i=s.cloneNode(0),o=7-2*e,c(i,{isShadow:"true",stroke:"rgb(0, 0, 0)","stroke-opacity":.05*e,"stroke-width":o,transform:"translate"+u,fill:Et}),n&&(c(i,"height",J(c(i,"height")-o,0)),i.cutHeight=o),t?t.element.appendChild(i):s.parentNode.insertBefore(i,s),r.push(i);this.shadows=r}return this}};var cn=function(){this.init.apply(this,arguments)};cn.prototype={Element:_,init:function(e,t,n,r){var i=location,s;s=this.createElement("svg").attr({xmlns:"http://www.w3.org/2000/svg",version:"1.1"}),e.appendChild(s.element),this.isSVG=!0,this.box=s.element,this.boxWrapper=s,this.alignedObjects=[],this.url=nt?"":i.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1"),this.defs=this.createElement("defs").add(),this.forExport=r,this.gradients={},this.setSize(t,n,!1);var o;st&&e.getBoundingClientRect&&(this.subPixelFix=t=function(){d(e,{left:0,top:0}),o=e.getBoundingClientRect(),d(e,{left:$(o.left)-o.left+"px",top:$(o.top)-o.top+"px"})},t(),Zt(z,"resize",t))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var e=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),C(this.gradients||{}),this.gradients=null,e&&(this.defs=e.destroy()),this.subPixelFix&&en(z,"resize",this.subPixelFix),this.alignedObjects=null},createElement:function(e){var t=new this.Element;return t.init(this,e),t},draw:function(){},buildText:function(e){for(var t=e.element,r=p(e.textStr,"").toString().replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g),i=t.childNodes,s=/style="([^"]+)"/,o=/href="([^"]+)"/,u=c(t,"x"),a=e.styles,f=a&&n(a.width),l=a&&a.lineHeight,h,a=i.length,v=[];a--;)t.removeChild(i[a]);f&&!e.added&&this.box.appendChild(t),r[r.length-1]===""&&r.pop(),Jt(r,function(r,i){var a,p=0,m,r=r.replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");a=r.split("|||"),Jt(a,function(r){if(r!==""||a.length===1){var g={},y=U.createElementNS("http://www.w3.org/2000/svg","tspan");s.test(r)&&c(y,"style",r.match(s)[1].replace(/(;| |^)color([ :])/,"$1fill$2")),o.test(r)&&(c(y,"onclick",'location.href="'+r.match(o)[1]+'"'),d(y,{cursor:"pointer"})),r=(r.replace(/<(.|\n)*?>/g,"")||" ").replace(/&lt;/g,"<").replace(/&gt;/g,">"),y.appendChild(U.createTextNode(r)),p?g.dx=3:g.x=u;if(!p){if(i){!ot&&e.renderer.forExport&&d(y,{display:"block"}),m=z.getComputedStyle&&n(z.getComputedStyle(h,null).getPropertyValue("line-height"));if(!m||isNaN(m)){var b;(b=l)||(b=h.offsetHeight)||(v[i]=t.getBBox().height,b=X(v[i]-(v[i-1]||0))||18),m=b}c(y,"dy",m)}h=y}c(y,g),t.appendChild(y),p++;if(f)for(var r=r.replace(/-/g,"- ").split(" "),w=[];r.length||w.length;)b=e.getBBox().width,g=b>f,!g||r.length===1?(r=w,w=[],r.length&&(y=U.createElementNS("http://www.w3.org/2000/svg","tspan"),c(y,{dy:l||16,x:u}),t.appendChild(y),b>f&&(f=b))):(y.removeChild(y.firstChild),w.unshift(r.pop())),r.length&&y.appendChild(U.createTextNode(r.join(" ").replace(/- /g,"-")))}})})},button:function(n,r,i,s,o,u,a){var f=this.label(n,r,i),l=0,c,h,p,d,v,n={x1:0,y1:0,x2:0,y2:1},o=Yt(t("stroke-width",1,"stroke","#999","fill",t("linearGradient",n,"stops",[[0,"#FFF"],[1,"#DDD"]]),"r",3,"padding",3,"style",t("color","black")),o);return p=o.style,delete o.style,u=Yt(o,t("stroke","#68A","fill",t("linearGradient",n,"stops",[[0,"#FFF"],[1,"#ACF"]])),u),d=u.style,delete u.style,a=Yt(o,t("stroke","#68A","fill",t("linearGradient",n,"stops",[[0,"#9BD"],[1,"#CDF"]])),a),v=a.style,delete a.style,Zt(f.element,"mouseenter",function(){f.attr(u).css(d)}),Zt(f.element,"mouseleave",function(){c=[o,u,a][l],h=[p,d,v][l],f.attr(c).css(h)}),f.setState=function(e){(l=e)?e===2&&f.attr(a).css(v):f.attr(o).css(p)},f.on("click",function(){s.call(f)}).attr(o).css(e({cursor:"default"},p))},crispLine:function(e,t){return e[1]===e[4]&&(e[1]=e[4]=X(e[1])+t%2/2),e[2]===e[5]&&(e[2]=e[5]=X(e[2])+t%2/2),e},path:function(t){var n={fill:Et};return s(t)?n.d=t:i(t)&&e(n,t),this.createElement("path").attr(n)},circle:function(e,t,n){return e=i(e)?e:{x:e,y:t,r:n},this.createElement("circle").attr(e)},arc:function(e,t,n,r,s,o){return i(e)&&(t=e.y,n=e.r,r=e.innerR,s=e.start,o=e.end,e=e.x),this.symbol("arc",e||0,t||0,n||0,n||0,{innerR:r||0,start:s||0,end:o||0})},rect:function(e,t,n,r,s,o){return s=i(e)?e.r:s,s=this.createElement("rect").attr({rx:s,ry:s,fill:Et}),s.attr(i(e)?e:s.crisp(o,e,t,J(n,0),J(r,0)))},setSize:function(e,t,n){var r=this.alignedObjects,i=r.length;this.width=e,this.height=t;for(this.boxWrapper[p(n,!0)?"animate":"attr"]({width:e,height:t});i--;)r[i].align()},g:function(e){var t=this.createElement("g");return l(e)?t.attr({"class":"highcharts-"+e}):t},image:function(t,n,r,i,s){var o={preserveAspectRatio:Et};return arguments.length>1&&e(o,{x:n,y:r,width:i,height:s}),o=this.createElement("image").attr(o),o.element.setAttributeNS?o.element.setAttributeNS("http://www.w3.org/1999/xlink","href",t):o.element.setAttribute("hc-svg-href",t),o},symbol:function(t,n,r,i,s,o){var u,a=this.symbols[t],a=a&&a(X(n),X(r),i,s,o),f=/^url\((.*?)\)$/,l,c;return a?(u=this.path(a),e(u,{symbolName:t,x:n,y:r,width:i,height:s}),o&&e(u,o)):f.test(t)&&(c=function(e,t){e.attr({width:t[0],height:t[1]}),e.alignByTranslate||e.translate(-X(t[0]/2),-X(t[1]/2))},l=t.match(f)[1],t=ct[l],u=this.image(l).attr({x:n,y:r}),t?c(u,t):(u.attr({width:0,height:0}),v("img",{onload:function(){c(u,ct[l]=[this.width,this.height])},src:l}))),u},symbols:{circle:function(e,t,n,r){var i=.166*n;return["M",e+n/2,t,"C",e+n+i,t,e+n+i,t+r,e+n/2,t+r,"C",e-i,t+r,e-i,t,e+n/2,t,"Z"]},square:function(e,t,n,r){return["M",e,t,"L",e+n,t,e+n,t+r,e,t+r,"Z"]},triangle:function(e,t,n,r){return["M",e+n/2,t,"L",e+n,t+r,e,t+r,"Z"]},"triangle-down":function(e,t,n,r){return["M",e,t,"L",e+n,t,e+n/2,t+r,"Z"]},diamond:function(e,t,n,r){return["M",e+n/2,t,"L",e+n,t+r/2,e+n/2,t+r,e,t+r/2,"Z"]},arc:function(e,t,n,r,i){var s=i.start,n=i.r||n||r,o=i.end-1e-6,r=i.innerR,u=i.open,a=G(s),f=Y(s),l=G(o),o=Y(o),i=i.end-s<Z?0:1;return["M",e+n*a,t+n*f,"A",n,n,0,i,1,e+n*l,t+n*o,u?"M":"L",e+r*l,t+r*o,"A",r,r,0,i,0,e+r*a,t+r*f,u?"":"Z"]}},clipRect:function(e,t,n,r){var i="highcharts-"+ht++,s=this.createElement("clipPath").attr({id:i}).add(this.defs),e=this.rect(e,t,n,r,0).add(s);return e.id=i,e.clipPath=s,e},color:function(t,n,r){var i=this,o,u=/^rgba/,a;t&&t.linearGradient?a="linearGradient":t&&t.radialGradient&&(a="radialGradient");if(a){var r=t[a],f=i.gradients,h,p,d,n=n.radialReference;if(!r.id||!f[r.id])s(r)&&(t[a]=r={x1:r[0],y1:r[1],x2:r[2],y2:r[3],gradientUnits:"userSpaceOnUse"}),a==="radialGradient"&&n&&!l(r.gradientUnits)&&e(r,{cx:n[0]-n[2]/2+r.cx*n[2],cy:n[1]-n[2]/2+r.cy*n[2],r:r.r*n[2],gradientUnits:"userSpaceOnUse"}),r.id="highcharts-"+ht++,f[r.id]=h=i.createElement(a).attr(r).add(i.defs),h.stops=[],Jt(t.stops,function(e){u.test(e[1])?(o=ln(e[1]),p=o.get("rgb"),d=o.get("a")):(p=e[1],d=1),e=i.createElement("stop").attr({offset:e[0],"stop-color":p,"stop-opacity":d}).add(h),h.stops.push(e)});return"url("+i.url+"#"+r.id+")"}return u.test(t)?(o=ln(t),c(n,r+"-opacity",o.get("a")),o.get("rgb")):(n.removeAttribute(r+"-opacity"),t)},text:function(e,t,n,r){var i=dt.chart.style;return r&&!this.forExport?this.html(e,t,n):(t=X(p(t,0)),n=X(p(n,0)),e=this.createElement("text").attr({x:t,y:n,text:e}).css({fontFamily:i.fontFamily,fontSize:i.fontSize}),e.x=t,e.y=n,e)},html:function(t,n,r){var i=dt.chart.style,s=this.createElement("span"),o=s.attrSetters,u=s.element,a=s.renderer;return o.text=function(e){return u.innerHTML=e,!1},o.x=o.y=o.align=function(e,t){return t==="align"&&(t="textAlign"),s[t]=e,s.htmlUpdateTransform(),!1},s.attr({text:t,x:X(n),y:X(r)}).css({position:"absolute",whiteSpace:"nowrap",fontFamily:i.fontFamily,fontSize:i.fontSize}),s.css=s.htmlCss,a.isSVG&&(s.add=function(t){var n,r,i=a.box.parentNode;if(t){if(n=t.div,!n)n=t.div=v(wt,{className:c(t.element,"class")},{position:"absolute",left:t.attr("translateX")+"px",top:t.attr("translateY")+"px"},i),r=n.style,e(t.attrSetters,{translateX:function(e){r.left=e+"px"},translateY:function(e){r.top=e+"px"},visibility:function(e,t){r[t]=e}})}else n=i;return n.appendChild(u),s.added=!0,s.alignOnAdd&&s.htmlUpdateTransform(),s}),s},fontMetrics:function(e){var e=n(e||11),e=e<24?e+4:X(e*1.2),t=X(e*.8);return{h:e,b:t}},label:function(t,n,r,i,s,o,u,a,f){function c(){var e=v.styles,e=e&&e.textAlign,t=w*(1-b),n;n=a?0:k,l(E)&&(e==="center"||e==="right")&&(t+={center:.5,right:1}[e]*(E-y.width)),(t!==m.x||n!==m.y)&&m.attr({x:t,y:n}),m.x=t,m.y=n}function h(e,t){g?g.attr(e,t):C[e]=t}function p(){v.attr({text:t,x:n,y:r}),l(s)&&v.attr({anchorX:s,anchorY:o})}var d=this,v=d.g(f),m=d.text("",0,0,u).attr({zIndex:1}).add(v),g,y,b=0,w=3,E,S,x,T,N=0,C={},k,u=v.attrSetters;Zt(v,"add",p),u.width=function(e){return E=e,!1},u.height=function(e){return S=e,!1},u.padding=function(e){return l(e)&&e!==w&&(w=e,c()),!1},u.align=function(e){return b={left:0,center:.5,right:1}[e],!1},u.text=function(e,t){m.attr(t,e);var n;return n=m.element.style,y=(E===void 0||S===void 0||v.styles.textAlign)&&m.getBBox(!0),v.width=(E||y.width||0)+2*w,v.height=(S||y.height||0)+2*w,k=w+d.fontMetrics(n&&n.fontSize).b,g||(n=a?-k:0,v.box=g=i?d.symbol(i,-b*w,n,v.width,v.height):d.rect(-b*w,n,v.width,v.height,0,C["stroke-width"]),g.add(v)),g.attr(Yt({width:v.width,height:v.height},C)),C=null,c(),!1},u["stroke-width"]=function(e,t){return N=e%2/2,h(t,e),!1},u.stroke=u.fill=u.r=function(e,t){return h(t,e),!1},u.anchorX=function(e,t){return s=e,h(t,e+N-x),!1},u.anchorY=function(e,t){return o=e,h(t,e-T),!1},u.x=function(e){return v.x=e,e-=b*((E||y.width)+w),x=X(e),v.attr("translateX",x),!1},u.y=function(e){return T=v.y=X(e),v.attr("translateY",e),!1};var L=v.css;return e(v,{css:function(e){if(e){var t={},e=Yt({},e);Jt("fontSize,fontWeight,fontFamily,color,lineHeight,width".split(","),function(n){e[n]!==R&&(t[n]=e[n],delete e[n])}),m.css(t)}return L.call(v,e)},getBBox:function(){return g.getBBox()},shadow:function(e){return g.shadow(e),v},destroy:function(){en(v,"add",p),en(v.element,"mouseenter"),en(v.element,"mouseleave"),m&&(m=m.destroy()),_.prototype.destroy.call(v)}})}},ft=cn;var hn;if(!ot&&!at){hn={init:function(e,t){var n=["<",t,' filled="f" stroked="f"'],r=["position: ","absolute",";"];(t==="shape"||t===wt)&&r.push("left:0;top:0;width:1px;height:1px;"),rt&&r.push("visibility: ",t===wt?"hidden":"visible"),n.push(' style="',r.join(""),'"/>'),t&&(n=t===wt||t==="span"||t==="img"?n.join(""):e.prepVML(n),this.element=v(n)),this.renderer=e,this.attrSetters={}},add:function(e){var t=this.renderer,n=this.element,r=t.box,r=e?e.element||e:r;return e&&e.inverted&&t.invertChild(n,r),rt&&r.gVis==="hidden"&&d(n,{visibility:"hidden"}),r.appendChild(n),this.added=!0,this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform(),tn(this,"add"),this},toggleChildren:function(e,t){for(var n=e.childNodes,r=n.length;r--;)d(n[r],{visibility:t}),n[r].nodeName==="DIV"&&this.toggleChildren(n[r],t)},updateTransform:_.prototype.htmlUpdateTransform,attr:function(e,t){var n,i,s,u=this.element||{},a=u.style,f=u.nodeName,h=this.renderer,p=this.symbolName,d,m=this.shadows,g,y=this.attrSetters,b=this;r(e)&&l(t)&&(n=e,e={},e[n]=t);if(r(e))n=e,b=n==="strokeWidth"||n==="stroke-width"?this.strokeweight:this[n];else for(n in e)if(i=e[n],g=!1,s=y[n]&&y[n](i,n),s!==!1&&i!==null){s!==R&&(i=s);if(p&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(n))d||(this.symbolAttr(e),d=!0),g=!0;else if(n==="d"){i=i||[],this.d=i.join(" "),s=i.length;for(g=[];s--;)g[s]=o(i[s])?X(i[s]*10)-5:i[s]==="Z"?"x":i[s];i=g.join(" ")||"x",u.path=i;if(m)for(s=m.length;s--;)m[s].path=m[s].cutOff?this.cutOffPath(i,m[s].cutOff):i;g=!0}else n==="zIndex"||n==="visibility"?(rt&&n==="visibility"&&f==="DIV"&&(u.gVis=i,this.toggleChildren(u,i),i==="visible"&&(i=null)),i&&(a[n]=i),g=!0):n==="width"||n==="height"?(i=J(0,i),this[n]=i,this.updateClipping?(this[n]=i,this.updateClipping()):a[n]=i,g=!0):n==="x"||n==="y"?(this[n]=i,a[{x:"left",y:"top"}[n]]=i):n==="class"?u.className=i:n==="stroke"?(i=h.color(i,u,n),n="strokecolor"):n==="stroke-width"||n==="strokeWidth"?(u.stroked=i?!0:!1,n="strokeweight",this[n]=i,o(i)&&(i+="px")):n==="dashstyle"?((u.getElementsByTagName("stroke")[0]||v(h.prepVML(["<stroke/>"]),null,null,u))[n]=i||"solid",this.dashstyle=i,g=!0):n==="fill"?f==="SPAN"?a.color=i:(u.filled=i!==Et?!0:!1,i=h.color(i,u,n),n="fillcolor"):f==="shape"&&n==="rotation"?this[n]=i:n==="translateX"||n==="translateY"||n==="rotation"?(this[n]=i,this.updateTransform(),g=!0):n==="text"&&(this.bBox=null,u.innerHTML=i,g=!0);if(m&&n==="visibility")for(s=m.length;s--;)m[s].style[n]=i;g||(rt?u[n]=i:c(u,n,i))}return b},clip:function(e){var t=this,n=e.members,r=t.element,i=r.parentNode;return n.push(t),t.destroyClip=function(){f(n,t)},i&&i.className==="highcharts-tracker"&&!rt&&d(r,{visibility:"hidden"}),t.css(e.getCSS(t))},css:_.prototype.htmlCss,safeRemoveChild:function(e){e.parentNode&&k(e)},destroy:function(){return this.destroyClip&&this.destroyClip(),_.prototype.destroy.apply(this)},empty:function(){for(var e=this.element.childNodes,t=e.length,n;t--;)n=e[t],n.parentNode.removeChild(n)},on:function(e,t){return this.element["on"+e]=function(){var e=z.event;e.target=e.srcElement,t(e)},this},cutOffPath:function(e,t){var r,e=e.split(/[ ,]/);r=e.length;if(r===9||r===11)e[r-4]=e[r-2]=n(e[r-2])-10*t;return e.join(" ")},shadow:function(e,t,r){var i=[],s=this.element,o=this.renderer,u,a=s.style,f,l=s.path,c,h;l&&typeof l.value!="string"&&(l="x"),h=l;if(e){for(e=1;e<=3;e++)c=7-2*e,r&&(h=this.cutOffPath(l.value,c+.5)),f=['<shape isShadow="true" strokeweight="',7-2*e,'" filled="false" path="',h,'" coordsize="10 10" style="',s.style.cssText,'" />'],u=v(o.prepVML(f),null,{left:n(a.left)+1,top:n(a.top)+1}),r&&(u.cutOff=c+1),f=['<stroke color="black" opacity="',.05*e,'"/>'],v(o.prepVML(f),null,null,u),t?t.element.appendChild(u):s.parentNode.insertBefore(u,s),i.push(u);this.shadows=i}return this}},hn=m(_,hn);var pn={Element:hn,isIE8:tt.indexOf("MSIE 8.0")>-1,init:function(e,t,n){var r,i;this.alignedObjects=[],r=this.createElement(wt),i=r.element,i.style.position="relative",e.appendChild(r.element),this.box=i,this.boxWrapper=r,this.setSize(t,n,!1),U.namespaces.hcv||(U.namespaces.add("hcv","urn:schemas-microsoft-com:vml"),U.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } ")},isHidden:function(){return!this.box.offsetWidth},clipRect:function(t,n,r,i){var s=this.createElement();return e(s,{members:[],left:t,top:n,width:r,height:i,getCSS:function(t){var n=t.inverted,r=this.top,i=this.left,s=i+this.width,o=r+this.height,r={clip:"rect("+X(n?i:r)+"px,"+X(n?o:s)+"px,"+X(n?s:o)+"px,"+X(n?r:i)+"px)"};return!n&&rt&&t.element.nodeName!=="IMG"&&e(r,{width:s+"px",height:o+"px"}),r},updateClipping:function(){Jt(s.members,function(e){e.css(s.getCSS(e))})}})},color:function(e,t,n){var r,i=/^rgba/,s,o=Et;e&&e.linearGradient?s="gradient":e&&e.radialGradient&&(s="pattern");if(s){var u,a,f=e.linearGradient||e.radialGradient,l,c,h,p,d,m,g="",e=e.stops,y,b=[];c=e[0],y=e[e.length-1],c[0]>0&&e.unshift([0,c[1]]),y[0]<1&&e.push([1,y[1]]),Jt(e,function(e,t){i.test(e[1])?(r=ln(e[1]),u=r.get("rgb"),a=r.get("a")):(u=e[1],a=1),b.push(e[0]*100+"% "+u),t?(p=a,d=u):(h=a,m=u)}),s==="gradient"?(l=f.x1||f[0]||0,e=f.y1||f[1]||0,c=f.x2||f[2]||0,f=f.y2||f[3]||0,l=90-W.atan((f-e)/(c-l))*180/Z):(o=f.r*2,g='src="http://code.highcharts.com/gfx/radial-gradient.png" size="'+o+","+o+'" origin="0.5,0.5" position="'+f.cx+","+f.cy+'" color2="'+m+'" ',o=d),n==="fill"?(n=['<fill colors="'+b.join(",")+'" angle="',l,'" opacity="',p,'" o:opacity2="',h,'" type="',s,'" ',g,'focus="100%" method="any" />'],v(this.prepVML(n),null,null,t)):o=u}else i.test(e)&&t.tagName!=="IMG"?(r=ln(e),n=["<",n,' opacity="',r.get("a"),'"/>'],v(this.prepVML(n),null,null,t),o=r.get("rgb")):(t=t.getElementsByTagName(n),t.length&&(t[0].opacity=1),o=e);return o},prepVML:function(e){var t=this.isIE8,e=e.join("");return t?(e=e.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),e=e.indexOf('style="')===-1?e.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):e.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):e=e.replace("<","<hcv:"),e},text:cn.prototype.html,path:function(t){var n={coordsize:"10 10"};return s(t)?n.d=t:i(t)&&e(n,t),this.createElement("shape").attr(n)},circle:function(e,t,n){return this.symbol("circle").attr({x:e-n,y:t-n,width:2*n,height:2*n})},g:function(e){var t;return e&&(t={className:"highcharts-"+e,"class":"highcharts-"+e}),this.createElement(wt).attr(t)},image:function(e,t,n,r,i){var s=this.createElement("img").attr({src:e});return arguments.length>1&&s.css({left:t,top:n,width:r,height:i}),s},rect:function(e,t,n,r,s,o){i(e)&&(t=e.y,n=e.width,r=e.height,o=e.strokeWidth,e=e.x);var u=this.symbol("rect");return u.r=s,u.attr(u.crisp(o,e,t,J(n,0),J(r,0)))},invertChild:function(e,t){var r=t.style;d(e,{flip:"x",left:n(r.width)-1,top:n(r.height)-1,rotation:-90})},symbols:{arc:function(e,t,n,r,i){var s=i.start,o=i.end,u=i.r||n||r,n=G(s),r=Y(s),a=G(o),f=Y(o),l=i.innerR,c=.08/u,h=l&&.1/l||0;return o-s===0?["x"]:(2*Z-o+s<c?a=-c:o-s<h&&(a=G(s+h)),s=["wa",e-u,t-u,e+u,t+u,e+u*n,t+u*r,e+u*a,t+u*f],i.open&&s.push("M",e-l,t-l),s.push("at",e-l,t-l,e+l,t+l,e+l*a,t+l*f,e+l*n,t+l*r,"x","e"),s)},circle:function(e,t,n,r){return["wa",e,t,e+n,t+r,e+n,t+r/2,e+n,t+r/2,"e"]},rect:function(e,t,n,r,i){var s=e+n,o=t+r,u;return!l(i)||!i.r?s=cn.prototype.symbols.square.apply(0,arguments):(u=K(i.r,n,r),s=["M",e+u,t,"L",s-u,t,"wa",s-2*u,t,s,t+2*u,s-u,t,s,t+u,"L",s,o-u,"wa",s-2*u,o-2*u,s,o,s,o-u,s-u,o,"L",e+u,o,"wa",e,o-2*u,e+2*u,o,e+u,o,e,o-u,"L",e,t+u,"wa",e,t,e+2*u,t+2*u,e,t+u,e+u,t,"x","e"]),s}}};hn=function(){this.init.apply(this,arguments)},hn.prototype=Yt(cn.prototype,pn),ft=hn}var dn,vn;at&&(dn=function(){},dn.prototype.symbols={},vn=function(){function e(){var e=t.length,n;for(n=0;n<e;n++)t[n]();t=[]}var t=[];return{push:function(n,r){t.length===0&&$t(r,e),t.push(n)}}}()),ft=hn||dn||cn,D.prototype={addLabel:function(){var t=this.axis,n=t.options,r=t.chart,i=t.horiz,s=t.categories,u=this.pos,f=n.labels,c=t.tickPositions,i=s&&i&&s.length&&!f.step&&!f.staggerLines&&!f.rotation&&r.plotWidth/c.length||!i&&r.plotWidth/2,h=u===c[0],p=u===c[c.length-1],d=s&&l(s[u])?s[u]:u,s=this.label,c=c.info,v;t.isDatetimeAxis&&c&&(v=n.dateTimeLabelFormats[c.higherRanks[u]||c.unitName]),this.isFirst=h,this.isLast=p,n=t.labelFormatter.call({axis:t,chart:r,isFirst:h,isLast:p,dateTimeLabelFormat:v,value:t.isLog?A(a(d)):d}),u=i&&{width:J(1,X(i-2*(f.padding||10)))+"px"},u=e(u,f.style),l(s)?s&&s.attr({text:n}).css(u):(i={align:f.align},o(f.rotation)&&(i.rotation=f.rotation),this.label=l(n)&&f.enabled?r.renderer.text(n,0,0,f.useHTML).attr(i).css(u).add(t.axisGroup):null)},getLabelSize:function(){var e=this.label,t=this.axis;return e?(this.labelBBox=e.getBBox(!0))[t.horiz?"height":"width"]:0},getLabelSides:function(){var e=this.axis.options.labels,t=this.labelBBox.width,e=t*{left:0,center:.5,right:1}[e.align]-e.x;return[-e,t-e]},handleOverflow:function(e,t){var n=!0,r=this.axis,i=r.chart,s=this.isFirst,o=this.isLast,u=t.x,a=r.reversed,f=r.tickPositions;if(s||o){var l=this.getLabelSides(),c=l[0],l=l[1],i=i.plotLeft,h=i+r.len,f=(r=r.ticks[f[e+(s?1:-1)]])&&r.label.xy.x+r.getLabelSides()[s?0:1];s&&!a||o&&a?u+c<i&&(u=i-c,r&&u+l>f&&(n=!1)):u+l>h&&(u=h-l,r&&u+c<f&&(n=!1)),t.x=u}return n},getPosition:function(e,t,n,r){var i=this.axis,s=i.chart,o=r&&s.oldChartHeight||s.chartHeight;return{x:e?i.translate(t+n,null,null,r)+i.transB:i.left+i.offset+(i.opposite?(r&&s.oldChartWidth||s.chartWidth)-i.right-i.left:0),y:e?o-i.bottom+i.offset-(i.opposite?i.height:0):o-i.translate(t+n,null,null,r)-i.transB}},getLabelPosition:function(e,t,r,i,s,o,u,a){var f=this.axis,c=f.transA,h=f.reversed,f=f.staggerLines,e=e+s.x-(o&&i?o*c*(h?-1:1):0),t=t+s.y-(o&&!i?o*c*(h?1:-1):0);return l(s.y)||(t+=n(r.styles.lineHeight)*.9-r.getBBox().height/2),f&&(t+=u/(a||1)%f*16),{x:e,y:t}},getMarkPath:function(e,t,n,r,i,s){return s.crispLine(["M",e,t,"L",e+(i?0:-n),t+(i?n:0)],r)},render:function(
e,t){var n=this.axis,r=n.options,i=n.chart.renderer,s=n.horiz,o=this.type,u=this.label,a=this.pos,f=r.labels,l=this.gridLine,c=o?o+"Grid":"grid",h=o?o+"Tick":"tick",d=r[c+"LineWidth"],v=r[c+"LineColor"],m=r[c+"LineDashStyle"],g=r[h+"Length"],c=r[h+"Width"]||0,y=r[h+"Color"],b=r[h+"Position"],h=this.mark,w=f.step,E=!0,S=r.categories&&r.tickmarkPlacement==="between"?.5:0,x=this.getPosition(s,a,S,t),T=x.x,x=x.y,N=n.staggerLines;d&&(a=n.getPlotLinePath(a+S,d,t),l===R&&(l={stroke:v,"stroke-width":d},m&&(l.dashstyle=m),o||(l.zIndex=1),this.gridLine=l=d?i.path(a).attr(l).add(n.gridGroup):null),!t&&l&&a&&l[this.isNew?"attr":"animate"]({d:a})),c&&(b==="inside"&&(g=-g),n.opposite&&(g=-g),o=this.getMarkPath(T,x,g,c,s,i),h?h.animate({d:o}):this.mark=i.path(o).attr({stroke:y,"stroke-width":c}).add(n.axisGroup)),u&&!isNaN(T)&&(u.xy=x=this.getLabelPosition(T,x,u,s,f,S,e,w),this.isFirst&&!p(r.showFirstLabel,1)||this.isLast&&!p(r.showLastLabel,1)?E=!1:!N&&s&&f.overflow==="justify"&&!this.handleOverflow(e,x)&&(E=!1),w&&e%w&&(E=!1),E?(u[this.isNew?"attr":"animate"](x),u.show(),this.isNew=!1):u.hide())},destroy:function(){C(this,this.axis)}},P.prototype={render:function(){var e=this,t=e.axis,n=t.horiz,r=(t.pointRange||0)/2,i=e.options,s=i.label,o=e.label,a=i.width,f=i.to,c=i.from,h=l(c)&&l(f),d=i.value,v=i.dashStyle,m=e.svgElem,g=[],y,b=i.color,w=i.zIndex,E=i.events,S=t.chart.renderer;t.isLog&&(c=u(c),f=u(f),d=u(d));if(a){if(g=t.getPlotLinePath(d,a),r={stroke:b,"stroke-width":a},v)r.dashstyle=v}else{if(!h)return;if(c=J(c,t.min-r),f=K(f,t.max+r),g=t.getPlotBandPath(c,f,i),r={fill:b},i.borderWidth)r.stroke=i.borderColor,r["stroke-width"]=i.borderWidth}l(w)&&(r.zIndex=w);if(m)g?m.animate({d:g},null,m.onGetPath):(m.hide(),m.onGetPath=function(){m.show()});else if(g&&g.length&&(e.svgElem=m=S.path(g).attr(r).add(),E))for(y in i=function(t){m.on(t,function(n){E[t].apply(e,[n])})},E)i(y);return s&&l(s.text)&&g&&g.length&&t.width>0&&t.height>0?(s=Yt({align:n&&h&&"center",x:n?!h&&4:10,verticalAlign:!n&&h&&"middle",y:n?h?16:10:h?6:-4,rotation:n&&!h&&90},s),o||(e.label=o=S.text(s.text,0,0).attr({align:s.textAlign||s.align,rotation:s.rotation,zIndex:w}).css(s.style).add()),t=[g[1],g[4],p(g[6],g[1])],g=[g[2],g[5],p(g[7],g[2])],n=T(t),h=T(g),o.align(s,!1,{x:n,y:h,width:N(t)-n,height:N(g)-h}),o.show()):o&&o.hide(),e},destroy:function(){f(this.axis.plotLinesAndBands,this),C(this,this.axis)}},H.prototype={destroy:function(){C(this,this.axis)},setTotal:function(e){this.cum=this.total=e},render:function(e){var t=this.options.formatter.call(this);this.label?this.label.attr({text:t,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(t,0,0).css(this.options.style).attr({align:this.textAlign,rotation:this.options.rotation,visibility:"hidden"}).add(e)},setOffset:function(e,t){var n=this.axis,r=n.chart,i=r.inverted,s=this.isNegative,o=n.translate(this.total,0,0,0,1),n=n.translate(0),n=Q(o-n),u=r.xAxis[0].translate(this.x)+e,r=r.plotHeight,i={x:i?s?o:o-n:u,y:i?r-u-t:s?r-o-n:r-o,width:i?n:t,height:i?t:n};this.label&&this.label.align(this.alignOptions,null,i).attr({visibility:"visible"})}},B.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#C0C0C0",labels:Xt,lineColor:"#C0D0E0",lineWidth:1,minPadding:.01,maxPadding:.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#6D869F",fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{align:"right",x:-8,y:3},lineWidth:0,maxPadding:.05,minPadding:.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Y-values"},stackLabels:{enabled:!1,formatter:function(){return this.total},style:Xt.style}},defaultLeftAxisOptions:{labels:{align:"right",x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{align:"left",x:8,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{align:"center",x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{align:"center",x:0,y:-5},title:{rotation:0}},init:function(e,t){var n=t.isX;this.horiz=e.inverted?!n:n,this.xOrY=(this.isXAxis=n)?"x":"y",this.opposite=t.opposite,this.side=this.horiz?this.opposite?0:2:this.opposite?1:3,this.setOptions(t);var r=this.options,i=r.type,s=i==="datetime";this.labelFormatter=r.labels.formatter||this.defaultLabelFormatter,this.staggerLines=this.horiz&&r.labels.staggerLines,this.userOptions=t,this.minPixelPadding=0,this.chart=e,this.reversed=r.reversed,this.categories=r.categories,this.isLog=i==="logarithmic",this.isLinked=l(r.linkedTo),this.isDatetimeAxis=s,this.ticks={},this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.stacks={},this.min=this.max=null;var o,r=this.options.events;e.axes.push(this),e[n?"xAxis":"yAxis"].push(this),this.series=[],e.inverted&&n&&this.reversed===R&&(this.reversed=!0),this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine,this.addPlotLine=this.addPlotBand=this.addPlotBandOrLine;for(o in r)Zt(this,o,r[o]);this.isLog&&(this.val2lin=u,this.lin2val=a)},setOptions:function(e){this.options=Yt(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],e)},defaultLabelFormatter:function(){var e=this.axis,t=this.value,n=e.tickInterval,r=this.dateTimeLabelFormat;return e.categories?t:r?vt(r,t):n%1e6===0?t/1e6+"M":n%1e3===0?t/1e3+"k":t>=1e3?g(t,0):g(t,-1)},getSeriesExtremes:function(){var e=this,t=e.chart,n=e.stacks,r=[],i=[],s;e.dataMin=e.dataMax=null,Jt(e.series,function(o){if(o.visible||!t.options.chart.ignoreHiddenSeries){var u=o.options,a,f,c,h,d,v,m,g,y,b=u.threshold,w,E=[],S=0;e.isLog&&b<=0&&(b=u.threshold=null);if(e.isXAxis){if(u=o.xData,u.length)e.dataMin=K(p(e.dataMin,u[0]),T(u)),e.dataMax=J(p(e.dataMax,u[0]),N(u))}else{var x,C,k,L=o.cropped,A=o.xAxis.getExtremes(),O=!!o.modifyValue;a=u.stacking,e.usePercentage=a==="percent",a&&(d=u.stack,h=o.type+p(d,""),v="-"+h,o.stackKey=h,f=r[h]||[],r[h]=f,c=i[v]||[],i[v]=c),e.usePercentage&&(e.dataMin=0,e.dataMax=99),u=o.processedXData,m=o.processedYData,w=m.length;for(s=0;s<w;s++)if(g=u[s],y=m[s],y!==null&&y!==R&&(a?(C=(x=y<b)?c:f,k=x?v:h,y=C[g]=l(C[g])?C[g]+y:y,n[k]||(n[k]={}),n[k][g]||(n[k][g]=new H(e,e.options.stackLabels,x,g,d)),n[k][g].setTotal(y)):O&&(y=o.modifyValue(y)),L||(u[s+1]||g)>=A.min&&(u[s-1]||g)<=A.max))if(g=y.length)for(;g--;)y[g]!==null&&(E[S++]=y[g]);else E[S++]=y;!e.usePercentage&&E.length&&(e.dataMin=K(p(e.dataMin,E[0]),T(E)),e.dataMax=J(p(e.dataMax,E[0]),N(E))),l(b)&&(e.dataMin>=b?(e.dataMin=b,e.ignoreMinPadding=!0):e.dataMax<b&&(e.dataMax=b,e.ignoreMaxPadding=!0))}}})},translate:function(e,t,n,r,i){var s=this.len,o=1,u=0,a=r?this.oldTransA:this.transA,r=r?this.oldMin:this.min,i=this.options.ordinal||this.isLog&&i;return a||(a=this.transA),n&&(o*=-1,u=s),this.reversed&&(o*=-1,u-=o*s),t?(this.reversed&&(e=s-e),e=e/a+r,i&&(e=this.lin2val(e))):(i&&(e=this.val2lin(e)),e=o*(e-r)*a+u+o*this.minPixelPadding),e},getPlotLinePath:function(e,t,n){var r=this.chart,i=this.left,s=this.top,o,u,a,e=this.translate(e,null,null,n),f=n&&r.oldChartHeight||r.chartHeight,l=n&&r.oldChartWidth||r.chartWidth,c;o=this.transB,n=u=X(e+o),o=a=X(f-e-o);if(isNaN(e))c=!0;else if(this.horiz){if(o=s,a=f-this.bottom,n<i||n>i+this.width)c=!0}else if(n=i,u=l-this.right,o<s||o>s+this.height)c=!0;return c?null:r.renderer.crispLine(["M",n,o,"L",u,a],t||0)},getPlotBandPath:function(e,t){var n=this.getPlotLinePath(t),r=this.getPlotLinePath(e);return r&&n?r.push(n[4],n[5],n[1],n[2]):r=null,r},getLinearTickPositions:function(e,t,n){for(var r,t=A(V(t/e)*e),n=A($(n/e)*e),i=[];t<=n;){i.push(t),t=A(t+e);if(t===r)break;r=t}return i},getLogTickPositions:function(e,t,n,r){var i=this.options,s=this.len,o=[];r||(this._minorAutoInterval=null);if(e>=.5)e=X(e),o=this.getLinearTickPositions(e,t,n);else if(e>=.08)for(var s=V(t),f,l,c,h,d,i=e>.3?[1,2,4]:e>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];s<n+1&&!d;s++){l=i.length;for(f=0;f<l&&!d;f++)c=u(a(s)*i[f]),c>t&&o.push(h),h>n&&(d=!0),h=c}else if(t=a(t),n=a(n),e=i[r?"minorTickInterval":"tickInterval"],e=p(e==="auto"?null:e,this._minorAutoInterval,(n-t)*(i.tickPixelInterval/(r?5:1))/((r?s/this.tickPositions.length:s)||1)),e=b(e,null,W.pow(10,V(W.log(e)/W.LN10))),o=Gt(this.getLinearTickPositions(e,t,n),u),!r)this._minorAutoInterval=e/5;return r||(this.tickInterval=e),o},getMinorTickPositions:function(){var e=this.tickPositions,t=this.minorTickInterval,n=[],r,i;if(this.isLog){i=e.length;for(r=1;r<i;r++)n=n.concat(this.getLogTickPositions(t,e[r-1],e[r],!0))}else for(e=this.min+(e[0]-this.min)%t;e<=this.max;e+=t)n.push(e);return n},adjustForMinRange:function(){var e=this.options,t=this.min,n=this.max,r,i=this.dataMax-this.dataMin>=this.minRange,s,o,u,a,f;this.isXAxis&&this.minRange===R&&!this.isLog&&(l(e.min)||l(e.max)?this.minRange=null:(Jt(this.series,function(e){a=e.xData;for(o=f=e.xIncrement?1:a.length-1;o>0;o--)if(u=a[o]-a[o-1],s===R||u<s)s=u}),this.minRange=K(s*5,this.dataMax-this.dataMin)));if(n-t<this.minRange){var c=this.minRange;r=(c-n+t)/2,r=[t-r,p(e.min,t-r)],i&&(r[2]=this.dataMin),t=N(r),n=[t+c,p(e.max,t+c)],i&&(n[2]=this.dataMax),n=T(n),n-t<c&&(r[0]=n-c,r[1]=p(e.min,n-c),t=N(r))}this.min=t,this.max=n},setAxisTranslation:function(){var e=this.max-this.min,t=0,n,r,i=this.transA;this.isXAxis&&(this.isLinked?t=this.linkedParent.pointRange:Jt(this.series,function(e){t=J(t,e.pointRange),r=e.closestPointRange,!e.noSharedTooltip&&l(r)&&(n=l(n)?K(n,r):r)}),this.pointRange=t,this.closestPointRange=n),this.oldTransA=i,this.translationSlope=this.transA=i=this.len/(e+t||1),this.transB=this.horiz?this.left:this.bottom,this.minPixelPadding=i*(t/2)},setTickPositions:function(e){var t=this,n=t.chart,r=t.options,i=t.isLog,s=t.isDatetimeAxis,o=t.isXAxis,a=t.isLinked,f=t.options.tickPositioner,c=r.maxPadding,h=r.minPadding,d=r.tickInterval,v=r.tickPixelInterval,m=t.categories;a?(t.linkedParent=n[o?"xAxis":"yAxis"][r.linkedTo],n=t.linkedParent.getExtremes(),t.min=p(n.min,n.dataMin),t.max=p(n.max,n.dataMax),r.type!==t.linkedParent.options.type&&L(11,1)):(t.min=p(t.userMin,r.min,t.dataMin),t.max=p(t.userMax,r.max,t.dataMax)),i&&(!e&&K(t.min,p(t.dataMin,t.min))<=0&&L(10,1),t.min=A(u(t.min)),t.max=A(u(t.max))),t.range&&(t.userMin=t.min=J(t.min,t.max-t.range),t.userMax=t.max,e)&&(t.range=null),t.adjustForMinRange(),!m&&!t.usePercentage&&!a&&l(t.min)&&l(t.max)&&(n=t.max-t.min||1,!l(r.min)&&!l(t.userMin)&&h&&(t.dataMin<0||!t.ignoreMinPadding)&&(t.min-=n*h),!l(r.max)&&!l(t.userMax)&&c&&(t.dataMax>0||!t.ignoreMaxPadding)&&(t.max+=n*c)),t.tickInterval=t.min===t.max||t.min===void 0||t.max===void 0?1:a&&!d&&v===t.linkedParent.options.tickPixelInterval?t.linkedParent.tickInterval:p(d,m?1:(t.max-t.min)*v/(t.len||1)),o&&!e&&Jt(t.series,function(e){e.processData(t.min!==t.oldMin||t.max!==t.oldMax)}),t.setAxisTranslation(),t.beforeSetTickPositions&&t.beforeSetTickPositions(),t.postProcessTickInterval&&(t.tickInterval=t.postProcessTickInterval(t.tickInterval)),!s&&!i&&(e=W.pow(10,V(W.log(t.tickInterval)/W.LN10)),!l(r.tickInterval))&&(t.tickInterval=b(t.tickInterval,null,e,r)),t.minorTickInterval=r.minorTickInterval==="auto"&&t.tickInterval?t.tickInterval/5:r.minorTickInterval,t.tickPositions=f=r.tickPositions||f&&f.apply(t,[t.min,t.max]),f||(f=s?(t.getNonLinearTimeTicks||E)(w(t.tickInterval,r.units),t.min,t.max,r.startOfWeek,t.ordinalPositions,t.closestPointRange,!0):i?t.getLogTickPositions(t.tickInterval,t.min,t.max):t.getLinearTickPositions(t.tickInterval,t.min,t.max),t.tickPositions=f),a||(i=f[0],s=f[f.length-1],r.startOnTick?t.min=i:t.min>i&&f.shift(),r.endOnTick?t.max=s:t.max<s&&f.pop())},setMaxTicks:function(){var e=this.chart,t=e.maxTicks,n=this.tickPositions,r=this.xOrY;t||(t={x:0,y:0}),!this.isLinked&&!this.isDatetimeAxis&&n.length>t[r]&&this.options.alignTicks!==!1&&(t[r]=n.length),e.maxTicks=t},adjustTickAmount:function(){var e=this.xOrY,t=this.tickPositions,n=this.chart.maxTicks;if(n&&n[e]&&!this.isDatetimeAxis&&!this.categories&&!this.isLinked&&this.options.alignTicks!==!1){var r=this.tickAmount,i=t.length;this.tickAmount=e=n[e];if(i<e){for(;t.length<e;)t.push(A(t[t.length-1]+this.tickInterval));this.transA*=(i-1)/(e-1),this.max=t[t.length-1]}l(r)&&e!==r&&(this.isDirty=!0)}},setScale:function(){var e=this.stacks,t,n,r,i;this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),i=this.len!==this.oldAxisLength,Jt(this.series,function(e){if(e.isDirtyData||e.isDirty||e.xAxis.isDirty)r=!0});if(i||r||this.isLinked||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax)if(this.getSeriesExtremes(),this.setTickPositions(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,!this.isDirty)this.isDirty=i||this.min!==this.oldMin||this.max!==this.oldMax;if(!this.isXAxis)for(t in e)for(n in e[t])e[t][n].cum=e[t][n].total;this.setMaxTicks()},setExtremes:function(t,n,r,i,s){var o=this,u=o.chart,r=p(r,!0),s=e(s,{min:t,max:n});tn(o,"setExtremes",s,function(){o.userMin=t,o.userMax=n,o.isDirtyExtremes=!0,r&&u.redraw(i)})},setAxisSize:function(){var e=this.chart,t=this.options,n=t.offsetLeft||0,r=t.offsetRight||0;this.left=p(t.left,e.plotLeft+n),this.top=p(t.top,e.plotTop),this.width=p(t.width,e.plotWidth-n+r),this.height=p(t.height,e.plotHeight),this.bottom=e.chartHeight-this.height-this.top,this.right=e.chartWidth-this.width-this.left,this.len=J(this.horiz?this.width:this.height,0)},getExtremes:function(){var e=this.isLog;return{min:e?A(a(this.min)):this.min,max:e?A(a(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(e){var t=this.isLog,n=t?a(this.min):this.min,t=t?a(this.max):this.max;return n>e||e===null?e=n:t<e&&(e=t),this.translate(e,0,1,0,1)},addPlotBandOrLine:function(e){return e=(new P(this,e)).render(),this.plotLinesAndBands.push(e),e},getOffset:function(){var e=this,t=e.chart,n=t.renderer,r=e.options,i=e.tickPositions,s=e.ticks,o=e.horiz,u=e.side,a,f=0,c,h=0,d=r.title,v=r.labels,m=0,g=t.axisOffset,y=[-1,1,1,-1][u],b;e.hasData=t=e.series.length&&l(e.min)&&l(e.max),e.showAxis=a=t||p(r.showEmpty,!0),e.axisGroup||(e.axisGroup=n.g("axis").attr({zIndex:r.zIndex||7}).add(),e.gridGroup=n.g("grid").attr({zIndex:r.gridZIndex||1}).add());if(t||e.isLinked)Jt(i,function(t){s[t]?s[t].addLabel():s[t]=new D(e,t)}),Jt(i,function(e){if(u===0||u===2||{1:"left",3:"right"}[u]===v.align)m=J(s[e].getLabelSize(),m)}),e.staggerLines&&(m+=(e.staggerLines-1)*16);else for(b in s)s[b].destroy(),delete s[b];d&&d.text&&(e.axisTitle||(e.axisTitle=n.text(d.text,0,0,d.useHTML).attr({zIndex:7,rotation:d.rotation||0,align:d.textAlign||{low:"left",middle:"center",high:"right"}[d.align]}).css(d.style).add(e.axisGroup),e.axisTitle.isNew=!0),a&&(f=e.axisTitle.getBBox()[o?"height":"width"],h=p(d.margin,o?5:10),c=d.offset),e.axisTitle[a?"show":"hide"]()),e.offset=y*p(r.offset,g[u]),e.axisTitleMargin=p(c,m+h+(u!==2&&m&&y*r.labels[o?"y":"x"])),g[u]=J(g[u],e.axisTitleMargin+f+y*e.offset)},getLinePath:function(e){var t=this.chart,n=this.opposite,r=this.offset,i=this.horiz,s=this.left+(n?this.width:0)+r,n=t.chartHeight-this.bottom-(n?this.height:0)+r;return t.renderer.crispLine(["M",i?this.left:s,i?n:this.top,"L",i?t.chartWidth-this.right:s,i?n:t.chartHeight-this.bottom],e)},getTitlePosition:function(){var e=this.horiz,t=this.left,r=this.top,i=this.len,s=this.options.title,o=e?t:r,u=this.opposite,a=this.offset,f=n(s.style.fontSize||12),i={low:o+(e?0:i),middle:o+i/2,high:o+(e?i:0)}[s.align],t=(e?r+this.height:t)+(e?1:-1)*(u?-1:1)*this.axisTitleMargin+(this.side===2?f:0);return{x:e?i:t+(u?this.width:0)+a+(s.x||0),y:e?t-(u?this.height:0)+a:i+(s.y||0)}},render:function(){var e=this,t=e.chart,n=t.renderer,r=e.options,i=e.isLog,s=e.isLinked,o=e.tickPositions,u=e.axisTitle,f=e.stacks,c=e.ticks,h=e.minorTicks,p=e.alternateBands,d=r.stackLabels,v=r.alternateGridColor,m=r.lineWidth,g,y=t.hasRendered&&l(e.oldMin)&&!isNaN(e.oldMin),b=e.showAxis,w,E;if(e.hasData||s)if(e.minorTickInterval&&!e.categories&&Jt(e.getMinorTickPositions(),function(t){h[t]||(h[t]=new D(e,t,"minor")),y&&h[t].isNew&&h[t].render(null,!0),h[t].isActive=!0,h[t].render()}),Jt(o.slice(1).concat([o[0]]),function(t,n){n=n===o.length-1?0:n+1;if(!s||t>=e.min&&t<=e.max)c[t]||(c[t]=new D(e,t)),y&&c[t].isNew&&c[t].render(n,!0),c[t].isActive=!0,c[t].render(n)}),v&&Jt(o,function(t,n){n%2===0&&t<e.max&&(p[t]||(p[t]=new P(e)),w=t,E=o[n+1]!==R?o[n+1]:e.max,p[t].options={from:i?a(w):w,to:i?a(E):E,color:v},p[t].render(),p[t].isActive=!0)}),!e._addedPlotLB)Jt((r.plotLines||[]).concat(r.plotBands||[]),function(t){e.addPlotBandOrLine(t)}),e._addedPlotLB=!0;Jt([c,h,p],function(e){for(var t in e)e[t].isActive?e[t].isActive=!1:(e[t].destroy(),delete e[t])}),m&&(g=e.getLinePath(m),e.axisLine?e.axisLine.animate({d:g}):e.axisLine=n.path(g).attr({stroke:r.lineColor,"stroke-width":m,zIndex:7}).add(),e.axisLine[b?"show":"hide"]()),u&&b&&(u[u.isNew?"attr":"animate"](e.getTitlePosition()),u.isNew=!1);if(d&&d.enabled){var S,x,r=e.stackTotalGroup;r||(e.stackTotalGroup=r=n.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),r.translate(t.plotLeft,t.plotTop);for(S in f)for(x in t=f[S],t)t[x].render(r)}e.isDirty=!1},removePlotBandOrLine:function(e){for(var t=this.plotLinesAndBands,n=t.length;n--;)t[n].id===e&&t[n].destroy()},setTitle:function(e,t){var n=this.chart,r=this.options;r.title=Yt(r.title,e),this.axisTitle=void 0,this.isDirty=!0,p(t,!0)&&n.redraw()},redraw:function(){var e=this.chart;e.tracker.resetTracker&&e.tracker.resetTracker(!0),this.render(),Jt(this.plotLinesAndBands,function(e){e.render()}),Jt(this.series,function(e){e.isDirty=!0})},setCategories:function(e,t){var n=this.chart;this.categories=this.userOptions.categories=e,Jt(this.series,function(e){e.translate(),e.setTooltipPoints(!0)}),this.isDirty=!0,p(t,!0)&&n.redraw()},destroy:function(){var e=this,t=e.stacks,n;en(e);for(n in t)C(t[n]),t[n]=null;Jt([e.ticks,e.minorTicks,e.alternateBands,e.plotLinesAndBands],function(e){C(e)}),Jt(["stackTotalGroup","axisLine","axisGroup","gridGroup","axisTitle"],function(t){e[t]&&(e[t]=e[t].destroy())})}},j.prototype={destroy:function(){Jt(this.crosshairs,function(e){e&&e.destroy()}),this.label&&(this.label=this.label.destroy())},move:function(e,t){var n=this;n.currentX=n.tooltipIsHidden?e:(2*n.currentX+e)/3,n.currentY=n.tooltipIsHidden?t:(n.currentY+t)/2,n.label.attr({x:n.currentX,y:n.currentY}),n.tooltipTick=Q(e-n.currentX)>1||Q(t-n.currentY)>1?function(){n.move(e,t)}:null},hide:function(){if(!this.tooltipIsHidden){var e=this.chart.hoverPoints;this.label.hide(),e&&Jt(e,function(e){e.setState()}),this.chart.hoverPoints=null,this.tooltipIsHidden=!0}},hideCrosshairs:function(){Jt(this.crosshairs,function(e){e&&e.hide()})},getAnchor:function(e,t){var n,r=this.chart,i=r.inverted,s=0,o=0,e=h(e);return n=e[0].tooltipPos,n||(Jt(e,function(e){s+=e.plotX,o+=e.plotLow?(e.plotLow+e.plotHigh)/2:e.plotY}),s/=e.length,o/=e.length,n=[i?r.plotWidth-o:s,this.shared&&!i&&e.length>1&&t?t.chartY-r.plotTop:i?r.plotHeight-s:o]),Gt(n,X)},getPosition:function(e,t,n){var r=this.chart,i=r.plotLeft,s=r.plotTop,o=r.plotWidth,u=r.plotHeight,a=p(this.options.distance,12),f=n.plotX,n=n.plotY,r=f+i+(r.inverted?a:-e-a),l=n-t+s+15,c;return r<7&&(r=i+f+a),r+e>i+o&&(r-=r+e-(i+o),l=n-t+s-a,c=!0),l<s+5&&(l=s+5,c&&n>=l&&n<=l+t&&(l=n+s+a)),l+t>s+u&&(l=J(s,s+u-t-a)),{x:r,y:l}},refresh:function(e,t){function n(){var e=this.points||h(this),t=e[0].series,n;return n=[t.tooltipHeaderFormatter(e[0].key)],Jt(e,function(e){t=e.series,n.push(t.tooltipFormatter&&t.tooltipFormatter(e)||e.point.tooltipFormatter(t.tooltipOptions.pointFormat))}),n.push(s.footerFormat||""),n.join("")}var r=this.chart,i=this.label,s=this.options,o,u,a,f={},l,c=[];l=s.formatter||n;var f=r.hoverPoints,d,v=s.crosshairs;a=this.shared,u=this.getAnchor(e,t),o=u[0],u=u[1],a&&(!e.series||!e.series.noSharedTooltip)?(f&&Jt(f,function(e){e.setState()}),r.hoverPoints=e,Jt(e,function(e){e.setState("hover"),c.push(e.getLabelConfig())}),f={x:e[0].category,y:e[0].y},f.points=c,e=e[0]):f=e.getLabelConfig(),l=l.call(f),f=e.series,a=a||!f.isCartesian||f.tooltipOutsidePlot||r.isInsidePlot(o,u),l===!1||!a?this.hide():(this.tooltipIsHidden&&i.show(),i.attr({text:l}),d=s.borderColor||e.color||f.color||"#606060",i.attr({stroke:d}),i=(s.positioner||this.getPosition).call(this,i.width,i.height,{plotX:o,plotY:u}),this.move(X(i.x),X(i.y)),this.tooltipIsHidden=!1);if(v){v=h(v);for(i=v.length;i--;)if(a=e.series[i?"yAxis":"xAxis"],v[i]&&a)(a=a.getPlotLinePath(i?p(e.stackY,e.y):e.x,1),this.crosshairs[i])?this.crosshairs[i].attr({d:a,visibility:"visible"}):(f={"stroke-width":v[i].width||1,stroke:v[i].color||"#C0C0C0",zIndex:v[i].zIndex||2},v[i].dashStyle&&(f.dashstyle=v[i].dashStyle),this.crosshairs[i]=r.renderer.path(a).attr(f).add())}tn(r,"tooltipRefresh",{text:l,x:o+r.plotLeft,y:u+r.plotTop,borderColor:d})},tick:function(){this.tooltipTick&&this.tooltipTick()}},F.prototype={normalizeMouseEvent:function(t){var n,r,i,t=t||z.event;return t.target||(t.target=t.srcElement),t.originalEvent&&(t=t.originalEvent),t.event&&(t=t.event),i=t.touches?t.touches.item(0):t,this.chartPosition=n=Qt(this.chart.container),i.pageX===R?(r=t.x,n=t.y):(r=i.pageX-n.left,n=i.pageY-n.top),e(t,{chartX:X(r),chartY:X(n)})},getMouseCoordinates:function(e){var t={xAxis:[],yAxis:[]},n=this.chart;return Jt(n.axes,function(r){var i=r.isXAxis;t[i?"xAxis":"yAxis"].push({axis:r,value:r.translate((n.inverted?!i:i)?e.chartX-n.plotLeft:n.plotHeight-e.chartY+n.plotTop,!0)})}),t},onmousemove:function(e){var t=this.chart,n=t.series,r,i,s=t.hoverPoint,o=t.hoverSeries,u,a,f=t.chartWidth,l=t.inverted?t.plotHeight+t.plotTop-e.chartY:e.chartX-t.plotLeft;if(t.tooltip&&this.options.tooltip.shared&&(!o||!o.noSharedTooltip)){i=[],u=n.length;for(a=0;a<u;a++)n[a].visible&&n[a].options.enableMouseTracking!==!1&&!n[a].noSharedTooltip&&n[a].tooltipPoints.length&&(r=n[a].tooltipPoints[l],r._dist=Q(l-r.plotX),f=K(f,r._dist),i.push(r));for(u=i.length;u--;)i[u]._dist>f&&i.splice(u,1);i.length&&i[0].plotX!==this.hoverX&&(t.tooltip.refresh(i,e),this.hoverX=i[0].plotX)}o&&o.tracker&&(r=o.tooltipPoints[l])&&r!==s&&r.onMouseOver()},resetTracker:function(e){var t=this.chart,n=t.hoverSeries,r=t.hoverPoint,i=t.hoverPoints||r,t=t.tooltip;(e=e&&t&&i)&&h(i)[0].plotX===R&&(e=!1),e?t.refresh(i):(r&&r.onMouseOut(),n&&n.onMouseOut(),t&&(t.hide(),t.hideCrosshairs()),this.hoverX=null)},setDOMEvents:function(){function t(){if(n.selectionMarker){var e={xAxis:[],yAxis:[]},o=n.selectionMarker.getBBox(),u=o.x-r.plotLeft,a=o.y-r.plotTop,f;s&&(Jt(r.axes,function(t){if(t.options.zoomEnabled!==!1){var n=t.isXAxis,i=r.inverted?!n:n,s=t.translate(i?u:r.plotHeight-a-o.height,!0,0,0,1),i=t.translate(i?u+o.width:r.plotHeight-a,!0,0,0,1);!isNaN(s)&&!isNaN(i)&&(e[n?"xAxis":"yAxis"].push({axis:t,min:K(s,i),max:J(s,i)}),f=!0)}}),f&&tn(r,"selection",e,function(e){r.zoom(e)})),n.selectionMarker=n.selectionMarker.destroy()}r&&(d(i,{cursor:"auto"}),r.cancelClick=s,r.mouseIsDown=s=!1),en(U,lt?"touchend":"mouseup",t)}var n=this,r=n.chart,i=r.container,s,o=n.zoomX&&!r.inverted||n.zoomY&&r.inverted,u=n.zoomY&&!r.inverted||n.zoomX&&r.inverted;n.hideTooltipOnMouseMove=function(e){nn(e),n.chartPosition&&r.hoverSeries&&r.hoverSeries.isCartesian&&!r.isInsidePlot(e.pageX-n.chartPosition.left-r.plotLeft,e.pageY-n.chartPosition.top-r.plotTop)&&n.resetTracker()},n.hideTooltipOnMouseLeave=function(){n.resetTracker(),n.chartPosition=null},i.onmousedown=function(e){e=n.normalizeMouseEvent(e),!lt&&e.preventDefault&&e.preventDefault(),r.mouseIsDown=!0,r.cancelClick=!1,r.mouseDownX=n.mouseDownX=e.chartX,n.mouseDownY=e.chartY,Zt(U,lt?"touchend":"mouseup",t)};var a=function(e){if(!e||!(e.touches&&e.touches.length>1)){e=n.normalizeMouseEvent(e),lt||(e.returnValue=!1);var t=e.chartX,i=e.chartY,a=!r.isInsidePlot(t-r.plotLeft,i-r.plotTop);lt&&e.type==="touchstart"&&(c(e.target,"isTracker")?r.runTrackerClick||e.preventDefault():!r.runChartClick&&!a&&e.preventDefault()),a&&(t<r.plotLeft?t=r.plotLeft:t>r.plotLeft+r.plotWidth&&(t=r.plotLeft+r.plotWidth),i<r.plotTop?i=r.plotTop:i>r.plotTop+r.plotHeight&&(i=r.plotTop+r.plotHeight));if(r.mouseIsDown&&e.type!=="touchstart"){if(s=Math.sqrt(Math.pow(n.mouseDownX-t,2)+Math.pow(n.mouseDownY-i,2)),s>10){e=r.isInsidePlot(n.mouseDownX-r.plotLeft,n.mouseDownY-r.plotTop),r.hasCartesianSeries&&(n.zoomX||n.zoomY)&&e&&!n.selectionMarker&&(n.selectionMarker=r.renderer.rect(r.plotLeft,r.plotTop,o?1:r.plotWidth,u?1:r.plotHeight,0).attr({fill:n.options.chart.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add());if(n.selectionMarker&&o){var f=t-n.mouseDownX;n.selectionMarker.attr({width:Q(f),x:(f>0?0:f)+n.mouseDownX})}n.selectionMarker&&u&&(i-=n.mouseDownY,n.selectionMarker.attr({height:Q(i),y:(i>0?0:i)+n.mouseDownY})),e&&!n.selectionMarker&&n.options.chart.panning&&r.pan(t)}}else a||n.onmousemove(e);return a||!r.hasCartesianSeries}};i.onmousemove=a,Zt(i,"mouseleave",n.hideTooltipOnMouseLeave),Zt(U,"mousemove",n.hideTooltipOnMouseMove),i.ontouchstart=function(e){(n.zoomX||n.zoomY)&&i.onmousedown(e),a(e)},i.ontouchmove=a,i.ontouchend=function(){s&&n.resetTracker()},i.onclick=function(t){var i=r.hoverPoint,s,o,t=n.normalizeMouseEvent(t);t.cancelBubble=!0,r.cancelClick||(i&&(c(t.target,"isTracker")||c(t.target.parentNode,"isTracker"))?(s=i.plotX,o=i.plotY,e(i,{pageX:n.chartPosition.left+r.plotLeft+(r.inverted?r.plotWidth-o:s),pageY:n.chartPosition.top+r.plotTop+(r.inverted?r.plotHeight-s:o)}),tn(i.series,"click",e(t,{point:i})),i.firePointEvent("click",t)):(e(t,n.getMouseCoordinates(t)),r.isInsidePlot(t.chartX-r.plotLeft,t.chartY-r.plotTop)&&tn(r,"click",t)))}},destroy:function(){var e=this.chart,t=e.container;e.trackerGroup&&(e.trackerGroup=e.trackerGroup.destroy()),en(t,"mouseleave",this.hideTooltipOnMouseLeave),en(U,"mousemove",this.hideTooltipOnMouseMove),t.onclick=t.onmousedown=t.onmousemove=t.ontouchstart=t.ontouchend=t.ontouchmove=null,clearInterval(this.tooltipInterval)},init:function(e,t){e.trackerGroup||(e.trackerGroup=e.renderer.g("tracker").attr({zIndex:9}).add()),t.enabled&&(e.tooltip=new j(e,t),this.tooltipInterval=setInterval(function(){e.tooltip.tick()},32)),this.setDOMEvents()}},I.prototype={init:function(e){var t=this,r=t.options=e.options.legend;if(r.enabled){var i=r.itemStyle,s=p(r.padding,8),o=r.itemMarginTop||0;t.baseline=n(i.fontSize)+3+o,t.itemStyle=i,t.itemHiddenStyle=Yt(i,r.itemHiddenStyle),t.itemMarginTop=o,t.padding=s,t.initialItemX=s,t.initialItemY=s-5,t.maxItemWidth=0,t.chart=e,t.itemHeight=0,t.lastLineHeight=0,t.render(),Zt(t.chart,"endResize",function(){t.positionCheckboxes()})}},colorizeItem:function(e,t){var n=this.options,r=e.legendItem,i=e.legendLine,s=e.legendSymbol,o=this.itemHiddenStyle.color,n=t?n.itemStyle.color:o,o=t?e.color:o;r&&r.css({fill:n}),i&&i.attr({stroke:o}),s&&s.attr({stroke:o,fill:o})},positionItem:function(e){var t=this.options,n=t.symbolPadding,t=!t.rtl,r=e._legendItemPos,i=r[0],r=r[1],s=e.checkbox;e.legendGroup&&e.legendGroup.translate(t?i:this.legendWidth-i-2*n-4,r),s&&(s.x=i,s.y=r)},destroyItem:function(e){var t=e.checkbox;Jt(["legendItem","legendLine","legendSymbol","legendGroup"],function(t){e[t]&&e[t].destroy()}),t&&k(e.checkbox)},destroy:function(){var e=this.group,t=this.box;t&&(this.box=t.destroy()),e&&(this.group=e.destroy())},positionCheckboxes:function(){var e=this;Jt(e.allItems,function(t){var n=t.checkbox,r=e.group.alignAttr;n&&d(n,{left:r.translateX+t.legendItemWidth+n.x-20+"px",top:r.translateY+n.y+3+"px"})})},renderItem:function(e){var t,n=this,r=n.chart,i=r.renderer,s=n.options,o=s.layout==="horizontal",u=s.symbolWidth,a=s.symbolPadding,f=n.itemStyle,l=n.itemHiddenStyle,c=n.padding,h=!s.rtl,p=s.width,d=s.itemMarginBottom||0,m=n.itemMarginTop,g=n.initialItemX,y=e.legendItem,b=e.series||e,w=b.options,E=w.showCheckbox;!y&&(e.legendGroup=i.g("legend-item").attr({zIndex:1}).add(n.scrollGroup),b.drawLegendSymbol(n,e),e.legendItem=y=i.text(s.labelFormatter.call(e),h?u+a:-a,n.baseline,s.useHTML).css(Yt(e.visible?f:l)).attr({align:h?"left":"right",zIndex:2}).add(e.legendGroup),e.legendGroup.on("mouseover",function(){e.setState("hover"),y.css(n.options.itemHoverStyle)}).on("mouseout",function(){y.css(e.visible?f:l),e.setState()}).on("click",function(t){var n=function(){e.setVisible()},t={browserEvent:t};e.firePointEvent?e.firePointEvent("legendItemClick",t,n):tn(e,"legendItemClick",t,n)}),n.colorizeItem(e,e.visible),w&&E)&&(e.checkbox=v("input",{type:"checkbox",checked:e.selected,defaultChecked:e.selected},s.itemCheckboxStyle,r.container),Zt(e.checkbox,"click",function(t){tn(e,"checkboxClick",{checked:t.target.checked},function(){e.select()})})),i=y.getBBox(),t=e.legendItemWidth=s.itemWidth||u+a+i.width+c+(E?20:0),s=t,n.itemHeight=u=i.height,o&&n.itemX-g+s>(p||r.chartWidth-2*c-g)&&(n.itemX=g,n.itemY+=m+n.lastLineHeight+d,n.lastLineHeight=0),n.maxItemWidth=J(n.maxItemWidth,s),n.lastItemY=m+n.itemY+d,n.lastLineHeight=J(u,n.lastLineHeight),e._legendItemPos=[n.itemX,n.itemY],o?n.itemX+=s:(n.itemY+=m+u+d,n.lastLineHeight=u),n.offsetWidth=p||J(o?n.itemX-g:s,n.offsetWidth)},render:function(){var t=this,n=t.chart,r=n.renderer,i=t.group,s,o,u,a,f=t.box,l=t.options,c=t.padding,h=l.borderWidth,p=l.backgroundColor;t.itemX=t.initialItemX,t.itemY=t.initialItemY,t.offsetWidth=0,t.lastItemY=0,i||(t.group=i=r.g("legend").attr({zIndex:7}).add(),t.contentGroup=r.g().attr({zIndex:1}).add(i),t.scrollGroup=r.g().add(t.contentGroup),t.clipRect=r.clipRect(0,0,9999,n.chartHeight),t.contentGroup.clip(t.clipRect)),s=[],Jt(n.series,function(e){var t=e.options;t.showInLegend&&(s=s.concat(e.legendItems||(t.legendType==="point"?e.data:e)))}),x(s,function(e,t){return(e.options.legendIndex||0)-(t.options.legendIndex||0)}),l.reversed&&s.reverse(),t.allItems=s,t.display=o=!!s.length,Jt(s,function(e){t.renderItem(e)}),u=l.width||t.offsetWidth,a=t.lastItemY+t.lastLineHeight,a=t.handleOverflow(a);if(h||p)u+=c,a+=c,f?u>0&&a>0&&(f[f.isNew?"attr":"animate"](f.crisp(null,null,null,u,a)),f.isNew=!1):(t.box=f=r.rect(0,0,u,a,l.borderRadius,h||0).attr({stroke:l.borderColor,"stroke-width":h||0,fill:p||Et}).add(i).shadow(l.shadow),f.isNew=!0),f[o?"show":"hide"]();t.legendWidth=u,t.legendHeight=a,Jt(s,function(e){t.positionItem(e)}),o&&i.align(e({width:u,height:a},l),!0,n.spacingBox),n.isResizing||this.positionCheckboxes()},handleOverflow:function(e){var t=this,n=this.chart,r=n.renderer,i=this.options,s=i.y,s=n.spacingBox.height+(i.verticalAlign==="top"?-s:s)-this.padding,o=i.maxHeight,u=this.clipRect,a=i.navigation,f=p(a.animation,!0),l=a.arrowSize||12,c=this.nav;return i.layout==="horizontal"&&(s/=2),o&&(s=K(s,o)),e>s?(this.clipHeight=n=s-20,this.pageCount=$(e/n),this.currentPage=p(this.currentPage,1),this.fullHeight=e,u.attr({height:n}),c||(this.nav=c=r.g().attr({zIndex:1}).add(this.group),this.up=r.symbol("triangle",0,0,l,l).on("click",function(){t.scroll(-1,f)}).add(c),this.pager=r.text("",15,10).css(a.style).add(c),this.down=r.symbol("triangle-down",0,0,l,l).on("click",function(){t.scroll(1,f)}).add(c)),t.scroll(0),e=s):c&&(u.attr({height:n.chartHeight}),c.hide(),this.scrollGroup.attr({translateY:1})),e},scroll:function(e,t){var n=this.pageCount,r=this.currentPage+e,i=this.clipHeight,s=this.options.navigation,o=s.activeColor,s=s.inactiveColor,u=this.pager,a=this.padding;r>n&&(r=n),r>0&&(t!==R&&O(t,this.chart),this.nav.attr({translateX:a,translateY:i+7,visibility:"visible"}),this.up.attr({fill:r===1?s:o}).css({cursor:r===1?"default":"pointer"}),u.attr({text:r+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:r===n?s:o}).css({cursor:r===n?"default":"pointer"}),this.scrollGroup.animate({translateY:-K(i*(r-1),this.fullHeight-i+a)+1}),u.attr({text:r+"/"+n}),this.currentPage=r)}},q.prototype={initSeries:function(e){var t=this.options.chart,t=new zt[e.type||t.type||t.defaultSeriesType];return t.init(this,e),t},addSeries:function(e,t,n){var r=this;e&&(O(n,r),t=p(t,!0),tn(r,"addSeries",{options:e},function(){r.initSeries(e),r.isDirtyLegend=!0,t&&r.redraw()}))},isInsidePlot:function(e,t){return e>=0&&e<=this.plotWidth&&t>=0&&t<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&Jt(this.axes,function(e){e.adjustTickAmount()}),this.maxTicks=null},redraw:function(e){var t=this.axes,n=this.series,r=this.tracker,i=this.legend,s=this.isDirtyLegend,o,u=this.isDirtyBox,a=n.length,f=a,l=this
.clipRect,c=this.renderer,h=c.isHidden();O(e,this);for(h&&this.cloneRenderTo();f--;)if(e=n[f],e.isDirty&&e.options.stacking){o=!0;break}if(o)for(f=a;f--;)if(e=n[f],e.options.stacking)e.isDirty=!0;Jt(n,function(e){e.isDirty&&e.options.legendType==="point"&&(s=!0)}),s&&i.options.enabled&&(i.render(),this.isDirtyLegend=!1),this.hasCartesianSeries&&(this.isResizing||(this.maxTicks=null,Jt(t,function(e){e.setScale()})),this.adjustTickAmounts(),this.getMargins(),Jt(t,function(e){e.isDirtyExtremes&&(e.isDirtyExtremes=!1,tn(e,"afterSetExtremes",e.getExtremes()));if(e.isDirty||u||o)e.redraw(),u=!0})),u&&(this.drawChartBox(),l&&(sn(l),l.animate({width:this.plotSizeX,height:this.plotSizeY+1}))),Jt(n,function(e){e.isDirty&&e.visible&&(!e.isCartesian||e.xAxis)&&e.redraw()}),r&&r.resetTracker&&r.resetTracker(!0),c.draw(),tn(this,"redraw"),h&&this.cloneRenderTo(!0)},showLoading:function(t){var n=this.options,r=this.loadingDiv,i=n.loading;r||(this.loadingDiv=r=v(wt,{className:"highcharts-loading"},e(i.style,{left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+"px",height:this.plotHeight+"px",zIndex:10,display:Et}),this.container),this.loadingSpan=v("span",null,i.labelStyle,r)),this.loadingSpan.innerHTML=t||n.lang.loading,this.loadingShown||(d(r,{opacity:0,display:""}),rn(r,{opacity:i.style.opacity},{duration:i.showDuration||0}),this.loadingShown=!0)},hideLoading:function(){var e=this.options,t=this.loadingDiv;t&&rn(t,{opacity:0},{duration:e.loading.hideDuration||100,complete:function(){d(t,{display:Et})}}),this.loadingShown=!1},get:function(e){var t=this.axes,n=this.series,r,i;for(r=0;r<t.length;r++)if(t[r].options.id===e)return t[r];for(r=0;r<n.length;r++)if(n[r].options.id===e)return n[r];for(r=0;r<n.length;r++){i=n[r].points||[];for(t=0;t<i.length;t++)if(i[t].id===e)return i[t]}return null},getAxes:function(){var e=this,t=this.options,n=t.xAxis||{},t=t.yAxis||{},n=h(n);Jt(n,function(e,t){e.index=t,e.isX=!0}),t=h(t),Jt(t,function(e,t){e.index=t}),n=n.concat(t),Jt(n,function(t){new B(e,t)}),e.adjustTickAmounts()},getSelectedPoints:function(){var e=[];return Jt(this.series,function(t){e=e.concat(Kt(t.points,function(e){return e.selected}))}),e},getSelectedSeries:function(){return Kt(this.series,function(e){return e.selected})},showResetZoom:function(){var e=this,t=dt.lang,n=e.options.chart.resetZoomButton,r=n.theme,i=r.states,s=n.relativeTo==="chart"?null:{x:e.plotLeft,y:e.plotTop,width:e.plotWidth,height:e.plotHeight};this.resetZoomButton=e.renderer.button(t.resetZoom,null,null,function(){e.zoomOut()},r,i&&i.hover).attr({align:n.position.align,title:t.resetZoomTitle}).add().align(n.position,!1,s)},zoomOut:function(){var e=this,t=e.resetZoomButton;tn(e,"selection",{resetSelection:!0},function(){e.zoom()}),t&&(e.resetZoomButton=t.destroy())},zoom:function(e){var t=this,n=t.options.chart,r;t.resetZoomEnabled!==!1&&!t.resetZoomButton&&t.showResetZoom(),!e||e.resetSelection?Jt(t.axes,function(e){e.options.zoomEnabled!==!1&&(e.setExtremes(null,null,!1),r=!0)}):Jt(e.xAxis.concat(e.yAxis),function(e){var n=e.axis;t.tracker[n.isXAxis?"zoomX":"zoomY"]&&(n.setExtremes(e.min,e.max,!1),r=!0)}),r&&t.redraw(p(n.animation,t.pointCount<100))},pan:function(e){var t=this.xAxis[0],n=this.mouseDownX,r=t.pointRange/2,i=t.getExtremes(),s=t.translate(n-e,!0)+r,n=t.translate(n+this.plotWidth-e,!0)-r;(r=this.hoverPoints)&&Jt(r,function(e){e.setState()}),t.series.length&&s>K(i.dataMin,i.min)&&n<J(i.dataMax,i.max)&&t.setExtremes(s,n,!0,!1),this.mouseDownX=e,d(this.container,{cursor:"move"})},setTitle:function(e,t){var n=this,r=n.options,i;n.chartTitleOptions=i=Yt(r.title,e),n.chartSubtitleOptions=r=Yt(r.subtitle,t),Jt([["title",e,i],["subtitle",t,r]],function(e){var t=e[0],r=n[t],i=e[1],e=e[2];r&&i&&(r=r.destroy()),e&&e.text&&!r&&(n[t]=n.renderer.text(e.text,0,0,e.useHTML).attr({align:e.align,"class":"highcharts-"+t,zIndex:e.zIndex||4}).css(e.style).add().align(e,!1,n.spacingBox))})},getChartSize:function(){var e=this.options.chart,t=this.renderToClone||this.renderTo;this.containerWidth=Vt(t,"width"),this.containerHeight=Vt(t,"height"),this.chartWidth=e.width||this.containerWidth||600,this.chartHeight=e.height||(this.containerHeight>19?this.containerHeight:400)},cloneRenderTo:function(e){var t=this.renderToClone,n=this.container;e?t&&(this.renderTo.appendChild(n),k(t),delete this.renderToClone):(n&&this.renderTo.removeChild(n),this.renderToClone=t=this.renderTo.cloneNode(0),d(t,{position:"absolute",top:"-9999px",display:"block"}),U.body.appendChild(t),n&&t.appendChild(n))},getContainer:function(){var t,n=this.options.chart,i,s,o;this.renderTo=t=n.renderTo,o="highcharts-"+ht++,r(t)&&(this.renderTo=t=U.getElementById(t)),t||L(13,!0),t.innerHTML="",t.offsetWidth||this.cloneRenderTo(),this.getChartSize(),i=this.chartWidth,s=this.chartHeight,this.container=t=v(wt,{className:"highcharts-container"+(n.className?" "+n.className:""),id:o},e({position:"relative",overflow:"hidden",width:i+"px",height:s+"px",textAlign:"left",lineHeight:"normal"},n.style),this.renderToClone||t),this.renderer=n.forExport?new cn(t,i,s,!0):new ft(t,i,s),at&&this.renderer.create(this,t,i,s)},getMargins:function(){var e=this.options.chart,t=e.spacingTop,n=e.spacingRight,r=e.spacingBottom,e=e.spacingLeft,i,s=this.legend,o=this.optionsMarginTop,u=this.optionsMarginLeft,a=this.optionsMarginRight,f=this.optionsMarginBottom,c=this.chartTitleOptions,h=this.chartSubtitleOptions,d=this.options.legend,v=p(d.margin,10),m=d.x,g=d.y,y=d.align,b=d.verticalAlign;this.resetMargins(),i=this.axisOffset,(this.title||this.subtitle)&&!l(this.optionsMarginTop)&&(h=J(this.title&&!c.floating&&!c.verticalAlign&&c.y||0,this.subtitle&&!h.floating&&!h.verticalAlign&&h.y||0))&&(this.plotTop=J(this.plotTop,h+p(c.margin,15)+t)),s.display&&!d.floating&&(y==="right"?l(a)||(this.marginRight=J(this.marginRight,s.legendWidth-m+v+n)):y==="left"?l(u)||(this.plotLeft=J(this.plotLeft,s.legendWidth+m+v+e)):b==="top"?l(o)||(this.plotTop=J(this.plotTop,s.legendHeight+g+v+t)):b==="bottom"&&!l(f)&&(this.marginBottom=J(this.marginBottom,s.legendHeight-g+v+r))),this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin),this.extraTopMargin&&(this.plotTop+=this.extraTopMargin),this.hasCartesianSeries&&Jt(this.axes,function(e){e.getOffset()}),l(u)||(this.plotLeft+=i[3]),l(o)||(this.plotTop+=i[0]),l(f)||(this.marginBottom+=i[2]),l(a)||(this.marginRight+=i[1]),this.setChartSize()},initReflow:function(){function e(e){var s=n.width||Vt(r,"width"),o=n.height||Vt(r,"height"),e=e?e.target:z;if(s&&o&&(e===z||e===U)){if(s!==t.containerWidth||o!==t.containerHeight)clearTimeout(i),i=setTimeout(function(){t.resize(s,o,!1)},100);t.containerWidth=s,t.containerHeight=o}}var t=this,n=t.options.chart,r=t.renderTo,i;Zt(z,"resize",e),Zt(t,"destroy",function(){en(z,"resize",e)})},fireEndResize:function(){var e=this;e&&tn(e,"endResize",null,function(){e.isResizing-=1})},resize:function(e,t,n){var r,i,s=this.title,o=this.subtitle;this.isResizing+=1,O(n,this),this.oldChartHeight=this.chartHeight,this.oldChartWidth=this.chartWidth,l(e)&&(this.chartWidth=r=X(e)),l(t)&&(this.chartHeight=i=X(t)),d(this.container,{width:r+"px",height:i+"px"}),this.renderer.setSize(r,i,n),this.plotWidth=r-this.plotLeft-this.marginRight,this.plotHeight=i-this.plotTop-this.marginBottom,this.maxTicks=null,Jt(this.axes,function(e){e.isDirty=!0,e.setScale()}),Jt(this.series,function(e){e.isDirty=!0}),this.isDirtyBox=this.isDirtyLegend=!0,this.getMargins(),e=this.spacingBox,s&&s.align(null,null,e),o&&o.align(null,null,e),this.redraw(n),this.oldChartHeight=null,tn(this,"resize"),mt===!1?this.fireEndResize():setTimeout(this.fireEndResize,mt&&mt.duration||500)},setChartSize:function(){var e=this.inverted,t=this.chartWidth,n=this.chartHeight,r=this.options.chart,i=r.spacingTop,s=r.spacingRight,o=r.spacingBottom,r=r.spacingLeft;this.plotLeft=X(this.plotLeft),this.plotTop=X(this.plotTop),this.plotWidth=X(t-this.plotLeft-this.marginRight),this.plotHeight=X(n-this.plotTop-this.marginBottom),this.plotSizeX=e?this.plotHeight:this.plotWidth,this.plotSizeY=e?this.plotWidth:this.plotHeight,this.spacingBox={x:r,y:i,width:t-r-s,height:n-i-o},Jt(this.axes,function(e){e.setAxisSize(),e.setAxisTranslation()})},resetMargins:function(){var e=this.options.chart,t=e.spacingRight,n=e.spacingBottom,r=e.spacingLeft;this.plotTop=p(this.optionsMarginTop,e.spacingTop),this.marginRight=p(this.optionsMarginRight,t),this.marginBottom=p(this.optionsMarginBottom,n),this.plotLeft=p(this.optionsMarginLeft,r),this.axisOffset=[0,0,0,0]},drawChartBox:function(){var e=this.options.chart,t=this.renderer,n=this.chartWidth,r=this.chartHeight,i=this.chartBackground,s=this.plotBackground,o=this.plotBorder,u=this.plotBGImage,a=e.borderWidth||0,f=e.backgroundColor,l=e.plotBackgroundColor,c=e.plotBackgroundImage,h,p={x:this.plotLeft,y:this.plotTop,width:this.plotWidth,height:this.plotHeight};h=a+(e.shadow?8:0);if(a||f)i?i.animate(i.crisp(null,null,null,n-h,r-h)):(i={fill:f||Et},a&&(i.stroke=e.borderColor,i["stroke-width"]=a),this.chartBackground=t.rect(h/2,h/2,n-h,r-h,e.borderRadius,a).attr(i).add().shadow(e.shadow));l&&(s?s.animate(p):this.plotBackground=t.rect(this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight,0).attr({fill:l}).add().shadow(e.plotShadow)),c&&(u?u.animate(p):this.plotBGImage=t.image(c,this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight).add()),e.plotBorderWidth&&(o?o.animate(o.crisp(null,this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight)):this.plotBorder=t.rect(this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight,0,e.plotBorderWidth).attr({stroke:e.plotBorderColor,"stroke-width":e.plotBorderWidth,zIndex:4}).add()),this.isDirtyBox=!1},propFromSeries:function(){var e=this,t=e.options.chart,n,r=e.options.series,i,s;Jt(["inverted","angular","polar"],function(o){n=zt[t.type||t.defaultSeriesType],s=e[o]||t[o]||n&&n.prototype[o];for(i=r&&r.length;!s&&i--;)(n=zt[r[i].type])&&n.prototype[o]&&(s=!0);e[o]=s})},render:function(){var t=this,r=t.axes,i=t.renderer,s=t.options,o=s.labels,s=s.credits,u;t.setTitle(),t.legend=new I(t),Jt(r,function(e){e.setScale()}),t.getMargins(),t.maxTicks=null,Jt(r,function(e){e.setTickPositions(!0),e.setMaxTicks()}),t.adjustTickAmounts(),t.getMargins(),t.drawChartBox(),t.hasCartesianSeries&&Jt(r,function(e){e.render()}),t.seriesGroup||(t.seriesGroup=i.g("series-group").attr({zIndex:3}).add()),Jt(t.series,function(e){e.translate(),e.setTooltipPoints(),e.render()}),o.items&&Jt(o.items,function(){var r=e(o.style,this.style),s=n(r.left)+t.plotLeft,u=n(r.top)+t.plotTop+12;delete r.left,delete r.top,i.text(this.html,s,u).attr({zIndex:2}).css(r).add()}),s.enabled&&!t.credits&&(u=s.href,t.credits=i.text(s.text,0,0).on("click",function(){u&&(location.href=u)}).attr({align:s.position.align,zIndex:8}).css(s.style).add().align(s.position)),t.hasRendered=!0},destroy:function(){var e=this,t=e.axes,n=e.series,r=e.container,i,s=r&&r.parentNode;if(e!==null){tn(e,"destroy"),en(e);for(i=t.length;i--;)t[i]=t[i].destroy();for(i=n.length;i--;)n[i]=n[i].destroy();Jt("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,tracker,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(t){var n=e[t];n&&(e[t]=n.destroy())}),r&&(r.innerHTML="",en(r),s&&k(r),r=null);for(i in e)delete e[i];e=e.options=null}},firstRender:function(){var e=this,t=e.options,n=e.callback;!ot&&z==z.top&&U.readyState!=="complete"||at&&!z.canvg?at?vn.push(function(){e.firstRender()},t.global.canvasToolsURL):U.attachEvent("onreadystatechange",function(){U.detachEvent("onreadystatechange",e.firstRender),U.readyState==="complete"&&e.firstRender()}):(e.getContainer(),tn(e,"init"),Highcharts.RangeSelector&&t.rangeSelector.enabled&&(e.rangeSelector=new Highcharts.RangeSelector(e)),e.resetMargins(),e.setChartSize(),e.propFromSeries(),e.getAxes(),Jt(t.series||[],function(t){e.initSeries(t)}),Highcharts.Scroller&&(t.navigator.enabled||t.scrollbar.enabled)&&(e.scroller=new Highcharts.Scroller(e)),e.tracker=new F(e,t),e.render(),e.renderer.draw(),n&&n.apply(e,[e]),Jt(e.callbacks,function(t){t.apply(e,[e])}),e.cloneRenderTo(!0),tn(e,"load"))},init:function(e){var t=this.options.chart,n;t.reflow!==!1&&Zt(this,"load",this.initReflow);if(e)for(n in e)Zt(this,n,e[n]);this.xAxis=[],this.yAxis=[],this.animation=at?!1:p(t.animation,!0),this.setSize=this.resize,this.pointCount=0,this.counters=new S,this.firstRender()}},q.prototype.callbacks=[];var mn=function(){};mn.prototype={init:function(e,t,n){var r=e.chart.counters;return this.series=e,this.applyOptions(t,n),this.pointAttr={},e.options.colorByPoint&&(t=e.chart.options.colors,this.options||(this.options={}),this.color=this.options.color=this.color||t[r.color++],r.wrapColor(t.length)),e.chart.pointCount++,this},applyOptions:function(t,n){var r=this.series,i=typeof t;this.config=t;if(i==="number"||t===null)this.y=t;else if(typeof t[0]=="number")this.x=t[0],this.y=t[1];else if(i==="object"&&typeof t.length!="number"){if(e(this,t),this.options=t,t.dataLabels)r._hasPointLabels=!0}else typeof t[0]=="string"&&(this.name=t[0],this.y=t[1]);this.x===R&&(this.x=n===R?r.autoIncrement():n)},destroy:function(){var e=this.series.chart,t=e.hoverPoints,n;e.pointCount--,t&&(this.setState(),f(t,this),!t.length)&&(e.hoverPoints=null),this===e.hoverPoint&&this.onMouseOut();if(this.graphic||this.dataLabel)en(this),this.destroyElements();this.legendItem&&e.legend.destroyItem(this);for(n in this)this[n]=null},destroyElements:function(){for(var e="graphic,tracker,dataLabel,group,connector,shadowGroup".split(","),t,n=6;n--;)t=e[n],this[t]&&(this[t]=this[t].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},select:function(e,t){var n=this,r=n.series.chart,e=p(e,!n.selected);n.firePointEvent(e?"select":"unselect",{accumulate:t},function(){n.selected=e,n.setState(e&&"select"),t||Jt(r.getSelectedPoints(),function(e){e.selected&&e!==n&&(e.selected=!1,e.setState(""),e.firePointEvent("unselect"))})})},onMouseOver:function(){var e=this.series,t=e.chart,n=t.tooltip,r=t.hoverPoint;r&&r!==this&&r.onMouseOut(),this.firePointEvent("mouseOver"),n&&(!n.shared||e.noSharedTooltip)&&n.refresh(this),this.setState("hover"),t.hoverPoint=this},onMouseOut:function(){this.firePointEvent("mouseOut"),this.setState(),this.series.chart.hoverPoint=null},tooltipFormatter:function(e){var t=this.series,n=t.tooltipOptions,i=e.match(/\{(series|point)\.[a-zA-Z]+\}/g),s=/[{\.}]/,o,u,a,f,l={y:0,open:0,high:0,low:0,close:0,percentage:1,total:1};n.valuePrefix=n.valuePrefix||n.yPrefix,n.valueDecimals=n.valueDecimals||n.yDecimals,n.valueSuffix=n.valueSuffix||n.ySuffix;for(f in i)u=i[f],r(u)&&u!==e&&(a=(" "+u).split(s),o={point:this,series:t}[a[1]],a=a[2],o===this&&l.hasOwnProperty(a)?(o=l[a]?a:"value",o=(n[o+"Prefix"]||"")+g(this[a],p(n[o+"Decimals"],-1))+(n[o+"Suffix"]||"")):o=o[a],e=e.replace(u,o));return e},update:function(e,t,n){var r=this,s=r.series,o=r.graphic,u,a=s.data,f=a.length,l=s.chart,t=p(t,!0);r.firePointEvent("update",{options:e},function(){r.applyOptions(e),i(e)&&(s.getAttribs(),o&&o.attr(r.pointAttr[s.state]));for(u=0;u<f;u++)if(a[u]===r){s.xData[u]=r.x,s.yData[u]=r.y,s.options.data[u]=e;break}s.isDirty=!0,s.isDirtyData=!0,t&&l.redraw(n)})},remove:function(e,t){var n=this,r=n.series,i=r.chart,s,o=r.data,u=o.length;O(t,i),e=p(e,!0),n.firePointEvent("remove",null,function(){for(s=0;s<u;s++)if(o[s]===n){o.splice(s,1),r.options.data.splice(s,1),r.xData.splice(s,1),r.yData.splice(s,1);break}n.destroy(),r.isDirty=!0,r.isDirtyData=!0,e&&i.redraw()})},firePointEvent:function(e,t,n){var r=this,i=this.series.options;(i.point.events[e]||r.options&&r.options.events&&r.options.events[e])&&this.importEvents(),e==="click"&&i.allowPointSelect&&(n=function(e){r.select(null,e.ctrlKey||e.metaKey||e.shiftKey)}),tn(this,e,t,n)},importEvents:function(){if(!this.hasImportedEvents){var e=Yt(this.series.options.point,this.options).events,t;this.events=e;for(t in e)Zt(this,t,e[t]);this.hasImportedEvents=!0}},setState:function(e){var t=this.plotX,n=this.plotY,r=this.series,i=r.options.states,s=fn[r.type].marker&&r.options.marker,o=s&&!s.enabled,u=s&&s.states[e],a=u&&u.enabled===!1,f=r.stateMarkerGraphic,l=r.chart,c=this.pointAttr,e=e||"";e===this.state||this.selected&&e!=="select"||i[e]&&i[e].enabled===!1||e&&(a||o&&!u.enabled)||(this.graphic?(i=s&&this.graphic.symbolName&&c[e].r,this.graphic.attr(Yt(c[e],i?{x:t-i,y:n-i,width:2*i,height:2*i}:{}))):(e&&u&&(f||(i=u.radius,r.stateMarkerGraphic=f=l.renderer.symbol(r.symbol,-i,-i,2*i,2*i).attr(c[e]).add(r.group)),f.translate(t,n)),f&&f[e?"show":"hide"]()),this.state=e)}};var gn=function(){};gn.prototype={isCartesian:!0,type:"line",pointClass:mn,sorted:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},init:function(t,n){var r,i;i=t.series.length,this.chart=t,this.options=n=this.setOptions(n),this.bindAxes(),e(this,{index:i,name:n.name||"Series "+(i+1),state:"",pointAttr:{},visible:n.visible!==!1,selected:n.selected===!0}),at&&(n.animation=!1),i=n.events;for(r in i)Zt(this,r,i[r]);if(i&&i.click||n.point&&n.point.events&&n.point.events.click||n.allowPointSelect)t.runTrackerClick=!0;this.getColor(),this.getSymbol(),this.setData(n.data,!1),this.isCartesian&&(t.hasCartesianSeries=!0),t.series.push(this)},bindAxes:function(){var e=this,t=e.options,n=e.chart,r;e.isCartesian&&Jt(["xAxis","yAxis"],function(i){Jt(n[i],function(n){r=n.options;if(t[i]===r.index||t[i]===R&&r.index===0)n.series.push(e),e[i]=n,n.isDirty=!0})})},autoIncrement:function(){var e=this.options,t=this.xIncrement,t=p(t,e.pointStart,0);return this.pointInterval=p(this.pointInterval,e.pointInterval,1),this.xIncrement=t+this.pointInterval,t},getSegments:function(){var e=-1,t=[],n,r=this.points,i=r.length;if(i)if(this.options.connectNulls){for(n=i;n--;)r[n].y===null&&r.splice(n,1);r.length&&(t=[r])}else Jt(r,function(n,s){n.y===null?(s>e+1&&t.push(r.slice(e+1,s)),e=s):s===i-1&&t.push(r.slice(e+1,s+1))});this.segments=t},setOptions:function(e){var t=this.chart.options,n=t.plotOptions,r=e.data;return e.data=null,n=Yt(n[this.type],n.series,e),n.data=e.data=r,this.tooltipOptions=Yt(t.tooltip,n.tooltip),n},getColor:function(){var e=this.options,t=this.chart.options.colors,n=this.chart.counters;this.color=e.color||!e.colorByPoint&&t[n.color++]||"gray",n.wrapColor(t.length)},getSymbol:function(){var e=this.options.marker,t=this.chart,n=t.options.symbols,t=t.counters;this.symbol=e.symbol||n[t.symbol++],/^url/.test(this.symbol)&&(e.radius=0),t.wrapSymbol(n.length)},drawLegendSymbol:function(e){var t=this.options,n=t.marker,r=e.options.symbolWidth,i=this.chart.renderer,s=this.legendGroup,e=e.baseline,o;t.lineWidth&&(o={"stroke-width":t.lineWidth},t.dashStyle&&(o.dashstyle=t.dashStyle),this.legendLine=i.path(["M",0,e-4,"L",r,e-4]).attr(o).add(s)),n&&n.enabled&&(t=n.radius,this.legendSymbol=i.symbol(this.symbol,r/2-t,e-4-t,2*t,2*t).attr(this.pointAttr[""]).add(s))},addPoint:function(e,t,n,r){var i=this.data,s=this.graph,o=this.area,u=this.chart,a=this.xData,f=this.yData,l=s&&s.shift||0,c=this.options.data;O(r,u),s&&n&&(s.shift=l+1),o&&(n&&(o.shift=l+1),o.isArea=!0),t=p(t,!0),r={series:this},this.pointClass.prototype.applyOptions.apply(r,[e]),a.push(r.x),f.push(this.valueCount===4?[r.open,r.high,r.low,r.close]:r.y),c.push(e),n&&(i[0]&&i[0].remove?i[0].remove(!1):(i.shift(),a.shift(),f.shift(),c.shift())),this.getAttribs(),this.isDirtyData=this.isDirty=!0,t&&u.redraw()},setData:function(e,t){var n=this.points,r=this.options,i=this.initialColor,u=this.chart,a=null,f=this.xAxis,c=this.pointClass.prototype;this.xIncrement=null,this.pointRange=f&&f.categories&&1||r.pointRange,l(i)&&(u.counters.color=i);var h=[],d=[],v=e?e.length:[],m=this.valueCount;if(v>(r.turboThreshold||1e3)){for(i=0;a===null&&i<v;)a=e[i],i++;if(o(a)){c=p(r.pointStart,0),r=p(r.pointInterval,1);for(i=0;i<v;i++)h[i]=c,d[i]=e[i],c+=r;this.xIncrement=c}else if(s(a))if(m)for(i=0;i<v;i++)r=e[i],h[i]=r[0],d[i]=r.slice(1,m+1);else for(i=0;i<v;i++)r=e[i],h[i]=r[0],d[i]=r[1]}else for(i=0;i<v;i++)r={series:this},c.applyOptions.apply(r,[e[i]]),h[i]=r.x,d[i]=c.toYData?c.toYData.apply(r):r.y;this.data=[],this.options.data=e,this.xData=h,this.yData=d;for(i=n&&n.length||0;i--;)n[i]&&n[i].destroy&&n[i].destroy();f&&(f.minRange=f.userMinRange),this.isDirty=this.isDirtyData=u.isDirtyBox=!0,p(t,!0)&&u.redraw(!1)},remove:function(e,t){var n=this,r=n.chart,e=p(e,!0);n.isRemoving||(n.isRemoving=!0,tn(n,"remove",null,function(){n.destroy(),r.isDirtyLegend=r.isDirtyBox=!0,e&&r.redraw(t)})),n.isRemoving=!1},processData:function(e){var t=this.xData,n=this.yData,r=t.length,i=0,s=r,o,u,a=this.xAxis,f=this.options,l=f.cropThreshold,c=this.isCartesian;if(c&&!this.isDirty&&!a.isDirty&&!this.yAxis.isDirty&&!e)return!1;if(c&&this.sorted&&(!l||r>l||this.forceCrop))if(e=a.getExtremes(),a=e.min,l=e.max,t[r-1]<a||t[0]>l)t=[],n=[];else if(t[0]<a||t[r-1]>l){for(e=0;e<r;e++)if(t[e]>=a){i=J(0,e-1);break}for(;e<r;e++)if(t[e]>l){s=e+1;break}t=t.slice(i,s),n=n.slice(i,s),o=!0}for(e=t.length-1;e>0;e--)if(r=t[e]-t[e-1],r>0&&(u===R||r<u))u=r;this.cropped=o,this.cropStart=i,this.processedXData=t,this.processedYData=n,f.pointRange===null&&(this.pointRange=u||1),this.closestPointRange=u},generatePoints:function(){var e=this.options.data,t=this.data,n,r=this.processedXData,i=this.processedYData,s=this.pointClass,o=r.length,u=this.cropStart||0,a,f=this.hasGroupedData,l,c=[],p;!t&&!f&&(t=[],t.length=e.length,t=this.data=t);for(p=0;p<o;p++)a=u+p,f?c[p]=(new s).init(this,[r[p]].concat(h(i[p]))):(t[a]?l=t[a]:e[a]!==R&&(t[a]=l=(new s).init(this,e[a],r[p])),c[p]=l);if(t&&(o!==(n=t.length)||f))for(p=0;p<n;p++)if(p===u&&!f&&(p+=o),t[p])t[p].destroyElements(),t[p].plotX=R;this.data=t,this.points=c},translate:function(){this.processedXData||this.processData(),this.generatePoints();for(var e=this.chart,t=this.options,n=t.stacking,r=this.xAxis,i=r.categories,s=this.yAxis,o=this.points,u=o.length,a=!!this.modifyValue,f,c=s.series,h=c.length;h--;)if(c[h].visible){h===this.index&&(f=!0);break}for(h=0;h<u;h++){var c=o[h],p=c.x,d=c.y,v=c.low,m=s.stacks[(d<t.threshold?"-":"")+this.stackKey];c.plotX=r.translate(p,0,0,0,1),n&&this.visible&&m&&m[p]&&(v=m[p],p=v.total,v.cum=v=v.cum-d,d=v+d,f&&(v=t.threshold),n==="percent"&&(v=p?v*100/p:0,d=p?d*100/p:0),c.percentage=p?c.y*100/p:0,c.stackTotal=p,c.stackY=d),c.yBottom=l(v)?s.translate(v,0,1,0,1):null,a&&(d=this.modifyValue(d,c)),c.plotY=typeof d=="number"?X(s.translate(d,0,1,0,1)*10)/10:R,c.clientX=e.inverted?e.plotHeight-c.plotX:c.plotX,c.category=i&&i[c.x]!==R?i[c.x]:c.x}this.getSegments()},setTooltipPoints:function(e){var t=[],n=this.chart.plotSizeX,r,i;r=this.xAxis;var s,o,u=[];if(this.options.enableMouseTracking!==!1){e&&(this.tooltipPoints=null),Jt(this.segments||this.points,function(e){t=t.concat(e)}),r&&r.reversed&&(t=t.reverse()),e=t.length;for(o=0;o<e;o++){s=t[o],r=t[o-1]?t[o-1]._high+1:0;for(s._high=i=t[o+1]?J(0,V((s.plotX+(t[o+1]?t[o+1].plotX:n))/2)):n;r>=0&&r<=i;)u[r++]=s}this.tooltipPoints=u}},tooltipHeaderFormatter:function(e){var t=this.tooltipOptions,n=t.xDateFormat,r=this.xAxis,i=r&&r.options.type==="datetime",s;if(i&&!n)for(s in yt)if(yt[s]>=r.closestPointRange){n=t.dateTimeLabelFormats[s];break}return t.headerFormat.replace("{point.key}",i?vt(n,e):e).replace("{series.name}",this.name).replace("{series.color}",this.color)},onMouseOver:function(){var e=this.chart,t=e.hoverSeries;if(lt||!e.mouseIsDown)t&&t!==this&&t.onMouseOut(),this.options.events.mouseOver&&tn(this,"mouseOver"),this.setState("hover"),e.hoverSeries=this},onMouseOut:function(){var e=this.options,t=this.chart,n=t.tooltip,r=t.hoverPoint;r&&r.onMouseOut(),this&&e.events.mouseOut&&tn(this,"mouseOut"),n&&!e.stickyTracking&&!n.shared&&n.hide(),this.setState(),t.hoverSeries=null},animate:function(e){var t=this.chart,n=this.clipRect,r=this.options.animation;r&&!i(r)&&(r={}),e?n.isAnimating||(n.attr("width",0),n.isAnimating=!0):(n.animate({width:t.plotSizeX},r),this.animate=null)},drawPoints:function(){var t,n=this.points,r=this.chart,i,s,o,u,a,f,l,c;if(this.options.marker.enabled)for(o=n.length;o--;)if(u=n[o],i=u.plotX,s=u.plotY,c=u.graphic,s!==R&&!isNaN(s))if(t=u.pointAttr[u.selected?"select":""],a=t.r,f=p(u.marker&&u.marker.symbol,this.symbol),l=f.indexOf("url")===0,c)c.animate(e({x:i-a,y:s-a},c.symbolName?{width:2*a,height:2*a}:{}));else if(a>0||l)u.graphic=r.renderer.symbol(f,i-a,s-a,2*a,2*a).attr(t).add(this.group)},convertAttribs:function(e,t,n,r){var i=this.pointAttrToOptions,s,o,u={},e=e||{},t=t||{},n=n||{},r=r||{};for(s in i)o=i[s],u[s]=p(e[o],t[s],n[s],r[s]);return u},getAttribs:function(){var e=this,t=fn[e.type].marker?e.options.marker:e.options,n=t.states,r=n.hover,i,s=e.color,o={stroke:s,fill:s},u=e.points||[],a=[],f,c=e.pointAttrToOptions,h;e.options.marker?(r.radius=r.radius||t.radius+2,r.lineWidth=r.lineWidth||t.lineWidth+1):r.color=r.color||ln(r.color||s).brighten(r.brightness).get(),a[""]=e.convertAttribs(t,o),Jt(["hover","select"],function(t){a[t]=e.convertAttribs(n[t],a[""])}),e.pointAttr=a;for(s=u.length;s--;){o=u[s],(t=o.options&&o.options.marker||o.options)&&t.enabled===!1&&(t.radius=0),i=!1;if(o.options)for(h in c)l(t[c[h]])&&(i=!0);i?(f=[],n=t.states||{},i=n.hover=n.hover||{},e.options.marker||(i.color=ln(i.color||o.options.color).brighten(i.brightness||r.brightness).get()),f[""]=e.convertAttribs(t,a[""]),f.hover=e.convertAttribs(n.hover,a.hover,f[""]),f.select=e.convertAttribs(n.select,a.select,f[""])):f=a,o.pointAttr=f}},destroy:function(){var e=this,t=e.chart,n=e.clipRect,r=/AppleWebKit\/533/.test(tt),i,s,o=e.data||[],u,a,l;tn(e,"destroy"),en(e),Jt(["xAxis","yAxis"],function(t){if(l=e[t])f(l.series,e),l.isDirty=!0}),e.legendItem&&e.chart.legend.destroyItem(e);for(s=o.length;s--;)(u=o[s])&&u.destroy&&u.destroy();e.points=null,n&&n!==t.clipRect&&(e.clipRect=n.destroy()),Jt("area,graph,dataLabelsGroup,group,tracker,trackerGroup".split(","),function(t){e[t]&&(i=r&&t==="group"?"hide":"destroy",e[t][i]())}),t.hoverSeries===e&&(t.hoverSeries=null),f(t.series,e);for(a in e)delete e[a]},drawDataLabels:function(){var e=this,t=e.options,n=t.dataLabels;if(n.enabled||e._hasPointLabels){var r,i,s=e.points,o,u,a,f=e.dataLabelsGroup,c=e.chart,h=e.xAxis,h=h?h.left:c.plotLeft,d=e.yAxis,d=d?d.top:c.plotTop,v=c.renderer,m=c.inverted,g=e.type,y=t.stacking,b=g==="column"||g==="bar",w=n.verticalAlign===null,E=n.y===null,S=v.fontMetrics(n.style.fontSize),x=S.h,T=S.b,N,C;b&&(S={top:T,middle:T-x/2,bottom:-x+T},y?(w&&(n=Yt(n,{verticalAlign:"middle"})),E&&(n=Yt(n,{y:S[n.verticalAlign]}))):w?n=Yt(n,{verticalAlign:"top"}):E&&(n=Yt(n,{y:S[n.verticalAlign]}))),f?f.translate(h,d):f=e.dataLabelsGroup=v.g("data-labels").attr({visibility:e.visible?"visible":"hidden",zIndex:6}).translate(h,d).add(),u=n,Jt(s,function(s){N=s.dataLabel,n=u,(o=s.options)&&o.dataLabels&&(n=Yt(n,o.dataLabels));if(C=n.enabled){var h=s.barX&&s.barX+s.barW/2||p(s.plotX,-999),d=p(s.plotY,-999),w=n.y===null?s.y>=t.threshold?-x+T:T:n.y;r=(m?c.plotWidth-d:h)+n.x,i=X((m?c.plotHeight-h:d)+w)}if(N&&e.isCartesian&&(!c.isInsidePlot(r,i)||!C))s.dataLabel=N.destroy();else if(C){var h=n.align,E;a=n.formatter.call(s.getLabelConfig(),n),g==="column"&&(r+={left:-1,right:1}[h]*s.barW/2||0),!y&&m&&s.y<0&&(h="right",r-=10),n.style.color=p(n.color,n.style.color,e.color,"black");if(N)N.attr({text:a}).animate({x:r,y:i});else if(l(a)){h={align:h,fill:n.backgroundColor,stroke:n.borderColor,"stroke-width":n.borderWidth,r:n.borderRadius||0,rotation:n.rotation,padding:n.padding,zIndex:1};for(E in h)h[E]===R&&delete h[E];N=s.dataLabel=v[n.rotation?"text":"label"](a,r,i,null,null,null,n.useHTML,!0).attr(h).css(n.style).add(f).shadow(n.shadow)}b&&t.stacking&&N&&(E=s.barX,h=s.barY,d=s.barW,s=s.barH,N.align(n,null,{x:m?c.plotWidth-h-s:E,y:m?c.plotHeight-E-d:h,width:m?s:d,height:m?d:s}))}})}},getSegmentPath:function(e){var t=this,n=[];return Jt(e,function(r,i){t.getPointSpline?n.push.apply(n,t.getPointSpline(e,r,i)):(n.push(i?"L":"M"),i&&t.options.step&&n.push(r.plotX,e[i-1].plotY),n.push(r.plotX,r.plotY))}),n},drawGraph:function(){var e=this,t=e.options,n=e.graph,r=[],i=e.group,s=t.lineColor||e.color,o=t.lineWidth,u=t.dashStyle,a,f=e.chart.renderer,l=[];Jt(e.segments,function(t){a=e.getSegmentPath(t),t.length>1?r=r.concat(a):l.push(t[0])}),e.graphPath=r,e.singlePoints=l,n?(sn(n),n.animate({d:r})):o&&(n={stroke:s,"stroke-width":o},u&&(n.dashstyle=u),e.graph=f.path(r).attr(n).add(i).shadow(t.shadow))},invertGroups:function(){function e(){var e={width:t.yAxis.len,height:t.xAxis.len};n.attr(e).invert(),r&&r.attr(e).invert()}var t=this,n=t.group,r=t.trackerGroup,i=t.chart;Zt(i,"resize",e),Zt(t,"destroy",function(){en(i,"resize",e)}),e(),t.invertGroups=e},createGroup:function(){var e=this.chart;(this.group=e.renderer.g("series")).attr({visibility:this.visible?"visible":"hidden",zIndex:this.options.zIndex}).translate(this.xAxis.left,this.yAxis.top).add(e.seriesGroup),this.createGroup=bt},render:function(){var e=this,t=e.chart,n,r=e.options,i=r.clip!==!1,s=r.animation,s=(r=s&&e.animate)?s&&s.duration||500:0,o=e.clipRect,u=t.renderer;!o&&(o=e.clipRect=!t.hasRendered&&t.clipRect?t.clipRect:u.clipRect(0,0,t.plotSizeX,t.plotSizeY+1),!t.clipRect)&&(t.clipRect=o),e.createGroup(),n=e.group,e.drawDataLabels(),r&&e.animate(!0),e.getAttribs(),e.drawGraph&&e.drawGraph(),e.drawPoints(),e.options.enableMouseTracking!==!1&&e.drawTracker(),t.inverted&&e.invertGroups(),i&&!e.hasRendered&&(n.clip(o),e.trackerGroup&&e.trackerGroup.clip(t.clipRect)),r&&e.animate(),setTimeout(function(){o.isAnimating=!1,(n=e.group)&&o!==t.clipRect&&o.renderer&&(i&&n.clip(e.clipRect=t.clipRect),o.destroy())},s),e.isDirty=e.isDirtyData=!1,e.hasRendered=!0},redraw:function(){var e=this.chart,t=this.isDirtyData,n=this.group;n&&(e.inverted&&n.attr({width:e.plotWidth,height:e.plotHeight}),n.animate({translateX:this.xAxis.left,translateY:this.yAxis.top})),this.translate(),this.setTooltipPoints(!0),this.render(),t&&tn(this,"updatedData")},setState:function(e){var t=this.options,n=this.graph,r=t.states,t=t.lineWidth,e=e||"";this.state!==e&&(this.state=e,r[e]&&r[e].enabled===!1||(e&&(t=r[e].lineWidth||t+1),n&&!n.dashstyle&&n.attr({"stroke-width":t},e?0:500)))},setVisible:function(e,t){var n=this.chart,r=this.legendItem,i=this.group,s=this.tracker,o=this.dataLabelsGroup,u,a=this.points,f=n.options.chart.ignoreHiddenSeries;u=this.visible,u=(this.visible=e=e===R?!u:e)?"show":"hide",i&&i[u]();if(s)s[u]();else if(a)for(i=a.length;i--;)(s=a[i],s.tracker)&&s.tracker[u]();o&&o[u](),r&&n.legend.colorizeItem(this,e),this.isDirty=!0,this.options.stacking&&Jt(n.series,function(e){e.options.stacking&&e.visible&&(e.isDirty=!0)}),f&&(n.isDirtyBox=!0),t!==!1&&n.redraw(),tn(this,u)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(e){this.selected=e=e===R?!this.selected:e,this.checkbox&&(this.checkbox.checked=e),tn(this,e?"select":"unselect")},drawTrackerGroup:function(){var e=this.trackerGroup,t=this.chart;return this.isCartesian&&(e||(this.trackerGroup=e=t.renderer.g().attr({zIndex:this.options.zIndex||1}).add(t.trackerGroup)),e.translate(this.xAxis.left,this.yAxis.top)),e},drawTracker:function(){var e=this,t=e.options,n=t.trackByArea,r=[].concat(n?e.areaPath:e.graphPath),i=r.length,s=e.chart,o=s.renderer,u=s.options.tooltip.snap,a=e.tracker,f=t.cursor,f=f&&{cursor:f},l=e.singlePoints,c=e.drawTrackerGroup(),h;if(i&&!n)for(h=i+1;h--;)r[h]==="M"&&r.splice(h+1,0,r[h+1]-u,r[h+2],"L"),(h&&r[h]==="M"||h===i)&&r.splice(h,0,"L",r[h-2]+u,r[h-1]);for(h=0;h<l.length;h++)i=l[h],r.push("M",i.plotX-u,i.plotY,"L",i.plotX+u,i.plotY);a?a.attr({d:r}):e.tracker=o.path(r).attr({isTracker:!0,"stroke-linejoin":"bevel",visibility:e.visible?"visible":"hidden",stroke:St,fill:n?St:Et,"stroke-width":t.lineWidth+(n?0:2*u)}).on(lt?"touchstart":"mouseover",function(){s.hoverSeries!==e&&e.onMouseOver()}).on("mouseout",function(){t.stickyTracking||e.onMouseOut()}).css(f).add(c)}},Xt=m(gn),zt.line=Xt,fn.area=Yt(Wt,{threshold:0}),Xt=m(gn,{type:"area",getSegmentPath:function(e){var t=gn.prototype.getSegmentPath.call(this,e),n=[].concat(t),r,i=this.options;r=t.length;var s=this.yAxis.getThreshold(i.threshold);r===3&&n.push("L",t[1],t[2]);if(i.stacking&&this.type!=="areaspline")for(r=e.length-1;r>=0;r--)r<e.length-1&&i.step&&n.push(e[r+1].plotX,e[r].yBottom),n.push(e[r].plotX,e[r].yBottom);else n.push("L",e[e.length-1].plotX,s,"L",e[0].plotX,s);return this.areaPath=this.areaPath.concat(n),t},drawGraph:function(){this.areaPath=[],gn.prototype.drawGraph.apply(this);var e=this.areaPath,t=this.options,n=this.area;n?n.animate({d:e}):this.area=this.chart.renderer.path(e).attr({fill:p(t.fillColor,ln(this.color).setOpacity(t.fillOpacity||.75)
.get())}).add(this.group)},drawLegendSymbol:function(e,t){t.legendSymbol=this.chart.renderer.rect(0,e.baseline-11,e.options.symbolWidth,12,2).attr({zIndex:3}).add(t.legendGroup)}}),zt.area=Xt,fn.spline=Yt(Wt),pn=m(gn,{type:"spline",getPointSpline:function(e,t,n){var r=t.plotX,i=t.plotY,s=e[n-1],o=e[n+1],u,a,f,l;if(n&&n<e.length-1){e=s.plotY,f=o.plotX;var o=o.plotY,c;u=(1.5*r+s.plotX)/2.5,a=(1.5*i+e)/2.5,f=(1.5*r+f)/2.5,l=(1.5*i+o)/2.5,c=(l-a)*(f-r)/(f-u)+i-l,a+=c,l+=c,a>e&&a>i?(a=J(e,i),l=2*i-a):a<e&&a<i&&(a=K(e,i),l=2*i-a),l>o&&l>i?(l=J(o,i),a=2*i-l):l<o&&l<i&&(l=K(o,i),a=2*i-l),t.rightContX=f,t.rightContY=l}return n?(t=["C",s.rightContX||s.plotX,s.rightContY||s.plotY,u||r,a||i,r,i],s.rightContX=s.rightContY=null):t=["M",r,i],t}}),zt.spline=pn,fn.areaspline=Yt(fn.area);var yn=Xt.prototype,pn=m(pn,{type:"areaspline",getSegmentPath:yn.getSegmentPath,drawGraph:yn.drawGraph});zt.areaspline=pn,fn.column=Yt(Wt,{borderColor:"#FFFFFF",borderWidth:1,borderRadius:0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:.1,shadow:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{y:null,verticalAlign:null},threshold:0}),pn=m(gn,{type:"column",tooltipOutsidePlot:!0,pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color",r:"borderRadius"},init:function(){gn.prototype.init.apply(this,arguments);var e=this,t=e.chart;t.hasRendered&&Jt(t.series,function(t){t.type===e.type&&(t.isDirty=!0)})},translate:function(){var t=this,n=t.chart,r=t.options,i=r.stacking,s=r.borderWidth,o=0,u=t.xAxis,a=u.reversed,f={},c,h;gn.prototype.translate.apply(t),Jt(n.series,function(e){e.type===t.type&&e.visible&&t.options.group===e.options.group&&(e.options.stacking?(c=e.stackKey,f[c]===R&&(f[c]=o++),h=f[c]):h=o++,e.columnIndex=h)});var d=t.points,u=Q(u.transA)*(u.ordinalSlope||r.pointRange||u.closestPointRange||1),v=u*r.groupPadding,m=(u-2*v)/o,g=r.pointWidth,y=l(g)?(m-g)/2:m*r.pointPadding,b=p(g,m-2*y),w=$(J(b,1+2*s)),E=y+(v+((a?o-t.columnIndex:t.columnIndex)||0)*m-u/2)*(a?-1:1),S=t.yAxis.getThreshold(r.threshold),x=p(r.minPointLength,5);Jt(d,function(r){var o=r.plotY,u=p(r.yBottom,S),a=r.plotX+E,f=$(K(o,u)),l=$(J(o,u)-f),c=t.yAxis.stacks[(r.y<0?"-":"")+t.stackKey];i&&t.visible&&c&&c[r.x]&&c[r.x].setOffset(E,w),Q(l)<x&&x&&(l=x,f=Q(f-S)>x?u-x:S-(o<=S?x:0)),e(r,{barX:a,barY:f,barW:w,barH:l,pointWidth:b}),r.shapeType="rect",r.shapeArgs=o=n.renderer.Element.prototype.crisp.call(0,s,a,f,w,l),s%2&&(o.y-=1,o.height+=1),r.trackerArgs=Q(l)<3&&Yt(r.shapeArgs,{height:6,y:f-3})})},getSymbol:function(){},drawLegendSymbol:Xt.prototype.drawLegendSymbol,drawGraph:function(){},drawPoints:function(){var e=this,t=e.options,n=e.chart.renderer,r,i;Jt(e.points,function(s){var o=s.plotY;o!==R&&!isNaN(o)&&s.y!==null&&(r=s.graphic,i=s.shapeArgs,r?(sn(r),r.animate(Yt(i))):s.graphic=r=n[s.shapeType](i).attr(s.pointAttr[s.selected?"select":""]).add(e.group).shadow(t.shadow,null,t.stacking&&!t.borderRadius))})},drawTracker:function(){var e=this,t=e.chart,n=t.renderer,r,i,s=+(new Date),o=e.options,u=o.cursor,a=u&&{cursor:u},f=e.drawTrackerGroup(),l,h,p;Jt(e.points,function(u){i=u.tracker,r=u.trackerArgs||u.shapeArgs,h=u.plotY,p=!e.isCartesian||h!==R&&!isNaN(h),delete r.strokeWidth,u.y!==null&&p&&(i?i.attr(r):u.tracker=n[u.shapeType](r).attr({isTracker:s,fill:St,visibility:e.visible?"visible":"hidden"}).on(lt?"touchstart":"mouseover",function(n){l=n.relatedTarget||n.fromElement,t.hoverSeries!==e&&c(l,"isTracker")!==s&&e.onMouseOver(),u.onMouseOver()}).on("mouseout",function(t){!o.stickyTracking&&(l=t.relatedTarget||t.toElement,c(l,"isTracker")!==s)&&e.onMouseOut()}).css(a).add(u.group||f))})},animate:function(e){var t=this,n=t.points,r=t.options;e||(Jt(n,function(e){var n=e.graphic,e=e.shapeArgs,i=t.yAxis,s=r.threshold;n&&(n.attr({height:0,y:l(s)?i.getThreshold(s):i.translate(i.getExtremes().min,0,1,0,1)}),n.animate({height:e.height,y:e.y},r.animation))}),t.animate=null)},remove:function(){var e=this,t=e.chart;t.hasRendered&&Jt(t.series,function(t){t.type===e.type&&(t.isDirty=!0)}),gn.prototype.remove.apply(e,arguments)}}),zt.column=pn,fn.bar=Yt(fn.column,{dataLabels:{align:"left",x:5,y:null,verticalAlign:"middle"}}),yn=m(pn,{type:"bar",inverted:!0}),zt.bar=yn,fn.scatter=Yt(Wt,{lineWidth:0,states:{hover:{lineWidth:0}},tooltip:{headerFormat:'<span style="font-size: 10px; color:{series.color}">{series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}),yn=m(gn,{type:"scatter",sorted:!1,translate:function(){var e=this;gn.prototype.translate.apply(e),Jt(e.points,function(t){t.shapeType="circle",t.shapeArgs={x:t.plotX,y:t.plotY,r:e.chart.options.tooltip.snap}})},drawTracker:function(){for(var e=this,t=e.options.cursor,t=t&&{cursor:t},n=e.points,r=n.length,i;r--;)if(i=n[r].graphic)i.element._i=r;e._hasTracking?e._hasTracking=!0:e.group.attr({isTracker:!0}).on(lt?"touchstart":"mouseover",function(t){e.onMouseOver(),t.target._i!==R&&n[t.target._i].onMouseOver()}).on("mouseout",function(){e.options.stickyTracking||e.onMouseOut()}).css(t)}}),zt.scatter=yn,fn.pie=Yt(Wt,{borderColor:"#FFFFFF",borderWidth:1,center:["50%","50%"],colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name},y:5},legendType:"point",marker:null,size:"75%",showInLegend:!1,slicedOffset:10,states:{hover:{brightness:.1,shadow:!1}}}),Wt={type:"pie",isCartesian:!1,pointClass:m(mn,{init:function(){mn.prototype.init.apply(this,arguments);var t=this,n;return e(t,{visible:t.visible!==!1,name:p(t.name,"Slice")}),n=function(){t.slice()},Zt(t,"select",n),Zt(t,"unselect",n),t},setVisible:function(e){var t=this.series.chart,n=this.tracker,r=this.dataLabel,i=this.connector,s=this.shadowGroup,o;o=(this.visible=e=e===R?!this.visible:e)?"show":"hide",this.group[o](),n&&n[o](),r&&r[o](),i&&i[o](),s&&s[o](),this.legendItem&&t.legend.colorizeItem(this,e)},slice:function(e,t,n){var r=this.series.chart,i=this.slicedTranslation;O(n,r),p(t,!0),e=this.sliced=l(e)?e:!this.sliced,e={translateX:e?i[0]:r.plotLeft,translateY:e?i[1]:r.plotTop},this.group.animate(e),this.shadowGroup&&this.shadowGroup.animate(e)}}),pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:function(){this.initialColor=this.chart.counters.color},animate:function(){var e=this;Jt(e.points,function(t){var n=t.graphic,t=t.shapeArgs,r=-Z/2;n&&(n.attr({r:0,start:r,end:r}),n.animate({r:t.r,start:t.start,end:t.end},e.options.animation))}),e.animate=null},setData:function(e,t){gn.prototype.setData.call(this,e,!1),this.processData(),this.generatePoints(),p(t,!0)&&this.chart.redraw()},getCenter:function(){var e=this.options,t=this.chart,r=t.plotWidth,i=t.plotHeight,e=e.center.concat([e.size,e.innerSize||0]),s=K(r,i),o;return Gt(e,function(e,t){return(o=/%$/.test(e))?[r,i,s,s][t]*n(e)/100:e})},translate:function(){this.generatePoints();var e=0,t=-0.25,n=this.options,r=n.slicedOffset,i=r+n.borderWidth,s,o=this.chart,u,a,f,l=this.points,c=2*Z,h,p,d,v=n.dataLabels.distance;this.center=s=this.getCenter(),this.getX=function(e,t){return f=W.asin((e-s[1])/(s[2]/2+v)),s[0]+(t?-1:1)*G(f)*(s[2]/2+v)},Jt(l,function(t){e+=t.y}),Jt(l,function(n){h=e?n.y/e:0,u=X(t*c*1e3)/1e3,t+=h,a=X(t*c*1e3)/1e3,n.shapeType="arc",n.shapeArgs={x:s[0],y:s[1],r:s[2]/2,innerR:s[3]/2,start:u,end:a},f=(a+u)/2,n.slicedTranslation=Gt([G(f)*r+o.plotLeft,Y(f)*r+o.plotTop],X),p=G(f)*s[2]/2,d=Y(f)*s[2]/2,n.tooltipPos=[s[0]+p*.7,s[1]+d*.7],n.labelPos=[s[0]+p+G(f)*v,s[1]+d+Y(f)*v,s[0]+p+G(f)*i,s[1]+d+Y(f)*i,s[0]+p,s[1]+d,v<0?"center":f<c/4?"left":"right",f],n.percentage=h*100,n.total=e}),this.setTooltipPoints()},render:function(){this.getAttribs(),this.drawPoints(),this.options.enableMouseTracking!==!1&&this.drawTracker(),this.drawDataLabels(),this.options.animation&&this.animate&&this.animate(),this.isDirty=!1},drawPoints:function(){var t=this,n=t.chart,r=n.renderer,i,s,o,u=t.options.shadow,a,f;Jt(t.points,function(l){s=l.graphic,f=l.shapeArgs,o=l.group,a=l.shadowGroup,u&&!a&&(a=l.shadowGroup=r.g("shadow").attr({zIndex:4}).add()),o||(o=l.group=r.g("point").attr({zIndex:5}).add()),i=l.sliced?l.slicedTranslation:[n.plotLeft,n.plotTop],o.translate(i[0],i[1]),a&&a.translate(i[0],i[1]),s?s.animate(f):l.graphic=s=r.arc(f).setRadialReference(t.center).attr(e(l.pointAttr[""],{"stroke-linejoin":"round"})).add(l.group).shadow(u,a),l.visible===!1&&l.setVisible(!1)})},drawDataLabels:function(){var e=this.data,t,n=this.chart,r=this.options.dataLabels,i=p(r.connectorPadding,10),s=p(r.connectorWidth,1),o,u,a=p(r.softConnector,!0),f=r.distance,l=this.center,c=l[2]/2,h=l[1],d=f>0,v=[[],[]],m,g,y,b,w=2,E;if(r.enabled){gn.prototype.drawDataLabels.apply(this),Jt(e,function(e){e.dataLabel&&v[e.labelPos[7]<Z/2?0:1].push(e)}),v[1].reverse(),b=function(e,t){return t.y-e.y};for(e=v[0][0]&&v[0][0].dataLabel&&(v[0][0].dataLabel.getBBox().height||21);w--;){var S=[],x=[],T=v[w],N=T.length,C;if(f>0){for(E=h-c-f;E<=h+c+f;E+=e)S.push(E);y=S.length;if(N>y){u=[].concat(T),u.sort(b);for(E=N;E--;)u[E].rank=E;for(E=N;E--;)T[E].rank>=y&&T.splice(E,1);N=T.length}for(E=0;E<N;E++){t=T[E],u=t.labelPos,t=9999;for(g=0;g<y;g++)o=Q(S[g]-u[1]),o<t&&(t=o,C=g);if(C<E&&S[E]!==null)C=E;else for(y<N-E+C&&S[E]!==null&&(C=y-N+E);S[C]===null;)C++;x.push({i:C,y:S[C]}),S[C]=null}x.sort(b)}for(E=0;E<N;E++){t=T[E],u=t.labelPos,o=t.dataLabel,y=t.visible===!1?"hidden":"visible",m=u[1];if(f>0){if(g=x.pop(),C=g.i,g=g.y,m>g&&S[C+1]!==null||m<g&&S[C-1]!==null)g=m}else g=m;m=r.justify?l[0]+(w?-1:1)*(c+f):this.getX(C===0||C===S.length-1?m:g,w),o.attr({visibility:y,align:u[6]})[o.moved?"animate":"attr"]({x:m+r.x+({left:i,right:-i}[u[6]]||0),y:g+r.y}),o.moved=!0,d&&s&&(o=t.connector,u=a?["M",m+(u[6]==="left"?5:-5),g,"C",m,g,2*u[2]-u[4],2*u[3]-u[5],u[2],u[3],"L",u[4],u[5]]:["M",m+(u[6]==="left"?5:-5),g,"L",u[2],u[3],"L",u[4],u[5]],o?(o.animate({d:u}),o.attr("visibility",y)):t.connector=o=this.chart.renderer.path(u).attr({"stroke-width":s,stroke:r.connectorColor||t.color||"#606060",visibility:y,zIndex:3}).translate(n.plotLeft,n.plotTop).add())}}}},drawTracker:pn.prototype.drawTracker,drawLegendSymbol:Xt.prototype.drawLegendSymbol,getSymbol:function(){}},Wt=m(gn,Wt),zt.pie=Wt,e(Highcharts,{Axis:B,CanVGRenderer:dn,Chart:q,Color:ln,Legend:I,Point:mn,Tick:D,Tooltip:j,Renderer:ft,Series:gn,SVGRenderer:cn,VMLRenderer:hn,dateFormat:vt,pathAnim:gt,getOptions:function(){return dt},hasBidiBug:ut,numberFormat:g,seriesTypes:zt,setOptions:function(e){return dt=Yt(dt,e),M(),dt},addEvent:Zt,removeEvent:en,createElement:v,discardElement:k,css:d,each:Jt,extend:e,map:Gt,merge:Yt,pick:p,splat:h,extendClass:m,pInt:n,product:"Highcharts",version:"2.2.5"})}(),Array.prototype.indexOf||(Array.prototype.indexOf=function(e){"use strict";if(this===void 0||this===null)throw new TypeError;var t=Object(this),n=t.length>>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Infinity&&r!==-Infinity&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i<n;i++)if(i in t&&t[i]===e)return i;return-1}),window.I18n={},I18n.defaultLocale="en",I18n.fallbacks=!1,I18n.defaultSeparator=".",I18n.locale=null,I18n.PLACEHOLDER=/(?:\{\{|%\{)(.*?)(?:\}\}?)/gm,I18n.fallbackRules={},I18n.pluralizationRules={en:function(e){return e==0?["zero","none","other"]:e==1?"one":"other"}},I18n.getFallbacks=function(e){if(e===I18n.defaultLocale)return[];if(!I18n.fallbackRules[e]){var t=[],n=e.split("-");for(var r=1;r<n.length;r++)t.push(n.slice(0,r).join("-"));t.push(I18n.defaultLocale),I18n.fallbackRules[e]=t}return I18n.fallbackRules[e]},I18n.isValidNode=function(e,t,n){return e[t]!==null&&e[t]!==n},I18n.lookup=function(e,t){var t=t||{},n=e,r=this.prepareOptions(I18n.translations),i=t.locale||I18n.currentLocale(),s=r[i]||{},t=this.prepareOptions(t),o;typeof e=="object"&&(e=e.join(this.defaultSeparator)),t.scope&&(e=t.scope.toString()+this.defaultSeparator+e),e=e.split(this.defaultSeparator);while(s&&e.length>0)o=e.shift(),s=s[o];if(!s){if(I18n.fallbacks){var u=this.getFallbacks(i);for(var a=0;a<u.length;u++){s=I18n.lookup(n,this.prepareOptions({locale:u[a]},t));if(s)break}}!s&&this.isValidNode(t,"defaultValue")&&(s=t.defaultValue)}return s},I18n.prepareOptions=function(){var e={},t,n=arguments.length;for(var r=0;r<n;r++){t=arguments[r];if(!t)continue;for(var i in t)this.isValidNode(e,i)||(e[i]=t[i])}return e},I18n.interpolate=function(e,t){t=this.prepareOptions(t);var n=e.match(this.PLACEHOLDER),r,i,s;if(!n)return e;for(var o=0;r=n[o];o++)s=r.replace(this.PLACEHOLDER,"$1"),i=t[s],this.isValidNode(t,s)||(i="[missing "+r+" value]"),regex=new RegExp(r.replace(/\{/gm,"\\{").replace(/\}/gm,"\\}")),e=e.replace(regex,i);return e},I18n.translate=function(e,t){t=this.prepareOptions(t);var n=this.lookup(e,t);try{return typeof n=="object"?typeof t.count=="number"?this.pluralize(t.count,e,t):n:this.interpolate(n,t)}catch(r){return this.missingTranslation(e)}},I18n.localize=function(e,t){switch(e){case"currency":return this.toCurrency(t);case"number":return e=this.lookup("number.format"),this.toNumber(t,e);case"percentage":return this.toPercentage(t);default:return e.match(/^(date|time)/)?this.toTime(e,t):t.toString()}},I18n.parseDate=function(e){var t,n;if(typeof e=="object")return e;t=e.toString().match(/(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2}))?(Z|\+0000)?/);if(t){for(var r=1;r<=6;r++)t[r]=parseInt(t[r],10)||0;t[2]-=1,t[7]?n=new Date(Date.UTC(t[1],t[2],t[3],t[4],t[5],t[6])):n=new Date(t[1],t[2],t[3],t[4],t[5],t[6])}else typeof e=="number"?(n=new Date,n.setTime(e)):e.match(/\d+ \d+:\d+:\d+ [+-]\d+ \d+/)?(n=new Date,n.setTime(Date.parse(e))):(n=new Date,n.setTime(Date.parse(e)));return n},I18n.toTime=function(e,t){var n=this.parseDate(t),r=this.lookup(e);return n.toString().match(/invalid/i)?n.toString():r?this.strftime(n,r):n.toString()},I18n.strftime=function(e,t){var n=this.lookup("date");if(!n)return e.toString();n.meridian=n.meridian||["AM","PM"];var r=e.getDay(),i=e.getDate(),s=e.getFullYear(),o=e.getMonth()+1,u=e.getHours(),a=u,f=u>11?1:0,l=e.getSeconds(),c=e.getMinutes(),h=e.getTimezoneOffset(),p=Math.floor(Math.abs(h/60)),d=Math.abs(h)-p*60,v=(h>0?"-":"+")+(p.toString().length<2?"0"+p:p)+(d.toString().length<2?"0"+d:d);a>12?a-=12:a===0&&(a=12);var m=function(e){var t="0"+e.toString();return t.substr(t.length-2)},g=t;return g=g.replace("%a",n.abbr_day_names[r]),g=g.replace("%A",n.day_names[r]),g=g.replace("%b",n.abbr_month_names[o]),g=g.replace("%B",n.month_names[o]),g=g.replace("%d",m(i)),g=g.replace("%e",i),g=g.replace("%-d",i),g=g.replace("%H",m(u)),g=g.replace("%-H",u),g=g.replace("%I",m(a)),g=g.replace("%-I",a),g=g.replace("%m",m(o)),g=g.replace("%-m",o),g=g.replace("%M",m(c)),g=g.replace("%-M",c),g=g.replace("%p",n.meridian[f]),g=g.replace("%S",m(l)),g=g.replace("%-S",l),g=g.replace("%w",r),g=g.replace("%y",m(s)),g=g.replace("%-y",m(s).replace(/^0+/,"")),g=g.replace("%Y",s),g=g.replace("%z",v),g},I18n.toNumber=function(e,t){t=this.prepareOptions(t,this.lookup("number.format"),{precision:3,separator:".",delimiter:",",strip_insignificant_zeros:!1});var n=e<0,r=Math.abs(e).toFixed(t.precision).toString(),i=r.split("."),s,o=[],u;e=i[0],s=i[1];while(e.length>0)o.unshift(e.substr(Math.max(0,e.length-3),3)),e=e.substr(0,e.length-3);u=o.join(t.delimiter),t.precision>0&&(u+=t.separator+i[1]),n&&(u="-"+u);if(t.strip_insignificant_zeros){var a={separator:new RegExp(t.separator.replace(/\./,"\\.")+"$"),zeros:/0+$/};u=u.replace(a.zeros,"").replace(a.separator,"")}return u},I18n.toCurrency=function(e,t){return t=this.prepareOptions(t,this.lookup("number.currency.format"),this.lookup("number.format"),{unit:"$",precision:2,format:"%u%n",delimiter:",",separator:"."}),e=this.toNumber(e,t),e=t.format.replace("%u",t.unit).replace("%n",e),e},I18n.toHumanSize=function(e,t){var n=1024,r=e,i=0,s,o;while(r>=n&&i<4)r/=n,i+=1;return i===0?(s=this.t("number.human.storage_units.units.byte",{count:r}),o=0):(s=this.t("number.human.storage_units.units."+[null,"kb","mb","gb","tb"][i]),o=r-Math.floor(r)===0?0:1),t=this.prepareOptions(t,{precision:o,format:"%n%u",delimiter:""}),e=this.toNumber(r,t),e=t.format.replace("%u",s).replace("%n",e),e},I18n.toPercentage=function(e,t){return t=this.prepareOptions(t,this.lookup("number.percentage.format"),this.lookup("number.format"),{precision:3,separator:".",delimiter:""}),e=this.toNumber(e,t),e+"%"},I18n.pluralizer=function(e){return pluralizer=this.pluralizationRules[e],pluralizer!==undefined?pluralizer:this.pluralizationRules.en},I18n.findAndTranslateValidNode=function(e,t){for(i=0;i<e.length;i++){key=e[i];if(this.isValidNode(t,key))return t[key]}return null},I18n.pluralize=function(e,t,n){var r;try{r=this.lookup(t,n)}catch(i){}if(!r)return this.missingTranslation(t);var s;return n=this.prepareOptions(n),n.count=e.toString(),pluralizer=this.pluralizer(this.currentLocale()),key=pluralizer(Math.abs(e)),keys=typeof key=="object"&&key instanceof Array?key:[key],s=this.findAndTranslateValidNode(keys,r),s==null&&(s=this.missingTranslation(t,keys[0])),this.interpolate(s,n)},I18n.missingTranslation=function(){var e='[missing "'+this.currentLocale(),t=arguments.length;for(var n=0;n<t;n++)e+="."+arguments[n];return e+='" translation]',e},I18n.currentLocale=function(){return I18n.locale||I18n.defaultLocale},I18n.t=I18n.translate,I18n.l=I18n.localize,I18n.p=I18n.pluralize,function(e,t){"$:nomunge";var n=e.jQuery||e.Cowboy||(e.Cowboy={}),r;n.throttle=r=function(e,r,i,s){function o(){function n(){a=+(new Date),i.apply(f,c)}function o(){u=t}var f=this,l=+(new Date)-a,c=arguments;s&&!u&&n(),u&&clearTimeout(u),s===t&&l>e?n():r!==!0&&(u=setTimeout(s?o:n,s===t?e-l:e))}var u,a=0;return typeof r!="boolean"&&(s=i,i=r,r=t),n.guid&&(o.guid=i.guid=i.guid||n.guid++),o},n.debounce=function(e,n,i){return i===t?r(e,n,!1):r(e,i,n!==!1)}}(this),function(e){function t(t){return t=e(t),(!t.data("timeago")||t.data("timeago").title!=t.attr("title"))&&t.data("timeago",{datetime:i.parse(t.attr("title")),title:t.attr("title")}),t.data("timeago")}function n(e){return i.inWords(r(e))}function r(e){return i.distance(e)}e.timeago=function(t){return t instanceof Date?n(t):typeof t=="string"?n(e.timeago.parse(t)):n(e.timeago.datetime(t))};var i=e.timeago;e.extend(e.timeago,{settings:{refreshMillis:3e3,allowFuture:!0,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",seconds:"less than a minute",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",numbers:[]}},distanceInWords:function(t){if(!t)return;return typeof t=="string"&&(t=e.timeago.parse(t)),e.timeago.inWords(e.timeago.distance(t))},inWords:function(t){function n(n,i){var s=e.isFunction(n)?n(i,t):n,o=r.numbers&&r.numbers[i]||i;return s.replace(/%d/i,o)}var r=this.settings.strings,i=r.prefixAgo,s=r.suffixAgo;this.settings.allowFuture&&(t<0&&(i=r.prefixFromNow,s=r.suffixFromNow),t=Math.abs(t));var o=t/1e3,u=o/60,a=u/60,f=a/24,l=f/365,c=o<45&&n(r.seconds,Math.round(o))||o<90&&n(r.minute,1)||u<45&&n(r.minutes,Math.round(u))||u<90&&n(r.hour,1)||a<24&&n(r.hours,Math.round(a))||a<48&&n(r.day,1)||f<30&&n(r.days,Math.floor(f))||f<60&&n(r.month,1)||f<365&&n(r.months,Math.floor(f/30))||l<2&&n(r.year,1)||n(r.years,Math.floor(l));return e.trim([i,c,s].join(" "))},distance:function(e){return this.now()-e.getTime()},now:function(){return(new Date).getTime()},parse:function(t){var n=e.trim(t);return n=n.replace(/\.\d\d\d+/,""),n=n.replace(/-/,"/").replace(/-/,"/"),n=n.replace(/T/," ").replace(/Z/," UTC"),n=n.replace(/([\+-]\d\d)\:?(\d\d)/," $1$2"),new Date(n)}}),e.fn.timeago=function(){return this.each(function(){var r=t(this);isNaN(r.datetime)||e(this).text(n(r.datetime))}),this},document.createElement("abbr"),document.createElement("time")}(jQuery),function(){Function.prototype.scopedTo===void 0&&(Function.prototype.scopedTo=function(e,t){var n=this;return function(){return n.apply(e,Array.prototype.slice.call(t||[]).concat(Array.prototype.slice.call(arguments)))}});var e=function(t,n){this.options=n||{},this.key=t,this.channels=new e.Channels,this.global_emitter=new e.EventsDispatcher;var r=this;this.checkAppKey(),this.connection=new e.Connection(this.key,this.options),this.connection.bind("connected",function(){r.subscribeAll()}).bind("message",function(e){var t=e.event.indexOf("pusher_internal:")===0;if(e.channel){var n;(n=r.channel(e.channel))&&n.emit(e.event,e.data)}t||r.global_emitter.emit(e.event,e.data)}).bind("disconnected",function(){r.channels.disconnect()}).bind("error",function(t){e.warn("Error",t)}),e.instances.push(this),e.isReady&&r.connect()};e.instances=[],e.prototype={channel:function(e){return this.channels.find(e)},connect:function(){this.connection.connect()},disconnect:function(){this.connection.disconnect()},bind:function(e,t){return this.global_emitter.bind(e,t),this},bind_all:function(e){return this.global_emitter.bind_all(e),this},subscribeAll:function(){for(channelName in this.channels.channels)this.channels.channels.hasOwnProperty(channelName)&&this.subscribe(channelName)},subscribe:function(e){var t=this,n=this.channels.add(e,this);return this.connection.state==="connected"&&n.authorize(this.connection.socket_id,this.options,function(r,i){r?n.emit("pusher:subscription_error",i):t.send_event("pusher:subscribe",{channel:e,auth:i.auth,channel_data:i.channel_data})}),n},unsubscribe:function(e){this.channels.remove(e),this.connection.state==="connected"&&this.send_event("pusher:unsubscribe",{channel:e})},send_event:function(e,t,n){return this.connection.send_event(e,t,n)},checkAppKey:function(){(this.key===null||this.key===void 0)&&e.warn("Warning","You must pass your app key when you instantiate Pusher.")}},e.Util={extend:function t(e,n){for(var r in n)e[r]=n[r]&&n[r].constructor&&n[r].constructor===Object?t(e[r]||{},n[r]):n[r];return e},stringify:function(){for(var e=["Pusher"],t=0;t<arguments.length;t++)typeof arguments[t]=="string"?e.push(arguments[t]):window.JSON==void 0?e.push(arguments[t].toString()):e.push(JSON.stringify(arguments[t]));return e.join(" : ")},arrayIndexOf:function(e,t){var n=Array.prototype.indexOf;if(e==null)return-1;if(n&&e.indexOf===n)return e.indexOf(t);for(i=0,l=e.length;i<l;i++)if(e[i]===t)return i;return-1}},e.debug=function(){e.log&&e.log(e.Util.stringify.apply(this,arguments))},e.warn=function(){window.console&&window.console.warn?window.console.warn(e.Util.stringify.apply(this,arguments)):e.log&&e.log(e.Util.stringify.apply(this,arguments))},e.VERSION="1.12.2",e.host="ws.pusherapp.com",e.ws_port=80,e.wss_port=443,e.channel_auth_endpoint="/pusher/auth",e.cdn_http="http://js.pusher.com/",e.cdn_https="https://d3dy5gmtp8yhk7.cloudfront.net/",e.dependency_suffix=".min",e.channel_auth_transport="ajax",e.activity_timeout=12e4,e.pong_timeout=3e4,e.isReady=!1,e.ready=function(){e.isReady=!0;for(var t=0,n=e.instances.length;t<n;t++)e.instances[t].connect()},this.Pusher=e}.call(this),function(){function e(){this._callbacks={}}function t(t){this.callbacks=new e,this.global_callbacks=[],this.failThrough=t}e.prototype.get=function(e){return this._callbacks[this._prefix(e)]},e.prototype.add=function(e,t){var n=this._prefix(e);this._callbacks[n]=this._callbacks[n]||[],this._callbacks[n].push(t)},e.prototype.remove=function(e,t){if(this.get(e)){var n=Pusher.Util.arrayIndexOf(this.get(e),t);this._callbacks[this._prefix(e)].splice(n,1)}},e.prototype._prefix=function(e){return"_"+e},t.prototype.bind=function(e,t){return this.callbacks.add(e,t),this},t.prototype.unbind=function(e,t){return this.callbacks.remove(e,t),this},t.prototype.emit=function(e,t){for(var n=0;n<this.global_callbacks.length;n++)this.global_callbacks[n](e,t);var r=this.callbacks.get(e);if(r)for(n=0;n<r.length;n++)r[n](t);else this.failThrough&&this.failThrough(e,t);return this},t.prototype.bind_all=function(e){return this.global_callbacks.push(e),this},this.Pusher.EventsDispatcher=t}.call(this),function(){function e(e,t,n){t[e]!==void 0&&t[e](n)}function t(e,t,r){n.EventsDispatcher.call(this),this.state=void 0,this.errors=[],this.stateActions=r,this.transitions=t,this.transition(e)}var n=this.Pusher;t.prototype.transition=function(t,r){var i=this.state,s=this.stateActions;if(i&&n.Util.arrayIndexOf(this.transitions[i],t)==-1)throw this.emit("invalid_transition_attempt",{oldState:i,newState:t}),Error("Invalid transition ["+i+" to "+t+"]");e(i+"Exit",s,r),e(i+"To"+(t.substr(0,1).toUpperCase()+t.substr(1)),s,r),e(t+"Pre",s,r),this.state=t,this.emit("state_change",{oldState:i,newState:t}),e(t+"Post",s,r)},t.prototype.is=function(e){return this.state===e},t.prototype.isNot=function(e){return this.state!==e},n.Util.extend(t.prototype,n.EventsDispatcher.prototype),this.Pusher.Machine=t}.call(this),function(){var e=function(){var e=this;Pusher.EventsDispatcher.call(this),window.addEventListener!==void 0&&(window.addEventListener("online",function(){e.emit("online",null)},!1),window.addEventListener("offline",function(){e.emit("offline",null)},!1))};e.prototype.isOnLine=function(){return window.navigator.onLine===void 0?!0:window.navigator.onLine},Pusher.Util.extend(e.prototype,Pusher.EventsDispatcher.prototype),this.Pusher.NetInfo=e}.call(this),function(){function e(e){e.connectionWait=0,e.openTimeout=n.TransportType==="flash"?5e3:2e3,e.connectedTimeout=2e3,e.connectionSecure=e.compulsorySecure,e.connectionAttempts=0}function t(t,l){function c(){S.connectionWait<u&&(S.connectionWait+=i),S.openTimeout<a&&(S.openTimeout+=s),S.connectedTimeout<f&&(S.connectedTimeout+=o),S.compulsorySecure!==!0&&(S.connectionSecure=!S.connectionSecure),S.connectionAttempts++}function h(){S._machine.transition("impermanentlyClosing")}function p(){S._activityTimer&&clearTimeout(S._activityTimer),S._activityTimer=setTimeout(function(){S.send_event("pusher:ping",{}),S._activityTimer=setTimeout(function(){S.socket.close()},S.options.pong_timeout||n.pong_timeout)},S.options.activity_timeout||n.activity_timeout)}function d(){var e=S.connectionWait;if(e===0&&S.connectedAt){var t=(new Date).getTime()-S.connectedAt;t<1e3&&(e=1e3-t)}return e}function v(){S._machine.transition("open")}function m(e){e=y(e);if(e!==void 0)if(e.event==="pusher:connection_established")S._machine.transition("connected",e.data.socket_id);else if(e.event==="pusher:error"){var t=e.data.code;S.emit("error",{type:"PusherError",data:{code:t,message:e.data.message}}),t===4e3?(S.compulsorySecure=!0,S.connectionSecure=!0,S.options.encrypted=!0,h()):t<4100?S._machine.transition("permanentlyClosing"):t<4200?(S.connectionWait=1e3,S._machine.transition("waiting")):t<4300?h():S._machine.transition("permanentlyClosing")}}function g(e){p(),e=y(e);if(e!==void 0){n.debug("Event recd",e);switch(e.event){case"pusher:error":S.emit("error",{type:"PusherError",data:e.data});break;case"pusher:ping":S.send_event("pusher:pong",{})}S.emit("message",e)}}function y(e){try{var t=JSON.parse(e.data);if(typeof t.data=="string")try{t.data=JSON.parse(t.data)}catch(n){if(!(n instanceof SyntaxError))throw n}return t}catch(r){S.emit("error",{type:"MessageParseError",error:r,data:e.data})}}function b(){S._machine.transition("waiting")}function w(e){S.emit("error",{type:"WebSocketError",error:e})}function E(e,t){var r=S.state;S.state=e,r!==e&&(n.debug("State changed",r+" -> "+e),S.emit("state_change",{previous:r,current:e}),S.emit(e,t))}var S=this;n.EventsDispatcher.call(this),this.options=n.Util.extend({encrypted:!1},l),this.netInfo=new n.NetInfo,this.netInfo.bind("online",function(){S._machine.is("waiting")&&(S._machine.transition("connecting"),E("connecting"))}),this.netInfo.bind("offline",function(){S._machine.is("connected")&&(S.socket.onclose=void 0,S.socket.onmessage=void 0,S.socket.onerror=void 0,S.socket.onopen=void 0,S.socket.close(),S.socket=void 0,S._machine.transition("waiting"))}),this._machine=new n.Machine("initialized",r,{initializedPre:function(){S.compulsorySecure=S.options.encrypted,S.key=t,S.socket=null,S.socket_id=null,S.state="initialized"},waitingPre:function(){S.connectionWait>0&&S.emit("connecting_in",S.connectionWait),S.netInfo.isOnLine()&&S.connectionAttempts<=4?E("connecting"):E("unavailable"),S.netInfo.isOnLine()&&(S._waitingTimer=setTimeout(function(){S._machine.transition("connecting")},d()))},waitingExit:function(){clearTimeout(S._waitingTimer)},connectingPre:function(){if(S.netInfo.isOnLine()===!1)S._machine.transition("waiting"),E("unavailable");else{var e;e=n.ws_port;var t="ws://";if(S.connectionSecure||document.location.protocol==="https:")e=n.wss_port,t="wss://";e=t+n.host+":"+e+"/app/"+S.key+"?protocol=5&client=js&version="+n.VERSION+"&flash="+(n.TransportType==="flash"?"true":"false"),n.debug("Connecting",e),S.socket=new n.Transport(e),S.socket.onopen=v,S.socket.onclose=b,S.socket.onerror=w,S._connectingTimer=setTimeout(h,S.openTimeout)}},connectingExit:function(){clearTimeout(S._connectingTimer),S.socket.onopen=void 0},connectingToWaiting:function(){c()},connectingToImpermanentlyClosing:function(){c()},openPre:function(){S.socket.onmessage=m,S.socket.onerror=w,S.socket.onclose=b,S._openTimer=setTimeout(h,S.connectedTimeout)},openExit:function(){clearTimeout(S._openTimer),S.socket.onmessage=void 0},openToWaiting:function(){c()},openToImpermanentlyClosing:function(){c()},connectedPre:function(t){S.socket_id=t,S.socket.onmessage=g,S.socket.onerror=w,S.socket.onclose=b,e(S),S.connectedAt=(new Date).getTime(),p()},connectedPost:function(){E("connected")},connectedExit:function(){S._activityTimer&&clearTimeout(S._activityTimer),E("disconnected")},impermanentlyClosingPost:function(){S.socket&&(S.socket.onclose=b,S.socket.close())},permanentlyClosingPost:function(){S.socket?(S.socket.onclose=function(){e(S),S._machine.transition("permanentlyClosed")},S.socket.close()):(e(S),S._machine.transition("permanentlyClosed"))},failedPre:function(){E("failed"),n.debug("WebSockets are not available in this browser.")},permanentlyClosedPost:function(){E("disconnected")}})}var n=this.Pusher,r={initialized:["waiting","failed"],waiting:["connecting","permanentlyClosed"],connecting:["open","permanentlyClosing","impermanentlyClosing","waiting"],open:["connected","permanentlyClosing","impermanentlyClosing","waiting"],connected:["permanentlyClosing","waiting"],impermanentlyClosing:["waiting","permanentlyClosing"],permanentlyClosing:["permanentlyClosed"],permanentlyClosed:["waiting","failed"],failed:["permanentlyClosed"]},i=2e3,s=2e3,o=2e3,u=5*i,a=5*s,f=5*o;t.prototype.connect=function(){!this._machine.is("failed")&&!n.Transport?this._machine.transition("failed"):this._machine.is("initialized")?(e(this),this._machine.transition("waiting")):this._machine.is("waiting")&&this.netInfo.isOnLine()===!0?this._machine.transition("connecting"):this._machine.is("permanentlyClosed")&&(e(this),this._machine.transition("waiting"))},t.prototype.send=function(e){if(this._machine.is("connected")){var t=this;return setTimeout(function(){t.socket.send(e)},0),!0}return!1},t.prototype.send_event=function(e,t,r){return e={event:e,data:t},r&&(e.channel=r),n.debug("Event sent",e),this.send(JSON.stringify(e))},t.prototype.disconnect=function(){this._machine.is("permanentlyClosed")||(this._machine.is("waiting")||this._machine.is("failed")?this._machine.transition("permanentlyClosed"):this._machine.transition("permanentlyClosing"))},n.Util.extend(t.prototype,n.EventsDispatcher.prototype),this.Pusher.Connection=t}.call(this),function(){Pusher.Channels=function(){this.channels={}},Pusher.Channels.prototype={add:function(e,t){var n=this.find(e);return n||(n=Pusher.Channel.factory(e,t),this.channels[e]=n),n},find:function(e){return this.channels[e]},remove:function(e){delete this.channels[e]},disconnect:function(){for(var e in this.channels)this.channels[e].disconnect()}},Pusher.Channel=function(e,t){var n=this;Pusher.EventsDispatcher.call(this,function(t){Pusher.debug("No callbacks on "+e+" for "+t)}),this.pusher=t,this.name=e,this.subscribed=!1,this.bind("pusher_internal:subscription_succeeded",function(e){n.onSubscriptionSucceeded(e)})},Pusher.Channel.prototype={init:function(){},disconnect:function(){this.subscribed=!1,this.emit("pusher_internal:disconnected")},onSubscriptionSucceeded:function(){this.subscribed=!0,this.emit("pusher:subscription_succeeded")},authorize:function(e,t,n){return n(!1,{})},trigger:function(e,t){return this.pusher.send_event(e,t,this.name)}},Pusher.Util.extend(Pusher.Channel.prototype,Pusher.EventsDispatcher.prototype),Pusher.Channel.PrivateChannel={authorize:function(e,t,n){var r=this;return(new Pusher.Channel.Authorizer(this,Pusher.channel_auth_transport,t)).authorize(e,function(e,t){e||r.emit("pusher_internal:authorized",t),n(e,t)})}},Pusher.Channel.PresenceChannel=
{init:function(){this.members=new e(this)},onSubscriptionSucceeded:function(){this.subscribed=!0}};var e=function(e){var t=this,n=function(){this._members_map={},this.count=0,this.me=null};n.call(this),e.bind("pusher_internal:authorized",function(n){var r=JSON.parse(n.channel_data);e.bind("pusher_internal:subscription_succeeded",function(n){t._members_map=n.presence.hash,t.count=n.presence.count,t.me=t.get(r.user_id),e.emit("pusher:subscription_succeeded",t)})}),e.bind("pusher_internal:member_added",function(n){t.get(n.user_id)===null&&t.count++,t._members_map[n.user_id]=n.user_info,e.emit("pusher:member_added",t.get(n.user_id))}),e.bind("pusher_internal:member_removed",function(n){var r=t.get(n.user_id);r&&(delete t._members_map[n.user_id],t.count--,e.emit("pusher:member_removed",r))}),e.bind("pusher_internal:disconnected",function(){n.call(t)})};e.prototype={each:function(e){for(var t in this._members_map)e(this.get(t))},get:function(e){return this._members_map.hasOwnProperty(e)?{id:e,info:this._members_map[e]}:null}},Pusher.Channel.factory=function(e,t){var n=new Pusher.Channel(e,t);return e.indexOf("private-")===0?Pusher.Util.extend(n,Pusher.Channel.PrivateChannel):e.indexOf("presence-")===0&&(Pusher.Util.extend(n,Pusher.Channel.PrivateChannel),Pusher.Util.extend(n,Pusher.Channel.PresenceChannel)),n.init(),n}}.call(this),function(){Pusher.Channel.Authorizer=function(e,t,n){this.channel=e,this.type=t,this.authOptions=(n||{}).auth||{}},Pusher.Channel.Authorizer.prototype={composeQuery:function(e){var e="&socket_id="+encodeURIComponent(e)+"&channel_name="+encodeURIComponent(this.channel.name),t;for(t in this.authOptions.params)e+="&"+encodeURIComponent(t)+"="+encodeURIComponent(this.authOptions.params[t]);return e},authorize:function(e,t){return Pusher.authorizers[this.type].call(this,e,t)}},Pusher.auth_callbacks={},Pusher.authorizers={ajax:function(e,t){var n;n=Pusher.XHR?new Pusher.XHR:window.XMLHttpRequest?new window.XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),n.open("POST",Pusher.channel_auth_endpoint,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded");for(var r in this.authOptions.headers)n.setRequestHeader(r,this.authOptions.headers[r]);return n.onreadystatechange=function(){if(n.readyState==4)if(n.status==200){var e,r=!1;try{e=JSON.parse(n.responseText),r=!0}catch(i){t(!0,"JSON returned from webapp was invalid, yet status code was 200. Data was: "+n.responseText)}r&&t(!1,e)}else Pusher.warn("Couldn't get auth info from your webapp",n.status),t(!0,n.status)},n.send(this.composeQuery(e)),n},jsonp:function(e,t){this.authOptions.headers!==void 0&&Pusher.warn("Warn","To send headers with the auth request, you must use AJAX, rather than JSONP.");var n=document.createElement("script");Pusher.auth_callbacks[this.channel.name]=function(e){t(!1,e)},n.src=Pusher.channel_auth_endpoint+"?callback="+encodeURIComponent("Pusher.auth_callbacks['"+this.channel.name+"']")+this.composeQuery(e);var r=document.getElementsByTagName("head")[0]||document.documentElement;r.insertBefore(n,r.firstChild)}}}.call(this);var _require=function(){function e(e,t){document.addEventListener?e.addEventListener("load",t,!1):e.attachEvent("onreadystatechange",function(){(e.readyState=="loaded"||e.readyState=="complete")&&t()})}function t(t,n){var r=document.getElementsByTagName("head")[0],i=document.createElement("script");i.setAttribute("src",t),i.setAttribute("type","text/javascript"),i.setAttribute("async",!0),e(i,function(){n()}),r.appendChild(i)}return function(e,n){for(var r=0,i=0;i<e.length;i++)t(e[i],function(){e.length==++r&&setTimeout(n,0)})}}();(function(){!window.WebSocket&&window.MozWebSocket&&(window.WebSocket=window.MozWebSocket),window.WebSocket&&(Pusher.Transport=window.WebSocket,Pusher.TransportType="native");var e=(document.location.protocol=="http:"?Pusher.cdn_http:Pusher.cdn_https)+Pusher.VERSION,t=[];window.JSON||t.push(e+"/json2"+Pusher.dependency_suffix+".js"),window.WebSocket||(window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION=!0,t.push(e+"/flashfallback"+Pusher.dependency_suffix+".js"));var n=function(){return window.WebSocket?function(){Pusher.ready()}:function(){window.WebSocket?(Pusher.Transport=window.WebSocket,Pusher.TransportType="flash",window.WEB_SOCKET_SWF_LOCATION=e+"/WebSocketMain.swf",WebSocket.__addTask(function(){Pusher.ready()}),WebSocket.__initialize()):(Pusher.Transport=null,Pusher.TransportType="none",Pusher.ready())}}(),r=function(e){var t=function(){document.body?e():setTimeout(t,0)};t()},i=function(){r(n)};t.length>0?_require(t,i):i()})(),minispade.register("app","(function() {(function() {\nminispade.require('auth');\nminispade.require('controllers');\nminispade.require('helpers');\nminispade.require('models');\nminispade.require('pusher');\nminispade.require('routes');\nminispade.require('slider');\nminispade.require('store');\nminispade.require('tailing');\nminispade.require('templates');\nminispade.require('views');\nminispade.require('config/locales');\nminispade.require('data/sponsors');\n\n Travis.reopen({\n App: Em.Application.extend({\n autoinit: false,\n currentUserBinding: 'auth.user',\n authStateBinding: 'auth.state',\n init: function() {\n this._super.apply(this, arguments);\n this.store = Travis.Store.create();\n this.store.loadMany(Travis.Sponsor, Travis.SPONSORS);\n this.slider = new Travis.Slider();\n this.pusher = new Travis.Pusher(Travis.config.pusher_key);\n this.tailing = new Travis.Tailing();\n return this.set('auth', Travis.Auth.create({\n app: this,\n endpoint: Travis.config.api_endpoint\n }));\n },\n storeAfterSignInPath: function(path) {\n return this.get('auth').storeAfterSignInPath(path);\n },\n autoSignIn: function(path) {\n return this.get('auth').autoSignIn(path);\n },\n signIn: function() {\n return this.get('auth').signIn();\n },\n signOut: function() {\n this.get('auth').signOut();\n return this.get('router').send('afterSignOut');\n },\n receive: function() {\n return this.store.receive.apply(this.store, arguments);\n },\n toggleSidebar: function() {\n var element;\n $('body').toggleClass('maximized');\n element = $('<span></span>');\n $('#top .profile').append(element);\n Em.run.later((function() {\n return element.remove();\n }), 10);\n element = $('<span></span>');\n $('#repo').append(element);\n return Em.run.later((function() {\n return element.remove();\n }), 10);\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=app"),minispade.register("auth",function(){(function(){this.Travis.Auth=Ember.Object.extend({iframe:$('<iframe id="auth-frame" />').hide(),timeout:1e4,state:"signed-out",receivingEnd:""+location.protocol+"//"+location.host,init:function(){var e=this;return this.iframe.appendTo("body"),window.addEventListener("message",function(t){return e.receiveMessage(t)})},accessToken:function(){return sessionStorage.getItem("travis.token")}.property(),autoSignIn:function(e){var t;if(t=sessionStorage.getItem("travis.user"))return this.setData({user:JSON.parse(t)});if(localStorage.getItem("travis.auto_signin"))return this.signIn()},signIn:function(){return this.set("state","signing-in"),this.trySignIn(),Ember.run.later(this,this.checkSignIn.bind(this),this.timeout)},signOut:function(){return localStorage.removeItem("travis.auto_signin"),localStorage.removeItem("travis.locale"),sessionStorage.clear(),this.setData()},trySignIn:function(){return this.iframe.attr("src",""+this.endpoint+"/auth/post_message?origin="+this.receivingEnd)},checkSignIn:function(){if(this.get("state")==="signing-in")return this.forceSignIn()},forceSignIn:function(){return localStorage.setItem("travis.auto_signin","true"),window.location=""+this.endpoint+"/auth/handshake?redirect_uri="+location},setData:function(e){var t;typeof e=="string"&&(e=JSON.parse(e)),(e!=null?e.token:void 0)&&this.storeToken(e.token);if(e!=null?e.user:void 0)t=this.storeUser(e.user);return this.set("state",t?"signed-in":"signed-out"),this.set("user",t?t:void 0),this.afterSignIn()},afterSignIn:function(){return this.get("app.router").send("afterSignIn",this.readAfterSignInPath())},storeToken:function(e){return sessionStorage.setItem("travis.token",e),this.notifyPropertyChange("accessToken")},storeUser:function(e){return localStorage.setItem("travis.auto_signin","true"),sessionStorage.setItem("travis.user",JSON.stringify(e)),this.app.store.load(Travis.User,e),e=this.app.store.find(Travis.User,e.id),e.get("permissions"),e},storeAfterSignInPath:function(e){return sessionStorage.setItem("travis.after_signin_path",e)},readAfterSignInPath:function(){var e;return e=sessionStorage.getItem("travis.after_signin_path"),sessionStorage.removeItem("travis.after_signin_path"),e},receiveMessage:function(e){return e.origin===this.expectedOrigin()?(e.data.token&&(e.data.user.token=e.data.token),this.setData(e.data),console.log("signed in as "+e.data.user.login)):console.log("unexpected message "+e.origin+": "+e.data)},expectedOrigin:function(){return this.endpoint[0]==="/"?this.receivingEnd:this.endpoint}})}).call(this)}),minispade.register("controllers","(function() {(function() {\nminispade.require('helpers');\nminispade.require('travis/ticker');\n\n Travis.reopen({\n Controller: Em.Controller.extend(),\n TopController: Em.Controller.extend({\n userBinding: 'Travis.app.currentUser'\n }),\n ApplicationController: Em.Controller.extend(),\n MainController: Em.Controller.extend(),\n StatsLayoutController: Em.Controller.extend(),\n ProfileLayoutController: Em.Controller.extend(),\n AuthLayoutController: Em.Controller.extend()\n });\nminispade.require('controllers/accounts');\nminispade.require('controllers/builds');\nminispade.require('controllers/flash');\nminispade.require('controllers/home');\nminispade.require('controllers/profile');\nminispade.require('controllers/repos');\nminispade.require('controllers/repo');\nminispade.require('controllers/sidebar');\nminispade.require('controllers/stats');\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers"),minispade.register("controllers/accounts","(function() {(function() {\n\n Travis.AccountsController = Ember.ArrayController.extend({\n tab: 'accounts',\n init: function() {\n return this._super();\n },\n findByLogin: function(login) {\n return this.find(function(account) {\n return account.get('login') === login;\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/accounts"),minispade.register("controllers/builds","(function() {(function() {\n\n Travis.BuildsController = Em.ArrayController.extend({\n repo: 'parent.repo',\n contentBinding: 'parent.builds'\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/builds"),minispade.register("controllers/flash","(function() {(function() {\n\n Travis.FlashController = Ember.ArrayController.extend({\n broadcastBinding: 'Travis.app.currentUser.broadcasts',\n init: function() {\n this.set('flashes', Ember.A());\n return this._super.apply(this, arguments);\n },\n content: (function() {\n return this.get('unseenBroadcasts').concat(this.get('flashes'));\n }).property('unseenBroadcasts.length', 'flashes.length'),\n unseenBroadcasts: (function() {\n return this.get('broadcasts').filterProperty('isSeen', false);\n }).property('broadcasts.isLoaded', 'broadcasts.length'),\n broadcasts: (function() {\n if (Travis.app.get('currentUser')) {\n return Travis.Broadcast.find();\n } else {\n return Ember.A();\n }\n }).property('Travis.app.currentUser'),\n loadFlashes: function(msgs) {\n var msg, type, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = msgs.length; _i < _len; _i++) {\n msg = msgs[_i];\n type = Ember.keys(msg)[0];\n msg = {\n type: type,\n message: msg[type]\n };\n this.get('flashes').pushObject(msg);\n _results.push(Ember.run.later(this, (function() {\n return this.get('flashes').removeObject(msg);\n }), 15000));\n }\n return _results;\n },\n close: function(msg) {\n if (msg instanceof Travis.Broadcast) {\n msg.setSeen();\n return this.notifyPropertyChange('unseenBroadcasts');\n } else {\n return this.get('flashes').removeObject(msg);\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/flash"),minispade.register("controllers/home","(function() {(function() {\n\n Travis.HomeLayoutController = Travis.Controller.extend();\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/home"),minispade.register("controllers/profile","(function() {(function() {\n\n Travis.ProfileController = Travis.Controller.extend({\n name: 'profile',\n userBinding: 'Travis.app.currentUser',\n accountsBinding: 'Travis.app.router.accountsController',\n account: (function() {\n var account, login;\n login = this.get('params.login') || Travis.app.get('currentUser.login');\n account = this.get('accounts').filter(function(account) {\n if (account.get('login') === login) {\n return account;\n }\n })[0];\n if (account) {\n account.select();\n }\n return account;\n }).property('accounts.length', 'params.login'),\n activate: function(action, params) {\n this.setParams(params || this.get('params'));\n return this[\"view\" + ($.camelize(action))]();\n },\n viewHooks: function() {\n this.connectTab('hooks');\n return this.set('hooks', Travis.Hook.find({\n owner_name: this.get('params.login') || Travis.app.get('currentUser.login')\n }));\n },\n viewUser: function() {\n return this.connectTab('user');\n },\n connectTab: function(tab) {\n var viewClass;\n viewClass = Travis[\"\" + ($.camelize(tab)) + \"View\"];\n this.set('tab', tab);\n return this.connectOutlet({\n outletName: 'pane',\n controller: this,\n viewClass: viewClass\n });\n },\n setParams: function(params) {\n var key, value, _results;\n this.set('params', {});\n _results = [];\n for (key in params) {\n value = params[key];\n _results.push(this.set(\"params.\" + key, params[key]));\n }\n return _results;\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/profile"),minispade.register("controllers/repo","(function() {(function() {\n\n Travis.RepoController = Travis.Controller.extend({\n bindings: [],\n init: function() {\n this._super.apply(this, arguments);\n return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n },\n updateTimes: function() {\n var build, builds, jobs;\n if (builds = this.get('builds')) {\n builds.forEach(function(b) {\n return b.updateTimes();\n });\n }\n if (build = this.get('build')) {\n build.updateTimes();\n }\n if (build && (jobs = build.get('jobs'))) {\n jobs.forEach(function(j) {\n return j.updateTimes();\n });\n }\n return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n },\n activate: function(action) {\n this._unbind();\n return this[\"view\" + ($.camelize(action))]();\n },\n viewIndex: function() {\n this._bind('repo', 'controllers.reposController.firstObject');\n this._bind('build', 'repo.lastBuild');\n return this.connectTab('current');\n },\n viewCurrent: function() {\n this.connectTab('current');\n return this._bind('build', 'repo.lastBuild');\n },\n viewBuilds: function() {\n this.connectTab('builds');\n return this._bind('builds', 'repo.builds');\n },\n viewPullRequests: function() {\n this.connectTab('pull_requests');\n return this._bind('builds', 'repo.pullRequests');\n },\n viewBranches: function() {\n this.connectTab('branches');\n return this._bind('builds', 'repo.branches');\n },\n viewEvents: function() {\n this.connectTab('events');\n return this._bind('events', 'repo.events');\n },\n viewBuild: function() {\n return this.connectTab('build');\n },\n viewJob: function() {\n this._bind('build', 'job.build');\n return this.connectTab('job');\n },\n repoObserver: (function() {\n var repo;\n repo = this.get('repo');\n if (repo) {\n return repo.select();\n }\n }).observes('repo.id'),\n connectTab: function(tab) {\n var name, viewClass;\n name = tab === 'current' ? 'build' : tab;\n viewClass = name === 'builds' || name === 'branches' || name === 'pull_requests' ? Travis.BuildsView : Travis[\"\" + ($.camelize(name)) + \"View\"];\n this.set('tab', tab);\n return this.connectOutlet({\n outletName: 'pane',\n controller: this,\n viewClass: viewClass\n });\n },\n _bind: function(to, from) {\n return this.bindings.push(Ember.oneWay(this, to, from));\n },\n _unbind: function() {\n var binding, _i, _len, _ref;\n _ref = this.bindings;\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n binding = _ref[_i];\n binding.disconnect(this);\n }\n return this.bindings.length = 0;\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/repo"),minispade.register("controllers/repos","(function() {(function() {\nminispade.require('travis/limited_array');\n\n Travis.ReposController = Ember.ArrayController.extend({\n defaultTab: 'recent',\n sortProperties: ['sortOrder'],\n init: function() {\n this.activate(this.defaultTab);\n return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n },\n updateTimes: function() {\n var content;\n if (content = this.get('content')) {\n content.forEach(function(r) {\n return r.updateTimes();\n });\n }\n return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n },\n activate: function(tab, params) {\n this.set('tab', tab);\n return this[\"view\" + ($.camelize(tab))](params);\n },\n viewRecent: function() {\n var content;\n content = Travis.LimitedArray.create({\n content: Travis.Repo.find(),\n limit: 30\n });\n return this.set('content', content);\n },\n viewOwned: function() {\n return this.set('content', Travis.Repo.accessibleBy(Travis.app.get('currentUser.login')));\n },\n viewSearch: function(params) {\n return this.set('content', Travis.Repo.search(params.search));\n },\n searchObserver: (function() {\n var search;\n search = this.get('search');\n if (search) {\n return this.searchFor(search);\n } else {\n this.activate('recent');\n return 'recent';\n }\n }).observes('search'),\n searchFor: function(phrase) {\n if (this.searchLater) {\n Ember.run.cancel(this.searchLater);\n }\n return this.searchLater = Ember.run.later(this, (function() {\n return this.activate('search', {\n search: phrase\n });\n }), 500);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/repos"),minispade.register("controllers/sidebar","(function() {(function() {\n\n Travis.reopen({\n SidebarController: Em.ArrayController.extend({\n init: function() {\n this.tickables = [];\n return Travis.Ticker.create({\n target: this,\n interval: Travis.INTERVALS.sponsors\n });\n },\n tick: function() {\n var tickable, _i, _len, _ref, _results;\n _ref = this.tickables;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n tickable = _ref[_i];\n _results.push(tickable.tick());\n }\n return _results;\n }\n }),\n QueuesController: Em.ArrayController.extend(),\n WorkersController: Em.ArrayController.extend({\n groups: (function() {\n var content, groups, host, worker, _i, _len, _ref;\n if (content = this.get('arrangedContent')) {\n groups = {};\n _ref = content.toArray();\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n worker = _ref[_i];\n host = worker.get('host');\n if (!groups[host]) {\n groups[host] = Em.ArrayProxy.create(Em.SortableMixin, {\n content: [],\n sortProperties: ['nameForSort']\n });\n }\n groups[host].addObject(worker);\n }\n return $.values(groups);\n }\n }).property('length')\n }),\n SponsorsController: Em.ArrayController.extend({\n page: 0,\n arrangedContent: (function() {\n return this.get('shuffled').slice(this.start(), this.end());\n }).property('shuffled.length', 'page'),\n shuffled: (function() {\n var content;\n if (content = this.get('content')) {\n return $.shuffle(content);\n } else {\n return [];\n }\n }).property('content.length'),\n tick: function() {\n return this.set('page', this.isLast() ? 0 : this.get('page') + 1);\n },\n pages: (function() {\n var length;\n length = this.get('content.length');\n if (length) {\n return parseInt(length / this.get('perPage') + 1);\n } else {\n return 1;\n }\n }).property('length'),\n isLast: function() {\n return this.get('page') === this.get('pages') - 1;\n },\n start: function() {\n return this.get('page') * this.get('perPage');\n },\n end: function() {\n return this.start() + this.get('perPage');\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/sidebar"),minispade.register("controllers/stats","(function() {(function() {\n\n Travis.StatsController = Travis.Controller.extend({\n name: 'stats',\n init: function() {\n return this._super('top');\n },\n activate: function(action, params) {}\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/stats"),minispade.register("helpers","(function() {(function() {\nminispade.require('helpers/handlebars');\nminispade.require('helpers/helpers');\nminispade.require('helpers/urls');\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers"),minispade.register("helpers/handlebars","(function() {(function() {\n var safe;\nminispade.require('ext/ember/bound_helper');\n\n safe = function(string) {\n return new Handlebars.SafeString(string);\n };\n\n Handlebars.registerHelper('tipsy', function(text, tip) {\n return safe('<span class=\"tool-tip\" original-title=\"' + tip + '\">' + text + '</span>');\n });\n\n Handlebars.registerHelper('t', function(key) {\n return safe(I18n.t(key));\n });\n\n Ember.registerBoundHelper('formatTime', function(value, options) {\n return safe(Travis.Helpers.timeAgoInWords(value) || '-');\n });\n\n Ember.registerBoundHelper('formatDuration', function(duration, options) {\n return safe(Travis.Helpers.timeInWords(duration));\n });\n\n Ember.registerBoundHelper('formatCommit', function(commit, options) {\n if (commit) {\n return safe(Travis.Helpers.formatCommit(commit.get('sha'), commit.get('branch')));\n }\n });\n\n Ember.registerBoundHelper('formatSha', function(sha, options) {\n return safe(Travis.Helpers.formatSha(sha));\n });\n\n Ember.registerBoundHelper('pathFrom', function(url, options) {\n return safe(Travis.Helpers.pathFrom(url));\n });\n\n Ember.registerBoundHelper('formatMessage', function(message, options) {\n return safe(Travis.Helpers.formatMessage(message, options));\n });\n\n Ember.registerBoundHelper('formatConfig', function(config, options) {\n return safe(Travis.Helpers.formatConfig(config));\n });\n\n Ember.registerBoundHelper('formatLog', function(log, options) {\n var item, parentView, repo;\n parentView = this.get('parentView');\n repo = parentView.get(options.repo);\n item = parentView.get(options.item);\n return Travis.Helpers.formatLog(log, repo, item) || '';\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/handlebars"),minispade.register("helpers/helpers","(function() {(function() {\nminispade.require('travis/log');\nminispade.require('config/emoij');\n\n this.Travis.Helpers = {\n compact: function(object) {\n var key, result, value, _ref;\n result = {};\n _ref = object || {};\n for (key in _ref) {\n value = _ref[key];\n if (!$.isEmpty(value)) {\n result[key] = value;\n }\n }\n return result;\n },\n safe: function(string) {\n return new Handlebars.SafeString(string);\n },\n colorForResult: function(result) {\n if (result === 0) {\n return 'green';\n } else {\n if (result === 1) {\n return 'red';\n } else {\n return null;\n }\n }\n },\n formatCommit: function(sha, branch) {\n return Travis.Helpers.formatSha(sha) + (branch ? \" (\" + branch + \")\" : '');\n },\n formatSha: function(sha) {\n return (sha || '').substr(0, 7);\n },\n formatConfig: function(config) {\n var values;\n config = $.only(config, 'rvm', 'gemfile', 'env', 'otp_release', 'php', 'node_js', 'scala', 'jdk', 'python', 'perl');\n values = $.map(config, function(value, key) {\n value = (value && value.join ? value.join(', ') : value) || '';\n return '%@: %@'.fmt($.camelize(key), value);\n });\n if (values.length === 0) {\n return '-';\n } else {\n return values.join(', ');\n }\n },\n formatMessage: function(message, options) {\n message = message || '';\n if (options.short) {\n message = message.split(/\\n/)[0];\n }\n return this._emojize(this._escape(message)).replace(/\\n/g, '<br/>');\n },\n formatLog: function(log, repo, item) {\n var event, url;\n event = item.constructor === Travis.Build ? 'showBuild' : 'showJob';\n url = Travis.app.get('router').urlForEvent(event, repo, item);\n return Travis.Log.filter(log, url);\n },\n pathFrom: function(url) {\n return (url || '').split('/').pop();\n },\n timeAgoInWords: function(date) {\n return $.timeago.distanceInWords(date);\n },\n durationFrom: function(started, finished) {\n started = started && this._toUtc(new Date(this._normalizeDateString(started)));\n finished = finished ? this._toUtc(new Date(this._normalizeDateString(finished))) : this._nowUtc();\n if (started && finished) {\n return Math.round((finished - started) / 1000);\n } else {\n return 0;\n }\n },\n timeInWords: function(duration) {\n var days, hours, minutes, result, seconds;\n days = Math.floor(duration / 86400);\n hours = Math.floor(duration % 86400 / 3600);\n minutes = Math.floor(duration % 3600 / 60);\n seconds = duration % 60;\n if (days > 0) {\n return 'more than 24 hrs';\n } else {\n result = [];\n if (hours === 1) {\n result.push(hours + ' hr');\n }\n if (hours > 1) {\n result.push(hours + ' hrs');\n }\n if (minutes > 0) {\n result.push(minutes + ' min');\n }\n if (seconds > 0) {\n result.push(seconds + ' sec');\n }\n if (result.length > 0) {\n return result.join(' ');\n } else {\n return '-';\n }\n }\n },\n _normalizeDateString: function(string) {\n if (window.JHW) {\n string = string.replace('T', ' ').replace(/-/g, '/');\n string = string.replace('Z', '').replace(/\\..*$/, '');\n }\n return string;\n },\n _nowUtc: function() {\n return this._toUtc(new Date());\n },\n _toUtc: function(date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n },\n _emojize: function(text) {\n var emojis;\n emojis = text.match(/:\\S+?:/g);\n if (emojis !== null) {\n $.each(emojis.uniq(), function(ix, emoji) {\n var image, strippedEmoji;\n strippedEmoji = emoji.substring(1, emoji.length - 1);\n if (EmojiDictionary.indexOf(strippedEmoji) !== -1) {\n image = '<img class=\\'emoji\\' title=\\'' + emoji + '\\' alt=\\'' + emoji + '\\' src=\\'' + '/images/emoji/' + strippedEmoji + '.png\\'/>';\n return text = text.replace(new RegExp(emoji, 'g'), image);\n }\n });\n }\n return text;\n },\n _escape: function(text) {\n return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n }\n };\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/helpers"),minispade.register("helpers/urls",'(function() {(function() {\n\n this.Travis.Urls = {\n repo: function(slug) {\n return "/" + slug;\n },\n builds: function(slug) {\n return "/" + slug + "/builds";\n },\n pullRequests: function(slug) {\n return "/" + slug + "/pull_requests";\n },\n branches: function(slug) {\n return "/" + slug + "/branches";\n },\n build: function(slug, id) {\n return "/" + slug + "/builds/" + id;\n },\n job: function(slug, id) {\n return "/" + slug + "/jobs/" + id;\n },\n githubCommit: function(slug, sha) {\n return "http://github.com/" + slug + "/commit/" + sha;\n },\n githubRepo: function(slug) {\n return "http://github.com/" + slug;\n },\n githubWatchers: function(slug) {\n return "http://github.com/" + slug + "/watchers";\n },\n githubNetwork: function(slug) {\n return "http://github.com/" + slug + "/network";\n },\n githubAdmin: function(slug) {\n return "http://github.com/" + slug + "/admin/hooks#travis_minibucket";\n },\n statusImage: function(slug, branch) {\n return ("https://secure.travis-ci.org/" + slug + ".png") + (branch ? "?branch=" + branch : \'\');\n },\n email: function(email) {\n return "mailto:" + email;\n },\n account: function(login) {\n return "/profile/" + login;\n },\n user: function(login) {\n return "/profile/" + login + "/me";\n }\n };\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/urls'),minispade.register("models","(function() {(function() {\nminispade.require('models/extensions');\nminispade.require('models/account');\nminispade.require('models/artifact');\nminispade.require('models/broadcast');\nminispade.require('models/branch');\nminispade.require('models/build');\nminispade.require('models/commit');\nminispade.require('models/event');\nminispade.require('models/hook');\nminispade.require('models/job');\nminispade.require('models/repo');\nminispade.require('models/sponsor');\nminispade.require('models/user');\nminispade.require('models/worker');\n\n}).call(this);\n\n})();\n//@ sourceURL=models"),minispade.register("models/account","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Account = Travis.Model.extend({\n primaryKey: 'login',\n login: DS.attr('string'),\n name: DS.attr('string'),\n type: DS.attr('string'),\n reposCount: DS.attr('number'),\n urlGithub: (function() {\n return \"http://github.com/\" + (this.get('login'));\n }).property()\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/account"),minispade.register("models/artifact","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Artifact = Travis.Model.extend({\n body: DS.attr('string'),\n init: function() {\n this._super.apply(this, arguments);\n this.set('queue', Ember.A([]));\n this.addObserver('body', this.fetchWorker);\n return this.fetchWorker();\n },\n append: function(body) {\n if (this.get('isLoaded')) {\n return this.set('body', this.get('body') + body);\n } else {\n return this.get('queue').pushObject(body);\n }\n },\n recordDidLoad: (function() {\n var queue;\n if (this.get('isLoaded')) {\n queue = this.get('queue');\n if (queue.get('length') > 0) {\n return this.append(queue.toArray().join(''));\n }\n }\n }).observes('isLoaded'),\n fetchWorker: function() {\n var body, line, match, worker;\n if (body = this.get('body')) {\n line = body.split(\"\\n\")[0];\n if (line && (match = line.match(/Using worker: (.*)/))) {\n if (worker = match[1]) {\n worker = worker.trim().split(':')[0];\n this.set('workerName', worker);\n return this.removeObserver('body', this.fetchWorker);\n }\n }\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/artifact"
),minispade.register("models/branch","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Branch = Travis.Model.extend(Travis.Helpers, {\n repoId: DS.attr('number', {\n key: 'repository_id'\n }),\n commitId: DS.attr('number'),\n number: DS.attr('number'),\n branch: DS.attr('string'),\n message: DS.attr('string'),\n result: DS.attr('number'),\n duration: DS.attr('number'),\n startedAt: DS.attr('string'),\n finishedAt: DS.attr('string'),\n commit: DS.belongsTo('Travis.Commit'),\n repo: (function() {\n if (this.get('repoId')) {\n return Travis.Repo.find(this.get('repoId'));\n }\n }).property('repoId'),\n updateTimes: function() {\n this.notifyPropertyChange('started_at');\n return this.notifyPropertyChange('finished_at');\n }\n });\n\n this.Travis.Branch.reopenClass({\n byRepoId: function(id) {\n return this.find({\n repository_id: id\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/branch"),minispade.register("models/broadcast","(function() {(function() {\n var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\nminispade.require('travis/model');\n\n this.Travis.Broadcast = Travis.Model.extend({\n message: DS.attr('string'),\n toObject: function() {\n return {\n type: 'broadcast',\n id: this.get('id'),\n message: this.get('message')\n };\n },\n isSeen: (function() {\n var _ref;\n return _ref = this.get('id'), __indexOf.call(Travis.Broadcast.seen, _ref) >= 0;\n }).property(),\n setSeen: function() {\n Travis.Broadcast.seen.pushObject(this.get('id'));\n localStorage.setItem('travis.seen_broadcasts', JSON.stringify(Travis.Broadcast.seen));\n return this.notifyPropertyChange('isSeen');\n }\n });\n\n this.Travis.Broadcast.reopenClass({\n seen: Ember.A(JSON.parse(localStorage.getItem('travis.seen_broadcasts')) || [])\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/broadcast"),minispade.register("models/build","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Build = Travis.Model.extend(Travis.DurationCalculations, {\n eventType: DS.attr('string'),\n repoId: DS.attr('number', {\n key: 'repository_id'\n }),\n commitId: DS.attr('number'),\n state: DS.attr('string'),\n number: DS.attr('number'),\n branch: DS.attr('string'),\n message: DS.attr('string'),\n result: DS.attr('number'),\n _duration: DS.attr('number', {\n key: 'duration'\n }),\n startedAt: DS.attr('string', {\n key: 'started_at'\n }),\n finishedAt: DS.attr('string', {\n key: 'finished_at'\n }),\n repo: DS.belongsTo('Travis.Repo', {\n key: 'repository_id'\n }),\n commit: DS.belongsTo('Travis.Commit'),\n jobs: DS.hasMany('Travis.Job', {\n key: 'job_ids'\n }),\n config: (function() {\n return Travis.Helpers.compact(this.get('data.config'));\n }).property('data.config'),\n isMatrix: (function() {\n return this.get('data.job_ids.length') > 1;\n }).property('data.job_ids.length'),\n isFinished: (function() {\n return this.get('state') === 'finished';\n }).property('state'),\n requiredJobs: (function() {\n return this.get('jobs').filter(function(data) {\n return !data.get('allowFailure');\n });\n }).property('jobs.@each.allowFailure'),\n allowedFailureJobs: (function() {\n return this.get('jobs').filter(function(data) {\n return data.get('allowFailure');\n });\n }).property('jobs.@each.allowFailure'),\n configKeys: (function() {\n var config, headers, key, keys;\n if (!(config = this.get('config'))) {\n return [];\n }\n keys = $.intersect($.keys(config), Travis.CONFIG_KEYS);\n headers = (function() {\n var _i, _len, _ref, _results;\n _ref = ['build.job', 'build.duration', 'build.finished_at'];\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n key = _ref[_i];\n _results.push(I18n.t(key));\n }\n return _results;\n })();\n return $.map(headers.concat(keys), function(key) {\n return $.camelize(key);\n });\n }).property('config'),\n requeue: (function() {\n return Travis.ajax.post('/requests', {\n build_id: this.get('id')\n });\n })\n });\n\n this.Travis.Build.reopenClass({\n byRepoId: function(id, parameters) {\n return this.find($.extend(parameters || {}, {\n repository_id: id\n }));\n },\n olderThanNumber: function(id, build_number) {\n return this.find({\n url: \"/builds\",\n repository_id: id,\n after_number: build_number\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/build"),minispade.register("models/commit","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Commit = Travis.Model.extend({\n buildId: DS.attr('number'),\n sha: DS.attr('string'),\n branch: DS.attr('string'),\n message: DS.attr('string'),\n compareUrl: DS.attr('string'),\n authorName: DS.attr('string'),\n authorEmail: DS.attr('string'),\n committerName: DS.attr('string'),\n committerEmail: DS.attr('string'),\n build: DS.belongsTo('Travis.Build', {\n key: 'buildId'\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/commit"),minispade.register("models/event","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Event = Travis.Model.extend({\n event: DS.attr('string'),\n repoId: DS.attr('number', {\n key: 'repository_id'\n }),\n sourceId: DS.attr('number', {\n key: 'source_id'\n }),\n sourceType: DS.attr('string', {\n key: 'source_type'\n }),\n createdAt: DS.attr('string', {\n key: 'created_at'\n }),\n event_: (function() {\n return this.get('event');\n }).property('event'),\n result: (function() {\n return this.get('data.data.result');\n }).property('data.data.result'),\n message: (function() {\n return this.get('data.data.message');\n }).property('data.data.message'),\n source: (function() {\n var type;\n if (type = this.get('sourceType')) {\n return Travis[type].find(this.get('sourceId'));\n }\n }).property('sourceType', 'sourceId')\n });\n\n this.Travis.Event.reopenClass({\n byRepoId: function(id) {\n return this.find({\n repository_id: id\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/event"),minispade.register("models/extensions","(function() {(function() {\n\n Travis.DurationCalculations = Ember.Mixin.create({\n duration: (function() {\n var duration;\n if (duration = this.get('_duration')) {\n return duration;\n } else {\n return Travis.Helpers.durationFrom(this.get('startedAt'), this.get('finishedAt'));\n }\n }).property('_duration', 'finishedAt', 'startedAt'),\n updateTimes: function() {\n this.notifyPropertyChange('_duration');\n return this.notifyPropertyChange('finished_at');\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/extensions"),minispade.register("models/hook","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Hook = Travis.Model.extend({\n name: DS.attr('string'),\n ownerName: DS.attr('string'),\n description: DS.attr('string'),\n active: DS.attr('boolean'),\n account: (function() {\n return this.get('slug').split('/')[0];\n }).property('slug'),\n slug: (function() {\n return \"\" + (this.get('ownerName')) + \"/\" + (this.get('name'));\n }).property('ownerName', 'name'),\n urlGithub: (function() {\n return \"http://github.com/\" + (this.get('slug'));\n }).property(),\n urlGithubAdmin: (function() {\n return \"http://github.com/\" + (this.get('slug')) + \"/admin/hooks#travis_minibucket\";\n }).property(),\n toggle: function() {\n var transaction;\n transaction = this.get('store').transaction();\n transaction.add(this);\n this.set('active', !this.get('active'));\n return transaction.commit();\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/hook"),minispade.register("models/job","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Job = Travis.Model.extend(Travis.DurationCalculations, {\n repoId: DS.attr('number', {\n key: 'repository_id'\n }),\n buildId: DS.attr('number'),\n commitId: DS.attr('number'),\n logId: DS.attr('number'),\n queue: DS.attr('string'),\n state: DS.attr('string'),\n number: DS.attr('string'),\n result: DS.attr('number'),\n _duration: DS.attr('number', {\n key: 'duration'\n }),\n startedAt: DS.attr('string'),\n finishedAt: DS.attr('string'),\n allowFailure: DS.attr('boolean', {\n key: 'allow_failure'\n }),\n repo: DS.belongsTo('Travis.Repo', {\n key: 'repository_id'\n }),\n build: DS.belongsTo('Travis.Build', {\n key: 'build_id'\n }),\n commit: DS.belongsTo('Travis.Commit', {\n key: 'commit_id'\n }),\n log: DS.belongsTo('Travis.Artifact', {\n key: 'log_id'\n }),\n config: (function() {\n return Travis.Helpers.compact(this.get('data.config'));\n }).property('data.config'),\n sponsor: (function() {\n var worker;\n worker = this.get('log.workerName');\n if (worker && worker.length) {\n return Travis.WORKERS[worker] || {\n name: \"Travis Pro\",\n url: \"http://travis-ci.com\"\n };\n }\n }).property('log.workerName'),\n configValues: (function() {\n var buildConfig, config, keys;\n config = this.get('config');\n buildConfig = this.get('build.config');\n if (config && buildConfig) {\n keys = $.intersect($.keys(buildConfig), Travis.CONFIG_KEYS);\n return keys.map(function(key) {\n return config[key];\n });\n } else {\n return [];\n }\n }).property('config'),\n appendLog: function(text) {\n var log;\n if (log = this.get('log')) {\n return log.append(text);\n }\n },\n subscribe: function() {\n var id;\n if (id = this.get('id')) {\n return Travis.app.pusher.subscribe(\"job-\" + id);\n }\n },\n onStateChange: (function() {\n if (this.get('state') === 'finished') {\n return Travis.app.pusher.unsubscribe(\"job-\" + (this.get('id')));\n }\n }).observes('state')\n });\n\n this.Travis.Job.reopenClass({\n queued: function(queue) {\n this.find();\n return Travis.app.store.filter(this, function(job) {\n var queued;\n queued = ['created', 'queued'].indexOf(job.get('state')) !== -1;\n return queued && (!queue || job.get('queue') === (\"builds.\" + queue));\n });\n },\n findMany: function(ids) {\n return Travis.app.store.findMany(this, ids);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/job"),minispade.register("models/repo","(function() {(function() {\nminispade.require('travis/expandable_record_array');\nminispade.require('travis/model');\n\n this.Travis.Repo = Travis.Model.extend({\n slug: DS.attr('string'),\n description: DS.attr('string'),\n lastBuildId: DS.attr('number'),\n lastBuildNumber: DS.attr('string'),\n lastBuildResult: DS.attr('number'),\n lastBuildStartedAt: DS.attr('string'),\n lastBuildFinishedAt: DS.attr('string'),\n lastBuild: DS.belongsTo('Travis.Build'),\n builds: (function() {\n var array, builds, id;\n id = this.get('id');\n builds = Travis.Build.byRepoId(id, {\n event_type: 'push'\n });\n array = Travis.ExpandableRecordArray.create({\n type: Travis.Build,\n content: Ember.A([]),\n store: this.get('store')\n });\n array.load(builds);\n return array;\n }).property(),\n pullRequests: (function() {\n var array, builds, id;\n id = this.get('id');\n builds = Travis.Build.byRepoId(id, {\n event_type: 'pull_request'\n });\n array = Travis.ExpandableRecordArray.create({\n type: Travis.Build,\n content: Ember.A([]),\n store: this.get('store')\n });\n array.load(builds);\n return array;\n }).property(),\n branches: (function() {\n return Travis.Branch.byRepoId(this.get('id'));\n }).property(),\n events: (function() {\n return Travis.Event.byRepoId(this.get('id'));\n }).property(),\n owner: (function() {\n return (this.get('slug') || '').split('/')[0];\n }).property('slug'),\n name: (function() {\n return (this.get('slug') || '').split('/')[1];\n }).property('slug'),\n lastBuildDuration: (function() {\n var duration;\n duration = this.get('data.last_build_duration');\n if (!duration) {\n duration = Travis.Helpers.durationFrom(this.get('lastBuildStartedAt'), this.get('lastBuildFinishedAt'));\n }\n return duration;\n }).property('data.last_build_duration', 'lastBuildStartedAt', 'lastBuildFinishedAt'),\n sortOrder: (function() {\n var lastBuildFinishedAt;\n if (lastBuildFinishedAt = this.get('lastBuildFinishedAt')) {\n return -new Date(lastBuildFinishedAt).getTime();\n } else {\n return -new Date('9999').getTime() - parseInt(this.get('lastBuildId'));\n }\n }).property('lastBuildFinishedAt', 'lastBuildId'),\n stats: (function() {\n var _this = this;\n return this.get('_stats') || $.get(\"https://api.github.com/repos/\" + (this.get('slug')), function(data) {\n _this.set('_stats', data);\n return _this.notifyPropertyChange('stats');\n }) && {};\n }).property(),\n updateTimes: function() {\n return this.notifyPropertyChange('lastBuildDuration');\n }\n });\n\n this.Travis.Repo.reopenClass({\n recent: function() {\n return this.find();\n },\n ownedBy: function(login) {\n return this.find({\n owner_name: login,\n orderBy: 'name'\n });\n },\n accessibleBy: function(login) {\n return this.find({\n member: login,\n orderBy: 'name'\n });\n },\n search: function(query) {\n return this.find({\n search: query,\n orderBy: 'name'\n });\n },\n bySlug: function(slug) {\n var repo;\n repo = $.select(this.find().toArray(), function(repo) {\n return repo.get('slug') === slug;\n });\n if (repo.length > 0) {\n return repo;\n } else {\n return this.find({\n slug: slug\n });\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/repo"),minispade.register("models/sponsor","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Sponsor = Travis.Model.extend({\n type: DS.attr('string'),\n url: DS.attr('string'),\n link: DS.attr('string'),\n image: (function() {\n return \"/images/sponsors/\" + (this.get('data.image'));\n }).property('data.image')\n });\n\n Travis.Sponsor.reopenClass({\n decks: function() {\n return this.platinum().concat(this.gold());\n },\n platinum: function() {\n var platinum, sponsor, _i, _len, _results;\n platinum = this.byType('platinum').toArray();\n _results = [];\n for (_i = 0, _len = platinum.length; _i < _len; _i++) {\n sponsor = platinum[_i];\n _results.push([sponsor]);\n }\n return _results;\n },\n gold: function() {\n var gold, _results;\n gold = this.byType('gold').toArray();\n _results = [];\n while (gold.length > 0) {\n _results.push(gold.splice(0, 2));\n }\n return _results;\n },\n links: function() {\n return this.byType('silver');\n },\n byType: function() {\n var types;\n types = Array.prototype.slice.apply(arguments);\n return Travis.Sponsor.filter(function(sponsor) {\n return types.indexOf(sponsor.get('type')) !== -1;\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/sponsor"),minispade.register("models/user","(function() {(function() {\nminispade.require('travis/ajax');\nminispade.require('travis/model');\n\n this.Travis.User = Travis.Model.extend({\n name: DS.attr('string'),\n email: DS.attr('string'),\n login: DS.attr('string'),\n token: DS.attr('string'),\n locale: DS.attr('string'),\n gravatarId: DS.attr('string'),\n isSyncing: DS.attr('boolean'),\n syncedAt: DS.attr('string'),\n repoCount: DS.attr('number'),\n init: function() {\n if (this.get('isSyncing')) {\n this.poll();\n }\n this._super();\n return Ember.run.next(this, function() {\n var transaction;\n transaction = this.get('store').transaction();\n return transaction.add(this);\n });\n },\n urlGithub: (function() {\n return \"https://github.com/\" + (this.get('login'));\n }).property(),\n permissions: (function() {\n var _this = this;\n if (!this.permissions) {\n this.permissions = Ember.ArrayProxy.create({\n content: []\n });\n Travis.ajax.get('/users/permissions', function(data) {\n return _this.permissions.set('content', data.permissions);\n });\n }\n return this.permissions;\n }).property(),\n updateLocale: function(locale) {\n var observer, self, transaction;\n this.setWithSession('locale', locale);\n transaction = this.get('transaction');\n transaction.commit();\n self = this;\n observer = function() {\n if (!self.get('isSaving')) {\n self.removeObserver('isSaving', observer);\n transaction = self.get('store').transaction();\n return transaction.add(self);\n }\n };\n return this.addObserver('isSaving', observer);\n },\n type: (function() {\n return 'user';\n }).property(),\n sync: function() {\n Travis.ajax.post('/users/sync');\n this.setWithSession('isSyncing', true);\n return this.poll();\n },\n poll: function() {\n var _this = this;\n return Travis.ajax.get('/users', function(data) {\n if (data.user.is_syncing) {\n return Ember.run.later(_this, _this.poll.bind(_this), 3000);\n } else {\n _this.set('isSyncing', false);\n return _this.setWithSession('syncedAt', data.user.synced_at);\n }\n });\n },\n setWithSession: function(name, value) {\n var user;\n this.set(name, value);\n user = JSON.parse(typeof sessionStorage !== \"undefined\" && sessionStorage !== null ? sessionStorage.getItem('travis.user') : void 0);\n user[$.underscore(name)] = this.get(name);\n return typeof sessionStorage !== \"undefined\" && sessionStorage !== null ? sessionStorage.setItem('travis.user', JSON.stringify(user)) : void 0;\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/user"),minispade.register("models/worker","(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Worker = Travis.Model.extend({\n state: DS.attr('string'),\n name: DS.attr('string'),\n host: DS.attr('string'),\n lastSeenAt: DS.attr('string'),\n payload: (function() {\n return this.get('data.payload');\n }).property('data.payload'),\n number: (function() {\n return this.get('name').match(/\\d+$/)[0];\n }).property('name'),\n isWorking: (function() {\n return this.get('state') === 'working';\n }).property('state'),\n repo: (function() {\n return Travis.Repo.find(this.get('payload.repository.id') || this.get('payload.repo.id'));\n }).property('payload.repository.id', 'payload.repo.id'),\n job_id: (function() {\n return this.get('payload.job.id');\n }).property('payload.job.id'),\n job: (function() {\n return Travis.Job.find(this.get('job_id'));\n }).property('job_id'),\n nameForSort: (function() {\n var id, match, name;\n if (name = this.get('name')) {\n match = name.match(/(.*?)-(\\d+)/);\n if (match) {\n name = match[1];\n id = match[2].toString();\n if (id.length < 2) {\n id = \"00\" + id;\n } else if (id.length < 3) {\n id = \"0\" + id;\n }\n return \"\" + name + \"-\" + id;\n }\n }\n }).property('name')\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/worker"),minispade.register("pusher","(function() {(function() {\n\n Travis.Pusher = function(key) {\n if (key) {\n this.init(key);\n }\n return this;\n };\n\n $.extend(Travis.Pusher, {\n CHANNELS: ['common'],\n CHANNEL_PREFIX: ''\n });\n\n $.extend(Travis.Pusher.prototype, {\n active_channels: [],\n init: function(key) {\n var channel, _i, _len, _ref, _results;\n Pusher.warn = this.warn.bind(this);\n this.pusher = new Pusher(key);\n _ref = Travis.Pusher.CHANNELS;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n channel = _ref[_i];\n _results.push(this.subscribe(channel));\n }\n return _results;\n },\n subscribe: function(channel) {\n var _this = this;\n if (this.pusher && this.active_channels.indexOf(channel) === -1) {\n this.active_channels.push(channel);\n return this.pusher.subscribe(this.prefix(channel)).bind_all(function(event, data) {\n return _this.receive(event, data);\n });\n }\n },\n unsubscribe: function(channel) {\n var ix;\n ix = this.active_channels.indexOf(channel);\n if (this.pusher && ix === -1) {\n this.active_channels.splice(ix, 1);\n return this.pusher.unsubscribe(this.prefix(channel));\n }\n },\n prefix: function(channel) {\n return \"\" + Travis.Pusher.CHANNEL_PREFIX + channel;\n },\n receive: function(event, data) {\n if (event.substr(0, 6) === 'pusher') {\n return;\n }\n if (data.id) {\n data = this.normalize(event, data);\n }\n return Ember.run.next(function() {\n return Travis.app.store.receive(event, data);\n });\n },\n normalize: function(event, data) {\n switch (event) {\n case 'build:started':\n case 'build:finished':\n return data;\n case 'job:created':\n case 'job:started':\n case 'job:finished':\n case 'job:log':\n if (data.queue) {\n data.queue = data.queue.replace('builds.', '');\n }\n return {\n job: data\n };\n case 'worker:added':\n case 'worker:updated':\n case 'worker:removed':\n return {\n worker: data\n };\n }\n },\n warn: function(type, warning) {\n if (!this.ignoreWarning(warning)) {\n return console.warn(warning);\n }\n },\n ignoreWarning: function(warning) {\n var message, _ref;\n if (message = (_ref = warning.data) != null ? _ref.message : void 0) {\n return message.indexOf('Existing subscription') === 0 || message.indexOf('No current subscription') === 0;\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=pusher"),minispade.register("routes","(function() {(function() {\n var defaultRoute, lineNumberRoute;\nminispade.require('travis/location');\n\n defaultRoute = Ember.Route.extend({\n route: '/',\n index: 1000\n });\n\n lineNumberRoute = Ember.Route.extend({\n route: '#L:number',\n index: 1,\n connectOutlets: function(router) {\n return router.saveLineNumberHash();\n },\n dynamicSegmentPattern: \"([0-9]+)\"\n });\n\n Travis.Router = Ember.Router.extend({\n location: 'travis',\n enableLogging: true,\n initialState: 'loading',\n showRoot: Ember.Route.transitionTo('root.home.show'),\n showStats: Ember.Route.transitionTo('root.stats'),\n showRepo: Ember.Route.transitionTo('root.home.repo.show'),\n showBuilds: Ember.Route.transitionTo('root.home.repo.builds.index'),\n showBuild: Ember.Route.transitionTo('root.home.repo.builds.show'),\n showPullRequests: Ember.Route.transitionTo('root.home.repo.pullRequests'),\n showBranches: Ember.Route.transitionTo('root.home.repo.branches'),\n showEvents: Ember.Route.transitionTo('root.home.repo.events'),\n showJob: Ember.Route.transitionTo('root.home.repo.job'),\n showProfile: Ember.Route.transitionTo('root.profile'),\n showAccount: Ember.Route.transitionTo('root.profile.account'),\n showUserProfile: Ember.Route.transitionTo('root.profile.account.profile'),\n saveLineNumberHash: function(path) {\n return Ember.run.next(this, function() {\n var match;\n path = path || this.get('location').getURL();\n if (match = path.match(/#L\\d+$/)) {\n return this.set('repoController.lineNumberHash', match[0]);\n }\n });\n },\n reload: function() {\n var url;\n console.log('Triggering reload');\n url = this.get('location').getURL();\n this.transitionTo('loading');\n return Ember.run.next(this, function() {\n return this.route(url);\n });\n },\n signedIn: function() {\n return !!Travis.app.get('auth.user');\n },\n needsAuth: function(path) {\n return path.indexOf('/profile') === 0;\n },\n afterSignOut: function() {\n return this.authorize('/');\n },\n loading: Ember.Route.extend({\n routePath: function(router, path) {\n router.saveLineNumberHash(path);\n router.authorize(path);\n if (!router.signedIn()) {\n return Travis.app.autoSignIn();\n }\n }\n }),\n authorize: function(path) {\n if (!this.signedIn() && this.needsAuth(path)) {\n Travis.app.storeAfterSignInPath(path);\n return this.transitionTo('root.auth');\n } else {\n this.transitionTo('root');\n return this.route(path);\n }\n },\n root: Ember.Route.extend({\n route: '/',\n loading: Ember.State.extend(),\n afterSignIn: (function() {}),\n auth: Ember.Route.extend({\n route: '/auth',\n connectOutlets: function(router) {\n router.get('applicationView').connectLayout('simple');\n $('body').attr('id', 'auth');\n router.get('applicationController').connectOutlet('top', 'top');\n return router.get('applicationController').connectOutlet('main', 'signin');\n },\n afterSignIn: function(router, path) {\n return router.route(path || '/');\n }\n }),\n stats: Ember.Route.extend({\n route: '/stats',\n connectOutlets: function(router) {\n router.get('applicationView').connectLayout('simple');\n $('body').attr('id', 'stats');\n router.get('applicationController').connectOutlet('top', 'top');\n return router.get('applicationController').connectOutlet('main', 'stats');\n }\n }),\n profile: Ember.Route.extend({\n initialState: 'index',\n route: '/profile',\n connectOutlets: function(router) {\n router.get('applicationView').connectLayout('profile');\n $('body').attr('id', 'profile');\n router.get('accountsController').set('content', Travis.Account.find());\n router.get('applicationController').connectOutlet('top', 'top');\n return router.get('applicationController').connectOutlet('left', 'accounts');\n },\n index: Ember.Route.extend({\n route: '/',\n connectOutlets: function(router) {\n router.get('applicationController').connectOutlet('main', 'profile');\n return router.get('profileController').activate('hooks');\n }\n }),\n account: Ember.Route.extend({\n initialState: 'index',\n route: '/:login',\n connectOutlets: function(router, account) {\n var params;\n if (account) {\n params = {\n login: account.get('login')\n };\n return router.get('profileController').setParams(params);\n } else {\n return router.send('showProfile');\n }\n },\n deserialize: function(router, params) {\n var account, controller, deferred, observer;\n controller = router.get('accountsController');\n if (!controller.get('content')) {\n controller.set('content', Travis.Account.find());\n }\n account = controller.findByLogin(params.login);\n if (account) {\n return account;\n } else {\n deferred = $.Deferred();\n observer = function() {\n if (account = controller.findByLogin(params.login)) {\n controller.removeObserver('content.length', observer);\n return deferred.resolve(account);\n }\n };\n controller.addObserver('content.length', observer);\n return deferred.promise();\n }\n },\n serialize: function(router, account) {\n if (account) {\n return {\n login: account.get('login')\n };\n } else {\n return {};\n }\n },\n index: Ember.Route.extend({\n route: '/',\n connectOutlets: function(router) {\n return router.get('profileController').activate('hooks');\n }\n }),\n profile: Ember.Route.extend({\n route: '/profile',\n connectOutlets: function(router) {\n return router.get('profileController').activate('user');\n }\n })\n })\n }),\n home: Ember.Route.extend({\n route: '/',\n connectOutlets: function(router) {\n router.get('applicationView').connectLayout('home');\n $('body').attr('id', 'home');\n router.get('applicationController').connectOutlet('left', 'repos');\n router.get('applicationController').connectOutlet('right', 'sidebar');\n router.get('applicationController').connectOutlet('top', 'top');\n router.get('applicationController').connectOutlet('main', 'repo');\n router.get('applicationController').connectOutlet('flash', 'flash');\n return router.get('repoController').set('repos', router.get('reposController'));\n },\n show: Ember.Route.extend({\n route: '/',\n connectOutlets: function(router) {\n return router.get('repoController').activate('index');\n },\n initialState: 'default',\n \"default\": defaultRoute,\n lineNumber: lineNumberRoute\n }),\n showWithLineNumber: Ember.Route.extend({\n route: '/#/L:number',\n connectOutlets: function(router) {\n return router.get('repoController').activate('index');\n }\n }),\n repo: Ember.Route.extend({\n route: '/:owner/:name',\n dynamicSegmentPattern: \"([^/#]+)\",\n connectOutlets: function(router, repo) {\n return router.get('repoController').set('repo', repo);\n },\n deserialize: function(router, params) {\n var deferred, observer, repos, slug;\n slug = \"\" + params.owner + \"/\" + params.name;\n repos = Travis.Repo.bySlug(slug);\n deferred = $.Deferred();\n observer = function() {\n if (repos.get('isLoaded')) {\n repos.removeObserver('isLoaded', observer);\n return deferred.resolve(repos.objectAt(0));\n }\n };\n if (repos.length) {\n deferred.resolve(repos[0]);\n } else {\n repos.addObserver('isLoaded', observer);\n }\n return deferred.promise();\n },\n serialize: function(router, repo) {\n if (repo) {\n return {\n owner: repo.get('owner'),\n name: repo.get('name')\n };\n } else {\n return {};\n }\n },\n show: Ember.Route.extend({\n route: '/',\n connectOutlets: function(router) {\n return router.get('repoController').activate('current');\n },\n initialState: 'default',\n \"default\": defaultRoute,\n lineNumber: lineNumberRoute\n }),\n builds: Ember.Route.extend({\n route: '/builds',\n index: Ember.Route.extend({\n route: '/',\n connectOutlets: function(router, repo) {\n return router.get('repoController').activate('builds');\n }\n }),\n show: Ember.Route.extend({\n route: '/:build_id',\n connectOutlets: function(router, build) {\n if (!build.get) {\n build = Travis.Build.find(build);\n }\n router.get('repoController').set('build', build);\n return router.get('repoController').activate('build');\n },\n serialize: function(router, build) {\n if (build.get) {\n return {\n build_id: build.get('id')\n };\n } else {\n return {\n build_id: build\n };\n }\n },\n deserialize: function(router, params) {\n var build, deferred, observer;\n build = Travis.Build.find(params.build_id);\n if (build.get('id')) {\n return build;\n } else {\n deferred = $.Deferred();\n observer = function() {\n if (build.get('id')) {\n build.removeObserver('id', observer);\n return deferred.resolve(build);\n }\n };\n build.addObserver('id', observer);\n return deferred.promise();\n }\n },\n initialState: 'default',\n \"default\": defaultRoute,\n lineNumber: lineNumberRoute,\n dynamicSegmentPattern: \"([^/#]+)\"\n })\n }),\n pullRequests: Ember.Route.extend({\n route: '/pull_requests',\n connectOutlets: function(router, repo) {\n return router.get('repoController').activate('pull_requests');\n }\n }),\n branches: Ember.Route.extend({\n route: '/branches',\n connectOutlets: function(router, repo) {\n return router.get('repoController').activate('branches');\n }\n }),\n events: Ember.Route.extend({\n route: '/events',\n connectOutlets: function(router, repo) {\n return router.get('repoController').activate('events');\n }\n }),\n job: Ember.Route.extend({\n route: '/jobs/:job_id',\n dynamicSegmentPattern: \"([^/#]+)\",\n connectOutlets: function(router, job) {\n if (!job.get) {\n job = Travis.Job.find(job);\n }\n router.get('repoController').set('job', job);\n return router.get('repoController').activate('job');\n },\n serialize: function(router, job) {\n if (job.get) {\n return {\n job_id: job.get('id')\n };\n } else {\n return {\n job_id: job\n };\n }\n },\n deserialize: function(router, params) {\n var deferred, job, observer;\n job = Travis.Job.find(params.job_id);\n if (job.get('id')) {\n return job;\n } else {\n deferred = $.Deferred();\n observer = function() {\n if (job.get('id')) {\n job.removeObserver('id', observer);\n return deferred.resolve(job);\n }\n };\n job.addObserver('id', observer);\n return deferred.promise();\n }\n },\n initialState: 'default',\n \"default\": defaultRoute,\n lineNumber: lineNumberRoute\n })\n })\n })\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=routes"
),minispade.register("slider","(function() {(function() {\n\n this.Travis.Slider = function() {\n if ((typeof localStorage !== \"undefined\" && localStorage !== null ? localStorage.getItem('travis.maximized') : void 0) === 'true') {\n this.minimize();\n }\n return this;\n };\n\n $.extend(Travis.Slider.prototype, {\n persist: function() {\n return typeof localStorage !== \"undefined\" && localStorage !== null ? localStorage.setItem('travis.maximized', this.isMinimized()) : void 0;\n },\n isMinimized: function() {\n return $('body').hasClass('maximized');\n },\n minimize: function() {\n return $('body').addClass('maximized');\n },\n toggle: function() {\n var element;\n $('body').toggleClass('maximized');\n this.persist();\n element = $('<span></span>');\n $('#top .profile').append(element);\n return Em.run.later((function() {\n return element.remove();\n }), 10);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=slider"),minispade.register("store","(function() {(function() {\n var DATA_PROXY,\n __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\nminispade.require('store/rest_adapter');\n\n DATA_PROXY = {\n get: function(name) {\n return this.savedData[name];\n }\n };\n\n Travis.Store = DS.Store.extend({\n revision: 4,\n adapter: Travis.RestAdapter.create(),\n init: function() {\n this._super.apply(this, arguments);\n return this._loadedData = {};\n },\n load: function(type, id, hash) {\n var record, result;\n result = this._super.apply(this, arguments);\n if (result && result.clientId) {\n record = this.findByClientId(type, result.clientId);\n record.set('incomplete', false);\n record.set('complete', true);\n }\n return result;\n },\n merge: function(type, id, hash) {\n var clientId, data, dataCache, primaryKey, record, recordCache, typeMap;\n if (hash === void 0) {\n hash = id;\n primaryKey = type.proto().primaryKey;\n Ember.assert(\"A data hash was loaded for a record of type \" + type.toString() + \" but no primary key '\" + primaryKey + \"' was provided.\", hash[primaryKey]);\n id = hash[primaryKey];\n }\n typeMap = this.typeMapFor(type);\n dataCache = typeMap.cidToHash;\n clientId = typeMap.idToCid[id];\n recordCache = this.get('recordCache');\n if (clientId !== void 0) {\n if (data = dataCache[clientId]) {\n $.extend(data, hash);\n } else {\n dataCache[clientId] = hash;\n }\n if (record = recordCache[clientId]) {\n record.send('didChangeData');\n }\n } else {\n clientId = this.pushHash(hash, id, type);\n }\n if (clientId) {\n DATA_PROXY.savedData = hash;\n this.updateRecordArrays(type, clientId, DATA_PROXY);\n return {\n id: id,\n clientId: clientId\n };\n }\n },\n receive: function(event, data) {\n var job, mappings, name, type, _ref;\n _ref = event.split(':'), name = _ref[0], type = _ref[1];\n mappings = this.adapter.get('mappings');\n type = mappings[name];\n if (event === 'job:log') {\n if (job = this.find(Travis.Job, data['job']['id'])) {\n return job.appendLog(data['job']['_log']);\n }\n } else if (data[type.singularName()]) {\n return this._loadOne(this, type, data);\n } else if (data[type.pluralName()]) {\n return this._loadMany(this, type, data);\n } else {\n if (!type) {\n throw \"can't load data for \" + name;\n }\n }\n },\n _loadOne: function(store, type, json) {\n var result, root;\n root = type.singularName();\n if (type === Travis.Build && (json.repository || json.repo)) {\n result = this.loadIncomplete(Travis.Repo, json.repository || json.repo);\n }\n return this.loadIncomplete(type, json[root]);\n },\n addLoadedData: function(type, clientId, hash) {\n var id, key, loadedData, _base, _base1, _name, _results;\n id = hash.id;\n (_base = this._loadedData)[_name = type.toString()] || (_base[_name] = {});\n loadedData = ((_base1 = this._loadedData[type])[clientId] || (_base1[clientId] = []));\n _results = [];\n for (key in hash) {\n if (!loadedData.contains(key)) {\n _results.push(loadedData.pushObject(key));\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n },\n isDataLoadedFor: function(type, clientId, key) {\n var data, recordsData;\n if (recordsData = this._loadedData[type.toString()]) {\n if (data = recordsData[clientId]) {\n return data.contains(key);\n }\n }\n },\n loadIncomplete: function(type, hash) {\n var record, result;\n result = this.merge(type, hash);\n if (result && result.clientId) {\n this.addLoadedData(type, result.clientId, hash);\n record = this.findByClientId(type, result.clientId);\n if (!record.get('complete')) {\n record.loadedAsIncomplete();\n }\n this._updateAssociations(type, type.singularName(), hash);\n return record;\n }\n },\n _loadMany: function(store, type, json) {\n var root;\n root = type.pluralName();\n this.adapter.sideload(store, type, json, root);\n return this.loadMany(type, json[root]);\n },\n _updateAssociations: function(type, name, data) {\n var _this = this;\n return Em.get(type, 'associationsByName').forEach(function(key, meta) {\n var clientId, dataProxy, id, ids, parent, _ref;\n if (meta.kind === 'belongsTo') {\n id = data[\"\" + key + \"_id\"];\n if (clientId = _this.typeMapFor(meta.type).idToCid[id]) {\n if (parent = _this.findByClientId(meta.type, clientId, id)) {\n dataProxy = parent.get('data');\n if (ids = dataProxy.get(\"\" + name + \"_ids\")) {\n if (_ref = data.id, __indexOf.call(ids, _ref) < 0) {\n ids.pushObject(data.id);\n }\n return parent.send('didChangeData');\n }\n }\n }\n }\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=store"),minispade.register("store/fixture_adapter",'(function() {(function() {\n\n this.Travis.FixtureAdapter = DS.Adapter.extend({\n find: function(store, type, id) {\n var fixtures;\n fixtures = type.FIXTURES;\n Ember.assert("Unable to find fixtures for model type " + type.toString(), !!fixtures);\n if (fixtures.hasLoaded) {\n return;\n }\n return setTimeout((function() {\n store.loadMany(type, fixtures);\n return fixtures.hasLoaded = true;\n }), 300);\n },\n findMany: function() {\n return this.find.apply(this, arguments);\n },\n findAll: function(store, type) {\n var fixtures, ids;\n fixtures = type.FIXTURES;\n Ember.assert("Unable to find fixtures for model type " + type.toString(), !!fixtures);\n ids = fixtures.map(function(item, index, self) {\n return item.id;\n });\n return store.loadMany(type, ids, fixtures);\n },\n findQuery: function(store, type, params, array) {\n var fixture, fixtures, hashes, key, matches, value;\n fixtures = type.FIXTURES;\n Ember.assert("Unable to find fixtures for model type " + type.toString(), !!fixtures);\n hashes = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = fixtures.length; _i < _len; _i++) {\n fixture = fixtures[_i];\n matches = (function() {\n var _results1;\n _results1 = [];\n for (key in params) {\n value = params[key];\n _results1.push(key === \'orderBy\' || fixture[key] === value);\n }\n return _results1;\n })();\n if (matches.reduce(function(a, b) {\n return a && b;\n })) {\n _results.push(fixture);\n } else {\n _results.push(null);\n }\n }\n return _results;\n })();\n return array.load(hashes.compact());\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=store/fixture_adapter'),minispade.register("store/rest_adapter","(function() {(function() {\nminispade.require('travis/ajax');\nminispade.require('models');\n\n this.Travis.RestAdapter = DS.RESTAdapter.extend({\n mappings: {\n broadcasts: Travis.Broadcast,\n repositories: Travis.Repo,\n repository: Travis.Repo,\n repos: Travis.Repo,\n repo: Travis.Repo,\n builds: Travis.Build,\n build: Travis.Build,\n commits: Travis.Commit,\n commit: Travis.Commit,\n jobs: Travis.Job,\n job: Travis.Job,\n account: Travis.Account,\n accounts: Travis.Account,\n worker: Travis.Worker,\n workers: Travis.Worker\n },\n plurals: {\n repositories: 'repositories',\n repository: 'repositories',\n repo: 'repos',\n repos: 'repos',\n build: 'builds',\n branch: 'branches',\n job: 'jobs',\n worker: 'workers',\n profile: 'profile'\n },\n ajax: function() {\n return Travis.ajax.ajax.apply(this, arguments);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=store/rest_adapter"),minispade.register("tailing","(function() {(function() {\n\n this.Travis.Tailing = function() {\n this.position = $(window).scrollTop();\n $(window).scroll($.throttle(200, this.onScroll.bind(this)));\n return this;\n };\n\n $.extend(Travis.Tailing.prototype, {\n options: {\n timeout: 200\n },\n run: function() {\n this.autoScroll();\n this.positionButton();\n if (this.active()) {\n return Ember.run.later(this.run.bind(this), this.options.timeout);\n }\n },\n toggle: function(event) {\n if (this.active()) {\n return this.stop();\n } else {\n return this.start();\n }\n },\n active: function() {\n return $('#tail').hasClass('active');\n },\n start: function() {\n $('#tail').addClass('active');\n return this.run();\n },\n stop: function() {\n return $('#tail').removeClass('active');\n },\n autoScroll: function() {\n var log, logBottom, win, winBottom;\n if (!this.active()) {\n return;\n }\n win = $(window);\n log = $('#log');\n logBottom = log.offset().top + log.outerHeight() + 40;\n winBottom = win.scrollTop() + win.height();\n if (logBottom - winBottom > 0) {\n return win.scrollTop(logBottom - win.height());\n }\n },\n onScroll: function() {\n var position;\n this.positionButton();\n position = $(window).scrollTop();\n if (position < this.position) {\n this.stop();\n }\n return this.position = position;\n },\n positionButton: function() {\n var max, offset, tail;\n tail = $('#tail');\n if (tail.length === 0) {\n return;\n }\n offset = $(window).scrollTop() - $('#log').offset().top;\n max = $('#log').height() - $('#tail').height() + 5;\n if (offset > max) {\n offset = max;\n }\n if (offset > 0) {\n return tail.css({\n top: offset - 2\n });\n } else {\n return tail.css({\n top: 0\n });\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=tailing"),minispade.register("views","(function() {(function() {\nminispade.require('ext/ember/namespace');\n\n this.Travis.reopen({\n View: Em.View.extend({\n popup: function(event) {\n this.popupCloseAll();\n return $(\"#\" + event.target.name).toggleClass('display');\n },\n popupClose: function(event) {\n return $(event.target).closest('.popup').removeClass('display');\n },\n popupCloseAll: function() {\n return $('.popup').removeClass('display');\n }\n })\n });\nminispade.require('views/accounts');\nminispade.require('views/application');\nminispade.require('views/build');\nminispade.require('views/events');\nminispade.require('views/flash');\nminispade.require('views/job');\nminispade.require('views/repo');\nminispade.require('views/profile');\nminispade.require('views/sidebar');\nminispade.require('views/stats');\nminispade.require('views/signin');\nminispade.require('views/top');\n\n}).call(this);\n\n})();\n//@ sourceURL=views"),minispade.register("views/accounts","(function() {(function() {\n\n this.Travis.reopen({\n AccountsView: Travis.View.extend({\n tabBinding: 'controller.tab',\n templateName: 'profile/accounts',\n classAccounts: (function() {\n if (this.get('tab') === 'accounts') {\n return 'active';\n }\n }).property('tab')\n }),\n AccountsListView: Em.CollectionView.extend({\n elementId: 'accounts',\n accountBinding: 'content',\n tagName: 'ul',\n emptyView: Ember.View.extend({\n template: Ember.Handlebars.compile('<div class=\"loading\"><span>Loading</span></div>')\n }),\n itemViewClass: Travis.View.extend({\n accountBinding: 'content',\n typeBinding: 'content.type',\n selectedBinding: 'account.selected',\n classNames: ['account'],\n classNameBindings: ['type', 'selected'],\n name: (function() {\n return this.get('content.name') || this.get('content.login');\n }).property('content.login', 'content.name'),\n urlAccount: (function() {\n return Travis.Urls.account(this.get('account.login'));\n }).property('account.login')\n })\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/accounts"),minispade.register("views/application","(function() {(function() {\n\n this.Travis.reopen({\n ApplicationView: Travis.View.extend({\n templateName: 'layouts/home',\n classNames: ['application'],\n connectLayout: function(name) {\n name = \"layouts/\" + name;\n if (this.get('templateName') !== name) {\n this.set('templateName', name);\n return this.rerender();\n }\n },\n localeDidChange: (function() {\n var locale;\n if (locale = Travis.app.get('auth.user.locale')) {\n if (Travis.needsLocaleChange(locale)) {\n Travis.setLocale(locale);\n return Travis.app.get('router').reload();\n }\n }\n }).observes('Travis.app.auth.user.locale'),\n click: function(event) {\n var targetAndParents;\n targetAndParents = $(event.target).parents().andSelf();\n if (!(targetAndParents.hasClass('open-popup') || targetAndParents.hasClass('popup'))) {\n this.popupCloseAll();\n }\n if (!targetAndParents.hasClass('menu')) {\n return $('.menu').removeClass('display');\n }\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/application"),minispade.register("views/build","(function() {(function() {\n\n this.Travis.reopen({\n BuildsView: Travis.View.extend({\n templateName: 'builds/list',\n buildsBinding: 'controller.builds',\n showMore: function() {\n var id, number;\n id = this.get('controller.repo.id');\n number = this.get('builds.lastObject.number');\n return this.get('builds').load(Travis.Build.olderThanNumber(id, number));\n },\n ShowMoreButton: Em.View.extend({\n tagName: 'button',\n classNameBindings: ['isLoading'],\n attributeBindings: ['disabled'],\n isLoadingBinding: 'controller.builds.isLoading',\n template: Em.Handlebars.compile('{{view.label}}'),\n disabledBinding: 'isLoading',\n label: (function() {\n if (this.get('isLoading')) {\n return 'Loading';\n } else {\n return 'Show more';\n }\n }).property('isLoading'),\n click: function() {\n return this.get('parentView').showMore();\n }\n })\n }),\n BuildsItemView: Travis.View.extend({\n tagName: 'tr',\n classNameBindings: ['color'],\n repoBinding: 'controller.repo',\n buildBinding: 'context',\n commitBinding: 'build.commit',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('build.result'));\n }).property('build.result'),\n urlBuild: (function() {\n return Travis.Urls.build(this.get('repo.slug'), this.get('build.id'));\n }).property('repo.slug', 'build.id'),\n urlGithubCommit: (function() {\n return Travis.Urls.githubCommit(this.get('repo.slug'), this.get('commit.sha'));\n }).property('repo.slug', 'commit.sha')\n }),\n BuildView: Travis.View.extend({\n templateName: 'builds/show',\n elementId: 'build',\n classNameBindings: ['color', 'loading'],\n repoBinding: 'controller.repo',\n buildBinding: 'controller.build',\n commitBinding: 'build.commit',\n currentItemBinding: 'build',\n loading: (function() {\n return !this.get('build.isComplete');\n }).property('build.isComplete'),\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('build.result'));\n }).property('build.result'),\n urlBuild: (function() {\n return Travis.Urls.build(this.get('repo.slug'), this.get('build.id'));\n }).property('repo.slug', 'build.id'),\n urlGithubCommit: (function() {\n return Travis.Urls.githubCommit(this.get('repo.slug'), this.get('commit.sha'));\n }).property('repo.slug', 'commit.sha'),\n urlAuthor: (function() {\n return Travis.Urls.email(this.get('commit.authorEmail'));\n }).property('commit.authorEmail'),\n urlCommitter: (function() {\n return Travis.Urls.email(this.get('commit.committerEmail'));\n }).property('commit.committerEmail')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/build"),minispade.register("views/events","(function() {(function() {\n\n this.Travis.reopen({\n EventsView: Travis.View.extend({\n templateName: 'events/list',\n eventsBinding: 'controller.events'\n }),\n EventsItemView: Travis.View.extend({\n tagName: 'tr'\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/events"),minispade.register("views/flash","(function() {(function() {\n\n this.Travis.reopen({\n FlashView: Travis.View.extend({\n elementId: 'flash',\n tagName: 'ul',\n templateName: 'layouts/flash'\n }),\n FlashItemView: Travis.View.extend({\n tagName: 'li',\n classNameBindings: ['type'],\n type: (function() {\n return this.get('flash.type') || 'broadcast';\n }).property('flash.type'),\n close: function(event) {\n return this.get('controller').close(this.get('flash'));\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/flash"),minispade.register("views/job","(function() {(function() {\n\n this.Travis.reopen({\n JobsView: Travis.View.extend({\n templateName: 'jobs/list',\n buildBinding: 'controller.build'\n }),\n JobsItemView: Travis.View.extend({\n tagName: 'tr',\n classNameBindings: ['color'],\n repoBinding: 'context.repo',\n jobBinding: 'context',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('job.result'));\n }).property('job.result'),\n urlJob: (function() {\n return Travis.Urls.job(this.get('repo.slug'), this.get('job.id'));\n }).property('repo.slug', 'job.id')\n }),\n JobView: Travis.View.extend({\n templateName: 'jobs/show',\n repoBinding: 'controller.repo',\n jobBinding: 'controller.job',\n commitBinding: 'job.commit',\n currentItemBinding: 'job',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('job.result'));\n }).property('job.result'),\n urlJob: (function() {\n return Travis.Urls.job(this.get('repo.slug'), this.get('job.id'));\n }).property('repo.slug', 'job.id'),\n urlGithubCommit: (function() {\n return Travis.Urls.githubCommit(this.get('repo.slug'), this.get('commit.sha'));\n }).property('repo.slug', 'commit.sha'),\n urlAuthor: (function() {\n return Travis.Urls.email(this.get('commit.authorEmail'));\n }).property('commit.authorEmail'),\n urlCommitter: (function() {\n return Travis.Urls.email(this.get('commit.committerEmail'));\n }).property('commit.committerEmail')\n }),\n LogView: Travis.View.extend({\n templateName: 'jobs/log',\n logBinding: 'job.log',\n scrollTo: function(hash) {\n $('#main').scrollTop(0);\n $('html,body').scrollTop($(hash).offset().top);\n return this.set('controller.lineNumberHash', null);\n },\n lineNumberHashDidChange: (function() {\n return this.tryScrollingToHashLineNumber();\n }).observes('controller.lineNumberHash'),\n tryScrollingToHashLineNumber: function() {\n var checker, hash, self;\n if (hash = this.get('controller.lineNumberHash')) {\n self = this;\n checker = function() {\n if (self.get('isDestroyed')) {\n return;\n }\n if ($(hash).length) {\n return self.scrollTo(hash);\n } else {\n return setTimeout(checker, 100);\n }\n };\n return checker();\n }\n },\n didInsertElement: function() {\n this._super.apply(this, arguments);\n return this.tryScrollingToHashLineNumber();\n },\n click: function(event) {\n var path, target;\n target = $(event.target);\n target.closest('.fold').toggleClass('open');\n if (target.is('.log-line-number')) {\n path = target.attr('href');\n Travis.app.get('router').route(path);\n event.stopPropagation();\n return false;\n }\n },\n toTop: function() {\n return $(window).scrollTop(0);\n },\n jobBinding: 'context',\n toggleTailing: function(event) {\n Travis.app.tailing.toggle();\n return event.preventDefault();\n },\n logSubscriber: (function() {\n var job, state;\n job = this.get('job');\n state = this.get('job.state');\n if (job && state !== 'finished') {\n job.subscribe();\n }\n return null;\n }).property('job', 'job.state')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/job"),minispade.register("views/left","(function() {(function() {\n\n this.Travis.reopen({\n ReposView: Travis.View.extend({\n templateName: 'repos/list',\n tabBinding: 'controller.tab',\n classRecent: (function() {\n if (this.get('tab') === 'recent') {\n return 'active';\n }\n }).property('tab'),\n classOwned: (function() {\n var classes;\n classes = [];\n if (this.get('tab') === 'owned') {\n classes.push('active');\n }\n if (Travis.app.get('currentUser')) {\n classes.push('display');\n }\n return classes.join(' ');\n }).property('tab', 'Travis.currentUser'),\n classSearch: (function() {\n if (this.get('tab') === 'search') {\n return 'active';\n }\n }).property('tab')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/left"),minispade.register("views/profile","(function() {(function() {\n\n this.Travis.reopen({\n ProfileView: Travis.View.extend({\n templateName: 'profile/show',\n accountBinding: 'controller.account',\n name: (function() {\n return this.get('account.name') || this.get('account.login');\n }).property('account.name', 'account.login')\n }),\n ProfileTabsView: Travis.View.extend({\n templateName: 'profile/tabs',\n tabBinding: 'controller.tab',\n activate: function(event) {\n return this.get('controller').activate(event.target.name);\n },\n classHooks: (function() {\n if (this.get('tab') === 'hooks') {\n return 'active';\n }\n }).property('tab'),\n classUser: (function() {\n if (this.get('tab') === 'user') {\n return 'active';\n }\n }).property('tab'),\n accountBinding: 'controller.account',\n displayUser: (function() {\n return this.get('controller.account.login') === this.get('controller.user.login');\n }).property('controller.account.login', 'controller.user.login')\n }),\n HooksView: Travis.View.extend({\n templateName: 'profile/tabs/hooks',\n userBinding: 'controller.user',\n urlGithubAdmin: (function() {\n return Travis.Urls.githubAdmin(this.get('hook.slug'));\n }).property('hook.slug')\n }),\n UserView: Travis.View.extend({\n templateName: 'profile/tabs/user',\n userBinding: 'controller.user',\n gravatarUrl: (function() {\n return \"\" + location.protocol + \"//www.gravatar.com/avatar/\" + (this.get('user.gravatarId')) + \"?s=48&d=mm\";\n }).property('user.gravatarId'),\n locales: (function() {\n return [\n {\n key: null,\n name: ''\n }, {\n key: 'en',\n name: 'English'\n }, {\n key: 'ca',\n name: 'Catalan'\n }, {\n key: 'cs',\n name: 'Čeština'\n }, {\n key: 'es',\n name: 'Español'\n }, {\n key: 'fr',\n name: 'Français'\n }, {\n key: 'ja',\n name: '日本語'\n }, {\n key: 'nl',\n name: 'Nederlands'\n }, {\n key: 'nb',\n name: 'Norsk Bokmål'\n }, {\n key: 'pl',\n name: 'Polski'\n }, {\n key: {\n 'pt-BR': {\n name: 'Português brasileiro'\n }\n }\n }, {\n key: 'ru',\n name: 'Русский'\n }\n ];\n }).property(),\n saveLocale: function(event) {\n return this.get('user').updateLocale($('#locale').val());\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/profile"),minispade.register("views/repo","(function() {(function() {\nminispade.require('views/repo/list');\nminispade.require('views/repo/show');\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo"),minispade.register("views/repo/list","(function() {(function() {\n\n this.Travis.reopen({\n ReposView: Travis.View.extend({\n templateName: 'repos/list',\n toggleInfo: function(event) {\n return $('#repos').toggleClass('open');\n }\n }),\n ReposListView: Em.CollectionView.extend({\n elementId: 'repos',\n tagName: 'ul',\n emptyView: Ember.View.extend({\n template: Ember.Handlebars.compile('<div class=\"loading\"><span>Loading</span></div>')\n }),\n itemViewClass: Travis.View.extend({\n repoBinding: 'content',\n classNames: ['repo'],\n classNameBindings: ['color', 'selected'],\n selectedBinding: 'repo.selected',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('repo.lastBuildResult'));\n }).property('repo.lastBuildResult'),\n urlRepo: (function() {\n return Travis.Urls.repo(this.get('repo.slug'));\n }).property('repo.slug'),\n urlLastBuild: (function() {\n return Travis.Urls.build(this.get('repo.slug'), this.get('repo.lastBuildId'));\n }).property('repo.slug', 'repo.lastBuildId')\n })\n }),\n ReposListTabsView: Travis.View.extend({\n templateName: 'repos/list/tabs',\n tabBinding: 'controller.tab',\n activate: function(event) {\n return this.get('controller').activate(event.target.name);\n },\n classRecent: (function() {\n if (this.get('tab') === 'recent') {\n return 'active';\n }\n }).property('tab'),\n classOwned: (function() {\n var classes;\n classes = [];\n if (this.get('tab') === 'owned') {\n classes.push('active');\n }\n if (Travis.app.get('currentUser')) {\n classes.push('display-inline');\n }\n return classes.join(' ');\n }).property('tab', 'Travis.app.currentUser'),\n classSearch: (function() {\n if (this.get('tab') === 'search') {\n return 'active';\n }\n }).property('tab')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo/list"),minispade.register("views/repo/show","(function() {(function() {\n\n this.Travis.reopen({\n RepoView: Travis.View.extend({\n templateName: 'repos/show',\n reposBinding: 'controller.repos',\n repoBinding: 'controller.repo',\n \"class\": (function() {\n if (!this.get('repo.isComplete') && !this.get('isEmpty')) {\n return 'loading';\n }\n }).property('repo.isComplete'),\n isEmpty: (function() {\n return this.get('repos.isLoaded') && this.get('repos.length') === 0;\n }).property('repos.length'),\n urlGithub: (function() {\n return Travis.Urls.githubRepo(this.get('repo.slug'));\n }).property('repo.slug'),\n urlGithubWatchers: (function() {\n return Travis.Urls.githubWatchers(this.get('repo.slug'));\n }).property('repo.slug'),\n urlGithubNetwork: (function() {\n return Travis.Urls.githubNetwork(this.get('repo.slug'));\n }).property('repo.slug')\n }),\n ReposEmptyView: Travis.View.extend({\n template: ''\n }),\n RepoShowTabsView: Travis.View.extend({\n templateName: 'repos/show/tabs',\n repoBinding: 'controller.repo',\n buildBinding: 'controller.build',\n jobBinding: 'controller.job',\n tabBinding: 'controller.tab',\n classCurrent: (function() {\n if (this.get('tab') === 'current') {\n return 'active';\n }\n }).property('tab'),\n classBuilds: (function() {\n if (this.get('tab') === 'builds') {\n return 'active';\n }\n }).property('tab'),\n classPullRequests: (function() {\n if (this.get('tab') === 'pull_requests') {\n return 'active';\n }\n }).property('tab'),\n classBranches: (function() {\n if (this.get('tab') === 'branches') {\n return 'active';\n }\n }).property('tab'),\n classEvents: (function() {\n if (this.get('tab') === 'events') {\n return 'active';\n }\n }).property('tab'),\n classBuild: (function() {\n var classes, tab;\n tab = this.get('tab');\n classes = [];\n if (tab === 'build') {\n classes.push('active');\n }\n if (tab === 'build' || tab === 'job') {\n classes.push('display-inline');\n }\n return classes.join(' ');\n }).property('tab'),\n classJob: (function() {\n if (this.get('tab') === 'job') {\n return 'active display-inline';\n }\n }).property('tab')\n }),\n RepoShowToolsView: Travis.View.extend({\n templateName: 'repos/show/tools',\n repoBinding: 'controller.repo',\n buildBinding: 'controller.build',\n jobBinding: 'controller.job',\n tabBinding: 'controller.tab',\n closeMenu: function() {\n return $('.menu').removeClass('display');\n },\n menu: function(event) {\n var element;\n this.popupCloseAll();\n element = $('#tools .menu').toggleClass('display');\n return event.stopPropagation();\n },\n requeue: function() {\n this.closeMenu();\n return this.get('build').requeue();\n },\n statusImages: function(event) {\n this.set('active', true);\n this.closeMenu();\n this.popup(event);\n return event.stopPropagation();\n },\n canPush: (function() {\n return this.get('isBuildTab') && this.get('build.isFinished') && this.get('hasPushPermissions');\n }).property('build.isFinished', 'hasPushPermissions', 'isBuildTab'),\n isBuildTab: (function() {\n return ['current', 'build', 'job'].indexOf(this.get('tab')) > -1;\n }).property('tab'),\n hasPushPermissions: (function() {\n var permissions;\n if (permissions = Travis.app.get('currentUser.permissions')) {\n return permissions.indexOf(this.get('repo.id')) > -1;\n }\n }).property('Travis.app.currentUser.permissions.length', 'repo.id'),\n branches: (function() {\n if (this.get('active')) {\n return this.get('repo.branches');\n }\n }).property('active', 'repo.branches'),\n urlRepo: (function() {\n return 'https://' + location.host + Travis.Urls.repo(this.get('repo.slug'));\n }).property('repo.slug'),\n urlStatusImage: (function() {\n return Travis.Urls.statusImage(this.get('repo.slug'), this.get('branch.commit.branch'));\n }).property('repo.slug', 'branch'),\n markdownStatusImage: (function() {\n return \"[![Build Status](\" + (this.get('urlStatusImage')) + \")](\" + (this.get('urlRepo')) + \")\";\n }).property('urlStatusImage'),\n textileStatusImage: (function() {\n return \"!\" + (this.get('urlStatusImage')) + \"!:\" + (this.get('urlRepo'));\n }).property('urlStatusImage'),\n rdocStatusImage: (function() {\n return \"{<img src=\\\"\" + (this.get('urlStatusImage')) + \"\\\" alt=\\\"Build Status\\\" />}[\" + (this.get('urlRepo')) + \"]\";\n }).property('urlStatusImage')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo/show"
),minispade.register("views/sidebar","(function() {(function() {\n\n this.Travis.reopen({\n SidebarView: Travis.View.extend({\n templateName: 'layouts/sidebar',\n DecksView: Em.View.extend({\n templateName: \"sponsors/decks\",\n controller: Travis.SponsorsController.create({\n perPage: 1\n }),\n didInsertElement: function() {\n var controller;\n controller = this.get('controller');\n if (!controller.get('content')) {\n Travis.app.get('router.sidebarController').tickables.push(controller);\n controller.set('content', Travis.Sponsor.decks());\n }\n return this._super.apply(this, arguments);\n }\n }),\n LinksView: Em.View.extend({\n templateName: \"sponsors/links\",\n controller: Travis.SponsorsController.create({\n perPage: 6\n }),\n didInsertElement: function() {\n var controller;\n controller = this.get('controller');\n if (!controller.get('content')) {\n controller.set('content', Travis.Sponsor.links());\n Travis.app.get('router.sidebarController').tickables.push(controller);\n }\n return this._super.apply(this, arguments);\n }\n }),\n WorkersView: Em.View.extend({\n templateName: 'workers/list',\n controller: Travis.WorkersController.create(),\n didInsertElement: function() {\n this.set('controller.content', Travis.Worker.find());\n return this._super.apply(this, arguments);\n }\n }),\n QueuesView: Em.View.extend({\n templateName: 'queues/list',\n controller: Em.ArrayController.create(),\n didInsertElement: function() {\n var queue, queues;\n queues = (function() {\n var _i, _len, _ref, _results;\n _ref = Travis.QUEUES;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n queue = _ref[_i];\n _results.push(Em.ArrayController.create({\n content: Travis.Job.queued(queue.name),\n id: \"queue_\" + queue.name,\n name: queue.display\n }));\n }\n return _results;\n })();\n this.set('controller.content', queues);\n return this._super.apply(this, arguments);\n }\n })\n }),\n WorkersView: Travis.View.extend({\n toggleWorkers: function(event) {\n var handle;\n handle = $(event.target).toggleClass('open');\n if (handle.hasClass('open')) {\n return $('#workers li').addClass('open');\n } else {\n return $('#workers li').removeClass('open');\n }\n }\n }),\n WorkersListView: Travis.View.extend({\n toggle: function(event) {\n return $(event.target).closest('li').toggleClass('open');\n }\n }),\n WorkersItemView: Travis.View.extend({\n display: (function() {\n var name, number, payload, repo, state;\n name = (this.get('worker.name') || '').replace('travis-', '');\n state = this.get('worker.state');\n payload = this.get('worker.payload');\n if (state === 'working' && (payload != null ? payload.repository : void 0) && (payload != null ? payload.build : void 0)) {\n repo = payload.repository.slug;\n number = ' #' + payload.build.number;\n return (\"<span class='name'>\" + name + \": \" + repo + \"</span> \" + number).htmlSafe();\n } else {\n return \"\" + name + \": \" + state;\n }\n }).property('worker.state')\n }),\n QueueItemView: Travis.View.extend({\n tagName: 'li'\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/sidebar"),minispade.register("views/signin","(function() {(function() {\n\n this.Travis.reopen({\n SigninView: Travis.View.extend({\n templateName: 'auth/signin',\n signingIn: (function() {\n return Travis.app.get('authState') === 'signing-in';\n }).property('Travis.app.authState')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/signin"),minispade.register("views/stats",'(function() {(function() {\n\n this.Travis.reopen({\n StatsView: Travis.View.extend({\n templateName: \'stats/show\',\n didInsertElement: function() {},\n renderChart: function(config) {\n var chart;\n chart = new Highcharts.Chart(config);\n return this.fetch(config.source, function(data) {\n var stats;\n stats = (function() {\n var _i, _len, _ref, _results;\n _ref = data.stats;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n stats = _ref[_i];\n _results.push(config.map(stats));\n }\n return _results;\n })();\n return chart.series[0].setData(stats);\n });\n },\n fetch: function(url, callback) {\n return $.ajax({\n type: \'GET\',\n url: url,\n accepts: {\n json: \'application/vnd.travis-ci.2+json\'\n },\n success: callback\n });\n },\n CHARTS: {\n repos: {\n source: \'/api/stats/repos\',\n total: 0,\n map: function(data) {\n return [Date.parse(data.date), this.total += parseInt(data.count)];\n },\n chart: {\n renderTo: "repos_stats"\n },\n title: {\n text: "Total Projects/Repositories"\n },\n xAxis: {\n type: "datetime",\n dateTimeLabelFormats: {\n month: "%e. %b",\n year: "%b"\n }\n },\n yAxis: {\n title: {\n text: "Count"\n },\n min: 0\n },\n tooltip: {\n formatter: function() {\n return Highcharts.dateFormat("%e. %b", this.x) + ": " + this.y + " repos";\n }\n },\n series: [\n {\n name: "Repository Growth",\n data: []\n }\n ]\n },\n builds: {\n source: \'/api/stats/tests\',\n map: function(data) {\n return [Date.parse(data.date), parseInt(data.count)];\n },\n chart: {\n renderTo: "tests_stats",\n type: "column"\n },\n title: {\n text: "Build Count"\n },\n subtitle: {\n text: "last month"\n },\n xAxis: {\n type: "datetime",\n dateTimeLabelFormats: {\n month: "%e. %b",\n year: "%b"\n }\n },\n yAxis: {\n title: {\n text: "Count"\n },\n min: 0\n },\n tooltip: {\n formatter: function() {\n return Highcharts.dateFormat("%e. %b", this.x) + ": " + this.y + " builds";\n }\n },\n series: [\n {\n name: "Total Builds",\n data: []\n }\n ]\n }\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/stats'),minispade.register("views/top","(function() {(function() {\n\n this.Travis.reopen({\n TopView: Travis.View.extend({\n templateName: 'layouts/top',\n tabBinding: 'controller.tab',\n userBinding: 'controller.user',\n gravatarUrl: (function() {\n return \"\" + location.protocol + \"//www.gravatar.com/avatar/\" + (this.get('user.gravatarId')) + \"?s=24&d=mm\";\n }).property('user.gravatarId'),\n classHome: (function() {\n if (this.get('tab') === 'home') {\n return 'active';\n }\n }).property('tab'),\n classStats: (function() {\n if (this.get('tab') === 'stats') {\n return 'active';\n }\n }).property('tab'),\n classProfile: (function() {\n var classes;\n classes = ['profile'];\n if (this.get('tab') === 'profile') {\n classes.push('active');\n }\n classes.push(Travis.app.get('authState'));\n return classes.join(' ');\n }).property('tab', 'Travis.app.authState'),\n showProfile: function() {\n return $('#top .profile ul').show();\n },\n hideProfile: function() {\n return $('#top .profile ul').hide();\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/top"),minispade.register("config/emoij","(function() {(function() {\n\n this.EmojiDictionary = ['-1', '0', '1', '109', '2', '3', '4', '5', '6', '7', '8', '8ball', '9', 'a', 'ab', 'airplane', 'alien', 'ambulance', 'angel', 'anger', 'angry', 'apple', 'aquarius', 'aries', 'arrow_backward', 'arrow_down', 'arrow_forward', 'arrow_left', 'arrow_lower_left', 'arrow_lower_right', 'arrow_right', 'arrow_up', 'arrow_upper_left', 'arrow_upper_right', 'art', 'astonished', 'atm', 'b', 'baby', 'baby_chick', 'baby_symbol', 'balloon', 'bamboo', 'bank', 'barber', 'baseball', 'basketball', 'bath', 'bear', 'beer', 'beers', 'beginner', 'bell', 'bento', 'bike', 'bikini', 'bird', 'birthday', 'black_square', 'blue_car', 'blue_heart', 'blush', 'boar', 'boat', 'bomb', 'book', 'boot', 'bouquet', 'bow', 'bowtie', 'boy', 'bread', 'briefcase', 'broken_heart', 'bug', 'bulb', 'bullettrain_front', 'bullettrain_side', 'bus', 'busstop', 'cactus', 'cake', 'calling', 'camel', 'camera', 'cancer', 'capricorn', 'car', 'cat', 'cd', 'chart', 'checkered_flag', 'cherry_blossom', 'chicken', 'christmas_tree', 'church', 'cinema', 'city_sunrise', 'city_sunset', 'clap', 'clapper', 'clock1', 'clock10', 'clock11', 'clock12', 'clock2', 'clock3', 'clock4', 'clock5', 'clock6', 'clock7', 'clock8', 'clock9', 'closed_umbrella', 'cloud', 'clubs', 'cn', 'cocktail', 'coffee', 'cold_sweat', 'computer', 'confounded', 'congratulations', 'construction', 'construction_worker', 'convenience_store', 'cool', 'cop', 'copyright', 'couple', 'couple_with_heart', 'couplekiss', 'cow', 'crossed_flags', 'crown', 'cry', 'cupid', 'currency_exchange', 'curry', 'cyclone', 'dancer', 'dancers', 'dango', 'dart', 'dash', 'de', 'department_store', 'diamonds', 'disappointed', 'dog', 'dolls', 'dolphin', 'dress', 'dvd', 'ear', 'ear_of_rice', 'egg', 'eggplant', 'egplant', 'eight_pointed_black_star', 'eight_spoked_asterisk', 'elephant', 'email', 'es', 'european_castle', 'exclamation', 'eyes', 'factory', 'fallen_leaf', 'fast_forward', 'fax', 'fearful', 'feelsgood', 'feet', 'ferris_wheel', 'finnadie', 'fire', 'fire_engine', 'fireworks', 'fish', 'fist', 'flags', 'flushed', 'football', 'fork_and_knife', 'fountain', 'four_leaf_clover', 'fr', 'fries', 'frog', 'fuelpump', 'gb', 'gem', 'gemini', 'ghost', 'gift', 'gift_heart', 'girl', 'goberserk', 'godmode', 'golf', 'green_heart', 'grey_exclamation', 'grey_question', 'grin', 'guardsman', 'guitar', 'gun', 'haircut', 'hamburger', 'hammer', 'hamster', 'hand', 'handbag', 'hankey', 'hash', 'headphones', 'heart', 'heart_decoration', 'heart_eyes', 'heartbeat', 'heartpulse', 'hearts', 'hibiscus', 'high_heel', 'horse', 'hospital', 'hotel', 'hotsprings', 'house', 'hurtrealbad', 'icecream', 'id', 'ideograph_advantage', 'imp', 'information_desk_person', 'iphone', 'it', 'jack_o_lantern', 'japanese_castle', 'joy', 'jp', 'key', 'kimono', 'kiss', 'kissing_face', 'kissing_heart', 'koala', 'koko', 'kr', 'leaves', 'leo', 'libra', 'lips', 'lipstick', 'lock', 'loop', 'loudspeaker', 'love_hotel', 'mag', 'mahjong', 'mailbox', 'man', 'man_with_gua_pi_mao', 'man_with_turban', 'maple_leaf', 'mask', 'massage', 'mega', 'memo', 'mens', 'metal', 'metro', 'microphone', 'minidisc', 'mobile_phone_off', 'moneybag', 'monkey', 'monkey_face', 'moon', 'mortar_board', 'mount_fuji', 'mouse', 'movie_camera', 'muscle', 'musical_note', 'nail_care', 'necktie', 'new', 'no_good', 'no_smoking', 'nose', 'notes', 'o', 'o2', 'ocean', 'octocat', 'octopus', 'oden', 'office', 'ok', 'ok_hand', 'ok_woman', 'older_man', 'older_woman', 'open_hands', 'ophiuchus', 'palm_tree', 'parking', 'part_alternation_mark', 'pencil', 'penguin', 'pensive', 'persevere', 'person_with_blond_hair', 'phone', 'pig', 'pill', 'pisces', 'plus1', 'point_down', 'point_left', 'point_right', 'point_up', 'point_up_2', 'police_car', 'poop', 'post_office', 'postbox', 'pray', 'princess', 'punch', 'purple_heart', 'question', 'rabbit', 'racehorse', 'radio', 'rage', 'rage1', 'rage2', 'rage3', 'rage4', 'rainbow', 'raised_hands', 'ramen', 'red_car', 'red_circle', 'registered', 'relaxed', 'relieved', 'restroom', 'rewind', 'ribbon', 'rice', 'rice_ball', 'rice_cracker', 'rice_scene', 'ring', 'rocket', 'roller_coaster', 'rose', 'ru', 'runner', 'sa', 'sagittarius', 'sailboat', 'sake', 'sandal', 'santa', 'satellite', 'satisfied', 'saxophone', 'school', 'school_satchel', 'scissors', 'scorpius', 'scream', 'seat', 'secret', 'shaved_ice', 'sheep', 'shell', 'ship', 'shipit', 'shirt', 'shit', 'shoe', 'signal_strength', 'six_pointed_star', 'ski', 'skull', 'sleepy', 'slot_machine', 'smile', 'smiley', 'smirk', 'smoking', 'snake', 'snowman', 'sob', 'soccer', 'space_invader', 'spades', 'spaghetti', 'sparkler', 'sparkles', 'speaker', 'speedboat', 'squirrel', 'star', 'star2', 'stars', 'station', 'statue_of_liberty', 'stew', 'strawberry', 'sunflower', 'sunny', 'sunrise', 'sunrise_over_mountains', 'surfer', 'sushi', 'suspect', 'sweat', 'sweat_drops', 'swimmer', 'syringe', 'tada', 'tangerine', 'taurus', 'taxi', 'tea', 'telephone', 'tennis', 'tent', 'thumbsdown', 'thumbsup', 'ticket', 'tiger', 'tm', 'toilet', 'tokyo_tower', 'tomato', 'tongue', 'top', 'tophat', 'traffic_light', 'train', 'trident', 'trophy', 'tropical_fish', 'truck', 'trumpet', 'tshirt', 'tulip', 'tv', 'u5272', 'u55b6', 'u6307', 'u6708', 'u6709', 'u6e80', 'u7121', 'u7533', 'u7a7a', 'umbrella', 'unamused', 'underage', 'unlock', 'up', 'us', 'v', 'vhs', 'vibration_mode', 'virgo', 'vs', 'walking', 'warning', 'watermelon', 'wave', 'wc', 'wedding', 'whale', 'wheelchair', 'white_square', 'wind_chime', 'wink', 'wink2', 'wolf', 'woman', 'womans_hat', 'womens', 'x', 'yellow_heart', 'zap', 'zzz'];\n\n}).call(this);\n\n})();\n//@ sourceURL=config/emoij"),minispade.register("data/sponsors",'(function() {(function() {\n\n this.Travis.SPONSORS = [\n {\n type: \'platinum\',\n url: "http://www.wooga.com",\n image: "wooga-205x130.png"\n }, {\n type: \'platinum\',\n url: "http://bendyworks.com",\n image: "bendyworks-205x130.png"\n }, {\n type: \'platinum\',\n url: "http://cloudcontrol.com",\n image: "cloudcontrol-205x130.png"\n }, {\n type: \'platinum\',\n url: "http://xing.de",\n image: "xing-205x130.png"\n }, {\n type: \'gold\',\n url: "http://heroku.com",\n image: "heroku-205x60.png"\n }, {\n type: \'gold\',\n url: "http://soundcloud.com",\n image: "soundcloud-205x60.png"\n }, {\n type: \'gold\',\n url: "http://nedap.com",\n image: "nedap-205x60.png"\n }, {\n type: \'gold\',\n url: "http://mongohq.com",\n image: "mongohq-205x60.png"\n }, {\n type: \'gold\',\n url: "http://zweitag.de",\n image: "zweitag-205x60.png"\n }, {\n type: \'gold\',\n url: "http://kanbanery.com",\n image: "kanbanery-205x60.png"\n }, {\n type: \'gold\',\n url: "http://ticketevolution.com",\n image: "ticketevolution-205x60.jpg"\n }, {\n type: \'gold\',\n url: "http://plan.io/travis",\n image: "planio-205x60.png"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://cobot.me\\">Cobot</a><span>: The one tool to run your coworking space</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://jumpstartlab.com\\">JumpstartLab</a><span>: We build developers</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://evilmartians.com\\">Evil Martians</a><span>: Agile Ruby on Rails development</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://zendesk.com\\">Zendesk</a><span>: Love your helpdesk</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://stripe.com\\">Stripe</a><span>: Payments for developers</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://basho.com\\">Basho</a><span>: We make Riak!</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://thinkrelevance.com\\">Relevance</a><span>: We deliver software solutions</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://mindmatters.de\\">Mindmatters</a><span>: Software für Menschen</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://amenhq.com\\">Amen</a><span>: The best and worst of everything</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://site5.com\\">Site5</a><span>: Premium Web Hosting Solutions</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://www.crowdint.com\\">Crowd Interactive</a><span>: Leading Rails consultancy in Mexico</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://www.atomicobject.com/detroit\\">Atomic Object</a><span>: Work with really smart people</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://codeminer.com.br\\">Codeminer</a><span>: smart services for your startup</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://cloudant.com\\">Cloudant</a><span>: grow into your data layer, not out of it</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://gidsy.com\\">Gidsy</a><span>: Explore, organize &amp; book unique things to do!</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://5apps.com\\">5apps</a><span>: Package &amp; deploy HTML5 apps automatically</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://meltmedia.com\\">Meltmedia</a><span>: We are Interactive Superheroes</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://www.fngtps.com\\">Fingertips</a><span> offers design and development services</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://www.engineyard.com\\">Engine Yard</a><span>: Build epic apps, let us handle the rest</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://malwarebytes.org\\">Malwarebytes</a><span>: Defeat Malware once and for all.</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://readmill.com\\">Readmill</a><span>: The best reading app on the iPad.</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://www.mdsol.com\\">Medidata</a><span>: clinical tech improving quality of life</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://coderwall.com/teams/4f27194e973bf000040005f0\\">ESM</a><span>: Japan\'s best agile Ruby/Rails consultancy</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://twitter.com\\">Twitter</a><span>: instantly connects people everywhere</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://agileanimal.com\\">AGiLE ANiMAL</a><span>: we <3 Travis CI.</span>"\n }, {\n type: \'silver\',\n link: "<a href=\\"http://tupalo.com\\">Tupalo</a><span>: Discover, review &amp; share local businesses.</span>"\n }\n ];\n\n this.Travis.WORKERS = {\n "jvm-otp1.worker.travis-ci.org": {\n name: "Travis Pro",\n url: "http://travis-ci.com"\n },\n "jvm-otp2.worker.travis-ci.org": {\n name: "Transloadit",\n url: "http://transloadit.com"\n },\n "ppp1.worker.travis-ci.org": {\n name: "Travis Pro",\n url: "http://beta.travis-ci.com"\n },\n "ppp2.worker.travis-ci.org": {\n name: "EnterpriseRails",\n url: "http://www.enterprise-rails.com"\n },\n "ppp3.worker.travis-ci.org": {\n name: "Alchemy CMS",\n url: "http://alchemy-cms.com/"\n },\n "rails1.worker.travis-ci.org": {\n name: "EnterpriseRails",\n url: "http://www.enterprise-rails.com"\n },\n "ruby1.worker.travis-ci.org": {\n name: "Engine Yard",\n url: "http://www.engineyard.com"\n },\n "ruby2.worker.travis-ci.org": {\n name: "EnterpriseRails",\n url: "http://www.enterprise-rails.com"\n },\n "ruby3.worker.travis-ci.org": {\n name: "Railslove",\n url: "http://railslove.de"\n },\n "ruby4.worker.travis-ci.org": {\n name: "Engine Yard",\n url: "http://www.engineyard.com"\n },\n "spree.worker.travis-ci.org": {\n name: "Spree",\n url: "http://spreecommerce.com"\n },\n "staging.worker.travis-ci.org": {\n name: "EnterpriseRails",\n url: "http://www.enterprise-rails.com"\n }\n };\n\n}).call(this);\n\n})();\n//@ sourceURL=data/sponsors'),minispade.register("ext/jquery","(function() {(function() {\n\n $.fn.extend({\n outerHtml: function() {\n return $(this).wrap('<div></div>').parent().html();\n },\n outerElement: function() {\n return $($(this).outerHtml()).empty();\n },\n flash: function() {\n return Utils.flash(this);\n },\n unflash: function() {\n return Utils.unflash(this);\n },\n filterLog: function() {\n this.deansi();\n return this.foldLog();\n },\n deansi: function() {\n return this.html(Utils.deansi(this.html()));\n },\n foldLog: function() {\n return this.html(Utils.foldLog(this.html()));\n },\n unfoldLog: function() {\n return this.html(Utils.unfoldLog(this.html()));\n },\n updateTimes: function() {\n return Utils.updateTimes(this);\n },\n activateTab: function(tab) {\n return Utils.activateTab(this, tab);\n },\n timeInWords: function() {\n return $(this).each(function() {\n return $(this).text(Utils.timeInWords(parseInt($(this).attr('title'))));\n });\n },\n updateGithubStats: function(repo) {\n return Utils.updateGithubStats(repo, $(this));\n }\n });\n\n $.extend({\n isEmpty: function(obj) {\n if ($.isArray(obj)) {\n return !obj.length;\n } else if ($.isObject(obj)) {\n return !$.keys(obj).length;\n } else {\n return !obj;\n }\n },\n isObject: function(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n },\n keys: function(obj) {\n var keys;\n keys = [];\n $.each(obj, function(key) {\n return keys.push(key);\n });\n return keys;\n },\n values: function(obj) {\n var values;\n values = [];\n $.each(obj, function(key, value) {\n return values.push(value);\n });\n return values;\n },\n underscore: function(string) {\n return string[0].toLowerCase() + string.substring(1).replace(/([A-Z])?/g, function(match, chr) {\n if (chr) {\n return \"_\" + (chr.toUpperCase());\n } else {\n return '';\n }\n });\n },\n camelize: function(string, uppercase) {\n string = uppercase === false ? $.underscore(string) : $.capitalize(string);\n return string.replace(/_(.)?/g, function(match, chr) {\n if (chr) {\n return chr.toUpperCase();\n } else {\n return '';\n }\n });\n },\n capitalize: function(string) {\n return string[0].toUpperCase() + string.substring(1);\n },\n compact: function(object) {\n return $.grep(object, function(value) {\n return !!value;\n });\n },\n all: function(array, callback) {\n var args, i;\n args = Array.prototype.slice.apply(arguments);\n callback = args.pop();\n array = args.pop() || this;\n i = 0;\n while (i < array.length) {\n if (callback(array[i])) {\n return false;\n }\n i++;\n }\n return true;\n },\n detect: function(array, callback) {\n var args, i;\n args = Array.prototype.slice.apply(arguments);\n callback = args.pop();\n array = args.pop() || this;\n i = 0;\n while (i < array.length) {\n if (callback(array[i])) {\n return array[i];\n }\n i++;\n }\n },\n select: function(array, callback) {\n var args, i, result;\n args = Array.prototype.slice.apply(arguments);\n callback = args.pop();\n array = args.pop() || this;\n result = [];\n i = 0;\n while (i < array.length) {\n if (callback(array[i])) {\n result.push(array[i]);\n }\n i++;\n }\n return result;\n },\n slice: function(object, key) {\n var keys, result;\n keys = Array.prototype.slice.apply(arguments);\n object = (typeof keys[0] === 'object' ? keys.shift() : this);\n result = {};\n for (key in object) {\n if (keys.indexOf(key) > -1) {\n result[key] = object[key];\n }\n }\n return result;\n },\n only: function(object) {\n var key, keys, result;\n keys = Array.prototype.slice.apply(arguments);\n object = (typeof keys[0] === 'object' ? keys.shift() : this);\n result = {};\n for (key in object) {\n if (keys.indexOf(key) !== -1) {\n result[key] = object[key];\n }\n }\n return result;\n },\n except: function(object) {\n var key, keys, result;\n keys = Array.prototype.slice.apply(arguments);\n object = (typeof keys[0] === 'object' ? keys.shift() : this);\n result = {};\n for (key in object) {\n if (keys.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n return result;\n },\n intersect: function(array, other) {\n return array.filter(function(element) {\n return other.indexOf(element) !== -1;\n });\n },\n map: function(elems, callback, arg) {\n var i, isArray, key, length, ret, value;\n value = void 0;\n key = void 0;\n ret = [];\n i = 0;\n length = elems.length;\n isArray = elems instanceof jQuery || length !== void 0 && typeof length === 'number' && (length > 0 && elems[0] && elems[length - 1]) || length === 0 || jQuery.isArray(elems);\n if (isArray) {\n while (i < length) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret[ret.length] = value;\n }\n i++;\n }\n } else {\n for (key in elems) {\n value = callback(elems[key], key, arg);\n if (value != null) {\n ret[ret.length] = value;\n }\n }\n }\n return ret.concat.apply([], ret);\n },\n shuffle: function(array) {\n var current, tmp, top;\n array = array.slice();\n top = array.length;\n while (top && --top) {\n current = Math.floor(Math.random() * (top + 1));\n tmp = array[current];\n array[current] = array[top];\n array[top] = tmp;\n }\n return array;\n },\n truncate: function(string, length) {\n if (string.length > length) {\n return string.trim().substring(0, length) + '...';\n } else {\n return string;\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=ext/jquery"),minispade.register("travis/ajax","(function() {(function() {\n\n jQuery.support.cors = true;\n\n this.Travis.ajax = Em.Object.create({\n DEFAULT_OPTIONS: {\n accepts: {\n json: 'application/vnd.travis-ci.2+json'\n }\n },\n get: function(url, callback) {\n return this.ajax(url, 'get', {\n success: callback\n });\n },\n post: function(url, data, callback) {\n return this.ajax(url, 'post', {\n data: data,\n success: callback\n });\n },\n ajax: function(url, method, options) {\n var endpoint, success, token, _base,\n _this = this;\n endpoint = Travis.config.api_endpoint || '';\n options = options || {};\n if (token = sessionStorage.getItem('travis.token')) {\n options.headers || (options.headers = {});\n (_base = options.headers)['Authorization'] || (_base['Authorization'] = \"token \" + token);\n }\n options.url = \"\" + endpoint + url;\n options.type = method;\n options.dataType = 'json';\n options.contentType = 'application/json; charset=utf-8';\n options.context = this;\n if (options.data && method !== 'GET' && method !== 'get') {\n options.data = JSON.stringify(options.data);\n }\n success = options.success || (function() {});\n options.success = function(data) {\n var _ref;\n if (((_ref = Travis.app) != null ? _ref.router : void 0) && data.flash) {\n Travis.app.router.flashController.loadFlashes(data.flash);\n }\n delete data.flash;\n return success.call(_this, data);\n };\n options.error = function(data) {\n if (data.flash) {\n return Travis.app.router.flashController.pushObject(data.flash);\n }\n };\n return $.ajax($.extend(options, Travis.ajax.DEFAULT_OPTIONS));\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/ajax"),minispade.register("travis/expandable_record_array","(function() {(function() {\n\n Travis.ExpandableRecordArray = DS.RecordArray.extend({\n isLoaded: false,\n isLoading: false,\n load: function(array) {\n var observer, self;\n this.set('isLoading', true);\n self = this;\n observer = function() {\n var content;\n if (this.get('isLoaded')) {\n content = self.get('content');\n array.removeObserver('isLoaded', observer);\n array.forEach(function(record) {\n return self.pushObject(record);\n });\n self.set('isLoading', false);\n return self.set('isLoaded', true);\n }\n };\n return array.addObserver('isLoaded', observer);\n },\n pushObject: function(record) {\n var clientId, id, ids;\n ids = this.get('content');\n id = record.get('id');\n clientId = record.get('clientId');\n if (ids.contains(clientId)) {\n return;\n }\n return ids.pushObject(clientId);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/expandable_record_array"),minispade.register("travis/limited_array","(function() {(function() {\n\n Travis.LimitedArray = Em.ArrayProxy.extend({\n limit: 10,\n init: function() {\n return this._super.apply(this, arguments);\n },\n arrangedContent: (function() {\n var content;\n if (content = this.get('content')) {\n return content.slice(0, this.get('limit'));\n }\n }).property('content'),\n contentArrayDidChange: function(array, index, removedCount, addedCount) {\n var addedObjects, arrangedContent, length, limit, object, _i, _len;\n this._super.apply(this, arguments);\n if (addedCount > 0) {\n addedObjects = array.slice(index, index + addedCount);\n arrangedContent = this.get('arrangedContent');\n for (_i = 0, _len = addedObjects.length; _i < _len; _i++) {\n object = addedObjects[_i];\n arrangedContent.unshiftObject(object);\n }\n limit = this.get('limit');\n length = arrangedContent.get('length');\n if (length > limit) {\n return arrangedContent.replace(limit, length - limit);\n }\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/limited_array"),minispade.register("travis/location","(function() {(function() {\n\n Travis.Location = Ember.HistoryLocation.extend({\n onUpdateURL: function(callback) {\n var guid;\n guid = Ember.guidFor(this);\n return Ember.$(window).bind('popstate.ember-location-' + guid, function(e) {\n return callback(location.pathname + location.hash);\n });\n },\n getURL: function() {\n var location;\n location = this.get('location');\n return location.pathname + location.hash;\n },\n initState: function() {\n this.replaceState(this.getURL());\n return Ember.set(this, 'history', window.history);\n }\n });\n\n Ember.Location.implementations['travis'] = Travis.Location;\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/location"),minispade.register("travis/log","(function() {(function() {\n\n this.Travis.Log = {\n FOLDS: {\n schema: /(<p.*?\\/a>\\$ (?:bundle exec )?rake( db:create)? db:schema:load[\\s\\S]*?<p.*?\\/a>-- assume_migrated_upto_version[\\s\\S]*?<\\/p>\\n<p.*?\\/a>.*<\\/p>)/g,\n migrate: /(<p.*?\\/a>\\$ (?:bundle exec )?rake( db:create)? db:migrate[\\s\\S]*== +\\w+: migrated \\(.*\\) =+)/g,\n bundle: /(<p.*?\\/a>\\$ bundle install.*<\\/p>\\n(<p.*?\\/a>(Updating|Using|Installing|Fetching|remote:|Receiving|Resolving).*?<\\/p>\\n|<p.*?\\/a><\\/p>\\n)*)/g,\n exec: /(<p.*?\\/a>[\\/\\w]*.rvm\\/rubies\\/[\\S]*?\\/(ruby|rbx|jruby) .*?<\\/p>)/g\n },\n filter: function(log, path) {\n log = this.escape(log);\n log = this.deansi(log);\n log = log.replace(/\\r/g, '');\n log = this.number(log, path);\n log = this.fold(log);\n log = log.replace(/\\n/g, '');\n return log;\n },\n stripPaths: function(log) {\n return log.replace(/\\/home\\/vagrant\\/builds(\\/[^\\/\\n]+){2}\\//g, '');\n },\n escape: function(log) {\n return Handlebars.Utils.escapeExpression(log);\n },\n escapeRuby: function(log) {\n return log.replace(/#<(\\w+.*?)>/, '#&lt;$1&gt;');\n },\n number: function(log, path) {\n var result;\n path = \"\" + path + \"/\";\n result = '';\n $.each(log.trim().split('\\n'), function(ix, line) {\n var number, pathWithNumber;\n number = ix + 1;\n pathWithNumber = \"\" + path + \"#L\" + number;\n return result += '<p><a href=\"%@\" id=\"L%@\" class=\"log-line-number\" name=\"L%@\">%@</a>%@</p>\\n'.fmt(pathWithNumber, number, number, number, line);\n });\n return result.trim();\n },\n deansi: function(log) {\n var ansi, text;\n log = log.replace(/\\r\\r/g, '\\r').replace(/\\033\\[K\\r/g, '\\r').replace(/^.*\\r(?!$)/gm, '').replace(/\\[2K/g, '').replace(/\\033\\(B/g, \"\");\n ansi = ansiparse(log);\n text = '';\n ansi.forEach(function(part) {\n var classes;\n classes = [];\n part.foreground && classes.push(part.foreground);\n part.background && classes.push('bg-' + part.background);\n part.bold && classes.push('bold');\n part.italic && classes.push('italic');\n return text += (classes.length ? '<span class=\\'' + classes.join(' ') + '\\'>' + part.text + '</span>' : part.text);\n });\n return text.replace(/\\033/g, '');\n },\n fold: function(log) {\n log = this.unfold(log);\n $.each(Travis.Log.FOLDS, function(name, pattern) {\n return log = log.replace(pattern, function() {\n return '<div class=\\'fold ' + name + '\\'>' + arguments[1].trim() + '</div>';\n });\n });\n return log;\n },\n unfold: function(log) {\n return log.replace(/<div class='fold[^']*'>([\\s\\S]*?)<\\/div>/g, '$1\\n');\n },\n location: function() {\n return window.location.hash;\n }\n };\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/log"
),minispade.register("travis/model","(function() {(function() {\n\n this.Travis.Model = DS.Model.extend({\n primaryKey: 'id',\n id: DS.attr('number'),\n init: function() {\n this.loadedAttributes = [];\n return this._super.apply(this, arguments);\n },\n get: function(name) {\n if (this.constructor.isAttribute(name) && this.get('incomplete') && !this.isAttributeLoaded(name)) {\n this.loadTheRest();\n }\n return this._super.apply(this, arguments);\n },\n refresh: function() {\n var id, store;\n if (id = this.get('id')) {\n store = this.get('store');\n return store.adapter.find(store, this.constructor, id);\n }\n },\n update: function(attrs) {\n var _this = this;\n $.each(attrs, function(key, value) {\n if (key !== 'id') {\n return _this.set(key, value);\n }\n });\n return this;\n },\n isAttributeLoaded: function(name) {\n var meta;\n if (meta = Ember.get(this.constructor, 'attributes').get(name)) {\n name = meta.key(this.constructor);\n return this.get('store').isDataLoadedFor(this.constructor, this.get('clientId'), name);\n }\n },\n isComplete: (function() {\n if (this.get('incomplete')) {\n this.loadTheRest();\n return false;\n } else {\n this.set('isCompleting', false);\n return this.get('isLoaded');\n }\n }).property('incomplete', 'isLoaded'),\n loadTheRest: function() {\n if (this.get('isCompleting')) {\n return;\n }\n this.set('isCompleting', true);\n return this.refresh();\n },\n select: function() {\n return this.constructor.select(this.get('id'));\n },\n loadedAsIncomplete: function() {\n return this.set('incomplete', true);\n }\n });\n\n this.Travis.Model.reopenClass({\n find: function() {\n if (arguments.length === 0) {\n return Travis.app.store.findAll(this);\n } else {\n return this._super.apply(this, arguments);\n }\n },\n filter: function(callback) {\n return Travis.app.store.filter(this, callback);\n },\n load: function(attrs) {\n return Travis.app.store.load(this, attrs);\n },\n select: function(id) {\n return this.find().forEach(function(record) {\n return record.set('selected', record.get('id') === id);\n });\n },\n buildURL: function(suffix) {\n var base, url;\n base = this.url || this.pluralName();\n Ember.assert('Base URL (' + base + ') must not start with slash', !base || base.toString().charAt(0) !== '/');\n Ember.assert('URL suffix (' + suffix + ') must not start with slash', !suffix || suffix.toString().charAt(0) !== '/');\n url = [base];\n if (suffix !== void 0) {\n url.push(suffix);\n }\n return url.join('/');\n },\n singularName: function() {\n var name, parts;\n parts = this.toString().split('.');\n name = parts[parts.length - 1];\n return name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);\n },\n pluralName: function() {\n return Travis.app.store.adapter.pluralize(this.singularName());\n },\n isAttribute: function(name) {\n return Ember.get(this, 'attributes').has(name);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/model"),minispade.register("travis/ticker","(function() {(function() {\n\n this.Travis.Ticker = Ember.Object.extend({\n init: function() {\n if (this.get('interval') !== -1) {\n return this.schedule();\n }\n },\n tick: function() {\n var context, target, targets, _i, _len;\n context = this.get('context');\n targets = this.get('targets') || [this.get('target')];\n for (_i = 0, _len = targets.length; _i < _len; _i++) {\n target = targets[_i];\n if (context) {\n target = context.get(target);\n }\n if (target) {\n target.tick();\n }\n }\n return this.schedule();\n },\n schedule: function() {\n var _this = this;\n return Ember.run.later((function() {\n return _this.tick();\n }), this.get('interval') || Travis.app.TICK_INTERVAL);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/ticker"),minispade.register("travis","(function() {(function() {\nminispade.require('ext/jquery');\nminispade.require('ext/ember/namespace');\n\n this.Travis = Em.Namespace.create({\n config: {\n api_endpoint: $('meta[rel=\"travis.api_endpoint\"]').attr('href'),\n pusher_key: $('meta[name=\"travis.pusher_key\"]').attr('value')\n },\n CONFIG_KEYS: ['rvm', 'gemfile', 'env', 'jdk', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala'],\n ROUTES: {\n 'profile/:login/me': ['profile', 'user'],\n 'profile/:login': ['profile', 'hooks'],\n 'profile': ['profile', 'hooks'],\n 'stats': ['stats', 'show'],\n ':owner/:name/jobs/:id/:line': ['home', 'job'],\n ':owner/:name/jobs/:id': ['home', 'job'],\n ':owner/:name/builds/:id': ['home', 'build'],\n ':owner/:name/builds': ['home', 'builds'],\n ':owner/:name/pull_requests': ['home', 'pullRequests'],\n ':owner/:name/branches': ['home', 'branches'],\n ':owner/:name': ['home', 'current'],\n '': ['home', 'index'],\n '#': ['home', 'index']\n },\n QUEUES: [\n {\n name: 'common',\n display: 'Common'\n }, {\n name: 'php',\n display: 'PHP, Perl and Python'\n }, {\n name: 'node_js',\n display: 'Node.js'\n }, {\n name: 'jvmotp',\n display: 'JVM and Erlang'\n }, {\n name: 'rails',\n display: 'Rails'\n }, {\n name: 'spree',\n display: 'Spree'\n }\n ],\n INTERVALS: {\n sponsors: -1,\n times: -1,\n updateTimes: 1000\n },\n setLocale: function(locale) {\n if (!locale) {\n return;\n }\n I18n.locale = locale;\n return localStorage.setItem('travis.locale', locale);\n },\n needsLocaleChange: function(locale) {\n return I18n.locale !== locale;\n },\n run: function(attrs) {\n if (location.hash.slice(0, 2) === '#!') {\n location.href = location.href.replace('#!/', '');\n }\n this.setLocale(localStorage.getItem('travis.locale') || 'en');\n return Ember.run.next(this, function() {\n var app,\n _this = this;\n app = Travis.App.create(attrs || {});\n $.each(Travis, function(key, value) {\n if (value && value.isClass && key !== 'constructor') {\n return app[key] = value;\n }\n });\n this.app = app;\n this.store = app.store;\n return $(function() {\n return app.initialize();\n });\n });\n }\n });\nminispade.require('travis/ajax');\nminispade.require('app');\n\n}).call(this);\n\n})();\n//@ sourceURL=travis"),minispade.register("templates",'(function() {\nEmber.TEMPLATES[\'auth/signin\'] = Ember.Handlebars.compile("{{#if view.signingIn}}\\n <h1>Signing in ...</h1>\\n <p>\\n Trying to authenticate with GitHub.\\n </p>\\n{{else}}\\n <h1>Sign in</h1>\\n <p>\\n <a href=\\"#\\" {{action signIn target=\\"Travis.app\\"}}>Please sign in with GitHub.</a>\\n </p>\\n{{/if}}\\n");\n\nEmber.TEMPLATES[\'builds/list\'] = Ember.Handlebars.compile("{{#if builds.isLoaded}}\\n <table id=\\"builds\\" class=\\"list\\">\\n <thead>\\n <tr>\\n <th>{{t builds.name}}</th>\\n <th>{{t builds.commit}}</th>\\n <th>{{t builds.message}}</th>\\n <th>{{t builds.duration}}</th>\\n <th>{{t builds.finished_at}}</th>\\n </tr>\\n </thead>\\n\\n <tbody>\\n {{#each build in builds}}\\n {{#view Travis.BuildsItemView contextBinding=\\"build\\"}}\\n <td class=\\"number\\">\\n <span class=\\"status\\"></span>\\n {{#if id}}\\n <a {{action showBuild repo this href=true}}>\\n {{number}}\\n </a>\\n {{/if}}\\n </td>\\n <td class=\\"commit\\">\\n <a {{bindAttr href=\\"view.urlGithubCommit\\"}}>\\n {{formatCommit commit}}\\n </a>\\n </td>\\n <td class=\\"message\\">\\n {{{formatMessage commit.message short=\\"true\\"}}}\\n </td>\\n <td class=\\"duration\\" {{bindAttr title=\\"duration\\"}}>\\n {{formatDuration duration}}\\n </td>\\n <td class=\\"finished_at timeago\\" {{bindAttr title=\\"finishedAt\\"}}>\\n {{formatTime finishedAt}}\\n </td>\\n {{/view}}\\n {{/each}}\\n </tbody>\\n </table>\\n <p>\\n {{view view.ShowMoreButton}}\\n </p>\\n{{else}}\\n <div class=\\"loading\\"><span>Loading</span></div>\\n{{/if}}\\n");\n\nEmber.TEMPLATES[\'builds/show\'] = Ember.Handlebars.compile("{{#with view}}\\n {{#if loading}}\\n <span>Loading</span>\\n {{else}}\\n <dl id=\\"summary\\">\\n <div class=\\"left\\">\\n <dt>{{t builds.name}}</dt>\\n <dd class=\\"number\\">\\n <span class=\\"status\\"></span>\\n {{#if build.id}}\\n <a {{action showBuild repo build href=true}}>{{build.number}}</a>\\n {{/if}}\\n </dd>\\n <dt class=\\"finished_at_label\\">{{t builds.finished_at}}</dt>\\n <dd class=\\"finished_at timeago\\" {{bindAttr title=\\"finishedAt\\"}}>{{formatTime build.finishedAt}}</dd>\\n <dt>{{t builds.duration}}</dt>\\n <dd class=\\"duration\\" {{bindAttr title=\\"startedAt\\"}}>{{formatDuration build.duration}}</dd>\\n </div>\\n\\n <div class=\\"right\\">\\n <dt>{{t builds.commit}}</dt>\\n <dd class=\\"commit\\"><a href=\\"{{unbound urlGithubCommit}}\\">{{formatCommit build.commit}}</a></dd>\\n {{#if commit.compareUrl}}\\n <dt>{{t builds.compare}}</dt>\\n <dd class=\\"compare\\"><a href=\\"{{unbound commit.compareUrl}}\\">{{pathFrom build.commit.compareUrl}}</a></dd>\\n {{/if}}\\n {{#if commit.authorName}}\\n <dt>{{t builds.author}}</dt>\\n <dd class=\\"author\\"><a href=\\"{{unbound urlAuthor}}\\">{{build.commit.authorName}}</a></dd>\\n {{/if}}\\n {{#if commit.committerName}}\\n <dt>{{t builds.committer}}</dt>\\n <dd class=\\"committer\\"><a href=\\"{{unbound urlCommitter}}\\">{{build.commit.committerName}}</a></dd>\\n {{/if}}\\n </div>\\n\\n <dt>{{t builds.message}}</dt>\\n <dd class=\\"message\\">{{{formatMessage build.commit.message}}}</dd>\\n\\n {{#unless isMatrix}}\\n <dt>{{t builds.config}}</dt>\\n <dd class=\\"config\\">{{formatConfig build.config}}</dd>\\n {{/unless}}\\n </dl>\\n\\n {{#if build.isMatrix}}\\n {{view Travis.JobsView jobsBinding=\\"build.requiredJobs\\" required=\\"true\\"}}\\n {{view Travis.JobsView jobsBinding=\\"build.allowedFailureJobs\\"}}\\n {{else}}\\n {{view Travis.LogView contextBinding=\\"build.jobs.firstObject\\"}}\\n {{/if}}\\n {{/if}}\\n{{/with}}\\n");\n\nEmber.TEMPLATES[\'events/list\'] = Ember.Handlebars.compile("{{#if view.events.isLoaded}}\\n <table id=\\"events\\" class=\\"list\\">\\n <thead>\\n <tr>\\n <th>Time</th>\\n <th>Event</th>\\n <th>Result</th>\\n <th>Message</th>\\n </tr>\\n </thead>\\n\\n <tbody>\\n {{#each event in view.events}}\\n {{#view Travis.EventsItemView contextBinding=\\"event\\"}}\\n <td class=\\"created_at\\">\\n {{formatTime createdAt}}\\n </td>\\n <td class=\\"event\\">\\n {{event.event_}}\\n </td>\\n <td class=\\"result\\">\\n {{event.result}}\\n </td>\\n <td class=\\"message\\">\\n {{event.message}}\\n </td>\\n {{/view}}\\n {{/each}}\\n </tbody>\\n </table>\\n{{else}}\\n <div class=\\"loading\\"><span>Loading</span></div>\\n{{/if}}\\n\\n");\n\nEmber.TEMPLATES[\'jobs/list\'] = Ember.Handlebars.compile("{{#if view.jobs.length}}\\n {{#if view.required}}\\n <table id=\\"jobs\\" class=\\"list\\">\\n <caption>\\n {{t jobs.build_matrix}}\\n </caption>\\n {{else}}\\n <table id=\\"allowed_failure_jobs\\" class=\\"list\\">\\n <caption>\\n {{t jobs.allowed_failures}}\\n <a title=\\"What\'s this?\\" class=\\"help open-popup\\" name=\\"help-allowed_failures\\" {{action popup target=\\"view\\"}}></a>\\n </caption>\\n {{/if}}\\n <thead>\\n <tr>\\n {{#each key in view.build.configKeys}}\\n <th>{{key}}</th>\\n {{/each}}\\n </tr>\\n </thead>\\n <tbody>\\n {{#each job in view.jobs}}\\n {{#view Travis.JobsItemView contextBinding=\\"job\\"}}\\n <td class=\\"number\\">\\n <span class=\\"status\\"></span>\\n {{#if job.id}}\\n <a {{action showJob repo job href=true}}>{{number}}</a>\\n {{/if}}\\n </td>\\n <td class=\\"duration\\" {{bindAttr title=\\"startedAt\\"}}>\\n {{formatDuration duration}}\\n </td>\\n <td class=\\"finished_at timeago\\" {{bindAttr title=\\"finishedAt\\"}}>\\n {{formatTime finishedAt}}\\n </td>\\n {{#each value in configValues}}\\n <td>{{value}}</td>\\n {{/each}}\\n {{/view}}\\n {{/each}}\\n </tbody>\\n </table>\\n\\n {{#unless view.required}}\\n <div id=\\"help-allowed_failures\\" class=\\"popup\\">\\n <a href=\\"#\\" class=\\"close\\" {{action popupClose target=\\"view\\"}}></a>\\n <h4>{{t \\"jobs.allowed_failures\\"}}</h4>\\n <p>\\n Allowed Failures are items in your build matrix that are allowed to\\n fail without causing the entire build to be shown as failed.\\n </p>\\n <p>\\n You can define allowed failures in the build matrix as follows:\\n </p>\\n <pre>matrix:\\n allow_failures:\\n - rvm: ruby-head</pre>\\n <p>\\n This lets you add in experimental and preparatory builds to test against versions or\\n configurations that you are not ready to officially support.\\n </p>\\n </div>\\n {{/unless}}\\n{{/if}}\\n");\n\nEmber.TEMPLATES[\'jobs/log\'] = Ember.Handlebars.compile("{{view.logSubscriber}}\\n\\n{{#if view.job.log.isLoaded}}\\n <pre id=\\"log\\" class=\\"ansi\\"><a href=\\"#\\" id=\\"tail\\" {{action toggleTailing target=\\"view\\"}}>\\n <span class=\\"status\\"></span>\\n <label>Follow logs</label>\\n </a>{{{formatLog log.body repo=\\"repository\\" item=\\"parentView.currentItem\\"}}}</pre>\\n\\n {{#if sponsor.name}}\\n <p class=\\"sponsor\\">\\n {{t builds.messages.sponsored_by}}\\n <a {{bindAttr href=\\"sponsor.url\\"}}>{{sponsor.name}}</a>\\n </p>\\n {{/if}}\\n\\n <a href=\'#\' class=\\"to-top\\" {{action toTop target=\\"view\\"}}>To top</a>\\n{{else}}\\n <div id=\\"log\\" class=\\"loading\\">\\n <span>Loading</span>\\n </div>\\n{{/if}}\\n");\n\nEmber.TEMPLATES[\'jobs/show\'] = Ember.Handlebars.compile("{{#with view}}\\n {{#if job.isComplete}}\\n <div {{bindAttr class=\\"view.color\\"}}>\\n <dl id=\\"summary\\">\\n <div class=\\"left\\">\\n <dt>Job</dt>\\n <dd class=\\"number\\">\\n <span class=\\"status\\"></span>\\n {{#if job.id}}\\n <a {{action showJob repo job href=true}}>{{job.number}}</a>\\n {{/if}}\\n </dd>\\n <dt class=\\"finished_at_label\\">{{t jobs.finished_at}}</dt>\\n <dd class=\\"finished_at timeago\\" {{bindAttr title=\\"finishedAt\\"}}>{{formatTime job.finishedAt}}</dd>\\n <dt>{{t jobs.duration}}</dt>\\n <dd class=\\"duration\\" {{bindAttr title=\\"startedAt\\"}}>{{formatDuration job.duration}}</dd>\\n </div>\\n\\n <div class=\\"right\\">\\n <dt>{{t jobs.commit}}</dt>\\n <dd class=\\"commit\\"><a {{bindAttr href=\\"urlGithubCommit\\"}}>{{formatCommit commit}}</a></dd>\\n {{#if commit.compareUrl}}\\n <dt>{{t jobs.compare}}</dt>\\n <dd class=\\"compare\\"><a {{bindAttr href=\\"commit.compareUrl\\"}}>{{pathFrom commit.compareUrl}}</a></dd>\\n {{/if}}\\n {{#if commit.authorName}}\\n <dt>{{t jobs.author}}</dt>\\n <dd class=\\"author\\"><a {{bindAttr href=\\"urlAuthor\\"}}>{{commit.authorName}}</a></dd>\\n {{/if}}\\n {{#if commit.committerName}}\\n <dt>{{t jobs.committer}}</dt>\\n <dd class=\\"committer\\"><a {{bindAttr href=\\"urlCommitter\\"}}>{{commit.committerName}}</a></dd>\\n {{/if}}\\n </div>\\n\\n <dt>{{t jobs.message}}</dt>\\n <dd class=\\"message\\">{{formatMessage commit.message}}</dd>\\n <dt>{{t jobs.config}}</dt>\\n <dd class=\\"config\\">{{formatConfig job.config}}</dd>\\n </dl>\\n\\n {{view Travis.LogView contextBinding=\\"job\\"}}}\\n </div>\\n {{else}}\\n <div id=\\"job\\" class=\\"loading\\">\\n <span>Loading</span>\\n </div>\\n {{/if}}\\n{{/with}}\\n");\n\nEmber.TEMPLATES[\'layouts/flash\'] = Ember.Handlebars.compile("{{#each flash in controller}}\\n {{#view Travis.FlashItemView flashBinding=\\"flash\\"}}\\n <p>{{{flash.message}}}</p>\\n <a class=\\"close\\" {{action close target=\\"view\\"}}></a>\\n {{/view}}\\n{{/each}}\\n");\n\nEmber.TEMPLATES[\'layouts/home\'] = Ember.Handlebars.compile("<div id=\\"top\\">\\n {{outlet top}}\\n</div>\\n\\n<div id=\\"left\\">\\n {{outlet left}}\\n</div>\\n\\n<div id=\\"main\\">\\n {{outlet flash}}\\n {{outlet main}}\\n</div>\\n\\n<div id=\\"right\\">\\n {{outlet right}}\\n</div>\\n");\n\nEmber.TEMPLATES[\'layouts/profile\'] = Ember.Handlebars.compile("<div id=\\"top\\">\\n {{outlet top}}\\n</div>\\n\\n<div id=\\"left\\">\\n {{outlet left}}\\n</div>\\n\\n<div id=\\"main\\">\\n {{outlet flash}}\\n {{outlet main}}\\n</div>\\n\\n<div id=\\"right\\">\\n <div id=\\"github-wrapper\\">\\n <a id=\\"github\\" href=\\"https://github.com/travis-ci\\" title=\\"Fork me on GitHub\\">\\n {{t layouts.application.fork_me}}\\n </a>\\n </div>\\n\\n <div id=\\"slider\\" {{action toggle target=\\"Travis.app.slider\\"}}>\\n <div class=\'icon\'></div>&nbsp;\\n </div>\\n\\n <div class=\\"box\\">\\n <h4>Getting started?</h4>\\n <p>\\n Please read our <a href=\\"http://about.travis-ci.org/docs/user/getting-started\\">guide</a>.\\n It will only take a few minutes :)\\n </p>\\n <p>\\n You can find detailled docs on our <a href=\\"http://about.travis-ci.org/\\">about</a> site.\\n </p>\\n <p>\\n If you need help please don&rsquo;t hesitate to join\\n <a href=\\"irc://irc.freenode.net#travis\\">#travis</a> on irc.freenode.net\\n or our <a href=\\"http://groups.google.com/group/travis-ci\\">mailinglist</a>.\\n </p>\\n </div>\\n</div>\\n");\n\nEmber.TEMPLATES[\'layouts/sidebar\'] = Ember.Handlebars.compile("<div id=\\"github-wrapper\\">\\n <a id=\\"github\\" href=\\"https://github.com/travis-ci\\" title=\\"Fork me on GitHub\\">\\n {{t layouts.application.fork_me}}\\n </a>\\n</div>\\n\\n<div id=\\"slider\\" {{action toggle target=\\"Travis.app.slider\\"}}>\\n <div class=\'icon\'></div>&nbsp;\\n</div>\\n\\n{{view view.DecksView}}\\n{{view view.WorkersView}}\\n{{view view.QueuesView}}\\n{{view view.LinksView}}\\n\\n<div id=\\"about\\" class=\\"box\\">\\n <h4>{{t layouts.about.join}}</h4>\\n <ul>\\n <li>{{t layouts.about.repository}}: <a href=\\"http://github.com/travis-ci\\">Github</a></li>\\n <li>{{t layouts.about.twitter}}: <a href=\\"http://twitter.com/travisci\\">@travisci</a></li>\\n <li>{{t layouts.about.mailing_list}}: <a href=\\"http://groups.google.com/group/travis-ci\\">travis-ci</a></li>\\n <li><a href=\\"irc://irc.freenode.net#travis\\">irc.freenode.net#travis</a></li>\\n </ul>\\n</div>\\n");\n\nEmber.TEMPLATES[\'layouts/simple\'] = Ember.Handlebars.compile("<div id=\\"top\\">\\n {{outlet top}}\\n</div>\\n\\n<div id=\\"main\\">\\n {{outlet flash}}\\n {{outlet main}}\\n</div>\\n");\n\nEmber.TEMPLATES[\'layouts/top\'] = Ember.Handlebars.compile("<a {{action showRoot href=true}}>\\n <h1>Travis</h1>\\n</a>\\n\\n<ul id=\\"navigation\\">\\n <li class=\\"home\\">\\n <a {{action showRoot href=true}}>Home</a>\\n </li>\\n <li class=\\"stats\\">\\n <a {{action showStats href=true}}>Stats</a>\\n </li>\\n <li>\\n <a href=\\"http://about.travis-ci.org/blog\\">Blog</a>\\n </li>\\n <li>\\n <a href=\\"http://about.travis-ci.org/docs\\">Docs</a>\\n </li>\\n <li {{bindAttr class=\\"view.classProfile\\"}}>\\n <p class=\\"handle\\">\\n <a class=\\"signed-out\\" href=\\"#\\" {{action signIn target=\\"Travis.app\\"}}>{{t layouts.top.github_login}}</a>\\n <a class=\\"signed-in\\" {{action showProfile href=true}}><img {{bindAttr src=\\"view.gravatarUrl\\"}}>{{user.name}}</a>\\n <span class=\\"signing-in\\">Signing in</span>\\n </p>\\n <ul>\\n <li>\\n <a {{action showProfile href=true}}>Accounts</a>\\n </li>\\n <li>\\n <a href=\\"/\\" {{action signOut target=\\"Travis.app\\"}}>{{t layouts.top.sign_out}}</a>\\n </li>\\n </ul>\\n </li>\\n</ul>\\n");\n\nEmber.TEMPLATES[\'profile/accounts\'] = Ember.Handlebars.compile("<div id=\\"search_box\\">\\n</div>\\n\\n<ul class=\\"tabs\\">\\n <li id=\\"tab_accounts\\" {{bindAttr class=\\"view.classAccounts\\"}}>\\n <h5><a name=\\"accounts\\" href=\\"\\">Accounts</a></h5>\\n </li>\\n</ul>\\n\\n<div class=\\"tab\\">\\n {{#collection Travis.AccountsListView contentBinding=\\"controller\\"}}\\n <a {{action showAccount view.account href=true}} class=\\"name\\">{{view.name}}</a>\\n <p class=\\"summary\\">\\n <span class=\\"repos_label\\">Repositories:</span>\\n <abbr class=\\"repos\\">{{view.account.reposCount}}</abbr>\\n </p>\\n <div class=\\"indicator\\"><span></span></div>\\n {{/collection}}\\n</div>\\n");\n\nEmber.TEMPLATES[\'profile/show\'] = Ember.Handlebars.compile("<h3>{{view.name}}</h3>\\n\\n{{view Travis.ProfileTabsView}}\\n\\n<div class=\\"tab\\">\\n {{outlet pane}}\\n</div>\\n\\n");\n\nEmber.TEMPLATES[\'profile/tabs\'] = Ember.Handlebars.compile("<ul class=\\"tabs\\">\\n <li id=\\"tab_hooks\\" {{bindAttr class=\\"view.classHooks\\"}}>\\n <h5>\\n <a {{action showAccount view.account href=true}}>Repositories</a>\\n </h5>\\n </li>\\n {{#if view.displayUser}}\\n <li id=\\"tab_user\\" {{bindAttr class=\\"view.classUser\\"}}>\\n <h5>\\n <a {{action showUserProfile view.account href=true}}>Profile</a>\\n </h5>\\n </li>\\n {{/if}}\\n</ul>\\n");\n\nEmber.TEMPLATES[\'profile/tabs/hooks\'] = Ember.Handlebars.compile("<p class=\\"tip\\">\\n {{{t profiles.show.message.your_repos}}}\\n</p>\\n\\n{{#if hooks.isLoaded}}\\n {{#if user.isSyncing}}\\n <p class=\\"message loading\\">\\n <span>Please wait while we sync from GitHub</span>\\n </p>\\n {{else}}\\n <p class=\\"message\\">\\n Last synchronized from GitHub: {{formatTime user.syncedAt}}\\n <a class=\\"sync_now button\\" {{action sync target=\\"user\\"}}>\\n Sync now\\n </a>\\n </p>\\n\\n <ul id=\\"hooks\\">\\n {{#each hook in hooks}}\\n <li {{bindAttr class=\\"hook.active:active\\"}}>\\n <a {{bindAttr href=\\"hook.urlGithub\\"}} rel=\\"nofollow\\">{{hook.slug}}</a>\\n <p class=\\"description\\">{{hook.description}}</p>\\n\\n <div class=\\"controls\\">\\n <a {{bindAttr href=\\"hook.urlGithubAdmin\\"}} class=\\"github-admin tool-tip\\" title=\\"Github service hooks admin page\\"></a>\\n <a {{action toggle target=\\"hook\\"}} class=\\"switch\\">\\n {{#if hook.active}}\\n ON\\n {{else}}\\n OFF\\n {{/if}}\\n </a>\\n </div>\\n </li>\\n {{else}}\\n <li>\\n You do not seem to have any repositories that we could sync.\\n </li>\\n {{/each}}\\n </ul>\\n {{/if}}\\n{{else}}\\n <p class=\\"message loading\\">\\n <span>Loading</span>\\n </p>\\n{{/if}}\\n\\n\\n");\n\nEmber.TEMPLATES[\'profile/tabs/user\'] = Ember.Handlebars.compile("<img {{bindAttr src=\\"view.gravatarUrl\\"}}>\\n\\n<dl class=\\"profile\\">\\n <dt>\\n {{t profiles.show.github}}:\\n </dt>\\n <dd>\\n <a {{bindAttr href=\\"urlGithub\\"}}>{{user.login}}</a>\\n </dd>\\n <dt>\\n {{t profiles.show.email}}:\\n </dt>\\n <dd>\\n {{user.email}}\\n </dd>\\n <dt>\\n {{t profiles.show.token}}:\\n </dt>\\n <dd>\\n {{user.token}}\\n </dd>\\n</dl>\\n\\n<form>\\n {{view Ember.Select id=\\"locale\\"\\n contentBinding=\\"view.locales\\"\\n valueBinding=\\"Travis.app.currentUser.locale\\"\\n optionLabelPath=\\"content.name\\"\\n optionValuePath=\\"content.key\\"}}\\n\\n <button name=\\"commit\\" {{action saveLocale target=\\"view\\"}}>\\n {{t profiles.show.update_locale}}\\n </button>\\n</form>\\n\\n\\n");\n\nEmber.TEMPLATES[\'queues/list\'] = Ember.Handlebars.compile("<ul id=\\"queues\\">\\n{{#each queue in controller}}\\n <li class=\\"queue\\">\\n <h4>{{t queue}}: {{queue.name}}</h4>\\n <ul {{bindAttr id=\\"queue.id\\"}}>\\n {{#each job in queue}}\\n {{#view Travis.QueueItemView jobBinding=\\"job\\"}}\\n <a {{action showJob job.repo job target=\\"Travis.app.router\\" href=true}}>\\n <span class=\\"slug\\">\\n {{job.repo.slug}}\\n </span>\\n #{{job.number}}\\n </a>\\n {{/view}}\\n {{else}}\\n {{t no_job}}\\n {{/each}}\\n </ul>\\n </li>\\n{{/each}}\\n</ul>\\n");\n\nEmber.TEMPLATES[\'repos/list\'] = Ember.Handlebars.compile("<div id=\\"search_box\\">\\n {{view Ember.TextField valueBinding=\\"controller.search\\"}}\\n</div>\\n\\n{{view Travis.ReposListTabsView}}\\n\\n<a {{action toggleInfo target=\\"view\\"}} class=\\"toggle-info\\"></a>\\n\\n<div class=\\"tab\\">\\n {{#collection Travis.ReposListView contentBinding=\\"controller\\"}}\\n {{#with view.repo}}\\n <div class=\\"slug-and-status\\">\\n <span class=\\"status\\"></span>\\n {{#if slug}}\\n <a {{action showRepo this href=true}} class=\\"slug\\">{{slug}}</a>\\n {{/if}}\\n </div>\\n {{#if lastBuildId}}\\n <a {{action showBuild this lastBuildId href=true}} class=\\"last_build\\">{{lastBuildNumber}}</a>\\n {{/if}}\\n\\n <p class=\\"summary\\">\\n <span class=\\"duration_label\\">{{t repositories.duration}}:</span>\\n <abbr class=\\"duration\\" {{bindAttr title=\\"lastBuildStartedAt\\"}}>{{formatDuration lastBuildDuration}}</abbr>,\\n <span class=\\"finished_at_label\\">{{t repositories.finished_at}}:</span>\\n <abbr class=\\"finished_at timeago\\" {{bindAttr title=\\"lastBuildFinishedAt\\"}}>{{formatTime lastBuildFinishedAt}}</abbr>\\n </p>\\n\\n <div class=\\"indicator\\"><span></span></div>\\n\\n {{#if description}}\\n <div class=\\"info\\">\\n <p class=\\"description\\">{{description}}</p>\\n </div>\\n {{/if}}\\n {{/with}}\\n {{else}}\\n <p class=\\"empty\\"></p>\\n {{/collection}}\\n</div>\\n");\n\nEmber.TEMPLATES[\'repos/list/tabs\'] = Ember.Handlebars.compile("<ul class=\\"tabs\\">\\n <li id=\\"tab_recent\\" {{bindAttr class=\\"view.classRecent\\"}}>\\n <h5><a name=\\"recent\\" {{action activate target=\\"view\\"}}>{{t layouts.application.recent}}</a></h5>\\n </li>\\n <li id=\\"tab_owned\\" {{bindAttr class=\\"view.classOwned\\"}}>\\n <h5><a name=\\"owned\\" {{action activate target=\\"view\\"}}>{{t layouts.application.my_repositories}}</a></h5>\\n </li>\\n <li id=\\"tab_search\\" {{bindAttr class=\\"view.classSearch\\"}}>\\n <h5><a name=\\"search\\" {{action activate target=\\"view\\"}}>{{t layouts.application.search}}</a></h5>\\n </li>\\n</ul>\\n\\n");\n\nEmber.TEMPLATES[\'repos/show\'] = Ember.Handlebars.compile("<div id=\\"repo\\" {{bindAttr class=\\"view.class\\"}}>\\n {{#if view.isEmpty}}\\n {{view Travis.ReposEmptyView}}\\n {{else}}\\n {{#if view.repo.isComplete}}\\n {{#with view.repo}}\\n <h3>\\n <a {{bindAttr href=\\"view.urlGithub\\"}}>{{slug}}</a>\\n </h3>\\n\\n <p class=\\"description\\">{{description}}</p>\\n\\n <ul class=\\"github-stats\\">\\n <li class=\\"language\\">\\n {{lastBuildLanguage}}\\n </li>\\n <li>\\n <a class=\\"watchers\\" title=\\"Watchers\\" {{bindAttr href=\\"view.urlGithubWatchers\\"}}>\\n {{stats.watchers}}\\n </a>\\n </li>\\n <li>\\n <a class=\\"forks\\" title=\\"Forks\\" {{bindAttr href=\\"view.urlGithubNetwork\\"}}>\\n {{stats.forks}}\\n </a>\\n </li>\\n </ul>\\n\\n {{view Travis.RepoShowTabsView}}\\n {{view Travis.RepoShowToolsView}}\\n {{/with}}\\n\\n {{else}}\\n <span>Loading</span>\\n {{/if}}\\n\\n <div class=\\"tab\\">\\n {{outlet pane}}\\n </div>\\n {{/if}}\\n</div>\\n\\n");\n\nEmber.TEMPLATES[\'repos/show/tabs\'] = Ember.Handlebars.compile("<ul class=\\"tabs\\">\\n <li id=\\"tab_current\\" {{bindAttr class=\\"view.classCurrent\\"}}>\\n <h5>\\n {{#if view.repo.slug}}\\n <a {{action showRepo view.repo href=true}}>\\n {{t repositories.tabs.current}}\\n </a>\\n {{/if}}\\n </h5>\\n </li>\\n <li id=\\"tab_builds\\" {{bindAttr class=\\"view.classBuilds\\"}}>\\n <h5>\\n {{#if view.repo.slug}}\\n <a {{action showBuilds view.repo href=true}}>\\n {{t repositories.tabs.build_history}}\\n </a>\\n {{/if}}\\n </h5>\\n </li>\\n <li id=\\"tab_pull_requests\\" {{bindAttr class=\\"view.classPullRequests\\"}}>\\n <h5>\\n {{#if view.repo.slug}}\\n <a {{action showPullRequests view.repo href=true}}>\\n {{t repositories.tabs.pull_requests}}\\n </a>\\n {{/if}}\\n </h5>\\n </li>\\n <li id=\\"tab_branches\\" {{bindAttr class=\\"view.classBranches\\"}}>\\n <h5>\\n {{#if view.repo.slug}}\\n <a {{action showBranches view.repo href=true}}>\\n {{t repositories.tabs.branches}}\\n </a>\\n {{/if}}\\n </h5>\\n </li>\\n <li id=\\"tab_events\\" {{bindAttr class=\\"view.classEvents\\"}}>\\n <h5>\\n {{#if view.repo.slug}}\\n <a {{action showEvents view.repo href=true}}>\\n Events\\n </a>\\n {{/if}}\\n </h5>\\n </li>\\n <li id=\\"tab_build\\" {{bindAttr class=\\"view.classBuild\\"}}>\\n <h5>\\n {{#if view.build.id}}\\n <a {{action showBuild view.repo view.build href=true}}>\\n {{t repositories.tabs.build}} #{{view.build.number}}\\n </a>\\n {{/if}}\\n </h5>\\n </li>\\n <li id=\\"tab_job\\" {{bindAttr class=\\"view.classJob\\"}}>\\n <h5>\\n {{#if view.job.id}}\\n <a {{action showJob view.repo view.job href=true}}>\\n {{t repositories.tabs.job}} #{{view.job.number}}\\n </a>\\n {{/if}}\\n </h5>\\n </li>\\n</ul>\\n");\n\nEmber.TEMPLATES[\'repos/show/tools\'] = Ember.Handlebars.compile("<div id=\\"tools\\">\\n <a href=\\"#\\" {{action menu target=\\"view\\"}}></a>\\n <ul class=\\"menu\\">\\n <li>\\n <a href=\\"#\\" name=\\"status-images\\" class=\\"open-popup\\" {{action statusImages target=\\"view\\"}}>Status Images</a>\\n </li>\\n {{#if view.canPush}}\\n <li>\\n <a href=\\"#\\" {{action requeue target=\\"view\\"}}>Rebuild</a>\\n </li>\\n {{/if}}\\n </ul>\\n</div>\\n\\n<div id=\\"status-images\\" class=\\"popup\\">\\n <a href=\\"#\\" class=\\"close\\" {{action popupClose target=\\"view\\"}}></a>\\n <p>\\n <label>{{t repositories.branch}}:</label>\\n {{#if view.branches.isLoaded}}\\n {{view Ember.Select contentBinding=\\"view.branches\\" selectionBinding=\\"view.branch\\" optionLabelPath=\\"content.commit.branch\\" optionValuePath=\\"content.commit.branch\\"}}\\n {{else}}\\n <span class=\\"loading\\"></span>\\n {{/if}}\\n </p>\\n <p>\\n <label>{{t repositories.image_url}}:</label>\\n <input type=\\"text\\" class=\\"url\\" {{bindAttr value=\\"view.urlStatusImage\\"}}></input>\\n </p>\\n <p>\\n <label>{{t repositories.markdown}}:</label>\\n <input type=\\"text\\" class=\\"markdown\\" {{bindAttr value=\\"view.markdownStatusImage\\"}}></input>\\n </p>\\n <p>\\n <label>{{t repositories.textile}}:</label>\\n <input type=\\"text\\" class=\\"textile\\" {{bindAttr value=\\"view.textileStatusImage\\"}}></input>\\n </p>\\n <p>\\n <label>{{t repositories.rdoc}}:</label>\\n <input type=\\"text\\" class=\\"rdoc\\" {{bindAttr value=\\"view.rdocStatusImage\\"}}></input>\\n </p>\\n</div>\\n");\n\nEmber.TEMPLATES[\'sponsors/decks\'] = Ember.Handlebars.compile("<h4>{{t layouts.application.sponsers}}</h4>\\n\\n<ul class=\\"sponsors top\\">\\n {{#each deck in controller}}\\n {{#each deck}}\\n <li {{bindAttr class=\\"type\\"}}>\\n <a {{bindAttr href=\\"url\\"}}>\\n <img {{bindAttr src=\\"image\\"}}>\\n </a>\\n </li>\\n {{/each}}\\n {{/each}}\\n</ul>\\n\\n<p class=\\"hint\\">\\n <a href=\\"https://love.travis-ci.org/sponsors\\">\\n {{{t layouts.application.sponsors_link}}}\\n </a>\\n</p>\\n");\n\nEmber.TEMPLATES[\'sponsors/links\'] = Ember.Handlebars.compile("<div class=\\"box\\">\\n <h4>{{t layouts.application.sponsers}}</h4>\\n\\n <ul class=\\"sponsors bottom\\">\\n {{#each controller}}\\n <li>\\n {{{link}}}\\n </li>\\n {{/each}}\\n </ul>\\n\\n <p class=\\"hint\\">\\n <a href=\\"https://love.travis-ci.org/sponsors\\">\\n {{{t layouts.application.sponsors_link}}}\\n </a>\\n </p>\\n</div>\\n\\n");\n\nEmber.TEMPLATES[\'stats/show\'] = Ember.Handlebars.compile("<h3>Sorry</h3>\\n<p>Statistics are disabled for now.</p>\\n<p> We\'re looking into a solution. If you want to help, please ping us!</p>\\n");\n\nEmber.TEMPLATES[\'workers/list\'] = Ember.Handlebars.compile("{{#view Travis.WorkersView}}\\n <h4>\\n {{t workers}}\\n <a id=\\"toggle-workers\\" {{action toggleWorkers target=\\"parentView.parentView\\"}}></a>\\n </h4>\\n <ul id=\\"workers\\">\\n {{#each group in controller.groups}}\\n {{#view Travis.WorkersListView}}\\n <li class=\\"group\\">\\n <h5 {{action toggle target=\\"view\\"}}>\\n {{group.firstObject.host}}\\n </h5>\\n <ul>\\n {{#each worker in group}}\\n {{#view Travis.WorkersItemView workerBinding=\\"worker\\"}}\\n <li class=\\"worker\\">\\n <div class=\\"status\\"></div>\\n {{#if worker.isWorking}}\\n {{#if worker.job_id}}\\n <a {{action showJob worker.repo worker.job_id target=\\"Travis.app.router\\" href=true}} {{bindAttr title=\\"worker.lastSeenAt\\"}}>\\n {{view.display}}\\n </a>\\n {{/if}}\\n {{else}}\\n {{view.display}}\\n {{/if}}\\n </li>\\n {{/view}}\\n {{/each}}\\n </ul>\\n </li>\\n {{/view}}\\n {{else}}\\n No workers\\n {{/each}}\\n </ul>\\n{{/view}}\\n");\n\n})();\n//@ sourceURL=templates'
),minispade.register("config/locales",'(function() {window.I18n = window.I18n || {}\nwindow.I18n.translations = {"ca":{"locales":{"en":"English","es":"Español","fr":"Français","ja":"日本語","nb":"Norsk Bokmål","nl":"Nederlands","pl":"Polski","pt-BR":"português brasileiro","ru":"Русский"}},"en":{"errors":{"messages":{"not_found":"not found","already_confirmed":"was already confirmed","not_locked":"was not locked"}},"devise":{"failure":{"unauthenticated":"You need to sign in or sign up before continuing.","unconfirmed":"You have to confirm your account before continuing.","locked":"Your account is locked.","invalid":"Invalid email or password.","invalid_token":"Invalid authentication token.","timeout":"Your session expired, please sign in again to continue.","inactive":"Your account was not activated yet."},"sessions":{"signed_in":"Signed in successfully.","signed_out":"Signed out successfully."},"passwords":{"send_instructions":"You will receive an email with instructions about how to reset your password in a few minutes.","updated":"Your password was changed successfully. You are now signed in."},"confirmations":{"send_instructions":"You will receive an email with instructions about how to confirm your account in a few minutes.","confirmed":"Your account was successfully confirmed. You are now signed in."},"registrations":{"signed_up":"You have signed up successfully. If enabled, a confirmation was sent to your e-mail.","updated":"You updated your account successfully.","destroyed":"Bye! Your account was successfully cancelled. We hope to see you again soon."},"unlocks":{"send_instructions":"You will receive an email with instructions about how to unlock your account in a few minutes.","unlocked":"Your account was successfully unlocked. You are now signed in."},"mailer":{"confirmation_instructions":{"subject":"Confirmation instructions"},"reset_password_instructions":{"subject":"Reset password instructions"},"unlock_instructions":{"subject":"Unlock Instructions"}}},"datetime":{"distance_in_words":{"hours_exact":{"one":"%{count} hour","other":"%{count} hours"},"minutes_exact":{"one":"%{count} minute","other":"%{count} minutes"},"seconds_exact":{"one":"%{count} second","other":"%{count} seconds"}}},"workers":"Workers","queue":"Queue","no_job":"There are no jobs","repositories":{"branch":"Branch","image_url":"Image URL","markdown":"Markdown","textile":"Textile","rdoc":"RDOC","commit":"Commit","message":"Message","started_at":"Started","duration":"Duration","finished_at":"Finished","tabs":{"current":"Current","build_history":"Build History","branches":"Branch Summary","pull_requests":"Pull Requests","build":"Build","job":"Job"}},"build":{"job":"Job","duration":"Duration","finished_at":"Finished"},"jobs":{"messages":{"sponsored_by":"This test suite was run on a worker box sponsored by"},"build_matrix":"Build Matrix","allowed_failures":"Allowed Failures","author":"Author","config":"Config","compare":"Compare","committer":"Committer","branch":"Branch","commit":"Commit","message":"Message","started_at":"Started","duration":"Duration","finished_at":"Finished"},"builds":{"name":"Build","messages":{"sponsored_by":"This test suite was run on a worker box sponsored by"},"build_matrix":"Build Matrix","allowed_failures":"Allowed Failures","author":"Author","config":"Config","compare":"Compare","committer":"Committer","branch":"Branch","commit":"Commit","message":"Message","started_at":"Started","duration":"Duration","finished_at":"Finished","show_more":"Show more"},"layouts":{"top":{"home":"Home","blog":"Blog","docs":"Docs","stats":"Stats","github_login":"Sign in with Github","profile":"Profile","sign_out":"Sign Out","admin":"Admin"},"application":{"fork_me":"Fork me on Github","recent":"Recent","search":"Search","sponsers":"Sponsors","sponsors_link":"See all of our amazing sponsors &rarr;","my_repositories":"My Repositories"},"about":{"alpha":"This stuff is alpha.","messages":{"alpha":"Please do <strong>not</strong> consider this a stable service. We\'re still far from that! More info <a href=\'https://github.com/travis-ci\'>here.</a>"},"join":"Join us and help!","mailing_list":"Mailing List","repository":"Repository","twitter":"Twitter"},"mobile":{"author":"Author","build":"Build","build_matrix":"Build Matrix","commit":"Commit","committer":"Committer","compare":"Compare","config":"Config","duration":"Duration","finished_at":"Finished at","job":"Job","log":"Log"}},"profiles":{"show":{"email":"Email","github":"Github","message":{"your_repos":" Flick the switches below to turn on the Travis service hook for your projects, then push to GitHub.","config":"how to configure custom build options"},"messages":{"notice":"To get started, please read our <a href=\\"http://about.travis-ci.org/docs/user/getting-started/\\">Getting Started guide</a>.\\n <small>It will only take a couple of minutes.</small>"},"token":"Token","your_repos":"Your Repositories","update":"Update","update_locale":"Update","your_locale":"Your Locale"}},"statistics":{"index":{"count":"Count","repo_growth":"Repository Growth","total_projects":"Total Projects/Repositories","build_count":"Build Count","last_month":"last month","total_builds":"Total Builds"}},"locales":{"en":"English","es":"Español","fr":"Français","ja":"日本語","nb":"Norsk Bokmål","pl":"Polski","ru":"Русский","nl":"Nederlands","pt-BR":"português brasileiro"}},"es":{"datetime":{"distance_in_words":{"hours_exact":{"one":"%{count} hora","other":"%{count} horas"},"minutes_exact":{"one":"%{count} minuto","other":"%{count} minutos"},"seconds_exact":{"one":"%{count} segundo","other":"%{count} segundos"}}},"workers":"Procesos","queue":"Cola","no_job":"No hay trabajos","repositories":{"branch":"Rama","image_url":"Imagen URL","markdown":"Markdown","textile":"Textile","rdoc":"RDOC","commit":"Commit","message":"Mensaje","started_at":"Iniciado","duration":"Duración","finished_at":"Finalizado","tabs":{"current":"Actual","build_history":"Histórico","branches":"Ramas","build":"Builds","job":"Trabajo"}},"build":{"job":"Trabajo","duration":"Duración","finished_at":"Finalizado"},"jobs":{"messages":{"sponsored_by":"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por"},"build_matrix":"Matriz de Builds","allowed_failures":"Fallos Permitidos","author":"Autor","config":"Configuración","compare":"Comparar","committer":"Committer","branch":"Rama","commit":"Commit","message":"Mensaje","started_at":"Iniciado","duration":"Duración","finished_at":"Finalizado","sponsored_by":"Patrocinado por"},"builds":{"name":"Build","messages":{"sponsored_by":"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por"},"build_matrix":"Matriz de Builds","allowed_failures":"Fallos Permitidos","author":"Autor","config":"Configuración","compare":"Comparar","committer":"Committer","branch":"Rama","commit":"Commit","message":"Mensaje","started_at":"Iniciado","duration":"Duración","finished_at":"Finalizado"},"layouts":{"top":{"home":"Inicio","blog":"Blog","docs":"Documentación","stats":"Estadísticas","github_login":"Iniciar sesión con Github","profile":"Perfil","sign_out":"Desconectar","admin":"Admin"},"application":{"fork_me":"Hazme un Fork en Github","recent":"Reciente","search":"Buscar","sponsers":"Patrocinadores","sponsors_link":"Ver todos nuestros patrocinadores &rarr;","my_repositories":"Mis Repositorios"},"about":{"alpha":"Esto es alpha.","messages":{"alpha":"Por favor <strong>no</strong> considereis esto un servicio estable. Estamos estamos aún lejos de ello! Más información <a href=\'https://github.com/travis-ci\'>aquí.</a>"},"join":"Únetenos y ayudanos!","mailing_list":"Lista de Correos","repository":"Repositorio","twitter":"Twitter"}},"profiles":{"show":{"email":"Correo electrónico","github":"Github","message":{"your_repos":" Activa los interruptores para inicial el Travis service hook para tus proyectos, y haz un Push en GitHub.<br />\\n Para probar varias versiones de ruby, mira","config":"como configurar tus propias opciones para el Build"},"messages":{"notice":"Para comenzar, por favor lee nuestra <a href=\\"http://about.travis-ci.org/docs/user/getting-started/\\">Guía de Inicio </a>.\\n <small>Solo tomará unos pocos minutos.</small>"},"token":"Token","your_repos":"Tus repositorios","update":"Actualizar","update_locale":"Actualizar","your_locale":"Tu Idioma"}},"statistics":{"index":{"count":"Número","repo_growth":"Crecimiento de Repositorios","total_projects":"Total de Proyectos/Repositorios","build_count":"Número de Builds","last_month":"mes anterior","total_builds":"Total de Builds"}},"locales":{"en":"English","es":"Español","fr":"Français","ja":"日本語","nb":"Norsk Bokmål","pl":"Polski","ru":"Русский","nl":"Nederlands","pt-BR":"português brasileiro"}},"fr":{"datetime":{"distance_in_words":{"hours_exact":{"one":"%{count} heure","other":"%{count} heures"},"minutes_exact":{"one":"%{count} minute","other":"%{count} minutes"},"seconds_exact":{"one":"%{count} seconde","other":"%{count} secondes"}}},"workers":"Processus","queue":"File","no_job":"Pas de tâches","repositories":{"branch":"Branche","image_url":"Image","markdown":"Markdown","textile":"Textile","rdoc":"RDOC","commit":"Commit","message":"Message","started_at":"Commencé","duration":"Durée","finished_at":"Terminé","tabs":{"current":"Actuel","build_history":"Historique des tâches","branches":"Résumé des branches","build":"Construction","job":"Tâche"}},"build":{"job":"Tâche","duration":"Durée","finished_at":"Terminé"},"jobs":{"messages":{"sponsored_by":"Cette série de tests a été exécutée sur une machine sponsorisée par"},"build_matrix":"Matrice des versions","allowed_failures":"Échecs autorisés","author":"Auteur","config":"Config","compare":"Comparer","committer":"Committeur","branch":"Branche","commit":"Commit","message":"Message","started_at":"Commencé","duration":"Durée","finished_at":"Terminé","sponsored_by":"Cette série de tests a été exécutée sur une machine sponsorisée par"},"builds":{"name":"Version","messages":{"sponsored_by":"Cette série de tests a été exécutée sur une machine sponsorisée par"},"build_matrix":"Matrice des versions","allowed_failures":"Échecs autorisés","author":"Auteur","config":"Config","compare":"Comparer","committer":"Committeur","branch":"Branche","commit":"Commit","message":"Message","started_at":"Commencé","duration":"Durée","finished_at":"Terminé"},"layouts":{"top":{"home":"Accueil","blog":"Blog","docs":"Documentation","stats":"Statistiques","github_login":"Connection Github","profile":"Profil","sign_out":"Déconnection","admin":"Admin"},"application":{"fork_me":"Faites un Fork sur Github","recent":"Récent","search":"Chercher","sponsers":"Sponsors","sponsors_link":"Voir tous nos extraordinaire sponsors &rarr;","my_repositories":"Mes dépôts"},"about":{"alpha":"Ceci est en alpha.","messages":{"alpha":"S\'il vous plaît ne considérez <strong>pas</strong> ce service comme étant stable. Nous sommes loin de ça! Plus d\'infos <a href=\'https://github.com/travis-ci\'>ici.</a>"},"join":"Joignez-vous à nous et aidez-nous!","mailing_list":"Liste de distribution","repository":"Dépôt","twitter":"Twitter"},"mobile":{"author":"Auteur","build":"Version","build_matrix":"Matrice des versions","commit":"Commit","committer":"Committeur","compare":"Comparer","config":"Config","duration":"Durée","finished_at":"Terminé à","job":"Tâche","log":"Journal"}},"profiles":{"show":{"github":"Github","message":{"your_repos":"Utilisez les boutons ci-dessous pour activer Travis sur vos projets puis déployez sur GitHub.<br />\\nPour tester sur plus de versions de ruby, voir","config":"comment configurer des options de version personnalisées"},"messages":{"notice":"Pour commencer, veuillez lire notre <a href=\\"http://about.travis-ci.org/docs/user/getting-started/\\">guide de démarrage</a>.\\n <small>Cela ne vous prendra que quelques minutes.</small>"},"token":"Jeton","your_repos":"Vos dépôts","email":"Courriel","update":"Modifier","update_locale":"Modifier","your_locale":"Votre langue"}},"statistics":{"index":{"count":"Décompte","repo_growth":"Croissance de dépôt","total_projects":"Total des projets/dépôts","build_count":"Décompte des versions","last_month":"mois dernier","total_builds":"Total des versions"}},"admin":{"actions":{"create":"créer","created":"créé","delete":"supprimer","deleted":"supprimé","update":"mise à jour","updated":"mis à jour"},"credentials":{"log_out":"Déconnection"},"delete":{"confirmation":"Oui, je suis sure","flash_confirmation":"%{name} a été détruit avec succès"},"flash":{"error":"%{name} n\'a pas pu être %{action}","noaction":"Aucune action n\'a été entreprise","successful":"%{name} a réussi à %{action}"},"history":{"name":"Historique","no_activity":"Aucune activité","page_name":"Historique pour %{name}"},"list":{"add_new":"Ajouter un nouveau","delete_action":"Supprimer","delete_selected":"Supprimer la sélection","edit_action":"Modifier","search":"Rechercher","select":"Sélectionner le %{name} à modifier","select_action":"Sélectionner","show_all":"Montrer tout"},"new":{"basic_info":"Information de base","cancel":"Annuler","chosen":"%{name} choisi","chose_all":"Choisir tout","clear_all":"Déselectionner tout","many_chars":"caractères ou moins","one_char":"caractère.","optional":"Optionnel","required":"Requis","save":"Sauvegarder","save_and_add_another":"Sauvegarder et en ajouter un autre","save_and_edit":"Sauvegarder et modifier","select_choice":"Faites vos choix et cliquez"},"dashboard":{"add_new":"Ajouter un nouveau","last_used":"Dernière utilisation","model_name":"Nom du modèle","modify":"Modification","name":"Tableau de bord","pagename":"Administration du site","records":"Enregistrements","show":"Voir","ago":"plus tôt"}},"home":{"name":"accueil"},"repository":{"duration":"Durée"},"devise":{"confirmations":{"confirmed":"Votre compte a été crée avec succès. Vous être maintenant connecté.","send_instructions":"Vous allez recevoir un courriel avec les instructions de confirmation de votre compte dans quelques minutes."},"failure":{"inactive":"Votre compte n\'a pas encore été activé.","invalid":"Adresse courriel ou mot de passe invalide.","invalid_token":"Jeton d\'authentification invalide.","locked":"Votre compte est bloqué.","timeout":"Votre session est expirée, veuillez vous reconnecter pour continuer.","unauthenticated":"Vous devez vous connecter ou vous enregistrer afin de continuer","unconfirmed":"Vous devez confirmer votre compte avant de continuer."},"mailer":{"confirmation_instructions":{"subject":"Instructions de confirmations"},"reset_password_instructions":{"subject":"Instruction de remise à zéro du mot de passe"},"unlock_instructions":{"subject":"Instruction de débloquage"}},"passwords":{"send_instructions":"Vous recevrez un courriel avec les instructions de remise à zéro du mot de passe dans quelques minutes.","updated":"Votre mot de passe a été changé avec succès. Vous êtes maintenant connecté."},"registrations":{"destroyed":"Au revoir! Votre compte a été annulé avec succès. Nous espérons vous revoir bientôt.","signed_up":"Vous êtes enregistré avec succès. Si activé, une confirmation vous a été envoyé par courriel.","updated":"Votre compte a été mis a jour avec succès"},"sessions":{"signed_in":"Connecté avec succès","signed_out":"Déconnecté avec succès"},"unlocks":{"send_instructions":"Vous recevrez un courriel contenant les instructions pour débloquer votre compte dans quelques minutes.","unlocked":"Votre compte a été débloqué avec succès."}},"errors":{"messages":{"already_confirmed":"étais déja confirmé","not_found":"n\'a pas été trouvé","not_locked":"n\'étais pas bloqué"}},"locales":{"en":"English","es":"Español","ja":"日本語","ru":"Русский","fr":"Français","nb":"Norsk Bokmål","pl":"Polski","nl":"Nederlands","pt-BR":"português brasileiro"}},"ja":{"workers":"ワーカー","queue":"キュー","no_job":"ジョブはありません","repositories":{"branch":"ブランチ","image_url":"画像URL","markdown":".md","textile":".textile","rdoc":".rdoc","commit":"コミット","message":"メッセージ","started_at":"開始時刻","duration":"処理時間","finished_at":"終了時刻","tabs":{"current":"最新","build_history":"ビルド履歴","branches":"ブランチまとめ","build":"ビルド","job":"ジョブ"}},"build":{"job":"ジョブ","duration":"処理時間","finished_at":"終了時刻"},"jobs":{"messages":{"sponsored_by":"このテストは以下のスポンサーの協力で行いました。"},"build_matrix":"ビルドマトリクス","allowed_failures":"失敗許容範囲内","author":"制作者","config":"設定","compare":"比較","committer":"コミット者","branch":"ブランチ","commit":"コミット","message":"メッセージ","started_at":"開始時刻","duration":"処理時間","finished_at":"終了時刻"},"builds":{"name":"ビルド","messages":{"sponsored_by":"このテストは以下のスポンサーの協力で行いました。"},"build_matrix":"失敗許容範囲外","allowed_failures":"失敗許容範囲内","author":"制作者","config":"設定","compare":"比較","committer":"コミット者","branch":"ブランチ","commit":"コミット","message":"メッセージ","started_at":"開始時刻","duration":"処理時間","finished_at":"終了時刻"},"layouts":{"about":{"alpha":"まだアルファですよ!","join":"参加してみよう!","mailing_list":"メールリスト","messages":{"alpha":"Travis-ciは安定したサービスまで後一歩詳しくは<a href=\'https://github.com/travis-ci\'>こちら</a>"},"repository":"リポジトリ","twitter":"ツイッター"},"application":{"fork_me":"Githubでフォークしよう","my_repositories":"マイリポジトリ","recent":"最近","search":"検索","sponsers":"スポンサー","sponsors_link":"スポンサーをもっと見る &rarr;"},"top":{"blog":"ブログ","docs":"Travisとは","github_login":"Githubでログイン","home":"ホーム","profile":"プロフィール","sign_out":"ログアウト","stats":"統計","admin":"管理"},"mobile":{"author":"制作者","build":"ビルド","build_matrix":"ビルドマトリクス","commit":"コミット","committer":"コミット者","compare":"比較","config":"設定","duration":"処理時間","finished_at":"終了時刻","job":"ジョブ","log":"ログ"}},"profiles":{"show":{"github":"Github","email":"メール","message":{"config":"詳細設定","your_repos":"以下のスイッチを設定し、Travis-ciを有効にします。Githubへプッシュしたらビルドは自動的に開始します。複数バーションや細かい設定はこちらへ"},"messages":{"notice":"まずは<a href=\\"http://about.travis-ci.org/docs/user/getting-started/\\">Travisのはじめ方</a>を参照してください。"},"token":"トークン","your_repos":"リポジトリ","update":"更新","update_locale":"更新","your_locale":"言語設定"}},"statistics":{"index":{"build_count":"ビルド数","count":"数","last_month":"先月","repo_growth":"リポジトリ","total_builds":"合計ビルド数","total_projects":"合計リポジトリ"}},"locales":{"en":"English","es":"Español","fr":"Français","ja":"日本語","nb":"Norsk Bokmål","pl":"Polski","ru":"Русский","nl":"Nederlands","pt-BR":"português brasileiro"}},"nb":{"admin":{"actions":{"create":"opprett","created":"opprettet","delete":"slett","deleted":"slettet","update":"oppdater","updated":"oppdatert"},"credentials":{"log_out":"Logg ut"},"dashboard":{"add_new":"Legg til ny","ago":"siden","last_used":"Sist brukt","model_name":"Modell","modify":"Rediger","name":"Dashbord","pagename":"Nettstedsadministrasjon","records":"Oppføringer","show":"Vis"},"delete":{"confirmation":"Ja, jeg er sikker","flash_confirmation":"%{name} ble slettet"},"flash":{"error":"%{name} kunne ikke bli %{action}","noaction":"Ingen handlinger ble utført","successful":"%{name} ble %{action}"},"history":{"name":"Logg","no_activity":"Ingen aktivitet","page_name":"Logg for %{name}"},"list":{"add_new":"Legg til ny","delete_action":"Slett","delete_selected":"Slett valgte","edit_action":"Rediger","search":"Søk","select":"Velg %{name} for å redigere","select_action":"Velg","show_all":"Vis alle "},"new":{"basic_info":"Basisinformasjon","cancel":"Avbryt","chosen":"Valgt %{name}","chose_all":"Velg alle","clear_all":"Fjern alle","many_chars":"eller færre tegn.","one_char":"tegn.","optional":"Valgfri","required":"Påkrevd","save":"Lagre","save_and_add_another":"Lagre og legg til ny","save_and_edit":"Lagre og rediger","select_choice":"Kryss av for dine valg og klikk"}},"build":{"duration":"Varighet","finished_at":"Fullført","job":"Jobb"},"builds":{"allowed_failures":"Tillatte feil","author":"Forfatter","branch":"Gren","build_matrix":"Jobbmatrise","commit":"Innsending","committer":"Innsender","compare":"Sammenlign","config":"Oppsett","duration":"Varighet","finished_at":"Fullført","message":"Beskrivelse","messages":{"sponsored_by":"Denne testen ble kjørt på en maskin sponset av"},"name":"Jobb","started_at":"Startet"},"datetime":{"distance_in_words":{"hours_exact":{"one":"%{count} time","other":"%{count} timer"},"minutes_exact":{"one":"%{count} minutt","other":"%{count} minutter"},"seconds_exact":{"one":"%{count} sekund","other":"%{count} sekunder"}}},"devise":{"confirmations":{"confirmed":"Din konto er aktivert og du er nå innlogget.","send_instructions":"Om noen få minutter så vil du få en e-post med informasjon om hvordan du bekrefter kontoen din."},"failure":{"inactive":"Kontoen din har ikke blitt aktivert enda.","invalid":"Ugyldig e-post eller passord.","invalid_token":"Ugyldig autentiseringskode.","locked":"Kontoen din er låst.","timeout":"Du ble logget ut siden på grunn av mangel på aktivitet, vennligst logg inn på nytt.","unauthenticated":"Du må logge inn eller registrere deg for å fortsette.","unconfirmed":"Du må bekrefte kontoen din før du kan fortsette."},"mailer":{"confirmation_instructions":{"subject":"Bekreftelsesinformasjon"},"reset_password_instructions":{"subject":"Instruksjoner for å få nytt passord"},"unlock_instructions":{"subject":"Opplåsningsinstruksjoner"}},"passwords":{"send_instructions":"Om noen få minutter så vil du få en epost med informasjon om hvordan du kan få et nytt passord.","updated":"Passordet ditt ble endret, og du er logget inn."},"registrations":{"destroyed":"Adjø! Kontoen din ble kansellert. Vi håper vi ser deg igjen snart.","signed_up":"Du er nå registrert.","updated":"Kontoen din ble oppdatert."},"sessions":{"signed_in":"Du er nå logget inn.","signed_out":"Du er nå logget ut."},"unlocks":{"send_instructions":"Om noen få minutter så kommer du til å få en e-post med informasjon om hvordan du kan låse opp kontoen din.","unlocked":"Kontoen din ble låst opp, og du er nå logget inn igjen."}},"errors":{"messages":{"already_confirmed":"har allerede blitt bekreftet","not_found":"ikke funnnet","not_locked":"var ikke låst"}},"home":{"name":"hjem"},"jobs":{"allowed_failures":"Tillatte feil","author":"Forfatter","branch":"Gren","build_matrix":"Jobbmatrise","commit":"Innsending","committer":"Innsender","compare":"Sammenlign","config":"Oppsett","duration":"Varighet","finished_at":"Fullført","message":"Beskrivelse","messages":{"sponsored_by":"Denne testserien ble kjørt på en maskin sponset av"},"started_at":"Startet"},"layouts":{"about":{"alpha":"Dette er alfa-greier.","join":"Bli med og hjelp oss!","mailing_list":"E-postliste","messages":{"alpha":"Dette er <strong>ikke</strong> en stabil tjeneste. Vi har fremdeles et stykke igjen! Mer informasjon finner du <a href=\\"https://github.com/travis-ci\\">her</a>."},"repository":"Kodelager","twitter":"Twitter."},"application":{"fork_me":"Se koden på Github","my_repositories":"Mine kodelagre","recent":"Nylig","search":"Søk","sponsers":"Sponsorer","sponsors_link":"Se alle de flotte sponsorene våre &rarr;"},"mobile":{"author":"Forfatter","build":"Jobb","build_matrix":"Jobbmatrise","commit":"Innsending","committer":"Innsender","compare":"Sammenlign","config":"Oppsett","duration":"Varighet","finished_at":"Fullført","job":"Jobb","log":"Logg"},"top":{"admin":"Administrator","blog":"Blogg","docs":"Dokumentasjon","github_login":"Logg inn med Github","home":"Hjem","profile":"Profil","sign_out":"Logg ut","stats":"Statistikk"}},"no_job":"Ingen jobber finnnes","profiles":{"show":{"email":"E-post","github":"Github","message":{"config":"hvordan sette opp egne jobbinnstillinger","your_repos":"Slå\\u0010 på Travis for prosjektene dine ved å dra i bryterne under, og send koden til Github.<br />\\nFor å teste mot flere ruby-versjoner, se dokumentasjonen for"},"messages":{"notice":"For å komme i gang, vennligst les <a href=\\"http://about.travis-ci.org/docs/user/getting-started/\\">kom-i-gang-veivisereren</a> vår. <small>Det tar bare et par minutter.</small>"},"token":"Kode","update":"Oppdater","update_locale":"Oppdater","your_locale":"Ditt språk","your_repos":"Dine kodelagre"}},"queue":"Kø","repositories":{"branch":"Gren","commit":"Innsender","duration":"Varighet","finished_at":"Fullført","image_url":"Bilde-URL","markdown":"Markdown","message":"Beskrivelse","rdoc":"RDOC","started_at":"Startet","tabs":{"branches":"Grensammendrag","build":"Jobb","build_history":"Jobblogg","current":"Siste","job":"Jobb"},"textile":"Textile"},"repository":{"duration":"Varighet"},"statistics":{"index":{"build_count":"Antall jobber","count":"Antall","last_month":"siste måned","repo_growth":"Vekst i kodelager","total_builds":"Totale jobber","total_projects":"Antall prosjekter/kodelagre"}},"workers":"Arbeidere","locales":{"en":"English","es":"Español","ja":"日本語","ru":"Русский","fr":"Français","nb":"Norsk Bokmål","pl":"Polski","nl":"Nederlands","pt-BR":"português brasileiro"}},"nl":{"admin":{"actions":{"create":"aanmaken","created":"aangemaakt","delete":"verwijderen","deleted":"verwijderd","update":"bijwerken","updated":"bijgewerkt"},"credentials":{"log_out":"Afmelden"},"dashboard":{"add_new":"Nieuwe toevoegen","ago":"geleden","last_used":"Laatst gebruikt","model_name":"Model naam","modify":"Wijzigen","pagename":"Site administratie","show":"Laten zien","records":"Gegevens"},"delete":{"confirmation":"Ja, ik ben zeker","flash_confirmation":"%{name} is vernietigd"},"flash":{"error":"%{name} kon niet worden %{action}","noaction":"Er zijn geen acties genomen","successful":"%{name} is %{action}"},"history":{"name":"Geschiedenis","no_activity":"Geen activiteit","page_name":"Geschiedenis van %{name}"},"list":{"add_new":"Nieuwe toevoegen","delete_action":"Verwijderen","delete_selected":"Verwijder geselecteerden","edit_action":"Bewerken","search":"Zoeken","select":"Selecteer %{name} om te bewerken","select_action":"Selecteer","show_all":"Laat allen zien"},"new":{"basic_info":"Basisinfo","cancel":"Annuleren","chosen":"%{name} gekozen","chose_all":"Kies allen","clear_all":"Deselecteer allen","many_chars":"tekens of minder.","one_char":"teken.","optional":"Optioneel","required":"Vereist","save":"Opslaan","save_and_add_another":"Opslaan en een nieuwe toevoegen","save_and_edit":"Opslaan en bewerken","select_choice":"Selecteer uw keuzes en klik"}},"build":{"duration":"Duur","finished_at":"Voltooid","job":"Taak"},"builds":{"allowed_failures":"Toegestane mislukkingen","author":"Auteur","branch":"Tak","build_matrix":"Bouw Matrix","compare":"Vergelijk","config":"Configuratie","duration":"Duur","finished_at":"Voltooid","message":"Bericht","messages":{"sponsored_by":"Deze tests zijn gedraaid op een machine gesponsord door"},"name":"Bouw","started_at":"Gestart","commit":"Commit","committer":"Committer"},"datetime":{"distance_in_words":{"hours_exact":{"one":"%{count} uur","other":"%{count} uren"},"minutes_exact":{"one":"%{count} minuut","other":"%{count} minuten"},"seconds_exact":{"one":"%{count} seconde","other":"%{count} seconden"}}},"devise":{"confirmations":{"confirmed":"Uw account is bevestigd. U wordt nu ingelogd.","send_instructions":"Binnen enkele minuten zal u een email ontvangen met instructies om uw account te bevestigen."},"failure":{"inactive":"Uw account is nog niet geactiveerd.","invalid":"Ongeldig email adres of wachtwoord.","invalid_token":"Ongeldig authenticatie token.","locked":"Uw account is vergrendeld.","timeout":"Uw sessie is verlopen, gelieve opnieuw in te loggen om verder te gaan.","unauthenticated":"U moet inloggen of u registeren voordat u verder gaat.","unconfirmed":"U moet uw account bevestigen voordat u verder gaat."},"mailer":{"confirmation_instructions":{"subject":"Bevestigings-instructies"},"reset_password_instructions":{"subject":"Wachtwoord herstel instructies"},"unlock_instructions":{"subject":"Ontgrendel-instructies"}},"passwords":{"send_instructions":"Binnen enkele minuten zal u een email krijgen met instructies om uw wachtwoord opnieuw in te stellen.","updated":"Uw wachtwoord is veranderd. U wordt nu ingelogd."},"registrations":{"destroyed":"Dag! Uw account is geannuleerd. We hopen u vlug terug te zien.","signed_up":"Uw registratie is voltooid. Als het ingeschakeld is wordt een bevestiging naar uw email adres verzonden.","updated":"Het bijwerken van uw account is gelukt."},"sessions":{"signed_in":"Inloggen gelukt.","signed_out":"Uitloggen gelukt."},"unlocks":{"send_instructions":"Binnen enkele minuten zal u een email krijgen met instructies om uw account te ontgrendelen.","unlocked":"Uw account is ontgrendeld. U wordt nu ingelogd."}},"errors":{"messages":{"already_confirmed":"was al bevestigd","not_found":"niet gevonden","not_locked":"was niet vergrendeld"}},"jobs":{"allowed_failures":"Toegestane mislukkingen","author":"Auteur","branch":"Tak","build_matrix":"Bouw matrix","compare":"Vergelijk","config":"Configuratie","duration":"Duur","finished_at":"Voltooid","message":"Bericht","messages":{"sponsored_by":"Deze testen zijn uitgevoerd op een machine gesponsord door"},"started_at":"Gestart","commit":"Commit","committer":"Committer"},"layouts":{"about":{"alpha":"Dit is in alfa-stadium.","join":"Doe met ons mee en help!","mailing_list":"Mailing lijst","messages":{"alpha":"Gelieve deze service <strong>niet</strong> te beschouwen als stabiel. Daar zijn we nog lang niet! Meer info <a href=\'https://github.com/travis-ci\'>hier.</a>"},"repository":"Repository","twitter":"Twitter"},"application":{"fork_me":"Maak een fork op Github","my_repositories":"Mijn repositories","recent":"Recent","search":"Zoeken","sponsers":"Sponsors","sponsors_link":"Bekijk al onze geweldige sponsors &rarr;"},"mobile":{"author":"Auteur","build":"Bouw","build_matrix":"Bouw matrix","compare":"Vergelijk","config":"Configuratie","duration":"Duur","finished_at":"Voltooid op","job":"Taak","commit":"Commit","committer":"Committer","log":"Logboek"},"top":{"admin":"Administratie","blog":"Blog","docs":"Documentatie","github_login":"Inloggen met Github","home":"Home","profile":"Profiel","sign_out":"Uitloggen","stats":"Statistieken"}},"locales":{"en":"English","es":"Español","fr":"Français","ja":"日本語","nb":"Norsk Bokmål","nl":"Nederlands","pl":"Polski","ru":"Русский","pt-BR":"português brasileiro"},"no_job":"Er zijn geen taken","profiles":{"show":{"email":"Email adres","github":"Github","message":{"config":"hoe eigen bouw-opties in te stellen","your_repos":"Zet de schakelaars hieronder aan om de Travis hook voor uw projecten te activeren en push daarna naar Github<br />\\nOm te testen tegen meerdere rubies, zie"},"messages":{"notice":"Om te beginnen kunt u onze <a href=\\\\\\"http://about.travis-ci.org/docs/user/getting-started/\\\\\\">startersgids</a> lezen.\\\\n <small>Het zal maar enkele minuten van uw tijd vergen.</small>"},"update":"Bijwerken","update_locale":"Bijwerken","your_locale":"Uw taal","your_repos":"Uw repositories","token":"Token"}},"queue":"Wachtrij","repositories":{"branch":"Tak","duration":"Duur","finished_at":"Voltooid","image_url":"Afbeeldings URL","message":"Bericht","started_at":"Gestart","tabs":{"branches":"Tak samenvatting","build":"Bouw","build_history":"Bouw geschiedenis","current":"Huidig","job":"Taak"},"commit":"Commit","markdown":"Markdown","rdoc":"RDOC","textile":"Textile"},"repository":{"duration":"Duur"},"statistics":{"index":{"build_count":"Bouw aantal","count":"Aantal","last_month":"voorbije maand","repo_growth":"Repository groei","total_builds":"Bouw totaal","total_projects":"Projecten/Repository totaal"}},"workers":"Machines","home":{"name":"Hoofdpagina"}},"pl":{"datetime":{"distance_in_words":{"hours_exact":{"one":"%{count} godzina","other":"%{count} godziny"},"minutes_exact":{"one":"%{count} minuta","other":"%{count} minuty"},"seconds_exact":{"one":"%{count} sekunda","other":"%{count} sekundy"}}},"workers":"Workers","queue":"Kolejka","no_job":"Brak zadań","repositories":{"branch":"Gałąź","image_url":"URL obrazka","markdown":"Markdown","textile":"Textile","rdoc":"RDOC","commit":"Commit","message":"Opis","started_at":"Rozpoczęto","duration":"Czas trwania","finished_at":"Zakończono","tabs":{"current":"Aktualny","build_history":"Historia Buildów","branches":"Wszystkie Gałęzie","build":"Build","job":"Zadanie"}},"build":{"job":"Zadanie","duration":"Czas trwania","finished_at":"Zakończono"},"jobs":{"messages":{"sponsored_by":"Te testy zostały uruchomione na maszynie sponsorowanej przez"},"build_matrix":"Macierz Buildów","allowed_failures":"Dopuszczalne Niepowodzenia","author":"Autor","config":"Konfiguracja","compare":"Porównanie","committer":"Committer","branch":"Gałąź","commit":"Commit","message":"Opis","started_at":"Rozpoczęto","duration":"Czas trwania","finished_at":"Zakończono","sponsored_by":"Te testy zostały uruchomione na maszynie sponsorowanej przez"},"builds":{"name":"Build","messages":{"sponsored_by":"Te testy zostały uruchomione na maszynie sponsorowanej przez"},"build_matrix":"Macierz Buildów","allowed_failures":"Dopuszczalne Niepowodzenia","author":"Autor","config":"Konfiguracja","compare":"Porównanie","committer":"Komitujący","branch":"Gałąź","commit":"Commit","message":"Opis","started_at":"Rozpoczęto","duration":"Czas trwania","finished_at":"Zakończono"},"layouts":{"top":{"home":"Start","blog":"Blog","docs":"Dokumentacja","stats":"Statystki","github_login":"Zaloguj się przy pomocy Githuba","profile":"Profil","sign_out":"Wyloguj się"},"application":{"fork_me":"Fork me on Github","recent":"Ostatnie","search":"Wyniki","sponsers":"Sponsorzy","sponsors_link":"Zobacz naszych wszystkich wspaniałych sponsorów &rarr;","my_repositories":"Moje repozytoria"},"about":{"alpha":"To wciąż jest wersja alpha.","messages":{"alpha":"Proszę <strong>nie</strong> traktuj tego jako stabilnej usługi. Wciąż nam wiele do tego brakuje! Więcej informacji znajdziesz <a href=\'https://github.com/travis-ci\'>tutaj.</a>"},"join":"Pomóż i dołącz do nas!","mailing_list":"Lista mailingowa","repository":"Repozytorium","twitter":"Twitter"},"mobile":{"author":"Autor","build":"Build","build_matrix":"Macierz Buildów","commit":"Commit","committer":"Komitujący","compare":"Porównianie","config":"Konfiguracja","duration":"Czas trwania","finished_at":"Zakończono","job":"Zadanie","log":"Log"}},"profiles":{"show":{"email":"Email","github":"Github","message":{"your_repos":" Przesuń suwak poniżej, aby włączyć Travisa, dla twoich projektów, a następnie umieść swój kod na GitHubie.<br />\\n Aby testować swój kod przy użyciu wielu wersji Rubiego, zobacz","config":"jak skonfigurować niestandardowe opcje builda"},"messages":{"notice":"Aby zacząć, przeczytaj nasz <a href=\\"http://about.travis-ci.org/docs/user/getting-started/\\">Przewodnik </a>.\\n <small>Zajmie ci to tylko kilka minut.</small>"},"token":"Token","your_repos":"Twoje repozytoria"}},"statistics":{"index":{"count":"Ilość","repo_growth":"Przyrost repozytoriów","total_projects":"Łącznie projektów/repozytoriów","build_count":"Liczba buildów","last_month":"ostatni miesiąc","total_builds":"Łącznie Buildów"}},"date":{"abbr_day_names":["nie","pon","wto","śro","czw","pią","sob"],"abbr_month_names":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"day_names":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"formats":{"default":"%d-%m-%Y","long":"%B %d, %Y","short":"%d %b"},"month_names":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"order":["day","month","year"]},"errors":{"format":"%{attribute} %{message}","messages":{"accepted":"musi zostać zaakceptowane","blank":"nie może być puste"}},"locales":{"en":"English","es":"Español","ja":"日本語","ru":"Русский","fr":"Français","nb":"Norsk Bokmål","pl":"Polski","nl":"Nederlands","pt-BR":"português brasileiro"}},"pt-BR":{"admin":{"actions":{"create":"criar","created":"criado","delete":"deletar","deleted":"deletado","update":"atualizar","updated":"atualizado"},"credentials":{"log_out":"Deslogar"},"dashboard":{"add_new":"Adicionar novo","ago":"atrás","last_used":"Última utilização","model_name":"Nome do modelo","modify":"Modificar","name":"Dashboard","pagename":"Administração do site","records":"Registros","show":"Mostrar"},"delete":{"confirmation":"Sim, tenho certeza","flash_confirmation":"%{name} foi destruído com sucesso"},"flash":{"error":"%{name} falhou ao %{action}","noaction":"Nenhuma ação foi tomada","successful":"%{name} foi %{action} com sucesso"},"history":{"name":"Histórico","no_activity":"Nenhuma Atividade","page_name":"Histórico para %{name}"},"list":{"add_new":"Adicionar novo","delete_action":"Deletar","delete_selected":"Deletar selecionados","edit_action":"Editar","search":"Buscar","select":"Selecionar %{name} para editar","select_action":"Selecionar","show_all":"Mostrar todos"},"new":{"basic_info":"Informações básicas","cancel":"Cancelar","chosen":"Escolhido %{name}","chose_all":"Escolher todos","clear_all":"Limpar todos","many_chars":"caracteres ou menos.","one_char":"caractere.","optional":"Opcional","required":"Requerido","save":"Salvar","save_and_add_another":"Salvar e adicionar outro","save_and_edit":"Salvar e alterar","select_choice":"Selecione e clique"}},"build":{"duration":"Duração","finished_at":"Concluído em","job":"Trabalho"},"builds":{"allowed_failures":"Falhas Permitidas","author":"Autor","branch":"Branch","build_matrix":"Matriz de Build","commit":"Commit","committer":"Committer","compare":"Comparar","config":"Config","duration":"Duração","finished_at":"Concluído em","message":"Mensagem","messages":{"sponsored_by":"Esta série de testes foi executada em uma caixa de processos patrocinada por"},"name":"Build","started_at":"Iniciou em"},"datetime":{"distance_in_words":{"hours_exact":{"one":"%{count} hora","other":"%{count} horas"},"minutes_exact":{"one":"%{count} minuto","other":"%{count} minutos"},"seconds_exact":{"one":"%{count} segundo","other":"%{count} segundos"}}},"devise":{"confirmations":{"confirmed":"Sua conta foi confirmada com sucesso. Você agora está logado.","send_instructions":"Você receberá um email com instruções de como confirmar sua conta em alguns minutos."},"failure":{"inactive":"Sua conta ainda não foi ativada.","invalid":"Email ou senha inválidos.","invalid_token":"Token de autenticação inválido.","locked":"Sua conta está trancada.","timeout":"Sua sessão expirou, por favor faça seu login novamente.","unauthenticated":"Você precisa fazer o login ou cadastrar-se antes de continuar.","unconfirmed":"Você precisa confirmar sua conta antes de continuar."},"mailer":{"confirmation_instructions":{"subject":"Instruções de confirmação"},"reset_password_instructions":{"subject":"Instruções de atualização de senha"},"unlock_instructions":{"subject":"Instruções de destrancamento"}},"passwords":{"send_instructions":"Você receberá um email com instruções de como atualizar sua senha em alguns minutos.","updated":"Sua senha foi alterada com sucesso. Você agora está logado."},"registrations":{"destroyed":"Tchau! Sua conta foi cancelada com sucesso. Esperamos vê-lo novamente em breve!","signed_up":"Você se cadastrou com sucesso. Se ativada, uma confirmação foi enviada para seu email.","updated":"Você atualizou sua conta com sucesso."},"sessions":{"signed_in":"Logado com sucesso.","signed_out":"Deslogado com sucesso."},"unlocks":{"send_instructions":"Você receberá um email com instruções de como destrancar sua conta em alguns minutos.","unlocked":"Sua conta foi destrancada com sucesso. Você agora está logado."}},"errors":{"messages":{"already_confirmed":"já foi confirmado","not_found":"não encontrado","not_locked":"não estava trancado"}},"home":{"name":"home"},"jobs":{"allowed_failures":"Falhas Permitidas","author":"Autor","branch":"Branch","build_matrix":"Matriz de Build","commit":"Commit","committer":"Committer","compare":"Comparar","config":"Config","duration":"Duração","finished_at":"Concluído em","message":"Mensagem","messages":{"sponsored_by":"Esta série de testes foi executada em uma caixa de processos patrocinada por"},"started_at":"Iniciou em"},"layouts":{"about":{"alpha":"Isto é um alpha.","join":"Junte-se à nós e ajude!","mailing_list":"Lista de email","messages":{"alpha":"Por favor, <strong>não</strong> considere isto um serviço estável. Estamos muito longe disso! Mais informações <a href=\'https://github.com/travis-ci\'>aqui.</a>"},"repository":"Repositório","twitter":"Twitter"},"application":{"fork_me":"Faça fork no Github","my_repositories":"Meus Repositórios","recent":"Recentes","search":"Buscar","sponsers":"Patrocinadores","sponsors_link":"Conheça todos os nossos patrocinadores &rarr;"},"mobile":{"author":"Autor","build":"Build","build_matrix":"Matriz de Build","commit":"Commit","committer":"Committer","compare":"Comparar","config":"Config","duration":"Duração","finished_at":"Concluído em","job":"Trabalho","log":"Log"},"top":{"admin":"Admin","blog":"Blog","docs":"Documentação","github_login":"Logue com o Github","home":"Home","profile":"Perfil","sign_out":"Sair","stats":"Estatísticas"}},"locales":{"en":"English","es":"Español","fr":"Français","ja":"日本語","nb":"Norsk Bokmål","nl":"Nederlands","pl":"Polski","ru":"Русский","pt-BR":"português brasileiro"},"no_job":"Não há trabalhos","profiles":{"show":{"email":"Email","github":"Github","message":{"config":"como configurar opções de build","your_repos":"Use os botões abaixo para ligar ou desligar o hook de serviço do Travis para seus projetos, e então, faça um push para o Github.<br />Para testar com múltiplas versões do Ruby, leia"},"messages":{"notice":"Para começar, leia nosso <a href=\\"http://about.travis-ci.org/docs/user/getting-started/\\">Guia de início</a>. <small>Só leva alguns minutinhos.</small>"},"token":"Token","update":"Atualizar","update_locale":"Atualizar","your_locale":"Sua língua","your_repos":"Seus Repositórios"}},"queue":"Fila","repositories":{"branch":"Branch","commit":"Commit","duration":"Duração","finished_at":"Concluído em","image_url":"URL da imagem","markdown":"Markdown","message":"Mensagem","rdoc":"RDOC","started_at":"Iniciou em","tabs":{"branches":"Sumário do Branch","build":"Build","build_history":"Histórico de Build","current":"Atual","job":"Trabalho"},"textile":"Textile"},"repository":{"duration":"Duração"},"statistics":{"index":{"build_count":"Número de Builds","count":"Número","last_month":"último mês","repo_growth":"Crescimento de Repositório","total_builds":"Total de Builds","total_projects":"Total de Projetos/Repositórios"}},"workers":"Processos"},"ru":{"admin":{"actions":{"create":"создать","created":"создано","delete":"удалить","deleted":"удалено","update":"обновить","updated":"обновлено"},"credentials":{"log_out":"Выход"},"dashboard":{"add_new":"Добавить","ago":"назад","last_used":"Использовалось в последний раз","model_name":"Имя модели","modify":"Изменить","name":"Панель управления","pagename":"Управление сайтом","records":"Записи","show":"Показать"},"delete":{"confirmation":"Да, я уверен","flash_confirmation":"%{name} успешно удалено"},"history":{"name":"История","no_activity":"Нет активности","page_name":"История %{name}"},"list":{"add_new":"Добавить","delete_action":"Удалить","delete_selected":"Удалить выбранные","edit_action":"Редактировать","search":"Поиск","select":"Для редактирования выберите %{name}","select_action":"Выбрать","show_all":"Показать все"},"new":{"basic_info":"Основная информация","cancel":"Отмена","chosen":"Выбрано %{name}","chose_all":"Выбрать все","clear_all":"Очистить все","one_char":"символ.","optional":"Необязательно","required":"Обязательно","save":"Сохранить","save_and_add_another":"Сохранить и добавить другое","save_and_edit":"Сохранить и продолжить редактирование","select_choice":"Выберите и кликните","many_chars":"символов или меньше."},"flash":{"error":"%{name} не удалось %{action}","noaction":"Никаких действий не произведено","successful":"%{name} было успешно %{action}"}},"build":{"duration":"Длительность","finished_at":"Завершен","job":"Задача"},"builds":{"allowed_failures":"Допустимые неудачи","author":"Автор","branch":"Ветка","build_matrix":"Матрица","commit":"Коммит","committer":"Коммитер","compare":"Дифф","config":"Конфигурация","duration":"Длительность","finished_at":"Завершен","message":"Комментарий","messages":{"sponsored_by":"Эта серия тестов была запущена на машине, спонсируемой"},"name":"Билд","started_at":"Начало"},"datetime":{"distance_in_words":{"hours_exact":{"one":"%{count} час","few":"%{count} часа","many":"%{count} часов","other":"%{count} часа"},"minutes_exact":{"one":"%{count} минута","few":"%{count} минуты","many":"%{count} минут","other":"%{count} минуты"},"seconds_exact":{"one":"%{count} секунда","few":"%{count} секунды","many":"%{count} секунд","other":"%{count} секунды"}}},"devise":{"confirmations":{"confirmed":"Ваш аккаунт успешно подтвержден. Приветствуем!","send_instructions":"В течении нескольких минут вы получите электронное письмо с инструкциями для прохождения процедуры подтверждения аккаунта."},"failure":{"inactive":"Ваш аккаунт еще не активирован.","invalid":"Ошибка в адресе почты или пароле.","invalid_token":"Неправильный токен аутентификации.","locked":"Ваш аккаунт заблокирован.","timeout":"Сессия окончена. Для продолжения работы войдите снова.","unauthenticated":"Вам нужно войти или зарегистрироваться.","unconfirmed":"Вы должны сначала подтвердить свой аккаунт."},"mailer":{"confirmation_instructions":{"subject":"Инструкции для подтверждению аккаунта"},"reset_password_instructions":{"subject":"Инструкции для сброса пароля"},"unlock_instructions":{"subject":"Инструкции для разблокирования аккаунта"}},"passwords":{"send_instructions":"В течении нескольких минут вы получите электронное письмо с инструкциями для сброса пароля.","updated":"Ваш пароль успешно изменен. Приветствуем!"},"registrations":{"destroyed":"Ваш аккаунт был успешно удален. Живите долго и процветайте!","signed_up":"Вы успешно прошли регистрацию. Инструкции для подтверждения аккаунта отправлены на ваш электронный адрес.","updated":"Аккаунт успешно обновлен."},"sessions":{"signed_in":"Приветствуем!","signed_out":"Удачи!"},"unlocks":{"send_instructions":"В течении нескольких минут вы получите электронное письмо с инструкциям для разблокировния аккаунта.","unlocked":"Ваш аккаунт успешно разблокирован. Приветствуем!"}},"errors":{"messages":{"already_confirmed":"уже подтвержден","not_found":"не найден","not_locked":"не заблокирован"}},"home":{"name":"Главная"},"jobs":{"allowed_failures":"Допустимые неудачи","author":"Автор","branch":"Ветка","build_matrix":"Матрица","commit":"Коммит","committer":"Коммитер","compare":"Сравнение","config":"Конфигурация","duration":"Длительность","finished_at":"Завершен","message":"Комментарий","messages":{"sponsored_by":"Эта серия тестов была запущена на машине спонсируемой"},"started_at":"Начало"},"layouts":{"about":{"alpha":"Это альфа-версия","join":"Присоединяйтесь к нам и помогайте!","mailing_list":"Лист рассылки","messages":{"alpha":"Пожалуйста, <strong>не</strong> считайте данный сервис стабильным. Мы еще очень далеки от стабильности! <a href=\'https://github.com/travis-ci\'>Подробности</a>"},"repository":"Репозиторий","twitter":"Twitter"},"application":{"fork_me":"Fork me on Github","my_repositories":"Мои репозитории","recent":"Недавние","search":"Поиск","sponsers":"Спонсоры","sponsors_link":"Список всех наших замечательных спонсоров &rarr;"},"mobile":{"author":"Автор","build":"Сборка","build_matrix":"Матрица сборок","commit":"Коммит","committer":"Коммитер","compare":"Сравнение","config":"Конфигурация","duration":"Длительность","finished_at":"Завершен","job":"Задача","log":"Журнал"},"top":{"admin":"Управление","blog":"Блог","docs":"Документация","github_login":"Войти через Github","home":"Главная","profile":"Профиль","sign_out":"Выход","stats":"Статистика"}},"no_job":"Очередь пуста","profiles":{"show":{"email":"Электронная почта","github":"Github","message":{"config":"как настроить специальные опции билда","your_repos":"Используйте переключатели, чтобы включить Travis service hook для вашего проекта, а потом отправьте код на GitHub.<br />\\nДля тестирования на нескольких версиях Ruby смотрите"},"messages":{"notice":"Перед началом, пожалуйста, прочтите <a href=\\"http://about.travis-ci.org/docs/user/getting-started/\\">Руководство для быстрого старта</a>. <small>Это займет всего несколько минут.</small>"},"token":"Токен","update":"Обновить","update_locale":"Обновить","your_locale":"Ваш язык","your_repos":"Ваши репозитории"}},"queue":"Очередь","repositories":{"branch":"Ветка","commit":"Коммит","duration":"Длительность","finished_at":"Завершен","image_url":"URL изображения","markdown":"Markdown","message":"Комментарий","rdoc":"RDOC","started_at":"Начало","tabs":{"branches":"Статус веток","build":"Билд","build_history":"История","current":"Текущий","job":"Задача"},"textile":"Textile"},"repository":{"duration":"Длительность"},"statistics":{"index":{"build_count":"Количество билдов","count":"Количество","last_month":"прошлый месяц","repo_growth":"Рост числа репозиториев","total_builds":"Всего билдов","total_projects":"Всего проектов/репозиториев"}},"workers":"Машины","locales":{"en":"English","es":"Español","ja":"日本語","ru":"Русский","fr":"Français","nb":"Norsk Bokmål","pl":"Polski","nl":"Nederlands","pt-BR":"português brasileiro"}}};\n\n\n})();\n//@ sourceURL=config/locales'
),minispade.register("ext/ember/bound_helper","(function() {// https://gist.github.com/2018185\n// For reference: https://github.com/wagenet/ember.js/blob/ac66dcb8a1cbe91d736074441f853e0da474ee6e/packages/ember-handlebars/lib/views/bound_property_view.js\nvar BoundHelperView = Ember.View.extend(Ember._Metamorph, {\n\n context: null,\n options: null,\n property: null,\n // paths of the property that are also observed\n propertyPaths: [],\n\n value: Ember.K,\n\n valueForRender: function() {\n var value = this.value(Ember.get(this.context, this.property), this.options);\n if (this.options.escaped) { value = Handlebars.Utils.escapeExpression(value); }\n return value;\n },\n\n render: function(buffer) {\n buffer.push(this.valueForRender());\n },\n\n valueDidChange: function() {\n if (this.morph.isRemoved()) { return; }\n this.morph.html(this.valueForRender());\n },\n\n didInsertElement: function() {\n this.valueDidChange();\n },\n\n init: function() {\n this._super();\n Ember.addObserver(this.context, this.property, this, 'valueDidChange');\n this.get('propertyPaths').forEach(function(propName) {\n Ember.addObserver(this.context, this.property + '.' + propName, this, 'valueDidChange');\n }, this);\n },\n\n destroy: function() {\n Ember.removeObserver(this.context, this.property, this, 'valueDidChange');\n this.get('propertyPaths').forEach(function(propName) {\n this.context.removeObserver(this.property + '.' + propName, this, 'valueDidChange');\n }, this);\n this._super();\n }\n\n});\n\nEmber.registerBoundHelper = function(name, func) {\n var propertyPaths = Array.prototype.slice.call(arguments, 2);\n Ember.Handlebars.registerHelper(name, function(property, options) {\n var data = options.data,\n view = data.view,\n ctx = this;\n\n var bindView = view.createChildView(BoundHelperView, {\n property: property,\n propertyPaths: propertyPaths,\n context: ctx,\n options: options.hash,\n value: func\n });\n\n view.appendChild(bindView);\n });\n};\n\n\n})();\n//@ sourceURL=ext/ember/bound_helper"),minispade.register("ext/ember/namespace","(function() {Em.Namespace.reopen = Em.Namespace.reopenClass\n\n\n\n})();\n//@ sourceURL=ext/ember/namespace");