fluxxor-rails 1.3.2 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ce161443f8f80328efc4fe622b64c3152463cab
4
- data.tar.gz: 66dae89dacd2457aad81a3e7ef0762ee7d801187
3
+ metadata.gz: 293edc0a1aafb930f600c6572256b4497290c931
4
+ data.tar.gz: 813526f79678e0424c8d07f7ff99569e5da18e81
5
5
  SHA512:
6
- metadata.gz: f33dede9fa13b97de793d6f3f1ce55e4caafe9af31c07f8a5fcc6f002e452d4dfe622ad8046bdb6cc01e6d9262619aca1b3398707d49e0da35cda4993478f163
7
- data.tar.gz: cf57ba00068dbde161b520b0605dac0c9d2213f66a4b2febc10bb561144092530f8bc9ceb7829101d85c8e7108577fce80ae5a36b68d0b15e8fd119809ba3c84
6
+ metadata.gz: 217bf6eee10ebd99bd0ecacf32e45c56711b61c4c7ea71f9339d103cca98f6fbaa95bcacc00b67419f6c99f971c3148b19a7f68d0842a200ecfdc63a20e6ce32
7
+ data.tar.gz: e1f9ca2729e3cb00a1d7622e77088b9d6a19be7553eaa40234dc3d194ef4dc90be270aea1514deea347d67ac97ebda8d15e964f821c53f1406d5416313a8e075
@@ -1,5 +1,5 @@
1
1
  module Fluxxor
2
2
  module Rails
3
- VERSION = '1.3.2'
3
+ VERSION = '1.4.0'
4
4
  end
5
5
  end
@@ -80,3 +80,8 @@ Compiled fluxxor.js (1ms) (pid 17115)
80
80
  Served asset /fluxxor.js - 200 OK (7ms)
81
81
  Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:51:18 -0500
82
82
  Served asset /fluxxor.js - 200 OK (0ms)
