if(Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|after|from)/i,subtract:/^(\-|before|ago)/i,yesterday:/^yesterday/i,today:/^t(oday)?/i,tomorrow:/^tomorrow/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^min(ute)?s?/i,hour:/^h(ou)?rs?/i,week:/^w(ee)?k/i,month:/^m(o(nth)?s?)?/i,day:/^d(ays?)?/i,year:/^y((ea)?rs?)?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a|p)/i},abbreviatedTimeZoneStandard:{GMT:"-000",EST:"-0400",CST:"-0500",MST:"-0600",PST:"-0700"},abbreviatedTimeZoneDST:{GMT:"-000",EDT:"-0500",CDT:"-0600",MDT:"-0700",PDT:"-0800"}},Date.getMonthNumberFromName=function(n){for(var i=Date.CultureInfo.monthNames,u=Date.CultureInfo.abbreviatedMonthNames,r=n.toLowerCase(),t=0;t<i.length;t++)if(i[t].toLowerCase()==r||u[t].toLowerCase()==r)return t;return-1},Date.getDayNumberFromName=function(n){for(var i=Date.CultureInfo.dayNames,u=Date.CultureInfo.abbreviatedDayNames,f=Date.CultureInfo.shortestDayNames,r=n.toLowerCase(),t=0;t<i.length;t++)if(i[t].toLowerCase()==r||u[t].toLowerCase()==r)return t;return-1},Date.isLeapYear=function(n){return n%4==0&&n%100!=0||n%400==0},Date.getDaysInMonth=function(n,t){return[31,Date.isLeapYear(n)?29:28,31,30,31,30,31,31,30,31,30,31][t]},Date.getTimezoneOffset=function(n,t){return t||!1?Date.CultureInfo.abbreviatedTimeZoneDST[n.toUpperCase()]:Date.CultureInfo.abbreviatedTimeZoneStandard[n.toUpperCase()]},Date.getTimezoneAbbreviation=function(n,t){var i=t||!1?Date.CultureInfo.abbreviatedTimeZoneDST:Date.CultureInfo.abbreviatedTimeZoneStandard;for(var r in i)if(i[r]===n)return r;return null},Date.prototype.clone=function(){return new Date(this.getTime())},Date.prototype.compareTo=function(n){if(isNaN(this))throw new Error(this);if(n instanceof Date&&!isNaN(n))return this>n?1:this<n?-1:0;throw new TypeError(n);},Date.prototype.equals=function(n){return this.compareTo(n)===0},Date.prototype.between=function(n,t){var i=this.getTime();return i>=n.getTime()&&i<=t.getTime()},Date.prototype.addMilliseconds=function(n){return this.setMilliseconds(this.getMilliseconds()+n),this},Date.prototype.addSeconds=function(n){return this.addMilliseconds(n*1e3)},Date.prototype.addMinutes=function(n){return this.addMilliseconds(n*6e4)},Date.prototype.addHours=function(n){return this.addMilliseconds(n*36e5)},Date.prototype.addDays=function(n){return this.addMilliseconds(n*864e5)},Date.prototype.addWeeks=function(n){return this.addMilliseconds(n*6048e5)},Date.prototype.addMonths=function(n){var t=this.getDate();return this.setDate(1),this.setMonth(this.getMonth()+n),this.setDate(Math.min(t,this.getDaysInMonth())),this},Date.prototype.addYears=function(n){return this.addMonths(n*12)},Date.prototype.add=function(n){if(typeof n=="number")return this._orient=n,this;var t=n;return(t.millisecond||t.milliseconds)&&this.addMilliseconds(t.millisecond||t.milliseconds),(t.second||t.seconds)&&this.addSeconds(t.second||t.seconds),(t.minute||t.minutes)&&this.addMinutes(t.minute||t.minutes),(t.hour||t.hours)&&this.addHours(t.hour||t.hours),(t.month||t.months)&&this.addMonths(t.month||t.months),(t.year||t.years)&&this.addYears(t.year||t.years),(t.day||t.days)&&this.addDays(t.day||t.days),this},Date._validate=function(n,t,i,r){if(typeof n!="number")throw new TypeError(n+" is not a Number.");else if(n<t||n>i)throw new RangeError(n+" is not a valid value for "+r+".");return!0},Date.validateMillisecond=function(n){return Date._validate(n,0,999,"milliseconds")},Date.validateSecond=function(n){return Date._validate(n,0,59,"seconds")},Date.validateMinute=function(n){return Date._validate(n,0,59,"minutes")},Date.validateHour=function(n){return Date._validate(n,0,23,"hours")},Date.validateDay=function(n,t,i){return Date._validate(n,1,Date.getDaysInMonth(t,i),"days")},Date.validateMonth=function(n){return Date._validate(n,0,11,"months")},Date.validateYear=function(n){return Date._validate(n,1,9999,"seconds")},Date.prototype.set=function(n){var t=n;return t.millisecond||t.millisecond===0||(t.millisecond=-1),t.second||t.second===0||(t.second=-1),t.minute||t.minute===0||(t.minute=-1),t.hour||t.hour===0||(t.hour=-1),t.day||t.day===0||(t.day=-1),t.month||t.month===0||(t.month=-1),t.year||t.year===0||(t.year=-1),t.millisecond!=-1&&Date.validateMillisecond(t.millisecond)&&this.addMilliseconds(t.millisecond-this.getMilliseconds()),t.second!=-1&&Date.validateSecond(t.second)&&this.addSeconds(t.second-this.getSeconds()),t.minute!=-1&&Date.validateMinute(t.minute)&&this.addMinutes(t.minute-this.getMinutes()),t.hour!=-1&&Date.validateHour(t.hour)&&this.addHours(t.hour-this.getHours()),t.month!==-1&&Date.validateMonth(t.month)&&this.addMonths(t.month-this.getMonth()),t.year!=-1&&Date.validateYear(t.year)&&this.addYears(t.year-this.getFullYear()),t.day!=-1&&Date.validateDay(t.day,this.getFullYear(),this.getMonth())&&this.addDays(t.day-this.getDate()),t.timezone&&this.setTimezone(t.timezone),t.timezoneOffset&&this.setTimezoneOffset(t.timezoneOffset),this},Date.prototype.clearTime=function(){return this.setHours(0),this.setMinutes(0),this.setSeconds(0),this.setMilliseconds(0),this},Date.prototype.isLeapYear=function(){var n=this.getFullYear();return n%4==0&&n%100!=0||n%400==0},Date.prototype.isWeekday=function(){return!(this.is().sat()||this.is().sun())},Date.prototype.getDaysInMonth=function(){return Date.getDaysInMonth(this.getFullYear(),this.getMonth())},Date.prototype.moveToFirstDayOfMonth=function(){return this.set({day:1})},Date.prototype.moveToLastDayOfMonth=function(){return this.set({day:this.getDaysInMonth()})},Date.prototype.moveToDayOfWeek=function(n,t){var i=(n-this.getDay()+7*(t||1))%7;return this.addDays(i===0?i+=7*(t||1):i)},Date.prototype.moveToMonth=function(n,t){var i=(n-this.getMonth()+12*(t||1))%12;return this.addMonths(i===0?i+=12*(t||1):i)},Date.prototype.getDayOfYear=function(){return Math.floor((this-new Date(this.getFullYear(),0,1))/864e5)},Date.prototype.getWeekOfYear=function(n){var t=this.getFullYear(),e=this.getMonth(),o=this.getDate(),s=n||Date.CultureInfo.firstDayOfWeek,r=8-new Date(t,0,1).getDay(),f,i,u;return r==8&&(r=1),f=(Date.UTC(t,e,o,0,0,0)-Date.UTC(t,0,1,0,0,0))/864e5+1,i=Math.floor((f-r+7)/7),i===s&&(t--,u=8-new Date(t,0,1).getDay(),i=u==2||u==8?53:52),i},Date.prototype.isDST=function(){return console.log("isDST"),this.toString().match(/(E|C|M|P)(S|D)T/)[2]=="D"},Date.prototype.getTimezone=function(){return Date.getTimezoneAbbreviation(this.getUTCOffset,this.isDST())},Date.prototype.setTimezoneOffset=function(n){var t=this.getTimezoneOffset(),i=Number(n)*-6/10;return this.addMinutes(i-t),this},Date.prototype.setTimezone=function(n){return this.setTimezoneOffset(Date.getTimezoneOffset(n))},Date.prototype.getUTCOffset=function(){var t=this.getTimezoneOffset()*-10/6,n;return t<0?(n=(t-1e4).toString(),n[0]+n.substr(2)):(n=(t+1e4).toString(),"+"+n.substr(1))},Date.prototype.getDayName=function(n){return n?Date.CultureInfo.abbreviatedDayNames[this.getDay()]:Date.CultureInfo.dayNames[this.getDay()]},Date.prototype.getMonthName=function(n){return n?Date.CultureInfo.abbreviatedMonthNames[this.getMonth()]:Date.CultureInfo.monthNames[this.getMonth()]},Date.prototype._toString=Date.prototype.toString,Date.prototype.toString=function(n){var t=this,i=function(n){return n.toString().length==1?"0"+n:n};return n?n.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?/g,function(n){switch(n){case"hh":return i(t.getHours()<13?t.getHours():t.getHours()-12);case"h":return t.getHours()<13?t.getHours():t.getHours()-12;case"HH":return i(t.getHours());case"H":return t.getHours();case"mm":return i(t.getMinutes());case"m":return t.getMinutes();case"ss":return i(t.getSeconds());case"s":return t.getSeconds();case"yyyy":return t.getFullYear();case"yy":return t.getFullYear().toString().substring(2,4);case"dddd":return t.getDayName();case"ddd":return t.getDayName(!0);case"dd":return i(t.getDate());case"d":return t.getDate().toString();case"MMMM":return t.getMonthName();case"MMM":return t.getMonthName(!0);case"MM":return i(t.getMonth()+1);case"M":return t.getMonth()+1;case"t":return t.getHours()<12?Date.CultureInfo.amDesignator.substring(0,1):Date.CultureInfo.pmDesignator.substring(0,1);case"tt":return t.getHours()<12?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator;case"zzz":case"zz":case"z":return""}}):this._toString()},Date.now=function(){return new Date},Date.today=function(){return Date.now().clearTime()},Date.prototype._orient=1,Date.prototype.next=function(){return this._orient=1,this},Date.prototype.last=Date.prototype.prev=Date.prototype.previous=function(){return this._orient=-1,this},Date.prototype._is=!1,Date.prototype.is=function(){return this._is=!0,this},Number.prototype._dateElement="day",Number.prototype.fromNow=function(){var n={};return n[this._dateElement]=this,Date.now().add(n)},Number.prototype.ago=function(){var n={};return n[this._dateElement]=this*-1,Date.now().add(n)},function(){for(var h,i,c,l,u,n=Date.prototype,s=Number.prototype,f="sunday monday tuesday wednesday thursday friday saturday".split(/\s/),e="january february march april may june july august september october november december".split(/\s/),o="Millisecond Second Minute Hour Day Week Month Year".split(/\s/),t,a=function(n){return function(){return this._is?(this._is=!1,this.getDay()==n):this.moveToDayOfWeek(n,this._orient)}},r=0;r<f.length;r++)n[f[r]]=n[f[r].substring(0,3)]=a(r);for(h=function(n){return function(){return this._is?(this._is=!1,this.getMonth()===n):this.moveToMonth(n,this._orient)}},i=0;i<e.length;i++)n[e[i]]=n[e[i].substring(0,3)]=h(i);for(c=function(n){return function(){return n.substring(n.length-1)!="s"&&(n+="s"),this["add"+n](this._orient)}},l=function(n){return function(){return this._dateElement=n,this}},u=0;u<o.length;u++)t=o[u].toLowerCase(),n[t]=n[t+"s"]=c(o[u]),s[t]=s[t+"s"]=l(t)}(),Date.prototype.toJSONString=function(){return this.toString("yyyy-MM-ddThh:mm:ssZ")},Date.prototype.toShortDateString=function(){return this.toString(Date.CultureInfo.formatPatterns.shortDatePattern)},Date.prototype.toLongDateString=function(){return this.toString(Date.CultureInfo.formatPatterns.longDatePattern)},Date.prototype.toShortTimeString=function(){return this.toString(Date.CultureInfo.formatPatterns.shortTimePattern)},Date.prototype.toLongTimeString=function(){return this.toString(Date.CultureInfo.formatPatterns.longTimePattern)},Date.prototype.getOrdinal=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},function(){var i,o,f,u;Date.Parsing={Exception:function(n){this.message="Parse error at '"+n.substring(0,10)+" ...'"}};var t=Date.Parsing,n=t.Operators={rtoken:function(n){return function(i){var r=i.match(n);if(r)return[r[0],i.substring(r[0].length)];throw new t.Exception(i);}},token:function(){return function(t){return n.rtoken(new RegExp("^s*"+t+"s*"))(t)}},stoken:function(t){return n.rtoken(new RegExp("^"+t))},until:function(n){return function(t){for(var r=[],i=null;t.length;){try{i=n.call(this,t)}catch(u){r.push(i[0]);t=i[1];continue}break}return[r,t]}},many:function(n){return function(t){for(var i=[],r=null;t.length;){try{r=n.call(this,t)}catch(u){return[i,t]}i.push(r[0]);t=r[1]}return[i,t]}},optional:function(n){return function(t){var i=null;try{i=n.call(this,t)}catch(r){return[null,t]}return[i[0],i[1]]}},not:function(n){return function(i){try{n.call(this,i)}catch(r){return[null,i]}throw new t.Exception(i);}},ignore:function(n){return n?function(t){var i=null;return i=n.call(this,t),[null,i[1]]}:null},product:function(){for(var i=arguments[0],u=Array.prototype.slice.call(arguments,1),r=[],t=0;t<i.length;t++)r.push(n.each(i[t],u));return r},cache:function(n){var r={},i=null;return function(u){try{i=r[u]=r[u]||n.call(this,u)}catch(f){i=r[u]=f}if(i instanceof t.Exception)throw i;else return i}},any:function(){var n=arguments;return function(i){for(var r=null,u=0;u<n.length;u++)if(n[u]!=null){try{r=n[u].call(this,i)}catch(f){r=null}if(r)return r}throw new t.Exception(i);}},each:function(){var n=arguments;return function(i){for(var f=[],u=null,r=0;r<n.length;r++)if(n[r]!=null){try{u=n[r].call(this,i)}catch(e){throw new t.Exception(i);}f.push(u[0]);i=u[1]}return[f,i]}},all:function(){var t=arguments,n=n;return n.each(n.optional(t))},sequence:function(i,r,u){return(r=r||n.rtoken(/^\s*/),u=u||null,i.length==1)?i[0]:function(n){for(var f=null,e=null,s=[],o=0;o<i.length;o++){try{f=i[o].call(this,n)}catch(h){break}s.push(f[0]);try{e=r.call(this,f[1])}catch(c){e=null;break}n=e[1]}if(!f)throw new t.Exception(n);if(e)throw new t.Exception(e[1]);if(u)try{f=u.call(this,f[1])}catch(l){throw new t.Exception(f[1]);}return[s,f?f[1]:n]}},between:function(t,i,u){u=u||t;var f=n.each(n.ignore(t),i,n.ignore(u));return function(n){var t=f.call(this,n);return[[t[0][0],r[0][2]],t[1]]}},list:function(t,i,r){return i=i||n.rtoken(/^\s*/),r=r||null,t instanceof Array?n.each(n.product(t.slice(0,-1),n.ignore(i)),t.slice(-1),n.ignore(r)):n.each(n.many(n.each(t,n.ignore(i))),px,n.ignore(r))},set:function(i,r,u){return r=r||n.rtoken(/^\s*/),u=u||null,function(f){for(var y,a,s=null,l=null,h=null,c=null,e=[[],f],o=!1,v=0;v<i.length;v++){h=null;l=null;s=null;o=i.length==1;try{s=i[v].call(this,f)}catch(p){continue}if(c=[[s[0]],s[1]],s[1].length>0&&!o)try{h=r.call(this,s[1])}catch(w){o=!0}else o=!0;if(o||h[1].length!==0||(o=!0),!o){for(y=[],a=0;a<i.length;a++)v!=a&&y.push(i[a]);l=n.set(y,r).call(this,h[1]);l[0].length>0&&(c[0]=c[0].concat(l[0]),c[1]=l[1])}if(c[1].length<e[1].length&&(e=c),e[1].length===0)break}if(e[0].length===0)return e;if(u){try{h=u.call(this,e[1])}catch(b){throw new t.Exception(e[1]);}e[1]=h[1]}return e}},forward:function(n,t){return function(i){return n[t].call(this,i)}},replace:function(n,t){return function(i){var r=n.call(this,i);return[t,r[1]]}},process:function(n,t){return function(i){var r=n.call(this,i);return[t.call(this,r[0]),r[1]]}},min:function(n,i){return function(r){var u=i.call(this,r);if(u[0].length<n)throw new t.Exception(r);return u}}},s=function(n){return function(){var t=null,u=[],i,r;if(arguments.length>1?t=Array.prototype.slice.call(arguments):arguments[0]instanceof Array&&(t=arguments[0]),t)for(i=0,r=t.shift();i<r.length;i++)return t.unshift(r[i]),u.push(n.apply(null,t)),t.shift(),u;else return n.apply(null,arguments)}},e="optional not ignore cache".split(/\s/);for(i=0;i<e.length;i++)n[e[i]]=s(n[e[i]]);for(o=function(n){return function(){return arguments[0]instanceof Array?n.apply(null,arguments[0]):n.apply(null,arguments)}},f="each any all".split(/\s/),u=0;u<f.length;u++)n[f[u]]=o(n[f[u]])}(),function(){var o=function(n){for(var i=[],t=0;t<n.length;t++)n[t]instanceof Array?i=i.concat(o(n[t])):n[t]&&i.push(n[t]);return i},u,f,e;Date.Grammar={};Date.Translator={hour:function(n){return function(){this.hour=Number(n)}},minute:function(n){return function(){this.minute=Number(n)}},second:function(n){return function(){this.second=Number(n)}},meridian:function(n){return function(){this.meridian=n.slice(0,1).toLowerCase()}},timezone:function(n){return function(){var t=n.replace(/[^\d\+\-]/g,"");t.length?this.timezoneOffset=Number(t):this.timezone=n.toLowerCase()}},day:function(n){var t=n[0];return function(){this.day=Number(t.match(/\d+/)[0])}},month:function(n){return function(){this.month=n.length==3?Date.getMonthNumberFromName(n):Number(n)-1}},year:function(n){return function(){var t=Number(n);this.year=n.length>2?t:t+(t+2e3<Date.CultureInfo.twoDigitYearMax?2e3:1900)}},rday:function(n){return function(){switch(n){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=!0}}},finishExact:function(n){var r,t,i;for(n=n instanceof Array?n:[n],r=new Date,this.year=r.getFullYear(),this.month=r.getMonth(),this.day=1,this.hour=0,this.minute=0,this.second=0,t=0;t<n.length;t++)n[t]&&n[t].call(this);if(this.hour=this.meridian=="p"&&this.hour<13?this.hour+12:this.hour,this.day>Date.getDaysInMonth(this.year,this.month))throw new RangeError(this.day+" is not a valid value for days.");return i=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second),this.timezone?i.set({timezone:this.timezone}):this.timezoneOffset&&i.set({timezoneOffset:this.timezoneOffset}),i},finish:function(n){var f,r,t,u;if(n=n instanceof Array?o(n):[n],n.length===0)return null;for(f=0;f<n.length;f++)typeof n[f]=="function"&&n[f].call(this);if(this.now)return new Date;var i=Date.today(),e=!!(this.days!=null||this.orient||this.operator);return e?(u=this.orient=="past"||this.operator=="subtract"?-1:1,this.weekday&&(this.unit="day",r=Date.getDayNumberFromName(this.weekday)-i.getDay(),t=7,this.days=r?(r+u*t)%t:u*t),this.month&&(this.unit="month",r=this.month-i.getMonth(),t=12,this.months=r?(r+u*t)%t:u*t,this.month=null),this.unit||(this.unit="day"),(this[this.unit+"s"]==null||this.operator!=null)&&(this.value||(this.value=1),this.unit=="week"&&(this.unit="day",this.value=this.value*7),this[this.unit+"s"]=this.value*u),i.add(this)):(this.meridian&&this.hour&&(this.hour=this.hour<13&&this.meridian=="p"?this.hour+12:this.hour),this.weekday&&!this.day&&(this.day=i.addDays(Date.getDayNumberFromName(this.weekday)-i.getDay()).getDate()),this.month&&!this.day&&(this.day=1),i.set(this))}};var t=Date.Parsing.Operators,n=Date.Grammar,i=Date.Translator,r;n.datePartDelimiter=t.rtoken(/^([\s\-\.\,\/\x27]+)/);n.timePartDelimiter=t.stoken(":");n.whiteSpace=t.rtoken(/^\s*/);n.generalDelimiter=t.rtoken(/^(([\s\,]|at|on)+)/);u={};n.ctoken=function(n){var r=u[n],i;if(!r){var o=Date.CultureInfo.regexPatterns,f=n.split(/\s+/),e=[];for(i=0;i<f.length;i++)e.push(t.replace(t.rtoken(o[f[i]]),f[i]));r=u[n]=t.any.apply(null,e)}return r};n.ctoken2=function(n){return t.rtoken(Date.CultureInfo.regexPatterns[n])};n.h=t.cache(t.process(t.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),i.hour));n.hh=t.cache(t.process(t.rtoken(/^(0[0-9]|1[0-2])/),i.hour));n.H=t.cache(t.process(t.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),i.hour));n.HH=t.cache(t.process(t.rtoken(/^([0-1][0-9]|2[0-3])/),i.hour));n.m=t.cache(t.process(t.rtoken(/^([0-5][0-9]|[0-9])/),i.minute));n.mm=t.cache(t.process(t.rtoken(/^[0-5][0-9]/),i.minute));n.s=t.cache(t.process(t.rtoken(/^([0-5][0-9]|[0-9])/),i.second));n.ss=t.cache(t.process(t.rtoken(/^[0-5][0-9]/),i.second));n.hms=t.cache(t.sequence([n.H,n.mm,n.ss],n.timePartDelimiter));n.t=t.cache(t.process(n.ctoken2("shortMeridian"),i.meridian));n.tt=t.cache(t.process(n.ctoken2("longMeridian"),i.meridian));n.z=t.cache(t.process(t.rtoken(/^(\+|\-)?\s*\d\d\d\d?/),i.timezone));n.zz=t.cache(t.process(t.rtoken(/^(\+|\-)\s*\d\d\d\d/),i.timezone));n.zzz=t.cache(t.process(n.ctoken2("timezone"),i.timezone));n.timeSuffix=t.each(t.ignore(n.whiteSpace),t.set([n.tt,n.zzz]));n.time=t.each(t.optional(t.ignore(t.stoken("T"))),n.hms,n.timeSuffix);n.d=t.cache(t.process(t.each(t.rtoken(/^([0-2]\d|3[0-1]|\d)/),t.optional(n.ctoken2("ordinalSuffix"))),i.day));n.dd=t.cache(t.process(t.each(t.rtoken(/^([0-2]\d|3[0-1])/),t.optional(n.ctoken2("ordinalSuffix"))),i.day));n.ddd=n.dddd=t.cache(t.process(n.ctoken("sun mon tue wed thu fri sat"),function(n){return function(){this.weekday=n}}));n.M=t.cache(t.process(t.rtoken(/^(1[0-2]|0\d|\d)/),i.month));n.MM=t.cache(t.process(t.rtoken(/^(1[0-2]|0\d)/),i.month));n.MMM=n.MMMM=t.cache(t.process(n.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),i.month));n.y=t.cache(t.process(t.rtoken(/^(\d\d?)/),i.year));n.yy=t.cache(t.process(t.rtoken(/^(\d\d)/),i.year));n.yyy=t.cache(t.process(t.rtoken(/^(\d\d?\d?\d?)/),i.year));n.yyyy=t.cache(t.process(t.rtoken(/^(\d\d\d\d)/),i.year));r=function(){return t.each(t.any.apply(null,arguments),t.not(n.ctoken2("timeContext")))};n.day=r(n.d,n.dd);n.month=r(n.M,n.MMM);n.year=r(n.yyyy,n.yy);n.orientation=t.process(n.ctoken("past future"),function(n){return function(){this.orient=n}});n.operator=t.process(n.ctoken("add subtract"),function(n){return function(){this.operator=n}});n.rday=t.process(n.ctoken("yesterday tomorrow today now"),i.rday);n.unit=t.process(n.ctoken("minute hour day week month year"),function(n){return function(){this.unit=n}});n.value=t.process(t.rtoken(/^\d\d?(st|nd|rd|th)?/),function(n){return function(){this.value=n.replace(/\D/g,"")}});n.expression=t.set([n.rday,n.operator,n.value,n.unit,n.orientation,n.ddd,n.MMM]);r=function(){return t.set(arguments,n.datePartDelimiter)};n.mdy=r(n.ddd,n.month,n.day,n.year);n.ymd=r(n.ddd,n.year,n.month,n.day);n.dmy=r(n.ddd,n.day,n.month,n.year);n.date=function(t){return(n[Date.CultureInfo.dateElementOrder]||n.mdy).call(this,t)};n.format=t.process(t.many(t.any(t.process(t.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(t){if(n[t])return n[t];throw Date.Parsing.Exception(t);}),t.process(t.rtoken(/^[^dMyhHmstz]+/),function(n){return t.ignore(t.stoken(n))}))),function(n){return t.process(t.each.apply(null,n),i.finishExact)});f={};e=function(t){return f[t]=f[t]||n.format(t)[0]};n.formats=function(n){var r,i;if(n instanceof Array){for(r=[],i=0;i<n.length;i++)r.push(e(n[i]));return t.any.apply(null,r)}return e(n)};n._formats=n.formats(["yyyy-MM-ddTHH:mm:ss","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","d"]);n._start=t.process(t.set([n.date,n.time,n.expression],n.generalDelimiter,n.whiteSpace),i.finish);n.start=function(t){try{var i=n._formats.call({},t);if(i[1].length===0)return i}catch(r){}return n._start.call({},t)}}(),Date._parse=Date.parse,Date.parse=function(n){var t=null;if(!n)return null;try{t=Date.Grammar.start.call({},n)}catch(i){return null}return t[1].length===0?t[0]:null},Date.getParseFunction=function(n){var t=Date.Grammar.formats(n);return function(n){var i=null;try{i=t.call({},n)}catch(r){return null}return i[1].length===0?i[0]:null}},Date.parseExact=function(n,t){return Date.getParseFunction(t)(n)},function(n){function u(r,u){function a(r){return h=i(r).y,t=n("<div id='overlay' style='position: absolute; zindex: 99; background-color: white; opacity:0.01; filter: alpha(opacity = 1); left:0; top:0;'>&nbsp;<\/div>"),o.css("opacity",.25),e.append(t[0]),t.width(e.width()),t.height(e.height()),n(document).mousemove(c).mouseup(l),!1}function c(n){var u=i(n).y,r=u-e.offset().top,c;return(h>=u&&(r-=5),r<=f.minHeight)?!1:(h=u,r=r,c=f.resizeWrapper?e:o,c.height(r-f.offsetTop+"px"),t.height(e.height()),f.callback&&f.callback(r-(f.resizeWrapper?s.outerHeight(!0):0)),!1)}function l(){n(document).unbind("mousemove",c).unbind("mouseup",l);o.css("opacity",1);e.focus();t.remove();offset=null;h=0}var s,h=0,f=u,o,e=n(r).addClass("processed");s=n('<div class="grippie"><\/div>').bind("mousedown",a);o=e.children(":visible");e.append(s);f.resizeWrapper||(o=f.resizeSelector?o.filter(f.resizeSelector):o.first());f.useParentWidth||(s[0].style.marginRight=s[0].offsetWidth-o[0].offsetWidth+"px");f.initCallback&&f.callback&&f.callback(e.height()-s.outerHeight(!0))}function i(n){return{x:n.clientX+document.documentElement.scrollLeft,y:n.clientY+(document.documentElement.scrollTop||document.body.scrollTop)}}var t,r={useParentWidth:!1,resizeWrapper:!1,minHeight:32,offsetTop:0};n.fn.TextAreaResizer=function(t,i){return this.each(function(){t&&typeof t=="function"?(i=i||{},i.callback=t):t&&typeof t=="object"&&!i&&(i=t);new u(this,n.extend({},r,i||{}))})}}(jQuery),function(n){n.fn.drag=function(t,i,r){var u=typeof t=="string"?t:"",f=n.isFunction(t)?t:n.isFunction(i)?i:null;return u.indexOf("drag")!==0&&(u="drag"+u),r=(t==f?i:r)||{},f?this.bind(u,r,f):this.trigger(u)};var r=n.event,i=r.special,t=i.drag={defaults:{which:1,distance:0,not:":input",handle:null,relative:!1,drop:!0,click:!1},datakey:"dragdata",livekey:"livedrag",add:function(i){var u=n.data(this,t.datakey),f=i.data||{};u.related+=1;!u.live&&i.selector&&(u.live=!0,r.add(this,"draginit."+t.livekey,t.delegate));n.each(t.defaults,function(n){f[n]!==undefined&&(u[n]=f[n])})},remove:function(){n.data(this,t.datakey).related-=1},setup:function(){if(!n.data(this,t.datakey)){var i=n.extend({related:0},t.defaults);n.data(this,t.datakey,i);r.add(this,"mousedown",t.init,i);this.attachEvent&&this.attachEvent("ondragstart",t.dontstart)}},teardown:function(){n.data(this,t.datakey).related||(n.removeData(this,t.datakey),r.remove(this,"mousedown",t.init),r.remove(this,"draginit",t.delegate),t.textselect(!0),this.detachEvent&&this.detachEvent("ondragstart",t.dontstart))},init:function(u){var f=u.data,e;if(!(f.which>0)||u.which==f.which)return n(u.target).is(f.not)?void 0:f.handle&&!n(u.target).closest(f.handle,u.currentTarget).length?void 0:(f.propagates=1,f.interactions=[t.interaction(this,f)],f.target=u.target,f.pageX=u.pageX,f.pageY=u.pageY,f.dragging=null,e=t.hijack(u,"draginit",f),!f.propagates)?void 0:(e=t.flatten(e),e&&e.length&&(f.interactions=[],n.each(e,function(){f.interactions.push(t.interaction(this,f))})),f.propagates=f.interactions.length,f.drop!==!1&&i.drop&&i.drop.handler(u,f),t.textselect(!1),r.add(document,"mousemove mouseup",t.handler,f),!1)},interaction:function(i,r){return{drag:i,callback:new t.callback,droppable:[],offset:n(i)[r.relative?"position":"offset"]()||{top:0,left:0}}},handler:function(n){var u=n.data;switch(n.type){case!u.dragging&&"mousemove":if(Math.pow(n.pageX-u.pageX,2)+Math.pow(n.pageY-u.pageY,2)<Math.pow(u.distance,2))break;n.target=u.target;t.hijack(n,"dragstart",u);u.propagates&&(u.dragging=!0);case"mousemove":if(u.dragging){if(t.hijack(n,"drag",u),u.propagates){u.drop!==!1&&i.drop&&i.drop.handler(n,u);break}n.type="mouseup"}case"mouseup":r.remove(document,"mousemove mouseup",t.handler);u.dragging&&(u.drop!==!1&&i.drop&&i.drop.handler(n,u),t.hijack(n,"dragend",u));t.textselect(!0);u.click===!1&&u.dragging&&(jQuery.event.triggered=!0,setTimeout(function(){jQuery.event.triggered=!1},20),u.dragging=!1)}},delegate:function(i){var f=[],u,e=n.data(this,"events")||{};return(n.each(e.live||[],function(e,o){o.preType.indexOf("drag")===0&&(u=n(i.target).closest(o.selector,i.currentTarget)[0],u)&&(r.add(u,o.origType+"."+t.livekey,o.origHandler,o.data),n.inArray(u,f)<0&&f.push(u))}),!f.length)?!1:n(f).bind("dragend."+t.livekey,function(){r.remove(this,"."+t.livekey)})},hijack:function(i,u,f,e,o){if(f){var v={event:i.originalEvent,type:i.type},l=u.indexOf("drop")?"drag":"drop",h,a=e||0,s,c,y=isNaN(e)?f.interactions.length:e;i.type=u;i.originalEvent=null;f.results=[];do if(s=f.interactions[a]){if(u!=="dragend"&&s.cancelled)continue;c=t.properties(i,f,s);s.results=[];n(o||s[l]||f.droppable).each(function(e,o){return c.target=o,h=o?r.handle.call(o,i,c):null,h===!1?(l=="drag"&&(s.cancelled=!0,f.propagates-=1),u=="drop"&&(s[l][e]=null)):u=="dropinit"&&s.droppable.push(t.element(h)||o),u=="dragstart"&&(s.proxy=n(t.element(h)||s.drag)[0]),s.results.push(h),delete i.result,u!=="dropinit"?h:void 0});f.results[a]=t.flatten(s.results);u=="dropinit"&&(s.droppable=t.flatten(s.droppable));u!="dragstart"||s.cancelled||c.update()}while(++a<y);return i.type=v.type,i.originalEvent=v.event,t.flatten(f.results)}},properties:function(n,i,r){var u=r.callback;return u.drag=r.drag,u.proxy=r.proxy||r.drag,u.startX=i.pageX,u.startY=i.pageY,u.deltaX=n.pageX-i.pageX,u.deltaY=n.pageY-i.pageY,u.originalX=r.offset.left,u.originalY=r.offset.top,u.offsetX=n.pageX-(i.pageX-u.originalX),u.offsetY=n.pageY-(i.pageY-u.originalY),u.drop=t.flatten((r.drop||[]).slice()),u.available=t.flatten((r.droppable||[]).slice()),u},element:function(n){if(n&&(n.jquery||n.nodeType==1))return n},flatten:function(i){return n.map(i,function(i){return i&&i.jquery?n.makeArray(i):i&&i.length?t.flatten(i):i})},textselect:function(i){n(document)[i?"unbind":"bind"]("selectstart",t.dontstart).attr("unselectable",i?"off":"on").css("MozUserSelect",i?"":"none")},dontstart:function(){return!1},callback:function(){}};t.callback.prototype={update:function(){i.drop&&this.available.length&&n.each(this.available,function(n){i.drop.locate(this,n)})}};i.draginit=i.dragstart=i.dragend=t}(jQuery),function(n){function r(){var n=!1,t=!1;this.stopPropagation=function(){n=!0};this.isPropagationStopped=function(){return n};this.stopImmediatePropagation=function(){t=!0};this.isImmediatePropagationStopped=function(){return t}}function e(){var n=[];this.subscribe=function(t){n.push(t)};this.unsubscribe=function(t){for(var i=n.length-1;i>=0;i--)n[i]===t&&n.splice(i,1)};this.notify=function(t,i,u){var e,f;for(i=i||new r,u=u||this,f=0;f<n.length&&!(i.isPropagationStopped()||i.isImmediatePropagationStopped());f++)e=n[f].call(u,i,t);return e}}function o(){var n=[];this.subscribe=function(t,i){return n.push({event:t,handler:i}),t.subscribe(i),this};this.unsubscribe=function(t,i){for(var r=n.length;r--;)if(n[r].event===t&&n[r].handler===i){n.splice(r,1);t.unsubscribe(i);return}return this};this.unsubscribeAll=function(){for(var t=n.length;t--;)n[t].event.unsubscribe(n[t].handler);return n=[],this}}function s(n,t,i,r){i===undefined&&r===undefined&&(i=n,r=t);this.fromRow=Math.min(n,i);this.fromCell=Math.min(t,r);this.toRow=Math.max(n,i);this.toCell=Math.max(t,r);this.isSingleRow=function(){return this.fromRow==this.toRow};this.isSingleCell=function(){return this.fromRow==this.toRow&&this.fromCell==this.toCell};this.contains=function(n,t){return n>=this.fromRow&&n<=this.toRow&&t>=this.fromCell&&t<=this.toCell};this.toString=function(){return this.isSingleCell()?"("+this.fromRow+":"+this.fromCell+")":"("+this.fromRow+":"+this.fromCell+" - "+this.toRow+":"+this.toCell+")"}}function t(){this.__nonDataRow=!0}function i(){this.__group=!0;this.level=0;this.count=0;this.value=null;this.title=null;this.collapsed=!1;this.totals=null;this.rows=[];this.groups=null;this.groupingKey=null}function u(){this.__groupTotals=!0;this.group=null;this.initialized=!1}function f(){var n=null;this.isActive=function(t){return t?n===t:n!==null};this.activate=function(t){if(t!==n){if(n!==null)throw"SlickGrid.EditorLock.activate: an editController is still active, can't activate another editController";if(!t.commitCurrentEdit)throw"SlickGrid.EditorLock.activate: editController must implement .commitCurrentEdit()";if(!t.cancelCurrentEdit)throw"SlickGrid.EditorLock.activate: editController must implement .cancelCurrentEdit()";n=t}};this.deactivate=function(t){if(n!==t)throw"SlickGrid.EditorLock.deactivate: specified editController is not the currently active one";n=null};this.commitCurrentEdit=function(){return n?n.commitCurrentEdit():!0};this.cancelCurrentEdit=function(){return n?n.cancelCurrentEdit():!0}}n.extend(!0,window,{Slick:{Event:e,EventData:r,EventHandler:o,Range:s,NonDataRow:t,Group:i,GroupTotals:u,EditorLock:f,GlobalEditorLock:new f}});i.prototype=new t;i.prototype.equals=function(n){return this.value===n.value&&this.count===n.count&&this.collapsed===n.collapsed&&this.title===n.title};u.prototype=new t}(jQuery),typeof jQuery=="undefined")throw"SlickGrid requires jquery module to be loaded";if(!jQuery.fn.drag)throw"SlickGrid requires jquery.event.drag module to be loaded";if(typeof Slick=="undefined")throw"slick.core.js not loaded";if(function(n){function r(r,u,f,e){function rs(){var o,u;if(y=n(r),y.length<1)throw new Error("SlickGrid requires a valid container, "+r+" does not exist in the DOM.");for(i=i||cs(),t=t||ss(),e=n.extend({},is,e),le(),hu.width=e.defaultColumnWidth,fr={},o=0;o<f.length;o++)u=f[o]=n.extend({},hu,f[o]),fr[u.id]=o,u.minWidth&&u.width<u.minWidth&&(u.width=u.minWidth),u.maxWidth&&u.width>u.maxWidth&&(u.width=u.maxWidth);if(e.enableColumnReorder&&!n.fn.sortable)throw new Error("SlickGrid's 'enableColumnReorder = true' option requires jquery-ui.sortable module to be loaded");vr={commitCurrentEdit:vl,cancelCurrentEdit:yl};y.empty().css("overflow","hidden").css("outline",0).addClass(ft).addClass("ui-widget");/relative|absolute|fixed/.test(y.css("position"))||y.css("position","relative");ar=n("<div tabIndex='0' hideFocus style='position:fixed;width:0;height:0;top:0;left:0;outline:0;'><\/div>").appendTo(y);wi=n("<div class='slick-header ui-state-default' style='overflow:hidden;position:relative;' />").appendTo(y);w=n("<div class='slick-header-columns' style='left:-1000px' />").appendTo(wi);w.width(gu());yt=n("<div class='slick-headerrow ui-state-default' style='overflow:hidden;position:relative;' />").appendTo(y);ei=n("<div class='slick-headerrow-columns' />").appendTo(yt);yf=n("<div style='display:block;height:1px;position:absolute;top:0;left:0;'><\/div>").css("width",re()+t.width+"px").appendTo(yt);oi=n("<div class='slick-top-panel-scroller ui-state-default' style='overflow:hidden;position:relative;' />").appendTo(y);pf=n("<div class='slick-top-panel' style='width:10000px' />").appendTo(oi);e.showTopPanel||oi.hide();e.showHeaderRow||yt.hide();k=n("<div class='slick-viewport' style='width:100%;overflow:auto;outline:0;position:relative;;'>").appendTo(y);k.css("overflow-y",e.autoHeight?"hidden":"auto");nt=n("<div class='grid-canvas' />").appendTo(k);cu=ar.clone().appendTo(y);e.explicitInitialization||te()}function te(){vt||(vt=!0,et=parseFloat(n.css(y[0],"width",!0)),ks(),hs(w),e.enableTextSelectionOnCells||k.bind("selectstart.ui",function(t){return n(t.target).is("input,textarea")}),ff(),ue(),ws(),ee(),gt(),ls(),y.bind("resize.slickgrid",gt),k.bind("scroll",hr),wi.bind("contextmenu",pc).bind("click",wc).delegate(".slick-header-column","mouseenter",vc).delegate(".slick-header-column","mouseleave",yc),yt.bind("scroll",nc),ar.add(cu).bind("keydown",no),nt.bind("keydown",no).bind("click",cc).bind("dblclick",ac).bind("contextmenu",lc).bind("draginit",ec).bind("dragstart",{distance:3},oc).bind("drag",sc).bind("dragend",hc).delegate(".slick-cell","mouseenter",bc).delegate(".slick-cell","mouseleave",kc),navigator.userAgent.toLowerCase().match(/webkit/)&&navigator.userAgent.toLowerCase().match(/macintosh/)&&nt.bind("mousewheel",fc))}function us(n){ti.unshift(n);n.init(o)}function ie(n){for(var t=ti.length;t>=0;t--)if(ti[t]===n){ti[t].destroy&&ti[t].destroy();ti.splice(t,1);break}}function fs(n){ot&&(ot.onSelectedRangesChanged.unsubscribe(he),ot.destroy&&ot.destroy());ot=n;ot&&(ot.init(o),ot.onSelectedRangesChanged.subscribe(he))}function es(){return ot}function os(){return nt[0]}function ss(){var t=n("<div style='position:absolute; top:-10000px; left:-10000px; width:100px; height:100px; overflow:scroll;'><\/div>").appendTo("body"),i={width:t.width()-t[0].clientWidth,height:t.height()-t[0].clientHeight};return t.remove(),i}function gu(){for(var r,n=0,i=0,u=f.length;i<u;i++)r=f[i].width,n+=r;return n+=t.width,Math.max(n,et)+1e3}function re(){for(var r=di?et-t.width:et,n=0,i=f.length;i--;)n+=f[i].width;return e.fullWidthRows?Math.max(n,r):n}function nf(n){var i=pt;pt=re();pt!=i&&(nt.width(pt),ei.width(pt),w.width(gu()),vu=pt>et-t.width);yf.width(pt+(di?t.width:0));(pt!=i||n)&&uf()}function hs(n){n&&n.jquery&&n.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function cs(){for(var i=1e6,u=navigator.userAgent.toLowerCase().match(/firefox/)?6e6:1e9,r=n("<div style='display:none' />").appendTo(document.body),t;;)if(t=i*2,r.css("height",t),t>u||r.height()!==t)break;else i=t;return r.remove(),i}function ls(){for(var t=nt[0],i;(t=t.parentNode)!=document.body&&t!=null;)(t==k[0]||t.scrollWidth!=t.clientWidth||t.scrollHeight!=t.clientHeight)&&(i=n(t),si=si?si.add(i):i,i.bind("scroll."+ft,oo))}function as(){si&&(si.unbind("scroll."+ft),si=null)}function vs(n,t,i){var r,e,u;vt&&(r=kt(n),r!=null)&&(e=f[r],u=w.children().eq(r),u&&(t!==undefined&&(f[r].name=t),i!==undefined&&(f[r].toolTip=i),h(o.onBeforeHeaderCellDestroy,{node:u[0],column:e}),u.attr("title",i||"").children().eq(0).html(t),h(o.onHeaderCellRendered,{node:u[0],column:e})))}function ys(){return ei[0]}function ps(n){var i=kt(n),t=ei.children().eq(i);return t&&t[0]}function ue(){function s(){n(this).addClass("ui-state-hover")}function c(){n(this).removeClass("ui-state-hover")}var i,t,r,u;for(w.find(".slick-header-column").each(function(){var t=n(this).data("column");t&&h(o.onBeforeHeaderCellDestroy,{node:this,column:t})}),w.empty(),w.width(gu()),ei.find(".slick-headerrow-column").each(function(){var t=n(this).data("column");t&&h(o.onBeforeHeaderRowCellDestroy,{node:this,column:t})}),ei.empty(),i=0;i<f.length;i++){if(t=f[i],r=n("<div class='ui-state-default slick-header-column' />").html("<span class='slick-column-name'>"+t.name+"<\/span>").width(t.width-hi).attr("id",""+ft+t.id).attr("title",t.toolTip||"").data("column",t).addClass(t.headerCssClass||"").appendTo(w),e.enableColumnReorder||t.sortable)r.on("mouseenter",s).on("mouseleave",c);t.sortable&&(r.addClass("slick-header-sortable"),r.append("<span class='slick-sort-indicator' />"));h(o.onHeaderCellRendered,{node:r[0],column:t});e.showHeaderRow&&(u=n("<div class='ui-state-default slick-headerrow-column l"+i+" r"+i+"'><\/div>").data("column",t).appendTo(ei),h(o.onHeaderRowCellRendered,{node:u[0],column:t}))}kr(it);fe();e.enableColumnReorder&&bs()}function ws(){w.click(function(t){var s,r,i,u;if((t.metaKey=t.metaKey||t.ctrlKey,!n(t.target).hasClass("slick-resizable-handle"))&&(s=n(t.target).closest(".slick-header-column"),s.length)&&(r=s.data("column"),r.sortable)){if(!d().commitCurrentEdit())return;for(i=null,u=0;u<it.length;u++)if(it[u].columnId==r.id){i=it[u];i.sortAsc=!i.sortAsc;break}t.metaKey&&e.multiColumnSort?i&&it.splice(u,1):((t.shiftKey||t.metaKey)&&e.multiColumnSort||(it=[]),i?it.length==0&&it.push(i):(i={columnId:r.id,sortAsc:r.defaultSortAsc},it.push(i)));kr(it);e.multiColumnSort?h(o.onSort,{multiColumnSort:!0,sortCols:n.map(it,function(n){return{sortCol:f[kt(n.columnId)],sortAsc:n.sortAsc}})},t):h(o.onSort,{multiColumnSort:!1,sortCol:r,sortAsc:i.sortAsc},t)}})}function bs(){w.filter(":ui-sortable").sortable("destroy");w.sortable({containment:"parent",distance:3,axis:"x",cursor:"default",tolerance:"intersection",helper:"clone",placeholder:"slick-sortable-placeholder ui-state-default slick-header-column",start:function(t,i){i.placeholder.width(i.helper.outerWidth()-hi);n(i.helper).addClass("slick-header-column-active")},beforeStop:function(t,i){n(i.helper).removeClass("slick-header-column-active")},stop:function(t){var r,u,i;if(!d().commitCurrentEdit()){n(this).sortable("cancel");return}for(r=w.sortable("toArray"),u=[],i=0;i<r.length;i++)u.push(f[kt(r[i].replace(ft,""))]);ce(u);h(o.onColumnsReordered,{});t.stopPropagation();fe()}})}function fe(){var v,i,t,u,r,c,l,s,a;(r=w.children(),r.find(".slick-resizable-handle").remove(),r.each(function(n){f[n].resizable&&(s===undefined&&(s=n),a=n)}),s!==undefined)&&r.each(function(y,p){y<s||e.forceFitColumns&&y>=a||(v=n(p),n("<div class='slick-resizable-handle' />").appendTo(p).bind("dragstart",function(o){var a,s,v,h;if(!d().commitCurrentEdit())return!1;if(u=o.pageX,n(this).parent().addClass("slick-header-column-active"),a=null,s=null,r.each(function(t,i){f[t].previousWidth=n(i).outerWidth()}),e.forceFitColumns)for(a=0,s=0,i=y+1;i<r.length;i++)t=f[i],t.resizable&&(s!==null&&(t.maxWidth?s+=t.maxWidth-t.previousWidth:s=null),a+=t.previousWidth-Math.max(t.minWidth||0,ni));for(v=0,h=0,i=0;i<=y;i++)t=f[i],t.resizable&&(h!==null&&(t.maxWidth?h+=t.maxWidth-t.previousWidth:h=null),v+=t.previousWidth-Math.max(t.minWidth||0,ni));a===null&&(a=1e5);v===null&&(v=1e5);s===null&&(s=1e5);h===null&&(h=1e5);l=u+Math.min(a,h);c=u-Math.min(v,s)}).bind("drag",function(n){var s,h=Math.min(l,Math.max(c,n.pageX))-u,o;if(h<0){for(o=h,i=y;i>=0;i--)t=f[i],t.resizable&&(s=Math.max(t.minWidth||0,ni),o&&t.previousWidth+o<s?(o+=t.previousWidth-s,t.width=s):(t.width=t.previousWidth+o,o=0));if(e.forceFitColumns)for(o=-h,i=y+1;i<r.length;i++)t=f[i],t.resizable&&(o&&t.maxWidth&&t.maxWidth-t.previousWidth<o?(o-=t.maxWidth-t.previousWidth,t.width=t.maxWidth):(t.width=t.previousWidth+o,o=0))}else{for(o=h,i=y;i>=0;i--)t=f[i],t.resizable&&(o&&t.maxWidth&&t.maxWidth-t.previousWidth<o?(o-=t.maxWidth-t.previousWidth,t.width=t.maxWidth):(t.width=t.previousWidth+o,o=0));if(e.forceFitColumns)for(o=-h,i=y+1;i<r.length;i++)t=f[i],t.resizable&&(s=Math.max(t.minWidth||0,ni),o&&t.previousWidth+o<s?(o+=t.previousWidth-s,t.width=s):(t.width=t.previousWidth+o,o=0))}se();e.syncColumnCellResize&&uf()}).bind("dragend",function(){var u;for(n(this).parent().removeClass("slick-header-column-active"),i=0;i<r.length;i++)t=f[i],u=n(r[i]).outerWidth(),t.previousWidth!==u&&t.rerenderOnResize&&ci();nf(!0);ut();h(o.onColumnsResized,{})}))})}function tf(t){var i=0;return n.each(["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],function(n,r){i+=parseFloat(t.css(r))||0}),i}function ks(){var t,r=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],u=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],i;t=n("<div class='ui-state-default slick-header-column' style='visibility:hidden'>-<\/div>").appendTo(w);hi=wf=0;t.css("box-sizing")!="border-box"&&t.css("-moz-box-sizing")!="border-box"&&t.css("-webkit-box-sizing")!="border-box"&&(n.each(r,function(n,i){hi+=parseFloat(t.css(i))||0}),n.each(u,function(n,i){wf+=parseFloat(t.css(i))||0}));t.remove();i=n("<div class='slick-row' />").appendTo(nt);t=n("<div class='slick-cell' id='' style='visibility:hidden'>-<\/div>").appendTo(i);yu=pu=0;t.css("box-sizing")!="border-box"&&t.css("-moz-box-sizing")!="border-box"&&t.css("-webkit-box-sizing")!="border-box"&&(n.each(r,function(n,i){yu+=parseFloat(t.css(i))||0}),n.each(u,function(n,i){pu+=parseFloat(t.css(i))||0}));i.remove();ni=Math.max(hi,yu)}function ee(){var r,t,i;for(bi=n("<style type='text/css' rel='stylesheet' />").appendTo(n("head")),r=e.rowHeight-pu,t=["."+ft+" .slick-header-column { left: 1000px; }","."+ft+" .slick-top-panel { height:"+e.topPanelHeight+"px; }","."+ft+" .slick-headerrow-columns { height:"+e.headerRowHeight+"px; }","."+ft+" .slick-cell { height:"+r+"px; }","."+ft+" .slick-row { height:"+e.rowHeight+"px; }"],i=0;i<f.length;i++)t.push("."+ft+" .l"+i+" { }"),t.push("."+ft+" .r"+i+" { }");bi[0].styleSheet?bi[0].styleSheet.cssText=t.join(" "):bi[0].appendChild(document.createTextNode(t.join(" ")))}function ds(n){var r,u,i,f,t,e;if(!ki){for(r=document.styleSheets,t=0;t<r.length;t++)if((r[t].ownerNode||r[t].owningElement)==bi[0]){ki=r[t];break}if(!ki)throw new Error("Cannot find stylesheet.");for(lu=[],au=[],u=ki.cssRules||ki.rules,t=0;t<u.length;t++)e=u[t].selectorText,(i=/\.l\d+/.exec(e))?(f=parseInt(i[0].substr(2,i[0].length-2),10),lu[f]=u[t]):(i=/\.r\d+/.exec(e))&&(f=parseInt(i[0].substr(2,i[0].length-2),10),au[f]=u[t])}return{left:lu[n],right:au[n]}}function oe(){bi.remove();ki=null}function gs(){d().cancelCurrentEdit();h(o.onBeforeDestroy,{});for(var n=ti.length;n--;)ie(ti[n]);e.enableColumnReorder&&w.filter(":ui-sortable").sortable("destroy");as();y.unbind(".slickgrid");oe();nt.unbind("draginit dragstart dragend drag");y.empty().removeClass(ft)}function h(n,t,i){return i=i||new Slick.EventData,t=t||{},t.grid=o,n.notify(t,i,o)}function d(){return e.editorLock}function nh(){return vr}function kt(n){return fr[n]}function rf(){for(var r,u=[],l=0,i=0,e,o=di?et-t.width:et,p,h,a,s,w,c,v,y,n=0;n<f.length;n++)r=f[n],u.push(r.width),i+=r.width,r.resizable&&(l+=r.width-Math.max(r.minWidth,ni));for(e=i;i>o&&l;){for(p=(i-o)/l,n=0;n<f.length&&i>o;n++)(r=f[n],h=u[n],!r.resizable||h<=r.minWidth||h<=ni)||(a=Math.max(r.minWidth,ni),s=Math.floor(p*(h-a))||1,s=Math.min(s,h-a),i-=s,l-=s,u[n]-=s);if(e<=i)break;e=i}for(e=i;i<o;){for(w=o/i,n=0;n<f.length&&i<o;n++)r=f[n],c=u[n],v=!r.resizable||r.maxWidth<=c?0:Math.min(Math.floor(w*c)-c,r.maxWidth-c||1e6)||1,i+=v,u[n]+=v;if(e>=i)break;e=i}for(y=!1,n=0;n<f.length;n++)f[n].rerenderOnResize&&f[n].width!=u[n]&&(y=!0),f[n].width=u[n];se();nf(!0);y&&(ci(),ut())}function se(){var i;if(vt){for(var t=0,r=w.children(),u=r.length;t<u;t++)i=n(r[t]),i.width()!==f[t].width-hi&&i.width(f[t].width-hi);ff()}}function uf(){for(var t=0,r,i,n=0;n<f.length;n++)r=f[n].width,i=ds(n),i.left.style.left=t+"px",i.right.style.right=pt-t-r+"px",t+=f[n].width}function th(n,t){kr([{columnId:n,sortAsc:t}])}function kr(t){it=t;var i=w.children();i.removeClass("slick-header-column-sorted").find(".slick-sort-indicator").removeClass("slick-sort-indicator-asc slick-sort-indicator-desc");n.each(it,function(n,t){t.sortAsc==null&&(t.sortAsc=!0);var r=kt(t.columnId);r!=null&&i.eq(r).addClass("slick-header-column-sorted").find(".slick-sort-indicator").addClass(t.sortAsc?"slick-sort-indicator-asc":"slick-sort-indicator-desc")})}function ih(){return it}function he(n,t){var u,r,i,s;for(bu=[],u={},r=0;r<t.length;r++)for(i=t[r].fromRow;i<=t[r].toRow;i++)for(u[i]||(bu.push(i),u[i]={}),s=t[r].fromCell;s<=t[r].toCell;s++)go(i,s)&&(u[i][f[s].id]=e.selectedCellCssClass);ge(e.selectedCellCssClass,u);h(o.onSelectedRowsChanged,{rows:ts()},n)}function rh(){return f}function ff(){var t,n,i;for(tr=[],ir=[],t=0,n=0,i=f.length;n<i;n++)tr[n]=t,ir[n]=t+f[n].width,t+=f[n].width}function ce(t){var r,i;for(f=t,fr={},r=0;r<f.length;r++)i=f[r]=n.extend({},hu,f[r]),fr[i.id]=r,i.minWidth&&i.width<i.minWidth&&(i.width=i.minWidth),i.maxWidth&&i.width>i.maxWidth&&(i.width=i.maxWidth);ff();vt&&(ci(),ue(),oe(),ee(),gt(),uf(),hr())}function uh(){return e}function fh(t){d().commitCurrentEdit()&&(bt(),e.enableAddRow!==t.enableAddRow&&we(rt()),e=n.extend(e,t),le(),k.css("overflow-y",e.autoHeight?"hidden":"auto"),ut())}function le(){e.autoHeight&&(e.leaveSpaceForNewRows=!1)}function eh(n,t){u=n;ci();iu();t&&ri(0)}function oh(){return u}function rt(){return u.getLength?u.getLength():u.length}function dt(){return rt()+(e.enableAddRow?1:0)}function wt(n){return u.getItem?u.getItem(n):u[n]}function sh(){return pf[0]}function hh(n){e.showTopPanel!=n&&(e.showTopPanel=n,n?oi.slideDown("fast",gt):oi.slideUp("fast",gt))}function ch(n){e.showHeaderRow!=n&&(e.showHeaderRow=n,n?yt.slideDown("fast",gt):yt.slideUp("fast",gt))}function lh(){return y.get(0)}function ef(n){return e.rowHeight*n-g}function dr(n){return Math.floor((n+g)/e.rowHeight)}function ri(n){var r,i,u;n=Math.max(n,0);n=Math.min(n,lt-b+(vu?t.height:0));r=g;ui=Math.min(pi-1,Math.floor(n/yi));g=Math.round(ui*lr);i=n-g;g!=r&&(u=ru(i),ye(u),gh());nr!=i&&(fi=nr+r<i+g?1:-1,k[0].scrollTop=pr=p=nr=i,h(o.onViewportChanged,{}))}function ah(n,t,i){return i==null?"":(i+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function gr(n,t){var i=u.getItemMetadata&&u.getItemMetadata(n),r=i&&i.columns&&(i.columns[t.id]||i.columns[kt(t.id)]);return r&&r.formatter||i&&i.formatter||t.formatter||e.formatterFactory&&e.formatterFactory.getFormatter(t)||e.defaultFormatter}function ae(n,t){var r=f[t],o=u.getItemMetadata&&u.getItemMetadata(n),i=o&&o.columns;return i&&i[r.id]&&i[r.id].editor!==undefined?i[r.id].editor:i&&i[t]&&i[t].editor!==undefined?i[t].editor:r.editor||e.editorFactory&&e.editorFactory.getEditor(r)}function nu(n,t){return e.dataItemColumnValueExtractor?e.dataItemColumnValueExtractor(n,t):n[t.field]}function vh(n,t,i,r){var a=wt(t),w=t<r&&!a,v="slick-row"+(w?" loading":"")+(t===s?" active":"")+(t%2==1?" odd":" even"),h,c,p,o,l,y;for(a||(v+=" "+e.addNewRowCssClass),h=u.getItemMetadata&&u.getItemMetadata(t),h&&h.cssClasses&&(v+=" "+h.cssClasses),n.push("<div class='ui-widget-content "+v+"' style='top:"+ef(t)+"px'>"),o=0,l=f.length;o<l;o++){if(p=f[o],c=1,h&&h.columns&&(y=h.columns[p.id]||h.columns[o],c=y&&y.colspan||1,c==="*"&&(c=l-o)),ir[Math.min(l-1,o+c-1)]>i.leftPx){if(tr[o]>i.rightPx)break;ve(n,t,o,c,a)}c>1&&(o+=c-1)}n.push("<\/div>")}function ve(n,t,i,r,u){var e=f[i],h="slick-cell l"+i+" r"+Math.min(f.length-1,i+r-1)+(e.cssClass?" "+e.cssClass:""),o,c;t===s&&i===v&&(h+=" active");for(o in st)st[o][t]&&st[o][t][e.id]&&(h+=" "+st[o][t][e.id]);n.push("<div class='"+h+"'>");u&&(c=nu(u,e),n.push(gr(t,e)(t,i,c,e,u)));n.push("<\/div>");a[t].cellRenderQueue.push(i);a[t].cellColSpans[i]=r}function ye(n){for(var t in a)(t=parseInt(t,10))!==s&&(t<n.top||t>n.bottom)&&tu(t)}function yh(){iu();ci();ut()}function ci(){c&&bt();for(var n in a)tu(n)}function tu(n){var t=a[n];t&&(br==t.rowNode?(t.rowNode.style.display="none",sr=br):nt[0].removeChild(t.rowNode),delete a[n],delete ii[n],wu--,ne++)}function pe(n){var t,i;if(n&&n.length)for(fi=0,t=0,i=n.length;t<i;t++)c&&s===n[t]&&bt(),a[n[t]]&&tu(n[t])}function we(n){pe([n])}function ph(n,t){var u=ht(n,t),r,i;u&&(r=f[t],i=wt(n),c&&s===n&&v===t?c.loadValue(i):(u.innerHTML=i?gr(n,r)(n,t,nu(i,r),r,i):"",sf(n)))}function of(n){var r=a[n],i,t,u,e;if(r){uu(n);i=wt(n);for(t in r.cellNodesByColumnIdx)r.cellNodesByColumnIdx.hasOwnProperty(t)&&(t=t|0,u=f[t],e=r.cellNodesByColumnIdx[t],n===s&&t===v&&c?c.loadValue(i):e.innerHTML=i?gr(n,u)(n,t,nu(i,u),u,i):"");sf(n)}}function wh(){return parseFloat(n.css(y[0],"height",!0))-parseFloat(n.css(y[0],"paddingTop",!0))-parseFloat(n.css(y[0],"paddingBottom",!0))-parseFloat(n.css(wi[0],"height"))-tf(wi)-(e.showTopPanel?e.topPanelHeight+tf(oi):0)-(e.showHeaderRow?e.headerRowHeight+tf(yt):0)}function gt(){vt&&(b=e.autoHeight?e.rowHeight*dt():wh(),yr=Math.ceil(b/e.rowHeight),et=parseFloat(n.css(y[0],"width",!0)),e.autoHeight||k.height(b),e.forceFitColumns&&rf(),iu(),hr(),ur=-1,ut())}function iu(){var n,r,u,h;if(vt){var f=dt(),o=f+(e.leaveSpaceForNewRows?yr-1:0),c=di;di=!e.autoHeight&&o*e.rowHeight>b;bt();n=f-1;for(r in a)r>=n&&tu(r);l&&s>n&&lf();u=at;lt=Math.max(e.rowHeight*o,b-t.height);lt<i?(at=yi=lt,pi=1,lr=0):(at=i,yi=at/100,pi=Math.floor(lt/yi),lr=(lt-at)/(pi-1));at!==u&&(nt.css("height",at),p=k[0].scrollTop);h=p+g<=lt-b;lt==0||p==0?ui=g=0:h?ri(p+g):ri(lt-b);at!=u&&e.autoHeight&&gt();e.forceFitColumns&&c!=di&&rf();nf(!1)}}function ru(n,t){return n==null&&(n=p),t==null&&(t=tt),{top:dr(n),bottom:dr(n+b)+1,leftPx:t,rightPx:t+et}}function be(n,t){var i=ru(n,t),u=Math.round(b/e.rowHeight),r=3;return fi==-1?(i.top-=u,i.bottom+=r):fi==1?(i.top-=r,i.bottom+=u):(i.top-=r,i.bottom+=r),i.top=Math.max(0,i.top),i.bottom=Math.min(dt()-1,i.bottom),i.leftPx-=et,i.rightPx+=et,i.leftPx=Math.max(0,i.leftPx),i.rightPx=Math.min(pt,i.rightPx),i}function uu(n){var t=a[n],i,r;if(t&&t.cellRenderQueue.length)for(i=t.rowNode.lastChild;t.cellRenderQueue.length;)r=t.cellRenderQueue.pop(),t.cellNodesByColumnIdx[r]=i,i=i.previousSibling}function bh(n,t){var h=0,r=a[t],e=[],i,o,u;for(i in r.cellNodesByColumnIdx)r.cellNodesByColumnIdx.hasOwnProperty(i)&&(i=i|0,o=r.cellColSpans[i],(tr[i]>n.rightPx||ir[Math.min(f.length-1,i+o-1)]<n.leftPx)&&(t==s&&i==v||e.push(i)));while((u=e.pop())!=null)r.rowNode.removeChild(r.cellNodesByColumnIdx[u]),delete r.cellColSpans[u],delete r.cellNodesByColumnIdx[u],ii[t]&&delete ii[t][u],h++}function kh(n){for(var o,w,t,h,l,v,b,y,k,e,c=[],p=[],s,d=0,i,r=n.top,g=n.bottom;r<=g;r++)if(e=a[r],e){for(uu(r),bh(n,r),s=0,o=u.getItemMetadata&&u.getItemMetadata(r),o=o&&o.columns,w=wt(r),t=0,h=f.length;t<h;t++){if(tr[t]>n.rightPx)break;if((i=e.cellColSpans[t])!=null){t+=i>1?i-1:0;continue}i=1;o&&(l=o[f[t].id]||o[t],i=l&&l.colspan||1,i==="*"&&(i=h-t));ir[Math.min(h-1,t+i-1)]>n.leftPx&&(ve(c,r,t,i,w),s++);t+=i>1?i-1:0}s&&(d+=s,p.push(r))}if(c.length)for(v=document.createElement("div"),v.innerHTML=c.join("");(b=p.pop())!=null;)for(e=a[b];(k=e.cellRenderQueue.pop())!=null;)y=v.lastChild,e.rowNode.appendChild(y),e.cellNodesByColumnIdx[k]=y}function dh(n){for(var u,o=nt[0],f=[],i=[],e=!1,h=rt(),t=n.top,r=n.bottom;t<=r;t++)a[t]||(wu++,i.push(t),a[t]={rowNode:null,cellColSpans:[],cellNodesByColumnIdx:[],cellRenderQueue:[]},vh(f,t,n,h),l&&s===t&&(e=!0),gf++);if(i.length){for(u=document.createElement("div"),u.innerHTML=f.join(""),t=0,r=i.length;t<r;t++)a[i[t]].rowNode=o.appendChild(u.firstChild);e&&(l=ht(s,v))}}function ke(){e.enableAsyncPostRender&&(clearTimeout(du),du=setTimeout(de,e.asyncPostRenderDelay))}function sf(n){delete ii[n];or=Math.min(or,n);er=Math.max(er,n);ke()}function gh(){for(var n in a)a[n].rowNode.style.top=ef(n)+"px"}function ut(){if(vt){var t=ru(),n=be();ye(n);ur!=tt&&kh(n);dh(n);or=t.top;er=Math.min(dt()-1,t.bottom);ke();pr=p;ur=tt;wr=null}}function nc(){var n=yt[0].scrollLeft;n!=k[0].scrollLeft&&(k[0].scrollLeft=n)}function hr(){var n,t,i;p=k[0].scrollTop;tt=k[0].scrollLeft;n=Math.abs(p-nr);t=Math.abs(tt-df);t&&(df=tt,wi[0].scrollLeft=tt,oi[0].scrollLeft=tt,yt[0].scrollLeft=tt);n&&(fi=nr<p?1:-1,nr=p,n<b?ri(p+g):(i=g,ui=at==b?0:Math.min(pi-1,Math.floor(p*((lt-b)/(at-b))*(1/yi))),g=Math.round(ui*lr),i!=g&&ci()));(t||n)&&(wr&&clearTimeout(wr),(Math.abs(pr-p)>20||Math.abs(ur-tt)>20)&&(e.forceSyncScrolling||Math.abs(pr-p)<b&&Math.abs(ur-tt)<et?ut():wr=setTimeout(ut,50),h(o.onViewportChanged,{})));h(o.onScroll,{scrollLeft:tt,scrollTop:p})}function de(){for(var o=rt(),n,i,t,r,u;or<=er;)if(n=fi>=0?or++:er--,i=a[n],i&&!(n>=o)){ii[n]||(ii[n]={});uu(n);for(t in i.cellNodesByColumnIdx)i.cellNodesByColumnIdx.hasOwnProperty(t)&&(t=t|0,r=f[t],r.asyncPostRender&&!ii[n][t]&&(u=i.cellNodesByColumnIdx[t],u&&r.asyncPostRender(u,n,wt(n),r),ii[n][t]=!0));du=setTimeout(de,e.asyncPostRenderDelay);return}}function hf(t,i){var e,r,u,f;for(var o in a){if(f=i&&i[o],u=t&&t[o],f)for(r in f)u&&f[r]==u[r]||(e=ht(o,kt(r)),e&&n(e).removeClass(f[r]));if(u)for(r in u)f&&f[r]==u[r]||(e=ht(o,kt(r)),e&&n(e).addClass(u[r]))}}function tc(n,t){if(st[n])throw"addCellCssStyles: cell CSS hash with key '"+n+"' already exists.";st[n]=t;hf(t,null);h(o.onCellCssStylesChanged,{key:n,hash:t})}function ic(n){st[n]&&(hf(null,st[n]),delete st[n],h(o.onCellCssStylesChanged,{key:n,hash:null}))}function ge(n,t){var i=st[n];st[n]=t;hf(t,i);h(o.onCellCssStylesChanged,{key:n,hash:t})}function rc(n){return st[n]}function uc(t,i,r){if(r=r||100,a[t]){var u=n(ht(t,i));function f(n){n&&setTimeout(function(){u.queue(function(){u.toggleClass(e.cellFlashingCssClass).dequeue();f(n-1)})},r)}f(4)}}function fc(t){var i=n(t.target).closest(".slick-row")[0];i!=br&&(sr&&sr!=i&&(nt[0].removeChild(sr),sr=null),br=i)}function ec(n,t){var i=cr(n),r;return!i||!cf(i.row,i.cell)?!1:(r=h(o.onDragInit,t,n),n.isImmediatePropagationStopped())?r:!1}function oc(n,t){var i=cr(n),r;return!i||!cf(i.row,i.cell)?!1:(r=h(o.onDragStart,t,n),n.isImmediatePropagationStopped())?r:!1}function sc(n,t){return h(o.onDrag,t,n)}function hc(n,t){h(o.onDragEnd,t,n)}function no(n){h(o.onKeyDown,{row:s,cell:v},n);var t=n.isImmediatePropagationStopped();if(!t)if(n.shiftKey||n.altKey||n.ctrlKey)n.which!=9||!n.shiftKey||n.ctrlKey||n.altKey||(t=ko());else if(n.which==27){if(!d().isActive())return;fo()}else n.which==34?(co(),t=!0):n.which==33?(lo(),t=!0):n.which==37?t=po():n.which==39?t=yo():n.which==38?t=wo():n.which==40?t=su():n.which==9?t=bo():n.which==13&&(e.editable&&(c?s===rt()?su():uo():d().commitCurrentEdit()&&eu()),t=!0);if(t){n.stopPropagation();n.preventDefault();try{n.originalEvent.keyCode=0}catch(i){}}}function cc(t){var r,i;(c||(t.target!=document.activeElement||n(t.target).hasClass("slick-cell"))&&(r=nl(),li(),e.enableTextSelectionOnCells&&tl(r)),i=cr(t),i&&(c===null||s!=i.row||v!=i.cell))&&((h(o.onClick,{row:i.row,cell:i.cell},t),t.isImmediatePropagationStopped())||(v!=i.cell||s!=i.row)&&ct(i.row,i.cell)&&(!d().isActive()||d().commitCurrentEdit())&&(af(i.row,!1),ai(ht(i.row,i.cell))))}function lc(t){var i=n(t.target).closest(".slick-cell",nt);i.length!==0&&(l!==i[0]||c===null)&&h(o.onContextMenu,{},t)}function ac(n){var t=cr(n);t&&(c===null||s!=t.row||v!=t.cell)&&((h(o.onDblClick,{row:t.row,cell:t.cell},n),n.isImmediatePropagationStopped())||e.editable&&ns(t.row,t.cell,!0))}function vc(t){h(o.onHeaderMouseEnter,{column:n(this).data("column")},t)}function yc(t){h(o.onHeaderMouseLeave,{column:n(this).data("column")},t)}function pc(t){var i=n(t.target).closest(".slick-header-column",".slick-header-columns"),r=i&&i.data("column");h(o.onHeaderContextMenu,{column:r},t)}function wc(t){var i=n(t.target).closest(".slick-header-column",".slick-header-columns"),r=i&&i.data("column");r&&h(o.onHeaderClick,{column:r},t)}function bc(n){h(o.onMouseEnter,{},n)}function kc(n){h(o.onMouseLeave,{},n)}function cf(n,t){return!(n<0||n>=rt()||t<0||t>=f.length)}function dc(n,t){for(var e=dr(t),i=0,u=0,r=0;r<f.length&&u<n;r++)u+=f[r].width,i++;return i<0&&(i=0),{row:e,cell:i-1}}function to(n){var t=/l\d+/.exec(n.className);if(!t)throw"getCellFromNode: cannot get cell - "+n.className;return parseInt(t[0].substr(1,t[0].length-1),10)}function io(n){for(var t in a)if(a[t].rowNode===n)return t|0;return null}function cr(t){var i=n(t.target).closest(".slick-cell",nt),r,u;return i.length?(r=io(i[0].parentNode),u=to(i[0]),r==null||u==null?null:{row:r,cell:u}):null}function gc(n,t){var i,o;if(!cf(n,t))return null;var u=ef(n),s=u+e.rowHeight-1,r=0;for(i=0;i<t;i++)r+=f[i].width;return o=r+f[t].width,{top:u,left:r,bottom:s,right:o}}function lf(){ai(null,!1)}function li(){bf==-1?ar[0].focus():cu[0].focus()}function nl(){var n=null;return window.getSelection&&window.getSelection().rangeCount>0&&(n=window.getSelection().getRangeAt(0)),n}function tl(n){if(window.getSelection&&n){var t=window.getSelection();t.removeAllRanges();t.addRange(n)}}function fu(n,t,i){af(n,i);var u=vi(n,t),r=tr[t],f=ir[t+(u>1?u-1:0)],e=tt+et;r<tt?(k.scrollLeft(r),hr(),ut()):f>e&&(k.scrollLeft(Math.min(r,f-k[0].clientWidth)),hr(),ut())}function ai(t,i){l!==null&&(bt(),n(l).removeClass("active"),a[s]&&n(a[s].rowNode).removeClass("active"));var r=l!==t;l=t;l!=null?(s=io(l.parentNode),v=gi=to(l),i==null&&(i=s==rt()||e.autoEdit),n(l).addClass("active"),n(a[s].rowNode).addClass("active"),e.editable&&i&&ro(s,v)&&(clearTimeout(ku),e.asyncEditorLoading?ku=setTimeout(function(){eu()},e.asyncEditorLoadDelay):eu())):s=v=null;r&&h(o.onActiveCellChanged,so())}function il(){if(document.selection&&document.selection.empty)try{document.selection.empty()}catch(t){}else if(window.getSelection){var n=window.getSelection();n&&n.removeAllRanges&&n.removeAllRanges()}}function ro(n,t){var i=rt();return n<i&&!wt(n)?!1:f[t].cannotTriggerInsert&&n>=i?!1:ae(n,t)?!0:!1}function bt(){var t,i,r;c&&(h(o.onBeforeCellEditorDestroy,{editor:c}),c.destroy(),c=null,l&&(t=wt(s),n(l).removeClass("editable invalid"),t&&(i=f[v],r=gr(s,i),l.innerHTML=r(s,v,nu(t,i),i,t),sf(s))),navigator.userAgent.toLowerCase().match(/msie/)&&il(),d().deactivate(vr))}function eu(t){if(l){if(!e.editable)throw"Grid : makeActiveCellEditable : should never get called when options.editable is false";if(clearTimeout(ku),ro(s,v)){var r=f[v],i=wt(s);if(h(o.onBeforeEditCell,{row:s,cell:v,item:i,column:r})===!1){li();return}d().activate(vr);n(l).addClass("editable");t||(l.innerHTML="");c=new(t||ae(s,v))({grid:o,gridPosition:ou(y[0]),position:ou(l),container:l,column:r,item:i||{},commitChanges:uo,cancelChanges:fo});i&&c.loadValue(i);kf=c.serializeValue();c.position&&oo()}}}function uo(){d().commitCurrentEdit()&&(li(),e.autoEdit&&su())}function fo(){d().cancelCurrentEdit()&&li()}function ou(t){var i={top:t.offsetTop,left:t.offsetLeft,bottom:0,right:0,width:n(t).outerWidth(),height:n(t).outerHeight(),visible:!0},r;for(i.bottom=i.top+i.height,i.right=i.left+i.width,r=t.offsetParent;(t=t.parentNode)!=document.body;)i.visible&&t.scrollHeight!=t.offsetHeight&&n(t).css("overflowY")!="visible"&&(i.visible=i.bottom>t.scrollTop&&i.top<t.scrollTop+t.clientHeight),i.visible&&t.scrollWidth!=t.offsetWidth&&n(t).css("overflowX")!="visible"&&(i.visible=i.right>t.scrollLeft&&i.left<t.scrollLeft+t.clientWidth),i.left-=t.scrollLeft,i.top-=t.scrollTop,t===r&&(i.left+=t.offsetLeft,i.top+=t.offsetTop,r=t.offsetParent),i.bottom=i.top+i.height,i.right=i.left+i.width;return i}function eo(){return ou(l)}function rl(){return ou(y[0])}function oo(){if(l&&(h(o.onActiveCellPositionChanged,{}),c)){var n=eo();c.show&&c.hide&&(n.visible?c.show():c.hide());c.position&&c.position(n)}}function ul(){return c}function so(){return l?{row:s,cell:v}:null}function fl(){return l}function af(n,i){var r=n*e.rowHeight,u=(n+1)*e.rowHeight-b+(vu?t.height:0);(n+1)*e.rowHeight>p+b+g?(ri(i?r:u),ut()):n*e.rowHeight<p+g&&(ri(i?u:r),ut())}function el(n){ri(n*e.rowHeight);ut()}function ho(n){var f=n*yr,t,r;if(ri((dr(p)+f)*e.rowHeight),ut(),e.enableCellNavigation&&s!=null){t=s+f;r=dt();t>=r&&(t=r-1);t<0&&(t=0);for(var i=0,u=null,o=gi;i<=gi;)ct(t,i)&&(u=i),i+=vi(t,i);u!==null?(ai(ht(t,u)),gi=o):lf()}}function co(){ho(1)}function lo(){ho(-1)}function vi(n,t){var i=u.getItemMetadata&&u.getItemMetadata(n),r,e;return!i||!i.columns?1:(r=i.columns[f[t].id]||i.columns[t],e=r&&r.colspan,e==="*"?f.length-t:e||1)}function ao(n){for(var t=0;t<f.length;){if(ct(n,t))return t;t+=vi(n,t)}return null}function ol(n){for(var t=0,i=null;t<f.length;)ct(n,t)&&(i=t),t+=vi(n,t);return i}function vf(n,t){if(t>=f.length)return null;do t+=vi(n,t);while(t<f.length&&!ct(n,t));return t<f.length?{row:n,cell:t,posX:t}:null}function vo(n,t){var r,i,u;if(t<=0||(r=ao(n),r===null||r>=t))return null;for(i={row:n,cell:r,posX:r};;){if(u=vf(i.row,i.cell,i.posX),!u)return null;if(u.cell>=t)return i;i=u}}function sl(n,t,i){for(var r,u=dt();;){if(++n>=u)return null;for(r=t=0;t<=i;)r=t,t+=vi(n,t);if(ct(n,r))return{row:n,cell:r,posX:i}}}function hl(n,t,i){for(var r;;){if(--n<0)return null;for(r=t=0;t<=i;)r=t,t+=vi(n,t);if(ct(n,r))return{row:n,cell:r,posX:i}}}function cl(n,t,i){var u,r,f;if(n==null&&t==null&&(n=t=i=0,ct(n,t)))return{row:n,cell:t,posX:t};if(u=vf(n,t,i),u)return u;for(r=null,f=dt();++n<f;)if(r=ao(n),r!==null)return{row:n,cell:r,posX:r};return null}function ll(n,t,i){if(n==null&&t==null&&(n=dt()-1,t=i=f.length-1,ct(n,t)))return{row:n,cell:t,posX:t};for(var r,u;!r;){if(r=vo(n,t,i),r)break;if(--n<0)return null;t=0;u=ol(n);u!==null&&(r={row:n,cell:u,posX:u})}return r}function yo(){return rr("right")}function po(){return rr("left")}function su(){return rr("down")}function wo(){return rr("up")}function bo(){return rr("next")}function ko(){return rr("prev")}function rr(n){var i,r;if(!e.enableCellNavigation||!l&&n!="prev"&&n!="next")return!1;if(!d().commitCurrentEdit())return!0;li();i={up:-1,down:1,left:-1,right:1,prev:-1,next:1};bf=i[n];var u={up:hl,down:sl,left:vo,right:vf,prev:ll,next:cl},f=u[n],t=f(s,v,gi);return t?(r=t.row==rt(),fu(t.row,t.cell,!r),ai(ht(t.row,t.cell)),gi=t.posX,!0):(ai(ht(s,v)),!1)}function ht(n,t){return a[n]?(uu(n),a[n].cellNodesByColumnIdx[t]):null}function al(n,t){vt&&(n>rt()||n<0||t>=f.length||t<0||e.enableCellNavigation&&(fu(n,t,!1),ai(ht(n,t),!1)))}function ct(n,t){var r,i;return!e.enableCellNavigation||n>=dt()||n<0||t>=f.length||t<0?!1:(r=u.getItemMetadata&&u.getItemMetadata(n),r&&typeof r.focusable=="boolean")?r.focusable:(i=r&&r.columns,i&&i[f[t].id]&&typeof i[f[t].id].focusable=="boolean")?i[f[t].id].focusable:i&&i[t]&&typeof i[t].focusable=="boolean"?i[t].focusable:f[t].focusable}function go(n,t){var i,r;return n>=rt()||n<0||t>=f.length||t<0?!1:(i=u.getItemMetadata&&u.getItemMetadata(n),i&&typeof i.selectable=="boolean")?i.selectable:(r=i&&i.columns&&(i.columns[f[t].id]||i.columns[t]),r&&typeof r.selectable=="boolean")?r.selectable:f[t].selectable}function ns(n,t,i){if(vt&&ct(n,t)&&d().commitCurrentEdit()){fu(n,t,!1);var r=ht(n,t);ai(r,i||n===rt()||e.autoEdit);c||li()}}function vl(){var t=wt(s),i=f[v],r,u,a;if(c){if(c.isValueChanged())return r=c.validate(),r.valid?(s<rt()?(u={row:s,cell:v,editor:c,serializedValue:c.serializeValue(),prevSerializedValue:kf,execute:function(){this.editor.applyValue(t,this.serializedValue);of(this.row);h(o.onCellChange,{row:s,cell:v,item:t})},undo:function(){this.editor.applyValue(t,this.prevSerializedValue);of(this.row);h(o.onCellChange,{row:s,cell:v,item:t})}},e.editCommandHandler?(bt(),e.editCommandHandler(t,i,u)):(u.execute(),bt())):(a={},c.applyValue(a,c.serializeValue()),bt(),h(o.onAddNewRow,{item:a,column:i})),!d().isActive()):(n(l).removeClass("invalid"),n(l).width(),n(l).addClass("invalid"),h(o.onValidationError,{editor:c,cellNode:l,validationResults:r,row:s,cell:v,column:i}),c.focus(),!1);bt()}return!0}function yl(){return bt(),!0}function pl(n){for(var i=[],r=f.length-1,t=0;t<n.length;t++)i.push(new Slick.Range(n[t],0,n[t],r));return i}function ts(){if(!ot)throw"Selection model is not set";return bu}function wl(n){if(!ot)throw"Selection model is not set";ot.setSelectedRanges(pl(n))}var is={explicitInitialization:!1,rowHeight:25,defaultColumnWidth:80,enableAddRow:!1,leaveSpaceForNewRows:!1,editable:!1,autoEdit:!0,enableCellNavigation:!0,enableColumnReorder:!0,asyncEditorLoading:!1,asyncEditorLoadDelay:100,forceFitColumns:!1,enableAsyncPostRender:!1,asyncPostRenderDelay:50,autoHeight:!1,editorLock:Slick.GlobalEditorLock,showHeaderRow:!1,headerRowHeight:25,showTopPanel:!1,topPanelHeight:25,formatterFactory:null,editorFactory:null,cellFlashingCssClass:"flashing",selectedCellCssClass:"selected",multiSelect:!0,enableTextSelectionOnCells:!1,dataItemColumnValueExtractor:null,fullWidthRows:!1,multiColumnSort:!1,defaultFormatter:ah,forceSyncScrolling:!1,addNewRowCssClass:"new-row"},hu={name:"",resizable:!0,sortable:!1,minWidth:30,rerenderOnResize:!1,headerCssClass:null,defaultSortAsc:!0,focusable:!0,selectable:!0},lt,at,yi,pi,lr,ui=0,g=0,fi=1,vt=!1,y,ft="slickgrid_"+Math.round(1e6*Math.random()),o=this,ar,cu,wi,w,ei,yt,yf,oi,pf,k,nt,bi,si,ki,lu,au,b,et,pt,vu,di,hi=0,wf=0,yu=0,pu=0,ni,bf=1,gi,s,v,l=null,c=null,kf,vr,a={},wu=0,yr,nr=0,p=0,pr=0,ur=0,df=0,tt=0,ot,bu=[],ti=[],st={},fr={},it=[],tr=[],ir=[],ku=null,wr=null,du=null,ii={},er=null,or=null,gf=0,ne=0,br,sr;this.debug=function(){var n="";n+="\ncounter_rows_rendered:  "+gf;n+="\ncounter_rows_removed:  "+ne;n+="\nrenderedRows:  "+wu;n+="\nnumVisibleRows:  "+yr;n+="\nmaxSupportedCssHeight:  "+i;n+="\nn(umber of pages):  "+pi;n+="\n(current) page:  "+ui;n+="\npage height (ph):  "+yi;n+="\nvScrollDir:  "+fi;alert(n)};this.eval=function(expr){return eval(expr)};n.extend(this,{slickGridVersion:"2.1",onScroll:new Slick.Event,onSort:new Slick.Event,onHeaderMouseEnter:new Slick.Event,onHeaderMouseLeave:new Slick.Event,onHeaderContextMenu:new Slick.Event,onHeaderClick:new Slick.Event,onHeaderCellRendered:new Slick.Event,onBeforeHeaderCellDestroy:new Slick.Event,onHeaderRowCellRendered:new Slick.Event,onBeforeHeaderRowCellDestroy:new Slick.Event,onMouseEnter:new Slick.Event,onMouseLeave:new Slick.Event,onClick:new Slick.Event,onDblClick:new Slick.Event,onContextMenu:new Slick.Event,onKeyDown:new Slick.Event,onAddNewRow:new Slick.Event,onValidationError:new Slick.Event,onViewportChanged:new Slick.Event,onColumnsReordered:new Slick.Event,onColumnsResized:new Slick.Event,onCellChange:new Slick.Event,onBeforeEditCell:new Slick.Event,onBeforeCellEditorDestroy:new Slick.Event,onBeforeDestroy:new Slick.Event,onActiveCellChanged:new Slick.Event,onActiveCellPositionChanged:new Slick.Event,onDragInit:new Slick.Event,onDragStart:new Slick.Event,onDrag:new Slick.Event,onDragEnd:new Slick.Event,onSelectedRowsChanged:new Slick.Event,onCellCssStylesChanged:new Slick.Event,registerPlugin:us,unregisterPlugin:ie,getColumns:rh,setColumns:ce,getColumnIndex:kt,updateColumnHeader:vs,setSortColumn:th,setSortColumns:kr,getSortColumns:ih,autosizeColumns:rf,getOptions:uh,setOptions:fh,getData:oh,getDataLength:rt,getDataItem:wt,setData:eh,getSelectionModel:es,setSelectionModel:fs,getSelectedRows:ts,setSelectedRows:wl,getContainerNode:lh,render:ut,invalidate:yh,invalidateRow:we,invalidateRows:pe,invalidateAllRows:ci,updateCell:ph,updateRow:of,getViewport:ru,getRenderedRange:be,resizeCanvas:gt,updateRowCount:iu,scrollRowIntoView:af,scrollRowToTop:el,scrollCellIntoView:fu,getCanvasNode:os,focus:li,getCellFromPoint:dc,getCellFromEvent:cr,getActiveCell:so,setActiveCell:al,getActiveCellNode:fl,getActiveCellPosition:eo,resetActiveCell:lf,editActiveCell:eu,getCellEditor:ul,getCellNode:ht,getCellNodeBox:gc,canCellBeSelected:go,canCellBeActive:ct,navigatePrev:ko,navigateNext:bo,navigateUp:wo,navigateDown:su,navigateLeft:po,navigateRight:yo,navigatePageUp:lo,navigatePageDown:co,gotoCell:ns,getTopPanel:sh,setTopPanelVisibility:hh,setHeaderRowVisibility:ch,getHeaderRow:ys,getHeaderRowColumn:ps,getGridPosition:rl,flashCell:uc,addCellCssStyles:tc,setCellCssStyles:ge,removeCellCssStyles:ic,getCellCssStyles:rc,init:te,destroy:gs,getEditorLock:d,getEditController:nh});rs()}n.extend(!0,window,{Slick:{Grid:r}});var t,i}(jQuery),function(n){if(typeof exports=="object"&&typeof module=="object")module.exports=n();else{if(typeof define=="function"&&define.amd)return define([],n);this.CodeMirror=n()}}(function(){"use strict";function n(t,i){var r,e,u,f;if(!(this instanceof n))return new n(t,i);this.options=i=i?yi(i):{};yi(hv,i,!1);us(i);r=i.value;typeof r=="string"&&(r=new tt(r,i.mode));this.doc=r;e=this.display=new uw(t,r);e.wrapper.CodeMirror=this;tl(this);nl(this);i.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap");i.autofocus&&!ko&&rt(this);il(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,draggingText:!1,highlight:new vo,keySeq:null};s&&h<11&&setTimeout(wt(ht,this,!0),20);vb(this);yd();nr(this);this.curOp.forceUpdate=!0;wy(this,r);i.autofocus&&!ko||pi()==e.input?setTimeout(wt(hh,this),20):ge(this);for(u in rr)rr.hasOwnProperty(u)&&rr[u](this,i[u],vh);for(ul(this),f=0;f<fo.length;++f)fo[f](this);tr(this)}function uw(n,t){var r=this,u=r.input=i("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none");p?u.style.width="1000px":u.setAttribute("wrap","off");eu&&(u.style.border="1px solid black");u.setAttribute("autocorrect","off");u.setAttribute("autocapitalize","off");u.setAttribute("spellcheck","false");r.inputDiv=i("div",[u],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");r.scrollbarFiller=i("div",null,"CodeMirror-scrollbar-filler");r.scrollbarFiller.setAttribute("not-content","true");r.gutterFiller=i("div",null,"CodeMirror-gutter-filler");r.gutterFiller.setAttribute("not-content","true");r.lineDiv=i("div",null,"CodeMirror-code");r.selectionDiv=i("div",null,null,"position: relative; z-index: 1");r.cursorDiv=i("div",null,"CodeMirror-cursors");r.measure=i("div",null,"CodeMirror-measure");r.lineMeasure=i("div",null,"CodeMirror-measure");r.lineSpace=i("div",[r.measure,r.lineMeasure,r.selectionDiv,r.cursorDiv,r.lineDiv],null,"position: relative; outline: none");r.mover=i("div",[i("div",[r.lineSpace],"CodeMirror-lines")],null,"position: relative");r.sizer=i("div",[r.mover],"CodeMirror-sizer");r.sizerWidth=null;r.heightForcer=i("div",null,null,"position: absolute; height: "+fp+"px; width: 1px;");r.gutters=i("div",null,"CodeMirror-gutters");r.lineGutter=null;r.scroller=i("div",[r.sizer,r.heightForcer,r.gutters],"CodeMirror-scroll");r.scroller.setAttribute("tabIndex","-1");r.wrapper=i("div",[r.inputDiv,r.scrollbarFiller,r.gutterFiller,r.scroller],"CodeMirror");s&&h<8&&(r.gutters.style.zIndex=-1,r.scroller.style.paddingRight=0);eu&&(u.style.width="0px");p||(r.scroller.draggable=!0);bo&&(r.inputDiv.style.height="1px",r.inputDiv.style.position="absolute");n&&(n.appendChild?n.appendChild(r.wrapper):n(r.wrapper));r.viewFrom=r.viewTo=t.first;r.reportedViewFrom=r.reportedViewTo=t.first;r.view=[];r.renderedView=null;r.externalMeasured=null;r.viewOffset=0;r.lastWrapHeight=r.lastWrapWidth=0;r.updateLineNumbers=null;r.nativeBarWidth=r.barHeight=r.barWidth=0;r.scrollbarsClipped=!1;r.lineNumWidth=r.lineNumInnerWidth=r.lineNumChars=null;r.prevInput="";r.alignWidgets=!1;r.pollingFast=!1;r.poll=new vo;r.cachedCharWidth=r.cachedTextHeight=r.cachedPaddingH=null;r.inaccurateSelection=!1;r.maxLine=null;r.maxLineLength=0;r.maxLineChanged=!1;r.wheelDX=r.wheelDY=r.wheelStartX=r.wheelStartY=null;r.shift=!1;r.selForContextMenu=null}function ns(t){t.doc.mode=n.getMode(t.options,t.doc.modeOption);ou(t)}function ou(n){n.doc.iter(function(n){n.stateAfter&&(n.stateAfter=null);n.styles&&(n.styles=null)});n.doc.frontier=n.doc.first;vu(n,100);n.state.modeGen++;n.curOp&&ut(n)}function fw(n){n.options.lineWrapping?(uu(n.display.wrapper,"CodeMirror-wrap"),n.display.sizer.style.minWidth="",n.display.sizerWidth=null):(ru(n.display.wrapper,"CodeMirror-wrap"),rs(n));ts(n);ut(n);pu(n);setTimeout(function(){cr(n)},100)}function gc(n){var t=di(n.display),i=n.options.lineWrapping,r=i&&Math.max(5,n.display.scroller.clientWidth/wu(n.display)-3);return function(u){var e,f;if(fr(n.doc,u))return 0;if(e=0,u.widgets)for(f=0;f<u.widgets.length;f++)u.widgets[f].height&&(e+=u.widgets[f].height);return i?e+(Math.ceil(u.text.length/r)||1)*t:e+t}}function ts(n){var t=n.doc,i=gc(n);t.iter(function(n){var t=i(n);t!=n.height&&yt(n,t)})}function nl(n){n.display.wrapper.className=n.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+n.options.theme.replace(/(^|\s)\s*/g," cm-s-");pu(n)}function su(n){tl(n);ut(n);setTimeout(function(){ss(n)},20)}function tl(n){var r=n.display.gutters,e=n.options.gutters,t,u,f;for(sr(r),t=0;t<e.length;++t)u=e[t],f=r.appendChild(i("div",null,"CodeMirror-gutter "+u)),u=="CodeMirror-linenumbers"&&(n.display.lineGutter=f,f.style.width=(n.display.lineNumWidth||1)+"px");r.style.display=t?"":"none";is(n)}function is(n){var t=n.display.gutters.offsetWidth;n.display.sizer.style.marginLeft=t+"px"}function ne(n){var r,u,t,i;if(n.height==0)return 0;for(r=n.text.length,t=n;u=dv(t);)i=u.find(0,!0),t=i.from.line,r+=i.from.ch-i.to.ch;for(t=n;u=of(t);)i=u.find(0,!0),r-=t.text.length-i.from.ch,t=i.to.line,r+=t.text.length-i.to.ch;return r}function rs(n){var t=n.display,i=n.doc;t.maxLine=r(i,i.first);t.maxLineLength=ne(t.maxLine);t.maxLineChanged=!0;i.iter(function(n){var i=ne(n);i>t.maxLineLength&&(t.maxLineLength=i,t.maxLine=n)})}function us(n){var t=b(n.gutters,"CodeMirror-linenumbers");t==-1&&n.lineNumbers?n.gutters=n.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!n.lineNumbers&&(n.gutters=n.gutters.slice(0),n.gutters.splice(t,1))}function hu(n){var t=n.display,i=t.gutters.offsetWidth,r=Math.round(n.doc.height+nh(n.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:n.options.fixedGutter?i:0,docHeight:r,scrollHeight:r+at(n)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:i}}function fs(n,t,r){this.cm=r;var u=this.vert=i("div",[i("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),f=this.horiz=i("div",[i("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n(u);n(f);o(u,"scroll",function(){u.clientHeight&&t(u.scrollTop,"vertical")});o(f,"scroll",function(){f.clientWidth&&t(f.scrollLeft,"horizontal")});this.checkedOverlay=!1;s&&h<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function es(){}function il(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&ru(t.display.wrapper,t.display.scrollbars.addClass));t.display.scrollbars=new n.scrollbarModel[t.options.scrollbarStyle](function(n){t.display.wrapper.insertBefore(n,t.display.scrollbarFiller);o(n,"mousedown",function(){t.state.focused&&setTimeout(wt(rt,t),0)});n.setAttribute("not-content","true")},function(n,i){i=="horizontal"?ar(t,n):ku(t,n)},t);t.display.scrollbars.addClass&&uu(t.display.wrapper,t.display.scrollbars.addClass)}function cr(n,t){var i,r,u;for(t||(t=hu(n)),i=n.display.barWidth,r=n.display.barHeight,rl(n,t),u=0;u<4&&i!=n.display.barWidth||r!=n.display.barHeight;u++)i!=n.display.barWidth&&n.options.lineWrapping&&te(n),rl(n,hu(n)),i=n.display.barWidth,r=n.display.barHeight}function rl(n,t){var i=n.display,r=i.scrollbars.update(t);i.sizer.style.paddingRight=(i.barWidth=r.right)+"px";i.sizer.style.paddingBottom=(i.barHeight=r.bottom)+"px";r.right&&r.bottom?(i.scrollbarFiller.style.display="block",i.scrollbarFiller.style.height=r.bottom+"px",i.scrollbarFiller.style.width=r.right+"px"):i.scrollbarFiller.style.display="";r.bottom&&n.options.coverGutterNextToScrollbar&&n.options.fixedGutter?(i.gutterFiller.style.display="block",i.gutterFiller.style.height=r.bottom+"px",i.gutterFiller.style.width=t.gutterWidth+"px"):i.gutterFiller.style.display=""}function os(n,t,i){var f=i&&i.top!=null?Math.max(0,i.top):n.scroller.scrollTop,o,s;f=Math.floor(f-ee(n));var h=i&&i.bottom!=null?i.bottom:f+n.wrapper.clientHeight,u=or(t,f),e=or(t,h);return i&&i.ensure&&(o=i.ensure.from.line,s=i.ensure.to.line,o<u?(u=o,e=or(t,ii(r(t,o))+n.wrapper.clientHeight)):Math.min(s,t.lastLine())>=e&&(u=or(t,ii(r(t,s))-n.wrapper.clientHeight),e=s)),{from:u,to:Math.max(e,u+1)}}function ss(n){var t=n.display,r=t.view,i,u,f;if(t.alignWidgets||t.gutters.firstChild&&n.options.fixedGutter){var e=cs(t)-t.scroller.scrollLeft+n.doc.scrollLeft,s=t.gutters.offsetWidth,o=e+"px";for(i=0;i<r.length;i++)if(!r[i].hidden&&(n.options.fixedGutter&&r[i].gutter&&(r[i].gutter.style.left=o),u=r[i].alignable,u))for(f=0;f<u.length;f++)u[f].style.left=o;n.options.fixedGutter&&(t.gutters.style.left=e+s+"px")}}function ul(n){if(!n.options.lineNumbers)return!1;var u=n.doc,r=hs(n.options,u.first+u.size-1),t=n.display;if(r.length!=t.lineNumChars){var f=t.measure.appendChild(i("div",[i("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),e=f.firstChild.offsetWidth,o=f.offsetWidth-e;return t.lineGutter.style.width="",t.lineNumInnerWidth=Math.max(e,t.lineGutter.offsetWidth-o),t.lineNumWidth=t.lineNumInnerWidth+o,t.lineNumChars=t.lineNumInnerWidth?r.length:-1,t.lineGutter.style.width=t.lineNumWidth+"px",is(n),!0}return!1}function hs(n,t){return String(n.lineNumberFormatter(t+n.firstLineNumber))}function cs(n){return n.scroller.getBoundingClientRect().left-n.sizer.getBoundingClientRect().left}function fl(n,t,i){var r=n.display;this.viewport=t;this.visible=os(r,n.doc,t);this.editorIsHidden=!r.wrapper.offsetWidth;this.wrapperHeight=r.wrapper.clientHeight;this.wrapperWidth=r.wrapper.clientWidth;this.oldDisplayWidth=ei(n);this.force=i;this.dims=ys(n)}function ew(n){var t=n.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=at(n)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=at(n)+"px",t.scrollbarsClipped=!0)}function ls(n,t){var i=n.display,o=n.doc,h,s,e;if(t.editorIsHidden)return si(n),!1;if(!t.force&&t.visible.from>=i.viewFrom&&t.visible.to<=i.viewTo&&(i.updateLineNumbers==null||i.updateLineNumbers>=i.viewTo)&&i.renderedView==i.view&&va(n)==0)return!1;ul(n)&&(si(n),t.dims=ys(n));var c=o.first+o.size,u=Math.max(t.visible.from-n.options.viewportMargin,o.first),f=Math.min(c,t.visible.to+n.options.viewportMargin);return(i.viewFrom<u&&u-i.viewFrom<20&&(u=Math.max(o.first,i.viewFrom)),i.viewTo>f&&i.viewTo-f<20&&(f=Math.min(c,i.viewTo)),fi&&(u=wh(n.doc,u),f=ny(n.doc,f)),h=u!=i.viewFrom||f!=i.viewTo||i.lastWrapHeight!=t.wrapperHeight||i.lastWrapWidth!=t.wrapperWidth,ab(n,u,f),i.viewOffset=ii(r(n.doc,i.viewFrom)),n.display.mover.style.top=i.viewOffset+"px",s=va(n),!h&&s==0&&!t.force&&i.renderedView==i.view&&(i.updateLineNumbers==null||i.updateLineNumbers>=i.viewTo))?!1:(e=pi(),s>4&&(i.lineDiv.style.display="none"),ow(n,i.updateLineNumbers,t.dims),s>4&&(i.lineDiv.style.display=""),i.renderedView=i.view,e&&pi()!=e&&e.offsetHeight&&e.focus(),sr(i.cursorDiv),sr(i.selectionDiv),i.gutters.style.height=0,h&&(i.lastWrapHeight=t.wrapperHeight,i.lastWrapWidth=t.wrapperWidth,vu(n,400)),i.updateLineNumbers=null,!0)}function el(n,t){for(var r,u=t.force,i=t.viewport,f=!0;;f=!1){if(f&&n.options.lineWrapping&&t.oldDisplayWidth!=ei(n))u=!0;else if(u=!1,i&&i.top!=null&&(i={top:Math.min(n.doc.height+nh(n.display)-th(n),i.top)}),t.visible=os(n.display,n.doc,i),t.visible.from>=n.display.viewFrom&&t.visible.to<=n.display.viewTo)break;if(!ls(n,t))break;te(n);r=hu(n);au(n);vs(n,r);cr(n,r)}g(n,"update",n);(n.display.viewFrom!=n.display.reportedViewFrom||n.display.viewTo!=n.display.reportedViewTo)&&(g(n,"viewportChange",n,n.display.viewFrom,n.display.viewTo),n.display.reportedViewFrom=n.display.viewFrom,n.display.reportedViewTo=n.display.viewTo)}function as(n,t){var r=new fl(n,t),i;ls(n,r)&&(te(n),el(n,r),i=hu(n),au(n),vs(n,i),cr(n,i))}function vs(n,t){n.display.sizer.style.minHeight=t.docHeight+"px";var i=t.docHeight+n.display.barHeight;n.display.heightForcer.style.top=i+"px";n.display.gutters.style.height=Math.max(i+at(n),t.clientHeight)+"px"}function te(n){for(var t,i,e,o,c,u,r=n.display,l=r.lineDiv.offsetTop,f=0;f<r.view.length;f++)if((t=r.view[f],!t.hidden)&&(s&&h<8?(e=t.node.offsetTop+t.node.offsetHeight,i=e-l,l=e):(o=t.node.getBoundingClientRect(),i=o.bottom-o.top),c=t.line.height-i,i<2&&(i=di(r)),(c>.001||c<-.001)&&(yt(t.line,i),ol(t.line),t.rest)))for(u=0;u<t.rest.length;u++)ol(t.rest[u])}function ol(n){if(n.widgets)for(var t=0;t<n.widgets.length;++t)n.widgets[t].height=n.widgets[t].node.offsetHeight}function ys(n){for(var i=n.display,u={},f={},e=i.gutters.clientLeft,t=i.gutters.firstChild,r=0;t;t=t.nextSibling,++r)u[n.options.gutters[r]]=t.offsetLeft+t.clientLeft+e,f[n.options.gutters[r]]=t.clientWidth;return{fixedPos:cs(i),gutterTotalWidth:i.gutters.offsetWidth,gutterLeft:u,gutterWidth:f,wrapperWidth:i.wrapper.clientWidth}}function ow(n,t,i){function c(t){var i=t.nextSibling;return p&&ot&&n.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),i}for(var r,a,s,e=n.display,v=n.options.lineNumbers,h=e.lineDiv,u=h.firstChild,l=e.view,f=e.viewFrom,o=0;o<l.length;o++){if(r=l[o],!r.hidden)if(r.node){while(u!=r.node)u=c(u);s=v&&t!=null&&t<=f&&r.lineNumber;r.changes&&(b(r.changes,"gutter")>-1&&(s=!1),sl(n,r,f,i));s&&(sr(r.lineNumber),r.lineNumber.appendChild(document.createTextNode(hs(n.options,f))));u=r.node.nextSibling}else a=lw(n,r,f,i),h.insertBefore(a,u);f+=r.size}while(u)u=c(u)}function sl(n,t,i,r){for(var u,f=0;f<t.changes.length;f++)u=t.changes[f],u=="text"?hw(n,t):u=="gutter"?cl(n,t,i,r):u=="class"?ps(t):u=="widget"&&cw(t,r);t.changes=null}function ie(n){return n.node==n.text&&(n.node=i("div",null,null,"position: relative"),n.text.parentNode&&n.text.parentNode.replaceChild(n.node,n.text),n.node.appendChild(n.text),s&&h<8&&(n.node.style.zIndex=2)),n.node}function sw(n){var t=n.bgClass?n.bgClass+" "+(n.line.bgClass||""):n.line.bgClass,r;t&&(t+=" CodeMirror-linebackground");n.background?t?n.background.className=t:(n.background.parentNode.removeChild(n.background),n.background=null):t&&(r=ie(n),n.background=r.insertBefore(i("div",null,t),r.firstChild))}function hl(n,t){var i=n.display.externalMeasured;return i&&i.line==t.line?(n.display.externalMeasured=null,t.measure=i.measure,i.built):ly(n,t)}function hw(n,t){var r=t.text.className,i=hl(n,t);t.text==t.node&&(t.node=i.pre);t.text.parentNode.replaceChild(i.pre,t.text);t.text=i.pre;i.bgClass!=t.bgClass||i.textClass!=t.textClass?(t.bgClass=i.bgClass,t.textClass=i.textClass,ps(t)):r&&(t.text.className=r)}function ps(n){sw(n);n.line.wrapClass?ie(n).className=n.line.wrapClass:n.node!=n.text&&(n.node.className="");var t=n.textClass?n.textClass+" "+(n.line.textClass||""):n.line.textClass;n.text.className=t||""}function cl(n,t,r,u){var f,c,o,s,e,h;if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),f=t.line.gutterMarkers,(n.options.lineNumbers||f)&&(c=ie(t),o=t.gutter=c.insertBefore(i("div",null,"CodeMirror-gutter-wrapper","left: "+(n.options.fixedGutter?u.fixedPos:-u.gutterTotalWidth)+"px; width: "+u.gutterTotalWidth+"px"),t.text),t.line.gutterClass&&(o.className+=" "+t.line.gutterClass),!n.options.lineNumbers||f&&f["CodeMirror-linenumbers"]||(t.lineNumber=o.appendChild(i("div",hs(n.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+u.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+n.display.lineNumInnerWidth+"px"))),f))for(s=0;s<n.options.gutters.length;++s)e=n.options.gutters[s],h=f.hasOwnProperty(e)&&f[e],h&&o.appendChild(i("div",[h],"CodeMirror-gutter-elt","left: "+u.gutterLeft[e]+"px; width: "+u.gutterWidth[e]+"px"))}function cw(n,t){var i,r;for(n.alignable&&(n.alignable=null),i=n.node.firstChild;i;i=r)r=i.nextSibling,i.className=="CodeMirror-linewidget"&&n.node.removeChild(i);ll(n,t)}function lw(n,t,i,r){var u=hl(n,t);return t.text=t.node=u.pre,u.bgClass&&(t.bgClass=u.bgClass),u.textClass&&(t.textClass=u.textClass),ps(t),cl(n,t,i,r),ll(t,r),t.node}function ll(n,t){if(al(n.line,n,t,!0),n.rest)for(var i=0;i<n.rest.length;i++)al(n.rest[i],n,t,!1)}function al(n,t,r,u){var s,o,h,f,e;if(n.widgets)for(s=ie(t),o=0,h=n.widgets;o<h.length;++o)f=h[o],e=i("div",[f.node],"CodeMirror-linewidget"),f.handleMouseEvents||e.setAttribute("cm-ignore-events","true"),aw(f,e,t,r),u&&f.above?s.insertBefore(e,t.gutter||t.text):s.appendChild(e),g(f,"redraw")}function aw(n,t,i,r){if(n.noHScroll){(i.alignable||(i.alignable=[])).push(t);var u=r.wrapperWidth;t.style.left=r.fixedPos+"px";n.coverGutter||(u-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+"px");t.style.width=u+"px"}n.coverGutter&&(t.style.zIndex=5,t.style.position="relative",n.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+"px"))}function ws(n){return t(n.line,n.ch)}function bs(n,t){return e(n,t)<0?t:n}function ks(n,t){return e(n,t)<0?n:t}function kt(n,t){this.ranges=n;this.primIndex=t}function c(n,t){this.anchor=n;this.head=t}function st(n,t){var h=n[t],i,u,r;for(n.sort(function(n,t){return e(n.from(),t.from())}),t=b(n,h),i=1;i<n.length;i++)if(u=n[i],r=n[i-1],e(r.to(),u.from())>=0){var f=ks(r.from(),u.from()),o=bs(r.to(),u.to()),s=r.empty()?u.from()==u.head:r.from()==r.head;i<=t&&--t;n.splice(--i,2,new c(s?o:f,s?f:o))}return new kt(n,t)}function bi(n,t){return new kt([new c(n,t||n)],0)}function vl(n,t){return Math.max(n.first,Math.min(t,n.first+n.size-1))}function u(n,i){if(i.line<n.first)return t(n.first,0);var u=n.first+n.size-1;return i.line>u?t(u,r(n,u).text.length):vw(i,r(n,i.line).text.length)}function vw(n,i){var r=n.ch;return r==null||r>i?t(n.line,i):r<0?t(n.line,0):n}function cu(n,t){return t>=n.first&&t<n.first+n.size}function yw(n,t){for(var r=[],i=0;i<t.length;i++)r[i]=u(n,t[i]);return r}function lu(n,t,i,r){var u,f;return n.cm&&n.cm.display.shift||n.extend?(u=t.anchor,r&&(f=e(i,u)<0,f!=e(r,u)<0?(u=i,i=r):f!=e(i,r)<0&&(i=r)),new c(u,i)):new c(r||i,i)}function re(n,t,i,r){k(n,new kt([lu(n,n.sel.primary(),t,i)],0),r)}function yl(n,t,i){for(var f,u=[],r=0;r<n.sel.ranges.length;r++)u[r]=lu(n,n.sel.ranges[r],t[r],null);f=st(u,n.sel.primIndex);k(n,f,i)}function ds(n,t,i,r){var u=n.sel.ranges.slice(0);u[t]=i;k(n,st(u,n.sel.primIndex),r)}function pl(n,t,i,r){k(n,bi(t,i),r)}function pw(n,t){var i={ranges:t.ranges,update:function(t){this.ranges=[];for(var i=0;i<t.length;i++)this.ranges[i]=new c(u(n,t[i].anchor),u(n,t[i].head))}};return y(n,"beforeSelectionChange",n,i),n.cm&&y(n.cm,"beforeSelectionChange",n.cm,i),i.ranges!=t.ranges?st(i.ranges,i.ranges.length-1):t}function wl(n,t,i){var r=n.history.done,u=l(r);u&&u.ranges?(r[r.length-1]=t,ue(n,t,i)):k(n,t,i)}function k(n,t,i){ue(n,t,i);hd(n,n.sel,n.cm?n.cm.curOp.id:NaN,i)}function ue(n,t,i){(lt(n,"beforeSelectionChange")||n.cm&&lt(n.cm,"beforeSelectionChange"))&&(t=pw(n,t));var r=i&&i.bias||(e(t.primary().head,n.sel.primary().head)<0?-1:1);bl(n,dl(n,t,r,!0));i&&i.scroll===!1||!n.cm||yr(n.cm)}function bl(n,t){t.equals(n.sel)||(n.sel=t,n.cm&&(n.cm.curOp.updateInput=n.cm.curOp.selectionChanged=!0,up(n.cm)),g(n,"cursorActivity",n))}function kl(n){bl(n,dl(n,n.sel,null,!1),vi)}function dl(n,t,i,r){for(var u,f=0;f<t.ranges.length;f++){var e=t.ranges[f],o=fe(n,e.anchor,i,r),s=fe(n,e.head,i,r);(u||o!=e.anchor||s!=e.head)&&(u||(u=t.ranges.slice(0,f)),u[f]=new c(o,s))}return u?st(u,t.primIndex):t}function fe(n,i,f,o){var w=!1,h=i,p=f||1,a,v,c,l,s;n.cantEdit=!1;n:for(;;){if(a=r(n,h.line),a.markedSpans)for(v=0;v<a.markedSpans.length;++v)if(c=a.markedSpans[v],l=c.marker,(c.from==null||(l.inclusiveLeft?c.from<=h.ch:c.from<h.ch))&&(c.to==null||(l.inclusiveRight?c.to>=h.ch:c.to>h.ch))){if(o&&(y(l,"beforeCursorEnter"),l.explicitlyCleared))if(a.markedSpans){--v;continue}else break;if(!l.atomic)continue;if(s=l.find(p<0?-1:1),e(s,h)==0&&(s.ch+=p,s.ch<0?s=s.line>n.first?u(n,t(s.line-1)):null:s.ch>a.text.length&&(s=s.line<n.first+n.size-1?t(s.line+1,0):null),!s)){if(w)return o?(n.cantEdit=!0,t(n.first,0)):fe(n,i,f,!0);w=!0;s=i;p=-p}h=s;continue n}return h}}function gl(n){for(var r,e,i=n.display,u=n.doc,t={},c=t.cursors=document.createDocumentFragment(),l=t.selection=document.createDocumentFragment(),f=0;f<u.sel.ranges.length;f++)r=u.sel.ranges[f],e=r.empty(),(e||n.options.showCursorWhenSelecting)&&ww(n,r,c),e||bw(n,r,l);if(n.options.moveInputWithCursor){var o=dt(n,u.sel.primary().head,"div"),s=i.wrapper.getBoundingClientRect(),h=i.lineDiv.getBoundingClientRect();t.teTop=Math.max(0,Math.min(i.wrapper.clientHeight-10,o.top+h.top-s.top));t.teLeft=Math.max(0,Math.min(i.wrapper.clientWidth-10,o.left+h.left-s.left))}return t}function na(n,t){bt(n.display.cursorDiv,t.cursors);bt(n.display.selectionDiv,t.selection);t.teTop!=null&&(n.display.inputDiv.style.top=t.teTop+"px",n.display.inputDiv.style.left=t.teLeft+"px")}function au(n){na(n,gl(n))}function ww(n,t,r){var u=dt(n,t.head,"div",null,null,!n.options.singleCursorHeightPerLine),e=r.appendChild(i("div"," ","CodeMirror-cursor")),f;e.style.left=u.left+"px";e.style.top=u.top+"px";e.style.height=Math.max(0,u.bottom-u.top)*n.options.cursorHeight+"px";u.other&&(f=r.appendChild(i("div"," ","CodeMirror-cursor CodeMirror-secondarycursor")),f.style.display="",f.style.left=u.other.left+"px",f.style.top=u.other.top+"px",f.style.height=(u.other.bottom-u.other.top)*.85+"px")}function bw(n,u,f){function o(n,t,r,u){t<0&&(t=0);t=Math.round(t);u=Math.round(u);w.appendChild(i("div",null,"CodeMirror-selected","position: absolute; left: "+n+"px; top: "+t+"px; width: "+(r==null?k-n:r)+"px; height: "+(u-t)+"px"))}function v(i,u,f){function v(r,u){return uh(n,t(i,r),"div",c,u)}var c=r(a,i),l=c.text.length,e,s;return gd(pt(c),u||0,f==null?l:f,function(n,t,i){var r=v(n,"left"),c,a,y,p;n==t?(c=r,a=y=r.left):(c=v(t-1,"right"),i=="rtl"&&(p=r,r=c,c=p),a=r.left,y=c.right);u==null&&n==0&&(a=h);c.top-r.top>3&&(o(a,r.top,null,r.bottom),a=h,r.bottom<c.top&&o(a,r.bottom,null,c.top));f==null&&t==l&&(y=k);(!e||r.top<e.top||r.top==e.top&&r.left<e.left)&&(e=r);(!s||c.bottom>s.bottom||c.bottom==s.bottom&&c.right>s.right)&&(s=c);a<h+1&&(a=h);o(a,c.top,y-a,c.bottom)}),{start:e,end:s}}var p=n.display,a=n.doc,w=document.createDocumentFragment(),b=ta(n.display),h=b.left,k=Math.max(p.sizerWidth,ei(n)-p.sizer.offsetLeft)-b.right,c=u.from(),l=u.to();if(c.line==l.line)v(c.line,c.ch,l.ch);else{var d=r(a,c.line),g=r(a,l.line),y=vt(d)==vt(g),e=v(c.line,c.ch,y?d.text.length+1:null).end,s=v(l.line,y?0:null,l.ch).start;y&&(e.top<s.top-2?(o(e.right,e.top,null,e.bottom),o(h,s.top,s.left,s.bottom)):o(e.right,e.top,s.left-e.right,e.bottom));e.bottom<s.top&&o(h,e.bottom,null,s.top)}f.appendChild(w)}function gs(n){var t,i;n.state.focused&&(t=n.display,clearInterval(t.blinker),i=!0,t.cursorDiv.style.visibility="",n.options.cursorBlinkRate>0?t.blinker=setInterval(function(){t.cursorDiv.style.visibility=(i=!i)?"":"hidden"},n.options.cursorBlinkRate):n.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden"))}function vu(n,t){n.doc.mode.startState&&n.doc.frontier<n.display.viewTo&&n.state.highlight.set(t,wt(kw,n))}function kw(n){var t=n.doc;if(t.frontier<t.first&&(t.frontier=t.first),!(t.frontier>=n.display.viewTo)){var u=+new Date+n.options.workTime,i=ur(t.mode,yu(n,t.frontier)),r=[];t.iter(t.frontier,Math.min(t.first+t.size,n.display.viewTo+500),function(f){var s,l,o,e,c,h;if(t.frontier>=n.display.viewFrom){for(s=f.styles,l=ey(n,f,i,!0),f.styles=l.styles,o=f.styleClasses,e=l.classes,e?f.styleClasses=e:o&&(f.styleClasses=null),c=!s||s.length!=f.styles.length||o!=e&&(!o||!e||o.bgClass!=e.bgClass||o.textClass!=e.textClass),h=0;!c&&h<s.length;++h)c=s[h]!=f.styles[h];c&&r.push(t.frontier);f.stateAfter=ur(t.mode,i)}else dh(n,f.text,i),f.stateAfter=t.frontier%5==0?ur(t.mode,i):null;return++t.frontier,+new Date>u?(vu(n,n.options.workDelay),!0):void 0});r.length&&oi(n,function(){for(var t=0;t<r.length;t++)gt(n,r[t],"text")})}}function dw(n,t,i){for(var o,s,h,e,f=n.doc,c=i?-1:t-(n.doc.mode.innerMode?1e3:100),u=t;u>c;--u){if(u<=f.first)return f.first;if(o=r(f,u-1),o.stateAfter&&(!i||u<=f.frontier))return u;s=ft(o.text,null,n.options.tabSize);(e==null||h>s)&&(e=u-1,h=s)}return e}function yu(n,t,i){var f=n.doc,o=n.display,u,e;return f.mode.startState?(u=dw(n,t,i),e=u>f.first&&r(f,u-1).stateAfter,e=e?ur(f.mode,e):cv(f.mode),f.iter(u,t,function(i){dh(n,i.text,e);var r=u==t-1||u%5==0||u>=o.viewFrom&&u<o.viewTo;i.stateAfter=r?ur(f.mode,e):null;++u}),i&&(f.frontier=u),e):!0}function ee(n){return n.lineSpace.offsetTop}function nh(n){return n.mover.offsetHeight-n.lineSpace.offsetHeight}function ta(n){if(n.cachedPaddingH)return n.cachedPaddingH;var r=bt(n.measure,i("pre","x")),u=window.getComputedStyle?window.getComputedStyle(r):r.currentStyle,t={left:parseInt(u.paddingLeft),right:parseInt(u.paddingRight)};return isNaN(t.left)||isNaN(t.right)||(n.cachedPaddingH=t),t}function at(n){return fp-n.display.nativeBarWidth}function ei(n){return n.display.scroller.clientWidth-at(n)-n.display.barWidth}function th(n){return n.display.scroller.clientHeight-at(n)-n.display.barHeight}function gw(n,t,i){var f=n.options.lineWrapping,h=f&&ei(n),e,u,r,o,s;if(!t.measure.heights||f&&t.measure.width!=h){if(e=t.measure.heights=[],f)for(t.measure.width=h,u=t.text.firstChild.getClientRects(),r=0;r<u.length-1;r++)o=u[r],s=u[r+1],Math.abs(o.bottom-s.bottom)>2&&e.push((o.bottom+s.top)/2-i.top);e.push(i.bottom-i.top)}}function nb(n,t,i){var r;if(n.line==t)return{map:n.measure.map,cache:n.measure.cache};for(r=0;r<n.rest.length;r++)if(n.rest[r]==t)return{map:n.measure.maps[r],cache:n.measure.caches[r]};for(r=0;r<n.rest.length;r++)if(a(n.rest[r])>i)return{map:n.measure.maps[r],cache:n.measure.caches[r],before:!0}}function tb(n,t){var r,i,u;return t=vt(t),r=a(t),i=n.display.externalMeasured=new aa(n.doc,t,r),i.lineN=r,u=i.built=ly(n,i),i.text=u.pre,bt(n.display.lineMeasure,u.pre),i}function ia(n,t,i,r){return ua(n,ih(n,t),i,r)}function ra(n,t){if(t>=n.display.viewFrom&&t<n.display.viewTo)return n.display.view[bu(n,t)];var i=n.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size)return i}function ih(n,t){var u=a(t),i=ra(n,u),r;return i&&!i.text?i=null:i&&i.changes&&sl(n,i,u,ys(n)),i||(i=tb(n,t)),r=nb(i,t,u),{line:t,view:i,rect:null,map:r.map,cache:r.cache,before:r.before,hasHeights:!1}}function ua(n,t,i,r,u){t.before&&(i=-1);var e=i+(r||""),f;return t.cache.hasOwnProperty(e)?f=t.cache[e]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(gw(n,t.view,t.rect),t.hasHeights=!0),f=ib(n,t,i,r),f.bogus||(t.cache[e]=f)),{left:f.left,right:f.right,top:u?f.rtop:f.top,bottom:u?f.rbottom:f.bottom}}function ib(n,t,i,r){for(var a,y,f,p,w,o=t.map,c,e,l,v,u=0;u<o.length;u+=3)if(a=o[u],y=o[u+1],i<a?(e=0,l=1,v="left"):i<y?(e=i-a,l=e+1):(u==o.length-3||i==y&&o[u+3]>i)&&(l=y-a,e=l-1,i>=y&&(v="right")),e!=null){if(c=o[u+2],a==y&&r==(c.insertLeft?"left":"right")&&(v=r),r=="left"&&e==0)while(u&&o[u-2]==o[u-3]&&o[u-1].insertLeft)c=o[(u-=3)+2],v="left";if(r=="right"&&e==y-a)while(u<o.length-3&&o[u+3]==o[u+4]&&!o[u+5].insertLeft)c=o[(u+=3)+2],v="right";break}if(c.nodeType==3){for(u=0;u<4;u++){while(e&&kf(t.line.text.charAt(a+e)))--e;while(a+l<y&&kf(t.line.text.charAt(a+l)))++l;if(s&&h<9&&e==0&&l==y-a?f=c.parentNode.getBoundingClientRect():s&&n.options.lineWrapping?(p=iu(c,e,l).getClientRects(),f=p.length?p[r=="right"?p.length-1:0]:oe):f=iu(c,e,l).getBoundingClientRect()||oe,f.left||f.right||e==0)break;l=e;e=e-1;v="right"}s&&h<11&&(f=rb(n.display.measure,f))}else e>0&&(v=r="right"),f=n.options.lineWrapping&&(p=c.getClientRects()).length>1?p[r=="right"?p.length-1:0]:c.getBoundingClientRect();s&&h<9&&!e&&(!f||!f.left&&!f.right)&&(w=c.parentNode.getClientRects()[0],f=w?{left:w.left,right:w.left+wu(n.display),top:w.top,bottom:w.bottom}:oe);var d=f.top-t.rect.top,g=f.bottom-t.rect.top,nt=(d+g)/2,b=t.view.measure.heights;for(u=0;u<b.length-1;u++)if(nt<b[u])break;var tt=u?b[u-1]:0,it=b[u],k={left:(v=="right"?f.right:f.left)-t.rect.left,right:(v=="left"?f.left:f.right)-t.rect.left,top:tt,bottom:it};return f.left||f.right||(k.bogus=!0),n.options.singleCursorHeightPerLine||(k.rtop=d,k.rbottom=g),k}function rb(n,t){if(!window.screen||screen.logicalXDPI==null||screen.logicalXDPI==screen.deviceXDPI||!dd(n))return t;var i=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*i,right:t.right*i,top:t.top*r,bottom:t.bottom*r}}function fa(n){if(n.measure&&(n.measure.cache={},n.measure.heights=null,n.rest))for(var t=0;t<n.rest.length;t++)n.measure.caches[t]={}}function ea(n){n.display.externalMeasure=null;sr(n.display.lineMeasure);for(var t=0;t<n.display.view.length;t++)fa(n.display.view[t])}function pu(n){ea(n);n.display.cachedCharWidth=n.display.cachedTextHeight=n.display.cachedPaddingH=null;n.options.lineWrapping||(n.display.maxLineChanged=!0);n.display.lineNumChars=null}function oa(){return window.pageXOffset||(document.documentElement||document.body).scrollLeft}function sa(){return window.pageYOffset||(document.documentElement||document.body).scrollTop}function rh(n,t,i,r){var f,e,u,o,s;if(t.widgets)for(f=0;f<t.widgets.length;++f)t.widgets[f].above&&(e=hf(t.widgets[f]),i.top+=e,i.bottom+=e);return r=="line"?i:(r||(r="local"),u=ii(t),r=="local"?u+=ee(n.display):u-=n.display.viewOffset,(r=="page"||r=="window")&&(o=n.display.lineSpace.getBoundingClientRect(),u+=o.top+(r=="window"?0:sa()),s=o.left+(r=="window"?0:oa()),i.left+=s,i.right+=s),i.top+=u,i.bottom+=u,i)}function ha(n,t,i){var r,u,f,e;return i=="div"?t:(r=t.left,u=t.top,i=="page"?(r-=oa(),u-=sa()):i!="local"&&i||(f=n.display.sizer.getBoundingClientRect(),r+=f.left,u+=f.top),e=n.display.lineSpace.getBoundingClientRect(),{left:r-e.left,top:u-e.top})}function uh(n,t,i,u,f){return u||(u=r(n.doc,t.line)),rh(n,u,ia(n,u,t.ch,f),i)}function dt(n,t,i,u,f,e){function h(t,r){var o=ua(n,f,t,r?"right":"left",e);return r?o.left=o.right:o.right=o.left,rh(n,u,o,i)}function l(n,t){var i=o[t],r=i.level%2;return(n==cc(i)&&t&&i.level<o[t-1].level?(i=o[--t],n=lc(i)-(i.level%2?0:1),r=!0):n==lc(i)&&t<o.length-1&&i.level<o[t+1].level&&(i=o[++t],n=cc(i)-i.level%2,r=!1),r&&n==i.to&&n>i.from)?h(n-1):h(n,r)}var o,s,a,c;return(u=u||r(n.doc,t.line),f||(f=ih(n,u)),o=pt(u),s=t.ch,!o)?h(s):(a=ac(o,s),c=l(s,a),gf!=null&&(c.other=l(s,gf)),c)}function ca(n,t){var i=0,t=u(n.doc,t),f,e;return n.options.lineWrapping||(i=wu(n.display)*t.ch),f=r(n.doc,t.line),e=ii(f)+ee(n.display),{left:i,right:i,top:e,bottom:e+f.height}}function se(n,i,r,u){var f=t(n,i);return f.xRel=u,r&&(f.outside=!0),f}function fh(n,t,i){var u=n.doc,f,s,e;if(i+=n.display.viewOffset,i<0)return se(u.first,0,!0,-1);if(f=or(u,i),s=u.first+u.size-1,f>s)return se(u.first+u.size-1,r(u,s).text.length,!0,1);for(t<0&&(t=0),e=r(u,f);;){var o=ub(n,e,f,t,i),h=of(e),c=h&&h.find(0,!0);if(h&&(o.ch>c.from.ch||o.ch==c.from.ch&&o.xRel>0))f=a(e=c.to.line);else return o}}function ub(n,i,r,u,f){function p(u){var f=dt(n,t(r,u),"line",i,rt);return(h=!0,g>f.bottom)?f.left-nt:g<f.top?f.left+nt:(h=!1,f.left)}var g=f-ii(i),h=!1,nt=2*n.display.wrapper.clientWidth,rt=ih(n,i),tt=pt(i),w=i.text.length,e=po(i),o=wo(i),v=p(e),it=h,l=p(o),b=h,c,k,a,s,d,y;if(u>l)return se(r,o,b,1);for(;;){if(tt?o==e||o==yc(i,e,1):o-e<=1){for(c=u<v||u-v<=l-u?e:o,k=u-(c==e?v:l);kf(i.text.charAt(c));)++c;return se(r,c,c==e?it:b,k<-1?-1:k>1?1:0)}if(a=Math.ceil(w/2),s=e+a,tt)for(s=e,d=0;d<a;++d)s=yc(i,s,1);y=p(s);y>u?(o=s,l=y,(b=h)&&(l+=1e3),w=a):(e=s,v=y,it=h,w-=a)}}function di(n){var r,t;if(n.cachedTextHeight!=null)return n.cachedTextHeight;if(ki==null){for(ki=i("pre"),r=0;r<49;++r)ki.appendChild(document.createTextNode("x")),ki.appendChild(i("br"));ki.appendChild(document.createTextNode("x"))}return bt(n.measure,ki),t=ki.offsetHeight/50,t>3&&(n.cachedTextHeight=t),sr(n.measure),t||1}function wu(n){var r,f,u,t;return n.cachedCharWidth!=null?n.cachedCharWidth:(r=i("span","xxxxxxxxxx"),f=i("pre",[r]),bt(n.measure,f),u=r.getBoundingClientRect(),t=(u.right-u.left)/10,t>2&&(n.cachedCharWidth=t),t||10)}function nr(n){n.curOp={cm:n,viewChanged:!1,startHeight:n.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,id:++la};gi?gi.ops.push(n.curOp):n.curOp.ownsGroup=gi={ops:[n.curOp],delayedCallbacks:[]}}function fb(n){var u=n.delayedCallbacks,i=0,r,t;do{for(;i<u.length;i++)u[i]();for(r=0;r<n.ops.length;r++)if(t=n.ops[r],t.cursorActivityHandlers)while(t.cursorActivityCalled<t.cursorActivityHandlers.length)t.cursorActivityHandlers[t.cursorActivityCalled++](t.cm)}while(i<u.length)}function tr(n){var r=n.curOp,t=r.ownsGroup,i;if(t)try{fb(t)}finally{for(gi=null,i=0;i<t.ops.length;i++)t.ops[i].cm.curOp=null;eb(t)}}function eb(n){for(var i=n.ops,t=0;t<i.length;t++)ob(i[t]);for(t=0;t<i.length;t++)sb(i[t]);for(t=0;t<i.length;t++)hb(i[t]);for(t=0;t<i.length;t++)cb(i[t]);for(t=0;t<i.length;t++)lb(i[t])}function ob(n){var t=n.cm,i=t.display;ew(t);n.updateMaxLine&&rs(t);n.mustUpdate=n.viewChanged||n.forceUpdate||n.scrollTop!=null||n.scrollToPos&&(n.scrollToPos.from.line<i.viewFrom||n.scrollToPos.to.line>=i.viewTo)||i.maxLineChanged&&t.options.lineWrapping;n.update=n.mustUpdate&&new fl(t,n.mustUpdate&&{top:n.scrollTop,ensure:n.scrollToPos},n.forceUpdate)}function sb(n){n.updatedDisplay=n.mustUpdate&&ls(n.cm,n.update)}function hb(n){var t=n.cm,i=t.display;n.updatedDisplay&&te(t);n.barMeasure=hu(t);i.maxLineChanged&&!t.options.lineWrapping&&(n.adjustWidthTo=ia(t,i.maxLine,i.maxLine.text.length).left+3,t.display.sizerWidth=n.adjustWidthTo,n.barMeasure.scrollWidth=Math.max(i.scroller.clientWidth,i.sizer.offsetLeft+n.adjustWidthTo+at(t)+t.display.barWidth),n.maxScrollLeft=Math.max(0,i.sizer.offsetLeft+n.adjustWidthTo-ei(t)));(n.updatedDisplay||n.selectionChanged)&&(n.newSelectionNodes=gl(t))}function cb(n){var t=n.cm;n.adjustWidthTo!=null&&(t.display.sizer.style.minWidth=n.adjustWidthTo+"px",n.maxScrollLeft<t.doc.scrollLeft&&ar(t,Math.min(t.display.scroller.scrollLeft,n.maxScrollLeft),!0),t.display.maxLineChanged=!1);n.newSelectionNodes&&na(t,n.newSelectionNodes);n.updatedDisplay&&vs(t,n.barMeasure);(n.updatedDisplay||n.startHeight!=t.doc.height)&&cr(t,n.barMeasure);n.selectionChanged&&gs(t);t.state.focused&&n.updateInput&&ht(t,n.typing)}function lb(n){var i=n.cm,t=i.display,f=i.doc,s,e,o,r;if(n.updatedDisplay&&el(i,n.update),t.wheelStartX!=null&&(n.scrollTop!=null||n.scrollLeft!=null||n.scrollToPos)&&(t.wheelStartX=t.wheelStartY=null),n.scrollTop!=null&&(t.scroller.scrollTop!=n.scrollTop||n.forceScroll)&&(f.scrollTop=Math.max(0,Math.min(t.scroller.scrollHeight-t.scroller.clientHeight,n.scrollTop)),t.scrollbars.setScrollTop(f.scrollTop),t.scroller.scrollTop=f.scrollTop),n.scrollLeft!=null&&(t.scroller.scrollLeft!=n.scrollLeft||n.forceScroll)&&(f.scrollLeft=Math.max(0,Math.min(t.scroller.scrollWidth-ei(i),n.scrollLeft)),t.scrollbars.setScrollLeft(f.scrollLeft),t.scroller.scrollLeft=f.scrollLeft,ss(i)),n.scrollToPos&&(s=ek(i,u(f,n.scrollToPos.from),u(f,n.scrollToPos.to),n.scrollToPos.margin),n.scrollToPos.isCursor&&i.state.focused&&fk(i,s)),e=n.maybeHiddenMarkers,o=n.maybeUnhiddenMarkers,e)for(r=0;r<e.length;++r)e[r].lines.length||y(e[r],"hide");if(o)for(r=0;r<o.length;++r)o[r].lines.length&&y(o[r],"unhide");t.wrapper.offsetHeight&&(f.scrollTop=i.display.scroller.scrollTop);n.changeObjs&&y(i,"changes",i,n.changeObjs)}function oi(n,t){if(n.curOp)return t();nr(n);try{return t()}finally{tr(n)}}function v(n,t){return function(){if(n.curOp)return t.apply(n,arguments);nr(n);try{return t.apply(n,arguments)}finally{tr(n)}}}function w(n){return function(){if(this.curOp)return n.apply(this,arguments);nr(this);try{return n.apply(this,arguments)}finally{tr(this)}}}function nt(n){return function(){var t=this.cm;if(!t||t.curOp)return n.apply(this,arguments);nr(t);try{return n.apply(this,arguments)}finally{tr(t)}}}function aa(n,t,i){this.line=t;this.rest=dk(t);this.size=this.rest?a(l(this.rest))-i+1:1;this.node=this.text=null;this.hidden=fr(n,t)}function he(n,t,i){for(var f,e=[],o,u=t;u<i;u=o)f=new aa(n.doc,r(n.doc,u),u),o=u+f.size,e.push(f);return e}function ut(n,t,i,r){var u,f,o,s,e;t==null&&(t=n.doc.first);i==null&&(i=n.doc.first+n.doc.size);r||(r=0);u=n.display;r&&i<u.viewTo&&(u.updateLineNumbers==null||u.updateLineNumbers>t)&&(u.updateLineNumbers=t);n.curOp.viewChanged=!0;t>=u.viewTo?fi&&wh(n.doc,t)<u.viewTo&&si(n):i<=u.viewFrom?fi&&ny(n.doc,i+r)>u.viewFrom?si(n):(u.viewFrom+=r,u.viewTo+=r):t<=u.viewFrom&&i>=u.viewTo?si(n):t<=u.viewFrom?(f=ce(n,i,i+r,1),f?(u.view=u.view.slice(f.index),u.viewFrom=f.lineN,u.viewTo+=r):si(n)):i>=u.viewTo?(f=ce(n,t,t,-1),f?(u.view=u.view.slice(0,f.index),u.viewTo=f.lineN):si(n)):(o=ce(n,t,t,-1),s=ce(n,i,i+r,1),o&&s?(u.view=u.view.slice(0,o.index).concat(he(n,o.lineN,s.lineN)).concat(u.view.slice(s.index)),u.viewTo+=r):si(n));e=u.externalMeasured;e&&(i<e.lineN?e.lineN+=r:t<e.lineN+e.size&&(u.externalMeasured=null))}function gt(n,t,i){var r,u,f,e;(n.curOp.viewChanged=!0,r=n.display,u=n.display.externalMeasured,u&&t>=u.lineN&&t<u.lineN+u.size&&(r.externalMeasured=null),t<r.viewFrom||t>=r.viewTo)||(f=r.view[bu(n,t)],f.node!=null)&&(e=f.changes||(f.changes=[]),b(e,i)==-1&&e.push(i))}function si(n){n.display.viewFrom=n.display.viewTo=n.doc.first;n.display.view=[];n.display.viewOffset=0}function bu(n,t){var r,i;if(t>=n.display.viewTo||(t-=n.display.viewFrom,t<0))return null;for(r=n.display.view,i=0;i<r.length;i++)if(t-=r[i].size,t<0)return i}function ce(n,t,i,r){var u=bu(n,t),o,f=n.display.view,s,e;if(!fi||i==n.doc.first+n.doc.size)return{index:u,lineN:i};for(s=0,e=n.display.viewFrom;s<u;s++)e+=f[s].size;if(e!=t){if(r>0){if(u==f.length-1)return null;o=e+f[u].size-t;u++}else o=e-t;t+=o;i+=o}while(wh(n.doc,i)!=i){if(u==(r<0?0:f.length-1))return null;i+=r*f[u-(r<0?1:0)].size;u+=r}return{index:u,lineN:i}}function ab(n,t,i){var r=n.display,u=r.view;u.length==0||t>=r.viewTo||i<=r.viewFrom?(r.view=he(n,t,i),r.viewFrom=t):(r.viewFrom>t?r.view=he(n,t,r.viewFrom).concat(r.view):r.viewFrom<t&&(r.view=r.view.slice(bu(n,t))),r.viewFrom=t,r.viewTo<i?r.view=r.view.concat(he(n,r.viewTo,i)):r.viewTo>i&&(r.view=r.view.slice(0,bu(n,i))));r.viewTo=i}function va(n){for(var t,r=n.display.view,u=0,i=0;i<r.length;i++)t=r[i],t.hidden||t.node&&!t.changes||++u;return u}function le(n){n.display.pollingFast||n.display.poll.set(n.options.pollInterval,function(){ve(n);n.state.focused&&le(n)})}function ae(n){function i(){var r=ve(n);r||t?(n.display.pollingFast=!1,le(n)):(t=!0,n.display.poll.set(60,i))}var t=!1;n.display.pollingFast=!0;n.display.poll.set(20,i)}function ve(n){var c=n.display.input,f=n.display.prevInput,u=n.doc,i,it,e,rt,o,ut,nt,v,w,tt;if(!n.state.focused||kd(c)&&!f||ye(n)||n.options.disableInput||n.state.keySeq||(n.state.pasteIncoming&&n.state.fakedLastChar&&(c.value=c.value.substring(0,c.value.length-1),n.state.fakedLastChar=!1),i=c.value,i==f&&!n.somethingSelected()))return!1;if(s&&h>=9&&n.display.inputHasSelection===i||ot&&/[\uf700-\uf7ff]/.test(i))return ht(n),!1;for(it=!n.curOp,it&&nr(n),n.display.shift=!1,i.charCodeAt(0)!=8203||u.sel!=n.display.selForContextMenu||f||(f="​"),e=0,rt=Math.min(f.length,i.length);e<rt&&f.charCodeAt(e)==i.charCodeAt(e);)++e;var b=i.slice(e),k=hr(b),y=null;for(n.state.pasteIncoming&&u.sel.ranges.length>1&&(hi&&hi.join("\n")==b?y=u.sel.ranges.length%hi.length==0&&tu(hi,hr):k.length==u.sel.ranges.length&&(y=tu(k,function(n){return[n]}))),o=u.sel.ranges.length-1;o>=0;o--){var a=u.sel.ranges[o],d=a.from(),p=a.to();if(e<f.length?d=t(d.line,d.ch-(f.length-e)):n.state.overwrite&&a.empty()&&!n.state.pasteIncoming&&(p=t(p.line,Math.min(r(u,p.line).text.length,p.ch+l(k).length))),ut=n.curOp.updateInput,nt={from:d,to:p,text:y?y[o%y.length]:k,origin:n.state.pasteIncoming?"paste":n.state.cutIncoming?"cut":"+input"},vr(n.doc,nt),g(n,"inputRead",n,nt),b&&!n.state.pasteIncoming&&n.options.electricChars&&n.options.smartIndent&&a.head.ch<100&&(!o||u.sel.ranges[o-1].head.line!=a.head.line))if(v=n.getModeAt(a.head),w=ni(nt),v.electricChars){for(tt=0;tt<v.electricChars.length;tt++)if(b.indexOf(v.electricChars.charAt(tt))>-1){nf(n,w.line,"smart");break}}else v.electricInput&&v.electricInput.test(r(u,w.line).text.slice(0,w.ch))&&nf(n,w.line,"smart")}return yr(n),n.curOp.updateInput=ut,n.curOp.typing=!0,i.length>1e3||i.indexOf("\n")>-1?c.value=n.display.prevInput="":n.display.prevInput=i,it&&tr(n),n.state.pasteIncoming=n.state.cutIncoming=!1,!0}function ht(n,t){var i,f,e,r,u;n.display.contextMenuPending||(e=n.doc,n.somethingSelected()?(n.display.prevInput="",r=e.sel.primary(),i=pp&&(r.to().line-r.from().line>100||(f=n.getSelection()).length>1e3),u=i?"-":f||n.getSelection(),n.display.input.value=u,n.state.focused&&nu(n.display.input),s&&h>=9&&(n.display.inputHasSelection=u)):t||(n.display.prevInput=n.display.input.value="",s&&h>=9&&(n.display.inputHasSelection=null)),n.display.inaccurateSelection=i)}function rt(n){n.options.readOnly=="nocursor"||ko&&pi()==n.display.input||n.display.input.focus()}function eh(n){n.state.focused||(rt(n),hh(n))}function ye(n){return n.options.readOnly||n.doc.cantEdit}function vb(n){function r(t){ct(n,t)||ao(t)}function u(r){var u,o,f,s,e;if(n.somethingSelected())hi=n.getSelections(),i.inaccurateSelection&&(i.prevInput="",i.inaccurateSelection=!1,i.input.value=hi.join("\n"),nu(i.input));else{for(u=[],o=[],f=0;f<n.doc.sel.ranges.length;f++)s=n.doc.sel.ranges[f].head.line,e={anchor:t(s,0),head:t(s+1,0)},o.push(e),u.push(n.getRange(e.anchor,e.head));r.type=="cut"?n.setSelections(o,null,vi):(i.prevInput="",i.input.value=u.join("\n"),nu(i.input));hi=u}r.type=="cut"&&(n.state.cutIncoming=!0)}var i=n.display;o(i.scroller,"mousedown",v(n,ya));s&&h<11?o(i.scroller,"dblclick",v(n,function(t){var i,r;ct(n,t)||(i=lr(n,t),!i||wa(n,t)||ir(n.display,t))||(d(t),r=n.findWordAt(i),re(n.doc,r.anchor,r.head))})):o(i.scroller,"dblclick",function(t){ct(n,t)||d(t)});o(i.lineSpace,"selectstart",function(n){ir(i,n)||d(n)});go||o(i.scroller,"contextmenu",function(t){iv(n,t)});o(i.scroller,"scroll",function(){i.scroller.clientHeight&&(ku(n,i.scroller.scrollTop),ar(n,i.scroller.scrollLeft,!0),y(n,"scroll",n))});o(i.scroller,"mousewheel",function(t){ba(n,t)});o(i.scroller,"DOMMouseScroll",function(t){ba(n,t)});o(i.wrapper,"scroll",function(){i.wrapper.scrollTop=i.wrapper.scrollLeft=0});o(i.input,"keyup",function(t){nv.call(n,t)});o(i.input,"input",function(){s&&h>=9&&n.display.inputHasSelection&&(n.display.inputHasSelection=null);ve(n)});o(i.input,"keydown",v(n,ga));o(i.input,"keypress",v(n,tv));o(i.input,"focus",wt(hh,n));o(i.input,"blur",wt(ge,n));n.options.dragDrop&&(o(i.scroller,"dragstart",function(t){db(n,t)}),o(i.scroller,"dragenter",r),o(i.scroller,"dragover",r),o(i.scroller,"drop",v(n,kb)));o(i.scroller,"paste",function(t){ir(i,t)||(n.state.pasteIncoming=!0,rt(n),ae(n))});o(i.input,"paste",function(){if(p&&!n.state.fakedLastChar&&!(new Date-n.state.lastMiddleDown<200)){var t=i.input.selectionStart,r=i.input.selectionEnd;i.input.value+="$";i.input.selectionEnd=r;i.input.selectionStart=t;n.state.fakedLastChar=!0}n.state.pasteIncoming=!0;ae(n)});o(i.input,"cut",u);o(i.input,"copy",u);bo&&o(i.sizer,"mouseup",function(){pi()==i.input&&i.input.blur();rt(n)})}function yb(n){var t=n.display;(t.lastWrapHeight!=t.wrapper.clientHeight||t.lastWrapWidth!=t.wrapper.clientWidth)&&(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,n.setSize())}function ir(n,t){for(var i=yf(t);i!=n.wrapper;i=i.parentNode)if(!i||i.getAttribute("cm-ignore-events")=="true"||i.parentNode==n.sizer&&i!=n.mover)return!0}function lr(n,i,u,f){var a=n.display,s,c,h,e,o,l;if(!u&&yf(i).getAttribute("not-content")=="true")return null;h=a.lineSpace.getBoundingClientRect();try{s=i.clientX-h.left;c=i.clientY-h.top}catch(i){return null}return e=fh(n,s,c),f&&e.xRel==1&&(o=r(n.doc,e.line).text).length==e.ch&&(l=ft(o,o.length,n.options.tabSize)-o.length,e=t(e.line,Math.max(0,Math.round((s-ta(n.display).left)/wu(n.display))-l))),e}function ya(n){var t,i,r;if(!ct(this,n)){if(t=this,i=t.display,i.shift=n.shiftKey,ir(i,n)){p||(i.scroller.draggable=!1,setTimeout(function(){i.scroller.draggable=!0},100));return}if(!wa(t,n)){r=lr(t,n);window.focus();switch(rp(n)){case 1:r?pb(t,n,r):yf(n)==i.scroller&&d(n);break;case 2:p&&(t.state.lastMiddleDown=+new Date);r&&re(t.doc,r);setTimeout(wt(rt,t),20);d(n);break;case 3:go&&iv(t,n)}}}}function pb(n,t,i){var r,u,f,o,s;setTimeout(wt(eh,n),0);r=+new Date;we&&we.time>r-400&&e(we.pos,i)==0?u="triple":pe&&pe.time>r-400&&e(pe.pos,i)==0?(u="double",we={time:r,pos:i}):(u="single",pe={time:r,pos:i});f=n.doc.sel;o=ot?t.metaKey:t.ctrlKey;n.options.dragDrop&&yp&&!ye(n)&&u=="single"&&(s=f.contains(i))>-1&&!f.ranges[s].empty()?wb(n,t,i,o):bb(n,t,i,u,o)}function wb(n,t,i,r){var u=n.display,f=v(n,function(e){p&&(u.scroller.draggable=!1);n.state.draggingText=!1;ri(document,"mouseup",f);ri(u.scroller,"drop",f);Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)<10&&(d(e),r||re(n.doc,i),rt(n),s&&h==9&&setTimeout(function(){document.body.focus();rt(n)},20))});p&&(u.scroller.draggable=!0);n.state.draggingText=f;u.scroller.dragDrop&&u.scroller.dragDrop();o(document,"mouseup",f);o(u.scroller,"drop",f)}function bb(n,i,f,s,h){function lt(i){var h,ht,d,p,v,o;if(e(tt,i)!=0)if(tt=i,s=="rect"){var o=[],b=n.options.tabSize,rt=ft(r(l,f.line).text,f.ch,b),ut=ft(r(l,i.line).text,i.ch,b),et=Math.min(rt,ut),ot=Math.max(rt,ut);for(h=Math.min(f.line,i.line),ht=Math.min(n.lastLine(),Math.max(f.line,i.line));h<=ht;h++)d=r(l,h).text,p=op(d,et,b),et==ot?o.push(new c(t(h,p),t(h,p))):d.length>p&&o.push(new c(t(h,p),t(h,op(d,ot,b))));o.length||o.push(new c(f,f));k(l,st(w.ranges.slice(0,a).concat(o),a),{origin:"*mouse",scroll:!1});n.scrollIntoView(i)}else{var nt=y,g=nt.anchor,it=i;s!="single"&&(v=s=="double"?n.findWordAt(i):new c(t(i.line,0),u(l,t(i.line+1,0))),e(v.anchor,g)>0?(it=v.head,g=ks(nt.from(),v.anchor)):(it=v.anchor,g=bs(nt.to(),v.head)));o=w.ranges.slice(0);o[a]=new c(u(l,g),it);k(l,st(o,a),rc)}}function et(t){var f=++b,i=lr(n,t,!0,s=="rect"),r,u;i&&(e(i,tt)!=0?(eh(n),lt(i),r=os(it,l),(i.line>=r.to||i.line<r.from)&&setTimeout(v(n,function(){b==f&&et(t)}),150)):(u=t.clientY<ut.top?-20:t.clientY>ut.bottom?20:0,u&&setTimeout(v(n,function(){b==f&&(it.scroller.scrollTop+=u,et(t))}),50)))}function ct(t){b=Infinity;d(t);rt(n);ri(document,"mousemove",ot);ri(document,"mouseup",ht);l.history.lastSelOrigin=null}var it=n.display,l=n.doc,y,a,w,p,g,nt,tt,ut,b,ot,ht;d(i);w=l.sel;p=w.ranges;h&&!i.shiftKey?(a=l.sel.contains(f),y=a>-1?p[a]:new c(f,f)):y=l.sel.primary();i.altKey?(s="rect",h||(y=new c(f,f)),f=lr(n,i,!0,!0),a=-1):s=="double"?(g=n.findWordAt(f),y=n.display.shift||l.extend?lu(l,y,g.anchor,g.head):g):s=="triple"?(nt=new c(t(f.line,0),u(l,t(f.line+1,0))),y=n.display.shift||l.extend?lu(l,y,nt.anchor,nt.head):nt):y=lu(l,y,f);h?a==-1?(a=p.length,k(l,st(p.concat([y]),a),{scroll:!1,origin:"*mouse"})):p.length>1&&p[a].empty()&&s=="single"?(k(l,st(p.slice(0,a).concat(p.slice(a+1)),0)),w=l.sel):ds(l,a,y,rc):(a=0,k(l,new kt([y],0),rc),w=l.sel);tt=f;ut=it.wrapper.getBoundingClientRect();b=0;ot=v(n,function(n){rp(n)?et(n):ct(n)});ht=v(n,ct);o(document,"mousemove",ot);o(document,"mouseup",ht)}function pa(n,t,i,r,u){var s,e,o,h,f,c,l,a;try{s=t.clientX;e=t.clientY}catch(t){return!1}if(s>=Math.floor(n.display.gutters.getBoundingClientRect().right))return!1;if(r&&d(t),o=n.display,h=o.lineDiv.getBoundingClientRect(),e>h.bottom||!lt(n,i))return ic(t);for(e-=h.top-o.viewOffset,f=0;f<n.options.gutters.length;++f)if(c=o.gutters.childNodes[f],c&&c.getBoundingClientRect().right>=s)return l=or(n.doc,e),a=n.options.gutters[f],u(n,i,n,l,a,t),ic(t)}function wa(n,t){return pa(n,t,"gutterClick",!0,g)}function kb(n){var t=this,i,f,e,o,r;if(!ct(t,n)&&!ir(t.display,n)&&(d(n),s&&(oh=+new Date),i=lr(t,n,!0),f=n.dataTransfer.files,i&&!ye(t)))if(f&&f.length&&window.FileReader&&window.File){var h=f.length,e=Array(h),c=0,l=function(n,r){var f=new FileReader;f.onload=v(t,function(){if(e[r]=f.result,++c==h){i=u(t.doc,i);var n={from:i,to:i,text:hr(e.join("\n")),origin:"paste"};vr(t.doc,n);wl(t.doc,bi(i,ni(n)))}});f.readAsText(n)};for(r=0;r<h;++r)l(f[r],r)}else{if(t.state.draggingText&&t.doc.sel.contains(i)>-1){t.state.draggingText(n);setTimeout(wt(rt,t),20);return}try{if(e=n.dataTransfer.getData("Text"),e){if(!t.state.draggingText||(ot?n.metaKey:n.ctrlKey)||(o=t.listSelections()),ue(t.doc,bi(i,i)),o)for(r=0;r<o.length;++r)to(t.doc,"",o[r].anchor,o[r].head,"drag");t.replaceSelection(e,"around","paste");rt(t)}}catch(n){}}}function db(n,t){if(s&&(!n.state.draggingText||+new Date-oh<100)){ao(t);return}if(!ct(n,t)&&!ir(n.display,t)&&(t.dataTransfer.setData("Text",n.getSelection()),t.dataTransfer.setDragImage&&!bc)){var r=i("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";et&&(r.width=r.height=1,n.display.wrapper.appendChild(r),r._top=r.offsetTop);t.dataTransfer.setDragImage(r,0,0);et&&r.parentNode.removeChild(r)}}function ku(n,t){Math.abs(n.doc.scrollTop-t)<2||(n.doc.scrollTop=t,fu||as(n,{top:t}),n.display.scroller.scrollTop!=t&&(n.display.scroller.scrollTop=t),n.display.scrollbars.setScrollTop(t),fu&&as(n),vu(n,100))}function ar(n,t,i){(i?t==n.doc.scrollLeft:Math.abs(n.doc.scrollLeft-t)<2)||(t=Math.min(t,n.display.scroller.scrollWidth-n.display.scroller.clientWidth),n.doc.scrollLeft=t,ss(n),n.display.scroller.scrollLeft!=t&&(n.display.scroller.scrollLeft=t),n.display.scrollbars.setScrollLeft(t))}function ba(n,t){var a=sh(t),e=a.x,u=a.y,i=n.display,r=i.scroller,f,h,o;if(e&&r.scrollWidth>r.clientWidth||u&&r.scrollHeight>r.clientHeight){if(u&&ot&&p)n:for(f=t.target,h=i.view;f!=r;f=f.parentNode)for(o=0;o<h.length;o++)if(h[o].node==f){n.display.currentWheelTarget=f;break n}if(e&&!fu&&!et&&it!=null){u&&ku(n,Math.max(0,Math.min(r.scrollTop+u*it,r.scrollHeight-r.clientHeight)));ar(n,Math.max(0,Math.min(r.scrollLeft+e*it,r.scrollWidth-r.clientWidth)));d(t);i.wheelStartX=null;return}if(u&&it!=null){var c=u*it,s=n.doc.scrollTop,l=s+i.wrapper.clientHeight;c<0?s=Math.max(0,s+c-50):l=Math.min(n.doc.height,l+c+50);as(n,{top:s,bottom:l})}du<20&&(i.wheelStartX==null?(i.wheelStartX=r.scrollLeft,i.wheelStartY=r.scrollTop,i.wheelDX=e,i.wheelDY=u,setTimeout(function(){if(i.wheelStartX!=null){var n=r.scrollLeft-i.wheelStartX,t=r.scrollTop-i.wheelStartY,u=t&&i.wheelDY&&t/i.wheelDY||n&&i.wheelDX&&n/i.wheelDX;(i.wheelStartX=i.wheelStartY=null,u)&&(it=(it*du+u)/(du+1),++du)}},200)):(i.wheelDX+=e,i.wheelDY+=u))}}function be(n,t,i){if(typeof t=="string"&&(t=tf[t],!t))return!1;n.display.pollingFast&&ve(n)&&(n.display.pollingFast=!1);var u=n.display.shift,r=!1;try{ye(n)&&(n.state.suppressEdits=!0);i&&(n.display.shift=!1);r=t(n)!=ep}finally{n.display.shift=u;n.state.suppressEdits=!1}return r}function gb(n,t,i){for(var u,r=0;r<n.state.keyMaps.length;r++)if(u=rf(t,n.state.keyMaps[r],i,n),u)return u;return n.options.extraKeys&&rf(t,n.options.extraKeys,i,n)||rf(t,n.options.keyMap,i,n)}function ke(n,t,i,r){var f=n.state.keySeq,u;if(f){if(hk(t))return"handled";ka.set(50,function(){n.state.keySeq==f&&(n.state.keySeq=null,ht(n))});t=f+" "+t}return(u=gb(n,t,r),u=="multi"&&(n.state.keySeq=t),u=="handled"&&g(n,"keyHandled",n,t,i),(u=="handled"||u=="multi")&&(d(i),gs(n)),f&&!u&&/\'$/.test(t))?(d(i),!0):!!u}function da(n,t){var i=ck(t,!0);return i?t.shiftKey&&!n.state.keySeq?ke(n,"Shift-"+i,t,function(t){return be(n,t,!0)})||ke(n,i,t,function(t){if(typeof t=="string"?/^go[A-Z]/.test(t):t.motion)return be(n,t)}):ke(n,i,t,function(t){return be(n,t)}):!1}function nk(n,t,i){return ke(n,"'"+i+"'",t,function(t){return be(n,t,!0)})}function ga(n){var t=this,i,r;(eh(t),ct(t,n))||(s&&h<11&&n.keyCode==27&&(n.returnValue=!1),i=n.keyCode,t.display.shift=i==16||n.shiftKey,r=da(t,n),et&&(de=r?i:null,r||i!=88||pp||!(ot?n.metaKey:n.ctrlKey)||t.replaceSelection("",null,"cut")),i!=18||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||tk(t))}function tk(n){function t(n){n.keyCode!=18&&n.altKey||(ru(i,"CodeMirror-crosshair"),ri(document,"keyup",t),ri(document,"mouseover",t))}var i=n.display.lineDiv;uu(i,"CodeMirror-crosshair");o(document,"keyup",t);o(document,"mouseover",t)}function nv(n){n.keyCode==16&&(this.doc.sel.shift=!1);ct(this,n)}function tv(n){var t=this,i,r,u;if(!ct(t,n)&&(!n.ctrlKey||n.altKey)&&(!ot||!n.metaKey)){if(i=n.keyCode,r=n.charCode,et&&i==de){de=null;d(n);return}(et&&(!n.which||n.which<10)||bo)&&da(t,n)||(u=String.fromCharCode(r==null?i:r),nk(t,n,u))||(s&&h>=9&&(t.display.inputHasSelection=null),ae(t))}}function hh(n){n.options.readOnly!="nocursor"&&(n.state.focused||(y(n,"focus",n),n.state.focused=!0,uu(n.display.wrapper,"CodeMirror-focused"),n.curOp||n.display.selForContextMenu==n.doc.sel||(ht(n),p&&setTimeout(wt(ht,n,!0),0))),le(n),gs(n))}function ge(n){n.state.focused&&(y(n,"blur",n),n.state.focused=!1,ru(n.display.wrapper,"CodeMirror-focused"));clearInterval(n.display.blinker);setTimeout(function(){n.state.focused||(n.display.shift=!1)},150)}function iv(n,t){function a(){if(i.input.selectionStart!=null){var t=n.somethingSelected(),r=i.input.value="​"+(t?i.input.value:"");i.prevInput=t?"":"​";i.input.selectionStart=1;i.input.selectionEnd=r.length;i.selForContextMenu=n.doc.sel}}function y(){if(i.contextMenuPending=!1,i.inputDiv.style.position="relative",i.input.style.cssText=c,s&&h<9&&i.scrollbars.setScrollTop(i.scroller.scrollTop=f),le(n),i.input.selectionStart!=null){(!s||s&&h<9)&&a();var r=0,t=function(){i.selForContextMenu==n.doc.sel&&i.input.selectionStart==0?v(n,tf.selectAll)(n):r++<10?i.detectingSelectAll=setTimeout(t,500):ht(n)};i.detectingSelectAll=setTimeout(t,200)}}var i,r,f,e,c,l,u;ct(n,t,"contextmenu")||(i=n.display,ir(i,t)||ik(n,t))||(r=lr(n,t),f=i.scroller.scrollTop,r&&!et)&&(e=n.options.resetSelectionOnContextMenu,e&&n.doc.sel.contains(r)==-1&&v(n,k)(n.doc,bi(r),vi),c=i.input.style.cssText,i.inputDiv.style.position="absolute",i.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(t.clientY-5)+"px; left: "+(t.clientX-5)+"px; z-index: 1000; background: "+(s?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",p&&(l=window.scrollY),rt(n),p&&window.scrollTo(null,l),ht(n),n.somethingSelected()||(i.input.value=i.prevInput=" "),i.contextMenuPending=!0,i.selForContextMenu=n.doc.sel,clearTimeout(i.detectingSelectAll),s&&h>=9&&a(),go?(ao(t),u=function(){ri(window,"mouseup",u);setTimeout(y,20)},o(window,"mouseup",u)):setTimeout(y,50))}function ik(n,t){return lt(n,"gutterContextMenu")?pa(n,t,"gutterContextMenu",!1,y):!1}function rv(n,i){if(e(n,i.from)<0)return n;if(e(n,i.to)<=0)return ni(i);var u=n.line+i.text.length-(i.to.line-i.from.line)-1,r=n.ch;return n.line==i.to.line&&(r+=ni(i).ch-i.to.ch),t(u,r)}function ch(n,t){for(var r,u=[],i=0;i<n.sel.ranges.length;i++)r=n.sel.ranges[i],u.push(new c(rv(r.anchor,t),rv(r.head,t)));return st(u,n.sel.primIndex)}function uv(n,i,r){return n.line==i.line?t(r.line,n.ch-i.ch+r.ch):t(r.line+(n.line-i.line),n.ch)}function rk(n,i,r){for(var v,y,s=[],f=t(n.first,0),h=f,u=0;u<i.length;u++){var l=i[u],o=uv(l.from,f,h),a=uv(ni(l),f,h);f=l.to;h=a;r=="around"?(v=n.sel.ranges[u],y=e(v.head,v.anchor)<0,s[u]=new c(y?a:o,y?o:a)):s[u]=new c(o,o)}return new kt(s,n.sel.primIndex)}function fv(n,t,i){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){this.canceled=!0}};return(i&&(r.update=function(t,i,r,f){t&&(this.from=u(n,t));i&&(this.to=u(n,i));r&&(this.text=r);f!==undefined&&(this.origin=f)}),y(n,"beforeChange",n,r),n.cm&&y(n.cm,"beforeChange",n.cm,r),r.canceled)?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function vr(n,t,i){var u,r;if(n.cm){if(!n.cm.curOp)return v(n.cm,vr)(n,t,i);if(n.cm.state.suppressEdits)return}if(!lt(n,"beforeChange")&&(!n.cm||!lt(n.cm,"beforeChange"))||(t=fv(n,t,!0),t))if(u=dc&&!i&&kk(n,t.from,t.to),u)for(r=u.length-1;r>=0;--r)ev(n,{from:u[r].from,to:u[r].to,text:r?[""]:t.text});else ev(n,t)}function ev(n,t){var i,r;(t.text.length!=1||t.text[0]!=""||e(t.from,t.to)!=0)&&(i=ch(n,t),ky(n,t,i,n.cm?n.cm.curOp.id:NaN),gu(n,t,i,ph(n,t)),r=[],er(n,function(n,i){i||b(r,n.history)!=-1||(tp(n.history,t),r.push(n.history));gu(n,t,null,ph(n,t))}))}function no(n,t,i){var h,v,f,u,y,c;if(!n.cm||!n.cm.state.suppressEdits){var e=n.history,r,a=n.sel,o=t=="undo"?e.done:e.undone,s=t=="undo"?e.undone:e.done;for(f=0;f<o.length;f++)if(r=o[f],i?r.ranges&&!r.equals(n.sel):!r.ranges)break;if(f!=o.length){for(e.lastOrigin=e.lastSelOrigin=null;;)if(r=o.pop(),r.ranges){if(lo(r,s),i&&!r.equals(n.sel)){k(n,r,{clearRedo:!1});return}a=r}else break;for(h=[],lo(a,s),s.push({changes:h,generation:e.generation}),e.generation=r.generation||++e.maxGeneration,v=lt(n,"beforeChange")||n.cm&&lt(n.cm,"beforeChange"),f=r.changes.length-1;f>=0;--f){if(u=r.changes[f],u.origin=t,v&&!fv(n,u,!1)){o.length=0;return}h.push(tc(n,u));y=f?ch(n,u):l(o);gu(n,u,y,yv(n,u));!f&&n.cm&&n.cm.scrollIntoView({from:u.from,to:ni(u)});c=[];er(n,function(n,t){t||b(c,n.history)!=-1||(tp(n.history,u),c.push(n.history));gu(n,u,null,yv(n,u))})}}}}function ov(n,i){if(i!=0&&(n.first+=i,n.sel=new kt(tu(n.sel.ranges,function(n){return new c(t(n.anchor.line+i,n.anchor.ch),t(n.head.line+i,n.head.ch))}),n.sel.primIndex),n.cm)){ut(n.cm,n.first,n.first-i,i);for(var u=n.cm.display,r=u.viewFrom;r<u.viewTo;r++)gt(n.cm,r,"gutter")}}function gu(n,i,u,f){var o,e;if(n.cm&&!n.cm.curOp)return v(n.cm,gu)(n,i,u,f);if(i.to.line<n.first){ov(n,i.text.length-1-(i.to.line-i.from.line));return}i.from.line>n.lastLine()||(i.from.line<n.first&&(o=i.text.length-1-(n.first-i.from.line),ov(n,o),i={from:t(n.first,0),to:t(i.to.line+o,i.to.ch),text:[l(i.text)],origin:i.origin}),e=n.lastLine(),i.to.line>e&&(i={from:i.from,to:t(e,r(n,e).text.length),text:[i.text[0]],origin:i.origin}),i.removed=vf(n,i.from,i.to),u||(u=ch(n,i)),n.cm?uk(n.cm,i,f):gh(n,i,f),ue(n,u,vi))}function uk(n,t,i){var f=n.doc,e=n.display,u=t.from,o=t.to,s=!1,h=u.line,y,c,l,v;n.options.lineWrapping||(h=a(vt(r(f,u.line))),f.iter(h,o.line+1,function(n){if(n==e.maxLine)return s=!0,!0}));f.sel.contains(t.from,t.to)>-1&&up(n);gh(f,t,i,gc(n));n.options.lineWrapping||(f.iter(h,u.line+t.text.length,function(n){var t=ne(n);t>e.maxLineLength&&(e.maxLine=n,e.maxLineLength=t,e.maxLineChanged=!0,s=!1)}),s&&(n.curOp.updateMaxLine=!0));f.frontier=Math.min(f.frontier,u.line);vu(n,400);y=t.text.length-(o.line-u.line)-1;u.line!=o.line||t.text.length!=1||vy(n.doc,t)?ut(n,u.line,o.line+1,y):gt(n,u.line,"text");c=lt(n,"changes");l=lt(n,"change");(l||c)&&(v={from:u,to:o,text:t.text,removed:t.removed,origin:t.origin},l&&g(n,"change",n,v),c&&(n.curOp.changeObjs||(n.curOp.changeObjs=[])).push(v));n.display.selForContextMenu=null}function to(n,t,i,r,u){if(r||(r=i),e(r,i)<0){var f=r;r=i;i=f}typeof t=="string"&&(t=hr(t));vr(n,{from:i,to:r,text:t,origin:u})}function fk(n,t){var u;if(!ct(n,"scrollCursorIntoView")){var f=n.display,e=f.sizer.getBoundingClientRect(),r=null;t.top+e.top<0?r=!0:t.bottom+e.top>(window.innerHeight||document.documentElement.clientHeight)&&(r=!1);r==null||iw||(u=i("div","​",null,"position: absolute; top: "+(t.top-f.viewOffset-ee(n.display))+"px; height: "+(t.bottom-t.top+at(n)+f.barHeight)+"px; left: "+t.left+"px; width: 2px;"),n.display.lineSpace.appendChild(u),u.scrollIntoView(r),n.display.lineSpace.removeChild(u))}}function ek(n,t,i,r){var o;for(r==null&&(r=0),o=0;o<5;o++){var s=!1,u=dt(n,t),f=!i||i==t?u:dt(n,i),e=io(n,Math.min(u.left,f.left),Math.min(u.top,f.top)-r,Math.max(u.left,f.left),Math.max(u.bottom,f.bottom)+r),h=n.doc.scrollTop,c=n.doc.scrollLeft;if(e.scrollTop!=null&&(ku(n,e.scrollTop),Math.abs(n.doc.scrollTop-h)>1&&(s=!0)),e.scrollLeft!=null&&(ar(n,e.scrollLeft),Math.abs(n.doc.scrollLeft-c)>1&&(s=!0)),!s)break}return u}function ok(n,t,i,r,u){var f=io(n,t,i,r,u);f.scrollTop!=null&&ku(n,f.scrollTop);f.scrollLeft!=null&&ar(n,f.scrollLeft)}function io(n,t,i,r,u){var e=n.display,a=di(n.display),c;i<0&&(i=0);var h=n.curOp&&n.curOp.scrollTop!=null?n.curOp.scrollTop:e.scroller.scrollTop,o=th(n),f={};u-i>o&&(u=i+o);var v=n.doc.height+nh(e),p=i<a,w=u>v-a;i<h?f.scrollTop=p?0:i:u>h+o&&(c=Math.min(i,(w?v:u)-o),c!=h&&(f.scrollTop=c));var y=n.curOp&&n.curOp.scrollLeft!=null?n.curOp.scrollLeft:e.scroller.scrollLeft,s=ei(n)-(n.options.fixedGutter?e.gutters.offsetWidth:0),l=r-t>s;return l&&(r=t+s),t<10?f.scrollLeft=0:t<y?f.scrollLeft=Math.max(0,t-(l?0:10)):r>s+y-3&&(f.scrollLeft=r+(l?0:10)-s),f}function lh(n,t,i){(t!=null||i!=null)&&ro(n);t!=null&&(n.curOp.scrollLeft=(n.curOp.scrollLeft==null?n.doc.scrollLeft:n.curOp.scrollLeft)+t);i!=null&&(n.curOp.scrollTop=(n.curOp.scrollTop==null?n.doc.scrollTop:n.curOp.scrollTop)+i)}function yr(n){ro(n);var i=n.getCursor(),r=i,u=i;n.options.lineWrapping||(r=i.ch?t(i.line,i.ch-1):i,u=t(i.line,i.ch+1));n.curOp.scrollToPos={from:r,to:u,margin:n.options.cursorScrollMargin,isCursor:!0}}function ro(n){var t=n.curOp.scrollToPos;if(t){n.curOp.scrollToPos=null;var i=ca(n,t.from),r=ca(n,t.to),u=io(n,Math.min(i.left,r.left),Math.min(i.top,r.top)-t.margin,Math.max(i.right,r.right),Math.max(i.bottom,r.bottom)+t.margin);n.scrollTo(u.scrollLeft,u.scrollTop)}}function nf(n,i,u,f){var o=n.doc,b,a,e,v,h,w,l;u==null&&(u="add");u=="smart"&&(o.mode.indent?b=yu(n,i):u="prev");var y=n.options.tabSize,s=r(o,i),p=ft(s.text,null,y);if(s.stateAfter&&(s.stateAfter=null),a=s.text.match(/^\s*/)[0],f||/\S/.test(s.text)){if(u=="smart"&&(e=o.mode.indent(b,s.text.slice(a.length),s.text),e==ep||e>150)){if(!f)return;u="prev"}}else e=0,u="not";if(u=="prev"?e=i>o.first?ft(r(o,i-1).text,null,y):0:u=="add"?e=p+n.options.indentUnit:u=="subtract"?e=p-n.options.indentUnit:typeof u=="number"&&(e=p+u),e=Math.max(0,e),v="",l=0,n.options.indentWithTabs)for(h=Math.floor(e/y);h;--h)l+=y,v+="\t";if(l<e&&(v+=sp(e-l)),v!=a)to(o,v,t(i,0),t(i,a.length),"+input");else for(h=0;h<o.sel.ranges.length;h++)if(w=o.sel.ranges[h],w.head.line==i&&w.head.ch<a.length){l=t(i,a.length);ds(o,h,new c(l,l));break}s.stateAfter=null}function uo(n,t,i,u){var f=t,e=t;return(typeof t=="number"?e=r(n,vl(n,t)):f=a(t),f==null)?null:(u(e,f)&&n.cm&&gt(n.cm,f,i),e)}function pr(n,t){for(var r,f,o=n.doc.sel.ranges,i=[],u=0;u<o.length;u++){for(r=t(o[u]);i.length&&e(r.from,l(i).to)<=0;)if(f=i.pop(),e(f.from,r.from)<0){r.from=f.from;break}i.push(r)}oi(n,function(){for(var t=i.length-1;t>=0;t--)to(n.doc,"",i[t].from,i[t].to,"+delete");yr(n)})}function ah(n,i,u,f,e){function d(){var t=a+u;return t<n.first||t>=n.first+n.size?y=!1:(a=t,h=r(n,t))}function c(n){var t=(e?yc:kp)(h,o,u,!0);if(t==null)if(!n&&d())o=e?(u<0?wo:po)(h):u<0?h.text.length:0;else return y=!1;else o=t;return!0}var a=i.line,o=i.ch,k=u,h=r(n,a),y=!0,l,v,s,b;if(f=="char")c();else if(f=="column")c(!0);else if(f=="word"||f=="group"){var p=null,w=f=="group",g=n.cm&&n.cm.getHelper(i,"wordChars");for(l=!0;;l=!1){if(u<0&&!c(!l))break;if(v=h.text.charAt(o)||"\n",s=yo(v,g)?"w":w&&v=="\n"?"n":!w||/\s/.test(v)?null:"p",!w||l||s||(s="s"),p&&p!=s){u<0&&(u=1,c());break}if(s&&(p=s),u>0&&!c(!l))break}}return b=fe(n,t(a,o),k,!0),y||(b.hitSide=!0),b}function sv(n,t,i,r){var o=n.doc,s=t.left,u,e,f;for(r=="page"?(e=Math.min(n.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=t.top+i*(e-(i<0?1.5:.5)*di(n.display))):r=="line"&&(u=i>0?t.bottom+3:t.top-3);;){if(f=fh(n,s,u),!f.outside)break;if(i<0?u<=0:u>=o.height){f.hitSide=!0;break}u+=i*5}return f}function f(t,i,r,u){n.defaults[t]=i;r&&(rr[t]=u?function(n,t,i){i!=vh&&r(n,t,i)}:r)}function sk(n){for(var t,i=n.split(/-(?!$)/),n=i[i.length-1],u,f,e,o,r=0;r<i.length-1;r++)if(t=i[r],/^(cmd|meta|m)$/i.test(t))o=!0;else if(/^a(lt)?$/i.test(t))u=!0;else if(/^(c|ctrl|control)$/i.test(t))f=!0;else if(/^s(hift)$/i.test(t))e=!0;else throw new Error("Unrecognized modifier name: "+t);return u&&(n="Alt-"+n),f&&(n="Ctrl-"+n),o&&(n="Cmd-"+n),e&&(n="Shift-"+n),n}function eo(n){return typeof n=="string"?ti[n]:n}function kr(n,t,r,u,f){var s,a,c,h,y,l;if(u&&u.shared)return lk(n,t,r,u,f);if(n.cm&&!n.cm.curOp)return v(n.cm,kr)(n,t,r,u,f);if(s=new li(n,f),a=e(t,r),u&&yi(u,s,!1),a>0||a==0&&s.clearWhenEmpty!==!1)return s;if(s.replacedWith&&(s.collapsed=!0,s.widgetNode=i("span",[s.replacedWith],"CodeMirror-widget"),u.handleMouseEvents||s.widgetNode.setAttribute("cm-ignore-events","true"),u.insertLeft&&(s.widgetNode.insertLeft=!0)),s.collapsed){if(gv(n,t.line,t,r,s)||t.line!=r.line&&gv(n,r.line,t,r,s))throw new Error("Inserting collapsed marker partially overlapping an existing one");fi=!0}if(s.addToHistory&&ky(n,{from:t,to:r,origin:"markText"},n.sel,NaN),c=t.line,h=n.cm,n.iter(c,r.line+1,function(n){h&&s.collapsed&&!h.options.lineWrapping&&vt(n)==h.display.maxLine&&(y=!0);s.collapsed&&c!=t.line&&yt(n,0);pk(n,new oo(s,c==t.line?t.ch:null,c==r.line?r.ch:null));++c}),s.collapsed&&n.iter(t.line,r.line+1,function(t){fr(n,t)&&yt(t,0)}),s.clearOnEnter&&o(s,"beforeCursorEnter",function(){s.clear()}),s.readOnly&&(dc=!0,(n.history.done.length||n.history.undone.length)&&n.clearHistory()),s.collapsed&&(s.id=++lv,s.atomic=!0),h){if(y&&(h.curOp.updateMaxLine=!0),s.collapsed)ut(h,t.line,r.line+1);else if(s.className||s.title||s.startStyle||s.endStyle||s.css)for(l=t.line;l<=r.line;l++)gt(h,l,"text");s.atomic&&kl(h.doc);g(h,"markerAdded",h,s)}return s}function lk(n,t,i,r,f){r=yi(r);r.shared=!1;var e=[kr(n,t,i,r,f)],o=e[0],s=r.widgetNode;return er(n,function(n){s&&(r.widgetNode=s.cloneNode(!0));e.push(kr(n,u(n,t),u(n,i),r,f));for(var h=0;h<n.linked.length;++h)if(n.linked[h].isParent)return;o=l(e)}),new ff(e,o)}function av(n){return n.findMarks(t(n.first,0),n.clipPos(t(n.lastLine())),function(n){return n.parent})}function ak(n,t){for(var u,r=0;r<t.length;r++){var i=t[r],f=i.find(),o=n.clipPos(f.from),s=n.clipPos(f.to);e(o,s)&&(u=kr(n,o,s,i.primary,i.primary.type),i.markers.push(u),u.parent=i)}}function vk(n){for(var t,u,i,f,r=0;r<n.length;r++)for(t=n[r],u=[t.primary.doc],er(t.primary.doc,function(n){u.push(n)}),i=0;i<t.markers.length;i++)f=t.markers[i],b(u,f.doc)==-1&&(f.parent=null,t.markers.splice(i--,1))}function oo(n,t,i){this.marker=n;this.from=t;this.to=i}function ef(n,t){var i,r;if(n)for(i=0;i<n.length;++i)if(r=n[i],r.marker==t)return r}function yk(n,t){for(var r,i=0;i<n.length;++i)n[i]!=t&&(r||(r=[])).push(n[i]);return r}function pk(n,t){n.markedSpans=n.markedSpans?n.markedSpans.concat([t]):[t];t.marker.attachLine(n)}function wk(n,t,i){var u,e,o;if(n)for(u=0;u<n.length;++u){var r=n[u],f=r.marker,s=r.from==null||(f.inclusiveLeft?r.from<=t:r.from<t);!s&&(r.from!=t||f.type!="bookmark"||i&&r.marker.insertLeft)||(o=r.to==null||(f.inclusiveRight?r.to>=t:r.to>t),(e||(e=[])).push(new oo(f,r.from,o?null:r.to)))}return e}function bk(n,t,i){var u,e,o;if(n)for(u=0;u<n.length;++u){var r=n[u],f=r.marker,s=r.to==null||(f.inclusiveRight?r.to>=t:r.to>t);(s||r.from==t&&f.type=="bookmark"&&(!i||r.marker.insertLeft))&&(o=r.from==null||(f.inclusiveLeft?r.from<=t:r.from<t),(e||(e=[])).push(new oo(f,o?null:r.from-t,r.to==null?null:r.to-t)))}return e}function ph(n,t){var w=cu(n,t.from.line)&&r(n,t.from.line).markedSpans,b=cu(n,t.to.line)&&r(n,t.to.line).markedSpans,f,s,a,y,p,u;if(!w&&!b)return null;var v=t.from.ch,d=t.to.ch,k=e(t.from,t.to)==0,i=wk(w,v,k),o=bk(b,d,k),h=t.text.length==1,c=l(t.text).length+(h?v:0);if(i)for(u=0;u<i.length;++u)f=i[u],f.to==null&&(s=ef(o,f.marker),s?h&&(f.to=s.to==null?null:s.to+c):f.to=v);if(o)for(u=0;u<o.length;++u)f=o[u],f.to!=null&&(f.to+=c),f.from==null?(s=ef(i,f.marker),s||(f.from=c,h&&(i||(i=[])).push(f))):(f.from+=c,h&&(i||(i=[])).push(f));if(i&&(i=vv(i)),o&&o!=i&&(o=vv(o)),a=[i],!h){if(y=t.text.length-2,y>0&&i)for(u=0;u<i.length;++u)i[u].to==null&&(p||(p=[])).push(new oo(i[u].marker,null,null));for(u=0;u<y;++u)a.push(p);a.push(o)}return a}function vv(n){for(var i,t=0;t<n.length;++t)i=n[t],i.from!=null&&i.from==i.to&&i.marker.clearWhenEmpty!==!1&&n.splice(t--,1);return n.length?n:null}function yv(n,t){var i=ld(n,t),s=ph(n,t),r,f,u,e,h,o;if(!i)return s;if(!s)return i;for(r=0;r<i.length;++r)if(f=i[r],u=s[r],f&&u)n:for(e=0;e<u.length;++e){for(h=u[e],o=0;o<f.length;++o)if(f[o].marker==h.marker)continue n;f.push(h)}else u&&(i[r]=u);return i}function kk(n,t,i){var r=null,o,h,c,u,s,f;if(n.iter(t.line,i.line+1,function(n){var t,i;if(n.markedSpans)for(t=0;t<n.markedSpans.length;++t)i=n.markedSpans[t].marker,i.readOnly&&(!r||b(r,i)==-1)&&(r||(r=[])).push(i)}),!r)return null;for(o=[{from:t,to:i}],h=0;h<r.length;++h)for(c=r[h],u=c.find(0),s=0;s<o.length;++s)if(f=o[s],!(e(f.to,u.from)<0)&&!(e(f.from,u.to)>0)){var l=[s,1],a=e(f.from,u.from),v=e(f.to,u.to);(a<0||!c.inclusiveLeft&&!a)&&l.push({from:f.from,to:u.from});(v>0||!c.inclusiveRight&&!v)&&l.push({from:u.to,to:f.to});o.splice.apply(o,l);s+=l.length-1}return o}function pv(n){var i=n.markedSpans,t;if(i){for(t=0;t<i.length;++t)i[t].marker.detachLine(n);n.markedSpans=null}}function wv(n,t){if(t){for(var i=0;i<t.length;++i)t[i].marker.attachLine(n);n.markedSpans=t}}function so(n){return n.inclusiveLeft?-1:0}function ho(n){return n.inclusiveRight?1:0}function bv(n,t){var r=n.lines.length-t.lines.length,i;if(r!=0)return r;var u=n.find(),f=t.find(),o=e(u.from,f.from)||so(n)-so(t);return o?-o:(i=e(u.to,f.to)||ho(n)-ho(t),i)?i:t.id-n.id}function kv(n,t){var f=fi&&n.markedSpans,r,i,u;if(f)for(u=0;u<f.length;++u)i=f[u],i.marker.collapsed&&(t?i.from:i.to)==null&&(!r||bv(r,i.marker)<0)&&(r=i.marker);return r}function dv(n){return kv(n,!0)}function of(n){return kv(n,!1)}function gv(n,t,i,u,f){var v=r(n,t),l=fi&&v.markedSpans,s,o;if(l)for(s=0;s<l.length;++s)if(o=l[s],o.marker.collapsed){var h=o.marker.find(0),c=e(h.from,i)||so(o.marker)-so(f),a=e(h.to,u)||ho(o.marker)-ho(f);if((!(c>=0)||!(a<=0))&&(!(c<=0)||!(a>=0))&&(c<=0&&(e(h.to,i)>0||o.marker.inclusiveRight&&f.inclusiveLeft)||c>=0&&(e(h.from,u)<0||o.marker.inclusiveLeft&&f.inclusiveRight)))return!0}}function vt(n){for(var t;t=dv(n);)n=t.find(-1,!0).line;return n}function dk(n){for(var i,t;i=of(n);)n=i.find(1,!0).line,(t||(t=[])).push(n);return t}function wh(n,t){var i=r(n,t),u=vt(i);return i==u?t:a(u)}function ny(n,t){if(t>n.lastLine())return t;var i=r(n,t),u;if(!fr(n,i))return t;while(u=of(i))i=u.find(1,!0).line;return a(i)+1}function fr(n,t){var u=fi&&t.markedSpans,i,r;if(u)for(r=0;r<u.length;++r)if(i=u[r],i.marker.collapsed){if(i.from==null)return!0;if(!i.marker.widgetNode&&i.from==0&&i.marker.inclusiveLeft&&bh(n,t,i))return!0}}function bh(n,t,i){var f,r,u;if(i.to==null)return f=i.marker.find(1,!0),bh(n,f.line,ef(f.line.markedSpans,i.marker));if(i.marker.inclusiveRight&&i.to==t.text.length)return!0;for(u=0;u<t.markedSpans.length;++u)if(r=t.markedSpans[u],r.marker.collapsed&&!r.marker.widgetNode&&r.from==i.to&&(r.to==null||r.to!=i.from)&&(r.marker.inclusiveLeft||i.marker.inclusiveRight)&&bh(n,t,r))return!0}function ty(n,t,i){ii(t)<(n.curOp&&n.curOp.scrollTop||n.doc.scrollTop)&&lh(n,null,i)}function hf(n){if(n.height!=null)return n.height;if(!vd(document.body,n.node)){var t="position: relative;";n.coverGutter&&(t+="margin-left: -"+n.cm.getGutterElement().offsetWidth+"px;");bt(n.cm.display.measure,i("div",[n.node],null,t))}return n.height=n.node.offsetHeight}function gk(n,t,i,r){var u=new sf(n,i,r);return u.noHScroll&&(n.display.alignWidgets=!0),uo(n.doc,t,"widget",function(t){var i=t.widgets||(t.widgets=[]),r;return u.insertAt==null?i.push(u):i.splice(Math.min(i.length-1,Math.max(0,u.insertAt)),0,u),u.line=t,fr(n.doc,t)||(r=ii(t)<n.doc.scrollTop,yt(t,t.height+hf(u)),r&&lh(n,null,u.height),n.curOp.forceUpdate=!0),!0}),u}function nd(n,t,i,r){n.text=t;n.stateAfter&&(n.stateAfter=null);n.styles&&(n.styles=null);n.order!=null&&(n.order=null);pv(n);wv(n,i);var u=r?r(n):1;u!=n.height&&yt(n,u)}function td(n){n.parent=null;pv(n)}function iy(n,t){var i,r;if(n)for(;;){if(i=n.match(/(?:^|\s+)line-(background-)?(\S+)/),!i)break;n=n.slice(0,i.index)+n.slice(i.index+i[0].length);r=i[1]?"bgClass":"textClass";t[r]==null?t[r]=i[2]:new RegExp("(?:^|s)"+i[2]+"(?:$|s)").test(t[r])||(t[r]+=" "+i[2])}return n}function ry(t,i){if(t.blankLine)return t.blankLine(i);if(t.innerMode){var r=n.innerMode(t,i);if(r.mode.blankLine)return r.mode.blankLine(r.state)}}function kh(t,i,r,u){for(var e,f=0;f<10;f++)if(u&&(u[0]=n.innerMode(t,r).mode),e=t.token(i,r),i.pos>i.start)return e;throw new Error("Mode "+t.name+" failed to advance stream.");}function uy(n,t,i,f){function c(n){return{start:e.start,end:e.pos,string:e.current(),type:l||null,state:n?ur(o.mode,s):s}}var o=n.doc,a=o.mode,l;t=u(o,t);var v=r(o,t.line),s=yu(n,t.line,i),e=new uf(v.text,n.options.tabSize),h;for(f&&(h=[]);(f||e.pos<t.ch)&&!e.eol();)e.start=e.pos,l=kh(a,e,s),f&&h.push(c(!0));return f?h:c()}function fy(n,t,i,r,u,f,e){var c=i.flattenSpans,a,y;c==null&&(c=n.options.flattenSpans);var s=0,l=null,o=new uf(t,n.options.tabSize),h,v=n.options.addModeClass&&[null];for(t==""&&iy(ry(i,r),f);!o.eol();){if(o.pos>n.options.maxHighlightLength?(c=!1,e&&dh(n,t,r,o.pos),o.pos=t.length,h=null):h=iy(kh(i,o,r,v),f),v&&(a=v[0].name,a&&(h="m-"+(h?a+" "+h:a))),!c||l!=h){while(s<o.start)s=Math.min(o.start,s+5e4),u(s,l);l=h}o.start=o.pos}while(s<o.pos)y=Math.min(o.pos,s+5e4),u(y,l),s=y}function ey(n,t,i,r){var u=[n.state.modeGen],e={},o;for(fy(n,t.text,n.doc.mode,i,function(n,t){u.push(n,t)},e,r),o=0;o<n.state.overlays.length;++o){var s=n.state.overlays[o],f=1,h=0;fy(n,t.text,s.mode,!0,function(n,t){for(var i=f,r,e;h<n;)r=u[f],r>n&&u.splice(f,1,n,u[f+1],r),f+=2,h=Math.min(n,r);if(t)if(s.opaque)u.splice(i,f-i,n,"cm-overlay "+t),f=i+2;else for(;i<f;i+=2)e=u[i+1],u[i+1]=(e?e+" ":"")+"cm-overlay "+t},e)}return{styles:u,classes:e.bgClass||e.textClass?e:null}}function oy(n,t,i){if(!t.styles||t.styles[0]!=n.state.modeGen){var r=ey(n,t,t.stateAfter=yu(n,a(t)));t.styles=r.styles;r.classes?t.styleClasses=r.classes:t.styleClasses&&(t.styleClasses=null);i===n.doc.frontier&&n.doc.frontier++}return t.styles}function dh(n,t,i,r){var f=n.doc.mode,u=new uf(t,n.options.tabSize);for(u.start=u.pos=r||0,t==""&&ry(f,i);!u.eol()&&u.pos<=n.options.maxHighlightLength;)kh(f,u,i),u.start=u.pos}function cy(n,t){if(!n||/^\s*$/.test(n))return null;var i=t.addModeClass?hy:sy;return i[n]||(i[n]=n.replace(/\S+/g,"cm-$&"))}function ly(n,t){var e=i("span",null,null,p?"padding-right: .1px":null),r={pre:i("pre",[e]),content:e,col:0,pos:0,cm:n},f,u,o,h;for(t.measure={},f=0;f<=(t.rest?t.rest.length:0);f++)u=f?t.rest[f-1]:t.line,r.pos=0,r.addToken=rd,(s||p)&&n.getOption("lineWrapping")&&(r.addToken=ud(r.addToken)),bd(n.display.measure)&&(o=pt(u))&&(r.addToken=fd(r.addToken,o)),r.map=[],h=t!=n.display.externalMeasured&&a(u),ed(u,r,oy(n,u,h)),u.styleClasses&&(u.styleClasses.bgClass&&(r.bgClass=fc(u.styleClasses.bgClass,r.bgClass||"")),u.styleClasses.textClass&&(r.textClass=fc(u.styleClasses.textClass,r.textClass||""))),r.map.length==0&&r.map.push(0,0,r.content.appendChild(wd(n.display.measure))),f==0?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}));return p&&/\bcm-tab\b/.test(r.content.lastChild.className)&&(r.content.className="cm-tab-wrap-hack"),y(n,"renderLine",n,t.line,r.pre),r.pre.className&&(r.textClass=fc(r.pre.className,r.textClass||"")),r}function id(n){var t=i("span","•","cm-invalidchar");return t.title="\\u"+n.charCodeAt(0).toString(16),t}function rd(n,t,r,u,f,e,o){var p,b,c,a,y,v,l,w,k;if(t){if(p=n.cm.options.specialChars,b=!1,p.test(t))for(c=document.createDocumentFragment(),a=0;;){if(p.lastIndex=a,y=p.exec(t),v=y?y.index-a:t.length-a,v&&(l=document.createTextNode(t.slice(a,a+v)),s&&h<9?c.appendChild(i("span",[l])):c.appendChild(l),n.map.push(n.pos,n.pos+v,l),n.col+=v,n.pos+=v),!y)break;if(a+=v+1,y[0]=="\t"){var d=n.cm.options.tabSize,g=d-n.col%d,l=c.appendChild(i("span",sp(g),"cm-tab"));n.col+=g}else l=n.cm.options.specialCharPlaceholder(y[0]),s&&h<9?c.appendChild(i("span",[l])):c.appendChild(l),n.col+=1;n.map.push(n.pos,n.pos+1,l);n.pos++}else n.col+=t.length,c=document.createTextNode(t),n.map.push(n.pos,n.pos+t.length,c),s&&h<9&&(b=!0),n.pos+=t.length;if(r||u||f||b||o)return w=r||"",u&&(w+=u),f&&(w+=f),k=i("span",[c],w,o),e&&(k.title=e),n.content.appendChild(k);n.content.appendChild(c)}}function ud(n){function t(n){for(var i=" ",t=0;t<n.length-2;++t)i+=t%2?" ":" ";return i+" "}return function(i,r,u,f,e,o){n(i,r.replace(/ {3,}/g,t),u,f,e,o)}}function fd(n,t){return function(i,r,u,f,e,o){var s,l,c,h;for(u=u?u+" cm-force-border":"cm-force-border",s=i.pos,l=s+r.length;;){for(c=0;c<t.length;c++)if(h=t[c],h.to>s&&h.from<=s)break;if(h.to>=l)return n(i,r,u,f,e,o);n(i,r.slice(0,h.to-s),u,f,null,o);f=null;r=r.slice(h.to-s);s=h.to}}}function ay(n,t,i,r){var u=!r&&i.widgetNode;u&&(n.map.push(n.pos,n.pos+t,u),n.content.appendChild(u));n.pos+=t}function ed(n,t,i){var d=n.markedSpans,g=n.text,v=0,h,a,f,r,s,l,k,rt;if(!d){for(h=1;h<i.length;h+=2)t.addToken(t,g.slice(v,v=i[h]),cy(i[h+1],t.cm.options));return}for(var nt=g.length,u=0,h=1,c="",tt,it,o=0,y,p,w,b,e;;){if(o==u){for(y=p=w=b=it="",e=null,o=Infinity,a=[],s=0;s<d.length;++s)f=d[s],r=f.marker,f.from<=u&&(f.to==null||f.to>u)?(f.to!=null&&o>f.to&&(o=f.to,p=""),r.className&&(y+=" "+r.className),r.css&&(it=r.css),r.startStyle&&f.from==u&&(w+=" "+r.startStyle),r.endStyle&&f.to==o&&(p+=" "+r.endStyle),r.title&&!b&&(b=r.title),r.collapsed&&(!e||bv(e.marker,r)<0)&&(e=f)):f.from>u&&o>f.from&&(o=f.from),r.type=="bookmark"&&f.from==u&&r.widgetNode&&a.push(r);if(e&&(e.from||0)==u&&(ay(t,(e.to==null?nt+1:e.to)-u,e.marker,e.from==null),e.to==null))return;if(!e&&a.length)for(s=0;s<a.length;++s)ay(t,0,a[s])}if(u>=nt)break;for(l=Math.min(nt,o);;){if(c){if(k=u+c.length,e||(rt=k>l?c.slice(0,l-u):c,t.addToken(t,rt,tt?tt+y:y,w,u+rt.length==o?p:"",b,it)),k>=l){c=c.slice(l-u);u=l;break}u=k;w=""}c=g.slice(v,v=i[h++]);tt=cy(i[h++],t.cm.options)}}}function vy(n,t){return t.from.ch==0&&t.to.ch==0&&l(t.text)==""&&(!n.cm||n.cm.options.wholeLineUpdateBefore)}function gh(n,t,i,u){function c(n){return i?i[n]:null}function a(n,i,r){nd(n,i,r,u);g(n,"change",n,t)}var o=t.from,v=t.to,e=t.text,s=r(n,o.line),y=r(n,v.line),b=l(e),w=c(e.length-1),p=v.line-o.line,f,h;if(vy(n,t)){for(f=0,h=[];f<e.length-1;++f)h.push(new ai(e[f],c(f),u));a(y,y.text,w);p&&n.remove(o.line,p);h.length&&n.insert(o.line,h)}else if(s==y)if(e.length==1)a(s,s.text.slice(0,o.ch)+b+s.text.slice(v.ch),w);else{for(h=[],f=1;f<e.length-1;++f)h.push(new ai(e[f],c(f),u));h.push(new ai(b+s.text.slice(v.ch),w,u));a(s,s.text.slice(0,o.ch)+e[0],c(0));n.insert(o.line+1,h)}else if(e.length==1)a(s,s.text.slice(0,o.ch)+e[0]+y.text.slice(v.ch),c(0)),n.remove(o.line+1,p);else{for(a(s,s.text.slice(0,o.ch)+e[0],c(0)),a(y,b+y.text.slice(v.ch),w),f=1,h=[];f<e.length-1;++f)h.push(new ai(e[f],c(f),u));p>1&&n.remove(o.line+1,p-1);n.insert(o.line+1,h)}g(n,"change",n,t)}function cf(n){this.lines=n;this.parent=null;for(var t=0,i=0;t<n.length;++t)n[t].parent=this,i+=n[t].height;this.height=i}function lf(n){var r,u,t,i;for(this.children=n,r=0,u=0,t=0;t<n.length;++t)i=n[t],r+=i.chunkSize(),u+=i.height,i.parent=this;this.size=r;this.height=u;this.parent=null}function er(n,t,i){function r(n,u,f){var o,e,s;if(n.linked)for(o=0;o<n.linked.length;++o)(e=n.linked[o],e.doc!=u)&&(s=f&&e.sharedHist,!i||s)&&(t(e.doc,s),r(e.doc,n,s))}r(n,null,!0)}function wy(n,t){if(t.cm)throw new Error("This document is already in use.");n.doc=t;t.cm=n;ts(n);ns(n);n.options.lineWrapping||rs(n);n.options.mode=t.modeOption;ut(n)}function r(n,t){var i,r,u,f;if(t-=n.first,t<0||t>=n.size)throw new Error("There is no line "+(t+n.first)+" in the document.");for(i=n;!i.lines;)for(r=0;;++r){if(u=i.children[r],f=u.chunkSize(),t<f){i=u;break}t-=f}return i.lines[t]}function vf(n,t,i){var u=[],r=t.line;return n.iter(t.line,i.line+1,function(n){var f=n.text;r==i.line&&(f=f.slice(0,i.ch));r==t.line&&(f=f.slice(t.ch));u.push(f);++r}),u}function nc(n,t,i){var r=[];return n.iter(t,i,function(n){r.push(n.text)}),r}function yt(n,t){var r=t-n.height,i;if(r)for(i=n;i;i=i.parent)i.height+=r}function a(n){var i,u,t,r;if(n.parent==null)return null;for(i=n.parent,u=b(i.lines,n),t=i.parent;t;i=t,t=t.parent)for(r=0;;++r){if(t.children[r]==i)break;u+=t.children[r].chunkSize()}return u+i.first}function or(n,t){var u=n.first,r,f,i,o,e;n:do{for(i=0;i<n.children.length;++i){if(r=n.children[i],f=r.height,t<f){n=r;continue n}t-=f;u+=r.chunkSize()}return u}while(!n.lines);for(i=0;i<n.lines.length;++i){if(o=n.lines[i],e=o.height,t<e)break;t-=e}return u+i}function ii(n){var u,i,f,r,t,e;for(n=vt(n),u=0,i=n.parent,t=0;t<i.lines.length;++t)if(f=i.lines[t],f==n)break;else u+=f.height;for(r=i.parent;r;i=r,r=i.parent)for(t=0;t<r.children.length;++t)if(e=r.children[t],e==i)break;else u+=e.height;return u}function pt(n){var t=n.order;return t==null&&(t=n.order=dp(n.text)),t}function co(n){this.done=[];this.undone=[];this.undoDepth=Infinity;this.lastModTime=this.lastSelTime=0;this.lastOp=this.lastSelOp=null;this.lastOrigin=this.lastSelOrigin=null;this.generation=this.maxGeneration=n||1}function tc(n,t){var i={from:ws(t.from),to:ni(t),text:vf(n,t.from,t.to)};return dy(n,i,t.from.line,t.to.line+1),er(n,function(n){dy(n,i,t.from.line,t.to.line+1)},!0),i}function by(n){while(n.length){var t=l(n);if(t.ranges)n.pop();else break}}function od(n,t){return t?(by(n.done),l(n.done)):n.done.length&&!l(n.done).ranges?l(n.done):n.done.length>1&&!n.done[n.done.length-2].ranges?(n.done.pop(),l(n.done)):void 0}function ky(n,t,i,r){var u=n.history,s,f,o,h;if(u.undone.length=0,s=+new Date,(u.lastOp==r||u.lastOrigin==t.origin&&t.origin&&(t.origin.charAt(0)=="+"&&n.cm&&u.lastModTime>s-n.cm.options.historyEventDelay||t.origin.charAt(0)=="*"))&&(f=od(u,u.lastOp==r)))o=l(f.changes),e(t.from,t.to)==0&&e(t.from,o.to)==0?o.to=ni(t):f.changes.push(tc(n,t));else for(h=l(u.done),h&&h.ranges||lo(n.sel,u.done),f={changes:[tc(n,t)],generation:u.generation},u.done.push(f);u.done.length>u.undoDepth;)u.done.shift(),u.done[0].ranges||u.done.shift();u.done.push(i);u.generation=++u.maxGeneration;u.lastModTime=u.lastSelTime=s;u.lastOp=u.lastSelOp=r;u.lastOrigin=u.lastSelOrigin=t.origin;o||y(n,"historyAdded")}function sd(n,t,i,r){var u=t.charAt(0);return u=="*"||u=="+"&&i.ranges.length==r.ranges.length&&i.somethingSelected()==r.somethingSelected()&&new Date-n.history.lastSelTime<=(n.cm?n.cm.options.historyEventDelay:500)}function hd(n,t,i,r){var u=n.history,f=r&&r.origin;i==u.lastSelOp||f&&u.lastSelOrigin==f&&(u.lastModTime==u.lastSelTime&&u.lastOrigin==f||sd(n,f,l(u.done),t))?u.done[u.done.length-1]=t:lo(t,u.done);u.lastSelTime=+new Date;u.lastSelOrigin=f;u.lastSelOp=i;r&&r.clearRedo!==!1&&by(u.undone)}function lo(n,t){var i=l(t);i&&i.ranges&&i.equals(n)||t.push(n)}function dy(n,t,i,r){var u=t["spans_"+n.id],f=0;n.iter(Math.max(n.first,i),Math.min(n.first+n.size,r),function(i){i.markedSpans&&((u||(u=t["spans_"+n.id]={}))[f]=i.markedSpans);++f})}function cd(n){if(!n)return null;for(var i=0,t;i<n.length;++i)n[i].marker.explicitlyCleared?t||(t=n.slice(0,i)):t&&t.push(n[i]);return t?t.length?t:null:n}function ld(n,t){var u=t["spans_"+n.id],i,r;if(!u)return null;for(i=0,r=[];i<t.text.length;++i)r.push(cd(u[i]));return r}function dr(n,t,i){for(var u,c,s,h,r,a,f,e=0,o=[];e<n.length;++e){if(u=n[e],u.ranges){o.push(i?kt.prototype.deepCopy.call(u):u);continue}for(c=u.changes,s=[],o.push({changes:s}),h=0;h<c.length;++h)if(r=c[h],s.push({from:r.from,to:r.to,text:r.text}),t)for(f in r)(a=f.match(/^spans_(\d+)$/))&&b(t,Number(a[1]))>-1&&(l(s)[f]=r[f],delete r[f])}return o}function gy(n,t,i,r){i<n.line?n.line+=r:t<n.line&&(n.line=t,n.ch=0)}function np(n,i,r,u){for(var f,h,e,o,s=0;s<n.length;++s){if(f=n[s],h=!0,f.ranges){for(f.copied||(f=n[s]=f.deepCopy(),f.copied=!0),e=0;e<f.ranges.length;e++)gy(f.ranges[e].anchor,i,r,u),gy(f.ranges[e].head,i,r,u);continue}for(e=0;e<f.changes.length;++e)if(o=f.changes[e],r<o.from.line)o.from=t(o.from.line+u,o.from.ch),o.to=t(o.to.line+u,o.to.ch);else if(i<=o.to.line){h=!1;break}h||(n.splice(0,s+1),s=0)}}function tp(n,t){var i=t.from.line,r=t.to.line,u=t.text.length-(r-i)-1;np(n.done,i,r,u);np(n.undone,i,r,u)}function ic(n){return n.defaultPrevented!=null?n.defaultPrevented:n.returnValue==!1}function yf(n){return n.target||n.srcElement}function rp(n){var t=n.which;return t==null&&(n.button&1?t=1:n.button&2?t=3:n.button&4&&(t=2)),ot&&n.ctrlKey&&t==1&&(t=3),t}function g(n,t){function e(n){return function(){n.apply(null,f)}}var u=n._handlers&&n._handlers[t],f,i,r;if(u)for(f=Array.prototype.slice.call(arguments,2),gi?i=gi.delayedCallbacks:pf?i=pf:(i=pf=[],setTimeout(ad,0)),r=0;r<u.length;++r)i.push(e(u[r]))}function ad(){var t=pf,n;for(pf=null,n=0;n<t.length;++n)t[n]()}function ct(n,t,i){return typeof t=="string"&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),y(n,i||t.type,n,t),ic(t)||t.codemirrorIgnore}function up(n){var i=n._handlers&&n._handlers.cursorActivity,r,t;if(i)for(r=n.curOp.cursorActivityHandlers||(n.curOp.cursorActivityHandlers=[]),t=0;t<i.length;++t)b(r,i[t])==-1&&r.push(i[t])}function lt(n,t){var i=n._handlers&&n._handlers[t];return i&&i.length>0}function gr(n){n.prototype.on=function(n,t){o(this,n,t)};n.prototype.off=function(n,t){ri(this,n,t)}}function vo(){this.id=null}function op(n,t,i){for(var f,e,r=0,u=0;;){if(f=n.indexOf("\t",r),f==-1&&(f=n.length),e=f-r,f==n.length||u+e>=t)return r+Math.min(e,t-u);if(u+=f-r,u+=i-u%i,r=f+1,u>=t)return r}}function sp(n){while(bf.length<=n)bf.push(l(bf)+" ");return bf[n]}function l(n){return n[n.length-1]}function b(n,t){for(var i=0;i<n.length;++i)if(n[i]==t)return i;return-1}function tu(n,t){for(var r=[],i=0;i<n.length;i++)r[i]=t(n[i],i);return r}function hp(n,t){var i,r;return Object.create?i=Object.create(n):(r=function(){},r.prototype=n,i=new r),t&&yi(t,i),i}function yi(n,t,i){t||(t={});for(var r in n)n.hasOwnProperty(r)&&(i!==!1||!t.hasOwnProperty(r))&&(t[r]=n[r]);return t}function wt(n){var t=Array.prototype.slice.call(arguments,1);return function(){return n.apply(null,t)}}function yo(n,t){return t?t.source.indexOf("\\w")>-1&&uc(n)?!0:t.test(n):uc(n)}function lp(n){for(var t in n)if(n.hasOwnProperty(t)&&n[t])return!1;return!0}function kf(n){return n.charCodeAt(0)>=768&&ap.test(n)}function i(n,t,i,r){var u=document.createElement(n),f;if(i&&(u.className=i),r&&(u.style.cssText=r),typeof t=="string")u.appendChild(document.createTextNode(t));else if(t)for(f=0;f<t.length;++f)u.appendChild(t[f]);return u}function sr(n){for(var t=n.childNodes.length;t>0;--t)n.removeChild(n.firstChild);return n}function bt(n,t){return sr(n).appendChild(t)}function vd(n,t){if(n.contains)return n.contains(t);while(t=t.parentNode)if(t==n)return!0}function pi(){return document.activeElement}function df(n){return new RegExp("(^|\\s)"+n+"(?:$|\\s)\\s*")}function fc(n,t){for(var r=n.split(" "),i=0;i<r.length;i++)r[i]&&!df(r[i]).test(t)&&(t+=" "+r[i]);return t}function vp(n){var i,t,r;if(document.body.getElementsByClassName)for(i=document.body.getElementsByClassName("CodeMirror"),t=0;t<i.length;t++)r=i[t].CodeMirror,r&&n(r)}function yd(){ec||(pd(),ec=!0)}function pd(){var n;o(window,"resize",function(){n==null&&(n=setTimeout(function(){n=null;vp(yb)},100))});o(window,"blur",function(){vp(ge)})}function wd(n){if(oc==null){var t=i("span","​");bt(n,i("span",[t,document.createTextNode("x")]));n.firstChild.offsetHeight!=0&&(oc=t.offsetWidth<=1&&t.offsetHeight>2&&!(s&&h<8))}return oc?i("span","​"):i("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px")}function bd(n){var i,t,r;return sc!=null?sc:(i=bt(n,document.createTextNode("AخA")),t=iu(i,0,1).getBoundingClientRect(),!t||t.left==t.right)?!1:(r=iu(i,1,2).getBoundingClientRect(),sc=r.right-t.right<3)}function dd(n){if(hc!=null)return hc;var t=bt(n,i("span","x")),r=t.getBoundingClientRect(),u=iu(t,0,1).getBoundingClientRect();return hc=Math.abs(r.left-u.left)>1}function gd(n,t,i,r){var e,f,u;if(!n)return r(t,i,"ltr");for(e=!1,f=0;f<n.length;++f)u=n[f],(u.from<i&&u.to>t||t==i&&u.to==t)&&(r(Math.max(u.from,t),Math.min(u.to,i),u.level==1?"rtl":"ltr"),e=!0);e||r(t,i,"ltr")}function cc(n){return n.level%2?n.to:n.from}function lc(n){return n.level%2?n.from:n.to}function po(n){var t=pt(n);return t?cc(t[0]):0}function wo(n){var t=pt(n);return t?lc(l(t)):n.text.length}function wp(n,i){var e=r(n.doc,i),u=vt(e),f,o;return u!=e&&(i=a(u)),f=pt(u),o=f?f[0].level%2?wo(u):po(u):0,t(i,o)}function ng(n,i){for(var e,u=r(n.doc,i),f,o;e=of(u);)u=e.find(1,!0).line,i=null;return f=pt(u),o=f?f[0].level%2?po(u):wo(u):u.text.length,t(i==null?a(u):i,o)}function bp(n,i){var u=wp(n,i.line),e=r(n.doc,u.line),o=pt(e),f,s;return!o||o[0].level==0?(f=Math.max(0,e.text.search(/\S/)),s=i.line==u.line&&i.ch<=f&&i.ch,t(u.line,s?0:f)):u}function tg(n,t,i){var r=n[0].level;return t==r?!0:i==r?!1:t<i}function ac(n,t){var r,u,i;for(gf=null,r=0;r<n.length;++r){if(i=n[r],i.from<t&&i.to>t)return r;if(i.from==t||i.to==t)if(u==null)u=r;else return tg(n,i.level,n[u].level)?(i.from!=i.to&&(gf=u),r):(i.from!=i.to&&(gf=r),u)}return u}function vc(n,t,i,r){if(!r)return t+i;do t+=i;while(t>0&&kf(n.text.charAt(t)));return t}function yc(n,t,i,r){var e=pt(n);if(!e)return kp(n,t,i,r);for(var o=ac(e,t),u=e[o],f=vc(n,t,u.level%2?-i:i,r);;){if(f>u.from&&f<u.to)return f;if(f==u.from||f==u.to)return ac(e,f)==o?f:(u=e[o+=i],i>0==u.level%2?u.to:u.from);if(u=e[o+=i],!u)return null;f=i>0==u.level%2?vc(n,u.to,-1,r):vc(n,u.from,1,r)}}function kp(n,t,i,r){var u=t+i;if(r)while(u>0&&kf(n.text.charAt(u)))u+=i;return u<0||u>n.text.length?null:u}var fu=/gecko\/\d/i.test(navigator.userAgent),pc=/MSIE \d/.test(navigator.userAgent),wc=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),s=pc||wc,h=s&&(pc?document.documentMode||6:wc[1]),p=/WebKit\//.test(navigator.userAgent),gp=p&&/Qt\/\d+\.\d+/.test(navigator.userAgent),nw=/Chrome\//.test(navigator.userAgent),et=/Opera\//.test(navigator.userAgent),bc=/Apple Computer/.test(navigator.vendor),bo=/KHTML\//.test(navigator.userAgent),tw=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),iw=/PhantomJS/.test(navigator.userAgent),eu=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),ko=eu||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),ot=eu||/Mac/.test(navigator.platform),rw=/win/i.test(navigator.platform),wi=et&&navigator.userAgent.match(/Version\/(\d*\.\d*)/),t,e,oe,ki,gi,la,hi,pe,we,oh,du,it,sh,ka,de,ni,hv,rr,vh,yh,wr,br,fo,ci,ur,cv,tf,ti,uf,li,lv,ff,sf,ai,sy,hy,yy,tt,py,af,d,ip,ao,ft,bf,nu,cp,uc,ap,iu,ru,uu,ec,yp,oc,sc,ui,gf,dp;wi&&(wi=Number(wi[1]));wi&&wi>=15&&(et=!1,p=!0);var kc=ot&&(gp||et&&(wi==null||wi<12.11)),go=fu||s&&h>=9,dc=!1,fi=!1;fs.prototype=yi({update:function(n){var i=n.scrollWidth>n.clientWidth+1,r=n.scrollHeight>n.clientHeight+1,t=n.nativeBarWidth,u,f;return r?(this.vert.style.display="block",this.vert.style.bottom=i?t+"px":"0",u=n.viewHeight-(i?t:0),this.vert.firstChild.style.height=Math.max(0,n.scrollHeight-n.clientHeight+u)+"px"):(this.vert.style.display="",this.vert.firstChild.style.height="0"),i?(this.horiz.style.display="block",this.horiz.style.right=r?t+"px":"0",this.horiz.style.left=n.barLeft+"px",f=n.viewWidth-n.barLeft-(r?t:0),this.horiz.firstChild.style.width=n.scrollWidth-n.clientWidth+f+"px"):(this.horiz.style.display="",this.horiz.firstChild.style.width="0"),!this.checkedOverlay&&n.clientHeight>0&&(t==0&&this.overlayHack(),this.checkedOverlay=!0),{right:r?t:0,bottom:i?t:0}},setScrollLeft:function(n){this.horiz.scrollLeft!=n&&(this.horiz.scrollLeft=n)},setScrollTop:function(n){this.vert.scrollTop!=n&&(this.vert.scrollTop=n)},overlayHack:function(){var i=ot&&!tw?"12px":"18px",n,t;this.horiz.style.minHeight=this.vert.style.minWidth=i;n=this;t=function(t){yf(t)!=n.vert&&yf(t)!=n.horiz&&v(n.cm,ya)(t)};o(this.vert,"mousedown",t);o(this.horiz,"mousedown",t)},clear:function(){var n=this.horiz.parentNode;n.removeChild(this.horiz);n.removeChild(this.vert)}},fs.prototype);es.prototype=yi({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},es.prototype);n.scrollbarModel={"native":fs,"null":es};t=n.Pos=function(n,i){if(!(this instanceof t))return new t(n,i);this.line=n;this.ch=i};e=n.cmpPos=function(n,t){return n.line-t.line||n.ch-t.ch};kt.prototype={primary:function(){return this.ranges[this.primIndex]},equals:function(n){var t,i,r;if(n==this)return!0;if(n.primIndex!=this.primIndex||n.ranges.length!=this.ranges.length)return!1;for(t=0;t<this.ranges.length;t++)if(i=this.ranges[t],r=n.ranges[t],e(i.anchor,r.anchor)!=0||e(i.head,r.head)!=0)return!1;return!0},deepCopy:function(){for(var t=[],n=0;n<this.ranges.length;n++)t[n]=new c(ws(this.ranges[n].anchor),ws(this.ranges[n].head));return new kt(t,this.primIndex)},somethingSelected:function(){for(var n=0;n<this.ranges.length;n++)if(!this.ranges[n].empty())return!0;return!1},contains:function(n,t){var i,r;for(t||(t=n),i=0;i<this.ranges.length;i++)if(r=this.ranges[i],e(t,r.from())>=0&&e(n,r.to())<=0)return i;return-1}};c.prototype={from:function(){return ks(this.anchor,this.head)},to:function(){return bs(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};oe={left:0,right:0,top:0,bottom:0};gi=null;la=0;hi=null;oh=0;du=0;it=null;s?it=-.53:fu?it=15:nw?it=-.7:bc&&(it=-1/3);sh=function(n){var i=n.wheelDeltaX,t=n.wheelDeltaY;return i==null&&n.detail&&n.axis==n.HORIZONTAL_AXIS&&(i=n.detail),t==null&&n.detail&&n.axis==n.VERTICAL_AXIS?t=n.detail:t==null&&(t=n.wheelDelta),{x:i,y:t}};n.wheelEventPixels=function(n){var t=sh(n);return t.x*=it,t.y*=it,t};ka=new vo;de=null;ni=n.changeEnd=function(n){return n.text?t(n.from.line+n.text.length-1,l(n.text).length+(n.text.length==1?n.from.ch:0)):n.to};n.prototype={constructor:n,focus:function(){window.focus();rt(this);ae(this)},setOption:function(n,t){var i=this.options,r=i[n];(i[n]!=t||n=="mode")&&(i[n]=t,rr.hasOwnProperty(n)&&v(this,rr[n])(this,t,r))},getOption:function(n){return this.options[n]},getDoc:function(){return this.doc},addKeyMap:function(n,t){this.state.keyMaps[t?"push":"unshift"](eo(n))},removeKeyMap:function(n){for(var i=this.state.keyMaps,t=0;t<i.length;++t)if(i[t]==n||i[t].name==n)return i.splice(t,1),!0},addOverlay:w(function(t,i){var r=t.token?t:n.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");this.state.overlays.push({mode:r,modeSpec:t,opaque:i&&i.opaque});this.state.modeGen++;ut(this)}),removeOverlay:w(function(n){for(var r,i=this.state.overlays,t=0;t<i.length;++t)if(r=i[t].modeSpec,r==n||typeof n=="string"&&r.name==n){i.splice(t,1);this.state.modeGen++;ut(this);return}}),indentLine:w(function(n,t,i){typeof t!="string"&&typeof t!="number"&&(t=t==null?this.options.smartIndent?"smart":"prev":t?"add":"subtract");cu(this.doc,n)&&nf(this,n,t,i)}),indentSelection:w(function(n){for(var i,u,f,e=this.doc.sel.ranges,r=-1,t=0;t<e.length;t++)if(i=e[t],i.empty())i.head.line>r&&(nf(this,i.head.line,n,!0),r=i.head.line,t==this.doc.sel.primIndex&&yr(this));else{var o=i.from(),s=i.to(),h=Math.max(r,o.line);for(r=Math.min(this.lastLine(),s.line-(s.ch?0:1))+1,u=h;u<r;++u)nf(this,u,n);f=this.doc.sel.ranges;o.ch==0&&e.length==f.length&&f[t].from().ch>0&&ds(this.doc,t,new c(o,f[t].to()),vi)}}),getTokenAt:function(n,t){return uy(this,n,t)},getLineTokens:function(n,i){return uy(this,t(n),i,!0)},getTokenTypeAt:function(n){var t,e;n=u(this.doc,n);var f=oy(this,r(this.doc,n.line)),s=0,h=(f.length-1)/2,o=n.ch,i;if(o==0)i=f[2];else for(;;)if(t=s+h>>1,(t?f[t*2-1]:0)>=o)h=t;else if(f[t*2+1]<o)s=t+1;else{i=f[t*2+2];break}return e=i?i.indexOf("cm-overlay "):-1,e<0?i:e==0?null:i.slice(0,e-1)},getModeAt:function(t){var i=this.doc.mode;return i.innerMode?n.innerMode(i,this.getTokenAt(t).state).mode:i},getHelper:function(n,t){return this.getHelpers(n,t)[0]},getHelpers:function(n,t){var f=[],r,i,o,u,e;if(!ci.hasOwnProperty(t))return ci;if(r=ci[t],i=this.getModeAt(n),typeof i[t]=="string")r[i[t]]&&f.push(r[i[t]]);else if(i[t])for(u=0;u<i[t].length;u++)o=r[i[t][u]],o&&f.push(o);else i.helperType&&r[i.helperType]?f.push(r[i.helperType]):r[i.name]&&f.push(r[i.name]);for(u=0;u<r._global.length;u++)e=r._global[u],e.pred(i,this)&&b(f,e.val)==-1&&f.push(e.val);return f},getStateAfter:function(n,t){var i=this.doc;return n=vl(i,n==null?i.first+i.size-1:n),yu(this,n+1,t)},cursorCoords:function(n,t){var r,i=this.doc.sel.primary();return r=n==null?i.head:typeof n=="object"?u(this.doc,n):n?i.from():i.to(),dt(this,r,t||"page")},charCoords:function(n,t){return uh(this,u(this.doc,n),t||"page")},coordsChar:function(n,t){return n=ha(this,n,t||"page"),fh(this,n.left,n.top)},lineAtHeight:function(n,t){return n=ha(this,{top:n,left:0},t||"page").top,or(this.doc,n+this.display.viewOffset)},heightAtLine:function(n,t){var u=!1,f=this.doc.first+this.doc.size-1,i;return n<this.doc.first?n=this.doc.first:n>f&&(n=f,u=!0),i=r(this.doc,n),rh(this,i,{top:0,left:0},t||"page").top+(u?this.doc.height-ii(i):0)},defaultTextHeight:function(){return di(this.display)},defaultCharWidth:function(){return wu(this.display)},setGutterMarker:w(function(n,t,i){return uo(this.doc,n,"gutter",function(n){var r=n.gutterMarkers||(n.gutterMarkers={});return r[t]=i,!i&&lp(r)&&(n.gutterMarkers=null),!0})}),clearGutter:w(function(n){var t=this,i=t.doc,r=i.first;i.iter(function(i){i.gutterMarkers&&i.gutterMarkers[n]&&(i.gutterMarkers[n]=null,gt(t,r,"gutter"),lp(i.gutterMarkers)&&(i.gutterMarkers=null));++r})}),addLineWidget:w(function(n,t,i){return gk(this,n,t,i)}),removeLineWidget:function(n){n.clear()},lineInfo:function(n){var t;if(typeof n=="number"){if(!cu(this.doc,n)||(t=n,n=r(this.doc,n),!n))return null}else if(t=a(n),t==null)return null;return{line:t,handle:n,text:n.text,gutterMarkers:n.gutterMarkers,textClass:n.textClass,bgClass:n.bgClass,wrapClass:n.wrapClass,widgets:n.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(n,t,i,r,f){var s=this.display,o,e,h,c;n=dt(this,u(this.doc,n));o=n.bottom;e=n.left;t.style.position="absolute";t.setAttribute("cm-ignore-events","true");s.sizer.appendChild(t);r=="over"?o=n.top:(r=="above"||r=="near")&&(h=Math.max(s.wrapper.clientHeight,this.doc.height),c=Math.max(s.sizer.clientWidth,s.lineSpace.clientWidth),(r=="above"||n.bottom+t.offsetHeight>h)&&n.top>t.offsetHeight?o=n.top-t.offsetHeight:n.bottom+t.offsetHeight<=h&&(o=n.bottom),e+t.offsetWidth>c&&(e=c-t.offsetWidth));t.style.top=o+"px";t.style.left=t.style.right="";f=="right"?(e=s.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):(f=="left"?e=0:f=="middle"&&(e=(s.sizer.clientWidth-t.offsetWidth)/2),t.style.left=e+"px");i&&ok(this,e,o,e+t.offsetWidth,o+t.offsetHeight)},triggerOnKeyDown:w(ga),triggerOnKeyPress:w(tv),triggerOnKeyUp:nv,execCommand:function(n){if(tf.hasOwnProperty(n))return tf[n](this)},findPosH:function(n,t,i,r){var o=1,e,f;for(t<0&&(o=-1,t=-t),e=0,f=u(this.doc,n);e<t;++e)if(f=ah(this.doc,f,o,i,r),f.hitSide)break;return f},moveH:w(function(n,t){var i=this;i.extendSelectionsBy(function(r){return i.display.shift||i.doc.extend||r.empty()?ah(i.doc,r.head,n,t,i.options.rtlMoveVisually):n<0?r.from():r.to()},wf)}),deleteH:w(function(n,t){var r=this.doc.sel,i=this.doc;r.somethingSelected()?i.replaceSelection("",null,"+delete"):pr(this,function(r){var u=ah(i,r.head,n,t,!1);return n<0?{from:u,to:r.head}:{from:r.head,to:u}})}),findPosV:function(n,t,i,r){var h=1,o=r,s,f,e;for(t<0&&(h=-1,t=-t),s=0,f=u(this.doc,n);s<t;++s)if(e=dt(this,f,"div"),o==null?o=e.left:e.left=o,f=sv(this,e,h,i),f.hitSide)break;return f},moveV:w(function(n,t){var r=this,i=this.doc,f=[],e=!r.display.shift&&!i.extend&&i.sel.somethingSelected(),u;if(i.extendSelectionsBy(function(u){var o,s;return e?n<0?u.from():u.to():(o=dt(r,u.head,"div"),u.goalColumn!=null&&(o.left=u.goalColumn),f.push(o.left),s=sv(r,o,n,t),t=="page"&&u==i.sel.primary()&&lh(r,null,uh(r,s,"div").top-o.top),s)},wf),f.length)for(u=0;u<i.sel.ranges.length;u++)i.sel.ranges[u].goalColumn=f[u]}),findWordAt:function(n){var h=this.doc,u=r(h,n.line).text,i=n.ch,f=n.ch,e,o,s;if(u){for(e=this.getHelper(n,"wordChars"),(n.xRel<0||f==u.length)&&i?--i:++f,o=u.charAt(i),s=yo(o,e)?function(n){return yo(n,e)}:/\s/.test(o)?function(n){return/\s/.test(n)}:function(n){return!/\s/.test(n)&&!yo(n)};i>0&&s(u.charAt(i-1));)--i;while(f<u.length&&s(u.charAt(f)))++f}return new c(t(n.line,i),t(n.line,f))},toggleOverwrite:function(n){(n==null||n!=this.state.overwrite)&&((this.state.overwrite=!this.state.overwrite)?uu(this.display.cursorDiv,"CodeMirror-overwrite"):ru(this.display.cursorDiv,"CodeMirror-overwrite"),y(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return pi()==this.display.input},scrollTo:w(function(n,t){(n!=null||t!=null)&&ro(this);n!=null&&(this.curOp.scrollLeft=n);t!=null&&(this.curOp.scrollTop=t)}),getScrollInfo:function(){var n=this.display.scroller;return{left:n.scrollLeft,top:n.scrollTop,height:n.scrollHeight-at(this)-this.display.barHeight,width:n.scrollWidth-at(this)-this.display.barWidth,clientHeight:th(this),clientWidth:ei(this)}},scrollIntoView:w(function(n,i){if(n==null?(n={from:this.doc.sel.primary().head,to:null},i==null&&(i=this.options.cursorScrollMargin)):typeof n=="number"?n={from:t(n,0),to:null}:n.from==null&&(n={from:n,to:null}),n.to||(n.to=n.from),n.margin=i||0,n.from.line!=null)ro(this),this.curOp.scrollToPos=n;else{var r=io(this,Math.min(n.from.left,n.to.left),Math.min(n.from.top,n.to.top)-n.margin,Math.max(n.from.right,n.to.right),Math.max(n.from.bottom,n.to.bottom)+n.margin);this.scrollTo(r.scrollLeft,r.scrollTop)}}),setSize:w(function(n,t){function u(n){return typeof n=="number"||/^\d+$/.test(String(n))?n+"px":n}var i=this,r;n!=null&&(i.display.wrapper.style.width=u(n));t!=null&&(i.display.wrapper.style.height=u(t));i.options.lineWrapping&&ea(this);r=i.display.viewFrom;i.doc.iter(r,i.display.viewTo,function(n){if(n.widgets)for(var t=0;t<n.widgets.length;t++)if(n.widgets[t].noHScroll){gt(i,r,"widget");break}++r});i.curOp.forceUpdate=!0;y(i,"refresh",this)}),operation:function(n){return oi(this,n)},refresh:w(function(){var n=this.display.cachedTextHeight;ut(this);this.curOp.forceUpdate=!0;pu(this);this.scrollTo(this.doc.scrollLeft,this.doc.scrollTop);is(this);(n==null||Math.abs(n-di(this.display))>.5)&&ts(this);y(this,"refresh",this)}),swapDoc:w(function(n){var t=this.doc;return t.cm=null,wy(this,n),pu(this),ht(this),this.scrollTo(n.scrollLeft,n.scrollTop),this.curOp.forceScroll=!0,g(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};gr(n);hv=n.defaults={};rr=n.optionHandlers={};vh=n.Init={toString:function(){return"CodeMirror.Init"}};f("value","",function(n,t){n.setValue(t)},!0);f("mode",null,function(n,t){n.doc.modeOption=t;ns(n)},!0);f("indentUnit",2,ns,!0);f("indentWithTabs",!1);f("smartIndent",!0);f("tabSize",4,function(n){ou(n);pu(n);ut(n)},!0);f("specialChars",/[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g,function(n,t){n.options.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g");n.refresh()},!0);f("specialCharPlaceholder",id,function(n){n.refresh()},!0);f("electricChars",!0);f("rtlMoveVisually",!rw);f("wholeLineUpdateBefore",!0);f("theme","default",function(n){nl(n);su(n)},!0);f("keyMap","default",function(t,i,r){var f=eo(i),u=r!=n.Init&&eo(r);u&&u.detach&&u.detach(t,f);f.attach&&f.attach(t,u||null)});f("extraKeys",null);f("lineWrapping",!1,fw,!0);f("gutters",[],function(n){us(n.options);su(n)},!0);f("fixedGutter",!0,function(n,t){n.display.gutters.style.left=t?cs(n.display)+"px":"0";n.refresh()},!0);f("coverGutterNextToScrollbar",!1,function(n){cr(n)},!0);f("scrollbarStyle","native",function(n){il(n);cr(n);n.display.scrollbars.setScrollTop(n.doc.scrollTop);n.display.scrollbars.setScrollLeft(n.doc.scrollLeft)},!0);f("lineNumbers",!1,function(n){us(n.options);su(n)},!0);f("firstLineNumber",1,su,!0);f("lineNumberFormatter",function(n){return n},su,!0);f("showCursorWhenSelecting",!1,au,!0);f("resetSelectionOnContextMenu",!0);f("readOnly",!1,function(n,t){t=="nocursor"?(ge(n),n.display.input.blur(),n.display.disabled=!0):(n.display.disabled=!1,t||ht(n))});f("disableInput",!1,function(n,t){t||ht(n)},!0);f("dragDrop",!0);f("cursorBlinkRate",530);f("cursorScrollMargin",0);f("cursorHeight",1,au,!0);f("singleCursorHeightPerLine",!0,au,!0);f("workTime",100);f("workDelay",100);f("flattenSpans",!0,ou,!0);f("addModeClass",!1,ou,!0);f("pollInterval",100);f("undoDepth",200,function(n,t){n.doc.history.undoDepth=t});f("historyEventDelay",1250);f("viewportMargin",10,function(n){n.refresh()},!0);f("maxHighlightLength",1e4,ou,!0);f("moveInputWithCursor",!0,function(n,t){t||(n.display.inputDiv.style.top=n.display.inputDiv.style.left=0)});f("tabindex",null,function(n,t){n.display.input.tabIndex=t||""});f("autofocus",null);yh=n.modes={};wr=n.mimeModes={};n.defineMode=function(t,i){n.defaults.mode||t=="null"||(n.defaults.mode=t);arguments.length>2&&(i.dependencies=Array.prototype.slice.call(arguments,2));yh[t]=i};n.defineMIME=function(n,t){wr[n]=t};n.resolveMode=function(t){if(typeof t=="string"&&wr.hasOwnProperty(t))t=wr[t];else if(t&&typeof t.name=="string"&&wr.hasOwnProperty(t.name)){var i=wr[t.name];typeof i=="string"&&(i={name:i});t=hp(i,t);t.name=i.name}else if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return n.resolveMode("application/xml");return typeof t=="string"?{name:t}:t||{name:"null"}};n.getMode=function(t,i){var i=n.resolveMode(i),e=yh[i.name],u,f,r;if(!e)return n.getMode(t,"text/plain");if(u=e(t,i),br.hasOwnProperty(i.name)){f=br[i.name];for(r in f)f.hasOwnProperty(r)&&(u.hasOwnProperty(r)&&(u["_"+r]=u[r]),u[r]=f[r])}if(u.name=i.name,i.helperType&&(u.helperType=i.helperType),i.modeProps)for(r in i.modeProps)u[r]=i.modeProps[r];return u};n.defineMode("null",function(){return{token:function(n){n.skipToEnd()}}});n.defineMIME("text/plain","null");br=n.modeExtensions={};n.extendMode=function(n,t){var i=br.hasOwnProperty(n)?br[n]:br[n]={};yi(t,i)};n.defineExtension=function(t,i){n.prototype[t]=i};n.defineDocExtension=function(n,t){tt.prototype[n]=t};n.defineOption=f;fo=[];n.defineInitHook=function(n){fo.push(n)};ci=n.helpers={};n.registerHelper=function(t,i,r){ci.hasOwnProperty(t)||(ci[t]=n[t]={_global:[]});ci[t][i]=r};n.registerGlobalHelper=function(t,i,r,u){n.registerHelper(t,i,u);ci[t]._global.push({pred:r,val:u})};ur=n.copyState=function(n,t){var r,u,i;if(t===!0)return t;if(n.copyState)return n.copyState(t);r={};for(u in t)i=t[u],i instanceof Array&&(i=i.concat([])),r[u]=i;return r};cv=n.startState=function(n,t,i){return n.startState?n.startState(t,i):!0};n.innerMode=function(n,t){while(n.innerMode){var i=n.innerMode(t);if(!i||i.mode==n)break;t=i.state;n=i.mode}return i||{mode:n,state:t}};tf=n.commands={selectAll:function(n){n.setSelection(t(n.firstLine(),0),t(n.lastLine()),vi)},singleSelection:function(n){n.setSelection(n.getCursor("anchor"),n.getCursor("head"),vi)},killLine:function(n){pr(n,function(i){if(i.empty()){var u=r(n.doc,i.head.line).text.length;return i.head.ch==u&&i.head.line<n.lastLine()?{from:i.head,to:t(i.head.line+1,0)}:{from:i.head,to:t(i.head.line,u)}}return{from:i.from(),to:i.to()}})},deleteLine:function(n){pr(n,function(i){return{from:t(i.from().line,0),to:u(n.doc,t(i.to().line+1,0))}})},delLineLeft:function(n){pr(n,function(n){return{from:t(n.from().line,0),to:n.from()}})},delWrappedLineLeft:function(n){pr(n,function(t){var i=n.charCoords(t.head,"div").top+5,r=n.coordsChar({left:0,top:i},"div");return{from:r,to:t.from()}})},delWrappedLineRight:function(n){pr(n,function(t){var i=n.charCoords(t.head,"div").top+5,r=n.coordsChar({left:n.display.lineDiv.offsetWidth+100,top:i},"div");return{from:t.from(),to:r}})},undo:function(n){n.undo()},redo:function(n){n.redo()},undoSelection:function(n){n.undoSelection()},redoSelection:function(n){n.redoSelection()},goDocStart:function(n){n.extendSelection(t(n.firstLine(),0))},goDocEnd:function(n){n.extendSelection(t(n.lastLine()))},goLineStart:function(n){n.extendSelectionsBy(function(t){return wp(n,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(n){n.extendSelectionsBy(function(t){return bp(n,t.head)},{origin:"+move",bias:1})},goLineEnd:function(n){n.extendSelectionsBy(function(t){return ng(n,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(n){n.extendSelectionsBy(function(t){var i=n.charCoords(t.head,"div").top+5;return n.coordsChar({left:n.display.lineDiv.offsetWidth+100,top:i},"div")},wf)},goLineLeft:function(n){n.extendSelectionsBy(function(t){var i=n.charCoords(t.head,"div").top+5;return n.coordsChar({left:0,top:i},"div")},wf)},goLineLeftSmart:function(n){n.extendSelectionsBy(function(t){var r=n.charCoords(t.head,"div").top+5,i=n.coordsChar({left:0,top:r},"div");return i.ch<n.getLine(i.line).search(/\S/)?bp(n,t.head):i},wf)},goLineUp:function(n){n.moveV(-1,"line")},goLineDown:function(n){n.moveV(1,"line")},goPageUp:function(n){n.moveV(-1,"page")},goPageDown:function(n){n.moveV(1,"page")},goCharLeft:function(n){n.moveH(-1,"char")},goCharRight:function(n){n.moveH(1,"char")},goColumnLeft:function(n){n.moveH(-1,"column")},goColumnRight:function(n){n.moveH(1,"column")},goWordLeft:function(n){n.moveH(-1,"word")},goGroupRight:function(n){n.moveH(1,"group")},goGroupLeft:function(n){n.moveH(-1,"group")},goWordRight:function(n){n.moveH(1,"word")},delCharBefore:function(n){n.deleteH(-1,"char")},delCharAfter:function(n){n.deleteH(1,"char")},delWordBefore:function(n){n.deleteH(-1,"word")},delWordAfter:function(n){n.deleteH(1,"word")},delGroupBefore:function(n){n.deleteH(-1,"group")},delGroupAfter:function(n){n.deleteH(1,"group")},indentAuto:function(n){n.indentSelection("smart")},indentMore:function(n){n.indentSelection("add")},indentLess:function(n){n.indentSelection("subtract")},insertTab:function(n){n.replaceSelection("\t")},insertSoftTab:function(n){for(var r,e,u=[],f=n.listSelections(),t=n.options.tabSize,i=0;i<f.length;i++)r=f[i].from(),e=ft(n.getLine(r.line),r.ch,t),u.push(new Array(t-e%t+1).join(" "));n.replaceSelections(u)},defaultTab:function(n){n.somethingSelected()?n.indentSelection("add"):n.execCommand("insertTab")},transposeChars:function(n){oi(n,function(){for(var i,u,f,o=n.listSelections(),s=[],e=0;e<o.length;e++)i=o[e].head,u=r(n.doc,i.line).text,u&&(i.ch==u.length&&(i=new t(i.line,i.ch-1)),i.ch>0?(i=new t(i.line,i.ch+1),n.replaceRange(u.charAt(i.ch-1)+u.charAt(i.ch-2),t(i.line,i.ch-2),i,"+transpose")):i.line>n.doc.first&&(f=r(n.doc,i.line-1).text,f&&n.replaceRange(u.charAt(0)+"\n"+f.charAt(f.length-1),t(i.line-1,f.length-1),t(i.line,1),"+transpose"))),s.push(new c(i,i));n.setSelections(s)})},newlineAndIndent:function(n){oi(n,function(){for(var t,r=n.listSelections().length,i=0;i<r;i++)t=n.listSelections()[i],n.replaceRange("\n",t.anchor,t.head,"+input"),n.indentLine(t.from().line+1,null,!0),yr(n)})},toggleOverwrite:function(n){n.toggleOverwrite()}};ti=n.keyMap={};ti.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"};ti.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"};ti.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars"};ti.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]};ti["default"]=ot?ti.macDefault:ti.pcDefault;n.normalizeKeyMap=function(n){var u={},t,o,f,i,e,r,s,h;for(t in n)if(n.hasOwnProperty(t)){if(o=n[t],/^(name|fallthrough|(de|at)tach)$/.test(t))continue;if(o=="..."){delete n[t];continue}for(f=tu(t.split(" "),sk),i=0;i<f.length;i++)if(i==f.length-1?(r=t,e=o):(r=f.slice(0,i+1).join(" "),e="..."),s=u[r],s){if(s!=e)throw new Error("Inconsistent bindings for "+r);}else u[r]=e;delete n[t]}for(h in u)n[h]=u[h];return n};var rf=n.lookupKey=function(n,t,i,r){var u,f,e;if(t=eo(t),u=t.call?t.call(n,r):t[n],u===!1)return"nothing";if(u==="...")return"multi";if(u!=null&&i(u))return"handled";if(t.fallthrough){if(Object.prototype.toString.call(t.fallthrough)!="[object Array]")return rf(n,t.fallthrough,i,r);for(f=0;f<t.fallthrough.length;f++)if(e=rf(n,t.fallthrough[f],i,r),e)return e}},hk=n.isModifierKey=function(n){var t=typeof n=="string"?n:ui[n.keyCode];return t=="Ctrl"||t=="Alt"||t=="Shift"||t=="Mod"},ck=n.keyName=function(n,t){if(et&&n.keyCode==34&&n.char)return!1;var r=ui[n.keyCode],i=r;return i==null||n.altGraphKey?!1:(n.altKey&&r!="Alt"&&(i="Alt-"+i),(kc?n.metaKey:n.ctrlKey)&&r!="Ctrl"&&(i="Ctrl-"+i),(kc?n.ctrlKey:n.metaKey)&&r!="Cmd"&&(i="Cmd-"+i),!t&&n.shiftKey&&r!="Shift"&&(i="Shift-"+i),i)};n.fromTextArea=function(t,i){function f(){t.value=r.getValue()}var e,u,s,h,r;if(i||(i={}),i.value=t.value,!i.tabindex&&t.tabindex&&(i.tabindex=t.tabindex),!i.placeholder&&t.placeholder&&(i.placeholder=t.placeholder),i.autofocus==null&&(e=pi(),i.autofocus=e==t||t.getAttribute("autofocus")!=null&&e==document.body),t.form&&(o(t.form,"submit",f),!i.leaveSubmitMethodAlone)){u=t.form;s=u.submit;try{h=u.submit=function(){f();u.submit=s;u.submit();u.submit=h}}catch(c){}}return t.style.display="none",r=n(function(n){t.parentNode.insertBefore(n,t.nextSibling)},i),r.save=f,r.getTextArea=function(){return t},r.toTextArea=function(){r.toTextArea=isNaN;f();t.parentNode.removeChild(r.getWrapperElement());t.style.display="";t.form&&(ri(t.form,"submit",f),typeof t.form.submit=="function"&&(t.form.submit=s))},r};uf=n.StringStream=function(n,t){this.pos=this.start=0;this.string=n;this.tabSize=t||8;this.lastColumnPos=this.lastColumnValue=0;this.lineStart=0};uf.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||undefined},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(n){var t=this.string.charAt(this.pos),i;return i=typeof n=="string"?t==n:t&&(n.test?n.test(t):n(t)),i?(++this.pos,t):void 0},eatWhile:function(n){for(var t=this.pos;this.eat(n););return this.pos>t},eatSpace:function(){for(var n=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>n},skipToEnd:function(){this.pos=this.string.length},skipTo:function(n){var t=this.string.indexOf(n,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(n){this.pos-=n},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=ft(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?ft(this.string,this.lineStart,this.tabSize):0)},indentation:function(){return ft(this.string,null,this.tabSize)-(this.lineStart?ft(this.string,this.lineStart,this.tabSize):0)},match:function(n,t,i){var u,f,r;if(typeof n=="string"){if(u=function(n){return i?n.toLowerCase():n},f=this.string.substr(this.pos,n.length),u(f)==u(n))return t!==!1&&(this.pos+=n.length),!0}else return(r=this.string.slice(this.pos).match(n),r&&r.index>0)?null:(r&&t!==!1&&(this.pos+=r[0].length),r)},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(n,t){this.lineStart+=n;try{return t()}finally{this.lineStart-=n}}};li=n.TextMarker=function(n,t){this.lines=[];this.type=t;this.doc=n};gr(li);li.prototype.clear=function(){var n,e,u,f,o,t,r,i,s,h;if(!this.explicitlyCleared){for(n=this.doc.cm,e=n&&!n.curOp,e&&nr(n),lt(this,"clear")&&(u=this.find(),u&&g(this,"clear",u.from,u.to)),f=null,o=null,i=0;i<this.lines.length;++i)t=this.lines[i],r=ef(t.markedSpans,this),n&&!this.collapsed?gt(n,a(t),"text"):n&&(r.to!=null&&(o=a(t)),r.from!=null&&(f=a(t))),t.markedSpans=yk(t.markedSpans,r),r.from==null&&this.collapsed&&!fr(this.doc,t)&&n&&yt(t,di(n.display));if(n&&this.collapsed&&!n.options.lineWrapping)for(i=0;i<this.lines.length;++i)s=vt(this.lines[i]),h=ne(s),h>n.display.maxLineLength&&(n.display.maxLine=s,n.display.maxLineLength=h,n.display.maxLineChanged=!0);f!=null&&n&&this.collapsed&&ut(n,f,o+1);this.lines.length=0;this.explicitlyCleared=!0;this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,n&&kl(n.doc));n&&g(n,"markerCleared",n,this);e&&tr(n);this.parent&&this.parent.clear()}};li.prototype.find=function(n,i){var f,o,e,r,u;for(n==null&&this.type=="bookmark"&&(n=1),e=0;e<this.lines.length;++e){if(r=this.lines[e],u=ef(r.markedSpans,this),u.from!=null&&(f=t(i?r:a(r),u.from),n==-1))return f;if(u.to!=null&&(o=t(i?r:a(r),u.to),n==1))return o}return f&&{from:f,to:o}};li.prototype.changed=function(){var i=this.find(-1,!0),t=this,n=this.doc.cm;i&&n&&oi(n,function(){var r=i.line,o=a(i.line),f=ra(n,o),e,u;f&&(fa(f),n.curOp.selectionChanged=n.curOp.forceUpdate=!0);n.curOp.updateMaxLine=!0;fr(t.doc,r)||t.height==null||(e=t.height,t.height=null,u=hf(t)-e,u&&yt(r,r.height+u))})};li.prototype.attachLine=function(n){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&b(t.maybeHiddenMarkers,this)!=-1||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(n)};li.prototype.detachLine=function(n){if(this.lines.splice(b(this.lines,n),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}};lv=0;ff=n.SharedTextMarker=function(n,t){this.markers=n;this.primary=t;for(var i=0;i<n.length;++i)n[i].parent=this};gr(ff);ff.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var n=0;n<this.markers.length;++n)this.markers[n].clear();g(this,"clear")}};ff.prototype.find=function(n,t){return this.primary.find(n,t)};sf=n.LineWidget=function(n,t,i){if(i)for(var r in i)i.hasOwnProperty(r)&&(this[r]=i[r]);this.cm=n;this.node=t};gr(sf);sf.prototype.clear=function(){var r=this.cm,n=this.line.widgets,t=this.line,f=a(t),i,u;if(f!=null&&n){for(i=0;i<n.length;++i)n[i]==this&&n.splice(i--,1);n.length||(t.widgets=null);u=hf(this);oi(r,function(){ty(r,t,-u);gt(r,f,"widget");yt(t,Math.max(0,t.height-u))})}};sf.prototype.changed=function(){var r=this.height,t=this.cm,i=this.line,n;(this.height=null,n=hf(this)-r,n)&&oi(t,function(){t.curOp.forceUpdate=!0;ty(t,i,n);yt(i,i.height+n)})};ai=n.Line=function(n,t,i){this.text=n;wv(this,t);this.height=i?i(this):1};gr(ai);ai.prototype.lineNo=function(){return a(this)};sy={};hy={};cf.prototype={chunkSize:function(){return this.lines.length},removeInner:function(n,t){for(var r,i=n,u=n+t;i<u;++i)r=this.lines[i],this.height-=r.height,td(r),g(r,"delete");this.lines.splice(n,t)},collapse:function(n){n.push.apply(n,this.lines)},insertInner:function(n,t,i){this.height+=i;this.lines=this.lines.slice(0,n).concat(t).concat(this.lines.slice(n));for(var r=0;r<t.length;++r)t[r].parent=this},iterN:function(n,t,i){for(var r=n+t;n<r;++n)if(i(this.lines[n]))return!0}};lf.prototype={chunkSize:function(){return this.size},removeInner:function(n,t){var r,i,u,f,o,e;for(this.size-=t,r=0;r<this.children.length;++r)if(i=this.children[r],u=i.chunkSize(),n<u){if(f=Math.min(t,u-n),o=i.height,i.removeInner(n,f),this.height-=o-i.height,u==f&&(this.children.splice(r--,1),i.parent=null),(t-=f)==0)break;n=0}else n-=u;this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof cf))&&(e=[],this.collapse(e),this.children=[new cf(e)],this.children[0].parent=this)},collapse:function(n){for(var t=0;t<this.children.length;++t)this.children[t].collapse(n)},insertInner:function(n,t,i){var u,r,e,o,f;for(this.size+=t.length,this.height+=i,u=0;u<this.children.length;++u){if(r=this.children[u],e=r.chunkSize(),n<=e){if(r.insertInner(n,t,i),r.lines&&r.lines.length>50){while(r.lines.length>50)o=r.lines.splice(r.lines.length-25,25),f=new cf(o),r.height-=f.height,this.children.splice(u+1,0,f),f.parent=this;this.maybeSpill()}break}n-=e}},maybeSpill:function(){var n,r,t,i,u;if(!(this.children.length<=10)){n=this;do r=n.children.splice(n.children.length-5,5),t=new lf(r),n.parent?(n.size-=t.size,n.height-=t.height,u=b(n.parent.children,n),n.parent.children.splice(u+1,0,t)):(i=new lf(n.children),i.parent=n,n.children=[i,t],n=i),t.parent=n.parent;while(n.children.length>10);n.parent.maybeSpill()}},iterN:function(n,t,i){for(var f,u,e,r=0;r<this.children.length;++r)if(f=this.children[r],u=f.chunkSize(),n<u){if(e=Math.min(t,u-n),f.iterN(n,e,i))return!0;if((t-=e)==0)break;n=0}else n-=u}};yy=0;tt=n.Doc=function(n,i,r){if(!(this instanceof tt))return new tt(n,i,r);r==null&&(r=0);lf.call(this,[new cf([new ai("",null)])]);this.first=r;this.scrollTop=this.scrollLeft=0;this.cantEdit=!1;this.cleanGeneration=1;this.frontier=r;var u=t(r,0);this.sel=bi(u);this.history=new co(null);this.id=++yy;this.modeOption=i;typeof n=="string"&&(n=hr(n));gh(this,{from:u,to:u,text:n});k(this,bi(u),vi)};tt.prototype=hp(lf.prototype,{constructor:tt,iter:function(n,t,i){i?this.iterN(n-this.first,t-n,i):this.iterN(this.first,this.first+this.size,n)},insert:function(n,t){for(var r=0,i=0;i<t.length;++i)r+=t[i].height;this.insertInner(n-this.first,t,r)},remove:function(n,t){this.removeInner(n-this.first,t)},getValue:function(n){var t=nc(this,this.first,this.first+this.size);return n===!1?t:t.join(n||"\n")},setValue:nt(function(n){var i=t(this.first,0),u=this.first+this.size-1;vr(this,{from:i,to:t(u,r(this,u).text.length),text:hr(n),origin:"setValue"},!0);k(this,bi(i))}),replaceRange:function(n,t,i,r){t=u(this,t);i=i?u(this,i):t;to(this,n,t,i,r)},getRange:function(n,t,i){var r=vf(this,u(this,n),u(this,t));return i===!1?r:r.join(i||"\n")},getLine:function(n){var t=this.getLineHandle(n);return t&&t.text},getLineHandle:function(n){if(cu(this,n))return r(this,n)},getLineNumber:function(n){return a(n)},getLineHandleVisualStart:function(n){return typeof n=="number"&&(n=r(this,n)),vt(n)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(n){return u(this,n)},getCursor:function(n){var t=this.sel.primary();return n==null||n=="head"?t.head:n=="anchor"?t.anchor:n=="end"||n=="to"||n===!1?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:nt(function(n,i,r){pl(this,u(this,typeof n=="number"?t(n,i||0):n),null,r)}),setSelection:nt(function(n,t,i){pl(this,u(this,n),u(this,t||n),i)}),extendSelection:nt(function(n,t,i){re(this,u(this,n),t&&u(this,t),i)}),extendSelections:nt(function(n,t){yl(this,yw(this,n,t))}),extendSelectionsBy:nt(function(n,t){yl(this,tu(this.sel.ranges,n),t)}),setSelections:nt(function(n,t,i){if(n.length){for(var r=0,f=[];r<n.length;r++)f[r]=new c(u(this,n[r].anchor),u(this,n[r].head));t==null&&(t=Math.min(n.length-1,this.sel.primIndex));k(this,st(f,t),i)}}),addSelection:nt(function(n,t,i){var r=this.sel.ranges.slice(0);r.push(new c(u(this,n),u(this,t||n)));k(this,st(r,r.length-1),i)}),getSelection:function(n){for(var u,r=this.sel.ranges,t,i=0;i<r.length;i++)u=vf(this,r[i].from(),r[i].to()),t=t?t.concat(u):u;return n===!1?t:t.join(n||"\n")},getSelections:function(n){for(var i,u=[],r=this.sel.ranges,t=0;t<r.length;t++)i=vf(this,r[t].from(),r[t].to()),n!==!1&&(i=i.join(n||"\n")),u[t]=i;return u},replaceSelection:function(n,t,i){for(var u=[],r=0;r<this.sel.ranges.length;r++)u[r]=n;this.replaceSelections(u,t,i||"+input")},replaceSelections:nt(function(n,t,i){for(var f,e,u=[],o=this.sel,r=0;r<o.ranges.length;r++)f=o.ranges[r],u[r]={from:f.from(),to:f.to(),text:hr(n[r]),origin:i};for(e=t&&t!="end"&&rk(this,u,t),r=u.length-1;r>=0;r--)vr(this,u[r]);e?wl(this,e):this.cm&&yr(this.cm)}),undo:nt(function(){no(this,"undo")}),redo:nt(function(){no(this,"redo")}),undoSelection:nt(function(){no(this,"undo",!0)}),redoSelection:nt(function(){no(this,"redo",!0)}),setExtending:function(n){this.extend=n},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,i=0,r=0,n=0;n<t.done.length;n++)t.done[n].ranges||++i;for(n=0;n<t.undone.length;n++)t.undone[n].ranges||++r;return{undo:i,redo:r}},clearHistory:function(){this.history=new co(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(n){return n&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(n){return this.history.generation==(n||this.cleanGeneration)},getHistory:function(){return{done:dr(this.history.done),undone:dr(this.history.undone)}},setHistory:function(n){var t=this.history=new co(this.history.maxGeneration);t.done=dr(n.done.slice(0),null,!0);t.undone=dr(n.undone.slice(0),null,!0)},addLineClass:nt(function(n,t,i){return uo(this,n,t=="gutter"?"gutter":"class",function(n){var r=t=="text"?"textClass":t=="background"?"bgClass":t=="gutter"?"gutterClass":"wrapClass";if(n[r]){if(df(i).test(n[r]))return!1;n[r]+=" "+i}else n[r]=i;return!0})}),removeLineClass:nt(function(n,t,i){return uo(this,n,t=="gutter"?"gutter":"class",function(n){var f=t=="text"?"textClass":t=="background"?"bgClass":t=="gutter"?"gutterClass":"wrapClass",u=n[f],r,e;if(u)if(i==null)n[f]=null;else{if(r=u.match(df(i)),!r)return!1;e=r.index+r[0].length;n[f]=u.slice(0,r.index)+(!r.index||e==u.length?"":" ")+u.slice(e)||null}else return!1;return!0})}),markText:function(n,t,i){return kr(this,u(this,n),u(this,t),i,"range")},setBookmark:function(n,t){var i={replacedWith:t&&(t.nodeType==null?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared};return n=u(this,n),kr(this,n,n,i,"bookmark")},findMarksAt:function(n){var e,i,f,t;if(n=u(this,n),e=[],i=r(this,n.line).markedSpans,i)for(f=0;f<i.length;++f)t=i[f],(t.from==null||t.from<=n.ch)&&(t.to==null||t.to>=n.ch)&&e.push(t.marker.parent||t.marker);return e},findMarks:function(n,t,i){n=u(this,n);t=u(this,t);var f=[],r=n.line;return this.iter(n.line,t.line+1,function(u){var s=u.markedSpans,o,e;if(s)for(o=0;o<s.length;o++)e=s[o],r==n.line&&n.ch>e.to||e.from==null&&r!=n.line||r==t.line&&e.from>t.ch||i&&!i(e.marker)||f.push(e.marker.parent||e.marker);++r}),f},getAllMarks:function(){var n=[];return this.iter(function(t){var r=t.markedSpans,i;if(r)for(i=0;i<r.length;++i)r[i].from!=null&&n.push(r[i].marker)}),n},posFromIndex:function(n){var i,r=this.first;return this.iter(function(t){var u=t.text.length+1;if(u>n)return i=n,!0;n-=u;++r}),u(this,t(r,i))},indexFromPos:function(n){n=u(this,n);var t=n.ch;return n.line<this.first||n.ch<0?0:(this.iter(this.first,n.line,function(n){t+=n.text.length+1}),t)},copy:function(n){var t=new tt(nc(this,this.first,this.first+this.size),this.modeOption,this.first);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,n&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(n){var i,r,t;return n||(n={}),i=this.first,r=this.first+this.size,n.from!=null&&n.from>i&&(i=n.from),n.to!=null&&n.to<r&&(r=n.to),t=new tt(nc(this,i,r),n.mode||this.modeOption,i),n.sharedHist&&(t.history=this.history),(this.linked||(this.linked=[])).push({doc:t,sharedHist:n.sharedHist}),t.linked=[{doc:this,isParent:!0,sharedHist:n.sharedHist}],ak(t,av(this)),t},unlinkDoc:function(t){var i,u,r;if(t instanceof n&&(t=t.doc),this.linked)for(i=0;i<this.linked.length;++i)if(u=this.linked[i],u.doc==t){this.linked.splice(i,1);t.unlinkDoc(this);vk(av(this));break}t.history==this.history&&(r=[t.id],er(t,function(n){r.push(n.id)},!0),t.history=new co(null),t.history.done=dr(this.history.done,r),t.history.undone=dr(this.history.undone,r))},iterLinkedDocs:function(n){er(this,n)},getMode:function(){return this.mode},getEditor:function(){return this.cm}});tt.prototype.eachLine=tt.prototype.iter;py="iter insert remove copy getEditor".split(" ");for(af in tt.prototype)tt.prototype.hasOwnProperty(af)&&b(py,af)<0&&(n.prototype[af]=function(n){return function(){return n.apply(this.doc,arguments)}}(tt.prototype[af]));gr(tt);d=n.e_preventDefault=function(n){n.preventDefault?n.preventDefault():n.returnValue=!1};ip=n.e_stopPropagation=function(n){n.stopPropagation?n.stopPropagation():n.cancelBubble=!0};ao=n.e_stop=function(n){d(n);ip(n)};var o=n.on=function(n,t,i){if(n.addEventListener)n.addEventListener(t,i,!1);else if(n.attachEvent)n.attachEvent("on"+t,i);else{var r=n._handlers||(n._handlers={}),u=r[t]||(r[t]=[]);u.push(i)}},ri=n.off=function(n,t,i){var r,u;if(n.removeEventListener)n.removeEventListener(t,i,!1);else if(n.detachEvent)n.detachEvent("on"+t,i);else{if(r=n._handlers&&n._handlers[t],!r)return;for(u=0;u<r.length;++u)if(r[u]==i){r.splice(u,1);break}}},y=n.signal=function(n,t){var r=n._handlers&&n._handlers[t],u,i;if(r)for(u=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,u)},pf=null;var fp=30,ep=n.Pass={toString:function(){return"CodeMirror.Pass"}},vi={scroll:!1},rc={origin:"*mouse"},wf={origin:"+move"};vo.prototype.set=function(n,t){clearTimeout(this.id);this.id=setTimeout(t,n)};ft=n.countColumn=function(n,t,i,r,u){var f,e,o;for(t==null&&(t=n.search(/[^\s\u00a0]/),t==-1&&(t=n.length)),f=r||0,e=u||0;;){if(o=n.indexOf("\t",f),o<0||o>=t)return e+(t-f);e+=o-f;e+=i-e%i;f=o+1}};bf=[""];nu=function(n){n.select()};eu?nu=function(n){n.selectionStart=0;n.selectionEnd=n.value.length}:s&&(nu=function(n){try{n.select()}catch(t){}});[].indexOf&&(b=function(n,t){return n.indexOf(t)});[].map&&(tu=function(n,t){return n.map(t)});cp=/[\u00df\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;uc=n.isWordChar=function(n){return/\w/.test(n)||n>""&&(n.toUpperCase()!=n.toLowerCase()||cp.test(n))};ap=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;iu=document.createRange?function(n,t,i){var r=document.createRange();return r.setEnd(n,i),r.setStart(n,t),r}:function(n,t,i){var r=document.body.createTextRange();try{r.moveToElementText(n.parentNode)}catch(u){return r}return r.collapse(!0),r.moveEnd("character",i),r.moveStart("character",t),r};s&&h<11&&(pi=function(){try{return document.activeElement}catch(n){return document.body}});ru=n.rmClass=function(n,t){var r=n.className,i=df(t).exec(r),u;i&&(u=r.slice(i.index+i[0].length),n.className=r.slice(0,i.index)+(u?i[1]+u:""))};uu=n.addClass=function(n,t){var i=n.className;df(t).test(i)||(n.className+=(i?" ":"")+t)};ec=!1;yp=function(){if(s&&h<9)return!1;var n=i("div");return"draggable"in n||"dragDrop"in n}();var hr=n.splitLines="\n\nb".split(/\n/).length!=3?function(n){for(var i=0,f=[],e=n.length,t,r,u;i<=e;)t=n.indexOf("\n",i),t==-1&&(t=n.length),r=n.slice(i,n.charAt(t-1)=="\r"?t-1:t),u=r.indexOf("\r"),u!=-1?(f.push(r.slice(0,u)),i+=u+1):(f.push(r),i=t+1);return f}:function(n){return n.split(/\r\n?|\n/)},kd=window.getSelection?function(n){try{return n.selectionStart!=n.selectionEnd}catch(t){return!1}}:function(n){try{var t=n.ownerDocument.selection.createRange()}catch(i){}return!t||t.parentElement()!=n?!1:t.compareEndPoints("StartToEnd",t)!=0},pp=function(){var n=i("div");return"oncopy"in n?!0:(n.setAttribute("oncopy","return;"),typeof n.oncopy=="function")}(),hc=null;return ui={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",107:"=",109:"-",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},n.keyNames=ui,function(){for(var n=0;n<10;n++)ui[n+48]=ui[n+96]=String(n);for(n=65;n<=90;n++)ui[n]=String.fromCharCode(n);for(n=1;n<=12;n++)ui[n+111]=ui[n+63235]="F"+n}(),dp=function(){function s(n){return n<=247?e.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1773?o.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":n==8204?"b":"L"}function n(n,t,i){this.level=n;this.from=t;this.to=i}var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",o="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm",h=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,r=/[LRr]/,u=/[Lb1n]/,f=/[1n]/,t="L";return function(e){var y,c,b,tt,d,v,w,p,g,o,it,k,nt,a,rt;if(!h.test(e))return!1;for(y=e.length,c=[],o=0;o<y;++o)c.push(v=s(e.charCodeAt(o)));for(o=0,b=t;o<y;++o)v=c[o],v=="m"?c[o]=b:b=v;for(o=0,d=t;o<y;++o)v=c[o],v=="1"&&d=="r"?c[o]="n":r.test(v)&&(d=v,v=="r"&&(c[o]="R"));for(o=1,b=c[0];o<y-1;++o)v=c[o],v=="+"&&b=="1"&&c[o+1]=="1"?c[o]="1":v==","&&b==c[o+1]&&(b=="1"||b=="n")&&(c[o]=b),b=v;for(o=0;o<y;++o)if(v=c[o],v==",")c[o]="N";else if(v=="%"){for(w=o+1;w<y&&c[w]=="%";++w);for(tt=o&&c[o-1]=="!"||w<y&&c[w]=="1"?"1":"N",a=o;a<w;++a)c[a]=tt;o=w-1}for(o=0,d=t;o<y;++o)v=c[o],d=="L"&&v=="1"?c[o]="L":r.test(v)&&(d=v);for(o=0;o<y;++o)if(i.test(c[o])){for(w=o+1;w<y&&i.test(c[w]);++w);var ut=(o?c[o-1]:t)=="L",ft=(w<y?c[w]:t)=="L",tt=ut||ft?"L":"R";for(a=o;a<w;++a)c[a]=tt;o=w-1}for(p=[],o=0;o<y;)if(u.test(c[o])){for(it=o,++o;o<y&&u.test(c[o]);++o);p.push(new n(0,it,o))}else{for(k=o,nt=p.length,++o;o<y&&c[o]!="L";++o);for(a=k;a<o;)if(f.test(c[a])){for(k<a&&p.splice(nt,0,new n(1,k,a)),rt=a,++a;a<o&&f.test(c[a]);++a);p.splice(nt,0,new n(2,rt,a));k=a}else++a;k<o&&p.splice(nt,0,new n(1,k,o))}return p[0].level==1&&(g=e.match(/^\s+/))&&(p[0].from=g[0].length,p.unshift(new n(0,0,g[0].length))),l(p).level==1&&(g=e.match(/\s+$/))&&(l(p).to-=g[0].length,p.push(new n(0,y-g[0].length,y))),p[0].level!=l(p).level&&p.push(new n(p[0].level,y,y)),p}}(),n.version="4.11.0",n}),CodeMirror.defineMode("sql",function(n,t){function h(n,t,i){return t.tokenize=i,i(n,t)}function i(n,t){return l=n,t}function u(n,t){var u=n.next();return u=="'"?h(n,t,a(u)):u=="["?(n.skipTo("]"),"sql-word"):/[{}\(\)\.]/.test(u)?i(u):u==","||u==";"?"sql-separator":/\d/.test(u)?(n.eatWhile(/[\w\.]/),i("number","sql-number")):u=="/"?n.eat("*")?h(n,t,v):(n.eatWhile(r),i("operator","sql-operator")):u=="-"?n.eat("-")?(n.skipToEnd(),i("comment","sql-comment")):(n.eatWhile(r),i("operator","sql-operator")):u=="#"?n.match(/^#([a-zA-Z][A-Za-z0-9]*)(?::([A-Za-z]+))?(?:\?([^#]+))?##/,!0)?i("word","sql-special"):i("word","sql-word"):u=="@"||u=="$"?(n.eatWhile(/[\w\d\$_]/),i("word","sql-var")):r.test(u)?(n.eatWhile(r),i("operator","sql-operator")):/[()]/.test(u)?"sql-punctuation":(n.eatWhile(/[\w\$_]/),f&&f.propertyIsEnumerable(n.current().toLowerCase()))?i("keyword","sql-keyword"):e&&e.propertyIsEnumerable(n.current().toLowerCase())?i("keyword","sql-function"):o&&o.propertyIsEnumerable(n.current().toLowerCase())?i("keyword","sql-type"):s&&s.propertyIsEnumerable(n.current().toLowerCase())?i("keyword","sql-operators"):i("word","sql-word")}function a(n){return function(t,r){for(var f=!1,e,o=!1,s;(e=t.next())!=null;){if(e==n&&!f){o=!0;break}f=!f&&e=="\\"}return!o&&(f||c)||(r.tokenize=u),s=n=="`"?"sql-quoted-word":"sql-literal",i("string",s)}}function v(n,t){for(var f=!1,r;r=n.next();){if(r=="/"&&f){t.tokenize=u;break}f=r=="*"}return i("comment","sql-comment")}var y=n.indentUnit,f=t.keywords,e=t.functions,o=t.types,s=t.operators,c=t.multiLineStrings,r=/[+\-*&%=<>!?:\/|]/,l;return{startState:function(){return{tokenize:u,indented:0,startOfLine:!0}},token:function(n,t){if(n.eatSpace())return null;return t.tokenize(n,t)},electricChars:")"}}),function(){function n(n){for(var i={},r=n.split(" "),t=0;t<r.length;++t)i[r[t]]=!0;return i}CodeMirror.defineMIME("text/x-t-sql",{name:"sql",keywords:n("add alter as asc authorization backup begin break browse bulk by cascade case checkpoint close clustered coalesce colate column commit compute constraint contains containstable continue convert create cross current cursor database dbcc deallocate declare default delete deny desc disk distinct distributed drop dump else end escape exec execute exit external fetch file filefactor for foreign from function goto grant group having holdlock if index insert into key kill lineno load merge national nocheck nonclustered nocount off offsets on open opendatasource openquery openrowset openxml option order over percent plan precision primary print proc procedure public read readtext reconfigure reference replication restore restrict return revert revoke rollback rowcount rowguidcol rule save schema select set setuser shutdown statistics table tablesample textsize then to top tran transaction trigger truncate unique update updatetext use user values varying view waitfor when where while with writetext"),functions:n("avg checksum_agg count count_big grouping grouping_id max min sum stdev stdevp var varp sysdatetime sysdatetimeoffset sysutcdatetime current_timestamp getdate getutcdate datenamedatepart day month year datediff dateadd switchoffset todatetimeoffset isdate abs acos asin atan atn2 ceiling cos cot degrees exp floor log log10 pi power radians rand round sign sin sqrt square tanrank ntile dense_rank row_number ascii char charindex difference left len lower ltrim nchar patindex quotename replace replicate reverse right rtrim soundex space str stuff substring unicode upper cast convert isnull isnumeric nullif"),types:n("bigint bit decimal int money numeric smallint smallmoney tinyint float real date datetime2 datetime datetimeoffset smalldatetime time char text varchar nchar ntext nvarchar binary image varbinary cursor hierarchyid sql_variant timestamp uniqueidentifier xml"),operators:n("~ ^ >= <= <> != !< !> += -= *= /= %= &= ^= |= all and any between exists in like not or some except intersect union join inner outer left right is null pivot unpivot"),multiLineStrings:!0})}(),function(n){typeof exports=="object"&&typeof module=="object"?n(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(n){"use strict";n.runMode=function(t,i,r,u){var s=n.getMode(n.defaults,i),p=/MSIE \d/.test(navigator.userAgent),w=p&&(document.documentMode==null||document.documentMode<9),l,c,e,v,f,y;if(r.nodeType==1){var a=u&&u.tabSize||n.defaults.tabSize,h=r,o=0;h.innerHTML="";r=function(n,t){var r,i,u,f,e,s;if(n=="\n"){h.appendChild(document.createTextNode(w?"\r":n));o=0;return}for(r="",i=0;;)if(u=n.indexOf("\t",i),u==-1){r+=n.slice(i);o+=n.length-i;break}else{for(o+=u-i,r+=n.slice(i,u),f=a-o%a,o+=f,e=0;e<f;++e)r+=" ";i=u+1}t?(s=h.appendChild(document.createElement("span")),s.className="cm-"+t.replace(/ +/g," cm-"),s.appendChild(document.createTextNode(r))):h.appendChild(document.createTextNode(r))}}for(l=n.splitLines(t),c=u&&u.state||n.startState(s),e=0,v=l.length;e<v;++e)for(e&&r("\n"),f=new n.StringStream(l[e]),!f.string&&s.blankLine&&s.blankLine(c);!f.eol();)y=s.token(f,c),r(f.current(),y,e,f.start,c),f.start=f.pos}}),function(n){n.color={};n.color.make=function(t,i,r,u){var f={};return f.r=t||0,f.g=i||0,f.b=r||0,f.a=u!=null?u:1,f.add=function(n,t){for(var i=0;i<n.length;++i)f[n.charAt(i)]+=t;return f.normalize()},f.scale=function(n,t){for(var i=0;i<n.length;++i)f[n.charAt(i)]*=t;return f.normalize()},f.toString=function(){return f.a>=1?"rgb("+[f.r,f.g,f.b].join(",")+")":"rgba("+[f.r,f.g,f.b,f.a].join(",")+")"},f.normalize=function(){function n(n,t,i){return t<n?n:t>i?i:t}return f.r=n(0,parseInt(f.r),255),f.g=n(0,parseInt(f.g),255),f.b=n(0,parseInt(f.b),255),f.a=n(0,f.a,1),f},f.clone=function(){return n.color.make(f.r,f.b,f.g,f.a)},f.normalize()};n.color.extract=function(t,i){var r;do{if(r=t.css(i).toLowerCase(),r!=""&&r!="transparent")break;t=t.parent()}while(t.length&&!n.nodeName(t.get(0),"body"));return r=="rgba(0, 0, 0, 0)"&&(r="transparent"),n.color.parse(r)};n.color.parse=function(i){var r,u=n.color.make,f;return(r=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(i))?u(parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10)):(r=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(i))?u(parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10),parseFloat(r[4])):(r=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(i))?u(parseFloat(r[1])*2.55,parseFloat(r[2])*2.55,parseFloat(r[3])*2.55):(r=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(i))?u(parseFloat(r[1])*2.55,parseFloat(r[2])*2.55,parseFloat(r[3])*2.55,parseFloat(r[4])):(r=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(i))?u(parseInt(r[1],16),parseInt(r[2],16),parseInt(r[3],16)):(r=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(i))?u(parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)):(f=n.trim(i).toLowerCase(),f=="transparent"?u(255,255,255,0):(r=t[f]||[0,0,0],u(r[0],r[1],r[2])))};var t={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}}(jQuery),function(n){function t(t,i){var r=i.children("."+t)[0];if(r==null&&(r=document.createElement("canvas"),r.className=t,n(r).css({direction:"ltr",position:"absolute",left:0,top:0}).appendTo(i),!r.getContext))if(window.G_vmlCanvasManager)r=window.G_vmlCanvasManager.initElement(r);else throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.");this.element=r;var u=this.context=r.getContext("2d"),f=window.devicePixelRatio||1,e=u.webkitBackingStorePixelRatio||u.mozBackingStorePixelRatio||u.msBackingStorePixelRatio||u.oBackingStorePixelRatio||u.backingStorePixelRatio||1;this.pixelRatio=f/e;this.resize(i.width(),i.height());this.textContainer=null;this.text={};this._textCache={}}function r(i,r,f,e){function nt(n,t){t=[l].concat(t);for(var i=0;i<n.length;++i)n[i].apply(this,t)}function ui(){for(var i,u={Canvas:t},r=0;r<e.length;++r)i=e[r],i.init(l,u),i.options&&n.extend(!0,o,i.options)}function fi(t){var f;n.extend(!0,o,t);t&&t.colors&&(o.colors=t.colors);o.xaxis.color==null&&(o.xaxis.color=n.color.parse(o.grid.color).scale("a",.22).toString());o.yaxis.color==null&&(o.yaxis.color=n.color.parse(o.grid.color).scale("a",.22).toString());o.xaxis.tickColor==null&&(o.xaxis.tickColor=o.grid.tickColor||o.xaxis.color);o.yaxis.tickColor==null&&(o.yaxis.tickColor=o.grid.tickColor||o.yaxis.color);o.grid.borderColor==null&&(o.grid.borderColor=o.grid.color);o.grid.tickColor==null&&(o.grid.tickColor=n.color.parse(o.grid.color).scale("a",.22).toString());for(var r,s=i.css("font-size"),c=s?+s.replace("px",""):13,h={style:i.css("font-style"),size:Math.round(.8*c),variant:i.css("font-variant"),weight:i.css("font-weight"),family:i.css("font-family")},e=o.xaxes.length||1,u=0;u<e;++u)r=o.xaxes[u],r&&!r.tickColor&&(r.tickColor=r.color),r=n.extend(!0,{},o.xaxis,r),o.xaxes[u]=r,r.font&&(r.font=n.extend({},h,r.font),r.font.color||(r.font.color=r.color),r.font.lineHeight||(r.font.lineHeight=Math.round(r.font.size*1.15)));for(e=o.yaxes.length||1,u=0;u<e;++u)r=o.yaxes[u],r&&!r.tickColor&&(r.tickColor=r.color),r=n.extend(!0,{},o.yaxis,r),o.yaxes[u]=r,r.font&&(r.font=n.extend({},h,r.font),r.font.color||(r.font.color=r.color),r.font.lineHeight||(r.font.lineHeight=Math.round(r.font.size*1.15)));for(o.xaxis.noTicks&&o.xaxis.ticks==null&&(o.xaxis.ticks=o.xaxis.noTicks),o.yaxis.noTicks&&o.yaxis.ticks==null&&(o.yaxis.ticks=o.yaxis.noTicks),o.x2axis&&(o.xaxes[1]=n.extend(!0,{},o.xaxis,o.x2axis),o.xaxes[1].position="top",o.x2axis.min==null&&(o.xaxes[1].min=null),o.x2axis.max==null&&(o.xaxes[1].max=null)),o.y2axis&&(o.yaxes[1]=n.extend(!0,{},o.yaxis,o.y2axis),o.yaxes[1].position="right",o.y2axis.min==null&&(o.yaxes[1].min=null),o.y2axis.max==null&&(o.yaxes[1].max=null)),o.grid.coloredAreas&&(o.grid.markings=o.grid.coloredAreas),o.grid.coloredAreasColor&&(o.grid.markingsColor=o.grid.coloredAreasColor),o.lines&&n.extend(!0,o.series.lines,o.lines),o.points&&n.extend(!0,o.series.points,o.points),o.bars&&n.extend(!0,o.series.bars,o.bars),o.shadowSize!=null&&(o.series.shadowSize=o.shadowSize),o.highlightColor!=null&&(o.series.highlightColor=o.highlightColor),u=0;u<o.xaxes.length;++u)et(y,u+1).options=o.xaxes[u];for(u=0;u<o.yaxes.length;++u)et(w,u+1).options=o.yaxes[u];for(f in p)o.hooks[f]&&o.hooks[f].length&&(p[f]=p[f].concat(o.hooks[f]));nt(p.processOptions,[o])}function ht(n){c=ei(n);si();hi()}function ei(t){for(var r,u=[],i=0;i<t.length;++i)r=n.extend(!0,{},o.series),t[i].data!=null?(r.data=t[i].data,delete t[i].data,n.extend(!0,r,t[i]),t[i].data=r.data):r.data=t[i],u.push(r);return u}function ft(n,t){var i=n[t+"axis"];return typeof i=="object"&&(i=i.n),typeof i!="number"&&(i=1),i}function it(){return n.grep(y.concat(w),function(n){return n})}function ct(n){for(var i={},t,r=0;r<y.length;++r)t=y[r],t&&t.used&&(i["x"+t.n]=t.c2p(n.left));for(r=0;r<w.length;++r)t=w[r],t&&t.used&&(i["y"+t.n]=t.c2p(n.top));return i.x1!==undefined&&(i.x=i.x1),i.y1!==undefined&&(i.y=i.y1),i}function oi(n){for(var u={},t,i,r=0;r<y.length;++r)if(t=y[r],t&&t.used&&(i="x"+t.n,n[i]==null&&t.n==1&&(i="x"),n[i]!=null)){u.left=t.p2c(n[i]);break}for(r=0;r<w.length;++r)if(t=w[r],t&&t.used&&(i="y"+t.n,n[i]==null&&t.n==1&&(i="y"),n[i]!=null)){u.top=t.p2c(n[i]);break}return u}function et(t,i){return t[i-1]||(t[i-1]={n:i,direction:t==y?"x":"y",options:n.extend(!0,{},t==y?o.xaxis:o.yaxis)}),t[i-1]}function si(){for(var f=c.length,e=-1,u,h,t,l,a,i=0;i<c.length;++i)u=c[i].color,u!=null&&(f--,typeof u=="number"&&u>e&&(e=u));f<=e&&(f=e+1);var v,s=[],p=o.colors,b=p.length,r=0;for(i=0;i<f;i++)v=n.color.parse(p[i%b]||"#666"),i%b==0&&i&&(r=r>=0?r<.5?-r-.2:0:-r),s[i]=v.scale("rgb",1+r);for(h=0,i=0;i<c.length;++i){if(t=c[i],t.color==null?(t.color=s[h].toString(),++h):typeof t.color=="number"&&(t.color=s[t.color].toString()),t.lines.show==null){a=!0;for(l in t)if(t[l]&&t[l].show){a=!1;break}a&&(t.lines.show=!0)}t.lines.zero==null&&(t.lines.zero=!!t.lines.fill);t.xaxis=et(y,ft(t,"x"));t.yaxis=et(w,ft(t,"y"))}}function hi(){function b(n,t,i){t<n.datamin&&t!=-v&&(n.datamin=t);i>n.datamax&&i!=v&&(n.datamax=i)}var y=Number.POSITIVE_INFINITY,w=Number.NEGATIVE_INFINITY,v=Number.MAX_VALUE,f,l,e,r,t,u,h,i,s,ut,ft,o,et,ot,k,a;for(n.each(it(),function(n,t){t.datamin=y;t.datamax=w;t.used=!1}),f=0;f<c.length;++f)t=c[f],t.datapoints={points:[]},nt(p.processRawData,[t,t.data,t.datapoints]);for(f=0;f<c.length;++f)if(t=c[f],ft=t.data,o=t.datapoints.format,o||(o=[],o.push({x:!0,number:!0,required:!0}),o.push({y:!0,number:!0,required:!0}),(t.bars.show||t.lines.show&&t.lines.fill)&&(et=!!(t.bars.show&&t.bars.zero||t.lines.show&&t.lines.zero),o.push({y:!0,number:!0,required:!1,defaultValue:0,autoscale:et}),t.bars.horizontal&&(delete o[o.length-1].y,o[o.length-1].x=!0)),t.datapoints.format=o),t.datapoints.pointsize==null)for(t.datapoints.pointsize=o.length,h=t.datapoints.pointsize,u=t.datapoints.points,ot=t.lines.show&&t.lines.steps,t.xaxis.used=t.yaxis.used=!0,l=e=0;l<ft.length;++l,e+=h){if(ut=ft[l],k=ut==null,!k)for(r=0;r<h;++r)i=ut[r],s=o[r],s&&(s.number&&i!=null&&(i=+i,isNaN(i)?i=null:i==Infinity?i=v:i==-Infinity&&(i=-v)),i==null&&(s.required&&(k=!0),s.defaultValue!=null&&(i=s.defaultValue))),u[e+r]=i;if(k)for(r=0;r<h;++r)i=u[e+r],i!=null&&(s=o[r],s.autoscale!==!1&&(s.x&&b(t.xaxis,i,i),s.y&&b(t.yaxis,i,i))),u[e+r]=null;else if(ot&&e>0&&u[e-h]!=null&&u[e-h]!=u[e]&&u[e-h+1]!=u[e+1]){for(r=0;r<h;++r)u[e+h+r]=u[e+r];u[e+1]=u[e-h+1];e+=h}}for(f=0;f<c.length;++f)t=c[f],nt(p.processDatapoints,[t,t.datapoints]);for(f=0;f<c.length;++f){t=c[f];u=t.datapoints.points;h=t.datapoints.pointsize;o=t.datapoints.format;var d=y,g=y,tt=w,rt=w;for(l=0;l<u.length;l+=h)if(u[l]!=null)for(r=0;r<h;++r)(i=u[l+r],s=o[r],s&&s.autoscale!==!1&&i!=v&&i!=-v)&&(s.x&&(i<d&&(d=i),i>tt&&(tt=i)),s.y&&(i<g&&(g=i),i>rt&&(rt=i)));if(t.bars.show){switch(t.bars.align){case"left":a=0;break;case"right":a=-t.bars.barWidth;break;default:a=-t.bars.barWidth/2}t.bars.horizontal?(g+=a,rt+=a+t.bars.barWidth):(d+=a,tt+=a+t.bars.barWidth)}b(t.xaxis,d,tt);b(t.yaxis,g,rt)}n.each(it(),function(n,t){t.datamin==y&&(t.datamin=null);t.datamax==w&&(t.datamax=null)})}function ci(){i.css("padding",0).children().filter(function(){return!n(this).hasClass("flot-overlay")&&!n(this).hasClass("flot-base")}).remove();i.css("position")=="static"&&i.css("position","relative");a=new t("flot-base",i);tt=new t("flot-overlay",i);s=a.context;v=tt.context;k=n(tt.element).unbind();var r=i.data("plot");r&&(r.shutdown(),tt.clear());i.data("plot",l)}function li(){o.grid.hoverable&&(k.mousemove(bt),k.bind("mouseleave",kt));o.grid.clickable&&k.click(dt);nt(p.bindEvents,[k])}function lt(){rt&&clearTimeout(rt);k.unbind("mousemove",bt);k.unbind("mouseleave",kt);k.unbind("click",dt);nt(p.shutdown,[k])}function ai(n){function u(n){return n}var i,r,t=n.options.transform||u,f=n.options.inverseTransform;n.direction=="x"?(i=n.scale=d/Math.abs(t(n.max)-t(n.min)),r=Math.min(t(n.max),t(n.min))):(i=n.scale=b/Math.abs(t(n.max)-t(n.min)),i=-i,r=Math.max(t(n.max),t(n.min)));n.p2c=t==u?function(n){return(n-r)*i}:function(n){return(t(n)-r)*i};n.c2p=f?function(n){return f(r+n/i)}:function(n){return r+n/i}}function vi(n){for(var e,o,t=n.options,r=n.ticks||[],i=t.labelWidth||0,u=t.labelHeight||0,s=i||(n.direction=="x"?Math.floor(a.width/(r.length||1)):null),h=n.direction+"Axis "+n.direction+n.n+"Axis",c="flot-"+n.direction+"-axis flot-"+n.direction+n.n+"-axis "+h,l=t.font||"flot-tick-label tickLabel",f=0;f<r.length;++f)(e=r[f],e.label)&&(o=a.getTextInfo(c,e.label,l,null,s),i=Math.max(i,o.width),u=Math.max(u,o.height));n.labelWidth=t.labelWidth||i;n.labelHeight=t.labelHeight||u}function yi(t){var r=t.labelWidth,u=t.labelHeight,e=t.options.position,l=t.direction==="x",f=t.options.tickLength,i=o.grid.axisMargin,s=o.grid.labelMargin,v=!0,p=!0,b=!0,c=!1;n.each(l?y:w,function(n,i){i&&(i.show||i.reserveSpace)&&(i===t?c=!0:i.options.position===e&&(c?p=!1:v=!1),c||(b=!1))});p&&(i=0);f==null&&(f=b?"full":5);isNaN(+f)||(s+=+f);l?(u+=s,e=="bottom"?(h.bottom+=u+i,t.box={top:a.height-h.bottom,height:u}):(t.box={top:h.top+i,height:u},h.top+=u+i)):(r+=s,e=="left"?(t.box={left:h.left+i,width:r},h.left+=r+i):(h.right+=r+i,t.box={left:a.width-h.right,width:r}));t.position=e;t.tickLength=f;t.box.padding=s;t.innermost=v}function pi(n){n.direction=="x"?(n.box.left=h.left-n.labelWidth/2,n.box.width=a.width-h.left-h.right+n.labelWidth):(n.box.top=h.top-n.labelHeight/2,n.box.height=a.height-h.bottom-h.top+n.labelHeight)}function wi(){var i=o.grid.minBorderMargin,r,t;if(i==null)for(i=0,r=0;r<c.length;++r)i=Math.max(i,2*(c[r].points.radius+c[r].points.lineWidth/2));t={left:i,right:i,top:i,bottom:i};n.each(it(),function(n,i){i.reserveSpace&&i.ticks&&i.ticks.length&&(i.direction==="x"?(t.left=Math.max(t.left,i.labelWidth/2),t.right=Math.max(t.right,i.labelWidth/2)):(t.bottom=Math.max(t.bottom,i.labelHeight/2),t.top=Math.max(t.top,i.labelHeight/2)))});h.left=Math.ceil(Math.max(t.left,h.left));h.right=Math.ceil(Math.max(t.right,h.right));h.top=Math.ceil(Math.max(t.top,h.top));h.bottom=Math.ceil(Math.max(t.bottom,h.bottom))}function at(){var r,e=it(),u=o.grid.show,f,t,i;for(t in h)f=o.grid.margin||0,h[t]=typeof f=="number"?f:f[t]||0;nt(p.processOffset,[h]);for(t in h)h[t]+=typeof o.grid.borderWidth=="object"?u?o.grid.borderWidth[t]:0:u?o.grid.borderWidth:0;if(n.each(e,function(n,t){var i=t.options;t.show=i.show==null?t.used:i.show;t.reserveSpace=i.reserveSpace==null?t.show:i.reserveSpace;bi(t)}),u){for(i=n.grep(e,function(n){return n.show||n.reserveSpace}),n.each(i,function(n,t){ki(t);di(t);gi(t,t.ticks);vi(t)}),r=i.length-1;r>=0;--r)yi(i[r]);wi();n.each(i,function(n,t){pi(t)})}d=a.width-h.left-h.right;b=a.height-h.bottom-h.top;n.each(e,function(n,t){ai(t)});u&&tr();er()}function bi(n){var t=n.options,r=+(t.min!=null?t.min:n.datamin),i=+(t.max!=null?t.max:n.datamax),f=i-r,e,u;f==0?(e=i==0?1:.01,t.min==null&&(r-=e),(t.max==null||t.min!=null)&&(i+=e)):(u=t.autoscaleMargin,u!=null&&(t.min==null&&(r-=f*u,r<0&&n.datamin!=null&&n.datamin>=0&&(r=0)),t.max==null&&(i+=f*u,i>0&&n.datamax!=null&&n.datamax<=0&&(i=0))));n.min=r;n.max=i}function ki(t){var i=t.options,b,v,h,f,r,s,p,c;b=typeof i.ticks=="number"&&i.ticks>0?i.ticks:.3*Math.sqrt(t.direction=="x"?a.width:a.height);var l=(t.max-t.min)/b,o=-Math.floor(Math.log(l)/Math.LN10),e=i.tickDecimals;if(e!=null&&o>e&&(o=e),v=Math.pow(10,-o),h=l/v,h<1.5?f=1:h<3?(f=2,h>2.25&&(e==null||o+1<=e)&&(f=2.5,++o)):f=h<7.5?5:10,f*=v,i.minTickSize!=null&&f<i.minTickSize&&(f=i.minTickSize),t.delta=l,t.tickDecimals=Math.max(0,e!=null?e:o),t.tickSize=i.tickSize||f,i.mode=="time"&&!t.tickGenerator)throw new Error("Time mode requires the flot.time plugin.");t.tickGenerator||(t.tickGenerator=function(n){var i=[],e=u(n.min,n.tickSize),r=0,t=Number.NaN,f;do f=t,t=e+r*n.tickSize,i.push(t),++r;while(t<n.max&&t!=f);return i},t.tickFormatter=function(n,t){var u=t.tickDecimals?Math.pow(10,t.tickDecimals):1,i=""+Math.round(n*u)/u,f,r;return t.tickDecimals!=null&&(f=i.indexOf("."),r=f==-1?0:i.length-f-1,r<t.tickDecimals)?(r?i:i+".")+(""+u).substr(1,t.tickDecimals-r):i});n.isFunction(i.tickFormatter)&&(t.tickFormatter=function(n,t){return""+i.tickFormatter(n,t)});i.alignTicksWithAxis!=null&&(r=(t.direction=="x"?y:w)[i.alignTicksWithAxis-1],r&&r.used&&r!=t&&(s=t.tickGenerator(t),s.length>0&&(i.min==null&&(t.min=Math.min(t.min,s[0])),i.max==null&&s.length>1&&(t.max=Math.max(t.max,s[s.length-1]))),t.tickGenerator=function(n){for(var u=[],t,i=0;i<r.ticks.length;++i)t=(r.ticks[i].v-r.min)/(r.max-r.min),t=n.min+t*(n.max-n.min),u.push(t);return u},t.mode||i.tickDecimals!=null||(p=Math.max(0,-Math.floor(Math.log(t.delta)/Math.LN10)+1),c=t.tickGenerator(t),c.length>1&&/\..*0$/.test((c[1]-c[0]).toFixed(p))||(t.tickDecimals=p))))}function di(t){var i=t.options.ticks,e=[],o,u,f,r;for(i==null||typeof i=="number"&&i>0?e=t.tickGenerator(t):i&&(e=n.isFunction(i)?i(t):i),t.ticks=[],o=0;o<e.length;++o)f=null,r=e[o],typeof r=="object"?(u=+r[0],r.length>1&&(f=r[1])):u=+r,f==null&&(f=t.tickFormatter(u,t)),isNaN(u)||t.ticks.push({v:u,label:f})}function gi(n,t){n.options.autoscaleMargin&&t.length>0&&(n.options.min==null&&(n.min=Math.min(n.min,t[0].v)),n.options.max==null&&t.length>1&&(n.max=Math.max(n.max,t[t.length-1].v)))}function vt(){var n,t;for(a.clear(),nt(p.drawBackground,[s]),n=o.grid,n.show&&n.backgroundColor&&nr(),n.show&&!n.aboveData&&pt(),t=0;t<c.length;++t)nt(p.drawSeries,[s,c[t]]),ir(c[t]);nt(p.draw,[s]);n.show&&n.aboveData&&pt();a.render();ut()}function yt(n,t){for(var s,f,i,r,u,o=it(),e=0;e<o.length;++e)if(f=o[e],f.direction==t&&(u=t+f.n+"axis",n[u]||f.n!=1||(u=t+"axis"),n[u])){i=n[u].from;r=n[u].to;break}return n[u]||(f=t=="x"?y[0]:w[0],i=n[t+"1"],r=n[t+"2"]),i!=null&&r!=null&&i>r&&(s=i,i=r,r=s),{from:i,to:r,axis:f}}function nr(){s.save();s.translate(h.left,h.top);s.fillStyle=ri(o.grid.backgroundColor,b,0,"rgba(255, 255, 255, 0)");s.fillRect(0,0,d,b);s.restore()}function pt(){var v,f,t,e,k,rt,et,ot,tt,ut,w;if(s.save(),s.translate(h.left,h.top),k=o.grid.markings,k)for(n.isFunction(k)&&(f=l.getAxes(),f.xmin=f.xaxis.min,f.xmax=f.xaxis.max,f.ymin=f.yaxis.min,f.ymax=f.yaxis.max,k=k(f)),v=0;v<k.length;++v){var nt=k[v],i=yt(nt,"x"),r=yt(nt,"y");(i.from==null&&(i.from=i.axis.min),i.to==null&&(i.to=i.axis.max),r.from==null&&(r.from=r.axis.min),r.to==null&&(r.to=r.axis.max),i.to<i.axis.min||i.from>i.axis.max||r.to<r.axis.min||r.from>r.axis.max)||(i.from=Math.max(i.from,i.axis.min),i.to=Math.min(i.to,i.axis.max),r.from=Math.max(r.from,r.axis.min),r.to=Math.min(r.to,r.axis.max),rt=i.from===i.to,et=r.from===r.to,rt&&et)||(i.from=Math.floor(i.axis.p2c(i.from)),i.to=Math.floor(i.axis.p2c(i.to)),r.from=Math.floor(r.axis.p2c(r.from)),r.to=Math.floor(r.axis.p2c(r.to)),rt||et?(ot=nt.lineWidth||o.grid.markingsLineWidth,tt=ot%2?.5:0,s.beginPath(),s.strokeStyle=nt.color||o.grid.markingsColor,s.lineWidth=ot,rt?(s.moveTo(i.to+tt,r.from),s.lineTo(i.to+tt,r.to)):(s.moveTo(i.from,r.to+tt),s.lineTo(i.to,r.to+tt)),s.stroke()):(s.fillStyle=nt.color||o.grid.markingsColor,s.fillRect(i.from,r.to,i.to-i.from,r.from-r.to)))}for(f=it(),t=o.grid.borderWidth,ut=0;ut<f.length;++ut){var u=f[ut],ft=u.box,g=u.tickLength,c,a,y,p;if(u.show&&u.ticks.length!=0){for(s.lineWidth=1,u.direction=="x"?(c=0,a=g=="full"?u.position=="top"?0:b:ft.top-h.top+(u.position=="top"?ft.height:0)):(a=0,c=g=="full"?u.position=="left"?0:d:ft.left-h.left+(u.position=="left"?ft.width:0)),u.innermost||(s.strokeStyle=u.options.color,s.beginPath(),y=p=0,u.direction=="x"?y=d+1:p=b+1,s.lineWidth==1&&(u.direction=="x"?a=Math.floor(a)+.5:c=Math.floor(c)+.5),s.moveTo(c,a),s.lineTo(c+y,a+p),s.stroke()),s.strokeStyle=u.options.tickColor,s.beginPath(),v=0;v<u.ticks.length;++v)(w=u.ticks[v].v,y=p=0,isNaN(w)||w<u.min||w>u.max||g=="full"&&(typeof t=="object"&&t[u.position]>0||t>0)&&(w==u.min||w==u.max))||(u.direction=="x"?(c=u.p2c(w),p=g=="full"?-b:g,u.position=="top"&&(p=-p)):(a=u.p2c(w),y=g=="full"?-d:g,u.position=="left"&&(y=-y)),s.lineWidth==1&&(u.direction=="x"?c=Math.floor(c)+.5:a=Math.floor(a)+.5),s.moveTo(c,a),s.lineTo(c+y,a+p));s.stroke()}}t&&(e=o.grid.borderColor,typeof t=="object"||typeof e=="object"?(typeof t!="object"&&(t={top:t,right:t,bottom:t,left:t}),typeof e!="object"&&(e={top:e,right:e,bottom:e,left:e}),t.top>0&&(s.strokeStyle=e.top,s.lineWidth=t.top,s.beginPath(),s.moveTo(0-t.left,0-t.top/2),s.lineTo(d,0-t.top/2),s.stroke()),t.right>0&&(s.strokeStyle=e.right,s.lineWidth=t.right,s.beginPath(),s.moveTo(d+t.right/2,0-t.top),s.lineTo(d+t.right/2,b),s.stroke()),t.bottom>0&&(s.strokeStyle=e.bottom,s.lineWidth=t.bottom,s.beginPath(),s.moveTo(d+t.right,b+t.bottom/2),s.lineTo(0,b+t.bottom/2),s.stroke()),t.left>0&&(s.strokeStyle=e.left,s.lineWidth=t.left,s.beginPath(),s.moveTo(0-t.left/2,b+t.bottom),s.lineTo(0-t.left/2,0),s.stroke())):(s.lineWidth=t,s.strokeStyle=o.grid.borderColor,s.strokeRect(-t/2,-t/2,d+t,b+t)));s.restore()}function tr(){n.each(it(),function(n,t){var i=t.box,l=t.direction+"Axis "+t.direction+t.n+"Axis",c="flot-"+t.direction+"-axis flot-"+t.direction+t.n+"-axis "+l,v=t.options.font||"flot-tick-label tickLabel",r,u,f,o,s,e;if(a.removeText(c),t.show&&t.ticks.length!=0)for(e=0;e<t.ticks.length;++e)(r=t.ticks[e],!r.label||r.v<t.min||r.v>t.max)||(t.direction=="x"?(o="center",u=h.left+t.p2c(r.v),t.position=="bottom"?f=i.top+i.padding:(f=i.top+i.height-i.padding,s="bottom")):(s="middle",f=h.top+t.p2c(r.v),t.position=="left"?(u=i.left+i.width-i.padding,o="right"):u=i.left+i.padding),a.addText(c,u,f,r.label,v,null,null,o,s))})}function ir(n){n.lines.show&&rr(n);n.bars.show&&fr(n);n.points.show&&ur(n)}function rr(n){function u(n,t,i,r,u){var l=n.points,a=n.pointsize,v=null,y=null,c;for(s.beginPath(),c=a;c<l.length;c+=a){var f=l[c-a],e=l[c-a+1],o=l[c],h=l[c+1];if(f!=null&&o!=null){if(e<=h&&e<u.min){if(h<u.min)continue;f=(u.min-e)/(h-e)*(o-f)+f;e=u.min}else if(h<=e&&h<u.min){if(e<u.min)continue;o=(u.min-e)/(h-e)*(o-f)+f;h=u.min}if(e>=h&&e>u.max){if(h>u.max)continue;f=(u.max-e)/(h-e)*(o-f)+f;e=u.max}else if(h>=e&&h>u.max){if(e>u.max)continue;o=(u.max-e)/(h-e)*(o-f)+f;h=u.max}if(f<=o&&f<r.min){if(o<r.min)continue;e=(r.min-f)/(o-f)*(h-e)+e;f=r.min}else if(o<=f&&o<r.min){if(f<r.min)continue;h=(r.min-f)/(o-f)*(h-e)+e;o=r.min}if(f>=o&&f>r.max){if(o>r.max)continue;e=(r.max-f)/(o-f)*(h-e)+e;f=r.max}else if(o>=f&&o>r.max){if(f>r.max)continue;h=(r.max-f)/(o-f)*(h-e)+e;o=r.max}(f!=v||e!=y)&&s.moveTo(r.p2c(f)+t,u.p2c(e)+i);v=o;y=h;s.lineTo(r.p2c(o)+t,u.p2c(h)+i)}}s.stroke()}function e(n,t,i){for(var c=n.points,o=n.pointsize,b=Math.min(Math.max(0,i.min),i.max),h=0,l=!1,a=1,p=0,w=0,v,y;;){if(o>0&&h>c.length+o)break;h+=o;var r=c[h-o],u=c[h-o+a],f=c[h],e=c[h+a];if(l){if(o>0&&r!=null&&f==null){w=h;o=-o;a=2;continue}if(o<0&&h==p+o){s.fill();l=!1;o=-o;a=1;h=p=w+o;continue}}if(r!=null&&f!=null){if(r<=f&&r<t.min){if(f<t.min)continue;u=(t.min-r)/(f-r)*(e-u)+u;r=t.min}else if(f<=r&&f<t.min){if(r<t.min)continue;e=(t.min-r)/(f-r)*(e-u)+u;f=t.min}if(r>=f&&r>t.max){if(f>t.max)continue;u=(t.max-r)/(f-r)*(e-u)+u;r=t.max}else if(f>=r&&f>t.max){if(r>t.max)continue;e=(t.max-r)/(f-r)*(e-u)+u;f=t.max}if(l||(s.beginPath(),s.moveTo(t.p2c(r),i.p2c(b)),l=!0),u>=i.max&&e>=i.max){s.lineTo(t.p2c(r),i.p2c(i.max));s.lineTo(t.p2c(f),i.p2c(i.max));continue}else if(u<=i.min&&e<=i.min){s.lineTo(t.p2c(r),i.p2c(i.min));s.lineTo(t.p2c(f),i.p2c(i.min));continue}v=r;y=f;u<=e&&u<i.min&&e>=i.min?(r=(i.min-u)/(e-u)*(f-r)+r,u=i.min):e<=u&&e<i.min&&u>=i.min&&(f=(i.min-u)/(e-u)*(f-r)+r,e=i.min);u>=e&&u>i.max&&e<=i.max?(r=(i.max-u)/(e-u)*(f-r)+r,u=i.max):e>=u&&e>i.max&&u<=i.max&&(f=(i.max-u)/(e-u)*(f-r)+r,e=i.max);r!=v&&s.lineTo(t.p2c(v),i.p2c(u));s.lineTo(t.p2c(r),i.p2c(u));s.lineTo(t.p2c(f),i.p2c(e));f!=y&&(s.lineTo(t.p2c(f),i.p2c(e)),s.lineTo(t.p2c(y),i.p2c(e)))}}}var t,i,r,f;s.save();s.translate(h.left,h.top);s.lineJoin="round";t=n.lines.lineWidth;i=n.shadowSize;t>0&&i>0&&(s.lineWidth=i,s.strokeStyle="rgba(0,0,0,0.1)",r=Math.PI/18,u(n.datapoints,Math.sin(r)*(t/2+i/2),Math.cos(r)*(t/2+i/2),n.xaxis,n.yaxis),s.lineWidth=i/2,u(n.datapoints,Math.sin(r)*(t/2+i/4),Math.cos(r)*(t/2+i/4),n.xaxis,n.yaxis));s.lineWidth=t;s.strokeStyle=n.color;f=ot(n.lines,n.color,0,b);f&&(s.fillStyle=f,e(n.datapoints,n.xaxis,n.yaxis));t>0&&u(n.datapoints,0,0,n.xaxis,n.yaxis);s.restore()}function ur(n){function r(n,t,i,r,u,f,e,o){for(var h,c,a=n.points,v=n.pointsize,l=0;l<a.length;l+=v)(h=a[l],c=a[l+1],h==null||h<f.min||h>f.max||c<e.min||c>e.max)||(s.beginPath(),h=f.p2c(h),c=e.p2c(c)+r,o=="circle"?s.arc(h,c,t,0,u?Math.PI:Math.PI*2,!1):o(s,h,c,t,u),s.closePath(),i&&(s.fillStyle=i,s.fill()),s.stroke())}var t;s.save();s.translate(h.left,h.top);var i=n.points.lineWidth,e=n.shadowSize,u=n.points.radius,f=n.points.symbol;i==0&&(i=.0001);i>0&&e>0&&(t=e/2,s.lineWidth=t,s.strokeStyle="rgba(0,0,0,0.1)",r(n.datapoints,u,null,t+t/2,!0,n.xaxis,n.yaxis,f),s.strokeStyle="rgba(0,0,0,0.2)",r(n.datapoints,u,null,t/2,!0,n.xaxis,n.yaxis,f));s.lineWidth=i;s.strokeStyle=n.color;r(n.datapoints,u,ot(n.points,n.color),0,!1,n.xaxis,n.yaxis,f);s.restore()}function wt(n,t,i,r,u,f,e,o,s,h,c){var l,y,a,v,p,w,b,k,d;(h?(k=w=b=!0,p=!1,l=i,y=n,v=t+r,a=t+u,y<l&&(d=y,y=l,l=d,p=!0,w=!1)):(p=w=b=!0,k=!1,l=n+r,y=n+u,a=i,v=t,v<a&&(d=v,v=a,a=d,k=!0,b=!1)),y<e.min||l>e.max||v<o.min||a>o.max)||(l<e.min&&(l=e.min,p=!1),y>e.max&&(y=e.max,w=!1),a<o.min&&(a=o.min,k=!1),v>o.max&&(v=o.max,b=!1),l=e.p2c(l),a=o.p2c(a),y=e.p2c(y),v=o.p2c(v),f&&(s.fillStyle=f(a,v),s.fillRect(l,v,y-l,a-v)),c>0&&(p||w||b||k)&&(s.beginPath(),s.moveTo(l,a),p?s.lineTo(l,v):s.moveTo(l,v),b?s.lineTo(y,v):s.moveTo(y,v),w?s.lineTo(y,a):s.moveTo(y,a),k?s.lineTo(l,a):s.moveTo(l,a),s.stroke()))}function fr(n){function r(t,i,r,u,f,e){for(var h=t.points,c=t.pointsize,o=0;o<h.length;o+=c)h[o]!=null&&wt(h[o],h[o+1],h[o+2],i,r,u,f,e,s,n.bars.horizontal,n.bars.lineWidth)}var t,i;s.save();s.translate(h.left,h.top);s.lineWidth=n.bars.lineWidth;s.strokeStyle=n.color;switch(n.bars.align){case"left":t=0;break;case"right":t=-n.bars.barWidth;break;default:t=-n.bars.barWidth/2}i=n.bars.fill?function(t,i){return ot(n.bars,n.color,t,i)}:null;r(n.datapoints,t,t+n.bars.barWidth,i,n.xaxis,n.yaxis);s.restore()}function ot(t,i,r,u){var e=t.fill,f;return e?t.fillColor?ri(t.fillColor,r,u,i):(f=n.color.parse(i),f.a=typeof e=="number"?e:.4,f.normalize(),f.toString()):null}function er(){var g,r,w,b,v,t,k;if(o.legend.container!=null?n(o.legend.container).html(""):i.find(".legend").remove(),o.legend.show){var f=[],e=[],y=!1,d=o.legend.labelFormatter,s,p;for(r=0;r<c.length;++r)s=c[r],s.label&&(p=d?d(s.label,s):s.label,p&&e.push({label:p,color:s.color}));for(o.legend.sorted&&(n.isFunction(o.legend.sorted)?e.sort(o.legend.sorted):o.legend.sorted=="reverse"?e.reverse():(g=o.legend.sorted!="descending",e.sort(function(n,t){return n.label==t.label?0:n.label<t.label!=g?1:-1}))),r=0;r<e.length;++r)w=e[r],r%o.legend.noColumns==0&&(y&&f.push("<\/tr>"),f.push("<tr>"),y=!0),f.push('<td class="legendColorBox"><div style="border:1px solid '+o.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+w.color+';overflow:hidden"><\/div><\/div><\/td><td class="legendLabel">'+w.label+"<\/td>");if(y&&f.push("<\/tr>"),f.length!=0)if(b='<table style="font-size:smaller;color:'+o.grid.color+'">'+f.join("")+"<\/table>",o.legend.container!=null)n(o.legend.container).html(b);else{var l="",a=o.legend.position,u=o.legend.margin;u[0]==null&&(u=[u,u]);a.charAt(0)=="n"?l+="top:"+(u[1]+h.top)+"px;":a.charAt(0)=="s"&&(l+="bottom:"+(u[1]+h.bottom)+"px;");a.charAt(1)=="e"?l+="right:"+(u[0]+h.right)+"px;":a.charAt(1)=="w"&&(l+="left:"+(u[0]+h.left)+"px;");v=n('<div class="legend">'+b.replace('style="','style="position:absolute;'+l+";")+"<\/div>").appendTo(i);o.legend.backgroundOpacity!=0&&(t=o.legend.backgroundColor,t==null&&(t=o.grid.backgroundColor,t=t&&typeof t=="string"?n.color.parse(t):n.color.extract(v,"background-color"),t.a=1,t=t.toString()),k=v.children(),n('<div style="position:absolute;width:'+k.width()+"px;height:"+k.height()+"px;"+l+"background-color:"+t+';"> <\/div>').prependTo(v).css("opacity",o.legend.backgroundOpacity))}}}function or(n,t,i){for(var w=o.grid.mouseActiveRadius,it=w*w+1,a=null,r,s,e,h,p,tt,u=c.length-1;u>=0;--u)if(i(c[u])){var f=c[u],b=f.xaxis,k=f.yaxis,l=f.datapoints.points,v=b.c2p(n),y=k.c2p(t),g=w/b.scale,nt=w/k.scale;if(s=f.datapoints.pointsize,b.options.inverseTransform&&(g=Number.MAX_VALUE),k.options.inverseTransform&&(nt=Number.MAX_VALUE),f.lines.show||f.points.show)for(r=0;r<l.length;r+=s)if((e=l[r],h=l[r+1],e!=null)&&!(e-v>g)&&!(e-v<-g)&&!(h-y>nt)&&!(h-y<-nt)){var rt=Math.abs(b.p2c(e)-n),ut=Math.abs(k.p2c(h)-t),ft=rt*rt+ut*ut;ft<it&&(it=ft,a=[u,r/s])}if(f.bars.show&&!a){switch(f.bars.align){case"left":p=0;break;case"right":p=-f.bars.barWidth;break;default:p=-f.bars.barWidth/2}for(tt=p+f.bars.barWidth,r=0;r<l.length;r+=s){var e=l[r],h=l[r+1],d=l[r+2];e!=null&&(c[u].bars.horizontal?v<=Math.max(d,e)&&v>=Math.min(d,e)&&y>=h+p&&y<=h+tt:v>=e+p&&v<=e+tt&&y>=Math.min(d,h)&&y<=Math.max(d,h))&&(a=[u,r/s])}}}return a?(u=a[0],r=a[1],s=c[u].datapoints.pointsize,{datapoint:c[u].datapoints.points.slice(r*s,(r+1)*s),dataIndex:r,series:c[u],seriesIndex:u}):null}function bt(n){o.grid.hoverable&&st("plothover",n,function(n){return n.hoverable!=!1})}function kt(n){o.grid.hoverable&&st("plothover",n,function(){return!1})}function dt(n){st("plotclick",n,function(n){return n.clickable!=!1})}function st(n,t,r){var e=k.offset(),l=t.pageX-e.left-h.left,a=t.pageY-e.top-h.top,c=ct({left:l,top:a}),u,s,f;if(c.pageX=t.pageX,c.pageY=t.pageY,u=or(l,a,r),u&&(u.pageX=parseInt(u.series.xaxis.p2c(u.datapoint[0])+e.left+h.left,10),u.pageY=parseInt(u.series.yaxis.p2c(u.datapoint[1])+e.top+h.top,10)),o.grid.autoHighlight){for(s=0;s<g.length;++s)f=g[s],f.auto!=n||u&&f.series==u.series&&f.point[0]==u.datapoint[0]&&f.point[1]==u.datapoint[1]||ti(f.series,f.point);u&&ni(u.series,u.datapoint,n)}i.trigger(n,[c,u])}function ut(){var n=o.interaction.redrawOverlayInterval;if(n==-1){gt();return}rt||(rt=setTimeout(gt,n))}function gt(){rt=null;v.save();tt.clear();v.translate(h.left,h.top);for(var n,t=0;t<g.length;++t)n=g[t],n.series.bars.show?hr(n.series,n.point):sr(n.series,n.point);v.restore();nt(p.drawOverlay,[v])}function ni(n,t,i){var r,u;typeof n=="number"&&(n=c[n]);typeof t=="number"&&(r=n.datapoints.pointsize,t=n.datapoints.points.slice(r*t,r*(t+1)));u=ii(n,t);u==-1?(g.push({series:n,point:t,auto:i}),ut()):i||(g[u].auto=!1)}function ti(n,t){var i,r;if(n==null&&t==null){g=[];ut();return}typeof n=="number"&&(n=c[n]);typeof t=="number"&&(i=n.datapoints.pointsize,t=n.datapoints.points.slice(i*t,i*(t+1)));r=ii(n,t);r!=-1&&(g.splice(r,1),ut())}function ii(n,t){for(var r,i=0;i<g.length;++i)if(r=g[i],r.series==n&&r.point[0]==t[0]&&r.point[1]==t[1])return i;return-1}function sr(t,i){var r=i[0],u=i[1],f=t.xaxis,e=t.yaxis,h=typeof t.highlightColor=="string"?t.highlightColor:n.color.parse(t.color).scale("a",.5).toString(),o,s;r<f.min||r>f.max||u<e.min||u>e.max||(o=t.points.radius+t.points.lineWidth/2,v.lineWidth=o,v.strokeStyle=h,s=1.5*o,r=f.p2c(r),u=e.p2c(u),v.beginPath(),t.points.symbol=="circle"?v.arc(r,u,s,0,2*Math.PI,!1):t.points.symbol(v,r,u,s,!1),v.closePath(),v.stroke())}function hr(t,i){var u=typeof t.highlightColor=="string"?t.highlightColor:n.color.parse(t.color).scale("a",.5).toString(),f=u,r;switch(t.bars.align){case"left":r=0;break;case"right":r=-t.bars.barWidth;break;default:r=-t.bars.barWidth/2}v.lineWidth=t.bars.lineWidth;v.strokeStyle=u;wt(i[0],i[1],i[2]||0,r,r+t.bars.barWidth,function(){return f},t.xaxis,t.yaxis,v,t.bars.horizontal,t.bars.lineWidth)}function ri(t,i,r,u){var h,e,c,f,o;if(typeof t=="string")return t;for(h=s.createLinearGradient(0,r,0,i),e=0,c=t.colors.length;e<c;++e)f=t.colors[e],typeof f!="string"&&(o=n.color.parse(u),f.brightness!=null&&(o=o.scale("rgb",f.brightness)),f.opacity!=null&&(o.a*=f.opacity),f=o.toString()),h.addColorStop(e/(c-1),f);return h}var c=[],o={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:!0,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:.85,sorted:null},xaxis:{show:null,position:"bottom",mode:null,font:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null},yaxis:{autoscaleMargin:.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:!1,radius:3,lineWidth:2,fill:!0,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:!1,fillColor:null,steps:!1},bars:{show:!1,lineWidth:2,barWidth:1,fill:!0,fillColor:null,align:"left",horizontal:!1,zero:!0},shadowSize:3,highlightColor:null},grid:{show:!0,aboveData:!1,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,margin:0,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:!1,hoverable:!1,autoHighlight:!0,mouseActiveRadius:10},interaction:{redrawOverlayInterval:1e3/60},hooks:{}},a=null,tt=null,k=null,s=null,v=null,y=[],w=[],h={left:0,right:0,top:0,bottom:0},d=0,b=0,p={processOptions:[],processRawData:[],processDatapoints:[],processOffset:[],drawBackground:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},l=this,g,rt;l.setData=ht;l.setupGrid=at;l.draw=vt;l.getPlaceholder=function(){return i};l.getCanvas=function(){return a.element};l.getPlotOffset=function(){return h};l.width=function(){return d};l.height=function(){return b};l.offset=function(){var n=k.offset();return n.left+=h.left,n.top+=h.top,n};l.getData=function(){return c};l.getAxes=function(){var t={};return n.each(y.concat(w),function(n,i){i&&(t[i.direction+(i.n!=1?i.n:"")+"axis"]=i)}),t};l.getXAxes=function(){return y};l.getYAxes=function(){return w};l.c2p=ct;l.p2c=oi;l.getOptions=function(){return o};l.highlight=ni;l.unhighlight=ti;l.triggerRedrawOverlay=ut;l.pointOffset=function(n){return{left:parseInt(y[ft(n,"x")-1].p2c(+n.x)+h.left,10),top:parseInt(w[ft(n,"y")-1].p2c(+n.y)+h.top,10)}};l.shutdown=lt;l.destroy=function(){lt();i.removeData("plot").empty();c=[];o=null;a=null;tt=null;k=null;s=null;v=null;y=[];w=[];p=null;g=[];l=null};l.resize=function(){var n=i.width(),t=i.height();a.resize(n,t);tt.resize(n,t)};l.hooks=p;ui(l);fi(f);ci();ht(r);at();vt();li();g=[];rt=null}function u(n,t){return t*Math.floor(n/t)}var i=Object.prototype.hasOwnProperty;n.fn.detach||(n.fn.detach=function(){return this.each(function(){this.parentNode&&this.parentNode.removeChild(this)})});t.prototype.resize=function(n,t){if(n<=0||t<=0)throw new Error("Invalid dimensions for plot, width = "+n+", height = "+t);var i=this.element,u=this.context,r=this.pixelRatio;this.width!=n&&(i.width=n*r,i.style.width=n+"px",this.width=n);this.height!=t&&(i.height=t*r,i.style.height=t+"px",this.height=t);u.restore();u.save();u.scale(r,r)};t.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)};t.prototype.render=function(){var h=this._textCache,r,u,f,c,t,e,o,s,n;for(r in h)if(i.call(h,r)){u=this.getTextLayer(r);f=h[r];u.hide();for(c in f)if(i.call(f,c)){t=f[c];for(e in t)if(i.call(t,e)){for(o=t[e].positions,s=0;n=o[s];s++)n.active?n.rendered||(u.append(n.element),n.rendered=!0):(o.splice(s--,1),n.rendered&&n.element.detach());o.length==0&&delete t[e]}}u.show()}};t.prototype.getTextLayer=function(t){var i=this.text[t];return i==null&&(this.textContainer==null&&(this.textContainer=n("<div class='flot-text'><\/div>").css({position:"absolute",top:0,left:0,bottom:0,right:0,"font-size":"smaller",color:"#545454"}).insertAfter(this.element)),i=this.text[t]=n("<div><\/div>").addClass(t).css({position:"absolute",top:0,left:0,bottom:0,right:0}).appendTo(this.textContainer)),i};t.prototype.getTextInfo=function(t,i,r,u,f){var h,o,s,c,e;return i=""+i,h=typeof r=="object"?r.style+" "+r.variant+" "+r.weight+" "+r.size+"px/"+r.lineHeight+"px "+r.family:r,o=this._textCache[t],o==null&&(o=this._textCache[t]={}),s=o[h],s==null&&(s=o[h]={}),c=s[i],c==null&&(e=n("<div><\/div>").html(i).css({position:"absolute","max-width":f,top:-9999}).appendTo(this.getTextLayer(t)),typeof r=="object"?e.css({font:h,color:r.color}):typeof r=="string"&&e.addClass(r),c=s[i]={width:e.outerWidth(!0),height:e.outerHeight(!0),element:e,positions:[]},e.detach()),c};t.prototype.addText=function(n,t,i,r,u,f,e,o,s){var h=this.getTextInfo(n,r,u,f,e),l=h.positions,a,c;for(o=="center"?t-=h.width/2:o=="right"&&(t-=h.width),s=="middle"?i-=h.height/2:s=="bottom"&&(i-=h.height),a=0;c=l[a];a++)if(c.x==t&&c.y==i){c.active=!0;return}c={active:!0,rendered:!1,element:l.length?h.element.clone():h.element,x:t,y:i};l.push(c);c.element.css({top:Math.round(i),left:Math.round(t),"text-align":o})};t.prototype.removeText=function(n,t,r,u,f,e){var h,a,c,v,l,o,s;if(u==null){if(h=this._textCache[n],h!=null)for(a in h)if(i.call(h,a)){c=h[a];for(v in c)if(i.call(c,v))for(l=c[v].positions,o=0;s=l[o];o++)s.active=!1}}else for(l=this.getTextInfo(n,u,f,e).positions,o=0;s=l[o];o++)s.x==t&&s.y==r&&(s.active=!1)};n.plot=function(t,i,u){return new r(n(t),i,u,n.plot.plugins)};n.plot.version="0.8.3";n.plot.plugins=[];n.fn.plot=function(t,i){return this.each(function(){n.plot(this,t,i)})}}(jQuery),function(n){function i(n,t){return t*Math.floor(n/t)}function r(n,t,i,r){var c,o,u;if(typeof n.strftime=="function")return n.strftime(t);var f=function(n,t){return n=""+n,t=""+(t==null?"0":t),n.length==1?t+n:n},s=[],h=!1,e=n.getHours(),l=e<12;for(i==null&&(i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),r==null&&(r=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),c=e>12?e-12:e==0?12:e,o=0;o<t.length;++o)if(u=t.charAt(o),h){switch(u){case"a":u=""+r[n.getDay()];break;case"b":u=""+i[n.getMonth()];break;case"d":u=f(n.getDate());break;case"e":u=f(n.getDate()," ");break;case"h":case"H":u=f(e);break;case"I":u=f(c);break;case"l":u=f(c," ");break;case"m":u=f(n.getMonth()+1);break;case"M":u=f(n.getMinutes());break;case"q":u=""+(Math.floor(n.getMonth()/3)+1);break;case"S":u=f(n.getSeconds());break;case"y":u=f(n.getFullYear()%100);break;case"Y":u=""+n.getFullYear();break;case"p":u=l?"am":"pm";break;case"P":u=l?"AM":"PM";break;case"w":u=""+n.getDay()}s.push(u);h=!1}else u=="%"?h=!0:s.push(u);return s.join("")}function f(n){function u(n,t,i,r){n[t]=function(){return i[r].apply(i,arguments)}}var i={date:n},r,t;for(n.strftime!=undefined&&u(i,"strftime",n,"strftime"),u(i,"getTime",n,"getTime"),u(i,"setTime",n,"setTime"),r=["Date","Day","FullYear","Hours","Milliseconds","Minutes","Month","Seconds"],t=0;t<r.length;t++)u(i,"get"+r[t],n,"getUTC"+r[t]),u(i,"set"+r[t],n,"setUTC"+r[t]);return i}function u(n,t){if(t.timezone=="browser")return new Date(n);if(t.timezone&&t.timezone!="utc"){if(typeof timezoneJS!="undefined"&&typeof timezoneJS.Date!="undefined"){var i=new timezoneJS.Date;return i.setTimezone(t.timezone),i.setTime(n),i}return f(new Date(n))}return f(new Date(n))}function h(f){f.hooks.processOptions.push(function(f){n.each(f.getAxes(),function(n,f){var e=f.options;e.mode=="time"&&(f.tickGenerator=function(n){var k=[],r=u(n.min,e),d=0,l=e.tickSize&&e.tickSize[1]==="quarter"||e.minTickSize&&e.minTickSize[1]==="quarter"?s:o,c,y,f,w,p,h,a,b,v,g,nt,tt;for(e.minTickSize!=null&&(d=typeof e.tickSize=="number"?e.tickSize:e.minTickSize[0]*t[e.minTickSize[1]]),c=0;c<l.length-1;++c)if(n.delta<(l[c][0]*t[l[c][1]]+l[c+1][0]*t[l[c+1][1]])/2&&l[c][0]*t[l[c][1]]>=d)break;y=l[c][0];f=l[c][1];f=="year"&&(e.minTickSize!=null&&e.minTickSize[1]=="year"?y=Math.floor(e.minTickSize[0]):(w=Math.pow(10,Math.floor(Math.log(n.delta/t.year)/Math.LN10)),p=n.delta/t.year/w,y=(p<1.5?1:p<3?2:p<7.5?5:10)*w),y<1&&(y=1));n.tickSize=e.tickSize||[y,f];h=n.tickSize[0];f=n.tickSize[1];a=h*t[f];f=="second"?r.setSeconds(i(r.getSeconds(),h)):f=="minute"?r.setMinutes(i(r.getMinutes(),h)):f=="hour"?r.setHours(i(r.getHours(),h)):f=="month"?r.setMonth(i(r.getMonth(),h)):f=="quarter"?r.setMonth(3*i(r.getMonth()/3,h)):f=="year"&&r.setFullYear(i(r.getFullYear(),h));r.setMilliseconds(0);a>=t.minute&&r.setSeconds(0);a>=t.hour&&r.setMinutes(0);a>=t.day&&r.setHours(0);a>=t.day*4&&r.setDate(1);a>=t.month*2&&r.setMonth(i(r.getMonth(),3));a>=t.quarter*2&&r.setMonth(i(r.getMonth(),6));a>=t.year&&r.setMonth(0);b=0;v=Number.NaN;do g=v,v=r.getTime(),k.push(v),f=="month"||f=="quarter"?h<1?(r.setDate(1),nt=r.getTime(),r.setMonth(r.getMonth()+(f=="quarter"?3:1)),tt=r.getTime(),r.setTime(v+b*t.hour+(tt-nt)*h),b=r.getHours(),r.setHours(0)):r.setMonth(r.getMonth()+h*(f=="quarter"?3:1)):f=="year"?r.setFullYear(r.getFullYear()+h):r.setTime(v+a);while(v<n.max&&v!=g);return k},f.tickFormatter=function(n,i){var l=u(n,i.options);if(e.timeformat!=null)return r(l,e.timeformat,e.monthNames,e.dayNames);var o=i.options.tickSize&&i.options.tickSize[1]=="quarter"||i.options.minTickSize&&i.options.minTickSize[1]=="quarter",f=i.tickSize[0]*t[i.tickSize[1]],s=i.max-i.min,h=e.twelveHourClock?" %p":"",c=e.twelveHourClock?"%I":"%H",a;return a=f<t.minute?c+":%M:%S"+h:f<t.day?s<2*t.day?c+":%M"+h:"%b %d "+c+":%M"+h:f<t.month?"%b %d":o&&f<t.quarter||!o&&f<t.year?s<t.year?"%b":"%b %Y":o&&f<t.year?s<t.year?"Q%q":"Q%q %Y":"%Y",r(l,a,e.monthNames,e.dayNames)})})})}var t={second:1e3,minute:6e4,hour:36e5,day:864e5,month:2592e6,quarter:7776e6,year:365.2425*864e5},e=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[.25,"month"],[.5,"month"],[1,"month"],[2,"month"]],o=e.concat([[3,"month"],[6,"month"],[1,"year"]]),s=e.concat([[1,"quarter"],[2,"quarter"],[1,"year"]]);n.plot.plugins.push({init:h,options:{xaxis:{timezone:null,timeformat:null,twelveHourClock:!1,monthNames:null}},name:"time",version:"1.0"});n.plot.formatDate=r;n.plot.dateGenerator=u}(jQuery),function(n){n.color={};n.color.make=function(t,i,r,u){var f={};return f.r=t||0,f.g=i||0,f.b=r||0,f.a=u!=null?u:1,f.add=function(n,t){for(var i=0;i<n.length;++i)f[n.charAt(i)]+=t;return f.normalize()},f.scale=function(n,t){for(var i=0;i<n.length;++i)f[n.charAt(i)]*=t;return f.normalize()},f.toString=function(){return f.a>=1?"rgb("+[f.r,f.g,f.b].join(",")+")":"rgba("+[f.r,f.g,f.b,f.a].join(",")+")"},f.normalize=function(){function n(n,t,i){return t<n?n:t>i?i:t}return f.r=n(0,parseInt(f.r),255),f.g=n(0,parseInt(f.g),255),f.b=n(0,parseInt(f.b),255),f.a=n(0,f.a,1),f},f.clone=function(){return n.color.make(f.r,f.b,f.g,f.a)},f.normalize()};n.color.extract=function(t,i){var r;do{if(r=t.css(i).toLowerCase(),r!=""&&r!="transparent")break;t=t.parent()}while(t.length&&!n.nodeName(t.get(0),"body"));return r=="rgba(0, 0, 0, 0)"&&(r="transparent"),n.color.parse(r)};n.color.parse=function(i){var r,u=n.color.make,f;return(r=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(i))?u(parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10)):(r=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(i))?u(parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10),parseFloat(r[4])):(r=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(i))?u(parseFloat(r[1])*2.55,parseFloat(r[2])*2.55,parseFloat(r[3])*2.55):(r=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(i))?u(parseFloat(r[1])*2.55,parseFloat(r[2])*2.55,parseFloat(r[3])*2.55,parseFloat(r[4])):(r=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(i))?u(parseInt(r[1],16),parseInt(r[2],16),parseInt(r[3],16)):(r=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(i))?u(parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)):(f=n.trim(i).toLowerCase(),f=="transparent"?u(255,255,255,0):(r=t[f]||[0,0,0],u(r[0],r[1],r[2])))};var t={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}}(jQuery),DataExplorer.ParameterParser=function(){function t(t,i){function v(t,i){if(t&&t!="\n"){var r,u;if(i&n.Comment)i&n.Multiline||(r=t.match(w))&&(u=h[r[1]],u||(h[r[1]]=u={}),u.label=r[2].trim(),r[3]&&(u.description=r[3].trim()));else while(r=t.match(p))u=h[r[1]],u||(h[r[1]]=u={}),typeof u.index=="undefined"&&(u.index=c.length,c.push(u)),u.name||(u.name=r[1]),r[2]&&(u.type=r[2]),r[3]&&(u.auto=r[3]),t=t.substring(r.index+r[0].length)}}for(var c=[],p=/##([a-zA-Z][A-Za-z0-9]*)(?::([A-Za-z]+))?(?:\?([^#]+))?##/,w=/-- *([a-zA-Z][A-Za-z0-9]*) *: *([^"]+)(?:"([^"]+)")?/,h={},u=n.Literal,o="",l=0,r,e,a=0;r=t[a];){e=t[++a];var f=!0,y=u,s=!1;u&n.Literal?(r=="'"?u=n.String:r+e=="--"?u=n.Comment:i.multilineComments&&r+e=="/*"?(u=n.Comment|n.Multiline,++l,s=!0):f=!1,f&&(v(o,y),f=!1,o="")):u&n.Comment?(u&n.Multiline&&r+e=="*/"?(s=!0,f=!--l):f=!(u&n.Multiline)&&r=="\n",i.nestedMultilineComments&&!f&&r+e=="/*"&&(s=!0,++l)):u&n.String&&(r+e==i.stringEscapeCharacter+"'"?(s=!0,f=!1):f=!i.multilineStrings&&r=="\n"||r=="'");o+=r;s&&(o+=e,++a);(f||typeof e=="undefined")&&(v(o,y),o="",u=n.Literal)}return c}var n={Literal:1,String:2,Comment:4,Multiline:8};return{parse:t}}(),DataExplorer.ResultSet=function(){function t(n,t,u){function s(){var n=document.getElementById("query").clientWidth-2,r=document.documentElement.clientWidth-100,e=u.find(".grid-canvas"),t=u.closest(".panel"),f=e.outerWidth(),i=0;f<n||r<n?t.width(i=n):f>r?t.width(i=r):t.width(i=f);i===n?t.css("left","0px"):t.css("left","-"+Math.round((i-n)/2)+"px")}var h=n.rows,e=n.columns,a=r(e,h),f,c,o,l;for(u=$(u),f=0;f<e.length;++f)c=e[f].name.toLowerCase(),e[f]={cssClass:e[f].type==="Number"?"number":"text",name:e[f].name,id:"col"+f,field:"col"+f,type:e[f].type.toLowerCase(),width:a[f],sortable:h.length<=5e3},(c==="tags"||c==="tagname")&&(e[f].cssClass="tags");l={enableCellNavigation:!1,enableColumnReorder:!1,enableCellRangeSelection:!1,enableTextSelectionOnCells:!0,formatterFactory:new i(n,t),rowHeight:29};this.show=function(){o=new Slick.Grid(u,h,e,l);o.onColumnsResized.subscribe(s);o.onSort.subscribe(function(n,t){var i=t.sortCol.field;t.grid.getData().sort(function(n,r){return n=n[i]&&typeof n[i]=="object"?n[i].id:n[i],r=r[i]&&typeof r[i]=="object"?r[i].id:r[i],(t.sortAsc?1:-1)*(n==r?0:n<r?-1:1)});t.grid.invalidate()});s();$(window).resize(s)};this.isInitialized=function(){return!!o};this.refresh=s}function i(t,i){function f(t,f,e,l,a){var y;if(e==null&&(e=""),typeof e=="string"&&(y=c.exec(e))){var v=e,w=e,p=e.split("|");p.length==2&&(v=p[0],w=p[1]);y[1]==="site"?(v=v.substring(6),v=r?a[r].url+v:o+v):y[1]==="query"&&(v=v.substring(8),v="/"+i.name+"/query/"+v);u.setAttribute("href",v);u[_textContent]=w;e=s[h]}else e=n(e);return e}function l(n,t,i,r,u){return!i&&i!==0?f(n,t,i,r,u):new Date(i).toUTC()}function a(n){var n=n;return function(t,i,r,u,e){var c,s;if(!r||!(r.match(/^[a-z0-9#.+-]+$/)||(c=r.search(/^(?:<[a-z0-9#.+-]+>)+$/)>-1)))return f(t,i,r,u,e);var l=c?r.substring(1,r.length-1).split("><"):[r],r="",h,a=o;for(n!=null&&(a=e[n].url),s=0;s<l.length;++s)h=l[s],r=r+'<a class="post-tag :class" href=":base/tags/:url">:tag<\/a>'.format({base:a,"class":"",tag:h,url:encodeURIComponent(h)});return r}}function v(t,i,r,u,e){return!r||typeof r!="object"?f(t,i,r,u,e):'<a href=":url">:text<\/a>'.format({url:r.url,text:n(r.name)})}function e(t,i){var r=o+t,u='<a href=":url">:text<\/a>',i=i,t=t;return function(e,o,s,h,c){if(!s||typeof s!="object")return f(e,o,s,h,c);var l=r;return i!=null&&(l=c[i].url+t),u.format({url:l+s.id,text:n(s.title)})}}var o=i.url,c=/^(https?|site|query):\/\/[-A-Z0-9+&@#\/%?=~_\[\]\(\)!:,\.;]*[-A-Z0-9+&@#\/%=~_\[\]](?:\|.+?)?$/i,u=document.createElement("a"),s=u,h="outerHTML",r;u.outerHTML||(s=document.createElement("span"),h="innerHTML",s.appendChild(u));r=null;t&&t.columns.forEach(function(n,t){if(n.type==="site")return r="col"+t,!1});this.getFormatter=function(n){if(n.name.toLowerCase()==="tags"||n.name.toLowerCase()==="tagname")return a(r);if(n.type)switch(n.type){case"user":return e("/users/",r);case"post":return e("/q/",r);case"suggestededit":return e("/suggested-edits/",r);case"comment":return e("/posts/comments/",r);case"date":return l;case"site":return v}return f}}function r(n,t){var e,u=[],r,f,i,o;for(sizerParent=document.createElement("div"),sizer=document.createElement("span"),maxWidth=290,sizer.className="slick-cell",sizerParent.className="offscreen ui-widget",sizerParent.appendChild(sizer),document.body.appendChild(sizerParent),i=0;i<t.length;++i){for(e={},r=0;r<n.length;++r)(e["col"+r]=t[i][r],n[r].type!=="Date")&&t[i][r]!=null&&i<500&&(!u[r]||u[r]<maxWidth)&&(t[i][r].toString().length<30?(sizer[_textContent]=t[i][r],sizer.offsetWidth>(u[r]||0)&&(u[r]=sizer.offsetWidth)):u[r]=maxWidth);t[i]=e}for(sizer[_textContent]="",sizer.className="slick-header-column slick-header-column-sorted ui-state-default",sizerParent.className+=" slick-header",sizerParent.appendChild(document.create("span",{classname:"slick-sort-indicator"})),sizerParent.appendChild(document.create("div",{classname:"slick-resizable-handle"})),f=sizerParent.childNodes[1].offsetWidth+sizerParent.childNodes[2].offsetWidth,i=0;i<n.length;++i)o=n[i].name.toLowerCase(),n[i].type==="Date"&&(u[i]=160),o==="post link"?u[i]=maxWidth:(sizer[_textContent]=n[i].name,sizer.offsetWidth+f>u[i]&&(u[i]=sizer.offsetWidth+f)),u[i]=Math.min(u[i]||50+f,maxWidth);return document.body.removeChild(sizerParent),u}function n(n){return!n||!n.replace?n:n.replace(/[\n\r]/g," ").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").substring(0,400)}return t}(),DataExplorer.Graph=function(){function t(n,t){var h={legend:{position:"nw",labelFormatter:htmlEncode},grid:{hoverable:!0},selection:{mode:"x"},series:{lines:{show:!0},points:{show:!0}}},f,c,e,s,o,r,u;if(t=$(t),n.columns[0].type==="Date"&&(h.xaxis={mode:"time"}),f=[],n.columns[1].type==="Text")for(e={},r=0;r<n.rows.length;r++)s=n.rows[r][1],o="col_"+s,e[o]===undefined&&(e[o]=f.push({label:s,data:[]})-1),f[e[o]].data.push([n.rows[r][0],n.rows[r][2]]);else{for(u=1;u<n.columns.length;u++)f.push({label:n.columns[u].name,data:[]});for(r=0;r<n.rows.length;r++)for(u=1;u<n.columns.length;u++)f[u-1].data.push([n.rows[r][0],n.rows[r][u]])}this.show=function(){c=$.plot(t,f,h);i(t)};this.isInitialized=function(){return!!c}}function i(t){n||(n=$(document.create("div",{className:"graph-tooltip"},document.body)));t.on("plothover",function(t,i,r){r?n.text(r.datapoint[1].prettify()).css({top:r.pageY-35,left:r.pageX-5}).show():n.hide()})}var n;return t.isGraph=function(n){var i,t,r;if(!n||n.columns.length<2)return!1;for(i=!0,t=0;t<n.columns.length&&i;t++)(r=n.columns[t].type,r!=="Text"||t!==1||n.columns.length!=3)&&(i=r==="Number"||r==="Date"&&t===0);return i},t}(),typeof QP=="undefined"||!QP)var QP={};(function(){function n(n){var u=t(n),r=u[0];r.getContext!==null&&r.getContext!==undefined&&window.setTimeout(function(){var t=r.getContext("2d"),f;r.width=n[0].scrollWidth||n.outerWidth(!0);r.height=n[0].scrollHeight||n.outerHeight(!0);f=u.offset();$(".qp-tr",n).each(function(){var n=$("> * > .qp-node",$(this));$("> * > .qp-tr > * > .qp-node",$(this)).each(function(){i(t,f,n,$(this))})});t.stroke()},1)}function t(n){var t=$("canvas",n);return t.length==0&&(n.prepend($("<canvas><\/canvas>").css("position","absolute").css("top",0).css("left",0)),t=$("canvas",n)),t}function i(n,t,i,r){var u=i.offset(),f,e;u.top+=i.outerHeight()/2;u.left+=i.outerWidth();f=r.offset();f.top+=r.outerHeight()/2;e=u.left/2+f.left/2;n.moveTo(u.left-t.left,u.top-t.top);n.lineTo(e-t.left,u.top-t.top);n.lineTo(e-t.left,f.top-t.top);n.lineTo(f.left-t.left,f.top-t.top)}QP.drawLines=function(t){t=t===null||t===undefined?$(".qp-root:parent"):$(t);n(t)}})();DataExplorer.SiteSwitcher=function(){function r(t,r){i=r;n=$(t);n.one("focus",function(){$.get("/sites",f)})}function u(n){t=$.extend({},n)}function f(r){n.autocomplete(r,{minChars:2,matchContains:"word",autoFill:!1,width:n.outerWidth(),formatItem:function(n){return'<img src="'+n.IconUrl+'" class="site-icon" /> '+htmlEncode(n.LongName)},formatMatch:function(n){return htmlEncode(n.LongName+" "+n.Url)},formatResult:function(n){return n.LongName}}).result(function(n,r){window.location=i.format($.extend(t,{site:r.Name.toLowerCase()}))})}var t,i,n;return{init:r,update:u}}();DataExplorer.QueryEditor=function(){function u(){return!!n||!!t}function f(u,f){if(typeof u=="string"&&(u=$(u)),u.length){if(i=u,u=u[0],u.nodeName==="TEXTAREA"){function e(){i.closest("form").submit()}n=CodeMirror.fromTextArea(u,$.extend({},r,{lineNumbers:!0,extraKeys:{"Ctrl-Enter":e,"Shift-Tab":"indentLess",Tab:"indentMore",F5:e}}))}else t=u[_textContent],n=CodeMirror.runMode(t,r.mode,u);f&&typeof f=="function"&&f(n)}}function e(){if(!u())return null;if(t)return t;var r=n.getValue();return r.charCodeAt(r.length-1)===8203&&(r=r.substring(0,r.length-1)),i.val(r),r}var n,i,t,r={mode:"text/x-t-sql"};return{create:f,value:e,exists:u}}();DataExplorer.ready(function(){function u(){var h=null,n;if(h=DataExplorer.QueryEditor.exists()?DataExplorer.QueryEditor.value():$("#queryBodyText").text(),!h)return!1;var r=new DataExplorer.ParameterParser.parse(h,{multilineStrings:!0,multilineComments:!0,stringEscapeCharacter:"'",nestedMultilineComments:!0}),o=!0,c=document.getElementById("query-params"),l=c.getElementsByTagName("input"),a={},t,v,f,e,i,u,s;for($(c).toggle(!!r.length),n=l.length-1;n>-1;--n)t=l.item(n),i=t.getAttribute("value"),v=t.name,t.value&&t.value.length&&(a[v]=t.value),t.parentNode.parentNode.removeChild(t.parentNode);for(n=0;n<r.length;++n)f=document.createElement("label"),f.htmlFor="dynParam"+n,f[_textContent]=r[n].label||r[n].name,r[n].description&&(f.title=r[n].description),i=a[r[n].name],u=!(!i&&i!==0),u||(i=window.location.param(r[n].name),u=!(!i&&i!==0)),u||(i=r[n].auto,u=!(!i&&i!==0)),u||r[n].name.toLowerCase()!=="userid"||DataExplorer.options.User.isAuthenticated&&DataExplorer.options.User.guessedID&&(u=!0,i=DataExplorer.options.User.guessedID),o&&(o=u),t=document.createElement("input"),t.name=r[n].name,t.id="dynParam"+n,t.type="text",u?t.setAttribute("value",i):s||(s=t),e=document.createElement("div"),e.className="form-row",e.appendChild(f),e.appendChild(t),c.appendChild(e);return!o&&s&&s.focus(),o}function f(i){var f,o,h,y,e;if(!t(i)&&!s(i)){var a=n[0].action,v=0,u=i.slug,r=$('#query-params input[type="text"]').serialize(),c=!1,l;r&&(r=r.replace(/(^|&)UserId=(\d+)(&|$)/i,function(n,t,i,r){return l=i,t?r:""}),r=r.length?"?"+r:null);/[^\d]\/\d+$/.test(a)&&(n[0].action=a+"/"+i.querySetId);i.resultSets.length?i.resultSets.forEach(function(n){v+=n.rows.length}):c=!0;document.getElementById("messages").children[0][_textContent]=i.messages;u||/\/[^\/]+\/query\/new/.test(window.location.pathname)||!/.*?\/[^\/]+$/.test(window.location.pathname)?u&&u.indexOf("/")!==0&&(u="/"+u):(u=window.location.pathname.substring(window.location.pathname.lastIndexOf("/")),/\d+/.test(u)&&(u=null));DataExplorer.template("#execution-stats","text",{records:c?"Results":v+" rows",time:i.executionTime===0?"<1":i.executionTime,cached:i.fromCache?" (cached)":""});f="";i.targetSites==1?f="all-":i.targetSites==2?f="all-meta-":i.targetSites==3?f="all-non-meta-":i.targetSites==4?f="all-meta-but-mse-":i.targetSites==5&&(f="all-non-meta-but-so-");$("#query-options").find("input, select").each(function(){var n;this.type==="checkbox"?this.checked&&(n=!0):(n=this.value,this.tagName=="SELECT"&&this.options[this.selectedIndex].getAttribute("selected")!==null&&(n=null));n&&(o=(o?o+"&":"")+"opt."+this.name+"="+encodeURIComponent(n))});o&&(r=(r?r+"&":"?")+o);h={targetsites:f,site:i.siteName,revisionid:i.revisionId,slug:u,params:r,id:i.querySetId};DataExplorer.template("a.templated.site","href",h);DataExplorer.SiteSwitcher.update(h);l&&(h.params=(r?r+"&":"?")+"UserId="+l);DataExplorer.template("a.templated:not(.site), a.templated.related-site","href",h);DataExplorer.Sidebar&&DataExplorer.Sidebar.updateHistory(i);c||i.resultSets.every(function(n){return DataExplorer.Graph.isGraph(n)?(i.graph=new DataExplorer.Graph(n,"#graph"),!1):!0});$("#query-results .miniTabs a.optional").each(function(){$(this).toggleClass("hidden",!(i[this.hash.substring(1)]&&i[this.hash.substring(1)].length!==0))});y=$("#resultSets").empty();e=DataExplorer.template("#resultSetsTab .tab-counter","text",{current:1,total:i.resultSets.length}).data("current-subpanel",1).toggle(i.resultSets.length>1).off("click");$(".result-option").fadeIn("fast").promise().done(function(){var t=$("#query-results .miniTabs a").off("show"),h=t.filter(":not(.hidden):first"),n,o,r,u,f,s;if(window.location.hash&&(n=$(window.location.hash+"Tab"),(!n.length||n.hasClass("hidden"))&&(n=null)),i.graph)t.on("show",function(n,t){t!=="#graph"||i.graph.isInitialized()||i.graph.show()});if(o=$("#permalink a")[0],o){t.off("click.permalink");t.on("click.permalink",function(){o.href=o.href.replace(/#.*$/,"")+(this!=h[0]?this.hash:"")})}if(i.executionPlan&&QP&&typeof QP.drawLines=="function"&&$("#executionPlan").html(i.executionPlan),!c){for(r=[],u=0;u<i.resultSets.length;++u)y.append(document.create("div",{className:"subpanel"})),r.push(new DataExplorer.ResultSet(i.resultSets[u],{url:i.url,name:i.siteName},"#resultSets .subpanel:nth-child("+(u+1)+")"));function l(){var n=e.data("current-subpanel");$("#resultSets .subpanel:nth-child("+n+")").is(":visible")||($("#resultSets .subpanel").hide().filter(":nth-child("+n+")").show(),r[n-1].isInitialized()?r[n-1].refresh():r[n-1].show())}t.on("show",function(n,t){t==="#resultSets"&&l()});e.on("click",function(){if(e.parent().hasClass("youarehere")){var n=e.data("current-subpanel")+1;n>i.resultSets.length&&(n=1);DataExplorer.template(e.data("current-subpanel",n),"text",{current:n,total:i.resultSets.length});l()}})}n||(n=h);n.removeClass("youarehere").click();f=0;s=500;$("#query-results .panel").each(function(){var n=$(this).height();if(n>=s)return f=s,!1;f=Math.max(n,f)}).css({height:Math.min(f,s)});$("html, body").animate({scrollTop:$("#query-results").offset().top-10},500)})}}function t(n,t){var r;return n&&!n.error?(i.hide(),!1):(r=n.line?"Line "+n.line+": "+n.error:n.error,i.text(r).show()[0].className="error-message"+(t||""),!0)}function s(n){var i=n&&n.captcha,r=document.getElementById("captcha"),u="none";if(i){if(!grecaptcha)return t({error:"Anonymous users must solve a captcha, but it doesn't seem to have loaded. Please try again later."});t({error:"Anonymous users must solve a captcha. Please complete the captcha and submit again."});grecaptcha.reset();u="block"}return r&&(r.style="display: "+u),i}var r=$("#schema"),e=$("#history"),o=$("#editor-panel"),h=$("#query-metadata .info"),i=$("#error-message"),n=$("#runQueryForm");DataExplorer.QueryEditor.create("#queryBodyText");DataExplorer.QueryEditor.create("#sql",function(n){function i(i){var o=i-e.outerHeight(),f=r.children("ul"),u=r.outerHeight()-f.height();f.height(o-u);DataExplorer.TableHelpers.resize(i-u+9);t&&(u=t.outerHeight()-t.height(),t.height(i-u),n.refresh())}var t;DataExplorer.Sidebar.init({editorTheme:n.getOption("theme"),panel:o,toolbar:"#editor-toolbar"});n&&(t=$(n.getScrollerElement()).closest(".CodeMirror"));$("#editor").TextAreaResizer(i,{useParentWidth:!0,resizeWrapper:!0,minHeight:300,initCallback:!0})});$(".miniTabs").tabs(!1);n.submit(function(){var h;$(".report-option").hide();i.hide();var e=function(){$("#loading").hide();n.find("input, button").prop("disabled",function(){return this.id=="cancel-query"})},o=function(){t({error:"Something unexpected went wrong while running your query. Don't worry, blame is already being assigned."})},c=function(){t({error:"Query execution has been cancelled"},"notice")},r={request:null,timeout:null,setupCancel:!0},s=function(n){var t,i;n.running===!0?(t=function(){r.timeout=setTimeout(function(){r.request=$.ajax({type:"GET",url:"/query/job/"+n.job_id,success:s,error:[e,o],cache:!1})},1500)},!r.timeout&&r.setupCancel&&(i=n.job_id,r.setupCancel=!1,$("#cancel-query").one("click",function(){this.disabled=!0;clearTimeout(r.timeout);r.request&&r.request.abort();$.ajax({type:"POST",url:"/query/job/"+i+"/cancel",success:function(n){n.cancelled?(e(),c()):t()},error:[e,o],cache:!1})}).prop("disabled",!1)),t()):(e(),f(n))};return u()&&(h=n.serialize(),n.find("input, button").prop("disabled",!0),$("#loading").show(),$.ajax({type:"POST",url:this.action,data:h,success:s,error:[e,o],cache:!1})),!1});$("#query-options").find("input, select").each(function(){var n=window.location.param("opt."+this.name);n&&(this.type==="checkbox"?this.checked=n:this.value=n)});$("#query-results").bind("show",function(n){$(".download-button",this).hide();$(n.target.href.from("#")+"Button").show()});$("#executionPlanTab").click(function(){QP.drawLines()});window.loadCachedResults=function(n){u();n&&f(n)}})