Add placeholder support to _.bind, _.partial, and _.partialRight.

This commit is contained in:
John-David Dalton
2014-02-14 00:40:43 -08:00
parent 9cc06a94ec
commit ee4d9890e7
9 changed files with 592 additions and 224 deletions

131
dist/lodash.compat.js vendored
View File

@@ -1056,7 +1056,8 @@
function baseBind(data) {
var func = data[0],
thisArg = data[3],
partialArgs = data[4];
partialArgs = data[4],
partialHolders = data[6];
function bound() {
// `Function#bind` spec
@@ -1065,8 +1066,7 @@
// avoid `arguments` object deoptimizations by using `slice` instead
// of `Array.prototype.slice.call` and not assigning `arguments` to a
// variable as a ternary expression
var args = slice(partialArgs);
push.apply(args, arguments);
var args = composeArgs(partialArgs, partialHolders, arguments);
}
// mimic the constructor's `return` behavior
// http://es5.github.io/#x13.2.2
@@ -1271,7 +1271,9 @@
arity = data[2],
thisArg = data[3],
partialArgs = data[4],
partialRightArgs = data[5];
partialRightArgs = data[5],
partialHolders = data[6],
partialRightHolders = data[7];
var isBind = bitmask & BIND_FLAG,
isBindKey = bitmask & BIND_KEY_FLAG,
@@ -1282,23 +1284,22 @@
function bound() {
var thisBinding = isBind ? thisArg : this;
if (partialArgs) {
var args = slice(partialArgs);
push.apply(args, arguments);
var args = composeArgs(partialArgs, partialHolders, arguments);
}
if (partialRightArgs || isCurry) {
args || (args = slice(arguments));
if (partialRightArgs) {
push.apply(args, partialRightArgs);
}
if (partialRightArgs) {
args = composeArgsRight(partialRightArgs, partialRightHolders, args || arguments);
}
if (isCurry) {
var argsLength = arguments.length;
if (isCurry && argsLength < arity) {
if (argsLength < arity) {
args || (args = slice(arguments));
bitmask |= PARTIAL_FLAG;
bitmask &= ~PARTIAL_RIGHT_FLAG
if (!isCurryBound) {
bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG);
}
var newArity = nativeMax(0, arity - argsLength);
return baseCreateWrapper([func, bitmask, newArity, thisArg, args]);
return baseCreateWrapper([func, bitmask, newArity, thisArg, args, null, []]);
}
}
args || (args = arguments);
@@ -1374,7 +1375,7 @@
}
/**
* The base implementation of `_.forEachEach` without support for callback
* The base implementation of `_.forEachRight` without support for callback
* shorthands or `thisArg` binding.
*
* @private
@@ -1783,6 +1784,68 @@
return result;
}
/**
* Creates an array that is the composition of partially applied arguments,
* placeholders, and provided arguments into a single array of arguments.
*
* @private
* @param {Array} partialArg An array of arguments to prepend to those provided.
* @param {Array} partialHolders An array of `partialArgs` placeholder indexes.
* @param {Array|Object} args The provided arguments.
* @returns {Array} Returns a new array of composed arguments.
*/
function composeArgs(partialArgs, partialHolders, args) {
var index = -1,
length = partialHolders.length,
leftIndex = -1,
leftLength = partialArgs.length,
argsLength = nativeMax(args.length - length, 0),
result = Array(argsLength + leftLength);
while (++leftIndex < leftLength) {
result[leftIndex] = partialArgs[leftIndex];
}
while (++index < length) {
result[partialHolders[index]] = args[index];
}
while (length < argsLength) {
result[leftIndex++] = args[length++];
}
return result;
}
/**
* This function is like `composeArgs` except that the arguments composition
* is tailored for `_.partialRight`.
*
* @private
* @param {Array} partialRightArg An array of arguments to append to those provided.
* @param {Array} partialHolders An array of `partialRightArgs` placeholder indexes.
* @param {Array|Object} args The provided arguments.
* @returns {Array} Returns a new array of composed arguments.
*/
function composeArgsRight(partialRightArgs, partialRightHolders, args) {
var index = -1,
length = partialRightHolders.length,
argsIndex = -1,
argsLength = nativeMax(args.length - length, 0),
rightIndex = -1,
rightLength = partialRightArgs.length,
result = Array(argsLength + rightLength);
while (++argsIndex < argsLength) {
result[argsIndex] = args[argsIndex];
}
var pad = argsIndex;
while (++rightIndex < rightLength) {
result[pad + rightIndex] = partialRightArgs[rightIndex];
}
while (++index < length) {
result[pad + partialHolders[index]] = args[argsIndex++];
}
return result;
}
/**
* Creates a function that aggregates a collection, creating an object or
* array composed from the results of running each element of the collection
@@ -1855,9 +1918,11 @@
* provided to the new function.
* @param {Array} [partialRightArgs] An array of arguments to append to those
* provided to the new function.
* @param {Array} [partialHolders] An array of `partialArgs` placeholder indexes.
* @param {Array} [partialRightArgs] An array of `partialRightArgs` placeholder indexes.
* @returns {Function} Returns the new function.
*/
function createWrapper(func, bitmask, arity, thisArg, partialArgs, partialRightArgs) {
function createWrapper(func, bitmask, arity, thisArg, partialArgs, partialRightArgs, partialHolders, partialRightHolders) {
var isBind = bitmask & BIND_FLAG,
isBindKey = bitmask & BIND_KEY_FLAG,
isPartial = bitmask & PARTIAL_FLAG,
@@ -1925,8 +1990,14 @@
} else if (arity < 0) {
arity = 0;
}
if (isPartial) {
partialHolders = getHolders(partialArgs);
}
if (isPartialRight) {
partialRightHolders = getHolders(partialRightArgs);
}
// fast path for `_.bind`
data = [func, bitmask, arity, thisArg, partialArgs, partialRightArgs];
data = [func, bitmask, arity, thisArg, partialArgs, partialRightArgs, partialHolders, partialRightHolders];
return (bitmask == BIND_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG))
? baseBind(data)
: baseCreateWrapper(data);
@@ -1960,6 +2031,26 @@
);
}
/**
* Finds the indexes of all placeholder elements in a given array.
*
* @private
* @param {Array} array The array to inspect.
* @returns {Array} Returns a new array of placeholder indexes.
*/
function getHolders(array) {
var index = -1,
length = array.length,
result = [];
while (++index < length) {
if (array[index] === lodash) {
result.push(index);
}
}
return result;
}
/**
* Gets the appropriate "indexOf" function. If the `_.indexOf` method is
* customized this method returns the custom method, otherwise it returns
@@ -4873,7 +4964,7 @@
}
var delayed = function() {
var remaining = wait - (now() - stamp);
if (remaining <= 0) {
if (remaining <= 0 || remaining > wait) {
if (maxTimeoutId) {
clearTimeout(maxTimeoutId);
}
@@ -4918,7 +5009,7 @@
lastCalled = stamp;
}
var remaining = maxWait - (stamp - lastCalled),
isCalled = remaining <= 0;
isCalled = remaining <= 0 || remaining > maxWait;
if (isCalled) {
if (maxTimeoutId) {
@@ -5117,8 +5208,8 @@
}
/**
* This method is like `_.partial` except that `partial` arguments are
* appended to those provided to the new function.
* This method is like `_.partial` except that partially applied arguments
* are appended to those provided to the new function.
*
* Note: This method does not set the `length` property of partially applied
* functions.

View File

@@ -4,61 +4,62 @@
* Build: `lodash -o ./dist/lodash.compat.js`
*/
;(function(){function n(n,t){if(n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return 0}function t(n,t,r){r=(r||0)-1;for(var e=n?n.length:0;++r<e;)if(n[r]===t)return r;return-1}function r(n,t){return n.has(t)?0:-1}function e(n){return n.charCodeAt(0)}function u(n,t){for(var r=-1,e=n.length;++r<e&&0<=t.indexOf(n.charAt(r)););return r}function o(n,t){for(var r=n.length;r--&&0<=t.indexOf(n.charAt(r)););return r}function a(t,r){return n(t.f,r.f)||t.g-r.g}function i(t,r){for(var e=t.f,u=r.f,o=-1,a=e.length;++o<a;){var i=n(e[o],u[o]);
if(i)return i}return t.g-r.g}function l(n){return st[n]}function f(n){return"\\"+vt[n]}function c(){return H.pop()||[]}function p(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function s(n){n.length=0,H.length<A&&H.push(n)}function g(n){n.f=n.h=null,J.length<A&&J.push(n)}function h(n,t){return(n=null==n?"":n+"")?null==t?n.slice(m(n),d(n)+1):(t+="",n.slice(u(n,t),o(n,t)+1)):n}function v(n,t){return(n=null==n?"":n+"")?null==t?n.slice(m(n)):(t+="",n.slice(u(n,t))):n}function y(n,t){return(n=null==n?"":n+"")?null==t?n.slice(0,d(n)+1):(t+="",n.slice(0,o(n,t)+1)):n
}function m(n){for(var t=-1,r=n.length;++t<r;){var e=n.charCodeAt(t);if((160<e||9>e||13<e)&&32!=e&&160!=e&&5760!=e&&6158!=e&&(8192>e||8202<e&&8232!=e&&8233!=e&&8239!=e&&8287!=e&&12288!=e&&65279!=e))break}return t}function d(n){for(var t=n.length;t--;){var r=n.charCodeAt(t);if((160<r||9>r||13<r)&&32!=r&&160!=r&&5760!=r&&6158!=r&&(8192>r||8202<r&&8232!=r&&8233!=r&&8239!=r&&8287!=r&&12288!=r&&65279!=r))break}return t}function b(n){return gt[n]}function _(n){function u(n){return n&&typeof n=="object"&&!be(n)&&Br.call(n,"__wrapped__")?n:new o(n)
}function o(n,t){this.__chain__=!!t,this.__wrapped__=n}function m(n){function t(){if(u){var n=qt(u);Dr.apply(n,arguments)}if(this instanceof t){var o=A(r.prototype),n=r.apply(o,n||arguments);return ar(n)?n:o}return r.apply(e,n||arguments)}var r=n[0],e=n[3],u=n[4];return pe(t,n),t}function d(n,t,r,e,u){if(r){var o=r(n);if(typeof o!="undefined")return o}if(!ar(n))return n;var a=Rr.call(n);if(!ft[a]||!fe.nodeClass&&p(n))return n;var i=ie[a];switch(a){case tt:case rt:return new i(+n);case ot:case lt:return new i(n);
case it:return o=i(n.source,z.exec(n)),o.lastIndex=n.lastIndex,o}if(a=be(n),t){var l=!e;e||(e=c()),u||(u=c());for(var f=e.length;f--;)if(e[f]==n)return u[f];o=a?i(n.length):{}}else o=a?qt(n):tr({},n);return a&&(Br.call(n,"index")&&(o.index=n.index),Br.call(n,"input")&&(o.input=n.input)),t?(e.push(n),u.push(o),(a?ht:dt)(n,function(n,a){o[a]=d(n,t,r,e,u)}),l&&(s(e),s(u)),o):o}function A(n){return ar(n)?Gr(n):{}}function H(n,t,r){if(typeof n!="function")return pr;if(typeof t=="undefined"||!("prototype"in n))return n;
var e=n[N];if(typeof e=="undefined"&&(fe.funcNames&&(e=!n.name),e=e||!fe.funcDecomp,!e)){var u=$r.call(n);fe.funcNames||(e=!K.test(u)),e||(e=V.test(u),pe(n,e))}if(false===e||true!==e&&e[1]&j)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)}}return Zt(n,t)}function st(n){function t(){var n=l?o:this;if(a){var g=qt(a);Dr.apply(g,arguments)
}if(i||c){g||(g=qt(arguments)),i&&Dr.apply(g,i);var h=arguments.length;if(c&&h<u)return e|=O,e&=~E,p||(e&=~(j|x)),n=Zr(0,u-h),st([r,e,n,o,g])}return g||(g=arguments),f&&(r=n[s]),this instanceof t?(n=A(r.prototype),g=r.apply(n,g),ar(g)?g:n):r.apply(n,g)}var r=n[0],e=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=e&j,f=e&x,c=e&C,p=e&k,s=r;return pe(t,n),t}function gt(n,e){var u=-1,o=St(),a=n?n.length:0,i=[];for(ce&&e&&o===t&&e.length>=S&&(o=r,e=ce(e));++u<a;){var l=n[u];0>o(e,l)&&i.push(l)}return i}function ht(n,t){var r=-1,e=n,u=n?n.length:0;
if(typeof u=="number")for(fe.unindexedChars&&lr(e)&&(e=e.split(""));++r<u&&false!==t(e[r],r,n););else dt(n,t);return n}function vt(n,t){var r=n,e=n?n.length:0;if(typeof e=="number")for(fe.unindexedChars&&lr(r)&&(r=r.split(""));e--&&false!==t(r[e],e,n););else _t(n,t);return n}function mt(n,t,r,e){e=(e||0)-1;for(var u=n?n.length:0,o=[];++e<u;){var a=n[e];if(a&&typeof a=="object"&&typeof a.length=="number"&&(be(a)||Nt(a))){t||(a=mt(a,t,r));var i=-1,l=a.length,f=o.length;for(o.length+=l;++i<l;)o[f++]=a[i]}else r||o.push(a)
}return o}function dt(n,t){for(var r=-1,e=we(n),u=e.length;++r<u;){var o=e[r];if(false===t(n[o],o,n))break}return n}function _t(n,t){for(var r=we(n),e=r.length;e--;){var u=r[e];if(false===t(n[u],u,n))break}return n}function wt(n,t,r,e,u,o){if(r){var a=r(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;var i=typeof n,l=typeof t;if(n===n&&(!n||"function"!=i&&"object"!=i)&&(!t||"function"!=l&&"object"!=l))return false;if(null==n||null==t)return n===t;if(l=Rr.call(n),i=Rr.call(t),l==Z&&(l=at),i==Z&&(i=at),l!=i)return false;
switch(l){case tt:case rt:return+n==+t;case ot:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case it:case lt:return n==Cr(t)}if(i=l==nt,!i){var f=Br.call(n,"__wrapped__"),g=Br.call(t,"__wrapped__");if(f||g)return wt(f?n.__wrapped__:n,g?t.__wrapped__:t,r,e,u,o);if(l!=at||!fe.nodeClass&&(p(n)||p(t)))return false;if(l=!fe.argsObject&&Nt(n)?jr:n.constructor,f=!fe.argsObject&&Nt(t)?jr:t.constructor,l!=f&&!(Br.call(n,"constructor")&&Br.call(t,"constructor")||or(l)&&l instanceof l&&or(f)&&f instanceof f)&&"constructor"in n&&"constructor"in t)return false
}for(l=!u,u||(u=c()),o||(o=c()),f=u.length;f--;)if(u[f]==n)return o[f]==t;var h=0,a=true;if(u.push(n),o.push(t),i){if(f=n.length,h=t.length,(a=h==f)||e)for(;h--;)if(i=f,g=t[h],e)for(;i--&&!(a=wt(n[i],g,r,e,u,o)););else if(!(a=wt(n[h],g,r,e,u,o)))break}else se(t,function(t,i,l){return Br.call(l,i)?(h++,a=Br.call(n,i)&&wt(n[i],t,r,e,u,o)):void 0}),a&&!e&&se(n,function(n,t,r){return Br.call(r,t)?a=-1<--h:void 0});return u.pop(),o.pop(),l&&(s(u),s(o)),a}function jt(n,t,r,e,u){(be(t)?ht:dt)(t,function(t,o){var a,i,l=t,f=n[o];
if(t&&((i=be(t))||_e(t))){for(l=e.length;l--;)if(a=e[l]==t){f=u[l];break}if(!a){var c;r&&(l=r(f,t),c=typeof l!="undefined")&&(f=l),c||(f=i?be(f)?f:[]:_e(f)?f:{}),e.push(t),u.push(f),c||jt(f,t,r,e,u)}}else r&&(l=r(f,t),typeof l=="undefined"&&(l=t)),typeof l!="undefined"&&(f=l);n[o]=f})}function xt(n,t){return n+Fr(ee()*(t-n+1))}function Ct(n,e,u){var o=-1,a=St(),i=n?n.length:0,l=ce&&!e&&a===t&&i>=S,f=[];if(l)var p=ce(),a=r;else p=u?c():f;for(;++o<i;){var g=n[o],h=u?u(g,o,n):g;(e?!o||p[p.length-1]!==h:0>a(p,h))&&((u||l)&&p.push(h),f.push(g))
}return!l&&u&&s(p),f}function kt(n,t){return function(r,e,o){var a=t?[[],[]]:{};if(e=u.createCallback(e,o,3),be(r)){o=-1;for(var i=r.length;++o<i;){var l=r[o];n(a,l,e(l,o,r),r)}}else ht(r,function(t,r,u){n(a,t,e(t,r,u),u)});return a}}function Ot(n,t,r,e,u,o){var a=t&j,i=t&x,l=t&O,f=t&E;if(!i&&!or(n))throw new kr;l&&!u.length&&(t&=~O,l=u=false),f&&!o.length&&(t&=~E,f=o=false);var c=!i&&n[N];return c&&true!==c?(c=qt(c),c[4]&&(c[4]=qt(c[4])),c[5]&&(c[5]=qt(c[5])),typeof r=="number"&&(c[2]=r),n=c[1]&j,a&&!n&&(c[3]=e),!a&&n&&(t|=k),l&&(c[4]?Dr.apply(c[4],u):c[4]=u),f&&(c[5]?Ur.apply(c[5],o):c[5]=o),c[1]|=t,Ot.apply(null,c)):(null==r?r=i?0:n.length:0>r&&(r=0),c=[n,t,r,e,u,o],t==j||t==(j|O)?m(c):st(c))
}function Et(n){n.d=Y;var t=br,r="return function("+n.a+"){",e="var r="+n.b+";if(!j(p)){return r}";fe.nonEnumArgs&&(e+="var m=p.length;if(m&&i(p)){l=-1;while(++l<m){l+='';"+n.c+";}return r}"),fe.enumPrototypes&&(e+="var t=typeof p=='function';"),fe.enumErrorProps&&(e+="var s=p===f||p instanceof Error;");var u=[];if(fe.enumPrototypes&&u.push("!(t&&l=='prototype')"),fe.enumErrorProps&&u.push("!(s&&(l=='message'||l=='name'))"),e+="for(var l in p){",n.e&&u.push("g.call(p,l)"),u.length&&(e+="if("+u.join("&&")+"){"),e+=n.c+";",u.length&&(e+="}"),e+="}",fe.nonEnumShadows){for(e+="if(p!==q){var d=p.constructor,k=p===(d&&d.prototype),b=p===v?u:p===f?e:w.call(p),n=o[b];",u=0;7>u;u++)e+="l='"+n.d[u]+"';if((!(k&&n[l])&&g.call(p,l))",n.e||(e+="||(!n[l]&&p[l]!==q[l])"),e+="){"+n.c+"}";
e+="}"}return t("e,f,g,i,j,q,o,u,v,w",r+(e+"return r;")+"}")(et,Er,Br,Nt,ar,Sr,le,lt,Ar,Rr)}function St(){var n=(n=u.indexOf)===Tt?t:n;return n}function At(n){return typeof n=="function"&&Tr.test($r.call(n))}function It(n){var t,r;return!n||Rr.call(n)!=at||!Br.call(n,"constructor")&&(t=n.constructor,or(t)&&!(t instanceof t))||!fe.argsClass&&Nt(n)||!fe.nodeClass&&p(n)?false:fe.ownLast?(se(n,function(n,t,e){return r=Br.call(e,t),false}),false!==r):(se(n,function(n,t){r=t}),typeof r=="undefined"||Br.call(n,r))
}function Nt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Rr.call(n)==Z||false}function Rt(n,t,r){var e=0,o=n?n.length:0;if(typeof t!="number"&&null!=t){var a=-1;for(t=u.createCallback(t,r,3);++a<o&&t(n[a],a,n);)e++}else if(e=t,null==e||r)return n?n[0]:w;return qt(n,0,0<e?e:0)}function Tt(n,r,e){var u=n?n.length:0;if(typeof e=="number")e=0>e?Zr(0,u+e):e||0;else if(e)return e=Ft(n,r),u&&n[e]===r?e:-1;return t(n,r,e)}function Pt(n,t,r){if(typeof t!="number"&&null!=t){var e=0,o=-1,a=n?n.length:0;
for(t=u.createCallback(t,r,3);++o<a&&t(n[o],o,n);)e++}else e=null==t||r?1:0<t?t:0;return qt(n,e)}function qt(n,t,r){var e=-1,u=n?n.length:0;for(typeof t=="undefined"?t=0:0>t?t=Zr(u+t,0):t>u&&(t=u),typeof r=="undefined"?r=u:0>r?r=Zr(u+r,0):r>u&&(r=u),u=r-t||0,r=yr(u);++e<u;)r[e]=n[t+e];return r}function Ft(n,t,r,e){var o=0,a=n?n.length:o;for(r=r?u.createCallback(r,e,1):pr,t=r(t);o<a;)e=o+a>>>1,r(n[e])<t?o=e+1:a=e;return o}function $t(n,t,r,e){var o=typeof t;return"boolean"!=o&&null!=t&&(e=r,r=t,t=false,"number"!=o&&"string"!=o||!e||e[r]!==n||(r=null)),null!=r&&(r=u.createCallback(r,e,3)),Ct(n,t,r)
}function Lt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,r=n?Gt(de(n,"length")):0,e=yr(0>r?0:r);++t<r;)e[t]=de(n,t);return e}function Bt(n,t){var r=-1,e=n?n.length:0,u={};for(t||!e||be(n[0])||(t=[]);++r<e;){var o=n[r];t?u[o]=t[r]:o&&(u[o[0]]=o[1])}return u}function Dt(){return this.__wrapped__}function Wt(n,t,r){var e=n?n.length:0;if(r=typeof r=="number"?r:0,typeof e=="number"){if(r>=e)return false;if(typeof n=="string"||!be(n)&&lr(n))return Xr?Xr.call(n,t,r):-1<n.indexOf(t,r);var u=St();
return r=(0>r?Zr(0,e+r):r)||0,-1<u(n,t,r)}var o=-1,a=false;return ht(n,function(n){return++o<r?void 0:!(a=n===t)}),a}function zt(n,t,r){var e=true;if(t=u.createCallback(t,r,3),be(n)){r=-1;for(var o=n.length;++r<o;)if(!t(n[r],r,n))return false}else ht(n,function(n,r,u){return e=!!t(n,r,u)});return e}function Kt(n,t,r){var e=[];if(t=u.createCallback(t,r,3),be(n)){r=-1;for(var o=n.length;++r<o;){var a=n[r];t(a,r,n)&&e.push(a)}}else ht(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function Mt(n,t,r){if(t=u.createCallback(t,r,3),!be(n)){var e;
return ht(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}r=-1;for(var o=n.length;++r<o;){var a=n[r];if(t(a,r,n))return a}}function Ut(n,t,r){if(t&&typeof r=="undefined"&&be(n)){r=-1;for(var e=n.length;++r<e&&false!==t(n[r],r,n););}else ht(n,H(t,r,3));return n}function Vt(n,t,r){if(t&&typeof r=="undefined"&&be(n))for(r=n.length;r--&&false!==t(n[r],r,n););else vt(n,H(t,r,3));return n}function Xt(n,t,r){var e=-1,o=n?n.length:0,a=yr(typeof o=="number"?o:0);if(t=u.createCallback(t,r,3),be(n))for(;++e<o;)a[e]=t(n[e],e,n);
else ht(n,function(n,r,u){a[++e]=t(n,r,u)});return a}function Gt(n,t,r){var o=-1/0,a=o,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&be(n))for(r=-1,i=n.length;++r<i;){var l=n[r];l>a&&(a=l)}else t=null==t&&lr(n)?e:u.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r>o&&(o=r,a=n)});return a}function Ht(n,t,r,e){var o=3>arguments.length;if(t=u.createCallback(t,e,4),be(n)){var a=-1,i=n.length;for(o&&i&&(r=n[++a]);++a<i;)r=t(r,n[a],a,n)}else ht(n,function(n,e,u){r=o?(o=false,n):t(r,n,e,u)
});return r}function Jt(n,t,r,e){var o=3>arguments.length;return t=u.createCallback(t,e,4),vt(n,function(n,e,u){r=o?(o=false,n):t(r,n,e,u)}),r}function Qt(n){var t=-1,r=n?n.length:0,e=yr(typeof r=="number"?r:0);return ht(n,function(n){var r=xt(0,++t);e[t]=e[r],e[r]=n}),e}function Yt(n,t,r){var e;if(t=u.createCallback(t,r,3),be(n)){r=-1;for(var o=n.length;++r<o;)if(t(n[r],r,n))return true}else ht(n,function(n,r,u){return!(e=t(n,r,u))});return!!e}function Zt(n,t){if(3>arguments.length)return Ot(n,j,null,t);
if(n)var r=n[N]?n[N][2]:n.length,e=qt(arguments,2),r=r-e.length;return Ot(n,j|O,r,t,e)}function nr(n,t,r){var e,u,o,a,i,l,f,c=0,p=false,s=true;if(!or(n))throw new kr;if(t=Zr(0,t)||0,true===r)var g=true,s=false;else ar(r)&&(g=r.leading,p="maxWait"in r&&(Zr(t,r.maxWait)||0),s="trailing"in r?r.trailing:s);var h=function(){var r=t-(ke()-a);0<r?l=Kr(h,r):(u&&qr(u),r=f,u=l=f=w,r&&(c=ke(),o=n.apply(i,e),l||u||(e=i=null)))},v=function(){l&&qr(l),u=l=f=w,(s||p!==t)&&(c=ke(),o=n.apply(i,e),l||u||(e=i=null))};return function(){if(e=arguments,a=ke(),i=this,f=s&&(l||!g),false===p)var r=g&&!l;
else{u||g||(c=a);var y=p-(a-c),m=0>=y;m?(u&&(u=qr(u)),c=a,o=n.apply(i,e)):u||(u=Kr(v,y))}return m&&l?l=qr(l):l||t===p||(l=Kr(h,t)),r&&(m=true,o=n.apply(i,e)),!m||l||u||(e=i=null),o}}function tr(n,t,r){var e=arguments,u=0,o=e.length,a=typeof r;if("number"!=a&&"string"!=a||!e[3]||e[3][r]!==t||(o=2),3<o&&"function"==typeof e[o-2])var i=H(e[--o-1],e[o--],2);else 2<o&&"function"==typeof e[o-1]&&(i=e[--o]);for(;++u<o;)if(t=e[u],ar(t))for(var a=-1,l=we(t),f=l.length;++a<f;){var c=l[a];n[c]=i?i(n[c],t[c]):t[c]
}return n}function rr(n,t,r){var e=arguments,u=0,o=e.length,a=typeof r;for("number"!=a&&"string"!=a||!e[3]||e[3][r]!==t||(o=2);++u<o;)if(t=e[u],ar(t))for(var a=-1,i=we(t),l=i.length;++a<l;){var f=i[a];"undefined"==typeof n[f]&&(n[f]=t[f])}return n}function er(n){var t=[];return se(n,function(n,r){or(n)&&t.push(r)}),t.sort()}function ur(n){return n&&typeof n=="object"&&1===n.nodeType&&(fe.nodeClass?-1<Rr.call(n).indexOf("Element"):p(n))||false}function or(n){return typeof n=="function"}function ar(n){var t=typeof n;
return n&&("function"==t||"object"==t)||false}function ir(n){var t=typeof n;return"number"==t||n&&"object"==t&&Rr.call(n)==ot||false}function lr(n){return typeof n=="string"||n&&typeof n=="object"&&Rr.call(n)==lt||false}function fr(n){for(var t=-1,r=we(n),e=r.length,u=yr(e);++t<e;)u[t]=n[r[t]];return u}function cr(n,t,r){var e=typeof n;return"function"==e||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||H(n,t,r):"object"!=e?vr(n):sr(n)}function pr(n){return n}function sr(n){n||(n={});var t=we(n),r=t[0],e=n[r];
return 1!=t.length||e!==e||ar(e)?function(r){for(var e=t.length,u=false;e--&&(u=t[e],u=Br.call(r,u)&&wt(r[u],n[u],null,true)););return u}:function(n){return Br.call(n,r)?(n=n[r],e===n&&(0!==e||1/e==1/n)):false}}function gr(n,t,r){var e=true,o=t&&er(t);t&&(r||o.length)||(null==r&&(r=t),t=n,n=u,o=er(t)),false===r?e=false:ar(r)&&"chain"in r&&(e=r.chain),r=-1;for(var a=or(n),i=o?o.length:0;++r<i;){var l=o[r],f=n[l]=t[l];a&&(n.prototype[l]=function(t){return function(){var r=this.__chain__,u=this.__wrapped__,o=[u];if(Dr.apply(o,arguments),o=t.apply(n,o),e||r){if(u===o&&ar(o))return this;
o=new n(o),o.__chain__=r}return o}}(f))}}function hr(){}function vr(n){return function(t){return t[n]}}n=n?bt.defaults(yt.Object(),n,bt.pick(yt,Q)):yt;var yr=n.Array,mr=n.Boolean,dr=n.Date,br=n.Function,_r=n.Math,wr=n.Number,jr=n.Object,xr=n.RegExp,Cr=n.String,kr=n.TypeError,Or=yr.prototype,Er=n.Error.prototype,Sr=jr.prototype,Ar=Cr.prototype,Ir=(Ir=n.window)&&Ir.document,Nr=n._,Rr=Sr.toString,Tr=xr("^"+Cr(Rr).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Pr=_r.ceil,qr=n.clearTimeout,Fr=_r.floor,$r=br.prototype.toString,Lr=At(Lr=jr.getPrototypeOf)&&Lr,Br=Sr.hasOwnProperty,Dr=Or.push,Wr=Sr.propertyIsEnumerable,zr=At(zr=n.Set)&&zr,Kr=n.setTimeout,Mr=Or.splice,Ur=Or.unshift,Vr=function(){try{var n={},t=At(t=jr.defineProperty)&&t,r=t(n,n,n)&&t
}catch(e){}return r}(),Xr=At(Xr=Ar.contains)&&Xr,Gr=At(Gr=jr.create)&&Gr,Hr=At(Hr=yr.isArray)&&Hr,Jr=n.isFinite,Qr=n.isNaN,Yr=At(Yr=jr.keys)&&Yr,Zr=_r.max,ne=_r.min,te=At(te=dr.now)&&te,re=n.parseInt,ee=_r.random,ue=At(ue=Ar.trim)&&!ue.call(G)&&ue,oe=At(oe=Ar.trimLeft)&&!oe.call(G)&&oe,ae=At(ae=Ar.trimRight)&&!ae.call(G)&&ae,ie={};ie[nt]=yr,ie[tt]=mr,ie[rt]=dr,ie[ut]=br,ie[at]=jr,ie[ot]=wr,ie[it]=xr,ie[lt]=Cr;var le={};le[nt]=le[rt]=le[ot]={constructor:true,toLocaleString:true,toString:true,valueOf:true},le[tt]=le[lt]={constructor:true,toString:true,valueOf:true},le[et]=le[ut]=le[it]={constructor:true,toString:true},le[at]={constructor:true},function(){for(var n=Y.length;n--;){var t,r=Y[n];
for(t in le)Br.call(le,t)&&!Br.call(le[t],r)&&(le[t][r]=false)}}(),o.prototype=u.prototype;var fe=u.support={};!function(){var t=function(){this.x=1},r={0:1,length:1},e=[];t.prototype={valueOf:1,y:1};for(var u in new t)e.push(u);for(u in arguments);fe.argsClass=Rr.call(arguments)==Z,fe.argsObject=arguments.constructor==jr&&!(arguments instanceof yr),fe.enumErrorProps=Wr.call(Er,"message")||Wr.call(Er,"name"),fe.enumPrototypes=Wr.call(t,"prototype"),fe.funcDecomp=!At(n.WinRTError)&&V.test(_),fe.funcNames=typeof br.name=="string",fe.nonEnumArgs=0!=u,fe.nonEnumShadows=!/valueOf/.test(e),fe.ownLast="x"!=e[0],fe.spliceObjects=(Mr.call(r,0,1),!r[0]),fe.unindexedChars="xx"!="x"[0]+jr("x")[0];
try{fe.dom=11===Ir.createDocumentFragment().nodeType}catch(o){fe.dom=false}try{fe.nodeClass=!(Rr.call(undefined)==at&&!({toString:0}+""))}catch(a){fe.nodeClass=true}}(1),u.templateSettings={escape:L,evaluate:B,interpolate:D,variable:"",imports:{_:u}},Gr||(A=function(){function t(){}return function(r){if(ar(r)){t.prototype=r;var e=new t;t.prototype=null}return e||n.Object()}}());var ce=zr&&function(n){var t=new zr,r=n?n.length:0;for(t.push=t.add;r--;)t.push(n[r]);return t},pe=Vr?function(n,t){pt.value=t,Vr(n,N,pt)}:hr;fe.argsClass||(Nt=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Br.call(n,"callee")&&!Wr.call(n,"callee")||false
});var se=Et({a:"p,a",b:"p",c:"if(a(p[l],l,p)===false){return r}",e:false}),ge=Et({a:"p",b:"[]",c:"r.push(l)",e:true}),he=kt(function(n,t,r){Br.call(n,r)?n[r]++:n[r]=1}),ve=kt(function(n,t,r){Br.call(n,r)?n[r].push(t):n[r]=[t]}),ye=kt(function(n,t,r){n[r]=t}),me=kt(function(n,t,r){n[r?0:1].push(t)},true),de=Xt,be=Hr||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Rr.call(n)==nt||false};fe.dom||(ur=function(n){return n&&typeof n=="object"&&1===n.nodeType&&!_e(n)||false}),or(/x/)&&(or=function(n){return typeof n=="function"&&Rr.call(n)==ut
});var _e=Lr?function(n){if(!n||Rr.call(n)!=at||!fe.argsClass&&Nt(n))return false;var t=n.valueOf,r=At(t)&&(r=Lr(t))&&Lr(r);return r?n==r||Lr(n)==r:It(n)}:It,we=Yr?function(n){return ar(n)?fe.enumPrototypes&&typeof n=="function"||fe.nonEnumArgs&&n.length&&Nt(n)?ge(n):Yr(n):[]}:ge,je=ue?function(n,t){return null==n?"":null==t?ue.call(n):h(n,t)}:h,xe=oe?function(n,t){return null==n?"":null==t?oe.call(n):v(n,t)}:v,Ce=ae?function(n,t){return null==n?"":null==t?ae.call(n):y(n,t)}:y,ke=te||function(){return(new dr).getTime()
},Oe=8==re(G+"08")?re:function(n,t){return n=je(n),re(n,+t||(M.test(n)?16:10))};return u.after=function(n,t){if(!or(t))throw new kr;return function(){return 1>--n?t.apply(this,arguments):void 0}},u.assign=tr,u.at=function(n,t){var r=arguments,e=-1,u=mt(r,true,false,1),o=u.length,a=typeof t;for("number"!=a&&"string"!=a||!r[2]||r[2][t]!==n||(o=1),fe.unindexedChars&&lr(n)&&(n=n.split("")),r=yr(o);++e<o;)r[e]=n[u[e]];return r},u.bind=Zt,u.bindAll=function(n){for(var t=1<arguments.length?mt(arguments,true,false,1):er(n),r=-1,e=t.length;++r<e;){var u=t[r];
n[u]=Ot(n[u],j,null,n)}return n},u.bindKey=function(n,t){return 3>arguments.length?Ot(t,j|x,null,n):Ot(t,j|x|O,null,n,qt(arguments,2))},u.chain=function(n){return n=new o(n),n.__chain__=true,n},u.compact=function(n){for(var t=-1,r=n?n.length:0,e=0,u=[];++t<r;){var o=n[t];o&&(u[e++]=o)}return u},u.compose=function(){for(var n=arguments,t=n.length,r=t;r--;)if(!or(n[r]))throw new kr;return function(){for(var r=t-1,e=n[r].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},u.constant=function(n){return function(){return n
}},u.countBy=he,u.create=function(n,t){var r=A(n);return t?tr(r,t):r},u.createCallback=cr,u.curry=function(n,t){return typeof t!="number"&&(t=+t||(n?n.length:0)),Ot(n,C,t)},u.debounce=nr,u.defaults=rr,u.defer=function(n){if(!or(n))throw new kr;var t=qt(arguments,1);return Kr(function(){n.apply(w,t)},1)},u.delay=function(n,t){if(!or(n))throw new kr;var r=qt(arguments,2);return Kr(function(){n.apply(w,r)},t)},u.difference=function(n){return gt(n,mt(arguments,true,true,1))},u.filter=Kt,u.flatten=function(n,t,r,e){var u=typeof t;
return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),null!=r&&(n=Xt(n,r,e)),mt(n,t)},u.forEach=Ut,u.forEachRight=Vt,u.forIn=function(n,t,r){return t=t&&typeof r=="undefined"?t:H(t,r,3),se(n,t)},u.forInRight=function(n,t,r){var e=[];se(n,function(n,t){e.push(t,n)});var u=e.length;for(t=H(t,r,3);u--&&false!==t(e[u--],e[u],n););return n},u.forOwn=function(n,t,r){return t=t&&typeof r=="undefined"?t:H(t,r,3),dt(n,t)},u.forOwnRight=function(n,t,r){var e=we(n),u=e.length;
for(t=H(t,r,3);u--&&(r=e[u],false!==t(n[r],r,n)););return n},u.functions=er,u.groupBy=ve,u.indexBy=ye,u.initial=function(n,t,r){var e=0,o=n?n.length:0;if(typeof t!="number"&&null!=t){var a=o;for(t=u.createCallback(t,r,3);a--&&t(n[a],a,n);)e++}else e=null==t||r?1:t||e;return e=o-e,qt(n,0,0<e?e:0)},u.intersection=function(){for(var n=[],e=-1,u=arguments.length,o=c(),a=St(),i=ce&&a===t,l=c();++e<u;){var f=arguments[e];(be(f)||Nt(f))&&(n.push(f),o.push(i&&f.length>=S&&ce(e?n[e]:l)))}var i=n[0],p=-1,g=i?i.length:0,h=[];
n:for(;++p<g;){var v=o[0],f=i[p];if(0>(v?r(v,f):a(l,f))){for(e=u,(v||l).push(f);--e;)if(v=o[e],0>(v?r(v,f):a(n[e],f)))continue n;h.push(f)}}return s(o),s(l),h},u.invert=function(n,t){for(var r=-1,e=we(n),u=e.length,o={};++r<u;){var a=e[r],i=n[a];t?Br.call(o,i)?o[i].push(a):o[i]=[a]:o[i]=a}return o},u.invoke=function(n,t){var r=-1,e=typeof t=="function",u=n?n.length:0,o=yr(typeof u=="number"?u:0);if(3>arguments.length&&be(n))for(;++r<u;){var a=n[r];o[r]=e?t.call(a):a[t]()}else{var i=qt(arguments,2);
ht(n,function(n){o[++r]=(e?t:n[t]).apply(n,i)})}return o},u.keys=we,u.map=Xt,u.mapValues=function(n,t,r){var e={};return t=u.createCallback(t,r,3),dt(n,function(n,r,u){e[r]=t(n,r,u)}),e},u.matches=sr,u.max=Gt,u.memoize=function(n,t){if(!or(n))throw new kr;var r=function(){var e=r.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return Br.call(e,u)?e[u]:e[u]=n.apply(this,arguments)};return r.cache={},r},u.merge=function(n,t,r){if(!ar(n))return n;var e=arguments,u=e.length,o=typeof r;if("number"!=o&&"string"!=o||!e[3]||e[3][r]!==t||(u=2),3<u&&"function"==typeof e[u-2])var a=H(e[--u-1],e[u--],2);
else 2<u&&"function"==typeof e[u-1]&&(a=e[--u]);for(var e=qt(arguments,1,u),o=-1,i=c(),l=c();++o<u;)jt(n,e[o],a,i,l);return s(i),s(l),n},u.min=function(n,t,r){var o=1/0,a=o,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&be(n))for(r=-1,i=n.length;++r<i;){var l=n[r];l<a&&(a=l)}else t=null==t&&lr(n)?e:u.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r<o&&(o=r,a=n)});return a},u.omit=function(n,t,r){var e={};if(typeof t!="function"){for(var o=mt(arguments,true,false,1),a=o.length;a--;)o[a]=Cr(o[a]);
var i=[];se(n,function(n,t){i.push(t)});for(var l=-1,i=gt(i,o),a=i.length;++l<a;)o=i[l],e[o]=n[o]}else t=u.createCallback(t,r,3),se(n,function(n,r,u){t(n,r,u)||(e[r]=n)});return e},u.once=function(n){var t,r;if(!or(n))throw new kr;return function(){return t?r:(t=true,r=n.apply(this,arguments),n=null,r)}},u.pairs=function(n){for(var t=-1,r=we(n),e=r.length,u=yr(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},u.partial=function(n){if(n)var t=n[N]?n[N][2]:n.length,r=qt(arguments,1),t=t-r.length;return Ot(n,O,t,null,r)
},u.partialRight=function(n){if(n)var t=n[N]?n[N][2]:n.length,r=qt(arguments,1),t=t-r.length;return Ot(n,E,t,null,null,r)},u.partition=me,u.pick=function(n,t,r){var e={};if(typeof t!="function")for(var o=-1,a=mt(arguments,true,false,1),i=ar(n)?a.length:0;++o<i;){var l=a[o];l in n&&(e[l]=n[l])}else t=u.createCallback(t,r,3),se(n,function(n,r,u){t(n,r,u)&&(e[r]=n)});return e},u.pluck=de,u.property=vr,u.pull=function(n){for(var t=arguments,r=0,e=t.length,u=n?n.length:0;++r<e;)for(var o=-1,a=t[r];++o<u;)n[o]===a&&(Mr.call(n,o--,1),u--);
return n},u.range=function(n,t,r){n=+n||0,r=typeof r=="number"?r:+r||1,null==t&&(t=n,n=0);var e=-1;t=Zr(0,Pr((t-n)/(r||1)));for(var u=yr(t);++e<t;)u[e]=n,n+=r;return u},u.reject=function(n,t,r){return t=u.createCallback(t,r,3),Kt(n,function(n,r,e){return!t(n,r,e)})},u.remove=function(n,t,r){var e=-1,o=n?n.length:0,a=[];for(t=u.createCallback(t,r,3);++e<o;)r=n[e],t(r,e,n)&&(a.push(r),Mr.call(n,e--,1),o--);return a},u.rest=Pt,u.shuffle=Qt,u.slice=qt,u.sortBy=function(n,t,r){var e=-1,o=t&&be(t),l=n?n.length:0,f=yr(typeof l=="number"?l:0);
for(o||(t=u.createCallback(t,r,3)),ht(n,function(n,r,u){if(o)for(u=t.length,r=yr(u);u--;)r[u]=n[t[u]];else r=t(n,r,u);u=f[++e]=J.pop()||{f:null,g:0,h:null},u.f=r,u.g=e,u.h=n}),l=f.length,f.sort(o?i:a);l--;)n=f[l],f[l]=n.h,g(n);return f},u.tap=function(n,t,r){return t.call(r,n),n},u.throttle=function(n,t,r){var e=true,u=true;if(!or(n))throw new kr;return false===r?e=false:ar(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),ct.leading=e,ct.maxWait=t,ct.trailing=u,nr(n,t,ct)},u.times=function(n,t,r){n=-1<(n=+n)?n:0;
var e=-1,u=yr(n);for(t=H(t,r,1);++e<n;)u[e]=t(e);return u},u.toArray=function(n){return n&&typeof n.length=="number"?fe.unindexedChars&&lr(n)?n.split(""):qt(n):fr(n)},u.transform=function(n,t,r,e){var o=be(n);if(null==r)if(o)r=[];else{var a=n&&n.constructor;r=A(a&&a.prototype)}return t&&(t=u.createCallback(t,e,4),(o?ht:dt)(n,function(n,e,u){return t(r,n,e,u)})),r},u.union=function(){return Ct(mt(arguments,true,true))},u.uniq=$t,u.values=fr,u.where=Kt,u.without=function(n){return gt(n,qt(arguments,1))
},u.wrap=function(n,t){return Ot(t,O,null,null,[n])},u.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var r=arguments[n];if(be(r)||Nt(r))var e=e?gt(e,r).concat(gt(r,e)):r}return e?Ct(e):[]},u.zip=Lt,u.zipObject=Bt,u.callback=cr,u.collect=Xt,u.drop=Pt,u.each=Ut,u.eachRight=Vt,u.extend=tr,u.methods=er,u.object=Bt,u.select=Kt,u.tail=Pt,u.unique=$t,u.unzip=Lt,gr(tr({},u)),u.capitalize=function(n){return null==n?"":(n=Cr(n),n.charAt(0).toUpperCase()+n.slice(1))},u.clone=function(n,t,r,e){var u=typeof t;
return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),d(n,t,typeof r=="function"&&H(r,e,1))},u.cloneDeep=function(n,t,r){return d(n,true,typeof t=="function"&&H(t,r,1))},u.contains=Wt,u.escape=function(n){return null==n?"":Cr(n).replace($,l)},u.every=zt,u.find=Mt,u.findIndex=function(n,t,r){var e=-1,o=n?n.length:0;for(t=u.createCallback(t,r,3);++e<o;)if(t(n[e],e,n))return e;return-1},u.findKey=function(n,t,r){var e;return t=u.createCallback(t,r,3),dt(n,function(n,r,u){return t(n,r,u)?(e=r,false):void 0
}),e},u.findLast=function(n,t,r){var e;return t=u.createCallback(t,r,3),vt(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e},u.findLastIndex=function(n,t,r){var e=n?n.length:0;for(t=u.createCallback(t,r,3);e--;)if(t(n[e],e,n))return e;return-1},u.findLastKey=function(n,t,r){var e;return t=u.createCallback(t,r,3),_t(n,function(n,r,u){return t(n,r,u)?(e=r,false):void 0}),e},u.has=function(n,t){return n?Br.call(n,t):false},u.identity=pr,u.indexOf=Tt,u.isArguments=Nt,u.isArray=be,u.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Rr.call(n)==tt||false
},u.isDate=function(n){return n&&typeof n=="object"&&Rr.call(n)==rt||false},u.isElement=ur,u.isEmpty=function(n){var t=true;if(!n)return t;var r=Rr.call(n),e=n.length;return r==nt||r==lt||(fe.argsClass?r==Z:Nt(n))||r==at&&typeof e=="number"&&or(n.splice)?!e:(dt(n,function(){return t=false}),t)},u.isEqual=function(n,t,r,e){return wt(n,t,typeof r=="function"&&H(r,e,2))},u.isFinite=function(n){return Jr(n)&&!Qr(parseFloat(n))},u.isFunction=or,u.isNaN=function(n){return ir(n)&&n!=+n},u.isNull=function(n){return null===n
},u.isNumber=ir,u.isObject=ar,u.isPlainObject=_e,u.isRegExp=function(n){var t=typeof n;return n&&("function"==t||"object"==t)&&Rr.call(n)==it||false},u.isString=lr,u.isUndefined=function(n){return typeof n=="undefined"},u.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?Zr(0,e+r):ne(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},u.mixin=gr,u.noConflict=function(){return n._=Nr,this},u.noop=hr,u.now=ke,u.parseInt=Oe,u.random=function(n,t,r){var e=null==n,u=null==t;return null==r&&(u&&typeof n=="boolean"?(r=n,n=1):typeof t=="boolean"&&(r=t,u=true)),e&&u&&(t=1,u=false),n=+n||0,u?(t=n,n=0):t=+t||0,r||n%1||t%1?(r=ee(),ne(n+r*(t-n+parseFloat("1e-"+((r+"").length-1))),t)):xt(n,t)
},u.reduce=Ht,u.reduceRight=Jt,u.result=function(n,t,r){var e=null==n?w:n[t];return typeof e=="undefined"?r:or(e)?n[t]():e},u.runInContext=_,u.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:we(n).length},u.some=Yt,u.sortedIndex=Ft,u.template=function(n,t,r){var e=u.templateSettings;n=Cr(n||""),r=rr({},r,e);var o,a=rr({},r.imports,e.imports),e=we(a),a=fr(a),i=0,l=r.interpolate||U,c="__p+='",l=xr((r.escape||U).source+"|"+l.source+"|"+(l===D?W:U).source+"|"+(r.evaluate||U).source+"|$","g");
n.replace(l,function(t,r,e,u,a,l){return e||(e=u),c+=n.slice(i,l).replace(X,f),r&&(c+="'+__e("+r+")+'"),a&&(o=true,c+="';"+a+";\n__p+='"),e&&(c+="'+((__t=("+e+"))==null?'':__t)+'"),i=l+t.length,t}),c+="';",l=r=r.variable,l||(r="obj",c="with("+r+"){"+c+"}"),c=(o?c.replace(T,""):c).replace(P,"$1").replace(q,"$1;"),c="function("+r+"){"+(l?"":r+"||("+r+"={});")+"var __t,__p='',__e=_.escape"+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var p=br(e,"return "+c).apply(w,a)
}catch(s){throw s.source=c,s}return t?p(t):(p.source=c,p)},u.trim=je,u.trimLeft=xe,u.trimRight=Ce,u.unescape=function(n){return null==n?"":(n=Cr(n),0>n.indexOf(";")?n:n.replace(F,b))},u.uniqueId=function(n){var t=++R;return Cr(null==n?"":n)+t},u.all=zt,u.any=Yt,u.detect=Mt,u.findWhere=Mt,u.foldl=Ht,u.foldr=Jt,u.include=Wt,u.inject=Ht,gr(function(){var n={};return dt(u,function(t,r){u.prototype[r]||(n[r]=t)}),n}(),false),u.first=Rt,u.last=function(n,t,r){var e=0,o=n?n.length:0;if(typeof t!="number"&&null!=t){var a=o;
for(t=u.createCallback(t,r,3);a--&&t(n[a],a,n);)e++}else if(e=t,null==e||r)return n?n[o-1]:w;return e=o-e,qt(n,0<e?e:0)},u.sample=function(n,t,r){return n&&typeof n.length!="number"?n=fr(n):fe.unindexedChars&&lr(n)&&(n=n.split("")),null==t||r?n?n[xt(0,n.length-1)]:w:(n=Qt(n),n.length=ne(Zr(0,t),n.length),n)},u.take=Rt,u.head=Rt,dt(u,function(n,t){var r="sample"!==t;u.prototype[t]||(u.prototype[t]=function(t,e){var u=this.__chain__,a=n(this.__wrapped__,t,e);return u||null!=t&&(!e||r&&typeof t=="function")?new o(a,u):a
})}),u.VERSION=I,u.prototype.chain=function(){return this.__chain__=true,this},u.prototype.toString=function(){return Cr(this.__wrapped__)},u.prototype.value=Dt,u.prototype.valueOf=Dt,ht(["join","pop","shift"],function(n){var t=Or[n];u.prototype[n]=function(){var n=this.__chain__,r=t.apply(this.__wrapped__,arguments);return n?new o(r,n):r}}),ht(["push","reverse","sort","unshift"],function(n){var t=Or[n];u.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),ht(["concat","splice"],function(n){var t=Or[n];
u.prototype[n]=function(){return new o(t.apply(this.__wrapped__,arguments),this.__chain__)}}),fe.spliceObjects||ht(["pop","shift","splice"],function(n){var t=Or[n],r="splice"==n;u.prototype[n]=function(){var n=this.__chain__,e=this.__wrapped__,u=t.apply(e,arguments);return 0===e.length&&delete e[0],n||r?new o(u,n):u}}),u}var w,j=1,x=2,C=4,k=8,O=16,E=32,S=40,A=40,I="2.4.1",N="__lodash@"+I+"__",R=0,T=/\b__p\+='';/g,P=/\b(__p\+=)''\+/g,q=/(__e\(.*?\)|\b__t\))\+'';/g,F=/&(?:amp|lt|gt|quot|#39);/g,$=/[&<>"']/g,L=/<%-([\s\S]+?)%>/g,B=/<%([\s\S]+?)%>/g,D=/<%=([\s\S]+?)%>/g,W=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,z=/\w*$/,K=/^\s*function[ \n\r\t]+\w/,M=/^0[xX]/,U=/($^)/,V=/\bthis\b/,X=/['\n\r\t\u2028\u2029\\]/g,G=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",H=[],J=[],Q="Array Boolean Date Error Function Math Number Object RegExp Set String _ clearTimeout document isFinite isNaN parseInt setTimeout TypeError window WinRTError".split(" "),Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Z="[object Arguments]",nt="[object Array]",tt="[object Boolean]",rt="[object Date]",et="[object Error]",ut="[object Function]",ot="[object Number]",at="[object Object]",it="[object RegExp]",lt="[object String]",ft={};
if(i)return i}return t.g-r.g}function l(n){return st[n]}function f(n){return"\\"+vt[n]}function c(){return G.pop()||[]}function p(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function s(n){n.length=0,G.length<A&&G.push(n)}function g(n){n.f=n.h=null,J.length<A&&J.push(n)}function h(n,t){return(n=null==n?"":n+"")?null==t?n.slice(m(n),d(n)+1):(t+="",n.slice(u(n,t),o(n,t)+1)):n}function v(n,t){return(n=null==n?"":n+"")?null==t?n.slice(m(n)):(t+="",n.slice(u(n,t))):n}function y(n,t){return(n=null==n?"":n+"")?null==t?n.slice(0,d(n)+1):(t+="",n.slice(0,o(n,t)+1)):n
}function m(n){for(var t=-1,r=n.length;++t<r;){var e=n.charCodeAt(t);if((160<e||9>e||13<e)&&32!=e&&160!=e&&5760!=e&&6158!=e&&(8192>e||8202<e&&8232!=e&&8233!=e&&8239!=e&&8287!=e&&12288!=e&&65279!=e))break}return t}function d(n){for(var t=n.length;t--;){var r=n.charCodeAt(t);if((160<r||9>r||13<r)&&32!=r&&160!=r&&5760!=r&&6158!=r&&(8192>r||8202<r&&8232!=r&&8233!=r&&8239!=r&&8287!=r&&12288!=r&&65279!=r))break}return t}function b(n){return gt[n]}function _(n){function u(n){return n&&typeof n=="object"&&!we(n)&&Wr.call(n,"__wrapped__")?n:new o(n)
}function o(n,t){this.__chain__=!!t,this.__wrapped__=n}function m(n){function t(){if(u)var n=kt(u,o,arguments);if(this instanceof t){var a=A(r.prototype),n=r.apply(a,n||arguments);return lr(n)?n:a}return r.apply(e,n||arguments)}var r=n[0],e=n[3],u=n[4],o=n[6];return ge(t,n),t}function d(n,t,r,e,u){if(r){var o=r(n);if(typeof o!="undefined")return o}if(!lr(n))return n;var a=Pr.call(n);if(!ft[a]||!pe.nodeClass&&p(n))return n;var i=fe[a];switch(a){case tt:case rt:return new i(+n);case ot:case lt:return new i(n);
case it:return o=i(n.source,z.exec(n)),o.lastIndex=n.lastIndex,o}if(a=we(n),t){var l=!e;e||(e=c()),u||(u=c());for(var f=e.length;f--;)if(e[f]==n)return u[f];o=a?i(n.length):{}}else o=a?$t(n):er({},n);return a&&(Wr.call(n,"index")&&(o.index=n.index),Wr.call(n,"input")&&(o.input=n.input)),t?(e.push(n),u.push(o),(a?ht:dt)(n,function(n,a){o[a]=d(n,t,r,e,u)}),l&&(s(e),s(u)),o):o}function A(n){return lr(n)?Jr(n):{}}function G(n,t,r){if(typeof n!="function")return gr;if(typeof t=="undefined"||!("prototype"in n))return n;
var e=n[N];if(typeof e=="undefined"&&(pe.funcNames&&(e=!n.name),e=e||!pe.funcDecomp,!e)){var u=Br.call(n);pe.funcNames||(e=!K.test(u)),e||(e=V.test(u),ge(n,e))}if(false===e||true!==e&&e[1]&j)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)}}return tr(n,t)}function st(n){function t(){var n=c?o:this;if(a)var v=kt(a,l,arguments);if(i){for(var y=i,v=v||arguments,m=-1,d=f.length,b=-1,_=te(v.length-d,0),w=-1,C=y.length,k=dr(_+C);++b<_;)k[b]=v[b];
for(_=b;++w<C;)k[_+w]=y[w];for(;++m<d;)k[_+partialHolders[m]]=v[b++];v=k}return s&&(y=arguments.length,y<u)?(v||(v=$t(arguments)),e|=O,e&=~E,g||(e&=~(j|x)),n=te(0,u-y),st([r,e,n,o,v,null,[]])):(v||(v=arguments),p&&(r=n[h]),this instanceof t?(n=A(r.prototype),y=r.apply(n,v),lr(y)?y:n):r.apply(n,v))}var r=n[0],e=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=n[6],f=n[7],c=e&j,p=e&x,s=e&C,g=e&k,h=r;return ge(t,n),t}function gt(n,e){var u=-1,o=It(),a=n?n.length:0,i=[];for(se&&e&&o===t&&e.length>=S&&(o=r,e=se(e));++u<a;){var l=n[u];
0>o(e,l)&&i.push(l)}return i}function ht(n,t){var r=-1,e=n,u=n?n.length:0;if(typeof u=="number")for(pe.unindexedChars&&cr(e)&&(e=e.split(""));++r<u&&false!==t(e[r],r,n););else dt(n,t);return n}function vt(n,t){var r=n,e=n?n.length:0;if(typeof e=="number")for(pe.unindexedChars&&cr(r)&&(r=r.split(""));e--&&false!==t(r[e],e,n););else _t(n,t);return n}function mt(n,t,r,e){e=(e||0)-1;for(var u=n?n.length:0,o=[];++e<u;){var a=n[e];if(a&&typeof a=="object"&&typeof a.length=="number"&&(we(a)||Tt(a))){t||(a=mt(a,t,r));
var i=-1,l=a.length,f=o.length;for(o.length+=l;++i<l;)o[f++]=a[i]}else r||o.push(a)}return o}function dt(n,t){for(var r=-1,e=xe(n),u=e.length;++r<u;){var o=e[r];if(false===t(n[o],o,n))break}return n}function _t(n,t){for(var r=xe(n),e=r.length;e--;){var u=r[e];if(false===t(n[u],u,n))break}return n}function wt(n,t,r,e,u,o){if(r){var a=r(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;var i=typeof n,l=typeof t;if(n===n&&(!n||"function"!=i&&"object"!=i)&&(!t||"function"!=l&&"object"!=l))return false;
if(null==n||null==t)return n===t;if(l=Pr.call(n),i=Pr.call(t),l==Z&&(l=at),i==Z&&(i=at),l!=i)return false;switch(l){case tt:case rt:return+n==+t;case ot:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case it:case lt:return n==Or(t)}if(i=l==nt,!i){var f=Wr.call(n,"__wrapped__"),g=Wr.call(t,"__wrapped__");if(f||g)return wt(f?n.__wrapped__:n,g?t.__wrapped__:t,r,e,u,o);if(l!=at||!pe.nodeClass&&(p(n)||p(t)))return false;if(l=!pe.argsObject&&Tt(n)?Cr:n.constructor,f=!pe.argsObject&&Tt(t)?Cr:t.constructor,l!=f&&!(Wr.call(n,"constructor")&&Wr.call(t,"constructor")||ir(l)&&l instanceof l&&ir(f)&&f instanceof f)&&"constructor"in n&&"constructor"in t)return false
}for(l=!u,u||(u=c()),o||(o=c()),f=u.length;f--;)if(u[f]==n)return o[f]==t;var h=0,a=true;if(u.push(n),o.push(t),i){if(f=n.length,h=t.length,(a=h==f)||e)for(;h--;)if(i=f,g=t[h],e)for(;i--&&!(a=wt(n[i],g,r,e,u,o)););else if(!(a=wt(n[h],g,r,e,u,o)))break}else he(t,function(t,i,l){return Wr.call(l,i)?(h++,a=Wr.call(n,i)&&wt(n[i],t,r,e,u,o)):void 0}),a&&!e&&he(n,function(n,t,r){return Wr.call(r,t)?a=-1<--h:void 0});return u.pop(),o.pop(),l&&(s(u),s(o)),a}function jt(n,t,r,e,u){(we(t)?ht:dt)(t,function(t,o){var a,i,l=t,f=n[o];
if(t&&((i=we(t))||je(t))){for(l=e.length;l--;)if(a=e[l]==t){f=u[l];break}if(!a){var c;r&&(l=r(f,t),c=typeof l!="undefined")&&(f=l),c||(f=i?we(f)?f:[]:je(f)?f:{}),e.push(t),u.push(f),c||jt(f,t,r,e,u)}}else r&&(l=r(f,t),typeof l=="undefined"&&(l=t)),typeof l!="undefined"&&(f=l);n[o]=f})}function xt(n,t){return n+Lr(oe()*(t-n+1))}function Ct(n,e,u){var o=-1,a=It(),i=n?n.length:0,l=se&&!e&&a===t&&i>=S,f=[];if(l)var p=se(),a=r;else p=u?c():f;for(;++o<i;){var g=n[o],h=u?u(g,o,n):g;(e?!o||p[p.length-1]!==h:0>a(p,h))&&((u||l)&&p.push(h),f.push(g))
}return!l&&u&&s(p),f}function kt(n,t,r){for(var e=-1,u=t.length,o=-1,a=n.length,i=te(r.length-u,0),l=dr(i+a);++o<a;)l[o]=n[o];for(;++e<u;)l[t[e]]=r[e];for(;u<i;)l[o++]=r[u++];return l}function Ot(n,t){return function(r,e,o){var a=t?[[],[]]:{};if(e=u.createCallback(e,o,3),we(r)){o=-1;for(var i=r.length;++o<i;){var l=r[o];n(a,l,e(l,o,r),r)}}else ht(r,function(t,r,u){n(a,t,e(t,r,u),u)});return a}}function Et(n,t,r,e,u,o,a,i){var l=t&j,f=t&x,c=t&O,p=t&E;if(!f&&!ir(n))throw new Er;c&&!u.length&&(t&=~O,c=u=false),p&&!o.length&&(t&=~E,p=o=false);
var s=!f&&n[N];return s&&true!==s?(s=$t(s),s[4]&&(s[4]=$t(s[4])),s[5]&&(s[5]=$t(s[5])),typeof r=="number"&&(s[2]=r),n=s[1]&j,l&&!n&&(s[3]=e),!l&&n&&(t|=k),c&&(s[4]?zr.apply(s[4],u):s[4]=u),p&&(s[5]?Hr.apply(s[5],o):s[5]=o),s[1]|=t,Et.apply(null,s)):(null==r?r=f?0:n.length:0>r&&(r=0),c&&(a=At(u)),p&&(i=At(o)),s=[n,t,r,e,u,o,a,i],t==j||t==(j|O)?m(s):st(s))}function St(n){n.d=Y;var t=wr,r="return function("+n.a+"){",e="var r="+n.b+";if(!j(p)){return r}";pe.nonEnumArgs&&(e+="var m=p.length;if(m&&i(p)){l=-1;while(++l<m){l+='';"+n.c+";}return r}"),pe.enumPrototypes&&(e+="var t=typeof p=='function';"),pe.enumErrorProps&&(e+="var s=p===f||p instanceof Error;");
var u=[];if(pe.enumPrototypes&&u.push("!(t&&l=='prototype')"),pe.enumErrorProps&&u.push("!(s&&(l=='message'||l=='name'))"),e+="for(var l in p){",n.e&&u.push("g.call(p,l)"),u.length&&(e+="if("+u.join("&&")+"){"),e+=n.c+";",u.length&&(e+="}"),e+="}",pe.nonEnumShadows){for(e+="if(p!==q){var d=p.constructor,k=p===(d&&d.prototype),b=p===v?u:p===f?e:w.call(p),n=o[b];",u=0;7>u;u++)e+="l='"+n.d[u]+"';if((!(k&&n[l])&&g.call(p,l))",n.e||(e+="||(!n[l]&&p[l]!==q[l])"),e+="){"+n.c+"}";e+="}"}return t("e,f,g,i,j,q,o,u,v,w",r+(e+"return r;")+"}")(et,Ar,Wr,Tt,lr,Ir,ce,lt,Nr,Pr)
}function At(n){for(var t=-1,r=n.length,e=[];++t<r;)n[t]===u&&e.push(t);return e}function It(){var n=(n=u.indexOf)===qt?t:n;return n}function Nt(n){return typeof n=="function"&&qr.test(Br.call(n))}function Rt(n){var t,r;return!n||Pr.call(n)!=at||!Wr.call(n,"constructor")&&(t=n.constructor,ir(t)&&!(t instanceof t))||!pe.argsClass&&Tt(n)||!pe.nodeClass&&p(n)?false:pe.ownLast?(he(n,function(n,t,e){return r=Wr.call(e,t),false}),false!==r):(he(n,function(n,t){r=t}),typeof r=="undefined"||Wr.call(n,r))}function Tt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Pr.call(n)==Z||false
}function Pt(n,t,r){var e=0,o=n?n.length:0;if(typeof t!="number"&&null!=t){var a=-1;for(t=u.createCallback(t,r,3);++a<o&&t(n[a],a,n);)e++}else if(e=t,null==e||r)return n?n[0]:w;return $t(n,0,0<e?e:0)}function qt(n,r,e){var u=n?n.length:0;if(typeof e=="number")e=0>e?te(0,u+e):e||0;else if(e)return e=Lt(n,r),u&&n[e]===r?e:-1;return t(n,r,e)}function Ft(n,t,r){if(typeof t!="number"&&null!=t){var e=0,o=-1,a=n?n.length:0;for(t=u.createCallback(t,r,3);++o<a&&t(n[o],o,n);)e++}else e=null==t||r?1:0<t?t:0;
return $t(n,e)}function $t(n,t,r){var e=-1,u=n?n.length:0;for(typeof t=="undefined"?t=0:0>t?t=te(u+t,0):t>u&&(t=u),typeof r=="undefined"?r=u:0>r?r=te(u+r,0):r>u&&(r=u),u=r-t||0,r=dr(u);++e<u;)r[e]=n[t+e];return r}function Lt(n,t,r,e){var o=0,a=n?n.length:o;for(r=r?u.createCallback(r,e,1):gr,t=r(t);o<a;)e=o+a>>>1,r(n[e])<t?o=e+1:a=e;return o}function Bt(n,t,r,e){var o=typeof t;return"boolean"!=o&&null!=t&&(e=r,r=t,t=false,"number"!=o&&"string"!=o||!e||e[r]!==n||(r=null)),null!=r&&(r=u.createCallback(r,e,3)),Ct(n,t,r)
}function Dt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,r=n?Jt(_e(n,"length")):0,e=dr(0>r?0:r);++t<r;)e[t]=_e(n,t);return e}function Wt(n,t){var r=-1,e=n?n.length:0,u={};for(t||!e||we(n[0])||(t=[]);++r<e;){var o=n[r];t?u[o]=t[r]:o&&(u[o[0]]=o[1])}return u}function zt(){return this.__wrapped__}function Kt(n,t,r){var e=n?n.length:0;if(r=typeof r=="number"?r:0,typeof e=="number"){if(r>=e)return false;if(typeof n=="string"||!we(n)&&cr(n))return Gr?Gr.call(n,t,r):-1<n.indexOf(t,r);var u=It();
return r=(0>r?te(0,e+r):r)||0,-1<u(n,t,r)}var o=-1,a=false;return ht(n,function(n){return++o<r?void 0:!(a=n===t)}),a}function Mt(n,t,r){var e=true;if(t=u.createCallback(t,r,3),we(n)){r=-1;for(var o=n.length;++r<o;)if(!t(n[r],r,n))return false}else ht(n,function(n,r,u){return e=!!t(n,r,u)});return e}function Ut(n,t,r){var e=[];if(t=u.createCallback(t,r,3),we(n)){r=-1;for(var o=n.length;++r<o;){var a=n[r];t(a,r,n)&&e.push(a)}}else ht(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function Vt(n,t,r){if(t=u.createCallback(t,r,3),!we(n)){var e;
return ht(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}r=-1;for(var o=n.length;++r<o;){var a=n[r];if(t(a,r,n))return a}}function Ht(n,t,r){if(t&&typeof r=="undefined"&&we(n)){r=-1;for(var e=n.length;++r<e&&false!==t(n[r],r,n););}else ht(n,G(t,r,3));return n}function Xt(n,t,r){if(t&&typeof r=="undefined"&&we(n))for(r=n.length;r--&&false!==t(n[r],r,n););else vt(n,G(t,r,3));return n}function Gt(n,t,r){var e=-1,o=n?n.length:0,a=dr(typeof o=="number"?o:0);if(t=u.createCallback(t,r,3),we(n))for(;++e<o;)a[e]=t(n[e],e,n);
else ht(n,function(n,r,u){a[++e]=t(n,r,u)});return a}function Jt(n,t,r){var o=-1/0,a=o,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&we(n))for(r=-1,i=n.length;++r<i;){var l=n[r];l>a&&(a=l)}else t=null==t&&cr(n)?e:u.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r>o&&(o=r,a=n)});return a}function Qt(n,t,r,e){var o=3>arguments.length;if(t=u.createCallback(t,e,4),we(n)){var a=-1,i=n.length;for(o&&i&&(r=n[++a]);++a<i;)r=t(r,n[a],a,n)}else ht(n,function(n,e,u){r=o?(o=false,n):t(r,n,e,u)
});return r}function Yt(n,t,r,e){var o=3>arguments.length;return t=u.createCallback(t,e,4),vt(n,function(n,e,u){r=o?(o=false,n):t(r,n,e,u)}),r}function Zt(n){var t=-1,r=n?n.length:0,e=dr(typeof r=="number"?r:0);return ht(n,function(n){var r=xt(0,++t);e[t]=e[r],e[r]=n}),e}function nr(n,t,r){var e;if(t=u.createCallback(t,r,3),we(n)){r=-1;for(var o=n.length;++r<o;)if(t(n[r],r,n))return true}else ht(n,function(n,r,u){return!(e=t(n,r,u))});return!!e}function tr(n,t){if(3>arguments.length)return Et(n,j,null,t);
if(n)var r=n[N]?n[N][2]:n.length,e=$t(arguments,2),r=r-e.length;return Et(n,j|O,r,t,e)}function rr(n,t,r){var e,u,o,a,i,l,f,c=0,p=false,s=true;if(!ir(n))throw new Er;if(t=te(0,t)||0,true===r)var g=true,s=false;else lr(r)&&(g=r.leading,p="maxWait"in r&&(te(t,r.maxWait)||0),s="trailing"in r?r.trailing:s);var h=function(){var r=t-(Ee()-a);0>=r||r>t?(u&&$r(u),r=f,u=l=f=w,r&&(c=Ee(),o=n.apply(i,e),l||u||(e=i=null))):l=Ur(h,r)},v=function(){l&&$r(l),u=l=f=w,(s||p!==t)&&(c=Ee(),o=n.apply(i,e),l||u||(e=i=null))};return function(){if(e=arguments,a=Ee(),i=this,f=s&&(l||!g),false===p)var r=g&&!l;
else{u||g||(c=a);var y=p-(a-c),m=0>=y||y>p;m?(u&&(u=$r(u)),c=a,o=n.apply(i,e)):u||(u=Ur(v,y))}return m&&l?l=$r(l):l||t===p||(l=Ur(h,t)),r&&(m=true,o=n.apply(i,e)),!m||l||u||(e=i=null),o}}function er(n,t,r){var e=arguments,u=0,o=e.length,a=typeof r;if("number"!=a&&"string"!=a||!e[3]||e[3][r]!==t||(o=2),3<o&&"function"==typeof e[o-2])var i=G(e[--o-1],e[o--],2);else 2<o&&"function"==typeof e[o-1]&&(i=e[--o]);for(;++u<o;)if(t=e[u],lr(t))for(var a=-1,l=xe(t),f=l.length;++a<f;){var c=l[a];n[c]=i?i(n[c],t[c]):t[c]
}return n}function ur(n,t,r){var e=arguments,u=0,o=e.length,a=typeof r;for("number"!=a&&"string"!=a||!e[3]||e[3][r]!==t||(o=2);++u<o;)if(t=e[u],lr(t))for(var a=-1,i=xe(t),l=i.length;++a<l;){var f=i[a];"undefined"==typeof n[f]&&(n[f]=t[f])}return n}function or(n){var t=[];return he(n,function(n,r){ir(n)&&t.push(r)}),t.sort()}function ar(n){return n&&typeof n=="object"&&1===n.nodeType&&(pe.nodeClass?-1<Pr.call(n).indexOf("Element"):p(n))||false}function ir(n){return typeof n=="function"}function lr(n){var t=typeof n;
return n&&("function"==t||"object"==t)||false}function fr(n){var t=typeof n;return"number"==t||n&&"object"==t&&Pr.call(n)==ot||false}function cr(n){return typeof n=="string"||n&&typeof n=="object"&&Pr.call(n)==lt||false}function pr(n){for(var t=-1,r=xe(n),e=r.length,u=dr(e);++t<e;)u[t]=n[r[t]];return u}function sr(n,t,r){var e=typeof n;return"function"==e||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||G(n,t,r):"object"!=e?mr(n):hr(n)}function gr(n){return n}function hr(n){n||(n={});var t=xe(n),r=t[0],e=n[r];
return 1!=t.length||e!==e||lr(e)?function(r){for(var e=t.length,u=false;e--&&(u=t[e],u=Wr.call(r,u)&&wt(r[u],n[u],null,true)););return u}:function(n){return Wr.call(n,r)?(n=n[r],e===n&&(0!==e||1/e==1/n)):false}}function vr(n,t,r){var e=true,o=t&&or(t);t&&(r||o.length)||(null==r&&(r=t),t=n,n=u,o=or(t)),false===r?e=false:lr(r)&&"chain"in r&&(e=r.chain),r=-1;for(var a=ir(n),i=o?o.length:0;++r<i;){var l=o[r],f=n[l]=t[l];a&&(n.prototype[l]=function(t){return function(){var r=this.__chain__,u=this.__wrapped__,o=[u];if(zr.apply(o,arguments),o=t.apply(n,o),e||r){if(u===o&&lr(o))return this;
o=new n(o),o.__chain__=r}return o}}(f))}}function yr(){}function mr(n){return function(t){return t[n]}}n=n?bt.defaults(yt.Object(),n,bt.pick(yt,Q)):yt;var dr=n.Array,br=n.Boolean,_r=n.Date,wr=n.Function,jr=n.Math,xr=n.Number,Cr=n.Object,kr=n.RegExp,Or=n.String,Er=n.TypeError,Sr=dr.prototype,Ar=n.Error.prototype,Ir=Cr.prototype,Nr=Or.prototype,Rr=(Rr=n.window)&&Rr.document,Tr=n._,Pr=Ir.toString,qr=kr("^"+Or(Pr).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Fr=jr.ceil,$r=n.clearTimeout,Lr=jr.floor,Br=wr.prototype.toString,Dr=Nt(Dr=Cr.getPrototypeOf)&&Dr,Wr=Ir.hasOwnProperty,zr=Sr.push,Kr=Ir.propertyIsEnumerable,Mr=Nt(Mr=n.Set)&&Mr,Ur=n.setTimeout,Vr=Sr.splice,Hr=Sr.unshift,Xr=function(){try{var n={},t=Nt(t=Cr.defineProperty)&&t,r=t(n,n,n)&&t
}catch(e){}return r}(),Gr=Nt(Gr=Nr.contains)&&Gr,Jr=Nt(Jr=Cr.create)&&Jr,Qr=Nt(Qr=dr.isArray)&&Qr,Yr=n.isFinite,Zr=n.isNaN,ne=Nt(ne=Cr.keys)&&ne,te=jr.max,re=jr.min,ee=Nt(ee=_r.now)&&ee,ue=n.parseInt,oe=jr.random,ae=Nt(ae=Nr.trim)&&!ae.call(X)&&ae,ie=Nt(ie=Nr.trimLeft)&&!ie.call(X)&&ie,le=Nt(le=Nr.trimRight)&&!le.call(X)&&le,fe={};fe[nt]=dr,fe[tt]=br,fe[rt]=_r,fe[ut]=wr,fe[at]=Cr,fe[ot]=xr,fe[it]=kr,fe[lt]=Or;var ce={};ce[nt]=ce[rt]=ce[ot]={constructor:true,toLocaleString:true,toString:true,valueOf:true},ce[tt]=ce[lt]={constructor:true,toString:true,valueOf:true},ce[et]=ce[ut]=ce[it]={constructor:true,toString:true},ce[at]={constructor:true},function(){for(var n=Y.length;n--;){var t,r=Y[n];
for(t in ce)Wr.call(ce,t)&&!Wr.call(ce[t],r)&&(ce[t][r]=false)}}(),o.prototype=u.prototype;var pe=u.support={};!function(){var t=function(){this.x=1},r={0:1,length:1},e=[];t.prototype={valueOf:1,y:1};for(var u in new t)e.push(u);for(u in arguments);pe.argsClass=Pr.call(arguments)==Z,pe.argsObject=arguments.constructor==Cr&&!(arguments instanceof dr),pe.enumErrorProps=Kr.call(Ar,"message")||Kr.call(Ar,"name"),pe.enumPrototypes=Kr.call(t,"prototype"),pe.funcDecomp=!Nt(n.WinRTError)&&V.test(_),pe.funcNames=typeof wr.name=="string",pe.nonEnumArgs=0!=u,pe.nonEnumShadows=!/valueOf/.test(e),pe.ownLast="x"!=e[0],pe.spliceObjects=(Vr.call(r,0,1),!r[0]),pe.unindexedChars="xx"!="x"[0]+Cr("x")[0];
try{pe.dom=11===Rr.createDocumentFragment().nodeType}catch(o){pe.dom=false}try{pe.nodeClass=!(Pr.call(undefined)==at&&!({toString:0}+""))}catch(a){pe.nodeClass=true}}(1),u.templateSettings={escape:L,evaluate:B,interpolate:D,variable:"",imports:{_:u}},Jr||(A=function(){function t(){}return function(r){if(lr(r)){t.prototype=r;var e=new t;t.prototype=null}return e||n.Object()}}());var se=Mr&&function(n){var t=new Mr,r=n?n.length:0;for(t.push=t.add;r--;)t.push(n[r]);return t},ge=Xr?function(n,t){pt.value=t,Xr(n,N,pt)}:yr;pe.argsClass||(Tt=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Wr.call(n,"callee")&&!Kr.call(n,"callee")||false
});var he=St({a:"p,a",b:"p",c:"if(a(p[l],l,p)===false){return r}",e:false}),ve=St({a:"p",b:"[]",c:"r.push(l)",e:true}),ye=Ot(function(n,t,r){Wr.call(n,r)?n[r]++:n[r]=1}),me=Ot(function(n,t,r){Wr.call(n,r)?n[r].push(t):n[r]=[t]}),de=Ot(function(n,t,r){n[r]=t}),be=Ot(function(n,t,r){n[r?0:1].push(t)},true),_e=Gt,we=Qr||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Pr.call(n)==nt||false};pe.dom||(ar=function(n){return n&&typeof n=="object"&&1===n.nodeType&&!je(n)||false}),ir(/x/)&&(ir=function(n){return typeof n=="function"&&Pr.call(n)==ut
});var je=Dr?function(n){if(!n||Pr.call(n)!=at||!pe.argsClass&&Tt(n))return false;var t=n.valueOf,r=Nt(t)&&(r=Dr(t))&&Dr(r);return r?n==r||Dr(n)==r:Rt(n)}:Rt,xe=ne?function(n){return lr(n)?pe.enumPrototypes&&typeof n=="function"||pe.nonEnumArgs&&n.length&&Tt(n)?ve(n):ne(n):[]}:ve,Ce=ae?function(n,t){return null==n?"":null==t?ae.call(n):h(n,t)}:h,ke=ie?function(n,t){return null==n?"":null==t?ie.call(n):v(n,t)}:v,Oe=le?function(n,t){return null==n?"":null==t?le.call(n):y(n,t)}:y,Ee=ee||function(){return(new _r).getTime()
},Se=8==ue(X+"08")?ue:function(n,t){return n=Ce(n),ue(n,+t||(M.test(n)?16:10))};return u.after=function(n,t){if(!ir(t))throw new Er;return function(){return 1>--n?t.apply(this,arguments):void 0}},u.assign=er,u.at=function(n,t){var r=arguments,e=-1,u=mt(r,true,false,1),o=u.length,a=typeof t;for("number"!=a&&"string"!=a||!r[2]||r[2][t]!==n||(o=1),pe.unindexedChars&&cr(n)&&(n=n.split("")),r=dr(o);++e<o;)r[e]=n[u[e]];return r},u.bind=tr,u.bindAll=function(n){for(var t=1<arguments.length?mt(arguments,true,false,1):or(n),r=-1,e=t.length;++r<e;){var u=t[r];
n[u]=Et(n[u],j,null,n)}return n},u.bindKey=function(n,t){return 3>arguments.length?Et(t,j|x,null,n):Et(t,j|x|O,null,n,$t(arguments,2))},u.chain=function(n){return n=new o(n),n.__chain__=true,n},u.compact=function(n){for(var t=-1,r=n?n.length:0,e=0,u=[];++t<r;){var o=n[t];o&&(u[e++]=o)}return u},u.compose=function(){for(var n=arguments,t=n.length,r=t;r--;)if(!ir(n[r]))throw new Er;return function(){for(var r=t-1,e=n[r].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},u.constant=function(n){return function(){return n
}},u.countBy=ye,u.create=function(n,t){var r=A(n);return t?er(r,t):r},u.createCallback=sr,u.curry=function(n,t){return typeof t!="number"&&(t=+t||(n?n.length:0)),Et(n,C,t)},u.debounce=rr,u.defaults=ur,u.defer=function(n){if(!ir(n))throw new Er;var t=$t(arguments,1);return Ur(function(){n.apply(w,t)},1)},u.delay=function(n,t){if(!ir(n))throw new Er;var r=$t(arguments,2);return Ur(function(){n.apply(w,r)},t)},u.difference=function(n){return gt(n,mt(arguments,true,true,1))},u.filter=Ut,u.flatten=function(n,t,r,e){var u=typeof t;
return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),null!=r&&(n=Gt(n,r,e)),mt(n,t)},u.forEach=Ht,u.forEachRight=Xt,u.forIn=function(n,t,r){return t=t&&typeof r=="undefined"?t:G(t,r,3),he(n,t)},u.forInRight=function(n,t,r){var e=[];he(n,function(n,t){e.push(t,n)});var u=e.length;for(t=G(t,r,3);u--&&false!==t(e[u--],e[u],n););return n},u.forOwn=function(n,t,r){return t=t&&typeof r=="undefined"?t:G(t,r,3),dt(n,t)},u.forOwnRight=function(n,t,r){var e=xe(n),u=e.length;
for(t=G(t,r,3);u--&&(r=e[u],false!==t(n[r],r,n)););return n},u.functions=or,u.groupBy=me,u.indexBy=de,u.initial=function(n,t,r){var e=0,o=n?n.length:0;if(typeof t!="number"&&null!=t){var a=o;for(t=u.createCallback(t,r,3);a--&&t(n[a],a,n);)e++}else e=null==t||r?1:t||e;return e=o-e,$t(n,0,0<e?e:0)},u.intersection=function(){for(var n=[],e=-1,u=arguments.length,o=c(),a=It(),i=se&&a===t,l=c();++e<u;){var f=arguments[e];(we(f)||Tt(f))&&(n.push(f),o.push(i&&f.length>=S&&se(e?n[e]:l)))}var i=n[0],p=-1,g=i?i.length:0,h=[];
n:for(;++p<g;){var v=o[0],f=i[p];if(0>(v?r(v,f):a(l,f))){for(e=u,(v||l).push(f);--e;)if(v=o[e],0>(v?r(v,f):a(n[e],f)))continue n;h.push(f)}}return s(o),s(l),h},u.invert=function(n,t){for(var r=-1,e=xe(n),u=e.length,o={};++r<u;){var a=e[r],i=n[a];t?Wr.call(o,i)?o[i].push(a):o[i]=[a]:o[i]=a}return o},u.invoke=function(n,t){var r=-1,e=typeof t=="function",u=n?n.length:0,o=dr(typeof u=="number"?u:0);if(3>arguments.length&&we(n))for(;++r<u;){var a=n[r];o[r]=e?t.call(a):a[t]()}else{var i=$t(arguments,2);
ht(n,function(n){o[++r]=(e?t:n[t]).apply(n,i)})}return o},u.keys=xe,u.map=Gt,u.mapValues=function(n,t,r){var e={};return t=u.createCallback(t,r,3),dt(n,function(n,r,u){e[r]=t(n,r,u)}),e},u.matches=hr,u.max=Jt,u.memoize=function(n,t){if(!ir(n))throw new Er;var r=function(){var e=r.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return Wr.call(e,u)?e[u]:e[u]=n.apply(this,arguments)};return r.cache={},r},u.merge=function(n,t,r){if(!lr(n))return n;var e=arguments,u=e.length,o=typeof r;if("number"!=o&&"string"!=o||!e[3]||e[3][r]!==t||(u=2),3<u&&"function"==typeof e[u-2])var a=G(e[--u-1],e[u--],2);
else 2<u&&"function"==typeof e[u-1]&&(a=e[--u]);for(var e=$t(arguments,1,u),o=-1,i=c(),l=c();++o<u;)jt(n,e[o],a,i,l);return s(i),s(l),n},u.min=function(n,t,r){var o=1/0,a=o,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&we(n))for(r=-1,i=n.length;++r<i;){var l=n[r];l<a&&(a=l)}else t=null==t&&cr(n)?e:u.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r<o&&(o=r,a=n)});return a},u.omit=function(n,t,r){var e={};if(typeof t!="function"){for(var o=mt(arguments,true,false,1),a=o.length;a--;)o[a]=Or(o[a]);
var i=[];he(n,function(n,t){i.push(t)});for(var l=-1,i=gt(i,o),a=i.length;++l<a;)o=i[l],e[o]=n[o]}else t=u.createCallback(t,r,3),he(n,function(n,r,u){t(n,r,u)||(e[r]=n)});return e},u.once=function(n){var t,r;if(!ir(n))throw new Er;return function(){return t?r:(t=true,r=n.apply(this,arguments),n=null,r)}},u.pairs=function(n){for(var t=-1,r=xe(n),e=r.length,u=dr(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},u.partial=function(n){if(n)var t=n[N]?n[N][2]:n.length,r=$t(arguments,1),t=t-r.length;return Et(n,O,t,null,r)
},u.partialRight=function(n){if(n)var t=n[N]?n[N][2]:n.length,r=$t(arguments,1),t=t-r.length;return Et(n,E,t,null,null,r)},u.partition=be,u.pick=function(n,t,r){var e={};if(typeof t!="function")for(var o=-1,a=mt(arguments,true,false,1),i=lr(n)?a.length:0;++o<i;){var l=a[o];l in n&&(e[l]=n[l])}else t=u.createCallback(t,r,3),he(n,function(n,r,u){t(n,r,u)&&(e[r]=n)});return e},u.pluck=_e,u.property=mr,u.pull=function(n){for(var t=arguments,r=0,e=t.length,u=n?n.length:0;++r<e;)for(var o=-1,a=t[r];++o<u;)n[o]===a&&(Vr.call(n,o--,1),u--);
return n},u.range=function(n,t,r){n=+n||0,r=typeof r=="number"?r:+r||1,null==t&&(t=n,n=0);var e=-1;t=te(0,Fr((t-n)/(r||1)));for(var u=dr(t);++e<t;)u[e]=n,n+=r;return u},u.reject=function(n,t,r){return t=u.createCallback(t,r,3),Ut(n,function(n,r,e){return!t(n,r,e)})},u.remove=function(n,t,r){var e=-1,o=n?n.length:0,a=[];for(t=u.createCallback(t,r,3);++e<o;)r=n[e],t(r,e,n)&&(a.push(r),Vr.call(n,e--,1),o--);return a},u.rest=Ft,u.shuffle=Zt,u.slice=$t,u.sortBy=function(n,t,r){var e=-1,o=t&&we(t),l=n?n.length:0,f=dr(typeof l=="number"?l:0);
for(o||(t=u.createCallback(t,r,3)),ht(n,function(n,r,u){if(o)for(u=t.length,r=dr(u);u--;)r[u]=n[t[u]];else r=t(n,r,u);u=f[++e]=J.pop()||{f:null,g:0,h:null},u.f=r,u.g=e,u.h=n}),l=f.length,f.sort(o?i:a);l--;)n=f[l],f[l]=n.h,g(n);return f},u.tap=function(n,t,r){return t.call(r,n),n},u.throttle=function(n,t,r){var e=true,u=true;if(!ir(n))throw new Er;return false===r?e=false:lr(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),ct.leading=e,ct.maxWait=t,ct.trailing=u,rr(n,t,ct)},u.times=function(n,t,r){n=-1<(n=+n)?n:0;
var e=-1,u=dr(n);for(t=G(t,r,1);++e<n;)u[e]=t(e);return u},u.toArray=function(n){return n&&typeof n.length=="number"?pe.unindexedChars&&cr(n)?n.split(""):$t(n):pr(n)},u.transform=function(n,t,r,e){var o=we(n);if(null==r)if(o)r=[];else{var a=n&&n.constructor;r=A(a&&a.prototype)}return t&&(t=u.createCallback(t,e,4),(o?ht:dt)(n,function(n,e,u){return t(r,n,e,u)})),r},u.union=function(){return Ct(mt(arguments,true,true))},u.uniq=Bt,u.values=pr,u.where=Ut,u.without=function(n){return gt(n,$t(arguments,1))
},u.wrap=function(n,t){return Et(t,O,null,null,[n])},u.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var r=arguments[n];if(we(r)||Tt(r))var e=e?gt(e,r).concat(gt(r,e)):r}return e?Ct(e):[]},u.zip=Dt,u.zipObject=Wt,u.callback=sr,u.collect=Gt,u.drop=Ft,u.each=Ht,u.eachRight=Xt,u.extend=er,u.methods=or,u.object=Wt,u.select=Ut,u.tail=Ft,u.unique=Bt,u.unzip=Dt,vr(er({},u)),u.capitalize=function(n){return null==n?"":(n=Or(n),n.charAt(0).toUpperCase()+n.slice(1))},u.clone=function(n,t,r,e){var u=typeof t;
return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),d(n,t,typeof r=="function"&&G(r,e,1))},u.cloneDeep=function(n,t,r){return d(n,true,typeof t=="function"&&G(t,r,1))},u.contains=Kt,u.escape=function(n){return null==n?"":Or(n).replace($,l)},u.every=Mt,u.find=Vt,u.findIndex=function(n,t,r){var e=-1,o=n?n.length:0;for(t=u.createCallback(t,r,3);++e<o;)if(t(n[e],e,n))return e;return-1},u.findKey=function(n,t,r){var e;return t=u.createCallback(t,r,3),dt(n,function(n,r,u){return t(n,r,u)?(e=r,false):void 0
}),e},u.findLast=function(n,t,r){var e;return t=u.createCallback(t,r,3),vt(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e},u.findLastIndex=function(n,t,r){var e=n?n.length:0;for(t=u.createCallback(t,r,3);e--;)if(t(n[e],e,n))return e;return-1},u.findLastKey=function(n,t,r){var e;return t=u.createCallback(t,r,3),_t(n,function(n,r,u){return t(n,r,u)?(e=r,false):void 0}),e},u.has=function(n,t){return n?Wr.call(n,t):false},u.identity=gr,u.indexOf=qt,u.isArguments=Tt,u.isArray=we,u.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Pr.call(n)==tt||false
},u.isDate=function(n){return n&&typeof n=="object"&&Pr.call(n)==rt||false},u.isElement=ar,u.isEmpty=function(n){var t=true;if(!n)return t;var r=Pr.call(n),e=n.length;return r==nt||r==lt||(pe.argsClass?r==Z:Tt(n))||r==at&&typeof e=="number"&&ir(n.splice)?!e:(dt(n,function(){return t=false}),t)},u.isEqual=function(n,t,r,e){return wt(n,t,typeof r=="function"&&G(r,e,2))},u.isFinite=function(n){return Yr(n)&&!Zr(parseFloat(n))},u.isFunction=ir,u.isNaN=function(n){return fr(n)&&n!=+n},u.isNull=function(n){return null===n
},u.isNumber=fr,u.isObject=lr,u.isPlainObject=je,u.isRegExp=function(n){var t=typeof n;return n&&("function"==t||"object"==t)&&Pr.call(n)==it||false},u.isString=cr,u.isUndefined=function(n){return typeof n=="undefined"},u.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?te(0,e+r):re(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},u.mixin=vr,u.noConflict=function(){return n._=Tr,this},u.noop=yr,u.now=Ee,u.parseInt=Se,u.random=function(n,t,r){var e=null==n,u=null==t;return null==r&&(u&&typeof n=="boolean"?(r=n,n=1):typeof t=="boolean"&&(r=t,u=true)),e&&u&&(t=1,u=false),n=+n||0,u?(t=n,n=0):t=+t||0,r||n%1||t%1?(r=oe(),re(n+r*(t-n+parseFloat("1e-"+((r+"").length-1))),t)):xt(n,t)
},u.reduce=Qt,u.reduceRight=Yt,u.result=function(n,t,r){var e=null==n?w:n[t];return typeof e=="undefined"?r:ir(e)?n[t]():e},u.runInContext=_,u.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:xe(n).length},u.some=nr,u.sortedIndex=Lt,u.template=function(n,t,r){var e=u.templateSettings;n=Or(n||""),r=ur({},r,e);var o,a=ur({},r.imports,e.imports),e=xe(a),a=pr(a),i=0,l=r.interpolate||U,c="__p+='",l=kr((r.escape||U).source+"|"+l.source+"|"+(l===D?W:U).source+"|"+(r.evaluate||U).source+"|$","g");
n.replace(l,function(t,r,e,u,a,l){return e||(e=u),c+=n.slice(i,l).replace(H,f),r&&(c+="'+__e("+r+")+'"),a&&(o=true,c+="';"+a+";\n__p+='"),e&&(c+="'+((__t=("+e+"))==null?'':__t)+'"),i=l+t.length,t}),c+="';",l=r=r.variable,l||(r="obj",c="with("+r+"){"+c+"}"),c=(o?c.replace(T,""):c).replace(P,"$1").replace(q,"$1;"),c="function("+r+"){"+(l?"":r+"||("+r+"={});")+"var __t,__p='',__e=_.escape"+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var p=wr(e,"return "+c).apply(w,a)
}catch(s){throw s.source=c,s}return t?p(t):(p.source=c,p)},u.trim=Ce,u.trimLeft=ke,u.trimRight=Oe,u.unescape=function(n){return null==n?"":(n=Or(n),0>n.indexOf(";")?n:n.replace(F,b))},u.uniqueId=function(n){var t=++R;return Or(null==n?"":n)+t},u.all=Mt,u.any=nr,u.detect=Vt,u.findWhere=Vt,u.foldl=Qt,u.foldr=Yt,u.include=Kt,u.inject=Qt,vr(function(){var n={};return dt(u,function(t,r){u.prototype[r]||(n[r]=t)}),n}(),false),u.first=Pt,u.last=function(n,t,r){var e=0,o=n?n.length:0;if(typeof t!="number"&&null!=t){var a=o;
for(t=u.createCallback(t,r,3);a--&&t(n[a],a,n);)e++}else if(e=t,null==e||r)return n?n[o-1]:w;return e=o-e,$t(n,0<e?e:0)},u.sample=function(n,t,r){return n&&typeof n.length!="number"?n=pr(n):pe.unindexedChars&&cr(n)&&(n=n.split("")),null==t||r?n?n[xt(0,n.length-1)]:w:(n=Zt(n),n.length=re(te(0,t),n.length),n)},u.take=Pt,u.head=Pt,dt(u,function(n,t){var r="sample"!==t;u.prototype[t]||(u.prototype[t]=function(t,e){var u=this.__chain__,a=n(this.__wrapped__,t,e);return u||null!=t&&(!e||r&&typeof t=="function")?new o(a,u):a
})}),u.VERSION=I,u.prototype.chain=function(){return this.__chain__=true,this},u.prototype.toString=function(){return Or(this.__wrapped__)},u.prototype.value=zt,u.prototype.valueOf=zt,ht(["join","pop","shift"],function(n){var t=Sr[n];u.prototype[n]=function(){var n=this.__chain__,r=t.apply(this.__wrapped__,arguments);return n?new o(r,n):r}}),ht(["push","reverse","sort","unshift"],function(n){var t=Sr[n];u.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),ht(["concat","splice"],function(n){var t=Sr[n];
u.prototype[n]=function(){return new o(t.apply(this.__wrapped__,arguments),this.__chain__)}}),pe.spliceObjects||ht(["pop","shift","splice"],function(n){var t=Sr[n],r="splice"==n;u.prototype[n]=function(){var n=this.__chain__,e=this.__wrapped__,u=t.apply(e,arguments);return 0===e.length&&delete e[0],n||r?new o(u,n):u}}),u}var w,j=1,x=2,C=4,k=8,O=16,E=32,S=40,A=40,I="2.4.1",N="__lodash@"+I+"__",R=0,T=/\b__p\+='';/g,P=/\b(__p\+=)''\+/g,q=/(__e\(.*?\)|\b__t\))\+'';/g,F=/&(?:amp|lt|gt|quot|#39);/g,$=/[&<>"']/g,L=/<%-([\s\S]+?)%>/g,B=/<%([\s\S]+?)%>/g,D=/<%=([\s\S]+?)%>/g,W=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,z=/\w*$/,K=/^\s*function[ \n\r\t]+\w/,M=/^0[xX]/,U=/($^)/,V=/\bthis\b/,H=/['\n\r\t\u2028\u2029\\]/g,X=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",G=[],J=[],Q="Array Boolean Date Error Function Math Number Object RegExp Set String _ clearTimeout document isFinite isNaN parseInt setTimeout TypeError window WinRTError".split(" "),Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Z="[object Arguments]",nt="[object Array]",tt="[object Boolean]",rt="[object Date]",et="[object Error]",ut="[object Function]",ot="[object Number]",at="[object Object]",it="[object RegExp]",lt="[object String]",ft={};
ft[ut]=false,ft[Z]=ft[nt]=ft[tt]=ft[rt]=ft[ot]=ft[at]=ft[it]=ft[lt]=true;var ct={leading:false,maxWait:0,trailing:false},pt={configurable:false,enumerable:false,value:null,writable:false},st={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},gt={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},ht={"function":true,object:true},vt={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},yt=ht[typeof window]&&window||this,mt=ht[typeof exports]&&exports&&!exports.nodeType&&exports,ht=ht[typeof module]&&module&&!module.nodeType&&module,dt=mt&&ht&&typeof global=="object"&&global;
!dt||dt.global!==dt&&dt.window!==dt&&dt.self!==dt||(yt=dt);var dt=ht&&ht.exports===mt&&mt,bt=_();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(yt._=bt, define(function(){return bt})):mt&&ht?dt?(ht.exports=bt)._=bt:mt._=bt:yt._=bt}).call(this);

