(function(n){"object"==typeof module&&module.exports?(n["default"]=n,module.exports=n):"function"==typeof define&&define.amd?define("highcharts/modules/data",["highcharts"],function(t){return n(t),n.Highcharts=t,n}):n("undefined"!=typeof Highcharts?Highcharts:void 0)})(function(n){function t(n,t,i,r){n.hasOwnProperty(t)||(n[t]=r.apply(null,i))}n=n?n._modules:{};t(n,"mixins/ajax.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(n,t){var i=t.merge,r=t.objectEach;n.ajax=function(n){var t=i(!0,{url:!1,type:"get",dataType:"json",success:!1,error:!1,data:!1,headers:{}},n),u;if(n={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},u=new XMLHttpRequest,!t.url)return!1;u.open(t.type.toUpperCase(),t.url,!0);t.headers["Content-Type"]||u.setRequestHeader("Content-Type",n[t.dataType]||n.text);r(t.headers,function(n,t){u.setRequestHeader(t,n)});u.onreadystatechange=function(){if(4===u.readyState){if(200===u.status){var n=u.responseText;if("json"===t.dataType)try{n=JSON.parse(n)}catch(i){t.error&&t.error(u,i);return}return t.success&&t.success(n)}t.error&&t.error(u,u.responseText)}};try{t.data=JSON.stringify(t.data)}catch(f){}u.send(t.data||!0)};n.getJSON=function(t,i){n.ajax({url:t,success:i,dataType:"json",headers:{"Content-Type":"text/plain"}})}});t(n,"modules/data.src.js",[n["parts/Chart.js"],n["parts/Globals.js"],n["parts/Point.js"],n["parts/Utilities.js"]],function(n,t,i,r){var s=r.addEvent,h=r.defined,c=r.extend,l=r.fireEvent,e=r.isNumber,u=r.merge,a=r.objectEach,v=r.pick,y=r.splat,o=t.ajax,p=t.win.document,f;return r=function(){function n(n,t,i){this.options=this.rawColumns=this.firstRowAsNames=this.chartOptions=this.chart=void 0;this.dateFormats={"YYYY/mm/dd":{regex:/^([0-9]{4})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{1,2})$/,parser:function(n){return n?Date.UTC(+n[1],n[2]-1,+n[3]):NaN}},"dd/mm/YYYY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{4})$/,parser:function(n){return n?Date.UTC(+n[3],n[2]-1,+n[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{4})$/,parser:function(n){return n?Date.UTC(+n[3],n[1]-1,+n[2]):NaN}},"dd/mm/YY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{2})$/,parser:function(n){if(!n)return NaN;var t=+n[3];return t=t>(new Date).getFullYear()-2e3?t+1900:t+2e3,Date.UTC(t,n[2]-1,+n[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{2})$/,parser:function(n){return n?Date.UTC(+n[3]+2e3,n[1]-1,+n[2]):NaN}}};this.init(n,t,i)}return n.prototype.init=function(n,t,i){var u=n.decimalPoint,r;t&&(this.chartOptions=t);i&&(this.chart=i);"."!==u&&","!==u&&(u=void 0);this.options=n;this.columns=n.columns||this.rowsToColumns(n.rows)||[];this.firstRowAsNames=v(n.firstRowAsNames,this.firstRowAsNames,!0);this.decimalRegex=u&&new RegExp("^(-?[0-9]+)"+u+"([0-9]+)$");this.rawColumns=[];this.columns.length&&(this.dataFound(),r=!0);this.hasURLOption(n)&&(clearTimeout(this.liveDataTimeout),r=!1);r||(r=this.fetchLiveData());r||(r=!!this.parseCSV().length);r||(r=!!this.parseTable().length);r||(r=this.parseGoogleSpreadsheet());!r&&n.afterComplete&&n.afterComplete()},n.prototype.hasURLOption=function(n){return!(!n||!(n.rowsURL||n.csvURL||n.columnsURL))},n.prototype.getColumnDistribution=function(){var n=this.chartOptions,i=this.options,e=[],o=function(n){return(t.seriesTypes[n||"line"].prototype.pointArrayMap||[0]).length},r=n&&n.chart&&n.chart.type,s=[],l=[],c=0,u;i=i&&i.seriesMapping||n&&n.series&&n.series.map(function(){return{x:0}})||[];(n&&n.series||[]).forEach(function(n){s.push(o(n.type||r))});i.forEach(function(n){e.push(n.x||0)});0===e.length&&e.push(0);i.forEach(function(i){var e=new f,w=s[c]||o(r),v=(n&&n.series||[])[c]||{},y=t.seriesTypes[v.type||r||"line"].prototype.pointArrayMap,p=y||["y"];for((h(i.x)||v.isCartesian||!y)&&e.addColumnReader(i.x,"x"),a(i,function(n,t){"x"!==t&&e.addColumnReader(n,t)}),u=0;u<w;u++)e.hasReader(p[u])||e.addColumnReader(void 0,p[u]);l.push(e);c++});i=t.seriesTypes[r||"line"].prototype.pointArrayMap;"undefined"==typeof i&&(i=["y"]);this.valueCount={global:o(r),xColumns:e,individual:s,seriesBuilders:l,globalPointArrayMap:i}},n.prototype.dataFound=function(){this.options.switchRowsAndColumns&&(this.columns=this.rowsToColumns(this.columns));this.getColumnDistribution();this.parseTypes();!1!==this.parsed()&&this.complete()},n.prototype.parseCSV=function(n){function a(n,t,i,u){function v(t){o=n[t];b=n[t-1];k=n[t+1]}function y(n){r.length<h+1&&r.push([n]);r[h][r[h].length-1]!==n&&r[h].push(n)}function l(){p>a||a>w?(++a,f=""):(!isNaN(parseFloat(f))&&isFinite(f)?(f=parseFloat(f),y("number")):isNaN(Date.parse(f))?y("string"):(f=f.replace(/\//g,"-"),y("date")),e.length<h+1&&e.push([]),i||(e[h][t]=f),f="",++h,++a)}var c=0,o="",b="",k="",f="",a=0,h=0;if(n.trim().length&&"#"!==n.trim()[0]){for(;c<n.length;c++){if(v(c),"#"===o){l();return}if('"'===o)for(v(++c);c<n.length&&('"'!==o||'"'===b||'"'===k);)('"'!==o||'"'===o&&'"'!==b)&&(f+=o),v(++c);else u&&u[o]?u[o](o,f)&&l():o===s?l():f+=o}l()}}function v(n){var i=0,r=0,f=!1;return n.some(function(n,t){var s=!1,e="",f,o,h;if(13<t)return!0;for(f=0;f<n.length;f++){if(t=n[f],o=n[f+1],h=n[f-1],"#"===t)break;if('"'===t)if(s){if('"'!==h&&'"'!==o){for(;" "===o&&f<n.length;)o=n[++f];"undefined"!=typeof u[o]&&u[o]++;s=!1}}else s=!0;else"undefined"!=typeof u[t]?(e=e.trim(),isNaN(Date.parse(e))?!isNaN(e)&&isFinite(e)||u[t]++:u[t]++,e=""):e+=t;","===t&&r++;"."===t&&i++}}),f=u[";"]>u[","]?";":",",t.decimalPoint||(t.decimalPoint=i>r?".":",",c.decimalRegex=new RegExp("^(-?[0-9]+)"+t.decimalPoint+"([0-9]+)$")),f}function y(n,i){var u=[],e=0,h=!1,o=[],s=[],r,f;for((!i||i>n.length)&&(i=n.length);e<i;e++)if("undefined"!=typeof n[e]&&n[e]&&n[e].length)for(f=n[e].trim().replace(/\//g," ").replace(/\-/g," ").replace(/\./g," ").split(" "),u=["","",""],r=0;r<f.length;r++)r<u.length&&(f[r]=parseInt(f[r],10),f[r]&&(s[r]=!s[r]||s[r]<f[r]?f[r]:s[r],"undefined"!=typeof o[r]?o[r]!==f[r]&&(o[r]=!1):o[r]=f[r],31<f[r]?u[r]=100>f[r]?"YY":"YYYY":12<f[r]&&31>=f[r]?(u[r]="dd",h=!0):u[r].length||(u[r]="mm")));if(h){for(r=0;r<o.length;r++)!1!==o[r]?12<s[r]&&"YY"!==u[r]&&"YYYY"!==u[r]&&(u[r]="YY"):12<s[r]&&"mm"===u[r]&&(u[r]="dd");return 3===u.length&&"dd"===u[1]&&"dd"===u[2]&&(u[2]="YY"),n=u.join("/"),(t.dateFormats||c.dateFormats)[n]?n:(l("deduceDateFailed"),"YYYY/mm/dd")}return"YYYY/mm/dd"}var c=this,t=n||this.options,i=t.csv,s,h;n="undefined"!=typeof t.startRow&&t.startRow?t.startRow:0;var o=t.endRow||Number.MAX_VALUE,p="undefined"!=typeof t.startColumn&&t.startColumn?t.startColumn:0,w=t.endColumn||Number.MAX_VALUE,f=0,r=[],u={",":0,";":0,"\t":0},e=this.columns=[];if(i&&t.beforeParse&&(i=t.beforeParse.call(this,i)),i){for(i=i.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split(t.lineDelimiter||"\n"),(!n||0>n)&&(n=0),(!o||o>=i.length)&&(o=i.length-1),t.itemDelimiter?s=t.itemDelimiter:(s=null,s=v(i)),h=0,f=n;f<=o;f++)"#"===i[f][0]?h++:a(i[f],f-n-h);t.columnTypes&&0!==t.columnTypes.length||!r.length||!r[0].length||"date"!==r[0][1]||t.dateFormat||(t.dateFormat=y(e[0]));this.dataFound()}return e},n.prototype.parseTable=function(){var n=this.options,t=n.table,i=this.columns||[],r=n.startRow||0,f=n.endRow||Number.MAX_VALUE,u=n.startColumn||0,e=n.endColumn||Number.MAX_VALUE;return t&&("string"==typeof t&&(t=p.getElementById(t)),[].forEach.call(t.getElementsByTagName("tr"),function(n,t){t>=r&&t<=f&&[].forEach.call(n.children,function(n,f){var s=i[f-u],o=1;if(("TD"===n.tagName||"TH"===n.tagName)&&f>=u&&f<=e)for(i[f-u]||(i[f-u]=[]),i[f-u][t-r]=n.innerHTML;t-r>=o&&void 0===s[t-r-o];)s[t-r-o]=null,o++})}),this.dataFound()),i},n.prototype.fetchLiveData=function(){function f(u){function c(r,c,l){function a(){h&&t.liveDataURL===r&&(e.liveDataTimeout=setTimeout(f,i))}return!r||0!==r.indexOf("http")?(r&&n.error&&n.error("Invalid URL"),!1):(u&&(clearTimeout(e.liveDataTimeout),t.liveDataURL=r),o({url:r,dataType:l||"json",success:function(n){t&&t.series&&c(n);a()},error:function(t,i){return 3>++s&&a(),n.error&&n.error(i,t)}}),!0)}c(r.csvURL,function(n){t.update({data:{csv:n}})},"text")||c(r.rowsURL,function(n){t.update({data:{rows:n}})})||c(r.columnsURL,function(n){t.update({data:{columns:n}})})}var e=this,t=this.chart,n=this.options,s=0,h=n.enablePolling,i=1e3*(n.dataRefreshRate||2),r=u(n);return this.hasURLOption(n)?(1e3>i&&(i=1e3),delete n.csvURL,delete n.rowsURL,delete n.columnsURL,f(!0),this.hasURLOption(n)):!1},n.prototype.parseGoogleSpreadsheet=function(){function r(t){var i=["https://spreadsheets.google.com/feeds/cells",f,c,"public/values?alt=json"].join("/");o({url:i,dataType:"json",success:function(i){t(i);n.enablePolling&&setTimeout(function(){r(t)},1e3*(n.dataRefreshRate||2))},error:function(t,i){return n.error&&n.error(i,t)}})}var u=this,n=this.options,f=n.googleSpreadsheetKey,i=this.chart,c=n.googleSpreadsheetWorksheet||1,e=n.startRow||0,l=n.endRow||Number.MAX_VALUE,t=n.startColumn||0,s=n.endColumn||Number.MAX_VALUE,h=1e3*(n.dataRefreshRate||2);return 4e3>h&&(h=4e3),f&&(delete n.googleSpreadsheetKey,r(function(n){var c=[],v,h,r,f,a,o;if(n=n.feed.entry,v=(n||[]).length,h=0,!n||0===n.length)return!1;for(r=0;r<v;r++)f=n[r],h=Math.max(h,f.gs$cell.col);for(r=0;r<h;r++)r>=t&&r<=s&&(c[r-t]=[]);for(r=0;r<v;r++)f=n[r],h=f.gs$cell.row-1,a=f.gs$cell.col-1,a>=t&&a<=s&&h>=e&&h<=l&&(o=f.gs$cell||f.content,f=null,o.numericValue?f=0<=o.$t.indexOf("/")||0<=o.$t.indexOf("-")?o.$t:0<o.$t.indexOf("%")?100*parseFloat(o.numericValue):parseFloat(o.numericValue):o.$t&&o.$t.length&&(f=o.$t),c[a-t][h-e]=f);c.forEach(function(n){for(r=0;r<n.length;r++)"undefined"==typeof n[r]&&(n[r]=null)});i&&i.series?i.update({data:{columns:c}}):(u.columns=c,u.dataFound())})),!1},n.prototype.trim=function(n,t){return"string"==typeof n&&(n=n.replace(/^\s+|\s+$/g,""),t&&/^[0-9\s]+$/.test(n)&&(n=n.replace(/\s/g,"")),this.decimalRegex&&(n=n.replace(this.decimalRegex,"$1.$2"))),n},n.prototype.parseTypes=function(){for(var t=this.columns,n=t.length;n--;)this.parseColumn(t[n],n)},n.prototype.parseColumn=function(n,t){var f=this.rawColumns,o=this.columns,i=n.length,p=this.firstRowAsNames,c=-1!==this.valueCount.xColumns.indexOf(t),l,w=[],s=this.chartOptions,h,v=(this.options.columnTypes||[])[t];for(s=c&&(s&&s.xAxis&&"category"===y(s.xAxis)[0].type||"string"===v),f[t]||(f[t]=[]);i--;){var r=w[i]||n[i],u=this.trim(r),b=this.trim(r,!0),a=parseFloat(b);"undefined"==typeof f[t][i]&&(f[t][i]=u);s||0===i&&p?n[i]=""+u:+b===a?(n[i]=a,31536e6<a&&"float"!==v?n.isDatetime=!0:n.isNumeric=!0,"undefined"!=typeof n[i+1]&&(h=a>n[i+1])):(u&&u.length&&(l=this.parseDate(r)),c&&e(l)&&"float"!==v?(w[i]=r,n[i]=l,n.isDatetime=!0,"undefined"!=typeof n[i+1]&&(r=l>n[i+1],r!==h&&"undefined"!=typeof h&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,i=n.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):n.unsorted=!0),h=r)):(n[i]=""===u?null:u,0!==i&&(n.isDatetime||n.isNumeric)&&(n.mixed=!0)))}if(c&&n.mixed&&(o[t]=f[t]),c&&h&&this.options.sort)for(t=0;t<o.length;t++)o[t].reverse(),p&&o[t].unshift(o[t].pop())},n.prototype.parseDate=function(n){var i=this.options.parseDate,u,f=this.options.dateFormat||this.dateFormat,t,r;if(i)r=i(n);else if("string"==typeof n){if(f)(i=this.dateFormats[f])||(i=this.dateFormats["YYYY/mm/dd"]),(t=n.match(i.regex))&&(r=i.parser(t));else for(u in this.dateFormats)if(i=this.dateFormats[u],t=n.match(i.regex)){this.dateFormat=u;this.alternativeFormat=i.alternative;r=i.parser(t);break}t||(t=Date.parse(n),"object"==typeof t&&null!==t&&t.getTime?r=t.getTime()-6e4*t.getTimezoneOffset():e(t)&&(r=t-6e4*new Date(t).getTimezoneOffset()))}return r},n.prototype.rowsToColumns=function(n){var i,t,r,u,f;if(n)for(r=[],u=n.length,i=0;i<u;i++)for(f=n[i].length,t=0;t<f;t++)r[t]||(r[t]=[]),r[t][i]=n[i][t];return r},n.prototype.getData=function(){if(this.columns)return this.rowsToColumns(this.columns).slice(1)},n.prototype.parsed=function(){if(this.options.parsed)return this.options.parsed.call(this,this.columns)},n.prototype.getFreeIndexes=function(n,t){for(var r=[],f=[],u,i=0;i<n;i+=1)r.push(!0);for(n=0;n<t.length;n+=1)for(u=t[n].getReferencedColumnIndexes(),i=0;i<u.length;i+=1)r[u[i]]=!1;for(i=0;i<r.length;i+=1)r[i]&&f.push(i);return f},n.prototype.complete=function(){var r=this.columns,e,o=this.options,n,s,u=[],h,i,t;if(o.complete||o.afterComplete){if(this.firstRowAsNames)for(n=0;n<r.length;n++)r[n].name=r[n].shift();for(h=[],i=this.getFreeIndexes(r.length,this.valueCount.seriesBuilders),n=0;n<this.valueCount.seriesBuilders.length;n++)t=this.valueCount.seriesBuilders[n],t.populateColumns(i)&&u.push(t);for(;0<i.length;){for(t=new f,t.addColumnReader(0,"x"),n=i.indexOf(0),-1!==n&&i.splice(n,1),n=0;n<this.valueCount.global;n++)t.addColumnReader(void 0,this.valueCount.globalPointArrayMap[n]);t.populateColumns(i)&&u.push(t)}if(0<u.length&&0<u[0].readers.length&&(t=r[u[0].readers[0].columnIndex],"undefined"!=typeof t&&(t.isDatetime?e="datetime":t.isNumeric||(e="category"))),"category"===e)for(n=0;n<u.length;n++)for(t=u[n],i=0;i<t.readers.length;i++)"x"===t.readers[i].configName&&(t.readers[i].configName="name");for(n=0;n<u.length;n++){for(t=u[n],i=[],s=0;s<r[0].length;s++)i[s]=t.read(r,s);h[n]={data:i};t.name&&(h[n].name=t.name);"category"===e&&(h[n].turboThreshold=0)}r={series:h};e&&(r.xAxis={type:e},"category"===e&&(r.xAxis.uniqueNames=!1));o.complete&&o.complete(r);o.afterComplete&&o.afterComplete(r)}},n.prototype.update=function(n,t){var i=this.chart;n&&(n.afterComplete=function(n){n&&(n.xAxis&&i.xAxis[0]&&n.xAxis.type===i.xAxis[0].options.type&&delete n.xAxis,i.update(n,t,!0))},u(!0,i.options.data,n),this.init(i.options.data))},n}(),t.data=function(n,i,r){return new t.Data(n,i,r)},s(n,"init",function(n){var r=this,i=n.args[0]||{},f=n.args[1];i&&i.data&&!r.hasDataDef&&(r.hasDataDef=!0,r.data=new t.Data(c(i.data,{afterComplete:function(n){var t,e;if(Object.hasOwnProperty.call(i,"series"))if("object"==typeof i.series)for(t=Math.max(i.series.length,n&&n.series?n.series.length:0);t--;)e=i.series[t]||{},i.series[t]=u(e,n&&n.series?n.series[t]:{});else delete i.series;i=u(n,i);r.init(i,f)}}),i,r),n.preventDefault())}),f=function(){function n(){this.readers=[];this.pointIsArray=!0;this.name=void 0}return n.prototype.populateColumns=function(n){var t=!0;return this.readers.forEach(function(t){"undefined"==typeof t.columnIndex&&(t.columnIndex=n.shift())}),this.readers.forEach(function(n){"undefined"==typeof n.columnIndex&&(t=!1)}),t},n.prototype.read=function(n,t){var f=this.pointIsArray,u=f?[]:{},r;return this.readers.forEach(function(r){var e=n[r.columnIndex][t];f?u.push(e):0<r.configName.indexOf(".")?i.prototype.setNestedProperty(u,e,r.configName):u[r.configName]=e}),"undefined"==typeof this.name&&2<=this.readers.length&&(r=this.getReferencedColumnIndexes(),2<=r.length&&(r.shift(),r.sort(function(n,t){return n-t}),this.name=n[r.shift()].name)),u},n.prototype.addColumnReader=function(n,t){this.readers.push({columnIndex:n,configName:t});"x"!==t&&"y"!==t&&"undefined"!=typeof t&&(this.pointIsArray=!1)},n.prototype.getReferencedColumnIndexes=function(){for(var i=[],t,n=0;n<this.readers.length;n+=1)t=this.readers[n],"undefined"!=typeof t.columnIndex&&i.push(t.columnIndex);return i},n.prototype.hasReader=function(n){for(var i,t=0;t<this.readers.length;t+=1)if(i=this.readers[t],i.configName===n)return!0},n}(),t.Data=r,t.Data});t(n,"masters/modules/data.src.js",[],function(){})})