fluxxor-rails 1.5.2 → 1.5.3

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: 722541abf647edab8868f878be9c08e7851f031d
4
- data.tar.gz: 222d4fe76be0755d852667b8b3343561c3433d8d
3
+ metadata.gz: 3f891290cdee5391dda5e902aa917792ac2d3c97
4
+ data.tar.gz: 06f567ef1d600bfbbfb1abbe540304957bb3d230
5
5
  SHA512:
6
- metadata.gz: 7facc0dd1a4e4ce12903943b6605709d81765b518d27ae8182c031f70217da15e3227a7a54a1c5942af1e204721d30e87e35810b8d39524ef5aeeb742e529287
7
- data.tar.gz: c33a2b500a03d78926e821cefb8ca96541c811823b7dd3d4fac3aaee698acc09748f575900b5579f90a4f2939981d1d61447d2d62e8c745969974afcba3182fd
6
+ metadata.gz: 196f41bc6711e791b96c106508b239f8db899f17f241e05c51044736b2d4d4ef9cf6aae84c41f05eea1b0a8a215f69553cf15f7e990c8db0fa26de461437ce98
7
+ data.tar.gz: 2f86ec1b6bbe42106e65bef3a3bc241eaff65b1602eb5f86f0c4b57dff1395e85fc7f195f0a59668fe47e64acc1a87d5aeeba3ba4d44170c17527d392f16dd78
@@ -1,5 +1,5 @@
1
1
  module Fluxxor
2
2
  module Rails
3
- VERSION = '1.5.2'
3
+ VERSION = '1.5.3'
4
4
  end
5
5
  end
