ember-source 1.0.0.rc6.2 → 1.0.0.rc6.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ember-source might be problematic. Click here for more details.

@@ -8,10 +8,10 @@
8
8
  // ==========================================================================
9
9
 
10
10
 
11
- // Version: v1.0.0-rc.6-56-g19271bc
12
- // Last commit: 19271bc (2013-06-30 23:18:40 -0700)
11
+ // Version: v1.0.0-rc.6-221-g9d051c2
12
+ // Last commit: 9d051c2 (2013-07-28 23:13:59 -0700)
13
13
 
14
14
 
15
- !function(){var e,t;!function(){var r={},n={};e=function(e,t,n){r[e]={deps:t,callback:n}},t=function(e){if(n[e])return n[e];n[e]={};var i,o,s,a,u;if(i=r[e],!i)throw new Error("Module '"+e+"' not found.");o=i.deps,s=i.callback,a=[];for(var c=0,h=o.length;h>c;c++)"exports"===o[c]?a.push(u={}):a.push(t(o[c]));var l=s.apply(this,a);return n[e]=u||l}}(),function(){function e(e){return r.console&&r.console[e]?r.console[e].apply?function(){r.console[e].apply(r.console,arguments)}:function(){var t=Array.prototype.join.call(arguments,", ");r.console[e](t)}:void 0}function t(e,t){if(!e)try{throw new Error("assertion failed: "+t)}catch(r){setTimeout(function(){throw r},0)}}"undefined"==typeof Ember&&(Ember={});var r=Ember.imports=Ember.imports||this,n=Ember.exports=Ember.exports||this;Ember.lookup=Ember.lookup||this,n.Em=n.Ember=Em=Ember,Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.0-rc.6",Ember.ENV=Ember.ENV||("undefined"==typeof ENV?{}:ENV),Ember.config=Ember.config||{},Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES,"undefined"==typeof Ember.EXTEND_PROTOTYPES&&(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.LOG_VERSION=Ember.ENV.LOG_VERSION===!1?!1:!0,Ember.K=function(){return this},"undefined"==typeof Ember.assert&&(Ember.assert=Ember.K),"undefined"==typeof Ember.warn&&(Ember.warn=Ember.K),"undefined"==typeof Ember.debug&&(Ember.debug=Ember.K),"undefined"==typeof Ember.deprecate&&(Ember.deprecate=Ember.K),"undefined"==typeof Ember.deprecateFunc&&(Ember.deprecateFunc=function(e,t){return t}),Ember.uuid=0,Ember.Logger={log:e("log")||Ember.K,warn:e("warn")||Ember.K,error:e("error")||Ember.K,info:e("info")||Ember.K,debug:e("debug")||e("info")||Ember.K,assert:e("assert")||t},Ember.onerror=null,Ember.handleErrors=function(e,t){if("function"!=typeof Ember.onerror)return e.call(t||this);try{return e.call(t||this)}catch(r){Ember.onerror(r)}},Ember.merge=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},Ember.isNone=function(e){return null===e||void 0===e},Ember.none=Ember.deprecateFunc("Ember.none is deprecated. Please use Ember.isNone instead.",Ember.isNone),Ember.isEmpty=function(e){return Ember.isNone(e)||0===e.length&&"function"!=typeof e||"object"==typeof e&&0===Ember.get(e,"length")},Ember.empty=Ember.deprecateFunc("Ember.empty is deprecated. Please use Ember.isEmpty instead.",Ember.isEmpty)}(),function(){var e=Ember.platform={};if(Ember.create=Object.create,Ember.create&&2!==Ember.create({a:1},{a:{value:2}}).a&&(Ember.create=null),!Ember.create||Ember.ENV.STUB_OBJECT_CREATE){var t=function(){};Ember.create=function(e,r){if(t.prototype=e,e=new t,r){t.prototype=e;for(var n in r)t.prototype[n]=r[n].value;e=new t}return t.prototype=null,e},Ember.create.isSimulated=!0}var r,n,i=Object.defineProperty;if(i)try{i({},"a",{get:function(){}})}catch(o){i=null}i&&(r=function(){var e={};return i(e,"a",{configurable:!0,enumerable:!0,get:function(){},set:function(){}}),i(e,"a",{configurable:!0,enumerable:!0,writable:!0,value:!0}),e.a===!0}(),n=function(){try{return i(document.createElement("div"),"definePropertyOnDOM",{}),!0}catch(e){}return!1}(),r?n||(i=function(e,t,r){var n;return n="object"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName,n?e[t]=r.value:Object.defineProperty(e,t,r)}):i=null),e.defineProperty=i,e.hasPropertyAccessors=!0,e.defineProperty||(e.hasPropertyAccessors=!1,e.defineProperty=function(e,t,r){r.get||(e[t]=r.value)},e.defineProperty.isSimulated=!0),Ember.ENV.MANDATORY_SETTER&&!e.hasPropertyAccessors&&(Ember.ENV.MANDATORY_SETTER=!1)}(),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(void 0===this||null===this)throw new TypeError;var t=Object(this),r=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=new Array(r),i=arguments[1],o=0;r>o;o++)o in t&&(n[o]=e.call(i,t[o],o,t));return n},r=e(Array.prototype.forEach)?Array.prototype.forEach:function(e){if(void 0===this||null===this)throw new TypeError;var t=Object(this),r=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=arguments[1],i=0;r>i;i++)i in t&&e.call(n,t[i],i,t)},n=e(Array.prototype.indexOf)?Array.prototype.indexOf:function(e,t){null===t||void 0===t?t=0:0>t&&(t=Math.max(0,this.length+t));for(var r=t,n=this.length;n>r;r++)if(this[r]===e)return r;return-1};Ember.ArrayPolyfills={map:t,forEach:r,indexOf:n},Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=t),Array.prototype.forEach||(Array.prototype.forEach=r),Array.prototype.indexOf||(Array.prototype.indexOf=n))}(),function(){function e(e){this.descs={},this.watching={},this.cache={},this.source=e}function t(e,t){return!(!e||"function"!=typeof e[t])}var r=Ember.platform.defineProperty,n=Ember.create,i="__ember"+ +new Date,o=0,s=[],a={},u=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=i;var c={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(e,t){t||(t="ember");var n=t+o++;return e&&(c.value=n,r(e,i,c)),n},Ember.guidFor=function(e){if(void 0===e)return"(undefined)";if(null===e)return"(null)";var t,n=typeof e;switch(n){case"number":return t=s[e],t||(t=s[e]="nu"+e),t;case"string":return t=a[e],t||(t=a[e]="st"+o++),t;case"boolean":return e?"(true)":"(false)";default:return e[i]?e[i]:e===Object?"(Object)":e===Array?"(Array)":(t="ember"+o++,c.value=t,r(e,i,c),t)}};var h={writable:!0,configurable:!1,enumerable:!1,value:null},l=Ember.GUID_KEY+"_meta";Ember.META_KEY=l;var f={descs:{},watching:{}};u&&(f.values={}),Ember.EMPTY_META=f,Object.freeze&&Object.freeze(f);var m=Ember.platform.defineProperty.isSimulated;m&&(e.prototype.__preventPlainObject__=!0,e.prototype.toJSON=function(){}),Ember.meta=function(t,i){var o=t[l];return i===!1?o||f:(o?o.source!==t&&(m||r(t,l,h),o=n(o),o.descs=n(o.descs),o.watching=n(o.watching),o.cache={},o.source=t,u&&(o.values=n(o.values)),t[l]=o):(m||r(t,l,h),o=new e(t),u&&(o.values={}),t[l]=o,o.descs.constructor=null),o)},Ember.getMeta=function(e,t){var r=Ember.meta(e,!1);return r[t]},Ember.setMeta=function(e,t,r){var n=Ember.meta(e,!0);return n[t]=r,r},Ember.metaPath=function(e,t,r){for(var i,o,s=Ember.meta(e,r),a=0,u=t.length;u>a;a++){if(i=t[a],o=s[i]){if(o.__ember_source__!==e){if(!r)return void 0;o=s[i]=n(o),o.__ember_source__=e}}else{if(!r)return void 0;o=s[i]={__ember_source__:e}}s=o}return o},Ember.wrap=function(e,t){function r(){}function n(){var n,i=this._super;return this._super=t||r,n=e.apply(this,arguments),this._super=i,n}return n.wrappedFunction=e,n.__ember_observes__=e.__ember_observes__,n.__ember_observesBefore__=e.__ember_observesBefore__,n},Ember.isArray=function(e){return!e||e.setInterval?!1:Array.isArray&&Array.isArray(e)?!0:Ember.Array&&Ember.Array.detect(e)?!0:void 0!==e.length&&"object"==typeof e?!0:!1},Ember.makeArray=function(e){return null===e||void 0===e?[]:Ember.isArray(e)?e:[e]},Ember.canInvoke=t,Ember.tryInvoke=function(e,r,n){return t(e,r)?e[r].apply(e,n||[]):void 0};var b=function(){var e=0;try{try{}finally{throw e++,new Error("needsFinallyFixTest")}}catch(t){}return 1!==e}();Ember.tryFinally=b?function(e,t,r){var n,i,o;r=r||this;try{n=e.call(r)}finally{try{i=t.call(r)}catch(s){o=s}}if(o)throw o;return void 0===i?n:i}:function(e,t,r){var n,i;r=r||this;try{n=e.call(r)}finally{i=t.call(r)}return void 0===i?n:i},Ember.tryCatchFinally=b?function(e,t,r,n){var i,o,s;n=n||this;try{i=e.call(n)}catch(a){i=t.call(n,a)}finally{try{o=r.call(n)}catch(u){s=u}}if(s)throw s;return void 0===o?i:o}:function(e,t,r,n){var i,o;n=n||this;try{i=e.call(n)}catch(s){i=t.call(n,s)}finally{o=r.call(n)}return void 0===o?i:o};var p={},E="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(E,function(e){p["[object "+e+"]"]=e.toLowerCase()});var d=Object.prototype.toString;Ember.typeOf=function(e){var t;return t=null===e||void 0===e?String(e):p[d.call(e)]||"object","function"===t?Ember.Object&&Ember.Object.detect(e)&&(t="class"):"object"===t&&(t=e instanceof Error?"error":Ember.Object&&e instanceof Ember.Object?"instance":"object"),t}}(),function(){Ember.Instrumentation={};var e=[],t={},r=function(r){for(var n,i=[],o=0,s=e.length;s>o;o++)n=e[o],n.regex.test(r)&&i.push(n.object);return t[r]=i,i},n=function(){var e="undefined"!=typeof window?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,o,s){function a(){for(b=0,p=f.length;p>b;b++)m=f[b],E[b]=m.before(e,n(),i);return o.call(s)}function u(e){i=i||{},i.exception=e}function c(){for(b=0,p=f.length;p>b;b++)m=f[b],m.after(e,n(),i,E[b]);Ember.STRUCTURED_PROFILE&&console.timeEnd(h)}var h,l,f=t[e];if(Ember.STRUCTURED_PROFILE&&(h=e+": "+i.object,console.time(h)),f||(f=r(e)),0===f.length)return l=o.call(s),Ember.STRUCTURED_PROFILE&&console.timeEnd(h),l;var m,b,p,E=[];return Ember.tryCatchFinally(a,u,c)},Ember.Instrumentation.subscribe=function(r,n){for(var i,o=r.split("."),s=[],a=0,u=o.length;u>a;a++)i=o[a],"*"===i?s.push("[^\\.]*"):s.push(i);s=s.join("\\."),s+="(\\..*)?";var c={pattern:r,regex:new RegExp("^"+s+"$"),object:n};return e.push(c),t={},c},Ember.Instrumentation.unsubscribe=function(r){for(var n,i=0,o=e.length;o>i;i++)e[i]===r&&(n=i);e.splice(n,1),t={}},Ember.Instrumentation.reset=function(){e=[],t={}},Ember.instrument=Ember.Instrumentation.instrument,Ember.subscribe=Ember.Instrumentation.subscribe}(),function(){var e,t,r,n;n=Array.prototype.concat,e=Array.prototype.map||Ember.ArrayPolyfills.map,t=Array.prototype.forEach||Ember.ArrayPolyfills.forEach,r=Array.prototype.indexOf||Ember.ArrayPolyfills.indexOf;var i=Ember.EnumerableUtils={map:function(t,r,n){return t.map?t.map.call(t,r,n):e.call(t,r,n)},forEach:function(e,r,n){return e.forEach?e.forEach.call(e,r,n):t.call(e,r,n)},indexOf:function(e,t,n){return e.indexOf?e.indexOf.call(e,t,n):r.call(e,t,n)},indexesOf:function(e,t){return void 0===t?[]:i.map(t,function(t){return i.indexOf(e,t)})},addObject:function(e,t){var r=i.indexOf(e,t);-1===r&&e.push(t)},removeObject:function(e,t){var r=i.indexOf(e,t);-1!==r&&e.splice(r,1)},replace:function(e,t,r,i){if(e.replace)return e.replace(t,r,i);var o=n.apply([t,r],i);return e.splice.apply(e,o)},intersection:function(e,t){var r=[];return i.forEach(e,function(e){i.indexOf(t,e)>=0&&r.push(e)}),r}}}(),function(){var e,t=Ember.META_KEY,r=Ember.ENV.MANDATORY_SETTER,n=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,i=/^this[\.\*]/,o=/^([^\.\*]+)/;e=function(e,n){if(""===n)return e;if(n||"string"!=typeof e||(n=e,e=null),null===e||-1!==n.indexOf("."))return a(e,n);var i,o=e[t],s=o&&o.descs[n];return s?s.get(e,n):(i=r&&o&&o.watching[n]>0?o.values[n]:e[n],void 0!==i||"object"!=typeof e||n in e||"function"!=typeof e.unknownProperty?i:e.unknownProperty(n))},Ember.config.overrideAccessors&&(Ember.get=e,Ember.config.overrideAccessors(),e=Ember.get);var s=Ember.normalizeTuple=function(t,r){var s,a=i.test(r),u=!a&&n.test(r);if((!t||u)&&(t=Ember.lookup),a&&(r=r.slice(5)),t===Ember.lookup&&(s=r.match(o)[0],t=e(t,s),r=r.slice(s.length+1)),!r||0===r.length)throw new Error("Invalid Path");return[t,r]},a=Ember._getPath=function(t,r){var n,o,a,u,c;if(null===t&&-1===r.indexOf("."))return e(Ember.lookup,r);for(n=i.test(r),(!t||n)&&(a=s(t,r),t=a[0],r=a[1],a.length=0),o=r.split("."),c=o.length,u=0;null!=t&&c>u;u++)if(t=e(t,o[u],!0),t&&t.isDestroyed)return void 0;return t};Ember.getWithDefault=function(t,r,n){var i=e(t,r);return void 0===i?n:i},Ember.get=e,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get)}(),function(){function e(e,t,r){for(var n=-1,i=0,o=e.length;o>i;i++)if(t===e[i][0]&&r===e[i][1]){n=i;break}return n}function t(e,t){var r,n=m(e,!0);return n.listeners||(n.listeners={}),n.hasOwnProperty("listeners")||(n.listeners=f(n.listeners)),r=n.listeners[t],r&&!n.listeners.hasOwnProperty(t)?r=n.listeners[t]=n.listeners[t].slice():r||(r=n.listeners[t]=[]),r}function r(t,r,n){var i=t[b],o=i&&i.listeners&&i.listeners[r];if(o)for(var s=o.length-1;s>=0;s--){var a=o[s][0],u=o[s][1],c=o[s][2],h=e(n,a,u);-1===h&&n.push([a,u,c])}}function n(t,r,n){var i=t[b],o=i&&i.listeners&&i.listeners[r],s=[];if(o){for(var a=o.length-1;a>=0;a--){var u=o[a][0],c=o[a][1],h=o[a][2],l=e(n,u,c);-1===l&&(n.push([u,c,h]),s.push([u,c,h]))}return s}}function i(r,n,i,o,s){o||"function"!=typeof i||(o=i,i=null);var a=t(r,n),u=e(a,i,o),c=0;s&&(c|=p),-1===u&&(a.push([i,o,c]),"function"==typeof r.didAddListener&&r.didAddListener(n,i,o))}function o(r,n,i,o){function s(i,o){var s=t(r,n),a=e(s,i,o);-1!==a&&(s.splice(a,1),"function"==typeof r.didRemoveListener&&r.didRemoveListener(n,i,o))}if(o||"function"!=typeof i||(o=i,i=null),o)s(i,o);else{var a=r[b],u=a&&a.listeners&&a.listeners[n];if(!u)return;for(var c=u.length-1;c>=0;c--)s(u[c][0],u[c][1])}}function s(r,n,i,o,s){function a(){return s.call(i)}function u(){c&&(c[2]&=~E)}o||"function"!=typeof i||(o=i,i=null);var c,h=t(r,n),l=e(h,i,o);return-1!==l&&(c=h[l].slice(),c[2]|=E,h[l]=c),Ember.tryFinally(a,u)}function a(r,n,i,o,s){function a(){return s.call(i)}function u(){for(f=0,m=b.length;m>f;f++)b[f][2]&=~E}o||"function"!=typeof i||(o=i,i=null);var c,h,l,f,m,b=[];for(f=0,m=n.length;m>f;f++){c=n[f],h=t(r,c);var p=e(h,i,o);-1!==p&&(l=h[p].slice(),l[2]|=E,h[p]=l,b.push(l))}return Ember.tryFinally(a,u)}function u(e){var t=e[b].listeners,r=[];if(t)for(var n in t)t[n]&&r.push(n);return r}function c(e,t,r,n){if(e!==Ember&&"function"==typeof e.sendEvent&&e.sendEvent(t,r),!n){var i=e[b];n=i&&i.listeners&&i.listeners[t]}if(n){for(var s=n.length-1;s>=0;s--){var a=n[s];if(a){var u=a[0],c=a[1],h=a[2];h&E||(h&p&&o(e,t,u,c),u||(u=e),"string"==typeof c&&(c=u[c]),r?c.apply(u,r):c.call(u))}}return!0}}function h(e,t){var r=e[b],n=r&&r.listeners&&r.listeners[t];return!(!n||!n.length)}function l(e,t){var r=[],n=e[b],i=n&&n.listeners&&n.listeners[t];if(!i)return r;for(var o=0,s=i.length;s>o;o++){var a=i[o][0],u=i[o][1];r.push([a,u])}return r}var f=Ember.create,m=Ember.meta,b=Ember.META_KEY,p=1,E=2;Ember.addListener=i,Ember.removeListener=o,Ember._suspendListener=s,Ember._suspendListeners=a,Ember.sendEvent=c,Ember.hasListeners=h,Ember.watchedEvents=u,Ember.listenersFor=l,Ember.listenersDiff=n,Ember.listenersUnion=r}(),function(){var e=Ember.guidFor,t=Ember.sendEvent,r=Ember._ObserverSet=function(){this.clear()};r.prototype.add=function(t,r,n){var i,o=this.observerSet,s=this.observers,a=e(t),u=o[a];return u||(o[a]=u={}),i=u[r],void 0===i&&(i=s.push({sender:t,keyName:r,eventName:n,listeners:[]})-1,u[r]=i),s[i].listeners},r.prototype.flush=function(){var e,r,n,i,o=this.observers;for(this.clear(),e=0,r=o.length;r>e;++e)n=o[e],i=n.sender,i.isDestroying||i.isDestroyed||t(i,n.eventName,[i,n.keyName],n.listeners)},r.prototype.clear=function(){this.observerSet={},this.observers=[]}}(),function(){function e(e,t,i){if(!e.isDestroying){var o=n,s=!o;s&&(o=n={}),r(p,e,t,o,i),s&&(n=null)}}function t(e,t,n){if(!e.isDestroying){var o=i,s=!o;s&&(o=i={}),r(E,e,t,o,n),s&&(i=null)}}function r(e,t,r,n,i){var o=s(t);if(n[o]||(n[o]={}),!n[o][r]){n[o][r]=!0;var a=i.deps;if(a=a&&a[r])for(var u in a){var c=i.descs[u];c&&c._suspended===t||e(t,u)}}}var n,i,o=Ember.meta,s=Ember.guidFor,a=Ember.tryFinally,u=Ember.sendEvent,c=Ember.listenersUnion,h=Ember.listenersDiff,l=Ember._ObserverSet,f=new l,m=new l,b=0,p=Ember.propertyWillChange=function(t,r){var n=o(t,!1),i=n.watching[r]>0||"length"===r,s=n.proto,a=n.descs[r];i&&s!==t&&(a&&a.willChange&&a.willChange(t,r),e(t,r,n),d(t,r,n),_(t,r))},E=Ember.propertyDidChange=function(e,r){var n=o(e,!1),i=n.watching[r]>0||"length"===r,s=n.proto,a=n.descs[r];s!==e&&(a&&a.didChange&&a.didChange(e,r),(i||"length"===r)&&(t(e,r,n),v(e,r,n),O(e,r)))},d=function(e,t,r,n){if(r.hasOwnProperty("chainWatchers")){var i=r.chainWatchers;if(i=i[t])for(var o=0,s=i.length;s>o;o++)i[o].willChange(n)}},v=function(e,t,r,n){if(r.hasOwnProperty("chainWatchers")){var i=r.chainWatchers;if(i=i[t])for(var o=i.length-1;o>=0;o--)i[o].didChange(n)}};Ember.overrideChains=function(e,t,r){v(e,t,r,!0)};var g=Ember.beginPropertyChanges=function(){b++},y=Ember.endPropertyChanges=function(){b--,0>=b&&(f.clear(),m.flush())};Ember.changeProperties=function(e,t){g(),a(e,y,t)};var _=function(e,t){if(!e.isDestroying){var r,n,i=t+":before";b?(r=f.add(e,t,i),n=h(e,i,r),u(e,i,[e,t],n)):u(e,i,[e,t])}},O=function(e,t){if(!e.isDestroying){var r,n=t+":change";b?(r=m.add(e,t,n),c(e,n,r)):u(e,n,[e,t])}}}(),function(){function e(e,t,r,o){var s;if(s=t.slice(t.lastIndexOf(".")+1),t=t.slice(0,t.length-(s.length+1)),"this"!==t&&(e=n(e,t)),!s||0===s.length)throw new Error("You passed an empty path");if(!e){if(o)return;throw new Error("Object in path "+t+" could not be found or was destroyed.")}return i(e,s,r)}var t=Ember.META_KEY,r=Ember.ENV.MANDATORY_SETTER,n=Ember._getPath,i=function(n,i,o,s){if("string"==typeof n&&(o=i,i=n,n=null),!n||-1!==i.indexOf("."))return e(n,i,o,s);var a,u,c=n[t],h=c&&c.descs[i];return h?h.set(n,i,o):(a="object"==typeof n&&!(i in n),a&&"function"==typeof n.setUnknownProperty?n.setUnknownProperty(i,o):c&&c.watching[i]>0?(u=r?c.values[i]:n[i],o!==u&&(Ember.propertyWillChange(n,i),r?void 0!==u||i in n?c.values[i]=o:Ember.defineProperty(n,i,null,o):n[i]=o,Ember.propertyDidChange(n,i))):n[i]=o),o};Ember.config.overrideAccessors&&(Ember.set=i,Ember.config.overrideAccessors(),i=Ember.set),Ember.set=i,Ember.setPath=Ember.deprecateFunc("setPath is deprecated since set now supports paths",Ember.set),Ember.trySet=function(e,t,r){return i(e,t,r,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet)}(),function(){var e=(Ember.get,Ember.set),t=Ember.guidFor,r=Ember.ArrayPolyfills.indexOf,n=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},i=function(e,t){var r=e.keys.copy(),i=n(e.values);return t.keys=r,t.values=i,t.length=e.length,t},o=Ember.OrderedSet=function(){this.clear()};o.create=function(){return new o},o.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(e){var r=t(e),n=this.presenceSet,i=this.list;r in n||(n[r]=!0,i.push(e))},remove:function(e){var n=t(e),i=this.presenceSet,o=this.list;delete i[n];var s=r.call(o,e);s>-1&&o.splice(s,1)},isEmpty:function(){return 0===this.list.length},has:function(e){var r=t(e),n=this.presenceSet;return r in n},forEach:function(e,t){for(var r=this.toArray(),n=0,i=r.length;i>n;n++)e.call(t,r[n])},toArray:function(){return this.list.slice()},copy:function(){var e=new o;return e.presenceSet=n(this.presenceSet),e.list=this.toArray(),e}};var s=Ember.Map=function(){this.keys=Ember.OrderedSet.create(),this.values={}};s.create=function(){return new s},s.prototype={length:0,get:function(e){var r=this.values,n=t(e);return r[n]},set:function(r,n){var i=this.keys,o=this.values,s=t(r);i.add(r),o[s]=n,e(this,"length",i.list.length)},remove:function(r){var n=this.keys,i=this.values,o=t(r);return i.hasOwnProperty(o)?(n.remove(r),delete i[o],e(this,"length",n.list.length),!0):!1},has:function(e){var r=this.values,n=t(e);return r.hasOwnProperty(n)},forEach:function(e,r){var n=this.keys,i=this.values;n.forEach(function(n){var o=t(n);e.call(r,n,i[o])})},copy:function(){return i(this,new s)}};var a=Ember.MapWithDefault=function(e){s.call(this),this.defaultValue=e.defaultValue};a.create=function(e){return e?new a(e):new s},a.prototype=Ember.create(s.prototype),a.prototype.get=function(e){var t=this.has(e);if(t)return s.prototype.get.call(this,e);var r=this.defaultValue(e);return this.set(e,r),r},a.prototype.copy=function(){return i(this,new a({defaultValue:this.defaultValue}))}}(),function(){var e=Ember.META_KEY,t=Ember.meta,r=Ember.platform.defineProperty,n=Ember.ENV.MANDATORY_SETTER;Ember.Descriptor=function(){};var i=Ember.MANDATORY_SETTER_FUNCTION=function(){},o=Ember.DEFAULT_GETTER_FUNCTION=function(t){return function(){var r=this[e];return r&&r.values[t]}};Ember.defineProperty=function(e,s,a,u,c){var h,l,f,m;return c||(c=t(e)),h=c.descs,l=c.descs[s],f=c.watching[s]>0,l instanceof Ember.Descriptor&&l.teardown(e,s),a instanceof Ember.Descriptor?(m=a,h[s]=a,n&&f?r(e,s,{configurable:!0,enumerable:!0,writable:!0,value:void 0}):e[s]=void 0,a.setup(e,s)):(h[s]=void 0,null==a?(m=u,n&&f?(c.values[s]=u,r(e,s,{configurable:!0,enumerable:!0,set:i,get:o(s)})):e[s]=u):(m=a,r(e,s,a))),f&&Ember.overrideChains(e,s,c),e.didDefineProperty&&e.didDefineProperty(e,s,m),this}}(),function(){var e=Ember.changeProperties,t=Ember.set;Ember.setProperties=function(r,n){return e(function(){for(var e in n)n.hasOwnProperty(e)&&t(r,e,n[e])}),r}}(),function(){var e=Ember.meta,t=Ember.typeOf,r=Ember.ENV.MANDATORY_SETTER,n=Ember.platform.defineProperty;Ember.watchKey=function(i,o){if("length"!==o||"array"!==t(i)){var s,a=e(i),u=a.watching;u[o]?u[o]=(u[o]||0)+1:(u[o]=1,s=a.descs[o],s&&s.willWatch&&s.willWatch(i,o),"function"==typeof i.willWatchProperty&&i.willWatchProperty(o),r&&o in i&&(a.values[o]=i[o],n(i,o,{configurable:!0,enumerable:!0,set:Ember.MANDATORY_SETTER_FUNCTION,get:Ember.DEFAULT_GETTER_FUNCTION(o)})))}},Ember.unwatchKey=function(t,i){var o,s=e(t),a=s.watching;1===a[i]?(a[i]=0,o=s.descs[i],o&&o.didUnwatch&&o.didUnwatch(t,i),"function"==typeof t.didUnwatchProperty&&t.didUnwatchProperty(i),r&&i in t&&(n(t,i,{configurable:!0,enumerable:!0,writable:!0,value:s.values[i]}),delete s.values[i])):a[i]>1&&a[i]--}}(),function(){function e(e){return e.match(f)[0]}function t(e,t,r){if(e&&"object"==typeof e){var i=n(e),o=i.chainWatchers;i.hasOwnProperty("chainWatchers")||(o=i.chainWatchers={}),o[t]||(o[t]=[]),o[t].push(r),u(e,t)}}function r(e){return n(e,!1).proto===e}var n=Ember.meta,i=Ember.get,o=Ember.normalizeTuple,s=Ember.ArrayPolyfills.forEach,a=Ember.warn,u=Ember.watchKey,c=Ember.unwatchKey,h=Ember.propertyWillChange,l=Ember.propertyDidChange,f=/^([^\.\*]+)/,m=[];Ember.flushPendingChains=function(){if(0!==m.length){var e=m;m=[],s.call(e,function(e){e[0].add(e[1])}),a("Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos",0===m.length)}};var b=Ember.removeChainWatcher=function(e,t,r){if(e&&"object"==typeof e){var i=n(e,!1);if(i.hasOwnProperty("chainWatchers")){var o=i.chainWatchers;if(o[t]){o=o[t];for(var s=0,a=o.length;a>s;s++)o[s]===r&&o.splice(s,1)}c(e,t)}}},p=Ember._ChainNode=function(e,r,n){this._parent=e,this._key=r,this._watching=void 0===n,this._value=n,this._paths={},this._watching&&(this._object=e.value(),this._object&&t(this._object,this._key,this)),this._parent&&"@each"===this._parent._key&&this.value()},E=p.prototype;E.value=function(){if(void 0===this._value&&this._watching){var e=this._parent.value();this._value=e&&!r(e)?i(e,this._key):void 0}return this._value},E.destroy=function(){if(this._watching){var e=this._object;e&&b(e,this._key,this),this._watching=!1}},E.copy=function(e){var t,r=new p(null,null,e),n=this._paths;for(t in n)n[t]<=0||r.add(t);return r},E.add=function(t){var r,n,i,s,a;if(a=this._paths,a[t]=(a[t]||0)+1,r=this.value(),n=o(r,t),n[0]&&n[0]===r)t=n[1],i=e(t),t=t.slice(i.length+1);else{if(!n[0])return m.push([this,t]),n.length=0,void 0;s=n[0],i=t.slice(0,0-(n[1].length+1)),t=n[1]}n.length=0,this.chain(i,t,s)},E.remove=function(t){var r,n,i,s,a;a=this._paths,a[t]>0&&a[t]--,r=this.value(),n=o(r,t),n[0]===r?(t=n[1],i=e(t),t=t.slice(i.length+1)):(s=n[0],i=t.slice(0,0-(n[1].length+1)),t=n[1]),n.length=0,this.unchain(i,t)},E.count=0,E.chain=function(t,r,n){var i,o=this._chains;o||(o=this._chains={}),i=o[t],i||(i=o[t]=new p(this,t,n)),i.count++,r&&r.length>0&&(t=e(r),r=r.slice(t.length+1),i.chain(t,r))},E.unchain=function(t,r){var n=this._chains,i=n[t];r&&r.length>1&&(t=e(r),r=r.slice(t.length+1),i.unchain(t,r)),i.count--,i.count<=0&&(delete n[i._key],i.destroy())},E.willChange=function(){var e=this._chains;if(e)for(var t in e)e.hasOwnProperty(t)&&e[t].willChange();this._parent&&this._parent.chainWillChange(this,this._key,1)},E.chainWillChange=function(e,t,r){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainWillChange(this,t,r+1):(r>1&&h(this.value(),t),t="this."+t,this._paths[t]>0&&h(this.value(),t))},E.chainDidChange=function(e,t,r){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainDidChange(this,t,r+1):(r>1&&l(this.value(),t),t="this."+t,this._paths[t]>0&&l(this.value(),t))},E.didChange=function(e){if(this._watching){var r=this._parent.value();r!==this._object&&(b(this._object,this._key,this),this._object=r,t(r,this._key,this)),this._value=void 0,this._parent&&"@each"===this._parent._key&&this.value()}var n=this._chains;if(n)for(var i in n)n.hasOwnProperty(i)&&n[i].didChange(e);e||this._parent&&this._parent.chainDidChange(this,this._key,1)},Ember.finishChains=function(e){var t=n(e,!1),r=t.chains;r&&(r.value()!==e&&(t.chains=r=r.copy(e)),r.didChange(!0))}}(),function(){function e(e){var r=t(e),i=r.chains;return i?i.value()!==e&&(i=r.chains=i.copy(e)):i=r.chains=new n(null,null,e),i}var t=Ember.meta,r=Ember.typeOf,n=Ember._ChainNode;Ember.watchPath=function(n,i){if("length"!==i||"array"!==r(n)){var o=t(n),s=o.watching;s[i]?s[i]=(s[i]||0)+1:(s[i]=1,e(n).add(i))}},Ember.unwatchPath=function(r,n){var i=t(r),o=i.watching;1===o[n]?(o[n]=0,e(r).remove(n)):o[n]>1&&o[n]--}}(),function(){function e(e){return"*"===e||!l.test(e)}var t=Ember.meta,r=Ember.GUID_KEY,n=Ember.META_KEY,i=Ember.removeChainWatcher,o=Ember.watchKey,s=Ember.unwatchKey,a=Ember.watchPath,u=Ember.unwatchPath,c=Ember.typeOf,h=Ember.generateGuid,l=/[\.\*]/;Ember.watch=function(t,r){("length"!==r||"array"!==c(t))&&(e(r)?o(t,r):a(t,r))},Ember.isWatching=function(e,t){var r=e[n];return(r&&r.watching[t])>0},Ember.watch.flushPending=Ember.flushPendingChains,Ember.unwatch=function(t,r){("length"!==r||"array"!==c(t))&&(e(r)?s(t,r):u(t,r))},Ember.rewatch=function(e){var n=t(e,!1),i=n.chains;r in e&&!e.hasOwnProperty(r)&&h(e,"ember"),i&&i.value()!==e&&(n.chains=i.copy(e))};var f=[];Ember.destroy=function(e){var t,r,o,s,a=e[n];if(a&&(e[n]=null,t=a.chains))for(f.push(t);f.length>0;){if(t=f.pop(),r=t._chains)for(o in r)r.hasOwnProperty(o)&&f.push(r[o]);t._watching&&(s=t._object,s&&i(s,t._key,t))}}}(),function(){function e(e,t){var r=e[t];return r?e.hasOwnProperty(t)||(r=e[t]=f(r)):r=e[t]={},r}function t(t){return e(t,"deps")}function r(r,n,i,o){var s,a,u,c,h,l=r._dependentKeys;if(l)for(s=t(o),a=0,u=l.length;u>a;a++)c=l[a],h=e(s,c),h[i]=(h[i]||0)+1,b(n,c)}function n(r,n,i,o){var s,a,u,c,h,l=r._dependentKeys;if(l)for(s=t(o),a=0,u=l.length;u>a;a++)c=l[a],h=e(s,c),h[i]=(h[i]||0)-1,p(n,c)}function i(e,t){this.func=e,this._cacheable=t&&void 0!==t.cacheable?t.cacheable:!0,this._dependentKeys=t&&t.dependentKeys,this._readOnly=t&&(void 0!==t.readOnly||!!t.readOnly)}function o(e,t){for(var r={},n=0;n<t.length;n++)r[t[n]]=u(e,t[n]);return r}function s(e,t){Ember.computed[e]=function(e){var r=l.call(arguments);return Ember.computed(e,function(){return t.apply(this,r)})}}function a(e,t){Ember.computed[e]=function(){var e=l.call(arguments),r=Ember.computed(function(){return t.apply(this,[o(this,e)])});return r.property.apply(r,e)}}var u=Ember.get,c=Ember.set,h=Ember.meta,l=[].slice,f=Ember.create,m=Ember.META_KEY,b=Ember.watch,p=Ember.unwatch;Ember.ComputedProperty=i,i.prototype=new Ember.Descriptor;var E=i.prototype;E.cacheable=function(e){return this._cacheable=e!==!1,this},E.volatile=function(){return this.cacheable(!1)},E.readOnly=function(e){return this._readOnly=void 0===e||!!e,this},E.property=function(){for(var e=[],t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return this._dependentKeys=e,this},E.meta=function(e){return 0===arguments.length?this._meta||{}:(this._meta=e,this)},E.willWatch=function(e,t){var n=e[m];t in n.cache||r(this,e,t,n)},E.didUnwatch=function(e,t){var r=e[m];t in r.cache||n(this,e,t,r)},E.didChange=function(e,t){if(this._cacheable&&this._suspended!==e){var r=h(e);t in r.cache&&(delete r.cache[t],r.watching[t]||n(this,e,t,r))}},E.get=function(e,t){var n,i,o;if(this._cacheable){if(o=h(e),i=o.cache,t in i)return i[t];n=i[t]=this.func.call(e,t),o.watching[t]||r(this,e,t,o)}else n=this.func.call(e,t);return n},E.set=function(e,t,n){var i,o,s=this._cacheable,a=this.func,u=h(e,s),c=u.watching[t],l=this._suspended,f=!1,m=u.cache;if(this._readOnly)throw new Error("Cannot Set: "+t+" on: "+e.toString());this._suspended=e;try{if(s&&m.hasOwnProperty(t)&&(i=m[t],f=!0),a.wrappedFunction&&(a=a.wrappedFunction),3===a.length)o=a.call(e,t,n,i);else{if(2!==a.length)return Ember.defineProperty(e,t,null,i),Ember.set(e,t,n),void 0;o=a.call(e,t,n)}if(f&&i===o)return;c&&Ember.propertyWillChange(e,t),f&&delete m[t],s&&(c||f||r(this,e,t,u),m[t]=o),c&&Ember.propertyDidChange(e,t)}finally{this._suspended=l}return o},E.setup=function(e,t){var n=e[m];n&&n.watching[t]&&r(this,e,t,h(e))},E.teardown=function(e,t){var r=h(e);return(r.watching[t]||t in r.cache)&&n(this,e,t,r),this._cacheable&&delete r.cache[t],null},Ember.computed=function(e){var t;if(arguments.length>1&&(t=l.call(arguments,0,-1),e=l.call(arguments,-1)[0]),"function"!=typeof e)throw new Error("Computed Property declared without a property function");var r=new i(e);return t&&r.property.apply(r,t),r},Ember.cacheFor=function(e,t){var r=h(e,!1).cache;return r&&t in r?r[t]:void 0},s("empty",function(e){return Ember.isEmpty(u(this,e))}),s("notEmpty",function(e){return!Ember.isEmpty(u(this,e))}),s("none",function(e){return Ember.isNone(u(this,e))}),s("not",function(e){return!u(this,e)}),s("bool",function(e){return!!u(this,e)}),s("match",function(e,t){var r=u(this,e);return"string"==typeof r?!!r.match(t):!1}),s("equal",function(e,t){return u(this,e)===t}),s("gt",function(e,t){return u(this,e)>t}),s("gte",function(e,t){return u(this,e)>=t}),s("lt",function(e,t){return u(this,e)<t}),s("lte",function(e,t){return u(this,e)<=t}),a("and",function(e){for(var t in e)if(e.hasOwnProperty(t)&&!e[t])return!1;return!0}),a("or",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!0;return!1}),a("any",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return e[t];return null}),a("map",function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&(Ember.isNone(e[r])?t.push(null):t.push(e[r]));return t}),Ember.computed.alias=function(e){return Ember.computed(e,function(t,r){return arguments.length>1?(c(this,e,r),r):u(this,e)})},Ember.computed.oneWay=function(e){return Ember.computed(e,function(){return u(this,e)})},Ember.computed.defaultTo=function(e){return Ember.computed(function(t,r,n){return 1===arguments.length?null!=n?n:u(this,e):null!=r?r:u(this,e)})}}(),function(){function e(e){return e+r}function t(e){return e+n}var r=":change",n=":before";Ember.addObserver=function(t,r,n,i){return Ember.addListener(t,e(r),n,i),Ember.watch(t,r),this},Ember.observersFor=function(t,r){return Ember.listenersFor(t,e(r))},Ember.removeObserver=function(t,r,n,i){return Ember.unwatch(t,r),Ember.removeListener(t,e(r),n,i),this},Ember.addBeforeObserver=function(e,r,n,i){return Ember.addListener(e,t(r),n,i),Ember.watch(e,r),this},Ember._suspendBeforeObserver=function(e,r,n,i,o){return Ember._suspendListener(e,t(r),n,i,o)},Ember._suspendObserver=function(t,r,n,i,o){return Ember._suspendListener(t,e(r),n,i,o)};var i=Ember.ArrayPolyfills.map;Ember._suspendBeforeObservers=function(e,r,n,o,s){var a=i.call(r,t);return Ember._suspendListeners(e,a,n,o,s)},Ember._suspendObservers=function(t,r,n,o,s){var a=i.call(r,e);return Ember._suspendListeners(t,a,n,o,s)},Ember.beforeObserversFor=function(e,r){return Ember.listenersFor(e,t(r))},Ember.removeBeforeObserver=function(e,r,n,i){return Ember.unwatch(e,r),Ember.removeListener(e,t(r),n,i),this}}(),function(){e("backburner",["backburner/deferred_action_queues","exports"],function(e,t){"use strict";function r(e,t){this.queueNames=e,this.options=t||{},this.options.defaultQueue||(this.options.defaultQueue=e[0]),this.instanceStack=[]}function n(e){e.begin(),o=window.setTimeout(function(){e.end(),o=null})}function i(e){var t,r,n,o,u=+new Date;e.run(function(){for(n=0,o=f.length;o>n&&(t=f[n],!(t>u));n+=2);for(r=f.splice(0,n),n=1,o=r.length;o>n;n+=2)e.schedule(e.options.defaultQueue,null,r[n])}),f.length&&(s=window.setTimeout(function(){i(e),s=null,a=null},f[0]-u),a=f[0])}var o,s,a,u=e.DeferredActionQueues,c=[].slice,h=[].pop,l=[],f=[];r.prototype={queueNames:null,options:null,currentInstance:null,instanceStack:null,begin:function(){var e=this.options&&this.options.onBegin,t=this.currentInstance;t&&this.instanceStack.push(t),this.currentInstance=new u(this.queueNames,this.options),e&&e(this.currentInstance,t)},end:function(){var e=this.options&&this.options.onEnd,t=this.currentInstance,r=null;try{t.flush()}finally{this.currentInstance=null,this.instanceStack.length&&(r=this.instanceStack.pop(),this.currentInstance=r),e&&e(t,r)
16
- }},run:function(e,t){var r;this.begin(),t||(t=e,e=null),"string"==typeof t&&(t=e[t]);var n=!1;try{r=arguments.length>2?t.apply(e,c.call(arguments,2)):t.call(e)}finally{n||(n=!0,this.end())}return r},defer:function(e,t,r){r||(r=t,t=null),"string"==typeof r&&(r=t[r]);var i=this.DEBUG?(new Error).stack:void 0,o=arguments.length>3?c.call(arguments,3):void 0;return this.currentInstance||n(this),this.currentInstance.schedule(e,t,r,o,!1,i)},deferOnce:function(e,t,r){r||(r=t,t=null),"string"==typeof r&&(r=t[r]);var i=this.DEBUG?(new Error).stack:void 0,o=arguments.length>3?c.call(arguments,3):void 0;return this.currentInstance||n(this),this.currentInstance.schedule(e,t,r,o,!0,i)},setTimeout:function(){var e=this,t=h.call(arguments),r=arguments[0],n=arguments[1],o=+new Date+t;n||(n=r,r=null),"string"==typeof n&&(n=r[n]);var u,l;arguments.length>2?(l=c.call(arguments,2),u=function(){n.apply(r,l)}):u=function(){n.call(r)};var m,b;for(m=0,b=f.length;b>m&&!(o<f[m]);m+=2);return f.splice(m,0,o,u),s&&o>a?u:(s&&(clearTimeout(s),s=null),s=window.setTimeout(function(){i(e),s=null,a=null},t),a=o,u)},debounce:function(e,t){for(var r,n=this,i=arguments,o=h.call(i),s=0,a=l.length;a>s;s++)if(r=l[s],r[0]===e&&r[1]===t)return;var u=window.setTimeout(function(){n.run.apply(n,i);for(var o=-1,s=0,a=l.length;a>s;s++)if(r=l[s],r[0]===e&&r[1]===t){o=s;break}o>-1&&l.splice(o,1)},o);l.push([e,t,u])},cancelTimers:function(){for(var e=0,t=l.length;t>e;e++)clearTimeout(l[e][2]);l=[],s&&(clearTimeout(s),s=null),f=[],o&&(clearTimeout(o),o=null)},hasTimers:function(){return!!f.length||o},cancel:function(e){if(e&&"object"==typeof e&&e.queue&&e.method)return e.queue.cancel(e);if("function"==typeof e)for(var t=0,r=f.length;r>t;t+=2)if(f[t+1]===e)return f.splice(t,2),!0}},r.prototype.schedule=r.prototype.defer,r.prototype.scheduleOnce=r.prototype.deferOnce,r.prototype.later=r.prototype.setTimeout,t.Backburner=r}),e("backburner/deferred_action_queues",["backburner/queue","exports"],function(e,t){"use strict";function r(e,t){var r=this.queues={};this.queueNames=e=e||[];for(var n,o=0,s=e.length;s>o;o++)n=e[o],r[n]=new i(this,n,t[n])}function n(e,t){for(var r,n,i=0,o=t;o>=i;i++)if(r=e.queueNames[i],n=e.queues[r],n._queue.length)return i;return-1}var i=e.Queue;r.prototype={queueNames:null,queues:null,schedule:function(e,t,r,n,i,o){var s=this.queues,a=s[e];if(!a)throw new Error("You attempted to schedule an action in a queue ("+e+") that doesn't exist");return i?a.pushUnique(t,r,n,o):a.push(t,r,n,o)},flush:function(){for(var e,t,r,i,o=this.queues,s=this.queueNames,a=0,u=s.length;u>a;){e=s[a],t=o[e],r=t._queueBeingFlushed=t._queue.slice(),t._queue=[];var c,h,l,f,m=t.options,b=m&&m.before,p=m&&m.after,E=0,d=r.length;for(d&&b&&b();d>E;)c=r[E],h=r[E+1],l=r[E+2],f=r[E+3],"string"==typeof h&&(h=c[h]),h&&(l&&l.length>0?h.apply(c,l):h.call(c)),E+=4;t._queueBeingFlushed=null,d&&p&&p(),-1===(i=n(this,a))?a++:a=i}}},t.DeferredActionQueues=r}),e("backburner/queue",["exports"],function(e){"use strict";function t(e,t,r){this.daq=e,this.name=t,this.options=r,this._queue=[]}t.prototype={daq:null,name:null,options:null,_queue:null,push:function(e,t,r,n){var i=this._queue;return i.push(e,t,r,n),{queue:this,target:e,method:t}},pushUnique:function(e,t,r,n){var i,o,s,a,u=this._queue;for(s=0,a=u.length;a>s;s+=4)if(i=u[s],o=u[s+1],i===e&&o===t)return u[s+2]=r,u[s+3]=n,{queue:this,target:e,method:t};return this._queue.push(e,t,r,n),{queue:this,target:e,method:t}},flush:function(){var e,t,r,n,i,o=this._queue,s=this.options,a=s&&s.before,u=s&&s.after,c=o.length;for(c&&a&&a(),i=0;c>i;i+=4)e=o[i],t=o[i+1],r=o[i+2],n=o[i+3],r&&r.length>0?t.apply(e,r):t.call(e);c&&u&&u(),o.length>c?(this._queue=o.slice(c),this.flush()):this._queue.length=0},cancel:function(e){var t,r,n,i,o=this._queue;for(n=0,i=o.length;i>n;n+=4)if(t=o[n],r=o[n+1],t===e.target&&r===e.method)return o.splice(n,4),!0;if(o=this._queueBeingFlushed)for(n=0,i=o.length;i>n;n+=4)if(t=o[n],r=o[n+1],t===e.target&&r===e.method)return o[n+1]=null,!0}},e.Queue=t})}(),function(){function e(){!Ember.run.currentRunLoop}var r=function(e){Ember.run.currentRunLoop=e},n=function(e,t){Ember.run.currentRunLoop=t},i=t("backburner").Backburner,o=new i(["sync","actions","destroy"],{sync:{before:Ember.beginPropertyChanges,after:Ember.endPropertyChanges},defaultQueue:"actions",onBegin:r,onEnd:n}),s=[].slice;Ember.run=function(){var e;if(Ember.onerror)try{e=o.run.apply(o,arguments)}catch(t){Ember.onerror(t)}else e=o.run.apply(o,arguments);return e},Ember.run.join=function(){if(!Ember.run.currentRunLoop)return Ember.run.apply(Ember.run,arguments);var e=s.call(arguments);e.unshift("actions"),Ember.run.schedule.apply(Ember.run,e)},Ember.run.backburner=o,Ember.run,Ember.run.currentRunLoop=null,Ember.run.queues=o.queueNames,Ember.run.begin=function(){o.begin()},Ember.run.end=function(){o.end()},Ember.run.schedule=function(){e(),o.schedule.apply(o,arguments)},Ember.run.hasScheduledTimers=function(){return o.hasTimers()},Ember.run.cancelTimers=function(){o.cancelTimers()},Ember.run.sync=function(){o.currentInstance&&o.currentInstance.queues.sync.flush()},Ember.run.later=function(){return o.later.apply(o,arguments)},Ember.run.once=function(){e();var t=s.call(arguments);return t.unshift("actions"),o.scheduleOnce.apply(o,t)},Ember.run.scheduleOnce=function(){return e(),o.scheduleOnce.apply(o,arguments)},Ember.run.next=function(){var e=s.call(arguments);return e.push(1),o.later.apply(o,e)},Ember.run.cancel=function(e){return o.cancel(e)},Ember.run.debounce=function(){return o.debounce.apply(o,arguments)}}(),function(){function e(e,t){return r(o(t)?Ember.lookup:e,t)}function t(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])}Ember.LOG_BINDINGS=!1||!!Ember.ENV.LOG_BINDINGS;var r=Ember.get,n=(Ember.set,Ember.guidFor),i=/^([A-Z$]|([0-9][A-Z$]))/,o=Ember.isGlobalPath=function(e){return i.test(e)},s=function(e,t){this._direction="fwd",this._from=t,this._to=e,this._directionMap=Ember.Map.create()};s.prototype={copy:function(){var e=new s(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<"+n(this)+">("+this._from+" -> "+this._to+")"+e},connect:function(t){var r=this._from,n=this._to;return Ember.trySet(t,n,e(t,r)),Ember.addObserver(t,r,this,this.fromDidChange),this._oneWay||Ember.addObserver(t,n,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 r=this._directionMap,n=r.get(e);n||(Ember.run.schedule("sync",this,this._sync,e),r.set(e,t)),"back"===n&&"fwd"===t&&r.set(e,"fwd")},_sync:function(t){var n=Ember.LOG_BINDINGS;if(!t.isDestroyed&&this._readyToSync){var i=this._directionMap,o=i.get(t),s=this._from,a=this._to;if(i.remove(t),"fwd"===o){var u=e(t,this._from);n&&Ember.Logger.log(" ",this.toString(),"->",u,t),this._oneWay?Ember.trySet(t,a,u):Ember._suspendObserver(t,a,this,this.toDidChange,function(){Ember.trySet(t,a,u)})}else if("back"===o){var c=r(t,this._to);n&&Ember.Logger.log(" ",this.toString(),"<-",c,t),Ember._suspendObserver(t,s,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(s)?Ember.lookup:t,s,c)})}}}},t(s,{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 r=this,n=new r(null,e);return n.oneWay(t)}}),Ember.Binding=s,Ember.bind=function(e,t,r){return new Ember.Binding(t,r).connect(e)},Ember.oneWay=function(e,t,r){return new Ember.Binding(t,r).oneWay().connect(e)}}(),function(){function e(e){var t=Ember.meta(e,!0),r=t.mixins;return r?t.hasOwnProperty("mixins")||(r=t.mixins=A(r)):r=t.mixins={},r}function t(e,t){return t&&t.length>0&&(e.mixins=O.call(t,function(e){if(e instanceof g)return e;var t=new g;return t.properties=e,t})),e}function r(e){return"function"==typeof e&&e.isMethod!==!1&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function n(e,t){var r;return t instanceof g?(r=S(t),e[r]?D:(e[r]=t,t.properties)):t}function i(e,t,r){var n;return n=t.concatenatedProperties||r.concatenatedProperties,e.concatenatedProperties&&(n=n?n.concat(e.concatenatedProperties):e.concatenatedProperties),n}function o(e,t,r,n,i){var o;return void 0===n[t]&&(o=i[t]),o=o||e.descs[t],o&&o instanceof Ember.ComputedProperty?(r=A(r),r.func=Ember.wrap(r.func,o.func),r):r}function s(e,t,r,n,i){var o;return void 0===i[t]&&(o=n[t]),o=o||e[t],"function"!=typeof o?r:Ember.wrap(r,o)}function a(e,t,r,n){var i=n[t]||e[t];return i?"function"==typeof i.concat?i.concat(r):Ember.makeArray(i).concat(r):Ember.makeArray(r)}function u(e,t,n,i,u,c,h){if(n instanceof Ember.Descriptor){if(n===y&&u[t])return D;n.func&&(n=o(i,t,n,c,u)),u[t]=n,c[t]=void 0}else r(n)?n=s(e,t,n,c,u):(h&&C.call(h,t)>=0||"concatenatedProperties"===t)&&(n=a(e,t,n,c)),u[t]=void 0,c[t]=n}function c(e,t,r,o,s,a){function h(e){delete r[e],delete o[e]}for(var l,f,m,b,p,E=0,d=e.length;d>E;E++)if(l=e[E],f=n(t,l),f!==D)if(f){p=Ember.meta(s),b=i(f,o,s);for(m in f)f.hasOwnProperty(m)&&(a.push(m),u(s,m,f[m],p,r,o,b));f.hasOwnProperty("toString")&&(s.toString=f.toString)}else l.mixins&&(c(l.mixins,t,r,o,s,a),l._without&&w.call(l._without,h))}function h(e,t,r,n){if(x.test(t)){var i=n.bindings;i?n.hasOwnProperty("bindings")||(i=n.bindings=A(n.bindings)):i=n.bindings={},i[t]=r}}function l(e,t){var r,n,i,o=t.bindings;if(o){for(r in o)n=o[r],n&&(i=r.slice(0,-7),n instanceof Ember.Binding?(n=n.copy(),n.to(i)):n=new Ember.Binding(i,n),n.connect(e),e[r]=n);t.bindings={}}}function f(e,t){return l(e,t||Ember.meta(e)),e}function m(e,t,r,n,i){var o,s=t.methodName;return n[s]||i[s]?(o=i[s],t=n[s]):r.descs[s]?(t=r.descs[s],o=void 0):(t=void 0,o=e[s]),{desc:t,value:o}}function b(e,t,r,n,i){if("function"==typeof r){var o=r[n];if(o)for(var s=0,a=o.length;a>s;s++)Ember[i](e,o[s],null,t)}}function p(e,t,r){var n=e[t];b(e,t,n,"__ember_observesBefore__","removeBeforeObserver"),b(e,t,n,"__ember_observes__","removeObserver"),b(e,t,r,"__ember_observesBefore__","addBeforeObserver"),b(e,t,r,"__ember_observes__","addObserver")}function E(t,r,n){var i,o,s,a={},u={},l=Ember.meta(t),b=[];c(r,e(t),a,u,t,b);for(var E=0,d=b.length;d>E;E++)if(i=b[E],"constructor"!==i&&u.hasOwnProperty(i)&&(s=a[i],o=u[i],s!==y)){for(;s&&s instanceof _;){var v=m(t,s,l,a,u);s=v.desc,o=v.value}(void 0!==s||void 0!==o)&&(p(t,i,o),h(t,i,o,l),j(t,i,s,o,l))}return n||f(t,l),t}function d(e,t,r){var n=S(e);if(r[n])return!1;if(r[n]=!0,e===t)return!0;for(var i=e.mixins,o=i?i.length:0;--o>=0;)if(d(i[o],t,r))return!0;return!1}function v(e,t,r){if(!r[S(t)])if(r[S(t)]=!0,t.properties){var n=t.properties;for(var i in n)n.hasOwnProperty(i)&&(e[i]=!0)}else t.mixins&&w.call(t.mixins,function(t){v(e,t,r)})}var g,y,_,O=Ember.ArrayPolyfills.map,C=Ember.ArrayPolyfills.indexOf,w=Ember.ArrayPolyfills.forEach,P=[].slice,A=Ember.create,j=Ember.defineProperty,S=Ember.guidFor,D={},x=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(e){var t=P.call(arguments,1);return E(e,t,!1),e},Ember.Mixin=function(){return t(this,arguments)},g=Ember.Mixin,g.prototype={properties:null,mixins:null,ownerConstructor:null},g._apply=E,g.applyPartial=function(e){var t=P.call(arguments,1);return E(e,t,!0)},g.finishPartial=f,Ember.anyUnprocessedMixins=!1,g.create=function(){Ember.anyUnprocessedMixins=!0;var e=this;return t(new e,arguments)};var N=g.prototype;N.reopen=function(){var e,t;this.properties?(e=g.create(),e.properties=this.properties,delete this.properties,this.mixins=[e]):this.mixins||(this.mixins=[]);var r,n=arguments.length,i=this.mixins;for(r=0;n>r;r++)e=arguments[r],e instanceof g?i.push(e):(t=g.create(),t.properties=e,i.push(t));return this},N.apply=function(e){return E(e,[this],!1)},N.applyPartial=function(e){return E(e,[this],!0)},N.detect=function(e){if(!e)return!1;if(e instanceof g)return d(e,this,{});var t=Ember.meta(e,!1).mixins;return t?!!t[S(this)]:!1},N.without=function(){var e=new g(this);return e._without=P.call(arguments),e},N.keys=function(){var e={},t={},r=[];v(e,this,t);for(var n in e)e.hasOwnProperty(n)&&r.push(n);return r},g.mixins=function(e){var t=Ember.meta(e,!1).mixins,r=[];if(!t)return r;for(var n in t){var i=t[n];i.properties||r.push(i)}return r},y=new Ember.Descriptor,y.toString=function(){return"(Required Property)"},Ember.required=function(){return y},_=function(e){this.methodName=e},_.prototype=new Ember.Descriptor,Ember.alias=function(e){return new _(e)},Ember.alias=Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.aliasMethod or Ember.computed.alias instead.",Ember.alias),Ember.aliasMethod=function(e){return new _(e)},Ember.observer=function(e){var t=P.call(arguments,1);return e.__ember_observes__=t,e},Ember.immediateObserver=function(){for(var e=0,t=arguments.length;t>e;e++)arguments[e];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(e){var t=P.call(arguments,1);return e.__ember_observesBefore__=t,e}}(),function(){e("rsvp/all",["rsvp/defer","exports"],function(e,t){"use strict";function r(e){var t=[],r=n(),i=e.length;0===i&&r.resolve([]);for(var o=function(e){return function(t){s(e,t)}},s=function(e,n){t[e]=n,0===--i&&r.resolve(t)},a=function(e){r.reject(e)},u=0;u<e.length;u++)e[u]&&"function"==typeof e[u].then?e[u].then(o(u),a):s(u,e[u]);return r.promise}var n=e.defer;t.all=r}),e("rsvp/async",["exports"],function(e){"use strict";var t,r="undefined"!=typeof window?window:{},n=r.MutationObserver||r.WebKitMutationObserver;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))t=function(e,t){process.nextTick(function(){e.call(t)})};else if(n){var i=[],o=new n(function(){var e=i.slice();i=[],e.forEach(function(e){var t=e[0],r=e[1];t.call(r)})}),s=document.createElement("div");o.observe(s,{attributes:!0}),window.addEventListener("unload",function(){o.disconnect(),o=null}),t=function(e,t){i.push([e,t]),s.setAttribute("drainQueue","drainQueue")}}else t=function(e,t){setTimeout(function(){e.call(t)},1)};e.async=t}),e("rsvp/config",["rsvp/async","exports"],function(e,t){"use strict";var r=e.async,n={};n.async=r,t.config=n}),e("rsvp/defer",["rsvp/promise","exports"],function(e,t){"use strict";function r(){var e={},t=new n(function(t,r){e.resolve=t,e.reject=r});return e.promise=t,e}var n=e.Promise;t.defer=r}),e("rsvp/events",["exports"],function(e){"use strict";var t=function(e,t){this.type=e;for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r])},r=function(e,t){for(var r=0,n=e.length;n>r;r++)if(e[r][0]===t)return r;return-1},n=function(e){var t=e._promiseCallbacks;return t||(t=e._promiseCallbacks={}),t},i={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,t,i){var o,s,a=n(this);for(e=e.split(/\s+/),i=i||this;s=e.shift();)o=a[s],o||(o=a[s]=[]),-1===r(o,t)&&o.push([t,i])},off:function(e,t){var i,o,s,a=n(this);for(e=e.split(/\s+/);o=e.shift();)t?(i=a[o],s=r(i,t),-1!==s&&i.splice(s,1)):a[o]=[]},trigger:function(e,r){var i,o,s,a,u,c=n(this);if(i=c[e])for(var h=0;h<i.length;h++)o=i[h],s=o[0],a=o[1],"object"!=typeof r&&(r={detail:r}),u=new t(e,r),s.call(a,u)}};e.EventTarget=i}),e("rsvp/hash",["rsvp/defer","exports"],function(e,t){"use strict";function r(e){var t=0;for(var r in e)t++;return t}function n(e){var t={},n=i(),o=r(e);0===o&&n.resolve({});var s=function(e){return function(t){a(e,t)}},a=function(e,r){t[e]=r,0===--o&&n.resolve(t)},u=function(e){n.reject(e)};for(var c in e)e[c]&&"function"==typeof e[c].then?e[c].then(s(c),u):a(c,e[c]);return n.promise}var i=e.defer;t.hash=n}),e("rsvp/node",["rsvp/promise","rsvp/all","exports"],function(e,t,r){"use strict";function n(e,t){return function(r,n){r?t(r):arguments.length>2?e(Array.prototype.slice.call(arguments,1)):e(n)}}function i(e){return function(){var t,r,i=Array.prototype.slice.call(arguments),a=new o(function(e,n){t=e,r=n});return s(i).then(function(i){i.push(n(t,r));try{e.apply(this,i)}catch(o){r(o)}}),a}}var o=e.Promise,s=t.all;r.denodeify=i}),e("rsvp/promise",["rsvp/config","rsvp/events","exports"],function(e,t,r){"use strict";function n(e){return i(e)||"object"==typeof e&&null!==e}function i(e){return"function"==typeof e}function o(e,t){e===t?a(e,t):s(e,t)||a(e,t)}function s(e,t){var r=null;if(n(t)){try{r=t.then}catch(s){return u(e,s),!0}if(i(r)){try{r.call(t,function(r){t!==r?o(e,r):a(e,r)},function(t){u(e,t)})}catch(s){u(e,s)}return!0}}return!1}function a(e,t){c.async(function(){e.trigger("promise:resolved",{detail:t}),e.isFulfilled=!0,e.fulfillmentValue=t})}function u(e,t){c.async(function(){e.trigger("promise:failed",{detail:t}),e.isRejected=!0,e.rejectedReason=t})}var c=e.config,h=t.EventTarget,l=function(e){var t=this,r=!1;if("function"!=typeof e)throw new TypeError("You must pass a resolver function as the sole argument to the promise constructor");if(!(t instanceof l))return new l(e);var n=function(e){r||(r=!0,o(t,e))},i=function(e){r||(r=!0,u(t,e))};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);try{e(n,i)}catch(s){i(s)}},f=function(e,t,r,n){var a,c,h,l,f=i(r);if(f)try{a=r(n.detail),h=!0}catch(m){l=!0,c=m}else a=n.detail,h=!0;s(t,a)||(f&&h?o(t,a):l?u(t,c):"resolve"===e?o(t,a):"reject"===e&&u(t,a))};l.prototype={constructor:l,then:function(e,t){var r=new l(function(){});return this.isFulfilled&&c.async(function(){f("resolve",r,e,{detail:this.fulfillmentValue})},this),this.isRejected&&c.async(function(){f("reject",r,t,{detail:this.rejectedReason})},this),this.on("promise:resolved",function(t){f("resolve",r,e,t)}),this.on("promise:failed",function(e){f("reject",r,t,e)}),r}},h.mixin(l.prototype),r.Promise=l}),e("rsvp/reject",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){return new n(function(t,r){r(e)})}var n=e.Promise;t.reject=r}),e("rsvp/resolve",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){return"function"==typeof e||"object"==typeof e&&null!==e}function n(e){var t=new i(function(t,n){var i;try{r(e)?(i=e.then,"function"==typeof i?i.call(e,t,n):t(e)):t(e)}catch(o){n(o)}});return t}var i=e.Promise;t.resolve=n}),e("rsvp",["rsvp/events","rsvp/promise","rsvp/node","rsvp/all","rsvp/hash","rsvp/defer","rsvp/config","rsvp/resolve","rsvp/reject","exports"],function(e,t,r,n,i,o,s,a,u,c){"use strict";function h(e,t){d[e]=t}var l=e.EventTarget,f=t.Promise,m=r.denodeify,b=n.all,p=i.hash,E=o.defer,d=s.config,v=a.resolve,g=u.reject;c.Promise=f,c.EventTarget=l,c.all=b,c.hash=p,c.defer=E,c.denodeify=m,c.configure=h,c.resolve=v,c.reject=g})}(),function(){e("container",[],function(){function e(e){this.parent=e,this.dict={}}function t(t){this.parent=t,this.children=[],this.resolver=t&&t.resolver||function(){},this.registry=new e(t&&t.registry),this.cache=new e(t&&t.cache),this.typeInjections=new e(t&&t.typeInjections),this.injections={},this._options=new e(t&&t._options),this._typeOptions=new e(t&&t._typeOptions)}function r(e){throw new Error(e+" is not currently supported on child containers")}function n(e,t){var r=o(e,t,"singleton");return r!==!1}function i(e,t){var r={};if(!t)return r;for(var n,i,o=0,s=t.length;s>o;o++){if(n=t[o],i=e.lookup(n.fullName),!i)throw new Error("Attempting to inject an unknown injection: `"+n.fullName+"`");r[n.property]=i}return r}function o(e,t,r){var n=e._options.get(t);if(n&&void 0!==n[r])return n[r];var i=t.split(":")[0];return n=e._typeOptions.get(i),n?n[r]:void 0}function s(e,t){var r=e.normalize(t);return e.resolve(r)}function a(e,t){var r,n=s(e,t),a=t.split(":"),u=a[0];if(o(e,t,"instantiate")===!1)return n;if(n){var c=[];c=c.concat(e.typeInjections.get(u)||[]),c=c.concat(e.injections[t]||[]);var h=i(e,c);return h.container=e,h._debugContainerKey=t,r=n.create(h)}}function u(e,t){e.cache.eachLocal(function(r,n){o(e,r,"instantiate")!==!1&&t(n)})}function c(e){e.cache.eachLocal(function(t,r){o(e,t,"instantiate")!==!1&&r.destroy()}),e.cache.dict={}}return e.prototype={parent:null,dict:null,get:function(e){var t=this.dict;return t.hasOwnProperty(e)?t[e]:this.parent?this.parent.get(e):void 0},set:function(e,t){this.dict[e]=t},has:function(e){var t=this.dict;return t.hasOwnProperty(e)?!0:this.parent?this.parent.has(e):!1},eachLocal:function(e,t){var r=this.dict;for(var n in r)r.hasOwnProperty(n)&&e.call(t,n,r[n])}},t.prototype={parent:null,children:null,resolver:null,registry:null,cache:null,typeInjections:null,injections:null,_options:null,_typeOptions:null,child:function(){var e=new t(this);return this.children.push(e),e},set:function(e,t,r){e[t]=r},register:function(e,t,r,n){var i;-1!==e.indexOf(":")?(n=r,r=t,i=e):i=e+":"+t;var o=this.normalize(i);this.registry.set(o,r),this._options.set(o,n||{})},resolve:function(e){return this.resolver(e)||this.registry.get(e)},normalize:function(e){return e},lookup:function(e,t){if(e=this.normalize(e),t=t||{},this.cache.has(e)&&t.singleton!==!1)return this.cache.get(e);var r=a(this,e);return r?(n(this,e)&&t.singleton!==!1&&this.cache.set(e,r),r):void 0},lookupFactory:function(e){return s(this,e)},has:function(e){return this.cache.has(e)?!0:!!s(this,e)},optionsForType:function(e,t){this.parent&&r("optionsForType"),this._typeOptions.set(e,t)},options:function(e,t){this.optionsForType(e,t)},typeInjection:function(e,t,n){this.parent&&r("typeInjection");var i=this.typeInjections.get(e);i||(i=[],this.typeInjections.set(e,i)),i.push({property:t,fullName:n})},injection:function(e,t,n){if(this.parent&&r("injection"),-1===e.indexOf(":"))return this.typeInjection(e,t,n);var i=this.injections[e]=this.injections[e]||[];i.push({property:t,fullName:n})},destroy:function(){this.isDestroyed=!0;for(var e=0,t=this.children.length;t>e;e++)this.children[e].destroy();this.children=[],u(this,function(e){e.destroy()}),delete this.parent,this.isDestroyed=!0},reset:function(){for(var e=0,t=this.children.length;t>e;e++)c(this.children[e]);c(this)}},t})}(),function(){function e(r,n,i,o){var s,a,u;if("object"!=typeof r||null===r)return r;if(n&&(a=t(i,r))>=0)return o[a];if("array"===Ember.typeOf(r)){if(s=r.slice(),n)for(a=s.length;--a>=0;)s[a]=e(s[a],n,i,o)}else if(Ember.Copyable&&Ember.Copyable.detect(r))s=r.copy(n,i,o);else{s={};for(u in r)r.hasOwnProperty(u)&&"__"!==u.substring(0,2)&&(s[u]=n?e(r[u],n,i,o):r[u])}return n&&(i.push(r),o.push(s)),s}var t=Ember.EnumerableUtils.indexOf;Ember.compare=function n(e,t){if(e===t)return 0;var r=Ember.typeOf(e),i=Ember.typeOf(t),o=Ember.Comparable;if(o){if("instance"===r&&o.detect(e.constructor))return e.constructor.compare(e,t);if("instance"===i&&o.detect(t.constructor))return 1-t.constructor.compare(t,e)}var s=Ember.ORDER_DEFINITION_MAPPING;if(!s){var a=Ember.ORDER_DEFINITION;s=Ember.ORDER_DEFINITION_MAPPING={};var u,c;for(u=0,c=a.length;c>u;++u)s[a[u]]=u;delete Ember.ORDER_DEFINITION}var h=s[r],l=s[i];if(l>h)return-1;if(h>l)return 1;switch(r){case"boolean":case"number":return t>e?-1:e>t?1:0;case"string":var f=e.localeCompare(t);return 0>f?-1:f>0?1:0;case"array":for(var m=e.length,b=t.length,p=Math.min(m,b),E=0,d=0;0===E&&p>d;)E=n(e[d],t[d]),d++;return 0!==E?E:b>m?-1:m>b?1:0;case"instance":return Ember.Comparable&&Ember.Comparable.detect(e)?e.compare(e,t):0;case"date":var v=e.getTime(),g=t.getTime();return g>v?-1:v>g?1:0;default:return 0}},Ember.copy=function(t,r){return"object"!=typeof t||null===t?t:Ember.Copyable&&Ember.Copyable.detect(t)?t.copy(r):e(t,r,r?[]:null,r?[]:null)},Ember.inspect=function(e){if("object"!=typeof e||null===e)return e+"";var t,r=[];for(var n in e)if(e.hasOwnProperty(n)){if(t=e[n],"toString"===t)continue;"function"===Ember.typeOf(t)&&(t="function() { ... }"),r.push(n+": "+t)}return"{"+r.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.create.isSimulated)&&(Ember.keys=function(e){var t=[];for(var r in e)"__"!==r.substring(0,2)&&"_super"!==r&&e.hasOwnProperty(r)&&t.push(r);return t});var r=["description","fileName","lineNumber","message","name","number","stack"];Ember.Error=function(){for(var e=Error.apply(this,arguments),t=0;t<r.length;t++)this[r[t]]=e[r[t]]},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){Ember.RSVP=t("rsvp")}(),function(){var e=/[ _]/g,t={},r=/([a-z])([A-Z])/g,n=/(\-|_|\.|\s)+(.)?/g,i=/([a-z\d])([A-Z]+)/g,o=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(e,t){var r=0;return e.replace(/%@([0-9]+)?/g,function(e,n){return n=n?parseInt(n,0)-1:r++,e=t[n],(null===e?"(null)":void 0===e?"":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(r,"$1_$2").toLowerCase()},dasherize:function(r){var n,i=t,o=i.hasOwnProperty(r);return o?i[r]:(n=Ember.String.decamelize(r).replace(e,"-"),i[r]=n,n)},camelize:function(e){return e.replace(n,function(e,t,r){return r?r.toUpperCase():""}).replace(/^([A-Z])/,function(e){return e.toLowerCase()})},classify:function(e){for(var t=e.split("."),r=[],n=0,i=t.length;i>n;n++){var o=Ember.String.camelize(t[n]);r.push(o.charAt(0).toUpperCase()+o.substr(1))}return r.join(".")},underscore:function(e){return e.replace(i,"$1_$2").replace(o,"_").toLowerCase()},capitalize:function(e){return e.charAt(0).toUpperCase()+e.substr(1)}}}(),function(){var e=Ember.String.fmt,t=Ember.String.w,r=Ember.String.loc,n=Ember.String.camelize,i=Ember.String.decamelize,o=Ember.String.dasherize,s=Ember.String.underscore,a=Ember.String.capitalize,u=Ember.String.classify;(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 r(this,arguments)},String.prototype.camelize=function(){return n(this)},String.prototype.decamelize=function(){return i(this)},String.prototype.dasherize=function(){return o(this)},String.prototype.underscore=function(){return s(this)},String.prototype.classify=function(){return u(this)},String.prototype.capitalize=function(){return a(this)})}(),function(){var e=Array.prototype.slice;(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 e(){return 0===a.length?{}:a.pop()}function t(e){return a.push(e),null}function r(e,t){function r(r){var o=n(r,e);return i?t===o:!!o}var i=2===arguments.length;return r}var n=Ember.get,i=Ember.set,o=Array.prototype.slice,s=Ember.EnumerableUtils.indexOf,a=[];Ember.Enumerable=Ember.Mixin.create({isEnumerable:!0,nextObject:Ember.required(Function),firstObject:Ember.computed(function(){if(0===n(this,"length"))return void 0;var r,i=e();return r=this.nextObject(0,null,i),t(i),r}).property("[]"),lastObject:Ember.computed(function(){var r=n(this,"length");if(0===r)return void 0;var i,o=e(),s=0,a=null;do a=i,i=this.nextObject(s++,a,o);while(void 0!==i);return t(o),a}).property("[]"),contains:function(e){return void 0!==this.find(function(t){return t===e})},forEach:function(r,i){if("function"!=typeof r)throw new TypeError;var o=n(this,"length"),s=null,a=e();void 0===i&&(i=null);for(var u=0;o>u;u++){var c=this.nextObject(u,s,a);r.call(i,c,u,this),s=c}return s=null,a=t(a),this},getEach:function(e){return this.mapProperty(e)},setEach:function(e,t){return this.forEach(function(r){i(r,e,t)})},map:function(e,t){var r=Ember.A();return this.forEach(function(n,i,o){r[i]=e.call(t,n,i,o)}),r},mapProperty:function(e){return this.map(function(t){return n(t,e)})},filter:function(e,t){var r=Ember.A();return this.forEach(function(n,i,o){e.call(t,n,i,o)&&r.push(n)}),r},reject:function(e,t){return this.filter(function(){return!e.apply(t,arguments)})},filterProperty:function(){return this.filter(r.apply(this,arguments))},rejectProperty:function(e,t){var r=function(r){return n(r,e)===t},i=function(t){return!!n(t,e)},o=2===arguments.length?r:i;return this.reject(o)},find:function(r,i){var o=n(this,"length");void 0===i&&(i=null);for(var s,a,u=null,c=!1,h=e(),l=0;o>l&&!c;l++)s=this.nextObject(l,u,h),(c=r.call(i,s,l,this))&&(a=s),u=s;return s=u=null,h=t(h),a},findProperty:function(){return this.find(r.apply(this,arguments))},every:function(e,t){return!this.find(function(r,n,i){return!e.call(t,r,n,i)})},everyProperty:function(){return this.every(r.apply(this,arguments))},some:function(e,t){return!!this.find(function(r,n,i){return!!e.call(t,r,n,i)})},someProperty:function(){return this.some(r.apply(this,arguments))},reduce:function(e,t,r){if("function"!=typeof e)throw new TypeError;var n=t;return this.forEach(function(t,i){n=e.call(null,n,t,i,this,r)},this),n},invoke:function(e){var t,r=Ember.A();return arguments.length>1&&(t=o.call(arguments,1)),this.forEach(function(n,i){var o=n&&n[e];"function"==typeof o&&(r[i]=t?o.apply(n,t):o.call(n))},this),r},toArray:function(){var e=Ember.A();return this.forEach(function(t,r){e[r]=t}),e},compact:function(){return this.filter(function(e){return null!=e})},without:function(e){if(!this.contains(e))return this;var t=Ember.A();return this.forEach(function(r){r!==e&&(t[t.length]=r)}),t},uniq:function(){var e=Ember.A();return this.forEach(function(t){s(e,t)<0&&e.push(t)}),e},"[]":Ember.computed(function(){return this}),addEnumerableObserver:function(e,t){var r=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",o=n(this,"hasEnumerableObservers");return o||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",e,r),Ember.addListener(this,"@enumerable:change",e,i),o||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(e,t){var r=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",o=n(this,"hasEnumerableObservers");return o&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",e,r),Ember.removeListener(this,"@enumerable:change",e,i),o&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}),enumerableContentWillChange:function(e,t){var r,i,o;return r="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof t?t:t?n(t,"length"):t=-1,o=0>i||0>r||0!==i-r,-1===e&&(e=null),-1===t&&(t=null),Ember.propertyWillChange(this,"[]"),o&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,e,t]),this},enumerableContentDidChange:function(e,t){var r,i,o;return r="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof t?t:t?n(t,"length"):t=-1,o=0>i||0>r||0!==i-r,-1===e&&(e=null),-1===t&&(t=null),Ember.sendEvent(this,"@enumerable:change",[this,e,t]),o&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.isNone),r=Ember.EnumerableUtils.map,n=Ember.cacheFor;Ember.Array=Ember.Mixin.create(Ember.Enumerable,{length:Ember.required(),objectAt:function(t){return 0>t||t>=e(this,"length")?void 0:e(this,t)},objectsAt:function(e){var t=this;return r(e,function(e){return t.objectAt(e)})},nextObject:function(e){return this.objectAt(e)},"[]":Ember.computed(function(t,r){return void 0!==r&&this.replace(0,e(this,"length"),r),this}),firstObject:Ember.computed(function(){return this.objectAt(0)}),lastObject:Ember.computed(function(){return this.objectAt(e(this,"length")-1)}),contains:function(e){return this.indexOf(e)>=0},slice:function(r,n){var i=Ember.A(),o=e(this,"length");for(t(r)&&(r=0),(t(n)||n>o)&&(n=o),0>r&&(r=o+r),0>n&&(n=o+n);n>r;)i[i.length]=this.objectAt(r++);return i},indexOf:function(t,r){var n,i=e(this,"length");for(void 0===r&&(r=0),0>r&&(r+=i),n=r;i>n;n++)if(this.objectAt(n,!0)===t)return n;return-1},lastIndexOf:function(t,r){var n,i=e(this,"length");for((void 0===r||r>=i)&&(r=i-1),0>r&&(r+=i),n=r;n>=0;n--)if(this.objectAt(n)===t)return n;return-1},addArrayObserver:function(t,r){var n=r&&r.willChange||"arrayWillChange",i=r&&r.didChange||"arrayDidChange",o=e(this,"hasArrayObservers");
17
- return o||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",t,n),Ember.addListener(this,"@array:change",t,i),o||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(t,r){var n=r&&r.willChange||"arrayWillChange",i=r&&r.didChange||"arrayDidChange",o=e(this,"hasArrayObservers");return o&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",t,n),Ember.removeListener(this,"@array:change",t,i),o&&Ember.propertyDidChange(this,"hasArrayObservers"),this},hasArrayObservers:Ember.computed(function(){return Ember.hasListeners(this,"@array:change")||Ember.hasListeners(this,"@array:before")}),arrayContentWillChange:function(t,r,n){void 0===t?(t=0,r=n=-1):(void 0===r&&(r=-1),void 0===n&&(n=-1)),Ember.isWatching(this,"@each")&&e(this,"@each"),Ember.sendEvent(this,"@array:before",[this,t,r,n]);var i,o;if(t>=0&&r>=0&&e(this,"hasEnumerableObservers")){i=[],o=t+r;for(var s=t;o>s;s++)i.push(this.objectAt(s))}else i=r;return this.enumerableContentWillChange(i,n),this},arrayContentDidChange:function(t,r,i){void 0===t?(t=0,r=i=-1):(void 0===r&&(r=-1),void 0===i&&(i=-1));var o,s;if(t>=0&&i>=0&&e(this,"hasEnumerableObservers")){o=[],s=t+i;for(var a=t;s>a;a++)o.push(this.objectAt(a))}else o=i;this.enumerableContentDidChange(r,o),Ember.sendEvent(this,"@array:change",[this,t,r,i]);var u=e(this,"length"),c=n(this,"firstObject"),h=n(this,"lastObject");return this.objectAt(0)!==c&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(u-1)!==h&&(Ember.propertyWillChange(this,"lastObject"),Ember.propertyDidChange(this,"lastObject")),this},"@each":Ember.computed(function(){return this.__each||(this.__each=new Ember.EachProxy(this)),this.__each})})}(),function(){Ember.Comparable=Ember.Mixin.create({isComparable:!0,compare:Ember.required(Function)})}(),function(){var e=Ember.get;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=[],r=Ember.get;Ember.set,Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var e=r(this,"length");return 0===e?this:(this.replace(0,e,t),this)},insertAt:function(t,n){if(t>r(this,"length"))throw new Error(e);return this.replace(t,0,[n]),this},removeAt:function(n,i){if("number"==typeof n){if(0>n||n>=r(this,"length"))throw new Error(e);void 0===i&&(i=1),this.replace(n,i,t)}return this},pushObject:function(e){return this.insertAt(r(this,"length"),e),e},pushObjects:function(e){return this.replace(r(this,"length"),0,e),this},popObject:function(){var e=r(this,"length");if(0===e)return null;var t=this.objectAt(e-1);return this.removeAt(e-1,1),t},shiftObject:function(){if(0===r(this,"length"))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=r(this,"length");if(0===e)return this;var t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects:function(e){if(0===e.length)return this.clear();var t=r(this,"length");return this.replace(0,t,e),this},removeObject:function(e){for(var t=r(this,"length")||0;--t>=0;){var n=this.objectAt(t);n===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;Ember.Observable=Ember.Mixin.create({get:function(t){return e(this,t)},getProperties:function(){var t={},r=arguments;1===arguments.length&&"array"===Ember.typeOf(arguments[0])&&(r=arguments[0]);for(var n=0;n<r.length;n++)t[r[n]]=e(this,r[n]);return t},set:function(e,r){return t(this,e,r),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,r){Ember.addBeforeObserver(this,e,t,r)},addObserver:function(e,t,r){Ember.addObserver(this,e,t,r)},removeObserver:function(e,t,r){Ember.removeObserver(this,e,t,r)},hasObserverFor:function(e){return Ember.hasListeners(this,e+":change")},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(r,n){return Ember.isNone(n)&&(n=1),t(this,r,(e(this,r)||0)+n),e(this,r)},decrementProperty:function(r,n){return Ember.isNone(n)&&(n=1),t(this,r,(e(this,r)||0)-n),e(this,r)},toggleProperty:function(r){return t(this,r,!e(this,r)),e(this,r)},cacheFor:function(e){return Ember.cacheFor(this,e)},observersForKey:function(e){return Ember.observersFor(this,e)}})}(),function(){var e=Ember.get;Ember.set,Ember.TargetActionSupport=Ember.Mixin.create({target:null,action:null,actionContext:null,targetObject:Ember.computed(function(){var t=e(this,"target");if("string"===Ember.typeOf(t)){var r=e(this,t);return void 0===r&&(r=e(Ember.lookup,t)),r}return t}).property("target"),actionContextObject:Ember.computed(function(){var t=e(this,"actionContext");if("string"===Ember.typeOf(t)){var r=e(this,t);return void 0===r&&(r=e(Ember.lookup,t)),r}return t}).property("actionContext"),triggerAction:function(t){t=t||{};var r=t.action||e(this,"action"),n=t.target||e(this,"targetObject"),i=t.actionContext||e(this,"actionContextObject")||this;if(n&&r){var o;return o=n.send?n.send.apply(n,[r,i]):n[r].apply(n,[i]),o!==!1&&(o=!0),o}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(e,t,r){return Ember.addListener(this,e,t,r),this},one:function(e,t,r){return r||(r=t,t=null),Ember.addListener(this,e,t,r,!0),this},trigger:function(e){var t,r,n=[];for(t=1,r=arguments.length;r>t;t++)n.push(arguments[t]);Ember.sendEvent(this,e,n)},fire:function(){this.trigger.apply(this,arguments)},off:function(e,t,r){return Ember.removeListener(this,e,t,r),this},has:function(e){return Ember.hasListeners(this,e)}})}(),function(){var e=t("rsvp");e.configure("async",function(e,t){Ember.run.schedule("actions",t,e)});var r=Ember.get;Ember.DeferredMixin=Ember.Mixin.create({then:function(e,t){function n(t){return t===o?e(s):e(t)}var i,o,s;return s=this,i=r(this,"_deferred"),o=i.promise,o.then(e&&n,t)},resolve:function(e){var t,n;t=r(this,"_deferred"),n=t.promise,e===this?t.resolve(n):t.resolve(e)},reject:function(e){r(this,"_deferred").reject(e)},_deferred:Ember.computed(function(){return e.defer()})})}(),function(){Ember.Container=t("container"),Ember.Container.set=Ember.set}(),function(){function e(){var e,t,o=!1,s=function(){o||s.proto(),n(this,i,v),n(this,"_super",v);var u=a(this);if(u.proto=this,e){var h=e;e=null,this.reopen.apply(this,h)}if(t){var l=t;t=null;for(var f=this.concatenatedProperties,m=0,p=l.length;p>m;m++){var g=l[m];for(var y in g)if(g.hasOwnProperty(y)){var _=g[y],O=Ember.IS_BINDING;if(O.test(y)){var C=u.bindings;C?u.hasOwnProperty("bindings")||(C=u.bindings=r(u.bindings)):C=u.bindings={},C[y]=_}var w=u.descs[y];if(f&&d(f,y)>=0){var P=this[y];_=P?"function"==typeof P.concat?P.concat(_):Ember.makeArray(P).concat(_):Ember.makeArray(_)}w?w.set(this,y,_):"function"!=typeof this.setUnknownProperty||y in this?E?Ember.defineProperty(this,y,null,_):this[y]=_:this.setUnknownProperty(y,_)}}}b(this,u),delete u.proto,c(this),this.init.apply(this,arguments)};return s.toString=f.prototype.toString,s.willReopen=function(){o&&(s.PrototypeMixin=f.create(s.PrototypeMixin)),o=!1},s._initMixins=function(t){e=t},s._initProperties=function(e){t=e},s.proto=function(){var e=s.superclass;return e&&e.proto(),o||(o=!0,s.PrototypeMixin.applyPartial(s.prototype),u(s.prototype)),this.prototype},s}function t(e){return function(){return e}}var r=(Ember.set,Ember.get,Ember.create),n=Ember.platform.defineProperty,i=Ember.GUID_KEY,o=Ember.guidFor,s=Ember.generateGuid,a=Ember.meta,u=Ember.rewatch,c=Ember.finishChains,h=Ember.destroy,l=Ember.run.schedule,f=Ember.Mixin,m=f._apply,b=f.finishPartial,p=f.prototype.reopen,E=Ember.ENV.MANDATORY_SETTER,d=Ember.EnumerableUtils.indexOf,v={configurable:!0,writable:!0,enumerable:!1,value:void 0},g=e();g.toString=function(){return"Ember.CoreObject"},g.PrototypeMixin=f.create({reopen:function(){return m(this,arguments,!0),this},isInstance:!0,init:function(){},concatenatedProperties:null,isDestroyed:!1,isDestroying:!1,destroy:function(){return this.isDestroying?void 0:(this.isDestroying=!0,l("actions",this,this.willDestroy),l("destroy",this,this._scheduledDestroy),this)},willDestroy:Ember.K,_scheduledDestroy:function(){this.isDestroyed||(h(this),this.isDestroyed=!0)},bind:function(e,t){return t instanceof Ember.Binding||(t=Ember.Binding.from(t)),t.to(e).connect(this),t},toString:function(){var e="function"==typeof this.toStringExtension,r=e?":"+this.toStringExtension():"",n="<"+this.constructor.toString()+":"+o(this)+r+">";return this.toString=t(n),n}}),g.PrototypeMixin.ownerConstructor=g,Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(g.PrototypeMixin),g.__super__=null;var y=f.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var t,n=e();return n.ClassMixin=f.create(this.ClassMixin),n.PrototypeMixin=f.create(this.PrototypeMixin),n.ClassMixin.ownerConstructor=n,n.PrototypeMixin.ownerConstructor=n,p.apply(n.PrototypeMixin,arguments),n.superclass=this,n.__super__=this.prototype,t=n.prototype=r(this.prototype),t.constructor=n,s(t,"ember"),a(t).proto=t,n.ClassMixin.apply(n),n},createWithMixins:function(){var e=this;return arguments.length>0&&this._initMixins(arguments),new e},create:function(){var e=this;return arguments.length>0&&this._initProperties(arguments),new e},reopen:function(){return this.willReopen(),p.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return p.apply(this.ClassMixin,arguments),m(this,arguments,!1),this},detect:function(e){if("function"!=typeof e)return!1;for(;e;){if(e===this)return!0;e=e.superclass}return!1},detectInstance:function(e){return e instanceof this},metaForProperty:function(e){var t=a(this.proto(),!1).descs[e];return t._meta||{}},eachComputedProperty:function(e,t){var r,n=this.proto(),i=a(n).descs,o={};for(var s in i)r=i[s],r instanceof Ember.ComputedProperty&&e.call(t||this,s,r._meta||o)}});y.ownerConstructor=g,Ember.config.overrideClassMixin&&Ember.config.overrideClassMixin(y),g.ClassMixin=y,y.apply(g),Ember.CoreObject=g}(),function(){Ember.Object=Ember.CoreObject.extend(Ember.Observable),Ember.Object.toString=function(){return"Ember.Object"}}(),function(){function e(t,r,i){var s=t.length;c[t.join(".")]=r;for(var a in r)if(h.call(r,a)){var u=r[a];if(t[s]=a,u&&u.toString===n)u.toString=o(t.join(".")),u[f]=t.join(".");else if(u&&u.isNamespace){if(i[l(u)])continue;i[l(u)]=!0,e(t,u,i)}}t.length=s}function t(){var e,t,r=Ember.Namespace,n=Ember.lookup;if(!r.PROCESSED)for(var i in n)if("parent"!==i&&"top"!==i&&"frameElement"!==i&&"webkitStorageInfo"!==i&&!("globalStorage"===i&&n.StorageList&&n.globalStorage instanceof n.StorageList||n.hasOwnProperty&&!n.hasOwnProperty(i))){try{e=Ember.lookup[i],t=e&&e.isNamespace}catch(o){continue}t&&(e[f]=i)}}function r(e){var t=e.superclass;return t?t[f]?t[f]:r(t):void 0}function n(){Ember.BOOTED||this[f]||i();var e;if(this[f])e=this[f];else{var t=r(this);e=t?"(subclass of "+t+")":"(unknown mixin)",this.toString=o(e)}return e}function i(){var r=!u.PROCESSED,n=Ember.anyUnprocessedMixins;if(r&&(t(),u.PROCESSED=!0),r||n){for(var i,o=u.NAMESPACES,s=0,a=o.length;a>s;s++)i=o[s],e([i.toString()],i,{});Ember.anyUnprocessedMixins=!1}}function o(e){return function(){return e}}var s=Ember.get,a=Ember.ArrayPolyfills.indexOf,u=Ember.Namespace=Ember.Object.extend({isNamespace:!0,init:function(){Ember.Namespace.NAMESPACES.push(this),Ember.Namespace.PROCESSED=!1},toString:function(){var e=s(this,"name");return e?e:(t(),this[Ember.GUID_KEY+"_name"])},nameClasses:function(){e([this.toString()],this,{})},destroy:function(){var e=Ember.Namespace.NAMESPACES;Ember.lookup[this.toString()]=void 0,e.splice(a.call(e,this),1),this._super()}});u.reopenClass({NAMESPACES:[Ember],NAMESPACES_BY_ID:{},PROCESSED:!1,processAll:i,byName:function(e){return Ember.BOOTED||i(),c[e]}});var c=u.NAMESPACES_BY_ID,h={}.hasOwnProperty,l=Ember.guidFor,f=Ember.NAME_KEY=Ember.GUID_KEY+"_name";Ember.Mixin.prototype.toString=n}(),function(){Ember.Application=Ember.Namespace.extend()}(),function(){var e="Index out of range",t=[],r=Ember.get;Ember.set,Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed.alias("content"),objectAtContent:function(e){return r(this,"arrangedContent").objectAt(e)},replaceContent:function(e,t,n){r(this,"content").replace(e,t,n)},_contentWillChange:Ember.beforeObserver(function(){this._teardownContent()},"content"),_teardownContent:function(){var e=r(this,"content");e&&e.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){r(this,"content"),this._setupContent()},"content"),_setupContent:function(){var e=r(this,"content");e&&e.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},_arrangedContentWillChange:Ember.beforeObserver(function(){var e=r(this,"arrangedContent"),t=e?r(e,"length"):0;this.arrangedContentArrayWillChange(this,0,t,void 0),this.arrangedContentWillChange(this),this._teardownArrangedContent(e)},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var e=r(this,"arrangedContent"),t=e?r(e,"length"):0;this._setupArrangedContent(),this.arrangedContentDidChange(this),this.arrangedContentArrayDidChange(this,0,void 0,t)},"arrangedContent"),_setupArrangedContent:function(){var e=r(this,"arrangedContent");e&&e.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},_teardownArrangedContent:function(){var e=r(this,"arrangedContent");e&&e.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},arrangedContentWillChange:Ember.K,arrangedContentDidChange:Ember.K,objectAt:function(e){return r(this,"content")&&this.objectAtContent(e)},length:Ember.computed(function(){var e=r(this,"arrangedContent");return e?r(e,"length"):0}),_replace:function(e,t,n){var i=r(this,"content");return i&&this.replaceContent(e,t,n),this},replace:function(){if(r(this,"arrangedContent")!==r(this,"content"))throw new Ember.Error("Using replace on an arranged ArrayProxy is not allowed.");this._replace.apply(this,arguments)},_insertAt:function(t,n){if(t>r(this,"content.length"))throw new Error(e);return this._replace(t,0,[n]),this},insertAt:function(e,t){if(r(this,"arrangedContent")===r(this,"content"))return this._insertAt(e,t);throw new Ember.Error("Using insertAt on an arranged ArrayProxy is not allowed.")},removeAt:function(n,i){if("number"==typeof n){var o,s=r(this,"content"),a=r(this,"arrangedContent"),u=[];if(0>n||n>=r(this,"length"))throw new Error(e);for(void 0===i&&(i=1),o=n;n+i>o;o++)u.push(s.indexOf(a.objectAt(o)));for(u.sort(function(e,t){return t-e}),Ember.beginPropertyChanges(),o=0;o<u.length;o++)this._replace(u[o],1,t);Ember.endPropertyChanges()}return this},pushObject:function(e){return this._insertAt(r(this,"content.length"),e),e},pushObjects:function(e){return this._replace(r(this,"length"),0,e),this},setObjects:function(e){if(0===e.length)return this.clear();var t=r(this,"length");return this._replace(0,t,e),this},unshiftObject:function(e){return this._insertAt(0,e),e},unshiftObjects:function(e){return this._replace(0,0,e),this},slice:function(){var e=this.toArray();return e.slice.apply(e,arguments)},arrangedContentArrayWillChange:function(e,t,r,n){this.arrayContentWillChange(t,r,n)},arrangedContentArrayDidChange:function(e,t,r,n){this.arrayContentDidChange(t,r,n)},init:function(){this._super(),this._setupContent(),this._setupArrangedContent()},willDestroy:function(){this._teardownArrangedContent(),this._teardownContent()}})}(),function(){function e(e,t){var r=t.slice(8);r in this||u(this,r)}function t(e,t){var r=t.slice(8);r in this||c(this,r)}var r=Ember.get,n=Ember.set,i=(Ember.String.fmt,Ember.addBeforeObserver),o=Ember.addObserver,s=Ember.removeBeforeObserver,a=Ember.removeObserver,u=Ember.propertyWillChange,c=Ember.propertyDidChange;Ember.ObjectProxy=Ember.Object.extend({content:null,_contentDidChange:Ember.observer(function(){},"content"),isTruthy:Ember.computed.bool("content"),_debugContainerKey:null,willWatchProperty:function(r){var n="content."+r;i(this,n,null,e),o(this,n,null,t)},didUnwatchProperty:function(r){var n="content."+r;s(this,n,null,e),a(this,n,null,t)},unknownProperty:function(e){var t=r(this,"content");return t?r(t,e):void 0},setUnknownProperty:function(e,t){var i=r(this,"content");return n(i,e,t)}}),Ember.ObjectProxy.reopenClass({create:function(){var e,t,r,n,i,o;if(arguments.length){for(t=this.proto(),r=0,n=arguments.length;n>r;r++){i=arguments[r];for(o in i)!i.hasOwnProperty(o)||o in t||(e||(e={}),e[o]=null)}e&&this._initMixins([e])}return this._super.apply(this,arguments)}})}(),function(){function e(e,t,r,i,o){var s,a=r._objects;for(a||(a=r._objects={});--o>=i;){var u=e.objectAt(o);u&&(Ember.addBeforeObserver(u,t,r,"contentKeyWillChange"),Ember.addObserver(u,t,r,"contentKeyDidChange"),s=n(u),a[s]||(a[s]=[]),a[s].push(o))}}function t(e,t,r,i,o){var s=r._objects;s||(s=r._objects={});for(var a,u;--o>=i;){var c=e.objectAt(o);c&&(Ember.removeBeforeObserver(c,t,r,"contentKeyWillChange"),Ember.removeObserver(c,t,r,"contentKeyDidChange"),u=n(c),a=s[u],a[a.indexOf(o)]=null)}}var r=(Ember.set,Ember.get),n=Ember.guidFor,i=Ember.EnumerableUtils.forEach,o=Ember.Object.extend(Ember.Array,{init:function(e,t,r){this._super(),this._keyName=t,this._owner=r,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})}),s=/^.+:(before|change)$/;Ember.EachProxy=Ember.Object.extend({init:function(e){this._super(),this._content=e,e.addArrayObserver(this),i(Ember.watchedEvents(this),function(e){this.didAddListener(e)},this)},unknownProperty:function(e){var t;return t=new o(this._content,e,this),Ember.defineProperty(this,e,null,t),this.beginObservingContentKey(e),t},arrayWillChange:function(e,r,n){var i,o,s=this._keys;o=n>0?r+n:-1,Ember.beginPropertyChanges(this);for(i in s)s.hasOwnProperty(i)&&(o>0&&t(e,i,this,r,o),Ember.propertyWillChange(this,i));Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(t,r,n,i){var o,s,a=this._keys;s=i>0?r+i:-1,Ember.beginPropertyChanges(this);for(o in a)a.hasOwnProperty(o)&&(s>0&&e(t,o,this,r,s),Ember.propertyDidChange(this,o));Ember.propertyDidChange(this._content,"@each"),Ember.endPropertyChanges(this)},didAddListener:function(e){s.test(e)&&this.beginObservingContentKey(e.slice(0,-7))},didRemoveListener:function(e){s.test(e)&&this.stopObservingContentKey(e.slice(0,-7))},beginObservingContentKey:function(t){var n=this._keys;if(n||(n=this._keys={}),n[t])n[t]++;else{n[t]=1;var i=this._content,o=r(i,"length");e(i,t,this,0,o)}},stopObservingContentKey:function(e){var n=this._keys;if(n&&n[e]>0&&--n[e]<=0){var i=this._content,o=r(i,"length");t(i,e,this,0,o)}},contentKeyWillChange:function(e,t){Ember.propertyWillChange(this,t)},contentKeyDidChange:function(e,t){Ember.propertyDidChange(this,t)}})}(),function(){var e=Ember.get;Ember.set;var t=Ember.Mixin.create(Ember.MutableArray,Ember.Observable,Ember.Copyable,{get:function(e){return"length"===e?this.length:"number"==typeof e?this[e]:this._super(e)},objectAt:function(e){return this[e]},replace:function(t,r,n){if(this.isFrozen)throw Ember.FROZEN_ERROR;var i=n?e(n,"length"):0;if(this.arrayContentWillChange(t,r,i),n&&0!==n.length){var o=[t,r].concat(n);this.splice.apply(this,o)}else this.splice(t,r);return this.arrayContentDidChange(t,r,i),this},unknownProperty:function(e,t){var r;return void 0!==t&&void 0===r&&(r=this[e]=t),r},indexOf:function(e,t){var r,n=this.length;for(t=void 0===t?0:0>t?Math.ceil(t):Math.floor(t),0>t&&(t+=n),r=t;n>r;r++)if(this[r]===e)return r;return-1},lastIndexOf:function(e,t){var r,n=this.length;for(t=void 0===t?n-1:0>t?Math.ceil(t):Math.floor(t),0>t&&(t+=n),r=t;r>=0;r--)if(this[r]===e)return r;return-1},copy:function(e){return e?this.map(function(e){return Ember.copy(e,!0)}):this.slice()}}),r=["length"];Ember.EnumerableUtils.forEach(t.keys(),function(e){Array.prototype[e]&&r.push(e)}),r.length>0&&(t=t.without.apply(t,r)),Ember.NativeArray=t,Ember.A=function(e){return void 0===e&&(e=[]),Ember.Array.detect(e)?e:Ember.NativeArray.apply(e)},Ember.NativeArray.activate=function(){t.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,r=Ember.guidFor,n=Ember.isNone,i=Ember.String.fmt;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 n=e(this,"length");if(0===n)return this;var i;this.enumerableContentWillChange(n,0),Ember.propertyWillChange(this,"firstObject"),Ember.propertyWillChange(this,"lastObject");for(var o=0;n>o;o++)i=r(this[o]),delete this[i],delete this[o];return t(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(n,0),this},isEqual:function(t){if(!Ember.Enumerable.detect(t))return!1;var r=e(this,"length");if(e(t,"length")!==r)return!1;for(;--r>=0;)if(!t.contains(this[r]))return!1;return!0},add:Ember.aliasMethod("addObject"),remove:Ember.aliasMethod("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.aliasMethod("addObject"),shift:Ember.aliasMethod("pop"),unshift:Ember.aliasMethod("push"),addEach:Ember.aliasMethod("addObjects"),removeEach:Ember.aliasMethod("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]:void 0}),lastObject:Ember.computed(function(){return this.length>0?this[this.length-1]:void 0}),addObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var o,s=r(i),a=this[s],u=e(this,"length");return a>=0&&u>a&&this[a]===i?this:(o=[i],this.enumerableContentWillChange(null,o),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,o),this)},removeObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var o,s,a=r(i),u=this[a],c=e(this,"length"),h=0===u,l=u===c-1;return u>=0&&c>u&&this[u]===i&&(s=[i],this.enumerableContentWillChange(s,null),h&&Ember.propertyWillChange(this,"firstObject"),l&&Ember.propertyWillChange(this,"lastObject"),c-1>u&&(o=this[c-1],this[u]=o,this[r(o)]=u),delete this[a],delete this[c-1],t(this,"length",c-1),h&&Ember.propertyDidChange(this,"firstObject"),l&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(s,null)),this},contains:function(e){return this[r(e)]>=0},copy:function(){var n=this.constructor,i=new n,o=e(this,"length");for(t(i,"length",o);--o>=0;)i[o]=this[o],i[r(this[o])]=o;return i},toString:function(){var e,t=this.length,r=[];for(e=0;t>e;e++)r[e]=this[e];return i("Ember.Set<%@>",[r.join(",")])}})}(),function(){var e=Ember.DeferredMixin;Ember.get;var t=Ember.Object.extend(e);t.reopenClass({promise:function(e,r){var n=t.create();return e.call(r,n),n}}),Ember.Deferred=t}(),function(){var e=Ember.ArrayPolyfills.forEach,t=Ember.ENV.EMBER_LOAD_HOOKS||{},r={};Ember.onLoad=function(e,n){var i;t[e]=t[e]||Ember.A(),t[e].pushObject(n),(i=r[e])&&n(i)},Ember.runLoadHooks=function(n,i){r[n]=i,t[n]&&e.call(t[n],function(e){e(i)})}}(),function(){var e=Ember.get;Ember.ControllerMixin=Ember.Mixin.create({isController:!0,target:null,container:null,parentController:null,store:null,model:Ember.computed.alias("content"),send:function(t){var r,n=[].slice.call(arguments,1);this[t]?this[t].apply(this,n):(r=e(this,"target"))&&r.send.apply(r,arguments)}}),Ember.Controller=Ember.Object.extend(Ember.ControllerMixin)}(),function(){var e=Ember.get,t=(Ember.set,Ember.EnumerableUtils.forEach);Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,sortFunction:Ember.compare,orderBy:function(r,n){var i=0,o=e(this,"sortProperties"),s=e(this,"sortAscending"),a=e(this,"sortFunction");return t(o,function(t){0===i&&(i=a(e(r,t),e(n,t)),0===i||s||(i=-1*i))}),i},destroy:function(){var r=e(this,"content"),n=e(this,"sortProperties");return r&&n&&t(r,function(e){t(n,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed.bool("sortProperties"),arrangedContent:Ember.computed("content","sortProperties.@each",function(){var r=e(this,"content"),n=e(this,"isSorted"),i=e(this,"sortProperties"),o=this;return r&&n?(r=r.slice(),r.sort(function(e,t){return o.orderBy(e,t)}),t(r,function(e){t(i,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(r)):r}),_contentWillChange:Ember.beforeObserver(function(){var r=e(this,"content"),n=e(this,"sortProperties");r&&n&&t(r,function(e){t(n,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(r,n,i,o){var s=e(this,"isSorted");if(s){var a=e(this,"arrangedContent"),u=r.slice(n,n+i),c=e(this,"sortProperties");t(u,function(e){a.removeObject(e),t(c,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(r,n,i,o)},contentArrayDidChange:function(r,n,i,o){var s=e(this,"isSorted"),a=e(this,"sortProperties");if(s){var u=r.slice(n,n+o);t(u,function(e){this.insertItemSorted(e),t(a,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(r,n,i,o)},insertItemSorted:function(t){var r=e(this,"arrangedContent"),n=e(r,"length"),i=this._binarySearch(t,0,n);r.insertAt(i,t)},contentItemSortPropertyDidChange:function(t){var r=e(this,"arrangedContent"),n=r.indexOf(t),i=r.objectAt(n-1),o=r.objectAt(n+1),s=i&&this.orderBy(t,i),a=o&&this.orderBy(t,o);(0>s||a>0)&&(r.removeObject(t),this.insertItemSorted(t))},_binarySearch:function(t,r,n){var i,o,s,a;return r===n?r:(a=e(this,"arrangedContent"),i=r+Math.floor((n-r)/2),o=a.objectAt(i),s=this.orderBy(o,t),0>s?this._binarySearch(t,i+1,n):s>0?this._binarySearch(t,r,i):i)}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.EnumerableUtils.forEach),r=Ember.EnumerableUtils.replace;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin,{itemController:null,lookupItemController:function(){return e(this,"itemController")},objectAtContent:function(t){var r=e(this,"length"),n=e(this,"arrangedContent"),i=n&&n.objectAt(t);if(t>=0&&r>t){var o=this.lookupItemController(i);if(o)return this.controllerAt(t,i,o)}return i},arrangedContentDidChange:function(){this._super(),this._resetSubControllers()},arrayContentDidChange:function(n,i,o){var s=e(this,"_subControllers"),a=s.slice(n,n+i);t(a,function(e){e&&e.destroy()}),r(s,n,i,new Array(o)),this._super(n,i,o)},init:function(){this.get("content")||Ember.defineProperty(this,"content",void 0,Ember.A()),this._super(),this.set("_subControllers",Ember.A())},controllerAt:function(t,r,n){var i=e(this,"container"),o=e(this,"_subControllers"),s=o[t];if(s||(s=i.lookup("controller:"+n,{singleton:!1}),o[t]=s),!s)throw new Error('Could not resolve itemController: "'+n+'"');return s.set("target",this),s.set("parentController",e(this,"parentController")||this),s.set("content",r),s},_subControllers:null,_resetSubControllers:function(){var r=e(this,"_subControllers");r&&t(r,function(e){e&&e.destroy()}),this.set("_subControllers",Ember.A())}})}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}()}(),"undefined"==typeof location||"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname||Ember.Logger.warn("You are running a production build of Ember on localhost and won't receive detailed error messages. If you want full error messages please use the non-minified build provided on the Ember website.");
15
+ !function(){var e,t;!function(){var r={},n={};e=function(e,t,n){r[e]={deps:t,callback:n}},t=function(e){if(n[e])return n[e];n[e]={};var i,o,s,a,u;if(i=r[e],!i)throw new Error("Module '"+e+"' not found.");o=i.deps,s=i.callback,a=[];for(var c=0,h=o.length;h>c;c++)"exports"===o[c]?a.push(u={}):a.push(t(o[c]));var l=s.apply(this,a);return n[e]=u||l}}(),function(){function e(e){var t=r.console,n="object"==typeof t?t[e]:null;return n?n.apply?function(){n.apply(t,arguments)}:function(){var e=Array.prototype.join.call(arguments,", ");n(e)}:void 0}function t(e,t){if(!e)try{throw new Error("assertion failed: "+t)}catch(r){setTimeout(function(){throw r},0)}}"undefined"==typeof Ember&&(Ember={});var r=Ember.imports=Ember.imports||this,n=Ember.exports=Ember.exports||this;Ember.lookup=Ember.lookup||this,n.Em=n.Ember=Em=Ember,Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.0-rc.6.1",Ember.ENV=Ember.ENV||("undefined"==typeof ENV?{}:ENV),Ember.config=Ember.config||{},Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES,"undefined"==typeof Ember.EXTEND_PROTOTYPES&&(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.LOG_VERSION=Ember.ENV.LOG_VERSION===!1?!1:!0,Ember.K=function(){return this},"undefined"==typeof Ember.assert&&(Ember.assert=Ember.K),"undefined"==typeof Ember.warn&&(Ember.warn=Ember.K),"undefined"==typeof Ember.debug&&(Ember.debug=Ember.K),"undefined"==typeof Ember.deprecate&&(Ember.deprecate=Ember.K),"undefined"==typeof Ember.deprecateFunc&&(Ember.deprecateFunc=function(e,t){return t}),Ember.uuid=0,Ember.Logger={log:e("log")||Ember.K,warn:e("warn")||Ember.K,error:e("error")||Ember.K,info:e("info")||Ember.K,debug:e("debug")||e("info")||Ember.K,assert:e("assert")||t},Ember.onerror=null,Ember.handleErrors=function(e,t){if("function"!=typeof Ember.onerror)return e.call(t||this);try{return e.call(t||this)}catch(r){Ember.onerror(r)}},Ember.merge=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},Ember.isNone=function(e){return null===e||void 0===e},Ember.none=Ember.deprecateFunc("Ember.none is deprecated. Please use Ember.isNone instead.",Ember.isNone),Ember.isEmpty=function(e){return Ember.isNone(e)||0===e.length&&"function"!=typeof e||"object"==typeof e&&0===Ember.get(e,"length")},Ember.empty=Ember.deprecateFunc("Ember.empty is deprecated. Please use Ember.isEmpty instead.",Ember.isEmpty)}(),function(){var e=Ember.platform={};if(Ember.create=Object.create,Ember.create&&2!==Ember.create({a:1},{a:{value:2}}).a&&(Ember.create=null),!Ember.create||Ember.ENV.STUB_OBJECT_CREATE){var t=function(){};Ember.create=function(e,r){if(t.prototype=e,e=new t,r){t.prototype=e;for(var n in r)t.prototype[n]=r[n].value;e=new t}return t.prototype=null,e},Ember.create.isSimulated=!0}var r,n,i=Object.defineProperty;if(i)try{i({},"a",{get:function(){}})}catch(o){i=null}i&&(r=function(){var e={};return i(e,"a",{configurable:!0,enumerable:!0,get:function(){},set:function(){}}),i(e,"a",{configurable:!0,enumerable:!0,writable:!0,value:!0}),e.a===!0}(),n=function(){try{return i(document.createElement("div"),"definePropertyOnDOM",{}),!0}catch(e){}return!1}(),r?n||(i=function(e,t,r){var n;return n="object"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName,n?e[t]=r.value:Object.defineProperty(e,t,r)}):i=null),e.defineProperty=i,e.hasPropertyAccessors=!0,e.defineProperty||(e.hasPropertyAccessors=!1,e.defineProperty=function(e,t,r){r.get||(e[t]=r.value)},e.defineProperty.isSimulated=!0),Ember.ENV.MANDATORY_SETTER&&!e.hasPropertyAccessors&&(Ember.ENV.MANDATORY_SETTER=!1)}(),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(void 0===this||null===this)throw new TypeError;var t=Object(this),r=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=new Array(r),i=arguments[1],o=0;r>o;o++)o in t&&(n[o]=e.call(i,t[o],o,t));return n},r=e(Array.prototype.forEach)?Array.prototype.forEach:function(e){if(void 0===this||null===this)throw new TypeError;var t=Object(this),r=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=arguments[1],i=0;r>i;i++)i in t&&e.call(n,t[i],i,t)},n=e(Array.prototype.indexOf)?Array.prototype.indexOf:function(e,t){null===t||void 0===t?t=0:0>t&&(t=Math.max(0,this.length+t));for(var r=t,n=this.length;n>r;r++)if(this[r]===e)return r;return-1};Ember.ArrayPolyfills={map:t,forEach:r,indexOf:n},Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=t),Array.prototype.forEach||(Array.prototype.forEach=r),Array.prototype.indexOf||(Array.prototype.indexOf=n))}(),function(){function e(e){this.descs={},this.watching={},this.cache={},this.source=e}function t(e,t){return!(!e||"function"!=typeof e[t])}var r=Ember.platform.defineProperty,n=Ember.create,i="__ember"+ +new Date,o=0,s=[],a={},u=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=i;var c={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(e,t){t||(t="ember");var n=t+o++;return e&&(c.value=n,r(e,i,c)),n},Ember.guidFor=function(e){if(void 0===e)return"(undefined)";if(null===e)return"(null)";var t,n=typeof e;switch(n){case"number":return t=s[e],t||(t=s[e]="nu"+e),t;case"string":return t=a[e],t||(t=a[e]="st"+o++),t;case"boolean":return e?"(true)":"(false)";default:return e[i]?e[i]:e===Object?"(Object)":e===Array?"(Array)":(t="ember"+o++,c.value=t,r(e,i,c),t)}};var h={writable:!0,configurable:!1,enumerable:!1,value:null},l=Ember.GUID_KEY+"_meta";Ember.META_KEY=l;var f={descs:{},watching:{}};u&&(f.values={}),Ember.EMPTY_META=f,Object.freeze&&Object.freeze(f);var m=Ember.platform.defineProperty.isSimulated;m&&(e.prototype.__preventPlainObject__=!0,e.prototype.toJSON=function(){}),Ember.meta=function(t,i){var o=t[l];return i===!1?o||f:(o?o.source!==t&&(m||r(t,l,h),o=n(o),o.descs=n(o.descs),o.watching=n(o.watching),o.cache={},o.source=t,u&&(o.values=n(o.values)),t[l]=o):(m||r(t,l,h),o=new e(t),u&&(o.values={}),t[l]=o,o.descs.constructor=null),o)},Ember.getMeta=function(e,t){var r=Ember.meta(e,!1);return r[t]},Ember.setMeta=function(e,t,r){var n=Ember.meta(e,!0);return n[t]=r,r},Ember.metaPath=function(e,t,r){for(var i,o,s=Ember.meta(e,r),a=0,u=t.length;u>a;a++){if(i=t[a],o=s[i]){if(o.__ember_source__!==e){if(!r)return void 0;o=s[i]=n(o),o.__ember_source__=e}}else{if(!r)return void 0;o=s[i]={__ember_source__:e}}s=o}return o},Ember.wrap=function(e,t){function r(){}function n(){var n,i=this._super;return this._super=t||r,n=e.apply(this,arguments),this._super=i,n}return n.wrappedFunction=e,n.__ember_observes__=e.__ember_observes__,n.__ember_observesBefore__=e.__ember_observesBefore__,n},Ember.isArray=function(e){return!e||e.setInterval?!1:Array.isArray&&Array.isArray(e)?!0:Ember.Array&&Ember.Array.detect(e)?!0:void 0!==e.length&&"object"==typeof e?!0:!1},Ember.makeArray=function(e){return null===e||void 0===e?[]:Ember.isArray(e)?e:[e]},Ember.canInvoke=t,Ember.tryInvoke=function(e,r,n){return t(e,r)?e[r].apply(e,n||[]):void 0};var b=function(){var e=0;try{try{}finally{throw e++,new Error("needsFinallyFixTest")}}catch(t){}return 1!==e}();Ember.tryFinally=b?function(e,t,r){var n,i,o;r=r||this;try{n=e.call(r)}finally{try{i=t.call(r)}catch(s){o=s}}if(o)throw o;return void 0===i?n:i}:function(e,t,r){var n,i;r=r||this;try{n=e.call(r)}finally{i=t.call(r)}return void 0===i?n:i},Ember.tryCatchFinally=b?function(e,t,r,n){var i,o,s;n=n||this;try{i=e.call(n)}catch(a){i=t.call(n,a)}finally{try{o=r.call(n)}catch(u){s=u}}if(s)throw s;return void 0===o?i:o}:function(e,t,r,n){var i,o;n=n||this;try{i=e.call(n)}catch(s){i=t.call(n,s)}finally{o=r.call(n)}return void 0===o?i:o};var p={},E="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(E,function(e){p["[object "+e+"]"]=e.toLowerCase()});var d=Object.prototype.toString;Ember.typeOf=function(e){var t;return t=null===e||void 0===e?String(e):p[d.call(e)]||"object","function"===t?Ember.Object&&Ember.Object.detect(e)&&(t="class"):"object"===t&&(t=e instanceof Error?"error":Ember.Object&&e instanceof Ember.Object?"instance":"object"),t}}(),function(){Ember.Instrumentation={};var e=[],t={},r=function(r){for(var n,i=[],o=0,s=e.length;s>o;o++)n=e[o],n.regex.test(r)&&i.push(n.object);return t[r]=i,i},n=function(){var e="undefined"!=typeof window?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,o,s){function a(){for(b=0,p=f.length;p>b;b++)m=f[b],E[b]=m.before(e,n(),i);return o.call(s)}function u(e){i=i||{},i.exception=e}function c(){for(b=0,p=f.length;p>b;b++)m=f[b],m.after(e,n(),i,E[b]);Ember.STRUCTURED_PROFILE&&console.timeEnd(h)}var h,l,f=t[e];if(Ember.STRUCTURED_PROFILE&&(h=e+": "+i.object,console.time(h)),f||(f=r(e)),0===f.length)return l=o.call(s),Ember.STRUCTURED_PROFILE&&console.timeEnd(h),l;var m,b,p,E=[];return Ember.tryCatchFinally(a,u,c)},Ember.Instrumentation.subscribe=function(r,n){for(var i,o=r.split("."),s=[],a=0,u=o.length;u>a;a++)i=o[a],"*"===i?s.push("[^\\.]*"):s.push(i);s=s.join("\\."),s+="(\\..*)?";var c={pattern:r,regex:new RegExp("^"+s+"$"),object:n};return e.push(c),t={},c},Ember.Instrumentation.unsubscribe=function(r){for(var n,i=0,o=e.length;o>i;i++)e[i]===r&&(n=i);e.splice(n,1),t={}},Ember.Instrumentation.reset=function(){e=[],t={}},Ember.instrument=Ember.Instrumentation.instrument,Ember.subscribe=Ember.Instrumentation.subscribe}(),function(){var e,t,r,n;n=Array.prototype.concat,e=Array.prototype.map||Ember.ArrayPolyfills.map,t=Array.prototype.forEach||Ember.ArrayPolyfills.forEach,r=Array.prototype.indexOf||Ember.ArrayPolyfills.indexOf;var i=Ember.EnumerableUtils={map:function(t,r,n){return t.map?t.map.call(t,r,n):e.call(t,r,n)},forEach:function(e,r,n){return e.forEach?e.forEach.call(e,r,n):t.call(e,r,n)},indexOf:function(e,t,n){return e.indexOf?e.indexOf.call(e,t,n):r.call(e,t,n)},indexesOf:function(e,t){return void 0===t?[]:i.map(t,function(t){return i.indexOf(e,t)})},addObject:function(e,t){var r=i.indexOf(e,t);-1===r&&e.push(t)},removeObject:function(e,t){var r=i.indexOf(e,t);-1!==r&&e.splice(r,1)},replace:function(e,t,r,i){if(e.replace)return e.replace(t,r,i);var o=n.apply([t,r],i);return e.splice.apply(e,o)},intersection:function(e,t){var r=[];return i.forEach(e,function(e){i.indexOf(t,e)>=0&&r.push(e)}),r}}}(),function(){var e,t=Ember.META_KEY,r=Ember.ENV.MANDATORY_SETTER,n=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,i=/^this[\.\*]/,o=/^([^\.\*]+)/;e=function(e,n){if(""===n)return e;if(n||"string"!=typeof e||(n=e,e=null),null===e||-1!==n.indexOf("."))return a(e,n);var i,o=e[t],s=o&&o.descs[n];return s?s.get(e,n):(i=r&&o&&o.watching[n]>0?o.values[n]:e[n],void 0!==i||"object"!=typeof e||n in e||"function"!=typeof e.unknownProperty?i:e.unknownProperty(n))},Ember.config.overrideAccessors&&(Ember.get=e,Ember.config.overrideAccessors(),e=Ember.get);var s=Ember.normalizeTuple=function(t,r){var s,a=i.test(r),u=!a&&n.test(r);if((!t||u)&&(t=Ember.lookup),a&&(r=r.slice(5)),t===Ember.lookup&&(s=r.match(o)[0],t=e(t,s),r=r.slice(s.length+1)),!r||0===r.length)throw new Error("Invalid Path");return[t,r]},a=Ember._getPath=function(t,r){var n,o,a,u,c;if(null===t&&-1===r.indexOf("."))return e(Ember.lookup,r);for(n=i.test(r),(!t||n)&&(a=s(t,r),t=a[0],r=a[1],a.length=0),o=r.split("."),c=o.length,u=0;null!=t&&c>u;u++)if(t=e(t,o[u],!0),t&&t.isDestroyed)return void 0;return t};Ember.getWithDefault=function(t,r,n){var i=e(t,r);return void 0===i?n:i},Ember.get=e,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get)}(),function(){function e(e,t,r){for(var n=-1,i=0,o=e.length;o>i;i++)if(t===e[i][0]&&r===e[i][1]){n=i;break}return n}function t(e,t){var r,n=m(e,!0);return n.listeners||(n.listeners={}),n.hasOwnProperty("listeners")||(n.listeners=f(n.listeners)),r=n.listeners[t],r&&!n.listeners.hasOwnProperty(t)?r=n.listeners[t]=n.listeners[t].slice():r||(r=n.listeners[t]=[]),r}function r(t,r,n){var i=t[b],o=i&&i.listeners&&i.listeners[r];if(o)for(var s=o.length-1;s>=0;s--){var a=o[s][0],u=o[s][1],c=o[s][2],h=e(n,a,u);-1===h&&n.push([a,u,c])}}function n(t,r,n){var i=t[b],o=i&&i.listeners&&i.listeners[r],s=[];if(o){for(var a=o.length-1;a>=0;a--){var u=o[a][0],c=o[a][1],h=o[a][2],l=e(n,u,c);-1===l&&(n.push([u,c,h]),s.push([u,c,h]))}return s}}function i(r,n,i,o,s){o||"function"!=typeof i||(o=i,i=null);var a=t(r,n),u=e(a,i,o),c=0;s&&(c|=p),-1===u&&(a.push([i,o,c]),"function"==typeof r.didAddListener&&r.didAddListener(n,i,o))}function o(r,n,i,o){function s(i,o){var s=t(r,n),a=e(s,i,o);-1!==a&&(s.splice(a,1),"function"==typeof r.didRemoveListener&&r.didRemoveListener(n,i,o))}if(o||"function"!=typeof i||(o=i,i=null),o)s(i,o);else{var a=r[b],u=a&&a.listeners&&a.listeners[n];if(!u)return;for(var c=u.length-1;c>=0;c--)s(u[c][0],u[c][1])}}function s(r,n,i,o,s){function a(){return s.call(i)}function u(){c&&(c[2]&=~E)}o||"function"!=typeof i||(o=i,i=null);var c,h=t(r,n),l=e(h,i,o);return-1!==l&&(c=h[l].slice(),c[2]|=E,h[l]=c),Ember.tryFinally(a,u)}function a(r,n,i,o,s){function a(){return s.call(i)}function u(){for(f=0,m=b.length;m>f;f++)b[f][2]&=~E}o||"function"!=typeof i||(o=i,i=null);var c,h,l,f,m,b=[];for(f=0,m=n.length;m>f;f++){c=n[f],h=t(r,c);var p=e(h,i,o);-1!==p&&(l=h[p].slice(),l[2]|=E,h[p]=l,b.push(l))}return Ember.tryFinally(a,u)}function u(e){var t=e[b].listeners,r=[];if(t)for(var n in t)t[n]&&r.push(n);return r}function c(e,t,r,n){if(e!==Ember&&"function"==typeof e.sendEvent&&e.sendEvent(t,r),!n){var i=e[b];n=i&&i.listeners&&i.listeners[t]}if(n){for(var s=n.length-1;s>=0;s--){var a=n[s];if(a){var u=a[0],c=a[1],h=a[2];h&E||(h&p&&o(e,t,u,c),u||(u=e),"string"==typeof c&&(c=u[c]),r?c.apply(u,r):c.call(u))}}return!0}}function h(e,t){var r=e[b],n=r&&r.listeners&&r.listeners[t];return!(!n||!n.length)}function l(e,t){var r=[],n=e[b],i=n&&n.listeners&&n.listeners[t];if(!i)return r;for(var o=0,s=i.length;s>o;o++){var a=i[o][0],u=i[o][1];r.push([a,u])}return r}var f=Ember.create,m=Ember.meta,b=Ember.META_KEY,p=1,E=2;Ember.addListener=i,Ember.removeListener=o,Ember._suspendListener=s,Ember._suspendListeners=a,Ember.sendEvent=c,Ember.hasListeners=h,Ember.watchedEvents=u,Ember.listenersFor=l,Ember.listenersDiff=n,Ember.listenersUnion=r}(),function(){var e=Ember.guidFor,t=Ember.sendEvent,r=Ember._ObserverSet=function(){this.clear()};r.prototype.add=function(t,r,n){var i,o=this.observerSet,s=this.observers,a=e(t),u=o[a];return u||(o[a]=u={}),i=u[r],void 0===i&&(i=s.push({sender:t,keyName:r,eventName:n,listeners:[]})-1,u[r]=i),s[i].listeners},r.prototype.flush=function(){var e,r,n,i,o=this.observers;for(this.clear(),e=0,r=o.length;r>e;++e)n=o[e],i=n.sender,i.isDestroying||i.isDestroyed||t(i,n.eventName,[i,n.keyName],n.listeners)},r.prototype.clear=function(){this.observerSet={},this.observers=[]}}(),function(){function e(e,t,i){if(!e.isDestroying){var o=n,s=!o;s&&(o=n={}),r(p,e,t,o,i),s&&(n=null)}}function t(e,t,n){if(!e.isDestroying){var o=i,s=!o;s&&(o=i={}),r(E,e,t,o,n),s&&(i=null)}}function r(e,t,r,n,i){var o=s(t);if(n[o]||(n[o]={}),!n[o][r]){n[o][r]=!0;var a=i.deps;if(a=a&&a[r])for(var u in a){var c=i.descs[u];c&&c._suspended===t||e(t,u)}}}var n,i,o=Ember.meta,s=Ember.guidFor,a=Ember.tryFinally,u=Ember.sendEvent,c=Ember.listenersUnion,h=Ember.listenersDiff,l=Ember._ObserverSet,f=new l,m=new l,b=0,p=Ember.propertyWillChange=function(t,r){var n=o(t,!1),i=n.watching[r]>0||"length"===r,s=n.proto,a=n.descs[r];i&&s!==t&&(a&&a.willChange&&a.willChange(t,r),e(t,r,n),d(t,r,n),_(t,r))},E=Ember.propertyDidChange=function(e,r){var n=o(e,!1),i=n.watching[r]>0||"length"===r,s=n.proto,a=n.descs[r];s!==e&&(a&&a.didChange&&a.didChange(e,r),(i||"length"===r)&&(t(e,r,n),v(e,r,n),O(e,r)))},d=function(e,t,r,n){if(r.hasOwnProperty("chainWatchers")){var i=r.chainWatchers;if(i=i[t])for(var o=0,s=i.length;s>o;o++)i[o].willChange(n)}},v=function(e,t,r,n){if(r.hasOwnProperty("chainWatchers")){var i=r.chainWatchers;if(i=i[t])for(var o=i.length-1;o>=0;o--)i[o].didChange(n)}};Ember.overrideChains=function(e,t,r){v(e,t,r,!0)};var g=Ember.beginPropertyChanges=function(){b++},y=Ember.endPropertyChanges=function(){b--,0>=b&&(f.clear(),m.flush())};Ember.changeProperties=function(e,t){g(),a(e,y,t)};var _=function(e,t){if(!e.isDestroying){var r,n,i=t+":before";b?(r=f.add(e,t,i),n=h(e,i,r),u(e,i,[e,t],n)):u(e,i,[e,t])}},O=function(e,t){if(!e.isDestroying){var r,n=t+":change";b?(r=m.add(e,t,n),c(e,n,r)):u(e,n,[e,t])}}}(),function(){function e(e,t,r,o){var s;if(s=t.slice(t.lastIndexOf(".")+1),t=t.slice(0,t.length-(s.length+1)),"this"!==t&&(e=n(e,t)),!s||0===s.length)throw new Error("You passed an empty path");if(!e){if(o)return;throw new Error("Object in path "+t+" could not be found or was destroyed.")}return i(e,s,r)}var t=Ember.META_KEY,r=Ember.ENV.MANDATORY_SETTER,n=Ember._getPath,i=function(n,i,o,s){if("string"==typeof n&&(o=i,i=n,n=null),!n||-1!==i.indexOf("."))return e(n,i,o,s);var a,u,c=n[t],h=c&&c.descs[i];return h?h.set(n,i,o):(a="object"==typeof n&&!(i in n),a&&"function"==typeof n.setUnknownProperty?n.setUnknownProperty(i,o):c&&c.watching[i]>0?(u=r?c.values[i]:n[i],o!==u&&(Ember.propertyWillChange(n,i),r?void 0!==u||i in n?c.values[i]=o:Ember.defineProperty(n,i,null,o):n[i]=o,Ember.propertyDidChange(n,i))):n[i]=o),o};Ember.config.overrideAccessors&&(Ember.set=i,Ember.config.overrideAccessors(),i=Ember.set),Ember.set=i,Ember.setPath=Ember.deprecateFunc("setPath is deprecated since set now supports paths",Ember.set),Ember.trySet=function(e,t,r){return i(e,t,r,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet)}(),function(){var e=Ember.set,t=Ember.guidFor,r=Ember.ArrayPolyfills.indexOf,n=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},i=function(e,t){var r=e.keys.copy(),i=n(e.values);return t.keys=r,t.values=i,t.length=e.length,t},o=Ember.OrderedSet=function(){this.clear()};o.create=function(){return new o},o.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(e){var r=t(e),n=this.presenceSet,i=this.list;r in n||(n[r]=!0,i.push(e))},remove:function(e){var n=t(e),i=this.presenceSet,o=this.list;delete i[n];var s=r.call(o,e);s>-1&&o.splice(s,1)},isEmpty:function(){return 0===this.list.length},has:function(e){var r=t(e),n=this.presenceSet;return r in n},forEach:function(e,t){for(var r=this.toArray(),n=0,i=r.length;i>n;n++)e.call(t,r[n])},toArray:function(){return this.list.slice()},copy:function(){var e=new o;return e.presenceSet=n(this.presenceSet),e.list=this.toArray(),e}};var s=Ember.Map=function(){this.keys=Ember.OrderedSet.create(),this.values={}};s.create=function(){return new s},s.prototype={length:0,get:function(e){var r=this.values,n=t(e);return r[n]},set:function(r,n){var i=this.keys,o=this.values,s=t(r);i.add(r),o[s]=n,e(this,"length",i.list.length)},remove:function(r){var n=this.keys,i=this.values,o=t(r);return i.hasOwnProperty(o)?(n.remove(r),delete i[o],e(this,"length",n.list.length),!0):!1},has:function(e){var r=this.values,n=t(e);return r.hasOwnProperty(n)},forEach:function(e,r){var n=this.keys,i=this.values;n.forEach(function(n){var o=t(n);e.call(r,n,i[o])})},copy:function(){return i(this,new s)}};var a=Ember.MapWithDefault=function(e){s.call(this),this.defaultValue=e.defaultValue};a.create=function(e){return e?new a(e):new s},a.prototype=Ember.create(s.prototype),a.prototype.get=function(e){var t=this.has(e);if(t)return s.prototype.get.call(this,e);var r=this.defaultValue(e);return this.set(e,r),r},a.prototype.copy=function(){return i(this,new a({defaultValue:this.defaultValue}))}}(),function(){var e=Ember.META_KEY,t=Ember.meta,r=Ember.platform.defineProperty,n=Ember.ENV.MANDATORY_SETTER;Ember.Descriptor=function(){};var i=Ember.MANDATORY_SETTER_FUNCTION=function(){},o=Ember.DEFAULT_GETTER_FUNCTION=function(t){return function(){var r=this[e];return r&&r.values[t]}};Ember.defineProperty=function(e,s,a,u,c){var h,l,f,m;return c||(c=t(e)),h=c.descs,l=c.descs[s],f=c.watching[s]>0,l instanceof Ember.Descriptor&&l.teardown(e,s),a instanceof Ember.Descriptor?(m=a,h[s]=a,n&&f?r(e,s,{configurable:!0,enumerable:!0,writable:!0,value:void 0}):e[s]=void 0,a.setup(e,s)):(h[s]=void 0,null==a?(m=u,n&&f?(c.values[s]=u,r(e,s,{configurable:!0,enumerable:!0,set:i,get:o(s)})):e[s]=u):(m=a,r(e,s,a))),f&&Ember.overrideChains(e,s,c),e.didDefineProperty&&e.didDefineProperty(e,s,m),this}}(),function(){var e=Ember.changeProperties,t=Ember.set;Ember.setProperties=function(r,n){return e(function(){for(var e in n)n.hasOwnProperty(e)&&t(r,e,n[e])}),r}}(),function(){var e=Ember.meta,t=Ember.typeOf,r=Ember.ENV.MANDATORY_SETTER,n=Ember.platform.defineProperty;Ember.watchKey=function(i,o){if("length"!==o||"array"!==t(i)){var s,a=e(i),u=a.watching;u[o]?u[o]=(u[o]||0)+1:(u[o]=1,s=a.descs[o],s&&s.willWatch&&s.willWatch(i,o),"function"==typeof i.willWatchProperty&&i.willWatchProperty(o),r&&o in i&&(a.values[o]=i[o],n(i,o,{configurable:!0,enumerable:!0,set:Ember.MANDATORY_SETTER_FUNCTION,get:Ember.DEFAULT_GETTER_FUNCTION(o)})))}},Ember.unwatchKey=function(t,i){var o,s=e(t),a=s.watching;1===a[i]?(a[i]=0,o=s.descs[i],o&&o.didUnwatch&&o.didUnwatch(t,i),"function"==typeof t.didUnwatchProperty&&t.didUnwatchProperty(i),r&&i in t&&(n(t,i,{configurable:!0,enumerable:!0,writable:!0,value:s.values[i]}),delete s.values[i])):a[i]>1&&a[i]--}}(),function(){function e(e){return e.match(f)[0]}function t(e,t,r){if(e&&"object"==typeof e){var i=n(e),o=i.chainWatchers;i.hasOwnProperty("chainWatchers")||(o=i.chainWatchers={}),o[t]||(o[t]=[]),o[t].push(r),u(e,t)}}function r(e){return n(e,!1).proto===e}var n=Ember.meta,i=Ember.get,o=Ember.normalizeTuple,s=Ember.ArrayPolyfills.forEach,a=Ember.warn,u=Ember.watchKey,c=Ember.unwatchKey,h=Ember.propertyWillChange,l=Ember.propertyDidChange,f=/^([^\.\*]+)/,m=[];Ember.flushPendingChains=function(){if(0!==m.length){var e=m;m=[],s.call(e,function(e){e[0].add(e[1])}),a("Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos",0===m.length)}};var b=Ember.removeChainWatcher=function(e,t,r){if(e&&"object"==typeof e){var i=n(e,!1);if(i.hasOwnProperty("chainWatchers")){var o=i.chainWatchers;if(o[t]){o=o[t];for(var s=0,a=o.length;a>s;s++)o[s]===r&&o.splice(s,1)}c(e,t)}}},p=Ember._ChainNode=function(e,r,n){this._parent=e,this._key=r,this._watching=void 0===n,this._value=n,this._paths={},this._watching&&(this._object=e.value(),this._object&&t(this._object,this._key,this)),this._parent&&"@each"===this._parent._key&&this.value()},E=p.prototype;E.value=function(){if(void 0===this._value&&this._watching){var e=this._parent.value();this._value=e&&!r(e)?i(e,this._key):void 0}return this._value},E.destroy=function(){if(this._watching){var e=this._object;e&&b(e,this._key,this),this._watching=!1}},E.copy=function(e){var t,r=new p(null,null,e),n=this._paths;for(t in n)n[t]<=0||r.add(t);return r},E.add=function(t){var r,n,i,s,a;if(a=this._paths,a[t]=(a[t]||0)+1,r=this.value(),n=o(r,t),n[0]&&n[0]===r)t=n[1],i=e(t),t=t.slice(i.length+1);else{if(!n[0])return m.push([this,t]),n.length=0,void 0;s=n[0],i=t.slice(0,0-(n[1].length+1)),t=n[1]}n.length=0,this.chain(i,t,s)},E.remove=function(t){var r,n,i,s,a;a=this._paths,a[t]>0&&a[t]--,r=this.value(),n=o(r,t),n[0]===r?(t=n[1],i=e(t),t=t.slice(i.length+1)):(s=n[0],i=t.slice(0,0-(n[1].length+1)),t=n[1]),n.length=0,this.unchain(i,t)},E.count=0,E.chain=function(t,r,n){var i,o=this._chains;o||(o=this._chains={}),i=o[t],i||(i=o[t]=new p(this,t,n)),i.count++,r&&r.length>0&&(t=e(r),r=r.slice(t.length+1),i.chain(t,r))},E.unchain=function(t,r){var n=this._chains,i=n[t];r&&r.length>1&&(t=e(r),r=r.slice(t.length+1),i.unchain(t,r)),i.count--,i.count<=0&&(delete n[i._key],i.destroy())},E.willChange=function(){var e=this._chains;if(e)for(var t in e)e.hasOwnProperty(t)&&e[t].willChange();this._parent&&this._parent.chainWillChange(this,this._key,1)},E.chainWillChange=function(e,t,r){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainWillChange(this,t,r+1):(r>1&&h(this.value(),t),t="this."+t,this._paths[t]>0&&h(this.value(),t))},E.chainDidChange=function(e,t,r){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainDidChange(this,t,r+1):(r>1&&l(this.value(),t),t="this."+t,this._paths[t]>0&&l(this.value(),t))},E.didChange=function(e){if(this._watching){var r=this._parent.value();r!==this._object&&(b(this._object,this._key,this),this._object=r,t(r,this._key,this)),this._value=void 0,this._parent&&"@each"===this._parent._key&&this.value()}var n=this._chains;if(n)for(var i in n)n.hasOwnProperty(i)&&n[i].didChange(e);e||this._parent&&this._parent.chainDidChange(this,this._key,1)},Ember.finishChains=function(e){var t=n(e,!1),r=t.chains;r&&(r.value()!==e&&(t.chains=r=r.copy(e)),r.didChange(!0))}}(),function(){function e(e){var r=t(e),i=r.chains;return i?i.value()!==e&&(i=r.chains=i.copy(e)):i=r.chains=new n(null,null,e),i}var t=Ember.meta,r=Ember.typeOf,n=Ember._ChainNode;Ember.watchPath=function(n,i){if("length"!==i||"array"!==r(n)){var o=t(n),s=o.watching;s[i]?s[i]=(s[i]||0)+1:(s[i]=1,e(n).add(i))}},Ember.unwatchPath=function(r,n){var i=t(r),o=i.watching;1===o[n]?(o[n]=0,e(r).remove(n)):o[n]>1&&o[n]--}}(),function(){function e(e){return"*"===e||!l.test(e)}var t=Ember.meta,r=Ember.GUID_KEY,n=Ember.META_KEY,i=Ember.removeChainWatcher,o=Ember.watchKey,s=Ember.unwatchKey,a=Ember.watchPath,u=Ember.unwatchPath,c=Ember.typeOf,h=Ember.generateGuid,l=/[\.\*]/;Ember.watch=function(t,r){("length"!==r||"array"!==c(t))&&(e(r)?o(t,r):a(t,r))},Ember.isWatching=function(e,t){var r=e[n];return(r&&r.watching[t])>0},Ember.watch.flushPending=Ember.flushPendingChains,Ember.unwatch=function(t,r){("length"!==r||"array"!==c(t))&&(e(r)?s(t,r):u(t,r))},Ember.rewatch=function(e){var n=t(e,!1),i=n.chains;r in e&&!e.hasOwnProperty(r)&&h(e,"ember"),i&&i.value()!==e&&(n.chains=i.copy(e))};var f=[];Ember.destroy=function(e){var t,r,o,s,a=e[n];if(a&&(e[n]=null,t=a.chains))for(f.push(t);f.length>0;){if(t=f.pop(),r=t._chains)for(o in r)r.hasOwnProperty(o)&&f.push(r[o]);t._watching&&(s=t._object,s&&i(s,t._key,t))}}}(),function(){function e(e,t){var r=e[t];return r?e.hasOwnProperty(t)||(r=e[t]=f(r)):r=e[t]={},r}function t(t){return e(t,"deps")}function r(r,n,i,o){var s,a,u,c,h,l=r._dependentKeys;if(l)for(s=t(o),a=0,u=l.length;u>a;a++)c=l[a],h=e(s,c),h[i]=(h[i]||0)+1,b(n,c)}function n(r,n,i,o){var s,a,u,c,h,l=r._dependentKeys;if(l)for(s=t(o),a=0,u=l.length;u>a;a++)c=l[a],h=e(s,c),h[i]=(h[i]||0)-1,p(n,c)}function i(e,t){this.func=e,this._cacheable=t&&void 0!==t.cacheable?t.cacheable:!0,this._dependentKeys=t&&t.dependentKeys,this._readOnly=t&&(void 0!==t.readOnly||!!t.readOnly)}function o(e,t){for(var r={},n=0;n<t.length;n++)r[t[n]]=u(e,t[n]);return r}function s(e,t){Ember.computed[e]=function(e){var r=l.call(arguments);return Ember.computed(e,function(){return t.apply(this,r)})}}function a(e,t){Ember.computed[e]=function(){var e=l.call(arguments),r=Ember.computed(function(){return t.apply(this,[o(this,e)])});return r.property.apply(r,e)}}var u=Ember.get,c=Ember.set,h=Ember.meta,l=[].slice,f=Ember.create,m=Ember.META_KEY,b=Ember.watch,p=Ember.unwatch;Ember.ComputedProperty=i,i.prototype=new Ember.Descriptor;var E=i.prototype;E.cacheable=function(e){return this._cacheable=e!==!1,this},E.volatile=function(){return this.cacheable(!1)},E.readOnly=function(e){return this._readOnly=void 0===e||!!e,this},E.property=function(){for(var e=[],t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return this._dependentKeys=e,this},E.meta=function(e){return 0===arguments.length?this._meta||{}:(this._meta=e,this)},E.willWatch=function(e,t){var n=e[m];t in n.cache||r(this,e,t,n)},E.didUnwatch=function(e,t){var r=e[m];t in r.cache||n(this,e,t,r)},E.didChange=function(e,t){if(this._cacheable&&this._suspended!==e){var r=h(e);t in r.cache&&(delete r.cache[t],r.watching[t]||n(this,e,t,r))}},E.get=function(e,t){var n,i,o;if(this._cacheable){if(o=h(e),i=o.cache,t in i)return i[t];n=i[t]=this.func.call(e,t),o.watching[t]||r(this,e,t,o)}else n=this.func.call(e,t);return n},E.set=function(e,t,n){var i,o,s,a=this._cacheable,u=this.func,c=h(e,a),l=c.watching[t],f=this._suspended,m=!1,b=c.cache;if(this._readOnly)throw new Error("Cannot Set: "+t+" on: "+e.toString());this._suspended=e;try{if(a&&b.hasOwnProperty(t)&&(o=b[t],m=!0),i=u.wrappedFunction?u.wrappedFunction.length:u.length,3===i)s=u.call(e,t,n,o);else{if(2!==i)return Ember.defineProperty(e,t,null,o),Ember.set(e,t,n),void 0;s=u.call(e,t,n)}if(m&&o===s)return;l&&Ember.propertyWillChange(e,t),m&&delete b[t],a&&(l||m||r(this,e,t,c),b[t]=s),l&&Ember.propertyDidChange(e,t)}finally{this._suspended=f}return s},E.setup=function(e,t){var n=e[m];n&&n.watching[t]&&r(this,e,t,h(e))},E.teardown=function(e,t){var r=h(e);return(r.watching[t]||t in r.cache)&&n(this,e,t,r),this._cacheable&&delete r.cache[t],null},Ember.computed=function(e){var t;if(arguments.length>1&&(t=l.call(arguments,0,-1),e=l.call(arguments,-1)[0]),"function"!=typeof e)throw new Error("Computed Property declared without a property function");var r=new i(e);return t&&r.property.apply(r,t),r},Ember.cacheFor=function(e,t){var r=h(e,!1).cache;return r&&t in r?r[t]:void 0},s("empty",function(e){return Ember.isEmpty(u(this,e))}),s("notEmpty",function(e){return!Ember.isEmpty(u(this,e))}),s("none",function(e){return Ember.isNone(u(this,e))}),s("not",function(e){return!u(this,e)}),s("bool",function(e){return!!u(this,e)}),s("match",function(e,t){var r=u(this,e);return"string"==typeof r?!!r.match(t):!1}),s("equal",function(e,t){return u(this,e)===t}),s("gt",function(e,t){return u(this,e)>t}),s("gte",function(e,t){return u(this,e)>=t}),s("lt",function(e,t){return u(this,e)<t}),s("lte",function(e,t){return u(this,e)<=t}),a("and",function(e){for(var t in e)if(e.hasOwnProperty(t)&&!e[t])return!1;return!0}),a("or",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!0;return!1}),a("any",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return e[t];return null}),a("map",function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&(Ember.isNone(e[r])?t.push(null):t.push(e[r]));return t}),Ember.computed.alias=function(e){return Ember.computed(e,function(t,r){return arguments.length>1?(c(this,e,r),r):u(this,e)})},Ember.computed.oneWay=function(e){return Ember.computed(e,function(){return u(this,e)})},Ember.computed.defaultTo=function(e){return Ember.computed(function(t,r,n){return 1===arguments.length?null!=n?n:u(this,e):null!=r?r:u(this,e)})}}(),function(){function e(e){return e+r}function t(e){return e+n}var r=":change",n=":before";Ember.addObserver=function(t,r,n,i){return Ember.addListener(t,e(r),n,i),Ember.watch(t,r),this},Ember.observersFor=function(t,r){return Ember.listenersFor(t,e(r))},Ember.removeObserver=function(t,r,n,i){return Ember.unwatch(t,r),Ember.removeListener(t,e(r),n,i),this},Ember.addBeforeObserver=function(e,r,n,i){return Ember.addListener(e,t(r),n,i),Ember.watch(e,r),this},Ember._suspendBeforeObserver=function(e,r,n,i,o){return Ember._suspendListener(e,t(r),n,i,o)},Ember._suspendObserver=function(t,r,n,i,o){return Ember._suspendListener(t,e(r),n,i,o)};var i=Ember.ArrayPolyfills.map;Ember._suspendBeforeObservers=function(e,r,n,o,s){var a=i.call(r,t);return Ember._suspendListeners(e,a,n,o,s)},Ember._suspendObservers=function(t,r,n,o,s){var a=i.call(r,e);return Ember._suspendListeners(t,a,n,o,s)},Ember.beforeObserversFor=function(e,r){return Ember.listenersFor(e,t(r))},Ember.removeBeforeObserver=function(e,r,n,i){return Ember.unwatch(e,r),Ember.removeListener(e,t(r),n,i),this}}(),function(){e("backburner/queue",["exports"],function(e){"use strict";function t(e,t,r){this.daq=e,this.name=t,this.options=r,this._queue=[]}t.prototype={daq:null,name:null,options:null,_queue:null,push:function(e,t,r,n){var i=this._queue;return i.push(e,t,r,n),{queue:this,target:e,method:t}},pushUnique:function(e,t,r,n){var i,o,s,a,u=this._queue;for(s=0,a=u.length;a>s;s+=4)if(i=u[s],o=u[s+1],i===e&&o===t)return u[s+2]=r,u[s+3]=n,{queue:this,target:e,method:t};return this._queue.push(e,t,r,n),{queue:this,target:e,method:t}},flush:function(){var e,t,r,n,i,o=this._queue,s=this.options,a=s&&s.before,u=s&&s.after,c=o.length;for(c&&a&&a(),i=0;c>i;i+=4)e=o[i],t=o[i+1],r=o[i+2],n=o[i+3],r&&r.length>0?t.apply(e,r):t.call(e);c&&u&&u(),o.length>c?(this._queue=o.slice(c),this.flush()):this._queue.length=0},cancel:function(e){var t,r,n,i,o=this._queue;for(n=0,i=o.length;i>n;n+=4)if(t=o[n],r=o[n+1],t===e.target&&r===e.method)return o.splice(n,4),!0;if(o=this._queueBeingFlushed)for(n=0,i=o.length;i>n;n+=4)if(t=o[n],r=o[n+1],t===e.target&&r===e.method)return o[n+1]=null,!0
16
+ }},e.Queue=t}),e("backburner/deferred_action_queues",["backburner/queue","exports"],function(e,t){"use strict";function r(e,t){var r=this.queues={};this.queueNames=e=e||[];for(var n,o=0,s=e.length;s>o;o++)n=e[o],r[n]=new i(this,n,t[n])}function n(e,t){for(var r,n,i=0,o=t;o>=i;i++)if(r=e.queueNames[i],n=e.queues[r],n._queue.length)return i;return-1}var i=e.Queue;r.prototype={queueNames:null,queues:null,schedule:function(e,t,r,n,i,o){var s=this.queues,a=s[e];if(!a)throw new Error("You attempted to schedule an action in a queue ("+e+") that doesn't exist");return i?a.pushUnique(t,r,n,o):a.push(t,r,n,o)},flush:function(){for(var e,t,r,i,o=this.queues,s=this.queueNames,a=0,u=s.length;u>a;){e=s[a],t=o[e],r=t._queueBeingFlushed=t._queue.slice(),t._queue=[];var c,h,l,f,m=t.options,b=m&&m.before,p=m&&m.after,E=0,d=r.length;for(d&&b&&b();d>E;)c=r[E],h=r[E+1],l=r[E+2],f=r[E+3],"string"==typeof h&&(h=c[h]),h&&(l&&l.length>0?h.apply(c,l):h.call(c)),E+=4;t._queueBeingFlushed=null,d&&p&&p(),-1===(i=n(this,a))?a++:a=i}}},t.DeferredActionQueues=r}),e("backburner",["backburner/deferred_action_queues","exports"],function(e,t){"use strict";function r(e,t){this.queueNames=e,this.options=t||{},this.options.defaultQueue||(this.options.defaultQueue=e[0]),this.instanceStack=[]}function n(e){e.begin(),s=p.setTimeout(function(){e.end(),s=null})}function i(e){var t,r,n,o,s=+new Date;e.run(function(){for(n=0,o=b.length;o>n&&(t=b[n],!(t>s));n+=2);for(r=b.splice(0,n),n=1,o=r.length;o>n;n+=2)e.schedule(e.options.defaultQueue,null,r[n])}),b.length&&(a=p.setTimeout(function(){i(e),a=null,u=null},b[0]-s),u=b[0])}function o(e,t){for(var r,n=-1,i=0,o=m.length;o>i;i++)if(r=m[i],r[0]===e&&r[1]===t){n=i;break}return n}var s,a,u,c=e.DeferredActionQueues,h=[].slice,l=[].pop,f=[],m=[],b=[],p=this;r.prototype={queueNames:null,options:null,currentInstance:null,instanceStack:null,begin:function(){var e=this.options&&this.options.onBegin,t=this.currentInstance;t&&this.instanceStack.push(t),this.currentInstance=new c(this.queueNames,this.options),e&&e(this.currentInstance,t)},end:function(){var e=this.options&&this.options.onEnd,t=this.currentInstance,r=null;try{t.flush()}finally{this.currentInstance=null,this.instanceStack.length&&(r=this.instanceStack.pop(),this.currentInstance=r),e&&e(t,r)}},run:function(e,t){var r;this.begin(),t||(t=e,e=null),"string"==typeof t&&(t=e[t]);var n=!1;try{r=arguments.length>2?t.apply(e,h.call(arguments,2)):t.call(e)}finally{n||(n=!0,this.end())}return r},defer:function(e,t,r){r||(r=t,t=null),"string"==typeof r&&(r=t[r]);var i=this.DEBUG?(new Error).stack:void 0,o=arguments.length>3?h.call(arguments,3):void 0;return this.currentInstance||n(this),this.currentInstance.schedule(e,t,r,o,!1,i)},deferOnce:function(e,t,r){r||(r=t,t=null),"string"==typeof r&&(r=t[r]);var i=this.DEBUG?(new Error).stack:void 0,o=arguments.length>3?h.call(arguments,3):void 0;return this.currentInstance||n(this),this.currentInstance.schedule(e,t,r,o,!0,i)},setTimeout:function(){var e=this,t=l.call(arguments),r=arguments[0],n=arguments[1],o=+new Date+t;n||(n=r,r=null),"string"==typeof n&&(n=r[n]);var s,c;arguments.length>2?(c=h.call(arguments,2),s=function(){n.apply(r,c)}):s=function(){n.call(r)};var f,m;for(f=0,m=b.length;m>f&&!(o<b[f]);f+=2);return b.splice(f,0,o,s),a&&o>u?s:(a&&(clearTimeout(a),a=null),a=p.setTimeout(function(){i(e),a=null,u=null},t),u=o,s)},throttle:function(e,t){for(var r,n=this,i=arguments,o=l.call(i),s=0,a=f.length;a>s;s++)if(r=f[s],r[0]===e&&r[1]===t)return;var u=p.setTimeout(function(){n.run.apply(n,i);for(var o=-1,s=0,a=f.length;a>s;s++)if(r=f[s],r[0]===e&&r[1]===t){o=s;break}o>-1&&f.splice(o,1)},o);f.push([e,t,u])},debounce:function(e,t){var r,n,i,s=this,a=arguments,u=l.call(a);"number"==typeof u?(r=u,u=!1):r=l.call(a),n=o(e,t),-1!==n&&(i=m[n],m.splice(n,1),clearTimeout(i[2]));var c=window.setTimeout(function(){u||s.run.apply(s,a),n=o(e,t),n&&m.splice(n,1)},r);u&&-1===n&&s.run.apply(s,a),m.push([e,t,c])},cancelTimers:function(){var e,t;for(e=0,t=f.length;t>e;e++)clearTimeout(f[e][2]);for(f=[],e=0,t=m.length;t>e;e++)clearTimeout(m[e][2]);m=[],a&&(clearTimeout(a),a=null),b=[],s&&(clearTimeout(s),s=null)},hasTimers:function(){return!!b.length||s},cancel:function(e){if(e&&"object"==typeof e&&e.queue&&e.method)return e.queue.cancel(e);if("function"==typeof e)for(var t=0,r=b.length;r>t;t+=2)if(b[t+1]===e)return b.splice(t,2),!0}},r.prototype.schedule=r.prototype.defer,r.prototype.scheduleOnce=r.prototype.deferOnce,r.prototype.later=r.prototype.setTimeout,t.Backburner=r})}(),function(){function e(){!Ember.run.currentRunLoop}var r=function(e){Ember.run.currentRunLoop=e},n=function(e,t){Ember.run.currentRunLoop=t},i=t("backburner").Backburner,o=new i(["sync","actions","destroy"],{sync:{before:Ember.beginPropertyChanges,after:Ember.endPropertyChanges},defaultQueue:"actions",onBegin:r,onEnd:n}),s=[].slice;Ember.run=function(){var e;if(Ember.onerror)try{e=o.run.apply(o,arguments)}catch(t){Ember.onerror(t)}else e=o.run.apply(o,arguments);return e},Ember.run.join=function(){if(!Ember.run.currentRunLoop)return Ember.run.apply(Ember.run,arguments);var e=s.call(arguments);e.unshift("actions"),Ember.run.schedule.apply(Ember.run,e)},Ember.run.backburner=o,Ember.run,Ember.run.currentRunLoop=null,Ember.run.queues=o.queueNames,Ember.run.begin=function(){o.begin()},Ember.run.end=function(){o.end()},Ember.run.schedule=function(){e(),o.schedule.apply(o,arguments)},Ember.run.hasScheduledTimers=function(){return o.hasTimers()},Ember.run.cancelTimers=function(){o.cancelTimers()},Ember.run.sync=function(){o.currentInstance&&o.currentInstance.queues.sync.flush()},Ember.run.later=function(){return o.later.apply(o,arguments)},Ember.run.once=function(){e();var t=s.call(arguments);return t.unshift("actions"),o.scheduleOnce.apply(o,t)},Ember.run.scheduleOnce=function(){return e(),o.scheduleOnce.apply(o,arguments)},Ember.run.next=function(){var e=s.call(arguments);return e.push(1),o.later.apply(o,e)},Ember.run.cancel=function(e){return o.cancel(e)},Ember.run.debounce=function(){return o.debounce.apply(o,arguments)},Ember.run.throttle=function(){return o.throttle.apply(o,arguments)}}(),function(){function e(e,t){return r(o(t)?Ember.lookup:e,t)}function t(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])}Ember.LOG_BINDINGS=!1||!!Ember.ENV.LOG_BINDINGS;var r=Ember.get,n=(Ember.set,Ember.guidFor),i=/^([A-Z$]|([0-9][A-Z$]))/,o=Ember.isGlobalPath=function(e){return i.test(e)},s=function(e,t){this._direction="fwd",this._from=t,this._to=e,this._directionMap=Ember.Map.create()};s.prototype={copy:function(){var e=new s(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<"+n(this)+">("+this._from+" -> "+this._to+")"+e},connect:function(t){var r=this._from,n=this._to;return Ember.trySet(t,n,e(t,r)),Ember.addObserver(t,r,this,this.fromDidChange),this._oneWay||Ember.addObserver(t,n,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 r=this._directionMap,n=r.get(e);n||(Ember.run.schedule("sync",this,this._sync,e),r.set(e,t)),"back"===n&&"fwd"===t&&r.set(e,"fwd")},_sync:function(t){var n=Ember.LOG_BINDINGS;if(!t.isDestroyed&&this._readyToSync){var i=this._directionMap,o=i.get(t),s=this._from,a=this._to;if(i.remove(t),"fwd"===o){var u=e(t,this._from);n&&Ember.Logger.log(" ",this.toString(),"->",u,t),this._oneWay?Ember.trySet(t,a,u):Ember._suspendObserver(t,a,this,this.toDidChange,function(){Ember.trySet(t,a,u)})}else if("back"===o){var c=r(t,this._to);n&&Ember.Logger.log(" ",this.toString(),"<-",c,t),Ember._suspendObserver(t,s,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(s)?Ember.lookup:t,s,c)})}}}},t(s,{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 r=this,n=new r(null,e);return n.oneWay(t)}}),Ember.Binding=s,Ember.bind=function(e,t,r){return new Ember.Binding(t,r).connect(e)},Ember.oneWay=function(e,t,r){return new Ember.Binding(t,r).oneWay().connect(e)}}(),function(){function e(e){var t=Ember.meta(e,!0),r=t.mixins;return r?t.hasOwnProperty("mixins")||(r=t.mixins=P(r)):r=t.mixins={},r}function t(e,t){return t&&t.length>0&&(e.mixins=O.call(t,function(e){if(e instanceof g)return e;var t=new g;return t.properties=e,t})),e}function r(e){return"function"==typeof e&&e.isMethod!==!1&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function n(e,t){var r;return t instanceof g?(r=S(t),e[r]?D:(e[r]=t,t.properties)):t}function i(e,t,r){var n;return n=t.concatenatedProperties||r.concatenatedProperties,e.concatenatedProperties&&(n=n?n.concat(e.concatenatedProperties):e.concatenatedProperties),n}function o(e,t,r,n,i){var o;return void 0===n[t]&&(o=i[t]),o=o||e.descs[t],o&&o instanceof Ember.ComputedProperty?(r=P(r),r.func=Ember.wrap(r.func,o.func),r):r}function s(e,t,r,n,i){var o;return void 0===i[t]&&(o=n[t]),o=o||e[t],"function"!=typeof o?r:Ember.wrap(r,o)}function a(e,t,r,n){var i=n[t]||e[t];return i?"function"==typeof i.concat?i.concat(r):Ember.makeArray(i).concat(r):Ember.makeArray(r)}function u(e,t,n,i,u,c,h){if(n instanceof Ember.Descriptor){if(n===y&&u[t])return D;n.func&&(n=o(i,t,n,c,u)),u[t]=n,c[t]=void 0}else r(n)?n=s(e,t,n,c,u):(h&&C.call(h,t)>=0||"concatenatedProperties"===t)&&(n=a(e,t,n,c)),u[t]=void 0,c[t]=n}function c(e,t,r,o,s,a){function h(e){delete r[e],delete o[e]}for(var l,f,m,b,p,E=0,d=e.length;d>E;E++)if(l=e[E],f=n(t,l),f!==D)if(f){p=Ember.meta(s),b=i(f,o,s);for(m in f)f.hasOwnProperty(m)&&(a.push(m),u(s,m,f[m],p,r,o,b));f.hasOwnProperty("toString")&&(s.toString=f.toString)}else l.mixins&&(c(l.mixins,t,r,o,s,a),l._without&&w.call(l._without,h))}function h(e,t,r,n){if(x.test(t)){var i=n.bindings;i?n.hasOwnProperty("bindings")||(i=n.bindings=P(n.bindings)):i=n.bindings={},i[t]=r}}function l(e,t){var r,n,i,o=t.bindings;if(o){for(r in o)n=o[r],n&&(i=r.slice(0,-7),n instanceof Ember.Binding?(n=n.copy(),n.to(i)):n=new Ember.Binding(i,n),n.connect(e),e[r]=n);t.bindings={}}}function f(e,t){return l(e,t||Ember.meta(e)),e}function m(e,t,r,n,i){var o,s=t.methodName;return n[s]||i[s]?(o=i[s],t=n[s]):r.descs[s]?(t=r.descs[s],o=void 0):(t=void 0,o=e[s]),{desc:t,value:o}}function b(e,t,r,n,i){if("function"==typeof r){var o=r[n];if(o)for(var s=0,a=o.length;a>s;s++)Ember[i](e,o[s],null,t)}}function p(e,t,r){var n=e[t];b(e,t,n,"__ember_observesBefore__","removeBeforeObserver"),b(e,t,n,"__ember_observes__","removeObserver"),b(e,t,r,"__ember_observesBefore__","addBeforeObserver"),b(e,t,r,"__ember_observes__","addObserver")}function E(t,r,n){var i,o,s,a={},u={},l=Ember.meta(t),b=[];c(r,e(t),a,u,t,b);for(var E=0,d=b.length;d>E;E++)if(i=b[E],"constructor"!==i&&u.hasOwnProperty(i)&&(s=a[i],o=u[i],s!==y)){for(;s&&s instanceof _;){var v=m(t,s,l,a,u);s=v.desc,o=v.value}(void 0!==s||void 0!==o)&&(p(t,i,o),h(t,i,o,l),j(t,i,s,o,l))}return n||f(t,l),t}function d(e,t,r){var n=S(e);if(r[n])return!1;if(r[n]=!0,e===t)return!0;for(var i=e.mixins,o=i?i.length:0;--o>=0;)if(d(i[o],t,r))return!0;return!1}function v(e,t,r){if(!r[S(t)])if(r[S(t)]=!0,t.properties){var n=t.properties;for(var i in n)n.hasOwnProperty(i)&&(e[i]=!0)}else t.mixins&&w.call(t.mixins,function(t){v(e,t,r)})}var g,y,_,O=Ember.ArrayPolyfills.map,C=Ember.ArrayPolyfills.indexOf,w=Ember.ArrayPolyfills.forEach,A=[].slice,P=Ember.create,j=Ember.defineProperty,S=Ember.guidFor,D={},x=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(e){var t=A.call(arguments,1);return E(e,t,!1),e},Ember.Mixin=function(){return t(this,arguments)},g=Ember.Mixin,g.prototype={properties:null,mixins:null,ownerConstructor:null},g._apply=E,g.applyPartial=function(e){var t=A.call(arguments,1);return E(e,t,!0)},g.finishPartial=f,Ember.anyUnprocessedMixins=!1,g.create=function(){Ember.anyUnprocessedMixins=!0;var e=this;return t(new e,arguments)};var T=g.prototype;T.reopen=function(){var e,t;this.properties?(e=g.create(),e.properties=this.properties,delete this.properties,this.mixins=[e]):this.mixins||(this.mixins=[]);var r,n=arguments.length,i=this.mixins;for(r=0;n>r;r++)e=arguments[r],e instanceof g?i.push(e):(t=g.create(),t.properties=e,i.push(t));return this},T.apply=function(e){return E(e,[this],!1)},T.applyPartial=function(e){return E(e,[this],!0)},T.detect=function(e){if(!e)return!1;if(e instanceof g)return d(e,this,{});var t=Ember.meta(e,!1).mixins;return t?!!t[S(this)]:!1},T.without=function(){var e=new g(this);return e._without=A.call(arguments),e},T.keys=function(){var e={},t={},r=[];v(e,this,t);for(var n in e)e.hasOwnProperty(n)&&r.push(n);return r},g.mixins=function(e){var t=Ember.meta(e,!1).mixins,r=[];if(!t)return r;for(var n in t){var i=t[n];i.properties||r.push(i)}return r},y=new Ember.Descriptor,y.toString=function(){return"(Required Property)"},Ember.required=function(){return y},_=function(e){this.methodName=e},_.prototype=new Ember.Descriptor,Ember.alias=function(e){return new _(e)},Ember.alias=Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.aliasMethod or Ember.computed.alias instead.",Ember.alias),Ember.aliasMethod=function(e){return new _(e)},Ember.observer=function(e){var t=A.call(arguments,1);return e.__ember_observes__=t,e},Ember.immediateObserver=function(){for(var e=0,t=arguments.length;t>e;e++)arguments[e];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(e){var t=A.call(arguments,1);return e.__ember_observesBefore__=t,e}}(),function(){e("rsvp/all",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){if("[object Array]"!==Object.prototype.toString.call(e))throw new TypeError("You must pass an array to all.");return new n(function(t,r){function n(e){return function(t){i(e,t)}}function i(e,r){s[e]=r,0===--a&&t(s)}var o,s=[],a=e.length;0===a&&t([]);for(var u=0;u<e.length;u++)o=e[u],o&&"function"==typeof o.then?o.then(n(u),r):i(u,o)})}var n=e.Promise;t.all=r}),e("rsvp/async",["exports"],function(e){"use strict";function t(){return function(e,t){process.nextTick(function(){e(t)})}}function r(){return function(e,t){setImmediate(function(){e(t)})}}function n(){var e=[],t=new a(function(){var t=e.slice();e=[],t.forEach(function(e){var t=e[0],r=e[1];t(r)})}),r=document.createElement("div");return t.observe(r,{attributes:!0}),window.addEventListener("unload",function(){t.disconnect(),t=null},!1),function(t,n){e.push([t,n]),r.setAttribute("drainQueue","drainQueue")}}function i(){return function(e,t){setTimeout(function(){e(t)},1)}}var o,s="undefined"!=typeof window?window:{},a=s.MutationObserver||s.WebKitMutationObserver;o="function"==typeof setImmediate?r():"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?t():a?n():i(),e.async=o}),e("rsvp/config",["rsvp/async","exports"],function(e,t){"use strict";var r=e.async,n={};n.async=r,t.config=n}),e("rsvp/defer",["rsvp/promise","exports"],function(e,t){"use strict";function r(){var e={resolve:void 0,reject:void 0,promise:void 0};return e.promise=new n(function(t,r){e.resolve=t,e.reject=r}),e}var n=e.Promise;t.defer=r}),e("rsvp/events",["exports"],function(e){"use strict";var t=function(e,t){this.type=e;for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r])},r=function(e,t){for(var r=0,n=e.length;n>r;r++)if(e[r][0]===t)return r;return-1},n=function(e){var t=e._promiseCallbacks;return t||(t=e._promiseCallbacks={}),t},i={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,t,i){var o,s,a=n(this);for(e=e.split(/\s+/),i=i||this;s=e.shift();)o=a[s],o||(o=a[s]=[]),-1===r(o,t)&&o.push([t,i])},off:function(e,t){var i,o,s,a=n(this);for(e=e.split(/\s+/);o=e.shift();)t?(i=a[o],s=r(i,t),-1!==s&&i.splice(s,1)):a[o]=[]},trigger:function(e,r){var i,o,s,a,u,c=n(this);if(i=c[e])for(var h=0;h<i.length;h++)o=i[h],s=o[0],a=o[1],"object"!=typeof r&&(r={detail:r}),u=new t(e,r),s.call(a,u)}};e.EventTarget=i}),e("rsvp/hash",["rsvp/defer","exports"],function(e,t){"use strict";function r(e){var t=0;for(var r in e)t++;return t}function n(e){var t={},n=i(),o=r(e);0===o&&n.resolve({});var s=function(e){return function(t){a(e,t)}},a=function(e,r){t[e]=r,0===--o&&n.resolve(t)},u=function(e){n.reject(e)};for(var c in e)e[c]&&"function"==typeof e[c].then?e[c].then(s(c),u):a(c,e[c]);return n.promise}var i=e.defer;t.hash=n}),e("rsvp/node",["rsvp/promise","rsvp/all","exports"],function(e,t,r){"use strict";function n(e,t){return function(r,n){r?t(r):arguments.length>2?e(Array.prototype.slice.call(arguments,1)):e(n)}}function i(e){return function(){var t,r,i=Array.prototype.slice.call(arguments),a=this,u=new o(function(e,n){t=e,r=n});return s(i).then(function(i){i.push(n(t,r));try{e.apply(a,i)}catch(o){r(o)}}),u}}var o=e.Promise,s=t.all;r.denodeify=i}),e("rsvp/promise",["rsvp/config","rsvp/events","exports"],function(e,t,r){"use strict";function n(e){return i(e)||"object"==typeof e&&null!==e}function i(e){return"function"==typeof e}function o(e){h.onerror&&h.onerror(e.detail)}function s(e,t){e===t?u(e,t):a(e,t)||u(e,t)}function a(e,t){var r,o=null;try{if(e===t)throw new TypeError("A promises callback cannot return that same promise.");if(n(t)&&(o=t.then,i(o)))return o.call(t,function(n){return r?!0:(r=!0,t!==n?s(e,n):u(e,n),void 0)},function(t){return r?!0:(r=!0,c(e,t),void 0)}),!0}catch(a){return c(e,a),!0}return!1}function u(e,t){h.async(function(){e.trigger("promise:resolved",{detail:t}),e.isFulfilled=!0,e.fulfillmentValue=t})}function c(e,t){h.async(function(){e.trigger("promise:failed",{detail:t}),e.isRejected=!0,e.rejectedReason=t})}var h=e.config,l=t.EventTarget,f=function(e){var t=this,r=!1;if("function"!=typeof e)throw new TypeError("You must pass a resolver function as the sole argument to the promise constructor");if(!(t instanceof f))return new f(e);var n=function(e){r||(r=!0,s(t,e))},i=function(e){r||(r=!0,c(t,e))};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),this.on("error",o);try{e(n,i)}catch(a){i(a)}},m=function(e,t,r,n){var o,u,h,l,f=i(r);if(f)try{o=r(n.detail),h=!0}catch(m){l=!0,u=m}else o=n.detail,h=!0;a(t,o)||(f&&h?s(t,o):l?c(t,u):"resolve"===e?s(t,o):"reject"===e&&c(t,o))};f.prototype={constructor:f,isRejected:void 0,isFulfilled:void 0,rejectedReason:void 0,fulfillmentValue:void 0,then:function(e,t){this.off("error",o);var r=new this.constructor(function(){});return this.isFulfilled&&h.async(function(t){m("resolve",r,e,{detail:t.fulfillmentValue})},this),this.isRejected&&h.async(function(e){m("reject",r,t,{detail:e.rejectedReason})},this),this.on("promise:resolved",function(t){m("resolve",r,e,t)}),this.on("promise:failed",function(e){m("reject",r,t,e)}),r}},l.mixin(f.prototype),r.Promise=f}),e("rsvp/reject",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){return new n(function(t,r){r(e)})}var n=e.Promise;t.reject=r}),e("rsvp/resolve",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){return new n(function(t){t(e)})}var n=e.Promise;t.resolve=r}),e("rsvp",["rsvp/events","rsvp/promise","rsvp/node","rsvp/all","rsvp/hash","rsvp/defer","rsvp/config","rsvp/resolve","rsvp/reject","exports"],function(e,t,r,n,i,o,s,a,u,c){"use strict";function h(e,t){d[e]=t}var l=e.EventTarget,f=t.Promise,m=r.denodeify,b=n.all,p=i.hash,E=o.defer,d=s.config,v=a.resolve,g=u.reject;c.Promise=f,c.EventTarget=l,c.all=b,c.hash=p,c.defer=E,c.denodeify=m,c.configure=h,c.resolve=v,c.reject=g})}(),function(){e("container",[],function(){function e(e){this.parent=e,this.dict={}}function t(t){this.parent=t,this.children=[],this.resolver=t&&t.resolver||function(){},this.registry=new e(t&&t.registry),this.cache=new e(t&&t.cache),this.typeInjections=new e(t&&t.typeInjections),this.injections={},this._options=new e(t&&t._options),this._typeOptions=new e(t&&t._typeOptions)}function r(e){throw new Error(e+" is not currently supported on child containers")}function n(e,t){var r=o(e,t,"singleton");return r!==!1}function i(e,t){var r={};if(!t)return r;for(var n,i,o=0,s=t.length;s>o;o++){if(n=t[o],i=e.lookup(n.fullName),!i)throw new Error("Attempting to inject an unknown injection: `"+n.fullName+"`");r[n.property]=i}return r}function o(e,t,r){var n=e._options.get(t);if(n&&void 0!==n[r])return n[r];var i=t.split(":")[0];return n=e._typeOptions.get(i),n?n[r]:void 0}function s(e,t){var r=e.normalize(t);return e.resolve(r)}function a(e,t){var r,n=s(e,t),a=t.split(":"),u=a[0];if(o(e,t,"instantiate")===!1)return n;if(n){var c=[];c=c.concat(e.typeInjections.get(u)||[]),c=c.concat(e.injections[t]||[]);var h=i(e,c);return h.container=e,h._debugContainerKey=t,r=n.create(h)}}function u(e,t){e.cache.eachLocal(function(r,n){o(e,r,"instantiate")!==!1&&t(n)})}function c(e){e.cache.eachLocal(function(t,r){o(e,t,"instantiate")!==!1&&r.destroy()}),e.cache.dict={}}return e.prototype={parent:null,dict:null,get:function(e){var t=this.dict;return t.hasOwnProperty(e)?t[e]:this.parent?this.parent.get(e):void 0},set:function(e,t){this.dict[e]=t},remove:function(e){delete this.dict[e]},has:function(e){var t=this.dict;return t.hasOwnProperty(e)?!0:this.parent?this.parent.has(e):!1},eachLocal:function(e,t){var r=this.dict;for(var n in r)r.hasOwnProperty(n)&&e.call(t,n,r[n])}},t.prototype={parent:null,children:null,resolver:null,registry:null,cache:null,typeInjections:null,injections:null,_options:null,_typeOptions:null,child:function(){var e=new t(this);return this.children.push(e),e},set:function(e,t,r){e[t]=r},register:function(e,t,r,n){var i;-1!==e.indexOf(":")?(n=r,r=t,i=e):i=e+":"+t;var o=this.normalize(i);this.registry.set(o,r),this._options.set(o,n||{})},unregister:function(e){var t=this.normalize(e);this.registry.remove(t),this.cache.remove(t),this._options.remove(t)},resolve:function(e){return this.resolver(e)||this.registry.get(e)},describe:function(e){return e},normalize:function(e){return e},lookup:function(e,t){if(e=this.normalize(e),t=t||{},this.cache.has(e)&&t.singleton!==!1)return this.cache.get(e);var r=a(this,e);return r?(n(this,e)&&t.singleton!==!1&&this.cache.set(e,r),r):void 0},lookupFactory:function(e){return s(this,e)},has:function(e){return this.cache.has(e)?!0:!!s(this,e)},optionsForType:function(e,t){this.parent&&r("optionsForType"),this._typeOptions.set(e,t)},options:function(e,t){this.optionsForType(e,t)},typeInjection:function(e,t,n){this.parent&&r("typeInjection");var i=this.typeInjections.get(e);i||(i=[],this.typeInjections.set(e,i)),i.push({property:t,fullName:n})},injection:function(e,t,n){if(this.parent&&r("injection"),-1===e.indexOf(":"))return this.typeInjection(e,t,n);var i=this.injections[e]=this.injections[e]||[];i.push({property:t,fullName:n})},destroy:function(){this.isDestroyed=!0;for(var e=0,t=this.children.length;t>e;e++)this.children[e].destroy();this.children=[],u(this,function(e){e.destroy()}),delete this.parent,this.isDestroyed=!0},reset:function(){for(var e=0,t=this.children.length;t>e;e++)c(this.children[e]);c(this)}},t})}(),function(){function e(r,n,i,o){var s,a,u;if("object"!=typeof r||null===r)return r;if(n&&(a=t(i,r))>=0)return o[a];if("array"===Ember.typeOf(r)){if(s=r.slice(),n)for(a=s.length;--a>=0;)s[a]=e(s[a],n,i,o)}else if(Ember.Copyable&&Ember.Copyable.detect(r))s=r.copy(n,i,o);else{s={};for(u in r)r.hasOwnProperty(u)&&"__"!==u.substring(0,2)&&(s[u]=n?e(r[u],n,i,o):r[u])}return n&&(i.push(r),o.push(s)),s}var t=Ember.EnumerableUtils.indexOf;Ember.compare=function n(e,t){if(e===t)return 0;var r=Ember.typeOf(e),i=Ember.typeOf(t),o=Ember.Comparable;if(o){if("instance"===r&&o.detect(e.constructor))return e.constructor.compare(e,t);if("instance"===i&&o.detect(t.constructor))return 1-t.constructor.compare(t,e)}var s=Ember.ORDER_DEFINITION_MAPPING;if(!s){var a=Ember.ORDER_DEFINITION;s=Ember.ORDER_DEFINITION_MAPPING={};var u,c;for(u=0,c=a.length;c>u;++u)s[a[u]]=u;delete Ember.ORDER_DEFINITION}var h=s[r],l=s[i];if(l>h)return-1;if(h>l)return 1;switch(r){case"boolean":case"number":return t>e?-1:e>t?1:0;case"string":var f=e.localeCompare(t);return 0>f?-1:f>0?1:0;case"array":for(var m=e.length,b=t.length,p=Math.min(m,b),E=0,d=0;0===E&&p>d;)E=n(e[d],t[d]),d++;return 0!==E?E:b>m?-1:m>b?1:0;case"instance":return Ember.Comparable&&Ember.Comparable.detect(e)?e.compare(e,t):0;case"date":var v=e.getTime(),g=t.getTime();return g>v?-1:v>g?1:0;default:return 0}},Ember.copy=function(t,r){return"object"!=typeof t||null===t?t:Ember.Copyable&&Ember.Copyable.detect(t)?t.copy(r):e(t,r,r?[]:null,r?[]:null)},Ember.inspect=function(e){var t=Ember.typeOf(e);if("array"===t)return"["+e+"]";if("object"!==t)return e+"";var r,n=[];for(var i in e)if(e.hasOwnProperty(i)){if(r=e[i],"toString"===r)continue;"function"===Ember.typeOf(r)&&(r="function() { ... }"),n.push(i+": "+r)}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.create.isSimulated)&&(Ember.keys=function(e){var t=[];for(var r in e)"__"!==r.substring(0,2)&&"_super"!==r&&e.hasOwnProperty(r)&&t.push(r);return t});var r=["description","fileName","lineNumber","message","name","number","stack"];Ember.Error=function(){for(var e=Error.apply(this,arguments),t=0;t<r.length;t++)this[r[t]]=e[r[t]]},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){Ember.RSVP=t("rsvp")}(),function(){var e=/[ _]/g,t={},r=/([a-z])([A-Z])/g,n=/(\-|_|\.|\s)+(.)?/g,i=/([a-z\d])([A-Z]+)/g,o=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(e,t){var r=0;return e.replace(/%@([0-9]+)?/g,function(e,n){return n=n?parseInt(n,10)-1:r++,e=t[n],null===e?"(null)":void 0===e?"":Ember.inspect(e)})},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(r,"$1_$2").toLowerCase()},dasherize:function(r){var n,i=t,o=i.hasOwnProperty(r);return o?i[r]:(n=Ember.String.decamelize(r).replace(e,"-"),i[r]=n,n)},camelize:function(e){return e.replace(n,function(e,t,r){return r?r.toUpperCase():""}).replace(/^([A-Z])/,function(e){return e.toLowerCase()})},classify:function(e){for(var t=e.split("."),r=[],n=0,i=t.length;i>n;n++){var o=Ember.String.camelize(t[n]);r.push(o.charAt(0).toUpperCase()+o.substr(1))}return r.join(".")},underscore:function(e){return e.replace(i,"$1_$2").replace(o,"_").toLowerCase()},capitalize:function(e){return e.charAt(0).toUpperCase()+e.substr(1)}}}(),function(){var e=Ember.String.fmt,t=Ember.String.w,r=Ember.String.loc,n=Ember.String.camelize,i=Ember.String.decamelize,o=Ember.String.dasherize,s=Ember.String.underscore,a=Ember.String.capitalize,u=Ember.String.classify;(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 r(this,arguments)},String.prototype.camelize=function(){return n(this)},String.prototype.decamelize=function(){return i(this)},String.prototype.dasherize=function(){return o(this)},String.prototype.underscore=function(){return s(this)},String.prototype.classify=function(){return u(this)},String.prototype.capitalize=function(){return a(this)})}(),function(){var e=Array.prototype.slice;(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 e(){return 0===a.length?{}:a.pop()}function t(e){return a.push(e),null}function r(e,t){function r(r){var o=n(r,e);return i?t===o:!!o}var i=2===arguments.length;return r}var n=Ember.get,i=Ember.set,o=Array.prototype.slice,s=Ember.EnumerableUtils.indexOf,a=[];Ember.Enumerable=Ember.Mixin.create({nextObject:Ember.required(Function),firstObject:Ember.computed(function(){if(0===n(this,"length"))return void 0;var r,i=e();return r=this.nextObject(0,null,i),t(i),r}).property("[]"),lastObject:Ember.computed(function(){var r=n(this,"length");if(0===r)return void 0;var i,o=e(),s=0,a=null;do a=i,i=this.nextObject(s++,a,o);while(void 0!==i);return t(o),a}).property("[]"),contains:function(e){return void 0!==this.find(function(t){return t===e})},forEach:function(r,i){if("function"!=typeof r)throw new TypeError;var o=n(this,"length"),s=null,a=e();void 0===i&&(i=null);for(var u=0;o>u;u++){var c=this.nextObject(u,s,a);r.call(i,c,u,this),s=c}return s=null,a=t(a),this},getEach:function(e){return this.mapProperty(e)},setEach:function(e,t){return this.forEach(function(r){i(r,e,t)})},map:function(e,t){var r=Ember.A();return this.forEach(function(n,i,o){r[i]=e.call(t,n,i,o)}),r},mapProperty:function(e){return this.map(function(t){return n(t,e)})},filter:function(e,t){var r=Ember.A();return this.forEach(function(n,i,o){e.call(t,n,i,o)&&r.push(n)}),r},reject:function(e,t){return this.filter(function(){return!e.apply(t,arguments)})},filterProperty:function(){return this.filter(r.apply(this,arguments))},rejectProperty:function(e,t){var r=function(r){return n(r,e)===t},i=function(t){return!!n(t,e)},o=2===arguments.length?r:i;return this.reject(o)},find:function(r,i){var o=n(this,"length");void 0===i&&(i=null);for(var s,a,u=null,c=!1,h=e(),l=0;o>l&&!c;l++)s=this.nextObject(l,u,h),(c=r.call(i,s,l,this))&&(a=s),u=s;return s=u=null,h=t(h),a},findProperty:function(){return this.find(r.apply(this,arguments))},every:function(e,t){return!this.find(function(r,n,i){return!e.call(t,r,n,i)})},everyProperty:function(){return this.every(r.apply(this,arguments))},some:function(e,t){return!!this.find(function(r,n,i){return!!e.call(t,r,n,i)})},someProperty:function(){return this.some(r.apply(this,arguments))},reduce:function(e,t,r){if("function"!=typeof e)throw new TypeError;var n=t;return this.forEach(function(t,i){n=e.call(null,n,t,i,this,r)},this),n},invoke:function(e){var t,r=Ember.A();return arguments.length>1&&(t=o.call(arguments,1)),this.forEach(function(n,i){var o=n&&n[e];"function"==typeof o&&(r[i]=t?o.apply(n,t):o.call(n))},this),r},toArray:function(){var e=Ember.A();return this.forEach(function(t,r){e[r]=t}),e},compact:function(){return this.filter(function(e){return null!=e})},without:function(e){if(!this.contains(e))return this;var t=Ember.A();return this.forEach(function(r){r!==e&&(t[t.length]=r)}),t},uniq:function(){var e=Ember.A();return this.forEach(function(t){s(e,t)<0&&e.push(t)}),e},"[]":Ember.computed(function(){return this}),addEnumerableObserver:function(e,t){var r=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",o=n(this,"hasEnumerableObservers");return o||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",e,r),Ember.addListener(this,"@enumerable:change",e,i),o||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(e,t){var r=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",o=n(this,"hasEnumerableObservers");return o&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",e,r),Ember.removeListener(this,"@enumerable:change",e,i),o&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}),enumerableContentWillChange:function(e,t){var r,i,o;return r="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof t?t:t?n(t,"length"):t=-1,o=0>i||0>r||0!==i-r,-1===e&&(e=null),-1===t&&(t=null),Ember.propertyWillChange(this,"[]"),o&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,e,t]),this},enumerableContentDidChange:function(e,t){var r,i,o;return r="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof t?t:t?n(t,"length"):t=-1,o=0>i||0>r||0!==i-r,-1===e&&(e=null),-1===t&&(t=null),Ember.sendEvent(this,"@enumerable:change",[this,e,t]),o&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.isNone),r=Ember.EnumerableUtils.map,n=Ember.cacheFor;
17
+ Ember.Array=Ember.Mixin.create(Ember.Enumerable,{length:Ember.required(),objectAt:function(t){return 0>t||t>=e(this,"length")?void 0:e(this,t)},objectsAt:function(e){var t=this;return r(e,function(e){return t.objectAt(e)})},nextObject:function(e){return this.objectAt(e)},"[]":Ember.computed(function(t,r){return void 0!==r&&this.replace(0,e(this,"length"),r),this}),firstObject:Ember.computed(function(){return this.objectAt(0)}),lastObject:Ember.computed(function(){return this.objectAt(e(this,"length")-1)}),contains:function(e){return this.indexOf(e)>=0},slice:function(r,n){var i=Ember.A(),o=e(this,"length");for(t(r)&&(r=0),(t(n)||n>o)&&(n=o),0>r&&(r=o+r),0>n&&(n=o+n);n>r;)i[i.length]=this.objectAt(r++);return i},indexOf:function(t,r){var n,i=e(this,"length");for(void 0===r&&(r=0),0>r&&(r+=i),n=r;i>n;n++)if(this.objectAt(n)===t)return n;return-1},lastIndexOf:function(t,r){var n,i=e(this,"length");for((void 0===r||r>=i)&&(r=i-1),0>r&&(r+=i),n=r;n>=0;n--)if(this.objectAt(n)===t)return n;return-1},addArrayObserver:function(t,r){var n=r&&r.willChange||"arrayWillChange",i=r&&r.didChange||"arrayDidChange",o=e(this,"hasArrayObservers");return o||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",t,n),Ember.addListener(this,"@array:change",t,i),o||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(t,r){var n=r&&r.willChange||"arrayWillChange",i=r&&r.didChange||"arrayDidChange",o=e(this,"hasArrayObservers");return o&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",t,n),Ember.removeListener(this,"@array:change",t,i),o&&Ember.propertyDidChange(this,"hasArrayObservers"),this},hasArrayObservers:Ember.computed(function(){return Ember.hasListeners(this,"@array:change")||Ember.hasListeners(this,"@array:before")}),arrayContentWillChange:function(t,r,n){void 0===t?(t=0,r=n=-1):(void 0===r&&(r=-1),void 0===n&&(n=-1)),Ember.isWatching(this,"@each")&&e(this,"@each"),Ember.sendEvent(this,"@array:before",[this,t,r,n]);var i,o;if(t>=0&&r>=0&&e(this,"hasEnumerableObservers")){i=[],o=t+r;for(var s=t;o>s;s++)i.push(this.objectAt(s))}else i=r;return this.enumerableContentWillChange(i,n),this},arrayContentDidChange:function(t,r,i){void 0===t?(t=0,r=i=-1):(void 0===r&&(r=-1),void 0===i&&(i=-1));var o,s;if(t>=0&&i>=0&&e(this,"hasEnumerableObservers")){o=[],s=t+i;for(var a=t;s>a;a++)o.push(this.objectAt(a))}else o=i;this.enumerableContentDidChange(r,o),Ember.sendEvent(this,"@array:change",[this,t,r,i]);var u=e(this,"length"),c=n(this,"firstObject"),h=n(this,"lastObject");return this.objectAt(0)!==c&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(u-1)!==h&&(Ember.propertyWillChange(this,"lastObject"),Ember.propertyDidChange(this,"lastObject")),this},"@each":Ember.computed(function(){return this.__each||(this.__each=new Ember.EachProxy(this)),this.__each})})}(),function(){Ember.Comparable=Ember.Mixin.create({compare:Ember.required(Function)})}(),function(){var e=Ember.get;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=[],r=Ember.get;Ember.set,Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var e=r(this,"length");return 0===e?this:(this.replace(0,e,t),this)},insertAt:function(t,n){if(t>r(this,"length"))throw new Error(e);return this.replace(t,0,[n]),this},removeAt:function(n,i){if("number"==typeof n){if(0>n||n>=r(this,"length"))throw new Error(e);void 0===i&&(i=1),this.replace(n,i,t)}return this},pushObject:function(e){return this.insertAt(r(this,"length"),e),e},pushObjects:function(e){if(!Ember.Enumerable.detect(e)&&!Ember.isArray(e))throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects");return this.replace(r(this,"length"),0,e),this},popObject:function(){var e=r(this,"length");if(0===e)return null;var t=this.objectAt(e-1);return this.removeAt(e-1,1),t},shiftObject:function(){if(0===r(this,"length"))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=r(this,"length");if(0===e)return this;var t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects:function(e){if(0===e.length)return this.clear();var t=r(this,"length");return this.replace(0,t,e),this},removeObject:function(e){for(var t=r(this,"length")||0;--t>=0;){var n=this.objectAt(t);n===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;Ember.Observable=Ember.Mixin.create({get:function(t){return e(this,t)},getProperties:function(){var t={},r=arguments;1===arguments.length&&"array"===Ember.typeOf(arguments[0])&&(r=arguments[0]);for(var n=0;n<r.length;n++)t[r[n]]=e(this,r[n]);return t},set:function(e,r){return t(this,e,r),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,r){Ember.addBeforeObserver(this,e,t,r)},addObserver:function(e,t,r){Ember.addObserver(this,e,t,r)},removeObserver:function(e,t,r){Ember.removeObserver(this,e,t,r)},hasObserverFor:function(e){return Ember.hasListeners(this,e+":change")},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(r,n){return Ember.isNone(n)&&(n=1),t(this,r,(e(this,r)||0)+n),e(this,r)},decrementProperty:function(r,n){return Ember.isNone(n)&&(n=1),t(this,r,(e(this,r)||0)-n),e(this,r)},toggleProperty:function(r){return t(this,r,!e(this,r)),e(this,r)},cacheFor:function(e){return Ember.cacheFor(this,e)},observersForKey:function(e){return Ember.observersFor(this,e)}})}(),function(){var e=Ember.get;Ember.set,Ember.TargetActionSupport=Ember.Mixin.create({target:null,action:null,actionContext:null,targetObject:Ember.computed(function(){var t=e(this,"target");if("string"===Ember.typeOf(t)){var r=e(this,t);return void 0===r&&(r=e(Ember.lookup,t)),r}return t}).property("target"),actionContextObject:Ember.computed(function(){var t=e(this,"actionContext");if("string"===Ember.typeOf(t)){var r=e(this,t);return void 0===r&&(r=e(Ember.lookup,t)),r}return t}).property("actionContext"),triggerAction:function(t){t=t||{};var r=t.action||e(this,"action"),n=t.target||e(this,"targetObject"),i=t.actionContext||e(this,"actionContextObject")||this;if(n&&r){var o;return o=n.send?n.send.apply(n,[r,i]):n[r].apply(n,[i]),o!==!1&&(o=!0),o}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(e,t,r){return Ember.addListener(this,e,t,r),this},one:function(e,t,r){return r||(r=t,t=null),Ember.addListener(this,e,t,r,!0),this},trigger:function(e){var t,r,n=[];for(t=1,r=arguments.length;r>t;t++)n.push(arguments[t]);Ember.sendEvent(this,e,n)},fire:function(){this.trigger.apply(this,arguments)},off:function(e,t,r){return Ember.removeListener(this,e,t,r),this},has:function(e){return Ember.hasListeners(this,e)}})}(),function(){var e=t("rsvp");e.configure("async",function(e,t){Ember.run.schedule("actions",t,e,t)});var r=Ember.get;Ember.DeferredMixin=Ember.Mixin.create({then:function(e,t){function n(t){return t===o?e(s):e(t)}var i,o,s;return s=this,i=r(this,"_deferred"),o=i.promise,o.then(e&&n,t)},resolve:function(e){var t,n;t=r(this,"_deferred"),n=t.promise,e===this?t.resolve(n):t.resolve(e)},reject:function(e){r(this,"_deferred").reject(e)},_deferred:Ember.computed(function(){return e.defer()})})}(),function(){Ember.Container=t("container"),Ember.Container.set=Ember.set}(),function(){function e(){var e,t,o=!1,s=function(){o||s.proto(),n(this,i,v),n(this,"_super",v);var u=a(this);if(u.proto=this,e){var h=e;e=null,this.reopen.apply(this,h)}if(t){var l=t;t=null;for(var f=this.concatenatedProperties,m=0,p=l.length;p>m;m++){var g=l[m];for(var y in g)if(g.hasOwnProperty(y)){var _=g[y],O=Ember.IS_BINDING;if(O.test(y)){var C=u.bindings;C?u.hasOwnProperty("bindings")||(C=u.bindings=r(u.bindings)):C=u.bindings={},C[y]=_}var w=u.descs[y];if(f&&d(f,y)>=0){var A=this[y];_=A?"function"==typeof A.concat?A.concat(_):Ember.makeArray(A).concat(_):Ember.makeArray(_)}w?w.set(this,y,_):"function"!=typeof this.setUnknownProperty||y in this?E?Ember.defineProperty(this,y,null,_):this[y]=_:this.setUnknownProperty(y,_)}}}b(this,u),delete u.proto,c(this),this.init.apply(this,arguments)};return s.toString=f.prototype.toString,s.willReopen=function(){o&&(s.PrototypeMixin=f.create(s.PrototypeMixin)),o=!1},s._initMixins=function(t){e=t},s._initProperties=function(e){t=e},s.proto=function(){var e=s.superclass;return e&&e.proto(),o||(o=!0,s.PrototypeMixin.applyPartial(s.prototype),u(s.prototype)),this.prototype},s}function t(e){return function(){return e}}var r=(Ember.set,Ember.get,Ember.create),n=Ember.platform.defineProperty,i=Ember.GUID_KEY,o=Ember.guidFor,s=Ember.generateGuid,a=Ember.meta,u=Ember.rewatch,c=Ember.finishChains,h=Ember.destroy,l=Ember.run.schedule,f=Ember.Mixin,m=f._apply,b=f.finishPartial,p=f.prototype.reopen,E=Ember.ENV.MANDATORY_SETTER,d=Ember.EnumerableUtils.indexOf,v={configurable:!0,writable:!0,enumerable:!1,value:void 0},g=e();g.toString=function(){return"Ember.CoreObject"},g.PrototypeMixin=f.create({reopen:function(){return m(this,arguments,!0),this},isInstance:!0,init:function(){},concatenatedProperties:null,isDestroyed:!1,isDestroying:!1,destroy:function(){return this.isDestroying?void 0:(this.isDestroying=!0,l("actions",this,this.willDestroy),l("destroy",this,this._scheduledDestroy),this)},willDestroy:Ember.K,_scheduledDestroy:function(){this.isDestroyed||(h(this),this.isDestroyed=!0)},bind:function(e,t){return t instanceof Ember.Binding||(t=Ember.Binding.from(t)),t.to(e).connect(this),t},toString:function(){var e="function"==typeof this.toStringExtension,r=e?":"+this.toStringExtension():"",n="<"+this.constructor.toString()+":"+o(this)+r+">";return this.toString=t(n),n}}),g.PrototypeMixin.ownerConstructor=g,Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(g.PrototypeMixin),g.__super__=null;var y=f.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var t,n=e();return n.ClassMixin=f.create(this.ClassMixin),n.PrototypeMixin=f.create(this.PrototypeMixin),n.ClassMixin.ownerConstructor=n,n.PrototypeMixin.ownerConstructor=n,p.apply(n.PrototypeMixin,arguments),n.superclass=this,n.__super__=this.prototype,t=n.prototype=r(this.prototype),t.constructor=n,s(t,"ember"),a(t).proto=t,n.ClassMixin.apply(n),n},createWithMixins:function(){var e=this;return arguments.length>0&&this._initMixins(arguments),new e},create:function(){var e=this;return arguments.length>0&&this._initProperties(arguments),new e},reopen:function(){return this.willReopen(),p.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return p.apply(this.ClassMixin,arguments),m(this,arguments,!1),this},detect:function(e){if("function"!=typeof e)return!1;for(;e;){if(e===this)return!0;e=e.superclass}return!1},detectInstance:function(e){return e instanceof this},metaForProperty:function(e){var t=a(this.proto(),!1).descs[e];return t._meta||{}},eachComputedProperty:function(e,t){var r,n=this.proto(),i=a(n).descs,o={};for(var s in i)r=i[s],r instanceof Ember.ComputedProperty&&e.call(t||this,s,r._meta||o)}});y.ownerConstructor=g,Ember.config.overrideClassMixin&&Ember.config.overrideClassMixin(y),g.ClassMixin=y,y.apply(g),Ember.CoreObject=g}(),function(){Ember.Object=Ember.CoreObject.extend(Ember.Observable),Ember.Object.toString=function(){return"Ember.Object"}}(),function(){function e(t,r,i){var s=t.length;c[t.join(".")]=r;for(var a in r)if(h.call(r,a)){var u=r[a];if(t[s]=a,u&&u.toString===n)u.toString=o(t.join(".")),u[f]=t.join(".");else if(u&&u.isNamespace){if(i[l(u)])continue;i[l(u)]=!0,e(t,u,i)}}t.length=s}function t(){var e,t,r=Ember.Namespace,n=Ember.lookup;if(!r.PROCESSED)for(var i in n)if("parent"!==i&&"top"!==i&&"frameElement"!==i&&"webkitStorageInfo"!==i&&!("globalStorage"===i&&n.StorageList&&n.globalStorage instanceof n.StorageList||n.hasOwnProperty&&!n.hasOwnProperty(i))){try{e=Ember.lookup[i],t=e&&e.isNamespace}catch(o){continue}t&&(e[f]=i)}}function r(e){var t=e.superclass;return t?t[f]?t[f]:r(t):void 0}function n(){Ember.BOOTED||this[f]||i();var e;if(this[f])e=this[f];else{var t=r(this);e=t?"(subclass of "+t+")":"(unknown mixin)",this.toString=o(e)}return e}function i(){var r=!u.PROCESSED,n=Ember.anyUnprocessedMixins;if(r&&(t(),u.PROCESSED=!0),r||n){for(var i,o=u.NAMESPACES,s=0,a=o.length;a>s;s++)i=o[s],e([i.toString()],i,{});Ember.anyUnprocessedMixins=!1}}function o(e){return function(){return e}}var s=Ember.get,a=Ember.ArrayPolyfills.indexOf,u=Ember.Namespace=Ember.Object.extend({isNamespace:!0,init:function(){Ember.Namespace.NAMESPACES.push(this),Ember.Namespace.PROCESSED=!1},toString:function(){var e=s(this,"name");return e?e:(t(),this[Ember.GUID_KEY+"_name"])},nameClasses:function(){e([this.toString()],this,{})},destroy:function(){var e=Ember.Namespace.NAMESPACES;Ember.lookup[this.toString()]=void 0,e.splice(a.call(e,this),1),this._super()}});u.reopenClass({NAMESPACES:[Ember],NAMESPACES_BY_ID:{},PROCESSED:!1,processAll:i,byName:function(e){return Ember.BOOTED||i(),c[e]}});var c=u.NAMESPACES_BY_ID,h={}.hasOwnProperty,l=Ember.guidFor,f=Ember.NAME_KEY=Ember.GUID_KEY+"_name";Ember.Mixin.prototype.toString=n}(),function(){Ember.Application=Ember.Namespace.extend()}(),function(){var e="Index out of range",t=[],r=Ember.get;Ember.set,Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed.alias("content"),objectAtContent:function(e){return r(this,"arrangedContent").objectAt(e)},replaceContent:function(e,t,n){r(this,"content").replace(e,t,n)},_contentWillChange:Ember.beforeObserver(function(){this._teardownContent()},"content"),_teardownContent:function(){var e=r(this,"content");e&&e.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){r(this,"content"),this._setupContent()},"content"),_setupContent:function(){var e=r(this,"content");e&&e.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},_arrangedContentWillChange:Ember.beforeObserver(function(){var e=r(this,"arrangedContent"),t=e?r(e,"length"):0;this.arrangedContentArrayWillChange(this,0,t,void 0),this.arrangedContentWillChange(this),this._teardownArrangedContent(e)},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var e=r(this,"arrangedContent"),t=e?r(e,"length"):0;this._setupArrangedContent(),this.arrangedContentDidChange(this),this.arrangedContentArrayDidChange(this,0,void 0,t)},"arrangedContent"),_setupArrangedContent:function(){var e=r(this,"arrangedContent");e&&e.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},_teardownArrangedContent:function(){var e=r(this,"arrangedContent");e&&e.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},arrangedContentWillChange:Ember.K,arrangedContentDidChange:Ember.K,objectAt:function(e){return r(this,"content")&&this.objectAtContent(e)},length:Ember.computed(function(){var e=r(this,"arrangedContent");return e?r(e,"length"):0}),_replace:function(e,t,n){var i=r(this,"content");return i&&this.replaceContent(e,t,n),this},replace:function(){if(r(this,"arrangedContent")!==r(this,"content"))throw new Ember.Error("Using replace on an arranged ArrayProxy is not allowed.");this._replace.apply(this,arguments)},_insertAt:function(t,n){if(t>r(this,"content.length"))throw new Error(e);return this._replace(t,0,[n]),this},insertAt:function(e,t){if(r(this,"arrangedContent")===r(this,"content"))return this._insertAt(e,t);throw new Ember.Error("Using insertAt on an arranged ArrayProxy is not allowed.")},removeAt:function(n,i){if("number"==typeof n){var o,s=r(this,"content"),a=r(this,"arrangedContent"),u=[];if(0>n||n>=r(this,"length"))throw new Error(e);for(void 0===i&&(i=1),o=n;n+i>o;o++)u.push(s.indexOf(a.objectAt(o)));for(u.sort(function(e,t){return t-e}),Ember.beginPropertyChanges(),o=0;o<u.length;o++)this._replace(u[o],1,t);Ember.endPropertyChanges()}return this},pushObject:function(e){return this._insertAt(r(this,"content.length"),e),e},pushObjects:function(e){if(!Ember.Enumerable.detect(e)&&!Ember.isArray(e))throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects");return this._replace(r(this,"length"),0,e),this},setObjects:function(e){if(0===e.length)return this.clear();var t=r(this,"length");return this._replace(0,t,e),this},unshiftObject:function(e){return this._insertAt(0,e),e},unshiftObjects:function(e){return this._replace(0,0,e),this},slice:function(){var e=this.toArray();return e.slice.apply(e,arguments)},arrangedContentArrayWillChange:function(e,t,r,n){this.arrayContentWillChange(t,r,n)},arrangedContentArrayDidChange:function(e,t,r,n){this.arrayContentDidChange(t,r,n)},init:function(){this._super(),this._setupContent(),this._setupArrangedContent()},willDestroy:function(){this._teardownArrangedContent(),this._teardownContent()}})}(),function(){function e(e,t){var r=t.slice(8);r in this||u(this,r)}function t(e,t){var r=t.slice(8);r in this||c(this,r)}var r=Ember.get,n=Ember.set,i=(Ember.String.fmt,Ember.addBeforeObserver),o=Ember.addObserver,s=Ember.removeBeforeObserver,a=Ember.removeObserver,u=Ember.propertyWillChange,c=Ember.propertyDidChange;Ember.ObjectProxy=Ember.Object.extend({content:null,_contentDidChange:Ember.observer(function(){},"content"),isTruthy:Ember.computed.bool("content"),_debugContainerKey:null,willWatchProperty:function(r){var n="content."+r;i(this,n,null,e),o(this,n,null,t)},didUnwatchProperty:function(r){var n="content."+r;s(this,n,null,e),a(this,n,null,t)},unknownProperty:function(e){var t=r(this,"content");return t?r(t,e):void 0},setUnknownProperty:function(e,t){var i=r(this,"content");return n(i,e,t)}}),Ember.ObjectProxy.reopenClass({create:function(){var e,t,r,n,i,o;if(arguments.length){for(t=this.proto(),r=0,n=arguments.length;n>r;r++){i=arguments[r];for(o in i)!i.hasOwnProperty(o)||o in t||(e||(e={}),e[o]=null)}e&&this._initMixins([e])}return this._super.apply(this,arguments)}})}(),function(){function e(e,t,r,i,o){var s,a=r._objects;for(a||(a=r._objects={});--o>=i;){var u=e.objectAt(o);u&&(Ember.addBeforeObserver(u,t,r,"contentKeyWillChange"),Ember.addObserver(u,t,r,"contentKeyDidChange"),s=n(u),a[s]||(a[s]=[]),a[s].push(o))}}function t(e,t,r,i,o){var s=r._objects;s||(s=r._objects={});for(var a,u;--o>=i;){var c=e.objectAt(o);c&&(Ember.removeBeforeObserver(c,t,r,"contentKeyWillChange"),Ember.removeObserver(c,t,r,"contentKeyDidChange"),u=n(c),a=s[u],a[a.indexOf(o)]=null)}}var r=(Ember.set,Ember.get),n=Ember.guidFor,i=Ember.EnumerableUtils.forEach,o=Ember.Object.extend(Ember.Array,{init:function(e,t,r){this._super(),this._keyName=t,this._owner=r,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})}),s=/^.+:(before|change)$/;Ember.EachProxy=Ember.Object.extend({init:function(e){this._super(),this._content=e,e.addArrayObserver(this),i(Ember.watchedEvents(this),function(e){this.didAddListener(e)},this)},unknownProperty:function(e){var t;return t=new o(this._content,e,this),Ember.defineProperty(this,e,null,t),this.beginObservingContentKey(e),t},arrayWillChange:function(e,r,n){var i,o,s=this._keys;o=n>0?r+n:-1,Ember.beginPropertyChanges(this);for(i in s)s.hasOwnProperty(i)&&(o>0&&t(e,i,this,r,o),Ember.propertyWillChange(this,i));Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(t,r,n,i){var o,s=this._keys;o=i>0?r+i:-1,Ember.changeProperties(function(){for(var n in s)s.hasOwnProperty(n)&&(o>0&&e(t,n,this,r,o),Ember.propertyDidChange(this,n));Ember.propertyDidChange(this._content,"@each")},this)},didAddListener:function(e){s.test(e)&&this.beginObservingContentKey(e.slice(0,-7))},didRemoveListener:function(e){s.test(e)&&this.stopObservingContentKey(e.slice(0,-7))},beginObservingContentKey:function(t){var n=this._keys;if(n||(n=this._keys={}),n[t])n[t]++;else{n[t]=1;var i=this._content,o=r(i,"length");e(i,t,this,0,o)}},stopObservingContentKey:function(e){var n=this._keys;if(n&&n[e]>0&&--n[e]<=0){var i=this._content,o=r(i,"length");t(i,e,this,0,o)}},contentKeyWillChange:function(e,t){Ember.propertyWillChange(this,t)},contentKeyDidChange:function(e,t){Ember.propertyDidChange(this,t)}})}(),function(){var e=Ember.get;Ember.set;var t=Ember.Mixin.create(Ember.MutableArray,Ember.Observable,Ember.Copyable,{get:function(e){return"length"===e?this.length:"number"==typeof e?this[e]:this._super(e)},objectAt:function(e){return this[e]},replace:function(t,r,n){if(this.isFrozen)throw Ember.FROZEN_ERROR;var i=n?e(n,"length"):0;if(this.arrayContentWillChange(t,r,i),n&&0!==n.length){var o=[t,r].concat(n);this.splice.apply(this,o)}else this.splice(t,r);return this.arrayContentDidChange(t,r,i),this},unknownProperty:function(e,t){var r;return void 0!==t&&void 0===r&&(r=this[e]=t),r},indexOf:function(e,t){var r,n=this.length;for(t=void 0===t?0:0>t?Math.ceil(t):Math.floor(t),0>t&&(t+=n),r=t;n>r;r++)if(this[r]===e)return r;return-1},lastIndexOf:function(e,t){var r,n=this.length;for(t=void 0===t?n-1:0>t?Math.ceil(t):Math.floor(t),0>t&&(t+=n),r=t;r>=0;r--)if(this[r]===e)return r;return-1},copy:function(e){return e?this.map(function(e){return Ember.copy(e,!0)}):this.slice()}}),r=["length"];Ember.EnumerableUtils.forEach(t.keys(),function(e){Array.prototype[e]&&r.push(e)}),r.length>0&&(t=t.without.apply(t,r)),Ember.NativeArray=t,Ember.A=function(e){return void 0===e&&(e=[]),Ember.Array.detect(e)?e:Ember.NativeArray.apply(e)},Ember.NativeArray.activate=function(){t.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,r=Ember.guidFor,n=Ember.isNone,i=Ember.String.fmt;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 n=e(this,"length");if(0===n)return this;var i;this.enumerableContentWillChange(n,0),Ember.propertyWillChange(this,"firstObject"),Ember.propertyWillChange(this,"lastObject");for(var o=0;n>o;o++)i=r(this[o]),delete this[i],delete this[o];return t(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(n,0),this},isEqual:function(t){if(!Ember.Enumerable.detect(t))return!1;var r=e(this,"length");if(e(t,"length")!==r)return!1;for(;--r>=0;)if(!t.contains(this[r]))return!1;return!0},add:Ember.aliasMethod("addObject"),remove:Ember.aliasMethod("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.aliasMethod("addObject"),shift:Ember.aliasMethod("pop"),unshift:Ember.aliasMethod("push"),addEach:Ember.aliasMethod("addObjects"),removeEach:Ember.aliasMethod("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]:void 0}),lastObject:Ember.computed(function(){return this.length>0?this[this.length-1]:void 0}),addObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var o,s=r(i),a=this[s],u=e(this,"length");return a>=0&&u>a&&this[a]===i?this:(o=[i],this.enumerableContentWillChange(null,o),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,o),this)},removeObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var o,s,a=r(i),u=this[a],c=e(this,"length"),h=0===u,l=u===c-1;return u>=0&&c>u&&this[u]===i&&(s=[i],this.enumerableContentWillChange(s,null),h&&Ember.propertyWillChange(this,"firstObject"),l&&Ember.propertyWillChange(this,"lastObject"),c-1>u&&(o=this[c-1],this[u]=o,this[r(o)]=u),delete this[a],delete this[c-1],t(this,"length",c-1),h&&Ember.propertyDidChange(this,"firstObject"),l&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(s,null)),this},contains:function(e){return this[r(e)]>=0},copy:function(){var n=this.constructor,i=new n,o=e(this,"length");for(t(i,"length",o);--o>=0;)i[o]=this[o],i[r(this[o])]=o;return i},toString:function(){var e,t=this.length,r=[];for(e=0;t>e;e++)r[e]=this[e];return i("Ember.Set<%@>",[r.join(",")])}})}(),function(){var e=Ember.DeferredMixin;Ember.get;var t=Ember.Object.extend(e);t.reopenClass({promise:function(e,r){var n=t.create();return e.call(r,n),n}}),Ember.Deferred=t}(),function(){var e=Ember.ArrayPolyfills.forEach,t=Ember.ENV.EMBER_LOAD_HOOKS||{},r={};Ember.onLoad=function(e,n){var i;t[e]=t[e]||Ember.A(),t[e].pushObject(n),(i=r[e])&&n(i)},Ember.runLoadHooks=function(n,i){r[n]=i,t[n]&&e.call(t[n],function(e){e(i)})}}(),function(){var e=Ember.get;Ember.ControllerMixin=Ember.Mixin.create({isController:!0,target:null,container:null,parentController:null,store:null,model:Ember.computed.alias("content"),send:function(t){var r,n=[].slice.call(arguments,1);this[t]?this[t].apply(this,n):(r=e(this,"target"))&&r.send.apply(r,arguments)}}),Ember.Controller=Ember.Object.extend(Ember.ControllerMixin)}(),function(){var e=Ember.get,t=(Ember.set,Ember.EnumerableUtils.forEach);Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,sortFunction:Ember.compare,orderBy:function(r,n){var i=0,o=e(this,"sortProperties"),s=e(this,"sortAscending"),a=e(this,"sortFunction");return t(o,function(t){0===i&&(i=a(e(r,t),e(n,t)),0===i||s||(i=-1*i))}),i},destroy:function(){var r=e(this,"content"),n=e(this,"sortProperties");return r&&n&&t(r,function(e){t(n,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed.bool("sortProperties"),arrangedContent:Ember.computed("content","sortProperties.@each",function(){var r=e(this,"content"),n=e(this,"isSorted"),i=e(this,"sortProperties"),o=this;return r&&n?(r=r.slice(),r.sort(function(e,t){return o.orderBy(e,t)}),t(r,function(e){t(i,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(r)):r}),_contentWillChange:Ember.beforeObserver(function(){var r=e(this,"content"),n=e(this,"sortProperties");r&&n&&t(r,function(e){t(n,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(r,n,i,o){var s=e(this,"isSorted");if(s){var a=e(this,"arrangedContent"),u=r.slice(n,n+i),c=e(this,"sortProperties");t(u,function(e){a.removeObject(e),t(c,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(r,n,i,o)},contentArrayDidChange:function(r,n,i,o){var s=e(this,"isSorted"),a=e(this,"sortProperties");if(s){var u=r.slice(n,n+o);t(u,function(e){this.insertItemSorted(e),t(a,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(r,n,i,o)},insertItemSorted:function(t){var r=e(this,"arrangedContent"),n=e(r,"length"),i=this._binarySearch(t,0,n);r.insertAt(i,t)},contentItemSortPropertyDidChange:function(t){var r=e(this,"arrangedContent"),n=r.indexOf(t),i=r.objectAt(n-1),o=r.objectAt(n+1),s=i&&this.orderBy(t,i),a=o&&this.orderBy(t,o);(0>s||a>0)&&(r.removeObject(t),this.insertItemSorted(t))},_binarySearch:function(t,r,n){var i,o,s,a;return r===n?r:(a=e(this,"arrangedContent"),i=r+Math.floor((n-r)/2),o=a.objectAt(i),s=this.orderBy(o,t),0>s?this._binarySearch(t,i+1,n):s>0?this._binarySearch(t,r,i):i)}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.EnumerableUtils.forEach),r=Ember.EnumerableUtils.replace;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin,{itemController:null,lookupItemController:function(){return e(this,"itemController")},objectAtContent:function(t){var r=e(this,"length"),n=e(this,"arrangedContent"),i=n&&n.objectAt(t);if(t>=0&&r>t){var o=this.lookupItemController(i);if(o)return this.controllerAt(t,i,o)}return i},arrangedContentDidChange:function(){this._super(),this._resetSubControllers()},arrayContentDidChange:function(n,i,o){var s=e(this,"_subControllers"),a=s.slice(n,n+i);t(a,function(e){e&&e.destroy()}),r(s,n,i,new Array(o)),this._super(n,i,o)},init:function(){this.get("content")||Ember.defineProperty(this,"content",void 0,Ember.A()),this._super(),this.set("_subControllers",Ember.A())},controllerAt:function(t,r,n){var i=e(this,"container"),o=e(this,"_subControllers"),s=o[t];if(s||(s=i.lookup("controller:"+n,{singleton:!1}),o[t]=s),!s)throw new Error('Could not resolve itemController: "'+n+'"');return s.set("target",this),s.set("parentController",e(this,"parentController")||this),s.set("content",r),s},_subControllers:null,_resetSubControllers:function(){var r=e(this,"_subControllers");r&&t(r,function(e){e&&e.destroy()}),this.set("_subControllers",Ember.A())}})}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}()}(),"undefined"==typeof location||"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname||Ember.Logger.warn("You are running a production build of Ember on localhost and won't receive detailed error messages. If you want full error messages please use the non-minified build provided on the Ember website.");
@@ -89,10 +89,10 @@ Ember.toString = function() { return "Ember"; };
89
89
  /**
90
90
  @property VERSION
91
91
  @type String
92
- @default '1.0.0-rc.6'
92
+ @default '1.0.0-rc.6.1'
93
93
  @final
94
94
  */
95
- Ember.VERSION = '1.0.0-rc.6';
95
+ Ember.VERSION = '1.0.0-rc.6.1';
96
96
 
97
97
  /**
98
98
  Standard environmental variables. You can define these in a global `ENV`
@@ -192,16 +192,19 @@ Ember.uuid = 0;
192
192
  //
193
193
 
194
194
  function consoleMethod(name) {
195
- if (imports.console && imports.console[name]) {
195
+ var console = imports.console,
196
+ method = typeof console === 'object' ? console[name] : null;
197
+
198
+ if (method) {
196
199
  // Older IE doesn't support apply, but Chrome needs it
197
- if (imports.console[name].apply) {
200
+ if (method.apply) {
198
201
  return function() {
199
- imports.console[name].apply(imports.console, arguments);
202
+ method.apply(console, arguments);
200
203
  };
201
204
  } else {
202
205
  return function() {
203
206
  var message = Array.prototype.join.call(arguments, ', ');
204
- imports.console[name](message);
207
+ method(message);
205
208
  };
206
209
  }
207
210
  }
@@ -213,7 +216,7 @@ function assertPolyfill(test, message) {
213
216
  // attempt to preserve the stack
214
217
  throw new Error("assertion failed: " + message);
215
218
  } catch(error) {
216
- setTimeout(function(){
219
+ setTimeout(function() {
217
220
  throw error;
218
221
  }, 0);
219
222
  }
@@ -295,7 +298,7 @@ Ember.merge = function(original, updates) {
295
298
  Ember.isNone(undefined); // true
296
299
  Ember.isNone(''); // false
297
300
  Ember.isNone([]); // false
298
- Ember.isNone(function(){}); // false
301
+ Ember.isNone(function() {}); // false
299
302
  ```
300
303
 
301
304
  @method isNone
@@ -400,7 +403,7 @@ var canRedefineProperties, canDefinePropertyOnDOM;
400
403
  // Catch IE8 where Object.defineProperty exists but only works on DOM elements
401
404
  if (defineProperty) {
402
405
  try {
403
- defineProperty({}, 'a',{get:function(){}});
406
+ defineProperty({}, 'a',{get:function() {}});
404
407
  } catch (e) {
405
408
  defineProperty = null;
406
409
  }
@@ -431,7 +434,7 @@ if (defineProperty) {
431
434
 
432
435
  // This is for Safari 5.0, which supports Object.defineProperty, but not
433
436
  // on DOM nodes.
434
- canDefinePropertyOnDOM = (function(){
437
+ canDefinePropertyOnDOM = (function() {
435
438
  try {
436
439
  defineProperty(document.createElement('div'), 'definePropertyOnDOM', {});
437
440
  return true;
@@ -443,7 +446,7 @@ if (defineProperty) {
443
446
  if (!canRedefineProperties) {
444
447
  defineProperty = null;
445
448
  } else if (!canDefinePropertyOnDOM) {
446
- defineProperty = function(obj, keyName, desc){
449
+ defineProperty = function(obj, keyName, desc) {
447
450
  var isNode;
448
451
 
449
452
  if (typeof Node === "object") {
@@ -1053,7 +1056,7 @@ if (needsFinallyFix) {
1053
1056
  } finally {
1054
1057
  try {
1055
1058
  finalResult = finalizer.call(binding);
1056
- } catch (e){
1059
+ } catch (e) {
1057
1060
  finalError = e;
1058
1061
  }
1059
1062
  }
@@ -1105,7 +1108,7 @@ if (needsFinallyFix) {
1105
1108
  } finally {
1106
1109
  try {
1107
1110
  finalResult = finalizer.call(binding);
1108
- } catch (e){
1111
+ } catch (e) {
1109
1112
  finalError = e;
1110
1113
  }
1111
1114
  }
@@ -1304,7 +1307,7 @@ Ember.Instrumentation.instrument = function(name, payload, callback, binding) {
1304
1307
 
1305
1308
  var beforeValues = [], listener, i, l;
1306
1309
 
1307
- function tryable(){
1310
+ function tryable() {
1308
1311
  for (i=0, l=listeners.length; i<l; i++) {
1309
1312
  listener = listeners[i];
1310
1313
  beforeValues[i] = listener.before(name, time(), payload);
@@ -1313,7 +1316,7 @@ Ember.Instrumentation.instrument = function(name, payload, callback, binding) {
1313
1316
  return callback.call(binding);
1314
1317
  }
1315
1318
 
1316
- function catchable(e){
1319
+ function catchable(e) {
1317
1320
  payload = payload || {};
1318
1321
  payload.exception = e;
1319
1322
  }
@@ -1831,14 +1834,10 @@ function suspendListener(obj, eventName, target, method, callback) {
1831
1834
  /**
1832
1835
  @private
1833
1836
 
1834
- Suspend listener during callback.
1835
-
1836
- This should only be used by the target of the event listener
1837
- when it is taking an action that would cause the event, e.g.
1838
- an object might suspend its property change listener while it is
1839
- setting that property.
1837
+ Suspends multiple listeners during a callback.
1840
1838
 
1841
- @method suspendListener
1839
+
1840
+ @method suspendListeners
1842
1841
  @for Ember
1843
1842
  @param obj
1844
1843
  @param {Array} eventName Array of event names
@@ -1900,12 +1899,17 @@ function watchedEvents(obj) {
1900
1899
  }
1901
1900
 
1902
1901
  /**
1902
+ Send an event. The execution of suspended listeners
1903
+ is skipped, and once listeners are removed. A listener without
1904
+ a target is executed on the passed object. If an array of actions
1905
+ is not passed, the actions stored on the passed object are invoked.
1906
+
1903
1907
  @method sendEvent
1904
1908
  @for Ember
1905
1909
  @param obj
1906
1910
  @param {String} eventName
1907
- @param {Array} params
1908
- @param {Array} actions
1911
+ @param {Array} params Optional parameters for each listener.
1912
+ @param {Array} actions Optional array of actions (listeners).
1909
1913
  @return true
1910
1914
  */
1911
1915
  function sendEvent(obj, eventName, params, actions) {
@@ -2239,7 +2243,7 @@ var endPropertyChanges = Ember.endPropertyChanges = function() {
2239
2243
  @param {Function} callback
2240
2244
  @param [binding]
2241
2245
  */
2242
- Ember.changeProperties = function(cb, binding){
2246
+ Ember.changeProperties = function(cb, binding) {
2243
2247
  beginPropertyChanges();
2244
2248
  tryFinally(cb, endPropertyChanges, binding);
2245
2249
  };
@@ -2268,6 +2272,7 @@ var notifyObservers = function(obj, keyName) {
2268
2272
  sendEvent(obj, eventName, [obj, keyName]);
2269
2273
  }
2270
2274
  };
2275
+
2271
2276
  })();
2272
2277
 
2273
2278
 
@@ -2442,8 +2447,7 @@ Ember.trySetPath = Ember.deprecateFunc('trySetPath has been renamed to trySet',
2442
2447
  Map is mocked out to look like an Ember object, so you can do
2443
2448
  `Ember.Map.create()` for symmetry with other Ember classes.
2444
2449
  */
2445
- var get = Ember.get,
2446
- set = Ember.set,
2450
+ var set = Ember.set,
2447
2451
  guidFor = Ember.guidFor,
2448
2452
  indexOf = Ember.ArrayPolyfills.indexOf;
2449
2453
 
@@ -2969,13 +2973,14 @@ var changeProperties = Ember.changeProperties,
2969
2973
  @return self
2970
2974
  */
2971
2975
  Ember.setProperties = function(self, hash) {
2972
- changeProperties(function(){
2976
+ changeProperties(function() {
2973
2977
  for(var prop in hash) {
2974
2978
  if (hash.hasOwnProperty(prop)) { set(self, prop, hash[prop]); }
2975
2979
  }
2976
2980
  });
2977
2981
  return self;
2978
2982
  };
2983
+
2979
2984
  })();
2980
2985
 
2981
2986
 
@@ -3831,7 +3836,7 @@ ComputedPropertyPrototype.set = function(obj, keyName, value) {
3831
3836
  oldSuspended = this._suspended,
3832
3837
  hadCachedValue = false,
3833
3838
  cache = meta.cache,
3834
- cachedValue, ret;
3839
+ funcArgLength, cachedValue, ret;
3835
3840
 
3836
3841
  if (this._readOnly) {
3837
3842
  throw new Error('Cannot Set: ' + keyName + ' on: ' + obj.toString() );
@@ -3846,17 +3851,18 @@ ComputedPropertyPrototype.set = function(obj, keyName, value) {
3846
3851
  hadCachedValue = true;
3847
3852
  }
3848
3853
 
3849
- // Check if the CP has been wrapped
3850
- if (func.wrappedFunction) { func = func.wrappedFunction; }
3854
+ // Check if the CP has been wrapped. If if has, use the
3855
+ // length from the wrapped function.
3856
+ funcArgLength = (func.wrappedFunction ? func.wrappedFunction.length : func.length);
3851
3857
 
3852
3858
  // For backwards-compatibility with computed properties
3853
3859
  // that check for arguments.length === 2 to determine if
3854
3860
  // they are being get or set, only pass the old cached
3855
3861
  // value if the computed property opts into a third
3856
3862
  // argument.
3857
- if (func.length === 3) {
3863
+ if (funcArgLength === 3) {
3858
3864
  ret = func.call(obj, keyName, value, cachedValue);
3859
- } else if (func.length === 2) {
3865
+ } else if (funcArgLength === 2) {
3860
3866
  ret = func.call(obj, keyName, value);
3861
3867
  } else {
3862
3868
  Ember.defineProperty(obj, keyName, null, cachedValue);
@@ -3930,7 +3936,7 @@ Ember.computed = function(func) {
3930
3936
  func = a_slice.call(arguments, -1)[0];
3931
3937
  }
3932
3938
 
3933
- if ( typeof func !== "function" ) {
3939
+ if (typeof func !== "function") {
3934
3940
  throw new Error("Computed Property declared without a property function");
3935
3941
  }
3936
3942
 
@@ -4020,7 +4026,7 @@ registerComputed('notEmpty', function(dependentKey) {
4020
4026
  @for Ember
4021
4027
  @param {String} dependentKey
4022
4028
  @return {Ember.ComputedProperty} computed property which
4023
- rturns true if original value for property is null or undefined.
4029
+ returns true if original value for property is null or undefined.
4024
4030
  */
4025
4031
  registerComputed('none', function(dependentKey) {
4026
4032
  return Ember.isNone(get(this, dependentKey));
@@ -4191,6 +4197,23 @@ registerComputedWithProperties('map', function(properties) {
4191
4197
  });
4192
4198
 
4193
4199
  /**
4200
+ Creates a new property that is an alias for another property
4201
+ on an object. Calls to `get` or `set` this property behave as
4202
+ though they were called on the original property.
4203
+
4204
+ ```javascript
4205
+ Person = Ember.Object.extend({
4206
+ name: 'Alex Matchneer',
4207
+ nomen: Ember.computed.alias('name')
4208
+ });
4209
+
4210
+ alex = Person.create();
4211
+ alex.get('nomen'); // 'Alex Matchneer'
4212
+ alex.get('name'); // 'Alex Matchneer'
4213
+
4214
+ alex.set('nomen', '@machty');
4215
+ alex.get('name'); // '@machty'
4216
+ ```
4194
4217
  @method computed.alias
4195
4218
  @for Ember
4196
4219
  @param {String} dependentKey
@@ -4198,7 +4221,7 @@ registerComputedWithProperties('map', function(properties) {
4198
4221
  alias to the original value for property.
4199
4222
  */
4200
4223
  Ember.computed.alias = function(dependentKey) {
4201
- return Ember.computed(dependentKey, function(key, value){
4224
+ return Ember.computed(dependentKey, function(key, value) {
4202
4225
  if (arguments.length > 1) {
4203
4226
  set(this, dependentKey, value);
4204
4227
  return value;
@@ -4375,6 +4398,220 @@ Ember.removeBeforeObserver = function(obj, path, target, method) {
4375
4398
 
4376
4399
 
4377
4400
  (function() {
4401
+ define("backburner/queue",
4402
+ ["exports"],
4403
+ function(__exports__) {
4404
+ "use strict";
4405
+ function Queue(daq, name, options) {
4406
+ this.daq = daq;
4407
+ this.name = name;
4408
+ this.options = options;
4409
+ this._queue = [];
4410
+ }
4411
+
4412
+ Queue.prototype = {
4413
+ daq: null,
4414
+ name: null,
4415
+ options: null,
4416
+ _queue: null,
4417
+
4418
+ push: function(target, method, args, stack) {
4419
+ var queue = this._queue;
4420
+ queue.push(target, method, args, stack);
4421
+ return {queue: this, target: target, method: method};
4422
+ },
4423
+
4424
+ pushUnique: function(target, method, args, stack) {
4425
+ var queue = this._queue, currentTarget, currentMethod, i, l;
4426
+
4427
+ for (i = 0, l = queue.length; i < l; i += 4) {
4428
+ currentTarget = queue[i];
4429
+ currentMethod = queue[i+1];
4430
+
4431
+ if (currentTarget === target && currentMethod === method) {
4432
+ queue[i+2] = args; // replace args
4433
+ queue[i+3] = stack; // replace stack
4434
+ return {queue: this, target: target, method: method}; // TODO: test this code path
4435
+ }
4436
+ }
4437
+
4438
+ this._queue.push(target, method, args, stack);
4439
+ return {queue: this, target: target, method: method};
4440
+ },
4441
+
4442
+ // TODO: remove me, only being used for Ember.run.sync
4443
+ flush: function() {
4444
+ var queue = this._queue,
4445
+ options = this.options,
4446
+ before = options && options.before,
4447
+ after = options && options.after,
4448
+ target, method, args, stack, i, l = queue.length;
4449
+
4450
+ if (l && before) { before(); }
4451
+ for (i = 0; i < l; i += 4) {
4452
+ target = queue[i];
4453
+ method = queue[i+1];
4454
+ args = queue[i+2];
4455
+ stack = queue[i+3]; // Debugging assistance
4456
+
4457
+ // TODO: error handling
4458
+ if (args && args.length > 0) {
4459
+ method.apply(target, args);
4460
+ } else {
4461
+ method.call(target);
4462
+ }
4463
+ }
4464
+ if (l && after) { after(); }
4465
+
4466
+ // check if new items have been added
4467
+ if (queue.length > l) {
4468
+ this._queue = queue.slice(l);
4469
+ this.flush();
4470
+ } else {
4471
+ this._queue.length = 0;
4472
+ }
4473
+ },
4474
+
4475
+ cancel: function(actionToCancel) {
4476
+ var queue = this._queue, currentTarget, currentMethod, i, l;
4477
+
4478
+ for (i = 0, l = queue.length; i < l; i += 4) {
4479
+ currentTarget = queue[i];
4480
+ currentMethod = queue[i+1];
4481
+
4482
+ if (currentTarget === actionToCancel.target && currentMethod === actionToCancel.method) {
4483
+ queue.splice(i, 4);
4484
+ return true;
4485
+ }
4486
+ }
4487
+
4488
+ // if not found in current queue
4489
+ // could be in the queue that is being flushed
4490
+ queue = this._queueBeingFlushed;
4491
+ if (!queue) {
4492
+ return;
4493
+ }
4494
+ for (i = 0, l = queue.length; i < l; i += 4) {
4495
+ currentTarget = queue[i];
4496
+ currentMethod = queue[i+1];
4497
+
4498
+ if (currentTarget === actionToCancel.target && currentMethod === actionToCancel.method) {
4499
+ // don't mess with array during flush
4500
+ // just nullify the method
4501
+ queue[i+1] = null;
4502
+ return true;
4503
+ }
4504
+ }
4505
+ }
4506
+ };
4507
+
4508
+
4509
+ __exports__.Queue = Queue;
4510
+ });
4511
+
4512
+ define("backburner/deferred_action_queues",
4513
+ ["backburner/queue","exports"],
4514
+ function(__dependency1__, __exports__) {
4515
+ "use strict";
4516
+ var Queue = __dependency1__.Queue;
4517
+
4518
+ function DeferredActionQueues(queueNames, options) {
4519
+ var queues = this.queues = {};
4520
+ this.queueNames = queueNames = queueNames || [];
4521
+
4522
+ var queueName;
4523
+ for (var i = 0, l = queueNames.length; i < l; i++) {
4524
+ queueName = queueNames[i];
4525
+ queues[queueName] = new Queue(this, queueName, options[queueName]);
4526
+ }
4527
+ }
4528
+
4529
+ DeferredActionQueues.prototype = {
4530
+ queueNames: null,
4531
+ queues: null,
4532
+
4533
+ schedule: function(queueName, target, method, args, onceFlag, stack) {
4534
+ var queues = this.queues,
4535
+ queue = queues[queueName];
4536
+
4537
+ if (!queue) { throw new Error("You attempted to schedule an action in a queue (" + queueName + ") that doesn't exist"); }
4538
+
4539
+ if (onceFlag) {
4540
+ return queue.pushUnique(target, method, args, stack);
4541
+ } else {
4542
+ return queue.push(target, method, args, stack);
4543
+ }
4544
+ },
4545
+
4546
+ flush: function() {
4547
+ var queues = this.queues,
4548
+ queueNames = this.queueNames,
4549
+ queueName, queue, queueItems, priorQueueNameIndex,
4550
+ queueNameIndex = 0, numberOfQueues = queueNames.length;
4551
+
4552
+ outerloop:
4553
+ while (queueNameIndex < numberOfQueues) {
4554
+ queueName = queueNames[queueNameIndex];
4555
+ queue = queues[queueName];
4556
+ queueItems = queue._queueBeingFlushed = queue._queue.slice();
4557
+ queue._queue = [];
4558
+
4559
+ var options = queue.options,
4560
+ before = options && options.before,
4561
+ after = options && options.after,
4562
+ target, method, args, stack,
4563
+ queueIndex = 0, numberOfQueueItems = queueItems.length;
4564
+
4565
+ if (numberOfQueueItems && before) { before(); }
4566
+ while (queueIndex < numberOfQueueItems) {
4567
+ target = queueItems[queueIndex];
4568
+ method = queueItems[queueIndex+1];
4569
+ args = queueItems[queueIndex+2];
4570
+ stack = queueItems[queueIndex+3]; // Debugging assistance
4571
+
4572
+ if (typeof method === 'string') { method = target[method]; }
4573
+
4574
+ // method could have been nullified / canceled during flush
4575
+ if (method) {
4576
+ // TODO: error handling
4577
+ if (args && args.length > 0) {
4578
+ method.apply(target, args);
4579
+ } else {
4580
+ method.call(target);
4581
+ }
4582
+ }
4583
+
4584
+ queueIndex += 4;
4585
+ }
4586
+ queue._queueBeingFlushed = null;
4587
+ if (numberOfQueueItems && after) { after(); }
4588
+
4589
+ if ((priorQueueNameIndex = indexOfPriorQueueWithActions(this, queueNameIndex)) !== -1) {
4590
+ queueNameIndex = priorQueueNameIndex;
4591
+ continue outerloop;
4592
+ }
4593
+
4594
+ queueNameIndex++;
4595
+ }
4596
+ }
4597
+ };
4598
+
4599
+ function indexOfPriorQueueWithActions(daq, currentQueueIndex) {
4600
+ var queueName, queue;
4601
+
4602
+ for (var i = 0, l = currentQueueIndex; i <= l; i++) {
4603
+ queueName = daq.queueNames[i];
4604
+ queue = daq.queues[queueName];
4605
+ if (queue._queue.length) { return i; }
4606
+ }
4607
+
4608
+ return -1;
4609
+ }
4610
+
4611
+
4612
+ __exports__.DeferredActionQueues = DeferredActionQueues;
4613
+ });
4614
+
4378
4615
  define("backburner",
4379
4616
  ["backburner/deferred_action_queues","exports"],
4380
4617
  function(__dependency1__, __exports__) {
@@ -4383,9 +4620,11 @@ define("backburner",
4383
4620
 
4384
4621
  var slice = [].slice,
4385
4622
  pop = [].pop,
4623
+ throttlers = [],
4386
4624
  debouncees = [],
4387
4625
  timers = [],
4388
- autorun, laterTimer, laterTimerExpiresAt;
4626
+ autorun, laterTimer, laterTimerExpiresAt,
4627
+ global = this;
4389
4628
 
4390
4629
  function Backburner(queueNames, options) {
4391
4630
  this.queueNames = queueNames;
@@ -4542,7 +4781,7 @@ define("backburner",
4542
4781
  clearTimeout(laterTimer);
4543
4782
  laterTimer = null;
4544
4783
  }
4545
- laterTimer = window.setTimeout(function() {
4784
+ laterTimer = global.setTimeout(function() {
4546
4785
  executeTimers(self);
4547
4786
  laterTimer = null;
4548
4787
  laterTimerExpiresAt = null;
@@ -4552,38 +4791,86 @@ define("backburner",
4552
4791
  return fn;
4553
4792
  },
4554
4793
 
4555
- debounce: function(target, method /* , args, wait */) {
4794
+ throttle: function(target, method /* , args, wait */) {
4556
4795
  var self = this,
4557
4796
  args = arguments,
4558
4797
  wait = pop.call(args),
4559
- debouncee;
4798
+ throttler;
4560
4799
 
4561
- for (var i = 0, l = debouncees.length; i < l; i++) {
4562
- debouncee = debouncees[i];
4563
- if (debouncee[0] === target && debouncee[1] === method) { return; } // do nothing
4800
+ for (var i = 0, l = throttlers.length; i < l; i++) {
4801
+ throttler = throttlers[i];
4802
+ if (throttler[0] === target && throttler[1] === method) { return; } // do nothing
4564
4803
  }
4565
4804
 
4566
- var timer = window.setTimeout(function() {
4805
+ var timer = global.setTimeout(function() {
4567
4806
  self.run.apply(self, args);
4568
4807
 
4569
- // remove debouncee
4808
+ // remove throttler
4570
4809
  var index = -1;
4571
- for (var i = 0, l = debouncees.length; i < l; i++) {
4572
- debouncee = debouncees[i];
4573
- if (debouncee[0] === target && debouncee[1] === method) {
4810
+ for (var i = 0, l = throttlers.length; i < l; i++) {
4811
+ throttler = throttlers[i];
4812
+ if (throttler[0] === target && throttler[1] === method) {
4574
4813
  index = i;
4575
4814
  break;
4576
4815
  }
4577
4816
  }
4578
4817
 
4579
- if (index > -1) { debouncees.splice(index, 1); }
4818
+ if (index > -1) { throttlers.splice(index, 1); }
4580
4819
  }, wait);
4581
4820
 
4821
+ throttlers.push([target, method, timer]);
4822
+ },
4823
+
4824
+ debounce: function(target, method /* , args, wait, [immediate] */) {
4825
+ var self = this,
4826
+ args = arguments,
4827
+ immediate = pop.call(args),
4828
+ wait,
4829
+ index,
4830
+ debouncee;
4831
+
4832
+ if (typeof immediate === "number") {
4833
+ wait = immediate;
4834
+ immediate = false;
4835
+ } else {
4836
+ wait = pop.call(args);
4837
+ }
4838
+
4839
+ // Remove debouncee
4840
+ index = findDebouncee(target, method);
4841
+
4842
+ if (index !== -1) {
4843
+ debouncee = debouncees[index];
4844
+ debouncees.splice(index, 1);
4845
+ clearTimeout(debouncee[2]);
4846
+ }
4847
+
4848
+ var timer = window.setTimeout(function() {
4849
+ if (!immediate) {
4850
+ self.run.apply(self, args);
4851
+ }
4852
+ index = findDebouncee(target, method);
4853
+ if (index) {
4854
+ debouncees.splice(index, 1);
4855
+ }
4856
+ }, wait);
4857
+
4858
+ if (immediate && index === -1) {
4859
+ self.run.apply(self, args);
4860
+ }
4861
+
4582
4862
  debouncees.push([target, method, timer]);
4583
4863
  },
4584
4864
 
4585
4865
  cancelTimers: function() {
4586
- for (var i = 0, l = debouncees.length; i < l; i++) {
4866
+ var i, len;
4867
+
4868
+ for (i = 0, len = throttlers.length; i < len; i++) {
4869
+ clearTimeout(throttlers[i][2]);
4870
+ }
4871
+ throttlers = [];
4872
+
4873
+ for (i = 0, len = debouncees.length; i < len; i++) {
4587
4874
  clearTimeout(debouncees[i][2]);
4588
4875
  }
4589
4876
  debouncees = [];
@@ -4626,7 +4913,7 @@ define("backburner",
4626
4913
 
4627
4914
  function createAutorun(backburner) {
4628
4915
  backburner.begin();
4629
- autorun = window.setTimeout(function() {
4916
+ autorun = global.setTimeout(function() {
4630
4917
  backburner.end();
4631
4918
  autorun = null;
4632
4919
  });
@@ -4645,237 +4932,38 @@ define("backburner",
4645
4932
 
4646
4933
  fns = timers.splice(0, i);
4647
4934
 
4648
- for (i = 1, l = fns.length; i < l; i += 2) {
4649
- self.schedule(self.options.defaultQueue, null, fns[i]);
4650
- }
4651
- });
4652
-
4653
- if (timers.length) {
4654
- laterTimer = window.setTimeout(function() {
4655
- executeTimers(self);
4656
- laterTimer = null;
4657
- laterTimerExpiresAt = null;
4658
- }, timers[0] - now);
4659
- laterTimerExpiresAt = timers[0];
4660
- }
4661
- }
4662
-
4663
-
4664
- __exports__.Backburner = Backburner;
4665
- });
4666
-
4667
- define("backburner/deferred_action_queues",
4668
- ["backburner/queue","exports"],
4669
- function(__dependency1__, __exports__) {
4670
- "use strict";
4671
- var Queue = __dependency1__.Queue;
4672
-
4673
- function DeferredActionQueues(queueNames, options) {
4674
- var queues = this.queues = {};
4675
- this.queueNames = queueNames = queueNames || [];
4676
-
4677
- var queueName;
4678
- for (var i = 0, l = queueNames.length; i < l; i++) {
4679
- queueName = queueNames[i];
4680
- queues[queueName] = new Queue(this, queueName, options[queueName]);
4681
- }
4682
- }
4683
-
4684
- DeferredActionQueues.prototype = {
4685
- queueNames: null,
4686
- queues: null,
4687
-
4688
- schedule: function(queueName, target, method, args, onceFlag, stack) {
4689
- var queues = this.queues,
4690
- queue = queues[queueName];
4691
-
4692
- if (!queue) { throw new Error("You attempted to schedule an action in a queue (" + queueName + ") that doesn't exist"); }
4693
-
4694
- if (onceFlag) {
4695
- return queue.pushUnique(target, method, args, stack);
4696
- } else {
4697
- return queue.push(target, method, args, stack);
4698
- }
4699
- },
4700
-
4701
- flush: function() {
4702
- var queues = this.queues,
4703
- queueNames = this.queueNames,
4704
- queueName, queue, queueItems, priorQueueNameIndex,
4705
- queueNameIndex = 0, numberOfQueues = queueNames.length;
4706
-
4707
- outerloop:
4708
- while (queueNameIndex < numberOfQueues) {
4709
- queueName = queueNames[queueNameIndex];
4710
- queue = queues[queueName];
4711
- queueItems = queue._queueBeingFlushed = queue._queue.slice();
4712
- queue._queue = [];
4713
-
4714
- var options = queue.options,
4715
- before = options && options.before,
4716
- after = options && options.after,
4717
- target, method, args, stack,
4718
- queueIndex = 0, numberOfQueueItems = queueItems.length;
4719
-
4720
- if (numberOfQueueItems && before) { before(); }
4721
- while (queueIndex < numberOfQueueItems) {
4722
- target = queueItems[queueIndex];
4723
- method = queueItems[queueIndex+1];
4724
- args = queueItems[queueIndex+2];
4725
- stack = queueItems[queueIndex+3]; // Debugging assistance
4726
-
4727
- if (typeof method === 'string') { method = target[method]; }
4728
-
4729
- // method could have been nullified / canceled during flush
4730
- if (method) {
4731
- // TODO: error handling
4732
- if (args && args.length > 0) {
4733
- method.apply(target, args);
4734
- } else {
4735
- method.call(target);
4736
- }
4737
- }
4738
-
4739
- queueIndex += 4;
4740
- }
4741
- queue._queueBeingFlushed = null;
4742
- if (numberOfQueueItems && after) { after(); }
4743
-
4744
- if ((priorQueueNameIndex = indexOfPriorQueueWithActions(this, queueNameIndex)) !== -1) {
4745
- queueNameIndex = priorQueueNameIndex;
4746
- continue outerloop;
4747
- }
4748
-
4749
- queueNameIndex++;
4750
- }
4751
- }
4752
- };
4753
-
4754
- function indexOfPriorQueueWithActions(daq, currentQueueIndex) {
4755
- var queueName, queue;
4756
-
4757
- for (var i = 0, l = currentQueueIndex; i <= l; i++) {
4758
- queueName = daq.queueNames[i];
4759
- queue = daq.queues[queueName];
4760
- if (queue._queue.length) { return i; }
4761
- }
4762
-
4763
- return -1;
4764
- }
4765
-
4766
-
4767
- __exports__.DeferredActionQueues = DeferredActionQueues;
4768
- });
4769
-
4770
- define("backburner/queue",
4771
- ["exports"],
4772
- function(__exports__) {
4773
- "use strict";
4774
- function Queue(daq, name, options) {
4775
- this.daq = daq;
4776
- this.name = name;
4777
- this.options = options;
4778
- this._queue = [];
4779
- }
4780
-
4781
- Queue.prototype = {
4782
- daq: null,
4783
- name: null,
4784
- options: null,
4785
- _queue: null,
4786
-
4787
- push: function(target, method, args, stack) {
4788
- var queue = this._queue;
4789
- queue.push(target, method, args, stack);
4790
- return {queue: this, target: target, method: method};
4791
- },
4792
-
4793
- pushUnique: function(target, method, args, stack) {
4794
- var queue = this._queue, currentTarget, currentMethod, i, l;
4795
-
4796
- for (i = 0, l = queue.length; i < l; i += 4) {
4797
- currentTarget = queue[i];
4798
- currentMethod = queue[i+1];
4799
-
4800
- if (currentTarget === target && currentMethod === method) {
4801
- queue[i+2] = args; // replace args
4802
- queue[i+3] = stack; // replace stack
4803
- return {queue: this, target: target, method: method}; // TODO: test this code path
4804
- }
4805
- }
4806
-
4807
- this._queue.push(target, method, args, stack);
4808
- return {queue: this, target: target, method: method};
4809
- },
4810
-
4811
- // TODO: remove me, only being used for Ember.run.sync
4812
- flush: function() {
4813
- var queue = this._queue,
4814
- options = this.options,
4815
- before = options && options.before,
4816
- after = options && options.after,
4817
- target, method, args, stack, i, l = queue.length;
4818
-
4819
- if (l && before) { before(); }
4820
- for (i = 0; i < l; i += 4) {
4821
- target = queue[i];
4822
- method = queue[i+1];
4823
- args = queue[i+2];
4824
- stack = queue[i+3]; // Debugging assistance
4825
-
4826
- // TODO: error handling
4827
- if (args && args.length > 0) {
4828
- method.apply(target, args);
4829
- } else {
4830
- method.call(target);
4831
- }
4832
- }
4833
- if (l && after) { after(); }
4834
-
4835
- // check if new items have been added
4836
- if (queue.length > l) {
4837
- this._queue = queue.slice(l);
4838
- this.flush();
4839
- } else {
4840
- this._queue.length = 0;
4841
- }
4842
- },
4843
-
4844
- cancel: function(actionToCancel) {
4845
- var queue = this._queue, currentTarget, currentMethod, i, l;
4846
-
4847
- for (i = 0, l = queue.length; i < l; i += 4) {
4848
- currentTarget = queue[i];
4849
- currentMethod = queue[i+1];
4850
-
4851
- if (currentTarget === actionToCancel.target && currentMethod === actionToCancel.method) {
4852
- queue.splice(i, 4);
4853
- return true;
4854
- }
4855
- }
4856
-
4857
- // if not found in current queue
4858
- // could be in the queue that is being flushed
4859
- queue = this._queueBeingFlushed;
4860
- if (!queue) {
4861
- return;
4935
+ for (i = 1, l = fns.length; i < l; i += 2) {
4936
+ self.schedule(self.options.defaultQueue, null, fns[i]);
4862
4937
  }
4863
- for (i = 0, l = queue.length; i < l; i += 4) {
4864
- currentTarget = queue[i];
4865
- currentMethod = queue[i+1];
4938
+ });
4866
4939
 
4867
- if (currentTarget === actionToCancel.target && currentMethod === actionToCancel.method) {
4868
- // don't mess with array during flush
4869
- // just nullify the method
4870
- queue[i+1] = null;
4871
- return true;
4872
- }
4940
+ if (timers.length) {
4941
+ laterTimer = global.setTimeout(function() {
4942
+ executeTimers(self);
4943
+ laterTimer = null;
4944
+ laterTimerExpiresAt = null;
4945
+ }, timers[0] - now);
4946
+ laterTimerExpiresAt = timers[0];
4947
+ }
4948
+ }
4949
+
4950
+ function findDebouncee(target, method) {
4951
+ var debouncee,
4952
+ index = -1;
4953
+
4954
+ for (var i = 0, l = debouncees.length; i < l; i++) {
4955
+ debouncee = debouncees[i];
4956
+ if (debouncee[0] === target && debouncee[1] === method) {
4957
+ index = i;
4958
+ break;
4873
4959
  }
4874
4960
  }
4875
- };
4961
+
4962
+ return index;
4963
+ }
4876
4964
 
4877
4965
 
4878
- __exports__.Queue = Queue;
4966
+ __exports__.Backburner = Backburner;
4879
4967
  });
4880
4968
  })();
4881
4969
 
@@ -4917,7 +5005,7 @@ var Backburner = requireModule('backburner').Backburner,
4917
5005
  call.
4918
5006
 
4919
5007
  ```javascript
4920
- Ember.run(function(){
5008
+ Ember.run(function() {
4921
5009
  // code to be execute within a RunLoop
4922
5010
  });
4923
5011
  ```
@@ -4960,7 +5048,7 @@ Ember.run = function(target, method) {
4960
5048
  If invoked when not within a run loop:
4961
5049
 
4962
5050
  ```javascript
4963
- Ember.run.join(function(){
5051
+ Ember.run.join(function() {
4964
5052
  // creates a new run-loop
4965
5053
  });
4966
5054
  ```
@@ -4968,9 +5056,9 @@ Ember.run = function(target, method) {
4968
5056
  Alternatively, if called within an existing run loop:
4969
5057
 
4970
5058
  ```javascript
4971
- Ember.run(function(){
5059
+ Ember.run(function() {
4972
5060
  // creates a new run-loop
4973
- Ember.run.join(function(){
5061
+ Ember.run.join(function() {
4974
5062
  // joins with the existing run-loop, and queues for invocation on
4975
5063
  // the existing run-loops action queue.
4976
5064
  });
@@ -5063,12 +5151,12 @@ Ember.run.end = function() {
5063
5151
  the `Ember.run.queues` property.
5064
5152
 
5065
5153
  ```javascript
5066
- Ember.run.schedule('sync', this, function(){
5154
+ Ember.run.schedule('sync', this, function() {
5067
5155
  // this will be executed in the first RunLoop queue, when bindings are synced
5068
5156
  console.log("scheduled on sync queue");
5069
5157
  });
5070
5158
 
5071
- Ember.run.schedule('actions', this, function(){
5159
+ Ember.run.schedule('actions', this, function() {
5072
5160
  // this will be executed in the 'actions' queue, after bindings have synced.
5073
5161
  console.log("scheduled on actions queue");
5074
5162
  });
@@ -5136,7 +5224,7 @@ Ember.run.sync = function() {
5136
5224
  together, which is often more efficient than using a real setTimeout.
5137
5225
 
5138
5226
  ```javascript
5139
- Ember.run.later(myContext, function(){
5227
+ Ember.run.later(myContext, function() {
5140
5228
  // code here will execute within a RunLoop in about 500ms with this == myContext
5141
5229
  }, 500);
5142
5230
  ```
@@ -5184,11 +5272,11 @@ Ember.run.once = function(target, method) {
5184
5272
  calls.
5185
5273
 
5186
5274
  ```javascript
5187
- Ember.run(function(){
5275
+ Ember.run(function() {
5188
5276
  var sayHi = function() { console.log('hi'); }
5189
5277
  Ember.run.scheduleOnce('afterRender', myContext, sayHi);
5190
5278
  Ember.run.scheduleOnce('afterRender', myContext, sayHi);
5191
- // doFoo will only be executed once, in the afterRender queue of the RunLoop
5279
+ // sayHi will only be executed once, in the afterRender queue of the RunLoop
5192
5280
  });
5193
5281
  ```
5194
5282
 
@@ -5229,7 +5317,7 @@ Ember.run.scheduleOnce = function(queue, target, method) {
5229
5317
  `Ember.run.later` with a wait time of 1ms.
5230
5318
 
5231
5319
  ```javascript
5232
- Ember.run.next(myContext, function(){
5320
+ Ember.run.next(myContext, function() {
5233
5321
  // code to be executed in the next run loop, which will be scheduled after the current one
5234
5322
  });
5235
5323
  ```
@@ -5291,17 +5379,17 @@ Ember.run.next = function() {
5291
5379
  `Ember.run.once()`, or `Ember.run.next()`.
5292
5380
 
5293
5381
  ```javascript
5294
- var runNext = Ember.run.next(myContext, function(){
5382
+ var runNext = Ember.run.next(myContext, function() {
5295
5383
  // will not be executed
5296
5384
  });
5297
5385
  Ember.run.cancel(runNext);
5298
5386
 
5299
- var runLater = Ember.run.later(myContext, function(){
5387
+ var runLater = Ember.run.later(myContext, function() {
5300
5388
  // will not be executed
5301
5389
  }, 500);
5302
5390
  Ember.run.cancel(runLater);
5303
5391
 
5304
- var runOnce = Ember.run.once(myContext, function(){
5392
+ var runOnce = Ember.run.once(myContext, function() {
5305
5393
  // will not be executed
5306
5394
  });
5307
5395
  Ember.run.cancel(runOnce);
@@ -5316,8 +5404,15 @@ Ember.run.cancel = function(timer) {
5316
5404
  };
5317
5405
 
5318
5406
  /**
5319
- Execute the passed method in a specified amount of time, reset timer
5320
- upon additional calls.
5407
+ Delay calling the target method until the debounce period has elapsed
5408
+ with no additional debounce calls. If `debounce` is called again before
5409
+ the specified time has elapsed, the timer is reset and the entire period
5410
+ must pass again before the target method is called.
5411
+
5412
+ This method should be used when an event may be called multiple times
5413
+ but the action should only be called once when the event is done firing.
5414
+ A common example is for scroll events where you only want updates to
5415
+ happen once scrolling has ceased.
5321
5416
 
5322
5417
  ```javascript
5323
5418
  var myFunc = function() { console.log(this.name + ' ran.'); };
@@ -5341,12 +5436,50 @@ Ember.run.cancel = function(timer) {
5341
5436
  then it will be looked up on the passed target.
5342
5437
  @param {Object} [args*] Optional arguments to pass to the timeout.
5343
5438
  @param {Number} wait Number of milliseconds to wait.
5439
+ @param {Boolean} immediate Trigger the function on the leading instead of the trailing edge of the wait interval.
5344
5440
  @return {void}
5345
5441
  */
5346
5442
  Ember.run.debounce = function() {
5347
5443
  return backburner.debounce.apply(backburner, arguments);
5348
5444
  };
5349
5445
 
5446
+ /**
5447
+ Ensure that the target method is never called more frequently than
5448
+ the specified spacing period.
5449
+
5450
+ ```javascript
5451
+ var myFunc = function() { console.log(this.name + ' ran.'); };
5452
+ var myContext = {name: 'throttle'};
5453
+
5454
+ Ember.run.throttle(myContext, myFunc, 150);
5455
+
5456
+ // 50ms passes
5457
+ Ember.run.throttle(myContext, myFunc, 150);
5458
+
5459
+ // 50ms passes
5460
+ Ember.run.throttle(myContext, myFunc, 150);
5461
+
5462
+ // 50ms passes
5463
+ Ember.run.throttle(myContext, myFunc, 150);
5464
+
5465
+ // 150ms passes
5466
+ // myFunc is invoked with context myContext
5467
+ // console logs 'throttle ran.' twice, 150ms apart.
5468
+ ```
5469
+
5470
+ @method throttle
5471
+ @param {Object} [target] target of method to invoke
5472
+ @param {Function|String} method The method to invoke.
5473
+ May be a function or a string. If you pass a string
5474
+ then it will be looked up on the passed target.
5475
+ @param {Object} [args*] Optional arguments to pass to the timeout.
5476
+ @param {Number} spacing Number of milliseconds to space out requests.
5477
+ @return {void}
5478
+ */
5479
+ Ember.run.throttle = function() {
5480
+ return backburner.throttle.apply(backburner, arguments);
5481
+ };
5482
+
5350
5483
  // Make sure it's not an autorun during testing
5351
5484
  function checkAutoRun() {
5352
5485
  if (!Ember.run.currentRunLoop) {
@@ -5837,7 +5970,8 @@ Ember.oneWay = function(obj, to, from) {
5837
5970
 
5838
5971
  (function() {
5839
5972
  /**
5840
- @module ember-metal
5973
+ @module ember
5974
+ @submodule ember-metal
5841
5975
  */
5842
5976
 
5843
5977
  var Mixin, REQUIRED, Alias,
@@ -6213,38 +6347,6 @@ Mixin.finishPartial = finishPartial;
6213
6347
  Ember.anyUnprocessedMixins = false;
6214
6348
 
6215
6349
  /**
6216
- Creates an instance of a class. Accepts either no arguments, or an object
6217
- containing values to initialize the newly instantiated object with.
6218
-
6219
- ```javascript
6220
- App.Person = Ember.Object.extend({
6221
- helloWorld: function() {
6222
- alert("Hi, my name is " + this.get('name'));
6223
- }
6224
- });
6225
-
6226
- var tom = App.Person.create({
6227
- name: 'Tom Dale'
6228
- });
6229
-
6230
- tom.helloWorld(); // alerts "Hi, my name is Tom Dale".
6231
- ```
6232
-
6233
- `create` will call the `init` function if defined during
6234
- `Ember.AnyObject.extend`
6235
-
6236
- If no arguments are passed to `create`, it will not set values to the new
6237
- instance during initialization:
6238
-
6239
- ```javascript
6240
- var noName = App.Person.create();
6241
- noName.helloWorld(); // alerts undefined
6242
- ```
6243
-
6244
- NOTE: For performance reasons, you cannot declare methods or computed
6245
- properties during `create`. You should instead declare methods and computed
6246
- properties when using `extend`.
6247
-
6248
6350
  @method create
6249
6351
  @static
6250
6352
  @param arguments*
@@ -6404,7 +6506,7 @@ Alias.prototype = new Ember.Descriptor();
6404
6506
  App.PaintSample = Ember.Object.extend({
6405
6507
  color: 'red',
6406
6508
  colour: Ember.alias('color'),
6407
- name: function(){
6509
+ name: function() {
6408
6510
  return "Zed";
6409
6511
  },
6410
6512
  moniker: Ember.alias("name")
@@ -6432,7 +6534,7 @@ Ember.alias = Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.a
6432
6534
 
6433
6535
  ```javascript
6434
6536
  App.Person = Ember.Object.extend({
6435
- name: function(){
6537
+ name: function() {
6436
6538
  return 'Tomhuda Katzdale';
6437
6539
  },
6438
6540
  moniker: Ember.aliasMethod('name')
@@ -6501,7 +6603,7 @@ Ember.immediateObserver = function() {
6501
6603
  }.observesBefore('content.value'),
6502
6604
  valueDidChange: function(obj, keyName, value) {
6503
6605
  // only run if updating a value already in the DOM
6504
- if(this.get('state') === 'inDOM') {
6606
+ if (this.get('state') === 'inDOM') {
6505
6607
  var color = value > this.changingFrom ? 'green' : 'red';
6506
6608
  // logic
6507
6609
  }
@@ -6537,65 +6639,82 @@ Ember Metal
6537
6639
 
6538
6640
  (function() {
6539
6641
  define("rsvp/all",
6540
- ["rsvp/defer","exports"],
6642
+ ["rsvp/promise","exports"],
6541
6643
  function(__dependency1__, __exports__) {
6542
6644
  "use strict";
6543
- var defer = __dependency1__.defer;
6645
+ var Promise = __dependency1__.Promise;
6646
+ /* global toString */
6544
6647
 
6545
- function all(promises) {
6546
- var results = [], deferred = defer(), remaining = promises.length;
6547
6648
 
6548
- if (remaining === 0) {
6549
- deferred.resolve([]);
6649
+ function all(promises) {
6650
+ if (Object.prototype.toString.call(promises) !== "[object Array]") {
6651
+ throw new TypeError('You must pass an array to all.');
6550
6652
  }
6551
6653
 
6552
- var resolver = function(index) {
6553
- return function(value) {
6554
- resolveAll(index, value);
6555
- };
6556
- };
6654
+ return new Promise(function(resolve, reject) {
6655
+ var results = [], remaining = promises.length,
6656
+ promise;
6557
6657
 
6558
- var resolveAll = function(index, value) {
6559
- results[index] = value;
6560
- if (--remaining === 0) {
6561
- deferred.resolve(results);
6658
+ if (remaining === 0) {
6659
+ resolve([]);
6562
6660
  }
6563
- };
6564
6661
 
6565
- var rejectAll = function(error) {
6566
- deferred.reject(error);
6567
- };
6662
+ function resolver(index) {
6663
+ return function(value) {
6664
+ resolveAll(index, value);
6665
+ };
6666
+ }
6568
6667
 
6569
- for (var i = 0; i < promises.length; i++) {
6570
- if (promises[i] && typeof promises[i].then === 'function') {
6571
- promises[i].then(resolver(i), rejectAll);
6572
- } else {
6573
- resolveAll(i, promises[i]);
6668
+ function resolveAll(index, value) {
6669
+ results[index] = value;
6670
+ if (--remaining === 0) {
6671
+ resolve(results);
6672
+ }
6574
6673
  }
6575
- }
6576
- return deferred.promise;
6674
+
6675
+ for (var i = 0; i < promises.length; i++) {
6676
+ promise = promises[i];
6677
+
6678
+ if (promise && typeof promise.then === 'function') {
6679
+ promise.then(resolver(i), reject);
6680
+ } else {
6681
+ resolveAll(i, promise);
6682
+ }
6683
+ }
6684
+ });
6577
6685
  }
6578
6686
 
6687
+
6579
6688
  __exports__.all = all;
6580
6689
  });
6581
-
6582
6690
  define("rsvp/async",
6583
6691
  ["exports"],
6584
6692
  function(__exports__) {
6585
6693
  "use strict";
6586
6694
  var browserGlobal = (typeof window !== 'undefined') ? window : {};
6587
-
6588
6695
  var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
6589
6696
  var async;
6590
6697
 
6591
- if (typeof process !== 'undefined' &&
6592
- {}.toString.call(process) === '[object process]') {
6593
- async = function(callback, binding) {
6698
+ // old node
6699
+ function useNextTick() {
6700
+ return function(callback, arg) {
6594
6701
  process.nextTick(function() {
6595
- callback.call(binding);
6702
+ callback(arg);
6596
6703
  });
6597
6704
  };
6598
- } else if (BrowserMutationObserver) {
6705
+ }
6706
+
6707
+ // node >= 0.10.x
6708
+ function useSetImmediate() {
6709
+ return function(callback, arg) {
6710
+ /* global setImmediate */
6711
+ setImmediate(function(){
6712
+ callback(arg);
6713
+ });
6714
+ };
6715
+ }
6716
+
6717
+ function useMutationObserver() {
6599
6718
  var queue = [];
6600
6719
 
6601
6720
  var observer = new BrowserMutationObserver(function() {
@@ -6603,8 +6722,8 @@ define("rsvp/async",
6603
6722
  queue = [];
6604
6723
 
6605
6724
  toProcess.forEach(function(tuple) {
6606
- var callback = tuple[0], binding = tuple[1];
6607
- callback.call(binding);
6725
+ var callback = tuple[0], arg= tuple[1];
6726
+ callback(arg);
6608
6727
  });
6609
6728
  });
6610
6729
 
@@ -6615,24 +6734,35 @@ define("rsvp/async",
6615
6734
  window.addEventListener('unload', function(){
6616
6735
  observer.disconnect();
6617
6736
  observer = null;
6618
- });
6737
+ }, false);
6619
6738
 
6620
- async = function(callback, binding) {
6621
- queue.push([callback, binding]);
6739
+ return function(callback, arg) {
6740
+ queue.push([callback, arg]);
6622
6741
  element.setAttribute('drainQueue', 'drainQueue');
6623
6742
  };
6624
- } else {
6625
- async = function(callback, binding) {
6743
+ }
6744
+
6745
+ function useSetTimeout() {
6746
+ return function(callback, arg) {
6626
6747
  setTimeout(function() {
6627
- callback.call(binding);
6748
+ callback(arg);
6628
6749
  }, 1);
6629
6750
  };
6630
6751
  }
6631
6752
 
6753
+ if (typeof setImmediate === 'function') {
6754
+ async = useSetImmediate();
6755
+ } else if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') {
6756
+ async = useNextTick();
6757
+ } else if (BrowserMutationObserver) {
6758
+ async = useMutationObserver();
6759
+ } else {
6760
+ async = useSetTimeout();
6761
+ }
6762
+
6632
6763
 
6633
6764
  __exports__.async = async;
6634
6765
  });
6635
-
6636
6766
  define("rsvp/config",
6637
6767
  ["rsvp/async","exports"],
6638
6768
  function(__dependency1__, __exports__) {
@@ -6642,9 +6772,9 @@ define("rsvp/config",
6642
6772
  var config = {};
6643
6773
  config.async = async;
6644
6774
 
6775
+
6645
6776
  __exports__.config = config;
6646
6777
  });
6647
-
6648
6778
  define("rsvp/defer",
6649
6779
  ["rsvp/promise","exports"],
6650
6780
  function(__dependency1__, __exports__) {
@@ -6652,20 +6782,24 @@ define("rsvp/defer",
6652
6782
  var Promise = __dependency1__.Promise;
6653
6783
 
6654
6784
  function defer() {
6655
- var deferred = {};
6785
+ var deferred = {
6786
+ // pre-allocate shape
6787
+ resolve: undefined,
6788
+ reject: undefined,
6789
+ promise: undefined
6790
+ };
6656
6791
 
6657
- var promise = new Promise(function(resolve, reject) {
6792
+ deferred.promise = new Promise(function(resolve, reject) {
6658
6793
  deferred.resolve = resolve;
6659
6794
  deferred.reject = reject;
6660
6795
  });
6661
6796
 
6662
- deferred.promise = promise;
6663
6797
  return deferred;
6664
6798
  }
6665
6799
 
6800
+
6666
6801
  __exports__.defer = defer;
6667
6802
  });
6668
-
6669
6803
  define("rsvp/events",
6670
6804
  ["exports"],
6671
6805
  function(__exports__) {
@@ -6767,7 +6901,6 @@ define("rsvp/events",
6767
6901
 
6768
6902
  __exports__.EventTarget = EventTarget;
6769
6903
  });
6770
-
6771
6904
  define("rsvp/hash",
6772
6905
  ["rsvp/defer","exports"],
6773
6906
  function(__dependency1__, __exports__) {
@@ -6775,13 +6908,13 @@ define("rsvp/hash",
6775
6908
  var defer = __dependency1__.defer;
6776
6909
 
6777
6910
  function size(object) {
6778
- var size = 0;
6911
+ var s = 0;
6779
6912
 
6780
6913
  for (var prop in object) {
6781
- size++;
6914
+ s++;
6782
6915
  }
6783
6916
 
6784
- return size;
6917
+ return s;
6785
6918
  }
6786
6919
 
6787
6920
  function hash(promises) {
@@ -6819,9 +6952,9 @@ define("rsvp/hash",
6819
6952
  return deferred.promise;
6820
6953
  }
6821
6954
 
6955
+
6822
6956
  __exports__.hash = hash;
6823
6957
  });
6824
-
6825
6958
  define("rsvp/node",
6826
6959
  ["rsvp/promise","rsvp/all","exports"],
6827
6960
  function(__dependency1__, __dependency2__, __exports__) {
@@ -6844,6 +6977,7 @@ define("rsvp/node",
6844
6977
  function denodeify(nodeFunc) {
6845
6978
  return function() {
6846
6979
  var nodeArgs = Array.prototype.slice.call(arguments), resolve, reject;
6980
+ var thisArg = this;
6847
6981
 
6848
6982
  var promise = new Promise(function(nodeResolve, nodeReject) {
6849
6983
  resolve = nodeResolve;
@@ -6854,7 +6988,7 @@ define("rsvp/node",
6854
6988
  nodeArgs.push(makeNodeCallbackFor(resolve, reject));
6855
6989
 
6856
6990
  try {
6857
- nodeFunc.apply(this, nodeArgs);
6991
+ nodeFunc.apply(thisArg, nodeArgs);
6858
6992
  } catch(e) {
6859
6993
  reject(e);
6860
6994
  }
@@ -6864,9 +6998,9 @@ define("rsvp/node",
6864
6998
  };
6865
6999
  }
6866
7000
 
7001
+
6867
7002
  __exports__.denodeify = denodeify;
6868
7003
  });
6869
-
6870
7004
  define("rsvp/promise",
6871
7005
  ["rsvp/config","rsvp/events","exports"],
6872
7006
  function(__dependency1__, __dependency2__, __exports__) {
@@ -6914,6 +7048,8 @@ define("rsvp/promise",
6914
7048
  this.trigger('error', { detail: event.detail });
6915
7049
  }, this);
6916
7050
 
7051
+ this.on('error', onerror);
7052
+
6917
7053
  try {
6918
7054
  resolver(resolvePromise, rejectPromise);
6919
7055
  } catch(e) {
@@ -6921,6 +7057,12 @@ define("rsvp/promise",
6921
7057
  }
6922
7058
  };
6923
7059
 
7060
+ function onerror(event) {
7061
+ if (config.onerror) {
7062
+ config.onerror(event.detail);
7063
+ }
7064
+ }
7065
+
6924
7066
  var invokeCallback = function(type, promise, callback, event) {
6925
7067
  var hasCallback = isFunction(callback),
6926
7068
  value, error, succeeded, failed;
@@ -6954,18 +7096,25 @@ define("rsvp/promise",
6954
7096
  Promise.prototype = {
6955
7097
  constructor: Promise,
6956
7098
 
7099
+ isRejected: undefined,
7100
+ isFulfilled: undefined,
7101
+ rejectedReason: undefined,
7102
+ fulfillmentValue: undefined,
7103
+
6957
7104
  then: function(done, fail) {
6958
- var thenPromise = new Promise(function() {});
7105
+ this.off('error', onerror);
7106
+
7107
+ var thenPromise = new this.constructor(function() {});
6959
7108
 
6960
7109
  if (this.isFulfilled) {
6961
- config.async(function() {
6962
- invokeCallback('resolve', thenPromise, done, { detail: this.fulfillmentValue });
7110
+ config.async(function(promise) {
7111
+ invokeCallback('resolve', thenPromise, done, { detail: promise.fulfillmentValue });
6963
7112
  }, this);
6964
7113
  }
6965
7114
 
6966
7115
  if (this.isRejected) {
6967
- config.async(function() {
6968
- invokeCallback('reject', thenPromise, fail, { detail: this.rejectedReason });
7116
+ config.async(function(promise) {
7117
+ invokeCallback('reject', thenPromise, fail, { detail: promise.rejectedReason });
6969
7118
  }, this);
6970
7119
  }
6971
7120
 
@@ -6992,32 +7141,40 @@ define("rsvp/promise",
6992
7141
  }
6993
7142
 
6994
7143
  function handleThenable(promise, value) {
6995
- var then = null;
7144
+ var then = null,
7145
+ resolved;
6996
7146
 
6997
- if (objectOrFunction(value)) {
6998
- try {
6999
- then = value.then;
7000
- } catch(e) {
7001
- reject(promise, e);
7002
- return true;
7147
+ try {
7148
+ if (promise === value) {
7149
+ throw new TypeError("A promises callback cannot return that same promise.");
7003
7150
  }
7004
7151
 
7005
- if (isFunction(then)) {
7006
- try {
7152
+ if (objectOrFunction(value)) {
7153
+ then = value.then;
7154
+
7155
+ if (isFunction(then)) {
7007
7156
  then.call(value, function(val) {
7157
+ if (resolved) { return true; }
7158
+ resolved = true;
7159
+
7008
7160
  if (value !== val) {
7009
7161
  resolve(promise, val);
7010
7162
  } else {
7011
7163
  fulfill(promise, val);
7012
7164
  }
7013
7165
  }, function(val) {
7166
+ if (resolved) { return true; }
7167
+ resolved = true;
7168
+
7014
7169
  reject(promise, val);
7015
7170
  });
7016
- } catch (e) {
7017
- reject(promise, e);
7171
+
7172
+ return true;
7018
7173
  }
7019
- return true;
7020
7174
  }
7175
+ } catch (error) {
7176
+ reject(promise, error);
7177
+ return true;
7021
7178
  }
7022
7179
 
7023
7180
  return false;
@@ -7042,19 +7199,12 @@ define("rsvp/promise",
7042
7199
 
7043
7200
  __exports__.Promise = Promise;
7044
7201
  });
7045
-
7046
7202
  define("rsvp/reject",
7047
7203
  ["rsvp/promise","exports"],
7048
7204
  function(__dependency1__, __exports__) {
7049
7205
  "use strict";
7050
7206
  var Promise = __dependency1__.Promise;
7051
7207
 
7052
-
7053
- function objectOrFunction(x) {
7054
- return typeof x === "function" || (typeof x === "object" && x !== null);
7055
- }
7056
-
7057
-
7058
7208
  function reject(reason) {
7059
7209
  return new Promise(function (resolve, reject) {
7060
7210
  reject(reason);
@@ -7064,48 +7214,21 @@ define("rsvp/reject",
7064
7214
 
7065
7215
  __exports__.reject = reject;
7066
7216
  });
7067
-
7068
7217
  define("rsvp/resolve",
7069
7218
  ["rsvp/promise","exports"],
7070
7219
  function(__dependency1__, __exports__) {
7071
7220
  "use strict";
7072
7221
  var Promise = __dependency1__.Promise;
7073
7222
 
7074
-
7075
- function objectOrFunction(x) {
7076
- return typeof x === "function" || (typeof x === "object" && x !== null);
7077
- }
7078
-
7079
- function resolve(thenable){
7080
- var promise = new Promise(function(resolve, reject){
7081
- var then;
7082
-
7083
- try {
7084
- if ( objectOrFunction(thenable) ) {
7085
- then = thenable.then;
7086
-
7087
- if (typeof then === "function") {
7088
- then.call(thenable, resolve, reject);
7089
- } else {
7090
- resolve(thenable);
7091
- }
7092
-
7093
- } else {
7094
- resolve(thenable);
7095
- }
7096
-
7097
- } catch(error) {
7098
- reject(error);
7099
- }
7223
+ function resolve(thenable) {
7224
+ return new Promise(function(resolve, reject) {
7225
+ resolve(thenable);
7100
7226
  });
7101
-
7102
- return promise;
7103
7227
  }
7104
7228
 
7105
7229
 
7106
7230
  __exports__.resolve = resolve;
7107
7231
  });
7108
-
7109
7232
  define("rsvp",
7110
7233
  ["rsvp/events","rsvp/promise","rsvp/node","rsvp/all","rsvp/hash","rsvp/defer","rsvp/config","rsvp/resolve","rsvp/reject","exports"],
7111
7234
  function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __exports__) {
@@ -7136,8 +7259,6 @@ define("rsvp",
7136
7259
  __exports__.reject = reject;
7137
7260
  });
7138
7261
 
7139
-
7140
-
7141
7262
  })();
7142
7263
 
7143
7264
  (function() {
@@ -7205,6 +7326,16 @@ define("container",
7205
7326
  this.dict[key] = value;
7206
7327
  },
7207
7328
 
7329
+ /**
7330
+ Delete the given key
7331
+
7332
+ @method remove
7333
+ @param {String} key
7334
+ */
7335
+ remove: function(key) {
7336
+ delete this.dict[key];
7337
+ },
7338
+
7208
7339
  /**
7209
7340
  Check for the existence of given a key, if the key is present at the current
7210
7341
  level return true, otherwise walk up the parent hierarchy and try again. If
@@ -7377,7 +7508,7 @@ define("container",
7377
7508
  register: function(type, name, factory, options) {
7378
7509
  var fullName;
7379
7510
 
7380
- if (type.indexOf(':') !== -1){
7511
+ if (type.indexOf(':') !== -1) {
7381
7512
  options = factory;
7382
7513
  factory = name;
7383
7514
  fullName = type;
@@ -7392,11 +7523,34 @@ define("container",
7392
7523
  this._options.set(normalizedName, options || {});
7393
7524
  },
7394
7525
 
7526
+ /**
7527
+ Unregister a fullName
7528
+
7529
+ ```javascript
7530
+ var container = new Container();
7531
+ container.register('model:user', User);
7532
+
7533
+ container.lookup('model:user') instanceof User //=> true
7534
+
7535
+ container.unregister('model:user')
7536
+ container.lookup('model:user') === undefined //=> true
7537
+
7538
+ @method unregister
7539
+ @param {String} fullName
7540
+ */
7541
+ unregister: function(fullName) {
7542
+ var normalizedName = this.normalize(fullName);
7543
+
7544
+ this.registry.remove(normalizedName);
7545
+ this.cache.remove(normalizedName);
7546
+ this._options.remove(normalizedName);
7547
+ },
7548
+
7395
7549
  /**
7396
7550
  Given a fullName return the corresponding factory.
7397
7551
 
7398
- By default `resolve` will retreive the factory from
7399
- it's containers registry.
7552
+ By default `resolve` will retrieve the factory from
7553
+ its container's registry.
7400
7554
 
7401
7555
  ```javascript
7402
7556
  var container = new Container();
@@ -7428,6 +7582,20 @@ define("container",
7428
7582
  return this.resolver(fullName) || this.registry.get(fullName);
7429
7583
  },
7430
7584
 
7585
+ /**
7586
+ A hook that can be used to describe how the resolver will
7587
+ attempt to find the factory.
7588
+
7589
+ For example, the default Ember `.describe` returns the full
7590
+ class name (including namespace) where Ember's resolver expects
7591
+ to find the `fullName`.
7592
+
7593
+ @method describe
7594
+ */
7595
+ describe: function(fullName) {
7596
+ return fullName;
7597
+ },
7598
+
7431
7599
  /**
7432
7600
  A hook to enable custom fullName normalization behaviour
7433
7601
 
@@ -8001,7 +8169,11 @@ Ember.copy = function(obj, deep) {
8001
8169
  @return {String} A description of the object
8002
8170
  */
8003
8171
  Ember.inspect = function(obj) {
8004
- if (typeof obj !== 'object' || obj === null) {
8172
+ var type = Ember.typeOf(obj);
8173
+ if (type === 'array') {
8174
+ return '[' + obj + ']';
8175
+ }
8176
+ if (type !== 'object') {
8005
8177
  return obj + '';
8006
8178
  }
8007
8179
 
@@ -8184,9 +8356,9 @@ Ember.String = {
8184
8356
  // first, replace any ORDERED replacements.
8185
8357
  var idx = 0; // the current index for non-numerical replacements
8186
8358
  return str.replace(/%@([0-9]+)?/g, function(s, argIndex) {
8187
- argIndex = (argIndex) ? parseInt(argIndex,0) - 1 : idx++ ;
8359
+ argIndex = (argIndex) ? parseInt(argIndex, 10) - 1 : idx++;
8188
8360
  s = formats[argIndex];
8189
- return ((s === null) ? '(null)' : (s === undefined) ? '' : s).toString();
8361
+ return (s === null) ? '(null)' : (s === undefined) ? '' : Ember.inspect(s);
8190
8362
  }) ;
8191
8363
  },
8192
8364
 
@@ -8704,14 +8876,10 @@ function iter(key, value) {
8704
8876
 
8705
8877
  @class Enumerable
8706
8878
  @namespace Ember
8707
- @extends Ember.Mixin
8708
8879
  @since Ember 0.9
8709
8880
  */
8710
8881
  Ember.Enumerable = Ember.Mixin.create({
8711
8882
 
8712
- // compatibility
8713
- isEnumerable: true,
8714
-
8715
8883
  /**
8716
8884
  Implement this method to make your class enumerable.
8717
8885
 
@@ -9183,7 +9351,7 @@ Ember.Enumerable = Ember.Mixin.create({
9183
9351
  @method some
9184
9352
  @param {Function} callback The callback to execute
9185
9353
  @param {Object} [target] The target object to use
9186
- @return {Array} A filtered array.
9354
+ @return {Boolean} `true` if the passed function returns `true` for any item
9187
9355
  */
9188
9356
  some: function(callback, target) {
9189
9357
  return !!this.find(function(x, idx, i) {
@@ -9198,7 +9366,7 @@ Ember.Enumerable = Ember.Mixin.create({
9198
9366
  @method someProperty
9199
9367
  @param {String} key the property to test
9200
9368
  @param {String} [value] optional value to test against.
9201
- @return {Boolean} `true`
9369
+ @return {Boolean} `true` if the passed function returns `true` for any item
9202
9370
  */
9203
9371
  someProperty: function(key, value) {
9204
9372
  return this.some(iter.apply(this, arguments));
@@ -9338,7 +9506,7 @@ Ember.Enumerable = Ember.Mixin.create({
9338
9506
  */
9339
9507
  uniq: function() {
9340
9508
  var ret = Ember.A();
9341
- this.forEach(function(k){
9509
+ this.forEach(function(k) {
9342
9510
  if (a_indexOf(ret, k)<0) ret.push(k);
9343
9511
  });
9344
9512
  return ret;
@@ -9542,7 +9710,6 @@ var get = Ember.get, set = Ember.set, isNone = Ember.isNone, map = Ember.Enumera
9542
9710
 
9543
9711
  @class Array
9544
9712
  @namespace Ember
9545
- @extends Ember.Mixin
9546
9713
  @uses Ember.Enumerable
9547
9714
  @since Ember 0.9.0
9548
9715
  */
@@ -9598,7 +9765,7 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
9598
9765
  */
9599
9766
  objectsAt: function(indexes) {
9600
9767
  var self = this;
9601
- return map(indexes, function(idx){ return self.objectAt(idx); });
9768
+ return map(indexes, function(idx) { return self.objectAt(idx); });
9602
9769
  },
9603
9770
 
9604
9771
  // overrides Ember.Enumerable version
@@ -9630,7 +9797,7 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
9630
9797
  }),
9631
9798
 
9632
9799
  // optimized version from Enumerable
9633
- contains: function(obj){
9800
+ contains: function(obj) {
9634
9801
  return this.indexOf(obj) >= 0;
9635
9802
  },
9636
9803
 
@@ -9695,7 +9862,7 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
9695
9862
  if (startAt < 0) startAt += len;
9696
9863
 
9697
9864
  for(idx=startAt;idx<len;idx++) {
9698
- if (this.objectAt(idx, true) === object) return idx ;
9865
+ if (this.objectAt(idx) === object) return idx ;
9699
9866
  }
9700
9867
  return -1;
9701
9868
  },
@@ -9940,20 +10107,10 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
9940
10107
 
9941
10108
  @class Comparable
9942
10109
  @namespace Ember
9943
- @extends Ember.Mixin
9944
10110
  @since Ember 0.9
9945
10111
  */
9946
10112
  Ember.Comparable = Ember.Mixin.create( /** @scope Ember.Comparable.prototype */{
9947
10113
 
9948
- /**
9949
- walk like a duck. Indicates that the object can be compared.
9950
-
9951
- @property isComparable
9952
- @type Boolean
9953
- @default true
9954
- */
9955
- isComparable: true,
9956
-
9957
10114
  /**
9958
10115
  Override to return the result of the comparison of the two parameters. The
9959
10116
  compare method should return:
@@ -10001,7 +10158,6 @@ var get = Ember.get, set = Ember.set;
10001
10158
 
10002
10159
  @class Copyable
10003
10160
  @namespace Ember
10004
- @extends Ember.Mixin
10005
10161
  @since Ember 0.9
10006
10162
  */
10007
10163
  Ember.Copyable = Ember.Mixin.create(/** @scope Ember.Copyable.prototype */ {
@@ -10106,7 +10262,6 @@ var get = Ember.get, set = Ember.set;
10106
10262
 
10107
10263
  @class Freezable
10108
10264
  @namespace Ember
10109
- @extends Ember.Mixin
10110
10265
  @since Ember 0.9
10111
10266
  */
10112
10267
  Ember.Freezable = Ember.Mixin.create(/** @scope Ember.Freezable.prototype */ {
@@ -10186,7 +10341,6 @@ var forEach = Ember.EnumerableUtils.forEach;
10186
10341
 
10187
10342
  @class MutableEnumerable
10188
10343
  @namespace Ember
10189
- @extends Ember.Mixin
10190
10344
  @uses Ember.Enumerable
10191
10345
  */
10192
10346
  Ember.MutableEnumerable = Ember.Mixin.create(Ember.Enumerable, {
@@ -10286,7 +10440,6 @@ var get = Ember.get, set = Ember.set;
10286
10440
 
10287
10441
  @class MutableArray
10288
10442
  @namespace Ember
10289
- @extends Ember.Mixin
10290
10443
  @uses Ember.Array
10291
10444
  @uses Ember.MutableEnumerable
10292
10445
  */
@@ -10356,7 +10509,7 @@ Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,/**
10356
10509
  method. You can pass either a single index, or a start and a length.
10357
10510
 
10358
10511
  If you pass a start and length that is beyond the
10359
- length this method will throw an `Ember.OUT_OF_RANGE_EXCEPTION`
10512
+ length this method will throw an `OUT_OF_RANGE_EXCEPTION`
10360
10513
 
10361
10514
  ```javascript
10362
10515
  var colors = ["red", "green", "blue", "yellow", "orange"];
@@ -10410,7 +10563,7 @@ Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,/**
10410
10563
 
10411
10564
  ```javascript
10412
10565
  var colors = ["red", "green", "blue"];
10413
- colors.pushObjects("black"); // ["red", "green", "blue", "black"]
10566
+ colors.pushObjects(["black"]); // ["red", "green", "blue", "black"]
10414
10567
  colors.pushObjects(["yellow", "orange"]); // ["red", "green", "blue", "black", "yellow", "orange"]
10415
10568
  ```
10416
10569
 
@@ -10419,6 +10572,9 @@ Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,/**
10419
10572
  @return {Ember.Array} receiver
10420
10573
  */
10421
10574
  pushObjects: function(objects) {
10575
+ if (!(Ember.Enumerable.detect(objects) || Ember.isArray(objects))) {
10576
+ throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects");
10577
+ }
10422
10578
  this.replace(get(this, 'length'), 0, objects);
10423
10579
  return this;
10424
10580
  },
@@ -10637,9 +10793,8 @@ var get = Ember.get, set = Ember.set;
10637
10793
 
10638
10794
  @class Observable
10639
10795
  @namespace Ember
10640
- @extends Ember.Mixin
10641
10796
  */
10642
- Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
10797
+ Ember.Observable = Ember.Mixin.create({
10643
10798
 
10644
10799
  /**
10645
10800
  Retrieves the value of a property from the object.
@@ -10837,7 +10992,7 @@ Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
10837
10992
  @param {String} keyName The property key that is about to change.
10838
10993
  @return {Ember.Observable}
10839
10994
  */
10840
- propertyWillChange: function(keyName){
10995
+ propertyWillChange: function(keyName) {
10841
10996
  Ember.propertyWillChange(this, keyName);
10842
10997
  return this;
10843
10998
  },
@@ -11143,7 +11298,7 @@ Ember.TargetActionSupport = Ember.Mixin.create({
11143
11298
  target: Ember.computed.alias('controller'),
11144
11299
  action: 'save',
11145
11300
  actionContext: Ember.computed.alias('context'),
11146
- click: function(){
11301
+ click: function() {
11147
11302
  this.triggerAction(); // Sends the `save` action, along with the current context
11148
11303
  // to the current controller
11149
11304
  }
@@ -11155,7 +11310,7 @@ Ember.TargetActionSupport = Ember.Mixin.create({
11155
11310
 
11156
11311
  ```javascript
11157
11312
  App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
11158
- click: function(){
11313
+ click: function() {
11159
11314
  this.triggerAction({
11160
11315
  action: 'save',
11161
11316
  target: this.get('controller'),
@@ -11173,7 +11328,7 @@ Ember.TargetActionSupport = Ember.Mixin.create({
11173
11328
  ```javascript
11174
11329
  App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
11175
11330
  target: Ember.computed.alias('controller'),
11176
- click: function(){
11331
+ click: function() {
11177
11332
  this.triggerAction({
11178
11333
  action: 'save'
11179
11334
  }); // Sends the `save` action, along with a reference to `this`,
@@ -11255,7 +11410,6 @@ Ember.TargetActionSupport = Ember.Mixin.create({
11255
11410
 
11256
11411
  @class Evented
11257
11412
  @namespace Ember
11258
- @extends Ember.Mixin
11259
11413
  */
11260
11414
  Ember.Evented = Ember.Mixin.create({
11261
11415
 
@@ -11373,8 +11527,8 @@ Ember.Evented = Ember.Mixin.create({
11373
11527
  (function() {
11374
11528
  var RSVP = requireModule("rsvp");
11375
11529
 
11376
- RSVP.configure('async', function(callback, binding) {
11377
- Ember.run.schedule('actions', binding, callback);
11530
+ RSVP.configure('async', function(callback, promise) {
11531
+ Ember.run.schedule('actions', promise, callback, promise);
11378
11532
  });
11379
11533
 
11380
11534
  /**
@@ -11387,7 +11541,6 @@ var get = Ember.get;
11387
11541
  /**
11388
11542
  @class Deferred
11389
11543
  @namespace Ember
11390
- @extends Ember.Mixin
11391
11544
  */
11392
11545
  Ember.DeferredMixin = Ember.Mixin.create({
11393
11546
  /**
@@ -11426,7 +11579,7 @@ Ember.DeferredMixin = Ember.Mixin.create({
11426
11579
  deferred = get(this, '_deferred');
11427
11580
  promise = deferred.promise;
11428
11581
 
11429
- if (value === this){
11582
+ if (value === this) {
11430
11583
  deferred.resolve(promise);
11431
11584
  } else {
11432
11585
  deferred.resolve(value);
@@ -11473,8 +11626,8 @@ Ember.Container.set = Ember.set;
11473
11626
  */
11474
11627
 
11475
11628
 
11476
- // NOTE: this object should never be included directly. Instead use Ember.
11477
- // Ember.Object. We only define this separately so that Ember.Set can depend on it
11629
+ // NOTE: this object should never be included directly. Instead use `Ember.Object`.
11630
+ // We only define this separately so that `Ember.Set` can depend on it.
11478
11631
 
11479
11632
 
11480
11633
  var set = Ember.set, get = Ember.get,
@@ -11617,6 +11770,10 @@ function makeCtor() {
11617
11770
 
11618
11771
  }
11619
11772
 
11773
+ /**
11774
+ @class CoreObject
11775
+ @namespace Ember
11776
+ */
11620
11777
  var CoreObject = makeCtor();
11621
11778
  CoreObject.toString = function() { return "Ember.CoreObject"; };
11622
11779
 
@@ -11813,7 +11970,7 @@ CoreObject.PrototypeMixin = Mixin.create({
11813
11970
  included in the output.
11814
11971
 
11815
11972
  App.Teacher = App.Person.extend({
11816
- toStringExtension: function(){
11973
+ toStringExtension: function() {
11817
11974
  return this.get('fullName');
11818
11975
  }
11819
11976
  });
@@ -11876,12 +12033,57 @@ var ClassMixin = Mixin.create({
11876
12033
  return Class;
11877
12034
  },
11878
12035
 
12036
+ /**
12037
+ Equivalent to doing `extend(arguments).create()`.
12038
+ If possible use the normal `create` method instead.
12039
+
12040
+ @method createWithMixins
12041
+ @static
12042
+ @param [arguments]*
12043
+ */
11879
12044
  createWithMixins: function() {
11880
12045
  var C = this;
11881
12046
  if (arguments.length>0) { this._initMixins(arguments); }
11882
12047
  return new C();
11883
12048
  },
11884
12049
 
12050
+ /**
12051
+ Creates an instance of a class. Accepts either no arguments, or an object
12052
+ containing values to initialize the newly instantiated object with.
12053
+
12054
+ ```javascript
12055
+ App.Person = Ember.Object.extend({
12056
+ helloWorld: function() {
12057
+ alert("Hi, my name is " + this.get('name'));
12058
+ }
12059
+ });
12060
+
12061
+ var tom = App.Person.create({
12062
+ name: 'Tom Dale'
12063
+ });
12064
+
12065
+ tom.helloWorld(); // alerts "Hi, my name is Tom Dale".
12066
+ ```
12067
+
12068
+ `create` will call the `init` function if defined during
12069
+ `Ember.AnyObject.extend`
12070
+
12071
+ If no arguments are passed to `create`, it will not set values to the new
12072
+ instance during initialization:
12073
+
12074
+ ```javascript
12075
+ var noName = App.Person.create();
12076
+ noName.helloWorld(); // alerts undefined
12077
+ ```
12078
+
12079
+ NOTE: For performance reasons, you cannot declare methods or computed
12080
+ properties during `create`. You should instead declare methods and computed
12081
+ properties when using `extend` or use the `createWithMixins` shorthand.
12082
+
12083
+ @method create
12084
+ @static
12085
+ @param [arguments]*
12086
+ */
11885
12087
  create: function() {
11886
12088
  var C = this;
11887
12089
  if (arguments.length>0) { this._initProperties(arguments); }
@@ -11980,10 +12182,6 @@ if (Ember.config.overrideClassMixin) {
11980
12182
  CoreObject.ClassMixin = ClassMixin;
11981
12183
  ClassMixin.apply(CoreObject);
11982
12184
 
11983
- /**
11984
- @class CoreObject
11985
- @namespace Ember
11986
- */
11987
12185
  Ember.CoreObject = CoreObject;
11988
12186
 
11989
12187
  })();
@@ -12501,6 +12699,9 @@ Ember.ArrayProxy = Ember.Object.extend(Ember.MutableArray,/** @scope Ember.Array
12501
12699
  },
12502
12700
 
12503
12701
  pushObjects: function(objects) {
12702
+ if (!(Ember.Enumerable.detect(objects) || Ember.isArray(objects))) {
12703
+ throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects");
12704
+ }
12504
12705
  this._replace(get(this, 'length'), 0, objects);
12505
12706
  return this;
12506
12707
  },
@@ -12753,6 +12954,7 @@ function addObserverForContentKey(content, keyName, proxy, idx, loc) {
12753
12954
  while(--loc>=idx) {
12754
12955
  var item = content.objectAt(loc);
12755
12956
  if (item) {
12957
+
12756
12958
  Ember.addBeforeObserver(item, keyName, proxy, 'contentKeyWillChange');
12757
12959
  Ember.addObserver(item, keyName, proxy, 'contentKeyDidChange');
12758
12960
 
@@ -12836,7 +13038,7 @@ Ember.EachProxy = Ember.Object.extend({
12836
13038
  for(key in keys) {
12837
13039
  if (!keys.hasOwnProperty(key)) { continue; }
12838
13040
 
12839
- if (lim>0) removeObserverForContentKey(content, key, this, idx, lim);
13041
+ if (lim>0) { removeObserverForContentKey(content, key, this, idx, lim); }
12840
13042
 
12841
13043
  Ember.propertyWillChange(this, key);
12842
13044
  }
@@ -12846,21 +13048,20 @@ Ember.EachProxy = Ember.Object.extend({
12846
13048
  },
12847
13049
 
12848
13050
  arrayDidChange: function(content, idx, removedCnt, addedCnt) {
12849
- var keys = this._keys, key, lim;
13051
+ var keys = this._keys, lim;
12850
13052
 
12851
13053
  lim = addedCnt>0 ? idx+addedCnt : -1;
12852
- Ember.beginPropertyChanges(this);
12853
-
12854
- for(key in keys) {
12855
- if (!keys.hasOwnProperty(key)) { continue; }
13054
+ Ember.changeProperties(function() {
13055
+ for(var key in keys) {
13056
+ if (!keys.hasOwnProperty(key)) { continue; }
12856
13057
 
12857
- if (lim>0) addObserverForContentKey(content, key, this, idx, lim);
13058
+ if (lim>0) { addObserverForContentKey(content, key, this, idx, lim); }
12858
13059
 
12859
- Ember.propertyDidChange(this, key);
12860
- }
13060
+ Ember.propertyDidChange(this, key);
13061
+ }
12861
13062
 
12862
- Ember.propertyDidChange(this._content, '@each');
12863
- Ember.endPropertyChanges(this);
13063
+ Ember.propertyDidChange(this._content, '@each');
13064
+ }, this);
12864
13065
  },
12865
13066
 
12866
13067
  // ..........................................................
@@ -13009,7 +13210,7 @@ var NativeArray = Ember.Mixin.create(Ember.MutableArray, Ember.Observable, Ember
13009
13210
 
13010
13211
  copy: function(deep) {
13011
13212
  if (deep) {
13012
- return this.map(function(item){ return Ember.copy(item, true); });
13213
+ return this.map(function(item) { return Ember.copy(item, true); });
13013
13214
  }
13014
13215
 
13015
13216
  return this.slice();
@@ -13035,7 +13236,6 @@ if (ignore.length>0) {
13035
13236
 
13036
13237
  @class NativeArray
13037
13238
  @namespace Ember
13038
- @extends Ember.Mixin
13039
13239
  @uses Ember.MutableArray
13040
13240
  @uses Ember.Observable
13041
13241
  @uses Ember.Copyable
@@ -13050,7 +13250,7 @@ Ember.NativeArray = NativeArray;
13050
13250
  @for Ember
13051
13251
  @return {Ember.NativeArray}
13052
13252
  */
13053
- Ember.A = function(arr){
13253
+ Ember.A = function(arr) {
13054
13254
  if (arr === undefined) { arr = []; }
13055
13255
  return Ember.Array.detect(arr) ? arr : Ember.NativeArray.apply(arr);
13056
13256
  };
@@ -13226,7 +13426,7 @@ Ember.Set = Ember.CoreObject.extend(Ember.MutableEnumerable, Ember.Copyable, Emb
13226
13426
  Ember.propertyWillChange(this, 'firstObject');
13227
13427
  Ember.propertyWillChange(this, 'lastObject');
13228
13428
 
13229
- for (var i=0; i < len; i++){
13429
+ for (var i=0; i < len; i++) {
13230
13430
  guid = guidFor(this[i]);
13231
13431
  delete this[guid];
13232
13432
  delete this[i];
@@ -13646,7 +13846,6 @@ var get = Ember.get;
13646
13846
 
13647
13847
  @class ControllerMixin
13648
13848
  @namespace Ember
13649
- @extends Ember.Mixin
13650
13849
  */
13651
13850
  Ember.ControllerMixin = Ember.Mixin.create({
13652
13851
  /* ducktype as a controller */
@@ -13680,7 +13879,7 @@ Ember.ControllerMixin = Ember.Mixin.create({
13680
13879
  if (this[actionName]) {
13681
13880
 
13682
13881
  this[actionName].apply(this, args);
13683
- } else if(target = get(this, 'target')) {
13882
+ } else if (target = get(this, 'target')) {
13684
13883
 
13685
13884
  target.send.apply(target, arguments);
13686
13885
  }
@@ -13734,7 +13933,6 @@ var get = Ember.get, set = Ember.set, forEach = Ember.EnumerableUtils.forEach;
13734
13933
 
13735
13934
  @class SortableMixin
13736
13935
  @namespace Ember
13737
- @extends Ember.Mixin
13738
13936
  @uses Ember.MutableEnumerable
13739
13937
  */
13740
13938
  Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable, {
@@ -13752,7 +13950,7 @@ Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable, {
13752
13950
  @property {Boolean} sortAscending
13753
13951
  */
13754
13952
  sortAscending: true,
13755
-
13953
+
13756
13954
  /**
13757
13955
  The function used to compare two values. You can override this if you
13758
13956
  want to do custom comparisons.Functions must be of the type expected by
@@ -13762,8 +13960,8 @@ Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable, {
13762
13960
  return a positive value otherwise:
13763
13961
 
13764
13962
  ```javascript
13765
- function(x,y){ // These are assumed to be integers
13766
- if(x === y)
13963
+ function(x,y) { // These are assumed to be integers
13964
+ if (x === y)
13767
13965
  return 0;
13768
13966
  return x < y ? -1 : 1;
13769
13967
  }
@@ -13774,7 +13972,7 @@ Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable, {
13774
13972
  @default Ember.compare
13775
13973
  */
13776
13974
  sortFunction: Ember.compare,
13777
-
13975
+
13778
13976
  orderBy: function(item1, item2) {
13779
13977
  var result = 0,
13780
13978
  sortProperties = get(this, 'sortProperties'),