lodash-rails 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,58 +1,60 @@
1
1
  /**
2
2
  * @license
3
- * Lo-Dash 2.3.0 (Custom Build) lodash.com/license | Underscore.js 1.5.2 underscorejs.org/LICENSE
3
+ * Lo-Dash 2.4.0 (Custom Build) lodash.com/license | Underscore.js 1.5.2 underscorejs.org/LICENSE
4
4
  * Build: `lodash -o ./dist/lodash.compat.js`
5
5
  */
6
6
  ;(function(){function n(n,t,e){e=(e||0)-1;for(var r=n?n.length:0;++e<r;)if(n[e]===t)return e;return-1}function t(t,e){var r=typeof e;if(t=t.l,"boolean"==r||null==e)return t[e]?0:-1;"number"!=r&&"string"!=r&&(r="object");var u="number"==r?e:b+e;return t=(t=t[r])&&t[u],"object"==r?t&&-1<n(t,e)?0:-1:t?0:-1}function e(n){var t=this.l,e=typeof n;if("boolean"==e||null==n)t[n]=true;else{"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:b+n,t=t[e]||(t[e]={});"object"==e?(t[r]||(t[r]=[])).push(n):t[r]=true
7
- }}function r(n){return n.charCodeAt(0)}function u(n,t){var e=n.m,r=t.m;if(e!==r){if(e>r||typeof e=="undefined")return 1;if(e<r||typeof r=="undefined")return-1}return n.n-t.n}function o(n){var t=-1,r=n.length,u=n[0],o=n[r/2|0],a=n[r-1];if(u&&typeof u=="object"&&o&&typeof o=="object"&&a&&typeof a=="object")return false;for(u=l(),u["false"]=u["null"]=u["true"]=u.undefined=false,o=l(),o.k=n,o.l=u,o.push=e;++t<r;)o.push(n[t]);return o}function a(n){return"\\"+Y[n]}function i(){return v.pop()||[]}function l(){return y.pop()||{k:null,l:null,m:null,"false":false,n:0,"null":false,number:null,object:null,push:null,string:null,"true":false,undefined:false,o:null}
8
- }function f(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function c(n){n.length=0,v.length<w&&v.push(n)}function p(n){var t=n.l;t&&p(t),n.k=n.l=n.m=n.object=n.number=n.string=n.o=null,y.length<w&&y.push(n)}function s(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];return u}function g(e){function v(n){return n&&typeof n=="object"&&!We(n)&&je.call(n,"__wrapped__")?n:new y(n)}function y(n,t){this.__chain__=!!t,this.__wrapped__=n
9
- }function w(n){function t(){if(r){var n=r.slice();Ce.apply(n,arguments)}if(this instanceof t){var o=nt(e.prototype),n=e.apply(o,n||arguments);return Ct(n)?n:o}return e.apply(u,n||arguments)}var e=n[0],r=n[2],u=n[4];return Ke(t,n),t}function Y(n,t,e,r,u){if(e){var o=e(n);if(typeof o!="undefined")return o}if(!Ct(n))return n;var a=ve.call(n);if(!H[a]||!qe.nodeClass&&f(n))return n;var l=Te[a];switch(a){case T:case z:return new l(+n);case W:case M:return new l(n);case J:return o=l(n.source,S.exec(n)),o.lastIndex=n.lastIndex,o
10
- }if(a=We(n),t){var p=!r;r||(r=i()),u||(u=i());for(var g=r.length;g--;)if(r[g]==n)return u[g];o=a?l(n.length):{}}else o=a?s(n):nr({},n);return a&&(je.call(n,"index")&&(o.index=n.index),je.call(n,"input")&&(o.input=n.input)),t?(r.push(n),u.push(o),(a?Ze:rr)(n,function(n,a){o[a]=Y(n,t,e,r,u)}),p&&(c(r),c(u)),o):o}function nt(n){return Ct(n)?Ae(n):{}}function tt(n,t,e){if(typeof n!="function")return Qt;if(typeof t=="undefined"||!("prototype"in n))return n;var r=n.__bindData__;if(typeof r=="undefined"&&(qe.funcNames&&(r=!n.name),r=r||!qe.funcDecomp,!r)){var u=_e.call(n);
11
- qe.funcNames||(r=!I.test(u)),r||(r=B.test(u),Ke(n,r))}if(false===r||true!==r&&1&r[1])return n;switch(e){case 1:return function(e){return n.call(t,e)};case 2:return function(e,r){return n.call(t,e,r)};case 3:return function(e,r,u){return n.call(t,e,r,u)};case 4:return function(e,r,u,o){return n.call(t,e,r,u,o)}}return Ht(n,t)}function ot(n){function t(){var n=l?a:this;if(u){var h=u.slice();Ce.apply(h,arguments)}return(o||c)&&(h||(h=s(arguments)),o&&Ce.apply(h,o),c&&h.length<i)?(r|=16,ot([e,p?r:-4&r,h,null,a,i])):(h||(h=arguments),f&&(e=n[g]),this instanceof t?(n=nt(e.prototype),h=e.apply(n,h),Ct(h)?h:n):e.apply(n,h))
12
- }var e=n[0],r=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=1&r,f=2&r,c=4&r,p=8&r,g=e;return Ke(t,n),t}function at(e,r){var u=-1,a=yt(),i=e?e.length:0,l=i>=_&&a===n,f=[];if(l){var c=o(r);c?(a=t,r=c):l=false}for(;++u<i;)c=e[u],0>a(r,c)&&f.push(c);return l&&p(r),f}function it(n,t,e,r){r=(r||0)-1;for(var u=n?n.length:0,o=[];++r<u;){var a=n[r];if(a&&typeof a=="object"&&typeof a.length=="number"&&(We(a)||bt(a))){t||(a=it(a,t,e));var i=-1,l=a.length,f=o.length;for(o.length+=l;++i<l;)o[f++]=a[i]}else e||o.push(a)}return o
13
- }function lt(n,t,e,r,u,o){if(e){var a=e(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;if(n===n&&!(n&&X[typeof n]||t&&X[typeof t]))return false;if(null==n||null==t)return n===t;var l=ve.call(n),p=ve.call(t);if(l==$&&(l=G),p==$&&(p=G),l!=p)return false;switch(l){case T:case z:return+n==+t;case W:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case J:case M:return n==le(t)}if(p=l==L,!p){var s=je.call(n,"__wrapped__"),g=je.call(t,"__wrapped__");if(s||g)return lt(s?n.__wrapped__:n,g?t.__wrapped__:t,e,r,u,o);
14
- if(l!=G||!qe.nodeClass&&(f(n)||f(t)))return false;if(l=!qe.argsObject&&bt(n)?ae:n.constructor,s=!qe.argsObject&&bt(t)?ae:t.constructor,l!=s&&!(xt(l)&&l instanceof l&&xt(s)&&s instanceof s)&&"constructor"in n&&"constructor"in t)return false}for(s=!u,u||(u=i()),o||(o=i()),l=u.length;l--;)if(u[l]==n)return o[l]==t;var h=0,a=true;if(u.push(n),o.push(t),p){if(l=n.length,h=t.length,a=h==n.length,!a&&!r)return a;for(;h--;)if(p=l,s=t[h],r)for(;p--&&!(a=lt(n[p],s,e,r,u,o)););else if(!(a=lt(n[h],s,e,r,u,o)))break;return a
15
- }return er(t,function(t,i,l){return je.call(l,i)?(h++,a=je.call(n,i)&&lt(n[i],t,e,r,u,o)):void 0}),a&&!r&&er(n,function(n,t,e){return je.call(e,t)?a=-1<--h:void 0}),s&&(c(u),c(o)),a}function ft(n,t,e,r,u){(We(t)?Nt:rr)(t,function(t,o){var a,i,l=t,f=n[o];if(t&&((i=We(t))||ur(t))){for(l=r.length;l--;)if(a=r[l]==t){f=u[l];break}if(!a){var c;e&&(l=e(f,t),c=typeof l!="undefined")&&(f=l),c||(f=i?We(f)?f:[]:ur(f)?f:{}),r.push(t),u.push(f),c||ft(f,t,e,r,u)}}else e&&(l=e(f,t),typeof l=="undefined"&&(l=t)),typeof l!="undefined"&&(f=l);
16
- n[o]=f})}function ct(n,t){return n+be(Le()*(t-n+1))}function pt(e,r,u){var a=-1,l=yt(),f=e?e.length:0,s=[],g=!r&&f>=_&&l===n,h=u||g?i():s;if(g){var v=o(h);v?(l=t,h=v):(g=false,h=u?h:(c(h),s))}for(;++a<f;){var v=e[a],y=u?u(v,a,e):v;(r?!a||h[h.length-1]!==y:0>l(h,y))&&((u||g)&&h.push(y),s.push(v))}return g?(c(h.k),p(h)):u&&c(h),s}function st(n){return function(t,e,r){var u={};if(e=v.createCallback(e,r,3),We(t)){r=-1;for(var o=t.length;++r<o;){var a=t[r];n(u,a,e(a,r,t),t)}}else Ze(t,function(t,r,o){n(u,t,e(t,r,o),o)
17
- });return u}}function gt(n,t,e,r,u,o){var a=1&t,i=4&t,l=16&t,f=32&t;if(!(2&t||xt(n)))throw new fe;l&&!e.length&&(t&=-17,l=e=false),f&&!r.length&&(t&=-33,f=r=false);var c=n&&n.__bindData__;return c&&true!==c?(c=c.slice(),!a||1&c[1]||(c[4]=u),!a&&1&c[1]&&(t|=8),!i||4&c[1]||(c[5]=o),l&&Ce.apply(c[2]||(c[2]=[]),e),f&&Ce.apply(c[3]||(c[3]=[]),r),c[1]|=t,gt.apply(null,c)):(1==t||17===t?w:ot)([n,t,e,r,u,o])}function ht(){Q.h=F,Q.b=Q.c=Q.g=Q.i="",Q.e="t",Q.j=true;for(var n,t=0;n=arguments[t];t++)for(var e in n)Q[e]=n[e];
18
- t=Q.a,Q.d=/^[^,]+/.exec(t)[0],n=re,t="return function("+t+"){",e=Q;var r="var n,t="+e.d+",E="+e.e+";if(!t)return E;"+e.i+";";e.b?(r+="var u=t.length;n=-1;if("+e.b+"){",qe.unindexedChars&&(r+="if(s(t)){t=t.split('')}"),r+="while(++n<u){"+e.g+";}}else{"):qe.nonEnumArgs&&(r+="var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';"+e.g+";}}else{"),qe.enumPrototypes&&(r+="var G=typeof t=='function';"),qe.enumErrorProps&&(r+="var F=t===k||t instanceof Error;");var u=[];if(qe.enumPrototypes&&u.push('!(G&&n=="prototype")'),qe.enumErrorProps&&u.push('!(F&&(n=="message"||n=="name"))'),e.j&&e.f)r+="var C=-1,D=B[typeof t]&&v(t),u=D?D.length:0;while(++C<u){n=D[C];",u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}";
19
- else if(r+="for(n in t){",e.j&&u.push("m.call(t, n)"),u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}",qe.nonEnumShadows){for(r+="if(t!==A){var i=t.constructor,r=t===(i&&i.prototype),f=t===J?I:t===k?j:L.call(t),x=y[f];",k=0;7>k;k++)r+="n='"+e.h[k]+"';if((!(r&&x[n])&&m.call(t,n))",e.j||(r+="||(!x[n]&&t[n]!==A[n])"),r+="){"+e.g+"}";r+="}"}return(e.b||qe.nonEnumArgs)&&(r+="}"),r+=e.c+";return E",n("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",t+r+"}")(tt,q,pe,je,d,bt,We,Et,Q.f,se,X,ze,M,ge,ve)
20
- }function vt(n){return Ve[n]}function yt(){var t=(t=v.indexOf)===qt?n:t;return t}function mt(n){var t,e;return!n||ve.call(n)!=G||(t=n.constructor,xt(t)&&!(t instanceof t))||!qe.argsClass&&bt(n)||!qe.nodeClass&&f(n)?false:qe.ownLast?(er(n,function(n,t,r){return e=je.call(r,t),false}),false!==e):(er(n,function(n,t){e=t}),typeof e=="undefined"||je.call(n,e))}function dt(n){return Qe[n]}function bt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ve.call(n)==$||false}function _t(n,t,e){var r=Je(n),u=r.length;
21
- for(t=tt(t,e,3);u--&&(e=r[u],false!==t(n[e],e,n)););return n}function wt(n){var t=[];return er(n,function(n,e){xt(n)&&t.push(e)}),t.sort()}function jt(n){for(var t=-1,e=Je(n),r=e.length,u={};++t<r;){var o=e[t];u[n[o]]=o}return u}function xt(n){return typeof n=="function"}function Ct(n){return!(!n||!X[typeof n])}function kt(n){return typeof n=="number"||n&&typeof n=="object"&&ve.call(n)==W||false}function Et(n){return typeof n=="string"||n&&typeof n=="object"&&ve.call(n)==M||false}function Ot(n){for(var t=-1,e=Je(n),r=e.length,u=ne(r);++t<r;)u[t]=n[e[t]];
22
- return u}function St(n,t,e){var r=-1,u=yt(),o=n?n.length:0,a=false;return e=(0>e?Re(0,o+e):e)||0,We(n)?a=-1<u(n,t,e):typeof o=="number"?a=-1<(Et(n)?n.indexOf(t,e):u(n,t,e)):Ze(n,function(n){return++r<e?void 0:!(a=n===t)}),a}function It(n,t,e){var r=true;if(t=v.createCallback(t,e,3),We(n)){e=-1;for(var u=n.length;++e<u&&(r=!!t(n[e],e,n)););}else Ze(n,function(n,e,u){return r=!!t(n,e,u)});return r}function At(n,t,e){var r=[];if(t=v.createCallback(t,e,3),We(n)){e=-1;for(var u=n.length;++e<u;){var o=n[e];
23
- t(o,e,n)&&r.push(o)}}else Ze(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function Dt(n,t,e){if(t=v.createCallback(t,e,3),!We(n)){var r;return Ze(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r}e=-1;for(var u=n.length;++e<u;){var o=n[e];if(t(o,e,n))return o}}function Nt(n,t,e){if(t&&typeof e=="undefined"&&We(n)){e=-1;for(var r=n.length;++e<r&&false!==t(n[e],e,n););}else Ze(n,t,e);return n}function Bt(n,t,e){var r=n,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:tt(t,e,3),We(n))for(;u--&&false!==t(n[u],u,n););else{if(typeof u!="number")var o=Je(n),u=o.length;
24
- else qe.unindexedChars&&Et(n)&&(r=n.split(""));Ze(n,function(n,e,a){return e=o?o[--u]:--u,t(r[e],e,a)})}return n}function Pt(n,t,e){var r=-1,u=n?n.length:0,o=ne(typeof u=="number"?u:0);if(t=v.createCallback(t,e,3),We(n))for(;++r<u;)o[r]=t(n[r],r,n);else Ze(n,function(n,e,u){o[++r]=t(n,e,u)});return o}function Rt(n,t,e){var u=-1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&We(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i>o&&(o=i)}}else t=null==t&&Et(n)?r:v.createCallback(t,e,3),Ze(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)
25
- });return o}function Ft(n,t,e,r){var u=3>arguments.length;if(t=v.createCallback(t,r,4),We(n)){var o=-1,a=n.length;for(u&&(e=n[++o]);++o<a;)e=t(e,n[o],o,n)}else Ze(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)});return e}function $t(n,t,e,r){var u=3>arguments.length;return t=v.createCallback(t,r,4),Bt(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)}),e}function Lt(n){var t=-1,e=n?n.length:0,r=ne(typeof e=="number"?e:0);return Nt(n,function(n){var e=ct(0,++t);r[t]=r[e],r[e]=n}),r}function Tt(n,t,e){var r;if(t=v.createCallback(t,e,3),We(n)){e=-1;
26
- for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else Ze(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function zt(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=-1;for(t=v.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[0]:h;return s(n,0,Fe(Re(0,r),u))}function qt(t,e,r){if(typeof r=="number"){var u=t?t.length:0;r=0>r?Re(0,u+r):r||0}else if(r)return r=Wt(t,e),t[r]===e?r:-1;return n(t,e,r)}function Kt(n,t,e){if(typeof t!="number"&&null!=t){var r=0,u=-1,o=n?n.length:0;
27
- for(t=v.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=null==t||e?1:Re(0,t);return s(n,r)}function Wt(n,t,e,r){var u=0,o=n?n.length:u;for(e=e?v.createCallback(e,r,1):Qt,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r;return u}function Gt(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(e=v.createCallback(e,r,3)),pt(n,t,e)}function Jt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?Rt(lr(n,"length")):0,r=ne(0>e?0:e);++t<e;)r[t]=lr(n,t);
28
- return r}function Mt(n,t){for(var e=-1,r=n?n.length:0,u={};++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u}function Ht(n,t){return 2<arguments.length?gt(n,17,s(arguments,2),null,t):gt(n,1,null,null,t)}function Ut(n,t,e){var r,u,o,a,i,l,f,c=0,p=false,s=true;if(!xt(n))throw new fe;if(t=Re(0,t)||0,true===e)var g=true,s=false;else Ct(e)&&(g=e.leading,p="maxWait"in e&&(Re(t,e.maxWait)||0),s="trailing"in e?e.trailing:s);var v=function(){var e=t-(xe()-a);0<e?l=Ee(v,e):(u&&de(u),e=f,u=l=f=h,e&&(c=xe(),o=n.apply(i,r),l||u||(r=i=null)))
29
- },y=function(){l&&de(l),u=l=f=h,(s||p!==t)&&(c=xe(),o=n.apply(i,r),l||u||(r=i=null))};return function(){if(r=arguments,a=xe(),i=this,f=s&&(l||!g),false===p)var e=g&&!l;else{u||g||(c=a);var h=p-(a-c),m=0>=h;m?(u&&(u=de(u)),c=a,o=n.apply(i,r)):u||(u=Ee(y,h))}return m&&l?l=de(l):l||t===p||(l=Ee(v,t)),e&&(m=true,o=n.apply(i,r)),!m||l||u||(r=i=null),o}}function Vt(n){if(!xt(n))throw new fe;var t=s(arguments,1);return Ee(function(){n.apply(h,t)},1)}function Qt(n){return n}function Xt(n,t){var e=n,r=!t||xt(e);
30
- t||(e=y,t=n,n=v),Nt(wt(t),function(u){var o=n[u]=t[u];r&&(e.prototype[u]=function(){var t=this.__wrapped__,r=[t];return Ce.apply(r,arguments),r=o.apply(n,r),t&&typeof t=="object"&&t===r?this:(r=new e(r),r.__chain__=this.__chain__,r)})})}function Yt(){}function Zt(){return this.__wrapped__}e=e?ut.defaults(Z.Object(),e,ut.pick(Z,R)):Z;var ne=e.Array,te=e.Boolean,ee=e.Date,re=e.Function,ue=e.Math,oe=e.Number,ae=e.Object,ie=e.RegExp,le=e.String,fe=e.TypeError,ce=[],pe=e.Error.prototype,se=ae.prototype,ge=le.prototype,he=e._,ve=se.toString,ye=ie("^"+le(ve).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),me=ue.ceil,de=e.clearTimeout,be=ue.floor,_e=re.prototype.toString,we=ye.test(we=ae.getPrototypeOf)&&we,je=se.hasOwnProperty,xe=ye.test(xe=ee.now)&&xe||function(){return+new ee
31
- },Ce=ce.push,ke=se.propertyIsEnumerable,Ee=e.setTimeout,Oe=ce.splice,Se=typeof(Se=rt&&et&&rt.setImmediate)=="function"&&!ye.test(Se)&&Se,Ie=function(){try{var n={},t=ye.test(t=ae.defineProperty)&&t,e=t(n,n,n)&&t}catch(r){}return e}(),Ae=ye.test(Ae=ae.create)&&Ae,De=ye.test(De=ne.isArray)&&De,Ne=e.isFinite,Be=e.isNaN,Pe=ye.test(Pe=ae.keys)&&Pe,Re=ue.max,Fe=ue.min,$e=e.parseInt,Le=ue.random,Te={};Te[L]=ne,Te[T]=te,Te[z]=ee,Te[K]=re,Te[G]=ae,Te[W]=oe,Te[J]=ie,Te[M]=le;var ze={};ze[L]=ze[z]=ze[W]={constructor:true,toLocaleString:true,toString:true,valueOf:true},ze[T]=ze[M]={constructor:true,toString:true,valueOf:true},ze[q]=ze[K]=ze[J]={constructor:true,toString:true},ze[G]={constructor:true},function(){for(var n=F.length;n--;){var t,e=F[n];
32
- for(t in ze)je.call(ze,t)&&!je.call(ze[t],e)&&(ze[t][e]=false)}}(),y.prototype=v.prototype;var qe=v.support={};!function(){var n=function(){this.x=1},t={0:1,length:1},r=[];n.prototype={valueOf:1,y:1};for(var u in new n)r.push(u);for(u in arguments);qe.argsClass=ve.call(arguments)==$,qe.argsObject=arguments.constructor==ae&&!(arguments instanceof ne),qe.enumErrorProps=ke.call(pe,"message")||ke.call(pe,"name"),qe.enumPrototypes=ke.call(n,"prototype"),qe.funcDecomp=!ye.test(e.WinRTError)&&B.test(g),qe.funcNames=typeof re.name=="string",qe.nonEnumArgs=0!=u,qe.nonEnumShadows=!/valueOf/.test(r),qe.ownLast="x"!=r[0],qe.spliceObjects=(ce.splice.call(t,0,1),!t[0]),qe.unindexedChars="xx"!="x"[0]+ae("x")[0];
33
- try{qe.nodeClass=!(ve.call(document)==G&&!({toString:0}+""))}catch(o){qe.nodeClass=true}}(1),v.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:A,variable:"",imports:{_:v}},Ae||(nt=function(){function n(){}return function(t){if(Ct(t)){n.prototype=t;var r=new n;n.prototype=null}return r||e.Object()}}());var Ke=Ie?function(n,t){V.value=t,Ie(n,"__bindData__",V)}:Yt;qe.argsClass||(bt=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&je.call(n,"callee")&&!ke.call(n,"callee")||false
34
- });var We=De||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ve.call(n)==L||false},Ge=ht({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),Je=Pe?function(n){return Ct(n)?qe.enumPrototypes&&typeof n=="function"||qe.nonEnumArgs&&n.length&&bt(n)?Ge(n):Pe(n):[]}:Ge,Me={a:"g,e,K",i:"e=e&&typeof K=='undefined'?e:d(e,K,3)",b:"typeof u=='number'",v:Je,g:"if(e(t[n],n,g)===false)return E"},He={a:"z,H,l",i:"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b<c){t=a[b];if(t&&B[typeof t]){",v:Je,g:"if(typeof E[n]=='undefined')E[n]=t[n]",c:"}}"},Ue={i:"if(!B[typeof t])return E;"+Me.i,b:false},Ve={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Qe=jt(Ve),Xe=ie("("+Je(Qe).join("|")+")","g"),Ye=ie("["+Je(Ve).join("")+"]","g"),Ze=ht(Me),nr=ht(He,{i:He.i.replace(";",";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}"),g:"E[n]=e?e(E[n],t[n]):t[n]"}),tr=ht(He),er=ht(Me,Ue,{j:false}),rr=ht(Me,Ue);
35
- xt(/x/)&&(xt=function(n){return typeof n=="function"&&ve.call(n)==K});var ur=we?function(n){if(!n||ve.call(n)!=G||!qe.argsClass&&bt(n))return false;var t=n.valueOf,e=typeof t=="function"&&(e=we(t))&&we(e);return e?n==e||we(n)==e:mt(n)}:mt,or=st(function(n,t,e){je.call(n,e)?n[e]++:n[e]=1}),ar=st(function(n,t,e){(je.call(n,e)?n[e]:n[e]=[]).push(t)}),ir=st(function(n,t,e){n[e]=t}),lr=Pt;Se&&(Vt=function(n){if(!xt(n))throw new fe;return Se.apply(e,arguments)});var fr=8==$e(j+"08")?$e:function(n,t){return $e(Et(n)?n.replace(D,""):n,t||0)
36
- };return v.after=function(n,t){if(!xt(t))throw new fe;return function(){return 1>--n?t.apply(this,arguments):void 0}},v.assign=nr,v.at=function(n){var t=arguments,e=-1,r=it(t,true,false,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=ne(t);for(qe.unindexedChars&&Et(n)&&(n=n.split(""));++e<t;)u[e]=n[r[e]];return u},v.bind=Ht,v.bindAll=function(n){for(var t=1<arguments.length?it(arguments,true,false,1):wt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=gt(n[u],1,null,null,n)}return n},v.bindKey=function(n,t){return 2<arguments.length?gt(t,19,s(arguments,2),null,n):gt(t,3,null,null,n)
37
- },v.chain=function(n){return n=new y(n),n.__chain__=true,n},v.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},v.compose=function(){for(var n=arguments,t=n.length;t--;)if(!xt(n[t]))throw new fe;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},v.countBy=or,v.create=function(n,t){var e=nt(n);return t?nr(e,t):e},v.createCallback=function(n,t,e){var r=typeof n;if(null==n||"function"==r)return tt(n,t,e);if("object"!=r)return function(t){return t[n]
38
- };var u=Je(n),o=u[0],a=n[o];return 1!=u.length||a!==a||Ct(a)?function(t){for(var e=u.length,r=false;e--&&(r=lt(t[u[e]],n[u[e]],null,true)););return r}:function(n){return n=n[o],a===n&&(0!==a||1/a==1/n)}},v.curry=function(n,t){return t=typeof t=="number"?t:+t||n.length,gt(n,4,null,null,null,t)},v.debounce=Ut,v.defaults=tr,v.defer=Vt,v.delay=function(n,t){if(!xt(n))throw new fe;var e=s(arguments,2);return Ee(function(){n.apply(h,e)},t)},v.difference=function(n){return at(n,it(arguments,true,true,1))},v.filter=At,v.flatten=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(n=Pt(n,e,r)),it(n,t)
39
- },v.forEach=Nt,v.forEachRight=Bt,v.forIn=er,v.forInRight=function(n,t,e){var r=[];er(n,function(n,t){r.push(t,n)});var u=r.length;for(t=tt(t,e,3);u--&&false!==t(r[u--],r[u],n););return n},v.forOwn=rr,v.forOwnRight=_t,v.functions=wt,v.groupBy=ar,v.indexBy=ir,v.initial=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else r=null==t||e?1:t||r;return s(n,0,Fe(Re(0,u-r),u))},v.intersection=function(e){for(var r=arguments,u=r.length,a=-1,l=i(),f=-1,s=yt(),g=e?e.length:0,h=[],v=i();++a<u;){var y=r[a];
40
- l[a]=s===n&&(y?y.length:0)>=_&&o(a?r[a]:v)}n:for(;++f<g;){var m=l[0],y=e[f];if(0>(m?t(m,y):s(v,y))){for(a=u,(m||v).push(y);--a;)if(m=l[a],0>(m?t(m,y):s(r[a],y)))continue n;h.push(y)}}for(;u--;)(m=l[u])&&p(m);return c(l),c(v),h},v.invert=jt,v.invoke=function(n,t){var e=s(arguments,2),r=-1,u=typeof t=="function",o=n?n.length:0,a=ne(typeof o=="number"?o:0);return Nt(n,function(n){a[++r]=(u?t:n[t]).apply(n,e)}),a},v.keys=Je,v.map=Pt,v.max=Rt,v.memoize=function(n,t){if(!xt(n))throw new fe;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):b+arguments[0];
41
- return je.call(r,u)?r[u]:r[u]=n.apply(this,arguments)};return e.cache={},e},v.merge=function(n){var t=arguments,e=2;if(!Ct(n))return n;if("number"!=typeof t[2]&&(e=t.length),3<e&&"function"==typeof t[e-2])var r=tt(t[--e-1],t[e--],2);else 2<e&&"function"==typeof t[e-1]&&(r=t[--e]);for(var t=s(arguments,1,e),u=-1,o=i(),a=i();++u<e;)ft(n,t[u],r,o,a);return c(o),c(a),n},v.min=function(n,t,e){var u=1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&We(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];
42
- i<o&&(o=i)}}else t=null==t&&Et(n)?r:v.createCallback(t,e,3),Ze(n,function(n,e,r){e=t(n,e,r),e<u&&(u=e,o=n)});return o},v.omit=function(n,t,e){var r={};if(typeof t!="function"){var u=[];er(n,function(n,t){u.push(t)});for(var u=at(u,it(arguments,true,false,1)),o=-1,a=u.length;++o<a;){var i=u[o];r[i]=n[i]}}else t=v.createCallback(t,e,3),er(n,function(n,e,u){t(n,e,u)||(r[e]=n)});return r},v.once=function(n){var t,e;if(!xt(n))throw new fe;return function(){return t?e:(t=true,e=n.apply(this,arguments),n=null,e)
43
- }},v.pairs=function(n){for(var t=-1,e=Je(n),r=e.length,u=ne(r);++t<r;){var o=e[t];u[t]=[o,n[o]]}return u},v.partial=function(n){return gt(n,16,s(arguments,1))},v.partialRight=function(n){return gt(n,32,null,s(arguments,1))},v.pick=function(n,t,e){var r={};if(typeof t!="function")for(var u=-1,o=it(arguments,true,false,1),a=Ct(n)?o.length:0;++u<a;){var i=o[u];i in n&&(r[i]=n[i])}else t=v.createCallback(t,e,3),er(n,function(n,e,u){t(n,e,u)&&(r[e]=n)});return r},v.pluck=lr,v.pull=function(n){for(var t=arguments,e=0,r=t.length,u=n?n.length:0;++e<r;)for(var o=-1,a=t[e];++o<u;)n[o]===a&&(Oe.call(n,o--,1),u--);
44
- return n},v.range=function(n,t,e){n=+n||0,e=typeof e=="number"?e:+e||1,null==t&&(t=n,n=0);var r=-1;t=Re(0,me((t-n)/(e||1)));for(var u=ne(t);++r<t;)u[r]=n,n+=e;return u},v.reject=function(n,t,e){return t=v.createCallback(t,e,3),At(n,function(n,e,r){return!t(n,e,r)})},v.remove=function(n,t,e){var r=-1,u=n?n.length:0,o=[];for(t=v.createCallback(t,e,3);++r<u;)e=n[r],t(e,r,n)&&(o.push(e),Oe.call(n,r--,1),u--);return o},v.rest=Kt,v.shuffle=Lt,v.sortBy=function(n,t,e){var r=-1,o=n?n.length:0,a=ne(typeof o=="number"?o:0);
45
- for(t=v.createCallback(t,e,3),Nt(n,function(n,e,u){var o=a[++r]=l();o.m=t(n,e,u),o.n=r,o.o=n}),o=a.length,a.sort(u);o--;)n=a[o],a[o]=n.o,p(n);return a},v.tap=function(n,t){return t(n),n},v.throttle=function(n,t,e){var r=true,u=true;if(!xt(n))throw new fe;return false===e?r=false:Ct(e)&&(r="leading"in e?e.leading:r,u="trailing"in e?e.trailing:u),U.leading=r,U.maxWait=t,U.trailing=u,Ut(n,t,U)},v.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=ne(n);for(t=tt(t,e,1);++r<n;)u[r]=t(r);return u},v.toArray=function(n){return n&&typeof n.length=="number"?qe.unindexedChars&&Et(n)?n.split(""):s(n):Ot(n)
46
- },v.transform=function(n,t,e,r){var u=We(n);if(null==e)if(u)e=[];else{var o=n&&n.constructor;e=nt(o&&o.prototype)}return t&&(t=v.createCallback(t,r,4),(u?Ze:rr)(n,function(n,r,u){return t(e,n,r,u)})),e},v.union=function(){return pt(it(arguments,true,true))},v.uniq=Gt,v.values=Ot,v.where=At,v.without=function(n){return at(n,s(arguments,1))},v.wrap=function(n,t){return gt(t,16,[n])},v.zip=Jt,v.zipObject=Mt,v.collect=Pt,v.drop=Kt,v.each=Nt,v.eachRight=Bt,v.extend=nr,v.methods=wt,v.object=Mt,v.select=At,v.tail=Kt,v.unique=Gt,v.unzip=Jt,Xt(v),v.clone=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=t,t=false),Y(n,t,typeof e=="function"&&tt(e,r,1))
47
- },v.cloneDeep=function(n,t,e){return Y(n,true,typeof t=="function"&&tt(t,e,1))},v.contains=St,v.escape=function(n){return null==n?"":le(n).replace(Ye,vt)},v.every=It,v.find=Dt,v.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=v.createCallback(t,e,3);++r<u;)if(t(n[r],r,n))return r;return-1},v.findKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),rr(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.findLast=function(n,t,e){var r;return t=v.createCallback(t,e,3),Bt(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0
48
- }),r},v.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=v.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;return-1},v.findLastKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),_t(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.has=function(n,t){return n?je.call(n,t):false},v.identity=Qt,v.indexOf=qt,v.isArguments=bt,v.isArray=We,v.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&ve.call(n)==T||false},v.isDate=function(n){return n&&typeof n=="object"&&ve.call(n)==z||false
49
- },v.isElement=function(n){return n&&1===n.nodeType||false},v.isEmpty=function(n){var t=true;if(!n)return t;var e=ve.call(n),r=n.length;return e==L||e==M||(qe.argsClass?e==$:bt(n))||e==G&&typeof r=="number"&&xt(n.splice)?!r:(rr(n,function(){return t=false}),t)},v.isEqual=function(n,t,e,r){return lt(n,t,typeof e=="function"&&tt(e,r,2))},v.isFinite=function(n){return Ne(n)&&!Be(parseFloat(n))},v.isFunction=xt,v.isNaN=function(n){return kt(n)&&n!=+n},v.isNull=function(n){return null===n},v.isNumber=kt,v.isObject=Ct,v.isPlainObject=ur,v.isRegExp=function(n){return n&&X[typeof n]&&ve.call(n)==J||false
50
- },v.isString=Et,v.isUndefined=function(n){return typeof n=="undefined"},v.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?Re(0,r+e):Fe(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},v.mixin=Xt,v.noConflict=function(){return e._=he,this},v.noop=Yt,v.parseInt=fr,v.random=function(n,t,e){var r=null==n,u=null==t;return null==e&&(typeof n=="boolean"&&u?(e=n,n=1):u||typeof t!="boolean"||(e=t,u=true)),r&&u&&(t=1),n=+n||0,u?(t=n,n=0):t=+t||0,e||n%1||t%1?(e=Le(),Fe(n+e*(t-n+parseFloat("1e-"+((e+"").length-1))),t)):ct(n,t)
51
- },v.reduce=Ft,v.reduceRight=$t,v.result=function(n,t){if(n){var e=n[t];return xt(e)?n[t]():e}},v.runInContext=g,v.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:Je(n).length},v.some=Tt,v.sortedIndex=Wt,v.template=function(n,t,e){var r=v.templateSettings;n=le(n||""),e=tr({},e,r);var u,o=tr({},e.imports,r.imports),r=Je(o),o=Ot(o),i=0,l=e.interpolate||N,f="__p+='",l=ie((e.escape||N).source+"|"+l.source+"|"+(l===A?O:N).source+"|"+(e.evaluate||N).source+"|$","g");n.replace(l,function(t,e,r,o,l,c){return r||(r=o),f+=n.slice(i,c).replace(P,a),e&&(f+="'+__e("+e+")+'"),l&&(u=true,f+="';"+l+";\n__p+='"),r&&(f+="'+((__t=("+r+"))==null?'':__t)+'"),i=c+t.length,t
52
- }),f+="';",l=e=e.variable,l||(e="obj",f="with("+e+"){"+f+"}"),f=(u?f.replace(x,""):f).replace(C,"$1").replace(E,"$1;"),f="function("+e+"){"+(l?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+f+"return __p}";try{var c=re(r,"return "+f).apply(h,o)}catch(p){throw p.source=f,p}return t?c(t):(c.source=f,c)},v.unescape=function(n){return null==n?"":le(n).replace(Xe,dt)},v.uniqueId=function(n){var t=++m;return le(null==n?"":n)+t
53
- },v.all=It,v.any=Tt,v.detect=Dt,v.findWhere=Dt,v.foldl=Ft,v.foldr=$t,v.include=St,v.inject=Ft,rr(v,function(n,t){v.prototype[t]||(v.prototype[t]=function(){var t=[this.__wrapped__],e=this.__chain__;return Ce.apply(t,arguments),t=n.apply(v,t),e?new y(t,e):t})}),v.first=zt,v.last=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[u-1]:h;return s(n,Re(0,u-r))},v.sample=function(n,t,e){return n&&typeof n.length!="number"?n=Ot(n):qe.unindexedChars&&Et(n)&&(n=n.split("")),null==t||e?n?n[ct(0,n.length-1)]:h:(n=Lt(n),n.length=Fe(Re(0,t),n.length),n)
54
- },v.take=zt,v.head=zt,rr(v,function(n,t){var e="sample"!==t;v.prototype[t]||(v.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t=="function")?new y(o,u):o})}),v.VERSION="2.3.0",v.prototype.chain=function(){return this.__chain__=true,this},v.prototype.toString=function(){return le(this.__wrapped__)},v.prototype.value=Zt,v.prototype.valueOf=Zt,Ze(["join","pop","shift"],function(n){var t=ce[n];v.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments);
55
- return n?new y(e,n):e}}),Ze(["push","reverse","sort","unshift"],function(n){var t=ce[n];v.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Ze(["concat","slice","splice"],function(n){var t=ce[n];v.prototype[n]=function(){return new y(t.apply(this.__wrapped__,arguments),this.__chain__)}}),qe.spliceObjects||Ze(["pop","shift","splice"],function(n){var t=ce[n],e="splice"==n;v.prototype[n]=function(){var n=this.__chain__,r=this.__wrapped__,u=t.apply(r,arguments);return 0===r.length&&delete r[0],n||e?new y(u,n):u
56
- }}),v}var h,v=[],y=[],m=0,d={},b=+new Date+"",_=75,w=40,j=" \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=/\b__p\+='';/g,C=/\b(__p\+=)''\+/g,E=/(__e\(.*?\)|\b__t\))\+'';/g,O=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,S=/\w*$/,I=/^\s*function[ \n\r\t]+\w/,A=/<%=([\s\S]+?)%>/g,D=RegExp("^["+j+"]*0+(?=.$)"),N=/($^)/,B=/\bthis\b/,P=/['\n\r\t\u2028\u2029\\]/g,R="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),F="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),$="[object Arguments]",L="[object Array]",T="[object Boolean]",z="[object Date]",q="[object Error]",K="[object Function]",W="[object Number]",G="[object Object]",J="[object RegExp]",M="[object String]",H={};
57
- H[K]=false,H[$]=H[L]=H[T]=H[z]=H[W]=H[G]=H[J]=H[M]=true;var U={leading:false,maxWait:0,trailing:false},V={configurable:false,enumerable:false,value:null,writable:false},Q={a:"",b:null,c:"",d:"",e:"",v:null,g:"",h:null,support:null,i:"",j:false},X={"boolean":false,"function":true,object:true,number:false,string:false,undefined:false},Y={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Z=X[typeof window]&&window||this,nt=X[typeof exports]&&exports&&!exports.nodeType&&exports,tt=X[typeof module]&&module&&!module.nodeType&&module,et=tt&&tt.exports===nt&&nt,rt=X[typeof global]&&global;
7
+ }}function r(n){return n.charCodeAt(0)}function u(n,t){for(var e=n.m,r=t.m,u=-1,o=e.length;++u<o;){var a=e[u],i=r[u];if(a!==i){if(a>i||typeof a=="undefined")return 1;if(a<i||typeof i=="undefined")return-1}}return n.n-t.n}function o(n){var t=-1,r=n.length,u=n[0],o=n[r/2|0],a=n[r-1];if(u&&typeof u=="object"&&o&&typeof o=="object"&&a&&typeof a=="object")return false;for(u=l(),u["false"]=u["null"]=u["true"]=u.undefined=false,o=l(),o.k=n,o.l=u,o.push=e;++t<r;)o.push(n[t]);return o}function a(n){return"\\"+Y[n]
8
+ }function i(){return v.pop()||[]}function l(){return y.pop()||{k:null,l:null,m:null,"false":false,n:0,"null":false,number:null,object:null,push:null,string:null,"true":false,undefined:false,o:null}}function f(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function c(n){n.length=0,v.length<w&&v.push(n)}function p(n){var t=n.l;t&&p(t),n.k=n.l=n.m=n.object=n.number=n.string=n.o=null,y.length<w&&y.push(n)}function s(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];
9
+ return u}function g(e){function v(n){return n&&typeof n=="object"&&!Le(n)&&_e.call(n,"__wrapped__")?n:new y(n)}function y(n,t){this.__chain__=!!t,this.__wrapped__=n}function w(n){function t(){if(r){var n=r.slice();we.apply(n,arguments)}if(this instanceof t){var o=nt(e.prototype),n=e.apply(o,n||arguments);return jt(n)?n:o}return e.apply(u,n||arguments)}var e=n[0],r=n[2],u=n[4];return $e(t,n),t}function Y(n,t,e,r,u){if(e){var o=e(n);if(typeof o!="undefined")return o}if(!jt(n))return n;var a=ge.call(n);
10
+ if(!V[a]||!Te.nodeClass&&f(n))return n;var l=Re[a];switch(a){case L:case z:return new l(+n);case W:case M:return new l(n);case J:return o=l(n.source,S.exec(n)),o.lastIndex=n.lastIndex,o}if(a=Le(n),t){var p=!r;r||(r=i()),u||(u=i());for(var g=r.length;g--;)if(r[g]==n)return u[g];o=a?l(n.length):{}}else o=a?s(n):Qe({},n);return a&&(_e.call(n,"index")&&(o.index=n.index),_e.call(n,"input")&&(o.input=n.input)),t?(r.push(n),u.push(o),(a?Ue:Ze)(n,function(n,a){o[a]=Y(n,t,e,r,u)}),p&&(c(r),c(u)),o):o}function nt(n){return jt(n)?Ee(n):{}
11
+ }function tt(n,t,e){if(typeof n!="function")return Vt;if(typeof t=="undefined"||!("prototype"in n))return n;var r=n.__bindData__;if(typeof r=="undefined"&&(Te.funcNames&&(r=!n.name),r=r||!Te.funcDecomp,!r)){var u=de.call(n);Te.funcNames||(r=!A.test(u)),r||(r=B.test(u),$e(n,r))}if(false===r||true!==r&&1&r[1])return n;switch(e){case 1:return function(e){return n.call(t,e)};case 2:return function(e,r){return n.call(t,e,r)};case 3:return function(e,r,u){return n.call(t,e,r,u)};case 4:return function(e,r,u,o){return n.call(t,e,r,u,o)
12
+ }}return Jt(n,t)}function et(n){function t(){var n=l?a:this;if(u){var h=u.slice();we.apply(h,arguments)}return(o||c)&&(h||(h=s(arguments)),o&&we.apply(h,o),c&&h.length<i)?(r|=16,et([e,p?r:-4&r,h,null,a,i])):(h||(h=arguments),f&&(e=n[g]),this instanceof t?(n=nt(e.prototype),h=e.apply(n,h),jt(h)?h:n):e.apply(n,h))}var e=n[0],r=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=1&r,f=2&r,c=4&r,p=8&r,g=e;return $e(t,n),t}function rt(e,r){var u=-1,a=ht(),i=e?e.length:0,l=i>=_&&a===n,f=[];if(l){var c=o(r);c?(a=t,r=c):l=false
13
+ }for(;++u<i;)c=e[u],0>a(r,c)&&f.push(c);return l&&p(r),f}function ot(n,t,e,r){r=(r||0)-1;for(var u=n?n.length:0,o=[];++r<u;){var a=n[r];if(a&&typeof a=="object"&&typeof a.length=="number"&&(Le(a)||mt(a))){t||(a=ot(a,t,e));var i=-1,l=a.length,f=o.length;for(o.length+=l;++i<l;)o[f++]=a[i]}else e||o.push(a)}return o}function at(n,t,e,r,u,o){if(e){var a=e(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;if(n===n&&!(n&&X[typeof n]||t&&X[typeof t]))return false;if(null==n||null==t)return n===t;
14
+ var l=ge.call(n),p=ge.call(t);if(l==T&&(l=G),p==T&&(p=G),l!=p)return false;switch(l){case L:case z:return+n==+t;case W:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case J:case M:return n==ae(t)}if(p=l==$,!p){var s=_e.call(n,"__wrapped__"),g=_e.call(t,"__wrapped__");if(s||g)return at(s?n.__wrapped__:n,g?t.__wrapped__:t,e,r,u,o);if(l!=G||!Te.nodeClass&&(f(n)||f(t)))return false;if(l=!Te.argsObject&&mt(n)?ue:n.constructor,s=!Te.argsObject&&mt(t)?ue:t.constructor,l!=s&&!(wt(l)&&l instanceof l&&wt(s)&&s instanceof s)&&"constructor"in n&&"constructor"in t)return false
15
+ }for(s=!u,u||(u=i()),o||(o=i()),l=u.length;l--;)if(u[l]==n)return o[l]==t;var h=0,a=true;if(u.push(n),o.push(t),p){if(l=n.length,h=t.length,a=h==n.length,!a&&!r)return a;for(;h--;)if(p=l,s=t[h],r)for(;p--&&!(a=at(n[p],s,e,r,u,o)););else if(!(a=at(n[h],s,e,r,u,o)))break;return a}return Ye(t,function(t,i,l){return _e.call(l,i)?(h++,a=_e.call(n,i)&&at(n[i],t,e,r,u,o)):void 0}),a&&!r&&Ye(n,function(n,t,e){return _e.call(e,t)?a=-1<--h:void 0}),s&&(c(u),c(o)),a}function it(n,t,e,r,u){(Le(t)?It:Ze)(t,function(t,o){var a,i,l=t,f=n[o];
16
+ if(t&&((i=Le(t))||nr(t))){for(l=r.length;l--;)if(a=r[l]==t){f=u[l];break}if(!a){var c;e&&(l=e(f,t),c=typeof l!="undefined")&&(f=l),c||(f=i?Le(f)?f:[]:nr(f)?f:{}),r.push(t),u.push(f),c||it(f,t,e,r,u)}}else e&&(l=e(f,t),typeof l=="undefined"&&(l=t)),typeof l!="undefined"&&(f=l);n[o]=f})}function lt(n,t){return n+me(Pe()*(t-n+1))}function ft(e,r,u){var a=-1,l=ht(),f=e?e.length:0,s=[],g=!r&&f>=_&&l===n,h=u||g?i():s;if(g){var v=o(h);v?(l=t,h=v):(g=false,h=u?h:(c(h),s))}for(;++a<f;){var v=e[a],y=u?u(v,a,e):v;
17
+ (r?!a||h[h.length-1]!==y:0>l(h,y))&&((u||g)&&h.push(y),s.push(v))}return g?(c(h.k),p(h)):u&&c(h),s}function ct(n){return function(t,e,r){var u={};if(e=v.createCallback(e,r,3),Le(t)){r=-1;for(var o=t.length;++r<o;){var a=t[r];n(u,a,e(a,r,t),t)}}else Ue(t,function(t,r,o){n(u,t,e(t,r,o),o)});return u}}function pt(n,t,e,r,u,o){var a=1&t,i=4&t,l=16&t,f=32&t;if(!(2&t||wt(n)))throw new ie;l&&!e.length&&(t&=-17,l=e=false),f&&!r.length&&(t&=-33,f=r=false);var c=n&&n.__bindData__;return c&&true!==c?(c=c.slice(),!a||1&c[1]||(c[4]=u),!a&&1&c[1]&&(t|=8),!i||4&c[1]||(c[5]=o),l&&we.apply(c[2]||(c[2]=[]),e),f&&we.apply(c[3]||(c[3]=[]),r),c[1]|=t,pt.apply(null,c)):(1==t||17===t?w:et)([n,t,e,r,u,o])
18
+ }function st(){Q.h=F,Q.b=Q.c=Q.g=Q.i="",Q.e="t",Q.j=true;for(var n,t=0;n=arguments[t];t++)for(var e in n)Q[e]=n[e];t=Q.a,Q.d=/^[^,]+/.exec(t)[0],n=te,t="return function("+t+"){",e=Q;var r="var n,t="+e.d+",E="+e.e+";if(!t)return E;"+e.i+";";e.b?(r+="var u=t.length;n=-1;if("+e.b+"){",Te.unindexedChars&&(r+="if(s(t)){t=t.split('')}"),r+="while(++n<u){"+e.g+";}}else{"):Te.nonEnumArgs&&(r+="var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';"+e.g+";}}else{"),Te.enumPrototypes&&(r+="var G=typeof t=='function';"),Te.enumErrorProps&&(r+="var F=t===k||t instanceof Error;");
19
+ var u=[];if(Te.enumPrototypes&&u.push('!(G&&n=="prototype")'),Te.enumErrorProps&&u.push('!(F&&(n=="message"||n=="name"))'),e.j&&e.f)r+="var C=-1,D=B[typeof t]&&v(t),u=D?D.length:0;while(++C<u){n=D[C];",u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}";else if(r+="for(n in t){",e.j&&u.push("m.call(t, n)"),u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}",Te.nonEnumShadows){for(r+="if(t!==A){var i=t.constructor,r=t===(i&&i.prototype),f=t===J?I:t===k?j:L.call(t),x=y[f];",k=0;7>k;k++)r+="n='"+e.h[k]+"';if((!(r&&x[n])&&m.call(t,n))",e.j||(r+="||(!x[n]&&t[n]!==A[n])"),r+="){"+e.g+"}";
20
+ r+="}"}return(e.b||Te.nonEnumArgs)&&(r+="}"),r+=e.c+";return E",n("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",t+r+"}")(tt,q,fe,_e,d,mt,Le,Ct,Q.f,ce,X,Fe,M,pe,ge)}function gt(n){return Je[n]}function ht(){var t=(t=v.indexOf)===Lt?n:t;return t}function vt(n){var t,e;return!n||ge.call(n)!=G||(t=n.constructor,wt(t)&&!(t instanceof t))||!Te.argsClass&&mt(n)||!Te.nodeClass&&f(n)?false:Te.ownLast?(Ye(n,function(n,t,r){return e=_e.call(r,t),false}),false!==e):(Ye(n,function(n,t){e=t}),typeof e=="undefined"||_e.call(n,e))}function yt(n){return Me[n]
21
+ }function mt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ge.call(n)==T||false}function dt(n,t,e){var r=qe(n),u=r.length;for(t=tt(t,e,3);u--&&(e=r[u],false!==t(n[e],e,n)););return n}function bt(n){var t=[];return Ye(n,function(n,e){wt(n)&&t.push(e)}),t.sort()}function _t(n){for(var t=-1,e=qe(n),r=e.length,u={};++t<r;){var o=e[t];u[n[o]]=o}return u}function wt(n){return typeof n=="function"}function jt(n){return!(!n||!X[typeof n])}function xt(n){return typeof n=="number"||n&&typeof n=="object"&&ge.call(n)==W||false
22
+ }function Ct(n){return typeof n=="string"||n&&typeof n=="object"&&ge.call(n)==M||false}function kt(n){for(var t=-1,e=qe(n),r=e.length,u=Yt(r);++t<r;)u[t]=n[e[t]];return u}function Et(n,t,e){var r=-1,u=ht(),o=n?n.length:0,a=false;return e=(0>e?De(0,o+e):e)||0,Le(n)?a=-1<u(n,t,e):typeof o=="number"?a=-1<(Ct(n)?n.indexOf(t,e):u(n,t,e)):Ue(n,function(n){return++r<e?void 0:!(a=n===t)}),a}function Ot(n,t,e){var r=true;if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u&&(r=!!t(n[e],e,n)););}else Ue(n,function(n,e,u){return r=!!t(n,e,u)
23
+ });return r}function St(n,t,e){var r=[];if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u;){var o=n[e];t(o,e,n)&&r.push(o)}}else Ue(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function At(n,t,e){if(t=v.createCallback(t,e,3),!Le(n)){var r;return Ue(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r}e=-1;for(var u=n.length;++e<u;){var o=n[e];if(t(o,e,n))return o}}function It(n,t,e){if(t&&typeof e=="undefined"&&Le(n)){e=-1;for(var r=n.length;++e<r&&false!==t(n[e],e,n););}else Ue(n,t,e);
24
+ return n}function Dt(n,t,e){var r=n,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:tt(t,e,3),Le(n))for(;u--&&false!==t(n[u],u,n););else{if(typeof u!="number")var o=qe(n),u=o.length;else Te.unindexedChars&&Ct(n)&&(r=n.split(""));Ue(n,function(n,e,a){return e=o?o[--u]:--u,t(r[e],e,a)})}return n}function Nt(n,t,e){var r=-1,u=n?n.length:0,o=Yt(typeof u=="number"?u:0);if(t=v.createCallback(t,e,3),Le(n))for(;++r<u;)o[r]=t(n[r],r,n);else Ue(n,function(n,e,u){o[++r]=t(n,e,u)});return o}function Bt(n,t,e){var u=-1/0,o=u;
25
+ if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&Le(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i>o&&(o=i)}}else t=null==t&&Ct(n)?r:v.createCallback(t,e,3),Ue(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)});return o}function Pt(n,t,e,r){var u=3>arguments.length;if(t=v.createCallback(t,r,4),Le(n)){var o=-1,a=n.length;for(u&&(e=n[++o]);++o<a;)e=t(e,n[o],o,n)}else Ue(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)});return e}function Rt(n,t,e,r){var u=3>arguments.length;return t=v.createCallback(t,r,4),Dt(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)
26
+ }),e}function Ft(n){var t=-1,e=n?n.length:0,r=Yt(typeof e=="number"?e:0);return It(n,function(n){var e=lt(0,++t);r[t]=r[e],r[e]=n}),r}function Tt(n,t,e){var r;if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else Ue(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function $t(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=-1;for(t=v.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[0]:h;return s(n,0,Ne(De(0,r),u))
27
+ }function Lt(t,e,r){if(typeof r=="number"){var u=t?t.length:0;r=0>r?De(0,u+r):r||0}else if(r)return r=qt(t,e),t[r]===e?r:-1;return n(t,e,r)}function zt(n,t,e){if(typeof t!="number"&&null!=t){var r=0,u=-1,o=n?n.length:0;for(t=v.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=null==t||e?1:De(0,t);return s(n,r)}function qt(n,t,e,r){var u=0,o=n?n.length:u;for(e=e?v.createCallback(e,r,1):Vt,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r;return u}function Kt(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(e=v.createCallback(e,r,3)),ft(n,t,e)
28
+ }function Wt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?Bt(ur(n,"length")):0,r=Yt(0>e?0:e);++t<e;)r[t]=ur(n,t);return r}function Gt(n,t){var e=-1,r=n?n.length:0,u={};for(t||!r||Le(n[0])||(t=[]);++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u}function Jt(n,t){return 2<arguments.length?pt(n,17,s(arguments,2),null,t):pt(n,1,null,null,t)}function Mt(n,t,e){var r,u,o,a,i,l,f,c=0,p=false,s=true;if(!wt(n))throw new ie;if(t=De(0,t)||0,true===e)var g=true,s=false;else jt(e)&&(g=e.leading,p="maxWait"in e&&(De(t,e.maxWait)||0),s="trailing"in e?e.trailing:s);
29
+ var v=function(){var e=t-(or()-a);0<e?l=xe(v,e):(u&&ye(u),e=f,u=l=f=h,e&&(c=or(),o=n.apply(i,r),l||u||(r=i=null)))},y=function(){l&&ye(l),u=l=f=h,(s||p!==t)&&(c=or(),o=n.apply(i,r),l||u||(r=i=null))};return function(){if(r=arguments,a=or(),i=this,f=s&&(l||!g),false===p)var e=g&&!l;else{u||g||(c=a);var h=p-(a-c),m=0>=h;m?(u&&(u=ye(u)),c=a,o=n.apply(i,r)):u||(u=xe(y,h))}return m&&l?l=ye(l):l||t===p||(l=xe(v,t)),e&&(m=true,o=n.apply(i,r)),!m||l||u||(r=i=null),o}}function Vt(n){return n}function Ht(n,t,e){var r=true,u=t&&bt(t);
30
+ t&&(e||u.length)||(null==e&&(e=t),o=y,t=n,n=v,u=bt(t)),false===e?r=false:jt(e)&&"chain"in e&&(r=e.chain);var o=n,a=wt(o);It(u,function(e){var u=n[e]=t[e];a&&(o.prototype[e]=function(){var t=this.__chain__,e=this.__wrapped__,a=[e];if(we.apply(a,arguments),a=u.apply(n,a),r||t){if(e===a&&jt(a))return this;a=new o(a),a.__chain__=t}return a})})}function Ut(){}function Qt(n){return function(t){return t[n]}}function Xt(){return this.__wrapped__}e=e?ut.defaults(Z.Object(),e,ut.pick(Z,R)):Z;var Yt=e.Array,Zt=e.Boolean,ne=e.Date,te=e.Function,ee=e.Math,re=e.Number,ue=e.Object,oe=e.RegExp,ae=e.String,ie=e.TypeError,le=[],fe=e.Error.prototype,ce=ue.prototype,pe=ae.prototype,se=e._,ge=ce.toString,he=oe("^"+ae(ge).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),ve=ee.ceil,ye=e.clearTimeout,me=ee.floor,de=te.prototype.toString,be=he.test(be=ue.getPrototypeOf)&&be,_e=ce.hasOwnProperty,we=le.push,je=ce.propertyIsEnumerable,xe=e.setTimeout,Ce=le.splice,ke=function(){try{var n={},t=he.test(t=ue.defineProperty)&&t,e=t(n,n,n)&&t
31
+ }catch(r){}return e}(),Ee=he.test(Ee=ue.create)&&Ee,Oe=he.test(Oe=Yt.isArray)&&Oe,Se=e.isFinite,Ae=e.isNaN,Ie=he.test(Ie=ue.keys)&&Ie,De=ee.max,Ne=ee.min,Be=e.parseInt,Pe=ee.random,Re={};Re[$]=Yt,Re[L]=Zt,Re[z]=ne,Re[K]=te,Re[G]=ue,Re[W]=re,Re[J]=oe,Re[M]=ae;var Fe={};Fe[$]=Fe[z]=Fe[W]={constructor:true,toLocaleString:true,toString:true,valueOf:true},Fe[L]=Fe[M]={constructor:true,toString:true,valueOf:true},Fe[q]=Fe[K]=Fe[J]={constructor:true,toString:true},Fe[G]={constructor:true},function(){for(var n=F.length;n--;){var t,e=F[n];
32
+ for(t in Fe)_e.call(Fe,t)&&!_e.call(Fe[t],e)&&(Fe[t][e]=false)}}(),y.prototype=v.prototype;var Te=v.support={};!function(){var n=function(){this.x=1},t={0:1,length:1},r=[];n.prototype={valueOf:1,y:1};for(var u in new n)r.push(u);for(u in arguments);Te.argsClass=ge.call(arguments)==T,Te.argsObject=arguments.constructor==ue&&!(arguments instanceof Yt),Te.enumErrorProps=je.call(fe,"message")||je.call(fe,"name"),Te.enumPrototypes=je.call(n,"prototype"),Te.funcDecomp=!he.test(e.WinRTError)&&B.test(g),Te.funcNames=typeof te.name=="string",Te.nonEnumArgs=0!=u,Te.nonEnumShadows=!/valueOf/.test(r),Te.ownLast="x"!=r[0],Te.spliceObjects=(le.splice.call(t,0,1),!t[0]),Te.unindexedChars="xx"!="x"[0]+ue("x")[0];
33
+ try{Te.nodeClass=!(ge.call(document)==G&&!({toString:0}+""))}catch(o){Te.nodeClass=true}}(1),v.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:I,variable:"",imports:{_:v}},Ee||(nt=function(){function n(){}return function(t){if(jt(t)){n.prototype=t;var r=new n;n.prototype=null}return r||e.Object()}}());var $e=ke?function(n,t){U.value=t,ke(n,"__bindData__",U)}:Ut;Te.argsClass||(mt=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&_e.call(n,"callee")&&!je.call(n,"callee")||false
34
+ });var Le=Oe||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ge.call(n)==$||false},ze=st({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),qe=Ie?function(n){return jt(n)?Te.enumPrototypes&&typeof n=="function"||Te.nonEnumArgs&&n.length&&mt(n)?ze(n):Ie(n):[]}:ze,Ke={a:"g,e,K",i:"e=e&&typeof K=='undefined'?e:d(e,K,3)",b:"typeof u=='number'",v:qe,g:"if(e(t[n],n,g)===false)return E"},We={a:"z,H,l",i:"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b<c){t=a[b];if(t&&B[typeof t]){",v:qe,g:"if(typeof E[n]=='undefined')E[n]=t[n]",c:"}}"},Ge={i:"if(!B[typeof t])return E;"+Ke.i,b:false},Je={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Me=_t(Je),Ve=oe("("+qe(Me).join("|")+")","g"),He=oe("["+qe(Je).join("")+"]","g"),Ue=st(Ke),Qe=st(We,{i:We.i.replace(";",";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}"),g:"E[n]=e?e(E[n],t[n]):t[n]"}),Xe=st(We),Ye=st(Ke,Ge,{j:false}),Ze=st(Ke,Ge);
35
+ wt(/x/)&&(wt=function(n){return typeof n=="function"&&ge.call(n)==K});var nr=be?function(n){if(!n||ge.call(n)!=G||!Te.argsClass&&mt(n))return false;var t=n.valueOf,e=typeof t=="function"&&(e=be(t))&&be(e);return e?n==e||be(n)==e:vt(n)}:vt,tr=ct(function(n,t,e){_e.call(n,e)?n[e]++:n[e]=1}),er=ct(function(n,t,e){(_e.call(n,e)?n[e]:n[e]=[]).push(t)}),rr=ct(function(n,t,e){n[e]=t}),ur=Nt,or=he.test(or=ne.now)&&or||function(){return(new ne).getTime()},ar=8==Be(j+"08")?Be:function(n,t){return Be(Ct(n)?n.replace(D,""):n,t||0)
36
+ };return v.after=function(n,t){if(!wt(t))throw new ie;return function(){return 1>--n?t.apply(this,arguments):void 0}},v.assign=Qe,v.at=function(n){var t=arguments,e=-1,r=ot(t,true,false,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=Yt(t);for(Te.unindexedChars&&Ct(n)&&(n=n.split(""));++e<t;)u[e]=n[r[e]];return u},v.bind=Jt,v.bindAll=function(n){for(var t=1<arguments.length?ot(arguments,true,false,1):bt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=pt(n[u],1,null,null,n)}return n},v.bindKey=function(n,t){return 2<arguments.length?pt(t,19,s(arguments,2),null,n):pt(t,3,null,null,n)
37
+ },v.chain=function(n){return n=new y(n),n.__chain__=true,n},v.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},v.compose=function(){for(var n=arguments,t=n.length;t--;)if(!wt(n[t]))throw new ie;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},v.constant=function(n){return function(){return n}},v.countBy=tr,v.create=function(n,t){var e=nt(n);return t?Qe(e,t):e},v.createCallback=function(n,t,e){var r=typeof n;if(null==n||"function"==r)return tt(n,t,e);
38
+ if("object"!=r)return Qt(n);var u=qe(n),o=u[0],a=n[o];return 1!=u.length||a!==a||jt(a)?function(t){for(var e=u.length,r=false;e--&&(r=at(t[u[e]],n[u[e]],null,true)););return r}:function(n){return n=n[o],a===n&&(0!==a||1/a==1/n)}},v.curry=function(n,t){return t=typeof t=="number"?t:+t||n.length,pt(n,4,null,null,null,t)},v.debounce=Mt,v.defaults=Xe,v.defer=function(n){if(!wt(n))throw new ie;var t=s(arguments,1);return xe(function(){n.apply(h,t)},1)},v.delay=function(n,t){if(!wt(n))throw new ie;var e=s(arguments,2);
39
+ return xe(function(){n.apply(h,e)},t)},v.difference=function(n){return rt(n,ot(arguments,true,true,1))},v.filter=St,v.flatten=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(n=Nt(n,e,r)),ot(n,t)},v.forEach=It,v.forEachRight=Dt,v.forIn=Ye,v.forInRight=function(n,t,e){var r=[];Ye(n,function(n,t){r.push(t,n)});var u=r.length;for(t=tt(t,e,3);u--&&false!==t(r[u--],r[u],n););return n},v.forOwn=Ze,v.forOwnRight=dt,v.functions=bt,v.groupBy=er,v.indexBy=rr,v.initial=function(n,t,e){var r=0,u=n?n.length:0;
40
+ if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else r=null==t||e?1:t||r;return s(n,0,Ne(De(0,u-r),u))},v.intersection=function(){for(var e=[],r=-1,u=arguments.length,a=i(),l=ht(),f=l===n,s=i();++r<u;){var g=arguments[r];(Le(g)||mt(g))&&(e.push(g),a.push(f&&g.length>=_&&o(r?e[r]:s)))}var f=e[0],h=-1,v=f?f.length:0,y=[];n:for(;++h<v;){var m=a[0],g=f[h];if(0>(m?t(m,g):l(s,g))){for(r=u,(m||s).push(g);--r;)if(m=a[r],0>(m?t(m,g):l(e[r],g)))continue n;y.push(g)
41
+ }}for(;u--;)(m=a[u])&&p(m);return c(a),c(s),y},v.invert=_t,v.invoke=function(n,t){var e=s(arguments,2),r=-1,u=typeof t=="function",o=n?n.length:0,a=Yt(typeof o=="number"?o:0);return It(n,function(n){a[++r]=(u?t:n[t]).apply(n,e)}),a},v.keys=qe,v.map=Nt,v.mapValues=function(n,t,e){var r={};return t=v.createCallback(t,e,3),Ze(n,function(n,e,u){r[e]=t(n,e,u)}),r},v.max=Bt,v.memoize=function(n,t){if(!wt(n))throw new ie;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):b+arguments[0];return _e.call(r,u)?r[u]:r[u]=n.apply(this,arguments)
42
+ };return e.cache={},e},v.merge=function(n){var t=arguments,e=2;if(!jt(n))return n;if("number"!=typeof t[2]&&(e=t.length),3<e&&"function"==typeof t[e-2])var r=tt(t[--e-1],t[e--],2);else 2<e&&"function"==typeof t[e-1]&&(r=t[--e]);for(var t=s(arguments,1,e),u=-1,o=i(),a=i();++u<e;)it(n,t[u],r,o,a);return c(o),c(a),n},v.min=function(n,t,e){var u=1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&Le(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i<o&&(o=i)}}else t=null==t&&Ct(n)?r:v.createCallback(t,e,3),Ue(n,function(n,e,r){e=t(n,e,r),e<u&&(u=e,o=n)
43
+ });return o},v.omit=function(n,t,e){var r={};if(typeof t!="function"){var u=[];Ye(n,function(n,t){u.push(t)});for(var u=rt(u,ot(arguments,true,false,1)),o=-1,a=u.length;++o<a;){var i=u[o];r[i]=n[i]}}else t=v.createCallback(t,e,3),Ye(n,function(n,e,u){t(n,e,u)||(r[e]=n)});return r},v.once=function(n){var t,e;if(!wt(n))throw new ie;return function(){return t?e:(t=true,e=n.apply(this,arguments),n=null,e)}},v.pairs=function(n){for(var t=-1,e=qe(n),r=e.length,u=Yt(r);++t<r;){var o=e[t];u[t]=[o,n[o]]}return u
44
+ },v.partial=function(n){return pt(n,16,s(arguments,1))},v.partialRight=function(n){return pt(n,32,null,s(arguments,1))},v.pick=function(n,t,e){var r={};if(typeof t!="function")for(var u=-1,o=ot(arguments,true,false,1),a=jt(n)?o.length:0;++u<a;){var i=o[u];i in n&&(r[i]=n[i])}else t=v.createCallback(t,e,3),Ye(n,function(n,e,u){t(n,e,u)&&(r[e]=n)});return r},v.pluck=ur,v.property=Qt,v.pull=function(n){for(var t=arguments,e=0,r=t.length,u=n?n.length:0;++e<r;)for(var o=-1,a=t[e];++o<u;)n[o]===a&&(Ce.call(n,o--,1),u--);
45
+ return n},v.range=function(n,t,e){n=+n||0,e=typeof e=="number"?e:+e||1,null==t&&(t=n,n=0);var r=-1;t=De(0,ve((t-n)/(e||1)));for(var u=Yt(t);++r<t;)u[r]=n,n+=e;return u},v.reject=function(n,t,e){return t=v.createCallback(t,e,3),St(n,function(n,e,r){return!t(n,e,r)})},v.remove=function(n,t,e){var r=-1,u=n?n.length:0,o=[];for(t=v.createCallback(t,e,3);++r<u;)e=n[r],t(e,r,n)&&(o.push(e),Ce.call(n,r--,1),u--);return o},v.rest=zt,v.shuffle=Ft,v.sortBy=function(n,t,e){var r=-1,o=Le(t),a=n?n.length:0,f=Yt(typeof a=="number"?a:0);
46
+ for(o||(t=v.createCallback(t,e,3)),It(n,function(n,e,u){var a=f[++r]=l();o?a.m=Nt(t,function(t){return n[t]}):(a.m=i())[0]=t(n,e,u),a.n=r,a.o=n}),a=f.length,f.sort(u);a--;)n=f[a],f[a]=n.o,o||c(n.m),p(n);return f},v.tap=function(n,t){return t(n),n},v.throttle=function(n,t,e){var r=true,u=true;if(!wt(n))throw new ie;return false===e?r=false:jt(e)&&(r="leading"in e?e.leading:r,u="trailing"in e?e.trailing:u),H.leading=r,H.maxWait=t,H.trailing=u,Mt(n,t,H)},v.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=Yt(n);
47
+ for(t=tt(t,e,1);++r<n;)u[r]=t(r);return u},v.toArray=function(n){return n&&typeof n.length=="number"?Te.unindexedChars&&Ct(n)?n.split(""):s(n):kt(n)},v.transform=function(n,t,e,r){var u=Le(n);if(null==e)if(u)e=[];else{var o=n&&n.constructor;e=nt(o&&o.prototype)}return t&&(t=v.createCallback(t,r,4),(u?Ue:Ze)(n,function(n,r,u){return t(e,n,r,u)})),e},v.union=function(){return ft(ot(arguments,true,true))},v.uniq=Kt,v.values=kt,v.where=St,v.without=function(n){return rt(n,s(arguments,1))},v.wrap=function(n,t){return pt(t,16,[n])
48
+ },v.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var e=arguments[n];if(Le(e)||mt(e))var r=r?ft(rt(r,e).concat(rt(e,r))):e}return r||[]},v.zip=Wt,v.zipObject=Gt,v.collect=Nt,v.drop=zt,v.each=It,v.eachRight=Dt,v.extend=Qe,v.methods=bt,v.object=Gt,v.select=St,v.tail=zt,v.unique=Kt,v.unzip=Wt,Ht(v),v.clone=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=t,t=false),Y(n,t,typeof e=="function"&&tt(e,r,1))},v.cloneDeep=function(n,t,e){return Y(n,true,typeof t=="function"&&tt(t,e,1))},v.contains=Et,v.escape=function(n){return null==n?"":ae(n).replace(He,gt)
49
+ },v.every=Ot,v.find=At,v.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=v.createCallback(t,e,3);++r<u;)if(t(n[r],r,n))return r;return-1},v.findKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),Ze(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.findLast=function(n,t,e){var r;return t=v.createCallback(t,e,3),Dt(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r},v.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=v.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;
50
+ return-1},v.findLastKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),dt(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.has=function(n,t){return n?_e.call(n,t):false},v.identity=Vt,v.indexOf=Lt,v.isArguments=mt,v.isArray=Le,v.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&ge.call(n)==L||false},v.isDate=function(n){return n&&typeof n=="object"&&ge.call(n)==z||false},v.isElement=function(n){return n&&1===n.nodeType||false},v.isEmpty=function(n){var t=true;if(!n)return t;var e=ge.call(n),r=n.length;
51
+ return e==$||e==M||(Te.argsClass?e==T:mt(n))||e==G&&typeof r=="number"&&wt(n.splice)?!r:(Ze(n,function(){return t=false}),t)},v.isEqual=function(n,t,e,r){return at(n,t,typeof e=="function"&&tt(e,r,2))},v.isFinite=function(n){return Se(n)&&!Ae(parseFloat(n))},v.isFunction=wt,v.isNaN=function(n){return xt(n)&&n!=+n},v.isNull=function(n){return null===n},v.isNumber=xt,v.isObject=jt,v.isPlainObject=nr,v.isRegExp=function(n){return n&&X[typeof n]&&ge.call(n)==J||false},v.isString=Ct,v.isUndefined=function(n){return typeof n=="undefined"
52
+ },v.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?De(0,r+e):Ne(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},v.mixin=Ht,v.noConflict=function(){return e._=se,this},v.noop=Ut,v.now=or,v.parseInt=ar,v.random=function(n,t,e){var r=null==n,u=null==t;return null==e&&(typeof n=="boolean"&&u?(e=n,n=1):u||typeof t!="boolean"||(e=t,u=true)),r&&u&&(t=1),n=+n||0,u?(t=n,n=0):t=+t||0,e||n%1||t%1?(e=Pe(),Ne(n+e*(t-n+parseFloat("1e-"+((e+"").length-1))),t)):lt(n,t)},v.reduce=Pt,v.reduceRight=Rt,v.result=function(n,t){if(n){var e=n[t];
53
+ return wt(e)?n[t]():e}},v.runInContext=g,v.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:qe(n).length},v.some=Tt,v.sortedIndex=qt,v.template=function(n,t,e){var r=v.templateSettings;n=ae(n||""),e=Xe({},e,r);var u,o=Xe({},e.imports,r.imports),r=qe(o),o=kt(o),i=0,l=e.interpolate||N,f="__p+='",l=oe((e.escape||N).source+"|"+l.source+"|"+(l===I?O:N).source+"|"+(e.evaluate||N).source+"|$","g");n.replace(l,function(t,e,r,o,l,c){return r||(r=o),f+=n.slice(i,c).replace(P,a),e&&(f+="'+__e("+e+")+'"),l&&(u=true,f+="';"+l+";\n__p+='"),r&&(f+="'+((__t=("+r+"))==null?'':__t)+'"),i=c+t.length,t
54
+ }),f+="';",l=e=e.variable,l||(e="obj",f="with("+e+"){"+f+"}"),f=(u?f.replace(x,""):f).replace(C,"$1").replace(E,"$1;"),f="function("+e+"){"+(l?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+f+"return __p}";try{var c=te(r,"return "+f).apply(h,o)}catch(p){throw p.source=f,p}return t?c(t):(c.source=f,c)},v.unescape=function(n){return null==n?"":ae(n).replace(Ve,yt)},v.uniqueId=function(n){var t=++m;return ae(null==n?"":n)+t
55
+ },v.all=Ot,v.any=Tt,v.detect=At,v.findWhere=At,v.foldl=Pt,v.foldr=Rt,v.include=Et,v.inject=Pt,Ht(function(){var n={};return Ze(v,function(t,e){v.prototype[e]||(n[e]=t)}),n}(),false),v.first=$t,v.last=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[u-1]:h;return s(n,De(0,u-r))},v.sample=function(n,t,e){return n&&typeof n.length!="number"?n=kt(n):Te.unindexedChars&&Ct(n)&&(n=n.split("")),null==t||e?n?n[lt(0,n.length-1)]:h:(n=Ft(n),n.length=Ne(De(0,t),n.length),n)
56
+ },v.take=$t,v.head=$t,Ze(v,function(n,t){var e="sample"!==t;v.prototype[t]||(v.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t=="function")?new y(o,u):o})}),v.VERSION="2.4.0",v.prototype.chain=function(){return this.__chain__=true,this},v.prototype.toString=function(){return ae(this.__wrapped__)},v.prototype.value=Xt,v.prototype.valueOf=Xt,Ue(["join","pop","shift"],function(n){var t=le[n];v.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments);
57
+ return n?new y(e,n):e}}),Ue(["push","reverse","sort","unshift"],function(n){var t=le[n];v.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Ue(["concat","slice","splice"],function(n){var t=le[n];v.prototype[n]=function(){return new y(t.apply(this.__wrapped__,arguments),this.__chain__)}}),Te.spliceObjects||Ue(["pop","shift","splice"],function(n){var t=le[n],e="splice"==n;v.prototype[n]=function(){var n=this.__chain__,r=this.__wrapped__,u=t.apply(r,arguments);return 0===r.length&&delete r[0],n||e?new y(u,n):u
58
+ }}),v}var h,v=[],y=[],m=0,d={},b=+new Date+"",_=75,w=40,j=" \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=/\b__p\+='';/g,C=/\b(__p\+=)''\+/g,E=/(__e\(.*?\)|\b__t\))\+'';/g,O=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,S=/\w*$/,A=/^\s*function[ \n\r\t]+\w/,I=/<%=([\s\S]+?)%>/g,D=RegExp("^["+j+"]*0+(?=.$)"),N=/($^)/,B=/\bthis\b/,P=/['\n\r\t\u2028\u2029\\]/g,R="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setTimeout".split(" "),F="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),T="[object Arguments]",$="[object Array]",L="[object Boolean]",z="[object Date]",q="[object Error]",K="[object Function]",W="[object Number]",G="[object Object]",J="[object RegExp]",M="[object String]",V={};
59
+ V[K]=false,V[T]=V[$]=V[L]=V[z]=V[W]=V[G]=V[J]=V[M]=true;var H={leading:false,maxWait:0,trailing:false},U={configurable:false,enumerable:false,value:null,writable:false},Q={a:"",b:null,c:"",d:"",e:"",v:null,g:"",h:null,support:null,i:"",j:false},X={"boolean":false,"function":true,object:true,number:false,string:false,undefined:false},Y={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Z=X[typeof window]&&window||this,nt=X[typeof exports]&&exports&&!exports.nodeType&&exports,tt=X[typeof module]&&module&&!module.nodeType&&module,et=tt&&tt.exports===nt&&nt,rt=X[typeof global]&&global;
58
60
  !rt||rt.global!==rt&&rt.window!==rt||(Z=rt);var ut=g();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Z._=ut, define(function(){return ut})):nt&&tt?et?(tt.exports=ut)._=ut:nt._=ut:Z._=ut}).call(this);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Lo-Dash 2.3.0 (Custom Build) <http://lodash.com/>