131
dist/lodash.js vendored
View File

@@ -834,7 +834,8 @@
function baseBind(data) {
var func = data[0],
thisArg = data[3],
partialArgs = data[4];
partialArgs = data[4],
partialHolders = data[6];
function bound() {
// `Function#bind` spec
@@ -843,8 +844,7 @@
// avoid `arguments` object deoptimizations by using `slice` instead
// of `Array.prototype.slice.call` and not assigning `arguments` to a
// variable as a ternary expression
var args = slice(partialArgs);
push.apply(args, arguments);
var args = composeArgs(partialArgs, partialHolders, arguments);
}
// mimic the constructor's `return` behavior
// http://es5.github.io/#x13.2.2
@@ -1049,7 +1049,9 @@
arity = data[2],
thisArg = data[3],
partialArgs = data[4],
partialRightArgs = data[5];
partialRightArgs = data[5],
partialHolders = data[6],
partialRightHolders = data[7];
var isBind = bitmask & BIND_FLAG,
isBindKey = bitmask & BIND_KEY_FLAG,
@@ -1060,23 +1062,22 @@
function bound() {
var thisBinding = isBind ? thisArg : this;
if (partialArgs) {
var args = slice(partialArgs);
push.apply(args, arguments);
var args = composeArgs(partialArgs, partialHolders, arguments);
}
if (partialRightArgs || isCurry) {
args || (args = slice(arguments));
if (partialRightArgs) {
push.apply(args, partialRightArgs);
}
if (partialRightArgs) {
args = composeArgsRight(partialRightArgs, partialRightHolders, args || arguments);
}
if (isCurry) {
var argsLength = arguments.length;
if (isCurry && argsLength < arity) {
if (argsLength < arity) {
args || (args = slice(arguments));
bitmask |= PARTIAL_FLAG;
bitmask &= ~PARTIAL_RIGHT_FLAG
if (!isCurryBound) {
bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG);
}
var newArity = nativeMax(0, arity - argsLength);
return baseCreateWrapper([func, bitmask, newArity, thisArg, args]);
return baseCreateWrapper([func, bitmask, newArity, thisArg, args, null, []]);
}
}
args || (args = arguments);
@@ -1149,7 +1150,7 @@
}
/**
* The base implementation of `_.forEachEach` without support for callback
* The base implementation of `_.forEachRight` without support for callback
* shorthands or `thisArg` binding.
*
* @private
@@ -1555,6 +1556,68 @@
return result;
}
/**
* Creates an array that is the composition of partially applied arguments,
* placeholders, and provided arguments into a single array of arguments.
*
* @private
* @param {Array} partialArg An array of arguments to prepend to those provided.
* @param {Array} partialHolders An array of `partialArgs` placeholder indexes.
* @param {Array|Object} args The provided arguments.
* @returns {Array} Returns a new array of composed arguments.
*/
function composeArgs(partialArgs, partialHolders, args) {
var index = -1,
length = partialHolders.length,
leftIndex = -1,
leftLength = partialArgs.length,
argsLength = nativeMax(args.length - length, 0),
result = Array(argsLength + leftLength);
while (++leftIndex < leftLength) {
result[leftIndex] = partialArgs[leftIndex];
}
while (++index < length) {
result[partialHolders[index]] = args[index];
}
while (length < argsLength) {
result[leftIndex++] = args[length++];
}
return result;
}
/**
* This function is like `composeArgs` except that the arguments composition
* is tailored for `_.partialRight`.
*
* @private
* @param {Array} partialRightArg An array of arguments to append to those provided.
* @param {Array} partialHolders An array of `partialRightArgs` placeholder indexes.
* @param {Array|Object} args The provided arguments.
* @returns {Array} Returns a new array of composed arguments.
*/
function composeArgsRight(partialRightArgs, partialRightHolders, args) {
var index = -1,
length = partialRightHolders.length,
argsIndex = -1,
argsLength = nativeMax(args.length - length, 0),
rightIndex = -1,
rightLength = partialRightArgs.length,
result = Array(argsLength + rightLength);
while (++argsIndex < argsLength) {
result[argsIndex] = args[argsIndex];
}
var pad = argsIndex;
while (++rightIndex < rightLength) {
result[pad + rightIndex] = partialRightArgs[rightIndex];
}
while (++index < length) {
result[pad + partialHolders[index]] = args[argsIndex++];
}
return result;
}
/**
* Creates a function that aggregates a collection, creating an object or
* array composed from the results of running each element of the collection
@@ -1627,9 +1690,11 @@
* provided to the new function.
* @param {Array} [partialRightArgs] An array of arguments to append to those
* provided to the new function.
* @param {Array} [partialHolders] An array of `partialArgs` placeholder indexes.
* @param {Array} [partialRightArgs] An array of `partialRightArgs` placeholder indexes.
* @returns {Function} Returns the new function.
*/
function createWrapper(func, bitmask, arity, thisArg, partialArgs, partialRightArgs) {
function createWrapper(func, bitmask, arity, thisArg, partialArgs, partialRightArgs, partialHolders, partialRightHolders) {
var isBind = bitmask & BIND_FLAG,
isBindKey = bitmask & BIND_KEY_FLAG,
isPartial = bitmask & PARTIAL_FLAG,
@@ -1697,13 +1762,39 @@
} else if (arity < 0) {
arity = 0;
}
if (isPartial) {
partialHolders = getHolders(partialArgs);
}
if (isPartialRight) {
partialRightHolders = getHolders(partialRightArgs);
}
// fast path for `_.bind`
data = [func, bitmask, arity, thisArg, partialArgs, partialRightArgs];
data = [func, bitmask, arity, thisArg, partialArgs, partialRightArgs, partialHolders, partialRightHolders];
return (bitmask == BIND_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG))
? baseBind(data)
: baseCreateWrapper(data);
}
/**
* Finds the indexes of all placeholder elements in a given array.
*
* @private
* @param {Array} array The array to inspect.
* @returns {Array} Returns a new array of placeholder indexes.
*/
function getHolders(array) {
var index = -1,
length = array.length,
result = [];
while (++index < length) {
if (array[index] === lodash) {
result.push(index);
}
}
return result;
}
/**
* Gets the appropriate "indexOf" function. If the `_.indexOf` method is
* customized this method returns the custom method, otherwise it returns
@@ -4607,7 +4698,7 @@
}
var delayed = function() {
var remaining = wait - (now() - stamp);
if (remaining <= 0) {
if (remaining <= 0 || remaining > wait) {
if (maxTimeoutId) {
clearTimeout(maxTimeoutId);
}
@@ -4652,7 +4743,7 @@
lastCalled = stamp;
}
var remaining = maxWait - (stamp - lastCalled),
isCalled = remaining <= 0;
isCalled = remaining <= 0 || remaining > maxWait;
if (isCalled) {
if (maxTimeoutId) {
@@ -4851,8 +4942,8 @@
}
/**
* This method is like `_.partial` except that `partial` arguments are
* appended to those provided to the new function.
* This method is like `_.partial` except that partially applied arguments
* are appended to those provided to the new function.
*
* Note: This method does not set the `length` property of partially applied
* functions.

107
dist/lodash.min.js vendored
View File

@@ -4,58 +4,59 @@
* Build: `lodash modern -o ./dist/lodash.js`
*/
;(function(){function n(n,t){if(n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1}return 0}function t(n,t,r){r=(r||0)-1;for(var e=n?n.length:0;++r<e;)if(n[r]===t)return r;return-1}function r(n,t){return n.has(t)?0:-1}function e(n){return n.charCodeAt(0)}function u(n,t){for(var r=-1,e=n.length;++r<e&&0<=t.indexOf(n.charAt(r)););return r}function o(n,t){for(var r=n.length;r--&&0<=t.indexOf(n.charAt(r)););return r}function i(t,r){return n(t.f,r.f)||t.g-r.g}function a(t,r){for(var e=t.f,u=r.f,o=-1,i=e.length;++o<i;){var a=n(e[o],u[o]);
if(a)return a}return t.g-r.g}function f(n){return lt[n]}function l(n){return"\\"+st[n]}function c(){return G.pop()||[]}function p(n){n.length=0,G.length<S&&G.push(n)}function s(n){n.f=n.h=null,H.length<S&&H.push(n)}function g(n,t){return(n=null==n?"":n+"")?null==t?n.slice(y(n),m(n)+1):(t+="",n.slice(u(n,t),o(n,t)+1)):n}function h(n,t){return(n=null==n?"":n+"")?null==t?n.slice(y(n)):(t+="",n.slice(u(n,t))):n}function v(n,t){return(n=null==n?"":n+"")?null==t?n.slice(0,m(n)+1):(t+="",n.slice(0,o(n,t)+1)):n
}function y(n){for(var t=-1,r=n.length;++t<r;){var e=n.charCodeAt(t);if((160<e||9>e||13<e)&&32!=e&&160!=e&&5760!=e&&6158!=e&&(8192>e||8202<e&&8232!=e&&8233!=e&&8239!=e&&8287!=e&&12288!=e&&65279!=e))break}return t}function m(n){for(var t=n.length;t--;){var r=n.charCodeAt(t);if((160<r||9>r||13<r)&&32!=r&&160!=r&&5760!=r&&6158!=r&&(8192>r||8202<r&&8232!=r&&8233!=r&&8239!=r&&8287!=r&&12288!=r&&65279!=r))break}return t}function d(n){return ct[n]}function b(n){function u(n){var t=[];if(!ur(n))return t;
for(var r in n)Br.call(n,r)&&t.push(r);return t}function o(n,t){if(!ur(n))return n;for(var r in n)if(false===t(n[r],r,n))break;return n}function y(n){return n&&typeof n=="object"&&!ge(n)&&Br.call(n,"__wrapped__")?n:new m(n)}function m(n,t){this.__chain__=!!t,this.__wrapped__=n}function S(n){function t(){if(u){var n=Tt(u);Dr.apply(n,arguments)}if(this instanceof t){var o=lt(r.prototype),n=r.apply(o,n||arguments);return ur(n)?n:o}return r.apply(e,n||arguments)}var r=n[0],e=n[3],u=n[4];return ae(t,n),t
}function G(n,t,r,e,u){if(r){var o=r(n);if(typeof o!="undefined")return o}if(!ur(n))return n;var i=Er.call(n);if(!it[i])return n;var a=ee[i];switch(i){case Z:case nt:return new a(+n);case rt:case ot:return new a(n);case ut:return o=a(n.source,L.exec(n)),o.lastIndex=n.lastIndex,o}if(i=ge(n),t){var f=!e;e||(e=c()),u||(u=c());for(var l=e.length;l--;)if(e[l]==n)return u[l];o=i?a(n.length):{}}else o=i?Tt(n):Zt({},n);return i&&(Br.call(n,"index")&&(o.index=n.index),Br.call(n,"input")&&(o.input=n.input)),t?(e.push(n),u.push(o),(i?ht:dt)(n,function(n,i){o[i]=G(n,t,r,e,u)
}),f&&(p(e),p(u)),o):o}function lt(n){return ur(n)?Mr(n):{}}function ct(n,t,r){if(typeof n!="function")return lr;if(typeof t=="undefined"||!("prototype"in n))return n;var e=n[N];if(typeof e=="undefined"&&(ue.funcNames&&(e=!n.name),e=e||!ue.funcDecomp,!e)){var u=Fr.call(n);ue.funcNames||(e=!P.test(u)),e||(e=U.test(u),ae(n,e))}if(false===e||true!==e&&e[1]&w)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)
};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)}}return Qt(n,t)}function pt(n){function t(){var n=f?o:this;if(i){var g=Tt(i);Dr.apply(g,arguments)}if(a||c){g||(g=Tt(arguments)),a&&Dr.apply(g,a);var h=arguments.length;if(c&&h<u)return e|=C,e&=~O,p||(e&=~(w|k)),n=Hr(0,u-h),pt([r,e,n,o,g])}return g||(g=arguments),l&&(r=n[s]),this instanceof t?(n=lt(r.prototype),g=r.apply(n,g),ur(g)?g:n):r.apply(n,g)}var r=n[0],e=n[1],u=n[2],o=n[3],i=n[4],a=n[5],f=e&w,l=e&k,c=e&j,p=e&x,s=r;return ae(t,n),t
}function st(n,e){var u=-1,o=Ot(),i=n?n.length:0,a=[];for(ie&&e&&o===t&&e.length>=A&&(o=r,e=ie(e));++u<i;){var f=n[u];0>o(e,f)&&a.push(f)}return a}function ht(n,t){var r=-1,e=n?n.length:0;if(typeof e=="number")for(;++r<e&&false!==t(n[r],r,n););else dt(n,t);return n}function vt(n,t){var r=n?n.length:0;if(typeof r=="number")for(;r--&&false!==t(n[r],r,n););else bt(n,t)}function mt(n,t,r,e){e=(e||0)-1;for(var u=n?n.length:0,o=[];++e<u;){var i=n[e];if(i&&typeof i=="object"&&typeof i.length=="number"&&(ge(i)||Et(i))){t||(i=mt(i,t,r));
var a=-1,f=i.length,l=o.length;for(o.length+=f;++a<f;)o[l++]=i[a]}else r||o.push(i)}return o}function dt(n,t){for(var r=-1,e=ve(n),u=e.length;++r<u;){var o=e[r];if(false===t(n[o],o,n))break}return n}function bt(n,t){for(var r=ve(n),e=r.length;e--;){var u=r[e];if(false===t(n[u],u,n))break}}function _t(n,t,r,e,u,i){if(r){var a=r(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;var f=typeof n,l=typeof t;if(n===n&&(!n||"function"!=f&&"object"!=f)&&(!t||"function"!=l&&"object"!=l))return false;
if(null==n||null==t)return n===t;if(l=Er.call(n),f=Er.call(t),l==Q&&(l=et),f==Q&&(f=et),l!=f)return false;switch(l){case Z:case nt:return+n==+t;case rt:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case ut:case ot:return n==kr(t)}if(f=l==Y,!f){var s=Br.call(n,"__wrapped__"),g=Br.call(t,"__wrapped__");if(s||g)return _t(s?n.__wrapped__:n,g?t.__wrapped__:t,r,e,u,i);if(l!=et)return false;if(l=n.constructor,s=t.constructor,l!=s&&!(Br.call(n,"constructor")&&Br.call(t,"constructor")||er(l)&&l instanceof l&&er(s)&&s instanceof s)&&"constructor"in n&&"constructor"in t)return false
}for(l=!u,u||(u=c()),i||(i=c()),s=u.length;s--;)if(u[s]==n)return i[s]==t;var h=0,a=true;if(u.push(n),i.push(t),f){if(s=n.length,h=t.length,(a=h==s)||e)for(;h--;)if(f=s,g=t[h],e)for(;f--&&!(a=_t(n[f],g,r,e,u,i)););else if(!(a=_t(n[h],g,r,e,u,i)))break}else o(t,function(t,o,f){return Br.call(f,o)?(h++,a=Br.call(n,o)&&_t(n[o],t,r,e,u,i)):void 0}),a&&!e&&o(n,function(n,t,r){return Br.call(r,t)?a=-1<--h:void 0});return u.pop(),i.pop(),l&&(p(u),p(i)),a}function wt(n,t,r,e,u){(ge(t)?ht:dt)(t,function(t,o){var i,a,f=t,l=n[o];
if(t&&((a=ge(t))||he(t))){for(f=e.length;f--;)if(i=e[f]==t){l=u[f];break}if(!i){var c;r&&(f=r(l,t),c=typeof f!="undefined")&&(l=f),c||(l=a?ge(l)?l:[]:he(l)?l:{}),e.push(t),u.push(l),c||wt(l,t,r,e,u)}}else r&&(f=r(l,t),typeof f=="undefined"&&(f=t)),typeof f!="undefined"&&(l=f);n[o]=l})}function kt(n,t){return n+Tr(Zr()*(t-n+1))}function jt(n,e,u){var o=-1,i=Ot(),a=n?n.length:0,f=ie&&!e&&i===t&&a>=A,l=[];if(f)var s=ie(),i=r;else s=u?c():l;for(;++o<a;){var g=n[o],h=u?u(g,o,n):g;(e?!o||s[s.length-1]!==h:0>i(s,h))&&((u||f)&&s.push(h),l.push(g))
}return!f&&u&&p(s),l}function xt(n,t){return function(r,e,u){var o=t?[[],[]]:{};e=y.createCallback(e,u,3),u=-1;var i=r?r.length:0;if(typeof i=="number")for(;++u<i;){var a=r[u];n(o,a,e(a,u,r),r)}else ht(r,function(t,r,u){n(o,t,e(t,r,u),u)});return o}}function Ct(n,t,r,e,u,o){var i=t&w,a=t&k,f=t&C,l=t&O;if(!a&&!er(n))throw new jr;f&&!u.length&&(t&=~C,f=u=false),l&&!o.length&&(t&=~O,l=o=false);var c=!a&&n[N];return c&&true!==c?(c=Tt(c),c[4]&&(c[4]=Tt(c[4])),c[5]&&(c[5]=Tt(c[5])),typeof r=="number"&&(c[2]=r),n=c[1]&w,i&&!n&&(c[3]=e),!i&&n&&(t|=x),f&&(c[4]?Dr.apply(c[4],u):c[4]=u),l&&(c[5]?Lr.apply(c[5],o):c[5]=o),c[1]|=t,Ct.apply(null,c)):(null==r?r=a?0:n.length:0>r&&(r=0),c=[n,t,r,e,u,o],t==w||t==(w|C)?S(c):pt(c))
}function Ot(){var n=(n=y.indexOf)===Rt?t:n;return n}function At(n){return typeof n=="function"&&Nr.test(Fr.call(n))}function St(n){var t,r;return n&&Er.call(n)==et&&(Br.call(n,"constructor")||(t=n.constructor,!er(t)||t instanceof t))?(o(n,function(n,t){r=t}),typeof r=="undefined"||Br.call(n,r)):false}function Et(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Er.call(n)==Q||false}function Nt(n,t,r){var e=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=-1;for(t=y.createCallback(t,r,3);++o<u&&t(n[o],o,n);)e++
}else if(e=t,null==e||r)return n?n[0]:_;return Tt(n,0,0<e?e:0)}function Rt(n,r,e){var u=n?n.length:0;if(typeof e=="number")e=0>e?Hr(0,u+e):e||0;else if(e)return e=Ft(n,r),u&&n[e]===r?e:-1;return t(n,r,e)}function It(n,t,r){if(typeof t!="number"&&null!=t){var e=0,u=-1,o=n?n.length:0;for(t=y.createCallback(t,r,3);++u<o&&t(n[u],u,n);)e++}else e=null==t||r?1:0<t?t:0;return Tt(n,e)}function Tt(n,t,r){var e=-1,u=n?n.length:0;for(typeof t=="undefined"?t=0:0>t?t=Hr(u+t,0):t>u&&(t=u),typeof r=="undefined"?r=u:0>r?r=Hr(u+r,0):r>u&&(r=u),u=r-t||0,r=hr(u);++e<u;)r[e]=n[t+e];
return r}function Ft(n,t,r,e){var u=0,o=n?n.length:u;for(r=r?y.createCallback(r,e,1):lr,t=r(t);u<o;)e=u+o>>>1,r(n[e])<t?u=e+1:o=e;return u}function $t(n,t,r,e){var u=typeof t;return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),null!=r&&(r=y.createCallback(r,e,3)),jt(n,t,r)}function Bt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,r=n?Vt(se(n,"length")):0,e=hr(0>r?0:r);++t<r;)e[t]=se(n,t);return e}function Dt(n,t){var r=-1,e=n?n.length:0,u={};for(t||!e||ge(n[0])||(t=[]);++r<e;){var o=n[r];
t?u[o]=t[r]:o&&(u[o[0]]=o[1])}return u}function qt(){return this.__wrapped__}function Wt(n,t,r){var e=n?n.length:0;if(r=typeof r=="number"?r:0,typeof e=="number"){if(r>=e)return false;if(typeof n=="string"||!ge(n)&&ir(n))return Kr?Kr.call(n,t,r):-1<n.indexOf(t,r);var u=Ot();return r=(0>r?Hr(0,e+r):r)||0,-1<u(n,t,r)}var o=-1,i=false;return ht(n,function(n){return++o<r?void 0:!(i=n===t)}),i}function zt(n,t,r){var e=true;t=y.createCallback(t,r,3),r=-1;var u=n?n.length:0;if(typeof u=="number"){for(;++r<u;)if(!t(n[r],r,n))return false
}else ht(n,function(n,r,u){return e=!!t(n,r,u)});return e}function Lt(n,t,r){var e=[];t=y.createCallback(t,r,3),r=-1;var u=n?n.length:0;if(typeof u=="number")for(;++r<u;){var o=n[r];t(o,r,n)&&e.push(o)}else ht(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function Pt(n,t,r){t=y.createCallback(t,r,3),r=-1;var e=n?n.length:0;if(typeof e!="number"){var u;return ht(n,function(n,r,e){return t(n,r,e)?(u=n,false):void 0}),u}for(;++r<e;){var o=n[r];if(t(o,r,n))return o}}function Kt(n,t,r){var e=-1,u=n?n.length:0;
if(t=t&&typeof r=="undefined"?t:ct(t,r,3),typeof u=="number")for(;++e<u&&false!==t(n[e],e,n););else ht(n,t);return n}function Mt(n,t,r){var e=n?n.length:0;if(t=t&&typeof r=="undefined"?t:ct(t,r,3),typeof e=="number")for(;e--&&false!==t(n[e],e,n););else vt(n,t);return n}function Ut(n,t,r){var e=-1,u=n?n.length:0;if(t=y.createCallback(t,r,3),typeof u=="number")for(var o=hr(u);++e<u;)o[e]=t(n[e],e,n);else o=[],ht(n,function(n,r,u){o[++e]=t(n,r,u)});return o}function Vt(n,t,r){var u=-1/0,o=u,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&ge(n))for(r=-1,i=n.length;++r<i;){var a=n[r];
a>o&&(o=a)}else t=null==t&&ir(n)?e:y.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r>u&&(u=r,o=n)});return o}function Xt(n,t,r,e){var u=3>arguments.length;t=y.createCallback(t,e,4);var o=-1,i=n?n.length:0;if(typeof i=="number")for(u&&i&&(r=n[++o]);++o<i;)r=t(r,n[o],o,n);else ht(n,function(n,e,o){r=u?(u=false,n):t(r,n,e,o)});return r}function Gt(n,t,r,e){var u=3>arguments.length;return t=y.createCallback(t,e,4),vt(n,function(n,e,o){r=u?(u=false,n):t(r,n,e,o)}),r}function Ht(n){var t=-1,r=n?n.length:0,e=hr(typeof r=="number"?r:0);
return ht(n,function(n){var r=kt(0,++t);e[t]=e[r],e[r]=n}),e}function Jt(n,t,r){var e;t=y.createCallback(t,r,3),r=-1;var u=n?n.length:0;if(typeof u=="number"){for(;++r<u;)if(t(n[r],r,n))return true}else ht(n,function(n,r,u){return!(e=t(n,r,u))});return!!e}function Qt(n,t){if(3>arguments.length)return Ct(n,w,null,t);if(n)var r=n[N]?n[N][2]:n.length,e=Tt(arguments,2),r=r-e.length;return Ct(n,w|C,r,t,e)}function Yt(n,t,r){function e(){c&&Ir(c),i=c=p=_,(h||g!==t)&&(s=be(),a=n.apply(l,o),c||i||(o=l=null))
}function u(){var r=t-(be()-f);0<r?c=Wr(u,r):(i&&Ir(i),r=p,i=c=p=_,r&&(s=be(),a=n.apply(l,o),c||i||(o=l=null)))}var o,i,a,f,l,c,p,s=0,g=false,h=true;if(!er(n))throw new jr;if(t=Hr(0,t)||0,true===r)var v=true,h=false;else ur(r)&&(v=r.leading,g="maxWait"in r&&(Hr(t,r.maxWait)||0),h="trailing"in r?r.trailing:h);return function(){if(o=arguments,f=be(),l=this,p=h&&(c||!v),false===g)var r=v&&!c;else{i||v||(s=f);var y=g-(f-s),m=0>=y;m?(i&&(i=Ir(i)),s=f,a=n.apply(l,o)):i||(i=Wr(e,y))}return m&&c?c=Ir(c):c||t===g||(c=Wr(u,t)),r&&(m=true,a=n.apply(l,o)),!m||c||i||(o=l=null),a
}}function Zt(n,t,r){var e=arguments,u=0,o=e.length,i=typeof r;if("number"!=i&&"string"!=i||!e[3]||e[3][r]!==t||(o=2),3<o&&"function"==typeof e[o-2])var a=ct(e[--o-1],e[o--],2);else 2<o&&"function"==typeof e[o-1]&&(a=e[--o]);for(;++u<o;)if(t=e[u],ur(t))for(var i=-1,f=ve(t),l=f.length;++i<l;){var c=f[i];n[c]=a?a(n[c],t[c]):t[c]}return n}function nr(n,t,r){var e=arguments,u=0,o=e.length,i=typeof r;for("number"!=i&&"string"!=i||!e[3]||e[3][r]!==t||(o=2);++u<o;)if(t=e[u],ur(t))for(var i=-1,a=ve(t),f=a.length;++i<f;){var l=a[i];
"undefined"==typeof n[l]&&(n[l]=t[l])}return n}function tr(n){var t=[];return o(n,function(n,r){er(n)&&t.push(r)}),t.sort()}function rr(n){return n&&typeof n=="object"&&1===n.nodeType&&-1<Er.call(n).indexOf("Element")||false}function er(n){return typeof n=="function"}function ur(n){var t=typeof n;return n&&("function"==t||"object"==t)||false}function or(n){var t=typeof n;return"number"==t||n&&"object"==t&&Er.call(n)==rt||false}function ir(n){return typeof n=="string"||n&&typeof n=="object"&&Er.call(n)==ot||false
}function ar(n){for(var t=-1,r=ve(n),e=r.length,u=hr(e);++t<e;)u[t]=n[r[t]];return u}function fr(n,t,r){var e=typeof n;return"function"==e||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||ct(n,t,r):"object"!=e?gr(n):cr(n)}function lr(n){return n}function cr(n){n||(n={});var t=ve(n),r=t[0],e=n[r];return 1!=t.length||e!==e||ur(e)?function(r){for(var e=t.length,u=false;e--&&(u=t[e],u=Br.call(r,u)&&_t(r[u],n[u],null,true)););return u}:function(n){return Br.call(n,r)?(n=n[r],e===n&&(0!==e||1/e==1/n)):false
}}function pr(n,t,r){var e=true,u=t&&tr(t);t&&(r||u.length)||(null==r&&(r=t),t=n,n=y,u=tr(t)),false===r?e=false:ur(r)&&"chain"in r&&(e=r.chain),r=-1;for(var o=er(n),i=u?u.length:0;++r<i;){var a=u[r],f=n[a]=t[a];o&&(n.prototype[a]=function(t){return function(){var r=this.__chain__,u=this.__wrapped__,o=[u];if(Dr.apply(o,arguments),o=t.apply(n,o),e||r){if(u===o&&ur(o))return this;o=new n(o),o.__chain__=r}return o}}(f))}}function sr(){}function gr(n){return function(t){return t[n]}}n=n?yt.defaults(gt.Object(),n,yt.pick(gt,J)):gt;
var hr=n.Array,vr=n.Boolean,yr=n.Date,mr=n.Function,dr=n.Math,br=n.Number,_r=n.Object,wr=n.RegExp,kr=n.String,jr=n.TypeError,xr=hr.prototype,Cr=_r.prototype,Or=kr.prototype,Ar=(Ar=n.window)&&Ar.document,Sr=n._,Er=Cr.toString,Nr=wr("^"+kr(Er).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Rr=dr.ceil,Ir=n.clearTimeout,Tr=dr.floor,Fr=mr.prototype.toString,$r=At($r=_r.getPrototypeOf)&&$r,Br=Cr.hasOwnProperty,Dr=xr.push,qr=At(qr=n.Set)&&qr,Wr=n.setTimeout,zr=xr.splice,Lr=xr.unshift,Pr=function(){try{var n={},t=At(t=_r.defineProperty)&&t,r=t(n,n,n)&&t
}catch(e){}return r}(),Kr=At(Kr=Or.contains)&&Kr,Mr=At(Mr=_r.create)&&Mr,Ur=At(Ur=hr.isArray)&&Ur,Vr=n.isFinite,Xr=n.isNaN,Gr=At(Gr=_r.keys)&&Gr,Hr=dr.max,Jr=dr.min,Qr=At(Qr=yr.now)&&Qr,Yr=n.parseInt,Zr=dr.random,ne=At(ne=Or.trim)&&!ne.call(X)&&ne,te=At(te=Or.trimLeft)&&!te.call(X)&&te,re=At(re=Or.trimRight)&&!re.call(X)&&re,ee={};ee[Y]=hr,ee[Z]=vr,ee[nt]=yr,ee[tt]=mr,ee[et]=_r,ee[rt]=br,ee[ut]=wr,ee[ot]=kr,m.prototype=y.prototype;var ue=y.support={};ue.funcDecomp=!At(n.WinRTError)&&U.test(b),ue.funcNames=typeof mr.name=="string";
try{ue.dom=11===Ar.createDocumentFragment().nodeType}catch(oe){ue.dom=false}y.templateSettings={escape:D,evaluate:q,interpolate:W,variable:"",imports:{_:y}},Mr||(lt=function(){function t(){}return function(r){if(ur(r)){t.prototype=r;var e=new t;t.prototype=null}return e||n.Object()}}());var ie=qr&&function(n){var t=new qr,r=n?n.length:0;for(t.push=t.add;r--;)t.push(n[r]);return t},ae=Pr?function(n,t){ft.value=t,Pr(n,N,ft)}:sr,fe=xt(function(n,t,r){Br.call(n,r)?n[r]++:n[r]=1}),le=xt(function(n,t,r){Br.call(n,r)?n[r].push(t):n[r]=[t]
}),ce=xt(function(n,t,r){n[r]=t}),pe=xt(function(n,t,r){n[r?0:1].push(t)},true),se=Ut,ge=Ur||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Er.call(n)==Y||false};ue.dom||(rr=function(n){return n&&typeof n=="object"&&1===n.nodeType&&!he(n)||false});var he=$r?function(n){if(!n||Er.call(n)!=et)return false;var t=n.valueOf,r=At(t)&&(r=$r(t))&&$r(r);return r?n==r||$r(n)==r:St(n)}:St,ve=Gr?function(n){return ur(n)?Gr(n):[]}:u,ye=ne?function(n,t){return null==n?"":null==t?ne.call(n):g(n,t)}:g,me=te?function(n,t){return null==n?"":null==t?te.call(n):h(n,t)
}:h,de=re?function(n,t){return null==n?"":null==t?re.call(n):v(n,t)}:v,be=Qr||function(){return(new yr).getTime()},_e=8==Yr(X+"08")?Yr:function(n,t){return n=ye(n),Yr(n,+t||(K.test(n)?16:10))};return y.after=function(n,t){if(!er(t))throw new jr;return function(){return 1>--n?t.apply(this,arguments):void 0}},y.assign=Zt,y.at=function(n,t){var r=arguments,e=-1,u=mt(r,true,false,1),o=u.length,i=typeof t;for("number"!=i&&"string"!=i||!r[2]||r[2][t]!==n||(o=1),r=hr(o);++e<o;)r[e]=n[u[e]];return r},y.bind=Qt,y.bindAll=function(n){for(var t=1<arguments.length?mt(arguments,true,false,1):tr(n),r=-1,e=t.length;++r<e;){var u=t[r];
n[u]=Ct(n[u],w,null,n)}return n},y.bindKey=function(n,t){return 3>arguments.length?Ct(t,w|k,null,n):Ct(t,w|k|C,null,n,Tt(arguments,2))},y.chain=function(n){return n=new m(n),n.__chain__=true,n},y.compact=function(n){for(var t=-1,r=n?n.length:0,e=0,u=[];++t<r;){var o=n[t];o&&(u[e++]=o)}return u},y.compose=function(){for(var n=arguments,t=n.length,r=t;r--;)if(!er(n[r]))throw new jr;return function(){for(var r=t-1,e=n[r].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},y.constant=function(n){return function(){return n
}},y.countBy=fe,y.create=function(n,t){var r=lt(n);return t?Zt(r,t):r},y.createCallback=fr,y.curry=function(n,t){return typeof t!="number"&&(t=+t||(n?n.length:0)),Ct(n,j,t)},y.debounce=Yt,y.defaults=nr,y.defer=function(n){if(!er(n))throw new jr;var t=Tt(arguments,1);return Wr(function(){n.apply(_,t)},1)},y.delay=function(n,t){if(!er(n))throw new jr;var r=Tt(arguments,2);return Wr(function(){n.apply(_,r)},t)},y.difference=function(n){return st(n,mt(arguments,true,true,1))},y.filter=Lt,y.flatten=function(n,t,r,e){var u=typeof t;
return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),null!=r&&(n=Ut(n,r,e)),mt(n,t)},y.forEach=Kt,y.forEachRight=Mt,y.forIn=function(n,t,r){return t=t&&typeof r=="undefined"?t:ct(t,r,3),o(n,t)},y.forInRight=function(n,t,r){var e=[];o(n,function(n,t){e.push(t,n)});var u=e.length;for(t=ct(t,r,3);u--&&false!==t(e[u--],e[u],n););return n},y.forOwn=function(n,t,r){return t=t&&typeof r=="undefined"?t:ct(t,r,3),dt(n,t)},y.forOwnRight=function(n,t,r){var e=ve(n),u=e.length;
for(t=ct(t,r,3);u--&&(r=e[u],false!==t(n[r],r,n)););return n},y.functions=tr,y.groupBy=le,y.indexBy=ce,y.initial=function(n,t,r){var e=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=y.createCallback(t,r,3);o--&&t(n[o],o,n);)e++}else e=null==t||r?1:t||e;return e=u-e,Tt(n,0,0<e?e:0)},y.intersection=function(){for(var n=[],e=-1,u=arguments.length,o=c(),i=Ot(),a=ie&&i===t,f=c();++e<u;){var l=arguments[e];(ge(l)||Et(l))&&(n.push(l),o.push(a&&l.length>=A&&ie(e?n[e]:f)))}var a=n[0],s=-1,g=a?a.length:0,h=[];
n:for(;++s<g;){var v=o[0],l=a[s];if(0>(v?r(v,l):i(f,l))){for(e=u,(v||f).push(l);--e;)if(v=o[e],0>(v?r(v,l):i(n[e],l)))continue n;h.push(l)}}return p(o),p(f),h},y.invert=function(n,t){for(var r=-1,e=ve(n),u=e.length,o={};++r<u;){var i=e[r],a=n[i];t?Br.call(o,a)?o[a].push(i):o[a]=[i]:o[a]=i}return o},y.invoke=function(n,t){var r=-1,e=typeof t=="function",u=n?n.length:0,o=hr(typeof u=="number"?u:0);if(3>arguments.length&&typeof u=="number")for(;++r<u;){var i=n[r];o[r]=e?t.call(i):i[t]()}else{var a=Tt(arguments,2);
ht(n,function(n){o[++r]=(e?t:n[t]).apply(n,a)})}return o},y.keys=ve,y.map=Ut,y.mapValues=function(n,t,r){var e={};return t=y.createCallback(t,r,3),dt(n,function(n,r,u){e[r]=t(n,r,u)}),e},y.matches=cr,y.max=Vt,y.memoize=function(n,t){function r(){var e=r.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return Br.call(e,u)?e[u]:e[u]=n.apply(this,arguments)}if(!er(n))throw new jr;return r.cache={},r},y.merge=function(n,t,r){if(!ur(n))return n;var e=arguments,u=e.length,o=typeof r;if("number"!=o&&"string"!=o||!e[3]||e[3][r]!==t||(u=2),3<u&&"function"==typeof e[u-2])var i=ct(e[--u-1],e[u--],2);
else 2<u&&"function"==typeof e[u-1]&&(i=e[--u]);for(var e=Tt(arguments,1,u),o=-1,a=c(),f=c();++o<u;)wt(n,e[o],i,a,f);return p(a),p(f),n},y.min=function(n,t,r){var u=1/0,o=u,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&ge(n))for(r=-1,i=n.length;++r<i;){var a=n[r];a<o&&(o=a)}else t=null==t&&ir(n)?e:y.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r<u&&(u=r,o=n)});return o},y.omit=function(n,t,r){var e={};if(typeof t!="function"){for(var u=mt(arguments,true,false,1),i=u.length;i--;)u[i]=kr(u[i]);
var a=[];o(n,function(n,t){a.push(t)});for(var f=-1,a=st(a,u),i=a.length;++f<i;)u=a[f],e[u]=n[u]}else t=y.createCallback(t,r,3),o(n,function(n,r,u){t(n,r,u)||(e[r]=n)});return e},y.once=function(n){var t,r;if(!er(n))throw new jr;return function(){return t?r:(t=true,r=n.apply(this,arguments),n=null,r)}},y.pairs=function(n){for(var t=-1,r=ve(n),e=r.length,u=hr(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},y.partial=function(n){if(n)var t=n[N]?n[N][2]:n.length,r=Tt(arguments,1),t=t-r.length;return Ct(n,C,t,null,r)
},y.partialRight=function(n){if(n)var t=n[N]?n[N][2]:n.length,r=Tt(arguments,1),t=t-r.length;return Ct(n,O,t,null,null,r)},y.partition=pe,y.pick=function(n,t,r){var e={};if(typeof t!="function")for(var u=-1,i=mt(arguments,true,false,1),a=ur(n)?i.length:0;++u<a;){var f=i[u];f in n&&(e[f]=n[f])}else t=y.createCallback(t,r,3),o(n,function(n,r,u){t(n,r,u)&&(e[r]=n)});return e},y.pluck=se,y.property=gr,y.pull=function(n){for(var t=arguments,r=0,e=t.length,u=n?n.length:0;++r<e;)for(var o=-1,i=t[r];++o<u;)n[o]===i&&(zr.call(n,o--,1),u--);
return n},y.range=function(n,t,r){n=+n||0,r=typeof r=="number"?r:+r||1,null==t&&(t=n,n=0);var e=-1;t=Hr(0,Rr((t-n)/(r||1)));for(var u=hr(t);++e<t;)u[e]=n,n+=r;return u},y.reject=function(n,t,r){return t=y.createCallback(t,r,3),Lt(n,function(n,r,e){return!t(n,r,e)})},y.remove=function(n,t,r){var e=-1,u=n?n.length:0,o=[];for(t=y.createCallback(t,r,3);++e<u;)r=n[e],t(r,e,n)&&(o.push(r),zr.call(n,e--,1),u--);return o},y.rest=It,y.shuffle=Ht,y.slice=Tt,y.sortBy=function(n,t,r){var e=-1,u=t&&ge(t),o=n?n.length:0,f=hr(typeof o=="number"?o:0);
for(u||(t=y.createCallback(t,r,3)),ht(n,function(n,r,o){if(u)for(o=t.length,r=hr(o);o--;)r[o]=n[t[o]];else r=t(n,r,o);o=f[++e]=H.pop()||{f:null,g:0,h:null},o.f=r,o.g=e,o.h=n}),o=f.length,f.sort(u?a:i);o--;)n=f[o],f[o]=n.h,s(n);return f},y.tap=function(n,t,r){return t.call(r,n),n},y.throttle=function(n,t,r){var e=true,u=true;if(!er(n))throw new jr;return false===r?e=false:ur(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),at.leading=e,at.maxWait=t,at.trailing=u,Yt(n,t,at)},y.times=function(n,t,r){n=-1<(n=+n)?n:0;
var e=-1,u=hr(n);for(t=ct(t,r,1);++e<n;)u[e]=t(e);return u},y.toArray=function(n){return n&&typeof n.length=="number"?Tt(n):ar(n)},y.transform=function(n,t,r,e){var u=ge(n);if(null==r)if(u)r=[];else{var o=n&&n.constructor;r=lt(o&&o.prototype)}return t&&(t=y.createCallback(t,e,4),(u?ht:dt)(n,function(n,e,u){return t(r,n,e,u)})),r},y.union=function(){return jt(mt(arguments,true,true))},y.uniq=$t,y.values=ar,y.where=Lt,y.without=function(n){return st(n,Tt(arguments,1))},y.wrap=function(n,t){return Ct(t,C,null,null,[n])
},y.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var r=arguments[n];if(ge(r)||Et(r))var e=e?st(e,r).concat(st(r,e)):r}return e?jt(e):[]},y.zip=Bt,y.zipObject=Dt,y.callback=fr,y.collect=Ut,y.drop=It,y.each=Kt,y.eachRight=Mt,y.extend=Zt,y.methods=tr,y.object=Dt,y.select=Lt,y.tail=It,y.unique=$t,y.unzip=Bt,pr(Zt({},y)),y.capitalize=function(n){return null==n?"":(n=kr(n),n.charAt(0).toUpperCase()+n.slice(1))},y.clone=function(n,t,r,e){var u=typeof t;return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),G(n,t,typeof r=="function"&&ct(r,e,1))
},y.cloneDeep=function(n,t,r){return G(n,true,typeof t=="function"&&ct(t,r,1))},y.contains=Wt,y.escape=function(n){return null==n?"":kr(n).replace(B,f)},y.every=zt,y.find=Pt,y.findIndex=function(n,t,r){var e=-1,u=n?n.length:0;for(t=y.createCallback(t,r,3);++e<u;)if(t(n[e],e,n))return e;return-1},y.findKey=function(n,t,r){var e;return t=y.createCallback(t,r,3),dt(n,function(n,r,u){return t(n,r,u)?(e=r,false):void 0}),e},y.findLast=function(n,t,r){var e;return t=y.createCallback(t,r,3),vt(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0
}),e},y.findLastIndex=function(n,t,r){var e=n?n.length:0;for(t=y.createCallback(t,r,3);e--;)if(t(n[e],e,n))return e;return-1},y.findLastKey=function(n,t,r){var e;return t=y.createCallback(t,r,3),bt(n,function(n,r,u){return t(n,r,u)?(e=r,false):void 0}),e},y.has=function(n,t){return n?Br.call(n,t):false},y.identity=lr,y.indexOf=Rt,y.isArguments=Et,y.isArray=ge,y.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Er.call(n)==Z||false},y.isDate=function(n){return n&&typeof n=="object"&&Er.call(n)==nt||false
},y.isElement=rr,y.isEmpty=function(n){var t=true;if(!n)return t;var r=Er.call(n),e=n.length;return r==Y||r==ot||r==Q||r==et&&typeof e=="number"&&er(n.splice)?!e:(dt(n,function(){return t=false}),t)},y.isEqual=function(n,t,r,e){return _t(n,t,typeof r=="function"&&ct(r,e,2))},y.isFinite=function(n){return Vr(n)&&!Xr(parseFloat(n))},y.isFunction=er,y.isNaN=function(n){return or(n)&&n!=+n},y.isNull=function(n){return null===n},y.isNumber=or,y.isObject=ur,y.isPlainObject=he,y.isRegExp=function(n){return n&&typeof n=="object"&&Er.call(n)==ut||false
},y.isString=ir,y.isUndefined=function(n){return typeof n=="undefined"},y.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?Hr(0,e+r):Jr(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},y.mixin=pr,y.noConflict=function(){return n._=Sr,this},y.noop=sr,y.now=be,y.parseInt=_e,y.random=function(n,t,r){var e=null==n,u=null==t;return null==r&&(u&&typeof n=="boolean"?(r=n,n=1):typeof t=="boolean"&&(r=t,u=true)),e&&u&&(t=1,u=false),n=+n||0,u?(t=n,n=0):t=+t||0,r||n%1||t%1?(r=Zr(),Jr(n+r*(t-n+parseFloat("1e-"+((r+"").length-1))),t)):kt(n,t)
},y.reduce=Xt,y.reduceRight=Gt,y.result=function(n,t,r){var e=null==n?_:n[t];return typeof e=="undefined"?r:er(e)?n[t]():e},y.runInContext=b,y.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:ve(n).length},y.some=Jt,y.sortedIndex=Ft,y.template=function(n,t,r){var e=y.templateSettings;n=kr(n||""),r=nr({},r,e);var u,o=nr({},r.imports,e.imports),e=ve(o),o=ar(o),i=0,a=r.interpolate||M,f="__p+='",a=wr((r.escape||M).source+"|"+a.source+"|"+(a===W?z:M).source+"|"+(r.evaluate||M).source+"|$","g");
n.replace(a,function(t,r,e,o,a,c){return e||(e=o),f+=n.slice(i,c).replace(V,l),r&&(f+="'+__e("+r+")+'"),a&&(u=true,f+="';"+a+";\n__p+='"),e&&(f+="'+((__t=("+e+"))==null?'':__t)+'"),i=c+t.length,t}),f+="';",a=r=r.variable,a||(r="obj",f="with("+r+"){"+f+"}"),f=(u?f.replace(I,""):f).replace(T,"$1").replace(F,"$1;"),f="function("+r+"){"+(a?"":r+"||("+r+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+f+"return __p}";try{var c=mr(e,"return "+f).apply(_,o)
}catch(p){throw p.source=f,p}return t?c(t):(c.source=f,c)},y.trim=ye,y.trimLeft=me,y.trimRight=de,y.unescape=function(n){return null==n?"":(n=kr(n),0>n.indexOf(";")?n:n.replace($,d))},y.uniqueId=function(n){var t=++R;return kr(null==n?"":n)+t},y.all=zt,y.any=Jt,y.detect=Pt,y.findWhere=Pt,y.foldl=Xt,y.foldr=Gt,y.include=Wt,y.inject=Xt,pr(function(){var n={};return dt(y,function(t,r){y.prototype[r]||(n[r]=t)}),n}(),false),y.first=Nt,y.last=function(n,t,r){var e=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;
for(t=y.createCallback(t,r,3);o--&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n?n[u-1]:_;return e=u-e,Tt(n,0<e?e:0)},y.sample=function(n,t,r){return n&&typeof n.length!="number"&&(n=ar(n)),null==t||r?n?n[kt(0,n.length-1)]:_:(n=Ht(n),n.length=Jr(Hr(0,t),n.length),n)},y.take=Nt,y.head=Nt,dt(y,function(n,t){var r="sample"!==t;y.prototype[t]||(y.prototype[t]=function(t,e){var u=this.__chain__,o=n(this.__wrapped__,t,e);return u||null!=t&&(!e||r&&typeof t=="function")?new m(o,u):o})}),y.VERSION=E,y.prototype.chain=function(){return this.__chain__=true,this
},y.prototype.toString=function(){return kr(this.__wrapped__)},y.prototype.value=qt,y.prototype.valueOf=qt,ht(["join","pop","shift"],function(n){var t=xr[n];y.prototype[n]=function(){var n=this.__chain__,r=t.apply(this.__wrapped__,arguments);return n?new m(r,n):r}}),ht(["push","reverse","sort","unshift"],function(n){var t=xr[n];y.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),ht(["concat","splice"],function(n){var t=xr[n];y.prototype[n]=function(){return new m(t.apply(this.__wrapped__,arguments),this.__chain__)
}}),y}var _,w=1,k=2,j=4,x=8,C=16,O=32,A=40,S=40,E="2.4.1",N="__lodash@"+E+"__",R=0,I=/\b__p\+='';/g,T=/\b(__p\+=)''\+/g,F=/(__e\(.*?\)|\b__t\))\+'';/g,$=/&(?:amp|lt|gt|quot|#39);/g,B=/[&<>"']/g,D=/<%-([\s\S]+?)%>/g,q=/<%([\s\S]+?)%>/g,W=/<%=([\s\S]+?)%>/g,z=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,L=/\w*$/,P=/^\s*function[ \n\r\t]+\w/,K=/^0[xX]/,M=/($^)/,U=/\bthis\b/,V=/['\n\r\t\u2028\u2029\\]/g,X=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",G=[],H=[],J="Array Boolean Date Function Math Number Object RegExp Set String _ clearTimeout document isFinite isNaN parseInt setTimeout TypeError window WinRTError".split(" "),Q="[object Arguments]",Y="[object Array]",Z="[object Boolean]",nt="[object Date]",tt="[object Function]",rt="[object Number]",et="[object Object]",ut="[object RegExp]",ot="[object String]",it={};
if(a)return a}return t.g-r.g}function f(n){return lt[n]}function l(n){return"\\"+st[n]}function c(){return X.pop()||[]}function p(n){n.length=0,X.length<S&&X.push(n)}function s(n){n.f=n.h=null,G.length<S&&G.push(n)}function g(n,t){return(n=null==n?"":n+"")?null==t?n.slice(y(n),m(n)+1):(t+="",n.slice(u(n,t),o(n,t)+1)):n}function h(n,t){return(n=null==n?"":n+"")?null==t?n.slice(y(n)):(t+="",n.slice(u(n,t))):n}function v(n,t){return(n=null==n?"":n+"")?null==t?n.slice(0,m(n)+1):(t+="",n.slice(0,o(n,t)+1)):n
}function y(n){for(var t=-1,r=n.length;++t<r;){var e=n.charCodeAt(t);if((160<e||9>e||13<e)&&32!=e&&160!=e&&5760!=e&&6158!=e&&(8192>e||8202<e&&8232!=e&&8233!=e&&8239!=e&&8287!=e&&12288!=e&&65279!=e))break}return t}function m(n){for(var t=n.length;t--;){var r=n.charCodeAt(t);if((160<r||9>r||13<r)&&32!=r&&160!=r&&5760!=r&&6158!=r&&(8192>r||8202<r&&8232!=r&&8233!=r&&8239!=r&&8287!=r&&12288!=r&&65279!=r))break}return t}function d(n){return ct[n]}function b(n){function u(n){var t=[];if(!ir(n))return t;
for(var r in n)qr.call(n,r)&&t.push(r);return t}function o(n,t){if(!ir(n))return n;for(var r in n)if(false===t(n[r],r,n))break;return n}function y(n){return n&&typeof n=="object"&&!ve(n)&&qr.call(n,"__wrapped__")?n:new m(n)}function m(n,t){this.__chain__=!!t,this.__wrapped__=n}function S(n){function t(){if(u)var n=xt(u,o,arguments);if(this instanceof t){var i=lt(r.prototype),n=r.apply(i,n||arguments);return ir(n)?n:i}return r.apply(e,n||arguments)}var r=n[0],e=n[3],u=n[4],o=n[6];return le(t,n),t}function X(n,t,r,e,u){if(r){var o=r(n);
if(typeof o!="undefined")return o}if(!ir(n))return n;var i=Rr.call(n);if(!it[i])return n;var a=oe[i];switch(i){case Z:case nt:return new a(+n);case rt:case ot:return new a(n);case ut:return o=a(n.source,L.exec(n)),o.lastIndex=n.lastIndex,o}if(i=ve(n),t){var f=!e;e||(e=c()),u||(u=c());for(var l=e.length;l--;)if(e[l]==n)return u[l];o=i?a(n.length):{}}else o=i?$t(n):tr({},n);return i&&(qr.call(n,"index")&&(o.index=n.index),qr.call(n,"input")&&(o.input=n.input)),t?(e.push(n),u.push(o),(i?ht:dt)(n,function(n,i){o[i]=X(n,t,r,e,u)
}),f&&(p(e),p(u)),o):o}function lt(n){return ir(n)?Vr(n):{}}function ct(n,t,r){if(typeof n!="function")return pr;if(typeof t=="undefined"||!("prototype"in n))return n;var e=n[N];if(typeof e=="undefined"&&(ie.funcNames&&(e=!n.name),e=e||!ie.funcDecomp,!e)){var u=Br.call(n);ie.funcNames||(e=!P.test(u)),e||(e=U.test(u),le(n,e))}if(false===e||true!==e&&e[1]&w)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)
};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)}}return Zt(n,t)}function pt(n){function t(){var n=c?o:this;if(i)var v=xt(i,f,arguments);if(a){for(var y=a,v=v||arguments,m=-1,d=l.length,b=-1,_=Qr(v.length-d,0),j=-1,x=y.length,A=yr(_+x);++b<_;)A[b]=v[b];for(_=b;++j<x;)A[_+j]=y[j];for(;++m<d;)A[_+partialHolders[m]]=v[b++];v=A}return s&&(y=arguments.length,y<u)?(v||(v=$t(arguments)),e|=C,e&=~O,g||(e&=~(w|k)),n=Qr(0,u-y),pt([r,e,n,o,v,null,[]])):(v||(v=arguments),p&&(r=n[h]),this instanceof t?(n=lt(r.prototype),y=r.apply(n,v),ir(y)?y:n):r.apply(n,v))
}var r=n[0],e=n[1],u=n[2],o=n[3],i=n[4],a=n[5],f=n[6],l=n[7],c=e&w,p=e&k,s=e&j,g=e&x,h=r;return le(t,n),t}function st(n,e){var u=-1,o=St(),i=n?n.length:0,a=[];for(fe&&e&&o===t&&e.length>=A&&(o=r,e=fe(e));++u<i;){var f=n[u];0>o(e,f)&&a.push(f)}return a}function ht(n,t){var r=-1,e=n?n.length:0;if(typeof e=="number")for(;++r<e&&false!==t(n[r],r,n););else dt(n,t);return n}function vt(n,t){var r=n?n.length:0;if(typeof r=="number")for(;r--&&false!==t(n[r],r,n););else bt(n,t)}function mt(n,t,r,e){e=(e||0)-1;for(var u=n?n.length:0,o=[];++e<u;){var i=n[e];
if(i&&typeof i=="object"&&typeof i.length=="number"&&(ve(i)||Rt(i))){t||(i=mt(i,t,r));var a=-1,f=i.length,l=o.length;for(o.length+=f;++a<f;)o[l++]=i[a]}else r||o.push(i)}return o}function dt(n,t){for(var r=-1,e=me(n),u=e.length;++r<u;){var o=e[r];if(false===t(n[o],o,n))break}return n}function bt(n,t){for(var r=me(n),e=r.length;e--;){var u=r[e];if(false===t(n[u],u,n))break}}function _t(n,t,r,e,u,i){if(r){var a=r(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;var f=typeof n,l=typeof t;
if(n===n&&(!n||"function"!=f&&"object"!=f)&&(!t||"function"!=l&&"object"!=l))return false;if(null==n||null==t)return n===t;if(l=Rr.call(n),f=Rr.call(t),l==Q&&(l=et),f==Q&&(f=et),l!=f)return false;switch(l){case Z:case nt:return+n==+t;case rt:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case ut:case ot:return n==xr(t)}if(f=l==Y,!f){var s=qr.call(n,"__wrapped__"),g=qr.call(t,"__wrapped__");if(s||g)return _t(s?n.__wrapped__:n,g?t.__wrapped__:t,r,e,u,i);if(l!=et)return false;if(l=n.constructor,s=t.constructor,l!=s&&!(qr.call(n,"constructor")&&qr.call(t,"constructor")||or(l)&&l instanceof l&&or(s)&&s instanceof s)&&"constructor"in n&&"constructor"in t)return false
}for(l=!u,u||(u=c()),i||(i=c()),s=u.length;s--;)if(u[s]==n)return i[s]==t;var h=0,a=true;if(u.push(n),i.push(t),f){if(s=n.length,h=t.length,(a=h==s)||e)for(;h--;)if(f=s,g=t[h],e)for(;f--&&!(a=_t(n[f],g,r,e,u,i)););else if(!(a=_t(n[h],g,r,e,u,i)))break}else o(t,function(t,o,f){return qr.call(f,o)?(h++,a=qr.call(n,o)&&_t(n[o],t,r,e,u,i)):void 0}),a&&!e&&o(n,function(n,t,r){return qr.call(r,t)?a=-1<--h:void 0});return u.pop(),i.pop(),l&&(p(u),p(i)),a}function wt(n,t,r,e,u){(ve(t)?ht:dt)(t,function(t,o){var i,a,f=t,l=n[o];
if(t&&((a=ve(t))||ye(t))){for(f=e.length;f--;)if(i=e[f]==t){l=u[f];break}if(!i){var c;r&&(f=r(l,t),c=typeof f!="undefined")&&(l=f),c||(l=a?ve(l)?l:[]:ye(l)?l:{}),e.push(t),u.push(l),c||wt(l,t,r,e,u)}}else r&&(f=r(l,t),typeof f=="undefined"&&(f=t)),typeof f!="undefined"&&(l=f);n[o]=l})}function kt(n,t){return n+$r(te()*(t-n+1))}function jt(n,e,u){var o=-1,i=St(),a=n?n.length:0,f=fe&&!e&&i===t&&a>=A,l=[];if(f)var s=fe(),i=r;else s=u?c():l;for(;++o<a;){var g=n[o],h=u?u(g,o,n):g;(e?!o||s[s.length-1]!==h:0>i(s,h))&&((u||f)&&s.push(h),l.push(g))
}return!f&&u&&p(s),l}function xt(n,t,r){for(var e=-1,u=t.length,o=-1,i=n.length,a=Qr(r.length-u,0),f=yr(a+i);++o<i;)f[o]=n[o];for(;++e<u;)f[t[e]]=r[e];for(;u<a;)f[o++]=r[u++];return f}function Ct(n,t){return function(r,e,u){var o=t?[[],[]]:{};e=y.createCallback(e,u,3),u=-1;var i=r?r.length:0;if(typeof i=="number")for(;++u<i;){var a=r[u];n(o,a,e(a,u,r),r)}else ht(r,function(t,r,u){n(o,t,e(t,r,u),u)});return o}}function Ot(n,t,r,e,u,o,i,a){var f=t&w,l=t&k,c=t&C,p=t&O;if(!l&&!or(n))throw new Cr;c&&!u.length&&(t&=~C,c=u=false),p&&!o.length&&(t&=~O,p=o=false);
var s=!l&&n[N];return s&&true!==s?(s=$t(s),s[4]&&(s[4]=$t(s[4])),s[5]&&(s[5]=$t(s[5])),typeof r=="number"&&(s[2]=r),n=s[1]&w,f&&!n&&(s[3]=e),!f&&n&&(t|=x),c&&(s[4]?Wr.apply(s[4],u):s[4]=u),p&&(s[5]?Kr.apply(s[5],o):s[5]=o),s[1]|=t,Ot.apply(null,s)):(null==r?r=l?0:n.length:0>r&&(r=0),c&&(i=At(u)),p&&(a=At(o)),s=[n,t,r,e,u,o,i,a],t==w||t==(w|C)?S(s):pt(s))}function At(n){for(var t=-1,r=n.length,e=[];++t<r;)n[t]===y&&e.push(t);return e}function St(){var n=(n=y.indexOf)===Tt?t:n;return n}function Et(n){return typeof n=="function"&&Ir.test(Br.call(n))
}function Nt(n){var t,r;return n&&Rr.call(n)==et&&(qr.call(n,"constructor")||(t=n.constructor,!or(t)||t instanceof t))?(o(n,function(n,t){r=t}),typeof r=="undefined"||qr.call(n,r)):false}function Rt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Rr.call(n)==Q||false}function It(n,t,r){var e=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=-1;for(t=y.createCallback(t,r,3);++o<u&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n?n[0]:_;return $t(n,0,0<e?e:0)}function Tt(n,r,e){var u=n?n.length:0;
if(typeof e=="number")e=0>e?Qr(0,u+e):e||0;else if(e)return e=Bt(n,r),u&&n[e]===r?e:-1;return t(n,r,e)}function Ft(n,t,r){if(typeof t!="number"&&null!=t){var e=0,u=-1,o=n?n.length:0;for(t=y.createCallback(t,r,3);++u<o&&t(n[u],u,n);)e++}else e=null==t||r?1:0<t?t:0;return $t(n,e)}function $t(n,t,r){var e=-1,u=n?n.length:0;for(typeof t=="undefined"?t=0:0>t?t=Qr(u+t,0):t>u&&(t=u),typeof r=="undefined"?r=u:0>r?r=Qr(u+r,0):r>u&&(r=u),u=r-t||0,r=yr(u);++e<u;)r[e]=n[t+e];return r}function Bt(n,t,r,e){var u=0,o=n?n.length:u;
for(r=r?y.createCallback(r,e,1):pr,t=r(t);u<o;)e=u+o>>>1,r(n[e])<t?u=e+1:o=e;return u}function Dt(n,t,r,e){var u=typeof t;return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),null!=r&&(r=y.createCallback(r,e,3)),jt(n,t,r)}function qt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,r=n?Xt(he(n,"length")):0,e=yr(0>r?0:r);++t<r;)e[t]=he(n,t);return e}function Wt(n,t){var r=-1,e=n?n.length:0,u={};for(t||!e||ve(n[0])||(t=[]);++r<e;){var o=n[r];t?u[o]=t[r]:o&&(u[o[0]]=o[1])
}return u}function zt(){return this.__wrapped__}function Lt(n,t,r){var e=n?n.length:0;if(r=typeof r=="number"?r:0,typeof e=="number"){if(r>=e)return false;if(typeof n=="string"||!ve(n)&&fr(n))return Ur?Ur.call(n,t,r):-1<n.indexOf(t,r);var u=St();return r=(0>r?Qr(0,e+r):r)||0,-1<u(n,t,r)}var o=-1,i=false;return ht(n,function(n){return++o<r?void 0:!(i=n===t)}),i}function Pt(n,t,r){var e=true;t=y.createCallback(t,r,3),r=-1;var u=n?n.length:0;if(typeof u=="number"){for(;++r<u;)if(!t(n[r],r,n))return false}else ht(n,function(n,r,u){return e=!!t(n,r,u)
});return e}function Kt(n,t,r){var e=[];t=y.createCallback(t,r,3),r=-1;var u=n?n.length:0;if(typeof u=="number")for(;++r<u;){var o=n[r];t(o,r,n)&&e.push(o)}else ht(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function Mt(n,t,r){t=y.createCallback(t,r,3),r=-1;var e=n?n.length:0;if(typeof e!="number"){var u;return ht(n,function(n,r,e){return t(n,r,e)?(u=n,false):void 0}),u}for(;++r<e;){var o=n[r];if(t(o,r,n))return o}}function Ut(n,t,r){var e=-1,u=n?n.length:0;if(t=t&&typeof r=="undefined"?t:ct(t,r,3),typeof u=="number")for(;++e<u&&false!==t(n[e],e,n););else ht(n,t);
return n}function Vt(n,t,r){var e=n?n.length:0;if(t=t&&typeof r=="undefined"?t:ct(t,r,3),typeof e=="number")for(;e--&&false!==t(n[e],e,n););else vt(n,t);return n}function Ht(n,t,r){var e=-1,u=n?n.length:0;if(t=y.createCallback(t,r,3),typeof u=="number")for(var o=yr(u);++e<u;)o[e]=t(n[e],e,n);else o=[],ht(n,function(n,r,u){o[++e]=t(n,r,u)});return o}function Xt(n,t,r){var u=-1/0,o=u,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&ve(n))for(r=-1,i=n.length;++r<i;){var a=n[r];a>o&&(o=a)
}else t=null==t&&fr(n)?e:y.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r>u&&(u=r,o=n)});return o}function Gt(n,t,r,e){var u=3>arguments.length;t=y.createCallback(t,e,4);var o=-1,i=n?n.length:0;if(typeof i=="number")for(u&&i&&(r=n[++o]);++o<i;)r=t(r,n[o],o,n);else ht(n,function(n,e,o){r=u?(u=false,n):t(r,n,e,o)});return r}function Jt(n,t,r,e){var u=3>arguments.length;return t=y.createCallback(t,e,4),vt(n,function(n,e,o){r=u?(u=false,n):t(r,n,e,o)}),r}function Qt(n){var t=-1,r=n?n.length:0,e=yr(typeof r=="number"?r:0);
return ht(n,function(n){var r=kt(0,++t);e[t]=e[r],e[r]=n}),e}function Yt(n,t,r){var e;t=y.createCallback(t,r,3),r=-1;var u=n?n.length:0;if(typeof u=="number"){for(;++r<u;)if(t(n[r],r,n))return true}else ht(n,function(n,r,u){return!(e=t(n,r,u))});return!!e}function Zt(n,t){if(3>arguments.length)return Ot(n,w,null,t);if(n)var r=n[N]?n[N][2]:n.length,e=$t(arguments,2),r=r-e.length;return Ot(n,w|C,r,t,e)}function nr(n,t,r){function e(){c&&Fr(c),i=c=p=_,(h||g!==t)&&(s=we(),a=n.apply(l,o),c||i||(o=l=null))
}function u(){var r=t-(we()-f);0>=r||r>t?(i&&Fr(i),r=p,i=c=p=_,r&&(s=we(),a=n.apply(l,o),c||i||(o=l=null))):c=Lr(u,r)}var o,i,a,f,l,c,p,s=0,g=false,h=true;if(!or(n))throw new Cr;if(t=Qr(0,t)||0,true===r)var v=true,h=false;else ir(r)&&(v=r.leading,g="maxWait"in r&&(Qr(t,r.maxWait)||0),h="trailing"in r?r.trailing:h);return function(){if(o=arguments,f=we(),l=this,p=h&&(c||!v),false===g)var r=v&&!c;else{i||v||(s=f);var y=g-(f-s),m=0>=y||y>g;m?(i&&(i=Fr(i)),s=f,a=n.apply(l,o)):i||(i=Lr(e,y))}return m&&c?c=Fr(c):c||t===g||(c=Lr(u,t)),r&&(m=true,a=n.apply(l,o)),!m||c||i||(o=l=null),a
}}function tr(n,t,r){var e=arguments,u=0,o=e.length,i=typeof r;if("number"!=i&&"string"!=i||!e[3]||e[3][r]!==t||(o=2),3<o&&"function"==typeof e[o-2])var a=ct(e[--o-1],e[o--],2);else 2<o&&"function"==typeof e[o-1]&&(a=e[--o]);for(;++u<o;)if(t=e[u],ir(t))for(var i=-1,f=me(t),l=f.length;++i<l;){var c=f[i];n[c]=a?a(n[c],t[c]):t[c]}return n}function rr(n,t,r){var e=arguments,u=0,o=e.length,i=typeof r;for("number"!=i&&"string"!=i||!e[3]||e[3][r]!==t||(o=2);++u<o;)if(t=e[u],ir(t))for(var i=-1,a=me(t),f=a.length;++i<f;){var l=a[i];
"undefined"==typeof n[l]&&(n[l]=t[l])}return n}function er(n){var t=[];return o(n,function(n,r){or(n)&&t.push(r)}),t.sort()}function ur(n){return n&&typeof n=="object"&&1===n.nodeType&&-1<Rr.call(n).indexOf("Element")||false}function or(n){return typeof n=="function"}function ir(n){var t=typeof n;return n&&("function"==t||"object"==t)||false}function ar(n){var t=typeof n;return"number"==t||n&&"object"==t&&Rr.call(n)==rt||false}function fr(n){return typeof n=="string"||n&&typeof n=="object"&&Rr.call(n)==ot||false
}function lr(n){for(var t=-1,r=me(n),e=r.length,u=yr(e);++t<e;)u[t]=n[r[t]];return u}function cr(n,t,r){var e=typeof n;return"function"==e||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||ct(n,t,r):"object"!=e?vr(n):sr(n)}function pr(n){return n}function sr(n){n||(n={});var t=me(n),r=t[0],e=n[r];return 1!=t.length||e!==e||ir(e)?function(r){for(var e=t.length,u=false;e--&&(u=t[e],u=qr.call(r,u)&&_t(r[u],n[u],null,true)););return u}:function(n){return qr.call(n,r)?(n=n[r],e===n&&(0!==e||1/e==1/n)):false
}}function gr(n,t,r){var e=true,u=t&&er(t);t&&(r||u.length)||(null==r&&(r=t),t=n,n=y,u=er(t)),false===r?e=false:ir(r)&&"chain"in r&&(e=r.chain),r=-1;for(var o=or(n),i=u?u.length:0;++r<i;){var a=u[r],f=n[a]=t[a];o&&(n.prototype[a]=function(t){return function(){var r=this.__chain__,u=this.__wrapped__,o=[u];if(Wr.apply(o,arguments),o=t.apply(n,o),e||r){if(u===o&&ir(o))return this;o=new n(o),o.__chain__=r}return o}}(f))}}function hr(){}function vr(n){return function(t){return t[n]}}n=n?yt.defaults(gt.Object(),n,yt.pick(gt,J)):gt;
var yr=n.Array,mr=n.Boolean,dr=n.Date,br=n.Function,_r=n.Math,wr=n.Number,kr=n.Object,jr=n.RegExp,xr=n.String,Cr=n.TypeError,Or=yr.prototype,Ar=kr.prototype,Sr=xr.prototype,Er=(Er=n.window)&&Er.document,Nr=n._,Rr=Ar.toString,Ir=jr("^"+xr(Rr).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Tr=_r.ceil,Fr=n.clearTimeout,$r=_r.floor,Br=br.prototype.toString,Dr=Et(Dr=kr.getPrototypeOf)&&Dr,qr=Ar.hasOwnProperty,Wr=Or.push,zr=Et(zr=n.Set)&&zr,Lr=n.setTimeout,Pr=Or.splice,Kr=Or.unshift,Mr=function(){try{var n={},t=Et(t=kr.defineProperty)&&t,r=t(n,n,n)&&t
}catch(e){}return r}(),Ur=Et(Ur=Sr.contains)&&Ur,Vr=Et(Vr=kr.create)&&Vr,Hr=Et(Hr=yr.isArray)&&Hr,Xr=n.isFinite,Gr=n.isNaN,Jr=Et(Jr=kr.keys)&&Jr,Qr=_r.max,Yr=_r.min,Zr=Et(Zr=dr.now)&&Zr,ne=n.parseInt,te=_r.random,re=Et(re=Sr.trim)&&!re.call(H)&&re,ee=Et(ee=Sr.trimLeft)&&!ee.call(H)&&ee,ue=Et(ue=Sr.trimRight)&&!ue.call(H)&&ue,oe={};oe[Y]=yr,oe[Z]=mr,oe[nt]=dr,oe[tt]=br,oe[et]=kr,oe[rt]=wr,oe[ut]=jr,oe[ot]=xr,m.prototype=y.prototype;var ie=y.support={};ie.funcDecomp=!Et(n.WinRTError)&&U.test(b),ie.funcNames=typeof br.name=="string";
try{ie.dom=11===Er.createDocumentFragment().nodeType}catch(ae){ie.dom=false}y.templateSettings={escape:D,evaluate:q,interpolate:W,variable:"",imports:{_:y}},Vr||(lt=function(){function t(){}return function(r){if(ir(r)){t.prototype=r;var e=new t;t.prototype=null}return e||n.Object()}}());var fe=zr&&function(n){var t=new zr,r=n?n.length:0;for(t.push=t.add;r--;)t.push(n[r]);return t},le=Mr?function(n,t){ft.value=t,Mr(n,N,ft)}:hr,ce=Ct(function(n,t,r){qr.call(n,r)?n[r]++:n[r]=1}),pe=Ct(function(n,t,r){qr.call(n,r)?n[r].push(t):n[r]=[t]
}),se=Ct(function(n,t,r){n[r]=t}),ge=Ct(function(n,t,r){n[r?0:1].push(t)},true),he=Ht,ve=Hr||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Rr.call(n)==Y||false};ie.dom||(ur=function(n){return n&&typeof n=="object"&&1===n.nodeType&&!ye(n)||false});var ye=Dr?function(n){if(!n||Rr.call(n)!=et)return false;var t=n.valueOf,r=Et(t)&&(r=Dr(t))&&Dr(r);return r?n==r||Dr(n)==r:Nt(n)}:Nt,me=Jr?function(n){return ir(n)?Jr(n):[]}:u,de=re?function(n,t){return null==n?"":null==t?re.call(n):g(n,t)}:g,be=ee?function(n,t){return null==n?"":null==t?ee.call(n):h(n,t)
}:h,_e=ue?function(n,t){return null==n?"":null==t?ue.call(n):v(n,t)}:v,we=Zr||function(){return(new dr).getTime()},ke=8==ne(H+"08")?ne:function(n,t){return n=de(n),ne(n,+t||(K.test(n)?16:10))};return y.after=function(n,t){if(!or(t))throw new Cr;return function(){return 1>--n?t.apply(this,arguments):void 0}},y.assign=tr,y.at=function(n,t){var r=arguments,e=-1,u=mt(r,true,false,1),o=u.length,i=typeof t;for("number"!=i&&"string"!=i||!r[2]||r[2][t]!==n||(o=1),r=yr(o);++e<o;)r[e]=n[u[e]];return r},y.bind=Zt,y.bindAll=function(n){for(var t=1<arguments.length?mt(arguments,true,false,1):er(n),r=-1,e=t.length;++r<e;){var u=t[r];
n[u]=Ot(n[u],w,null,n)}return n},y.bindKey=function(n,t){return 3>arguments.length?Ot(t,w|k,null,n):Ot(t,w|k|C,null,n,$t(arguments,2))},y.chain=function(n){return n=new m(n),n.__chain__=true,n},y.compact=function(n){for(var t=-1,r=n?n.length:0,e=0,u=[];++t<r;){var o=n[t];o&&(u[e++]=o)}return u},y.compose=function(){for(var n=arguments,t=n.length,r=t;r--;)if(!or(n[r]))throw new Cr;return function(){for(var r=t-1,e=n[r].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},y.constant=function(n){return function(){return n
}},y.countBy=ce,y.create=function(n,t){var r=lt(n);return t?tr(r,t):r},y.createCallback=cr,y.curry=function(n,t){return typeof t!="number"&&(t=+t||(n?n.length:0)),Ot(n,j,t)},y.debounce=nr,y.defaults=rr,y.defer=function(n){if(!or(n))throw new Cr;var t=$t(arguments,1);return Lr(function(){n.apply(_,t)},1)},y.delay=function(n,t){if(!or(n))throw new Cr;var r=$t(arguments,2);return Lr(function(){n.apply(_,r)},t)},y.difference=function(n){return st(n,mt(arguments,true,true,1))},y.filter=Kt,y.flatten=function(n,t,r,e){var u=typeof t;
return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),null!=r&&(n=Ht(n,r,e)),mt(n,t)},y.forEach=Ut,y.forEachRight=Vt,y.forIn=function(n,t,r){return t=t&&typeof r=="undefined"?t:ct(t,r,3),o(n,t)},y.forInRight=function(n,t,r){var e=[];o(n,function(n,t){e.push(t,n)});var u=e.length;for(t=ct(t,r,3);u--&&false!==t(e[u--],e[u],n););return n},y.forOwn=function(n,t,r){return t=t&&typeof r=="undefined"?t:ct(t,r,3),dt(n,t)},y.forOwnRight=function(n,t,r){var e=me(n),u=e.length;
for(t=ct(t,r,3);u--&&(r=e[u],false!==t(n[r],r,n)););return n},y.functions=er,y.groupBy=pe,y.indexBy=se,y.initial=function(n,t,r){var e=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=y.createCallback(t,r,3);o--&&t(n[o],o,n);)e++}else e=null==t||r?1:t||e;return e=u-e,$t(n,0,0<e?e:0)},y.intersection=function(){for(var n=[],e=-1,u=arguments.length,o=c(),i=St(),a=fe&&i===t,f=c();++e<u;){var l=arguments[e];(ve(l)||Rt(l))&&(n.push(l),o.push(a&&l.length>=A&&fe(e?n[e]:f)))}var a=n[0],s=-1,g=a?a.length:0,h=[];
n:for(;++s<g;){var v=o[0],l=a[s];if(0>(v?r(v,l):i(f,l))){for(e=u,(v||f).push(l);--e;)if(v=o[e],0>(v?r(v,l):i(n[e],l)))continue n;h.push(l)}}return p(o),p(f),h},y.invert=function(n,t){for(var r=-1,e=me(n),u=e.length,o={};++r<u;){var i=e[r],a=n[i];t?qr.call(o,a)?o[a].push(i):o[a]=[i]:o[a]=i}return o},y.invoke=function(n,t){var r=-1,e=typeof t=="function",u=n?n.length:0,o=yr(typeof u=="number"?u:0);if(3>arguments.length&&typeof u=="number")for(;++r<u;){var i=n[r];o[r]=e?t.call(i):i[t]()}else{var a=$t(arguments,2);
ht(n,function(n){o[++r]=(e?t:n[t]).apply(n,a)})}return o},y.keys=me,y.map=Ht,y.mapValues=function(n,t,r){var e={};return t=y.createCallback(t,r,3),dt(n,function(n,r,u){e[r]=t(n,r,u)}),e},y.matches=sr,y.max=Xt,y.memoize=function(n,t){function r(){var e=r.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return qr.call(e,u)?e[u]:e[u]=n.apply(this,arguments)}if(!or(n))throw new Cr;return r.cache={},r},y.merge=function(n,t,r){if(!ir(n))return n;var e=arguments,u=e.length,o=typeof r;if("number"!=o&&"string"!=o||!e[3]||e[3][r]!==t||(u=2),3<u&&"function"==typeof e[u-2])var i=ct(e[--u-1],e[u--],2);
else 2<u&&"function"==typeof e[u-1]&&(i=e[--u]);for(var e=$t(arguments,1,u),o=-1,a=c(),f=c();++o<u;)wt(n,e[o],i,a,f);return p(a),p(f),n},y.min=function(n,t,r){var u=1/0,o=u,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&ve(n))for(r=-1,i=n.length;++r<i;){var a=n[r];a<o&&(o=a)}else t=null==t&&fr(n)?e:y.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r<u&&(u=r,o=n)});return o},y.omit=function(n,t,r){var e={};if(typeof t!="function"){for(var u=mt(arguments,true,false,1),i=u.length;i--;)u[i]=xr(u[i]);
var a=[];o(n,function(n,t){a.push(t)});for(var f=-1,a=st(a,u),i=a.length;++f<i;)u=a[f],e[u]=n[u]}else t=y.createCallback(t,r,3),o(n,function(n,r,u){t(n,r,u)||(e[r]=n)});return e},y.once=function(n){var t,r;if(!or(n))throw new Cr;return function(){return t?r:(t=true,r=n.apply(this,arguments),n=null,r)}},y.pairs=function(n){for(var t=-1,r=me(n),e=r.length,u=yr(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},y.partial=function(n){if(n)var t=n[N]?n[N][2]:n.length,r=$t(arguments,1),t=t-r.length;return Ot(n,C,t,null,r)
},y.partialRight=function(n){if(n)var t=n[N]?n[N][2]:n.length,r=$t(arguments,1),t=t-r.length;return Ot(n,O,t,null,null,r)},y.partition=ge,y.pick=function(n,t,r){var e={};if(typeof t!="function")for(var u=-1,i=mt(arguments,true,false,1),a=ir(n)?i.length:0;++u<a;){var f=i[u];f in n&&(e[f]=n[f])}else t=y.createCallback(t,r,3),o(n,function(n,r,u){t(n,r,u)&&(e[r]=n)});return e},y.pluck=he,y.property=vr,y.pull=function(n){for(var t=arguments,r=0,e=t.length,u=n?n.length:0;++r<e;)for(var o=-1,i=t[r];++o<u;)n[o]===i&&(Pr.call(n,o--,1),u--);
return n},y.range=function(n,t,r){n=+n||0,r=typeof r=="number"?r:+r||1,null==t&&(t=n,n=0);var e=-1;t=Qr(0,Tr((t-n)/(r||1)));for(var u=yr(t);++e<t;)u[e]=n,n+=r;return u},y.reject=function(n,t,r){return t=y.createCallback(t,r,3),Kt(n,function(n,r,e){return!t(n,r,e)})},y.remove=function(n,t,r){var e=-1,u=n?n.length:0,o=[];for(t=y.createCallback(t,r,3);++e<u;)r=n[e],t(r,e,n)&&(o.push(r),Pr.call(n,e--,1),u--);return o},y.rest=Ft,y.shuffle=Qt,y.slice=$t,y.sortBy=function(n,t,r){var e=-1,u=t&&ve(t),o=n?n.length:0,f=yr(typeof o=="number"?o:0);
for(u||(t=y.createCallback(t,r,3)),ht(n,function(n,r,o){if(u)for(o=t.length,r=yr(o);o--;)r[o]=n[t[o]];else r=t(n,r,o);o=f[++e]=G.pop()||{f:null,g:0,h:null},o.f=r,o.g=e,o.h=n}),o=f.length,f.sort(u?a:i);o--;)n=f[o],f[o]=n.h,s(n);return f},y.tap=function(n,t,r){return t.call(r,n),n},y.throttle=function(n,t,r){var e=true,u=true;if(!or(n))throw new Cr;return false===r?e=false:ir(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),at.leading=e,at.maxWait=t,at.trailing=u,nr(n,t,at)},y.times=function(n,t,r){n=-1<(n=+n)?n:0;
var e=-1,u=yr(n);for(t=ct(t,r,1);++e<n;)u[e]=t(e);return u},y.toArray=function(n){return n&&typeof n.length=="number"?$t(n):lr(n)},y.transform=function(n,t,r,e){var u=ve(n);if(null==r)if(u)r=[];else{var o=n&&n.constructor;r=lt(o&&o.prototype)}return t&&(t=y.createCallback(t,e,4),(u?ht:dt)(n,function(n,e,u){return t(r,n,e,u)})),r},y.union=function(){return jt(mt(arguments,true,true))},y.uniq=Dt,y.values=lr,y.where=Kt,y.without=function(n){return st(n,$t(arguments,1))},y.wrap=function(n,t){return Ot(t,C,null,null,[n])
},y.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var r=arguments[n];if(ve(r)||Rt(r))var e=e?st(e,r).concat(st(r,e)):r}return e?jt(e):[]},y.zip=qt,y.zipObject=Wt,y.callback=cr,y.collect=Ht,y.drop=Ft,y.each=Ut,y.eachRight=Vt,y.extend=tr,y.methods=er,y.object=Wt,y.select=Kt,y.tail=Ft,y.unique=Dt,y.unzip=qt,gr(tr({},y)),y.capitalize=function(n){return null==n?"":(n=xr(n),n.charAt(0).toUpperCase()+n.slice(1))},y.clone=function(n,t,r,e){var u=typeof t;return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]!==n||(r=null)),X(n,t,typeof r=="function"&&ct(r,e,1))
},y.cloneDeep=function(n,t,r){return X(n,true,typeof t=="function"&&ct(t,r,1))},y.contains=Lt,y.escape=function(n){return null==n?"":xr(n).replace(B,f)},y.every=Pt,y.find=Mt,y.findIndex=function(n,t,r){var e=-1,u=n?n.length:0;for(t=y.createCallback(t,r,3);++e<u;)if(t(n[e],e,n))return e;return-1},y.findKey=function(n,t,r){var e;return t=y.createCallback(t,r,3),dt(n,function(n,r,u){return t(n,r,u)?(e=r,false):void 0}),e},y.findLast=function(n,t,r){var e;return t=y.createCallback(t,r,3),vt(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0
}),e},y.findLastIndex=function(n,t,r){var e=n?n.length:0;for(t=y.createCallback(t,r,3);e--;)if(t(n[e],e,n))return e;return-1},y.findLastKey=function(n,t,r){var e;return t=y.createCallback(t,r,3),bt(n,function(n,r,u){return t(n,r,u)?(e=r,false):void 0}),e},y.has=function(n,t){return n?qr.call(n,t):false},y.identity=pr,y.indexOf=Tt,y.isArguments=Rt,y.isArray=ve,y.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Rr.call(n)==Z||false},y.isDate=function(n){return n&&typeof n=="object"&&Rr.call(n)==nt||false
},y.isElement=ur,y.isEmpty=function(n){var t=true;if(!n)return t;var r=Rr.call(n),e=n.length;return r==Y||r==ot||r==Q||r==et&&typeof e=="number"&&or(n.splice)?!e:(dt(n,function(){return t=false}),t)},y.isEqual=function(n,t,r,e){return _t(n,t,typeof r=="function"&&ct(r,e,2))},y.isFinite=function(n){return Xr(n)&&!Gr(parseFloat(n))},y.isFunction=or,y.isNaN=function(n){return ar(n)&&n!=+n},y.isNull=function(n){return null===n},y.isNumber=ar,y.isObject=ir,y.isPlainObject=ye,y.isRegExp=function(n){return n&&typeof n=="object"&&Rr.call(n)==ut||false
},y.isString=fr,y.isUndefined=function(n){return typeof n=="undefined"},y.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?Qr(0,e+r):Yr(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},y.mixin=gr,y.noConflict=function(){return n._=Nr,this},y.noop=hr,y.now=we,y.parseInt=ke,y.random=function(n,t,r){var e=null==n,u=null==t;return null==r&&(u&&typeof n=="boolean"?(r=n,n=1):typeof t=="boolean"&&(r=t,u=true)),e&&u&&(t=1,u=false),n=+n||0,u?(t=n,n=0):t=+t||0,r||n%1||t%1?(r=te(),Yr(n+r*(t-n+parseFloat("1e-"+((r+"").length-1))),t)):kt(n,t)
},y.reduce=Gt,y.reduceRight=Jt,y.result=function(n,t,r){var e=null==n?_:n[t];return typeof e=="undefined"?r:or(e)?n[t]():e},y.runInContext=b,y.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:me(n).length},y.some=Yt,y.sortedIndex=Bt,y.template=function(n,t,r){var e=y.templateSettings;n=xr(n||""),r=rr({},r,e);var u,o=rr({},r.imports,e.imports),e=me(o),o=lr(o),i=0,a=r.interpolate||M,f="__p+='",a=jr((r.escape||M).source+"|"+a.source+"|"+(a===W?z:M).source+"|"+(r.evaluate||M).source+"|$","g");
n.replace(a,function(t,r,e,o,a,c){return e||(e=o),f+=n.slice(i,c).replace(V,l),r&&(f+="'+__e("+r+")+'"),a&&(u=true,f+="';"+a+";\n__p+='"),e&&(f+="'+((__t=("+e+"))==null?'':__t)+'"),i=c+t.length,t}),f+="';",a=r=r.variable,a||(r="obj",f="with("+r+"){"+f+"}"),f=(u?f.replace(I,""):f).replace(T,"$1").replace(F,"$1;"),f="function("+r+"){"+(a?"":r+"||("+r+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+f+"return __p}";try{var c=br(e,"return "+f).apply(_,o)
}catch(p){throw p.source=f,p}return t?c(t):(c.source=f,c)},y.trim=de,y.trimLeft=be,y.trimRight=_e,y.unescape=function(n){return null==n?"":(n=xr(n),0>n.indexOf(";")?n:n.replace($,d))},y.uniqueId=function(n){var t=++R;return xr(null==n?"":n)+t},y.all=Pt,y.any=Yt,y.detect=Mt,y.findWhere=Mt,y.foldl=Gt,y.foldr=Jt,y.include=Lt,y.inject=Gt,gr(function(){var n={};return dt(y,function(t,r){y.prototype[r]||(n[r]=t)}),n}(),false),y.first=It,y.last=function(n,t,r){var e=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;
for(t=y.createCallback(t,r,3);o--&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n?n[u-1]:_;return e=u-e,$t(n,0<e?e:0)},y.sample=function(n,t,r){return n&&typeof n.length!="number"&&(n=lr(n)),null==t||r?n?n[kt(0,n.length-1)]:_:(n=Qt(n),n.length=Yr(Qr(0,t),n.length),n)},y.take=It,y.head=It,dt(y,function(n,t){var r="sample"!==t;y.prototype[t]||(y.prototype[t]=function(t,e){var u=this.__chain__,o=n(this.__wrapped__,t,e);return u||null!=t&&(!e||r&&typeof t=="function")?new m(o,u):o})}),y.VERSION=E,y.prototype.chain=function(){return this.__chain__=true,this
},y.prototype.toString=function(){return xr(this.__wrapped__)},y.prototype.value=zt,y.prototype.valueOf=zt,ht(["join","pop","shift"],function(n){var t=Or[n];y.prototype[n]=function(){var n=this.__chain__,r=t.apply(this.__wrapped__,arguments);return n?new m(r,n):r}}),ht(["push","reverse","sort","unshift"],function(n){var t=Or[n];y.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),ht(["concat","splice"],function(n){var t=Or[n];y.prototype[n]=function(){return new m(t.apply(this.__wrapped__,arguments),this.__chain__)
}}),y}var _,w=1,k=2,j=4,x=8,C=16,O=32,A=40,S=40,E="2.4.1",N="__lodash@"+E+"__",R=0,I=/\b__p\+='';/g,T=/\b(__p\+=)''\+/g,F=/(__e\(.*?\)|\b__t\))\+'';/g,$=/&(?:amp|lt|gt|quot|#39);/g,B=/[&<>"']/g,D=/<%-([\s\S]+?)%>/g,q=/<%([\s\S]+?)%>/g,W=/<%=([\s\S]+?)%>/g,z=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,L=/\w*$/,P=/^\s*function[ \n\r\t]+\w/,K=/^0[xX]/,M=/($^)/,U=/\bthis\b/,V=/['\n\r\t\u2028\u2029\\]/g,H=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",X=[],G=[],J="Array Boolean Date Function Math Number Object RegExp Set String _ clearTimeout document isFinite isNaN parseInt setTimeout TypeError window WinRTError".split(" "),Q="[object Arguments]",Y="[object Array]",Z="[object Boolean]",nt="[object Date]",tt="[object Function]",rt="[object Number]",et="[object Object]",ut="[object RegExp]",ot="[object String]",it={};
it[tt]=false,it[Q]=it[Y]=it[Z]=it[nt]=it[rt]=it[et]=it[ut]=it[ot]=true;var at={leading:false,maxWait:0,trailing:false},ft={configurable:false,enumerable:false,value:null,writable:false},lt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ct={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},pt={"function":true,object:true},st={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},gt=pt[typeof window]&&window||this,ht=pt[typeof exports]&&exports&&!exports.nodeType&&exports,pt=pt[typeof module]&&module&&!module.nodeType&&module,vt=ht&&pt&&typeof global=="object"&&global;
!vt||vt.global!==vt&&vt.window!==vt&&vt.self!==vt||(gt=vt);var vt=pt&&pt.exports===ht&&ht,yt=b();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(gt._=yt, define(function(){return yt})):ht&&pt?vt?(pt.exports=yt)._=yt:ht._=yt:gt._=yt}).call(this);

