Repository: stealjs/steal
Pull request #408 (2015-04-24 13:12:58)

Simplified steal.clone
This creates a simplified `steal.clone` function. Instead of the addSteal,System.clone noise you just do:

```js
var newSteal = steal.clone();
```


Patch:
diff --git a/main.js b/main.js
index d205e31f..6648f8f1 100644
--- a/main.js
+++ b/main.js
@@ -155,6 +155,11 @@
 		}
 	};
 
+var cloneSteal = function(System){
+	var loader = System || this.System;
+	return makeSteal(this.addSteal(loader.clone()));
+};
+
 var makeSteal = function(System){
 	
 	System.set('@loader', System.newModule({'default':System, __useDefault: true}));
@@ -750,7 +755,7 @@ if (typeof System !== "undefined") {
 		global.steal = makeSteal(System);
 		global.steal.System = System;
 		global.steal.dev = require("./ext/dev.js");
-		steal.clone = makeSteal;
+		steal.clone = cloneSteal;
 		module.exports = global.steal;
 		global.steal.addSteal = addSteal;
 		require("system-json");
@@ -763,6 +768,7 @@ if (typeof System !== "undefined") {
 				console.log("error",error,  error.stack);
 				throw error;
 			});
+		global.steal.clone = cloneSteal;
 		global.steal.addSteal = addSteal;
 	} 
     
diff --git a/src/core.js b/src/core.js
index b248ef71..6ac56753 100644
--- a/src/core.js
+++ b/src/core.js
@@ -1,3 +1,8 @@
+var cloneSteal = function(System){
+	var loader = System || this.System;
+	return makeSteal(this.addSteal(loader.clone()));
+};
+
 var makeSteal = function(System){
 	
 	System.set('@loader', System.newModule({'default':System, __useDefault: true}));
diff --git a/src/end.js b/src/end.js
index 21bf836f..66dd2582 100644
--- a/src/end.js
+++ b/src/end.js
@@ -4,7 +4,7 @@
 		global.steal = makeSteal(System);
 		global.steal.System = System;
 		global.steal.dev = require("./ext/dev.js");
-		steal.clone = makeSteal;
+		steal.clone = cloneSteal;
 		module.exports = global.steal;
 		global.steal.addSteal = addSteal;
 		require("system-json");
@@ -17,6 +17,7 @@
 				console.log("error",error,  error.stack);
 				throw error;
 			});
+		global.steal.clone = cloneSteal;
 		global.steal.addSteal = addSteal;
 	} 
     
diff --git a/steal.js b/steal.js
index 66815b7d..7623dfb8 100644
--- a/steal.js
+++ b/steal.js
@@ -5030,6 +5030,11 @@ var $__curScript, __eval;
 		}
 	};
 
+var cloneSteal = function(System){
+	var loader = System || this.System;
+	return makeSteal(this.addSteal(loader.clone()));
+};
+
 var makeSteal = function(System){
 	
 	System.set('@loader', System.newModule({'default':System, __useDefault: true}));
@@ -5702,7 +5707,7 @@ if (typeof System !== "undefined") {
 		global.steal = makeSteal(System);
 		global.steal.System = System;
 		global.steal.dev = require("./ext/dev.js");
-		steal.clone = makeSteal;
+		steal.clone = cloneSteal;
 		module.exports = global.steal;
 		global.steal.addSteal = addSteal;
 		require("system-json");
@@ -5715,6 +5720,7 @@ if (typeof System !== "undefined") {
 				console.log("error",error,  error.stack);
 				throw error;
 			});
+		global.steal.clone = cloneSteal;
 		global.steal.addSteal = addSteal;
 	} 
     