3
+ * Lo-Dash 2.4.0 (Custom Build) <http://lodash.com/>
4
4
  * Build: `lodash modern -o ./dist/lodash.js`
5
5
  * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
6
6
  * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
@@ -47,7 +47,7 @@
47
47
 
48
48
  /**
49
49
  * Used to match ES6 template delimiters
50
- * http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.6
50
+ * http://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-string-literals
51
51
  */
52
52
  var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
53
53
 
@@ -76,7 +76,7 @@
76
76
  var contextProps = [
77
77
  'Array', 'Boolean', 'Date', 'Function', 'Math', 'Number', 'Object',
78
78
  'RegExp', 'String', '_', 'attachEvent', 'clearTimeout', 'isFinite', 'isNaN',
79
- 'parseInt', 'setImmediate', 'setTimeout'
79
+ 'parseInt', 'setTimeout'
80
80
  ];
81
81
 
82
82
  /** Used to make template sourceURLs easier to identify */
@@ -256,22 +256,29 @@
256
256
  */
257
257
  function compareAscending(a, b) {
258
258
  var ac = a.criteria,
259
- bc = b.criteria;
259
+ bc = b.criteria,
260
+ index = -1,
261
+ length = ac.length;
260
262
 
261
- // ensure a stable sort in V8 and other engines
262
- // http://code.google.com/p/v8/issues/detail?id=90
263
- if (ac !== bc) {
264
- if (ac > bc || typeof ac == 'undefined') {
265
- return 1;
266
- }
267
- if (ac < bc || typeof bc == 'undefined') {
268
- return -1;
263
+ while (++index < length) {
264
+ var value = ac[index],
265
+ other = bc[index];
266
+
267
+ if (value !== other) {
268
+ if (value > other || typeof value == 'undefined') {
269
+ return 1;
270
+ }
271
+ if (value < other || typeof other == 'undefined') {
272
+ return -1;
273
+ }
269
274
  }
270
275
  }
271
- // The JS engine embedded in Adobe applications like InDesign has a buggy
272
- // `Array#sort` implementation that causes it, under certain circumstances,
273
- // to return the same value for `a` and `b`.
274
- // See https://github.com/jashkenas/underscore/pull/1247
276
+ // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
277
+ // that causes it, under certain circumstances, to return the same value for
278
+ // `a` and `b`. See https://github.com/jashkenas/underscore/pull/1247
279
+ //
280
+ // This also ensures a stable sort in V8 and other engines.
281
+ // See http://code.google.com/p/v8/issues/detail?id=90
275
282
  return a.index - b.index;
276
283
  }
277
284
 
@@ -472,15 +479,10 @@
472
479
  fnToString = Function.prototype.toString,
473
480
  getPrototypeOf = reNative.test(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf,
474
481
  hasOwnProperty = objectProto.hasOwnProperty,
475
- now = reNative.test(now = Date.now) && now || function() { return +new Date; },
476
482
  push = arrayRef.push,
477
483
  setTimeout = context.setTimeout,
478
484
  splice = arrayRef.splice;
479
485
 
480
- /** Used to detect `setImmediate` in Node.js */
481
- var setImmediate = typeof (setImmediate = freeGlobal && moduleExports && freeGlobal.setImmediate) == 'function' &&
482
- !reNative.test(setImmediate) && setImmediate;
483
-
484
486
  /** Used to set meta data on functions */
485
487
  var defineProperty = (function() {
486
488
  // IE 8 only accepts DOM elements
@@ -2144,22 +2146,22 @@
2144
2146
  }
2145
2147
 
2146
2148
  /**
2147
- * Checks if the specified object `property` exists and is a direct property,
2149
+ * Checks if the specified property name exists as a direct property of `object`,
2148
2150
  * instead of an inherited property.
2149
2151
  *
2150
2152
  * @static
2151
2153
  * @memberOf _
2152
2154
  * @category Objects
2153
- * @param {Object} object The object to check.
2154
- * @param {string} property The property to check for.
2155
+ * @param {Object} object The object to inspect.
2156
+ * @param {string} key The name of the property to check.
2155
2157
  * @returns {boolean} Returns `true` if key is a direct property, else `false`.
2156
2158
  * @example
2157
2159
  *
2158
2160
  * _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b');
2159
2161
  * // => true
2160
2162
  */
2161
- function has(object, property) {
2162
- return object ? hasOwnProperty.call(object, property) : false;
2163
+ function has(object, key) {
2164
+ return object ? hasOwnProperty.call(object, key) : false;
2163
2165
  }
2164
2166
 
2165
2167
  /**
@@ -2172,7 +2174,7 @@
2172
2174
  * @returns {Object} Returns the created inverted object.
2173
2175
  * @example
2174
2176
  *
2175
- * _.invert({ 'first': 'fred', 'second': 'barney' });
2177
+ * _.invert({ 'first': 'fred', 'second': 'barney' });
2176
2178
  * // => { 'fred': 'first', 'barney': 'second' }
2177
2179
  */
2178
2180
  function invert(object) {
@@ -2557,6 +2559,52 @@
2557
2559
  return typeof value == 'undefined';
2558
2560
  }
2559
2561
 
2562
+ /**
2563
+ * Creates an object with the same keys as `object` and values generated by
2564
+ * running each own enumerable property of `object` through the callback.
2565
+ * The callback is bound to `thisArg` and invoked with three arguments;
2566
+ * (value, key, object).
2567
+ *
2568
+ * If a property name is provided for `callback` the created "_.pluck" style
2569
+ * callback will return the property value of the given element.
2570
+ *
2571
+ * If an object is provided for `callback` the created "_.where" style callback
2572
+ * will return `true` for elements that have the properties of the given object,
2573
+ * else `false`.
2574
+ *
2575
+ * @static
2576
+ * @memberOf _
2577
+ * @category Objects
2578
+ * @param {Object} object The object to iterate over.
2579
+ * @param {Function|Object|string} [callback=identity] The function called
2580
+ * per iteration. If a property name or object is provided it will be used
2581
+ * to create a "_.pluck" or "_.where" style callback, respectively.
2582
+ * @param {*} [thisArg] The `this` binding of `callback`.
2583
+ * @returns {Array} Returns a new object with values of the results of each `callback` execution.
2584
+ * @example
2585
+ *
2586
+ * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
2587
+ * // => { 'a': 3, 'b': 6, 'c': 9 }
2588
+ *
2589
+ * var characters = {
2590
+ * 'fred': { 'name': 'fred', 'age': 40 },
2591
+ * 'pebbles': { 'name': 'pebbles', 'age': 1 }
2592
+ * };
2593
+ *
2594
+ * // using "_.pluck" callback shorthand
2595
+ * _.mapValues(characters, 'age');
2596
+ * // => { 'fred': 40, 'pebbles': 1 }
2597
+ */
2598
+ function mapValues(object, callback, thisArg) {
2599
+ var result = {};
2600
+ callback = lodash.createCallback(callback, thisArg, 3);
2601
+
2602
+ forOwn(object, function(value, key, object) {
2603
+ result[key] = callback(value, key, object);
2604
+ });
2605
+ return result;
2606
+ }
2607
+
2560
2608
  /**
2561
2609
  * Recursively merges own enumerable properties of the source object(s), that
2562
2610
  * don't resolve to `undefined` into the destination object. Subsequent sources
@@ -2615,7 +2663,6 @@
2615
2663
  if (!isObject(object)) {
2616
2664
  return object;
2617
2665
  }
2618
-
2619
2666
  // allows working with `_.reduce` and `_.reduceRight` without using
2620
2667
  // their `index` and `collection` arguments
2621
2668
  if (typeof args[2] != 'number') {
@@ -2772,11 +2819,11 @@
2772
2819
 
2773
2820
  /**
2774
2821
  * An alternative to `_.reduce` this method transforms `object` to a new
2775
- * `accumulator` object which is the result of running each of its elements
2776
- * through a callback, with each callback execution potentially mutating
2777
- * the `accumulator` object. The callback is bound to `thisArg` and invoked
2778
- * with four arguments; (accumulator, value, key, object). Callbacks may exit
2779
- * iteration early by explicitly returning `false`.
2822
+ * `accumulator` object which is the result of running each of its own
2823
+ * enumerable properties through a callback, with each callback execution
2824
+ * potentially mutating the `accumulator` object. The callback is bound to
2825
+ * `thisArg` and invoked with four arguments; (accumulator, value, key, object).
2826
+ * Callbacks may exit iteration early by explicitly returning `false`.
2780
2827
  *
2781
2828
  * @static
2782
2829
  * @memberOf _
@@ -3608,7 +3655,7 @@
3608
3655
  * @type Function
3609
3656
  * @category Collections
3610
3657
  * @param {Array|Object|string} collection The collection to iterate over.
3611
- * @param {string} property The property to pluck.
3658
+ * @param {string} property The name of the property to pluck.
3612
3659
  * @returns {Array} Returns a new array of property values.
3613
3660
  * @example
3614
3661
  *
@@ -3620,18 +3667,7 @@
3620
3667
  * _.pluck(characters, 'name');
3621
3668
  * // => ['barney', 'fred']
3622
3669
  */
3623
- function pluck(collection, property) {
3624
- var index = -1,
3625
- length = collection ? collection.length : 0;
3626
-
3627
- if (typeof length == 'number') {
3628
- var result = Array(length);
3629
- while (++index < length) {
3630
- result[index] = collection[index][property];
3631
- }
3632
- }
3633
- return result || map(collection, property);
3634
- }
3670
+ var pluck = map;
3635
3671
 
3636
3672
  /**
3637
3673
  * Reduces a collection to a value which is the accumulated result of running
@@ -3839,7 +3875,7 @@
3839
3875
  * // => 3
3840
3876
  *
3841
3877
  * _.size('pebbles');
3842
- * // => 5
3878
+ * // => 7
3843
3879
  */
3844
3880
  function size(collection) {
3845
3881
  var length = collection ? collection.length : 0;
@@ -3919,6 +3955,9 @@
3919
3955
  * If a property name is provided for `callback` the created "_.pluck" style
3920
3956
  * callback will return the property value of the given element.
3921
3957
  *
3958
+ * If an array of property names is provided for `callback` the collection
3959
+ * will be sorted by each property value.
3960
+ *
3922
3961
  * If an object is provided for `callback` the created "_.where" style callback
3923
3962
  * will return `true` for elements that have the properties of the given object,
3924
3963
  * else `false`.
@@ -3927,7 +3966,7 @@
3927
3966
  * @memberOf _
3928
3967
  * @category Collections
3929
3968
  * @param {Array|Object|string} collection The collection to iterate over.
3930
- * @param {Function|Object|string} [callback=identity] The function called
3969
+ * @param {Array|Function|Object|string} [callback=identity] The function called
3931
3970
  * per iteration. If a property name or object is provided it will be used
3932
3971
  * to create a "_.pluck" or "_.where" style callback, respectively.
3933
3972
  * @param {*} [thisArg] The `this` binding of `callback`.
@@ -3940,19 +3979,37 @@
3940
3979
  * _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math);
3941
3980
  * // => [3, 1, 2]
3942
3981
  *
3982
+ * var characters = [
3983
+ * { 'name': 'barney', 'age': 36 },
3984
+ * { 'name': 'fred', 'age': 40 },
3985
+ * { 'name': 'barney', 'age': 26 },
3986
+ * { 'name': 'fred', 'age': 30 }
3987
+ * ];
3988
+ *
3943
3989
  * // using "_.pluck" callback shorthand
3944
- * _.sortBy(['banana', 'strawberry', 'apple'], 'length');
3945
- * // => ['apple', 'banana', 'strawberry']
3990
+ * _.map(_.sortBy(characters, 'age'), _.values);
3991
+ * // => [['barney', 26], ['fred', 30], ['barney', 36], ['fred', 40]]
3992
+ *
3993
+ * // sorting by multiple properties
3994
+ * _.map(_.sortBy(characters, ['name', 'age']), _.values);
3995
+ * // = > [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]
3946
3996
  */
3947
3997
  function sortBy(collection, callback, thisArg) {
3948
3998
  var index = -1,
3999
+ isArr = isArray(callback),
3949
4000
  length = collection ? collection.length : 0,
3950
4001
  result = Array(typeof length == 'number' ? length : 0);
3951
4002
 
3952
- callback = lodash.createCallback(callback, thisArg, 3);
4003
+ if (!isArr) {
4004
+ callback = lodash.createCallback(callback, thisArg, 3);
4005
+ }
3953
4006
  forEach(collection, function(value, key, collection) {
3954
4007
  var object = result[++index] = getObject();
3955
- object.criteria = callback(value, key, collection);
4008
+ if (isArr) {
4009
+ object.criteria = map(callback, function(key) { return value[key]; });
4010
+ } else {
4011
+ (object.criteria = getArray())[0] = callback(value, key, collection);
4012
+ }
3956
4013
  object.index = index;
3957
4014
  object.value = value;
3958
4015
  });
@@ -3962,6 +4019,9 @@
3962
4019
  while (length--) {
3963
4020
  var object = result[length];
3964
4021
  result[length] = object.value;
4022
+ if (!isArr) {
4023
+ releaseArray(object.criteria);
4024
+ }
3965
4025
  releaseObject(object);
3966
4026
  }
3967
4027
  return result;
@@ -3997,7 +4057,7 @@
3997
4057
  * @type Function
3998
4058
  * @category Collections
3999
4059
  * @param {Array|Object|string} collection The collection to iterate over.
4000
- * @param {Object} properties The object of property values to filter by.
4060
+ * @param {Object} props The object of property values to filter by.
4001
4061
  * @returns {Array} Returns a new array of elements that have the given properties.
4002
4062
  * @example
4003
4063
  *
@@ -4402,29 +4462,34 @@
4402
4462
  * @memberOf _
4403
4463
  * @category Arrays
4404
4464
  * @param {...Array} [array] The arrays to inspect.
4405
- * @returns {Array} Returns an array of composite values.
4465
+ * @returns {Array} Returns an array of shared values.
4406
4466
  * @example
4407
4467
  *
4408
- * _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
4468
+ * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
4409
4469
  * // => [1, 2]
4410
4470
  */
4411
- function intersection(array) {
4412
- var args = arguments,
4413
- argsLength = args.length,
4471
+ function intersection() {
4472
+ var args = [],
4414
4473
  argsIndex = -1,
4474
+ argsLength = arguments.length,
4415
4475
  caches = getArray(),
4416
- index = -1,
4417
4476
  indexOf = getIndexOf(),
4418
- length = array ? array.length : 0,
4419
- result = [],
4477
+ trustIndexOf = indexOf === baseIndexOf,
4420
4478
  seen = getArray();
4421
4479
 
4422
4480
  while (++argsIndex < argsLength) {
4423
- var value = args[argsIndex];
4424
- caches[argsIndex] = indexOf === baseIndexOf &&
4425
- (value ? value.length : 0) >= largeArraySize &&
4426
- createCache(argsIndex ? args[argsIndex] : seen);
4481
+ var value = arguments[argsIndex];
4482
+ if (isArray(value) || isArguments(value)) {
4483
+ args.push(value);
4484
+ caches.push(trustIndexOf && value.length >= largeArraySize &&
4485
+ createCache(argsIndex ? args[argsIndex] : seen));
4486
+ }
4427
4487
  }
4488
+ var array = args[0],
4489
+ index = -1,
4490
+ length = array ? array.length : 0,
4491
+ result = [];
4492
+
4428
4493
  outer:
4429
4494
  while (++index < length) {
4430
4495
  var cache = caches[0];
@@ -4841,13 +4906,13 @@
4841
4906
  * @memberOf _
4842
4907
  * @category Arrays
4843
4908
  * @param {...Array} [array] The arrays to inspect.
4844
- * @returns {Array} Returns an array of composite values.
4909
+ * @returns {Array} Returns an array of combined values.
4845
4910
  * @example
4846
4911
  *
4847
- * _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
4848
- * // => [1, 2, 3, 101, 10]
4912
+ * _.union([1, 2, 3], [5, 2, 1, 4], [2, 1]);
4913
+ * // => [1, 2, 3, 5, 4]
4849
4914
  */
4850
- function union(array) {
4915
+ function union() {
4851
4916
  return baseUniq(baseFlatten(arguments, true, true));
4852
4917
  }
4853
4918
 
@@ -4927,6 +4992,38 @@
4927
4992
  return baseDifference(array, slice(arguments, 1));
4928
4993
  }
4929
4994
 
4995
+ /**
4996
+ * Creates an array that is the smymetric difference of the provided arrays.
4997
+ * See http://en.wikipedia.org/wiki/Symmetric_difference.
4998
+ *
4999
+ * @static
5000
+ * @memberOf _
5001
+ * @category Arrays
5002
+ * @param {...Array} [array] The arrays to inspect.
5003
+ * @returns {Array} Returns an array of values.
5004
+ * @example
5005
+ *
5006
+ * _.xor([1, 2, 3], [5, 2, 1, 4]);
5007
+ * // => [3, 5, 4]
5008
+ *
5009
+ * _.xor([1, 2, 5], [2, 3, 5], [3, 4, 5]);
5010
+ * // => [1, 4, 5]
5011
+ */
5012
+ function xor() {
5013
+ var index = -1,
5014
+ length = arguments.length;
5015
+
5016
+ while (++index < length) {
5017
+ var array = arguments[index];
5018
+ if (isArray(array) || isArguments(array)) {
5019
+ var result = result
5020
+ ? baseUniq(baseDifference(result, array).concat(baseDifference(array, result)))
5021
+ : array;
5022
+ }
5023
+ }
5024
+ return result || [];
5025
+ }
5026
+
4930
5027
  /**
4931
5028
  * Creates an array of grouped elements, the first of which contains the first
4932
5029
  * elements of the given arrays, the second of which contains the second
@@ -4978,6 +5075,9 @@
4978
5075
  length = keys ? keys.length : 0,
4979
5076
  result = {};
4980
5077
 
5078
+ if (!values && length && !isArray(keys[0])) {
5079
+ values = [];
5080
+ }
4981
5081
  while (++index < length) {
4982
5082
  var key = keys[index];
4983
5083
  if (values) {
@@ -5070,8 +5170,8 @@
5070
5170
  * @example
5071
5171
  *
5072
5172
  * var view = {
5073
- * 'label': 'docs',
5074
- * 'onClick': function() { console.log('clicked ' + this.label); }
5173
+ * 'label': 'docs',
5174
+ * 'onClick': function() { console.log('clicked ' + this.label); }
5075
5175
  * };
5076
5176
  *
5077
5177
  * _.bindAll(view);
@@ -5180,74 +5280,6 @@
5180
5280
  };
5181
5281
  }
5182
5282
 
5183
- /**
5184
- * Produces a callback bound to an optional `thisArg`. If `func` is a property
5185
- * name the created callback will return the property value for a given element.
5186
- * If `func` is an object the created callback will return `true` for elements
5187
- * that contain the equivalent object properties, otherwise it will return `false`.
5188
- *
5189
- * @static
5190
- * @memberOf _
5191
- * @category Functions
5192
- * @param {*} [func=identity] The value to convert to a callback.
5193
- * @param {*} [thisArg] The `this` binding of the created callback.
5194
- * @param {number} [argCount] The number of arguments the callback accepts.
5195
- * @returns {Function} Returns a callback function.
5196
- * @example
5197
- *
5198
- * var characters = [
5199
- * { 'name': 'barney', 'age': 36 },
5200
- * { 'name': 'fred', 'age': 40 }
5201
- * ];
5202
- *
5203
- * // wrap to create custom callback shorthands
5204
- * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
5205
- * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
5206
- * return !match ? func(callback, thisArg) : function(object) {
5207
- * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
5208
- * };
5209
- * });
5210
- *
5211
- * _.filter(characters, 'age__gt38');
5212
- * // => [{ 'name': 'fred', 'age': 40 }]
5213
- */
5214
- function createCallback(func, thisArg, argCount) {
5215
- var type = typeof func;
5216
- if (func == null || type == 'function') {
5217
- return baseCreateCallback(func, thisArg, argCount);
5218
- }
5219
- // handle "_.pluck" style callback shorthands
5220
- if (type != 'object') {
5221
- return function(object) {
5222
- return object[func];
5223
- };
5224
- }
5225
- var props = keys(func),
5226
- key = props[0],
5227
- a = func[key];
5228
-
5229
- // handle "_.where" style callback shorthands
5230
- if (props.length == 1 && a === a && !isObject(a)) {
5231
- // fast path the common case of providing an object with a single
5232
- // property containing a primitive value
5233
- return function(object) {
5234
- var b = object[key];
5235
- return a === b && (a !== 0 || (1 / a == 1 / b));
5236
- };
5237
- }
5238
- return function(object) {
5239
- var length = props.length,
5240
- result = false;
5241
-
5242
- while (length--) {
5243
- if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
5244
- break;
5245
- }
5246
- }
5247
- return result;
5248
- };
5249
- }
5250
-
5251
5283
  /**
5252
5284
  * Creates a function which accepts one or more arguments of `func` that when
5253
5285
  * invoked either executes `func` returning its result, if all `func` arguments
@@ -5433,8 +5465,8 @@
5433
5465
  * @returns {number} Returns the timer id.
5434
5466
  * @example
5435
5467
  *
5436
- * _.defer(function() { console.log('deferred'); });
5437
- * // returns from the function before 'deferred' is logged
5468
+ * _.defer(function(text) { console.log(text); }, 'deferred');
5469
+ * // logs 'deferred' after one or more milliseconds
5438
5470
  */
5439
5471
  function defer(func) {
5440
5472
  if (!isFunction(func)) {
@@ -5443,15 +5475,6 @@
5443
5475
  var args = slice(arguments, 1);
5444
5476
  return setTimeout(function() { func.apply(undefined, args); }, 1);
5445
5477
  }
5446
- // use `setImmediate` if available in Node.js
5447
- if (setImmediate) {
5448
- defer = function(func) {
5449
- if (!isFunction(func)) {
5450
- throw new TypeError;
5451
- }
5452
- return setImmediate.apply(context, arguments);
5453
- };
5454
- }
5455
5478
 
5456
5479
  /**
5457
5480
  * Executes the `func` function after `wait` milliseconds. Additional arguments
@@ -5466,9 +5489,8 @@
5466
5489
  * @returns {number} Returns the timer id.
5467
5490
  * @example
5468
5491
  *
5469
- * var log = _.bind(console.log, console);
5470
- * _.delay(log, 1000, 'logged later');
5471
- * // => 'logged later' (Appears after one second.)
5492
+ * _.delay(function(text) { console.log(text); }, 1000, 'later');
5493
+ * // => logs 'later' after one second
5472
5494
  */
5473
5495
  function delay(func, wait) {
5474
5496
  if (!isFunction(func)) {
@@ -5699,6 +5721,93 @@
5699
5721
 
5700
5722
  /*--------------------------------------------------------------------------*/
5701
5723
 
5724
+ /**
5725
+ * Creates a function that returns `value`.
5726
+ *
5727
+ * @static
5728
+ * @memberOf _
5729
+ * @category Utilities
5730
+ * @param {*} value The value to return from the new function.
5731
+ * @returns {Function} Returns the new function.
5732
+ * @example
5733
+ *
5734
+ * var object = { 'name': 'fred' };
5735
+ * var getter = _.constant(object);
5736
+ * getter() === object;
5737
+ * // => true
5738
+ */
5739
+ function constant(value) {
5740
+ return function() {
5741
+ return value;
5742
+ };
5743
+ }
5744
+
5745
+ /**
5746
+ * Produces a callback bound to an optional `thisArg`. If `func` is a property
5747
+ * name the created callback will return the property value for a given element.
5748
+ * If `func` is an object the created callback will return `true` for elements
5749
+ * that contain the equivalent object properties, otherwise it will return `false`.
5750
+ *
5751
+ * @static
5752
+ * @memberOf _
5753
+ * @category Utilities
5754
+ * @param {*} [func=identity] The value to convert to a callback.
5755
+ * @param {*} [thisArg] The `this` binding of the created callback.
5756
+ * @param {number} [argCount] The number of arguments the callback accepts.
5757
+ * @returns {Function} Returns a callback function.
5758
+ * @example
5759
+ *
5760
+ * var characters = [
5761
+ * { 'name': 'barney', 'age': 36 },
5762
+ * { 'name': 'fred', 'age': 40 }
5763
+ * ];
5764
+ *
5765
+ * // wrap to create custom callback shorthands
5766
+ * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
5767
+ * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
5768
+ * return !match ? func(callback, thisArg) : function(object) {
5769
+ * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
5770
+ * };
5771
+ * });
5772
+ *
5773
+ * _.filter(characters, 'age__gt38');
5774
+ * // => [{ 'name': 'fred', 'age': 40 }]
5775
+ */
5776
+ function createCallback(func, thisArg, argCount) {
5777
+ var type = typeof func;
5778
+ if (func == null || type == 'function') {
5779
+ return baseCreateCallback(func, thisArg, argCount);
5780
+ }
5781
+ // handle "_.pluck" style callback shorthands
5782
+ if (type != 'object') {
5783
+ return property(func);
5784
+ }
5785
+ var props = keys(func),
5786
+ key = props[0],
5787
+ a = func[key];
5788
+
5789
+ // handle "_.where" style callback shorthands
5790
+ if (props.length == 1 && a === a && !isObject(a)) {
5791
+ // fast path the common case of providing an object with a single
5792
+ // property containing a primitive value
5793
+ return function(object) {
5794
+ var b = object[key];
5795
+ return a === b && (a !== 0 || (1 / a == 1 / b));
5796
+ };
5797
+ }
5798
+ return function(object) {
5799
+ var length = props.length,
5800
+ result = false;
5801
+
5802
+ while (length--) {
5803
+ if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
5804
+ break;
5805
+ }
5806
+ }
5807
+ return result;
5808
+ };
5809
+ }
5810
+
5702
5811
  /**
5703
5812
  * Converts the characters `&`, `<`, `>`, `"`, and `'` in `string` to their
5704
5813
  * corresponding HTML entities.
@@ -5736,51 +5845,71 @@
5736
5845
  }
5737
5846
 
5738
5847
  /**
5739
- * Adds function properties of a source object to the `lodash` function and
5740
- * chainable wrapper.
5848
+ * Adds function properties of a source object to the destination object.
5849
+ * If `object` is a function methods will be added to its prototype as well.
5741
5850
  *
5742
5851
  * @static
5743
5852
  * @memberOf _
5744
5853
  * @category Utilities
5745
- * @param {Object} object The object of function properties to add to `lodash`.
5746
- * @param {Object} object The object of function properties to add to `lodash`.
5854
+ * @param {Function|Object} [object=lodash] object The destination object.
5855
+ * @param {Object} source The object of functions to add.
5856
+ * @param {Object} [options] The options object.
5857
+ * @param {boolean} [options.chain=true] Specify whether the functions added are chainable.
5747
5858
  * @example
5748
5859
  *
5749
- * _.mixin({
5750
- * 'capitalize': function(string) {
5751
- * return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
5752
- * }
5753
- * });
5860
+ * function capitalize(string) {
5861
+ * return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
5862
+ * }
5754
5863
  *
5864
+ * _.mixin({ 'capitalize': capitalize });
5755
5865
  * _.capitalize('fred');
5756
5866
  * // => 'Fred'
5757
5867
  *
5868
+ * _('fred').capitalize().value();
5869
+ * // => 'Fred'
5870
+ *
5871
+ * _.mixin({ 'capitalize': capitalize }, { 'chain': false });
5758
5872
  * _('fred').capitalize();
5759
5873
  * // => 'Fred'
5760
5874
  */
5761
- function mixin(object, source) {
5762
- var ctor = object,
5763
- isFunc = !source || isFunction(ctor);
5875
+ function mixin(object, source, options) {
5876
+ var chain = true,
5877
+ methodNames = source && functions(source);
5764
5878
 
5765
- if (!source) {
5879
+ if (!source || (!options && !methodNames.length)) {
5880
+ if (options == null) {
5881
+ options = source;
5882
+ }
5766
5883
  ctor = lodashWrapper;
5767
5884
  source = object;
5768
5885
  object = lodash;
5886
+ methodNames = functions(source);
5769
5887
  }
5770
- forEach(functions(source), function(methodName) {
5888
+ if (options === false) {
5889
+ chain = false;
5890
+ } else if (isObject(options) && 'chain' in options) {
5891
+ chain = options.chain;
5892
+ }
5893
+ var ctor = object,
5894
+ isFunc = isFunction(ctor);
5895
+
5896
+ forEach(methodNames, function(methodName) {
5771
5897
  var func = object[methodName] = source[methodName];
5772
5898
  if (isFunc) {
5773
5899
  ctor.prototype[methodName] = function() {
5774
- var value = this.__wrapped__,
5900
+ var chainAll = this.__chain__,
5901
+ value = this.__wrapped__,
5775
5902
  args = [value];
5776
5903
 
5777
5904
  push.apply(args, arguments);
5778
5905
  var result = func.apply(object, args);
5779
- if (value && typeof value == 'object' && value === result) {
5780
- return this;
5906
+ if (chain || chainAll) {
5907
+ if (value === result && isObject(result)) {
5908
+ return this;
5909
+ }
5910
+ result = new ctor(result);
5911
+ result.__chain__ = chainAll;
5781
5912
  }
5782
- result = new ctor(result);
5783
- result.__chain__ = this.__chain__;
5784
5913
  return result;
5785
5914
  };
5786
5915
  }
@@ -5820,6 +5949,23 @@
5820
5949
  // no operation performed
5821
5950
  }
5822
5951
 
5952
+ /**
5953
+ * Gets the number of milliseconds that have elapsed since the Unix epoch
5954
+ * (1 January 1970 00:00:00 UTC).
5955
+ *
5956
+ * @static
5957
+ * @memberOf _
5958
+ * @category Utilities
5959
+ * @example
5960
+ *
5961
+ * var stamp = _.now();
5962
+ * _.defer(function() { console.log(_.now() - stamp); });
5963
+ * // => logs the number of milliseconds it took for the deferred function to be called
5964
+ */
5965
+ var now = reNative.test(now = Date.now) && now || function() {
5966
+ return new Date().getTime();
5967
+ };
5968
+
5823
5969
  /**
5824
5970
  * Converts the given value into an integer of the specified radix.
5825
5971
  * If `radix` is `undefined` or `0` a `radix` of `10` is used unless the
@@ -5844,6 +5990,36 @@
5844
5990
  return nativeParseInt(isString(value) ? value.replace(reLeadingSpacesAndZeros, '') : value, radix || 0);
5845
5991
  };
5846
5992
 
5993
+ /**
5994
+ * Creates a "_.pluck" style function, which returns the `key` value of a
5995
+ * given object.
5996
+ *
5997
+ * @static
5998
+ * @memberOf _
5999
+ * @category Utilities
6000
+ * @param {string} key The name of the property to retrieve.
6001
+ * @returns {Function} Returns the new function.
6002
+ * @example
6003
+ *
6004
+ * var characters = [
6005
+ * { 'name': 'fred', 'age': 40 },
6006
+ * { 'name': 'barney', 'age': 36 }
6007
+ * ];
6008
+ *
6009
+ * var getName = _.property('name');
6010
+ *
6011
+ * _.map(characters, getName);
6012
+ * // => ['barney', 'fred']
6013
+ *
6014
+ * _.sortBy(characters, getName);
6015
+ * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
6016
+ */
6017
+ function property(key) {
6018
+ return function(object) {
6019
+ return object[key];
6020
+ };
6021
+ }
6022
+
5847
6023
  /**
5848
6024
  * Produces a random number between `min` and `max` (inclusive). If only one
5849
6025
  * argument is provided a number between `0` and the given number will be
@@ -5903,7 +6079,7 @@
5903
6079
  }
5904
6080
 
5905
6081
  /**
5906
- * Resolves the value of `property` on `object`. If `property` is a function
6082
+ * Resolves the value of property `key` on `object`. If `key` is a function
5907
6083
  * it will be invoked with the `this` binding of `object` and its result returned,
5908
6084
  * else the property value is returned. If `object` is falsey then `undefined`
5909
6085
  * is returned.
@@ -5912,7 +6088,7 @@
5912
6088
  * @memberOf _
5913
6089
  * @category Utilities
5914
6090
  * @param {Object} object The object to inspect.
5915
- * @param {string} property The property to get the value of.
6091
+ * @param {string} key The name of the property to resolve.
5916
6092
  * @returns {*} Returns the resolved value.
5917
6093
  * @example
5918
6094
  *
@@ -5929,10 +6105,10 @@
5929
6105
  * _.result(object, 'stuff');
5930
6106
  * // => 'nonsense'
5931
6107
  */
5932
- function result(object, property) {
6108
+ function result(object, key) {
5933
6109
  if (object) {
5934
- var value = object[property];
5935
- return isFunction(value) ? object[property]() : value;
6110
+ var value = object[key];
6111
+ return isFunction(value) ? object[key]() : value;
5936
6112
  }
5937
6113
  }
5938
6114
 
@@ -5996,8 +6172,8 @@
5996
6172
  * // => 'hello mustache!'
5997
6173
  *
5998
6174
  * // using the `imports` option to import jQuery
5999
- * var list = '<% $.each(people, function(name) { %><li><%- name %></li><% }); %>';
6000
- * _.template(list, { 'people': ['fred', 'barney'] }, { 'imports': { '$': jQuery } });
6175
+ * var list = '<% jq.each(people, function(name) { %><li><%- name %></li><% }); %>';
6176
+ * _.template(list, { 'people': ['fred', 'barney'] }, { 'imports': { 'jq': jQuery } });
6001
6177
  * // => '<li>fred</li><li>barney</li>'
6002
6178
  *
6003
6179
  * // using the `sourceURL` option to specify a custom sourceURL for the template
@@ -6276,7 +6452,7 @@
6276
6452
  * _(characters).chain()
6277
6453
  * .first()
6278
6454
  * .pick('age')
6279
- * .value()
6455
+ * .value();
6280
6456
  * // => { 'age': 36 }
6281
6457
  */
6282
6458
  function wrapperChain() {
@@ -6329,6 +6505,7 @@
6329
6505
  lodash.chain = chain;
6330
6506
  lodash.compact = compact;
6331
6507
  lodash.compose = compose;
6508
+ lodash.constant = constant;
6332
6509
  lodash.countBy = countBy;
6333
6510
  lodash.create = create;
6334
6511
  lodash.createCallback = createCallback;
@@ -6355,6 +6532,7 @@
6355
6532
  lodash.invoke = invoke;
6356
6533
  lodash.keys = keys;
6357
6534
  lodash.map = map;
6535
+ lodash.mapValues = mapValues;
6358
6536
  lodash.max = max;
6359
6537
  lodash.memoize = memoize;
6360
6538
  lodash.merge = merge;
@@ -6366,6 +6544,7 @@
6366
6544
  lodash.partialRight = partialRight;
6367
6545
  lodash.pick = pick;
6368
6546
  lodash.pluck = pluck;
6547
+ lodash.property = property;
6369
6548
  lodash.pull = pull;
6370
6549
  lodash.range = range;
6371
6550
  lodash.reject = reject;
@@ -6384,6 +6563,7 @@
6384
6563
  lodash.where = where;
6385
6564
  lodash.without = without;
6386
6565
  lodash.wrap = wrap;
6566
+ lodash.xor = xor;
6387
6567
  lodash.zip = zip;
6388
6568
  lodash.zipObject = zipObject;
6389
6569
 
@@ -6441,6 +6621,7 @@
6441
6621
  lodash.mixin = mixin;
6442
6622
  lodash.noConflict = noConflict;
6443
6623
  lodash.noop = noop;
6624
+ lodash.now = now;
6444
6625
  lodash.parseInt = parseInt;
6445
6626
  lodash.random = random;
6446
6627
  lodash.reduce = reduce;
@@ -6464,20 +6645,15 @@
6464
6645
  lodash.include = contains;
6465
6646
  lodash.inject = reduce;
6466
6647
 
6467
- forOwn(lodash, function(func, methodName) {
6468
- if (!lodash.prototype[methodName]) {
6469
- lodash.prototype[methodName] = function() {
6470
- var args = [this.__wrapped__],
6471
- chainAll = this.__chain__;
6472
-
6473
- push.apply(args, arguments);
6474
- var result = func.apply(lodash, args);
6475
- return chainAll
6476
- ? new lodashWrapper(result, chainAll)
6477
- : result;
6478
- };
6479
- }
6480
- });
6648
+ mixin(function() {
6649
+ var source = {}
6650
+ forOwn(lodash, function(func, methodName) {
6651
+ if (!lodash.prototype[methodName]) {
6652
+ source[methodName] = func;
6653
+ }
6654
+ });
6655
+ return source;
6656
+ }(), false);
6481
6657
 
6482
6658
  /*--------------------------------------------------------------------------*/
6483
6659
 
@@ -6513,7 +6689,7 @@
6513
6689
  * @memberOf _
6514
6690
  * @type string
6515
6691
  */
6516
- lodash.VERSION = '2.3.0';
6692
+ lodash.VERSION = '2.4.0';
6517
6693
 
6518
6694
  // add "Chaining" functions to the wrapper
6519
6695
  lodash.prototype.chain = wrapperChain;
@@ -6534,7 +6710,7 @@
6534
6710
  };
6535
6711
  });
6536
6712
 
6537
- // add `Array` functions that return the wrapped value
6713
+ // add `Array` functions that return the existing wrapped value
6538
6714
  forEach(['push', 'reverse', 'sort', 'unshift'], function(methodName) {
6539
6715
  var func = arrayRef[methodName];
6540
6716
  lodash.prototype[methodName] = function() {
@@ -6562,9 +6738,8 @@
6562
6738
  // some AMD build optimizers like r.js check for condition patterns like the following:
6563
6739
  if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
6564
6740
  // Expose Lo-Dash to the global object even when an AMD loader is present in
6565
- // case Lo-Dash was injected by a third-party script and not intended to be
6566
- // loaded as a module. The global assignment can be reverted in the Lo-Dash
6567
- // module by its `noConflict()` method.
6741
+ // case Lo-Dash is loaded with a RequireJS shim config.
6742
+ // See http://requirejs.org/docs/api.html#config-shim
6568
6743
  root._ = _;
6569
6744
 
6570
6745
  // define as an anonymous module so, through path mapping, it can be