!function(){vare,t,r,i,n,s,o,a,u,l,d,h,c,f,p,y,m,g,x,v,w,k,Q,L,T,S,b,P,E=function(e){vart=newE.Builder;returnt.pipeline.add(E.trimmer,E.stopWordFilter,E.stemmer),t.searchPipeline.add(E.stemmer),e.call(t,t),t.build()};E.version="2.1.2",E.utils={},E.utils.warn=(e=this,function(t){e.console&&console.warn&&console.warn(t)}),E.utils.asString=function(e){returnnull==e?"":e.toString()},E.FieldRef=function(e,t){this.docRef=e,this.fieldName=t,this._stringValue=t+E.FieldRef.joiner+e},E.FieldRef.joiner="/",E.FieldRef.fromString=function(e){vart=e.indexOf(E.FieldRef.joiner);if(-1===t)throw"malformed field ref string";varr=e.slice(0,t),i=e.slice(t+1);returnnewE.FieldRef(i,r)},E.FieldRef.prototype.toString=function(){returnthis._stringValue},E.idf=function(e,t){varr=0;for(variine)"_index"!=i&&(r+=Object.keys(e[i]).length);varn=(t-r+.5)/(r+.5);returnMath.log(1+Math.abs(n))},E.Token=function(e,t){this.str=e||"",this.metadata=t||{}},E.Token.prototype.toString=function(){returnthis.str},E.Token.prototype.update=function(e){returnthis.str=e(this.str,this.metadata),this},E.Token.prototype.clone=function(e){returne=e||function(e){returne},newE.Token(e(this.str,this.metadata),this.metadata)},E.tokenizer=function(e){if(null==e||null==e)return[];if(Array.isArray(e))returne.map(function(e){returnnewE.Token(E.utils.asString(e).toLowerCase())});for(vart=e.toString().trim().toLowerCase(),r=t.length,i=[],n=0,s=0;n<=r;n++){varo=n-s;(t.charAt(n).match(E.tokenizer.separator)||n==r)&&(o>0&&i.push(newE.Token(t.slice(s,n),{position:[s,o],index:i.length})),s=n+1)}returni},E.tokenizer.separator=/[\s\-]+/,E.Pipeline=function(){this._stack=[]},E.Pipeline.registeredFunctions=Object.create(null),E.Pipeline.registerFunction=function(e,t){tinthis.registeredFunctions&&E.utils.warn("Overwriting existing registered function: "+t),e.label=t,E.Pipeline.registeredFunctions[e.label]=e},E.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.labelinthis.registeredFunctions||E.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},E.Pipeline.load=function(e){vart=newE.Pipeline;returne.forEach(function(e){varr=E.Pipeline.registeredFunctions[e];if(!r)thrownewError("Cannot load unregistered function: "+e);t.add(r)}),t},E.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach(function(e){E.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},E.Pipeline.prototype.after=function(e,t){E.Pipeline.warnIfFunctionNotRegistered(t);varr=this._stack.indexOf(e);if(-1==r)thrownewError("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},E.Pipeline.prototype.before=function(e,t){E.Pipeline.warnIfFunctionNotRegistered(t);varr=this._stack.indexOf(e);if(-1==r)thrownewError("Cannot find existingFn");this._stack.splice(r,0,t)},E.Pipeline.prototype.remove=function(e){vart=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},E.Pipeline.prototype.run=function(e){for(vart=this._stack.length,r=0;r<t;r++){vari=this._stack[r];e=e.reduce(function(t,r,n){vars=i(r,n,e);returnvoid0===s||""===s?t:t.concat(s)},[])}returne},E.Pipeline.prototype.runString=function(e){vart=newE.Token(e);returnthis.run([t]).map(function(e){returne.toString()})},E.Pipeline.prototype.reset=function(){this._stack=[]},E.Pipeline.prototype.toJSON=function(){returnthis._stack.map(function(e){returnE.Pipeline.warnIfFunctionNotRegistered(e),e.label})},E.Vector=function(e){this._magnitude=0,this.elements=e||[]},E.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return0;for(vart=0,r=this.elements.length/2,i=r-t,n=Math.floor(i/2),s=this.elements[2*n];i>1&&(s<e&&(t=n),s>e&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];returns==e?2*n:s>e?2*n:s<e?2*(n+1):void0},E.Vector.prototype.insert=function(e,t){this.upsert(e,t,function(){throw"duplicate index"})},E.Vector.prototype.upsert=function(e,t,r){this._magnitude=0;vari=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],t):this.elements.splice(i,0,e,t)}