diff --git a/steal.production.js b/steal.production.js
index 06b00210..2734898b 100644
--- a/steal.production.js
+++ b/steal.production.js
@@ -4,4 +4,4 @@
  *  Copyright (c) 2015 Bitovi; Licensed MIT
  */
 !function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){var d=a("../lib/decorators/unhandledRejection"),e=d(a("../lib/Promise"));b.exports="undefined"!=typeof global?global.Promise=e:"undefined"!=typeof self?self.Promise=e:e},{"../lib/Promise":2,"../lib/decorators/unhandledRejection":4}],2:[function(b,c,d){!function(a){"use strict";a(function(a){var b=a("./makePromise"),c=a("./Scheduler"),d=a("./env").asap;return b({scheduler:new c(d)})})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Scheduler":3,"./env":5,"./makePromise":7}],3:[function(b,c,d){!function(a){"use strict";a(function(){function a(a){this._async=a,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var b=this;this.drain=function(){b._drain()}}return a.prototype.enqueue=function(a){this._queue[this._queueLen++]=a,this.run()},a.prototype.afterQueue=function(a){this._afterQueue[this._afterQueueLen++]=a,this.run()},a.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},a.prototype._drain=function(){for(var a=0;a<this._queueLen;++a)this._queue[a].run(),this._queue[a]=void 0;for(this._queueLen=0,this._running=!1,a=0;a<this._afterQueueLen;++a)this._afterQueue[a].run(),this._afterQueue[a]=void 0;this._afterQueueLen=0},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c,d){!function(a){"use strict";a(function(a){function b(a){throw a}function c(){}var d=a("../env").setTimer,e=a("../format");return function(a){function f(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+e.formatError(a.value)))}function g(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c,d){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c,d){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c,d){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m<d.length&&!i.resolved;++m)g=d[m],void 0!==g||m in d?l(d,h,m,g,i):--j;return 0===j&&i.become(new y(k)),new b(t,i)}function l(a,b,c,d,e){if(J(d)){var f=r(d),g=f.state();0===g?f.fold(b,c,void 0,e):g>0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;d<a.length;++d)n(q(a[d]),c)}function n(a,b){if(a!==b){var c=a.state();0===c?a.visit(a,void 0,a._unreport):0>c&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c<a.length;++c)if(d=a[c],void 0!==d||c in a){if(e=q(d),0!==e.state()){f.become(e),m(a,c+1,e);break}e.visit(f,f.resolve,f.reject)}return new b(t,f)}function q(a){return I(a)?a._handler.join():J(a)?s(a):new y(a)}function r(a){return I(a)?a._handler.join():s(a)}function s(a){try{var b=a.then;return"function"==typeof b?new x(b,a):new y(a)}catch(c){return new z(c)}}function t(){}function u(){}function v(a,c){b.createContext(this,c),this.consumers=void 0,this.receiver=a,this.handler=void 0,this.resolved=!1}function w(a){this.handler=a}function x(a,b){v.call(this),V.enqueue(new F(a,b,this))}function y(a){b.createContext(this),this.value=a}function z(a){b.createContext(this),this.id=++Z,this.value=a,this.handled=!1,this.reported=!1,this._report()}function A(a,b){this.rejection=a,this.context=b}function B(a){this.rejection=a}function C(){return new z(new TypeError("Promise cycle"))}function D(a,b){this.continuation=a,this.handler=b}function E(a,b){this.handler=b,this.value=a}function F(a,b,c){this._then=a,this.thenable=b,this.resolver=c}function G(a,b,c,d,e){try{a.call(b,c,d,e)}catch(f){d(f)}}function H(a,b,c,d){this.f=a,this.z=b,this.c=c,this.to=d,this.resolver=Y,this.receiver=this}function I(a){return a instanceof b}function J(a){return("object"==typeof a||"function"==typeof a)&&null!==a}function K(a,c,d,e){return"function"!=typeof a?e.become(c):(b.enterContext(c),O(a,c.value,d,e),void b.exitContext())}function L(a,c,d,e,f){return"function"!=typeof a?f.become(d):(b.enterContext(d),P(a,c,d.value,e,f),void b.exitContext())}function M(a,c,d,e,f){return"function"!=typeof a?f.notify(c):(b.enterContext(d),Q(a,c,e,f),void b.exitContext())}function N(a,b,c){try{return a(b,c)}catch(d){return e(d)}}function O(a,b,c,d){try{d.become(q(a.call(c,b)))}catch(e){d.become(new z(e))}}function P(a,b,c,d,e){try{a.call(d,b,c,e)}catch(f){e.become(new z(f))}}function Q(a,b,c,d){try{d.notify(a.call(c,b))}catch(e){d.notify(e)}}function R(a,b){b.prototype=X(a.prototype),b.prototype.constructor=b}function S(a,b){return b}function T(){}function U(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.emit?function(a,b){return"unhandledRejection"===a?process.emit(a,b.value,b):process.emit(a,b)}:"undefined"!=typeof self&&"function"==typeof CustomEvent?function(a,b,c){var d=!1;try{var e=new c("unhandledRejection");d=e instanceof c}catch(f){}return d?function(a,d){var e=new c(a,{detail:{reason:d.value,key:d},bubbles:!1,cancelable:!0});return!b.dispatchEvent(e)}:a}(T,self,CustomEvent):T}var V=a.scheduler,W=U(),X=Object.create||function(a){function b(){}return b.prototype=a,new b};b.resolve=d,b.reject=e,b.never=f,b._defer=g,b._handler=q,b.prototype.then=function(a,b,c){var d=this._handler,e=d.join().state();if("function"!=typeof a&&e>0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;c<a.length;++c)b.when(a[c])},v.prototype.become=function(a){this.resolved||(this.resolved=!0,this.handler=a,void 0!==this.consumers&&V.enqueue(this),void 0!==this.context&&a._report(this.context))},v.prototype.when=function(a){this.resolved?V.enqueue(new D(a,this.handler)):void 0===this.consumers?this.consumers=[a]:this.consumers.push(a)},v.prototype.notify=function(a){this.resolved||V.enqueue(new E(a,this))},v.prototype.fail=function(a){var b="undefined"==typeof a?this.context:a;this.resolved&&this.handler.join().fail(b)},v.prototype._report=function(a){this.resolved&&this.handler.join()._report(a)},v.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},R(t,w),w.prototype.when=function(a){V.enqueue(new D(a,this))},w.prototype._report=function(a){this.join()._report(a)},w.prototype._unreport=function(){this.join()._unreport()},R(v,x),R(t,y),y.prototype._state=1,y.prototype.fold=function(a,b,c,d){L(a,b,this,c,d)},y.prototype.when=function(a){K(a.fulfilled,this,a.receiver,a.resolver)};var Z=0;R(t,z),z.prototype._state=-1,z.prototype.fold=function(a,b,c,d){d.become(this)},z.prototype.when=function(a){"function"==typeof a.rejected&&this._unreport(),K(a.rejected,this,a.receiver,a.resolver)},z.prototype._report=function(a){V.afterQueue(new A(this,a))},z.prototype._unreport=function(){this.handled||(this.handled=!0,V.afterQueue(new B(this)))},z.prototype.fail=function(a){this.reported=!0,W("unhandledRejection",this),b.onFatalRejection(this,void 0===a?this.context:a)},A.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,W("unhandledRejection",this.rejection)||b.onPotentiallyUnhandledRejection(this.rejection,this.context))},B.prototype.run=function(){this.rejection.reported&&(W("rejectionHandled",this.rejection)||b.onPotentiallyUnhandledRejectionHandled(this.rejection))},b.createContext=b.enterContext=b.exitContext=b.onPotentiallyUnhandledRejection=b.onPotentiallyUnhandledRejectionHandled=b.onFatalRejection=T;var $=new t,_=new b(t,$);return D.prototype.run=function(){this.handler.join().when(this.continuation)},E.prototype.run=function(){var a=this.handler.consumers;if(void 0!==a)for(var b,c=0;c<a.length;++c)b=a[c],M(b.progress,this.value,this.handler,b.receiver,b.resolver)},F.prototype.run=function(){function a(a){d.resolve(a)}function b(a){d.reject(a)}function c(a){d.notify(a)}var d=this.resolver;G(this._then,this.thenable,a,b,c)},H.prototype.fulfilled=function(a){this.f.call(this.c,this.z,a,this.to)},H.prototype.rejected=function(a){this.to.reject(a)},H.prototype.progress=function(a){this.to.notify(a)},b}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}]},{},[1])(1)}),function(__global){function __eval(__source,__global,__load){try{eval('(function() { var __moduleName = "'+(__load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(__load.name||load.address)+"\n	"+e.message),e}}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a,d){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(d){return"loading"==b.status?A.resolve(a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:d})).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(c){if("loading"==b.status){if(void 0===c)return b.address=b.address||"<Anonymous Module "+ ++D+">",b.isDeclarative=!0,a.loaderObj.transpile(b).then(function(a){var c=__global.System,d=c.register;c.register=function(a,c,d){"string"!=typeof a&&(d=c,c=a),b.declare=d,b.depsList=c},__eval(a,__global,b),c.register=d});if("object"!=typeof c)throw TypeError("Invalid instantiate return value");b.depsList=c.deps||[],b.execute=c.execute,b.isDeclarative=!1}}).then(function(){if("loading"==b.status){b.dependencies=[];for(var d=b.depsList,e=[],f=0,g=d.length;g>f;f++)(function(d,f){e.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[f]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,g=c.length;g>e;e++)i(c[e],a)}))})(d[f],f);return A.all(e)}}).then(function(){if("loading"==b.status){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)}}):void 0})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c,g){var i=b.loader,j=b.moduleName,k=b.step;if(i.modules[j])throw new TypeError('"'+j+'" already exists in the module table');for(var l,m=0,n=i.loads.length;n>m;m++)if(i.loads[m].name==j)return l=i.loads[m],"translate"!=k||l.source||(l.address=b.moduleAddress,f(i,l,A.resolve(b.moduleSource))),l.linkSets[0].done.then(function(){c(l)});var o=a(j);o.metadata=b.moduleMetadata;var p=h(i,o);i.loads.push(o),c(p.done),"locate"==k?d(i,o):"fetch"==k?e(i,o,A.resolve(b.moduleAddress)):(o.address=b.moduleAddress,f(i,o,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"<unknown>")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"<unknown>")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g<a.dependencies.length;g++)if(f.name==a.dependencies[g].value){var h=a.groupIndex+(f.isDeclarative!=a.isDeclarative);if(void 0===f.groupIndex||f.groupIndex<h){if(void 0!==f.groupIndex&&(c[f.groupIndex].splice(B.call(c[f.groupIndex],f),1),0==c[f.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");f.groupIndex=h}n(f,b,c)}}}function o(a,b,c){try{var d=b.execute()}catch(e){return void c(b,e)}return d&&d instanceof y?d:void c(b,new TypeError("Execution must define a Module instance"))}function p(a,b){var c=a.loader;if(a.loads.length){var d=[],e=a.loads[0];e.groupIndex=0,n(e,a.loads,d);for(var f=e.isDeclarative==d.length%2,g=d.length-1;g>=0;g--){for(var h=d[g],i=0;i<h.length;i++){var j=h[i];if(f)r(j,a.loads,c);else{var k=o(a,j,b);if(!k)return;j.module={name:j.name,module:k},j.status="linked"}m(c,j)}f=!f}}}function q(a,b){var c=b.moduleRecords;return c[a]||(c[a]={name:a,dependencies:[],module:new y,importers:[]})}function r(a,b,c){if(!a.module){var d=a.module=q(a.name,c),e=a.module.module,f=a.declare.call(__global,function(a,b){d.locked=!0,e[a]=b;for(var c=0,f=d.importers.length;f>c;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;k<b.length;k++)b[k].name==i&&(b[k].module?j=q(i,c):(r(b[k],b,c),j=b[k].module));j.importers?(d.dependencies.push(j),j.importers.push(d)):d.dependencies.push(null),d.setters[g]&&d.setters[g](j.module)}a.status="linked"}}function s(a,b){return u(b.module,[],a),b.module.module}function t(a){try{a.execute.call(__global)}catch(b){return b}}function u(a,b,c){var d=v(a,b,c);if(d)throw d}function v(a,b,c){if(!a.evaluated&&a.dependencies){b.push(a);for(var d,e=a.dependencies,f=0,g=e.length;g>f;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a,c){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a,b,c){return a},locate:function(a){return a.name},fetch:function(a){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(a){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a,b){return a.newModule({"default":f[b],__useDefault:!0})}function c(a,b){var c=this.traceurOptions||{};c.modules="instantiate",c.script=!1,c.sourceMaps="inline",c.filename=a.address,c.inputSourceMap=a.metadata.sourceMap,c.moduleName=!1;var e=new b.Compiler(c),f=d(a.source,e,c.filename);return f+="!eval"}function d(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function e(a,b){var c=this.babelOptions||{};c.modules="system",c.sourceMap="inline",c.filename=a.address,c.code=!0,c.ast=!1,c.blacklist||(c.blacklist=["react"]);var d=b.transform(a.source,c).code;return d+"\n//# sourceURL="+a.address+"!eval"}var f=__global;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){var d=this;return d.transpilerHasRun||(f.traceur&&!d.has("traceur")&&d.set("traceur",b(d,"traceur")),f.babel&&!d.has("babel")&&d.set("babel",b(d,"babel")),d.transpilerHasRun=!0),d["import"](d.transpiler).then(function(b){return b.__useDefault&&(b=b["default"]),'var __moduleAddress = "'+a.address+'";'+(b.Compiler?c:e).call(d,a,b)})},a.prototype.instantiate=function(a){var c=this;return Promise.resolve(c.normalize(c.transpiler)).then(function(d){return a.name===d?{deps:[],execute:function(){var d=f.System,e=f.Reflect.Loader;return __eval("(function(require,exports,module){"+a.source+"})();",f,a),f.System=d,f.Reflect.Loader=e,b(c,a.name)}}:void 0})}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return i&&(d=d.replace(/\\/g,"/")),d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b<a.length;b++){var c=a[b];if("module"==c.type){var d=c.innerHTML.substr(1);__global.System.module(d)["catch"](function(a){setTimeout(function(){throw a})})}}}var f,g="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,h="undefined"!=typeof window&&!g,i="undefined"!=typeof process&&!!process.platform.match(/^win/),j=__global.Promise||require("when/es6-shim/Promise");if("undefined"!=typeof XMLHttpRequest)f=function(a,b,c){function d(){b(f.responseText)}function e(){c(f.statusText+": "+a||"XHR error")}var f=new XMLHttpRequest,g=!0,h=!1;if(!("withCredentials"in f)){var i=/^(\w+:)?\/\/([^\/]+)/.exec(a);i&&(g=i[2]===window.location.host,i[1]&&(g&=i[1]===window.location.protocol))}g||"undefined"==typeof XDomainRequest||(f=new XDomainRequest,f.onload=d,f.onerror=e,f.ontimeout=e,f.onprogress=function(){},f.timeout=0,h=!0),f.onreadystatechange=function(){4===f.readyState&&(200===f.status||0==f.status&&f.responseText?d():e())},f.open("GET",a,!0),h&&setTimeout(function(){f.send()},0),f.send(null)};else{if("undefined"==typeof require)throw new TypeError("No environment fetch API available.");var k;f=function(a,b,c){if("file:"!=a.substr(0,5))throw"Only file URLs of the form file: allowed running in Node.";return k=k||require("fs"),a=a.substr(5),i&&(a=a.replace(/\//g,"\\")),k.readFile(a,function(a,d){return a?c(a):void b(d+"")})}}var l=function(a){function b(b){if(a.call(this,b||{}),"undefined"!=typeof location&&location.href){var c=__global.location.href.split("#")[0].split("?")[0];this.baseURL=c.substring(0,c.lastIndexOf("/")+1)}else{if("undefined"==typeof process||!process.cwd)throw new TypeError("No environment baseURL");this.baseURL="file:"+process.cwd()+"/",i&&(this.baseURL=this.baseURL.replace(/\\/g,"/"))}this.paths={"*":"*.js"}}return b.__proto__=null!==a?a:Function.prototype,b.prototype=$__Object$create(null!==a?a.prototype:null),$__Object$defineProperty(b.prototype,"constructor",{value:b}),$__Object$defineProperty(b.prototype,"global",{get:function(){return h?window:g?self:__global},enumerable:!1}),$__Object$defineProperty(b.prototype,"strict",{get:function(){return!0},enumerable:!1}),$__Object$defineProperty(b.prototype,"normalize",{value:function(a,b,c){if("string"!=typeof a)throw new TypeError("Module name must be a string");var d=a.split("/");if(0==d.length)throw new TypeError("No module name provided");var e=0,f=!1,g=0;if("."==d[0]){if(e++,e==d.length)throw new TypeError('Illegal module name "'+a+'"');f=!0}else{for(;".."==d[e];)if(e++,e==d.length)throw new TypeError('Illegal module name "'+a+'"');e&&(f=!0),g=e}for(var h=e;h<d.length;h++){var i=d[h];if(""==i||"."==i||".."==i)throw new TypeError('Illegal module name "'+a+'"')}if(!f)return a;{var j=[],k=(b||"").split("/");k.length-1-g}return j=j.concat(k.splice(0,k.length-1-g)),j=j.concat(d.splice(e,d.length-e)),j.join("/")},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"locate",{value:function(a){var b,d=a.name,e="";for(var f in this.paths){var g=f.split("*");if(g.length>2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global),function($__global){$__global.upgradeSystemLoader=function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(b,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return p&&(c=c.replace(/\\/g,"/")),c=a(c||""),b=a(b||""),c&&b?(c.protocol||b.protocol)+(c.protocol||c.authority?c.authority:b.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(b.authority&&!b.pathname?"/":"")+b.pathname.slice(0,b.pathname.lastIndexOf("/")+1)+c.pathname:b.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||b.search)+c.hash:null}function c(a){function d(a,b){b._extensions=[];for(var c=0,d=a.length;d>c;c++)a[c](b)}var e=a["import"];a["import"]=function(a,b){return e.call(this,a,b).then(function(a){return a.__useDefault?a["default"]:a})},a.set("@empty",a.newModule({})),"undefined"!=typeof require&&(a._nodeRequire=require),a.config=function(a){for(var b in a){var c=a[b];if("object"!=typeof c||c instanceof Array)this[b]=c;else{this[b]=this[b]||{};for(var d in c)this[b][d]=c[d]}}};var f;if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)f="file:"+process.cwd()+"/",p&&(f=f.replace(/\\/g,"/"));else if("undefined"==typeof window)f=a.global.location.href;else if(f=document.baseURI,!f){var g=document.getElementsByTagName("base");f=g[0]&&g[0].href||window.location.href}var h,i=a.locate;a.locate=function(a){return this.baseURL!=h&&(h=b(f,this.baseURL),"/"!=h.substr(h.length-1,1)&&(h+="/"),
-this.baseURL=h),Promise.resolve(i.call(this,a))},a._extensions=a._extensions||[],a._extensions.push(c),a.clone=function(){var a=this,b=new LoaderPolyfill(q);return b.baseURL=a.baseURL,b.paths={"*":"*.js"},d(a._extensions,b),b}}function d(a){function b(a,b){var c=a.meta&&a.meta[b.name];if(c)for(var d in c)b.metadata[d]=b.metadata[d]||c[d]}var c=/^(\s*\/\*.*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/,e=/\/\*.*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;a.meta={},a._extensions=a._extensions||[],a._extensions.push(d);var f=a.locate;a.locate=function(a){return b(this,a),f.call(this,a)};var g=a.translate;a.translate=function(a){var d=a.source.match(c);if(d)for(var f=d[0].match(e),h=0;h<f.length;h++){var i=f[h].length,j=f[h].substr(0,1);if(";"==f[h].substr(i-1,1)&&i--,'"'==j||"'"==j){var k=f[h].substr(1,f[h].length-3),l=k.substr(0,k.indexOf(" "));if(l){var m=k.substr(l.length+1,k.length-l.length-1);a.metadata[l]instanceof Array?a.metadata[l].push(m):a.metadata[l]||(a.metadata[l]=m)}}}return b(this,a),g.call(this,a)}}function e(a){function c(a){var c,d=a.source.lastIndexOf("\n");-1!=d&&"//# sourceMappingURL="==a.source.substr(d+1,21)&&(c=a.source.substr(d+22,a.source.length-d-22),"undefined"!=typeof b&&(c=b(a.address,c))),__eval(a.source,a.address,c)}function d(a){for(var b=[],c=0,d=a.length;d>c;c++)-1==o.call(b,a[c])&&b.push(a[c]);return b}function f(b,c,d,e){"string"!=typeof b&&(e=d,d=c,c=b,b=null),r=!0;var f;if(f="boolean"==typeof d?{declarative:!1,deps:c,execute:e,executingRequire:d}:{declarative:!0,deps:c,declare:d},b)f.name=b,b in a.defined||(a.defined[b]=f);else if(f.declarative){if(q)throw new TypeError("Multiple anonymous System.register calls in the same module file.");q=f}}function g(a){if(!a.register){a.register=f,a.defined||(a.defined={});var b=a.onScriptLoad;a.onScriptLoad=function(a){b(a),q&&(a.metadata.entry=q),r&&(a.metadata.format=a.metadata.format||"register",a.metadata.registered=!0)}}}function h(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==o.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=a.normalizedDeps.length;e>d;d++){var f=a.normalizedDeps[d],g=b.defined[f];if(g&&!g.evaluated){var i=a.groupIndex+(g.declarative!=a.declarative);if(void 0===g.groupIndex||g.groupIndex<i){if(void 0!==g.groupIndex&&(c[g.groupIndex].splice(o.call(c[g.groupIndex],g),1),0==c[g.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");g.groupIndex=i}h(g,b,c)}}}}function i(a,b){var c=b.defined[a];if(!c.module){c.groupIndex=0;var d=[];h(c,b,d);for(var e=!!c.declarative==d.length%2,f=d.length-1;f>=0;f--){for(var g=d[f],i=0;i<g.length;i++){var j=g[i];e?k(j,b):m(j,b)}e=!e}}}function j(a){return s[a]||(s[a]={name:a,dependencies:[],exports:{},importers:[]})}function k(a,b){if(!a.module){var c=a.module=j(a.name),d=a.module.exports,e=a.declare.call(b.global,function(a,b){c.locked=!0,d[a]=b;for(var e=0,f=c.importers.length;f>e;e++){var g=c.importers[e];if(!g.locked){var h=o.call(g.dependencies,c);g.setters[h](d)}}return c.locked=!1,b});if(c.setters=e.setters,c.execute=e.execute,!c.setters||!c.execute)throw new TypeError("Invalid System.register form for "+a.name);for(var f=0,g=a.normalizedDeps.length;g>f;f++){var h,i=a.normalizedDeps[f],l=b.defined[i],m=s[i];m?h=m.exports:l&&!l.declarative?h=l.module.exports&&l.module.exports.__esModule?l.module.exports:{"default":l.module.exports,__useDefault:!0}:l?(k(l,b),m=l.module,h=m.exports):h=b.get(i),m&&m.importers?(m.importers.push(c),c.dependencies.push(m)):c.dependencies.push(null),c.setters[f]&&c.setters[f](h)}}}function l(a,b){var c,d=b.defined[a];if(d)d.declarative?p(a,[],b):d.evaluated||m(d,b),c=d.module.exports;else if(c=b.get(a),!c)throw new Error("Unable to load dependency "+a+".");return(!d||d.declarative)&&c&&c.__useDefault?c["default"]:c}function m(a,b){if(!a.module){var c={},d=a.module={exports:c,id:a.name};if(!a.executingRequire)for(var e=0,f=a.normalizedDeps.length;f>e;e++){var g=a.normalizedDeps[e],h=b.defined[g];h&&m(h,b)}a.evaluated=!0;var i=a.execute.call(b.global,function(c){for(var d=0,e=a.deps.length;e>d;d++)if(a.deps[d]==c)return l(a.normalizedDeps[d],b);throw new TypeError("Module "+c+" not declared as a dependency.")},c,d);i&&(d.exports=i)}}function p(a,b,c){var d=c.defined[a];if(d&&!d.evaluated&&d.declarative){b.push(a);for(var e=0,f=d.normalizedDeps.length;f>e;e++){var g=d.normalizedDeps[e];-1==o.call(b,g)&&(c.defined[g]?p(g,b,c):c.get(g))}d.evaluated||(d.evaluated=!0,d.module.execute.call(c.global))}}"undefined"==typeof o&&(o=Array.prototype.indexOf),("undefined"==typeof __eval||"undefined"!=typeof document&&!document.addEventListener)&&(__eval=0||eval),a._extensions=a._extensions||[],a._extensions.push(e);a.__exec=c;var q,r;g(a);var s={},t=/System\.register/,u=a.fetch;a.fetch=function(a){var b=this;return g(b),b.defined[a.name]?(a.metadata.format="defined",""):(q=null,r=!1,u.call(b,a))};var v=a.translate;a.translate=function(a){return this.register=f,this.__exec=c,a.metadata.deps=a.metadata.deps||[],Promise.resolve(v.call(this,a)).then(function(b){return(a.metadata.init||a.metadata.exports)&&(a.metadata.format=a.metadata.format||"global"),("register"==a.metadata.format||!a.metadata.format&&a.source.match(t))&&(a.metadata.format="register"),b})};var w=a.instantiate;a.instantiate=function(a){var b,c=this;if(c.defined[a.name])b=c.defined[a.name],b.deps=b.deps.concat(a.metadata.deps);else if(a.metadata.entry)b=a.metadata.entry;else if(a.metadata.execute)b={declarative:!1,deps:a.metadata.deps||[],execute:a.metadata.execute,executingRequire:a.metadata.executingRequire};else if("register"==a.metadata.format){q=null,r=!1;var e=c.global.System;if(c.global.System=c,c.__exec(a),c.global.System=e,q&&(b=q),!b&&n.defined[a.name]&&(b=n.defined[a.name]),!r&&!a.metadata.registered)throw new TypeError(a.name+" detected as System.register but didn't execute.")}if(!b&&"es6"!=a.metadata.format)return{deps:a.metadata.deps,execute:function(){return c.newModule({})}};if(!b)return w.call(this,a);c.defined[a.name]=b,b.deps=d(b.deps),b.name=a.name;for(var f=[],g=0,h=b.deps.length;h>g;g++)f.push(Promise.resolve(c.normalize(b.deps[g],a.name)));return Promise.all(f).then(function(d){return b.normalizedDeps=d,{deps:b.deps,execute:function(){i(a.name,c),p(a.name,[],c),c.defined[a.name]=void 0;var d=b.module.exports;return(!d||!b.declarative&&d.__esModule!==!0)&&(d={"default":d,__useDefault:!0}),c.newModule(d)}}})}}function f(a){function b(a,b,c){if(a.meta[b]={format:"global"},j&&!a.paths[b])try{a.paths[b]=require.resolve(c||b)}catch(d){}}a._extensions.push(f);var c,d,e=/(^\s*|[}\);\n]\s*)(import\s+(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s+from\s+['"]|\{)|export\s+\*\s+from\s+["']|export\s+(\{|default|function|class|var|const|let|async\s+function))/,g=/\$traceurRuntime\s*\./,h=/babelHelpers\s*\./,i=!0,j="undefined"!=typeof process&&"undefined"!=typeof require&&require.resolve,k=a.locate;a.locate=function(a){var c=this;return i&&("traceur"==c.transpiler?(b(c,"traceur","traceur/bin/traceur.js"),c.meta.traceur.exports="traceur",b(c,"traceur-runtime","traceur/bin/traceur-runtime.js")):"babel"==c.transpiler&&(b(c,"babel","babel-core/browser.js"),b(c,"babel-runtime","babel-core/external-helpers.js")),i=!1),k.call(c,a)};var l=a.translate;a.translate=function(a){var b=this;return l.call(b,a).then(function(f){if("es6"==a.metadata.format||!a.metadata.format&&f.match(e))return a.metadata.format="es6",f;if("register"==a.metadata.format){if(!b.global.$traceurRuntime&&a.source.match(g))return b["import"]("traceur-runtime").then(function(){return f});if(!b.global.babelHelpers&&a.source.match(h))return b["import"]("babel/external-helpers").then(function(){return f})}return"traceur"==b.transpiler?Promise.all([c||(c=b.normalize(b.transpiler)),d||(d=b.normalize(b.transpiler+"-runtime"))]).then(function(b){return a.name==b[0]||a.name==b[1]?"(function() { var curSystem = System; "+f+"\nSystem = curSystem; })();":f}):f})}}function g(a){function b(a,b){for(var c=a.split(".");c.length;)b=b[c.shift()];return b}function c(a){if(!a.has("@@global-helpers")){var c,d,e=a.global.hasOwnProperty,f={};a.set("@@global-helpers",a.newModule({prepareGlobal:function(b,g){for(var h=0;h<g.length;h++){var i=f[g[h]];if(i)for(var j in i)a.global[j]=i[j]}c={},d=["indexedDB","sessionStorage","localStorage","clipboardData","frames","webkitStorageInfo","toolbar","statusbar","scrollbars","personalbar","menubar","locationbar","webkitIndexedDB","screenTop","screenLeft"];for(var k in a.global)if(-1==o.call(d,k)&&(!e||a.global.hasOwnProperty(k)))try{c[k]=a.global[k]}catch(l){d.push(k)}},retrieveGlobal:function(g,h,i){var j,k,l={};if(i)j=i.call(a.global);else if(h){var m=h.split(".")[0];j=b(h,a.global),l[m]=a.global[m]}else for(var n in a.global)-1==o.call(d,n)&&(e&&!a.global.hasOwnProperty(n)||n==a.global||c[n]==a.global[n]||(l[n]=a.global[n],j?j!==a.global[n]&&(k=!0):void 0===j&&(j=a.global[n])));return f[g]=l,k?l:j}}))}}a._extensions.push(g),c(a);var d=a.instantiate;a.instantiate=function(a){var b=this;c(b);var e=a.metadata.exports;return a.metadata.format||(a.metadata.format="global"),"global"==a.metadata.format&&(a.metadata.execute=function(c,d,f){b.get("@@global-helpers").prepareGlobal(f.id,a.metadata.deps),e&&(a.source+='\nthis["'+e+'"] = '+e+";");var g=b.global.define,c=b.global.require;return b.global.define=void 0,b.global.module=void 0,b.global.exports=void 0,b.__exec(a),b.global.require=c,b.global.define=g,b.get("@@global-helpers").retrieveGlobal(f.id,e,a.metadata.init)}),d.call(b,a)}}function h(a){function b(a){d.lastIndex=0;var b=[];a.length/a.split("\n").length<200&&(a=a.replace(e,""));for(var c;c=d.exec(a);)b.push(c[1].substr(1,c[1].length-2));return b}a._extensions.push(h);var c=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.]|module\.)(exports\s*\[['"]|\exports\s*\.)|(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])module\.exports\s*\=/,d=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g,e=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,f=a.instantiate;a.instantiate=function(e){return e.metadata.format||(c.lastIndex=0,d.lastIndex=0,(d.exec(e.source)||c.exec(e.source))&&(e.metadata.format="cjs")),"cjs"==e.metadata.format&&(e.metadata.deps=e.metadata.deps?e.metadata.deps.concat(b(e.source)):b(e.source),e.metadata.executingRequire=!0,e.metadata.execute=function(b,c,d){var f=(e.address||"").split("/");f.pop(),f=f.join("/"),n._nodeRequire&&(f=f.substr(5));var g=(a.global._g={global:a.global,exports:c,module:d,require:b,__filename:n._nodeRequire?e.address.substr(5):e.address,__dirname:f},a.global.define);a.global.define=void 0;var h={name:e.name,source:"(function() {\n(function(global, exports, module, require, __filename, __dirname){\n"+e.source+"\n}).call(_g.exports, _g.global, _g.exports, _g.module, _g.require, _g.__filename, _g.__dirname);})();",address:e.address};a.__exec(h),a.global.define=g,a.global._g=void 0}),f.call(this,e)}}function i(a){function b(a,b){a=a.replace(l,"");var c=a.match(p),d=(c[1].split(",")[b]||"require").replace(q,""),e=r[d]||(r[d]=new RegExp(m+d+n,"g"));e.lastIndex=0;for(var f,g=[];f=e.exec(a);)g.push(f[2]||f[3]);return g}function c(a,b,d,e){var f=this;if("object"==typeof a&&!(a instanceof Array))return c.apply(null,Array.prototype.splice.call(arguments,1,arguments.length-1));if(!(a instanceof Array)){if("string"==typeof a){var g=f.get(a);return g.__useDefault?g["default"]:g}throw new TypeError("Invalid require")}Promise.all(a.map(function(a){return f["import"](a,e)})).then(function(a){b&&b.apply(null,a)},d)}function d(a,b,d){return function(e,f,g){return"string"==typeof e?b(e):c.call(d,e,f,g,{name:a})}}function e(a){function c(c,e,f){"string"!=typeof c&&(f=e,e=c,c=null),e instanceof Array||(f=e,e=["require","exports","module"]),"function"!=typeof f&&(f=function(a){return function(){return a}}(f)),void 0===e[e.length-1]&&e.pop();var h,i,j;if(-1!=(h=o.call(e,"require"))){e.splice(h,1);var k=f.toString();e=e.concat(b(k,h))}-1!=(i=o.call(e,"exports"))&&e.splice(i,1),-1!=(j=o.call(e,"module"))&&e.splice(j,1);var l={deps:e,execute:function(b,c,k){for(var l=[],m=0;m<e.length;m++)l.push(b(e[m]));k.uri=a.baseURL+k.id,k.config=function(){},-1!=j&&l.splice(j,0,k),-1!=i&&l.splice(i,0,c),-1!=h&&l.splice(h,0,d(k.id,b,a));var n=f.apply(g,l);return"undefined"==typeof n&&k&&(n=k.exports),"undefined"!=typeof n?n:void 0}};if(c)s=0!=e.length||s||t?null:l,t=!0,a.register(c,l.deps,!1,l.execute);else{if(s)throw new TypeError("Multiple defines for anonymous module");s=l}}var e=a.onScriptLoad;a.onScriptLoad=function(a){e(a),(s||t)&&(a.metadata.format="defined",a.metadata.registered=!0),s&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(s.deps):s.deps,a.metadata.execute=s.execute)},c.amd={},a.amdDefine=c}function f(a){a.amdDefine||e(a),s=null,t=null;var b=a.global;u=b.module,v=b.exports,w=b.define,b.module=void 0,b.exports=void 0,b.define&&b.define===a.amdDefine||(b.define=a.amdDefine)}function h(a){var b=a.global;b.define=w,b.module=u,b.exports=v}var j="undefined"!=typeof module&&module.exports;a._extensions.push(i);var k=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])define\s*\(\s*("[^"]+"\s*,\s*|'[^']+'\s*,\s*)?\s*(\[(\s*(("[^"]+"|'[^']+')\s*,|\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*(\s*("[^"]+"|'[^']+')\s*,?)?(\s*(\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*\s*\]|function\s*|{|[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*\))/,l=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,m="(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])",n="\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)",p=/\(([^\)]*)\)/,q=/^\s+|\s+$/g,r={};a.amdRequire=function(){return c.apply(this,arguments)};var s,t,u,v,w;if(e(a),a.scriptLoader){var x=a.fetch;a.fetch=function(a){return f(this),x.call(this,a)}}var y=a.instantiate;a.instantiate=function(a){var b=this;if("amd"==a.metadata.format||!a.metadata.format&&a.source.match(k)){if(a.metadata.format="amd",b.execute!==!1&&(f(b),b.__exec(a),h(b),!s&&!t&&!j))throw new TypeError("AMD module "+a.name+" did not define");s&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(s.deps):s.deps,a.metadata.execute=s.execute)}return y.call(b,a)}}function j(a){function b(a,b){return a.length<b.length?!1:a.substr(0,b.length)!=b?!1:a[b.length]&&"/"!=a[b.length]?!1:!0}function c(a){for(var b=1,c=0,d=a.length;d>c;c++)"/"===a[c]&&b++;return b}function d(a,b,c){return c+a.substr(b)}function e(a,e,f){var g,h,i,j,k=0,l=0;if(e)for(var m in f.map){var n=f.map[m];if("object"==typeof n&&b(e,m)&&(i=c(m),!(l>=i)))for(var o in n)b(a,o)&&(j=c(o),k>=j||(g=o,k=j,h=m,l=i))}if(g)return d(a,g.length,f.map[h][g]);for(var m in f.map){var n=f.map[m];if("string"==typeof n&&b(a,m)){var j=c(m);k>=j||(g=m,k=j)}}return g?d(a,g.length,f.map[g]):a}a.map=a.map||{},a._extensions.push(j);var f=a.normalize;a.normalize=function(a,b,c){var d=this;d.map||(d.map={});var g=!1;return"/"==a.substr(a.length-1,1)&&(g=!0,a+="#"),Promise.resolve(f.call(d,a,b,c)).then(function(a){if(a=e(a,b,d),g){var c=a.split("/");c.pop();var f=c.pop();c.push(f),c.push(f),a=c.join("/")}return a})}}function k(a){"undefined"==typeof o&&(o=Array.prototype.indexOf),a._extensions.push(k);var b=a.normalize;a.normalize=function(a,c,d){var e,f=this;return c&&-1!=(e=c.indexOf("!"))&&(c=c.substr(0,e)),Promise.resolve(b.call(f,a,c,d)).then(function(a){var b=a.lastIndexOf("!");if(-1!=b){var e=a.substr(0,b),g=a.substr(b+1)||e.substr(e.lastIndexOf(".")+1);return new Promise(function(a){a(f.normalize(g,c,d))}).then(function(a){return g=a,f.normalize(e,c,d)}).then(function(a){return a+"!"+g})}return a})};var c=a.locate;a.locate=function(a){var b=this,d=a.name;if(this.defined&&this.defined[d])return c.call(this,a);var e=d.lastIndexOf("!");if(-1!=e){var f=d.substr(e+1);a.name=d.substr(0,e);var g=b.pluginLoader||b;return g["import"](f).then(function(){var c=g.get(f);return c=c["default"]||c,c.build===!1&&b.pluginLoader&&(a.metadata.build=!1),a.metadata.plugin=c,a.metadata.pluginName=f,a.metadata.pluginArgument=a.name,a.metadata.buildType=c.buildType||"js",c.locate?c.locate.call(b,a):Promise.resolve(b.locate(a)).then(function(a){return a.replace(/\.js$/,"")})})}return c.call(this,a)};var d=a.fetch;a.fetch=function(a){var b=this;return a.metadata.build===!1&&b.pluginLoader?"":a.metadata.plugin&&a.metadata.plugin.fetch&&!a.metadata.pluginFetchCalled?(a.metadata.pluginFetchCalled=!0,a.metadata.plugin.fetch.call(b,a,d)):d.call(b,a)};var e=a.translate;a.translate=function(a){var b=this;return a.metadata.plugin&&a.metadata.plugin.translate?Promise.resolve(a.metadata.plugin.translate.call(b,a)).then(function(c){return"string"==typeof c&&(a.source=c),e.call(b,a)}):e.call(b,a)};var f=a.instantiate;a.instantiate=function(a){var b=this;return a.metadata.plugin&&a.metadata.plugin.instantiate?Promise.resolve(a.metadata.plugin.instantiate.call(b,a)).then(function(c){return c?c:f.call(b,a)}):a.metadata.plugin&&a.metadata.plugin.build===!1?(a.metadata.format="defined",a.metadata.deps.push(a.metadata.pluginName),a.metadata.execute=function(){return b.newModule({})},f.call(b,a)):f.call(b,a)}}function l(a){"undefined"==typeof o&&(o=Array.prototype.indexOf),a._extensions.push(l),a.bundles=a.bundles||{};var b=a.fetch;a.fetch=function(a){var c=this;if(c.trace)return b.call(this,a);c.bundles||(c.bundles={});for(var d in c.bundles)if(-1!=o.call(c.bundles[d],a.name))return Promise.resolve(c.normalize(d)).then(function(a){return c.bundles[a]=c.bundles[a]||c.bundles[d],c.meta=c.meta||{},c.meta[a]=c.meta[a]||{},c.meta[a].bundle=!0,c.load(a)}).then(function(){return""});return b.call(this,a)}}function m(a){a.depCache=a.depCache||{},a._extensions.push(m);var b=a.locate;a.locate=function(a){var c=this;c.depCache||(c.depCache={});var d=c.depCache[a.name];if(d)for(var e=0;e<d.length;e++)c.load(d[e]);return b.call(c,a)}}$__global.upgradeSystemLoader=void 0;var n,o=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},p="undefined"!=typeof process&&!!process.platform.match(/^win/);!function(){var a=$__global.System;n=$__global.System=new LoaderPolyfill(a),n.baseURL=a.baseURL,n.paths={"*":"*.js"},n.originalSystem=a}(),n.noConflict=function(){$__global.SystemJS=n,$__global.System=n.originalSystem};var q=$__global.System.originalSystem;c(n),d(n),e(n),f(n),g(n),h(n),i(n),j(n),k(n),l(n),m(n)};var $__curScript,__eval;!function(){var doEval;if(__eval=function(a,b,c){a+="\n//# sourceURL="+b+(c?"\n//# sourceMappingURL="+c:"");try{doEval(a)}catch(d){var e="Error evaluating "+b+"\n";throw d instanceof Error?d.message=e+d.message:d=e+d,d}},"undefined"!=typeof document){var head,scripts=document.getElementsByTagName("script");if($__curScript=scripts[scripts.length-1],doEval=function(a){head||(head=document.head||document.body||document.documentElement);var b=document.createElement("script");b.text=a;var c,d=window.onerror;if(window.onerror=function(a){c=a},head.appendChild(b),head.removeChild(b),window.onerror=d,c)throw c},$__global.System&&$__global.LoaderPolyfill)$__global.upgradeSystemLoader();else{var curPath=$__curScript.src,basePath=curPath.substr(0,curPath.lastIndexOf("/")+1);document.write('<script type="text/javascript" src="'+basePath+'es6-module-loader.js" data-init="upgradeSystemLoader"></script>')}}else if("undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof importScripts)if(doEval=function(source){try{eval(source)}catch(e){throw e}},$__global.System&&$__global.LoaderPolyfill)$__global.upgradeSystemLoader();else{var basePath="";try{throw new Error("Get worker base path via error stack")}catch(e){e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(a,b){basePath=b.replace(/\/[^\/]*$/,"/")})}importScripts(basePath+"es6-module-loader.js"),$__global.upgradeSystemLoader()}else{var es6ModuleLoader=require("es6-module-loader");$__global.System=es6ModuleLoader.System,$__global.Loader=es6ModuleLoader.Loader,$__global.upgradeSystemLoader(),module.exports=$__global.System;var vm=require("vm");doEval=function(a,b,c){vm.runInThisContext(a)}}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global),function(a){function b(a){function b(a){function b(){for(var b,d=[],e=0;e<arguments.length;e++)"string"==typeof arguments[e]?d.push(q(arguments[e])):b=arguments[e];"function"!=typeof b&&(b=function(a){return function(){return a}}(b)),c={deps:d,execute:function(c,e,f){for(var g=[],h=0;h<d.length;h++)g.push(c(d[h]));var i=b.apply(a.global,g);return"undefined"!=typeof i?i:void 0}}}c=null,a.global.module=void 0,a.global.exports=void 0,a.global.steal=b}var c,d=/(?:^\s*|[}{\(\);,\n\?\&]\s*)steal\s*\(\s*((?:"[^"]+"\s*,|'[^']+'\s*,\s*)*)/,e=a.instantiate;return a.instantiate=function(a){var f=this;if("steal"===a.metadata.format||!a.metadata.format&&a.source.match(d)){a.metadata.format="steal";var g=f.global.steal;if(b(f),f.__exec(a),f.global.steal=g,!c)throw"Steal module "+a.name+" did not call steal";c&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(c.deps):c.deps,a.metadata.execute=c.execute)}return e.call(f,a)},a}var c=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},d=function(a,b){var c,d;if("number"==typeof a.length&&a.length-1 in a)for(c=0,d=a.length;d>c;c++)b.call(a[c],a[c],c,a);else for(c in a)a.hasOwnProperty(c)&&b.call(a[c],a[c],c,a);return a},e=function(a,b){var c=[];return d(a,function(a,d){c[d]=b(a,d)}),c},f=function(a){return"string"==typeof a},g=function(a,b){return d(b,function(b,c){a[c]=b}),a},h=function(a){var b=a.lastIndexOf("/");return-1===b&&(b=a.lastIndexOf("\\")),-1!==b?a.substr(0,b):a},i=function(a){return a[a.length-1]},j=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null},k=function(a,b){function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return b=j(b||""),a=j(a||""),b&&a?(b.protocol||a.protocol)+(b.protocol||b.authority?b.authority:a.authority)+c(b.protocol||b.authority||"/"===b.pathname.charAt(0)?b.pathname:b.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+b.pathname:a.pathname)+(b.protocol||b.authority||b.pathname?b.search:b.search||a.search)+b.hash:null},l="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m="undefined"!=typeof window,n=!m&&!l&&"undefined"!=typeof require,o=function(a){var b=a.lastIndexOf("/");-1===b&&(b=a.lastIndexOf("\\"));var c=(-1==b?a:a.substr(b+1)).match(/^[\w-\s\.!]+/);return c?c[0]:""},p=function(a){var b=o(a),c=b.lastIndexOf(".");return-1!==c?b.substr(c+1):""},q=function(a,b){var c=a.lastIndexOf("!"),d="";if(-1!=c){var e=a.substr(0,c),f=a.substr(c+1);d="!"+f,a=e}var g=o(a),h=p(a);return"/"===a[a.length-1]?a+o(a.substr(0,a.length-1))+d:/^(\w+(?:s)?:\/\/|\.|file|\/)/.test(a)||-1!==g.indexOf(".")?"js"===h?a.substr(0,a.lastIndexOf("."))+d:a+d:a+"/"+g+d},r=function(b){function m(a){function b(a){if(("json"===a.metadata.format||!a.metadata.format)&&c.test(a.source))try{return JSON.parse(a.source)}catch(b){}}var c=/^[\s\n\r]*[\{\[]/,d=/\.json$/i,e=/\.js$/i,f="undefined"==typeof window;a._extensions.push(m);var g=a.locate;if(a.locate=function(a){return g.apply(this,arguments).then(function(b){return d.test(a.name)?b.replace(e,""):b})},f){var h=a.translate;return void(a.translate=function(a){if(d.test(a.name)){var c=b(a);if(c)return"define([], function(){\n	return "+a.source+"\n});"}return h.call(this,a)})}var i=a.instantiate;return a.instantiate=function(a){var c,d=this;return c=b(a),c&&(a.metadata.format="json",a.metadata.execute=function(){return c}),i.call(d,a)},a}b.set("@loader",b.newModule({"default":b,__useDefault:!0}));var p,r,s,t=function(){var a=arguments,c=function(){var b,c=[];d(a,function(a){f(a)?c.push(t.System["import"](q(a))):"function"==typeof a&&(b=a)});var e=Promise.all(c);return b?e.then(function(a){return b&&b.apply(null,a)}):e};return"production"===b.env?c():p.then(c,c)};t.System=b,t.parseURI=j,t.joinURIs=k,t.normalize=q;var u=function(a){a.ext={};var b=a.normalize,c=/\.(\w+)!$/;a.normalize=function(d,e,f){var g,h=d.match(c),i=d;return h&&a.ext[g=h[1]]&&(i=d+a.ext[g]),b.call(this,i,e,f)}};u(b);var v=function(a){var b=a.normalize,c=/@.+#.+/;a.normalize=function(a,d,e){var f,g,h=a.length-1;return"/"===a[h]&&(f=a.substring(0,h).lastIndexOf("/"),g=a.substring(f+1,h),c.test(g)&&(g=g.substr(g.lastIndexOf("#")+1)),a+=g),b.call(this,a,d,e)}};v(b),"undefined"!=typeof b&&m(b);var w=function(a,b){var c=a.config;a.config=function(e){var f=g({},e);d(b,function(b,c){if(b.set&&f[c]){var d=b.set.call(a,f[c],e);void 0!==d&&(a[c]=d),delete f[c]}}),c.call(this,f)}},x=function(a,b,c){a[b]||(a[b]=c)};b.configMain="@config",b.paths[b.configMain]="stealconfig.js",b.env="development",b.ext={css:"$css",less:"$less"},b.logLevel=0;var y="bundles/*.css",z="bundles/*";x(b.paths,y,"dist/bundles/*css"),x(b.paths,z,"dist/bundles/*.js");var A,B={set:function(a){var c=o(a),d=h(a);n||(b.configPath=k(location.href,a)),b.configMain=c,b.paths[c]=c,G.call(this),this.config({baseURL:(d===a?".":d)+"/"})}},C={set:function(a){this.main=a,G.call(this)}},D=function(a){return n&&!/^file:/.test(a)?("."===a[0]&&("/"===a[1]||"."===a[1]&&"/"===a[2])&&(a=require("path").join(process.cwd(),a)),a?"file:"+a:a):a},E=function(a){return{set:function(b){this[a]=D(b)}}},F=function(a){var b=a.lastIndexOf("!");return-1!==b?a.substr(b+1):void 0},G=function(){if("production"===this.env&&this.main){var a=this.main,c=this.bundlesName||"bundles/",d=c+a;x(this.meta,d,{format:"amd"});var e=F(b.configMain),f=[a,b.configMain];e&&b.set(e,b.newModule({})),this.bundles[d]=f}},H="less-2.4.0";w(b,A={env:{set:function(a){b.env=a,G.call(this)}},baseUrl:E("baseURL"),baseURL:E("baseURL"),root:E("baseURL"),config:B,configPath:B,startId:{set:function(a){C.set.call(this,q(a))}},main:C,stealURL:{set:function(a,c){b.stealURL=a;var d=a.split("?"),e=d.shift(),f=d.join("?"),g=f.split("&"),h=e.split("/"),i=h.pop(),j=h.join("/");if(A.stealPath.set.call(this,j,c),i.indexOf("steal.production")>-1&&!c.env&&(b.env="production"),g.length&&g[0].length){for(var k,l={},m=0;m<g.length;m++){k=g[m];var n=k.split("=");if(n.length>1)l[n[0]]=n.slice(1).join("=");else{t.dev&&t.dev.warn("Please use search params like ?main=main&env=production");var o=k.split(",");o[0]&&(l.startId=o[0]),o[1]&&(l.env=o[1])}}this.config(l)}}},stealPath:{set:function(a,c){a=D(a);var d=a.split("/");x(this.paths,"@dev",a+"/ext/dev.js"),x(this.paths,"$css",a+"/ext/css.js"),x(this.paths,"$less",a+"/ext/less.js"),x(this.paths,"npm",a+"/ext/npm.js"),x(this.paths,"npm-extension",a+"/ext/npm-extension.js"),x(this.paths,"npm-utils",a+"/ext/npm-utils.js"),x(this.paths,"npm-crawl",a+"/ext/npm-crawl.js"),x(this.paths,"semver",a+"/ext/semver.js"),x(this.paths,"bower",a+"/ext/bower.js"),this.paths.traceur=a+"/ext/traceur.js",this.paths["traceur-runtime"]=a+"/ext/traceur-runtime.js",this.paths.babel=a+"/ext/babel.js",this.paths["babel-runtime"]=a+"/ext/babel-runtime.js",n?b.register("less",[],!1,function(){var a=require;return a("less")}):(x(this.paths,"less",a+"/ext/"+H+".js"),c.root||c.baseUrl||c.baseURL||c.config||c.configPath||("steal"===i(d)&&(d.pop(),"bower_components"===i(d)&&(b.configMain="bower.json!bower",G.call(this),d.pop()),"node_modules"===i(d)&&(b.configMain="package.json!npm",G.call(this),d.pop())),this.config({baseURL:d.join("/")+"/"}))),b.stealPath=a}},bundle:{set:function(a){b.bundle=a}},bundlesPath:{set:function(a){return this.paths[y]=a+"/*css",this.paths[z]=a+"/*.js",a}},instantiated:{set:function(a){var b=this;d(a||{},function(a,c){b.set(c,b.newModule(a))})}}}),t.config=function(a){return"string"==typeof a?b[a]:void b.config(a)};var I=function(){var a={},b=document.getElementsByTagName("script"),e=b[b.length-1];if(e){a.stealURL=e.src,d(e.attributes,function(b){var d=c(0===b.nodeName.indexOf("data-")?b.nodeName.replace("data-",""):b.nodeName);a[d]=""===b.value?!0:b.value});var f=e.innerHTML.substr(1);/\S/.test(f)&&(a.mainSource=f)}return a};return t.startup=function(c){if(l)var d={stealURL:location.href};else if(a.document)var d=I();else var d={stealPath:__dirname};b.config(d),c&&b.config(c);return"production"==b.env?(p=b["import"](b.configMain),s=p.then(function(a){return b.main?b["import"](b.main):a})["catch"](function(a){})):("development"==b.env||"build"==b.env)&&(p=b["import"](b.configMain),r=p.then(function(){return c&&b.config(c),b["import"]("@dev")},function(a){return t.System["import"]("@dev")}),s=r.then(function(){if(!b.main||"build"===b.env)return p;var a=b.main;return"string"==typeof a&&(a=[a]),Promise.all(e(a,function(a){return b["import"](a)}))})),b.mainSource&&(s=s.then(function(){b.module(b.mainSource)})),s},t.done=function(){return s},t};if("undefined"!=typeof System&&b(System),n)require("systemjs"),a.steal=r(System),a.steal.System=System,a.steal.dev=require("./ext/dev.js"),steal.clone=r,module.exports=a.steal,a.steal.addSteal=b,require("system-json");else{var s=a.steal;a.steal=r(System),a.steal.startup(s&&"object"==typeof s&&s).then(null,function(a){throw a}),a.steal.addSteal=b}}("undefined"==typeof window?"undefined"==typeof global?this:global:window);
\ No newline at end of file
+this.baseURL=h),Promise.resolve(i.call(this,a))},a._extensions=a._extensions||[],a._extensions.push(c),a.clone=function(){var a=this,b=new LoaderPolyfill(q);return b.baseURL=a.baseURL,b.paths={"*":"*.js"},d(a._extensions,b),b}}function d(a){function b(a,b){var c=a.meta&&a.meta[b.name];if(c)for(var d in c)b.metadata[d]=b.metadata[d]||c[d]}var c=/^(\s*\/\*.*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/,e=/\/\*.*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;a.meta={},a._extensions=a._extensions||[],a._extensions.push(d);var f=a.locate;a.locate=function(a){return b(this,a),f.call(this,a)};var g=a.translate;a.translate=function(a){var d=a.source.match(c);if(d)for(var f=d[0].match(e),h=0;h<f.length;h++){var i=f[h].length,j=f[h].substr(0,1);if(";"==f[h].substr(i-1,1)&&i--,'"'==j||"'"==j){var k=f[h].substr(1,f[h].length-3),l=k.substr(0,k.indexOf(" "));if(l){var m=k.substr(l.length+1,k.length-l.length-1);a.metadata[l]instanceof Array?a.metadata[l].push(m):a.metadata[l]||(a.metadata[l]=m)}}}return b(this,a),g.call(this,a)}}function e(a){function c(a){var c,d=a.source.lastIndexOf("\n");-1!=d&&"//# sourceMappingURL="==a.source.substr(d+1,21)&&(c=a.source.substr(d+22,a.source.length-d-22),"undefined"!=typeof b&&(c=b(a.address,c))),__eval(a.source,a.address,c)}function d(a){for(var b=[],c=0,d=a.length;d>c;c++)-1==o.call(b,a[c])&&b.push(a[c]);return b}function f(b,c,d,e){"string"!=typeof b&&(e=d,d=c,c=b,b=null),r=!0;var f;if(f="boolean"==typeof d?{declarative:!1,deps:c,execute:e,executingRequire:d}:{declarative:!0,deps:c,declare:d},b)f.name=b,b in a.defined||(a.defined[b]=f);else if(f.declarative){if(q)throw new TypeError("Multiple anonymous System.register calls in the same module file.");q=f}}function g(a){if(!a.register){a.register=f,a.defined||(a.defined={});var b=a.onScriptLoad;a.onScriptLoad=function(a){b(a),q&&(a.metadata.entry=q),r&&(a.metadata.format=a.metadata.format||"register",a.metadata.registered=!0)}}}function h(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==o.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=a.normalizedDeps.length;e>d;d++){var f=a.normalizedDeps[d],g=b.defined[f];if(g&&!g.evaluated){var i=a.groupIndex+(g.declarative!=a.declarative);if(void 0===g.groupIndex||g.groupIndex<i){if(void 0!==g.groupIndex&&(c[g.groupIndex].splice(o.call(c[g.groupIndex],g),1),0==c[g.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");g.groupIndex=i}h(g,b,c)}}}}function i(a,b){var c=b.defined[a];if(!c.module){c.groupIndex=0;var d=[];h(c,b,d);for(var e=!!c.declarative==d.length%2,f=d.length-1;f>=0;f--){for(var g=d[f],i=0;i<g.length;i++){var j=g[i];e?k(j,b):m(j,b)}e=!e}}}function j(a){return s[a]||(s[a]={name:a,dependencies:[],exports:{},importers:[]})}function k(a,b){if(!a.module){var c=a.module=j(a.name),d=a.module.exports,e=a.declare.call(b.global,function(a,b){c.locked=!0,d[a]=b;for(var e=0,f=c.importers.length;f>e;e++){var g=c.importers[e];if(!g.locked){var h=o.call(g.dependencies,c);g.setters[h](d)}}return c.locked=!1,b});if(c.setters=e.setters,c.execute=e.execute,!c.setters||!c.execute)throw new TypeError("Invalid System.register form for "+a.name);for(var f=0,g=a.normalizedDeps.length;g>f;f++){var h,i=a.normalizedDeps[f],l=b.defined[i],m=s[i];m?h=m.exports:l&&!l.declarative?h=l.module.exports&&l.module.exports.__esModule?l.module.exports:{"default":l.module.exports,__useDefault:!0}:l?(k(l,b),m=l.module,h=m.exports):h=b.get(i),m&&m.importers?(m.importers.push(c),c.dependencies.push(m)):c.dependencies.push(null),c.setters[f]&&c.setters[f](h)}}}function l(a,b){var c,d=b.defined[a];if(d)d.declarative?p(a,[],b):d.evaluated||m(d,b),c=d.module.exports;else if(c=b.get(a),!c)throw new Error("Unable to load dependency "+a+".");return(!d||d.declarative)&&c&&c.__useDefault?c["default"]:c}function m(a,b){if(!a.module){var c={},d=a.module={exports:c,id:a.name};if(!a.executingRequire)for(var e=0,f=a.normalizedDeps.length;f>e;e++){var g=a.normalizedDeps[e],h=b.defined[g];h&&m(h,b)}a.evaluated=!0;var i=a.execute.call(b.global,function(c){for(var d=0,e=a.deps.length;e>d;d++)if(a.deps[d]==c)return l(a.normalizedDeps[d],b);throw new TypeError("Module "+c+" not declared as a dependency.")},c,d);i&&(d.exports=i)}}function p(a,b,c){var d=c.defined[a];if(d&&!d.evaluated&&d.declarative){b.push(a);for(var e=0,f=d.normalizedDeps.length;f>e;e++){var g=d.normalizedDeps[e];-1==o.call(b,g)&&(c.defined[g]?p(g,b,c):c.get(g))}d.evaluated||(d.evaluated=!0,d.module.execute.call(c.global))}}"undefined"==typeof o&&(o=Array.prototype.indexOf),("undefined"==typeof __eval||"undefined"!=typeof document&&!document.addEventListener)&&(__eval=0||eval),a._extensions=a._extensions||[],a._extensions.push(e);a.__exec=c;var q,r;g(a);var s={},t=/System\.register/,u=a.fetch;a.fetch=function(a){var b=this;return g(b),b.defined[a.name]?(a.metadata.format="defined",""):(q=null,r=!1,u.call(b,a))};var v=a.translate;a.translate=function(a){return this.register=f,this.__exec=c,a.metadata.deps=a.metadata.deps||[],Promise.resolve(v.call(this,a)).then(function(b){return(a.metadata.init||a.metadata.exports)&&(a.metadata.format=a.metadata.format||"global"),("register"==a.metadata.format||!a.metadata.format&&a.source.match(t))&&(a.metadata.format="register"),b})};var w=a.instantiate;a.instantiate=function(a){var b,c=this;if(c.defined[a.name])b=c.defined[a.name],b.deps=b.deps.concat(a.metadata.deps);else if(a.metadata.entry)b=a.metadata.entry;else if(a.metadata.execute)b={declarative:!1,deps:a.metadata.deps||[],execute:a.metadata.execute,executingRequire:a.metadata.executingRequire};else if("register"==a.metadata.format){q=null,r=!1;var e=c.global.System;if(c.global.System=c,c.__exec(a),c.global.System=e,q&&(b=q),!b&&n.defined[a.name]&&(b=n.defined[a.name]),!r&&!a.metadata.registered)throw new TypeError(a.name+" detected as System.register but didn't execute.")}if(!b&&"es6"!=a.metadata.format)return{deps:a.metadata.deps,execute:function(){return c.newModule({})}};if(!b)return w.call(this,a);c.defined[a.name]=b,b.deps=d(b.deps),b.name=a.name;for(var f=[],g=0,h=b.deps.length;h>g;g++)f.push(Promise.resolve(c.normalize(b.deps[g],a.name)));return Promise.all(f).then(function(d){return b.normalizedDeps=d,{deps:b.deps,execute:function(){i(a.name,c),p(a.name,[],c),c.defined[a.name]=void 0;var d=b.module.exports;return(!d||!b.declarative&&d.__esModule!==!0)&&(d={"default":d,__useDefault:!0}),c.newModule(d)}}})}}function f(a){function b(a,b,c){if(a.meta[b]={format:"global"},j&&!a.paths[b])try{a.paths[b]=require.resolve(c||b)}catch(d){}}a._extensions.push(f);var c,d,e=/(^\s*|[}\);\n]\s*)(import\s+(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s+from\s+['"]|\{)|export\s+\*\s+from\s+["']|export\s+(\{|default|function|class|var|const|let|async\s+function))/,g=/\$traceurRuntime\s*\./,h=/babelHelpers\s*\./,i=!0,j="undefined"!=typeof process&&"undefined"!=typeof require&&require.resolve,k=a.locate;a.locate=function(a){var c=this;return i&&("traceur"==c.transpiler?(b(c,"traceur","traceur/bin/traceur.js"),c.meta.traceur.exports="traceur",b(c,"traceur-runtime","traceur/bin/traceur-runtime.js")):"babel"==c.transpiler&&(b(c,"babel","babel-core/browser.js"),b(c,"babel-runtime","babel-core/external-helpers.js")),i=!1),k.call(c,a)};var l=a.translate;a.translate=function(a){var b=this;return l.call(b,a).then(function(f){if("es6"==a.metadata.format||!a.metadata.format&&f.match(e))return a.metadata.format="es6",f;if("register"==a.metadata.format){if(!b.global.$traceurRuntime&&a.source.match(g))return b["import"]("traceur-runtime").then(function(){return f});if(!b.global.babelHelpers&&a.source.match(h))return b["import"]("babel/external-helpers").then(function(){return f})}return"traceur"==b.transpiler?Promise.all([c||(c=b.normalize(b.transpiler)),d||(d=b.normalize(b.transpiler+"-runtime"))]).then(function(b){return a.name==b[0]||a.name==b[1]?"(function() { var curSystem = System; "+f+"\nSystem = curSystem; })();":f}):f})}}function g(a){function b(a,b){for(var c=a.split(".");c.length;)b=b[c.shift()];return b}function c(a){if(!a.has("@@global-helpers")){var c,d,e=a.global.hasOwnProperty,f={};a.set("@@global-helpers",a.newModule({prepareGlobal:function(b,g){for(var h=0;h<g.length;h++){var i=f[g[h]];if(i)for(var j in i)a.global[j]=i[j]}c={},d=["indexedDB","sessionStorage","localStorage","clipboardData","frames","webkitStorageInfo","toolbar","statusbar","scrollbars","personalbar","menubar","locationbar","webkitIndexedDB","screenTop","screenLeft"];for(var k in a.global)if(-1==o.call(d,k)&&(!e||a.global.hasOwnProperty(k)))try{c[k]=a.global[k]}catch(l){d.push(k)}},retrieveGlobal:function(g,h,i){var j,k,l={};if(i)j=i.call(a.global);else if(h){var m=h.split(".")[0];j=b(h,a.global),l[m]=a.global[m]}else for(var n in a.global)-1==o.call(d,n)&&(e&&!a.global.hasOwnProperty(n)||n==a.global||c[n]==a.global[n]||(l[n]=a.global[n],j?j!==a.global[n]&&(k=!0):void 0===j&&(j=a.global[n])));return f[g]=l,k?l:j}}))}}a._extensions.push(g),c(a);var d=a.instantiate;a.instantiate=function(a){var b=this;c(b);var e=a.metadata.exports;return a.metadata.format||(a.metadata.format="global"),"global"==a.metadata.format&&(a.metadata.execute=function(c,d,f){b.get("@@global-helpers").prepareGlobal(f.id,a.metadata.deps),e&&(a.source+='\nthis["'+e+'"] = '+e+";");var g=b.global.define,c=b.global.require;return b.global.define=void 0,b.global.module=void 0,b.global.exports=void 0,b.__exec(a),b.global.require=c,b.global.define=g,b.get("@@global-helpers").retrieveGlobal(f.id,e,a.metadata.init)}),d.call(b,a)}}function h(a){function b(a){d.lastIndex=0;var b=[];a.length/a.split("\n").length<200&&(a=a.replace(e,""));for(var c;c=d.exec(a);)b.push(c[1].substr(1,c[1].length-2));return b}a._extensions.push(h);var c=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.]|module\.)(exports\s*\[['"]|\exports\s*\.)|(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])module\.exports\s*\=/,d=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g,e=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,f=a.instantiate;a.instantiate=function(e){return e.metadata.format||(c.lastIndex=0,d.lastIndex=0,(d.exec(e.source)||c.exec(e.source))&&(e.metadata.format="cjs")),"cjs"==e.metadata.format&&(e.metadata.deps=e.metadata.deps?e.metadata.deps.concat(b(e.source)):b(e.source),e.metadata.executingRequire=!0,e.metadata.execute=function(b,c,d){var f=(e.address||"").split("/");f.pop(),f=f.join("/"),n._nodeRequire&&(f=f.substr(5));var g=(a.global._g={global:a.global,exports:c,module:d,require:b,__filename:n._nodeRequire?e.address.substr(5):e.address,__dirname:f},a.global.define);a.global.define=void 0;var h={name:e.name,source:"(function() {\n(function(global, exports, module, require, __filename, __dirname){\n"+e.source+"\n}).call(_g.exports, _g.global, _g.exports, _g.module, _g.require, _g.__filename, _g.__dirname);})();",address:e.address};a.__exec(h),a.global.define=g,a.global._g=void 0}),f.call(this,e)}}function i(a){function b(a,b){a=a.replace(l,"");var c=a.match(p),d=(c[1].split(",")[b]||"require").replace(q,""),e=r[d]||(r[d]=new RegExp(m+d+n,"g"));e.lastIndex=0;for(var f,g=[];f=e.exec(a);)g.push(f[2]||f[3]);return g}function c(a,b,d,e){var f=this;if("object"==typeof a&&!(a instanceof Array))return c.apply(null,Array.prototype.splice.call(arguments,1,arguments.length-1));if(!(a instanceof Array)){if("string"==typeof a){var g=f.get(a);return g.__useDefault?g["default"]:g}throw new TypeError("Invalid require")}Promise.all(a.map(function(a){return f["import"](a,e)})).then(function(a){b&&b.apply(null,a)},d)}function d(a,b,d){return function(e,f,g){return"string"==typeof e?b(e):c.call(d,e,f,g,{name:a})}}function e(a){function c(c,e,f){"string"!=typeof c&&(f=e,e=c,c=null),e instanceof Array||(f=e,e=["require","exports","module"]),"function"!=typeof f&&(f=function(a){return function(){return a}}(f)),void 0===e[e.length-1]&&e.pop();var h,i,j;if(-1!=(h=o.call(e,"require"))){e.splice(h,1);var k=f.toString();e=e.concat(b(k,h))}-1!=(i=o.call(e,"exports"))&&e.splice(i,1),-1!=(j=o.call(e,"module"))&&e.splice(j,1);var l={deps:e,execute:function(b,c,k){for(var l=[],m=0;m<e.length;m++)l.push(b(e[m]));k.uri=a.baseURL+k.id,k.config=function(){},-1!=j&&l.splice(j,0,k),-1!=i&&l.splice(i,0,c),-1!=h&&l.splice(h,0,d(k.id,b,a));var n=f.apply(g,l);return"undefined"==typeof n&&k&&(n=k.exports),"undefined"!=typeof n?n:void 0}};if(c)s=0!=e.length||s||t?null:l,t=!0,a.register(c,l.deps,!1,l.execute);else{if(s)throw new TypeError("Multiple defines for anonymous module");s=l}}var e=a.onScriptLoad;a.onScriptLoad=function(a){e(a),(s||t)&&(a.metadata.format="defined",a.metadata.registered=!0),s&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(s.deps):s.deps,a.metadata.execute=s.execute)},c.amd={},a.amdDefine=c}function f(a){a.amdDefine||e(a),s=null,t=null;var b=a.global;u=b.module,v=b.exports,w=b.define,b.module=void 0,b.exports=void 0,b.define&&b.define===a.amdDefine||(b.define=a.amdDefine)}function h(a){var b=a.global;b.define=w,b.module=u,b.exports=v}var j="undefined"!=typeof module&&module.exports;a._extensions.push(i);var k=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])define\s*\(\s*("[^"]+"\s*,\s*|'[^']+'\s*,\s*)?\s*(\[(\s*(("[^"]+"|'[^']+')\s*,|\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*(\s*("[^"]+"|'[^']+')\s*,?)?(\s*(\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*\s*\]|function\s*|{|[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*\))/,l=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,m="(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])",n="\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)",p=/\(([^\)]*)\)/,q=/^\s+|\s+$/g,r={};a.amdRequire=function(){return c.apply(this,arguments)};var s,t,u,v,w;if(e(a),a.scriptLoader){var x=a.fetch;a.fetch=function(a){return f(this),x.call(this,a)}}var y=a.instantiate;a.instantiate=function(a){var b=this;if("amd"==a.metadata.format||!a.metadata.format&&a.source.match(k)){if(a.metadata.format="amd",b.execute!==!1&&(f(b),b.__exec(a),h(b),!s&&!t&&!j))throw new TypeError("AMD module "+a.name+" did not define");s&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(s.deps):s.deps,a.metadata.execute=s.execute)}return y.call(b,a)}}function j(a){function b(a,b){return a.length<b.length?!1:a.substr(0,b.length)!=b?!1:a[b.length]&&"/"!=a[b.length]?!1:!0}function c(a){for(var b=1,c=0,d=a.length;d>c;c++)"/"===a[c]&&b++;return b}function d(a,b,c){return c+a.substr(b)}function e(a,e,f){var g,h,i,j,k=0,l=0;if(e)for(var m in f.map){var n=f.map[m];if("object"==typeof n&&b(e,m)&&(i=c(m),!(l>=i)))for(var o in n)b(a,o)&&(j=c(o),k>=j||(g=o,k=j,h=m,l=i))}if(g)return d(a,g.length,f.map[h][g]);for(var m in f.map){var n=f.map[m];if("string"==typeof n&&b(a,m)){var j=c(m);k>=j||(g=m,k=j)}}return g?d(a,g.length,f.map[g]):a}a.map=a.map||{},a._extensions.push(j);var f=a.normalize;a.normalize=function(a,b,c){var d=this;d.map||(d.map={});var g=!1;return"/"==a.substr(a.length-1,1)&&(g=!0,a+="#"),Promise.resolve(f.call(d,a,b,c)).then(function(a){if(a=e(a,b,d),g){var c=a.split("/");c.pop();var f=c.pop();c.push(f),c.push(f),a=c.join("/")}return a})}}function k(a){"undefined"==typeof o&&(o=Array.prototype.indexOf),a._extensions.push(k);var b=a.normalize;a.normalize=function(a,c,d){var e,f=this;return c&&-1!=(e=c.indexOf("!"))&&(c=c.substr(0,e)),Promise.resolve(b.call(f,a,c,d)).then(function(a){var b=a.lastIndexOf("!");if(-1!=b){var e=a.substr(0,b),g=a.substr(b+1)||e.substr(e.lastIndexOf(".")+1);return new Promise(function(a){a(f.normalize(g,c,d))}).then(function(a){return g=a,f.normalize(e,c,d)}).then(function(a){return a+"!"+g})}return a})};var c=a.locate;a.locate=function(a){var b=this,d=a.name;if(this.defined&&this.defined[d])return c.call(this,a);var e=d.lastIndexOf("!");if(-1!=e){var f=d.substr(e+1);a.name=d.substr(0,e);var g=b.pluginLoader||b;return g["import"](f).then(function(){var c=g.get(f);return c=c["default"]||c,c.build===!1&&b.pluginLoader&&(a.metadata.build=!1),a.metadata.plugin=c,a.metadata.pluginName=f,a.metadata.pluginArgument=a.name,a.metadata.buildType=c.buildType||"js",c.locate?c.locate.call(b,a):Promise.resolve(b.locate(a)).then(function(a){return a.replace(/\.js$/,"")})})}return c.call(this,a)};var d=a.fetch;a.fetch=function(a){var b=this;return a.metadata.build===!1&&b.pluginLoader?"":a.metadata.plugin&&a.metadata.plugin.fetch&&!a.metadata.pluginFetchCalled?(a.metadata.pluginFetchCalled=!0,a.metadata.plugin.fetch.call(b,a,d)):d.call(b,a)};var e=a.translate;a.translate=function(a){var b=this;return a.metadata.plugin&&a.metadata.plugin.translate?Promise.resolve(a.metadata.plugin.translate.call(b,a)).then(function(c){return"string"==typeof c&&(a.source=c),e.call(b,a)}):e.call(b,a)};var f=a.instantiate;a.instantiate=function(a){var b=this;return a.metadata.plugin&&a.metadata.plugin.instantiate?Promise.resolve(a.metadata.plugin.instantiate.call(b,a)).then(function(c){return c?c:f.call(b,a)}):a.metadata.plugin&&a.metadata.plugin.build===!1?(a.metadata.format="defined",a.metadata.deps.push(a.metadata.pluginName),a.metadata.execute=function(){return b.newModule({})},f.call(b,a)):f.call(b,a)}}function l(a){"undefined"==typeof o&&(o=Array.prototype.indexOf),a._extensions.push(l),a.bundles=a.bundles||{};var b=a.fetch;a.fetch=function(a){var c=this;if(c.trace)return b.call(this,a);c.bundles||(c.bundles={});for(var d in c.bundles)if(-1!=o.call(c.bundles[d],a.name))return Promise.resolve(c.normalize(d)).then(function(a){return c.bundles[a]=c.bundles[a]||c.bundles[d],c.meta=c.meta||{},c.meta[a]=c.meta[a]||{},c.meta[a].bundle=!0,c.load(a)}).then(function(){return""});return b.call(this,a)}}function m(a){a.depCache=a.depCache||{},a._extensions.push(m);var b=a.locate;a.locate=function(a){var c=this;c.depCache||(c.depCache={});var d=c.depCache[a.name];if(d)for(var e=0;e<d.length;e++)c.load(d[e]);return b.call(c,a)}}$__global.upgradeSystemLoader=void 0;var n,o=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},p="undefined"!=typeof process&&!!process.platform.match(/^win/);!function(){var a=$__global.System;n=$__global.System=new LoaderPolyfill(a),n.baseURL=a.baseURL,n.paths={"*":"*.js"},n.originalSystem=a}(),n.noConflict=function(){$__global.SystemJS=n,$__global.System=n.originalSystem};var q=$__global.System.originalSystem;c(n),d(n),e(n),f(n),g(n),h(n),i(n),j(n),k(n),l(n),m(n)};var $__curScript,__eval;!function(){var doEval;if(__eval=function(a,b,c){a+="\n//# sourceURL="+b+(c?"\n//# sourceMappingURL="+c:"");try{doEval(a)}catch(d){var e="Error evaluating "+b+"\n";throw d instanceof Error?d.message=e+d.message:d=e+d,d}},"undefined"!=typeof document){var head,scripts=document.getElementsByTagName("script");if($__curScript=scripts[scripts.length-1],doEval=function(a){head||(head=document.head||document.body||document.documentElement);var b=document.createElement("script");b.text=a;var c,d=window.onerror;if(window.onerror=function(a){c=a},head.appendChild(b),head.removeChild(b),window.onerror=d,c)throw c},$__global.System&&$__global.LoaderPolyfill)$__global.upgradeSystemLoader();else{var curPath=$__curScript.src,basePath=curPath.substr(0,curPath.lastIndexOf("/")+1);document.write('<script type="text/javascript" src="'+basePath+'es6-module-loader.js" data-init="upgradeSystemLoader"></script>')}}else if("undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof importScripts)if(doEval=function(source){try{eval(source)}catch(e){throw e}},$__global.System&&$__global.LoaderPolyfill)$__global.upgradeSystemLoader();else{var basePath="";try{throw new Error("Get worker base path via error stack")}catch(e){e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(a,b){basePath=b.replace(/\/[^\/]*$/,"/")})}importScripts(basePath+"es6-module-loader.js"),$__global.upgradeSystemLoader()}else{var es6ModuleLoader=require("es6-module-loader");$__global.System=es6ModuleLoader.System,$__global.Loader=es6ModuleLoader.Loader,$__global.upgradeSystemLoader(),module.exports=$__global.System;var vm=require("vm");doEval=function(a,b,c){vm.runInThisContext(a)}}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global),function(a){function b(a){function b(a){function b(){for(var b,d=[],e=0;e<arguments.length;e++)"string"==typeof arguments[e]?d.push(q(arguments[e])):b=arguments[e];"function"!=typeof b&&(b=function(a){return function(){return a}}(b)),c={deps:d,execute:function(c,e,f){for(var g=[],h=0;h<d.length;h++)g.push(c(d[h]));var i=b.apply(a.global,g);return"undefined"!=typeof i?i:void 0}}}c=null,a.global.module=void 0,a.global.exports=void 0,a.global.steal=b}var c,d=/(?:^\s*|[}{\(\);,\n\?\&]\s*)steal\s*\(\s*((?:"[^"]+"\s*,|'[^']+'\s*,\s*)*)/,e=a.instantiate;return a.instantiate=function(a){var f=this;if("steal"===a.metadata.format||!a.metadata.format&&a.source.match(d)){a.metadata.format="steal";var g=f.global.steal;if(b(f),f.__exec(a),f.global.steal=g,!c)throw"Steal module "+a.name+" did not call steal";c&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(c.deps):c.deps,a.metadata.execute=c.execute)}return e.call(f,a)},a}var c=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},d=function(a,b){var c,d;if("number"==typeof a.length&&a.length-1 in a)for(c=0,d=a.length;d>c;c++)b.call(a[c],a[c],c,a);else for(c in a)a.hasOwnProperty(c)&&b.call(a[c],a[c],c,a);return a},e=function(a,b){var c=[];return d(a,function(a,d){c[d]=b(a,d)}),c},f=function(a){return"string"==typeof a},g=function(a,b){return d(b,function(b,c){a[c]=b}),a},h=function(a){var b=a.lastIndexOf("/");return-1===b&&(b=a.lastIndexOf("\\")),-1!==b?a.substr(0,b):a},i=function(a){return a[a.length-1]},j=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null},k=function(a,b){function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return b=j(b||""),a=j(a||""),b&&a?(b.protocol||a.protocol)+(b.protocol||b.authority?b.authority:a.authority)+c(b.protocol||b.authority||"/"===b.pathname.charAt(0)?b.pathname:b.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+b.pathname:a.pathname)+(b.protocol||b.authority||b.pathname?b.search:b.search||a.search)+b.hash:null},l="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,m="undefined"!=typeof window,n=!m&&!l&&"undefined"!=typeof require,o=function(a){var b=a.lastIndexOf("/");-1===b&&(b=a.lastIndexOf("\\"));var c=(-1==b?a:a.substr(b+1)).match(/^[\w-\s\.!]+/);return c?c[0]:""},p=function(a){var b=o(a),c=b.lastIndexOf(".");return-1!==c?b.substr(c+1):""},q=function(a,b){var c=a.lastIndexOf("!"),d="";if(-1!=c){var e=a.substr(0,c),f=a.substr(c+1);d="!"+f,a=e}var g=o(a),h=p(a);return"/"===a[a.length-1]?a+o(a.substr(0,a.length-1))+d:/^(\w+(?:s)?:\/\/|\.|file|\/)/.test(a)||-1!==g.indexOf(".")?"js"===h?a.substr(0,a.lastIndexOf("."))+d:a+d:a+"/"+g+d},r=function(a){var b=a||this.System;return s(this.addSteal(b.clone()))},s=function(b){function m(a){function b(a){if(("json"===a.metadata.format||!a.metadata.format)&&c.test(a.source))try{return JSON.parse(a.source)}catch(b){}}var c=/^[\s\n\r]*[\{\[]/,d=/\.json$/i,e=/\.js$/i,f="undefined"==typeof window;a._extensions.push(m);var g=a.locate;if(a.locate=function(a){return g.apply(this,arguments).then(function(b){return d.test(a.name)?b.replace(e,""):b})},f){var h=a.translate;return void(a.translate=function(a){if(d.test(a.name)){var c=b(a);if(c)return"define([], function(){\n	return "+a.source+"\n});"}return h.call(this,a)})}var i=a.instantiate;return a.instantiate=function(a){var c,d=this;return c=b(a),c&&(a.metadata.format="json",a.metadata.execute=function(){return c}),i.call(d,a)},a}b.set("@loader",b.newModule({"default":b,__useDefault:!0}));var p,r,s,t=function(){var a=arguments,c=function(){var b,c=[];d(a,function(a){f(a)?c.push(t.System["import"](q(a))):"function"==typeof a&&(b=a)});var e=Promise.all(c);return b?e.then(function(a){return b&&b.apply(null,a)}):e};return"production"===b.env?c():p.then(c,c)};t.System=b,t.parseURI=j,t.joinURIs=k,t.normalize=q;var u=function(a){a.ext={};var b=a.normalize,c=/\.(\w+)!$/;a.normalize=function(d,e,f){var g,h=d.match(c),i=d;return h&&a.ext[g=h[1]]&&(i=d+a.ext[g]),b.call(this,i,e,f)}};u(b);var v=function(a){var b=a.normalize,c=/@.+#.+/;a.normalize=function(a,d,e){var f,g,h=a.length-1;return"/"===a[h]&&(f=a.substring(0,h).lastIndexOf("/"),g=a.substring(f+1,h),c.test(g)&&(g=g.substr(g.lastIndexOf("#")+1)),a+=g),b.call(this,a,d,e)}};v(b),"undefined"!=typeof b&&m(b);var w=function(a,b){var c=a.config;a.config=function(e){var f=g({},e);d(b,function(b,c){if(b.set&&f[c]){var d=b.set.call(a,f[c],e);void 0!==d&&(a[c]=d),delete f[c]}}),c.call(this,f)}},x=function(a,b,c){a[b]||(a[b]=c)};b.configMain="@config",b.paths[b.configMain]="stealconfig.js",b.env="development",b.ext={css:"$css",less:"$less"},b.logLevel=0;var y="bundles/*.css",z="bundles/*";x(b.paths,y,"dist/bundles/*css"),x(b.paths,z,"dist/bundles/*.js");var A,B={set:function(a){var c=o(a),d=h(a);n||(b.configPath=k(location.href,a)),b.configMain=c,b.paths[c]=c,G.call(this),this.config({baseURL:(d===a?".":d)+"/"})}},C={set:function(a){this.main=a,G.call(this)}},D=function(a){return n&&!/^file:/.test(a)?("."===a[0]&&("/"===a[1]||"."===a[1]&&"/"===a[2])&&(a=require("path").join(process.cwd(),a)),a?"file:"+a:a):a},E=function(a){return{set:function(b){this[a]=D(b)}}},F=function(a){var b=a.lastIndexOf("!");return-1!==b?a.substr(b+1):void 0},G=function(){if("production"===this.env&&this.main){var a=this.main,c=this.bundlesName||"bundles/",d=c+a;x(this.meta,d,{format:"amd"});var e=F(b.configMain),f=[a,b.configMain];e&&b.set(e,b.newModule({})),this.bundles[d]=f}},H="less-2.4.0";w(b,A={env:{set:function(a){b.env=a,G.call(this)}},baseUrl:E("baseURL"),baseURL:E("baseURL"),root:E("baseURL"),config:B,configPath:B,startId:{set:function(a){C.set.call(this,q(a))}},main:C,stealURL:{set:function(a,c){b.stealURL=a;var d=a.split("?"),e=d.shift(),f=d.join("?"),g=f.split("&"),h=e.split("/"),i=h.pop(),j=h.join("/");if(A.stealPath.set.call(this,j,c),i.indexOf("steal.production")>-1&&!c.env&&(b.env="production"),g.length&&g[0].length){for(var k,l={},m=0;m<g.length;m++){k=g[m];var n=k.split("=");if(n.length>1)l[n[0]]=n.slice(1).join("=");else{t.dev&&t.dev.warn("Please use search params like ?main=main&env=production");var o=k.split(",");o[0]&&(l.startId=o[0]),o[1]&&(l.env=o[1])}}this.config(l)}}},stealPath:{set:function(a,c){a=D(a);var d=a.split("/");x(this.paths,"@dev",a+"/ext/dev.js"),x(this.paths,"$css",a+"/ext/css.js"),x(this.paths,"$less",a+"/ext/less.js"),x(this.paths,"npm",a+"/ext/npm.js"),x(this.paths,"npm-extension",a+"/ext/npm-extension.js"),x(this.paths,"npm-utils",a+"/ext/npm-utils.js"),x(this.paths,"npm-crawl",a+"/ext/npm-crawl.js"),x(this.paths,"semver",a+"/ext/semver.js"),x(this.paths,"bower",a+"/ext/bower.js"),this.paths.traceur=a+"/ext/traceur.js",this.paths["traceur-runtime"]=a+"/ext/traceur-runtime.js",this.paths.babel=a+"/ext/babel.js",this.paths["babel-runtime"]=a+"/ext/babel-runtime.js",n?b.register("less",[],!1,function(){var a=require;return a("less")}):(x(this.paths,"less",a+"/ext/"+H+".js"),c.root||c.baseUrl||c.baseURL||c.config||c.configPath||("steal"===i(d)&&(d.pop(),"bower_components"===i(d)&&(b.configMain="bower.json!bower",G.call(this),d.pop()),"node_modules"===i(d)&&(b.configMain="package.json!npm",G.call(this),d.pop())),this.config({baseURL:d.join("/")+"/"}))),b.stealPath=a}},bundle:{set:function(a){b.bundle=a}},bundlesPath:{set:function(a){return this.paths[y]=a+"/*css",this.paths[z]=a+"/*.js",a}},instantiated:{set:function(a){var b=this;d(a||{},function(a,c){b.set(c,b.newModule(a))})}}}),t.config=function(a){return"string"==typeof a?b[a]:void b.config(a)};var I=function(){var a={},b=document.getElementsByTagName("script"),e=b[b.length-1];if(e){a.stealURL=e.src,d(e.attributes,function(b){var d=c(0===b.nodeName.indexOf("data-")?b.nodeName.replace("data-",""):b.nodeName);a[d]=""===b.value?!0:b.value});var f=e.innerHTML.substr(1);/\S/.test(f)&&(a.mainSource=f)}return a};return t.startup=function(c){if(l)var d={stealURL:location.href};else if(a.document)var d=I();else var d={stealPath:__dirname};b.config(d),c&&b.config(c);return"production"==b.env?(p=b["import"](b.configMain),s=p.then(function(a){return b.main?b["import"](b.main):a})["catch"](function(a){})):("development"==b.env||"build"==b.env)&&(p=b["import"](b.configMain),r=p.then(function(){return c&&b.config(c),b["import"]("@dev")},function(a){return t.System["import"]("@dev")}),s=r.then(function(){if(!b.main||"build"===b.env)return p;var a=b.main;return"string"==typeof a&&(a=[a]),Promise.all(e(a,function(a){return b["import"](a)}))})),b.mainSource&&(s=s.then(function(){b.module(b.mainSource)})),s},t.done=function(){return s},t};if("undefined"!=typeof System&&b(System),n)require("systemjs"),a.steal=s(System),a.steal.System=System,a.steal.dev=require("./ext/dev.js"),steal.clone=r,module.exports=a.steal,a.steal.addSteal=b,require("system-json");else{var t=a.steal;a.steal=s(System),a.steal.startup(t&&"object"==typeof t&&t).then(null,function(a){throw a}),a.steal.clone=r,a.steal.addSteal=b}}("undefined"==typeof window?"undefined"==typeof global?this:global:window);
\ No newline at end of file


Test patch:
diff --git a/test/node_test.js b/test/node_test.js
index 133e78a2..473d86a3 100644
--- a/test/node_test.js
+++ b/test/node_test.js
@@ -3,7 +3,7 @@ var assert = require("assert");
 
 
 var makeSteal = function(config){
-	var localSteal =  steal.clone( steal.addSteal( steal.System.clone() ) );
+	var localSteal =  steal.clone();
 	localSteal.System.config(config || {});
 	return localSteal;
 };
diff --git a/test/test_node.js b/test/test_node.js
index a6553657..1c3c5298 100644
--- a/test/test_node.js
+++ b/test/test_node.js
@@ -1,19 +1,14 @@
 var steal = require('../main');
 var path = require("path");
 
-var localSteal =  steal.clone( steal.addSteal( steal.System.clone() ) );
-
-global.steal = localSteal;
-global.System = localSteal.System;
-
 System.logLevel = 0;
 
-localSteal.config({
+steal.config({
 	config: path.join(__dirname, "node_test_plugins", "config.js"),
 	main: "main"
 });
 
-localSteal.startup().then(function(){
+steal.startup().then(function(){
 	console.log("worked");
 },function(e){
 	console.log(e);