Repository: stealjs/steal
Pull request #926 (2016-11-18 19:32:23)

Provide a localized Node require
This adds the ability to use a localized version of Node's require for
each module, only when running in Node.

It can be used like:

```js
var nodeRequire = require("@node-require");

var less = nodeRequire("less");
```

Fixes https://github.com/stealjs/steal/issues/924


Patch:
diff --git a/.editorconfig b/.editorconfig
index dd1ec0f0..849f4f23 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -3,3 +3,7 @@
 end_of_line = LF
 indent_style = tab
 indent_size = 4
+
+[{*.json,*.yml}]
+indent_style = space
+indent_size = 2
diff --git a/Gruntfile.js b/Gruntfile.js
index 1ef2b7ce..5d1839e8 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -62,6 +62,7 @@ module.exports = function (grunt) {
 		  "src/config.js",
 		  "node_modules/steal-env/env.js",
 		  "src/startup.js",
+          "src/node-require.js",
 		  "src/import.js",
 		  "src/make-steal-end.js", // ends makeSteal
 		  "src/system-format-steal.js",
diff --git a/main.js b/main.js
index c861dabb..bc55e0a1 100644
--- a/main.js
+++ b/main.js
@@ -415,47 +415,53 @@ if(typeof System !== "undefined") {
 }
 
 function addContextual(loader){
-  if (loader._extensions) {
-    loader._extensions.push(addContextual);
-  }
-  loader._contextualModules = {};
+	if(loader._extensions) {
+		loader._extensions.push(addContextual);
+	}
+	loader._contextualModules = {};
 
-  loader.setContextual = function(moduleName, definer){
-    this._contextualModules[moduleName] = definer;
-  };
+	loader.setContextual = function(moduleName, definer){
+		this._contextualModules[moduleName] = definer;
+	};
 
-  var normalize = loader.normalize;
-  loader.normalize = function(name, parentName){
-    var loader = this;
+	var normalize = loader.normalize;
+	loader.normalize = function(name, parentName){
+		var loader = this;
 
-    if (parentName) {
-      var definer = this._contextualModules[name];
+		if (parentName) {
+			var definer = this._contextualModules[name];
 
-      // See if `name` is a contextual module
-      if (definer) {
-        name = name + '/' + parentName;
+			// See if `name` is a contextual module
+			if (definer) {
+				name = name + '/' + parentName;
 
-        if(!loader.has(name)) {
-          // `definer` could be a function or could be a moduleName
-          if (typeof definer === 'string') {
-            definer = loader['import'](definer);
-          }
+				if(!loader.has(name)) {
+					// `definer` could be a function or could be a moduleName
+					if (typeof definer === 'string') {
+						definer = loader['import'](definer);
+					}
 
-          return Promise.resolve(definer)
-          .then(function(definer) {
-            if (definer['default']) {
-              definer = definer['default'];
-            }
-            loader.set(name, loader.newModule(definer.call(loader, parentName)));
-            return name;
-          });
-        }
-        return Promise.resolve(name);
-      }
-    }
+					return Promise.resolve(definer)
+					.then(function(definer) {
+						if (definer['default']) {
+							definer = definer['default'];
+						}
+						var definePromise = Promise.resolve(
+							definer.call(loader, parentName)
+						);
+						return definePromise;
+					})
+					.then(function(moduleDef){
+						loader.set(name, loader.newModule(moduleDef));
+						return name;
+					});
+				}
+				return Promise.resolve(name);
+			}
+		}
 
-    return normalize.apply(this, arguments);
-  };
+		return normalize.apply(this, arguments);
+	};
 }
 
 if(typeof System !== "undefined") {
@@ -1412,6 +1418,32 @@ function addEnv(loader){
 		return appPromise;
 	};
 
+
+	System.setContextual("@node-require", function(name){
+		if(isNode) {
+			var nodeRequire = require;
+			var load = {name: name, metadata: {}};
+			return this.locate(load).then(function(address){
+				var url = address.replace("file:", "");
+				return {
+					"default": function(specifier){
+						var resolve = nodeRequire("resolve");
+						var res = resolve.sync(specifier, {
+							basedir: nodeRequire("path").dirname(url)
+						});
+						return nodeRequire(res);
+					},
+					__useDefault: true
+				};
+			});
+		} else {
+			return {
+				"default": function(){},
+				__useDefault: true
+			}
+		}
+	});
+
 	steal["import"] = function(){
 		var names = arguments;
 		var loader = this.System;
diff --git a/package.json b/package.json
index 3a42673e..7e21b3fc 100644
--- a/package.json
+++ b/package.json
@@ -12,24 +12,25 @@
     "test-windows": "grunt test-windows --stack"
   },
   "dependencies": {
-    "steal-systemjs": "0.18.4",
+    "assert": "~1.1.0",
+    "buffer": "~2.4.0",
     "console-browserify": "~1.1.0",
     "constants-browserify": "~0.0.1",
     "crypto-browserify": "~2.1.10",
-    "http-browserify": "~1.4.1",
-    "buffer": "~2.4.0",
-    "os-browserify": "~0.1.2",
-    "vm-browserify": "~0.0.4",
-    "zlib-browserify": "~0.0.3",
-    "assert": "~1.1.0",
     "domain-browser": "~1.1.2",
     "events": "~1.0.1",
+    "http-browserify": "~1.4.1",
     "https-browserify": "~0.0.0",
+    "os-browserify": "~0.1.2",
     "path-browserify": "~0.0.0",
+    "process": "~0.7.0",
+    "punycode": "~1.3.0",
+    "resolve": "^1.1.7",
+    "steal-systemjs": "0.18.4",
     "string_decoder": "~0.0.0",
     "tty-browserify": "~0.0.0",
-    "process": "~0.7.0",
-    "punycode": "~1.3.0"
+    "vm-browserify": "~0.0.4",
+    "zlib-browserify": "~0.0.3"
   },
   "devDependencies": {
     "babel-standalone": "6.7.7",
diff --git a/src/node-require.js b/src/node-require.js
new file mode 100644
index 00000000..20d6e761
--- /dev/null
+++ b/src/node-require.js
@@ -0,0 +1,25 @@
+
+	System.setContextual("@node-require", function(name){
+		if(isNode) {
+			var nodeRequire = require;
+			var load = {name: name, metadata: {}};
+			return this.locate(load).then(function(address){
+				var url = address.replace("file:", "");
+				return {
+					"default": function(specifier){
+						var resolve = nodeRequire("resolve");
+						var res = resolve.sync(specifier, {
+							basedir: nodeRequire("path").dirname(url)
+						});
+						return nodeRequire(res);
+					},
+					__useDefault: true
+				};
+			});
+		} else {
+			return {
+				"default": function(){},
+				__useDefault: true
+			}
+		}
+	});
diff --git a/src/system-extension-contextual.js b/src/system-extension-contextual.js
index 00d2e278..490920a3 100644
--- a/src/system-extension-contextual.js
+++ b/src/system-extension-contextual.js
@@ -1,45 +1,51 @@
 function addContextual(loader){
-  if (loader._extensions) {
-    loader._extensions.push(addContextual);
-  }
-  loader._contextualModules = {};
-
-  loader.setContextual = function(moduleName, definer){
-    this._contextualModules[moduleName] = definer;
-  };
-
-  var normalize = loader.normalize;
-  loader.normalize = function(name, parentName){
-    var loader = this;
-
-    if (parentName) {
-      var definer = this._contextualModules[name];
-
-      // See if `name` is a contextual module
-      if (definer) {
-        name = name + '/' + parentName;
-
-        if(!loader.has(name)) {
-          // `definer` could be a function or could be a moduleName
-          if (typeof definer === 'string') {
-            definer = loader['import'](definer);
-          }
-
-          return Promise.resolve(definer)
-          .then(function(definer) {
-            if (definer['default']) {
-              definer = definer['default'];
-            }
-            loader.set(name, loader.newModule(definer.call(loader, parentName)));
-            return name;
-          });
-        }
-        return Promise.resolve(name);
-      }
-    }
-
-    return normalize.apply(this, arguments);
-  };
+	if(loader._extensions) {
+		loader._extensions.push(addContextual);
+	}
+	loader._contextualModules = {};
+
+	loader.setContextual = function(moduleName, definer){
+		this._contextualModules[moduleName] = definer;
+	};
+
+	var normalize = loader.normalize;
+	loader.normalize = function(name, parentName){
+		var loader = this;
+
+		if (parentName) {
+			var definer = this._contextualModules[name];
+
+			// See if `name` is a contextual module
+			if (definer) {
+				name = name + '/' + parentName;
+
+				if(!loader.has(name)) {
+					// `definer` could be a function or could be a moduleName
+					if (typeof definer === 'string') {
+						definer = loader['import'](definer);
+					}
+
+					return Promise.resolve(definer)
+					.then(function(definer) {
+						if (definer['default']) {
+							definer = definer['default'];
+						}
+						var definePromise = Promise.resolve(
+							definer.call(loader, parentName)
+						);
+						return definePromise;
+					})
+					.then(function(moduleDef){
+						loader.set(name, loader.newModule(moduleDef));
+						return name;
+					});
+				}
+				return Promise.resolve(name);
+			}
+		}
+
+		return normalize.apply(this, arguments);
+	};
 }
 
 if(typeof System !== "undefined") {
diff --git a/steal.js b/steal.js
index 5af512a2..c1ad9c4e 100644
--- a/steal.js
+++ b/steal.js
@@ -5466,47 +5466,53 @@ if(typeof System !== "undefined") {
 }
 
 function addContextual(loader){
-  if (loader._extensions) {
-    loader._extensions.push(addContextual);
-  }
-  loader._contextualModules = {};
+	if(loader._extensions) {
+		loader._extensions.push(addContextual);
+	}
+	loader._contextualModules = {};
 
-  loader.setContextual = function(moduleName, definer){
-    this._contextualModules[moduleName] = definer;
-  };
+	loader.setContextual = function(moduleName, definer){
+		this._contextualModules[moduleName] = definer;
+	};
 
-  var normalize = loader.normalize;
-  loader.normalize = function(name, parentName){
-    var loader = this;
+	var normalize = loader.normalize;
+	loader.normalize = function(name, parentName){
+		var loader = this;
 
-    if (parentName) {
-      var definer = this._contextualModules[name];
+		if (parentName) {
+			var definer = this._contextualModules[name];
 
-      // See if `name` is a contextual module
-      if (definer) {
-        name = name + '/' + parentName;
+			// See if `name` is a contextual module
+			if (definer) {
+				name = name + '/' + parentName;
 
-        if(!loader.has(name)) {
-          // `definer` could be a function or could be a moduleName
-          if (typeof definer === 'string') {
-            definer = loader['import'](definer);
-          }
+				if(!loader.has(name)) {
+					// `definer` could be a function or could be a moduleName
+					if (typeof definer === 'string') {
+						definer = loader['import'](definer);
+					}
 
-          return Promise.resolve(definer)
-          .then(function(definer) {
-            if (definer['default']) {
-              definer = definer['default'];
-            }
-            loader.set(name, loader.newModule(definer.call(loader, parentName)));
-            return name;
-          });
-        }
-        return Promise.resolve(name);
-      }
-    }
+					return Promise.resolve(definer)
+					.then(function(definer) {
+						if (definer['default']) {
+							definer = definer['default'];
+						}
+						var definePromise = Promise.resolve(
+							definer.call(loader, parentName)
+						);
+						return definePromise;
+					})
+					.then(function(moduleDef){
+						loader.set(name, loader.newModule(moduleDef));
+						return name;
+					});
+				}
+				return Promise.resolve(name);
+			}
+		}
 
-    return normalize.apply(this, arguments);
-  };
+		return normalize.apply(this, arguments);
+	};
 }
 
 if(typeof System !== "undefined") {
diff --git a/steal.production.js b/steal.production.js
index 61ab4deb..03510273 100644
--- a/steal.production.js
+++ b/steal.production.js
@@ -4,5 +4,5 @@
  *  Copyright (c) 2016 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&&"[object process]"===Object.prototype.toString.call(process)}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.message)?a.stack||a.message: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}}__global.$__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){}}}}(),__global.$__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){if(d.locked=!0,"object"==typeof a)for(var c in a)e[c]=a[c];else e[a]=b;for(var f=0,g=d.importers.length;g>f;f++){var h=d.importers[f];if(!h.locked){var i=B.call(h.dependencies,d);h.setters[i](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,c=new y;if(Object.getOwnPropertyNames&&null!=a)b=Object.getOwnPropertyNames(a);else{b=[];for(var d in a)b.push(d)}for(var e=0;e<b.length;e++)(function(b){C(c,b,{configurable:!1,enumerable:!0,get:function(){return a[b]}})})(b[e]);return Object.preventExtensions&&Object.preventExtensions(c),c},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){b=b.Babel||b.babel||b;var c=this.babelOptions||{};c.sourceMap="inline",c.filename=a.address,c.code=!0,c.ast=!1;var d=b.version?+b.version.split(".")[0]:6;d||(d=6),d>=6?(delete c.optional,delete c.whitelist,delete c.blacklist,c.presets||c.plugins||(c.presets=["es2015-no-commonjs","react","stage-0"],c.plugins=["transform-es2015-modules-systemjs"])):(c.modules="system",c.blacklist||(c.blacklist=["react"]));var e=b.transform(a.source,c).code;return e+"\n//# sourceURL="+a.address+"!eval"}var f=__global;a.prototype.transpiler="babel",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 g&&(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}var d,e="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,f="undefined"!=typeof window&&!e,g="undefined"!=typeof process&&!!process.platform.match(/^win/),h=__global.Promise||require("when/es6-shim/Promise");if("undefined"!=typeof XMLHttpRequest)d=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){var i;d=function(a,b,c){if("file:"!=a.substr(0,5))throw"Only file URLs of the form file: allowed running in Node.";return i=i||require("fs"),a=a.substr(5),g&&(a=a.replace(/\//g,"\\")),i.readFile(a,function(a,d){return a?c(a):void b(d+"")})}}else{if("function"!=typeof fetch)throw new TypeError("No environment fetch API available.");d=function(a,b,c){fetch(a).then(function(a){return a.text()}).then(function(a){b(a)}).then(null,function(a){c(a)})}}var j=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()+"/",g&&(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 f?window:e?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 g in this.paths){var h=g.split("*");if(h.length>2)throw new TypeError("Only one wildcard in a path is permitted");if(1==h.length){if(d==g&&g.length>e.length){e=g;break}}else d.substr(0,h[0].length)==h[0]&&d.substr(d.length-h[1].length)==h[1]&&(e=g,b=d.substr(h[0].length,d.length-h[1].length-h[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),f&&(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 h(function(e,f){d(c(b.baseURL,a.address),function(a){e(a)},f)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),k=new j;"object"==typeof exports&&(module.exports=k),__global.System=k}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global),function(a){a.upgradeSystemLoader=function(){function b(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 d(a,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 u&&(c=c.replace(/\\/g,"/")),c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function e(b){var c={};if(("object"==typeof b||"function"==typeof b)&&b!==a)if(v)for(var d in b)"default"!==d&&f(c,b,d);else g(c,b);return c["default"]=b,x(c,"__useDefault",{value:!0}),c}function f(a,b,c){try{var d;(d=Object.getOwnPropertyDescriptor(b,c))&&x(a,c,d)}catch(e){return a[c]=b[c],!1}}function g(a,b,c){var d=b&&b.hasOwnProperty;for(var e in b)(!d||b.hasOwnProperty(e))&&(c&&e in a||(a[e]=b[e]));return a}function h(a){function b(a,b){b._extensions=[];for(var c=0,d=a.length;d>c;c++)a[c](b)}var c=a["import"];a["import"]=function(a,b){return c.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 e;if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)e="file:"+process.cwd()+"/",
-u&&(e=e.replace(/\\/g,"/"));else if("undefined"==typeof window)e=a.global.location.href;else if(e=document.baseURI,!e){var f=document.getElementsByTagName("base");e=f[0]&&f[0].href||window.location.href}var g,i=a.locate;a.locate=function(a){return this.baseURL!=g&&(g=d(e,this.baseURL),"/"!=g.substr(g.length-1,1)&&(g+="/"),this.baseURL=g),Promise.resolve(i.call(this,a))},a._extensions=a._extensions||[],a._extensions.push(h),a.clone=function(){var a=this,c=new LoaderPolyfill(y);return c.baseURL=a.baseURL,c.paths={"*":"*.js"},b(a._extensions,c),c}}function i(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*;?)+/,d=/\/\*.*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;a.meta={},a._extensions=a._extensions||[],a._extensions.push(i);var e=a.locate;a.locate=function(a){return b(this,a),e.call(this,a)};var f=a.translate;a.translate=function(a){var e=a.source.match(c);if(e)for(var g=e[0].match(d),h=0;h<g.length;h++){var i=g[h].length,j=g[h].substr(0,1);if(";"==g[h].substr(i-1,1)&&i--,'"'==j||"'"==j){var k=g[h].substr(1,g[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),f.call(this,a)}}function j(a){function b(a,b){var e,f=this,g=a.source.lastIndexOf("\n");-1!=g&&"//# sourceMappingURL="==a.source.substr(g+1,21)&&(e=a.source.substr(g+22,a.source.length-g-22),"undefined"!=typeof d&&(e=d(a.address,e)));var h=a.metadata&&a.metadata.eval;b=b||f.global,c(a.source,a.address,b,e,h)}function f(a){for(var b=[],c=0,d=a.length;d>c;c++)-1==t.call(b,a[c])&&b.push(a[c]);return b}function g(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 h(a){if(!a.register){a.register=g,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 i(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==t.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 h=a.groupIndex+(g.declarative!=a.declarative);if(void 0===g.groupIndex||g.groupIndex<h){if(void 0!==g.groupIndex&&(c[g.groupIndex].splice(t.call(c[g.groupIndex],g),1),0==c[g.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");g.groupIndex=h}i(g,b,c)}}}}function k(a,b){var c=b.defined[a];if(!c.module){c.groupIndex=0;var d=[];i(c,b,d);for(var e=!!c.declarative==d.length%2,f=d.length-1;f>=0;f--){for(var g=d[f],h=0;h<g.length;h++){var j=g[h];e?m(j,b):o(j,b)}e=!e}}}function l(a){return u[a]||(u[a]={name:a,dependencies:[],exports:{},importers:[]})}function m(a,b){if(!a.module){var c=a.module=l(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=t.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],j=b.defined[i],k=u[i];k?h=k.exports:j&&!j.declarative?h=j.module.exports&&j.module.exports.__esModule?j.module.exports:j.esModule:j?(m(j,b),k=j.module,h=k.exports):h=b.get(i),k&&k.importers?(k.importers.push(c),c.dependencies.push(k)):c.dependencies.push(null),c.setters[f]&&c.setters[f](h)}}}function n(a,b){var c,d=b.defined[a];if(d)d.declarative?p(a,[],b):d.evaluated||o(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 o(a,b){if(!a.module){var c={},d=a.module={exports:c,id:a.name};if(!a.executingRequire)for(var f=0,g=a.normalizedDeps.length;g>f;f++){var h=a.normalizedDeps[f],i=b.defined[h];i&&o(i,b)}a.evaluated=!0;var j=a.execute.call(b.global,function(c){for(var d=0,e=a.deps.length;e>d;d++)if(a.deps[d]==c)return n(a.normalizedDeps[d],b);throw new TypeError("Module "+c+" not declared as a dependency.")},c,d);j&&(d.exports=j),c=d.exports,c&&(c.__esModule||c instanceof v)?a.esModule=c:a.esmExports&&c!==b.global?a.esModule=e(c):a.esModule={"default":c}}}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==t.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 t&&(t=Array.prototype.indexOf),("undefined"==typeof c||"undefined"!=typeof document&&!document.addEventListener)&&(c=eval),a._extensions=a._extensions||[],a._extensions.push(j);a.__exec=b;var q,r;h(a);var u={},v=a.newModule({}).constructor,w=/System\.register/,x=a.fetch;a.fetch=function(a){var b=this;return h(b),b.defined[a.name]?(a.metadata.format="defined",""):(q=null,r=!1,x.call(b,a))};var y=a.translate;a.translate=function(a){return this.register=g,this.__exec=b,a.metadata.deps=a.metadata.deps||[],Promise.resolve(y.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(w))&&(a.metadata.format="register"),b})};var z=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||[],esModule:null,execute:a.metadata.execute,executingRequire:a.metadata.executingRequire};else if("register"==a.metadata.format){q=null,r=!1;var d=c.global.System;if(c.global.System=c,c.__exec(a),c.global.System=d,q&&(b=q),!b&&s.defined[a.name]&&(b=s.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 z.call(this,a);c.defined[a.name]=b,b.deps=f(b.deps),b.name=a.name,b.esmExports=a.metadata.esmExports!==!1;for(var e=[],g=0,h=b.deps.length;h>g;g++)e.push(Promise.resolve(c.normalize(b.deps[g],a.name)));return Promise.all(e).then(function(d){return b.normalizedDeps=d,{deps:b.deps,execute:function(){k(a.name,c),p(a.name,[],c),c.defined[a.name]=void 0;var d=b.module.exports;return b.declarative||(d=b.esModule),c.newModule(d)}}})}}function k(a){function b(a,b,c){if(a.meta[b]={format:"global"},i&&!a.paths[b])try{a.paths[b]=require.resolve(c||b)}catch(d){}}a._extensions.push(k);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))/,f=/\$traceurRuntime\s*\./,g=/babelHelpers\s*\./,h=!0,i="undefined"!=typeof process&&"undefined"!=typeof require&&require.resolve,j=a.locate;a.locate=function(a){var c=this;return h&&("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")),h=!1),j.call(c,a)};var l=a.translate;a.translate=function(a){var b=this;return l.call(b,a).then(function(h){if("es6"==a.metadata.format||!a.metadata.format&&h.match(e))return a.metadata.format="es6",h;if("register"==a.metadata.format){if(!b.global.$traceurRuntime&&a.source.match(f))return b["import"]("traceur-runtime").then(function(){return h});if(!b.global.babelHelpers&&a.source.match(g))return b["import"]("babel/external-helpers").then(function(){return h})}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; "+h+"\nSystem = curSystem; })();":h}):h})}}function l(a){function b(a,b){for(var c=a.split(".");c.length;)b=b[c.shift()];return b}function c(a){function c(a){for(var b={},c=0,d=a.length;d>c;c++)b[a[c]]=!0;return b}if(!a.has("@@global-helpers")){var d,e,f=a.global.hasOwnProperty,g={};a.set("@@global-helpers",a.newModule({prepareGlobal:function(b,h,i){for(var j=0;j<h.length;j++){var k=g[h[j]];if(k)for(var l in k)a.global[l]=k[l]}if(!i&&i!==!1&&a.inferGlobals!==!1){d={},e=c(["indexedDB","sessionStorage","localStorage","clipboardData","frames","webkitStorageInfo","toolbar","statusbar","scrollbars","personalbar","menubar","locationbar","webkitIndexedDB","screenTop","screenLeft"]);for(var m in a.global)if(!e[m]&&(!f||a.global.hasOwnProperty(m)))try{d[m]=a.global[m]}catch(n){e[m]=!0}}},retrieveGlobal:function(c,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 if(h!==!1&&a.inferGlobals!==!1)for(var n in a.global)e[n]||f&&!a.global.hasOwnProperty(n)||n==a.global||d[n]==a.global[n]||(l[n]=a.global[n],j?j!==a.global[n]&&(k=!0):void 0===j&&(j=a.global[n]));return g[c]=l,k?l:j}}))}}a._extensions.push(l),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),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),b.global.require=c,b.global.define=g,b.get("@@global-helpers").retrieveGlobal(f.id,e,a.metadata.init)}),d.call(b,a)}}function m(a){function b(a){function b(a,b){for(var c=0;c<a.length;c++)if(a[c][0]<b.index&&a[c][1]>b.index)return!0;return!1}d.lastIndex=e.lastIndex=f.lastIndex=0;var c,g=[],h=[],i=[];if(a.length/a.split("\n").length<200){for(;c=f.exec(a);)h.push([c.index,c.index+c[0].length]);for(;c=e.exec(a);)b(h,c)||i.push([c.index,c.index+c[0].length])}for(;c=d.exec(a);)if(!b(h,c)&&!b(i,c)){var j=c[1].substr(1,c[1].length-2);if(j.match(/"|'/))continue;g.push(j)}return g}a._extensions.push(m);var c=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])(exports\s*(\[['"]|\.)|module(\.exports|\['exports'\]|\["exports"\])\s*(\[['"]|[=,\.]))/,d=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g,e=/(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,f=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g,g=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("/"),s._nodeRequire&&(f=f.substr(5));var g=(a.global._g={global:a.global,exports:c,module:d,require:b,__filename:s._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}),g.call(this,e)}}function n(a){function b(a,b){function c(a,b){for(var c=0;c<a.length;c++)if(a[c][0]<b&&a[c][1]>b)return!0;return!1}for(var d,e=[];d=m.exec(a);)e.push([d.index,d.index+d[0].length]);a=a.replace(k,function(a,b,d,f,g,h){return c(e,h+1)?a:""});var f=a.match(r),g=(f[1].split(",")[b]||"require").replace(s,""),h=u[g]||(u[g]=new RegExp(p+g+q,"g"));h.lastIndex=0;for(var d,i=[];d=h.exec(a);)i.push(d[2]||d[3]);return i}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 g,h,i;if(-1!=(g=t.call(e,"require"))){e.splice(g,1);var j=f.toString();e=e.concat(b(j,g))}-1!=(h=t.call(e,"exports"))&&e.splice(h,1),-1!=(i=t.call(e,"module"))&&e.splice(i,1);var k={deps:e,execute:function(b,c,j){for(var k=[],m=0;m<e.length;m++)k.push(b(e[m]));j.uri=a.baseURL+j.id,j.config=function(){},-1!=i&&k.splice(i,0,j),-1!=h&&k.splice(h,0,c),-1!=g&&k.splice(g,0,d(j.id,b,a));var n=f.apply(l,k);return"undefined"==typeof n&&j&&(n=j.exports),"undefined"!=typeof n?n:void 0}};if(c)v=0!=e.length||v||w?null:k,w=!0,a.register(c,k.deps,!1,k.execute);else{if(v)throw new TypeError("Multiple defines for anonymous module");v=k}}var e=a.onScriptLoad;a.onScriptLoad=function(a){e(a),(v||w)&&(a.metadata.format="defined",a.metadata.registered=!0),v&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(v.deps):v.deps,a.metadata.execute=v.execute)},c.amd={},a.amdDefine=c}function f(a){a.amdDefine||e(a),v=null,w=null;var b=a.global;x=b.module,y=b.exports,z=b.define,b.module=void 0,b.exports=void 0,b.define&&b.define===a.amdDefine||(b.define=a.amdDefine)}function g(a){var b=a.global;b.define=z,b.module=x,b.exports=y}var h="undefined"!=typeof module&&module.exports;a._extensions.push(n);var i=/(?:^\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]*\))/,j=/\/\*[\s\S]*?\*\/|([^:]|^)\/\/.*$/gm,k=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,m=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g,o=/(function|var|let|const|return|export|\"|\'|\(|\=)$/i,p="(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])",q="\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)",r=/\(([^\)]*)\)/,s=/^\s+|\s+$/g,u={};a.amdRequire=function(){return c.apply(this,arguments)};var v,w,x,y,z;if(e(a),a.scriptLoader){var A=a.fetch;a.fetch=function(a){return f(this),A.call(this,a)}}var B=a.instantiate;a.instantiate=function(a){var b=this,c=a.source.replace(j,"$1"),d=c.match(i);if("amd"==a.metadata.format||!a.metadata.format&&d){var e=c.substring(0,c.indexOf(d[0])),k=e.replace(s,"");if(!o.test(k)){if(a.metadata.format="amd",b.execute!==!1&&(f(b),b.__exec(a),g(b),!v&&!w&&!h))throw new TypeError("AMD module "+a.name+" did not define");v&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(v.deps):v.deps,a.metadata.execute=v.execute)}}return B.call(b,a)}}function o(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(o);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 p(a){"undefined"==typeof t&&(t=Array.prototype.indexOf),a._extensions.push(p);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,!0)}).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 q(a){"undefined"==typeof t&&(t=Array.prototype.indexOf),a._extensions.push(q),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!=t.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 r(a){a.depCache=a.depCache||{},a._extensions.push(r);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)}}a.upgradeSystemLoader=void 0;var s,t=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},u="undefined"!=typeof process&&!!process.platform.match(/^win/);!function(){var b=a.System;s=a.System=new LoaderPolyfill(b),s.baseURL=b.baseURL,s.paths={"*":"*.js"},s.originalSystem=b}(),s.noConflict=function(){a.SystemJS=s,a.System=s.originalSystem};var v=!0;try{Object.getOwnPropertyDescriptor({a:0},"a")}catch(w){v=!1}var x;!function(){try{Object.defineProperty({},"a",{})&&(x=Object.defineProperty)}catch(a){x=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}();var y=a.System.originalSystem;h(s),i(s),j(s),k(s),l(s),m(s),n(s),o(s),p(s),q(s),r(s)};var b,c;!function(){function d(a,c){if(!a.originalErr)for(var d=(a.stack||a.message||a).toString().split("\n"),e=[],f=0;f<d.length;f++)("undefined"==typeof b||-1==d[f].indexOf(b.src))&&e.push(d[f]);var g=(e?e.join("\n	"):a.message)+"\n	"+c;h||(g=g.replace(isWindows?/file:\/\/\//g:/file:\/\//g,""));var i=o?new Error(g,a.fileName,a.lineNumber):new Error(g);return h?i.stack=null:i.stack=g,i.originalErr=a.originalErr||a,i}var e,f,g="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,h="undefined"!=typeof window&&"undefined"!=typeof document,i=h&&window.chrome&&window.chrome.extension,j="object"==typeof process&&"[object process]"==={}.toString.call(process);if(e=function(a,b,c){try{new Function(a).call(c)}catch(e){throw d(e,"Evaluating "+b)}},g)a.upgradeSystemLoader();else if(h&&!i){var k,l=document.getElementsByTagName("script");b=l[l.length-1],f=function(a){k||(k=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},k.appendChild(b),k.removeChild(b),window.onerror=d,c)throw c},a.upgradeSystemLoader()}else if(j){var m=require("steal-es6-module-loader");a.System=m.System,a.Loader=m.Loader,a.upgradeSystemLoader(),module.exports=a.System;var n=require("vm");e=function(a){n.runInThisContext(a)}}var o="_"==new Error(0,"_").fileName;c=function(a,b,c,d,g){a+="\n//# sourceURL="+b+(d?"\n//# sourceMappingURL="+d:"");var h="script"===g&&"function"==typeof f;h?f(a):e(a,b,c)}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global),function(a){function b(a){function c(a){function b(){for(var b,c=[],e=0;e<arguments.length;e++)"string"==typeof arguments[e]?c.push(s(arguments[e])):b=arguments[e];"function"!=typeof b&&(b=function(a){return function(){return a}}(b)),d={deps:c,execute:function(d,e,f){for(var g=[],h=0;h<c.length;h++)g.push(d(c[h]));var i=b.apply(a.global,g);return"undefined"!=typeof i?i:void 0}}}d=null,a.global.module=void 0,a.global.exports=void 0,a.global.steal=b}a._extensions&&a._extensions.push(b);var d,e=/(?:^\s*|[}{\(\);,\n\?\&]\s*)steal\s*\(\s*((?:"[^"]+"\s*,|'[^']+'\s*,\s*)*)/,f=a.instantiate;return a.instantiate=function(a){var b=this;if("steal"===a.metadata.format||!a.metadata.format&&a.source.match(e)){a.metadata.format="steal";var g=b.global.steal;if(c(b),b.__exec(a),b.global.steal=g,!d)throw"Steal module "+a.name+" did not call steal";d&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(d.deps):d.deps,a.metadata.execute=d.execute)}return f.call(b,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=function(a,b){for(var c=b.split("/"),d=a.split("/"),e=[];c.length&&d.length&&c[0]==d[0];)c.shift(),d.shift();for(var f=0;f<d.length-1;f++)e.push("../");return"./"+e.join("")+c.join("/")},m="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,n="object"==typeof process&&"[object process]"==={}.toString.call(process),o=!n&&"undefined"!=typeof window,p="object"==typeof console?void 0:function(){},q=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]:""},r=function(a){var b=q(a),c=b.lastIndexOf(".");return-1!==c?b.substr(c+1):""},s=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=q(a),h=r(a);return"/"===a[a.length-1]?a+q(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},t=function(a){var b=a||this.System;return u(this.addSteal(b.clone()))},u=function(a){function b(a){a._extensions&&a._extensions.push(b),a._contextualModules={},a.setContextual=function(a,b){this._contextualModules[a]=b};var c=a.normalize;a.normalize=function(a,b){var d=this;if(b){var e=this._contextualModules[a];if(e)return a=a+"/"+b,d.has(a)?Promise.resolve(a):("string"==typeof e&&(e=d["import"](e)),Promise.resolve(e).then(function(c){return c["default"]&&(c=c["default"]),d.set(a,d.newModule(c.call(d,b))),a}))}return c.apply(this,arguments)}}function r(a){function b(a,b){var c;for(c in a)b(c,a[c])}function c(a){function b(a,b){for(var c=0;c<a.length;c++)if(a[c][0]<b.index&&a[c][1]>b.index)return!0;return!1}function c(c){for(;d=c.exec(a);)if(!b(f,d)&&!b(g,d)){var h=d[1];e.push(h)}}i.lastIndex=k.lastIndex=j.lastIndex=l.lastIndex=0;var d,e=[],f=[],g=[];if(a.length/a.split("\n").length<200){for(;d=l.exec(a);)f.push([d.index,d.index+d[0].length]);for(;d=k.exec(a);)b(f,d)||g.push([d.index,d.index+d[0].length])}return c(i),c(j),e}a._extensions&&a._extensions.push(r),a._traceData={loads:{},parentMap:{}},a.getDependencies=function(a){var b=this.getModuleLoad(a);return b?b.metadata.dependencies:void 0},a.getDependants=function(a){var c=[],d=this._traceData.parentMap[a]||{};return b(d,function(a){c.push(a)}),c},a.getModuleLoad=function(a){return this._traceData.loads[a]},a.getBundles=function(a,c){c=c||{},c[a]=!0;var d=this,e=d._traceData.parentMap,f=e[a];if(!f)return[a];var g=[];return b(f,function(a,b){c[a]||(g=g.concat(d.getBundles(a,c)))}),g},a._allowModuleExecution={},a.allowModuleExecution=function(a){var b=this;return b.normalize(a).then(function(a){b._allowModuleExecution[a]=!0})};var d=a.normalize;a.normalize=function(a,b){var c=d.apply(this,arguments);if(b){var e=this._traceData.parentMap;return c.then(function(a){return e[a]||(e[a]={}),e[a][b]=!0,a})}return c};var e=function(){return a.newModule({})},f={traceur:!0,babel:!0},g=function(a){return f[a.name]||this._allowModuleExecution[a.name]},h=[].map||function(a){for(var b=[],c=0,d=this.length;d>c;c++)b.push(a(this[c]));return b},i=/import .*["'](.+)["']/g,j=/export .+ from ["'](.+)["']/g,k=/(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,l=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g,m=a.instantiate;a.instantiate=function(a){function b(b){var c=d.preventModuleExecution&&!g.call(d,a),f=b?b.deps:a.metadata.deps;return Promise.all(h.call(f,function(b){return d.normalize(b,a.name)})).then(function(d){return a.metadata.deps=f,a.metadata.dependencies=d,c?{deps:f,execute:e}:b})}this._traceData.loads[a.name]=a;var d=this,f=Promise.resolve(m.apply(this,arguments));return f.then(function(d){if(!d){var e=c(a.source);a.metadata.deps=e}return b(d)})};var n=a.transpile;a.transpile=function(a){var b=a.metadata.transpiledSource;return b?(delete a.metadata.transpiledSource,Promise.resolve(b)):n.apply(this,arguments)},a.eachModule=function(a){for(var b in this._loader.modules)a.call(this,b,this.get(b))}}function t(a){function b(a){if(("json"===a.metadata.format||!a.metadata.format)&&c.test(a.source))try{return JSON.parse(a.source)}catch(b){return p("Error parsing "+a.address+":",b),{}}}var c=/^[\s\n\r]*[\{\[]/,d=/\.json$/i,e=/\.js$/i;a._extensions.push(t);var f=a.locate;a.locate=function(a){return f.apply(this,arguments).then(function(b){return d.test(a.name)?b.replace(e,""):b})};var g=function(a,b,c){var d=a.jsonOptions&&a.jsonOptions.transform;return d?d.call(a,b,c):c};if(n){var h=a.translate;return void(a.translate=function(a){var c=a.metadata.address||a.address;if(d.test(c)&&-1===a.name.indexOf("!")){var e=b(a);if(e)return e=g(this,a,e),"define([], function(){\n	return "+JSON.stringify(e)+"\n});"}return h.call(this,a)})}var i=a.instantiate;return a.instantiate=function(a){var c,d=this;return c=b(a),c&&(c=g(d,a,c),a.metadata.format="json",a.metadata.execute=function(){return c}),i.call(d,a)},a}function u(a){a._extensions.push(u),a.getEnv=function(){var a=(this.env||"").split("-");return a[1]||this.env},a.getPlatform=function(){var a=(this.env||"").split("-");return 2===a.length?a[0]:void 0},a.isEnv=function(a){return this.getEnv()===a},a.isPlatform=function(a){return this.getPlatform()===a}}a.set("@loader",a.newModule({"default":a,__useDefault:!0})),a.config({map:{"@loader/@loader":"@loader","@steal/@steal":"@steal"}});var v,w,x,y=function(){var b=arguments,c=function(){var a,c=[];d(b,function(b){f(b)?c.push(y.System["import"](s(b))):"function"==typeof b&&(a=b)});var e=Promise.all(c);return a?e.then(function(b){return a&&a.apply(null,b)}):e};return a.isEnv("production")?c():v.then(c,c)};a.set("@steal",a.newModule({"default":y,__useDefault:!0})),y.System=y.loader=a,y.parseURI=j,y.joinURIs=k,y.normalize=s,y.relativeURI=l;var z=function(a){a._extensions&&a._extensions.push(z),a.ext={};var b=a.normalize,c=/\.(\w+)!?$/;a.normalize=function(d,e,f,g){if(g)return b.apply(this,arguments);var h=d.match(c);if(h){var i="!"===d[d.length-1],j=h[1];e&&a.configMain!==d&&".js"===h[0]?d=d.substr(0,d.lastIndexOf(".")):a.ext[j]&&(d=d+(i?"":"!")+a.ext[j])}return b.call(this,d,e,f)}};z(a);var A=function(a){a._extensions&&a._extensions.push(A);var b=a.normalize,c=/@.+#.+/;a.normalize=function(a,d,e,f){var g,h,i=a.length-1;return"/"===a[i]&&(g=a.substring(0,i).lastIndexOf("/"),h=a.substring(g+1,i),c.test(h)&&(h=h.substr(h.lastIndexOf("#")+1)),a+=h),b.call(this,a,d,e,f)}};A(a);var B=function(a){var b=function(a,b){var c=this;return Promise.resolve(c.normalize(a,b)).then(function(a){return c.locate({name:a,metadata:{}})}).then(function(a){return".js"===a.substr(a.length-3)&&(a=a.substr(0,a.length-3)),a})},c=function(a,b){for(var c=b.split("/"),d=a.split("/"),e=[];c.length&&d.length&&c[0]==d[0];)c.shift(),d.shift();for(var f=0;f<d.length-1;f++)e.push("../");return e.join("")+c.join("/")},d=/(locate):\/\/([a-z0-9\/._@-]*)/gi,e=function(a,b){var e=[];return a.replace(d,function(a,d,f,g){e.push({start:g,end:g+a.length,name:f,postLocate:function(a){return c(b,a)}})}),e},f=a.translate;a.translate=function(a){var c=this;if(!a.metadata.plugin)return f.call(this,a);var d=a.metadata.plugin.locateScheme;if(!d)return f.call(this,a);var g=e(a.source,a.address);if(!g.length)return f.call(this,a);for(var h=[],i=0,j=g.length;j>i;i++)h.push(b.call(this,g[i].name,a.name));return Promise.all(h).then(function(b){for(var d=g.length-1;d>=0;d--)a.source=a.source.substr(0,g[d].start)+g[d].postLocate(b[d])+a.source.substr(g[d].end,a.source.length);return f.call(c,a)})}};"undefined"!=typeof a&&B(a),"undefined"!=typeof a&&b(a);var C=function(a){function b(){document.removeEventListener("DOMContentLoaded",b,!1),window.removeEventListener("load",b,!1),c()}function c(){for(var b=document.getElementsByTagName("script"),c=0;c<b.length;c++){var d=b[c];if("text/steal-module"==d.type){var e=d.innerHTML;/\S/.test(e)&&a.module(e)["catch"](function(a){setTimeout(function(){throw a})})}}}a.loadScriptModules=function(){o&&("complete"===document.readyState?setTimeout(c):document.addEventListener&&(document.addEventListener("DOMContentLoaded",b,!1),window.addEventListener("load",b,!1)))}};"undefined"!=typeof a&&C(a),"undefined"!=typeof a&&r(a),
-"undefined"!=typeof a&&t(a);var D=function(a,b,c){var e=a.config;a.config=function(f){var h=g({},f);d(b,function(b){var d=c[b];if(d.set&&h[b]){var e=d.set.call(a,h[b],f);void 0!==e&&(a[b]=e),delete h[b]}}),e.call(this,h)}},E=function(a,b,c){a[b]||(a[b]=c)};a.configMain="@config",a.paths[a.configMain]="stealconfig.js",a.env=(m?"worker":"window")+"-development",a.ext={},a.logLevel=0;var F="bundles/*.css",G="bundles/*";E(a.paths,F,"dist/bundles/*css"),E(a.paths,G,"dist/bundles/*.js");var H=function(b){return{order:b,set:function(b){var c=q(b),d=h(b);n||(a.configPath=k(location.href,b)),a.configMain=c,a.paths[c]=c,this.config({baseURL:(d===b?".":d)+"/"})}}},I=function(a,b){return{order:b,set:function(b){this[a]=b}}},J=function(a,b){return{order:b,set:function(b){this[a]=!!b}}},K=function(a,b){return{order:b,set:function(b){this[a]=L(b)}}},L=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},M=function(a){var b=a.lastIndexOf("!");return-1!==b?a.substr(b+1):void 0},N=function(a){var b=a.lastIndexOf("!");return-1!==b?a.substr(0,b):void 0},O=function(){if(this.loadBundles&&this.main&&!this.stealBundled){var b=this.main,c=this.bundlesName||"bundles/",d=c+b;E(this.meta,d,{format:"amd"});var e=M(a.configMain),f=[b,a.configMain];if(e&&a.set(e,a.newModule({})),e=M(b)){var g=N(b);f.push(e),f.push(g),d=c+g.substr(0,g.indexOf("."))}this.bundles[d]=f}},P=function(){if(this.envs){var a=this.envs[this.env];a&&this.config(a)}},Q=function(){if(this.liveReloadInstalled){var a=this;this["import"]("live-reload",{name:"@@steal"}).then(function(b){b(a.configMain,function(){P.call(a)})})}},R=[],S={map:!0,paths:!0,meta:!0},T={instantiated:{order:1,set:function(a){var b=this;d(a||{},function(a,c){b.set(c,b.newModule(a))})}},envs:{order:2,set:function(a){var b=this.envs;b||(b=this.envs={}),d(a,function(a,c){var e=b[c];e||(e=b[c]={}),d(a,function(a,b){S[b]&&e[b]?g(e[b],a):e[b]=a})})}},env:{order:3,set:function(a){this.env=a,this.isEnv("production")&&(this.loadBundles=!0)}},loadBundles:J("loadBundles",4),stealBundled:J("stealBundled",5),bundle:{order:6,set:function(b){a.bundle=b}},bundlesPath:{order:7,set:function(a){return this.paths[F]=a+"/*css",this.paths[G]=a+"/*.js",a}},meta:{order:8,set:function(a){var b=this;d(a||{},function(a,c){if("object"==typeof a){var d=b.meta[c];if(d&&d.format===a.format){var e=a.deps;g(a,d),e&&(a.deps=e)}}}),g(this.meta,a)}},configMain:I("configMain",9),config:H(10),configPath:H(11),baseURL:K("baseURL",12),main:I("main",13),stealPath:{order:14,set:function(b,c){b=L(b);var d=b.split("/");E(this.paths,"@dev",b+"/ext/dev.js"),E(this.paths,"npm",b+"/ext/npm.js"),E(this.paths,"npm-extension",b+"/ext/npm-extension.js"),E(this.paths,"npm-utils",b+"/ext/npm-utils.js"),E(this.paths,"npm-crawl",b+"/ext/npm-crawl.js"),E(this.paths,"npm-load",b+"/ext/npm-load.js"),E(this.paths,"npm-convert",b+"/ext/npm-convert.js"),E(this.paths,"semver",b+"/ext/semver.js"),E(this.paths,"bower",b+"/ext/bower.js"),E(this.paths,"live-reload",b+"/ext/live-reload.js"),E(this.paths,"steal-clone",b+"/ext/steal-clone.js"),this.paths.traceur=b+"/ext/traceur.js",this.paths["traceur-runtime"]=b+"/ext/traceur-runtime.js",this.paths.babel=b+"/ext/babel.js",this.paths["babel-runtime"]=b+"/ext/babel-runtime.js",E(this.meta,"traceur",{exports:"traceur"}),this.setContextual("steal-clone","steal-clone"),n?"@config"===this.configMain&&"steal"===i(d)&&(d.pop(),"node_modules"===i(d)&&(this.configMain="package.json!npm",O.call(this),d.pop())):c.baseURL||c.config||c.configPath||("steal"===i(d)&&(d.pop(),"bower_components"===i(d)&&(a.configMain="bower.json!bower",O.call(this),d.pop()),"node_modules"===i(d)&&(a.configMain="package.json!npm",O.call(this),d.pop())),this.config({baseURL:d.join("/")+"/"})),a.stealPath=b}},stealURL:{order:15,set:function(b,c){var d=b.split("?"),e=d.shift(),f=e.split("/"),g=f.pop(),h=f.join("/"),i=this.getPlatform()||(m?"worker":"window");a.stealURL=e,(this.stealBundled&&this.stealBundled===!0||g.indexOf("steal.production")>-1&&!c.env)&&this.config({env:i+"-production"}),(this.isEnv("production")||this.loadBundles)&&O.call(this),T.stealPath.set.call(this,h,c)}}};d(T,function(a,b){a.order?R.splice(a.order,0,b):R.push(b)}),D(a,R,T),y.config=function(a){return"string"==typeof a?this.loader[a]:void this.loader.config(a)},"undefined"!=typeof a&&u(a);var U=function(a){var b={},d=/Url$/,e=a.split("?"),f=e.shift(),g=e.join("?"),h=g.split("&"),i=f.split("/");i.pop(),i.join("/");if(h.length&&h[0].length)for(var j,k=0;k<h.length;k++){j=h[k];var l=j.split("=");if(l.length>1){var m=c(l[0]);m=m.replace(d,"URL"),b[m]=l.slice(1).join("=")}}return b},V=function(a){var b={},e=/Url$/;b.stealURL=a.src,d(a.attributes,function(a){var d=c(0===a.nodeName.indexOf("data-")?a.nodeName.replace("data-",""):a.nodeName);d=d.replace(e,"URL"),b[d]=""===a.value?!0:a.value});var f=a.innerHTML;return/\S/.test(f)&&(b.mainSource=f),g(U(a.src),b)},W=function(){return new Promise(function(a,b){function c(){for(var b=0;b<d.length;++b)d[b].removeEventListener("load",c,!1);a(V(event.target))}if(m)return void a(g({stealURL:location.href},U(location.href)));if(o){if(document.currentScript)return void a(V(document.currentScript));for(var d=document.scripts,e=0;e<d.length;++e)d[e].addEventListener("load",c,!1)}else a({stealPath:__dirname})})};return y.startup=function(a){var b,c,d=this.loader;return v=new Promise(function(a,d){b=a,c=d}),x=W().then(function(f){if(a="object"==typeof a?g(a,f):f,d.config(a),P.call(d),d.loadBundles){if(!d.main&&d.isEnv("production")&&!d.stealBundled){var h=console&&console.warn||function(){};h.call(console,"Attribute 'main' is required in production environment. Please add it to the script tag.")}return d["import"](d.configMain).then(b,c),v.then(function(a){return P.call(d),d.main?d["import"](d.main):a})}return d["import"](d.configMain).then(b,c),w=v.then(function(){return P.call(d),Q.call(d),a&&d.config(a),d["import"]("@dev")}),w.then(function(){if(!d.main||"build"===d.env)return v;var a=d.main;return"string"==typeof a&&(a=[a]),Promise.all(e(a,function(a){return d["import"](a)}))})}).then(function(){return d.mainSource?d.module(d.mainSource):d.loadScriptModules()})},y.done=function(){return x},y["import"]=function(){function a(){var a=[];return d(b,function(b){a.push(c["import"](b))}),a.length>1?Promise.all(a):a[0]}var b=arguments,c=this.System;return v||(c.main||(c.main="@empty"),y.startup()),v.then(a)},y.setContextual=a.setContextual.bind(a),y.isEnv=a.isEnv.bind(a),y.isPlatform=a.isPlatform.bind(a),y};if("undefined"!=typeof System&&b(System),n)require("steal-systemjs"),a.steal=u(System),a.steal.System=System,a.steal.dev=require("./ext/dev.js"),steal.clone=t,module.exports=a.steal,a.steal.addSteal=b;else{var v=a.steal;a.steal=u(System),a.steal.startup(v&&"object"==typeof v&&v).then(null,function(a){if("undefined"!=typeof console){var b=console,c=b.error?"error":"log";b[c](a,a.stack)}}),a.steal.clone=t,a.steal.addSteal=b}}("undefined"==typeof window?"undefined"==typeof global?this:global:window);
\ No newline at end of file
+u&&(e=e.replace(/\\/g,"/"));else if("undefined"==typeof window)e=a.global.location.href;else if(e=document.baseURI,!e){var f=document.getElementsByTagName("base");e=f[0]&&f[0].href||window.location.href}var g,i=a.locate;a.locate=function(a){return this.baseURL!=g&&(g=d(e,this.baseURL),"/"!=g.substr(g.length-1,1)&&(g+="/"),this.baseURL=g),Promise.resolve(i.call(this,a))},a._extensions=a._extensions||[],a._extensions.push(h),a.clone=function(){var a=this,c=new LoaderPolyfill(y);return c.baseURL=a.baseURL,c.paths={"*":"*.js"},b(a._extensions,c),c}}function i(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*;?)+/,d=/\/\*.*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;a.meta={},a._extensions=a._extensions||[],a._extensions.push(i);var e=a.locate;a.locate=function(a){return b(this,a),e.call(this,a)};var f=a.translate;a.translate=function(a){var e=a.source.match(c);if(e)for(var g=e[0].match(d),h=0;h<g.length;h++){var i=g[h].length,j=g[h].substr(0,1);if(";"==g[h].substr(i-1,1)&&i--,'"'==j||"'"==j){var k=g[h].substr(1,g[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),f.call(this,a)}}function j(a){function b(a,b){var e,f=this,g=a.source.lastIndexOf("\n");-1!=g&&"//# sourceMappingURL="==a.source.substr(g+1,21)&&(e=a.source.substr(g+22,a.source.length-g-22),"undefined"!=typeof d&&(e=d(a.address,e)));var h=a.metadata&&a.metadata.eval;b=b||f.global,c(a.source,a.address,b,e,h)}function f(a){for(var b=[],c=0,d=a.length;d>c;c++)-1==t.call(b,a[c])&&b.push(a[c]);return b}function g(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 h(a){if(!a.register){a.register=g,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 i(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==t.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 h=a.groupIndex+(g.declarative!=a.declarative);if(void 0===g.groupIndex||g.groupIndex<h){if(void 0!==g.groupIndex&&(c[g.groupIndex].splice(t.call(c[g.groupIndex],g),1),0==c[g.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");g.groupIndex=h}i(g,b,c)}}}}function k(a,b){var c=b.defined[a];if(!c.module){c.groupIndex=0;var d=[];i(c,b,d);for(var e=!!c.declarative==d.length%2,f=d.length-1;f>=0;f--){for(var g=d[f],h=0;h<g.length;h++){var j=g[h];e?m(j,b):o(j,b)}e=!e}}}function l(a){return u[a]||(u[a]={name:a,dependencies:[],exports:{},importers:[]})}function m(a,b){if(!a.module){var c=a.module=l(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=t.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],j=b.defined[i],k=u[i];k?h=k.exports:j&&!j.declarative?h=j.module.exports&&j.module.exports.__esModule?j.module.exports:j.esModule:j?(m(j,b),k=j.module,h=k.exports):h=b.get(i),k&&k.importers?(k.importers.push(c),c.dependencies.push(k)):c.dependencies.push(null),c.setters[f]&&c.setters[f](h)}}}function n(a,b){var c,d=b.defined[a];if(d)d.declarative?p(a,[],b):d.evaluated||o(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 o(a,b){if(!a.module){var c={},d=a.module={exports:c,id:a.name};if(!a.executingRequire)for(var f=0,g=a.normalizedDeps.length;g>f;f++){var h=a.normalizedDeps[f],i=b.defined[h];i&&o(i,b)}a.evaluated=!0;var j=a.execute.call(b.global,function(c){for(var d=0,e=a.deps.length;e>d;d++)if(a.deps[d]==c)return n(a.normalizedDeps[d],b);throw new TypeError("Module "+c+" not declared as a dependency.")},c,d);j&&(d.exports=j),c=d.exports,c&&(c.__esModule||c instanceof v)?a.esModule=c:a.esmExports&&c!==b.global?a.esModule=e(c):a.esModule={"default":c}}}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==t.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 t&&(t=Array.prototype.indexOf),("undefined"==typeof c||"undefined"!=typeof document&&!document.addEventListener)&&(c=eval),a._extensions=a._extensions||[],a._extensions.push(j);a.__exec=b;var q,r;h(a);var u={},v=a.newModule({}).constructor,w=/System\.register/,x=a.fetch;a.fetch=function(a){var b=this;return h(b),b.defined[a.name]?(a.metadata.format="defined",""):(q=null,r=!1,x.call(b,a))};var y=a.translate;a.translate=function(a){return this.register=g,this.__exec=b,a.metadata.deps=a.metadata.deps||[],Promise.resolve(y.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(w))&&(a.metadata.format="register"),b})};var z=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||[],esModule:null,execute:a.metadata.execute,executingRequire:a.metadata.executingRequire};else if("register"==a.metadata.format){q=null,r=!1;var d=c.global.System;if(c.global.System=c,c.__exec(a),c.global.System=d,q&&(b=q),!b&&s.defined[a.name]&&(b=s.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 z.call(this,a);c.defined[a.name]=b,b.deps=f(b.deps),b.name=a.name,b.esmExports=a.metadata.esmExports!==!1;for(var e=[],g=0,h=b.deps.length;h>g;g++)e.push(Promise.resolve(c.normalize(b.deps[g],a.name)));return Promise.all(e).then(function(d){return b.normalizedDeps=d,{deps:b.deps,execute:function(){k(a.name,c),p(a.name,[],c),c.defined[a.name]=void 0;var d=b.module.exports;return b.declarative||(d=b.esModule),c.newModule(d)}}})}}function k(a){function b(a,b,c){if(a.meta[b]={format:"global"},i&&!a.paths[b])try{a.paths[b]=require.resolve(c||b)}catch(d){}}a._extensions.push(k);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))/,f=/\$traceurRuntime\s*\./,g=/babelHelpers\s*\./,h=!0,i="undefined"!=typeof process&&"undefined"!=typeof require&&require.resolve,j=a.locate;a.locate=function(a){var c=this;return h&&("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")),h=!1),j.call(c,a)};var l=a.translate;a.translate=function(a){var b=this;return l.call(b,a).then(function(h){if("es6"==a.metadata.format||!a.metadata.format&&h.match(e))return a.metadata.format="es6",h;if("register"==a.metadata.format){if(!b.global.$traceurRuntime&&a.source.match(f))return b["import"]("traceur-runtime").then(function(){return h});if(!b.global.babelHelpers&&a.source.match(g))return b["import"]("babel/external-helpers").then(function(){return h})}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; "+h+"\nSystem = curSystem; })();":h}):h})}}function l(a){function b(a,b){for(var c=a.split(".");c.length;)b=b[c.shift()];return b}function c(a){function c(a){for(var b={},c=0,d=a.length;d>c;c++)b[a[c]]=!0;return b}if(!a.has("@@global-helpers")){var d,e,f=a.global.hasOwnProperty,g={};a.set("@@global-helpers",a.newModule({prepareGlobal:function(b,h,i){for(var j=0;j<h.length;j++){var k=g[h[j]];if(k)for(var l in k)a.global[l]=k[l]}if(!i&&i!==!1&&a.inferGlobals!==!1){d={},e=c(["indexedDB","sessionStorage","localStorage","clipboardData","frames","webkitStorageInfo","toolbar","statusbar","scrollbars","personalbar","menubar","locationbar","webkitIndexedDB","screenTop","screenLeft"]);for(var m in a.global)if(!e[m]&&(!f||a.global.hasOwnProperty(m)))try{d[m]=a.global[m]}catch(n){e[m]=!0}}},retrieveGlobal:function(c,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 if(h!==!1&&a.inferGlobals!==!1)for(var n in a.global)e[n]||f&&!a.global.hasOwnProperty(n)||n==a.global||d[n]==a.global[n]||(l[n]=a.global[n],j?j!==a.global[n]&&(k=!0):void 0===j&&(j=a.global[n]));return g[c]=l,k?l:j}}))}}a._extensions.push(l),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),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),b.global.require=c,b.global.define=g,b.get("@@global-helpers").retrieveGlobal(f.id,e,a.metadata.init)}),d.call(b,a)}}function m(a){function b(a){function b(a,b){for(var c=0;c<a.length;c++)if(a[c][0]<b.index&&a[c][1]>b.index)return!0;return!1}d.lastIndex=e.lastIndex=f.lastIndex=0;var c,g=[],h=[],i=[];if(a.length/a.split("\n").length<200){for(;c=f.exec(a);)h.push([c.index,c.index+c[0].length]);for(;c=e.exec(a);)b(h,c)||i.push([c.index,c.index+c[0].length])}for(;c=d.exec(a);)if(!b(h,c)&&!b(i,c)){var j=c[1].substr(1,c[1].length-2);if(j.match(/"|'/))continue;g.push(j)}return g}a._extensions.push(m);var c=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])(exports\s*(\[['"]|\.)|module(\.exports|\['exports'\]|\["exports"\])\s*(\[['"]|[=,\.]))/,d=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g,e=/(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,f=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g,g=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("/"),s._nodeRequire&&(f=f.substr(5));var g=(a.global._g={global:a.global,exports:c,module:d,require:b,__filename:s._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}),g.call(this,e)}}function n(a){function b(a,b){function c(a,b){for(var c=0;c<a.length;c++)if(a[c][0]<b&&a[c][1]>b)return!0;return!1}for(var d,e=[];d=m.exec(a);)e.push([d.index,d.index+d[0].length]);a=a.replace(k,function(a,b,d,f,g,h){return c(e,h+1)?a:""});var f=a.match(r),g=(f[1].split(",")[b]||"require").replace(s,""),h=u[g]||(u[g]=new RegExp(p+g+q,"g"));h.lastIndex=0;for(var d,i=[];d=h.exec(a);)i.push(d[2]||d[3]);return i}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 g,h,i;if(-1!=(g=t.call(e,"require"))){e.splice(g,1);var j=f.toString();e=e.concat(b(j,g))}-1!=(h=t.call(e,"exports"))&&e.splice(h,1),-1!=(i=t.call(e,"module"))&&e.splice(i,1);var k={deps:e,execute:function(b,c,j){for(var k=[],m=0;m<e.length;m++)k.push(b(e[m]));j.uri=a.baseURL+j.id,j.config=function(){},-1!=i&&k.splice(i,0,j),-1!=h&&k.splice(h,0,c),-1!=g&&k.splice(g,0,d(j.id,b,a));var n=f.apply(l,k);return"undefined"==typeof n&&j&&(n=j.exports),"undefined"!=typeof n?n:void 0}};if(c)v=0!=e.length||v||w?null:k,w=!0,a.register(c,k.deps,!1,k.execute);else{if(v)throw new TypeError("Multiple defines for anonymous module");v=k}}var e=a.onScriptLoad;a.onScriptLoad=function(a){e(a),(v||w)&&(a.metadata.format="defined",a.metadata.registered=!0),v&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(v.deps):v.deps,a.metadata.execute=v.execute)},c.amd={},a.amdDefine=c}function f(a){a.amdDefine||e(a),v=null,w=null;var b=a.global;x=b.module,y=b.exports,z=b.define,b.module=void 0,b.exports=void 0,b.define&&b.define===a.amdDefine||(b.define=a.amdDefine)}function g(a){var b=a.global;b.define=z,b.module=x,b.exports=y}var h="undefined"!=typeof module&&module.exports;a._extensions.push(n);var i=/(?:^\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]*\))/,j=/\/\*[\s\S]*?\*\/|([^:]|^)\/\/.*$/gm,k=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,m=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g,o=/(function|var|let|const|return|export|\"|\'|\(|\=)$/i,p="(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])",q="\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)",r=/\(([^\)]*)\)/,s=/^\s+|\s+$/g,u={};a.amdRequire=function(){return c.apply(this,arguments)};var v,w,x,y,z;if(e(a),a.scriptLoader){var A=a.fetch;a.fetch=function(a){return f(this),A.call(this,a)}}var B=a.instantiate;a.instantiate=function(a){var b=this,c=a.source.replace(j,"$1"),d=c.match(i);if("amd"==a.metadata.format||!a.metadata.format&&d){var e=c.substring(0,c.indexOf(d[0])),k=e.replace(s,"");if(!o.test(k)){if(a.metadata.format="amd",b.execute!==!1&&(f(b),b.__exec(a),g(b),!v&&!w&&!h))throw new TypeError("AMD module "+a.name+" did not define");v&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(v.deps):v.deps,a.metadata.execute=v.execute)}}return B.call(b,a)}}function o(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(o);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 p(a){"undefined"==typeof t&&(t=Array.prototype.indexOf),a._extensions.push(p);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,!0)}).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 q(a){"undefined"==typeof t&&(t=Array.prototype.indexOf),a._extensions.push(q),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!=t.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 r(a){a.depCache=a.depCache||{},a._extensions.push(r);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)}}a.upgradeSystemLoader=void 0;var s,t=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},u="undefined"!=typeof process&&!!process.platform.match(/^win/);!function(){var b=a.System;s=a.System=new LoaderPolyfill(b),s.baseURL=b.baseURL,s.paths={"*":"*.js"},s.originalSystem=b}(),s.noConflict=function(){a.SystemJS=s,a.System=s.originalSystem};var v=!0;try{Object.getOwnPropertyDescriptor({a:0},"a")}catch(w){v=!1}var x;!function(){try{Object.defineProperty({},"a",{})&&(x=Object.defineProperty)}catch(a){x=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}();var y=a.System.originalSystem;h(s),i(s),j(s),k(s),l(s),m(s),n(s),o(s),p(s),q(s),r(s)};var b,c;!function(){function d(a,c){if(!a.originalErr)for(var d=(a.stack||a.message||a).toString().split("\n"),e=[],f=0;f<d.length;f++)("undefined"==typeof b||-1==d[f].indexOf(b.src))&&e.push(d[f]);var g=(e?e.join("\n	"):a.message)+"\n	"+c;h||(g=g.replace(isWindows?/file:\/\/\//g:/file:\/\//g,""));var i=o?new Error(g,a.fileName,a.lineNumber):new Error(g);return h?i.stack=null:i.stack=g,i.originalErr=a.originalErr||a,i}var e,f,g="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,h="undefined"!=typeof window&&"undefined"!=typeof document,i=h&&window.chrome&&window.chrome.extension,j="object"==typeof process&&"[object process]"==={}.toString.call(process);if(e=function(a,b,c){try{new Function(a).call(c)}catch(e){throw d(e,"Evaluating "+b)}},g)a.upgradeSystemLoader();else if(h&&!i){var k,l=document.getElementsByTagName("script");b=l[l.length-1],f=function(a){k||(k=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},k.appendChild(b),k.removeChild(b),window.onerror=d,c)throw c},a.upgradeSystemLoader()}else if(j){var m=require("steal-es6-module-loader");a.System=m.System,a.Loader=m.Loader,a.upgradeSystemLoader(),module.exports=a.System;var n=require("vm");e=function(a){n.runInThisContext(a)}}var o="_"==new Error(0,"_").fileName;c=function(a,b,c,d,g){a+="\n//# sourceURL="+b+(d?"\n//# sourceMappingURL="+d:"");var h="script"===g&&"function"==typeof f;h?f(a):e(a,b,c)}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global),function(a){function b(a){function c(a){function b(){for(var b,c=[],e=0;e<arguments.length;e++)"string"==typeof arguments[e]?c.push(s(arguments[e])):b=arguments[e];"function"!=typeof b&&(b=function(a){return function(){return a}}(b)),d={deps:c,execute:function(d,e,f){for(var g=[],h=0;h<c.length;h++)g.push(d(c[h]));var i=b.apply(a.global,g);return"undefined"!=typeof i?i:void 0}}}d=null,a.global.module=void 0,a.global.exports=void 0,a.global.steal=b}a._extensions&&a._extensions.push(b);var d,e=/(?:^\s*|[}{\(\);,\n\?\&]\s*)steal\s*\(\s*((?:"[^"]+"\s*,|'[^']+'\s*,\s*)*)/,f=a.instantiate;return a.instantiate=function(a){var b=this;if("steal"===a.metadata.format||!a.metadata.format&&a.source.match(e)){a.metadata.format="steal";var g=b.global.steal;if(c(b),b.__exec(a),b.global.steal=g,!d)throw"Steal module "+a.name+" did not call steal";d&&(a.metadata.deps=a.metadata.deps?a.metadata.deps.concat(d.deps):d.deps,a.metadata.execute=d.execute)}return f.call(b,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=function(a,b){for(var c=b.split("/"),d=a.split("/"),e=[];c.length&&d.length&&c[0]==d[0];)c.shift(),d.shift();for(var f=0;f<d.length-1;f++)e.push("../");return"./"+e.join("")+c.join("/")},m="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,n="object"==typeof process&&"[object process]"==={}.toString.call(process),o=!n&&"undefined"!=typeof window,p="object"==typeof console?void 0:function(){},q=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]:""},r=function(a){var b=q(a),c=b.lastIndexOf(".");return-1!==c?b.substr(c+1):""},s=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=q(a),h=r(a);return"/"===a[a.length-1]?a+q(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},t=function(a){var b=a||this.System;return u(this.addSteal(b.clone()))},u=function(a){function b(a){a._extensions&&a._extensions.push(b),a._contextualModules={},a.setContextual=function(a,b){this._contextualModules[a]=b};var c=a.normalize;a.normalize=function(a,b){var d=this;if(b){var e=this._contextualModules[a];if(e)return a=a+"/"+b,d.has(a)?Promise.resolve(a):("string"==typeof e&&(e=d["import"](e)),Promise.resolve(e).then(function(a){a["default"]&&(a=a["default"]);var c=Promise.resolve(a.call(d,b));return c}).then(function(b){return d.set(a,d.newModule(b)),a}))}return c.apply(this,arguments)}}function r(a){function b(a,b){var c;for(c in a)b(c,a[c])}function c(a){function b(a,b){for(var c=0;c<a.length;c++)if(a[c][0]<b.index&&a[c][1]>b.index)return!0;return!1}function c(c){for(;d=c.exec(a);)if(!b(f,d)&&!b(g,d)){var h=d[1];e.push(h)}}i.lastIndex=k.lastIndex=j.lastIndex=l.lastIndex=0;var d,e=[],f=[],g=[];if(a.length/a.split("\n").length<200){for(;d=l.exec(a);)f.push([d.index,d.index+d[0].length]);for(;d=k.exec(a);)b(f,d)||g.push([d.index,d.index+d[0].length])}return c(i),c(j),e}a._extensions&&a._extensions.push(r),a._traceData={loads:{},parentMap:{}},a.getDependencies=function(a){var b=this.getModuleLoad(a);return b?b.metadata.dependencies:void 0},a.getDependants=function(a){var c=[],d=this._traceData.parentMap[a]||{};return b(d,function(a){c.push(a)}),c},a.getModuleLoad=function(a){return this._traceData.loads[a]},a.getBundles=function(a,c){c=c||{},c[a]=!0;var d=this,e=d._traceData.parentMap,f=e[a];if(!f)return[a];var g=[];return b(f,function(a,b){c[a]||(g=g.concat(d.getBundles(a,c)))}),g},a._allowModuleExecution={},a.allowModuleExecution=function(a){var b=this;return b.normalize(a).then(function(a){b._allowModuleExecution[a]=!0})};var d=a.normalize;a.normalize=function(a,b){var c=d.apply(this,arguments);if(b){var e=this._traceData.parentMap;return c.then(function(a){return e[a]||(e[a]={}),e[a][b]=!0,a})}return c};var e=function(){return a.newModule({})},f={traceur:!0,babel:!0},g=function(a){return f[a.name]||this._allowModuleExecution[a.name]},h=[].map||function(a){for(var b=[],c=0,d=this.length;d>c;c++)b.push(a(this[c]));return b},i=/import .*["'](.+)["']/g,j=/export .+ from ["'](.+)["']/g,k=/(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,l=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g,m=a.instantiate;a.instantiate=function(a){function b(b){var c=d.preventModuleExecution&&!g.call(d,a),f=b?b.deps:a.metadata.deps;return Promise.all(h.call(f,function(b){return d.normalize(b,a.name)})).then(function(d){return a.metadata.deps=f,a.metadata.dependencies=d,c?{deps:f,execute:e}:b})}this._traceData.loads[a.name]=a;var d=this,f=Promise.resolve(m.apply(this,arguments));return f.then(function(d){if(!d){var e=c(a.source);a.metadata.deps=e}return b(d)})};var n=a.transpile;a.transpile=function(a){var b=a.metadata.transpiledSource;return b?(delete a.metadata.transpiledSource,Promise.resolve(b)):n.apply(this,arguments)},a.eachModule=function(a){for(var b in this._loader.modules)a.call(this,b,this.get(b))}}function t(a){function b(a){if(("json"===a.metadata.format||!a.metadata.format)&&c.test(a.source))try{return JSON.parse(a.source)}catch(b){return p("Error parsing "+a.address+":",b),{}}}var c=/^[\s\n\r]*[\{\[]/,d=/\.json$/i,e=/\.js$/i;a._extensions.push(t);var f=a.locate;a.locate=function(a){return f.apply(this,arguments).then(function(b){return d.test(a.name)?b.replace(e,""):b})};var g=function(a,b,c){var d=a.jsonOptions&&a.jsonOptions.transform;return d?d.call(a,b,c):c};if(n){var h=a.translate;return void(a.translate=function(a){var c=a.metadata.address||a.address;if(d.test(c)&&-1===a.name.indexOf("!")){var e=b(a);if(e)return e=g(this,a,e),"define([], function(){\n	return "+JSON.stringify(e)+"\n});"}return h.call(this,a)})}var i=a.instantiate;return a.instantiate=function(a){var c,d=this;return c=b(a),c&&(c=g(d,a,c),a.metadata.format="json",a.metadata.execute=function(){return c}),i.call(d,a)},a}function u(a){a._extensions.push(u),a.getEnv=function(){var a=(this.env||"").split("-");return a[1]||this.env},a.getPlatform=function(){var a=(this.env||"").split("-");return 2===a.length?a[0]:void 0},a.isEnv=function(a){return this.getEnv()===a},a.isPlatform=function(a){return this.getPlatform()===a}}a.set("@loader",a.newModule({"default":a,__useDefault:!0})),a.config({map:{"@loader/@loader":"@loader","@steal/@steal":"@steal"}});var v,w,x,y=function(){var b=arguments,c=function(){var a,c=[];d(b,function(b){f(b)?c.push(y.System["import"](s(b))):"function"==typeof b&&(a=b)});var e=Promise.all(c);return a?e.then(function(b){return a&&a.apply(null,b)}):e};return a.isEnv("production")?c():v.then(c,c)};a.set("@steal",a.newModule({"default":y,__useDefault:!0})),y.System=y.loader=a,y.parseURI=j,y.joinURIs=k,y.normalize=s,y.relativeURI=l;var z=function(a){a._extensions&&a._extensions.push(z),a.ext={};var b=a.normalize,c=/\.(\w+)!?$/;a.normalize=function(d,e,f,g){if(g)return b.apply(this,arguments);var h=d.match(c);if(h){var i="!"===d[d.length-1],j=h[1];e&&a.configMain!==d&&".js"===h[0]?d=d.substr(0,d.lastIndexOf(".")):a.ext[j]&&(d=d+(i?"":"!")+a.ext[j])}return b.call(this,d,e,f)}};z(a);var A=function(a){a._extensions&&a._extensions.push(A);var b=a.normalize,c=/@.+#.+/;a.normalize=function(a,d,e,f){var g,h,i=a.length-1;return"/"===a[i]&&(g=a.substring(0,i).lastIndexOf("/"),h=a.substring(g+1,i),c.test(h)&&(h=h.substr(h.lastIndexOf("#")+1)),a+=h),b.call(this,a,d,e,f)}};A(a);var B=function(a){var b=function(a,b){var c=this;return Promise.resolve(c.normalize(a,b)).then(function(a){return c.locate({name:a,metadata:{}})}).then(function(a){return".js"===a.substr(a.length-3)&&(a=a.substr(0,a.length-3)),a})},c=function(a,b){for(var c=b.split("/"),d=a.split("/"),e=[];c.length&&d.length&&c[0]==d[0];)c.shift(),d.shift();for(var f=0;f<d.length-1;f++)e.push("../");return e.join("")+c.join("/")},d=/(locate):\/\/([a-z0-9\/._@-]*)/gi,e=function(a,b){var e=[];return a.replace(d,function(a,d,f,g){e.push({start:g,end:g+a.length,name:f,postLocate:function(a){return c(b,a)}})}),e},f=a.translate;a.translate=function(a){var c=this;if(!a.metadata.plugin)return f.call(this,a);var d=a.metadata.plugin.locateScheme;if(!d)return f.call(this,a);var g=e(a.source,a.address);if(!g.length)return f.call(this,a);for(var h=[],i=0,j=g.length;j>i;i++)h.push(b.call(this,g[i].name,a.name));return Promise.all(h).then(function(b){for(var d=g.length-1;d>=0;d--)a.source=a.source.substr(0,g[d].start)+g[d].postLocate(b[d])+a.source.substr(g[d].end,a.source.length);return f.call(c,a)})}};"undefined"!=typeof a&&B(a),"undefined"!=typeof a&&b(a);var C=function(a){function b(){document.removeEventListener("DOMContentLoaded",b,!1),window.removeEventListener("load",b,!1),c()}function c(){for(var b=document.getElementsByTagName("script"),c=0;c<b.length;c++){var d=b[c];if("text/steal-module"==d.type){var e=d.innerHTML;/\S/.test(e)&&a.module(e)["catch"](function(a){setTimeout(function(){throw a})})}}}a.loadScriptModules=function(){o&&("complete"===document.readyState?setTimeout(c):document.addEventListener&&(document.addEventListener("DOMContentLoaded",b,!1),window.addEventListener("load",b,!1)));
+}};"undefined"!=typeof a&&C(a),"undefined"!=typeof a&&r(a),"undefined"!=typeof a&&t(a);var D=function(a,b,c){var e=a.config;a.config=function(f){var h=g({},f);d(b,function(b){var d=c[b];if(d.set&&h[b]){var e=d.set.call(a,h[b],f);void 0!==e&&(a[b]=e),delete h[b]}}),e.call(this,h)}},E=function(a,b,c){a[b]||(a[b]=c)};a.configMain="@config",a.paths[a.configMain]="stealconfig.js",a.env=(m?"worker":"window")+"-development",a.ext={},a.logLevel=0;var F="bundles/*.css",G="bundles/*";E(a.paths,F,"dist/bundles/*css"),E(a.paths,G,"dist/bundles/*.js");var H=function(b){return{order:b,set:function(b){var c=q(b),d=h(b);n||(a.configPath=k(location.href,b)),a.configMain=c,a.paths[c]=c,this.config({baseURL:(d===b?".":d)+"/"})}}},I=function(a,b){return{order:b,set:function(b){this[a]=b}}},J=function(a,b){return{order:b,set:function(b){this[a]=!!b}}},K=function(a,b){return{order:b,set:function(b){this[a]=L(b)}}},L=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},M=function(a){var b=a.lastIndexOf("!");return-1!==b?a.substr(b+1):void 0},N=function(a){var b=a.lastIndexOf("!");return-1!==b?a.substr(0,b):void 0},O=function(){if(this.loadBundles&&this.main&&!this.stealBundled){var b=this.main,c=this.bundlesName||"bundles/",d=c+b;E(this.meta,d,{format:"amd"});var e=M(a.configMain),f=[b,a.configMain];if(e&&a.set(e,a.newModule({})),e=M(b)){var g=N(b);f.push(e),f.push(g),d=c+g.substr(0,g.indexOf("."))}this.bundles[d]=f}},P=function(){if(this.envs){var a=this.envs[this.env];a&&this.config(a)}},Q=function(){if(this.liveReloadInstalled){var a=this;this["import"]("live-reload",{name:"@@steal"}).then(function(b){b(a.configMain,function(){P.call(a)})})}},R=[],S={map:!0,paths:!0,meta:!0},T={instantiated:{order:1,set:function(a){var b=this;d(a||{},function(a,c){b.set(c,b.newModule(a))})}},envs:{order:2,set:function(a){var b=this.envs;b||(b=this.envs={}),d(a,function(a,c){var e=b[c];e||(e=b[c]={}),d(a,function(a,b){S[b]&&e[b]?g(e[b],a):e[b]=a})})}},env:{order:3,set:function(a){this.env=a,this.isEnv("production")&&(this.loadBundles=!0)}},loadBundles:J("loadBundles",4),stealBundled:J("stealBundled",5),bundle:{order:6,set:function(b){a.bundle=b}},bundlesPath:{order:7,set:function(a){return this.paths[F]=a+"/*css",this.paths[G]=a+"/*.js",a}},meta:{order:8,set:function(a){var b=this;d(a||{},function(a,c){if("object"==typeof a){var d=b.meta[c];if(d&&d.format===a.format){var e=a.deps;g(a,d),e&&(a.deps=e)}}}),g(this.meta,a)}},configMain:I("configMain",9),config:H(10),configPath:H(11),baseURL:K("baseURL",12),main:I("main",13),stealPath:{order:14,set:function(b,c){b=L(b);var d=b.split("/");E(this.paths,"@dev",b+"/ext/dev.js"),E(this.paths,"npm",b+"/ext/npm.js"),E(this.paths,"npm-extension",b+"/ext/npm-extension.js"),E(this.paths,"npm-utils",b+"/ext/npm-utils.js"),E(this.paths,"npm-crawl",b+"/ext/npm-crawl.js"),E(this.paths,"npm-load",b+"/ext/npm-load.js"),E(this.paths,"npm-convert",b+"/ext/npm-convert.js"),E(this.paths,"semver",b+"/ext/semver.js"),E(this.paths,"bower",b+"/ext/bower.js"),E(this.paths,"live-reload",b+"/ext/live-reload.js"),E(this.paths,"steal-clone",b+"/ext/steal-clone.js"),this.paths.traceur=b+"/ext/traceur.js",this.paths["traceur-runtime"]=b+"/ext/traceur-runtime.js",this.paths.babel=b+"/ext/babel.js",this.paths["babel-runtime"]=b+"/ext/babel-runtime.js",E(this.meta,"traceur",{exports:"traceur"}),this.setContextual("steal-clone","steal-clone"),n?"@config"===this.configMain&&"steal"===i(d)&&(d.pop(),"node_modules"===i(d)&&(this.configMain="package.json!npm",O.call(this),d.pop())):c.baseURL||c.config||c.configPath||("steal"===i(d)&&(d.pop(),"bower_components"===i(d)&&(a.configMain="bower.json!bower",O.call(this),d.pop()),"node_modules"===i(d)&&(a.configMain="package.json!npm",O.call(this),d.pop())),this.config({baseURL:d.join("/")+"/"})),a.stealPath=b}},stealURL:{order:15,set:function(b,c){var d=b.split("?"),e=d.shift(),f=e.split("/"),g=f.pop(),h=f.join("/"),i=this.getPlatform()||(m?"worker":"window");a.stealURL=e,(this.stealBundled&&this.stealBundled===!0||g.indexOf("steal.production")>-1&&!c.env)&&this.config({env:i+"-production"}),(this.isEnv("production")||this.loadBundles)&&O.call(this),T.stealPath.set.call(this,h,c)}}};d(T,function(a,b){a.order?R.splice(a.order,0,b):R.push(b)}),D(a,R,T),y.config=function(a){return"string"==typeof a?this.loader[a]:void this.loader.config(a)},"undefined"!=typeof a&&u(a);var U=function(a){var b={},d=/Url$/,e=a.split("?"),f=e.shift(),g=e.join("?"),h=g.split("&"),i=f.split("/");i.pop(),i.join("/");if(h.length&&h[0].length)for(var j,k=0;k<h.length;k++){j=h[k];var l=j.split("=");if(l.length>1){var m=c(l[0]);m=m.replace(d,"URL"),b[m]=l.slice(1).join("=")}}return b},V=function(a){var b={},e=/Url$/;b.stealURL=a.src,d(a.attributes,function(a){var d=c(0===a.nodeName.indexOf("data-")?a.nodeName.replace("data-",""):a.nodeName);d=d.replace(e,"URL"),b[d]=""===a.value?!0:a.value});var f=a.innerHTML;return/\S/.test(f)&&(b.mainSource=f),g(U(a.src),b)},W=function(){return new Promise(function(a,b){function c(){for(var b=0;b<d.length;++b)d[b].removeEventListener("load",c,!1);a(V(event.target))}if(m)return void a(g({stealURL:location.href},U(location.href)));if(o){if(document.currentScript)return void a(V(document.currentScript));for(var d=document.scripts,e=0;e<d.length;++e)d[e].addEventListener("load",c,!1)}else a({stealPath:__dirname})})};return y.startup=function(a){var b,c,d=this.loader;return v=new Promise(function(a,d){b=a,c=d}),x=W().then(function(f){if(a="object"==typeof a?g(a,f):f,d.config(a),P.call(d),d.loadBundles){if(!d.main&&d.isEnv("production")&&!d.stealBundled){var h=console&&console.warn||function(){};h.call(console,"Attribute 'main' is required in production environment. Please add it to the script tag.")}return d["import"](d.configMain).then(b,c),v.then(function(a){return P.call(d),d.main?d["import"](d.main):a})}return d["import"](d.configMain).then(b,c),w=v.then(function(){return P.call(d),Q.call(d),a&&d.config(a),d["import"]("@dev")}),w.then(function(){if(!d.main||"build"===d.env)return v;var a=d.main;return"string"==typeof a&&(a=[a]),Promise.all(e(a,function(a){return d["import"](a)}))})}).then(function(){return d.mainSource?d.module(d.mainSource):d.loadScriptModules()})},y.done=function(){return x},y["import"]=function(){function a(){var a=[];return d(b,function(b){a.push(c["import"](b))}),a.length>1?Promise.all(a):a[0]}var b=arguments,c=this.System;return v||(c.main||(c.main="@empty"),y.startup()),v.then(a)},y.setContextual=a.setContextual.bind(a),y.isEnv=a.isEnv.bind(a),y.isPlatform=a.isPlatform.bind(a),y};if("undefined"!=typeof System&&b(System),n)require("steal-systemjs"),a.steal=u(System),a.steal.System=System,a.steal.dev=require("./ext/dev.js"),steal.clone=t,module.exports=a.steal,a.steal.addSteal=b;else{var v=a.steal;a.steal=u(System),a.steal.startup(v&&"object"==typeof v&&v).then(null,function(a){if("undefined"!=typeof console){var b=console,c=b.error?"error":"log";b[c](a,a.stack)}}),a.steal.clone=t,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 30eb1fba..9599742a 100644
--- a/test/node_test.js
+++ b/test/node_test.js
@@ -64,3 +64,17 @@ describe("Modules that don't exist", function(){
 		});
 	});
 });
+
+describe("@node-require", function(){
+	it("Should be able to load projects that have Node deps", function(done){
+		var steal = makeSteal({
+			config: __dirname + "/plugin-require/package.json!npm",
+			main: "@empty"
+		});
+
+		steal.import("main").then(function(mod){
+			assert.equal(mod, "bar", "loaded it");
+		})
+		.then(done, done);
+	});
+});
diff --git a/test/plugin-require/main.js b/test/plugin-require/main.js
new file mode 100644
index 00000000..03c70511
--- /dev/null
+++ b/test/plugin-require/main.js
@@ -0,0 +1,3 @@
+var foo = require("foo");
+
+module.exports = foo;
diff --git a/test/plugin-require/node_modules/foo/main.js b/test/plugin-require/node_modules/foo/main.js
new file mode 100644
index 00000000..c5142980
--- /dev/null
+++ b/test/plugin-require/node_modules/foo/main.js
@@ -0,0 +1,3 @@
+var nodeRequire = require("@node-require");
+
+module.exports = nodeRequire("bar");
diff --git a/test/plugin-require/node_modules/foo/node_modules/bar/main.js b/test/plugin-require/node_modules/foo/node_modules/bar/main.js
new file mode 100644
index 00000000..a7f28145
--- /dev/null
+++ b/test/plugin-require/node_modules/foo/node_modules/bar/main.js
@@ -0,0 +1,1 @@
+module.exports = "bar";
diff --git a/test/plugin-require/node_modules/foo/node_modules/bar/package.json b/test/plugin-require/node_modules/foo/node_modules/bar/package.json
new file mode 100644
index 00000000..06adb738
--- /dev/null
+++ b/test/plugin-require/node_modules/foo/node_modules/bar/package.json
@@ -0,0 +1,5 @@
+{
+  "name": "bar",
+  "version": "1.0.0",
+  "main": "main.js"
+}
diff --git a/test/plugin-require/node_modules/foo/package.json b/test/plugin-require/node_modules/foo/package.json
new file mode 100644
index 00000000..28946bee
--- /dev/null
+++ b/test/plugin-require/node_modules/foo/package.json
@@ -0,0 +1,5 @@
+{
+  "name": "foo",
+  "version": "1.0.0",
+  "main": "main.js"
+}
diff --git a/test/plugin-require/package.json b/test/plugin-require/package.json
new file mode 100644
index 00000000..bb428d59
--- /dev/null
+++ b/test/plugin-require/package.json
@@ -0,0 +1,8 @@
+{
+  "name": "app",
+  "version": "1.0.0",
+  "main": "main.js",
+  "dependencies": {
+    "foo": "1.0.0"
+  }
+}