View File

@@ -1,7 +1,7 @@
/**
* @license
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
* Build: `lodash underscore -o ./dist/lodash.underscore.js`
* Build: `lodash underscore moduleId="none" -o ./dist/lodash.underscore.js`
* Copyright 2012-2014 The Dojo Foundation <http://dojofoundation.org/>
* Based on Underscore.js 1.6.0 <http://underscorejs.org/LICENSE>
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
@@ -423,7 +423,8 @@
function baseBind(data) {
var func = data[0],
thisArg = data[3],
partialArgs = data[4];
partialArgs = data[4],
partialHolders = data[6];
function bound() {
// `Function#bind` spec
@@ -432,8 +433,7 @@
// avoid `arguments` object deoptimizations by using `slice` instead
// of `Array.prototype.slice.call` and not assigning `arguments` to a
// variable as a ternary expression
var args = slice(partialArgs);
push.apply(args, arguments);
var args = composeArgs(partialArgs, partialHolders, arguments);
}
// mimic the constructor's `return` behavior
// http://es5.github.io/#x13.2.2
@@ -523,7 +523,9 @@
arity = data[2],
thisArg = data[3],
partialArgs = data[4],
partialRightArgs = data[5];
partialRightArgs = data[5],
partialHolders = data[6],
partialRightHolders = data[7];
var isBind = bitmask & BIND_FLAG,
isBindKey = bitmask & BIND_KEY_FLAG,
@@ -534,23 +536,22 @@
function bound() {
var thisBinding = isBind ? thisArg : this;
if (partialArgs) {
var args = slice(partialArgs);
push.apply(args, arguments);
var args = composeArgs(partialArgs, partialHolders, arguments);
}
if (partialRightArgs || isCurry) {
args || (args = slice(arguments));
if (partialRightArgs) {
push.apply(args, partialRightArgs);
}
if (partialRightArgs) {
args = composeArgsRight(partialRightArgs, partialRightHolders, args || arguments);
}
if (isCurry) {
var argsLength = arguments.length;
if (isCurry && argsLength < arity) {
if (argsLength < arity) {
args || (args = slice(arguments));
bitmask |= PARTIAL_FLAG;
bitmask &= ~PARTIAL_RIGHT_FLAG
if (!isCurryBound) {
bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG);
}
var newArity = nativeMax(0, arity - argsLength);
return baseCreateWrapper([func, bitmask, newArity, thisArg, args]);
return baseCreateWrapper([func, bitmask, newArity, thisArg, args, null, []]);
}
}
args || (args = arguments);
@@ -899,6 +900,68 @@
return result;
}
/**
* Creates an array that is the composition of partially applied arguments,
* placeholders, and provided arguments into a single array of arguments.
*
* @private
* @param {Array} partialArg An array of arguments to prepend to those provided.
* @param {Array} partialHolders An array of `partialArgs` placeholder indexes.
* @param {Array|Object} args The provided arguments.
* @returns {Array} Returns a new array of composed arguments.
*/
function composeArgs(partialArgs, partialHolders, args) {
var index = -1,
length = partialHolders.length,
leftIndex = -1,
leftLength = partialArgs.length,
argsLength = nativeMax(args.length - length, 0),
result = Array(argsLength + leftLength);
while (++leftIndex < leftLength) {
result[leftIndex] = partialArgs[leftIndex];
}
while (++index < length) {
result[partialHolders[index]] = args[index];
}
while (length < argsLength) {
result[leftIndex++] = args[length++];
}
return result;
}
/**
* This function is like `composeArgs` except that the arguments composition
* is tailored for `_.partialRight`.
*
* @private
* @param {Array} partialRightArg An array of arguments to append to those provided.
* @param {Array} partialHolders An array of `partialRightArgs` placeholder indexes.
* @param {Array|Object} args The provided arguments.
* @returns {Array} Returns a new array of composed arguments.
*/
function composeArgsRight(partialRightArgs, partialRightHolders, args) {
var index = -1,
length = partialRightHolders.length,
argsIndex = -1,
argsLength = nativeMax(args.length - length, 0),
rightIndex = -1,
rightLength = partialRightArgs.length,
result = Array(argsLength + rightLength);
while (++argsIndex < argsLength) {
result[argsIndex] = args[argsIndex];
}
var pad = argsIndex;
while (++rightIndex < rightLength) {
result[pad + rightIndex] = partialRightArgs[rightIndex];
}
while (++index < length) {
result[pad + partialHolders[index]] = args[argsIndex++];
}
return result;
}
/**
* Creates a function that aggregates a collection, creating an object or
* array composed from the results of running each element of the collection
@@ -953,9 +1016,11 @@
* provided to the new function.
* @param {Array} [partialRightArgs] An array of arguments to append to those
* provided to the new function.
* @param {Array} [partialHolders] An array of `partialArgs` placeholder indexes.
* @param {Array} [partialRightArgs] An array of `partialRightArgs` placeholder indexes.
* @returns {Function} Returns the new function.
*/
function createWrapper(func, bitmask, arity, thisArg, partialArgs, partialRightArgs) {
function createWrapper(func, bitmask, arity, thisArg, partialArgs, partialRightArgs, partialHolders, partialRightHolders) {
var isBind = bitmask & BIND_FLAG,
isBindKey = bitmask & BIND_KEY_FLAG,
isPartial = bitmask & PARTIAL_FLAG,
@@ -977,13 +1042,39 @@
} else if (arity < 0) {
arity = 0;
}
if (isPartial) {
partialHolders = getHolders(partialArgs);
}
if (isPartialRight) {
partialRightHolders = getHolders(partialRightArgs);
}
// fast path for `_.bind`
var data = [func, bitmask, arity, thisArg, partialArgs, partialRightArgs];
var data = [func, bitmask, arity, thisArg, partialArgs, partialRightArgs, partialHolders, partialRightHolders];
return (bitmask == BIND_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG))
? baseBind(data)
: baseCreateWrapper(data);
}
/**
* Finds the indexes of all placeholder elements in a given array.
*
* @private
* @param {Array} array The array to inspect.
* @returns {Array} Returns a new array of placeholder indexes.
*/
function getHolders(array) {
var index = -1,
length = array.length,
result = [];
while (++index < length) {
if (array[index] === lodash) {
result.push(index);
}
}
return result;
}
/**
* Gets the appropriate "indexOf" function. If the `_.indexOf` method is
* customized this method returns the custom method, otherwise it returns
@@ -3375,7 +3466,7 @@
}
var delayed = function() {
var remaining = wait - (now() - stamp);
if (remaining <= 0) {
if (remaining <= 0 || remaining > wait) {
if (maxTimeoutId) {
clearTimeout(maxTimeoutId);
}
@@ -3420,7 +3511,7 @@
lastCalled = stamp;
}
var remaining = maxWait - (stamp - lastCalled),
isCalled = remaining <= 0;
isCalled = remaining <= 0 || remaining > maxWait;
if (isCalled) {
if (maxTimeoutId) {
@@ -5231,7 +5322,7 @@
// define as an anonymous module so, through path mapping, it can be
// referenced as the "underscore" module
define('underscore', function() {
define(function() {
return lodash;
});
}

View File

@@ -1,41 +1,42 @@
/**
* @license
* Lo-Dash 2.4.1 (Custom Build) lodash.com/license | Underscore.js 1.6.0 underscorejs.org/LICENSE
* Build: `lodash underscore exports="amd,commonjs,global,node" -o ./dist/lodash.underscore.js`
* Build: `lodash underscore moduleId="none" -o ./dist/lodash.underscore.js`
*/
;(function(){function n(n){var r=[];if(!J(n))return r;for(var t in n)Cr.call(n,t)&&r.push(t);return r}function r(n,r){if(J(n))for(var t in n)if(r(n[t],t,n)===cr)break}function t(n,r,t){t=(t||0)-1;for(var e=n?n.length:0;++t<e;)if(n[t]===r)return t;return-1}function e(n,r){var t;n:{t=n.f;var e=r.f;if(t!==e){if(t>e||typeof t=="undefined"){t=1;break n}if(t<e||typeof e=="undefined"){t=-1;break n}}t=0}return t||n.g-r.g}function u(n){return Tr[n]}function o(n){return"\\"+Or[n]}function i(n){return Ar[n]}function f(n){return n instanceof f?n:new a(n)
}function a(n,r){this.__chain__=!!r,this.__wrapped__=n}function l(n){function r(){if(u){var n=O(u);Pr.apply(n,arguments)}if(this instanceof r){var o=c(t.prototype),n=t.apply(o,n||arguments);return J(n)?n:o}return t.apply(e,n||arguments)}var t=n[0],e=n[3],u=n[4];return r}function c(n){return J(n)?Gr(n):{}}function p(n,r,t){if(typeof n!="function")return Y;if(typeof r=="undefined"||!("prototype"in n))return n;switch(t){case 1:return function(t){return n.call(r,t)};case 2:return function(t,e){return n.call(r,t,e)
};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return C(n,r)}function s(n){function r(){var n=a?o:this;if(i){var v=O(i);Pr.apply(v,arguments)}if(f||p){v||(v=O(arguments)),f&&Pr.apply(v,f);var y=arguments.length;if(p&&y<u)return e|=fr,e&=~ar,g||(e&=~(er|ur)),n=Qr(0,u-y),s([t,e,n,o,v])}return v||(v=arguments),l&&(t=n[h]),this instanceof r?(n=c(t.prototype),v=t.apply(n,v),J(v)?v:n):t.apply(n,v)}var t=n[0],e=n[1],u=n[2],o=n[3],i=n[4],f=n[5],a=e&er,l=e&ur,p=e&or,g=e&ir,h=t;
return r}function g(n,r){for(var t=-1,e=w(),u=n?n.length:0,o=[];++t<u;){var i=n[t];0>e(r,i)&&o.push(i)}return o}function h(n,r){var t=-1,e=n?n.length:0;if(typeof e=="number")for(;++t<e&&r(n[t],t,n)!==cr;);else for(var t=-1,e=at(n),u=e.length;++t<u;){var o=e[t];if(r(n[o],o,n)===cr)break}}function v(n,r){var t=n?n.length:0;if(typeof t=="number")for(;t--&&r(n[t],t,n)!==cr;);else for(var t=at(n),e=t.length;e--;){var u=t[e];if(r(n[u],u,n)===cr)break}}function y(n,r,t,e){e=(e||0)-1;for(var u=n?n.length:0,o=[];++e<u;){var i=n[e];
if(i&&typeof i=="object"&&typeof i.length=="number"&&(ft(i)||x(i))){r||(i=y(i,r,t));var f=-1,a=i.length,l=o.length;for(o.length+=a;++f<a;)o[l++]=i[f]}else t||o.push(i)}return o}function m(n,t,e,u){if(n===t)return 0!==n||1/n==1/t;var o=typeof n,i=typeof t;if(n===n&&(!n||"function"!=o&&"object"!=o)&&(!t||"function"!=i&&"object"!=i))return false;if(null==n||null==t)return n===t;if(i=Ir.call(n),o=Ir.call(t),i!=o)return false;switch(i){case br:case _r:return+n==+t;case dr:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;
case jr:case xr:return n==t+""}if(o=i==mr,!o){var a=n instanceof f,l=t instanceof f;if(a||l)return m(a?n.__wrapped__:n,l?t.__wrapped__:t,e,u);if(i!=wr)return false;if(i=Cr.call(n,"constructor"),a=Cr.call(t,"constructor"),i!==a||!i&&(i=n.constructor,a=t.constructor,i!=a&&!(H(i)&&i instanceof i&&H(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t))return false}for(e||(e=[]),u||(u=[]),i=e.length;i--;)if(e[i]==n)return u[i]==t;var c=true,p=0;if(e.push(n),u.push(t),o){if(p=t.length,c=p==n.length)for(;p--&&(c=m(n[p],t[p],e,u)););}else r(t,function(r,t,o){return Cr.call(o,t)?(p++,!(c=Cr.call(n,t)&&m(n[t],r,e,u))&&cr):void 0
}),c&&r(n,function(n,r,t){return Cr.call(t,r)?!(c=-1<--p)&&cr:void 0});return e.pop(),u.pop(),c}function b(n,r,t){for(var e=-1,u=w(),o=n?n.length:0,i=[],f=t?[]:i;++e<o;){var a=n[e],l=t?t(a,e,n):a;(r?!e||f[f.length-1]!==l:0>u(f,l))&&(t&&f.push(l),i.push(a))}return i}function _(n,r){return function(t,e,u){var o=r?[[],[]]:{};e=X(e,u,3),u=-1;var i=t?t.length:0;if(typeof i=="number")for(;++u<i;){var f=t[u];n(o,f,e(f,u,t),t)}else h(t,function(r,t,u){n(o,r,e(r,t,u),u)});return o}}function d(n,r,t,e,u){var o,i=r&ur,f=r&fr,a=r&ar;
if(!i&&!H(n))throw new TypeError;return f&&!u.length&&(r&=~fr,u=false),a&&!o.length&&(r&=~ar,o=false),null==t?t=i?0:n.length:0>t&&(t=0),n=[n,r,t,e,u,o],r==er||r==(er|fr)?l(n):s(n)}function w(){var n=(n=f.indexOf)===A?t:n;return n}function j(n){return typeof n=="function"&&Mr.test(zr.call(n))}function x(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Ir.call(n)==yr||false}function T(n,r,t){var e=0,u=n?n.length:0;if(typeof r!="number"&&null!=r){var o=-1;for(r=X(r,t,3);++o<u&&r(n[o],o,n);)e++}else if(e=r,null==e||t)return n?n[0]:tr;
return O(n,0,0<e?e:0)}function A(n,r,e){var u=n?n.length:0;if(typeof e=="number")e=0>e?Qr(0,u+e):e||0;else if(e)return e=k(n,r),u&&n[e]===r?e:-1;return t(n,r,e)}function E(n,r,t){if(typeof r!="number"&&null!=r){var e=0,u=-1,o=n?n.length:0;for(r=X(r,t,3);++u<o&&r(n[u],u,n);)e++}else e=null==r||t?1:0<r?r:0;return O(n,e)}function O(n,r,t){var e=-1,u=n?n.length:0;for(typeof r=="undefined"?r=0:0>r?r=Qr(u+r,0):r>u&&(r=u),typeof t=="undefined"?t=u:0>t?t=Qr(u+t,0):t>u&&(t=u),u=t-r||0,t=Array(u);++e<u;)t[e]=n[r+e];
return t}function k(n,r,t,e){var u=0,o=n?n.length:u;for(t=t?X(t,e,1):Y,r=t(r);u<o;)e=u+o>>>1,t(n[e])<r?u=e+1:o=e;return u}function S(n,r,t,e){var u=typeof r;return"boolean"!=u&&null!=r&&(e=t,t=r,r=false,"number"!=u&&"string"!=u||!e||e[t]!==n||(t=null)),null!=t&&(t=X(t,e,3)),b(n,r,t)}function N(n,r){var t=w(),e=n?n.length:0,u=false;return e&&typeof e=="number"?u=-1<t(n,r):h(n,function(n){return(u=n===r)&&cr}),u}function q(n,r,t){var e=true;r=X(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number"){for(;++t<u;)if(!r(n[t],t,n))return false
}else h(n,function(n,t,u){return!(e=!!r(n,t,u))&&cr});return e}function F(n,r,t){var e=[];r=X(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++t<u;){var o=n[t];r(o,t,n)&&e.push(o)}else h(n,function(n,t,u){r(n,t,u)&&e.push(n)});return e}function B(n,r,t){r=X(r,t,3),t=-1;var e=n?n.length:0;if(typeof e!="number"){var u;return h(n,function(n,t,e){return r(n,t,e)?(u=n,cr):void 0}),u}for(;++t<e;){var o=n[t];if(r(o,t,n))return o}}function R(n,r,t){var e=-1,u=n?n.length:0;if(r=r&&typeof t=="undefined"?r:p(r,t,3),typeof u=="number")for(;++e<u&&r(n[e],e,n)!==cr;);else h(n,r);
return n}function $(n,r,t){var e=-1,u=n?n.length:0;if(r=X(r,t,3),typeof u=="number")for(var o=Array(u);++e<u;)o[e]=r(n[e],e,n);else o=[],h(n,function(n,t,u){o[++e]=r(n,t,u)});return o}function I(n,r,t){var e=-1/0,u=e,o=typeof r;"number"!=o&&"string"!=o||!t||t[r]!==n||(r=null);var o=-1,i=n?n.length:0;if(null==r&&typeof i=="number")for(;++o<i;)t=n[o],t>u&&(u=t);else r=X(r,t,3),h(n,function(n,t,o){t=r(n,t,o),t>e&&(e=t,u=n)});return u}function M(n,r,t,e){var u=3>arguments.length;r=X(r,e,4);var o=-1,i=n?n.length:0;
if(typeof i=="number")for(u&&i&&(t=n[++o]);++o<i;)t=r(t,n[o],o,n);else h(n,function(n,e,o){t=u?(u=false,n):r(t,n,e,o)});return t}function D(n,r,t,e){var u=3>arguments.length;return r=X(r,e,4),v(n,function(n,e,o){t=u?(u=false,n):r(t,n,e,o)}),t}function W(n){var r=-1,t=n?n.length:0,e=Array(typeof t=="number"?t:0);return h(n,function(n){var t;t=++r,t=0+Wr(Zr()*(t-0+1)),e[r]=e[t],e[t]=n}),e}function z(n,r,t){var e;r=X(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number"){for(;++t<u;)if(r(n[t],t,n))return true
}else h(n,function(n,t,u){return(e=r(n,t,u))&&cr});return!!e}function C(n,r){if(3>arguments.length)return d(n,er,null,r);if(n)var t=n[lr]?n[lr][2]:n.length,e=O(arguments,2),t=t-e.length;return d(n,er|fr,t,r,e)}function P(n,r,t){function e(){c&&clearTimeout(c),i=c=p=tr,(h||g!==r)&&(s=lt(),f=n.apply(l,o),c||i||(o=l=null))}function u(){var t=r-(lt()-a);0<t?c=setTimeout(u,t):(i&&clearTimeout(i),t=p,i=c=p=tr,t&&(s=lt(),f=n.apply(l,o),c||i||(o=l=null)))}var o,i,f,a,l,c,p,s=0,g=false,h=true;if(!H(n))throw new TypeError;
if(r=Qr(0,r)||0,true===t)var v=true,h=false;else J(t)&&(v=t.leading,g="maxWait"in t&&(Qr(r,t.maxWait)||0),h="trailing"in t?t.trailing:h);return function(){if(o=arguments,a=lt(),l=this,p=h&&(c||!v),false===g)var t=v&&!c;else{i||v||(s=a);var y=g-(a-s),m=0>=y;m?(i&&(i=clearTimeout(i)),s=a,f=n.apply(l,o)):i||(i=setTimeout(e,y))}return m&&c?c=clearTimeout(c):c||r===g||(c=setTimeout(u,r)),t&&(m=true,f=n.apply(l,o)),!m||c||i||(o=l=null),f}}function U(n,r,t){if(!n)return n;var e=arguments,u=0,o=e.length,i=typeof t;for("number"!=i&&"string"!=i||!e[3]||e[3][t]!==r||(o=2);++u<o;)if(r=e[u])for(var f in r)n[f]=r[f];
return n}function V(n,r,t){if(!n)return n;var e=arguments,u=0,o=e.length,i=typeof t;for("number"!=i&&"string"!=i||!e[3]||e[3][t]!==r||(o=2);++u<o;)if(r=e[u])for(var f in r)"undefined"==typeof n[f]&&(n[f]=r[f]);return n}function G(n){var t=[];return r(n,function(n,r){H(n)&&t.push(r)}),t.sort()}function H(n){return typeof n=="function"}function J(n){var r=typeof n;return n&&("function"==r||"object"==r)||false}function K(n){var r=typeof n;return"number"==r||n&&"object"==r&&Ir.call(n)==dr||false}function L(n){return typeof n=="string"||n&&typeof n=="object"&&Ir.call(n)==xr||false
}function Q(n){for(var r=-1,t=at(n),e=t.length,u=Array(e);++r<e;)u[r]=n[t[r]];return u}function X(n,r,t){var e=typeof n;return"function"==e||null==n?(typeof r=="undefined"||!("prototype"in n))&&n||p(n,r,t):"object"!=e?rr(n):Z(n)}function Y(n){return n}function Z(n){n||(n={});var r=at(n);return function(t){for(var e=r.length,u=true;e--&&(u=r[e],u=Cr.call(t,u)&&t[u]===n[u]););return u}}function nr(n){for(var r=-1,t=G(n),e=t.length;++r<e;){var u=t[r];f.prototype[u]=function(){var r=f[u]=n[u];return function(){var n=[this.__wrapped__];
return Pr.apply(n,arguments),n=r.apply(f,n),this.__chain__?new a(n,true):n}}()}}function rr(n){return function(r){return r[n]}}var tr,er=1,ur=2,or=4,ir=8,fr=16,ar=32,lr="__lodash@2.4.1__",cr=lr+"breaker__",pr=0,sr=/&(?:amp|lt|gt|quot|#x27);/g,gr=/[&<>"']/g,hr=/($^)/,vr=/['\n\r\t\u2028\u2029\\]/g,yr="[object Arguments]",mr="[object Array]",br="[object Boolean]",_r="[object Date]",dr="[object Number]",wr="[object Object]",jr="[object RegExp]",xr="[object String]",Tr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},Ar={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'"},Er={"function":true,object:true},Or={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},kr=Er[typeof window]&&window||this,Sr=Er[typeof exports]&&exports&&!exports.nodeType&&exports,Nr=Er[typeof module]&&module&&!module.nodeType&&module,qr=Sr&&Nr&&typeof global=="object"&&global;
!qr||qr.global!==qr&&qr.window!==qr&&qr.self!==qr||(kr=qr);var Fr=Nr&&Nr.exports===Sr&&Sr,Br=Array.prototype,Rr=Object.prototype,$r=kr._,Ir=Rr.toString,Mr=RegExp("^"+(Ir+"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Dr=Math.ceil,Wr=Math.floor,zr=Function.prototype.toString,Cr=Rr.hasOwnProperty,Pr=Br.push,Ur=Rr.propertyIsEnumerable,Vr=Br.splice,Gr=j(Gr=Object.create)&&Gr,Hr=j(Hr=Array.isArray)&&Hr,Jr=kr.isFinite,Kr=kr.isNaN,Lr=j(Lr=Object.keys)&&Lr,Qr=Math.max,Xr=Math.min,Yr=j(Yr=Date.now)&&Yr,Zr=Math.random;
a.prototype=f.prototype;var nt={};!function(){var n={0:1,length:1};nt.spliceObjects=(Vr.call(n,0,1),!n[0])}(1),f.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},Gr||(c=function(){function n(){}return function(r){if(J(r)){n.prototype=r;var t=new n;n.prototype=null}return t||kr.Object()}}()),x(arguments)||(x=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Cr.call(n,"callee")&&!Ur.call(n,"callee")||false});var rt=_(function(n,r,t){Cr.call(n,t)?n[t]++:n[t]=1
}),tt=_(function(n,r,t){Cr.call(n,t)?n[t].push(r):n[t]=[r]}),et=_(function(n,r,t){n[t]=r}),ut=_(function(n,r,t){n[t?0:1].push(r)},true),ot=$,it=F,ft=Hr||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Ir.call(n)==mr||false};H(/x/)&&(H=function(n){return typeof n=="function"&&"[object Function]"==Ir.call(n)});var at=Lr?function(n){return J(n)?Lr(n):[]}:n,lt=Yr||function(){return(new Date).getTime()};f.after=function(n,r){if(!H(r))throw new TypeError;return function(){return 1>--n?r.apply(this,arguments):void 0
}},f.bind=C,f.bindAll=function(n){for(var r=1<arguments.length?y(arguments,true,false,1):G(n),t=-1,e=r.length;++t<e;){var u=r[t];n[u]=d(n[u],er,null,n)}return n},f.chain=function(n){return n=new a(n),n.__chain__=true,n},f.compact=function(n){for(var r=-1,t=n?n.length:0,e=0,u=[];++r<t;){var o=n[r];o&&(u[e++]=o)}return u},f.compose=function(){for(var n=arguments,r=n.length,t=r;t--;)if(!H(n[t]))throw new TypeError;return function(){for(var t=r-1,e=n[t].apply(this,arguments);t--;)e=n[t].call(this,e);return e
}},f.constant=function(n){return function(){return n}},f.countBy=rt,f.debounce=P,f.defaults=V,f.defer=function(n){if(!H(n))throw new TypeError;var r=O(arguments,1);return setTimeout(function(){n.apply(tr,r)},1)},f.delay=function(n,r){if(!H(n))throw new TypeError;var t=O(arguments,2);return setTimeout(function(){n.apply(tr,t)},r)},f.difference=function(n){return g(n,y(arguments,true,true,1))},f.filter=F,f.flatten=function(n,r,t){var e=typeof r;return"number"!=e&&"string"!=e||!t||t[r]!==n||(r=false),y(n,r)
},f.forEach=R,f.functions=G,f.groupBy=tt,f.indexBy=et,f.initial=function(n,r,t){var e=0,u=n?n.length:0;if(typeof r!="number"&&null!=r){var o=u;for(r=X(r,t,3);o--&&r(n[o],o,n);)e++}else e=null==r||t?1:r||e;return e=u-e,O(n,0,0<e?e:0)},f.intersection=function(){for(var n=[],r=-1,t=arguments.length;++r<t;){var e=arguments[r];(ft(e)||x(e))&&n.push(e)}var u=n[0],o=-1,i=w(),f=u?u.length:0,a=[];n:for(;++o<f;)if(e=u[o],0>i(a,e)){for(r=t;--r;)if(0>i(n[r],e))continue n;a.push(e)}return a},f.invert=function(n){for(var r=-1,t=at(n),e=t.length,u={};++r<e;){var o=t[r];
u[n[o]]=o}return u},f.invoke=function(n,r){var t=-1,e=typeof r=="function",u=n?n.length:0,o=Array(typeof u=="number"?u:0);if(3>arguments.length&&typeof u=="number")for(;++t<u;){var i=n[t];o[t]=e?r.call(i):i[r]()}else{var f=O(arguments,2);h(n,function(n){o[++t]=(e?r:n[r]).apply(n,f)})}return o},f.keys=at,f.map=$,f.matches=Z,f.max=I,f.memoize=function(n,r){var t={};return function(){var e=r?r.apply(this,arguments):"_"+arguments[0];return Cr.call(t,e)?t[e]:t[e]=n.apply(this,arguments)}},f.min=function(n,r,t){var e=1/0,u=e,o=typeof r;
"number"!=o&&"string"!=o||!t||t[r]!==n||(r=null);var o=-1,i=n?n.length:0;if(null==r&&typeof i=="number")for(;++o<i;)t=n[o],t<u&&(u=t);else r=X(r,t,3),h(n,function(n,t,o){t=r(n,t,o),t<e&&(e=t,u=n)});return u},f.omit=function(n){for(var t=y(arguments,true,false,1),e=t.length,u={};e--;)t[e]=t[e]+"";var o=[];r(n,function(n,r){o.push(r)});for(var i=-1,o=g(o,t),e=o.length;++i<e;)t=o[i],u[t]=n[t];return u},f.once=function(n){var r,t;if(!H(n))throw new TypeError;return function(){return r?t:(r=true,t=n.apply(this,arguments),n=null,t)
}},f.pairs=function(n){for(var r=-1,t=at(n),e=t.length,u=Array(e);++r<e;){var o=t[r];u[r]=[o,n[o]]}return u},f.partial=function(n){if(n)var r=n[lr]?n[lr][2]:n.length,t=O(arguments,1),r=r-t.length;return d(n,fr,r,null,t)},f.partition=ut,f.pick=function(n){for(var r=-1,t=y(arguments,true,false,1),e=t.length,u={};++r<e;){var o=t[r];o in n&&(u[o]=n[o])}return u},f.pluck=ot,f.property=rr,f.range=function(n,r,t){n=+n||0,t=+t||1,null==r&&(r=n,n=0);var e=-1;r=Qr(0,Dr((r-n)/t));for(var u=Array(r);++e<r;)u[e]=n,n+=t;
return u},f.reject=function(n,r,t){return r=X(r,t,3),F(n,function(n,t,e){return!r(n,t,e)})},f.rest=E,f.shuffle=W,f.sortBy=function(n,r,t){var u=-1,o=n?n.length:0,i=Array(typeof o=="number"?o:0);for(r=X(r,t,3),h(n,function(n,t,e){i[++u]={f:r(n,t,e),g:u,h:n}}),o=i.length,i.sort(e);o--;)i[o]=i[o].h;return i},f.tap=function(n,r){return r(n),n},f.throttle=function(n,r,t){var e=true,u=true;if(!H(n))throw new TypeError;return false===t?e=false:J(t)&&(e="leading"in t?t.leading:e,u="trailing"in t?t.trailing:u),t={},t.leading=e,t.maxWait=r,t.trailing=u,P(n,r,t)
},f.times=function(n,r,t){n=-1<(n=+n)?n:0;var e=-1,u=Array(n);for(r=p(r,t,1);++e<n;)u[e]=r(e);return u},f.toArray=function(n){return ft(n)?O(n):n&&typeof n.length=="number"?$(n):Q(n)},f.union=function(){return b(y(arguments,true,true))},f.uniq=S,f.values=Q,f.where=it,f.without=function(n){return g(n,O(arguments,1))},f.wrap=function(n,r){return d(r,fr,null,null,[n])},f.zip=function(){for(var n=-1,r=I(ot(arguments,"length")),t=Array(0>r?0:r);++n<r;)t[n]=ot(arguments,n);return t},f.collect=$,f.drop=E,f.each=R,f.extend=U,f.methods=G,f.object=function(n,r){var t=-1,e=n?n.length:0,u={};
for(r||!e||ft(n[0])||(r=[]);++t<e;){var o=n[t];r?u[o]=r[t]:o&&(u[o[0]]=o[1])}return u},f.select=F,f.tail=E,f.unique=S,f.clone=function(n){return J(n)?ft(n)?O(n):U({},n):n},f.contains=N,f.escape=function(n){return null==n?"":(n+"").replace(gr,u)},f.every=q,f.find=B,f.has=function(n,r){return n?Cr.call(n,r):false},f.identity=Y,f.indexOf=A,f.isArguments=x,f.isArray=ft,f.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Ir.call(n)==br||false},f.isDate=function(n){return n&&typeof n=="object"&&Ir.call(n)==_r||false
},f.isElement=function(n){return n&&1===n.nodeType||false},f.isEmpty=function(n){if(!n)return true;if(ft(n)||L(n))return!n.length;for(var r in n)if(Cr.call(n,r))return false;return true},f.isEqual=function(n,r){return m(n,r)},f.isFinite=function(n){return Jr(n)&&!Kr(parseFloat(n))},f.isFunction=H,f.isNaN=function(n){return K(n)&&n!=+n},f.isNull=function(n){return null===n},f.isNumber=K,f.isObject=J,f.isRegExp=function(n){var r=typeof n;return n&&("function"==r||"object"==r)&&Ir.call(n)==jr||false},f.isString=L,f.isUndefined=function(n){return typeof n=="undefined"
},f.lastIndexOf=function(n,r,t){var e=n?n.length:0;for(typeof t=="number"&&(e=(0>t?Qr(0,e+t):Xr(t,e-1))+1);e--;)if(n[e]===r)return e;return-1},f.mixin=nr,f.noConflict=function(){return kr._=$r,this},f.now=lt,f.random=function(n,r){return null==n&&null==r&&(r=1),n=+n||0,null==r?(r=n,n=0):r=+r||0,n+Wr(Zr()*(r-n+1))},f.reduce=M,f.reduceRight=D,f.result=function(n,r){if(null!=n){var t=n[r];return H(t)?n[r]():t}},f.size=function(n){var r=n?n.length:0;return typeof r=="number"?r:at(n).length},f.some=z,f.sortedIndex=k,f.template=function(n,r,t){var e=f,u=e.templateSettings;
n=(n||"")+"",t=V({},t,u);var i=0,a="__p+='",u=t.variable;n.replace(RegExp((t.escape||hr).source+"|"+(t.interpolate||hr).source+"|"+(t.evaluate||hr).source+"|$","g"),function(r,t,e,u,f){return a+=n.slice(i,f).replace(vr,o),t&&(a+="'+_.escape("+t+")+'"),u&&(a+="';"+u+";\n__p+='"),e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),i=f+r.length,r}),a+="';",u||(u="obj",a="with("+u+"||{}){"+a+"}"),a="function("+u+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+a+"return __p}";
try{var l=Function("_","return "+a)(e)}catch(c){throw c.source=a,c}return r?l(r):(l.source=a,l)},f.unescape=function(n){return null==n?"":(n+="",0>n.indexOf(";")?n:n.replace(sr,i))},f.uniqueId=function(n){var r=++pr+"";return n?n+r:r},f.all=q,f.any=z,f.detect=B,f.findWhere=B,f.foldl=M,f.foldr=D,f.include=N,f.inject=M,f.first=T,f.last=function(n,r,t){var e=0,u=n?n.length:0;if(typeof r!="number"&&null!=r){var o=u;for(r=X(r,t,3);o--&&r(n[o],o,n);)e++}else if(e=r,null==e||t)return n?n[u-1]:tr;return e=u-e,O(n,0<e?e:0)
},f.sample=function(n,r,t){return n&&typeof n.length!="number"&&(n=Q(n)),null==r||t?n?n[0+Wr(Zr()*(n.length-1-0+1))]:tr:(n=W(n),n.length=Xr(Qr(0,r),n.length),n)},f.take=T,f.head=T,nr(U({},f)),f.VERSION="2.4.1",f.prototype.chain=function(){return this.__chain__=true,this},f.prototype.value=function(){return this.__wrapped__},h("pop push reverse shift sort splice unshift".split(" "),function(n){var r=Br[n];f.prototype[n]=function(){var n=this.__wrapped__;return r.apply(n,arguments),nt.spliceObjects||0!==n.length||delete n[0],this
}}),h(["concat","join","slice"],function(n){var r=Br[n];f.prototype[n]=function(){var n=r.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new a(n),n.__chain__=true),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(kr._=f, define(function(){return f})):Sr&&Nr?Fr?(Nr.exports=f)._=f:Sr._=f:kr._=f}).call(this);
;(function(){function n(n){var r=[];if(!L(n))return r;for(var t in n)Pr.call(n,t)&&r.push(t);return r}function r(n,r){if(L(n))for(var t in n)if(r(n[t],t,n)===sr)break}function t(n,r,t){t=(t||0)-1;for(var e=n?n.length:0;++t<e;)if(n[t]===r)return t;return-1}function e(n,r){var t;n:{t=n.f;var e=r.f;if(t!==e){if(t>e||typeof t=="undefined"){t=1;break n}if(t<e||typeof e=="undefined"){t=-1;break n}}t=0}return t||n.g-r.g}function u(n){return Er[n]}function o(n){return"\\"+Sr[n]}function i(n){return Or[n]}function f(n){return n instanceof f?n:new a(n)
}function a(n,r){this.__chain__=!!r,this.__wrapped__=n}function l(n){function r(){if(u)var n=_(u,o,arguments);if(this instanceof r){var i=c(t.prototype),n=t.apply(i,n||arguments);return L(n)?n:i}return t.apply(e,n||arguments)}var t=n[0],e=n[3],u=n[4],o=n[6];return r}function c(n){return L(n)?Jr(n):{}}function p(n,r,t){if(typeof n!="function")return nr;if(typeof r=="undefined"||!("prototype"in n))return n;switch(t){case 1:return function(t){return n.call(r,t)};case 2:return function(t,e){return n.call(r,t,e)
};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return P(n,r)}function s(n){function r(){var n=p?o:this;if(i)var m=_(i,a,arguments);if(f){for(var b=f,m=m||arguments,d=-1,w=l.length,j=-1,x=Yr(m.length-w,0),A=-1,T=b.length,E=Array(x+T);++j<x;)E[j]=m[j];for(x=j;++A<T;)E[x+A]=b[A];for(;++d<w;)E[x+partialHolders[d]]=m[j++];m=E}return h&&(b=arguments.length,b<u)?(m||(m=S(arguments)),e|=lr,e&=~cr,v||(e&=~(or|ir)),n=Yr(0,u-b),s([t,e,n,o,m,null,[]])):(m||(m=arguments),g&&(t=n[y]),this instanceof r?(n=c(t.prototype),b=t.apply(n,m),L(b)?b:n):t.apply(n,m))
}var t=n[0],e=n[1],u=n[2],o=n[3],i=n[4],f=n[5],a=n[6],l=n[7],p=e&or,g=e&ir,h=e&fr,v=e&ar,y=t;return r}function g(n,r){for(var t=-1,e=x(),u=n?n.length:0,o=[];++t<u;){var i=n[t];0>e(r,i)&&o.push(i)}return o}function h(n,r){var t=-1,e=n?n.length:0;if(typeof e=="number")for(;++t<e&&r(n[t],t,n)!==sr;);else for(var t=-1,e=ct(n),u=e.length;++t<u;){var o=e[t];if(r(n[o],o,n)===sr)break}}function v(n,r){var t=n?n.length:0;if(typeof t=="number")for(;t--&&r(n[t],t,n)!==sr;);else for(var t=ct(n),e=t.length;e--;){var u=t[e];
if(r(n[u],u,n)===sr)break}}function y(n,r,t,e){e=(e||0)-1;for(var u=n?n.length:0,o=[];++e<u;){var i=n[e];if(i&&typeof i=="object"&&typeof i.length=="number"&&(lt(i)||T(i))){r||(i=y(i,r,t));var f=-1,a=i.length,l=o.length;for(o.length+=a;++f<a;)o[l++]=i[f]}else t||o.push(i)}return o}function m(n,t,e,u){if(n===t)return 0!==n||1/n==1/t;var o=typeof n,i=typeof t;if(n===n&&(!n||"function"!=o&&"object"!=o)&&(!t||"function"!=i&&"object"!=i))return false;if(null==n||null==t)return n===t;if(i=Dr.call(n),o=Dr.call(t),i!=o)return false;
switch(i){case dr:case wr:return+n==+t;case jr:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case Ar:case Tr:return n==t+""}if(o=i==_r,!o){var a=n instanceof f,l=t instanceof f;if(a||l)return m(a?n.__wrapped__:n,l?t.__wrapped__:t,e,u);if(i!=xr)return false;if(i=Pr.call(n,"constructor"),a=Pr.call(t,"constructor"),i!==a||!i&&(i=n.constructor,a=t.constructor,i!=a&&!(K(i)&&i instanceof i&&K(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t))return false}for(e||(e=[]),u||(u=[]),i=e.length;i--;)if(e[i]==n)return u[i]==t;
var c=true,p=0;if(e.push(n),u.push(t),o){if(p=t.length,c=p==n.length)for(;p--&&(c=m(n[p],t[p],e,u)););}else r(t,function(r,t,o){return Pr.call(o,t)?(p++,!(c=Pr.call(n,t)&&m(n[t],r,e,u))&&sr):void 0}),c&&r(n,function(n,r,t){return Pr.call(t,r)?!(c=-1<--p)&&sr:void 0});return e.pop(),u.pop(),c}function b(n,r,t){for(var e=-1,u=x(),o=n?n.length:0,i=[],f=t?[]:i;++e<o;){var a=n[e],l=t?t(a,e,n):a;(r?!e||f[f.length-1]!==l:0>u(f,l))&&(t&&f.push(l),i.push(a))}return i}function _(n,r,t){for(var e=-1,u=r.length,o=-1,i=n.length,f=Yr(t.length-u,0),a=Array(f+i);++o<i;)a[o]=n[o];
for(;++e<u;)a[r[e]]=t[e];for(;u<f;)a[o++]=t[u++];return a}function d(n,r){return function(t,e,u){var o=r?[[],[]]:{};e=Z(e,u,3),u=-1;var i=t?t.length:0;if(typeof i=="number")for(;++u<i;){var f=t[u];n(o,f,e(f,u,t),t)}else h(t,function(r,t,u){n(o,r,e(r,t,u),u)});return o}}function w(n,r,t,e,u){var o,i,f,a=r&ir,c=r&lr,p=r&cr;if(!a&&!K(n))throw new TypeError;return c&&!u.length&&(r&=~lr,c=u=false),p&&!o.length&&(r&=~cr,p=o=false),null==t?t=a?0:n.length:0>t&&(t=0),c&&(i=j(u)),p&&(f=j(o)),n=[n,r,t,e,u,o,i,f],r==or||r==(or|lr)?l(n):s(n)
}function j(n){for(var r=-1,t=n.length,e=[];++r<t;)n[r]===f&&e.push(r);return e}function x(){var n=(n=f.indexOf)===O?t:n;return n}function A(n){return typeof n=="function"&&Wr.test(Hr.call(n))}function T(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Dr.call(n)==br||false}function E(n,r,t){var e=0,u=n?n.length:0;if(typeof r!="number"&&null!=r){var o=-1;for(r=Z(r,t,3);++o<u&&r(n[o],o,n);)e++}else if(e=r,null==e||t)return n?n[0]:ur;return S(n,0,0<e?e:0)}function O(n,r,e){var u=n?n.length:0;
if(typeof e=="number")e=0>e?Yr(0,u+e):e||0;else if(e)return e=N(n,r),u&&n[e]===r?e:-1;return t(n,r,e)}function k(n,r,t){if(typeof r!="number"&&null!=r){var e=0,u=-1,o=n?n.length:0;for(r=Z(r,t,3);++u<o&&r(n[u],u,n);)e++}else e=null==r||t?1:0<r?r:0;return S(n,e)}function S(n,r,t){var e=-1,u=n?n.length:0;for(typeof r=="undefined"?r=0:0>r?r=Yr(u+r,0):r>u&&(r=u),typeof t=="undefined"?t=u:0>t?t=Yr(u+t,0):t>u&&(t=u),u=t-r||0,t=Array(u);++e<u;)t[e]=n[r+e];return t}function N(n,r,t,e){var u=0,o=n?n.length:u;
for(t=t?Z(t,e,1):nr,r=t(r);u<o;)e=u+o>>>1,t(n[e])<r?u=e+1:o=e;return u}function q(n,r,t,e){var u=typeof r;return"boolean"!=u&&null!=r&&(e=t,t=r,r=false,"number"!=u&&"string"!=u||!e||e[t]!==n||(t=null)),null!=t&&(t=Z(t,e,3)),b(n,r,t)}function F(n,r){var t=x(),e=n?n.length:0,u=false;return e&&typeof e=="number"?u=-1<t(n,r):h(n,function(n){return(u=n===r)&&sr}),u}function B(n,r,t){var e=true;r=Z(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number"){for(;++t<u;)if(!r(n[t],t,n))return false}else h(n,function(n,t,u){return!(e=!!r(n,t,u))&&sr
});return e}function R(n,r,t){var e=[];r=Z(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++t<u;){var o=n[t];r(o,t,n)&&e.push(o)}else h(n,function(n,t,u){r(n,t,u)&&e.push(n)});return e}function $(n,r,t){r=Z(r,t,3),t=-1;var e=n?n.length:0;if(typeof e!="number"){var u;return h(n,function(n,t,e){return r(n,t,e)?(u=n,sr):void 0}),u}for(;++t<e;){var o=n[t];if(r(o,t,n))return o}}function I(n,r,t){var e=-1,u=n?n.length:0;if(r=r&&typeof t=="undefined"?r:p(r,t,3),typeof u=="number")for(;++e<u&&r(n[e],e,n)!==sr;);else h(n,r);
return n}function M(n,r,t){var e=-1,u=n?n.length:0;if(r=Z(r,t,3),typeof u=="number")for(var o=Array(u);++e<u;)o[e]=r(n[e],e,n);else o=[],h(n,function(n,t,u){o[++e]=r(n,t,u)});return o}function D(n,r,t){var e=-1/0,u=e,o=typeof r;"number"!=o&&"string"!=o||!t||t[r]!==n||(r=null);var o=-1,i=n?n.length:0;if(null==r&&typeof i=="number")for(;++o<i;)t=n[o],t>u&&(u=t);else r=Z(r,t,3),h(n,function(n,t,o){t=r(n,t,o),t>e&&(e=t,u=n)});return u}function W(n,r,t,e){var u=3>arguments.length;r=Z(r,e,4);var o=-1,i=n?n.length:0;
if(typeof i=="number")for(u&&i&&(t=n[++o]);++o<i;)t=r(t,n[o],o,n);else h(n,function(n,e,o){t=u?(u=false,n):r(t,n,e,o)});return t}function z(n,r,t,e){var u=3>arguments.length;return r=Z(r,e,4),v(n,function(n,e,o){t=u?(u=false,n):r(t,n,e,o)}),t}function C(n){var r=-1,t=n?n.length:0,e=Array(typeof t=="number"?t:0);return h(n,function(n){var t;t=++r,t=0+Cr(rt()*(t-0+1)),e[r]=e[t],e[t]=n}),e}function H(n,r,t){var e;r=Z(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number"){for(;++t<u;)if(r(n[t],t,n))return true
}else h(n,function(n,t,u){return(e=r(n,t,u))&&sr});return!!e}function P(n,r){if(3>arguments.length)return w(n,or,null,r);if(n)var t=n[pr]?n[pr][2]:n.length,e=S(arguments,2),t=t-e.length;return w(n,or|lr,t,r,e)}function U(n,r,t){function e(){c&&clearTimeout(c),i=c=p=ur,(h||g!==r)&&(s=pt(),f=n.apply(l,o),c||i||(o=l=null))}function u(){var t=r-(pt()-a);0>=t||t>r?(i&&clearTimeout(i),t=p,i=c=p=ur,t&&(s=pt(),f=n.apply(l,o),c||i||(o=l=null))):c=setTimeout(u,t)}var o,i,f,a,l,c,p,s=0,g=false,h=true;if(!K(n))throw new TypeError;
if(r=Yr(0,r)||0,true===t)var v=true,h=false;else L(t)&&(v=t.leading,g="maxWait"in t&&(Yr(r,t.maxWait)||0),h="trailing"in t?t.trailing:h);return function(){if(o=arguments,a=pt(),l=this,p=h&&(c||!v),false===g)var t=v&&!c;else{i||v||(s=a);var y=g-(a-s),m=0>=y||y>g;m?(i&&(i=clearTimeout(i)),s=a,f=n.apply(l,o)):i||(i=setTimeout(e,y))}return m&&c?c=clearTimeout(c):c||r===g||(c=setTimeout(u,r)),t&&(m=true,f=n.apply(l,o)),!m||c||i||(o=l=null),f}}function V(n,r,t){if(!n)return n;var e=arguments,u=0,o=e.length,i=typeof t;
for("number"!=i&&"string"!=i||!e[3]||e[3][t]!==r||(o=2);++u<o;)if(r=e[u])for(var f in r)n[f]=r[f];return n}function G(n,r,t){if(!n)return n;var e=arguments,u=0,o=e.length,i=typeof t;for("number"!=i&&"string"!=i||!e[3]||e[3][t]!==r||(o=2);++u<o;)if(r=e[u])for(var f in r)"undefined"==typeof n[f]&&(n[f]=r[f]);return n}function J(n){var t=[];return r(n,function(n,r){K(n)&&t.push(r)}),t.sort()}function K(n){return typeof n=="function"}function L(n){var r=typeof n;return n&&("function"==r||"object"==r)||false
}function Q(n){var r=typeof n;return"number"==r||n&&"object"==r&&Dr.call(n)==jr||false}function X(n){return typeof n=="string"||n&&typeof n=="object"&&Dr.call(n)==Tr||false}function Y(n){for(var r=-1,t=ct(n),e=t.length,u=Array(e);++r<e;)u[r]=n[t[r]];return u}function Z(n,r,t){var e=typeof n;return"function"==e||null==n?(typeof r=="undefined"||!("prototype"in n))&&n||p(n,r,t):"object"!=e?er(n):rr(n)}function nr(n){return n}function rr(n){n||(n={});var r=ct(n);return function(t){for(var e=r.length,u=true;e--&&(u=r[e],u=Pr.call(t,u)&&t[u]===n[u]););return u
}}function tr(n){for(var r=-1,t=J(n),e=t.length;++r<e;){var u=t[r];f.prototype[u]=function(){var r=f[u]=n[u];return function(){var n=[this.__wrapped__];return Ur.apply(n,arguments),n=r.apply(f,n),this.__chain__?new a(n,true):n}}()}}function er(n){return function(r){return r[n]}}var ur,or=1,ir=2,fr=4,ar=8,lr=16,cr=32,pr="__lodash@2.4.1__",sr=pr+"breaker__",gr=0,hr=/&(?:amp|lt|gt|quot|#x27);/g,vr=/[&<>"']/g,yr=/($^)/,mr=/['\n\r\t\u2028\u2029\\]/g,br="[object Arguments]",_r="[object Array]",dr="[object Boolean]",wr="[object Date]",jr="[object Number]",xr="[object Object]",Ar="[object RegExp]",Tr="[object String]",Er={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},Or={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'"},kr={"function":true,object:true},Sr={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Nr=kr[typeof window]&&window||this,qr=kr[typeof exports]&&exports&&!exports.nodeType&&exports,Fr=kr[typeof module]&&module&&!module.nodeType&&module,Br=qr&&Fr&&typeof global=="object"&&global;
!Br||Br.global!==Br&&Br.window!==Br&&Br.self!==Br||(Nr=Br);var Rr=Fr&&Fr.exports===qr&&qr,$r=Array.prototype,Ir=Object.prototype,Mr=Nr._,Dr=Ir.toString,Wr=RegExp("^"+(Dr+"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),zr=Math.ceil,Cr=Math.floor,Hr=Function.prototype.toString,Pr=Ir.hasOwnProperty,Ur=$r.push,Vr=Ir.propertyIsEnumerable,Gr=$r.splice,Jr=A(Jr=Object.create)&&Jr,Kr=A(Kr=Array.isArray)&&Kr,Lr=Nr.isFinite,Qr=Nr.isNaN,Xr=A(Xr=Object.keys)&&Xr,Yr=Math.max,Zr=Math.min,nt=A(nt=Date.now)&&nt,rt=Math.random;
a.prototype=f.prototype;var tt={};!function(){var n={0:1,length:1};tt.spliceObjects=(Gr.call(n,0,1),!n[0])}(1),f.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},Jr||(c=function(){function n(){}return function(r){if(L(r)){n.prototype=r;var t=new n;n.prototype=null}return t||Nr.Object()}}()),T(arguments)||(T=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Pr.call(n,"callee")&&!Vr.call(n,"callee")||false});var et=d(function(n,r,t){Pr.call(n,t)?n[t]++:n[t]=1
}),ut=d(function(n,r,t){Pr.call(n,t)?n[t].push(r):n[t]=[r]}),ot=d(function(n,r,t){n[t]=r}),it=d(function(n,r,t){n[t?0:1].push(r)},true),ft=M,at=R,lt=Kr||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Dr.call(n)==_r||false};K(/x/)&&(K=function(n){return typeof n=="function"&&"[object Function]"==Dr.call(n)});var ct=Xr?function(n){return L(n)?Xr(n):[]}:n,pt=nt||function(){return(new Date).getTime()};f.after=function(n,r){if(!K(r))throw new TypeError;return function(){return 1>--n?r.apply(this,arguments):void 0
}},f.bind=P,f.bindAll=function(n){for(var r=1<arguments.length?y(arguments,true,false,1):J(n),t=-1,e=r.length;++t<e;){var u=r[t];n[u]=w(n[u],or,null,n)}return n},f.chain=function(n){return n=new a(n),n.__chain__=true,n},f.compact=function(n){for(var r=-1,t=n?n.length:0,e=0,u=[];++r<t;){var o=n[r];o&&(u[e++]=o)}return u},f.compose=function(){for(var n=arguments,r=n.length,t=r;t--;)if(!K(n[t]))throw new TypeError;return function(){for(var t=r-1,e=n[t].apply(this,arguments);t--;)e=n[t].call(this,e);return e
}},f.constant=function(n){return function(){return n}},f.countBy=et,f.debounce=U,f.defaults=G,f.defer=function(n){if(!K(n))throw new TypeError;var r=S(arguments,1);return setTimeout(function(){n.apply(ur,r)},1)},f.delay=function(n,r){if(!K(n))throw new TypeError;var t=S(arguments,2);return setTimeout(function(){n.apply(ur,t)},r)},f.difference=function(n){return g(n,y(arguments,true,true,1))},f.filter=R,f.flatten=function(n,r,t){var e=typeof r;return"number"!=e&&"string"!=e||!t||t[r]!==n||(r=false),y(n,r)
},f.forEach=I,f.functions=J,f.groupBy=ut,f.indexBy=ot,f.initial=function(n,r,t){var e=0,u=n?n.length:0;if(typeof r!="number"&&null!=r){var o=u;for(r=Z(r,t,3);o--&&r(n[o],o,n);)e++}else e=null==r||t?1:r||e;return e=u-e,S(n,0,0<e?e:0)},f.intersection=function(){for(var n=[],r=-1,t=arguments.length;++r<t;){var e=arguments[r];(lt(e)||T(e))&&n.push(e)}var u=n[0],o=-1,i=x(),f=u?u.length:0,a=[];n:for(;++o<f;)if(e=u[o],0>i(a,e)){for(r=t;--r;)if(0>i(n[r],e))continue n;a.push(e)}return a},f.invert=function(n){for(var r=-1,t=ct(n),e=t.length,u={};++r<e;){var o=t[r];
u[n[o]]=o}return u},f.invoke=function(n,r){var t=-1,e=typeof r=="function",u=n?n.length:0,o=Array(typeof u=="number"?u:0);if(3>arguments.length&&typeof u=="number")for(;++t<u;){var i=n[t];o[t]=e?r.call(i):i[r]()}else{var f=S(arguments,2);h(n,function(n){o[++t]=(e?r:n[r]).apply(n,f)})}return o},f.keys=ct,f.map=M,f.matches=rr,f.max=D,f.memoize=function(n,r){var t={};return function(){var e=r?r.apply(this,arguments):"_"+arguments[0];return Pr.call(t,e)?t[e]:t[e]=n.apply(this,arguments)}},f.min=function(n,r,t){var e=1/0,u=e,o=typeof r;
"number"!=o&&"string"!=o||!t||t[r]!==n||(r=null);var o=-1,i=n?n.length:0;if(null==r&&typeof i=="number")for(;++o<i;)t=n[o],t<u&&(u=t);else r=Z(r,t,3),h(n,function(n,t,o){t=r(n,t,o),t<e&&(e=t,u=n)});return u},f.omit=function(n){for(var t=y(arguments,true,false,1),e=t.length,u={};e--;)t[e]=t[e]+"";var o=[];r(n,function(n,r){o.push(r)});for(var i=-1,o=g(o,t),e=o.length;++i<e;)t=o[i],u[t]=n[t];return u},f.once=function(n){var r,t;if(!K(n))throw new TypeError;return function(){return r?t:(r=true,t=n.apply(this,arguments),n=null,t)
}},f.pairs=function(n){for(var r=-1,t=ct(n),e=t.length,u=Array(e);++r<e;){var o=t[r];u[r]=[o,n[o]]}return u},f.partial=function(n){if(n)var r=n[pr]?n[pr][2]:n.length,t=S(arguments,1),r=r-t.length;return w(n,lr,r,null,t)},f.partition=it,f.pick=function(n){for(var r=-1,t=y(arguments,true,false,1),e=t.length,u={};++r<e;){var o=t[r];o in n&&(u[o]=n[o])}return u},f.pluck=ft,f.property=er,f.range=function(n,r,t){n=+n||0,t=+t||1,null==r&&(r=n,n=0);var e=-1;r=Yr(0,zr((r-n)/t));for(var u=Array(r);++e<r;)u[e]=n,n+=t;
return u},f.reject=function(n,r,t){return r=Z(r,t,3),R(n,function(n,t,e){return!r(n,t,e)})},f.rest=k,f.shuffle=C,f.sortBy=function(n,r,t){var u=-1,o=n?n.length:0,i=Array(typeof o=="number"?o:0);for(r=Z(r,t,3),h(n,function(n,t,e){i[++u]={f:r(n,t,e),g:u,h:n}}),o=i.length,i.sort(e);o--;)i[o]=i[o].h;return i},f.tap=function(n,r){return r(n),n},f.throttle=function(n,r,t){var e=true,u=true;if(!K(n))throw new TypeError;return false===t?e=false:L(t)&&(e="leading"in t?t.leading:e,u="trailing"in t?t.trailing:u),t={},t.leading=e,t.maxWait=r,t.trailing=u,U(n,r,t)
},f.times=function(n,r,t){n=-1<(n=+n)?n:0;var e=-1,u=Array(n);for(r=p(r,t,1);++e<n;)u[e]=r(e);return u},f.toArray=function(n){return lt(n)?S(n):n&&typeof n.length=="number"?M(n):Y(n)},f.union=function(){return b(y(arguments,true,true))},f.uniq=q,f.values=Y,f.where=at,f.without=function(n){return g(n,S(arguments,1))},f.wrap=function(n,r){return w(r,lr,null,null,[n])},f.zip=function(){for(var n=-1,r=D(ft(arguments,"length")),t=Array(0>r?0:r);++n<r;)t[n]=ft(arguments,n);return t},f.collect=M,f.drop=k,f.each=I,f.extend=V,f.methods=J,f.object=function(n,r){var t=-1,e=n?n.length:0,u={};
for(r||!e||lt(n[0])||(r=[]);++t<e;){var o=n[t];r?u[o]=r[t]:o&&(u[o[0]]=o[1])}return u},f.select=R,f.tail=k,f.unique=q,f.clone=function(n){return L(n)?lt(n)?S(n):V({},n):n},f.contains=F,f.escape=function(n){return null==n?"":(n+"").replace(vr,u)},f.every=B,f.find=$,f.has=function(n,r){return n?Pr.call(n,r):false},f.identity=nr,f.indexOf=O,f.isArguments=T,f.isArray=lt,f.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Dr.call(n)==dr||false},f.isDate=function(n){return n&&typeof n=="object"&&Dr.call(n)==wr||false
},f.isElement=function(n){return n&&1===n.nodeType||false},f.isEmpty=function(n){if(!n)return true;if(lt(n)||X(n))return!n.length;for(var r in n)if(Pr.call(n,r))return false;return true},f.isEqual=function(n,r){return m(n,r)},f.isFinite=function(n){return Lr(n)&&!Qr(parseFloat(n))},f.isFunction=K,f.isNaN=function(n){return Q(n)&&n!=+n},f.isNull=function(n){return null===n},f.isNumber=Q,f.isObject=L,f.isRegExp=function(n){var r=typeof n;return n&&("function"==r||"object"==r)&&Dr.call(n)==Ar||false},f.isString=X,f.isUndefined=function(n){return typeof n=="undefined"
},f.lastIndexOf=function(n,r,t){var e=n?n.length:0;for(typeof t=="number"&&(e=(0>t?Yr(0,e+t):Zr(t,e-1))+1);e--;)if(n[e]===r)return e;return-1},f.mixin=tr,f.noConflict=function(){return Nr._=Mr,this},f.now=pt,f.random=function(n,r){return null==n&&null==r&&(r=1),n=+n||0,null==r?(r=n,n=0):r=+r||0,n+Cr(rt()*(r-n+1))},f.reduce=W,f.reduceRight=z,f.result=function(n,r){if(null!=n){var t=n[r];return K(t)?n[r]():t}},f.size=function(n){var r=n?n.length:0;return typeof r=="number"?r:ct(n).length},f.some=H,f.sortedIndex=N,f.template=function(n,r,t){var e=f,u=e.templateSettings;
n=(n||"")+"",t=G({},t,u);var i=0,a="__p+='",u=t.variable;n.replace(RegExp((t.escape||yr).source+"|"+(t.interpolate||yr).source+"|"+(t.evaluate||yr).source+"|$","g"),function(r,t,e,u,f){return a+=n.slice(i,f).replace(mr,o),t&&(a+="'+_.escape("+t+")+'"),u&&(a+="';"+u+";\n__p+='"),e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),i=f+r.length,r}),a+="';",u||(u="obj",a="with("+u+"||{}){"+a+"}"),a="function("+u+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+a+"return __p}";
try{var l=Function("_","return "+a)(e)}catch(c){throw c.source=a,c}return r?l(r):(l.source=a,l)},f.unescape=function(n){return null==n?"":(n+="",0>n.indexOf(";")?n:n.replace(hr,i))},f.uniqueId=function(n){var r=++gr+"";return n?n+r:r},f.all=B,f.any=H,f.detect=$,f.findWhere=$,f.foldl=W,f.foldr=z,f.include=F,f.inject=W,f.first=E,f.last=function(n,r,t){var e=0,u=n?n.length:0;if(typeof r!="number"&&null!=r){var o=u;for(r=Z(r,t,3);o--&&r(n[o],o,n);)e++}else if(e=r,null==e||t)return n?n[u-1]:ur;return e=u-e,S(n,0<e?e:0)
},f.sample=function(n,r,t){return n&&typeof n.length!="number"&&(n=Y(n)),null==r||t?n?n[0+Cr(rt()*(n.length-1-0+1))]:ur:(n=C(n),n.length=Zr(Yr(0,r),n.length),n)},f.take=E,f.head=E,tr(V({},f)),f.VERSION="2.4.1",f.prototype.chain=function(){return this.__chain__=true,this},f.prototype.value=function(){return this.__wrapped__},h("pop push reverse shift sort splice unshift".split(" "),function(n){var r=$r[n];f.prototype[n]=function(){var n=this.__wrapped__;return r.apply(n,arguments),tt.spliceObjects||0!==n.length||delete n[0],this
}}),h(["concat","join","slice"],function(n){var r=$r[n];f.prototype[n]=function(){var n=r.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new a(n),n.__chain__=true),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Nr._=f, define(function(){return f})):qr&&Fr?Rr?(Fr.exports=f)._=f:qr._=f:Nr._=f}).call(this);

125
lodash.js
View File

@@ -1070,7 +1070,8 @@
function baseBind(data) {
var func = data[0],
thisArg = data[3],
partialArgs = data[4];
partialArgs = data[4],
partialHolders = data[6];
function bound() {
// `Function#bind` spec
@@ -1079,8 +1080,7 @@
// avoid `arguments` object deoptimizations by using `slice` instead
// of `Array.prototype.slice.call` and not assigning `arguments` to a
// variable as a ternary expression
var args = slice(partialArgs);
push.apply(args, arguments);
var args = composeArgs(partialArgs, partialHolders, arguments);
}
// mimic the constructor's `return` behavior
// http://es5.github.io/#x13.2.2
@@ -1285,7 +1285,9 @@
arity = data[2],
thisArg = data[3],
partialArgs = data[4],
partialRightArgs = data[5];
partialRightArgs = data[5],
partialHolders = data[6],
partialRightHolders = data[7];
var isBind = bitmask & BIND_FLAG,
isBindKey = bitmask & BIND_KEY_FLAG,
@@ -1296,23 +1298,22 @@
function bound() {
var thisBinding = isBind ? thisArg : this;
if (partialArgs) {
var args = slice(partialArgs);
push.apply(args, arguments);
var args = composeArgs(partialArgs, partialHolders, arguments);
}
if (partialRightArgs || isCurry) {
args || (args = slice(arguments));
if (partialRightArgs) {
push.apply(args, partialRightArgs);
}
if (partialRightArgs) {
args = composeArgsRight(partialRightArgs, partialRightHolders, args || arguments);
}
if (isCurry) {
var argsLength = arguments.length;
if (isCurry && argsLength < arity) {
if (argsLength < arity) {
args || (args = slice(arguments));
bitmask |= PARTIAL_FLAG;
bitmask &= ~PARTIAL_RIGHT_FLAG
if (!isCurryBound) {
bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG);
}
var newArity = nativeMax(0, arity - argsLength);
return baseCreateWrapper([func, bitmask, newArity, thisArg, args]);
return baseCreateWrapper([func, bitmask, newArity, thisArg, args, null, []]);
}
}
args || (args = arguments);
@@ -1797,6 +1798,68 @@
return result;
}
/**
* Creates an array that is the composition of partially applied arguments,
* placeholders, and provided arguments into a single array of arguments.
*
* @private
* @param {Array} partialArg An array of arguments to prepend to those provided.
* @param {Array} partialHolders An array of `partialArgs` placeholder indexes.
* @param {Array|Object} args The provided arguments.
* @returns {Array} Returns a new array of composed arguments.
*/
function composeArgs(partialArgs, partialHolders, args) {
var index = -1,
length = partialHolders.length,
leftIndex = -1,
leftLength = partialArgs.length,
argsLength = nativeMax(args.length - length, 0),
result = Array(argsLength + leftLength);
while (++leftIndex < leftLength) {
result[leftIndex] = partialArgs[leftIndex];
}
while (++index < length) {
result[partialHolders[index]] = args[index];
}
while (length < argsLength) {
result[leftIndex++] = args[length++];
}
return result;
}
/**
* This function is like `composeArgs` except that the arguments composition
* is tailored for `_.partialRight`.
*
* @private
* @param {Array} partialRightArg An array of arguments to append to those provided.
* @param {Array} partialHolders An array of `partialRightArgs` placeholder indexes.
* @param {Array|Object} args The provided arguments.
* @returns {Array} Returns a new array of composed arguments.
*/
function composeArgsRight(partialRightArgs, partialRightHolders, args) {
var index = -1,
length = partialRightHolders.length,
argsIndex = -1,
argsLength = nativeMax(args.length - length, 0),
rightIndex = -1,
rightLength = partialRightArgs.length,
result = Array(argsLength + rightLength);
while (++argsIndex < argsLength) {
result[argsIndex] = args[argsIndex];
}
var pad = argsIndex;
while (++rightIndex < rightLength) {
result[pad + rightIndex] = partialRightArgs[rightIndex];
}
while (++index < length) {
result[pad + partialHolders[index]] = args[argsIndex++];
}
return result;
}
/**
* Creates a function that aggregates a collection, creating an object or
* array composed from the results of running each element of the collection
@@ -1869,9 +1932,11 @@
* provided to the new function.
* @param {Array} [partialRightArgs] An array of arguments to append to those
* provided to the new function.
* @param {Array} [partialHolders] An array of `partialArgs` placeholder indexes.
* @param {Array} [partialRightArgs] An array of `partialRightArgs` placeholder indexes.
* @returns {Function} Returns the new function.
*/
function createWrapper(func, bitmask, arity, thisArg, partialArgs, partialRightArgs) {
function createWrapper(func, bitmask, arity, thisArg, partialArgs, partialRightArgs, partialHolders, partialRightHolders) {
var isBind = bitmask & BIND_FLAG,
isBindKey = bitmask & BIND_KEY_FLAG,
isPartial = bitmask & PARTIAL_FLAG,
@@ -1939,8 +2004,14 @@
} else if (arity < 0) {
arity = 0;
}
if (isPartial) {
partialHolders = getHolders(partialArgs);
}
if (isPartialRight) {
partialRightHolders = getHolders(partialRightArgs);
}
// fast path for `_.bind`
data = [func, bitmask, arity, thisArg, partialArgs, partialRightArgs];
data = [func, bitmask, arity, thisArg, partialArgs, partialRightArgs, partialHolders, partialRightHolders];
return (bitmask == BIND_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG))
? baseBind(data)
: baseCreateWrapper(data);
@@ -1975,6 +2046,26 @@
);
}
/**
* Finds the indexes of all placeholder elements in a given array.
*
* @private
* @param {Array} array The array to inspect.
* @returns {Array} Returns a new array of placeholder indexes.
*/
function getHolders(array) {
var index = -1,
length = array.length,
result = [];
while (++index < length) {
if (array[index] === lodash) {
result.push(index);
}
}
return result;
}
/**
* Gets the appropriate "indexOf" function. If the `_.indexOf` method is
* customized this method returns the custom method, otherwise it returns
@@ -5133,8 +5224,8 @@
}
/**
* This method is like `_.partial` except that `partial` arguments are
* appended to those provided to the new function.
* This method is like `_.partial` except that partially applied arguments
* are appended to those provided to the new function.
*
* Note: This method does not set the `length` property of partially applied
* functions.

View File

@@ -609,7 +609,7 @@
/*--------------------------------------------------------------------------*/
suites.push(
Benchmark.Suite('`_.bind`')
Benchmark.Suite('`_.bind` (slow path)')
.add(buildName, {
'fn': 'lodash.bind(func, { "name": "fred" })',
'teardown': 'function bind(){}'
@@ -1508,7 +1508,7 @@
/*--------------------------------------------------------------------------*/
suites.push(
Benchmark.Suite('`_.partial`')
Benchmark.Suite('`_.partial` (slow path)')
.add(buildName, {
'fn': 'lodash.partial(func, "hi")',
'teardown': 'function partial(){}'

View File

@@ -116,6 +116,7 @@
if (/\bunderscore\b/i.test(ui.buildPath)) {
delete QUnit.config.excused.Chaining;
delete QUnit.config.excused.Collections.where;
delete QUnit.config.excused.Functions.partial;
delete QUnit.config.excused.Utility['_.escape'];
delete QUnit.config.excused.Utility['_.unescape'];
}