From 507f2ec544ea84817b48733e3dffab7f2d3f32d3 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Mon, 27 May 2013 13:04:26 -0700 Subject: [PATCH] Avoid minifier tricks for boolean literals in expressions. Former-commit-id: a02445f97a81c330018247140784818be830595f --- build/post-compile.js | 13 +++++++++++++ dist/lodash.compat.min.js | 22 +++++++++++----------- dist/lodash.min.js | 12 ++++++------ dist/lodash.underscore.min.js | 2 +- 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/build/post-compile.js b/build/post-compile.js index 310578134..c7eb6dc0e 100644 --- a/build/post-compile.js +++ b/build/post-compile.js @@ -37,6 +37,19 @@ '\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000"' ); + // replace vars for `false` and `true` with boolean literals + [/(\w+)\s*=\s*!1\b/.exec(source), /(\w+)\s*=\s*!0\b/.exec(source)].forEach(function(varName, index) { + if (varName) { + varName = varName[1]; + source = source.replace(RegExp('([!=]==\\s*)' + varName + '|' + varName + '(\\s*[!=]==)', 'g'), '$1' + !!index + '$2'); + } + }); + + // replace `!1` and `!0` in expressions with `false` and `true` values + source = source + .replace(/([!=]==\s*)!1|!1(\s*[!=]==)/g, '$1false$2') + .replace(/([!=]==\s*)!0|!0(\s*[!=]==)/g, '$1true$2'); + // flip `typeof` expressions to help optimize Safari and // correct the AMD module definition for AMD build optimizers // (e.g. from `"number" == typeof x` to `typeof x == "number") diff --git a/dist/lodash.compat.min.js b/dist/lodash.compat.min.js index 6fb6238b4..deae2acce 100644 --- a/dist/lodash.compat.min.js +++ b/dist/lodash.compat.min.js @@ -9,14 +9,14 @@ if(s){for(;++ik;k++)e+="m='"+t.g[k]+"';if((!(p&&v[m])&&l.call(r,m))",t.i||(e+="||(!v[m]&&r[m]!==y[m])"),e+="){"+t.f+"}"; e+="}"}return(t.b||xr.nonEnumArgs)&&(e+="}"),e+=t.c+";return C",n("i,j,l,n,o,q,t,u,y,z,w,G,H,J",r+e+"}")(I,Ut,ur,et,Ar,pt,Br,a,Vt,q,kr,F,Qt,lr)}function M(n){return lt(n)?pr(n):{}}function U(n){return Pr[n]}function V(n){return"\\"+D[n]}function Q(){var n=(n=a.indexOf)==Ot?T:n;return n}function W(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function X(n){this.__wrapped__=n}function Y(){}function Z(n){return function(t,e,u,o){return typeof e!="boolean"&&null!=e&&(o=u,u=o&&o[e]===t?r:e,e=!1),null!=u&&(u=a.createCallback(u,o)),n(t,e,u,o) -}}function nt(n){var t,e;return!n||lr.call(n)!=P||(t=n.constructor,ct(t)&&!(t instanceof t))||!xr.argsClass&&et(n)||!xr.nodeClass&&W(n)?!1:xr.ownLast?(qr(n,function(n,t,r){return e=ur.call(r,t),!1}),!1!==e):(qr(n,function(n,t){e=t}),e===r||ur.call(n,e))}function tt(n,t,r){t||(t=0),typeof r=="undefined"&&(r=n?n.length:0);var e=-1;r=r-t||0;for(var u=$t(0>r?0:r);++er?0:r);++er?yr(0,a+r):r)||0,a&&typeof a=="number"?o=-1<(pt(n)?n.indexOf(t,r):u(n,t,r)):Nr(n,function(n){return++eu&&(u=i)}}else t=!t&&pt(n)?L:a.createCallback(t,r),Nr(n,function(n,r,a){r=t(n,r,a),r>e&&(e=r,u=n)});return u}function Ct(n,t,r,e){var u=3>arguments.length;if(t=a.createCallback(t,e,4),Ar(n)){var o=-1,i=n.length;for(u&&(r=n[++o]);++oarguments.length;if(typeof o!="number")var c=Br(n),o=c.length;else xr.unindexedChars&&pt(n)&&(u=n.split(""));return t=a.createCallback(t,e,4),dt(n,function(n,e,a){e=c?c[--o]:--o,r=i?(i=!1,u[e]):t(r,u[e],e,a)}),r}function wt(n,t,r){var e;if(t=a.createCallback(t,r),Ar(n)){r=-1;for(var u=n.length;++rr?yr(0,e+r):r||0}else if(r)return r=St(n,t),n[r]===t?r:-1;return n?T(n,t,r):-1}function Et(n,t,r){if(typeof t!="number"&&null!=t){var e=0,u=-1,o=n?n.length:0;for(t=a.createCallback(t,r);++un?t():function(){return 1>--n?t.apply(this,arguments):void 0}},a.assign=Fr,a.at=function(n){var t=-1,r=nr.apply(Mt,_r.call(arguments,1)),e=r.length,u=$t(e);for(xr.unindexedChars&&pt(n)&&(n=n.split(""));++t++i&&(a=n.apply(o,u)),c=cr(e,t),a}},a.defaults=$r,a.defer=Nt,a.delay=function(n,t){var e=_r.call(arguments,2);return cr(function(){n.apply(r,e)},t)},a.difference=kt,a.filter=yt,a.flatten=Lr,a.forEach=dt,a.forIn=qr,a.forOwn=Dr,a.functions=at,a.groupBy=function(n,t,r){var e={};return t=a.createCallback(t,r),dt(n,function(n,r,u){r=Jt(t(n,r,u)),(ur.call(e,r)?e[r]:e[r]=[]).push(n) +if(true===r)var f=!0,l=!1;else lt(r)&&(f=r.leading,l="trailing"in r?r.trailing:l);return function(){return u=arguments,o=this,Zt(c),f&&2>++i&&(a=n.apply(o,u)),c=cr(e,t),a}},a.defaults=$r,a.defer=Nt,a.delay=function(n,t){var e=_r.call(arguments,2);return cr(function(){n.apply(r,e)},t)},a.difference=kt,a.filter=yt,a.flatten=Lr,a.forEach=dt,a.forIn=qr,a.forOwn=Dr,a.functions=at,a.groupBy=function(n,t,r){var e={};return t=a.createCallback(t,r),dt(n,function(n,r,u){r=Jt(t(n,r,u)),(ur.call(e,r)?e[r]:e[r]=[]).push(n) }),e},a.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t!="number"&&null!=t){var o=u;for(t=a.createCallback(t,r);o--&&t(n[o],o,n);)e++}else e=null==t||r?1:t||e;return tt(n,0,mr(yr(0,u-e),u))},a.intersection=function(n){var t=arguments,r=t.length,e=J(),u={},a=-1,o=n?n.length:0,i=[];n:for(;++ae(i,r))&&(o[r]=n)}),o},a.once=function(n){var t,r;return function(){return t?r:(t=!0,r=n.apply(this,arguments),n=null,r)}},a.pairs=function(n){for(var t=-1,r=Br(n),e=r.length,u=$t(e);++tr?yr(0,e+r):mr(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},a.mixin=zt,a.noConflict=function(){return e._=Wt,this},a.parseInt=Hr,a.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=br();return n%1||t%1?n+mr(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+tr(r*(t-n+1))},a.reduce=Ct,a.reduceRight=jt,a.result=function(n,t){var e=n?n[t]:r;return ct(e)?n[t]():e},a.runInContext=t,a.size=function(n){var t=n?n.length:0; -return typeof t=="number"?t:Br(n).length},a.some=wt,a.sortedIndex=St,a.template=function(n,t,e){var u=a.templateSettings;n||(n=""),e=$r({},e,u);var o,i=$r({},e.imports,u.imports),u=Br(i),i=gt(i),c=0,l=e.interpolate||_,g="__p+='",l=Ht((e.escape||_).source+"|"+l.source+"|"+(l===y?v:_).source+"|"+(e.evaluate||_).source+"|$","g");n.replace(l,function(t,r,e,u,a,i){return e||(e=u),g+=n.slice(c,i).replace(j,V),r&&(g+="'+__e("+r+")+'"),a&&(o=!0,g+="';"+a+";__p+='"),e&&(g+="'+((__t=("+e+"))==null?'':__t)+'"),c=i+t.length,t +for(t=a.createCallback(t,r);++er?yr(0,e+r):mr(r,e-1))+1);e--;)if(n[e]===false)return e;return-1},a.mixin=zt,a.noConflict=function(){return e._=Wt,this},a.parseInt=Hr,a.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=br();return n%1||t%1?n+mr(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+tr(r*(t-n+1))},a.reduce=Ct,a.reduceRight=jt,a.result=function(n,t){var e=n?n[t]:r;return ct(e)?n[t]():e},a.runInContext=t,a.size=function(n){var t=n?n.length:0; +return typeof t=="number"?t:Br(n).length},a.some=wt,a.sortedIndex=St,a.template=function(n,t,e){var u=a.templateSettings;n||(n=""),e=$r({},e,u);var o,i=$r({},e.imports,u.imports),u=Br(i),i=gt(i),c=0,l=e.interpolate||_,g="__p+='",l=Ht((e.escape||_).source+"|"+l.source+"|"+(true===y?v:_).source+"|"+(e.evaluate||_).source+"|$","g");n.replace(l,function(t,r,e,u,a,i){return e||(e=u),g+=n.slice(c,i).replace(j,V),r&&(g+="'+__e("+r+")+'"),a&&(o=!0,g+="';"+a+";__p+='"),e&&(g+="'+((__t=("+e+"))==null?'':__t)+'"),c=i+t.length,t }),g+="';\n",l=e=e.variable,l||(e="obj",g="with("+e+"){"+g+"}"),g=(o?g.replace(f,""):g).replace(p,"$1").replace(s,"$1;"),g="function("+e+"){"+(l?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+g+"return __p}";try{var h=Rt(u,"return "+g).apply(r,i)}catch(m){throw m.source=g,m}return t?h(t):(h.source=g,h)},a.unescape=function(n){return null==n?"":Jt(n).replace(g,rt)},a.uniqueId=function(n){var t=++o;return Jt(null==n?"":n)+t },a.all=ht,a.any=wt,a.detect=mt,a.foldl=Ct,a.foldr=jt,a.include=vt,a.inject=Ct,Dr(a,function(n,t){a.prototype[t]||(a.prototype[t]=function(){var t=[this.__wrapped__];return ar.apply(t,arguments),n.apply(a,t)})}),a.first=xt,a.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&null!=t){var o=u;for(t=a.createCallback(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n[u-1];return tt(n,yr(0,u-e))}},a.take=xt,a.head=xt,Dr(a,function(n,t){a.prototype[t]||(a.prototype[t]=function(t,r){var e=n(this.__wrapped__,t,r); return null==t||r&&typeof t!="function"?e:new X(e)})}),a.VERSION="1.2.1",a.prototype.toString=function(){return Jt(this.__wrapped__)},a.prototype.value=Ft,a.prototype.valueOf=Ft,Nr(["join","pop","shift"],function(n){var t=Mt[n];a.prototype[n]=function(){return t.apply(this.__wrapped__,arguments)}}),Nr(["push","reverse","sort","unshift"],function(n){var t=Mt[n];a.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Nr(["concat","slice","splice"],function(n){var t=Mt[n];a.prototype[n]=function(){return new X(t.apply(this.__wrapped__,arguments)) -}}),xr.spliceObjects||Nr(["pop","shift","splice"],function(n){var t=Mt[n],r="splice"==n;a.prototype[n]=function(){var n=this.__wrapped__,e=t.apply(n,arguments);return 0===n.length&&delete n[0],r?new X(e):e}}),a}var r,e=typeof exports=="object"&&exports,u=typeof module=="object"&&module&&module.exports==e&&module,a=typeof global=="object"&&global;(a.global===a||a.window===a)&&(n=a);var o=0,i={},c=+new Date+"",l=75,f=/\b__p\+='';/g,p=/\b(__p\+=)''\+/g,s=/(__e\(.*?\)|\b__t\))\+'';/g,g=/&(?:amp|lt|gt|quot|#39);/g,v=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,h=/\w*$/,y=/<%=([\s\S]+?)%>/g,m=(m=/\bthis\b/)&&m.test(t)&&m,d=" \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",b=RegExp("^["+d+"]*0+(?=.$)"),_=/($^)/,C=/[&<>"']/g,j=/['\n\r\t\u2028\u2029\\]/g,w="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),x="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),O="[object Arguments]",E="[object Array]",S="[object Boolean]",A="[object Date]",I="[object Error]",B="[object Function]",N="[object Number]",P="[object Object]",z="[object RegExp]",F="[object String]",$={}; +}}),xr.spliceObjects||Nr(["pop","shift","splice"],function(n){var t=Mt[n],r="splice"==n;a.prototype[n]=function(){var n=this.__wrapped__,e=t.apply(n,arguments);return 0===n.length&&delete n[0],r?new X(e):e}}),a}var r,e=typeof exports=="object"&&exports,u=typeof module=="object"&&module&&module.exports==e&&module,a=typeof global=="object"&&global;(a.globatrue===a||a.window===a)&&(n=a);var o=0,i={},c=+new Date+"",l=75,f=/\b__p\+='';/g,p=/\b(__p\+=)''\+/g,s=/(__e\(.*?\)|\b__t\))\+'';/g,g=/&(?:amp|lt|gt|quot|#39);/g,v=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,h=/\w*$/,y=/<%=([\s\S]+?)%>/g,m=(m=/\bthis\b/)&&m.test(t)&&m,d=" \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",b=RegExp("^["+d+"]*0+(?=.$)"),_=/($^)/,C=/[&<>"']/g,j=/['\n\r\t\u2028\u2029\\]/g,w="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),x="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),O="[object Arguments]",E="[object Array]",S="[object Boolean]",A="[object Date]",I="[object Error]",B="[object Function]",N="[object Number]",P="[object Object]",z="[object RegExp]",F="[object String]",$={}; $[B]=!1,$[O]=$[E]=$[S]=$[A]=$[N]=$[P]=$[z]=$[F]=!0;var q={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},D={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},R=t();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=R, define(function(){return R})):e&&!e.nodeType?u?(u.exports=R)._=R:e._=R:n._=R}(this); \ No newline at end of file diff --git a/dist/lodash.min.js b/dist/lodash.min.js index 23c306b7c..000d39575 100644 --- a/dist/lodash.min.js +++ b/dist/lodash.min.js @@ -4,19 +4,19 @@ * Build: `lodash modern -o ./dist/lodash.js` * Underscore.js 1.4.4 underscorejs.org/LICENSE */ -;!function(n){function t(o){function f(n){if(!n||fe.call(n)!=B)return a;var t=n.valueOf,e=typeof t=="function"&&(e=re(t))&&re(e);return e?n==e||re(n)==e:et(n)}function P(n,t,e){if(!n||!q[typeof n])return n;t=t&&typeof e=="undefined"?t:G.createCallback(t,e);for(var r=-1,u=q[typeof n]?xe(n):[],o=u.length;++rt||typeof n=="undefined")return 1;if(n=s&&G.indexOf!=l,y={},h={"false":a,"function":a,"null":a,number:{},object:y,string:{},"true":a,undefined:a};if(g){for(;++ce?0:e);++re?0:e);++re?ye(0,o+e):e)||0,o&&typeof o=="number"?i=-1<(st(n)?n.indexOf(t,e):u(n,t,e)):P(n,function(n){return++ru&&(u=o)}}else t=!t&&st(n)?J:G.createCallback(t,e),dt(n,function(n,e,a){e=t(n,e,a),e>r&&(r=e,u=n)});return u}function jt(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number")for(var u=Dt(r);++earguments.length;t=G.createCallback(t,r,4);var o=-1,i=n.length;if(typeof i=="number")for(u&&(e=n[++o]);++oarguments.length;if(typeof u!="number")var i=xe(n),u=i.length;return t=G.createCallback(t,r,4),dt(n,function(r,f,c){f=i?i[--u]:--u,e=o?(o=a,n[f]):t(e,n[f],f,c)}),e}function xt(n,t,e){var r;t=G.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++ee?ye(0,r+e):e||0}else if(e)return e=Nt(n,t),n[e]===t?e:-1;return n?H(n,t,e):-1}function It(n,t,e){if(typeof t!="number"&&t!=u){var r=0,a=-1,o=n?n.length:0;for(t=G.createCallback(t,e);++a=s,i=[],f=o?W():e?[]:i;++rn?t():function(){return 1>--n?t.apply(this,arguments):void 0}},G.assign=U,G.at=function(n){for(var t=-1,e=ne.apply(Lt,de.call(arguments,1)),r=e.length,u=Dt(r);++t++l&&(f=n.apply(c,i)),p=ie(o,t),f}},G.defaults=M,G.defer=Ft,G.delay=function(n,t){var r=de.call(arguments,2);return ie(function(){n.apply(e,r)},t)},G.difference=Ot,G.filter=bt,G.flatten=Se,G.forEach=dt,G.forIn=K,G.forOwn=P,G.functions=ot,G.groupBy=function(n,t,e){var r={};return t=G.createCallback(t,e),dt(n,function(n,e,u){e=Ht(t(n,e,u)),(ue.call(r,e)?r[e]:r[e]=[]).push(n) +l=p=0,t&&(f=n.apply(c,i))}var i,f,c,l=0,p=u,s=r;if(e===true)var v=r,s=a;else lt(e)&&(v=e.leading,s="trailing"in e?e.trailing:s);return function(){return i=arguments,c=this,Zt(p),v&&2>++l&&(f=n.apply(c,i)),p=ie(o,t),f}},G.defaults=M,G.defer=Ft,G.delay=function(n,t){var r=de.call(arguments,2);return ie(function(){n.apply(e,r)},t)},G.difference=Ot,G.filter=bt,G.flatten=Se,G.forEach=dt,G.forIn=K,G.forOwn=P,G.functions=ot,G.groupBy=function(n,t,e){var r={};return t=G.createCallback(t,e),dt(n,function(n,e,u){e=Ht(t(n,e,u)),(ue.call(r,e)?r[e]:r[e]=[]).push(n) }),r},G.initial=function(n,t,e){if(!n)return[];var r=0,a=n.length;if(typeof t!="number"&&t!=u){var o=a;for(t=G.createCallback(t,e);o--&&t(n[o],o,n);)r++}else r=t==u||e?1:t||r;return rt(n,0,he(ye(0,a-r),a))},G.intersection=function(n){var t=arguments,e=t.length,r=W(),u={},a=-1,o=n?n.length:0,i=[];n:for(;++ar(o,e))&&(a[e]=n)}),a},G.once=function(n){var t,e;return function(){return t?e:(t=r,e=n.apply(this,arguments),n=u,e)}},G.pairs=function(n){for(var t=-1,e=xe(n),r=e.length,u=Dt(r);++te?ye(0,r+e):he(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},G.mixin=Tt,G.noConflict=function(){return o._=Wt,this},G.parseInt=Ne,G.random=function(n,t){n==u&&t==u&&(t=1),n=+n||0,t==u?(t=n,n=0):t=+t||0;var e=me();return n%1||t%1?n+he(e*(t-n+parseFloat("1e-"+((e+"").length-1))),t):n+te(e*(t-n+1))},G.reduce=wt,G.reduceRight=Ct,G.result=function(n,t){var r=n?n[t]:e;return ct(r)?n[t]():r},G.runInContext=t,G.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:xe(n).length },G.some=xt,G.sortedIndex=Nt,G.template=function(n,t,u){var a=G.templateSettings;n||(n=""),u=M({},u,a);var o,i=M({},u.imports,a.imports),a=xe(i),i=gt(i),f=0,c=u.interpolate||w,l="__p+='",c=Gt((u.escape||w).source+"|"+c.source+"|"+(c===d?b:w).source+"|"+(u.evaluate||w).source+"|$","g");n.replace(c,function(t,e,u,a,i,c){return u||(u=a),l+=n.slice(f,c).replace(x,Y),e&&(l+="'+__e("+e+")+'"),i&&(o=r,l+="';"+i+";__p+='"),u&&(l+="'+((__t=("+u+"))==null?'':__t)+'"),f=c+t.length,t}),l+="';\n",c=u=u.variable,c||(u="obj",l="with("+u+"){"+l+"}"),l=(o?l.replace(v,""):l).replace(g,"$1").replace(y,"$1;"),l="function("+u+"){"+(c?"":u+"||("+u+"={});")+"var __t,__p='',__e=_.escape"+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+l+"return __p}"; diff --git a/dist/lodash.underscore.min.js b/dist/lodash.underscore.min.js index a90a55f18..ea1dd498c 100644 --- a/dist/lodash.underscore.min.js +++ b/dist/lodash.underscore.min.js @@ -27,7 +27,7 @@ return N(n,function(n){i[++e]=(u?t:n[t]).apply(n,r)}),i},t.keys=$t,t.map=B,t.max return u},t.reject=function(n,t,r){return t=W(t,r),E(n,function(n,r,e){return!t(n,r,e)})},t.rest=C,t.shuffle=function(n){var t=-1,r=n?n.length:0,e=Array(typeof r=="number"?r:0);return N(n,function(n){var r=bt(qt()*(++t+1));e[t]=e[r],e[r]=n}),e},t.sortBy=function(n,t,r){var u=-1,o=n?n.length:0,i=Array(typeof o=="number"?o:0);for(t=W(t,r),N(n,function(n,r,e){i[++u]={a:t(n,r,e),b:u,c:n}}),o=i.length,i.sort(e);o--;)i[o]=i[o].c;return i},t.tap=function(n,t){return t(n),n},t.throttle=function(n,t){function r(){i=new Date,a=null,u=n.apply(o,e) }var e,u,o,i=0,a=null;return function(){var f=new Date,l=t-(f-i);return e=arguments,o=this,0r?0:r);++tr?Ft(0,e+r):kt(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},t.mixin=H,t.noConflict=function(){return n._=gt,this},t.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=qt();return n%1||t%1?n+kt(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+bt(r*(t-n+1)) },t.reduce=q,t.reduceRight=R,t.result=function(n,t){var r=n?n[t]:null;return b(r)?n[t]():r},t.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:$t(n).length},t.some=D,t.sortedIndex=P,t.template=function(n,r,e){n||(n=""),e=g({},e,t.templateSettings);var u=0,o="__p+='",i=e.variable;n.replace(RegExp((e.escape||nt).source+"|"+(e.interpolate||nt).source+"|"+(e.evaluate||nt).source+"|$","g"),function(t,r,e,i,f){return o+=n.slice(u,f).replace(rt,a),r&&(o+="'+_['escape']("+r+")+'"),i&&(o+="';"+i+";__p+='"),e&&(o+="'+((__t=("+e+"))==null?'':__t)+'"),u=f+t.length,t }),o+="';\n",i||(i="obj",o="with("+i+"||{}){"+o+"}"),o="function("+i+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+o+"return __p}";try{var f=Function("_","return "+o)(t)}catch(l){throw l.source=o,l}return r?f(r):(f.source=o,f)},t.unescape=function(n){return null==n?"":(n+"").replace(Z,p)},t.uniqueId=function(n){var t=++Q+"";return n?n+t:t},t.all=O,t.any=D,t.detect=S,t.foldl=q,t.foldr=R,t.include=x,t.inject=q,t.first=$,t.last=function(n,t,r){if(n){var e=0,u=n.length;