83
+ Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:51:46 -0500
84
+ Compiled fluxxor.js (1ms) (pid 17644)
85
+ Served asset /fluxxor.js - 200 OK (7ms)
86
+ Started GET "/assets/fluxxor.js" for 127.0.0.1 at 2015-09-23 13:51:46 -0500
87
+ Served asset /fluxxor.js - 200 OK (0ms)
@@ -79,22 +79,22 @@ return /******/ (function(modules) { // webpackBootstrap
79
79
  /* 1 */
80
80
  /***/ function(module, exports, __webpack_require__) {
81
81
 
82
- module.exports = {"name":"fluxxor","version":"1.3.2","description":"Flux architecture tools for React","repository":{"type":"git","url":"https://github.com/BinaryMuse/fluxxor.git"},"main":"index.js","scripts":{"test":"npm run jshint && mocha --recursive","jshint":"jsxhint lib/ test/","build":"./script/build-fluxxor && ./script/build-examples","preview-site":"wintersmith preview -C site","build-site":"wintersmith build -C site"},"keywords":["react","flux"],"author":"Brandon Tilley <brandon@brandontilley.com>","license":"MIT","devDependencies":{"chai":"^1.9.1","css-loader":"^0.6.12","envify":"^1.2.1","jsdom":"^0.10.5","json-loader":"^0.5.0","jsx-loader":"^0.10.2","jsxhint":"^0.4.9","less":"^1.7.0","less-loader":"^0.7.3","mocha":"^1.18.2","react":"^0.10.0","sinon":"^1.9.1","sinon-chai":"^2.5.0","style-loader":"^0.6.3","webpack":"^1.1.11","webpack-dev-server":"^1.2.7","wintersmith":"^2.0.10","wintersmith-ejs":"^0.1.4","wintersmith-less":"^0.2.2"},"dependencies":{"lodash-node":"^2.4.1"},"jshintConfig":{"camelcase":true,"curly":true,"eqeqeq":true,"forin":true,"latedef":true,"newcap":false,"undef":true,"unused":true,"trailing":true,"node":true,"browser":true,"predef":["it","describe","beforeEach","afterEach"]}}
82
+ module.exports = {"name":"fluxxor","version":"1.4.0","description":"Flux architecture tools for React","repository":{"type":"git","url":"https://github.com/BinaryMuse/fluxxor.git"},"main":"index.js","scripts":{"test":"npm run jshint && mocha --recursive","jshint":"jsxhint lib/ test/","build":"./script/build-fluxxor && ./script/build-examples","preview-site":"wintersmith preview -C site","build-site":"wintersmith build -C site"},"keywords":["react","flux"],"author":"Brandon Tilley <brandon@brandontilley.com>","license":"MIT","devDependencies":{"chai":"^1.9.1","css-loader":"^0.6.12","envify":"^1.2.1","jsdom":"^0.10.5","json-loader":"^0.5.0","jsx-loader":"^0.10.2","jsxhint":"^0.4.9","less":"^1.7.0","less-loader":"^0.7.3","mocha":"^1.18.2","react":"^0.11.0 >0.11.0-rc1","sinon":"^1.9.1","sinon-chai":"^2.5.0","style-loader":"^0.6.3","webpack":"^1.1.11","webpack-dev-server":"^1.2.7","wintersmith":"^2.0.10","wintersmith-ejs":"^0.1.4","wintersmith-less":"^0.2.2"},"dependencies":{"lodash-node":"^2.4.1"},"jshintConfig":{"camelcase":true,"curly":true,"eqeqeq":true,"forin":true,"latedef":true,"newcap":false,"undef":true,"unused":true,"trailing":true,"node":true,"browser":true,"predef":["it","describe","beforeEach","afterEach"]}}
83
83
 
84
84
  /***/ },
85
85
  /* 2 */
86
86
  /***/ function(module, exports, __webpack_require__) {
87
87
 
88
- var _clone = __webpack_require__(10),
89
- _mapValues = __webpack_require__(11),
90
- _forOwn = __webpack_require__(12),
91
- _intersection = __webpack_require__(15),
92
- _keys = __webpack_require__(13),
93
- _map = __webpack_require__(17),
94
- _each = __webpack_require__(18),
95
- _size = __webpack_require__(19),
96
- _findKey = __webpack_require__(14),
97
- _uniq = __webpack_require__(16);
88
+ var _clone = __webpack_require__(11),
89
+ _mapValues = __webpack_require__(12),
90
+ _forOwn = __webpack_require__(13),
91
+ _intersection = __webpack_require__(16),
92
+ _keys = __webpack_require__(14),
93
+ _map = __webpack_require__(18),
94
+ _each = __webpack_require__(19),
95
+ _size = __webpack_require__(20),
96
+ _findKey = __webpack_require__(15),
97
+ _uniq = __webpack_require__(17);
98
98
 
99
99
  var Dispatcher = function(stores) {
100
100
  this.stores = stores;
@@ -197,7 +197,7 @@ return /******/ (function(modules) { // webpackBootstrap
197
197
  _each(stores, function(storeName) {
198
198
  var storeDispatch = this.currentDispatch[storeName];
199
199
  if (!this.stores[storeName]) {
200
- throw new Error("Cannot wait for non-existant store " + storeName);
200
+ throw new Error("Cannot wait for non-existent store " + storeName);
201
201
  }
202
202
  if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {
203
203
  throw new Error("Circular wait detected between " + waitingStoreName + " and " + storeName);
@@ -234,6 +234,7 @@ return /******/ (function(modules) { // webpackBootstrap
234
234
  var Flux = function(stores, actions) {
235
235
  var dispatcher = new Dispatcher(stores),
236
236
  dispatchBinder = {
237
+ flux: this,
237
238
  dispatch: function(type, payload) {
238
239
  dispatcher.dispatch({type: type, payload: payload});
239
240
  }
@@ -321,7 +322,7 @@ return /******/ (function(modules) { // webpackBootstrap
321
322
  /* 6 */
322
323
  /***/ function(module, exports, __webpack_require__) {
323
324
 
324
- var _each = __webpack_require__(18);
325
+ var _each = __webpack_require__(19);
325
326
 
326
327
  var StoreWatchMixin = function() {
327
328
  var storeNames = Array.prototype.slice.call(arguments);
@@ -365,7 +366,7 @@ return /******/ (function(modules) { // webpackBootstrap
365
366
  /* 7 */
366
367
  /***/ function(module, exports, __webpack_require__) {
367
368
 
368
- var _each = __webpack_require__(18),
369
+ var _each = __webpack_require__(19),
369
370
  Store = __webpack_require__(8),
370
371
  util = __webpack_require__(9);
371
372
 
@@ -410,7 +411,7 @@ return /******/ (function(modules) { // webpackBootstrap
410
411
  /* 8 */
411
412
  /***/ function(module, exports, __webpack_require__) {
412
413
 
413
- var EventEmitter = __webpack_require__(20).EventEmitter,
414
+ var EventEmitter = __webpack_require__(10).EventEmitter,
414
415
  util = __webpack_require__(9);
415
416
 
416
417
  function Store(dispatcher) {
@@ -1044,10 +1045,319 @@ return /******/ (function(modules) { // webpackBootstrap
1044
1045
  return Object.prototype.hasOwnProperty.call(obj, prop);
1045
1046
  }
1046
1047
 
1047
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(39)))
1048
+ /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(25)))
1048
1049
 
1049
1050
  /***/ },
1050
1051
  /* 10 */
1052
+ /***/ function(module, exports, __webpack_require__) {
1053
+
1054
+ // Copyright Joyent, Inc. and other Node contributors.
1055
+ //
1056
+ // Permission is hereby granted, free of charge, to any person obtaining a
1057
+ // copy of this software and associated documentation files (the
1058
+ // "Software"), to deal in the Software without restriction, including
1059
+ // without limitation the rights to use, copy, modify, merge, publish,
1060
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
1061
+ // persons to whom the Software is furnished to do so, subject to the
1062
+ // following conditions:
1063
+ //
1064
+ // The above copyright notice and this permission notice shall be included
1065
+ // in all copies or substantial portions of the Software.
1066
+ //
1067
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1068
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1069
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
1070
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
1071
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
1072
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
1073
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
1074
+
1075
+ function EventEmitter() {
1076
+ this._events = this._events || {};
1077
+ this._maxListeners = this._maxListeners || undefined;
1078
+ }
1079
+ module.exports = EventEmitter;
1080
+
1081
+ // Backwards-compat with node 0.10.x
1082
+ EventEmitter.EventEmitter = EventEmitter;
1083
+
1084
+ EventEmitter.prototype._events = undefined;
1085
+ EventEmitter.prototype._maxListeners = undefined;
1086
+
1087
+ // By default EventEmitters will print a warning if more than 10 listeners are
1088
+ // added to it. This is a useful default which helps finding memory leaks.
1089
+ EventEmitter.defaultMaxListeners = 10;
1090
+
1091
+ // Obviously not all Emitters should be limited to 10. This function allows
1092
+ // that to be increased. Set to zero for unlimited.
1093
+ EventEmitter.prototype.setMaxListeners = function(n) {
1094
+ if (!isNumber(n) || n < 0 || isNaN(n))
1095
+ throw TypeError('n must be a positive number');
1096
+ this._maxListeners = n;
1097
+ return this;
1098
+ };
1099
+
1100
+ EventEmitter.prototype.emit = function(type) {
1101
+ var er, handler, len, args, i, listeners;
1102
+
1103
+ if (!this._events)
1104
+ this._events = {};
1105
+
1106
+ // If there is no 'error' event listener then throw.
1107
+ if (type === 'error') {
1108
+ if (!this._events.error ||
1109
+ (isObject(this._events.error) && !this._events.error.length)) {
1110
+ er = arguments[1];
1111
+ if (er instanceof Error) {
1112
+ throw er; // Unhandled 'error' event
1113
+ } else {
1114
+ throw TypeError('Uncaught, unspecified "error" event.');
1115
+ }
1116
+ return false;
1117
+ }
1118
+ }
1119
+
1120
+ handler = this._events[type];
1121
+
1122
+ if (isUndefined(handler))
1123
+ return false;
1124
+
1125
+ if (isFunction(handler)) {
1126
+ switch (arguments.length) {
1127
+ // fast cases
1128
+ case 1:
1129
+ handler.call(this);
1130
+ break;
1131
+ case 2:
1132
+ handler.call(this, arguments[1]);
1133
+ break;
1134
+ case 3:
1135
+ handler.call(this, arguments[1], arguments[2]);
1136
+ break;
1137
+ // slower
1138
+ default:
1139
+ len = arguments.length;
1140
+ args = new Array(len - 1);
1141
+ for (i = 1; i < len; i++)
1142
+ args[i - 1] = arguments[i];
1143
+ handler.apply(this, args);
1144
+ }
1145
+ } else if (isObject(handler)) {
1146
+ len = arguments.length;
1147
+ args = new Array(len - 1);
1148
+ for (i = 1; i < len; i++)
1149
+ args[i - 1] = arguments[i];
1150
+
1151
+ listeners = handler.slice();
1152
+ len = listeners.length;
1153
+ for (i = 0; i < len; i++)
1154
+ listeners[i].apply(this, args);
1155
+ }
1156
+
1157
+ return true;
1158
+ };
1159
+
1160
+ EventEmitter.prototype.addListener = function(type, listener) {
1161
+ var m;
1162
+
1163
+ if (!isFunction(listener))
1164
+ throw TypeError('listener must be a function');
1165
+
1166
+ if (!this._events)
1167
+ this._events = {};
1168
+
1169
+ // To avoid recursion in the case that type === "newListener"! Before
1170
+ // adding it to the listeners, first emit "newListener".
1171
+ if (this._events.newListener)
1172
+ this.emit('newListener', type,
1173
+ isFunction(listener.listener) ?
1174
+ listener.listener : listener);
1175
+
1176
+ if (!this._events[type])
1177
+ // Optimize the case of one listener. Don't need the extra array object.
1178
+ this._events[type] = listener;
1179
+ else if (isObject(this._events[type]))
1180
+ // If we've already got an array, just append.
1181
+ this._events[type].push(listener);
1182
+ else
1183
+ // Adding the second element, need to change to array.
1184
+ this._events[type] = [this._events[type], listener];
1185
+
1186
+ // Check for listener leak
1187
+ if (isObject(this._events[type]) && !this._events[type].warned) {
1188
+ var m;
1189
+ if (!isUndefined(this._maxListeners)) {
1190
+ m = this._maxListeners;
1191
+ } else {
1192
+ m = EventEmitter.defaultMaxListeners;
1193
+ }
1194
+
1195
+ if (m && m > 0 && this._events[type].length > m) {
1196
+ this._events[type].warned = true;
1197
+ console.error('(node) warning: possible EventEmitter memory ' +
1198
+ 'leak detected. %d listeners added. ' +
1199
+ 'Use emitter.setMaxListeners() to increase limit.',
1200
+ this._events[type].length);
1201
+ if (typeof console.trace === 'function') {
1202
+ // not supported in IE 10
1203
+ console.trace();
1204
+ }
1205
+ }
1206
+ }
1207
+
1208
+ return this;
1209
+ };
1210
+
1211
+ EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1212
+
1213
+ EventEmitter.prototype.once = function(type, listener) {
1214
+ if (!isFunction(listener))
1215
+ throw TypeError('listener must be a function');
1216
+
1217
+ var fired = false;
1218
+
1219
+ function g() {
1220
+ this.removeListener(type, g);
1221
+
1222
+ if (!fired) {
1223
+ fired = true;
1224
+ listener.apply(this, arguments);
1225
+ }
1226
+ }
1227
+
1228
+ g.listener = listener;
1229
+ this.on(type, g);
1230
+
1231
+ return this;
1232
+ };
1233
+
1234
+ // emits a 'removeListener' event iff the listener was removed
1235
+ EventEmitter.prototype.removeListener = function(type, listener) {
1236
+ var list, position, length, i;
1237
+
1238
+ if (!isFunction(listener))
1239
+ throw TypeError('listener must be a function');
1240
+
1241
+ if (!this._events || !this._events[type])
1242
+ return this;
1243
+
1244
+ list = this._events[type];
1245
+ length = list.length;
1246
+ position = -1;
1247
+
1248
+ if (list === listener ||
1249
+ (isFunction(list.listener) && list.listener === listener)) {
1250
+ delete this._events[type];
1251
+ if (this._events.removeListener)
1252
+ this.emit('removeListener', type, listener);
1253
+
1254
+ } else if (isObject(list)) {
1255
+ for (i = length; i-- > 0;) {
1256
+ if (list[i] === listener ||
1257
+ (list[i].listener && list[i].listener === listener)) {
1258
+ position = i;
1259
+ break;
1260
+ }
1261
+ }
1262
+
1263
+ if (position < 0)
1264
+ return this;
1265
+
1266
+ if (list.length === 1) {
1267
+ list.length = 0;
1268
+ delete this._events[type];
1269
+ } else {
1270
+ list.splice(position, 1);
1271
+ }
1272
+
1273
+ if (this._events.removeListener)
1274
+ this.emit('removeListener', type, listener);
1275
+ }
1276
+
1277
+ return this;
1278
+ };
1279
+
1280
+ EventEmitter.prototype.removeAllListeners = function(type) {
1281
+ var key, listeners;
1282
+
1283
+ if (!this._events)
1284
+ return this;
1285
+
1286
+ // not listening for removeListener, no need to emit
1287
+ if (!this._events.removeListener) {
1288
+ if (arguments.length === 0)
1289
+ this._events = {};
1290
+ else if (this._events[type])
1291
+ delete this._events[type];
1292
+ return this;
1293
+ }
1294
+
1295
+ // emit removeListener for all listeners on all events
1296
+ if (arguments.length === 0) {
1297
+ for (key in this._events) {
1298
+ if (key === 'removeListener') continue;
1299
+ this.removeAllListeners(key);
1300
+ }
1301
+ this.removeAllListeners('removeListener');
1302
+ this._events = {};
1303
+ return this;
1304
+ }
1305
+
1306
+ listeners = this._events[type];
1307
+
1308
+ if (isFunction(listeners)) {
1309
+ this.removeListener(type, listeners);
1310
+ } else {
1311
+ // LIFO order
1312
+ while (listeners.length)
1313
+ this.removeListener(type, listeners[listeners.length - 1]);
1314
+ }
1315
+ delete this._events[type];
1316
+
1317
+ return this;
1318
+ };
1319
+
1320
+ EventEmitter.prototype.listeners = function(type) {
1321
+ var ret;
1322
+ if (!this._events || !this._events[type])
1323
+ ret = [];
1324
+ else if (isFunction(this._events[type]))
1325
+ ret = [this._events[type]];
1326
+ else
1327
+ ret = this._events[type].slice();
1328
+ return ret;
1329
+ };
1330
+
1331
+ EventEmitter.listenerCount = function(emitter, type) {
1332
+ var ret;
1333
+ if (!emitter._events || !emitter._events[type])
1334
+ ret = 0;
1335
+ else if (isFunction(emitter._events[type]))
1336
+ ret = 1;
1337
+ else
1338
+ ret = emitter._events[type].length;
1339
+ return ret;
1340
+ };
1341
+
1342
+ function isFunction(arg) {
1343
+ return typeof arg === 'function';
1344
+ }
1345
+
1346
+ function isNumber(arg) {
1347
+ return typeof arg === 'number';
1348
+ }
1349
+
1350
+ function isObject(arg) {
1351
+ return typeof arg === 'object' && arg !== null;
1352
+ }
1353
+
1354
+ function isUndefined(arg) {
1355
+ return arg === void 0;
1356
+ }
1357
+
1358
+
1359
+ /***/ },
1360
+ /* 11 */
1051
1361
  /***/ function(module, exports, __webpack_require__) {
1052
1362
 
1053
1363
  /**
@@ -1058,8 +1368,8 @@ return /******/ (function(modules) { // webpackBootstrap
1058
1368
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1059
1369
  * Available under MIT license <http://lodash.com/license>
1060
1370
  */
1061
- var baseClone = __webpack_require__(25),
1062
- baseCreateCallback = __webpack_require__(26);
1371
+ var baseClone = __webpack_require__(26),
1372
+ baseCreateCallback = __webpack_require__(27);
1063
1373
 
1064
1374
  /**
1065
1375
  * Creates a clone of `value`. If `isDeep` is `true` nested objects will also
@@ -1116,7 +1426,7 @@ return /******/ (function(modules) { // webpackBootstrap
1116
1426
 
1117
1427
 
1118
1428
  /***/ },
1119
- /* 11 */
1429
+ /* 12 */
1120
1430
  /***/ function(module, exports, __webpack_require__) {
1121
1431
 
1122
1432
  /**
@@ -1127,8 +1437,8 @@ return /******/ (function(modules) { // webpackBootstrap
1127
1437
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1128
1438
  * Available under MIT license <http://lodash.com/license>
1129
1439
  */
1130
- var createCallback = __webpack_require__(38),
1131
- forOwn = __webpack_require__(12);
1440
+ var createCallback = __webpack_require__(39),
1441
+ forOwn = __webpack_require__(13);
1132
1442
 
1133
1443
  /**
1134
1444
  * Creates an object with the same keys as `object` and values generated by
@@ -1180,7 +1490,7 @@ return /******/ (function(modules) { // webpackBootstrap
1180
1490
 
1181
1491
 
1182
1492
  /***/ },
1183
- /* 12 */
1493
+ /* 13 */
1184
1494
  /***/ function(module, exports, __webpack_require__) {
1185
1495
 
1186
1496
  /**
@@ -1191,9 +1501,9 @@ return /******/ (function(modules) { // webpackBootstrap
1191
1501
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1192
1502
  * Available under MIT license <http://lodash.com/license>
1193
1503
  */
1194
- var baseCreateCallback = __webpack_require__(26),
1195
- keys = __webpack_require__(13),
1196
- objectTypes = __webpack_require__(27);
1504
+ var baseCreateCallback = __webpack_require__(27),
1505
+ keys = __webpack_require__(14),
1506
+ objectTypes = __webpack_require__(28);
1197
1507
 
1198
1508
  /**
1199
1509
  * Iterates over own enumerable properties of an object, executing the callback
@@ -1236,7 +1546,7 @@ return /******/ (function(modules) { // webpackBootstrap
1236
1546
 
1237
1547
 
1238
1548
  /***/ },
1239
- /* 13 */
1549
+ /* 14 */
1240
1550
  /***/ function(module, exports, __webpack_require__) {
1241
1551
 
1242
1552
  /**
@@ -1247,9 +1557,9 @@ return /******/ (function(modules) { // webpackBootstrap
1247
1557
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1248
1558
  * Available under MIT license <http://lodash.com/license>
1249
1559
  */
1250
- var isNative = __webpack_require__(28),
1560
+ var isNative = __webpack_require__(29),
1251
1561
  isObject = __webpack_require__(22),
1252
- shimKeys = __webpack_require__(29);
1562
+ shimKeys = __webpack_require__(30);
1253
1563
 
1254
1564
  /* Native method shortcuts for methods with the same name as other `lodash` methods */
1255
1565
  var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
@@ -1278,7 +1588,7 @@ return /******/ (function(modules) { // webpackBootstrap
1278
1588
 
1279
1589
 
1280
1590
  /***/ },
1281
- /* 14 */
1591
+ /* 15 */
1282
1592
  /***/ function(module, exports, __webpack_require__) {
1283
1593
 
1284
1594
  /**
@@ -1289,8 +1599,8 @@ return /******/ (function(modules) { // webpackBootstrap
1289
1599
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1290
1600
  * Available under MIT license <http://lodash.com/license>
1291
1601
  */
1292
- var createCallback = __webpack_require__(38),
1293
- forOwn = __webpack_require__(12);
1602
+ var createCallback = __webpack_require__(39),
1603
+ forOwn = __webpack_require__(13);
1294
1604
 
1295
1605
  /**
1296
1606
  * This method is like `_.findIndex` except that it returns the key of the
@@ -1349,7 +1659,7 @@ return /******/ (function(modules) { // webpackBootstrap
1349
1659
 
1350
1660
 
1351
1661
  /***/ },
1352
- /* 15 */
1662
+ /* 16 */
1353
1663
  /***/ function(module, exports, __webpack_require__) {
1354
1664
 
1355
1665
  /**
@@ -1360,15 +1670,15 @@ return /******/ (function(modules) { // webpackBootstrap
1360
1670
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1361
1671
  * Available under MIT license <http://lodash.com/license>
1362
1672
  */
1363
- var baseIndexOf = __webpack_require__(30),
1364
- cacheIndexOf = __webpack_require__(31),
1365
- createCache = __webpack_require__(32),
1366
- getArray = __webpack_require__(33),
1673
+ var baseIndexOf = __webpack_require__(31),
1674
+ cacheIndexOf = __webpack_require__(32),
1675
+ createCache = __webpack_require__(33),
1676
+ getArray = __webpack_require__(34),
1367
1677
  isArguments = __webpack_require__(23),
1368
1678
  isArray = __webpack_require__(24),
1369
- largeArraySize = __webpack_require__(34),
1370
- releaseArray = __webpack_require__(35),
1371
- releaseObject = __webpack_require__(36);
1679
+ largeArraySize = __webpack_require__(35),
1680
+ releaseArray = __webpack_require__(36),
1681
+ releaseObject = __webpack_require__(37);
1372
1682
 
1373
1683
  /**
1374
1684
  * Creates an array of unique values present in all provided arrays using
@@ -1395,262 +1705,50 @@ return /******/ (function(modules) { // webpackBootstrap
1395
1705
 
1396
1706
  while (++argsIndex < argsLength) {
1397
1707
  var value = arguments[argsIndex];
1398
- if (isArray(value) || isArguments(value)) {
1399
- args.push(value);
1400
- caches.push(trustIndexOf && value.length >= largeArraySize &&
1401
- createCache(argsIndex ? args[argsIndex] : seen));
1402
- }
1403
- }
1404
- var array = args[0],
1405
- index = -1,
1406
- length = array ? array.length : 0,
1407
- result = [];
1408
-
1409
- outer:
1410
- while (++index < length) {
1411
- var cache = caches[0];
1412
- value = array[index];
1413
-
1414
- if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {
1415
- argsIndex = argsLength;
1416
- (cache || seen).push(value);
1417
- while (--argsIndex) {
1418
- cache = caches[argsIndex];
1419
- if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {
1420
- continue outer;
1421
- }
1422
- }
1423
- result.push(value);
1424
- }
1425
- }
1426
- while (argsLength--) {
1427
- cache = caches[argsLength];
1428
- if (cache) {
1429
- releaseObject(cache);
1430
- }
1431
- }
1432
- releaseArray(caches);
1433
- releaseArray(seen);
1434
- return result;
1435
- }
1436
-
1437
- module.exports = intersection;
1438
-
1439
-
1440
- /***/ },
1441
- /* 16 */
1442
- /***/ function(module, exports, __webpack_require__) {
1443
-
1444
- /**
1445
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1446
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1447
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1448
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1449
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1450
- * Available under MIT license <http://lodash.com/license>
1451
- */
1452
- var baseUniq = __webpack_require__(37),
1453
- createCallback = __webpack_require__(38);
1454
-
1455
- /**
1456
- * Creates a duplicate-value-free version of an array using strict equality
1457
- * for comparisons, i.e. `===`. If the array is sorted, providing
1458
- * `true` for `isSorted` will use a faster algorithm. If a callback is provided
1459
- * each element of `array` is passed through the callback before uniqueness
1460
- * is computed. The callback is bound to `thisArg` and invoked with three
1461
- * arguments; (value, index, array).
1462
- *
1463
- * If a property name is provided for `callback` the created "_.pluck" style
1464
- * callback will return the property value of the given element.
1465
- *
1466
- * If an object is provided for `callback` the created "_.where" style callback
1467
- * will return `true` for elements that have the properties of the given object,
1468
- * else `false`.
1469
- *
1470
- * @static
1471
- * @memberOf _
1472
- * @alias unique
1473
- * @category Arrays
1474
- * @param {Array} array The array to process.
1475
- * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.
1476
- * @param {Function|Object|string} [callback=identity] The function called
1477
- * per iteration. If a property name or object is provided it will be used
1478
- * to create a "_.pluck" or "_.where" style callback, respectively.
1479
- * @param {*} [thisArg] The `this` binding of `callback`.
1480
- * @returns {Array} Returns a duplicate-value-free array.
1481
- * @example
1482
- *
1483
- * _.uniq([1, 2, 1, 3, 1]);
1484
- * // => [1, 2, 3]
1485
- *
1486
- * _.uniq([1, 1, 2, 2, 3], true);
1487
- * // => [1, 2, 3]
1488
- *
1489
- * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });
1490
- * // => ['A', 'b', 'C']
1491
- *
1492
- * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);
1493
- * // => [1, 2.5, 3]
1494
- *
1495
- * // using "_.pluck" callback shorthand
1496
- * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
1497
- * // => [{ 'x': 1 }, { 'x': 2 }]
1498
- */
1499
- function uniq(array, isSorted, callback, thisArg) {
1500
- // juggle arguments
1501
- if (typeof isSorted != 'boolean' && isSorted != null) {
1502
- thisArg = callback;
1503
- callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;
1504
- isSorted = false;
1505
- }
1506
- if (callback != null) {
1507
- callback = createCallback(callback, thisArg, 3);
1508
- }
1509
- return baseUniq(array, isSorted, callback);
1510
- }
1511
-
1512
- module.exports = uniq;
1513
-
1514
-
1515
- /***/ },
1516
- /* 17 */
1517
- /***/ function(module, exports, __webpack_require__) {
1518
-
1519
- /**
1520
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1521
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1522
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1523
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1524
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1525
- * Available under MIT license <http://lodash.com/license>
1526
- */
1527
- var createCallback = __webpack_require__(38),
1528
- forOwn = __webpack_require__(12);
1529
-
1530
- /**
1531
- * Creates an array of values by running each element in the collection
1532
- * through the callback. The callback is bound to `thisArg` and invoked with
1533
- * three arguments; (value, index|key, collection).
1534
- *
1535
- * If a property name is provided for `callback` the created "_.pluck" style
1536
- * callback will return the property value of the given element.
1537
- *
1538
- * If an object is provided for `callback` the created "_.where" style callback
1539
- * will return `true` for elements that have the properties of the given object,
1540
- * else `false`.
1541
- *
1542
- * @static
1543
- * @memberOf _
1544
- * @alias collect
1545
- * @category Collections
1546
- * @param {Array|Object|string} collection The collection to iterate over.
1547
- * @param {Function|Object|string} [callback=identity] The function called
1548
- * per iteration. If a property name or object is provided it will be used
1549
- * to create a "_.pluck" or "_.where" style callback, respectively.
1550
- * @param {*} [thisArg] The `this` binding of `callback`.
1551
- * @returns {Array} Returns a new array of the results of each `callback` execution.
1552
- * @example
1553
- *
1554
- * _.map([1, 2, 3], function(num) { return num * 3; });
1555
- * // => [3, 6, 9]
1556
- *
1557
- * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
1558
- * // => [3, 6, 9] (property order is not guaranteed across environments)
1559
- *
1560
- * var characters = [
1561
- * { 'name': 'barney', 'age': 36 },
1562
- * { 'name': 'fred', 'age': 40 }
1563
- * ];
1564
- *
1565
- * // using "_.pluck" callback shorthand
1566
- * _.map(characters, 'name');
1567
- * // => ['barney', 'fred']
1568
- */
1569
- function map(collection, callback, thisArg) {
1570
- var index = -1,
1571
- length = collection ? collection.length : 0;
1572
-
1573
- callback = createCallback(callback, thisArg, 3);
1574
- if (typeof length == 'number') {
1575
- var result = Array(length);
1576
- while (++index < length) {
1577
- result[index] = callback(collection[index], index, collection);
1578
- }
1579
- } else {
1580
- result = [];
1581
- forOwn(collection, function(value, key, collection) {
1582
- result[++index] = callback(value, key, collection);
1583
- });
1584
- }
1585
- return result;
1586
- }
1587
-
1588
- module.exports = map;
1589
-
1590
-
1591
- /***/ },
1592
- /* 18 */
1593
- /***/ function(module, exports, __webpack_require__) {
1594
-
1595
- /**
1596
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1597
- * Build: `lodash modularize modern exports="node" -o ./modern/`
1598
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1599
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1600
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1601
- * Available under MIT license <http://lodash.com/license>
1602
- */
1603
- var baseCreateCallback = __webpack_require__(26),
1604
- forOwn = __webpack_require__(12);
1605
-
1606
- /**
1607
- * Iterates over elements of a collection, executing the callback for each
1608
- * element. The callback is bound to `thisArg` and invoked with three arguments;
1609
- * (value, index|key, collection). Callbacks may exit iteration early by
1610
- * explicitly returning `false`.
1611
- *
1612
- * Note: As with other "Collections" methods, objects with a `length` property
1613
- * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
1614
- * may be used for object iteration.
1615
- *
1616
- * @static
1617
- * @memberOf _
1618
- * @alias each
1619
- * @category Collections
1620
- * @param {Array|Object|string} collection The collection to iterate over.
1621
- * @param {Function} [callback=identity] The function called per iteration.
1622
- * @param {*} [thisArg] The `this` binding of `callback`.
1623
- * @returns {Array|Object|string} Returns `collection`.
1624
- * @example
1625
- *
1626
- * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
1627
- * // => logs each number and returns '1,2,3'
1628
- *
1629
- * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
1630
- * // => logs each number and returns the object (property order is not guaranteed across environments)
1631
- */
1632
- function forEach(collection, callback, thisArg) {
1633
- var index = -1,
1634
- length = collection ? collection.length : 0;
1708
+ if (isArray(value) || isArguments(value)) {
1709
+ args.push(value);
1710
+ caches.push(trustIndexOf && value.length >= largeArraySize &&
1711
+ createCache(argsIndex ? args[argsIndex] : seen));
1712
+ }
1713
+ }
1714
+ var array = args[0],
1715
+ index = -1,
1716
+ length = array ? array.length : 0,
1717
+ result = [];
1635
1718
 
1636
- callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1637
- if (typeof length == 'number') {
1638
- while (++index < length) {
1639
- if (callback(collection[index], index, collection) === false) {
1640
- break;
1719
+ outer:
1720
+ while (++index < length) {
1721
+ var cache = caches[0];
1722
+ value = array[index];
1723
+
1724
+ if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {
1725
+ argsIndex = argsLength;
1726
+ (cache || seen).push(value);
1727
+ while (--argsIndex) {
1728
+ cache = caches[argsIndex];
1729
+ if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {
1730
+ continue outer;
1731
+ }
1641
1732
  }
1733
+ result.push(value);
1642
1734
  }
1643
- } else {
1644
- forOwn(collection, callback);
1645
1735
  }
1646
- return collection;
1736
+ while (argsLength--) {
1737
+ cache = caches[argsLength];
1738
+ if (cache) {
1739
+ releaseObject(cache);
1740
+ }
1741
+ }
1742
+ releaseArray(caches);
1743
+ releaseArray(seen);
1744
+ return result;
1647
1745
  }
1648
1746
 
1649
- module.exports = forEach;
1747
+ module.exports = intersection;
1650
1748
 
1651
1749
 
1652
1750
  /***/ },
1653
- /* 19 */
1751
+ /* 17 */
1654
1752
  /***/ function(module, exports, __webpack_require__) {
1655
1753
 
1656
1754
  /**
@@ -1661,343 +1759,246 @@ return /******/ (function(modules) { // webpackBootstrap
1661
1759
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1662
1760
  * Available under MIT license <http://lodash.com/license>
1663
1761
  */
1664
- var keys = __webpack_require__(13);
1762
+ var baseUniq = __webpack_require__(38),
1763
+ createCallback = __webpack_require__(39);
1665
1764
 
1666
1765
  /**
1667
- * Gets the size of the `collection` by returning `collection.length` for arrays
1668
- * and array-like objects or the number of own enumerable properties for objects.
1766
+ * Creates a duplicate-value-free version of an array using strict equality
1767
+ * for comparisons, i.e. `===`. If the array is sorted, providing
1768
+ * `true` for `isSorted` will use a faster algorithm. If a callback is provided
1769
+ * each element of `array` is passed through the callback before uniqueness
1770
+ * is computed. The callback is bound to `thisArg` and invoked with three
1771
+ * arguments; (value, index, array).
1772
+ *
1773
+ * If a property name is provided for `callback` the created "_.pluck" style
1774
+ * callback will return the property value of the given element.
1775
+ *
1776
+ * If an object is provided for `callback` the created "_.where" style callback
1777
+ * will return `true` for elements that have the properties of the given object,
1778
+ * else `false`.
1669
1779
  *
1670
1780
  * @static
1671
1781
  * @memberOf _
1672
- * @category Collections
1673
- * @param {Array|Object|string} collection The collection to inspect.
1674
- * @returns {number} Returns `collection.length` or number of own enumerable properties.
1782
+ * @alias unique
1783
+ * @category Arrays
1784
+ * @param {Array} array The array to process.
1785
+ * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.
1786
+ * @param {Function|Object|string} [callback=identity] The function called
1787
+ * per iteration. If a property name or object is provided it will be used
1788
+ * to create a "_.pluck" or "_.where" style callback, respectively.
1789
+ * @param {*} [thisArg] The `this` binding of `callback`.
1790
+ * @returns {Array} Returns a duplicate-value-free array.
1675
1791
  * @example
1676
1792
  *
1677
- * _.size([1, 2]);
1678
- * // => 2
1793
+ * _.uniq([1, 2, 1, 3, 1]);
1794
+ * // => [1, 2, 3]
1679
1795
  *
1680
- * _.size({ 'one': 1, 'two': 2, 'three': 3 });
1681
- * // => 3
1796
+ * _.uniq([1, 1, 2, 2, 3], true);
1797
+ * // => [1, 2, 3]
1682
1798
  *
1683
- * _.size('pebbles');
1684
- * // => 7
1799
+ * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });
1800
+ * // => ['A', 'b', 'C']
1801
+ *
1802
+ * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);
1803
+ * // => [1, 2.5, 3]
1804
+ *
1805
+ * // using "_.pluck" callback shorthand
1806
+ * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
1807
+ * // => [{ 'x': 1 }, { 'x': 2 }]
1685
1808
  */
1686
- function size(collection) {
1687
- var length = collection ? collection.length : 0;
1688
- return typeof length == 'number' ? length : keys(collection).length;
1689
- }
1690
-
1691
- module.exports = size;
1692
-
1693
-
1694
- /***/ },
1695
- /* 20 */
1696
- /***/ function(module, exports, __webpack_require__) {
1697
-
1698
- // Copyright Joyent, Inc. and other Node contributors.
1699
- //
1700
- // Permission is hereby granted, free of charge, to any person obtaining a
1701
- // copy of this software and associated documentation files (the
1702
- // "Software"), to deal in the Software without restriction, including
1703
- // without limitation the rights to use, copy, modify, merge, publish,
1704
- // distribute, sublicense, and/or sell copies of the Software, and to permit
1705
- // persons to whom the Software is furnished to do so, subject to the
1706
- // following conditions:
1707
- //
1708
- // The above copyright notice and this permission notice shall be included
1709
- // in all copies or substantial portions of the Software.
1710
- //
1711
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1712
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1713
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
1714
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
1715
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
1716
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
1717
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
1718
-
1719
- function EventEmitter() {
1720
- this._events = this._events || {};
1721
- this._maxListeners = this._maxListeners || undefined;
1722
- }
1723
- module.exports = EventEmitter;
1724
-
1725
- // Backwards-compat with node 0.10.x
1726
- EventEmitter.EventEmitter = EventEmitter;
1727
-
1728
- EventEmitter.prototype._events = undefined;
1729
- EventEmitter.prototype._maxListeners = undefined;
1730
-
1731
- // By default EventEmitters will print a warning if more than 10 listeners are
1732
- // added to it. This is a useful default which helps finding memory leaks.
1733
- EventEmitter.defaultMaxListeners = 10;
1734
-
1735
- // Obviously not all Emitters should be limited to 10. This function allows
1736
- // that to be increased. Set to zero for unlimited.
1737
- EventEmitter.prototype.setMaxListeners = function(n) {
1738
- if (!isNumber(n) || n < 0 || isNaN(n))
1739
- throw TypeError('n must be a positive number');
1740
- this._maxListeners = n;
1741
- return this;
1742
- };
1743
-
1744
- EventEmitter.prototype.emit = function(type) {
1745
- var er, handler, len, args, i, listeners;
1746
-
1747
- if (!this._events)
1748
- this._events = {};
1749
-
1750
- // If there is no 'error' event listener then throw.
1751
- if (type === 'error') {
1752
- if (!this._events.error ||
1753
- (isObject(this._events.error) && !this._events.error.length)) {
1754
- er = arguments[1];
1755
- if (er instanceof Error) {
1756
- throw er; // Unhandled 'error' event
1757
- } else {
1758
- throw TypeError('Uncaught, unspecified "error" event.');
1759
- }
1760
- return false;
1761
- }
1762
- }
1763
-
1764
- handler = this._events[type];
1765
-
1766
- if (isUndefined(handler))
1767
- return false;
1768
-
1769
- if (isFunction(handler)) {
1770
- switch (arguments.length) {
1771
- // fast cases
1772
- case 1:
1773
- handler.call(this);
1774
- break;
1775
- case 2:
1776
- handler.call(this, arguments[1]);
1777
- break;
1778
- case 3:
1779
- handler.call(this, arguments[1], arguments[2]);
1780
- break;
1781
- // slower
1782
- default:
1783
- len = arguments.length;
1784
- args = new Array(len - 1);
1785
- for (i = 1; i < len; i++)
1786
- args[i - 1] = arguments[i];
1787
- handler.apply(this, args);
1788
- }
1789
- } else if (isObject(handler)) {
1790
- len = arguments.length;
1791
- args = new Array(len - 1);
1792
- for (i = 1; i < len; i++)
1793
- args[i - 1] = arguments[i];
1794
-
1795
- listeners = handler.slice();
1796
- len = listeners.length;
1797
- for (i = 0; i < len; i++)
1798
- listeners[i].apply(this, args);
1799
- }
1800
-
1801
- return true;
1802
- };
1803
-
1804
- EventEmitter.prototype.addListener = function(type, listener) {
1805
- var m;
1806
-
1807
- if (!isFunction(listener))
1808
- throw TypeError('listener must be a function');
1809
-
1810
- if (!this._events)
1811
- this._events = {};
1812
-
1813
- // To avoid recursion in the case that type === "newListener"! Before
1814
- // adding it to the listeners, first emit "newListener".
1815
- if (this._events.newListener)
1816
- this.emit('newListener', type,
1817
- isFunction(listener.listener) ?
1818
- listener.listener : listener);
1819
-
1820
- if (!this._events[type])
1821
- // Optimize the case of one listener. Don't need the extra array object.
1822
- this._events[type] = listener;
1823
- else if (isObject(this._events[type]))
1824
- // If we've already got an array, just append.
1825
- this._events[type].push(listener);
1826
- else
1827
- // Adding the second element, need to change to array.
1828
- this._events[type] = [this._events[type], listener];
1829
-
1830
- // Check for listener leak
1831
- if (isObject(this._events[type]) && !this._events[type].warned) {
1832
- var m;
1833
- if (!isUndefined(this._maxListeners)) {
1834
- m = this._maxListeners;
1835
- } else {
1836
- m = EventEmitter.defaultMaxListeners;
1837
- }
1838
-
1839
- if (m && m > 0 && this._events[type].length > m) {
1840
- this._events[type].warned = true;
1841
- console.error('(node) warning: possible EventEmitter memory ' +
1842
- 'leak detected. %d listeners added. ' +
1843
- 'Use emitter.setMaxListeners() to increase limit.',
1844
- this._events[type].length);
1845
- if (typeof console.trace === 'function') {
1846
- // not supported in IE 10
1847
- console.trace();
1848
- }
1849
- }
1809
+ function uniq(array, isSorted, callback, thisArg) {
1810
+ // juggle arguments
1811
+ if (typeof isSorted != 'boolean' && isSorted != null) {
1812
+ thisArg = callback;
1813
+ callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;
1814
+ isSorted = false;
1850
1815
  }
1816
+ if (callback != null) {
1817
+ callback = createCallback(callback, thisArg, 3);
1818
+ }
1819
+ return baseUniq(array, isSorted, callback);
1820
+ }
1851
1821
 
1852
- return this;
1853
- };
1854
-
1855
- EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1856
-
1857
- EventEmitter.prototype.once = function(type, listener) {
1858
- if (!isFunction(listener))
1859
- throw TypeError('listener must be a function');
1860
-
1861
- var fired = false;
1822
+ module.exports = uniq;
1823
+
1824
+
1825
+ /***/ },
1826
+ /* 18 */
1827
+ /***/ function(module, exports, __webpack_require__) {
1828
+
1829
+ /**
1830
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1831
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1832
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1833
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1834
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1835
+ * Available under MIT license <http://lodash.com/license>
1836
+ */
1837
+ var createCallback = __webpack_require__(39),
1838
+ forOwn = __webpack_require__(13);
1862
1839
 
1863
- function g() {
1864
- this.removeListener(type, g);
1840
+ /**
1841
+ * Creates an array of values by running each element in the collection
1842
+ * through the callback. The callback is bound to `thisArg` and invoked with
1843
+ * three arguments; (value, index|key, collection).
1844
+ *
1845
+ * If a property name is provided for `callback` the created "_.pluck" style
1846
+ * callback will return the property value of the given element.
1847
+ *
1848
+ * If an object is provided for `callback` the created "_.where" style callback
1849
+ * will return `true` for elements that have the properties of the given object,
1850
+ * else `false`.
1851
+ *
1852
+ * @static
1853
+ * @memberOf _
1854
+ * @alias collect
1855
+ * @category Collections
1856
+ * @param {Array|Object|string} collection The collection to iterate over.
1857
+ * @param {Function|Object|string} [callback=identity] The function called
1858
+ * per iteration. If a property name or object is provided it will be used
1859
+ * to create a "_.pluck" or "_.where" style callback, respectively.
1860
+ * @param {*} [thisArg] The `this` binding of `callback`.
1861
+ * @returns {Array} Returns a new array of the results of each `callback` execution.
1862
+ * @example
1863
+ *
1864
+ * _.map([1, 2, 3], function(num) { return num * 3; });
1865
+ * // => [3, 6, 9]
1866
+ *
1867
+ * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
1868
+ * // => [3, 6, 9] (property order is not guaranteed across environments)
1869
+ *
1870
+ * var characters = [
1871
+ * { 'name': 'barney', 'age': 36 },
1872
+ * { 'name': 'fred', 'age': 40 }
1873
+ * ];
1874
+ *
1875
+ * // using "_.pluck" callback shorthand
1876
+ * _.map(characters, 'name');
1877
+ * // => ['barney', 'fred']
1878
+ */
1879
+ function map(collection, callback, thisArg) {
1880
+ var index = -1,
1881
+ length = collection ? collection.length : 0;
1865
1882
 
1866
- if (!fired) {
1867
- fired = true;
1868
- listener.apply(this, arguments);
1883
+ callback = createCallback(callback, thisArg, 3);
1884
+ if (typeof length == 'number') {
1885
+ var result = Array(length);
1886
+ while (++index < length) {
1887
+ result[index] = callback(collection[index], index, collection);
1869
1888
  }
1889
+ } else {
1890
+ result = [];
1891
+ forOwn(collection, function(value, key, collection) {
1892
+ result[++index] = callback(value, key, collection);
1893
+ });
1870
1894
  }
1895
+ return result;
1896
+ }
1871
1897
 
1872
- g.listener = listener;
1873
- this.on(type, g);
1874
-
1875
- return this;
1876
- };
1877
-
1878
- // emits a 'removeListener' event iff the listener was removed
1879
- EventEmitter.prototype.removeListener = function(type, listener) {
1880
- var list, position, length, i;
1881
-
1882
- if (!isFunction(listener))
1883
- throw TypeError('listener must be a function');
1884
-
1885
- if (!this._events || !this._events[type])
1886
- return this;
1887
-
1888
- list = this._events[type];
1889
- length = list.length;
1890
- position = -1;
1898
+ module.exports = map;
1899
+
1900
+
1901
+ /***/ },
1902
+ /* 19 */
1903
+ /***/ function(module, exports, __webpack_require__) {
1904
+
1905
+ /**
1906
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1907
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1908
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1909
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1910
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1911
+ * Available under MIT license <http://lodash.com/license>
1912
+ */
1913
+ var baseCreateCallback = __webpack_require__(27),
1914
+ forOwn = __webpack_require__(13);
1891
1915
 
1892
- if (list === listener ||
1893
- (isFunction(list.listener) && list.listener === listener)) {
1894
- delete this._events[type];
1895
- if (this._events.removeListener)
1896
- this.emit('removeListener', type, listener);
1916
+ /**
1917
+ * Iterates over elements of a collection, executing the callback for each
1918
+ * element. The callback is bound to `thisArg` and invoked with three arguments;
1919
+ * (value, index|key, collection). Callbacks may exit iteration early by
1920
+ * explicitly returning `false`.
1921
+ *
1922
+ * Note: As with other "Collections" methods, objects with a `length` property
1923
+ * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
1924
+ * may be used for object iteration.
1925
+ *
1926
+ * @static
1927
+ * @memberOf _
1928
+ * @alias each
1929
+ * @category Collections
1930
+ * @param {Array|Object|string} collection The collection to iterate over.
1931
+ * @param {Function} [callback=identity] The function called per iteration.
1932
+ * @param {*} [thisArg] The `this` binding of `callback`.
1933
+ * @returns {Array|Object|string} Returns `collection`.
1934
+ * @example
1935
+ *
1936
+ * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
1937
+ * // => logs each number and returns '1,2,3'
1938
+ *
1939
+ * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
1940
+ * // => logs each number and returns the object (property order is not guaranteed across environments)
1941
+ */
1942
+ function forEach(collection, callback, thisArg) {
1943
+ var index = -1,
1944
+ length = collection ? collection.length : 0;
1897
1945
 
1898
- } else if (isObject(list)) {
1899
- for (i = length; i-- > 0;) {
1900
- if (list[i] === listener ||
1901
- (list[i].listener && list[i].listener === listener)) {
1902
- position = i;
1946
+ callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
1947
+ if (typeof length == 'number') {
1948
+ while (++index < length) {
1949
+ if (callback(collection[index], index, collection) === false) {
1903
1950
  break;
1904
1951
  }
1905
1952
  }
1906
-
1907
- if (position < 0)
1908
- return this;
1909
-
1910
- if (list.length === 1) {
1911
- list.length = 0;
1912
- delete this._events[type];
1913
- } else {
1914
- list.splice(position, 1);
1915
- }
1916
-
1917
- if (this._events.removeListener)
1918
- this.emit('removeListener', type, listener);
1919
- }
1920
-
1921
- return this;
1922
- };
1923
-
1924
- EventEmitter.prototype.removeAllListeners = function(type) {
1925
- var key, listeners;
1926
-
1927
- if (!this._events)
1928
- return this;
1929
-
1930
- // not listening for removeListener, no need to emit
1931
- if (!this._events.removeListener) {
1932
- if (arguments.length === 0)
1933
- this._events = {};
1934
- else if (this._events[type])
1935
- delete this._events[type];
1936
- return this;
1937
- }
1938
-
1939
- // emit removeListener for all listeners on all events
1940
- if (arguments.length === 0) {
1941
- for (key in this._events) {
1942
- if (key === 'removeListener') continue;
1943
- this.removeAllListeners(key);
1944
- }
1945
- this.removeAllListeners('removeListener');
1946
- this._events = {};
1947
- return this;
1948
- }
1949
-
1950
- listeners = this._events[type];
1951
-
1952
- if (isFunction(listeners)) {
1953
- this.removeListener(type, listeners);
1954
1953
  } else {
1955
- // LIFO order
1956
- while (listeners.length)
1957
- this.removeListener(type, listeners[listeners.length - 1]);
1954
+ forOwn(collection, callback);
1958
1955
  }
1959
- delete this._events[type];
1960
-
1961
- return this;
1962
- };
1963
-
1964
- EventEmitter.prototype.listeners = function(type) {
1965
- var ret;
1966
- if (!this._events || !this._events[type])
1967
- ret = [];
1968
- else if (isFunction(this._events[type]))
1969
- ret = [this._events[type]];
1970
- else
1971
- ret = this._events[type].slice();
1972
- return ret;
1973
- };
1974
-
1975
- EventEmitter.listenerCount = function(emitter, type) {
1976
- var ret;
1977
- if (!emitter._events || !emitter._events[type])
1978
- ret = 0;
1979
- else if (isFunction(emitter._events[type]))
1980
- ret = 1;
1981
- else
1982
- ret = emitter._events[type].length;
1983
- return ret;
1984
- };
1985
-
1986
- function isFunction(arg) {
1987
- return typeof arg === 'function';
1988
- }
1989
-
1990
- function isNumber(arg) {
1991
- return typeof arg === 'number';
1956
+ return collection;
1992
1957
  }
1993
1958
 
1994
- function isObject(arg) {
1995
- return typeof arg === 'object' && arg !== null;
1996
- }
1959
+ module.exports = forEach;
1960
+
1961
+
1962
+ /***/ },
1963
+ /* 20 */
1964
+ /***/ function(module, exports, __webpack_require__) {
1965
+
1966
+ /**
1967
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
1968
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
1969
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
1970
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
1971
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1972
+ * Available under MIT license <http://lodash.com/license>
1973
+ */
1974
+ var keys = __webpack_require__(14);
1997
1975
 
1998
- function isUndefined(arg) {
1999
- return arg === void 0;
1976
+ /**
1977
+ * Gets the size of the `collection` by returning `collection.length` for arrays
1978
+ * and array-like objects or the number of own enumerable properties for objects.
1979
+ *
1980
+ * @static
1981
+ * @memberOf _
1982
+ * @category Collections
1983
+ * @param {Array|Object|string} collection The collection to inspect.
1984
+ * @returns {number} Returns `collection.length` or number of own enumerable properties.
1985
+ * @example
1986
+ *
1987
+ * _.size([1, 2]);
1988
+ * // => 2
1989
+ *
1990
+ * _.size({ 'one': 1, 'two': 2, 'three': 3 });
1991
+ * // => 3
1992
+ *
1993
+ * _.size('pebbles');
1994
+ * // => 7
1995
+ */
1996
+ function size(collection) {
1997
+ var length = collection ? collection.length : 0;
1998
+ return typeof length == 'number' ? length : keys(collection).length;
2000
1999
  }
2000
+
2001
+ module.exports = size;
2001
2002
 
2002
2003
 
2003
2004
  /***/ },
@@ -2023,7 +2024,7 @@ return /******/ (function(modules) { // webpackBootstrap
2023
2024
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2024
2025
  * Available under MIT license <http://lodash.com/license>
2025
2026
  */
2026
- var objectTypes = __webpack_require__(27);
2027
+ var objectTypes = __webpack_require__(28);
2027
2028
 
2028
2029
  /**
2029
2030
  * Checks if `value` is the language type of Object.
@@ -2114,7 +2115,7 @@ return /******/ (function(modules) { // webpackBootstrap
2114
2115
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2115
2116
  * Available under MIT license <http://lodash.com/license>
2116
2117
  */
2117
- var isNative = __webpack_require__(28);
2118
+ var isNative = __webpack_require__(29);
2118
2119
 
2119
2120
  /** `Object#toString` result shortcuts */
2120
2121
  var arrayClass = '[object Array]';
@@ -2155,6 +2156,72 @@ return /******/ (function(modules) { // webpackBootstrap
2155
2156
 
2156
2157
  /***/ },
2157
2158
  /* 25 */
2159
+ /***/ function(module, exports, __webpack_require__) {
2160
+
2161
+ // shim for using process in browser
2162
+
2163
+ var process = module.exports = {};
2164
+
2165
+ process.nextTick = (function () {
2166
+ var canSetImmediate = typeof window !== 'undefined'
2167
+ && window.setImmediate;
2168
+ var canPost = typeof window !== 'undefined'
2169
+ && window.postMessage && window.addEventListener
2170
+ ;
2171
+
2172
+ if (canSetImmediate) {
2173
+ return function (f) { return window.setImmediate(f) };
2174
+ }
2175
+
2176
+ if (canPost) {
2177
+ var queue = [];
2178
+ window.addEventListener('message', function (ev) {
2179
+ var source = ev.source;
2180
+ if ((source === window || source === null) && ev.data === 'process-tick') {
2181
+ ev.stopPropagation();
2182
+ if (queue.length > 0) {
2183
+ var fn = queue.shift();
2184
+ fn();
2185
+ }
2186
+ }
2187
+ }, true);
2188
+
2189
+ return function nextTick(fn) {
2190
+ queue.push(fn);
2191
+ window.postMessage('process-tick', '*');
2192
+ };
2193
+ }
2194
+
2195
+ return function nextTick(fn) {
2196
+ setTimeout(fn, 0);
2197
+ };
2198
+ })();
2199
+
2200
+ process.title = 'browser';
2201
+ process.browser = true;
2202
+ process.env = {};
2203
+ process.argv = [];
2204
+
2205
+ function noop() {}
2206
+
2207
+ process.on = noop;
2208
+ process.once = noop;
2209
+ process.off = noop;
2210
+ process.emit = noop;
2211
+
2212
+ process.binding = function (name) {
2213
+ throw new Error('process.binding is not supported');
2214
+ }
2215
+
2216
+ // TODO(shtylman)
2217
+ process.cwd = function () { return '/' };
2218
+ process.chdir = function (dir) {
2219
+ throw new Error('process.chdir is not supported');
2220
+ };
2221
+
2222
+
2223
+ /***/ },
2224
+ /* 26 */
2158
2225
  /***/ function(module, exports, __webpack_require__) {
2159
2226
 
2160
2227
  /**
@@ -2166,12 +2233,12 @@ return /******/ (function(modules) { // webpackBootstrap
2166
2233
  * Available under MIT license <http://lodash.com/license>
2167
2234
  */
2168
2235
  var assign = __webpack_require__(41),
2169
- forEach = __webpack_require__(18),
2170
- forOwn = __webpack_require__(12),
2171
- getArray = __webpack_require__(33),
2236
+ forEach = __webpack_require__(19),
2237
+ forOwn = __webpack_require__(13),
2238
+ getArray = __webpack_require__(34),
2172
2239
  isArray = __webpack_require__(24),
2173
2240
  isObject = __webpack_require__(22),
2174
- releaseArray = __webpack_require__(35),
2241
+ releaseArray = __webpack_require__(36),
2175
2242
  slice = __webpack_require__(42);
2176
2243
 
2177
2244
  /** Used to match regexp flags from their coerced string values */
@@ -2312,7 +2379,7 @@ return /******/ (function(modules) { // webpackBootstrap
2312
2379
 
2313
2380
 
2314
2381
  /***/ },
2315
- /* 26 */
2382
+ /* 27 */
2316
2383
  /***/ function(module, exports, __webpack_require__) {
2317
2384
 
2318
2385
  /**
@@ -2398,7 +2465,7 @@ return /******/ (function(modules) { // webpackBootstrap
2398
2465
 
2399
2466
 
2400
2467
  /***/ },
2401
- /* 27 */
2468
+ /* 28 */
2402
2469
  /***/ function(module, exports, __webpack_require__) {
2403
2470
 
2404
2471
  /**
@@ -2424,7 +2491,7 @@ return /******/ (function(modules) { // webpackBootstrap
2424
2491
 
2425
2492
 
2426
2493
  /***/ },
2427
- /* 28 */
2494
+ /* 29 */
2428
2495
  /***/ function(module, exports, __webpack_require__) {
2429
2496
 
2430
2497
  /**
@@ -2464,7 +2531,7 @@ return /******/ (function(modules) { // webpackBootstrap
2464
2531
 
2465
2532
 
2466
2533
  /***/ },
2467
- /* 29 */
2534
+ /* 30 */
2468
2535
  /***/ function(module, exports, __webpack_require__) {
2469
2536
 
2470
2537
  /**
@@ -2475,7 +2542,7 @@ return /******/ (function(modules) { // webpackBootstrap
2475
2542
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2476
2543
  * Available under MIT license <http://lodash.com/license>
2477
2544
  */
2478
- var objectTypes = __webpack_require__(27);
2545
+ var objectTypes = __webpack_require__(28);
2479
2546
 
2480
2547
  /** Used for native method references */
2481
2548
  var objectProto = Object.prototype;
@@ -2508,7 +2575,7 @@ return /******/ (function(modules) { // webpackBootstrap
2508
2575
 
2509
2576
 
2510
2577
  /***/ },
2511
- /* 30 */
2578
+ /* 31 */
2512
2579
  /***/ function(module, exports, __webpack_require__) {
2513
2580
 
2514
2581
  /**
@@ -2546,7 +2613,7 @@ return /******/ (function(modules) { // webpackBootstrap
2546
2613
 
2547
2614
 
2548
2615
  /***/ },
2549
- /* 31 */
2616
+ /* 32 */
2550
2617
  /***/ function(module, exports, __webpack_require__) {
2551
2618
 
2552
2619
  /**
@@ -2557,8 +2624,8 @@ return /******/ (function(modules) { // webpackBootstrap
2557
2624
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2558
2625
  * Available under MIT license <http://lodash.com/license>
2559
2626
  */
2560
- var baseIndexOf = __webpack_require__(30),
2561
- keyPrefix = __webpack_require__(48);
2627
+ var baseIndexOf = __webpack_require__(31),
2628
+ keyPrefix = __webpack_require__(46);
2562
2629
 
2563
2630
  /**
2564
2631
  * An implementation of `_.contains` for cache objects that mimics the return
@@ -2591,7 +2658,7 @@ return /******/ (function(modules) { // webpackBootstrap
2591
2658
 
2592
2659
 
2593
2660
  /***/ },
2594
- /* 32 */
2661
+ /* 33 */
2595
2662
  /***/ function(module, exports, __webpack_require__) {
2596
2663
 
2597
2664
  /**
@@ -2602,9 +2669,9 @@ return /******/ (function(modules) { // webpackBootstrap
2602
2669
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2603
2670
  * Available under MIT license <http://lodash.com/license>
2604
2671
  */
2605
- var cachePush = __webpack_require__(46),
2606
- getObject = __webpack_require__(47),
2607
- releaseObject = __webpack_require__(36);
2672
+ var cachePush = __webpack_require__(47),
2673
+ getObject = __webpack_require__(48),
2674
+ releaseObject = __webpack_require__(37);
2608
2675
 
2609
2676
  /**
2610
2677
  * Creates a cache object to optimize linear searches of large arrays.
@@ -2642,7 +2709,7 @@ return /******/ (function(modules) { // webpackBootstrap
2642
2709
 
2643
2710
 
2644
2711
  /***/ },
2645
- /* 33 */
2712
+ /* 34 */
2646
2713
  /***/ function(module, exports, __webpack_require__) {
2647
2714
 
2648
2715
  /**
@@ -2653,7 +2720,7 @@ return /******/ (function(modules) { // webpackBootstrap
2653
2720
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2654
2721
  * Available under MIT license <http://lodash.com/license>
2655
2722
  */
2656
- var arrayPool = __webpack_require__(51);
2723
+ var arrayPool = __webpack_require__(49);
2657
2724
 
2658
2725
  /**
2659
2726
  * Gets an array from the array pool or creates a new one if the pool is empty.
@@ -2669,7 +2736,7 @@ return /******/ (function(modules) { // webpackBootstrap
2669
2736
 
2670
2737
 
2671
2738
  /***/ },
2672
- /* 34 */
2739
+ /* 35 */
2673
2740
  /***/ function(module, exports, __webpack_require__) {
2674
2741
 
2675
2742
  /**
@@ -2688,7 +2755,7 @@ return /******/ (function(modules) { // webpackBootstrap
2688
2755
 
2689
2756
 
2690
2757
  /***/ },
2691
- /* 35 */
2758
+ /* 36 */
2692
2759
  /***/ function(module, exports, __webpack_require__) {
2693
2760
 
2694
2761
  /**
@@ -2699,8 +2766,8 @@ return /******/ (function(modules) { // webpackBootstrap
2699
2766
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2700
2767
  * Available under MIT license <http://lodash.com/license>
2701
2768
  */
2702
- var arrayPool = __webpack_require__(51),
2703
- maxPoolSize = __webpack_require__(49);
2769
+ var arrayPool = __webpack_require__(49),
2770
+ maxPoolSize = __webpack_require__(50);
2704
2771
 
2705
2772
  /**
2706
2773
  * Releases the given array back to the array pool.
@@ -2719,7 +2786,7 @@ return /******/ (function(modules) { // webpackBootstrap
2719
2786
 
2720
2787
 
2721
2788
  /***/ },
2722
- /* 36 */
2789
+ /* 37 */
2723
2790
  /***/ function(module, exports, __webpack_require__) {
2724
2791
 
2725
2792
  /**
@@ -2730,8 +2797,8 @@ return /******/ (function(modules) { // webpackBootstrap
2730
2797
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2731
2798
  * Available under MIT license <http://lodash.com/license>
2732
2799
  */
2733
- var maxPoolSize = __webpack_require__(49),
2734
- objectPool = __webpack_require__(50);
2800
+ var maxPoolSize = __webpack_require__(50),
2801
+ objectPool = __webpack_require__(51);
2735
2802
 
2736
2803
  /**
2737
2804
  * Releases the given object back to the object pool.
@@ -2754,7 +2821,7 @@ return /******/ (function(modules) { // webpackBootstrap
2754
2821
 
2755
2822
 
2756
2823
  /***/ },
2757
- /* 37 */
2824
+ /* 38 */
2758
2825
  /***/ function(module, exports, __webpack_require__) {
2759
2826
 
2760
2827
  /**
@@ -2765,13 +2832,13 @@ return /******/ (function(modules) { // webpackBootstrap
2765
2832
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2766
2833
  * Available under MIT license <http://lodash.com/license>
2767
2834
  */
2768
- var baseIndexOf = __webpack_require__(30),
2769
- cacheIndexOf = __webpack_require__(31),
2770
- createCache = __webpack_require__(32),
2771
- getArray = __webpack_require__(33),
2772
- largeArraySize = __webpack_require__(34),
2773
- releaseArray = __webpack_require__(35),
2774
- releaseObject = __webpack_require__(36);
2835
+ var baseIndexOf = __webpack_require__(31),
2836
+ cacheIndexOf = __webpack_require__(32),
2837
+ createCache = __webpack_require__(33),
2838
+ getArray = __webpack_require__(34),
2839
+ largeArraySize = __webpack_require__(35),
2840
+ releaseArray = __webpack_require__(36),
2841
+ releaseObject = __webpack_require__(37);
2775
2842
 
2776
2843
  /**
2777
2844
  * The base implementation of `_.uniq` without support for callback shorthands
@@ -2824,7 +2891,7 @@ return /******/ (function(modules) { // webpackBootstrap
2824
2891
 
2825
2892
 
2826
2893
  /***/ },
2827
- /* 38 */
2894
+ /* 39 */
2828
2895
  /***/ function(module, exports, __webpack_require__) {
2829
2896
 
2830
2897
  /**
@@ -2835,10 +2902,10 @@ return /******/ (function(modules) { // webpackBootstrap
2835
2902
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
2836
2903
  * Available under MIT license <http://lodash.com/license>
2837
2904
  */
2838
- var baseCreateCallback = __webpack_require__(26),
2905
+ var baseCreateCallback = __webpack_require__(27),
2839
2906
  baseIsEqual = __webpack_require__(52),
2840
2907
  isObject = __webpack_require__(22),
2841
- keys = __webpack_require__(13),
2908
+ keys = __webpack_require__(14),
2842
2909
  property = __webpack_require__(54);
2843
2910
 
2844
2911
  /**
@@ -2910,72 +2977,6 @@ return /******/ (function(modules) { // webpackBootstrap
2910
2977
  module.exports = createCallback;
2911
2978
 
2912
2979
 
2913
- /***/ },
2914
- /* 39 */
2915
- /***/ function(module, exports, __webpack_require__) {
2916
-
2917
- // shim for using process in browser
2918
-
2919
- var process = module.exports = {};
2920
-
2921
- process.nextTick = (function () {
2922
- var canSetImmediate = typeof window !== 'undefined'
2923
- && window.setImmediate;
2924
- var canPost = typeof window !== 'undefined'
2925
- && window.postMessage && window.addEventListener
2926
- ;
2927
-
2928
- if (canSetImmediate) {
2929
- return function (f) { return window.setImmediate(f) };
2930
- }
2931
-
2932
- if (canPost) {
2933
- var queue = [];
2934
- window.addEventListener('message', function (ev) {
2935
- var source = ev.source;
2936
- if ((source === window || source === null) && ev.data === 'process-tick') {
2937
- ev.stopPropagation();
2938
- if (queue.length > 0) {
2939
- var fn = queue.shift();
2940
- fn();
2941
- }
2942
- }
2943
- }, true);
2944
-
2945
- return function nextTick(fn) {
2946
- queue.push(fn);
2947
- window.postMessage('process-tick', '*');
2948
- };
2949
- }
2950
-
2951
- return function nextTick(fn) {
2952
- setTimeout(fn, 0);
2953
- };
2954
- })();
2955
-
2956
- process.title = 'browser';
2957
- process.browser = true;
2958
- process.env = {};
2959
- process.argv = [];
2960
-
2961
- function noop() {}
2962
-
2963
- process.on = noop;
2964
- process.once = noop;
2965
- process.off = noop;
2966
- process.emit = noop;
2967
-
2968
- process.binding = function (name) {
2969
- throw new Error('process.binding is not supported');
2970
- }
2971
-
2972
- // TODO(shtylman)
2973
- process.cwd = function () { return '/' };
2974
- process.chdir = function (dir) {
2975
- throw new Error('process.chdir is not supported');
2976
- };
2977
-
2978
-
2979
2980
  /***/ },
2980
2981
  /* 40 */
2981
2982
  /***/ function(module, exports, __webpack_require__) {
@@ -3017,9 +3018,9 @@ return /******/ (function(modules) { // webpackBootstrap
3017
3018
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3018
3019
  * Available under MIT license <http://lodash.com/license>
3019
3020
  */
3020
- var baseCreateCallback = __webpack_require__(26),
3021
- keys = __webpack_require__(13),
3022
- objectTypes = __webpack_require__(27);
3021
+ var baseCreateCallback = __webpack_require__(27),
3022
+ keys = __webpack_require__(14),
3023
+ objectTypes = __webpack_require__(28);
3023
3024
 
3024
3025
  /**
3025
3026
  * Assigns own enumerable properties of source object(s) to the destination
@@ -3183,7 +3184,7 @@ return /******/ (function(modules) { // webpackBootstrap
3183
3184
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3184
3185
  * Available under MIT license <http://lodash.com/license>
3185
3186
  */
3186
- var isNative = __webpack_require__(28),
3187
+ var isNative = __webpack_require__(29),
3187
3188
  noop = __webpack_require__(56);
3188
3189
 
3189
3190
  /** Used as the property descriptor for `__bindData__` */
@@ -3232,7 +3233,7 @@ return /******/ (function(modules) { // webpackBootstrap
3232
3233
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3233
3234
  * Available under MIT license <http://lodash.com/license>
3234
3235
  */
3235
- var isNative = __webpack_require__(28);
3236
+ var isNative = __webpack_require__(29);
3236
3237
 
3237
3238
  /** Used to detect functions containing a `this` reference */
3238
3239
  var reThis = /\bthis\b/;
@@ -3279,7 +3280,26 @@ return /******/ (function(modules) { // webpackBootstrap
3279
3280
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3280
3281
  * Available under MIT license <http://lodash.com/license>
3281
3282
  */
3282
- var keyPrefix = __webpack_require__(48);
3283
+
3284
+ /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */
3285
+ var keyPrefix = +new Date + '';
3286
+
3287
+ module.exports = keyPrefix;
3288
+
3289
+
3290
+ /***/ },
3291
+ /* 47 */
3292
+ /***/ function(module, exports, __webpack_require__) {
3293
+
3294
+ /**
3295
+ * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3296
+ * Build: `lodash modularize modern exports="node" -o ./modern/`
3297
+ * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3298
+ * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3299
+ * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3300
+ * Available under MIT license <http://lodash.com/license>
3301
+ */
3302
+ var keyPrefix = __webpack_require__(46);
3283
3303
 
3284
3304
  /**
3285
3305
  * Adds a given value to the corresponding cache object.
@@ -3312,7 +3332,7 @@ return /******/ (function(modules) { // webpackBootstrap
3312
3332
 
3313
3333
 
3314
3334
  /***/ },
3315
- /* 47 */
3335
+ /* 48 */
3316
3336
  /***/ function(module, exports, __webpack_require__) {
3317
3337
 
3318
3338
  /**
@@ -3323,7 +3343,7 @@ return /******/ (function(modules) { // webpackBootstrap
3323
3343
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3324
3344
  * Available under MIT license <http://lodash.com/license>
3325
3345
  */
3326
- var objectPool = __webpack_require__(50);
3346
+ var objectPool = __webpack_require__(51);
3327
3347
 
3328
3348
  /**
3329
3349
  * Gets an object from the object pool or creates a new one if the pool is empty.
@@ -3353,7 +3373,7 @@ return /******/ (function(modules) { // webpackBootstrap
3353
3373
 
3354
3374
 
3355
3375
  /***/ },
3356
- /* 48 */
3376
+ /* 49 */
3357
3377
  /***/ function(module, exports, __webpack_require__) {
3358
3378
 
3359
3379
  /**
@@ -3365,14 +3385,14 @@ return /******/ (function(modules) { // webpackBootstrap
3365
3385
  * Available under MIT license <http://lodash.com/license>
3366
3386
  */
3367
3387
 
3368
- /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */
3369
- var keyPrefix = +new Date + '';
3388
+ /** Used to pool arrays and objects used internally */
3389
+ var arrayPool = [];
3370
3390
 
3371
- module.exports = keyPrefix;
3391
+ module.exports = arrayPool;
3372
3392
 
3373
3393
 
3374
3394
  /***/ },
3375
- /* 49 */
3395
+ /* 50 */
3376
3396
  /***/ function(module, exports, __webpack_require__) {
3377
3397
 
3378
3398
  /**
@@ -3391,7 +3411,7 @@ return /******/ (function(modules) { // webpackBootstrap
3391
3411
 
3392
3412
 
3393
3413
  /***/ },
3394
- /* 50 */
3414
+ /* 51 */
3395
3415
  /***/ function(module, exports, __webpack_require__) {
3396
3416
 
3397
3417
  /**
@@ -3409,25 +3429,6 @@ return /******/ (function(modules) { // webpackBootstrap
3409
3429
  module.exports = objectPool;
3410
3430
 
3411
3431
 
3412
- /***/ },
3413
- /* 51 */
3414
- /***/ function(module, exports, __webpack_require__) {
3415
-
3416
- /**
3417
- * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
3418
- * Build: `lodash modularize modern exports="node" -o ./modern/`
3419
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
3420
- * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
3421
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3422
- * Available under MIT license <http://lodash.com/license>
3423
- */
3424
-
3425
- /** Used to pool arrays and objects used internally */
3426
- var arrayPool = [];
3427
-
3428
- module.exports = arrayPool;
3429
-
3430
-
3431
3432
  /***/ },
3432
3433
  /* 52 */
3433
3434
  /***/ function(module, exports, __webpack_require__) {
@@ -3441,10 +3442,10 @@ return /******/ (function(modules) { // webpackBootstrap
3441
3442
  * Available under MIT license <http://lodash.com/license>
3442
3443
  */
3443
3444
  var forIn = __webpack_require__(57),
3444
- getArray = __webpack_require__(33),
3445
+ getArray = __webpack_require__(34),
3445
3446
  isFunction = __webpack_require__(58),
3446
- objectTypes = __webpack_require__(27),
3447
- releaseArray = __webpack_require__(35);
3447
+ objectTypes = __webpack_require__(28),
3448
+ releaseArray = __webpack_require__(36);
3448
3449
 
3449
3450
  /** `Object#toString` result shortcuts */
3450
3451
  var argsClass = '[object Arguments]',
@@ -3879,8 +3880,8 @@ return /******/ (function(modules) { // webpackBootstrap
3879
3880
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
3880
3881
  * Available under MIT license <http://lodash.com/license>
3881
3882
  */
3882
- var baseCreateCallback = __webpack_require__(26),
3883
- objectTypes = __webpack_require__(27);
3883
+ var baseCreateCallback = __webpack_require__(27),
3884
+ objectTypes = __webpack_require__(28);
3884
3885
 
3885
3886
  /**
3886
3887
  * Iterates over own and inherited enumerable properties of an object,
@@ -4124,7 +4125,7 @@ return /******/ (function(modules) { // webpackBootstrap
4124
4125
  * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
4125
4126
  * Available under MIT license <http://lodash.com/license>
4126
4127
  */
4127
- var isNative = __webpack_require__(28),
4128
+ var isNative = __webpack_require__(29),
4128
4129
  isObject = __webpack_require__(22),
4129
4130
  noop = __webpack_require__(56);
4130
4131