@@ -228,9 +228,9 @@ return /******/ (function(modules) { // webpackBootstrap
228
228
  /* 2 */
229
229
  /***/ function(module, exports, __webpack_require__) {
230
230
 
231
- var EventEmitter = __webpack_require__(9),
232
- inherits = __webpack_require__(11),
233
- objectPath = __webpack_require__(10),
231
+ var EventEmitter = __webpack_require__(10),
232
+ inherits = __webpack_require__(8),
233
+ objectPath = __webpack_require__(11),
234
234
  _each = __webpack_require__(22),
235
235
  _reduce = __webpack_require__(24),
236
236
  _isFunction = __webpack_require__(13),
@@ -473,8 +473,8 @@ return /******/ (function(modules) { // webpackBootstrap
473
473
 
474
474
  var _each = __webpack_require__(22),
475
475
  _isFunction = __webpack_require__(13),
476
- Store = __webpack_require__(8),
477
- inherits = __webpack_require__(11);
476
+ Store = __webpack_require__(9),
477
+ inherits = __webpack_require__(8);
478
478
 
479
479
  var RESERVED_KEYS = ["flux", "waitFor"];
480
480
 
@@ -517,14 +517,63 @@ return /******/ (function(modules) { // webpackBootstrap
517
517
  /* 7 */
518
518
  /***/ function(module, exports, __webpack_require__) {
519
519
 
520
- module.exports = "1.5.2"
520
+ module.exports = "1.5.3"
521
521
 
522
522
  /***/ },
523
523
  /* 8 */
524
524
  /***/ function(module, exports, __webpack_require__) {
525
525
 
526
- var EventEmitter = __webpack_require__(9),
527
- inherits = __webpack_require__(11),
526
+ // From https://github.com/isaacs/inherits
527
+ // inherits is licensed under the ISC license:
528
+ //
529
+ //
530
+ // The ISC License
531
+ //
532
+ // Copyright (c) Isaac Z. Schlueter
533
+ //
534
+ // Permission to use, copy, modify, and/or distribute this software for any
535
+ // purpose with or without fee is hereby granted, provided that the above
536
+ // copyright notice and this permission notice appear in all copies.
537
+ //
538
+ // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
539
+ // REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
540
+ // FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
541
+ // INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
542
+ // LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
543
+ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
544
+ // PERFORMANCE OF THIS SOFTWARE.
545
+
546
+ if (typeof Object.create === 'function') {
547
+ // implementation from standard node.js 'util' module
548
+ module.exports = function inherits(ctor, superCtor) {
549
+ ctor.super_ = superCtor;
550
+ ctor.prototype = Object.create(superCtor.prototype, {
551
+ constructor: {
552
+ value: ctor,
553
+ enumerable: false,
554
+ writable: true,
555
+ configurable: true
556
+ }
557
+ });
558
+ };
559
+ } else {
560
+ // old school shim for old browsers
561
+ module.exports = function inherits(ctor, superCtor) {
562
+ ctor.super_ = superCtor;
563
+ var TempCtor = function () {};
564
+ TempCtor.prototype = superCtor.prototype;
565
+ ctor.prototype = new TempCtor();
566
+ ctor.prototype.constructor = ctor;
567
+ };
568
+ }
569
+
570
+
571
+ /***/ },
572
+ /* 9 */
573
+ /***/ function(module, exports, __webpack_require__) {
574
+
575
+ var EventEmitter = __webpack_require__(10),
576
+ inherits = __webpack_require__(8),
528
577
  _isFunction = __webpack_require__(13),
529
578
  _isObject = __webpack_require__(25);
530
579
 
@@ -596,7 +645,7 @@ return /******/ (function(modules) { // webpackBootstrap
596
645
 
597
646
 
598
647
  /***/ },
599
- /* 9 */
648
+ /* 10 */
600
649
  /***/ function(module, exports, __webpack_require__) {
601
650
 
602
651
  'use strict';
@@ -831,7 +880,7 @@ return /******/ (function(modules) { // webpackBootstrap
831
880
 
832
881
 
833
882
  /***/ },
834
- /* 10 */
883
+ /* 11 */
835
884
  /***/ function(module, exports, __webpack_require__) {
836
885
 
837
886
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory){
@@ -1076,42 +1125,13 @@ return /******/ (function(modules) { // webpackBootstrap
1076
1125
  return objectPath;
1077
1126
  });
1078
1127
 
1079
- /***/ },
1080
- /* 11 */
1081
- /***/ function(module, exports, __webpack_require__) {
1082
-
1083
- if (typeof Object.create === 'function') {
1084
- // implementation from standard node.js 'util' module
1085
- module.exports = function inherits(ctor, superCtor) {
1086
- ctor.super_ = superCtor
1087
- ctor.prototype = Object.create(superCtor.prototype, {
1088
- constructor: {
1089
- value: ctor,
1090
- enumerable: false,
1091
- writable: true,
1092
- configurable: true
1093
- }
1094
- });
1095
- };
1096
- } else {
1097
- // old school shim for old browsers
1098
- module.exports = function inherits(ctor, superCtor) {
1099
- ctor.super_ = superCtor
1100
- var TempCtor = function () {}
1101
- TempCtor.prototype = superCtor.prototype
1102
- ctor.prototype = new TempCtor()
1103
- ctor.prototype.constructor = ctor
1104
- }
1105
- }
1106
-
1107
-
1108
1128
  /***/ },
1109
1129
  /* 12 */
1110
1130
  /***/ function(module, exports, __webpack_require__) {
1111
1131
 
1112
- var baseClone = __webpack_require__(27),
1113
- bindCallback = __webpack_require__(28),
1114
- isIterateeCall = __webpack_require__(29);
1132
+ var baseClone = __webpack_require__(26),
1133
+ bindCallback = __webpack_require__(27),
1134
+ isIterateeCall = __webpack_require__(28);
1115
1135
 
1116
1136
  /**
1117
1137
  * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned,
@@ -1120,12 +1140,12 @@ return /******/ (function(modules) { // webpackBootstrap
1120
1140
  * cloning is handled by the method instead. The `customizer` is bound to
1121
1141
  * `thisArg` and invoked with two argument; (value [, index|key, object]).
1122
1142
  *
1123
- * **Note:** This method is loosely based on the structured clone algorithm.
1143
+ * **Note:** This method is loosely based on the
1144
+ * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).
1124
1145
  * The enumerable properties of `arguments` objects and objects created by
1125
1146
  * constructors other than `Object` are cloned to plain `Object` objects. An
1126
1147
  * empty object is returned for uncloneable values such as functions, DOM nodes,
1127
- * Maps, Sets, and WeakMaps. See the [HTML5 specification](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm)
1128
- * for more details.
1148
+ * Maps, Sets, and WeakMaps.
1129
1149
  *
1130
1150
  * @static
1131
1151
  * @memberOf _
@@ -1151,22 +1171,26 @@ return /******/ (function(modules) { // webpackBootstrap
1151
1171
  * // => false
1152
1172
  *
1153
1173
  * // using a customizer callback
1154
- * var body = _.clone(document.body, function(value) {
1155
- * return _.isElement(value) ? value.cloneNode(false) : undefined;
1174
+ * var el = _.clone(document.body, function(value) {
1175
+ * if (_.isElement(value)) {
1176
+ * return value.cloneNode(false);
1177
+ * }
1156
1178
  * });
1157
1179
  *
1158
- * body === document.body
1180
+ * el === document.body
1159
1181
  * // => false
1160
- * body.nodeName
1182
+ * el.nodeName
1161
1183
  * // => BODY
1162
- * body.childNodes.length;
1184
+ * el.childNodes.length;
1163
1185
  * // => 0
1164
1186
  */
1165
1187
  function clone(value, isDeep, customizer, thisArg) {
1166
- // Juggle arguments.
1167
- if (typeof isDeep != 'boolean' && isDeep != null) {
1188
+ if (isDeep && typeof isDeep != 'boolean' && isIterateeCall(value, isDeep, customizer)) {
1189
+ isDeep = false;
1190
+ }
1191
+ else if (typeof isDeep == 'function') {
1168
1192
  thisArg = customizer;
1169
- customizer = isIterateeCall(value, isDeep, thisArg) ? null : isDeep;
1193
+ customizer = isDeep;
1170
1194
  isDeep = false;
1171
1195
  }
1172
1196
  customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 1);
@@ -1180,7 +1204,8 @@ return /******/ (function(modules) { // webpackBootstrap
1180
1204
  /* 13 */
1181
1205
  /***/ function(module, exports, __webpack_require__) {
1182
1206
 
1183
- /* WEBPACK VAR INJECTION */(function(global) {var isNative = __webpack_require__(30);
1207
+ /* WEBPACK VAR INJECTION */(function(global) {var baseIsFunction = __webpack_require__(29),
1208
+ isNative = __webpack_require__(30);
1184
1209
 
1185
1210
  /** `Object#toString` result references. */
1186
1211
  var funcTag = '[object Function]';
@@ -1189,9 +1214,8 @@ return /******/ (function(modules) { // webpackBootstrap
1189
1214
  var objectProto = Object.prototype;
1190
1215
 
1191
1216
  /**
1192
- * Used to resolve the `toStringTag` of values.
1193
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1194
- * for more details.
1217
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1218
+ * of values.
1195
1219
  */
1196
1220
  var objToString = objectProto.toString;
1197
1221
 
@@ -1214,20 +1238,12 @@ return /******/ (function(modules) { // webpackBootstrap
1214
1238
  * _.isFunction(/abc/);
1215
1239
  * // => false
1216
1240
  */
1217
- function isFunction(value) {
1218
- // Avoid a Chakra JIT bug in compatibility modes of IE 11.
1219
- // See https://github.com/jashkenas/underscore/issues/1621 for more details.
1220
- return typeof value == 'function' || false;
1221
- }
1222
- // Fallback for environments that return incorrect `typeof` operator results.
1223
- if (isFunction(/x/) || (Uint8Array && !isFunction(Uint8Array))) {
1224
- isFunction = function(value) {
1225
- // The use of `Object#toString` avoids issues with the `typeof` operator
1226
- // in older versions of Chrome and Safari which return 'function' for regexes
1227
- // and Safari 8 equivalents which return 'object' for typed array constructors.
1228
- return objToString.call(value) == funcTag;
1229
- };
1230
- }
1241
+ var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {
1242
+ // The use of `Object#toString` avoids issues with the `typeof` operator
1243
+ // in older versions of Chrome and Safari which return 'function' for regexes
1244
+ // and Safari 8 equivalents which return 'object' for typed array constructors.
1245
+ return objToString.call(value) == funcTag;
1246
+ };
1231
1247
 
1232
1248
  module.exports = isFunction;
1233
1249
 
@@ -1237,7 +1253,7 @@ return /******/ (function(modules) { // webpackBootstrap
1237
1253
  /* 14 */
1238
1254
  /***/ function(module, exports, __webpack_require__) {
1239
1255
 
1240
- var isObjectLike = __webpack_require__(26);
1256
+ var isObjectLike = __webpack_require__(31);
1241
1257
 
1242
1258
  /** `Object#toString` result references. */
1243
1259
  var stringTag = '[object String]';
@@ -1246,9 +1262,8 @@ return /******/ (function(modules) { // webpackBootstrap
1246
1262
  var objectProto = Object.prototype;
1247
1263
 
1248
1264
  /**
1249
- * Used to resolve the `toStringTag` of values.
1250
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1251
- * for more details.
1265
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1266
+ * of values.
1252
1267
  */
1253
1268
  var objToString = objectProto.toString;
1254
1269
 
@@ -1269,7 +1284,7 @@ return /******/ (function(modules) { // webpackBootstrap
1269
1284
  * // => false
1270
1285
  */
1271
1286
  function isString(value) {
1272
- return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag) || false;
1287
+ return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);
1273
1288
  }
1274
1289
 
1275
1290
  module.exports = isString;
@@ -1279,19 +1294,23 @@ return /******/ (function(modules) { // webpackBootstrap
1279
1294
  /* 15 */
1280
1295
  /***/ function(module, exports, __webpack_require__) {
1281
1296
 
1282
- var baseCallback = __webpack_require__(31),
1297
+ var baseCallback = __webpack_require__(34),
1283
1298
  baseForOwn = __webpack_require__(32);
1284
1299
 
1285
1300
  /**
1286
1301
  * Creates an object with the same keys as `object` and values generated by
1287
1302
  * running each own enumerable property of `object` through `iteratee`. The
1288
- * iteratee function is bound to `thisArg` and invoked with three arguments;
1303
+ * iteratee function is bound to `thisArg` and invoked with three arguments:
1289
1304
  * (value, key, object).
1290
1305
  *
1291
- * If a property name is provided for `iteratee` the created "_.property"
1306
+ * If a property name is provided for `iteratee` the created `_.property`
1292
1307
  * style callback returns the property value of the given element.
1293
1308
  *
1294
- * If an object is provided for `iteratee` the created "_.matches" style
1309
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
1310
+ * style callback returns `true` for elements that have a matching property
1311
+ * value, else `false`.
1312
+ *
1313
+ * If an object is provided for `iteratee` the created `_.matches` style
1295
1314
  * callback returns `true` for elements that have the properties of the given
1296
1315
  * object, else `false`.
1297
1316
  *
@@ -1300,21 +1319,22 @@ return /******/ (function(modules) { // webpackBootstrap
1300
1319
  * @category Object
1301
1320
  * @param {Object} object The object to iterate over.
1302
1321
  * @param {Function|Object|string} [iteratee=_.identity] The function invoked
1303
- * per iteration. If a property name or object is provided it is used to
1304
- * create a "_.property" or "_.matches" style callback respectively.
1322
+ * per iteration.
1305
1323
  * @param {*} [thisArg] The `this` binding of `iteratee`.
1306
1324
  * @returns {Object} Returns the new mapped object.
1307
1325
  * @example
1308
1326
  *
1309
- * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(n) { return n * 3; });
1310
- * // => { 'a': 3, 'b': 6, 'c': 9 }
1327
+ * _.mapValues({ 'a': 1, 'b': 2 }, function(n) {
1328
+ * return n * 3;
1329
+ * });
1330
+ * // => { 'a': 3, 'b': 6 }
1311
1331
  *
1312
1332
  * var users = {
1313
1333
  * 'fred': { 'user': 'fred', 'age': 40 },
1314
1334
  * 'pebbles': { 'user': 'pebbles', 'age': 1 }
1315
1335
  * };
1316
1336
  *
1317
- * // using the "_.property" callback shorthand
1337
+ * // using the `_.property` callback shorthand
1318
1338
  * _.mapValues(users, 'age');
1319
1339
  * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
1320
1340
  */
@@ -1336,12 +1356,12 @@ return /******/ (function(modules) { // webpackBootstrap
1336
1356
  /***/ function(module, exports, __webpack_require__) {
1337
1357
 
1338
1358
  var baseForOwn = __webpack_require__(32),
1339
- bindCallback = __webpack_require__(28);
1359
+ createForOwn = __webpack_require__(33);
1340
1360
 
1341
1361
  /**
1342
1362
  * Iterates over own enumerable properties of an object invoking `iteratee`
1343
1363
  * for each property. The `iteratee` is bound to `thisArg` and invoked with
1344
- * three arguments; (value, key, object). Iterator functions may exit iteration
1364
+ * three arguments: (value, key, object). Iterator functions may exit iteration
1345
1365
  * early by explicitly returning `false`.
1346
1366
  *
1347
1367
  * @static
@@ -1353,17 +1373,19 @@ return /******/ (function(modules) { // webpackBootstrap
1353
1373
  * @returns {Object} Returns `object`.
1354
1374
  * @example
1355
1375
  *
1356
- * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(n, key) {
1376
+ * function Foo() {
1377
+ * this.a = 1;
1378
+ * this.b = 2;
1379
+ * }
1380
+ *
1381
+ * Foo.prototype.c = 3;
1382
+ *
1383
+ * _.forOwn(new Foo, function(value, key) {
1357
1384
  * console.log(key);
1358
1385
  * });
1359
- * // => logs '0', '1', and 'length' (iteration order is not guaranteed)
1386
+ * // => logs 'a' and 'b' (iteration order is not guaranteed)
1360
1387
  */
1361
- function forOwn(object, iteratee, thisArg) {
1362
- if (typeof iteratee != 'function' || typeof thisArg != 'undefined') {
1363
- iteratee = bindCallback(iteratee, thisArg, 3);
1364
- }
1365
- return baseForOwn(object, iteratee);
1366
- }
1388
+ var forOwn = createForOwn(baseForOwn);
1367
1389
 
1368
1390
  module.exports = forOwn;
1369
1391
 
@@ -1372,10 +1394,10 @@ return /******/ (function(modules) { // webpackBootstrap
1372
1394
  /* 17 */
1373
1395
  /***/ function(module, exports, __webpack_require__) {
1374
1396
 
1375
- var isLength = __webpack_require__(33),
1397
+ var isLength = __webpack_require__(35),
1376
1398
  isNative = __webpack_require__(30),
1377
1399
  isObject = __webpack_require__(25),
1378
- shimKeys = __webpack_require__(34);
1400
+ shimKeys = __webpack_require__(36);
1379
1401
 
1380
1402
  /* Native method references for those with the same name as other `lodash` methods. */
1381
1403
  var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
@@ -1413,7 +1435,7 @@ return /******/ (function(modules) { // webpackBootstrap
1413
1435
  length = object.length;
1414
1436
  }
1415
1437
  if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
1416
- (typeof object != 'function' && (length && isLength(length)))) {
1438
+ (typeof object != 'function' && (length && isLength(length)))) {
1417
1439
  return shimKeys(object);
1418
1440
  }
1419
1441
  return isObject(object) ? nativeKeys(object) : [];
@@ -1426,18 +1448,21 @@ return /******/ (function(modules) { // webpackBootstrap
1426
1448
  /* 18 */
1427
1449
  /***/ function(module, exports, __webpack_require__) {
1428
1450
 
1429
- var baseCallback = __webpack_require__(31),
1430
- baseFind = __webpack_require__(35),
1431
- baseForOwn = __webpack_require__(32);
1451
+ var baseForOwn = __webpack_require__(32),
1452
+ createFindKey = __webpack_require__(39);
1432
1453
 
1433
1454
  /**
1434
- * This method is like `_.findIndex` except that it returns the key of the
1435
- * first element `predicate` returns truthy for, instead of the element itself.
1455
+ * This method is like `_.find` except that it returns the key of the first
1456
+ * element `predicate` returns truthy for instead of the element itself.
1436
1457
  *
1437
- * If a property name is provided for `predicate` the created "_.property"
1458
+ * If a property name is provided for `predicate` the created `_.property`
1438
1459
  * style callback returns the property value of the given element.
1439
1460
  *
1440
- * If an object is provided for `predicate` the created "_.matches" style
1461
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
1462
+ * style callback returns `true` for elements that have a matching property
1463
+ * value, else `false`.
1464
+ *
1465
+ * If an object is provided for `predicate` the created `_.matches` style
1441
1466
  * callback returns `true` for elements that have the properties of the given
1442
1467
  * object, else `false`.
1443
1468
  *
@@ -1446,8 +1471,7 @@ return /******/ (function(modules) { // webpackBootstrap
1446
1471
  * @category Object
1447
1472
  * @param {Object} object The object to search.
1448
1473
  * @param {Function|Object|string} [predicate=_.identity] The function invoked
1449
- * per iteration. If a property name or object is provided it is used to
1450
- * create a "_.property" or "_.matches" style callback respectively.
1474
+ * per iteration.
1451
1475
  * @param {*} [thisArg] The `this` binding of `predicate`.
1452
1476
  * @returns {string|undefined} Returns the key of the matched element, else `undefined`.
1453
1477
  * @example
@@ -1458,21 +1482,24 @@ return /******/ (function(modules) { // webpackBootstrap
1458
1482
  * 'pebbles': { 'age': 1, 'active': true }
1459
1483
  * };
1460
1484
  *
1461
- * _.findKey(users, function(chr) { return chr.age < 40; });
1485
+ * _.findKey(users, function(chr) {
1486
+ * return chr.age < 40;
1487
+ * });
1462
1488
  * // => 'barney' (iteration order is not guaranteed)
1463
1489
  *
1464
- * // using the "_.matches" callback shorthand
1465
- * _.findKey(users, { 'age': 1 });
1490
+ * // using the `_.matches` callback shorthand
1491
+ * _.findKey(users, { 'age': 1, 'active': true });
1466
1492
  * // => 'pebbles'
1467
1493
  *
1468
- * // using the "_.property" callback shorthand
1494
+ * // using the `_.matchesProperty` callback shorthand
1495
+ * _.findKey(users, 'active', false);
1496
+ * // => 'fred'
1497
+ *
1498
+ * // using the `_.property` callback shorthand
1469
1499
  * _.findKey(users, 'active');
1470
1500
  * // => 'barney'
1471
1501
  */
1472
- function findKey(object, predicate, thisArg) {
1473
- predicate = baseCallback(predicate, thisArg, 3);
1474
- return baseFind(object, predicate, baseForOwn, true);
1475
- }
1502
+ var findKey = createFindKey(baseForOwn);
1476
1503
 
1477
1504
  module.exports = findKey;
1478
1505
 
@@ -1481,20 +1508,19 @@ return /******/ (function(modules) { // webpackBootstrap
1481
1508
  /* 19 */
1482
1509
  /***/ function(module, exports, __webpack_require__) {
1483
1510
 
1484
- var baseIndexOf = __webpack_require__(36),
1485
- cacheIndexOf = __webpack_require__(37),
1486
- createCache = __webpack_require__(38),
1487
- isArguments = __webpack_require__(39),
1488
- isArray = __webpack_require__(40);
1511
+ var baseIndexOf = __webpack_require__(40),
1512
+ cacheIndexOf = __webpack_require__(41),
1513
+ createCache = __webpack_require__(42),
1514
+ isArguments = __webpack_require__(43),
1515
+ isArray = __webpack_require__(44);
1489
1516
 
1490
1517
  /**
1491
1518
  * Creates an array of unique values in all provided arrays using `SameValueZero`
1492
1519
  * for equality comparisons.
1493
1520
  *
1494
- * **Note:** `SameValueZero` comparisons are like strict equality comparisons,
1495
- * e.g. `===`, except that `NaN` matches `NaN`. See the
1496
- * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
1497
- * for more details.
1521
+ * **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
1522
+ * comparisons are like strict equality comparisons, e.g. `===`, except that
1523
+ * `NaN` matches `NaN`.
1498
1524
  *
1499
1525
  * @static
1500
1526
  * @memberOf _
@@ -1502,9 +1528,8 @@ return /******/ (function(modules) { // webpackBootstrap
1502
1528
  * @param {...Array} [arrays] The arrays to inspect.
1503
1529
  * @returns {Array} Returns the new array of shared values.
1504
1530
  * @example
1505
- *
1506
- * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
1507
- * // => [1, 2]
1531
+ * _.intersection([1, 2], [4, 2], [2, 1]);
1532
+ * // => [2]
1508
1533
  */
1509
1534
  function intersection() {
1510
1535
  var args = [],
@@ -1518,7 +1543,7 @@ return /******/ (function(modules) { // webpackBootstrap
1518
1543
  var value = arguments[argsIndex];
1519
1544
  if (isArray(value) || isArguments(value)) {
1520
1545
  args.push(value);
1521
- caches.push(isCommon && value.length >= 120 && createCache(argsIndex && value));
1546
+ caches.push((isCommon && value.length >= 120) ? createCache(argsIndex && value) : null);
1522
1547
  }
1523
1548
  }
1524
1549
  argsLength = args.length;
@@ -1531,11 +1556,11 @@ return /******/ (function(modules) { // webpackBootstrap
1531
1556
  outer:
1532
1557
  while (++index < length) {
1533
1558
  value = array[index];
1534
- if ((seen ? cacheIndexOf(seen, value) : indexOf(result, value)) < 0) {
1559
+ if ((seen ? cacheIndexOf(seen, value) : indexOf(result, value, 0)) < 0) {
1535
1560
  argsIndex = argsLength;
1536
1561
  while (--argsIndex) {
1537
1562
  var cache = caches[argsIndex];
1538
- if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {
1563
+ if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value, 0)) < 0) {
1539
1564
  continue outer;
1540
1565
  }
1541
1566
  }
@@ -1555,10 +1580,10 @@ return /******/ (function(modules) { // webpackBootstrap
1555
1580
  /* 20 */
1556
1581
  /***/ function(module, exports, __webpack_require__) {
1557
1582
 
1558
- var baseCallback = __webpack_require__(31),
1559
- baseUniq = __webpack_require__(41),
1560
- isIterateeCall = __webpack_require__(29),
1561
- sortedUniq = __webpack_require__(42);
1583
+ var baseCallback = __webpack_require__(34),
1584
+ baseUniq = __webpack_require__(37),
1585
+ isIterateeCall = __webpack_require__(28),
1586
+ sortedUniq = __webpack_require__(38);
1562
1587
 
1563
1588
  /**
1564
1589
  * Creates a duplicate-value-free version of an array using `SameValueZero`
@@ -1566,19 +1591,22 @@ return /******/ (function(modules) { // webpackBootstrap
1566
1591
  * search algorithm for sorted arrays. If an iteratee function is provided it
1567
1592
  * is invoked for each value in the array to generate the criterion by which
1568
1593
  * uniqueness is computed. The `iteratee` is bound to `thisArg` and invoked
1569
- * with three arguments; (value, index, array).
1594
+ * with three arguments: (value, index, array).
1570
1595
  *
1571
- * If a property name is provided for `predicate` the created "_.property"
1596
+ * If a property name is provided for `iteratee` the created `_.property`
1572
1597
  * style callback returns the property value of the given element.
1573
1598
  *
1574
- * If an object is provided for `predicate` the created "_.matches" style
1599
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
1600
+ * style callback returns `true` for elements that have a matching property
1601
+ * value, else `false`.
1602
+ *
1603
+ * If an object is provided for `iteratee` the created `_.matches` style
1575
1604
  * callback returns `true` for elements that have the properties of the given
1576
1605
  * object, else `false`.
1577
1606
  *
1578
- * **Note:** `SameValueZero` comparisons are like strict equality comparisons,
1579
- * e.g. `===`, except that `NaN` matches `NaN`. See the
1580
- * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
1581
- * for more details.
1607
+ * **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
1608
+ * comparisons are like strict equality comparisons, e.g. `===`, except that
1609
+ * `NaN` matches `NaN`.
1582
1610
  *
1583
1611
  * @static
1584
1612
  * @memberOf _
@@ -1587,8 +1615,6 @@ return /******/ (function(modules) { // webpackBootstrap
1587
1615
  * @param {Array} array The array to inspect.
1588
1616
  * @param {boolean} [isSorted] Specify the array is sorted.
1589
1617
  * @param {Function|Object|string} [iteratee] The function invoked per iteration.
1590
- * If a property name or object is provided it is used to create a "_.property"
1591
- * or "_.matches" style callback respectively.
1592
1618
  * @param {*} [thisArg] The `this` binding of `iteratee`.
1593
1619
  * @returns {Array} Returns the new duplicate-value-free array.
1594
1620
  * @example
@@ -1601,10 +1627,12 @@ return /******/ (function(modules) { // webpackBootstrap
1601
1627
  * // => [1, 2]
1602
1628
  *
1603
1629
  * // using an iteratee function
1604
- * _.uniq([1, 2.5, 1.5, 2], function(n) { return this.floor(n); }, Math);
1630
+ * _.uniq([1, 2.5, 1.5, 2], function(n) {
1631
+ * return this.floor(n);
1632
+ * }, Math);
1605
1633
  * // => [1, 2.5]
1606
1634
  *
1607
- * // using the "_.property" callback shorthand
1635
+ * // using the `_.property` callback shorthand
1608
1636
  * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
1609
1637
  * // => [{ 'x': 1 }, { 'x': 2 }]
1610
1638
  */
@@ -1613,8 +1641,7 @@ return /******/ (function(modules) { // webpackBootstrap
1613
1641
  if (!length) {
1614
1642
  return [];
1615
1643
  }
1616
- // Juggle arguments.
1617
- if (typeof isSorted != 'boolean' && isSorted != null) {
1644
+ if (isSorted != null && typeof isSorted != 'boolean') {
1618
1645
  thisArg = iteratee;
1619
1646
  iteratee = isIterateeCall(array, isSorted, thisArg) ? null : isSorted;
1620
1647
  isSorted = false;
@@ -1632,47 +1659,64 @@ return /******/ (function(modules) { // webpackBootstrap
1632
1659
  /* 21 */
1633
1660
  /***/ function(module, exports, __webpack_require__) {
1634
1661
 
1635
- var arrayMap = __webpack_require__(43),
1636
- baseCallback = __webpack_require__(31),
1637
- baseMap = __webpack_require__(44),
1638
- isArray = __webpack_require__(40);
1662
+ var arrayMap = __webpack_require__(45),
1663
+ baseCallback = __webpack_require__(34),
1664
+ baseMap = __webpack_require__(46),
1665
+ isArray = __webpack_require__(44);
1639
1666
 
1640
1667
  /**
1641
1668
  * Creates an array of values by running each element in `collection` through
1642
1669
  * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three
1643
- * arguments; (value, index|key, collection).
1670
+ * arguments: (value, index|key, collection).
1644
1671
  *
1645
- * If a property name is provided for `predicate` the created "_.property"
1672
+ * If a property name is provided for `iteratee` the created `_.property`
1646
1673
  * style callback returns the property value of the given element.
1647
1674
  *
1648
- * If an object is provided for `predicate` the created "_.matches" style
1675
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
1676
+ * style callback returns `true` for elements that have a matching property
1677
+ * value, else `false`.
1678
+ *
1679
+ * If an object is provided for `iteratee` the created `_.matches` style
1649
1680
  * callback returns `true` for elements that have the properties of the given
1650
1681
  * object, else `false`.
1651
1682
  *
1683
+ * Many lodash methods are guarded to work as interatees for methods like
1684
+ * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
1685
+ *
1686
+ * The guarded methods are:
1687
+ * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, `drop`,
1688
+ * `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`, `parseInt`,
1689
+ * `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`, `trimLeft`,
1690
+ * `trimRight`, `trunc`, `random`, `range`, `sample`, `some`, `uniq`, and `words`
1691
+ *
1652
1692
  * @static
1653
1693
  * @memberOf _
1654
1694
  * @alias collect
1655
1695
  * @category Collection
1656
1696
  * @param {Array|Object|string} collection The collection to iterate over.
1657
1697
  * @param {Function|Object|string} [iteratee=_.identity] The function invoked
1658
- * per iteration. If a property name or object is provided it is used to
1659
- * create a "_.property" or "_.matches" style callback respectively.
1698
+ * per iteration.
1699
+ * create a `_.property` or `_.matches` style callback respectively.
1660
1700
  * @param {*} [thisArg] The `this` binding of `iteratee`.
1661
1701
  * @returns {Array} Returns the new mapped array.
1662
1702
  * @example
1663
1703
  *
1664
- * _.map([1, 2, 3], function(n) { return n * 3; });
1665
- * // => [3, 6, 9]
1704
+ * function timesThree(n) {
1705
+ * return n * 3;
1706
+ * }
1707
+ *
1708
+ * _.map([1, 2], timesThree);
1709
+ * // => [3, 6]
1666
1710
  *
1667
- * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(n) { return n * 3; });
1668
- * // => [3, 6, 9] (iteration order is not guaranteed)
1711
+ * _.map({ 'a': 1, 'b': 2 }, timesThree);
1712
+ * // => [3, 6] (iteration order is not guaranteed)
1669
1713
  *
1670
1714
  * var users = [
1671
1715
  * { 'user': 'barney' },
1672
1716
  * { 'user': 'fred' }
1673
1717
  * ];
1674
1718
  *
1675
- * // using the "_.property" callback shorthand
1719
+ * // using the `_.property` callback shorthand
1676
1720
  * _.map(users, 'user');
1677
1721
  * // => ['barney', 'fred']
1678
1722
  */
@@ -1689,14 +1733,13 @@ return /******/ (function(modules) { // webpackBootstrap
1689
1733
  /* 22 */
1690
1734
  /***/ function(module, exports, __webpack_require__) {
1691
1735
 
1692
- var arrayEach = __webpack_require__(45),
1693
- baseEach = __webpack_require__(46),
1694
- bindCallback = __webpack_require__(28),
1695
- isArray = __webpack_require__(40);
1736
+ var arrayEach = __webpack_require__(47),
1737
+ baseEach = __webpack_require__(48),
1738
+ createForEach = __webpack_require__(49);
1696
1739
 
1697
1740
  /**
1698
1741
  * Iterates over elements of `collection` invoking `iteratee` for each element.
1699
- * The `iteratee` is bound to `thisArg` and invoked with three arguments;
1742
+ * The `iteratee` is bound to `thisArg` and invoked with three arguments:
1700
1743
  * (value, index|key, collection). Iterator functions may exit iteration early
1701
1744
  * by explicitly returning `false`.
1702
1745
  *
@@ -1714,17 +1757,17 @@ return /******/ (function(modules) { // webpackBootstrap
1714
1757
  * @returns {Array|Object|string} Returns `collection`.
1715
1758
  * @example
1716
1759
  *
1717
- * _([1, 2, 3]).forEach(function(n) { console.log(n); }).value();
1760
+ * _([1, 2]).forEach(function(n) {
1761
+ * console.log(n);
1762
+ * }).value();
1718
1763
  * // => logs each value from left to right and returns the array
1719
1764
  *
1720
- * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(n, key) { console.log(n, key); });
1765
+ * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
1766
+ * console.log(n, key);
1767
+ * });
1721
1768
  * // => logs each value-key pair and returns the object (iteration order is not guaranteed)
1722
1769
  */
1723
- function forEach(collection, iteratee, thisArg) {
1724
- return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection))
1725
- ? arrayEach(collection, iteratee)
1726
- : baseEach(collection, bindCallback(iteratee, thisArg, 3));
1727
- }
1770
+ var forEach = createForEach(arrayEach, baseEach);
1728
1771
 
1729
1772
  module.exports = forEach;
1730
1773
 
@@ -1733,12 +1776,12 @@ return /******/ (function(modules) { // webpackBootstrap
1733
1776
  /* 23 */
1734
1777
  /***/ function(module, exports, __webpack_require__) {
1735
1778
 
1736
- var isLength = __webpack_require__(33),
1779
+ var isLength = __webpack_require__(35),
1737
1780
  keys = __webpack_require__(17);
1738
1781
 
1739
1782
  /**
1740
- * Gets the size of `collection` by returning `collection.length` for
1741
- * array-like values or the number of own enumerable properties for objects.
1783
+ * Gets the size of `collection` by returning its length for array-like
1784
+ * values or the number of own enumerable properties for objects.
1742
1785
  *
1743
1786
  * @static
1744
1787
  * @memberOf _
@@ -1747,12 +1790,12 @@ return /******/ (function(modules) { // webpackBootstrap
1747
1790
  * @returns {number} Returns the size of `collection`.
1748
1791
  * @example
1749
1792
  *
1750
- * _.size([1, 2]);
1751
- * // => 2
1752
- *
1753
- * _.size({ 'one': 1, 'two': 2, 'three': 3 });
1793
+ * _.size([1, 2, 3]);
1754
1794
  * // => 3
1755
1795
  *
1796
+ * _.size({ 'a': 1, 'b': 2 });
1797
+ * // => 2
1798
+ *
1756
1799
  * _.size('pebbles');
1757
1800
  * // => 7
1758
1801
  */
@@ -1768,20 +1811,24 @@ return /******/ (function(modules) { // webpackBootstrap
1768
1811
  /* 24 */
1769
1812
  /***/ function(module, exports, __webpack_require__) {
1770
1813
 
1771
- var arrayReduce = __webpack_require__(47),
1772
- baseCallback = __webpack_require__(31),
1773
- baseEach = __webpack_require__(46),
1774
- baseReduce = __webpack_require__(48),
1775
- isArray = __webpack_require__(40);
1814
+ var arrayReduce = __webpack_require__(50),
1815
+ baseEach = __webpack_require__(48),
1816
+ createReduce = __webpack_require__(51);
1776
1817
 
1777
1818
  /**
1778
1819
  * Reduces `collection` to a value which is the accumulated result of running
1779
1820
  * each element in `collection` through `iteratee`, where each successive
1780
1821
  * invocation is supplied the return value of the previous. If `accumulator`
1781
1822
  * is not provided the first element of `collection` is used as the initial
1782
- * value. The `iteratee` is bound to `thisArg`and invoked with four arguments;
1823
+ * value. The `iteratee` is bound to `thisArg` and invoked with four arguments:
1783
1824
  * (accumulator, value, index|key, collection).
1784
1825
  *
1826
+ * Many lodash methods are guarded to work as interatees for methods like
1827
+ * `_.reduce`, `_.reduceRight`, and `_.transform`.
1828
+ *
1829
+ * The guarded methods are:
1830
+ * `assign`, `defaults`, `includes`, `merge`, `sortByAll`, and `sortByOrder`
1831
+ *
1785
1832
  * @static
1786
1833
  * @memberOf _
1787
1834
  * @alias foldl, inject
@@ -1793,19 +1840,18 @@ return /******/ (function(modules) { // webpackBootstrap
1793
1840
  * @returns {*} Returns the accumulated value.
1794
1841
  * @example
1795
1842
  *
1796
- * var sum = _.reduce([1, 2, 3], function(sum, n) { return sum + n; });
1797
- * // => 6
1843
+ * _.reduce([1, 2], function(sum, n) {
1844
+ * return sum + n;
1845
+ * });
1846
+ * // => 3
1798
1847
  *
1799
- * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, n, key) {
1848
+ * _.reduce({ 'a': 1, 'b': 2 }, function(result, n, key) {
1800
1849
  * result[key] = n * 3;
1801
1850
  * return result;
1802
1851
  * }, {});
1803
- * // => { 'a': 3, 'b': 6, 'c': 9 } (iteration order is not guaranteed)
1852
+ * // => { 'a': 3, 'b': 6 } (iteration order is not guaranteed)
1804
1853
  */
1805
- function reduce(collection, iteratee, accumulator, thisArg) {
1806
- var func = isArray(collection) ? arrayReduce : baseReduce;
1807
- return func(collection, baseCallback(iteratee, thisArg, 4), accumulator, arguments.length < 3, baseEach);
1808
- }
1854
+ var reduce = createReduce(arrayReduce, baseEach);
1809
1855
 
1810
1856
  module.exports = reduce;
1811
1857
 
@@ -1815,11 +1861,9 @@ return /******/ (function(modules) { // webpackBootstrap
1815
1861
  /***/ function(module, exports, __webpack_require__) {
1816
1862
 
1817
1863
  /**
1818
- * Checks if `value` is the language type of `Object`.
1864
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
1819
1865
  * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
1820
1866
  *
1821
- * **Note:** See the [ES5 spec](https://es5.github.io/#x8) for more details.
1822
- *
1823
1867
  * @static
1824
1868
  * @memberOf _
1825
1869
  * @category Lang
@@ -1840,7 +1884,7 @@ return /******/ (function(modules) { // webpackBootstrap
1840
1884
  // Avoid a V8 JIT bug in Chrome 19-20.
1841
1885
  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
1842
1886
  var type = typeof value;
1843
- return type == 'function' || (value && type == 'object') || false;
1887
+ return type == 'function' || (!!value && type == 'object');
1844
1888
  }
1845
1889
 
1846
1890
  module.exports = isObject;
@@ -1850,32 +1894,14 @@ return /******/ (function(modules) { // webpackBootstrap
1850
1894
  /* 26 */
1851
1895
  /***/ function(module, exports, __webpack_require__) {
1852
1896
 
1853
- /**
1854
- * Checks if `value` is object-like.
1855
- *
1856
- * @private
1857
- * @param {*} value The value to check.
1858
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
1859
- */
1860
- function isObjectLike(value) {
1861
- return (value && typeof value == 'object') || false;
1862
- }
1863
-
1864
- module.exports = isObjectLike;
1865
-
1866
-
1867
- /***/ },
1868
- /* 27 */
1869
- /***/ function(module, exports, __webpack_require__) {
1870
-
1871
- var arrayCopy = __webpack_require__(49),
1872
- arrayEach = __webpack_require__(45),
1873
- baseCopy = __webpack_require__(50),
1897
+ var arrayCopy = __webpack_require__(52),
1898
+ arrayEach = __webpack_require__(47),
1899
+ baseCopy = __webpack_require__(53),
1874
1900
  baseForOwn = __webpack_require__(32),
1875
- initCloneArray = __webpack_require__(51),
1876
- initCloneByTag = __webpack_require__(52),
1877
- initCloneObject = __webpack_require__(53),
1878
- isArray = __webpack_require__(40),
1901
+ initCloneArray = __webpack_require__(54),
1902
+ initCloneByTag = __webpack_require__(55),
1903
+ initCloneObject = __webpack_require__(56),
1904
+ isArray = __webpack_require__(44),
1879
1905
  isObject = __webpack_require__(25),
1880
1906
  keys = __webpack_require__(17);
1881
1907
 
@@ -1924,9 +1950,8 @@ return /******/ (function(modules) { // webpackBootstrap
1924
1950
  var objectProto = Object.prototype;
1925
1951
 
1926
1952
  /**
1927
- * Used to resolve the `toStringTag` of values.
1928
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1929
- * for more details.
1953
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
1954
+ * of values.
1930
1955
  */
1931
1956
  var objToString = objectProto.toString;
1932
1957
 
@@ -2001,10 +2026,10 @@ return /******/ (function(modules) { // webpackBootstrap
2001
2026
 
2002
2027
 
2003
2028
  /***/ },
2004
- /* 28 */
2029
+ /* 27 */
2005
2030
  /***/ function(module, exports, __webpack_require__) {
2006
2031
 
2007
- var identity = __webpack_require__(54);
2032
+ var identity = __webpack_require__(57);
2008
2033
 
2009
2034
  /**
2010
2035
  * A specialized version of `baseCallback` which only supports `this` binding
@@ -2046,11 +2071,11 @@ return /******/ (function(modules) { // webpackBootstrap
2046
2071
 
2047
2072
 
2048
2073
  /***/ },
2049
- /* 29 */
2074
+ /* 28 */
2050
2075
  /***/ function(module, exports, __webpack_require__) {
2051
2076
 
2052
- var isIndex = __webpack_require__(55),
2053
- isLength = __webpack_require__(33),
2077
+ var isIndex = __webpack_require__(58),
2078
+ isLength = __webpack_require__(35),
2054
2079
  isObject = __webpack_require__(25);
2055
2080
 
2056
2081
  /**
@@ -2071,20 +2096,45 @@ return /******/ (function(modules) { // webpackBootstrap
2071
2096
  var length = object.length,
2072
2097
  prereq = isLength(length) && isIndex(index, length);
2073
2098
  } else {
2074
- prereq = type == 'string' && index in value;
2099
+ prereq = type == 'string' && index in object;
2075
2100
  }
2076
- return prereq && object[index] === value;
2101
+ if (prereq) {
2102
+ var other = object[index];
2103
+ return value === value ? (value === other) : (other !== other);
2104
+ }
2105
+ return false;
2077
2106
  }
2078
2107
 
2079
2108
  module.exports = isIterateeCall;
2080
2109
 
2081
2110
 
2111
+ /***/ },
2112
+ /* 29 */
2113
+ /***/ function(module, exports, __webpack_require__) {
2114
+
2115
+ /**
2116
+ * The base implementation of `_.isFunction` without support for environments
2117
+ * with incorrect `typeof` results.
2118
+ *
2119
+ * @private
2120
+ * @param {*} value The value to check.
2121
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
2122
+ */
2123
+ function baseIsFunction(value) {
2124
+ // Avoid a Chakra JIT bug in compatibility modes of IE 11.
2125
+ // See https://github.com/jashkenas/underscore/issues/1621 for more details.
2126
+ return typeof value == 'function' || false;
2127
+ }
2128
+
2129
+ module.exports = baseIsFunction;
2130
+
2131
+
2082
2132
  /***/ },
2083
2133
  /* 30 */
2084
2134
  /***/ function(module, exports, __webpack_require__) {
2085
2135
 
2086
- var escapeRegExp = __webpack_require__(56),
2087
- isObjectLike = __webpack_require__(26);
2136
+ var escapeRegExp = __webpack_require__(59),
2137
+ isObjectLike = __webpack_require__(31);
2088
2138
 
2089
2139
  /** `Object#toString` result references. */
2090
2140
  var funcTag = '[object Function]';
@@ -2099,9 +2149,8 @@ return /******/ (function(modules) { // webpackBootstrap
2099
2149
  var fnToString = Function.prototype.toString;
2100
2150
 
2101
2151
  /**
2102
- * Used to resolve the `toStringTag` of values.
2103
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2104
- * for more details.
2152
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2153
+ * of values.
2105
2154
  */
2106
2155
  var objToString = objectProto.toString;
2107
2156
 
@@ -2134,7 +2183,7 @@ return /******/ (function(modules) { // webpackBootstrap
2134
2183
  if (objToString.call(value) == funcTag) {
2135
2184
  return reNative.test(fnToString.call(value));
2136
2185
  }
2137
- return (isObjectLike(value) && reHostCtor.test(value)) || false;
2186
+ return isObjectLike(value) && reHostCtor.test(value);
2138
2187
  }
2139
2188
 
2140
2189
  module.exports = isNative;
@@ -2144,39 +2193,18 @@ return /******/ (function(modules) { // webpackBootstrap
2144
2193
  /* 31 */
2145
2194
  /***/ function(module, exports, __webpack_require__) {
2146
2195
 
2147
- var baseMatches = __webpack_require__(57),
2148
- baseProperty = __webpack_require__(58),
2149
- bindCallback = __webpack_require__(28),
2150
- identity = __webpack_require__(54),
2151
- isBindable = __webpack_require__(59);
2152
-
2153
2196
  /**
2154
- * The base implementation of `_.callback` which supports specifying the
2155
- * number of arguments to provide to `func`.
2197
+ * Checks if `value` is object-like.
2156
2198
  *
2157
2199
  * @private
2158
- * @param {*} [func=_.identity] The value to convert to a callback.
2159
- * @param {*} [thisArg] The `this` binding of `func`.
2160
- * @param {number} [argCount] The number of arguments to provide to `func`.
2161
- * @returns {Function} Returns the callback.
2200
+ * @param {*} value The value to check.
2201
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
2162
2202
  */
2163
- function baseCallback(func, thisArg, argCount) {
2164
- var type = typeof func;
2165
- if (type == 'function') {
2166
- return (typeof thisArg != 'undefined' && isBindable(func))
2167
- ? bindCallback(func, thisArg, argCount)
2168
- : func;
2169
- }
2170
- if (func == null) {
2171
- return identity;
2172
- }
2173
- // Handle "_.property" and "_.matches" style callback shorthands.
2174
- return type == 'object'
2175
- ? baseMatches(func, !argCount)
2176
- : baseProperty(func + '');
2203
+ function isObjectLike(value) {
2204
+ return !!value && typeof value == 'object';
2177
2205
  }
2178
2206
 
2179
- module.exports = baseCallback;
2207
+ module.exports = isObjectLike;
2180
2208
 
2181
2209
 
2182
2210
  /***/ },
@@ -2206,16 +2234,83 @@ return /******/ (function(modules) { // webpackBootstrap
2206
2234
  /* 33 */
2207
2235
  /***/ function(module, exports, __webpack_require__) {
2208
2236
 
2237
+ var bindCallback = __webpack_require__(27);
2238
+
2209
2239
  /**
2210
- * Used as the maximum length of an array-like value.
2211
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)
2212
- * for more details.
2240
+ * Creates a function for `_.forOwn` or `_.forOwnRight`.
2241
+ *
2242
+ * @private
2243
+ * @param {Function} objectFunc The function to iterate over an object.
2244
+ * @returns {Function} Returns the new each function.
2245
+ */
2246
+ function createForOwn(objectFunc) {
2247
+ return function(object, iteratee, thisArg) {
2248
+ if (typeof iteratee != 'function' || typeof thisArg != 'undefined') {
2249
+ iteratee = bindCallback(iteratee, thisArg, 3);
2250
+ }
2251
+ return objectFunc(object, iteratee);
2252
+ };
2253
+ }
2254
+
2255
+ module.exports = createForOwn;
2256
+
2257
+
2258
+ /***/ },
2259
+ /* 34 */
2260
+ /***/ function(module, exports, __webpack_require__) {
2261
+
2262
+ var baseMatches = __webpack_require__(61),
2263
+ baseMatchesProperty = __webpack_require__(62),
2264
+ baseProperty = __webpack_require__(63),
2265
+ bindCallback = __webpack_require__(27),
2266
+ identity = __webpack_require__(57);
2267
+
2268
+ /**
2269
+ * The base implementation of `_.callback` which supports specifying the
2270
+ * number of arguments to provide to `func`.
2271
+ *
2272
+ * @private
2273
+ * @param {*} [func=_.identity] The value to convert to a callback.
2274
+ * @param {*} [thisArg] The `this` binding of `func`.
2275
+ * @param {number} [argCount] The number of arguments to provide to `func`.
2276
+ * @returns {Function} Returns the callback.
2277
+ */
2278
+ function baseCallback(func, thisArg, argCount) {
2279
+ var type = typeof func;
2280
+ if (type == 'function') {
2281
+ return typeof thisArg == 'undefined'
2282
+ ? func
2283
+ : bindCallback(func, thisArg, argCount);
2284
+ }
2285
+ if (func == null) {
2286
+ return identity;
2287
+ }
2288
+ if (type == 'object') {
2289
+ return baseMatches(func);
2290
+ }
2291
+ return typeof thisArg == 'undefined'
2292
+ ? baseProperty(func + '')
2293
+ : baseMatchesProperty(func + '', thisArg);
2294
+ }
2295
+
2296
+ module.exports = baseCallback;
2297
+
2298
+
2299
+ /***/ },
2300
+ /* 35 */
2301
+ /***/ function(module, exports, __webpack_require__) {
2302
+
2303
+ /**
2304
+ * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
2305
+ * of an array-like value.
2213
2306
  */
2214
2307
  var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
2215
2308
 
2216
2309
  /**
2217
2310
  * Checks if `value` is a valid array-like length.
2218
2311
  *
2312
+ * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
2313
+ *
2219
2314
  * @private
2220
2315
  * @param {*} value The value to check.
2221
2316
  * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
@@ -2228,15 +2323,15 @@ return /******/ (function(modules) { // webpackBootstrap
2228
2323
 
2229
2324
 
2230
2325
  /***/ },
2231
- /* 34 */
2326
+ /* 36 */
2232
2327
  /***/ function(module, exports, __webpack_require__) {
2233
2328
 
2234
- var isArguments = __webpack_require__(39),
2235
- isArray = __webpack_require__(40),
2236
- isIndex = __webpack_require__(55),
2237
- isLength = __webpack_require__(33),
2238
- keysIn = __webpack_require__(61),
2239
- support = __webpack_require__(62);
2329
+ var isArguments = __webpack_require__(43),
2330
+ isArray = __webpack_require__(44),
2331
+ isIndex = __webpack_require__(58),
2332
+ isLength = __webpack_require__(35),
2333
+ keysIn = __webpack_require__(64),
2334
+ support = __webpack_require__(65);
2240
2335
 
2241
2336
  /** Used for native method references. */
2242
2337
  var objectProto = Object.prototype;
@@ -2276,41 +2371,132 @@ return /******/ (function(modules) { // webpackBootstrap
2276
2371
 
2277
2372
 
2278
2373
  /***/ },
2279
- /* 35 */
2374
+ /* 37 */
2280
2375
  /***/ function(module, exports, __webpack_require__) {
2281
2376
 
2377
+ var baseIndexOf = __webpack_require__(40),
2378
+ cacheIndexOf = __webpack_require__(41),
2379
+ createCache = __webpack_require__(42);
2380
+
2282
2381
  /**
2283
- * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`,
2284
- * without support for callback shorthands and `this` binding, which iterates
2285
- * over `collection` using the provided `eachFunc`.
2382
+ * The base implementation of `_.uniq` without support for callback shorthands
2383
+ * and `this` binding.
2286
2384
  *
2287
2385
  * @private
2288
- * @param {Array|Object|string} collection The collection to search.
2289
- * @param {Function} predicate The function invoked per iteration.
2290
- * @param {Function} eachFunc The function to iterate over `collection`.
2291
- * @param {boolean} [retKey] Specify returning the key of the found element
2292
- * instead of the element itself.
2293
- * @returns {*} Returns the found element or its key, else `undefined`.
2386
+ * @param {Array} array The array to inspect.
2387
+ * @param {Function} [iteratee] The function invoked per iteration.
2388
+ * @returns {Array} Returns the new duplicate-value-free array.
2294
2389
  */
2295
- function baseFind(collection, predicate, eachFunc, retKey) {
2296
- var result;
2297
- eachFunc(collection, function(value, key, collection) {
2298
- if (predicate(value, key, collection)) {
2299
- result = retKey ? key : value;
2300
- return false;
2301
- }
2302
- });
2303
- return result;
2304
- }
2390
+ function baseUniq(array, iteratee) {
2391
+ var index = -1,
2392
+ indexOf = baseIndexOf,
2393
+ length = array.length,
2394
+ isCommon = true,
2395
+ isLarge = isCommon && length >= 200,
2396
+ seen = isLarge ? createCache() : null,
2397
+ result = [];
2305
2398
 
2306
- module.exports = baseFind;
2307
-
2308
-
2309
- /***/ },
2310
- /* 36 */
2399
+ if (seen) {
2400
+ indexOf = cacheIndexOf;
2401
+ isCommon = false;
2402
+ } else {
2403
+ isLarge = false;
2404
+ seen = iteratee ? [] : result;
2405
+ }
2406
+ outer:
2407
+ while (++index < length) {
2408
+ var value = array[index],
2409
+ computed = iteratee ? iteratee(value, index, array) : value;
2410
+
2411
+ if (isCommon && value === value) {
2412
+ var seenIndex = seen.length;
2413
+ while (seenIndex--) {
2414
+ if (seen[seenIndex] === computed) {
2415
+ continue outer;
2416
+ }
2417
+ }
2418
+ if (iteratee) {
2419
+ seen.push(computed);
2420
+ }
2421
+ result.push(value);
2422
+ }
2423
+ else if (indexOf(seen, computed, 0) < 0) {
2424
+ if (iteratee || isLarge) {
2425
+ seen.push(computed);
2426
+ }
2427
+ result.push(value);
2428
+ }
2429
+ }
2430
+ return result;
2431
+ }
2432
+
2433
+ module.exports = baseUniq;
2434
+
2435
+
2436
+ /***/ },
2437
+ /* 38 */
2438
+ /***/ function(module, exports, __webpack_require__) {
2439
+
2440
+ /**
2441
+ * An implementation of `_.uniq` optimized for sorted arrays without support
2442
+ * for callback shorthands and `this` binding.
2443
+ *
2444
+ * @private
2445
+ * @param {Array} array The array to inspect.
2446
+ * @param {Function} [iteratee] The function invoked per iteration.
2447
+ * @returns {Array} Returns the new duplicate-value-free array.
2448
+ */
2449
+ function sortedUniq(array, iteratee) {
2450
+ var seen,
2451
+ index = -1,
2452
+ length = array.length,
2453
+ resIndex = -1,
2454
+ result = [];
2455
+
2456
+ while (++index < length) {
2457
+ var value = array[index],
2458
+ computed = iteratee ? iteratee(value, index, array) : value;
2459
+
2460
+ if (!index || seen !== computed) {
2461
+ seen = computed;
2462
+ result[++resIndex] = value;
2463
+ }
2464
+ }
2465
+ return result;
2466
+ }
2467
+
2468
+ module.exports = sortedUniq;
2469
+
2470
+
2471
+ /***/ },
2472
+ /* 39 */
2311
2473
  /***/ function(module, exports, __webpack_require__) {
2312
2474
 
2313
- var indexOfNaN = __webpack_require__(63);
2475
+ var baseCallback = __webpack_require__(34),
2476
+ baseFind = __webpack_require__(66);
2477
+
2478
+ /**
2479
+ * Creates a `_.findKey` or `_.findLastKey` function.
2480
+ *
2481
+ * @private
2482
+ * @param {Function} objectFunc The function to iterate over an object.
2483
+ * @returns {Function} Returns the new find function.
2484
+ */
2485
+ function createFindKey(objectFunc) {
2486
+ return function(object, predicate, thisArg) {
2487
+ predicate = baseCallback(predicate, thisArg, 3);
2488
+ return baseFind(object, predicate, objectFunc, true);
2489
+ };
2490
+ }
2491
+
2492
+ module.exports = createFindKey;
2493
+
2494
+
2495
+ /***/ },
2496
+ /* 40 */
2497
+ /***/ function(module, exports, __webpack_require__) {
2498
+
2499
+ var indexOfNaN = __webpack_require__(67);
2314
2500
 
2315
2501
  /**
2316
2502
  * The base implementation of `_.indexOf` without support for binary searches.
@@ -2318,14 +2504,14 @@ return /******/ (function(modules) { // webpackBootstrap
2318
2504
  * @private
2319
2505
  * @param {Array} array The array to search.
2320
2506
  * @param {*} value The value to search for.
2321
- * @param {number} [fromIndex=0] The index to search from.
2507
+ * @param {number} fromIndex The index to search from.
2322
2508
  * @returns {number} Returns the index of the matched value, else `-1`.
2323
2509
  */
2324
2510
  function baseIndexOf(array, value, fromIndex) {
2325
2511
  if (value !== value) {
2326
2512
  return indexOfNaN(array, fromIndex);
2327
2513
  }
2328
- var index = (fromIndex || 0) - 1,
2514
+ var index = fromIndex - 1,
2329
2515
  length = array.length;
2330
2516
 
2331
2517
  while (++index < length) {
@@ -2340,7 +2526,7 @@ return /******/ (function(modules) { // webpackBootstrap
2340
2526
 
2341
2527
 
2342
2528
  /***/ },
2343
- /* 37 */
2529
+ /* 41 */
2344
2530
  /***/ function(module, exports, __webpack_require__) {
2345
2531
 
2346
2532
  var isObject = __webpack_require__(25);
@@ -2365,11 +2551,11 @@ return /******/ (function(modules) { // webpackBootstrap
2365
2551
 
2366
2552
 
2367
2553
  /***/ },
2368
- /* 38 */
2554
+ /* 42 */
2369
2555
  /***/ function(module, exports, __webpack_require__) {
2370
2556
 
2371
- /* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(64),
2372
- constant = __webpack_require__(65),
2557
+ /* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(68),
2558
+ constant = __webpack_require__(69),
2373
2559
  isNative = __webpack_require__(30);
2374
2560
 
2375
2561
  /** Native method references. */
@@ -2394,11 +2580,11 @@ return /******/ (function(modules) { // webpackBootstrap
2394
2580
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
2395
2581
 
2396
2582
  /***/ },
2397
- /* 39 */
2583
+ /* 43 */
2398
2584
  /***/ function(module, exports, __webpack_require__) {
2399
2585
 
2400
- var isLength = __webpack_require__(33),
2401
- isObjectLike = __webpack_require__(26);
2586
+ var isLength = __webpack_require__(35),
2587
+ isObjectLike = __webpack_require__(31);
2402
2588
 
2403
2589
  /** `Object#toString` result references. */
2404
2590
  var argsTag = '[object Arguments]';
@@ -2407,9 +2593,8 @@ return /******/ (function(modules) { // webpackBootstrap
2407
2593
  var objectProto = Object.prototype;
2408
2594
 
2409
2595
  /**
2410
- * Used to resolve the `toStringTag` of values.
2411
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2412
- * for more details.
2596
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2597
+ * of values.
2413
2598
  */
2414
2599
  var objToString = objectProto.toString;
2415
2600
 
@@ -2423,7 +2608,7 @@ return /******/ (function(modules) { // webpackBootstrap
2423
2608
  * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
2424
2609
  * @example
2425
2610
  *
2426
- * (function() { return _.isArguments(arguments); })();
2611
+ * _.isArguments(function() { return arguments; }());
2427
2612
  * // => true
2428
2613
  *
2429
2614
  * _.isArguments([1, 2, 3]);
@@ -2431,19 +2616,19 @@ return /******/ (function(modules) { // webpackBootstrap
2431
2616
  */
2432
2617
  function isArguments(value) {
2433
2618
  var length = isObjectLike(value) ? value.length : undefined;
2434
- return (isLength(length) && objToString.call(value) == argsTag) || false;
2619
+ return isLength(length) && objToString.call(value) == argsTag;
2435
2620
  }
2436
2621
 
2437
2622
  module.exports = isArguments;
2438
2623
 
2439
2624
 
2440
2625
  /***/ },
2441
- /* 40 */
2626
+ /* 44 */
2442
2627
  /***/ function(module, exports, __webpack_require__) {
2443
2628
 
2444
- var isLength = __webpack_require__(33),
2629
+ var isLength = __webpack_require__(35),
2445
2630
  isNative = __webpack_require__(30),
2446
- isObjectLike = __webpack_require__(26);
2631
+ isObjectLike = __webpack_require__(31);
2447
2632
 
2448
2633
  /** `Object#toString` result references. */
2449
2634
  var arrayTag = '[object Array]';
@@ -2452,9 +2637,8 @@ return /******/ (function(modules) { // webpackBootstrap
2452
2637
  var objectProto = Object.prototype;
2453
2638
 
2454
2639
  /**
2455
- * Used to resolve the `toStringTag` of values.
2456
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2457
- * for more details.
2640
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
2641
+ * of values.
2458
2642
  */
2459
2643
  var objToString = objectProto.toString;
2460
2644
 
@@ -2474,121 +2658,23 @@ return /******/ (function(modules) { // webpackBootstrap
2474
2658
  * _.isArray([1, 2, 3]);
2475
2659
  * // => true
2476
2660
  *
2477
- * (function() { return _.isArray(arguments); })();
2661
+ * _.isArray(function() { return arguments; }());
2478
2662
  * // => false
2479
2663
  */
2480
2664
  var isArray = nativeIsArray || function(value) {
2481
- return (isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag) || false;
2665
+ return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
2482
2666
  };
2483
2667
 
2484
2668
  module.exports = isArray;
2485
2669
 
2486
2670
 
2487
2671
  /***/ },
2488
- /* 41 */
2489
- /***/ function(module, exports, __webpack_require__) {
2490
-
2491
- var baseIndexOf = __webpack_require__(36),
2492
- cacheIndexOf = __webpack_require__(37),
2493
- createCache = __webpack_require__(38);
2494
-
2495
- /**
2496
- * The base implementation of `_.uniq` without support for callback shorthands
2497
- * and `this` binding.
2498
- *
2499
- * @private
2500
- * @param {Array} array The array to inspect.
2501
- * @param {Function} [iteratee] The function invoked per iteration.
2502
- * @returns {Array} Returns the new duplicate-value-free array.
2503
- */
2504
- function baseUniq(array, iteratee) {
2505
- var index = -1,
2506
- indexOf = baseIndexOf,
2507
- length = array.length,
2508
- isCommon = true,
2509
- isLarge = isCommon && length >= 200,
2510
- seen = isLarge && createCache(),
2511
- result = [];
2512
-
2513
- if (seen) {
2514
- indexOf = cacheIndexOf;
2515
- isCommon = false;
2516
- } else {
2517
- isLarge = false;
2518
- seen = iteratee ? [] : result;
2519
- }
2520
- outer:
2521
- while (++index < length) {
2522
- var value = array[index],
2523
- computed = iteratee ? iteratee(value, index, array) : value;
2524
-
2525
- if (isCommon && value === value) {
2526
- var seenIndex = seen.length;
2527
- while (seenIndex--) {
2528
- if (seen[seenIndex] === computed) {
2529
- continue outer;
2530
- }
2531
- }
2532
- if (iteratee) {
2533
- seen.push(computed);
2534
- }
2535
- result.push(value);
2536
- }
2537
- else if (indexOf(seen, computed) < 0) {
2538
- if (iteratee || isLarge) {
2539
- seen.push(computed);
2540
- }
2541
- result.push(value);
2542
- }
2543
- }
2544
- return result;
2545
- }
2546
-
2547
- module.exports = baseUniq;
2548
-
2549
-
2550
- /***/ },
2551
- /* 42 */
2552
- /***/ function(module, exports, __webpack_require__) {
2553
-
2554
- /**
2555
- * An implementation of `_.uniq` optimized for sorted arrays without support
2556
- * for callback shorthands and `this` binding.
2557
- *
2558
- * @private
2559
- * @param {Array} array The array to inspect.
2560
- * @param {Function} [iteratee] The function invoked per iteration.
2561
- * @returns {Array} Returns the new duplicate-value-free array.
2562
- */
2563
- function sortedUniq(array, iteratee) {
2564
- var seen,
2565
- index = -1,
2566
- length = array.length,
2567
- resIndex = -1,
2568
- result = [];
2569
-
2570
- while (++index < length) {
2571
- var value = array[index],
2572
- computed = iteratee ? iteratee(value, index, array) : value;
2573
-
2574
- if (!index || seen !== computed) {
2575
- seen = computed;
2576
- result[++resIndex] = value;
2577
- }
2578
- }
2579
- return result;
2580
- }
2581
-
2582
- module.exports = sortedUniq;
2583
-
2584
-
2585
- /***/ },
2586
- /* 43 */
2672
+ /* 45 */
2587
2673
  /***/ function(module, exports, __webpack_require__) {
2588
2674
 
2589
2675
  /**
2590
2676
  * A specialized version of `_.map` for arrays without support for callback
2591
- * shorthands or `this` binding.
2677
+ * shorthands and `this` binding.
2592
2678
  *
2593
2679
  * @private
2594
2680
  * @param {Array} array The array to iterate over.
@@ -2610,14 +2696,14 @@ return /******/ (function(modules) { // webpackBootstrap
2610
2696
 
2611
2697
 
2612
2698
  /***/ },
2613
- /* 44 */
2699
+ /* 46 */
2614
2700
  /***/ function(module, exports, __webpack_require__) {
2615
2701
 
2616
- var baseEach = __webpack_require__(46);
2702
+ var baseEach = __webpack_require__(48);
2617
2703
 
2618
2704
  /**
2619
2705
  * The base implementation of `_.map` without support for callback shorthands
2620
- * or `this` binding.
2706
+ * and `this` binding.
2621
2707
  *
2622
2708
  * @private
2623
2709
  * @param {Array|Object|string} collection The collection to iterate over.
@@ -2636,12 +2722,12 @@ return /******/ (function(modules) { // webpackBootstrap
2636
2722
 
2637
2723
 
2638
2724
  /***/ },
2639
- /* 45 */
2725
+ /* 47 */
2640
2726
  /***/ function(module, exports, __webpack_require__) {
2641
2727
 
2642
2728
  /**
2643
2729
  * A specialized version of `_.forEach` for arrays without support for callback
2644
- * shorthands or `this` binding.
2730
+ * shorthands and `this` binding.
2645
2731
  *
2646
2732
  * @private
2647
2733
  * @param {Array} array The array to iterate over.
@@ -2664,12 +2750,11 @@ return /******/ (function(modules) { // webpackBootstrap
2664
2750
 
2665
2751
 
2666
2752
  /***/ },
2667
- /* 46 */
2753
+ /* 48 */
2668
2754
  /***/ function(module, exports, __webpack_require__) {
2669
2755
 
2670
2756
  var baseForOwn = __webpack_require__(32),
2671
- isLength = __webpack_require__(33),
2672
- toObject = __webpack_require__(66);
2757
+ createBaseEach = __webpack_require__(70);
2673
2758
 
2674
2759
  /**
2675
2760
  * The base implementation of `_.forEach` without support for callback
@@ -2680,32 +2765,44 @@ return /******/ (function(modules) { // webpackBootstrap
2680
2765
  * @param {Function} iteratee The function invoked per iteration.
2681
2766
  * @returns {Array|Object|string} Returns `collection`.
2682
2767
  */
2683
- function baseEach(collection, iteratee) {
2684
- var length = collection ? collection.length : 0;
2685
- if (!isLength(length)) {
2686
- return baseForOwn(collection, iteratee);
2687
- }
2688
- var index = -1,
2689
- iterable = toObject(collection);
2768
+ var baseEach = createBaseEach(baseForOwn);
2690
2769
 
2691
- while (++index < length) {
2692
- if (iteratee(iterable[index], index, iterable) === false) {
2693
- break;
2694
- }
2695
- }
2696
- return collection;
2770
+ module.exports = baseEach;
2771
+
2772
+
2773
+ /***/ },
2774
+ /* 49 */
2775
+ /***/ function(module, exports, __webpack_require__) {
2776
+
2777
+ var bindCallback = __webpack_require__(27),
2778
+ isArray = __webpack_require__(44);
2779
+
2780
+ /**
2781
+ * Creates a function for `_.forEach` or `_.forEachRight`.
2782
+ *
2783
+ * @private
2784
+ * @param {Function} arrayFunc The function to iterate over an array.
2785
+ * @param {Function} eachFunc The function to iterate over a collection.
2786
+ * @returns {Function} Returns the new each function.
2787
+ */
2788
+ function createForEach(arrayFunc, eachFunc) {
2789
+ return function(collection, iteratee, thisArg) {
2790
+ return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection))
2791
+ ? arrayFunc(collection, iteratee)
2792
+ : eachFunc(collection, bindCallback(iteratee, thisArg, 3));
2793
+ };
2697
2794
  }
2698
2795
 
2699
- module.exports = baseEach;
2796
+ module.exports = createForEach;
2700
2797
 
2701
2798
 
2702
2799
  /***/ },
2703
- /* 47 */
2800
+ /* 50 */
2704
2801
  /***/ function(module, exports, __webpack_require__) {
2705
2802
 
2706
2803
  /**
2707
2804
  * A specialized version of `_.reduce` for arrays without support for callback
2708
- * shorthands or `this` binding.
2805
+ * shorthands and `this` binding.
2709
2806
  *
2710
2807
  * @private
2711
2808
  * @param {Array} array The array to iterate over.
@@ -2732,37 +2829,35 @@ return /******/ (function(modules) { // webpackBootstrap
2732
2829
 
2733
2830
 
2734
2831
  /***/ },
2735
- /* 48 */
2832
+ /* 51 */
2736
2833
  /***/ function(module, exports, __webpack_require__) {
2737
2834
 
2835
+ var baseCallback = __webpack_require__(34),
2836
+ baseReduce = __webpack_require__(71),
2837
+ isArray = __webpack_require__(44);
2838
+
2738
2839
  /**
2739
- * The base implementation of `_.reduce` and `_.reduceRight` without support
2740
- * for callback shorthands or `this` binding, which iterates over `collection`
2741
- * using the provided `eachFunc`.
2840
+ * Creates a function for `_.reduce` or `_.reduceRight`.
2742
2841
  *
2743
2842
  * @private
2744
- * @param {Array|Object|string} collection The collection to iterate over.
2745
- * @param {Function} iteratee The function invoked per iteration.
2746
- * @param {*} accumulator The initial value.
2747
- * @param {boolean} initFromCollection Specify using the first or last element
2748
- * of `collection` as the initial value.
2749
- * @param {Function} eachFunc The function to iterate over `collection`.
2750
- * @returns {*} Returns the accumulated value.
2843
+ * @param {Function} arrayFunc The function to iterate over an array.
2844
+ * @param {Function} eachFunc The function to iterate over a collection.
2845
+ * @returns {Function} Returns the new each function.
2751
2846
  */
2752
- function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) {
2753
- eachFunc(collection, function(value, index, collection) {
2754
- accumulator = initFromCollection
2755
- ? (initFromCollection = false, value)
2756
- : iteratee(accumulator, value, index, collection)
2757
- });
2758
- return accumulator;
2847
+ function createReduce(arrayFunc, eachFunc) {
2848
+ return function(collection, iteratee, accumulator, thisArg) {
2849
+ var initFromArray = arguments.length < 3;
2850
+ return (typeof iteratee == 'function' && typeof thisArg == 'undefined' && isArray(collection))
2851
+ ? arrayFunc(collection, iteratee, accumulator, initFromArray)
2852
+ : baseReduce(collection, baseCallback(iteratee, thisArg, 4), accumulator, initFromArray, eachFunc);
2853
+ };
2759
2854
  }
2760
2855
 
2761
- module.exports = baseReduce;
2856
+ module.exports = createReduce;
2762
2857
 
2763
2858
 
2764
2859
  /***/ },
2765
- /* 49 */
2860
+ /* 52 */
2766
2861
  /***/ function(module, exports, __webpack_require__) {
2767
2862
 
2768
2863
  /**
@@ -2788,7 +2883,7 @@ return /******/ (function(modules) { // webpackBootstrap
2788
2883
 
2789
2884
 
2790
2885
  /***/ },
2791
- /* 50 */
2886
+ /* 53 */
2792
2887
  /***/ function(module, exports, __webpack_require__) {
2793
2888
 
2794
2889
  /**
@@ -2819,7 +2914,7 @@ return /******/ (function(modules) { // webpackBootstrap
2819
2914
 
2820
2915
 
2821
2916
  /***/ },
2822
- /* 51 */
2917
+ /* 54 */
2823
2918
  /***/ function(module, exports, __webpack_require__) {
2824
2919
 
2825
2920
  /** Used for native method references. */
@@ -2851,10 +2946,10 @@ return /******/ (function(modules) { // webpackBootstrap
2851
2946
 
2852
2947
 
2853
2948
  /***/ },
2854
- /* 52 */
2949
+ /* 55 */
2855
2950
  /***/ function(module, exports, __webpack_require__) {
2856
2951
 
2857
- var bufferClone = __webpack_require__(67);
2952
+ var bufferClone = __webpack_require__(72);
2858
2953
 
2859
2954
  /** `Object#toString` result references. */
2860
2955
  var boolTag = '[object Boolean]',
@@ -2921,7 +3016,7 @@ return /******/ (function(modules) { // webpackBootstrap
2921
3016
 
2922
3017
 
2923
3018
  /***/ },
2924
- /* 53 */
3019
+ /* 56 */
2925
3020
  /***/ function(module, exports, __webpack_require__) {
2926
3021
 
2927
3022
  /**
@@ -2943,7 +3038,7 @@ return /******/ (function(modules) { // webpackBootstrap
2943
3038
 
2944
3039
 
2945
3040
  /***/ },
2946
- /* 54 */
3041
+ /* 57 */
2947
3042
  /***/ function(module, exports, __webpack_require__) {
2948
3043
 
2949
3044
  /**
@@ -2957,6 +3052,7 @@ return /******/ (function(modules) { // webpackBootstrap
2957
3052
  * @example
2958
3053
  *
2959
3054
  * var object = { 'user': 'fred' };
3055
+ *
2960
3056
  * _.identity(object) === object;
2961
3057
  * // => true
2962
3058
  */
@@ -2968,13 +3064,12 @@ return /******/ (function(modules) { // webpackBootstrap
2968
3064
 
2969
3065
 
2970
3066
  /***/ },
2971
- /* 55 */
3067
+ /* 58 */
2972
3068
  /***/ function(module, exports, __webpack_require__) {
2973
3069
 
2974
3070
  /**
2975
- * Used as the maximum length of an array-like value.
2976
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)
2977
- * for more details.
3071
+ * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
3072
+ * of an array-like value.
2978
3073
  */
2979
3074
  var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
2980
3075
 
@@ -2996,22 +3091,22 @@ return /******/ (function(modules) { // webpackBootstrap
2996
3091
 
2997
3092
 
2998
3093
  /***/ },
2999
- /* 56 */
3094
+ /* 59 */
3000
3095
  /***/ function(module, exports, __webpack_require__) {
3001
3096
 
3002
- var baseToString = __webpack_require__(68);
3097
+ var baseToString = __webpack_require__(73);
3003
3098
 
3004
3099
  /**
3005
- * Used to match `RegExp` special characters.
3006
- * See this [article on `RegExp` characters](http://www.regular-expressions.info/characters.html#special)
3007
- * for more details.
3100
+ * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).
3101
+ * In addition to special characters the forward slash is escaped to allow for
3102
+ * easier `eval` use and `Function` compilation.
3008
3103
  */
3009
3104
  var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g,
3010
3105
  reHasRegExpChars = RegExp(reRegExpChars.source);
3011
3106
 
3012
3107
  /**
3013
- * Escapes the `RegExp` special characters "\", "^", "$", ".", "|", "?", "*",
3014
- * "+", "(", ")", "[", "]", "{" and "}" in `string`.
3108
+ * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?",
3109
+ * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`.
3015
3110
  *
3016
3111
  * @static
3017
3112
  * @memberOf _
@@ -3021,7 +3116,7 @@ return /******/ (function(modules) { // webpackBootstrap
3021
3116
  * @example
3022
3117
  *
3023
3118
  * _.escapeRegExp('[lodash](https://lodash.com/)');
3024
- * // => '\[lodash\]\(https://lodash\.com/\)'
3119
+ * // => '\[lodash\]\(https:\/\/lodash\.com\/\)'
3025
3120
  */
3026
3121
  function escapeRegExp(string) {
3027
3122
  string = baseToString(string);
@@ -3034,172 +3129,141 @@ return /******/ (function(modules) { // webpackBootstrap
3034
3129
 
3035
3130
 
3036
3131
  /***/ },
3037
- /* 57 */
3132
+ /* 60 */
3038
3133
  /***/ function(module, exports, __webpack_require__) {
3039
3134
 
3040
- var baseClone = __webpack_require__(27),
3041
- baseIsMatch = __webpack_require__(69),
3042
- isStrictComparable = __webpack_require__(70),
3043
- keys = __webpack_require__(17);
3135
+ var createBaseFor = __webpack_require__(74);
3044
3136
 
3045
- /** Used for native method references. */
3046
- var objectProto = Object.prototype;
3137
+ /**
3138
+ * The base implementation of `baseForIn` and `baseForOwn` which iterates
3139
+ * over `object` properties returned by `keysFunc` invoking `iteratee` for
3140
+ * each property. Iterator functions may exit iteration early by explicitly
3141
+ * returning `false`.
3142
+ *
3143
+ * @private
3144
+ * @param {Object} object The object to iterate over.
3145
+ * @param {Function} iteratee The function invoked per iteration.
3146
+ * @param {Function} keysFunc The function to get the keys of `object`.
3147
+ * @returns {Object} Returns `object`.
3148
+ */
3149
+ var baseFor = createBaseFor();
3047
3150
 
3048
- /** Used to check objects for own properties. */
3049
- var hasOwnProperty = objectProto.hasOwnProperty;
3151
+ module.exports = baseFor;
3152
+
3153
+
3154
+ /***/ },
3155
+ /* 61 */
3156
+ /***/ function(module, exports, __webpack_require__) {
3157
+
3158
+ var baseIsMatch = __webpack_require__(75),
3159
+ constant = __webpack_require__(69),
3160
+ isStrictComparable = __webpack_require__(76),
3161
+ keys = __webpack_require__(17),
3162
+ toObject = __webpack_require__(77);
3050
3163
 
3051
3164
  /**
3052
- * The base implementation of `_.matches` which supports specifying whether
3053
- * `source` should be cloned.
3165
+ * The base implementation of `_.matches` which does not clone `source`.
3054
3166
  *
3055
3167
  * @private
3056
3168
  * @param {Object} source The object of property values to match.
3057
- * @param {boolean} [isCloned] Specify cloning the source object.
3058
3169
  * @returns {Function} Returns the new function.
3059
3170
  */
3060
- function baseMatches(source, isCloned) {
3171
+ function baseMatches(source) {
3061
3172
  var props = keys(source),
3062
3173
  length = props.length;
3063
3174
 
3175
+ if (!length) {
3176
+ return constant(true);
3177
+ }
3064
3178
  if (length == 1) {
3065
3179
  var key = props[0],
3066
3180
  value = source[key];
3067
3181
 
3068
3182
  if (isStrictComparable(value)) {
3069
3183
  return function(object) {
3070
- return object != null && value === object[key] && hasOwnProperty.call(object, key);
3184
+ return object != null && object[key] === value &&
3185
+ (typeof value != 'undefined' || (key in toObject(object)));
3071
3186
  };
3072
3187
  }
3073
3188
  }
3074
- if (isCloned) {
3075
- source = baseClone(source, true);
3076
- }
3077
3189
  var values = Array(length),
3078
3190
  strictCompareFlags = Array(length);
3079
3191
 
3080
- while (length--) {
3081
- value = source[props[length]];
3082
- values[length] = value;
3083
- strictCompareFlags[length] = isStrictComparable(value);
3084
- }
3085
- return function(object) {
3086
- return baseIsMatch(object, props, values, strictCompareFlags);
3087
- };
3088
- }
3089
-
3090
- module.exports = baseMatches;
3091
-
3092
-
3093
- /***/ },
3094
- /* 58 */
3095
- /***/ function(module, exports, __webpack_require__) {
3096
-
3097
- /**
3098
- * The base implementation of `_.property` which does not coerce `key` to a string.
3099
- *
3100
- * @private
3101
- * @param {string} key The key of the property to get.
3102
- * @returns {Function} Returns the new function.
3103
- */
3104
- function baseProperty(key) {
3192
+ while (length--) {
3193
+ value = source[props[length]];
3194
+ values[length] = value;
3195
+ strictCompareFlags[length] = isStrictComparable(value);
3196
+ }
3105
3197
  return function(object) {
3106
- return object == null ? undefined : object[key];
3198
+ return object != null && baseIsMatch(toObject(object), props, values, strictCompareFlags);
3107
3199
  };
3108
3200
  }
3109
3201
 
3110
- module.exports = baseProperty;
3202
+ module.exports = baseMatches;
3111
3203
 
3112
3204
 
3113
3205
  /***/ },
3114
- /* 59 */
3206
+ /* 62 */
3115
3207
  /***/ function(module, exports, __webpack_require__) {
3116
3208
 
3117
- var baseSetData = __webpack_require__(71),
3118
- isNative = __webpack_require__(30),
3119
- support = __webpack_require__(62);
3120
-
3121
- /** Used to detect named functions. */
3122
- var reFuncName = /^\s*function[ \n\r\t]+\w/;
3123
-
3124
- /** Used to detect functions containing a `this` reference. */
3125
- var reThis = /\bthis\b/;
3126
-
3127
- /** Used to resolve the decompiled source of functions. */
3128
- var fnToString = Function.prototype.toString;
3209
+ var baseIsEqual = __webpack_require__(78),
3210
+ isStrictComparable = __webpack_require__(76),
3211
+ toObject = __webpack_require__(77);
3129
3212
 
3130
3213
  /**
3131
- * Checks if `func` is eligible for `this` binding.
3214
+ * The base implementation of `_.matchesProperty` which does not coerce `key`
3215
+ * to a string.
3132
3216
  *
3133
3217
  * @private
3134
- * @param {Function} func The function to check.
3135
- * @returns {boolean} Returns `true` if `func` is eligible, else `false`.
3218
+ * @param {string} key The key of the property to get.
3219
+ * @param {*} value The value to compare.
3220
+ * @returns {Function} Returns the new function.
3136
3221
  */
3137
- function isBindable(func) {
3138
- var result = !(support.funcNames ? func.name : support.funcDecomp);
3139
-
3140
- if (!result) {
3141
- var source = fnToString.call(func);
3142
- if (!support.funcNames) {
3143
- result = !reFuncName.test(source);
3144
- }
3145
- if (!result) {
3146
- // Check if `func` references the `this` keyword and store the result.
3147
- result = reThis.test(source) || isNative(func);
3148
- baseSetData(func, result);
3149
- }
3222
+ function baseMatchesProperty(key, value) {
3223
+ if (isStrictComparable(value)) {
3224
+ return function(object) {
3225
+ return object != null && object[key] === value &&
3226
+ (typeof value != 'undefined' || (key in toObject(object)));
3227
+ };
3150
3228
  }
3151
- return result;
3229
+ return function(object) {
3230
+ return object != null && baseIsEqual(value, object[key], null, true);
3231
+ };
3152
3232
  }
3153
3233
 
3154
- module.exports = isBindable;
3234
+ module.exports = baseMatchesProperty;
3155
3235
 
3156
3236
 
3157
3237
  /***/ },
3158
- /* 60 */
3238
+ /* 63 */
3159
3239
  /***/ function(module, exports, __webpack_require__) {
3160
3240
 
3161
- var toObject = __webpack_require__(66);
3162
-
3163
3241
  /**
3164
- * The base implementation of `baseForIn` and `baseForOwn` which iterates
3165
- * over `object` properties returned by `keysFunc` invoking `iteratee` for
3166
- * each property. Iterator functions may exit iteration early by explicitly
3167
- * returning `false`.
3242
+ * The base implementation of `_.property` which does not coerce `key` to a string.
3168
3243
  *
3169
3244
  * @private
3170
- * @param {Object} object The object to iterate over.
3171
- * @param {Function} iteratee The function invoked per iteration.
3172
- * @param {Function} keysFunc The function to get the keys of `object`.
3173
- * @returns {Object} Returns `object`.
3245
+ * @param {string} key The key of the property to get.
3246
+ * @returns {Function} Returns the new function.
3174
3247
  */
3175
- function baseFor(object, iteratee, keysFunc) {
3176
- var index = -1,
3177
- iterable = toObject(object),
3178
- props = keysFunc(object),
3179
- length = props.length;
3180
-
3181
- while (++index < length) {
3182
- var key = props[index];
3183
- if (iteratee(iterable[key], key, iterable) === false) {
3184
- break;
3185
- }
3186
- }
3187
- return object;
3248
+ function baseProperty(key) {
3249
+ return function(object) {
3250
+ return object == null ? undefined : object[key];
3251
+ };
3188
3252
  }
3189
3253
 
3190
- module.exports = baseFor;
3254
+ module.exports = baseProperty;
3191
3255
 
3192
3256
 
3193
3257
  /***/ },
3194
- /* 61 */
3258
+ /* 64 */
3195
3259
  /***/ function(module, exports, __webpack_require__) {
3196
3260
 
3197
- var isArguments = __webpack_require__(39),
3198
- isArray = __webpack_require__(40),
3199
- isIndex = __webpack_require__(55),
3200
- isLength = __webpack_require__(33),
3261
+ var isArguments = __webpack_require__(43),
3262
+ isArray = __webpack_require__(44),
3263
+ isIndex = __webpack_require__(58),
3264
+ isLength = __webpack_require__(35),
3201
3265
  isObject = __webpack_require__(25),
3202
- support = __webpack_require__(62);
3266
+ support = __webpack_require__(65);
3203
3267
 
3204
3268
  /** Used for native method references. */
3205
3269
  var objectProto = Object.prototype;
@@ -3242,7 +3306,7 @@ return /******/ (function(modules) { // webpackBootstrap
3242
3306
 
3243
3307
  var Ctor = object.constructor,
3244
3308
  index = -1,
3245
- isProto = typeof Ctor == 'function' && Ctor.prototype == object,
3309
+ isProto = typeof Ctor == 'function' && Ctor.prototype === object,
3246
3310
  result = Array(length),
3247
3311
  skipIndexes = length > 0;
3248
3312
 
@@ -3262,15 +3326,10 @@ return /******/ (function(modules) { // webpackBootstrap
3262
3326
 
3263
3327
 
3264
3328
  /***/ },
3265
- /* 62 */
3329
+ /* 65 */
3266
3330
  /***/ function(module, exports, __webpack_require__) {
3267
3331
 
3268
- /* WEBPACK VAR INJECTION */(function(global) {var isNative = __webpack_require__(30);
3269
-
3270
- /** Used to detect functions containing a `this` reference. */
3271
- var reThis = /\bthis\b/;
3272
-
3273
- /** Used for native method references. */
3332
+ /* WEBPACK VAR INJECTION */(function(global) {/** Used for native method references. */
3274
3333
  var objectProto = Object.prototype;
3275
3334
 
3276
3335
  /** Used to detect DOM support. */
@@ -3298,7 +3357,7 @@ return /******/ (function(modules) { // webpackBootstrap
3298
3357
  * @memberOf _.support
3299
3358
  * @type boolean
3300
3359
  */
3301
- support.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });
3360
+ support.funcDecomp = /\bthis\b/.test(function() { return this; });
3302
3361
 
3303
3362
  /**
3304
3363
  * Detect if `Function#name` is supported (all but IE).
@@ -3344,22 +3403,52 @@ return /******/ (function(modules) { // webpackBootstrap
3344
3403
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3345
3404
 
3346
3405
  /***/ },
3347
- /* 63 */
3406
+ /* 66 */
3407
+ /***/ function(module, exports, __webpack_require__) {
3408
+
3409
+ /**
3410
+ * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`,
3411
+ * without support for callback shorthands and `this` binding, which iterates
3412
+ * over `collection` using the provided `eachFunc`.
3413
+ *
3414
+ * @private
3415
+ * @param {Array|Object|string} collection The collection to search.
3416
+ * @param {Function} predicate The function invoked per iteration.
3417
+ * @param {Function} eachFunc The function to iterate over `collection`.
3418
+ * @param {boolean} [retKey] Specify returning the key of the found element
3419
+ * instead of the element itself.
3420
+ * @returns {*} Returns the found element or its key, else `undefined`.
3421
+ */
3422
+ function baseFind(collection, predicate, eachFunc, retKey) {
3423
+ var result;
3424
+ eachFunc(collection, function(value, key, collection) {
3425
+ if (predicate(value, key, collection)) {
3426
+ result = retKey ? key : value;
3427
+ return false;
3428
+ }
3429
+ });
3430
+ return result;
3431
+ }
3432
+
3433
+ module.exports = baseFind;
3434
+
3435
+
3436
+ /***/ },
3437
+ /* 67 */
3348
3438
  /***/ function(module, exports, __webpack_require__) {
3349
3439
 
3350
3440
  /**
3351
3441
  * Gets the index at which the first occurrence of `NaN` is found in `array`.
3352
- * If `fromRight` is provided elements of `array` are iterated from right to left.
3353
3442
  *
3354
3443
  * @private
3355
3444
  * @param {Array} array The array to search.
3356
- * @param {number} [fromIndex] The index to search from.
3445
+ * @param {number} fromIndex The index to search from.
3357
3446
  * @param {boolean} [fromRight] Specify iterating from right to left.
3358
3447
  * @returns {number} Returns the index of the matched `NaN`, else `-1`.
3359
3448
  */
3360
3449
  function indexOfNaN(array, fromIndex, fromRight) {
3361
3450
  var length = array.length,
3362
- index = fromRight ? (fromIndex || length) : ((fromIndex || 0) - 1);
3451
+ index = fromIndex + (fromRight ? 0 : -1);
3363
3452
 
3364
3453
  while ((fromRight ? index-- : ++index < length)) {
3365
3454
  var other = array[index];
@@ -3374,10 +3463,10 @@ return /******/ (function(modules) { // webpackBootstrap
3374
3463
 
3375
3464
 
3376
3465
  /***/ },
3377
- /* 64 */
3466
+ /* 68 */
3378
3467
  /***/ function(module, exports, __webpack_require__) {
3379
3468
 
3380
- /* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(72),
3469
+ /* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(79),
3381
3470
  isNative = __webpack_require__(30);
3382
3471
 
3383
3472
  /** Native method references. */
@@ -3410,7 +3499,7 @@ return /******/ (function(modules) { // webpackBootstrap
3410
3499
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3411
3500
 
3412
3501
  /***/ },
3413
- /* 65 */
3502
+ /* 69 */
3414
3503
  /***/ function(module, exports, __webpack_require__) {
3415
3504
 
3416
3505
  /**
@@ -3425,6 +3514,7 @@ return /******/ (function(modules) { // webpackBootstrap
3425
3514
  *
3426
3515
  * var object = { 'user': 'fred' };
3427
3516
  * var getter = _.constant(object);
3517
+ *
3428
3518
  * getter() === object;
3429
3519
  * // => true
3430
3520
  */
@@ -3438,30 +3528,76 @@ return /******/ (function(modules) { // webpackBootstrap
3438
3528
 
3439
3529
 
3440
3530
  /***/ },
3441
- /* 66 */
3531
+ /* 70 */
3442
3532
  /***/ function(module, exports, __webpack_require__) {
3443
3533
 
3444
- var isObject = __webpack_require__(25);
3534
+ var isLength = __webpack_require__(35),
3535
+ toObject = __webpack_require__(77);
3445
3536
 
3446
3537
  /**
3447
- * Converts `value` to an object if it is not one.
3538
+ * Creates a `baseEach` or `baseEachRight` function.
3448
3539
  *
3449
3540
  * @private
3450
- * @param {*} value The value to process.
3451
- * @returns {Object} Returns the object.
3541
+ * @param {Function} eachFunc The function to iterate over a collection.
3542
+ * @param {boolean} [fromRight] Specify iterating from right to left.
3543
+ * @returns {Function} Returns the new base function.
3452
3544
  */
3453
- function toObject(value) {
3454
- return isObject(value) ? value : Object(value);
3545
+ function createBaseEach(eachFunc, fromRight) {
3546
+ return function(collection, iteratee) {
3547
+ var length = collection ? collection.length : 0;
3548
+ if (!isLength(length)) {
3549
+ return eachFunc(collection, iteratee);
3550
+ }
3551
+ var index = fromRight ? length : -1,
3552
+ iterable = toObject(collection);
3553
+
3554
+ while ((fromRight ? index-- : ++index < length)) {
3555
+ if (iteratee(iterable[index], index, iterable) === false) {
3556
+ break;
3557
+ }
3558
+ }
3559
+ return collection;
3560
+ };
3455
3561
  }
3456
3562
 
3457
- module.exports = toObject;
3563
+ module.exports = createBaseEach;
3458
3564
 
3459
3565
 
3460
3566
  /***/ },
3461
- /* 67 */
3567
+ /* 71 */
3568
+ /***/ function(module, exports, __webpack_require__) {
3569
+
3570
+ /**
3571
+ * The base implementation of `_.reduce` and `_.reduceRight` without support
3572
+ * for callback shorthands and `this` binding, which iterates over `collection`
3573
+ * using the provided `eachFunc`.
3574
+ *
3575
+ * @private
3576
+ * @param {Array|Object|string} collection The collection to iterate over.
3577
+ * @param {Function} iteratee The function invoked per iteration.
3578
+ * @param {*} accumulator The initial value.
3579
+ * @param {boolean} initFromCollection Specify using the first or last element
3580
+ * of `collection` as the initial value.
3581
+ * @param {Function} eachFunc The function to iterate over `collection`.
3582
+ * @returns {*} Returns the accumulated value.
3583
+ */
3584
+ function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) {
3585
+ eachFunc(collection, function(value, index, collection) {
3586
+ accumulator = initFromCollection
3587
+ ? (initFromCollection = false, value)
3588
+ : iteratee(accumulator, value, index, collection);
3589
+ });
3590
+ return accumulator;
3591
+ }
3592
+
3593
+ module.exports = baseReduce;
3594
+
3595
+
3596
+ /***/ },
3597
+ /* 72 */
3462
3598
  /***/ function(module, exports, __webpack_require__) {
3463
3599
 
3464
- /* WEBPACK VAR INJECTION */(function(global) {var constant = __webpack_require__(65),
3600
+ /* WEBPACK VAR INJECTION */(function(global) {var constant = __webpack_require__(69),
3465
3601
  isNative = __webpack_require__(30);
3466
3602
 
3467
3603
  /** Native method references. */
@@ -3520,7 +3656,7 @@ return /******/ (function(modules) { // webpackBootstrap
3520
3656
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3521
3657
 
3522
3658
  /***/ },
3523
- /* 68 */
3659
+ /* 73 */
3524
3660
  /***/ function(module, exports, __webpack_require__) {
3525
3661
 
3526
3662
  /**
@@ -3542,23 +3678,50 @@ return /******/ (function(modules) { // webpackBootstrap
3542
3678
 
3543
3679
 
3544
3680
  /***/ },
3545
- /* 69 */
3681
+ /* 74 */
3546
3682
  /***/ function(module, exports, __webpack_require__) {
3547
3683
 
3548
- var baseIsEqual = __webpack_require__(73);
3684
+ var toObject = __webpack_require__(77);
3549
3685
 
3550
- /** Used for native method references. */
3551
- var objectProto = Object.prototype;
3686
+ /**
3687
+ * Creates a base function for `_.forIn` or `_.forInRight`.
3688
+ *
3689
+ * @private
3690
+ * @param {boolean} [fromRight] Specify iterating from right to left.
3691
+ * @returns {Function} Returns the new base function.
3692
+ */
3693
+ function createBaseFor(fromRight) {
3694
+ return function(object, iteratee, keysFunc) {
3695
+ var iterable = toObject(object),
3696
+ props = keysFunc(object),
3697
+ length = props.length,
3698
+ index = fromRight ? length : -1;
3699
+
3700
+ while ((fromRight ? index-- : ++index < length)) {
3701
+ var key = props[index];
3702
+ if (iteratee(iterable[key], key, iterable) === false) {
3703
+ break;
3704
+ }
3705
+ }
3706
+ return object;
3707
+ };
3708
+ }
3552
3709
 
3553
- /** Used to check objects for own properties. */
3554
- var hasOwnProperty = objectProto.hasOwnProperty;
3710
+ module.exports = createBaseFor;
3711
+
3712
+
3713
+ /***/ },
3714
+ /* 75 */
3715
+ /***/ function(module, exports, __webpack_require__) {
3716
+
3717
+ var baseIsEqual = __webpack_require__(78);
3555
3718
 
3556
3719
  /**
3557
3720
  * The base implementation of `_.isMatch` without support for callback
3558
- * shorthands or `this` binding.
3721
+ * shorthands and `this` binding.
3559
3722
  *
3560
3723
  * @private
3561
- * @param {Object} source The object to inspect.
3724
+ * @param {Object} object The object to inspect.
3562
3725
  * @param {Array} props The source property names to match.
3563
3726
  * @param {Array} values The source values to match.
3564
3727
  * @param {Array} strictCompareFlags Strict comparison flags for source values.
@@ -3566,30 +3729,27 @@ return /******/ (function(modules) { // webpackBootstrap
3566
3729
  * @returns {boolean} Returns `true` if `object` is a match, else `false`.
3567
3730
  */
3568
3731
  function baseIsMatch(object, props, values, strictCompareFlags, customizer) {
3569
- var length = props.length;
3570
- if (object == null) {
3571
- return !length;
3572
- }
3573
3732
  var index = -1,
3733
+ length = props.length,
3574
3734
  noCustomizer = !customizer;
3575
3735
 
3576
3736
  while (++index < length) {
3577
3737
  if ((noCustomizer && strictCompareFlags[index])
3578
3738
  ? values[index] !== object[props[index]]
3579
- : !hasOwnProperty.call(object, props[index])
3739
+ : !(props[index] in object)
3580
3740
  ) {
3581
3741
  return false;
3582
3742
  }
3583
3743
  }
3584
3744
  index = -1;
3585
3745
  while (++index < length) {
3586
- var key = props[index];
3746
+ var key = props[index],
3747
+ objValue = object[key],
3748
+ srcValue = values[index];
3749
+
3587
3750
  if (noCustomizer && strictCompareFlags[index]) {
3588
- var result = hasOwnProperty.call(object, key);
3751
+ var result = typeof objValue != 'undefined' || (key in object);
3589
3752
  } else {
3590
- var objValue = object[key],
3591
- srcValue = values[index];
3592
-
3593
3753
  result = customizer ? customizer(objValue, srcValue, key) : undefined;
3594
3754
  if (typeof result == 'undefined') {
3595
3755
  result = baseIsEqual(srcValue, objValue, customizer, true);
@@ -3606,7 +3766,7 @@ return /******/ (function(modules) { // webpackBootstrap
3606
3766
 
3607
3767
 
3608
3768
  /***/ },
3609
- /* 70 */
3769
+ /* 76 */
3610
3770
  /***/ function(module, exports, __webpack_require__) {
3611
3771
 
3612
3772
  var isObject = __webpack_require__(25);
@@ -3627,59 +3787,30 @@ return /******/ (function(modules) { // webpackBootstrap
3627
3787
 
3628
3788
 
3629
3789
  /***/ },
3630
- /* 71 */
3631
- /***/ function(module, exports, __webpack_require__) {
3632
-
3633
- var identity = __webpack_require__(54),
3634
- metaMap = __webpack_require__(74);
3635
-
3636
- /**
3637
- * The base implementation of `setData` without support for hot loop detection.
3638
- *
3639
- * @private
3640
- * @param {Function} func The function to associate metadata with.
3641
- * @param {*} data The metadata.
3642
- * @returns {Function} Returns `func`.
3643
- */
3644
- var baseSetData = !metaMap ? identity : function(func, data) {
3645
- metaMap.set(func, data);
3646
- return func;
3647
- };
3648
-
3649
- module.exports = baseSetData;
3650
-
3651
-
3652
- /***/ },
3653
- /* 72 */
3790
+ /* 77 */
3654
3791
  /***/ function(module, exports, __webpack_require__) {
3655
3792
 
3656
3793
  var isObject = __webpack_require__(25);
3657
3794
 
3658
3795
  /**
3659
- * Adds `value` to the cache.
3796
+ * Converts `value` to an object if it is not one.
3660
3797
  *
3661
3798
  * @private
3662
- * @name push
3663
- * @memberOf SetCache
3664
- * @param {*} value The value to cache.
3799
+ * @param {*} value The value to process.
3800
+ * @returns {Object} Returns the object.
3665
3801
  */
3666
- function cachePush(value) {
3667
- var data = this.data;
3668
- if (typeof value == 'string' || isObject(value)) {
3669
- data.set.add(value);
3670
- } else {
3671
- data.hash[value] = true;
3672
- }
3802
+ function toObject(value) {
3803
+ return isObject(value) ? value : Object(value);
3673
3804
  }
3674
3805
 
3675
- module.exports = cachePush;
3806
+ module.exports = toObject;
3676
3807
 
3677
3808
 
3678
3809
  /***/ },
3679
- /* 73 */
3810
+ /* 78 */
3680
3811
  /***/ function(module, exports, __webpack_require__) {
3681
3812
 
3682
- var baseIsEqualDeep = __webpack_require__(75);
3813
+ var baseIsEqualDeep = __webpack_require__(80);
3683
3814
 
3684
3815
  /**
3685
3816
  * The base implementation of `_.isEqual` without support for `this` binding
@@ -3689,12 +3820,12 @@ return /******/ (function(modules) { // webpackBootstrap
3689
3820
  * @param {*} value The value to compare.
3690
3821
  * @param {*} other The other value to compare.
3691
3822
  * @param {Function} [customizer] The function to customize comparing values.
3692
- * @param {boolean} [isWhere] Specify performing partial comparisons.
3823
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
3693
3824
  * @param {Array} [stackA] Tracks traversed `value` objects.
3694
3825
  * @param {Array} [stackB] Tracks traversed `other` objects.
3695
3826
  * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
3696
3827
  */
3697
- function baseIsEqual(value, other, customizer, isWhere, stackA, stackB) {
3828
+ function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {
3698
3829
  // Exit early for identical values.
3699
3830
  if (value === other) {
3700
3831
  // Treat `+0` vs. `-0` as not equal.
@@ -3709,41 +3840,52 @@ return /******/ (function(modules) { // webpackBootstrap
3709
3840
  // Return `false` unless both values are `NaN`.
3710
3841
  return value !== value && other !== other;
3711
3842
  }
3712
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, isWhere, stackA, stackB);
3843
+ return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);
3713
3844
  }
3714
3845
 
3715
3846
  module.exports = baseIsEqual;
3716
3847
 
3717
3848
 
3718
3849
  /***/ },
3719
- /* 74 */
3850
+ /* 79 */
3720
3851
  /***/ function(module, exports, __webpack_require__) {
3721
3852
 
3722
- /* WEBPACK VAR INJECTION */(function(global) {var isNative = __webpack_require__(30);
3723
-
3724
- /** Native method references. */
3725
- var WeakMap = isNative(WeakMap = global.WeakMap) && WeakMap;
3726
-
3727
- /** Used to store function metadata. */
3728
- var metaMap = WeakMap && new WeakMap;
3853
+ var isObject = __webpack_require__(25);
3729
3854
 
3730
- module.exports = metaMap;
3855
+ /**
3856
+ * Adds `value` to the cache.
3857
+ *
3858
+ * @private
3859
+ * @name push
3860
+ * @memberOf SetCache
3861
+ * @param {*} value The value to cache.
3862
+ */
3863
+ function cachePush(value) {
3864
+ var data = this.data;
3865
+ if (typeof value == 'string' || isObject(value)) {
3866
+ data.set.add(value);
3867
+ } else {
3868
+ data.hash[value] = true;
3869
+ }
3870
+ }
3731
3871
 
3732
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3872
+ module.exports = cachePush;
3873
+
3733
3874
 
3734
3875
  /***/ },
3735
- /* 75 */
3876
+ /* 80 */
3736
3877
  /***/ function(module, exports, __webpack_require__) {
3737
3878
 
3738
- var equalArrays = __webpack_require__(76),
3739
- equalByTag = __webpack_require__(77),
3740
- equalObjects = __webpack_require__(78),
3741
- isArray = __webpack_require__(40),
3742
- isTypedArray = __webpack_require__(79);
3879
+ var equalArrays = __webpack_require__(81),
3880
+ equalByTag = __webpack_require__(82),
3881
+ equalObjects = __webpack_require__(83),
3882
+ isArray = __webpack_require__(44),
3883
+ isTypedArray = __webpack_require__(84);
3743
3884
 
3744
3885
  /** `Object#toString` result references. */
3745
3886
  var argsTag = '[object Arguments]',
3746
3887
  arrayTag = '[object Array]',
3888
+ funcTag = '[object Function]',
3747
3889
  objectTag = '[object Object]';
3748
3890
 
3749
3891
  /** Used for native method references. */
@@ -3753,9 +3895,8 @@ return /******/ (function(modules) { // webpackBootstrap
3753
3895
  var hasOwnProperty = objectProto.hasOwnProperty;
3754
3896
 
3755
3897
  /**
3756
- * Used to resolve the `toStringTag` of values.
3757
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
3758
- * for more details.
3898
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
3899
+ * of values.
3759
3900
  */
3760
3901
  var objToString = objectProto.toString;
3761
3902
 
@@ -3769,12 +3910,12 @@ return /******/ (function(modules) { // webpackBootstrap
3769
3910
  * @param {Object} other The other object to compare.
3770
3911
  * @param {Function} equalFunc The function to determine equivalents of values.
3771
3912
  * @param {Function} [customizer] The function to customize comparing objects.
3772
- * @param {boolean} [isWhere] Specify performing partial comparisons.
3913
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
3773
3914
  * @param {Array} [stackA=[]] Tracks traversed `value` objects.
3774
3915
  * @param {Array} [stackB=[]] Tracks traversed `other` objects.
3775
3916
  * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
3776
3917
  */
3777
- function baseIsEqualDeep(object, other, equalFunc, customizer, isWhere, stackA, stackB) {
3918
+ function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
3778
3919
  var objIsArr = isArray(object),
3779
3920
  othIsArr = isArray(other),
3780
3921
  objTag = arrayTag,
@@ -3796,21 +3937,27 @@ return /******/ (function(modules) { // webpackBootstrap
3796
3937
  othIsArr = isTypedArray(other);
3797
3938
  }
3798
3939
  }
3799
- var objIsObj = objTag == objectTag,
3800
- othIsObj = othTag == objectTag,
3940
+ var objIsObj = (objTag == objectTag || (isLoose && objTag == funcTag)),
3941
+ othIsObj = (othTag == objectTag || (isLoose && othTag == funcTag)),
3801
3942
  isSameTag = objTag == othTag;
3802
3943
 
3803
3944
  if (isSameTag && !(objIsArr || objIsObj)) {
3804
3945
  return equalByTag(object, other, objTag);
3805
3946
  }
3806
- var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
3807
- othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
3947
+ if (isLoose) {
3948
+ if (!isSameTag && !(objIsObj && othIsObj)) {
3949
+ return false;
3950
+ }
3951
+ } else {
3952
+ var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
3953
+ othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
3808
3954
 
3809
- if (valWrapped || othWrapped) {
3810
- return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isWhere, stackA, stackB);
3811
- }
3812
- if (!isSameTag) {
3813
- return false;
3955
+ if (valWrapped || othWrapped) {
3956
+ return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);
3957
+ }
3958
+ if (!isSameTag) {
3959
+ return false;
3960
+ }
3814
3961
  }
3815
3962
  // Assume cyclic values are equal.
3816
3963
  // For more information on detecting circular references see https://es5.github.io/#JO.
@@ -3827,7 +3974,7 @@ return /******/ (function(modules) { // webpackBootstrap
3827
3974
  stackA.push(object);
3828
3975
  stackB.push(other);
3829
3976
 
3830
- var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isWhere, stackA, stackB);
3977
+ var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);
3831
3978
 
3832
3979
  stackA.pop();
3833
3980
  stackB.pop();
@@ -3839,7 +3986,7 @@ return /******/ (function(modules) { // webpackBootstrap
3839
3986
 
3840
3987
 
3841
3988
  /***/ },
3842
- /* 76 */
3989
+ /* 81 */
3843
3990
  /***/ function(module, exports, __webpack_require__) {
3844
3991
 
3845
3992
  /**
@@ -3851,18 +3998,18 @@ return /******/ (function(modules) { // webpackBootstrap
3851
3998
  * @param {Array} other The other array to compare.
3852
3999
  * @param {Function} equalFunc The function to determine equivalents of values.
3853
4000
  * @param {Function} [customizer] The function to customize comparing arrays.
3854
- * @param {boolean} [isWhere] Specify performing partial comparisons.
4001
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
3855
4002
  * @param {Array} [stackA] Tracks traversed `value` objects.
3856
4003
  * @param {Array} [stackB] Tracks traversed `other` objects.
3857
4004
  * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
3858
4005
  */
3859
- function equalArrays(array, other, equalFunc, customizer, isWhere, stackA, stackB) {
4006
+ function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {
3860
4007
  var index = -1,
3861
4008
  arrLength = array.length,
3862
4009
  othLength = other.length,
3863
4010
  result = true;
3864
4011
 
3865
- if (arrLength != othLength && !(isWhere && othLength > arrLength)) {
4012
+ if (arrLength != othLength && !(isLoose && othLength > arrLength)) {
3866
4013
  return false;
3867
4014
  }
3868
4015
  // Deep compare the contents, ignoring non-numeric properties.
@@ -3872,23 +4019,23 @@ return /******/ (function(modules) { // webpackBootstrap
3872
4019
 
3873
4020
  result = undefined;
3874
4021
  if (customizer) {
3875
- result = isWhere
4022
+ result = isLoose
3876
4023
  ? customizer(othValue, arrValue, index)
3877
4024
  : customizer(arrValue, othValue, index);
3878
4025
  }
3879
4026
  if (typeof result == 'undefined') {
3880
4027
  // Recursively compare arrays (susceptible to call stack limits).
3881
- if (isWhere) {
4028
+ if (isLoose) {
3882
4029
  var othIndex = othLength;
3883
4030
  while (othIndex--) {
3884
4031
  othValue = other[othIndex];
3885
- result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB);
4032
+ result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
3886
4033
  if (result) {
3887
4034
  break;
3888
4035
  }
3889
4036
  }
3890
4037
  } else {
3891
- result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB);
4038
+ result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
3892
4039
  }
3893
4040
  }
3894
4041
  }
@@ -3899,7 +4046,7 @@ return /******/ (function(modules) { // webpackBootstrap
3899
4046
 
3900
4047
 
3901
4048
  /***/ },
3902
- /* 77 */
4049
+ /* 82 */
3903
4050
  /***/ function(module, exports, __webpack_require__) {
3904
4051
 
3905
4052
  /** `Object#toString` result references. */
@@ -3954,7 +4101,7 @@ return /******/ (function(modules) { // webpackBootstrap
3954
4101
 
3955
4102
 
3956
4103
  /***/ },
3957
- /* 78 */
4104
+ /* 83 */
3958
4105
  /***/ function(module, exports, __webpack_require__) {
3959
4106
 
3960
4107
  var keys = __webpack_require__(17);
@@ -3974,26 +4121,26 @@ return /******/ (function(modules) { // webpackBootstrap
3974
4121
  * @param {Object} other The other object to compare.
3975
4122
  * @param {Function} equalFunc The function to determine equivalents of values.
3976
4123
  * @param {Function} [customizer] The function to customize comparing values.
3977
- * @param {boolean} [isWhere] Specify performing partial comparisons.
4124
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
3978
4125
  * @param {Array} [stackA] Tracks traversed `value` objects.
3979
4126
  * @param {Array} [stackB] Tracks traversed `other` objects.
3980
4127
  * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
3981
4128
  */
3982
- function equalObjects(object, other, equalFunc, customizer, isWhere, stackA, stackB) {
4129
+ function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
3983
4130
  var objProps = keys(object),
3984
4131
  objLength = objProps.length,
3985
4132
  othProps = keys(other),
3986
4133
  othLength = othProps.length;
3987
4134
 
3988
- if (objLength != othLength && !isWhere) {
4135
+ if (objLength != othLength && !isLoose) {
3989
4136
  return false;
3990
4137
  }
3991
- var hasCtor,
4138
+ var skipCtor = isLoose,
3992
4139
  index = -1;
3993
4140
 
3994
4141
  while (++index < objLength) {
3995
4142
  var key = objProps[index],
3996
- result = hasOwnProperty.call(other, key);
4143
+ result = isLoose ? key in other : hasOwnProperty.call(other, key);
3997
4144
 
3998
4145
  if (result) {
3999
4146
  var objValue = object[key],
@@ -4001,27 +4148,29 @@ return /******/ (function(modules) { // webpackBootstrap
4001
4148
 
4002
4149
  result = undefined;
4003
4150
  if (customizer) {
4004
- result = isWhere
4151
+ result = isLoose
4005
4152
  ? customizer(othValue, objValue, key)
4006
4153
  : customizer(objValue, othValue, key);
4007
4154
  }
4008
4155
  if (typeof result == 'undefined') {
4009
4156
  // Recursively compare objects (susceptible to call stack limits).
4010
- result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isWhere, stackA, stackB);
4157
+ result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB);
4011
4158
  }
4012
4159
  }
4013
4160
  if (!result) {
4014
4161
  return false;
4015
4162
  }
4016
- hasCtor || (hasCtor = key == 'constructor');
4163
+ skipCtor || (skipCtor = key == 'constructor');
4017
4164
  }
4018
- if (!hasCtor) {
4165
+ if (!skipCtor) {
4019
4166
  var objCtor = object.constructor,
4020
4167
  othCtor = other.constructor;
4021
4168
 
4022
4169
  // Non `Object` object instances with different constructors are not equal.
4023
- if (objCtor != othCtor && ('constructor' in object && 'constructor' in other) &&
4024
- !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {
4170
+ if (objCtor != othCtor &&
4171
+ ('constructor' in object && 'constructor' in other) &&
4172
+ !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
4173
+ typeof othCtor == 'function' && othCtor instanceof othCtor)) {
4025
4174
  return false;
4026
4175
  }
4027
4176
  }
@@ -4032,11 +4181,11 @@ return /******/ (function(modules) { // webpackBootstrap
4032
4181
 
4033
4182
 
4034
4183
  /***/ },
4035
- /* 79 */
4184
+ /* 84 */
4036
4185
  /***/ function(module, exports, __webpack_require__) {
4037
4186
 
4038
- var isLength = __webpack_require__(33),
4039
- isObjectLike = __webpack_require__(26);
4187
+ var isLength = __webpack_require__(35),
4188
+ isObjectLike = __webpack_require__(31);
4040
4189
 
4041
4190
  /** `Object#toString` result references. */
4042
4191
  var argsTag = '[object Arguments]',
@@ -4083,9 +4232,8 @@ return /******/ (function(modules) { // webpackBootstrap
4083
4232
  var objectProto = Object.prototype;
4084
4233
 
4085
4234
  /**
4086
- * Used to resolve the `toStringTag` of values.
4087
- * See the [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
4088
- * for more details.
4235
+ * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
4236
+ * of values.
4089
4237
  */
4090
4238
  var objToString = objectProto.toString;
4091
4239
 
@@ -4106,7 +4254,7 @@ return /******/ (function(modules) { // webpackBootstrap
4106
4254
  * // => false
4107
4255
  */
4108
4256
  function isTypedArray(value) {
4109
- return (isObjectLike(value) && isLength(value.length) && typedArrayTags[objToString.call(value)]) || false;
4257
+ return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];
4110
4258
  }
4111
4259
 
4112
4260
  module.exports = isTypedArray;
@@ -4115,5 +4263,5 @@ return /******/ (function(modules) { // webpackBootstrap
4115
4263
  /***/ }
4116
4264
  /******/ ])
4117
4265
  });
4118
-
4266
+ ;
4119
4267
  //# sourceMappingURL=fluxxor.js.map