!function(){for(var t=0,i=["webkit","moz","ms","o"],a=0;an.endval?n.endval:n.frameval,n.frameval=math.round(n.frameval*n.decimalmult)/n.decimalmult,n.printvalue(n.frameval),i1?n.options.decimal+a[1]:"",n.options.usegrouping){r="";for(var l=0,u=s.length;lt;var i=t-this.startval;if(math.abs(i)>this.options.smarteasingthreshold){this.finalendval=t;var a=this.countdown?1:-1;this.endval=t+a*this.options.smarteasingamount,this.duration=this.duration/2}else this.endval=t,this.finalendval=null;this.finalendval?this.useeasing=!1:this.useeasing=this.options.useeasing},t.prototype.start=function(t){this.error||(this.callback=t,this.duration>0?(this.determinedirectionandsmarteasing(),this.paused=!1,this.raf=requestanimationframe(this.count)):this.printvalue(this.endval))},t.prototype.pauseresume=function(){this.paused?(this.starttime=null,this.duration=this.remaining,this.startval=this.frameval,this.determinedirectionandsmarteasing(),this.raf=requestanimationframe(this.count)):cancelanimationframe(this.raf),this.paused=!this.paused},t.prototype.reset=function(){cancelanimationframe(this.raf),this.paused=!0,this.resetduration(),this.startval=this.validatevalue(this.options.startval),this.frameval=this.startval,this.printvalue(this.startval)},t.prototype.update=function(t){cancelanimationframe(this.raf),this.starttime=null,this.endval=this.validatevalue(t),this.endval!==this.frameval&&(this.startval=this.frameval,this.finalendval||this.resetduration(),this.determinedirectionandsmarteasing(),this.raf=requestanimationframe(this.count))},t.prototype.printvalue=function(t){var i=this.formattingfn(t);"input"===this.el.tagname?this.el.value=i:"text"===this.el.tagname||"tspan"===this.el.tagname?this.el.textcontent=i:this.el.innerhtml=i},t.prototype.ensurenumber=function(t){return"number"==typeof t&&!isnan(t)},t.prototype.validatevalue=function(t){var i=number(t);return this.ensurenumber(i)?i:(this.error="[countup] invalid start or end value: "+t,null)},t.prototype.resetduration=function(){this.starttime=null,this.duration=1e3*number(this.options.duration),this.remaining=this.duration},t}();