diff --git a/src/static/charts.js b/src/static/charts.js index 016f3ce..73f8209 100644 --- a/src/static/charts.js +++ b/src/static/charts.js @@ -13,6 +13,8 @@ class Charts { /* A list of bound charts this is necessary for maintaining a dynamic number of charts with their position and zoom factors bound.*/ this.bound_charts=[]; + // Debounce timestamp to prevent infinite loop in chart synchronization + this._lastSyncTime = 0; // Only the main chart is created by default. this.create_main_chart(); } @@ -26,8 +28,8 @@ class Charts { // Display the trading pair as a watermark overlaying the chart. this.addWatermark(this.chart_1, this.trading_pair); - // - Create the candle stick series for our chart - this.candleSeries = this.chart_1.addCandlestickSeries(); + // - Create the candle stick series for our chart (v5 API) + this.candleSeries = this.chart_1.addSeries(LightweightCharts.CandlestickSeries); // Initialize the candlestick series if price_history is available if (this.price_history && this.price_history.length > 0) { @@ -78,9 +80,9 @@ class Charts { this.addWatermark(this.chart5, 'Patterns'); this.bind_charts(this.chart5); - // Sync time scale with main chart so timestamps align + // Sync time scale with main chart so timestamps align (v5 API) if (this.chart_1) { - let barSpacing = this.chart_1.timeScale().getBarSpacing(); + let barSpacing = this.chart_1.timeScale().options().barSpacing; let scrollPosition = this.chart_1.timeScale().scrollPosition(); this.chart5.timeScale().applyOptions({ rightOffset: scrollPosition, barSpacing: barSpacing }); } @@ -137,16 +139,20 @@ class Charts { } - addWatermark(chart,text){ - chart.applyOptions({ - watermark: {visible: true, - color: '#DBC29E', - text: text, - fontSize: 30, - fontFamily: 'Roboto', - fontStyle: 'bold', - vertAlign: 'center' - } + addWatermark(chart, text){ + // v5 API: watermarks are now created via createTextWatermark plugin + LightweightCharts.createTextWatermark(chart.panes()[0], { + horzAlign: 'center', + vertAlign: 'center', + lines: [ + { + text: text, + color: '#DBC29E', + fontSize: 30, + fontFamily: 'Roboto', + fontStyle: 'bold', + } + ] }); } @@ -181,8 +187,11 @@ class Charts { bind2charts(){ //On change in chart 1 change chart 2 let syncHandler1 = (e) => { - // Get the barSpacing(zoom) and position of 1st chart. - let barSpacing1 = this.bound_charts[0].timeScale().getBarSpacing(); + const now = Date.now(); + if (now - this._lastSyncTime < 50) return; + this._lastSyncTime = now; + // Get the barSpacing(zoom) and position of 1st chart (v5 API: options().barSpacing) + let barSpacing1 = this.bound_charts[0].timeScale().options().barSpacing; let scrollPosition1 = this.bound_charts[0].timeScale().scrollPosition(); // Apply barSpacing(zoom) and position to 2nd chart. this.bound_charts[1].timeScale().applyOptions({ rightOffset: scrollPosition1, barSpacing: barSpacing1 }); @@ -191,8 +200,11 @@ class Charts { //On change in chart 2 change chart 1 let syncHandler2 = (e) => { - // Get the barSpacing(zoom) and position of chart 2 - let barSpacing2 = this.bound_charts[1].timeScale().getBarSpacing(); + const now = Date.now(); + if (now - this._lastSyncTime < 50) return; + this._lastSyncTime = now; + // Get the barSpacing(zoom) and position of chart 2 (v5 API: options().barSpacing) + let barSpacing2 = this.bound_charts[1].timeScale().options().barSpacing; let scrollPosition2 = this.bound_charts[1].timeScale().scrollPosition(); // Apply barSpacing(zoom) and position to chart 1 this.bound_charts[0].timeScale().applyOptions({ rightOffset: scrollPosition2, barSpacing: barSpacing2 }); @@ -203,8 +215,11 @@ class Charts { //On change to chart 1 change chart 2 and 3 let syncHandler = (e) => { - // Get the barSpacing(zoom) and position of chart 1 - let barSpacing1 = this.bound_charts[0].timeScale().getBarSpacing(); + const now = Date.now(); + if (now - this._lastSyncTime < 50) return; + this._lastSyncTime = now; + // Get the barSpacing(zoom) and position of chart 1 (v5 API) + let barSpacing1 = this.bound_charts[0].timeScale().options().barSpacing; let scrollPosition1 = this.bound_charts[0].timeScale().scrollPosition(); // Apply barSpacing(zoom) and position to new chart this.bound_charts[1].timeScale().applyOptions({ rightOffset: scrollPosition1, barSpacing: barSpacing1 }); @@ -214,8 +229,11 @@ class Charts { //On change to chart 2 change chart 1 and 3 let syncHandler2 = (e) => { - // Get the barSpacing(zoom) and position of chart 2 - let barSpacing2 = this.bound_charts[1].timeScale().getBarSpacing(); + const now = Date.now(); + if (now - this._lastSyncTime < 50) return; + this._lastSyncTime = now; + // Get the barSpacing(zoom) and position of chart 2 (v5 API) + let barSpacing2 = this.bound_charts[1].timeScale().options().barSpacing; let scrollPosition2 = this.bound_charts[1].timeScale().scrollPosition(); // Apply barSpacing(zoom) and position to chart 1 and 3 this.bound_charts[0].timeScale().applyOptions({ rightOffset: scrollPosition2, barSpacing: barSpacing2 }); @@ -225,8 +243,11 @@ class Charts { //On change to chart 3 change chart 1 and 2 let syncHandler3 = (e) => { - // Get the barSpacing(zoom) and position of new chart - let barSpacing2 = this.bound_charts[2].timeScale().getBarSpacing(); + const now = Date.now(); + if (now - this._lastSyncTime < 50) return; + this._lastSyncTime = now; + // Get the barSpacing(zoom) and position of new chart (v5 API) + let barSpacing2 = this.bound_charts[2].timeScale().options().barSpacing; let scrollPosition2 = this.bound_charts[2].timeScale().scrollPosition(); // Apply barSpacing(zoom) and position to parent chart this.bound_charts[0].timeScale().applyOptions({ rightOffset: scrollPosition2, barSpacing: barSpacing2 }); @@ -236,10 +257,13 @@ class Charts { } bind4charts(){ - // Sync all 4 charts together + // Sync all 4 charts together (v5 API: options().barSpacing) let syncFromChart = (sourceIndex) => { return (e) => { - let barSpacing = this.bound_charts[sourceIndex].timeScale().getBarSpacing(); + const now = Date.now(); + if (now - this._lastSyncTime < 50) return; + this._lastSyncTime = now; + let barSpacing = this.bound_charts[sourceIndex].timeScale().options().barSpacing; let scrollPosition = this.bound_charts[sourceIndex].timeScale().scrollPosition(); for (let i = 0; i < 4; i++) { if (i !== sourceIndex) { @@ -255,10 +279,13 @@ class Charts { } bind5charts(){ - // Sync all 5 charts together (main + RSI + MACD + %B + Patterns) + // Sync all 5 charts together (main + RSI + MACD + %B + Patterns) (v5 API) let syncFromChart = (sourceIndex) => { return (e) => { - let barSpacing = this.bound_charts[sourceIndex].timeScale().getBarSpacing(); + const now = Date.now(); + if (now - this._lastSyncTime < 50) return; + this._lastSyncTime = now; + let barSpacing = this.bound_charts[sourceIndex].timeScale().options().barSpacing; let scrollPosition = this.bound_charts[sourceIndex].timeScale().scrollPosition(); for (let i = 0; i < 5; i++) { if (i !== sourceIndex) { @@ -339,14 +366,20 @@ class Charts { console.log(`Setting ${markers.length} trade markers on chart`); - // Set markers on the candlestick series - this.candleSeries.setMarkers(markers); + // v5 API: use createSeriesMarkers instead of series.setMarkers + // Clear existing markers primitive if it exists + if (this.markersPrimitive) { + this.markersPrimitive.setMarkers([]); + } + // Create new markers primitive + this.markersPrimitive = LightweightCharts.createSeriesMarkers(this.candleSeries, markers); } // Clear all trade markers from chart clearTradeMarkers() { - if (this.candleSeries) { - this.candleSeries.setMarkers([]); + // v5 API: clear markers via the markers primitive + if (this.markersPrimitive) { + this.markersPrimitive.setMarkers([]); console.log('Trade markers cleared'); } } diff --git a/src/static/indicators.js b/src/static/indicators.js index d70c08f..68913a5 100644 --- a/src/static/indicators.js +++ b/src/static/indicators.js @@ -14,8 +14,12 @@ class Indicator_Output { this.legend[name].style.left = 3 + 'px'; this.legend[name].style.top = 3 + 'px'; // subscribe set legend text to crosshair moves + // v5 API: seriesPrices renamed to seriesData, returns full data item chart.subscribeCrosshairMove((param) => { - this.set_legend_text(param.seriesPrices.get(lineSeries), name); + const data = param.seriesData.get(lineSeries); + // Extract value from data item (could be {value} or {close} etc) + const priceValue = data ? (data.value !== undefined ? data.value : data.close) : undefined; + this.set_legend_text(priceValue, name); }); } @@ -88,21 +92,27 @@ class Indicator { } addHist(name, chart, color = '#26a69a') { - this.hist[name] = chart.addHistogramSeries({ + // v5 API: use addSeries with HistogramSeries + this.hist[name] = chart.addSeries(LightweightCharts.HistogramSeries, { color: color, priceFormat: { type: 'price', }, priceScaleId: 'volume_ps', + }); + // v5: scaleMargins must be set on the price scale, not series options + // Volume should only take up bottom 30% of the chart + chart.priceScale('volume_ps').applyOptions({ scaleMargins: { - top: 0, + top: 0.7, bottom: 0, }, }); } addLine(name, chart, color, lineWidth) { - this.lines[name] = chart.addLineSeries({ + // v5 API: use addSeries with LineSeries + this.lines[name] = chart.addSeries(LightweightCharts.LineSeries, { color: color, lineWidth: lineWidth }); @@ -599,8 +609,8 @@ class CandlestickPattern extends Indicator { } addPatternHist(name, chart) { - // Create histogram series for pattern signals - this.hist[name] = chart.addHistogramSeries({ + // v5 API: use addSeries with HistogramSeries + this.hist[name] = chart.addSeries(LightweightCharts.HistogramSeries, { priceFormat: { type: 'price', }, diff --git a/src/static/lightweight-charts.standalone.production.js b/src/static/lightweight-charts.standalone.production.js index 1ae9d1f..22b8783 100644 --- a/src/static/lightweight-charts.standalone.production.js +++ b/src/static/lightweight-charts.standalone.production.js @@ -1,15 +1,7 @@ - /*! +/*! * @license - * TradingView Lightweight Charts v2.1.0-dev+202005300152 - * Copyright (c) 2019 TradingView, Inc. + * TradingView Lightweight Charts™ v5.1.0 + * Copyright (c) 2025 TradingView, Inc. * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0 */ -!function(){"use strict";var t,i;function n(t,i){var n,s=((n={})[0]=[],n[1]=[t.lineWidth,t.lineWidth],n[2]=[2*t.lineWidth,2*t.lineWidth],n[3]=[6*t.lineWidth,6*t.lineWidth],n[4]=[t.lineWidth,4*t.lineWidth],n)[i];t.setLineDash(s)}function s(t,i,n,s){t.beginPath();var h=t.lineWidth%2?.5:0;t.moveTo(n,i+h),t.lineTo(s,i+h),t.stroke()}!function(t){t[t.Simple=0]="Simple",t[t.WithSteps=1]="WithSteps"}(t||(t={})),function(t){t[t.Solid=0]="Solid",t[t.Dotted=1]="Dotted",t[t.Dashed=2]="Dashed",t[t.LargeDashed=3]="LargeDashed",t[t.SparseDotted=4]="SparseDotted"}(i||(i={}));var h=function(t,i){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)i.hasOwnProperty(n)&&(t[n]=i[n])})(t,i)};function r(t,i){function n(){this.constructor=t}h(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}var e=function(){return(e=Object.assign||function(t){for(var i,n=1,s=arguments.length;n0)}function M(t){return"boolean"==typeof t}function b(t){var i,n,s,h=t;if(!h||"object"!=typeof h)return h;for(n in i=Array.isArray(h)?[]:{},h)h.hasOwnProperty(n)&&(s=h[n],i[n]=s&&"object"==typeof s?b(s):s);return i}function m(t){return null!==t}function p(t){return null===t?void 0:t}var g=function(){function t(){this.t=[]}return t.prototype.i=function(t){this.t=t},t.prototype.s=function(t,i,n,s){this.t.forEach((function(h){t.save(),h.s(t,i,n,s),t.restore()}))},t}(),y=function(){function t(){}return t.prototype.s=function(t,i,n,s){t.save(),t.scale(i,i),this.h(t,n,s),t.restore()},t.prototype.u=function(t,i,n,s){t.save(),t.scale(i,i),this.o(t,n,s),t.restore()},t.prototype.o=function(t,i,n){},t}(),k=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.l=null,i}return r(i,t),i.prototype.v=function(t){this.l=t},i.prototype.h=function(t){if(null!==this.l&&null!==this.l._){var i=this.l._,n=this.l,s=function(s){t.beginPath();for(var h=i.to-1;h>=i.from;--h){var r=n.M[h];t.moveTo(r.m,r.p),t.arc(r.m,r.p,s,0,2*Math.PI)}t.fill()};t.fillStyle=n.g,s(n.k+2),t.fillStyle=n.N,s(n.k)}},i}(y);var N,x,S,D,C={from:0,to:1},T=function(){function t(t,i){this.S=new g,this.D=[],this.C=[],this.T=!0,this.A=t,this.L=i,this.S.i(this.D)}return t.prototype.B=function(t){var i=this,n=this.A.V();n.length!==this.D.length&&(this.C=n.map((function(){return{M:[{m:0,p:0,F:0,P:0}],N:"",g:i.A.O().layout.backgroundColor,k:0,_:null}})),this.D=this.C.map((function(t){var i=new k;return i.v(t),i})),this.S.i(this.D)),this.T=!0},t.prototype.I=function(t,i,n){return this.T&&(this.R(),this.T=!1),this.S},t.prototype.R=function(){var t=this,i=this.A.V(),n=this.L.W(),s=this.A.j();i.forEach((function(i,h){var r=t.C[h],e=i.U(n);if(null!==e){ -try{ - var u=f(i.q()); - r.N=i.K().Y(n).H,r.g=t.A.O().layout.backgroundColor,r.k=e.k,r.M[0].P=e.P,r.M[0].p=i.X().$(e.P,u.Z),r.M[0].F=n,r.M[0].m=s.J(n),r._=C -}catch(err){ - console.log('TODO: debug error!!: %s',err.message); -} - -}else r._=null}))},t}(),E=function(){function t(t){this.G=t}return t.prototype.s=function(t,i,h,r){if(null!==this.G){var e=this.G.it.tt,u=this.G.nt.tt;if(e||u){t.save();var o=Math.round(this.G.m*i),a=Math.round(this.G.p*i),f=Math.ceil(this.G.st*i),l=Math.ceil(this.G.ht*i);t.lineCap="butt",e&&o>=0&&(t.lineWidth=Math.floor(this.G.it.rt*i),t.strokeStyle=this.G.it.et,t.fillStyle=this.G.it.et,n(t,this.G.it.ut),function(t,i,n,s){t.beginPath();var h=t.lineWidth%2?.5:0;t.moveTo(i+h,n),t.lineTo(i+h,s),t.stroke()}(t,o,0,l)),u&&a>=0&&(t.lineWidth=Math.floor(this.G.nt.rt*i),t.strokeStyle=this.G.nt.et,t.fillStyle=this.G.nt.et,n(t,this.G.nt.ut),s(t,a,0,f)),t.restore()}}},t}(),A=function(){function t(t){this.T=!0,this.ot={it:{rt:1,ut:0,et:"",tt:!1},nt:{rt:1,ut:0,et:"",tt:!1},st:0,ht:0,m:0,p:0},this.at=new E(this.ot),this.ft=t}return t.prototype.B=function(){this.T=!0},t.prototype.I=function(t,i){return this.T&&this.R(),this.at},t.prototype.R=function(){var t=this.ft.tt(),i=f(this.ft.lt()),n=i.ct().O().crosshair,s=this.ot;s.nt.tt=t&&this.ft.vt(i),s.it.tt=t&&this.ft._t(),s.nt.rt=n.horzLine.width,s.nt.ut=n.horzLine.style,s.nt.et=n.horzLine.color,s.it.rt=n.vertLine.width,s.it.ut=n.vertLine.style,s.it.et=n.vertLine.color,s.st=i.dt(),s.ht=i.wt(),s.m=this.ft.Mt(),s.p=this.ft.bt()},t}(),L={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function B(t){return function(t,i,n){return w(i)||in?n:Math.round(i)}(0,t,255)}function V(t){return function(t,i,n){return w(i)||in?n:Math.round(1e4*i)/1e4}(0,t,1)}function z(t){(t=t.toLowerCase())in L&&(t=L[t]);var i,n,s=(i=t,null!==(n=S.re.exec(i))?S.parse(n):null);if(null!==s)return s;var h=function(t){var i=x.re.exec(t);return null!==i?x.parse(i):null}(t);if(null!==h)return h;var r=function(t){var i=N.re.exec(t);return null!==i?N.parse(i):null}(t);if(null!==r)return r;var e=function(t){var i=D.re.exec(t);return null!==i?D.parse(i):null}(t);return null!==e?[e[0],e[1],e[2]]:null}function F(t){var i=z(t);if(null!==i)return i;throw new Error("Passed color string "+t+" does not match any of the known color representations")}function P(t,i){if(i<0||i>255)throw new Error("invalid threshold value, valid values are [0, 255]");return function(t){return.199*t[0]+.687*t[1]+.114*t[2]}(t)>=i?"white":"black"}function O(t){return function(t){return 0===t.indexOf("#")}(t)?t:(n=F(t),s=1,"rgba("+(i=[n[0],n[1],n[2],V(s)])[0]+", "+i[1]+", "+i[2]+", "+i[3]+")");var i,n,s}function I(t){return"black"===P(F(t),160)?"white":"black"}function R(t,i,n,s,h,r){t.fillRect(i,n,r,h),t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+h-r,s-2*r,r),t.fillRect(i+s-r,n,r,h)}function W(t,i,n){t.save(),t.scale(i,i),n(),t.restore()}function j(t,i,n,s,h,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,n,s,h),t.restore()}!function(t){t.re=/^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])$/,t.parse=function(t){return[B(parseInt(t[1]+t[1],16)),B(parseInt(t[2]+t[2],16)),B(parseInt(t[3]+t[3],16))]}}(N||(N={})),function(t){t.re=/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,t.parse=function(t){return[B(parseInt(t[1],16)),B(parseInt(t[2],16)),B(parseInt(t[3],16))]}}(x||(x={})),function(t){t.re=/^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/,t.parse=function(t){return[B(parseInt(t[1],10)),B(parseInt(t[2],10)),B(parseInt(t[3],10))]}}(S||(S={})),function(t){t.re=/^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?[\d]{0,10}(?:\.\d+)?)\s*\)$/,t.parse=function(t){return[B(parseInt(t[1],10)),B(parseInt(t[2],10)),B(parseInt(t[3],10)),V(parseFloat(t[4]))]}}(D||(D={}));var U,q=function(){function t(t,i){this.v(t,i)}return t.prototype.v=function(t,i){this.G=t,this.pt=i},t.prototype.s=function(t,i,n,s,h,r){if(this.G.tt){t.font=i.gt;var e=this.G.yt?i.kt:0,u=i.Nt,o=i.xt,a=i.St,f=i.Dt,l=i.Ct,c=this.G.Tt,v=Math.ceil(n.Et(t,c)),_=i.At,d=i.Lt+o+a,w=Math.ceil(.5*d),M=u+v+f+l+e,b=this.pt.Bt;this.pt.Vt&&(b=this.pt.Vt);var m,p,g=(b=Math.round(b))-w,y=g+d,k="right"===h,N=k?s:0,x=Math.ceil(s*r),S=N;if(t.fillStyle=O(this.pt.zt),t.lineWidth=1,t.lineCap="butt",c){k?(m=N-e,p=(S=N-M)+l):(S=N+M,m=N+e,p=N+u+e+f);var D=Math.max(1,Math.floor(r)),C=Math.max(1,Math.floor(u*r)),T=k?x:0,E=Math.round(g*r),A=Math.round(S*r),L=Math.round(b*r)-Math.floor(.5*r),B=L+D+(L-E),V=Math.round(m*r);t.save(),t.beginPath(),t.moveTo(T,E),t.lineTo(A,E),t.lineTo(A,B),t.lineTo(T,B),t.fill(),t.fillStyle=this.G.Ft,t.fillRect(k?x-C:0,E,C,B-E),this.G.yt&&(t.fillStyle=this.pt.et,t.fillRect(T,L,V-T,D)),t.textAlign="left",t.fillStyle=this.pt.et,W(t,r,(function(){t.fillText(c,p,y-a-_)})),t.restore()}}},t.prototype.wt=function(t,i){return this.G.tt?t.Lt+t.xt+t.St:0},t}(),H=function(){function t(t){this.Pt={Bt:0,et:"#FFF",zt:"#000"},this.Ot={Tt:"",tt:!1,yt:!0,Ft:""},this.It={Tt:"",tt:!1,yt:!1,Ft:""},this.T=!0,this.Rt=new(t||q)(this.Ot,this.Pt),this.Wt=new(t||q)(this.It,this.Pt)}return t.prototype.Tt=function(){return this.Ot.Tt},t.prototype.zt=function(){return this.Pt.zt},t.prototype.et=function(){return I(this.zt())},t.prototype.Bt=function(){return this.jt(),this.Pt.Bt},t.prototype.B=function(){this.T=!0},t.prototype.wt=function(t,i){return void 0===i&&(i=!1),Math.max(this.Rt.wt(t,i),this.Wt.wt(t,i))},t.prototype.Ut=function(){return this.Pt.Vt||0},t.prototype.qt=function(t){this.Pt.Vt=t},t.prototype.Ht=function(){return this.jt(),this.Ot.tt||this.It.tt},t.prototype.Yt=function(){return this.jt(),this.Ot.tt},t.prototype.Kt=function(){return this.jt(),this.It.tt},t.prototype.I=function(){return this.jt(),this.Rt.v(this.Ot,this.Pt),this.Wt.v(this.It,this.Pt),this.Rt},t.prototype.$t=function(){return this.jt(),this.Rt.v(this.Ot,this.Pt),this.Wt.v(this.It,this.Pt),this.Wt},t.prototype.jt=function(){this.T&&(this.Xt(this.Ot,this.It,this.Pt),this.T=!1)},t}(),Y=function(t){function i(i,n,s){var h=t.call(this)||this;return h.ft=i,h.Zt=n,h.Jt=s,h}return r(i,t),i.prototype.Xt=function(t,i,n){t.tt=!1;var s=this.ft.O().horzLine;if(s.labelVisible){var h=this.Zt.q();if(this.ft.tt()&&!this.Zt.Gt()&&null!==h){n.zt=s.labelBackgroundColor,n.et=I(s.labelBackgroundColor);var r=this.Jt(this.Zt);n.Bt=r.Bt,t.Tt=this.Zt.Qt(r.P,h),t.tt=!0}}},i}(H),K=/[1-9]/g,$=function(){function t(){this.G=null}return t.prototype.v=function(t){this.G=t},t.prototype.s=function(t,i,n){var s=this;if(null!==this.G&&!1!==this.G.tt&&0!==this.G.Tt.length){t.font=i.gt;var h=Math.round(i.ti.Et(t,this.G.Tt,K));if(!(h<=0)){t.save();var r=i.ii,e=h+2*r,u=e/2,o=this.G.dt,a=this.G.Bt,l=Math.floor(a-u)+.5;l<0?(a+=Math.abs(0-l),l=Math.floor(a-u)+.5):l+e>o&&(a-=Math.abs(o-(l+e)),l=Math.floor(a-u)+.5);var c=l+e,v=0+i.Nt+i.xt+i.Lt+i.St;t.fillStyle=this.G.zt;var _=Math.round(l*n),d=Math.round(0*n),w=Math.round(c*n),M=Math.round(v*n);t.fillRect(_,d,w-_,M-d);var b=Math.round(this.G.Bt*n),m=d,p=Math.round((m+i.Nt+i.kt)*n);t.fillStyle=this.G.et;var g=Math.max(1,Math.floor(n)),y=Math.floor(.5*n);t.fillRect(b-y,m,g,p-m);var k=v-i.At-i.St;t.textAlign="left",t.fillStyle=this.G.et,W(t,n,(function(){t.fillText(f(s.G).Tt,l+r,k)})),t.restore()}}},t}(),X=function(t){function i(i,n,s){var h=t.call(this)||this;return h.T=!0,h.at=new $,h.ot={tt:!1,zt:"#4c525e",et:"white",Tt:"",dt:0,Bt:NaN},h.L=i,h.ni=n,h.Jt=s,h}return r(i,t),i.prototype.B=function(){this.T=!0},i.prototype.I=function(){return this.T&&(this.R(),this.T=!1),this.at.v(this.ot),this.at},i.prototype.R=function(){var t=this.ot;t.tt=!1;var i=this.L.O().vertLine;if(i.labelVisible){var n=this.ni.j();if(!n.Gt()){var s=n.si(this.L.W());t.dt=n.dt();var h=this.Jt();h.F&&(t.Bt=h.Bt,t.Tt=n.hi(f(s)),t.tt=!0,t.zt=i.labelBackgroundColor,t.et=I(i.labelBackgroundColor))}}},i}(function(){function t(){this.ri="",this.ei="#585858",this.ui=0}return t.prototype.Tt=function(){return this.ri},t.prototype.zt=function(){return this.ei},t.prototype.et=function(){return"black"===P(F(this.ei),150)?"white":"black"},t.prototype.Bt=function(){return this.ui},t}()),Z=function(){function t(){this.oi=null,this.ai=0}return t.prototype.fi=function(){return this.ai},t.prototype.li=function(t){this.ai=t},t.prototype.X=function(){return this.oi},t.prototype.ci=function(t){this.oi=t},t.prototype.vi=function(t,i){return[]},t.prototype._i=function(t){return[]},t.prototype.di=function(){return[]},t}();!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet"}(U||(U={}));var J=function(t){function i(i,n){var s=t.call(this)||this;s.wi=null,s.Mi=NaN,s.bi=0,s.mi=!0,s.pi=new Map,s.gi=!1,s.yi=NaN,s.ki=NaN,s.Ni=NaN,s.xi=NaN,s.ni=i,s.Si=n,s.Di=new T(i,s);var h,r;s.Ci=(h=function(){return s.Mi},r=function(){return s.ki},function(t){var i=r(),n=h();if(t===f(s.wi).Ti())return{P:n,Bt:i};var e=f(t.q());return{P:t.Ei(i,e),Bt:i}});var e=function(t,i){return function(){return{F:s.ni.j().si(t()),Bt:i()}}}((function(){return s.bi}),(function(){return s.Mt()}));return s.Ai=new X(s,i,e),s.Li=new A(s),s}return r(i,t),i.prototype.Bi=function(){return this.bi},i.prototype.O=function(){return this.Si},i.prototype.Vi=function(t,i){this.Ni=t,this.xi=i},i.prototype.zi=function(){this.Ni=NaN,this.xi=NaN},i.prototype.Fi=function(){return this.Ni},i.prototype.Pi=function(){return this.xi},i.prototype.Oi=function(t,i,n){this.gi||(this.gi=!0),this.mi=!0,this.Ii(t,i,n)},i.prototype.W=function(){return this.bi},i.prototype.Mt=function(){return this.yi},i.prototype.bt=function(){return this.ki},i.prototype.tt=function(){return this.mi},i.prototype.Ri=function(){this.mi=!1,this.Wi(),this.Mi=NaN,this.yi=NaN,this.ki=NaN,this.wi=null,this.zi()},i.prototype._i=function(t){return null!==this.wi?[this.Li,this.Di]:[]},i.prototype.vt=function(t){return t===this.wi&&this.Si.horzLine.visible},i.prototype._t=function(){return this.Si.vertLine.visible},i.prototype.vi=function(t,i){this.mi&&this.wi===t||this.pi.clear();var n=[];return this.wi===t&&n.push(this.ji(this.pi,i,this.Ci)),n},i.prototype.di=function(){return this.mi?[this.Ai]:[]},i.prototype.lt=function(){return this.wi},i.prototype.Ui=function(){this.pi.forEach((function(t){return t.B()})),this.Ai.B(),this.Di.B()},i.prototype.qi=function(t){return t&&!t.Ti().Gt()?t.Ti():null},i.prototype.Ii=function(t,i,n){this.Hi(t,i,n)&&this.Ui()},i.prototype.Hi=function(t,i,n){var s=this.yi,h=this.ki,r=this.Mi,e=this.bi,u=this.wi,o=this.qi(n);this.bi=t,this.yi=isNaN(t)?NaN:this.ni.j().J(t),this.wi=n;var a=null!==o?o.q():null;return null!==o&&null!==a?(this.Mi=i,this.ki=o.$(i,a)):(this.Mi=NaN,this.ki=NaN),s!==this.yi||h!==this.ki||e!==this.bi||r!==this.Mi||u!==this.wi},i.prototype.Wi=function(){var t=this.ni.V().map((function(t){return t.Ki().Yi()})).filter(m),i=0===t.length?null:Math.max.apply(Math,t);this.bi=null!==i?i:NaN},i.prototype.ji=function(t,i,n){var s=t.get(i);return void 0===s&&(s=new Y(this,i,n),t.set(i,s)),s},i}(Z),G=".",Q="'";function tt(t,i){if(!v(t))return"n/a";if(!_(i))throw new TypeError("invalid length");if(i<0||i>16)throw new TypeError("invalid length");if(0===i)return t.toString();return("0000000000000000"+t.toString()).slice(-i)}var it=function(){function t(t,i,n,s){if(i||(i=1),v(t)&&_(t)||(t=100),t<0)throw new TypeError("invalid base");this.Zt=t,this.$i=i,this.Xi=s,n&&void 0!==s&&s>0&&2!==s&&4!==s&&8!==s||(this.Zi=n,this.Ji())}return t.prototype.Gi=function(t){var i=t<0?"−":"";return t=Math.abs(t),this.Zi?i+this.Qi(t):i+this.tn(t)},t.prototype.Ji=function(){if(this.in=0,this.Zt>0&&this.$i>0){var t=this.Zt;for(this.Zi&&this.Xi&&(t/=this.Xi);t>1;)t/=10,this.in++}},t.prototype.tn=function(t){var i;i=this.Zi?Math.pow(10,this.in||0):this.Zt/this.$i;var n=Math.floor(t),s="",h=void 0!==this.in?this.in:NaN;if(i>1){var r=+(Math.round(t*i)-n*i).toFixed(this.in);r>=i&&(r-=i,n+=1),s=G+tt(+r.toFixed(this.in)*this.$i,h)}else n=Math.round(n*i)/i,h>0&&(s=G+tt(0,h));return n.toFixed(0)+s},t.prototype.Qi=function(t){var i=this.Zt/this.$i,n=Math.floor(t),s=Math.round(t*i)-n*i;if(s===i&&(s=0,n+=1),!this.in)throw new Error("_fractionalLength is not calculated");var h="";if(this.Xi){var r=s%this.Xi,e=tt(s=(s-r)/this.Xi,this.in),u=2===this.Xi?["0","5"][r]:8===this.Xi?["0","1","2","3","4","5","6","7"][r]:["0","2","5","7"][r];h=e+Q+u}else h=tt(s*this.$i,this.in);return n.toString()+Q+h},t}(),nt=function(t){function i(i){return void 0===i&&(i=100),t.call(this,i)||this}return r(i,t),i.prototype.Gi=function(i){return t.prototype.Gi.call(this,i)+"%"},i}(it),st=function(){function t(){this.nn=[]}return t.prototype.sn=function(t,i,n){var s={hn:t,rn:i,en:!0===n};this.nn.push(s)},t.prototype.un=function(t){var i=this.nn.findIndex((function(i){return t===i.hn}));i>-1&&this.nn.splice(i,1)},t.prototype.on=function(t){this.nn=this.nn.filter((function(i){return i.rn===t}))},t.prototype.an=function(t,i){var n=u(this.nn);this.nn=this.nn.filter((function(t){return!t.en})),n.forEach((function(n){return n.hn(t,i)}))},t.prototype.fn=function(){return this.nn.length>0},t.prototype.ln=function(){this.nn=[]},t}(),ht=function(){function t(t,i){this.cn=t,this.vn=i}return t.prototype._n=function(t){return null!==t&&(this.cn===t.cn&&this.vn===t.vn)},t.prototype.dn=function(){return new t(this.cn,this.vn)},t.prototype.wn=function(){return this.cn},t.prototype.Mn=function(t){this.cn=t},t.prototype.bn=function(){return this.vn},t.prototype.mn=function(t){this.vn=t},t.prototype.pn=function(){return this.vn-this.cn},t.prototype.Gt=function(){return this.vn===this.cn||Number.isNaN(this.vn)||Number.isNaN(this.cn)},t.prototype.gn=function(i){return null===i?this:new t(Math.min(this.wn(),i.wn()),Math.max(this.bn(),i.bn()))},t.prototype.yn=function(t,i){this.cn=Math.min(this.cn,t),this.vn=Math.max(this.vn,i)},t.prototype.kn=function(t,i){this.cn=t,this.vn=i},t.prototype.Nn=function(t){if(v(t)&&0!==this.vn-this.cn){var i=.5*(this.vn+this.cn),n=this.vn-i,s=this.cn-i;n*=t,s*=t,this.vn=i+n,this.cn=i+s}},t.prototype.xn=function(t){v(t)&&(this.vn+=t,this.cn+=t)},t.prototype.Sn=function(t){return t.wn()>this.cn&&t.bn()1;i/=10)if(i%10!=0)return!1;return!0}(this.Tn))this.An=[2,2.5,2];else{this.An=[];for(var n=this.Tn;1!==n;){if(n%2==0)this.An.push(2),n/=2;else{if(n%5!=0)throw new Error("unexpected base");this.An.push(2),this.An.push(2.5),n/=5}if(this.An.length>100)throw new Error("something wrong with base")}}}return t.prototype.Ln=function(t,i,n){for(var s,h,r,e=0===this.Tn?0:1/this.Tn,u=Math.pow(10,Math.max(0,Math.ceil(ut(t-i)))),o=0,a=this.En[0];;){var f=et(u,e,1e-9)&&u>e+1e-9,l=et(u,n*a,1e-9),c=et(u,1,1e-9);if(!(f&&l&&c))break;u/=a,a=this.En[++o%this.En.length]}if(u<=e+1e-9&&(u=e),u=Math.max(1,u),this.An.length>0&&(s=u,h=1,r=1e-9,Math.abs(s-h)e+1e-9;)u/=a,a=this.An[++o%this.An.length];return u},t}(),mt=function(){function t(t,i,n,s){this.Bn=[],this.Zt=t,this.Tn=i,this.Vn=n,this.zn=s}return t.prototype.Fn=function(t){if(t<0)throw new Error("base < 0");this.Tn=t},t.prototype.Ln=function(t,i){if(t=a?1:-1,v=null,_=0,d=o-(l+=l<0?f:0);d>a;d-=f){var w=this.zn(d,i,!0);null!==v&&Math.abs(w-v)u||(_1)throw new Error("Invalid top margin - expect value between 0 and 1, given="+i);if(n<0||n>1||i+n>1)throw new Error("Invalid bottom margin - expect value between 0 and 1, given="+n);if(i+n>1)throw new Error("Invalid margins - sum of margins must be less than 1, given="+(i+n));this.ks(),this.us=null}},t.prototype.Ns=function(){return this.ls},t.prototype.xs=function(){return this.Si.autoScale},t.prototype.Un=function(){return 1===this.Si.mode},t.prototype.Ss=function(){return 2===this.Si.mode},t.prototype.Ds=function(){return 3===this.Si.mode},t.prototype.ys=function(){return{Cs:this.Si.autoScale,Ts:this.Si.invertScale,ys:this.Si.mode}},t.prototype.gs=function(t){var i=this.ys(),n=null;void 0!==t.Cs&&(this.Si.autoScale=t.Cs),void 0!==t.ys&&(this.Si.mode=t.ys,2!==t.ys&&3!==t.ys||(this.Si.autoScale=!0),this.Jn.Gn=!1),1===i.ys&&t.ys!==i.ys&&(!function(t){if(null===t)return!1;var i=dt(t.wn()),n=dt(t.bn());return isFinite(i)&&isFinite(n)}(this.$n)?this.Si.autoScale=!0:null!==(n=function(t){if(null===t)return null;var i=dt(t.wn()),n=dt(t.bn());return new ht(i,n)}(this.$n))&&this.Es(n)),1===t.ys&&t.ys!==i.ys&&null!==(n=wt(this.$n))&&this.Es(n);var s=i.ys!==this.Si.mode;s&&(2===i.ys||this.Ss())&&this.ps(),s&&(3===i.ys||this.Ds())&&this.ps(),void 0!==t.Ts&&i.Ts!==t.Ts&&(this.Si.invertScale=t.Ts,this.As()),this.hs.an(i,this.ys())},t.prototype.Ls=function(){return this.hs},t.prototype.Lt=function(){return this.vs.fontSize},t.prototype.wt=function(){return this.Hn},t.prototype.Bs=function(t){this.Hn!==t&&(this.Hn=t,this.ks(),this.us=null)},t.prototype.Vs=function(){if(this.Yn)return this.Yn;var t=this.wt()-this.zs()-this.Fs();return this.Yn=t,t},t.prototype.Ps=function(){return this.Kn},t.prototype.Os=function(){return this.Is(),this.$n},t.prototype.Rs=function(){return this.Zn},t.prototype.Es=function(t,i,n){var s=this.$n;(i||null===s&&null!==t||null!==s&&!s._n(t))&&(this.us=null,this.$n=t,n||this.Zn.an(s,t))},t.prototype.Gt=function(){return this.Is(),0===this.Hn||!this.$n||this.$n.Gt()},t.prototype.Ws=function(t){return this.Ts()?t:this.wt()-1-t},t.prototype.$=function(t,i){return this.Ss()?t=ft(t,i):this.Ds()&&(t=ct(t,i)),this.Ms(t,i)},t.prototype.js=function(t,i,n){this.Is();for(var s=this.Fs(),h=f(this.Os()),r=h.wn(),e=h.bn(),u=this.Vs()-1,o=this.Ts(),a=u/(e-r),l=void 0===n?0:n.from,c=void 0===n?t.length:n.to,v=this.Us(),_=l;_= left"),this.jh=t,this.Uh=i}return t.prototype.ph=function(){return this.jh},t.prototype.gh=function(){return this.Uh},t.prototype.qh=function(){return this.Uh-this.jh+1},t.prototype.Hh=function(t){return this.jh<=t&&t<=this.Uh},t.prototype._n=function(t){return this.jh===t.ph()&&this.Uh===t.gh()},t}();function Vt(t,i){return null===t||null===i?t===i:t._n(i)}function zt(t,i){return t.Bi-i.Bi}var Ft,Pt=function(){function t(){this.Yh=1/0,this.Kh=-1/0,this.$h=new Map,this.Xh=[],this.Zh=new st,this.Fh=null,this.Jh=NaN}return t.prototype.Gh=function(){this.$h.clear(),this.Xh=[],this.Yh=1/0,this.Kh=-1/0,this.Fh=null,this.Zh.an()},t.prototype.gn=function(t){for(var i=this.Xh,n={},s=0,h=t;se&&(this.Yh=e),this.Kh2;){if(1e3*a(this.$h.get(i)).F.timestamp===t)return i;if(1e3*a(this.$h.get(n)).F.timestamp===t)return n;var s=Math.round((i+n)/2);1e3*a(this.$h.get(s)).F.timestamp>t?n=s:i=s}return i},t.prototype.sr=function(t,i){var n=Math.ceil(i/t);if(this.Jh===n&&this.Fh)return this.Fh;this.Jh=n;for(var s=[],h=this.Xh.length;h--;)if(this.Xh[h]){var r=s;s=[];for(var e=r.length,u=0,o=a(this.Xh[h]),f=o.length,l=1/0,c=-1/0,v=0;v=n&&d-c>=n&&(s.push(_),c=d)}for(;u=this.Kh&&this.Kh--,this.Khthis.hr.length){s=e-this.hr.length;for(var u=r;uthis.hr[this.hr.length-1].timestamp)return i?this.hr.length-1:null;for(var n=0;n=i[n])return n;var s=0,h=i[s];if(ts+1;){var r=s+n>>1,e=i[r];if(e.timestamp>t.timestamp)n=r;else{if(!(e.timestamp=1,o=u?t:s+(t-s)*e;n.Ir(o),u||setTimeout(r,20)};r()},t.prototype.B=function(t,i,n){if(this.Nr=!0,i.length>0){var s=this.pr.er();this.pr.gn(t,i),this.Lr<0&&this.pr.er()===s+1&&(this.Lr-=1)}this.gr.gn(n),this.Jr()},t.prototype.Me=function(){return this.xr},t.prototype.be=function(){return this.Sr},t.prototype.me=function(){return this.Dr},t.prototype.Gr=function(){return this.mr||0},t.prototype.pe=function(t){var i=t.qh();this.Xr(this.br/i),this.Lr=t.gh()-this.Gr(),this.Jr(),this.Nr=!0,this.ni.ne(),this.ni.se()},t.prototype.ge=function(){var t=this.pr.ur(),i=this.pr.Yi();null!==t&&null!==i&&this.pe(new Bt(t,i+this.Si.rightOffset))},t.prototype.ye=function(t){var i=new Bt(t.from,t.to);this.pe(i)},t.prototype.hi=function(t){return void 0!==this._s.timeFormatter?this._s.timeFormatter(t.businessDay||t.timestamp):this.ke.Gi(new Date(1e3*t.timestamp))},t.prototype.Ne=function(t){return(this.br+1-t)/this.Br},t.prototype.ie=function(t){var i=this.Ne(t),n=this.Gr()+this.Lr-i;return Math.round(1e6*n)/1e6},t.prototype.Xr=function(t){var i=this.Br;this.Br=t,this.Zr(),i!==this.Br&&(this.Nr=!0,this.xe())},t.prototype.Wr=function(){if(this.Nr)if(this.Nr=!1,this.Gt())this.Se(It.Mr());else{var t=this.Gr(),i=this.br/this.Br,n=this.Lr+t,s=new Bt(n-i+1,n);this.Se(new It(s))}},t.prototype.Zr=function(){if(this.Br<.5&&(this.Br=.5,this.Nr=!0),0!==this.br){var t=.5*this.br;this.Br>t&&(this.Br=t,this.Nr=!0)}},t.prototype.Jr=function(){var t=this.De();this.Lr>t&&(this.Lr=t,this.Nr=!0);var i=this.Ce();null!==i&&this.Lr=1e-15&&t<1?t.toFixed(this.su).replace(/\.?0+$/,""):String(t)).replace(/(\.[1-9]*)0+$/,(function(t,i){return i}))},t}();function Jt(t,i,n,s){if(0!==i.length){var h=i[s.from].m,r=i[s.from].p;t.moveTo(h,r);for(var e=s.from+1;ethis.l._.from&&(t.lineTo(this.l.M[this.l._.to-1].m,this.l.ru),t.lineTo(this.l.M[this.l._.from].m,this.l.ru)),t.closePath();var i=t.createLinearGradient(0,0,0,this.l.ru);i.addColorStop(0,this.l.uu),i.addColorStop(1,this.l.ou),t.fillStyle=i,t.fill()}},i}(y),Qt=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.l=null,i}return r(i,t),i.prototype.v=function(t){this.l=t},i.prototype.h=function(t){null!==this.l&&0!==this.l.M.length&&null!==this.l._&&(t.lineCap="square",t.lineWidth=this.l.rt,n(t,this.l.ut),t.strokeStyle=this.l.N,t.lineJoin="miter",t.beginPath(),Jt(t,this.l.M,this.l.eu,this.l._),t.stroke())},i}(y);function ti(t,i,n,s,h){void 0===s&&(s=0),void 0===h&&(h=t.length);for(var r=h-s;0>1,u=s+e;n(t[u],i)?(s=u+1,r-=e+1):r=e}return s}function ii(t,i,n,s,h){void 0===s&&(s=0),void 0===h&&(h=t.length);for(var r=h-s;0>1,u=s+e;n(i,t[u])?r=e:(s=u+1,r-=e+1)}return s}function ni(t,i){return t.F0&&r=s&&(u=r-1),e>0&&e=2)Math.floor(i)%2!=this.Cu%2&&this.Cu--;this.Tu=this.G.Eu?Math.min(this.Cu,Math.floor(i)):this.Cu;for(var h=null,r=this.G._.from;rc+_-1&&(M=(b=c+_-1)-f+1),t.fillRect(w,M,a-w,b-M+1)}var m=o+d,p=Math.max(c,Math.round(e.$s*i)-u),g=p+f-1;g>c+_-1&&(p=(g=c+_-1)-f+1),t.fillRect(l+1,p,m-l,g-p+1)}}}},t}(),ai=function(t){function i(i,n){return t.call(this,i,n,!1)||this}return r(i,t),i.prototype.gu=function(t,i,n){i.Qr(this.lu,p(this.cu)),t.qs(this.lu,n,p(this.cu))},i.prototype.Lu=function(t,i,n){return{F:t,open:i.Z[0],high:i.Z[1],low:i.Z[2],close:i.Z[3],m:NaN,Hs:NaN,Ys:NaN,Ks:NaN,$s:NaN}},i.prototype.Mu=function(){var t=this,i=[],n=this.vu.K();this.vu.Ki().Nu((function(s,h){var r=t.xu(s,h,n);return i.push(r),!1})),this.lu=i},i}(ri),fi=function(t){function i(i,n){var s=t.call(this,i,n)||this;return s.at=new oi,s}return r(i,t),i.prototype.I=function(t,i){this.wu();var n=this.vu.O(),s={Ki:this.lu,he:this._u.j().he(),Au:n.openVisible,Eu:n.thinBars,_:this.cu};return this.at.v(s),this.at},i.prototype.xu=function(t,i,n){return e(e({},this.Lu(t,i,n)),{et:n.Y(t).H})},i}(ai),li=function(){function t(){this.G=null,this.Cu=0}return t.prototype.v=function(t){this.G=t},t.prototype.s=function(t,i,n,s){if(null!==this.G&&0!==this.G.Ki.length&&null!==this.G._){if(this.Cu=function(t,i){var n=Math.floor(.8*t*i),s=Math.floor(t*i),h=Math.min(n,s-1);return Math.max(1,h)}(this.G.he,i),this.Cu>=2)Math.floor(i)%2!=this.Cu%2&&this.Cu--;var h=this.G.Ki;this.G.Bu&&this.Vu(t,h,this.G._,i),this.G.zu&&this.Fu(t,h,this.G._,this.G.he,i);var r=this.Pu(i);(!this.G.zu||this.Cu>2*r)&&this.Ou(t,h,this.G._,i)}},t.prototype.Vu=function(t,i,n,s){if(null!==this.G){var h="",r=Math.min(Math.floor(s),Math.floor(this.G.he*s));r=Math.min(r,this.Cu);for(var e=Math.floor(.5*r),u=n.from;u2*e?R(t,a,l,f-a+1,c-l+1,e):t.fillRect(a,l,f-a+1,c-l+1)}},t.prototype.Ou=function(t,i,n,s){if(null!==this.G)for(var h="",r=this.Pu(s),e=n.from;ea)){if(u.et!==h){var c=u.et;t.fillStyle=c,h=c}t.fillRect(f,o,l-f+1,a-o+1)}}},t}(),ci=function(t){function i(i,n){var s=t.call(this,i,n)||this;return s.at=new li,s}return r(i,t),i.prototype.I=function(t,i){this.wu();var n=this.vu.O(),s={Ki:this.lu,he:this._u.j().he(),Bu:n.wickVisible,zu:n.borderVisible,_:this.cu};return this.at.v(s),this.at},i.prototype.xu=function(t,i,n){var s=n.Y(t);return e(e({},this.Lu(t,i,n)),{et:s.H,Iu:s.Ru,Ft:s.Wu})},i}(ai),vi=function(){function t(){this.G=null,this.ju=[]}return t.prototype.v=function(t){this.G=t,this.ju=[]},t.prototype.s=function(t,i,n,s){if(null!==this.G&&0!==this.G.M.length&&null!==this.G._){this.ju.length||this.Uu(i);for(var h=Math.round(this.G.qu*i),r=Math.max(1,Math.floor(i)),e=this.G._.from;ef.Yu?f.gh=a.ph-i-1:a.ph=f.gh+i+1))}var l=Math.ceil(this.G.he*t);for(s=this.G._.from;s0&&l<4)for(s=this.G._.from;sl&&(a.Hu>a.Yu?a.gh-=1:a.ph+=1)}}else this.ju=[]},t}();function _i(t){return{M:[],he:t,qu:NaN,_:null}}var di=function(t){function i(i,n){var s=t.call(this,i,n,!1)||this;return s.S=new g,s.Ku=_i(0),s.$u=new Int32Array(0),s.at=new vi,s}return r(i,t),i.prototype.I=function(t,i){return this.wu(),this.S},i.prototype.Mu=function(){var t=this,i=this._u.j().he(),n=this.vu.Xu();this.Ku=_i(i);var s=this.vu.ku();this.$u=new Int32Array(this.vu.Ki().er());var h=0,r=0,e=0,u=this.vu.O().color;this.vu.Ki().Nu((function(i,o){var a=s(o.Z),f=o.Z[4],l=function(t,i,n){return{F:t,P:i,m:NaN,p:NaN,et:n}}(i,a,null!=f?n.Zu(f):u),c=null==f?0:f+1;return++rMath.ceil(this.G.wt*i))){var u=Math.ceil(this.G.dt*i);t.lineCap="butt",t.strokeStyle=this.G.et,t.lineWidth=Math.floor(this.G.rt*i),n(t,this.G.ut),s(t,e,0,u)}}},t}(),yi=function(){function t(t){this.uo={dt:0,wt:0,p:0,et:"rgba(0, 0, 0, 0)",rt:1,ut:0,tt:!1},this.oo=new gi,this.T=!0,this.vu=t,this._u=t.ct(),this.oo.v(this.uo)}return t.prototype.B=function(){this.T=!0},t.prototype.I=function(t,i){return this.T&&(this.ao(t,i),this.T=!1),this.oo},t}(),ki=function(t){function i(i){return t.call(this,i)||this}return r(i,t),i.prototype.ao=function(t,i){this.uo.tt=!1;var n=this.vu.X(),s=n.ys().ys;if(2===s||3===s){var h=this.vu.O();if(h.baseLineVisible){var r=this.vu.q();null!==r&&(this.uo.tt=!0,this.uo.p=n.$(r.Z,r.Z),this.uo.dt=i,this.uo.wt=t,this.uo.et=h.baseLineColor,this.uo.rt=h.baseLineWidth,this.uo.ut=h.baseLineStyle)}}},i}(yi);function Ni(t,i){return at(Math.min(Math.max(t,12),30)*i)}function xi(t,i){switch(t){case"arrowDown":case"arrowUp":return Ni(i,1);case"circle":return Ni(i,.8);case"square":return Ni(i,.7)}}function Si(t){return ot(Ni(t,1))}function Di(t){return Math.max(Ni(t,.1),3)}function Ci(t,i,n,s,h){var r=xi("square",n),e=(r-1)/2,u=t-e,o=i-e;return s>=u&&s<=u+r&&h>=o&&h<=o+r}function Ti(t,i,n,s,h){var r=(xi("arrowUp",h)-1)/2,e=(at(h/2)-1)/2;i.beginPath(),t?(i.moveTo(n-r,s),i.lineTo(n,s-r),i.lineTo(n+r,s),i.lineTo(n+e,s),i.lineTo(n+e,s+r),i.lineTo(n-e,s+r),i.lineTo(n-e,s)):(i.moveTo(n-r,s),i.lineTo(n,s+r),i.lineTo(n+r,s),i.lineTo(n+e,s),i.lineTo(n+e,s-r),i.lineTo(n-e,s-r),i.lineTo(n-e,s)),i.fill()}function Ei(t,i,n,s,h,r){return Ci(i,n,s,h,r)}var Ai=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.G=null,i.Qu=new bi,i.Le=-1,i.Be="",i.fo="",i}return r(i,t),i.prototype.v=function(t){this.G=t},i.prototype.io=function(t,i){this.Le===t&&this.Be===i||(this.Le=t,this.Be=i,this.fo=Ut(t,i),this.Qu.Gh())},i.prototype.lo=function(t,i){if(null===this.G||null===this.G._)return null;for(var n=this.G._.from;n=t&&h<=t+n&&r>=i-e&&r<=i+e}(t.m,t.Tt.p,t.Tt.dt,t.Tt.wt,i,n))||function(t,i,n){if(0===t.er)return!1;switch(t.wo){case"arrowDown":case"arrowUp":return Ei(0,t.m,t.p,t.er,i,n);case"circle":return function(t,i,n,s,h){var r=2+xi("circle",n)/2,e=t-s,u=i-h;return Math.sqrt(e*e+u*u)<=r}(t.m,t.p,t.er,i,n);case"square":return Ci(t.m,t.p,t.er,i,n)}t.wo}(t,i,n)}function Vi(t,i,n,s,h,r,e,u,o){var a=v(n)?n:n.close,f=v(n)?n:n.high,l=v(n)?n:n.low,c=v(i.size)?Math.max(i.size,0):1,_=Si(u.he())*c,d=_/2;switch(t.er=_,i.position){case"inBar":return t.p=e.$(a,o),void(void 0!==t.Tt&&(t.Tt.p=t.p+d+r+.6*h));case"aboveBar":return t.p=e.$(f,o)-d-s.Mo,void 0!==t.Tt&&(t.Tt.p=t.p-d-.6*h,s.Mo+=1.2*h),void(s.Mo+=_+r);case"belowBar":return t.p=e.$(l,o)+d+s.bo,void 0!==t.Tt&&(t.Tt.p=t.p+d+r+.6*h,s.bo+=1.2*h),void(s.bo+=_+r)}i.position}var zi=function(){function t(t,i){this.T=!0,this.mo=!0,this.po=!0,this.yo=null,this.at=new Ai,this.ko=t,this.ni=i,this.G={M:[],_:null}}return t.prototype.B=function(t){this.T=!0,this.po=!0,"data"===t&&(this.mo=!0)},t.prototype.I=function(t,i,n){this.T&&this.wu();var s=this.ni.O().layout;return this.at.io(s.fontSize,s.fontFamily),this.at.v(this.G),this.at},t.prototype.No=function(){if(this.po){if(this.ko.xo().length>0){var t=this.ni.j().he(),i=Di(t),n=1.5*Si(t)+2*i;this.yo={above:n,below:n}}else this.yo=null;this.po=!1}return this.yo},t.prototype.wu=function(){var t=this.ko.X(),i=this.ni.j(),n=this.ko.xo();this.mo&&(this.G.M=n.map((function(t){return{F:t.time,m:0,p:0,er:0,wo:t.shape,et:t.color,vo:t.vo,_o:t.id,Tt:void 0}})),this.mo=!1);var s=this.ni.O().layout;this.G._=null;var h=i.Rr();if(null!==h){var r=this.ko.q();if(null!==r&&0!==this.G.M.length){var e=NaN,u=Di(i.he()),o={Mo:u,bo:u};this.G._=hi(this.G.M,h,!0);for(var a=this.G._.from;a0&&(l.Tt={do:f.text,p:0,dt:0,wt:0});var c=this.ko.So(f.time);null!==c&&Vi(l,f,c,o,s.fontSize,u,t,i,r.Z)}this.T=!1}}},t}(),Fi=function(t){function i(i){return t.call(this,i)||this}return r(i,t),i.prototype.ao=function(t,i){var n=this.uo;n.tt=!1;var s=this.vu.O();if(s.priceLineVisible){var h=this.vu.Do(void 0,0===s.priceLineSource);h.Co||(n.tt=!0,n.p=h.Bt,n.et=this.vu.To(h.et),n.dt=i,n.wt=t,n.rt=s.priceLineWidth,n.ut=s.priceLineStyle)}},i}(yi),Pi=function(t){function i(i,n){var s=t.call(this)||this;return s.ft=i,s.G=n,s}return r(i,t),i.prototype.Eo=function(){return this.ft},i.prototype.Ao=function(){return this.G},i.prototype.Xt=function(t,i,n){t.tt=!1,i.tt=!1;var s=this.ft.O(),h=s.lastValueVisible,r=""!==this.ft.Lo(),e=0===s.seriesLastValueMode,u=this.ft.Do(void 0,!1);u.Co||(h&&(t.Tt=this.Bo(u,h,e),t.tt=0!==t.Tt.length),(r||e)&&(i.Tt=this.Vo(u,h,r,e),i.tt=i.Tt.length>0),n.zt=this.ft.To(u.et),n.et=I(n.zt),n.Bt=u.Bt,i.Ft=this.ft.ct().O().layout.backgroundColor,t.Ft=n.zt)},i.prototype.Vo=function(t,i,n,s){var h="",r=this.ft.Lo();return n&&0!==r.length&&(h+=r+" "),i&&s&&(h+=this.ft.X().Ss()?t.zo:t.Fo),h.trim()},i.prototype.Bo=function(t,i,n){return i?n?this.ft.X().Ss()?t.Fo:t.zo:t.Tt:""},i}(H),Oi=function(){function t(t,i){this.$n=t,this.Po=i||null}return t.prototype.Os=function(){return this.$n},t.prototype.yh=function(){return this.Po},t.prototype.Dn=function(){return null===this.$n?null:{priceRange:this.$n.Dn(),margins:this.Po||void 0}},t.Cn=function(i){return null===i?null:new t(ht.Cn(i.priceRange),i.margins)},t}(),Ii=function(t){function i(i,n){var s=t.call(this,i)||this;return s.Oo=n,s}return r(i,t),i.prototype.ao=function(t,i){var n=this.uo;n.tt=!1;var s=this.Oo.Io();if(null!==s){var h=this.Oo.O();n.tt=!0,n.p=s,n.et=h.color,n.dt=i,n.wt=t,n.rt=h.lineWidth,n.ut=h.lineStyle}},i}(yi),Ri=function(t){function i(i,n){var s=t.call(this)||this;return s.ko=i,s.Oo=n,s}return r(i,t),i.prototype.Xt=function(t,i,n){t.tt=!1,i.tt=!1;var s=this.Oo.O();if(s.axisLabelVisible){var h=this.Oo.Io();null!==h&&(t.Tt=this.ko.X().lh(s.price),t.tt=!0,n.zt=s.color,n.et=I(s.color),n.Bt=h)}},i}(H),Wi=function(){function t(t,i){this.ko=t,this.Si=i,this.Ro=new Ii(t,this),this.no=new Ri(t,this)}return t.prototype.ms=function(t){c(this.Si,t),this.B(),this.ko.ct().se()},t.prototype.O=function(){return this.Si},t.prototype.Wo=function(){return this.Ro},t.prototype.jo=function(){return this.no},t.prototype.B=function(){this.Ro.B(),this.no.B()},t.prototype.Io=function(){var t=this.ko,i=t.X();if(t.ct().j().Gt()||i.Gt())return null;var n=t.q();return null===n?null:i.$(this.Si.price,n.Z)},t}(),ji=function(){function t(){this.Uo=0,this.qo=new Map,this.Ho=new Map}return t.prototype.Zu=function(t){return a(this.Ho.get(t))},t.prototype.Yo=function(t){var i=this.qo.get(t);return void 0===i&&(i=this.Uo++,this.qo.set(t,i),this.Ho.set(i,t)),i},t.prototype.rr=function(){this.Uo=0,this.qo.clear(),this.Ho.clear()},t.prototype.er=function(){return this.Ho.size},t}(),Ui=function(t){function i(i){var n=t.call(this)||this;return n.ni=i,n}return r(i,t),i.prototype.ct=function(){return this.ni},i.prototype.Mh=function(){return 0},i.prototype.mh=function(t,i){return null},i}(Z),qi={H:"",Wu:"",Ru:""},Hi=function(){function t(t){this.ko=t}return t.prototype.Y=function(t,i){var n=this.ko.Ko(),s=this.ko.O();switch(n){case"Line":return this.$o(s);case"Area":return this.Xo(s);case"Bar":return this.Zo(s,t,i);case"Candlestick":return this.Jo(s,t,i);case"Histogram":return this.Go(s,t,i)}throw new Error("Unknown chart style")},t.prototype.Zo=function(t,i,n){var s=e({},qi),h=t.upColor,r=t.downColor,u=h,o=r,a=f(this.Qo(i,n)),c=l(a.Z[0])<=l(a.Z[3]);return s.H=c?h:r,s.Wu=c?u:o,s},t.prototype.Jo=function(t,i,n){var s=e({},qi),h=t.upColor,r=t.downColor,u=t.borderUpColor,o=t.borderDownColor,a=t.wickUpColor,c=t.wickDownColor,v=f(this.Qo(i,n)),_=l(v.Z[0])<=l(v.Z[3]);return s.H=_?h:r,s.Wu=_?u:o,s.Ru=_?a:c,s},t.prototype.Xo=function(t){return e(e({},qi),{H:t.lineColor})},t.prototype.$o=function(t){return e(e({},qi),{H:t.color})},t.prototype.Go=function(t,i,n){var s=e({},qi),h=f(this.Qo(i,n)).Z[4];if(null!=h){var r=f(this.ko.Xu());s.H=r.Zu(h)}else s.H=t.color;return s},t.prototype.ta=function(){return this.ko.Ki()},t.prototype.Qo=function(t,i){return void 0!==i?i.Z:this.ta().ar(t)},t}(),Yi=function(){function t(t,i){void 0===t&&(t=null),void 0===i&&(i=null),this.hr=[],this.ia=0,this.na=0,this.sa=!1,this.ha=new Map,this.ra=new Map,this.ea=new Map,this.ua=t||new Map,this.oa=i}return t.prototype.rr=function(){this.hr=[],this.ia=0,this.na=0,this.sa=!1,this.ha.clear(),this.ra.clear(),this.ea.clear()},t.prototype.aa=function(){return this.er()>0?this.hr[this.ia]:null},t.prototype.fa=function(){return this.er()>0?this.hr[this.na-1]:null},t.prototype.ur=function(){return this.er()>0?this.la(this.ia):null},t.prototype.Yi=function(){return this.er()>0?this.la(this.na-1):null},t.prototype.er=function(){return this.na-this.ia},t.prototype.Gt=function(){return 0===this.er()},t.prototype.Hh=function(t){return null!==this.ca(t,0)},t.prototype.ar=function(t){return this.va(t)},t.prototype._a=function(t,i,n){if(this.sa)return!1;var s={Bi:t,Z:n,F:i},h=this.ca(t,0);return this.ra.clear(),this.ea.clear(),null===h?(this.hr.splice(this.da(t),0,s),this.ia=0,this.na=this.hr.length,!0):(this.hr[h]=s,!1)},t.prototype.va=function(t,i,n){void 0===i&&(i=0);var s=this.ca(t,i,n);if(null===s)return null;var h=this.wa(s);return{Bi:this.la(s),F:h.F,Z:h.Z}},t.prototype.Nu=function(t){for(var i=this.ia;ithis.hr[this.hr.length-1].Bi?this.ya(t):1===t.length&&t[0].Bi===this.hr[this.hr.length-1].Bi?(this.ka(t[0]),t[0]):this.Na(t)},t.prototype.xa=function(t){if(this.sa)return null;var i=this.ca(t,1);if(null===i)return null;var n=this.hr.splice(i);return this.na=this.hr.length,this.ha.clear(),this.ra.clear(),this.ea.clear(),n.length>0?n[0]:null},t.prototype.la=function(t){return this.hr[t].Bi},t.prototype.wa=function(t){return this.hr[t]},t.prototype.ca=function(t,i,n){var s=this.Sa(t);if(null===s&&0!==i)switch(i){case-1:return this.Da(t,n);case 1:return this.Ca(t,n);default:throw new TypeError("Unknown search mode")}if(!n||null===s||0===i)return s;switch(i){case-1:return this.Ta(s);case 1:return this.Ea(s);default:throw new TypeError("Unknown search mode")}},t.prototype.Ea=function(t){for(var i=f(this.oa);t=this.ia&&i(this.wa(t).Z);)t-=1;return tthis.ia&&(n-=1);var s=n!==this.na&&this.la(n)t}),this.ia,this.na)},t.prototype.Aa=function(t,i,n){var s=null,h=this.ua.get(n.La);if(void 0===h)throw new Error('Plot "'+n.La+'" is not registered');for(var r=t;rs.Va&&(s.Va=e)))}return s},t.prototype.za=function(t){var i=Math.floor(t.Bi/30);this.ha.forEach((function(t){return t.delete(i)}))},t.prototype.ga=function(t){return o(!this.sa,"collection should not be readonly"),o(0!==t.length,"plotRows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=t.concat(this.hr),this.ia=0,this.na=this.hr.length,t[0]},t.prototype.ya=function(t){return o(!this.sa,"collection should not be readonly"),o(0!==t.length,"plotRows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=this.hr.concat(t),this.ia=0,this.na=this.hr.length,t[0]},t.prototype.ka=function(t){o(!this.Gt(),"plot list should not be empty"),o(this.hr[this.na-1].Bi===t.Bi,"last row index should match new row index"),this.za(t),this.ra.delete(t.Bi),this.ea.delete(t.Bi),this.hr[this.na-1]=t},t.prototype.Na=function(t){return o(0!==t.length,"plot rows should not be empty"),this.ra.clear(),this.ea.clear(),this.ha.clear(),this.hr=function(t,i){var n=function(t,i){var n=t.length,s=i.length,h=n+s,r=0,e=0;for(;ri[e].Bi?e++:(r++,e++,h--);return h}(t,i),s=new Array(n),h=0,r=0,e=t.length,u=i.length,o=0;for(;hi[r].Bi?(s[o]=i[r],r++):(s[o]=i[r],h++,r++),o++;for(;h=0&&r.th(t),null!==r&&(r.Qs(),this.Bf(r)),this.es=null},t.prototype.ro=function(t){return t===this.gf?"left":t===this.kf?"right":"overlay"},t.prototype.Vf=function(){return this.gf},t.prototype.zf=function(){return this.kf},t.prototype.Ff=function(t,i){t.sh(i)},t.prototype.Pf=function(t,i){t.hh(i),this.Ui()},t.prototype.Of=function(t){t.rh()},t.prototype.If=function(t,i){t.eh(i)},t.prototype.Rf=function(t,i){t.uh(i),this.Ui()},t.prototype.Wf=function(t){t.oh()},t.prototype.jf=function(t,i){t.gs({Cs:i}),this.pf.Gt()?t.Es(null):this.Bf(t)},t.prototype.Ui=function(){this.rs.forEach((function(t){t.Ui()}))},t.prototype.Ti=function(){var t=null;return this.ni.O().rightPriceScale.visible&&0!==this.kf.Zs().length?t=this.kf:this.ni.O().leftPriceScale.visible&&0!==this.gf.Zs().length?t=this.gf:0!==this.rs.length&&(t=this.rs[0].X()),null===t&&(t=this.kf),t},t.prototype.Bf=function(t){null!==t&&t.xs()&&this.Uf(t)},t.prototype.qf=function(t){var i=this.pf.Rr();t.gs({Cs:!0}),null!==i&&t.wh(i),this.Ui()},t.prototype.Hf=function(){this.Uf(this.gf),this.Uf(this.kf)},t.prototype.Yf=function(){var t=this;this.Bf(this.gf),this.Bf(this.kf),this.rs.forEach((function(i){t.wf(i)&&t.Bf(i.X())})),this.Ui(),this.ni.se()},t.prototype.Gt=function(){return 0===this.rs.length},t.prototype.Js=function(){return null===this.es&&(this.es=pt(this.rs)),this.es},t.prototype.Kf=function(){return this.mf},t.prototype.Uf=function(t){var i=t.dh();if(i&&i.length>0&&!this.pf.Gt()){var n=this.pf.Rr();null!==n&&t.wh(n)}t.Ui()},t.prototype.Af=function(){var t=this.Js();if(0===t.length)return{Ef:0,$f:0};for(var i=0,n=0,s=0;sn&&(n=h))}return{Ef:i,$f:n}},t.prototype.Lf=function(t,i,n){var s=this.Sf(i);if(null===s&&(s=this.yf(i,this.ni.O().overlayPriceScales)),this.rs.push(t),!Ht(i)){var h=this.Mf.get(i)||[];h.push(t),this.Mf.set(i,h)}s.Gs(t),t.ci(s),t.li(n),this.Bf(s),this.es=null},t.prototype.Nf=function(t,i,n){i.ys!==n.ys&&this.Uf(t)},t.prototype.yf=function(t,i){var n=e({tt:!0,Cs:!0},b(i)),s=new Nt(t,n,this.ni.O().layout,this.ni.O().localization);return s.Bs(this.wt()),s},t}(),nn=function(t){function i(i){var n=t.call(this)||this;return n.Xf=new Map,n.G=i,n}return r(i,t),i.prototype.h=function(t){},i.prototype.o=function(t){if(this.G.tt){t.save();for(var i=0,n=0,s=this.G.Zf;nthis.G.dt?o.ve=this.G.dt/h:o.ve=1,i+=o.Gf*o.ve}}var r=0;switch(this.G.Qf){case"top":r=0;break;case"center":r=Math.max((this.G.wt-i)/2,0);break;case"bottom":r=Math.max(this.G.wt-i,0)}t.fillStyle=this.G.et;for(var e=0,u=this.G.Zf;e20&&(this.rl=null,i=!0),this.pf.uh(t),this.ne(),this.hf(),this.se(),i},t.prototype.Fl=function(){this.pf.oh(),this.se(),this.rl=null},t.prototype.Il=function(){this.pf.fe(),this.ne(),this.hf(),this.se()},t.prototype.qe=function(t){this.al&&this.al(t),this.ll.qe(),this.se()},t.prototype.V=function(){return this.hl},t.prototype.Rl=function(t,i,n){this.L.Vi(t,i);var s=NaN,h=this.pf.te(t),r=this.pf.Rr();null!==r&&(h=Math.min(Math.max(r.ph(),h),r.gh()));var e=n.Ti(),u=e.q();null!==u&&(s=e.Ei(i,u)),s=this.cl.df(s,h,n),this.L.Oi(h,s,n),this.Wl(),this.ol.an(this.L.W(),{x:t,y:i})},t.prototype.jl=function(){this.Dl().Ri(),this.Wl(),this.ol.an(null,null)},t.prototype.hf=function(){var t=this.L.lt();if(null!==t){var i=this.L.Fi(),n=this.L.Pi();this.Rl(i,n,t)}},t.prototype.Ul=function(t,i,n,s){s&&this.pf.Gh(),this.pf.B(t,i,n)},t.prototype.ql=function(t){var i=this.hl.reduce((function(t,i){var n=i.Ki();if(n.Gt())return t;var s=f(n.Yi());return void 0===t?s:Math.max(s,t)}),void 0);if(void 0!==i){var n=this.pf,s=n.Gr(),h=n.Rr();if(null!==h){var r=h.Hh(s);if(void 0!==t&&t>0&&!r){var e=i-s;n.Ir(n.ee()-e)}}n.ce(i)}this.hf(),this.ne(),this.se()},t.prototype.sf=function(t){null!==t&&t.Yf()},t.prototype.ho=function(t){var i=this.sl.find((function(i){return i.Js().includes(t)}));return void 0===i?null:i},t.prototype.ne=function(){this.sl.forEach((function(t){return t.Yf()})),this.kl()},t.prototype.ln=function(){this.sl.forEach((function(t){return t.ln()})),this.sl.length=0,this.Si.localization.priceFormatter=void 0,this.Si.localization.timeFormatter=void 0},t.prototype.Hl=function(){return this.fl},t.prototype.eo=function(){return this.fl.O()},t.prototype.Df=function(){return this.ul},t.prototype.Yl=function(t,i){var n=this.sl[0],s=this.Kl(i,t,n);return this.hl.push(s),1===this.hl.length?this.dl():this.se(),s},t.prototype.$l=function(t){var i=this.ho(t),n=this.hl.indexOf(t);o(-1!==n,"Series not found"),this.hl.splice(n,1),f(i).th(t),t.ln&&t.ln()},t.prototype.Ga=function(t,i){var n=f(this.ho(t));n.th(t);var s=this.yl(i);if(null===s){var h=t.fi();n.Gs(t,i,h)}else{h=s.lt===n?t.fi():void 0;s.lt.Gs(t,i,h)}},t.prototype.ge=function(){var t=new Xt(2);t.tu(),this.wl(t)},t.prototype.Xl=function(t){var i=new Xt(2);i.ye(t),this.wl(i)},t.prototype.Zl=function(){return this.Si.rightPriceScale.visible?"right":"left"},t.prototype.El=function(t,i){var n=new Xt(i);if(null!==t){var s=this.sl.indexOf(t);n.Xe(s,{Ze:i})}return n},t.prototype.Ml=function(t,i){return void 0===i&&(i=2),this.El(this.ho(t),i)},t.prototype.wl=function(t){this.al&&this.al(t),this.ll.qe()},t.prototype.Wl=function(){this.wl(new Xt(1))},t.prototype.Kl=function(t,i,n){var s=new Gi(this,t,i),h=void 0!==t.priceScaleId?t.priceScaleId:this.Zl();return n.Gs(s,h),Ht(h)||s.ms(t),s},t}(),en={allowDownsampling:!0};var un=function(){function t(t,i){var n=this;this._resolutionMediaQueryList=null,this._resolutionListener=function(t){return n._onResolutionChanged()},this._canvasConfiguredListeners=[],this.canvas=t,this._canvasSize={width:this.canvas.clientWidth,height:this.canvas.clientHeight},this._options=i,this._configureCanvas(),this._installResolutionListener()}return t.prototype.destroy=function(){this._canvasConfiguredListeners.length=0,this._uninstallResolutionListener(),this.canvas=null},Object.defineProperty(t.prototype,"canvasSize",{get:function(){return{width:this._canvasSize.width,height:this._canvasSize.height}},enumerable:!0,configurable:!0}),t.prototype.resizeCanvas=function(t){this._canvasSize={width:t.width,height:t.height},this._configureCanvas()},Object.defineProperty(t.prototype,"pixelRatio",{get:function(){var t=this.canvas.ownerDocument.defaultView;if(null==t)throw new Error("No window is associated with the canvas");return t.devicePixelRatio>1||this._options.allowDownsampling?t.devicePixelRatio:1},enumerable:!0,configurable:!0}),t.prototype.subscribeCanvasConfigured=function(t){this._canvasConfiguredListeners.push(t)},t.prototype.unsubscribeCanvasConfigured=function(t){this._canvasConfiguredListeners=this._canvasConfiguredListeners.filter((function(i){return i!=t}))},t.prototype._configureCanvas=function(){var t=this.pixelRatio;this.canvas.style.width=this._canvasSize.width+"px",this.canvas.style.height=this._canvasSize.height+"px",this.canvas.width=this._canvasSize.width*t,this.canvas.height=this._canvasSize.height*t,this._emitCanvasConfigured()},t.prototype._emitCanvasConfigured=function(){var t=this;this._canvasConfiguredListeners.forEach((function(i){return i.call(t)}))},t.prototype._installResolutionListener=function(){if(null!==this._resolutionMediaQueryList)throw new Error("Resolution listener is already installed");var t=this.canvas.ownerDocument.defaultView;if(null==t)throw new Error("No window is associated with the canvas");var i=t.devicePixelRatio;this._resolutionMediaQueryList=t.matchMedia("all and (resolution: "+i+"dppx)"),this._resolutionMediaQueryList.addListener(this._resolutionListener)},t.prototype._uninstallResolutionListener=function(){null!==this._resolutionMediaQueryList&&(this._resolutionMediaQueryList.removeListener(this._resolutionListener),this._resolutionMediaQueryList=null)},t.prototype._reinstallResolutionListener=function(){this._uninstallResolutionListener(),this._installResolutionListener()},t.prototype._onResolutionChanged=function(){this._configureCanvas(),this._reinstallResolutionListener()},t}(),on=function(){function t(t,i){this.st=t,this.ht=i}return t.prototype._n=function(t){return this.st===t.st&&this.ht===t.ht},t}();function an(t){return t.ownerDocument&&t.ownerDocument.defaultView&&t.ownerDocument.defaultView.devicePixelRatio||1}function fn(t){var i=f(t.getContext("2d"));return i.setTransform(1,0,0,1,0,0),i}function ln(t){var i=t.createElement("canvas");return function(t){t.style.userSelect="none",t.style.webkitUserSelect="none",t.style.msUserSelect="none",t.style.MozUserSelect="none",t.style.webkitTapHighlightColor="transparent"}(i),i}function cn(t,i){var n=ln(t),s=an(n);return n.style.width=i.st+"px",n.style.height=i.ht+"px",n.width=i.st*s,n.height=i.ht*s,n}function vn(t,i){var n=ln(f(t.ownerDocument));t.appendChild(n);var s=function(t,i){return void 0===i&&(i=en),new un(t,i)}(n);return s.resizeCanvas({width:i.st,height:i.ht}),s}var _n=!!navigator.maxTouchPoints||!!navigator.msMaxTouchPoints||"ontouchstart"in window||Boolean(window.DocumentTouch&&document instanceof window.DocumentTouch),dn="onorientationchange"in window&&_n,wn=/Android/i.test(navigator.userAgent),Mn=/iPhone|iPad|iPod|AppleWebKit.+Mobile/i.test(navigator.userAgent),bn=wn||Mn,mn=function(){function t(t,i,n){this.Jl=0,this.Gl=null,this.Ql=null,this.tc=!1,this.ic=null,this.nc=!1,this.sc=!1,this.hc=null,this.rc=null,this.ec=null,this.uc=null,this.oc=0,this.ac=!1,this.fc=!1,this.lc=!1,this.cc=t,this.vc=i,this.Si=n,this._c()}return t.prototype.ln=function(){null!==this.hc&&(this.hc(),this.hc=null),null!==this.rc&&(this.rc(),this.rc=null),null!==this.ec&&(this.ec(),this.ec=null),this.dc(),this.wc()},t.prototype.Mc=function(t){var i=this;this.rc&&this.rc();var n=this.bc.bind(this);this.rc=function(){i.cc.removeEventListener("mousemove",n)},this.cc.addEventListener("mousemove",n),yn(t)&&this.bc(t);var s=this.mc(t);this.pc(s,this.vc.gc)},t.prototype.wc=function(){null!==this.Gl&&clearTimeout(this.Gl),this.Jl=0,this.Gl=null},t.prototype.bc=function(t){if(!this.lc||yn(t)){var i=this.mc(t);this.pc(i,this.vc.yc)}},t.prototype.kc=function(t){if((!("button"in t)||0===t.button)&&null===this.uc){var i=yn(t);if(!this.fc||!i){this.ac=!0;var n=this.mc(t),s=l(this.ic),h=Math.abs(s.m-n.Nc),r=Math.abs(s.p-n.xc),e=h+r>5;if(e||!i){if(e&&!this.nc&&i){var u=.5*h,o=r>=u&&!this.Si.Sc,a=u>r&&!this.Si.Dc;o||a||(this.fc=!0)}e&&(this.nc=!0,this.sc=!0,i&&this.dc()),this.fc||(this.pc(n,this.vc.Cc),i&&kn(t))}}}},t.prototype.Tc=function(t){if(!("button"in t)||0===t.button){var i=this.mc(t);this.dc(),this.ic=null,this.lc=!1,this.ec&&(this.ec(),this.ec=null),yn(t)&&this.Ec(t),this.pc(i,this.vc.Ac),++this.Jl,this.Gl&&this.Jl>1?(this.pc(i,this.vc.Lc),this.wc()):this.sc||this.pc(i,this.vc.Bc),yn(t)&&(kn(t),this.Ec(t),0===t.touches.length&&(this.tc=!1))}},t.prototype.dc=function(){null!==this.Ql&&(clearTimeout(this.Ql),this.Ql=null)},t.prototype.Vc=function(t){if(!("button"in t)||0===t.button){var i=this.mc(t);this.sc=!1,this.nc=!1,this.fc=!1,yn(t)&&this.Mc(t),this.ic={m:i.Nc,p:i.xc},this.ec&&(this.ec(),this.ec=null);var n=this.kc.bind(this),s=this.Tc.bind(this),h=this.cc.ownerDocument.documentElement;this.ec=function(){h.removeEventListener("touchmove",n),h.removeEventListener("touchend",s),h.removeEventListener("mousemove",n),h.removeEventListener("mouseup",s)},h.addEventListener("touchmove",n,{passive:!1}),h.addEventListener("touchend",s,{passive:!1}),this.dc(),yn(t)&&1===t.touches.length?this.Ql=setTimeout(this.zc.bind(this,t),240):(h.addEventListener("mousemove",n),h.addEventListener("mouseup",s)),this.lc=!0,this.pc(i,this.vc.Fc),this.Gl||(this.Jl=0,this.Gl=setTimeout(this.wc.bind(this),500))}},t.prototype._c=function(){var t=this;this.cc.addEventListener("mouseenter",this.Mc.bind(this)),this.cc.addEventListener("touchcancel",this.dc.bind(this));var i=this.cc.ownerDocument,n=function(i){t.vc.Pc&&(i.target&&t.cc.contains(i.target)||t.vc.Pc())};this.hc=function(){i.removeEventListener("mousedown",n),i.removeEventListener("touchstart",n)},i.addEventListener("mousedown",n),i.addEventListener("touchstart",n,{passive:!0}),this.cc.addEventListener("mouseleave",this.Ec.bind(this)),this.cc.addEventListener("touchstart",this.Vc.bind(this),{passive:!0}),dn||this.cc.addEventListener("mousedown",this.Vc.bind(this)),this.Oc(),this.cc.addEventListener("touchmove",(function(){}),{passive:!1})},t.prototype.Oc=function(){var t=this;void 0===this.vc.Ic&&void 0===this.vc.Rc&&void 0===this.vc.Wc||(this.cc.addEventListener("touchstart",(function(i){return t.jc(i.touches)}),{passive:!0}),this.cc.addEventListener("touchmove",(function(i){if(2===i.touches.length&&null!==t.uc&&void 0!==t.vc.Rc){var n=gn(i.touches[0],i.touches[1])/t.oc;t.vc.Rc(t.uc,n),kn(i)}}),{passive:!1}),this.cc.addEventListener("touchend",(function(i){t.jc(i.touches)})))},t.prototype.jc=function(t){1===t.length&&(this.ac=!1),2!==t.length||this.ac||this.tc?this.Uc():this.qc(t)},t.prototype.qc=function(t){var i=pn(this.cc);this.uc={m:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,p:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.oc=gn(t[0],t[1]),void 0!==this.vc.Ic&&this.vc.Ic(),this.dc()},t.prototype.Uc=function(){null!==this.uc&&(this.uc=null,void 0!==this.vc.Wc&&this.vc.Wc())},t.prototype.Ec=function(t){this.rc&&this.rc();var i=this.mc(t);this.pc(i,this.vc.Hc)},t.prototype.zc=function(t){var i=this.mc(t);this.pc(i,this.vc.Yc),this.sc=!0,this.tc=!0},t.prototype.pc=function(t,i){i&&i.call(this.vc,t)},t.prototype.mc=function(t){var i;i="touches"in t&&t.touches.length?t.touches[0]:"changedTouches"in t&&t.changedTouches.length?t.changedTouches[0]:t;var n=pn(this.cc);return{Kc:i.clientX,$c:i.clientY,Nc:i.pageX,xc:i.pageY,Xc:i.screenX,Zc:i.screenY,Jc:i.clientX-n.left,Gc:i.clientY-n.top,Qc:t.ctrlKey,tv:t.altKey,iv:t.shiftKey,nv:t.metaKey,sv:t.type.startsWith("mouse")?"mouse":"touch",hv:i.target,rv:t.view}},t}();function pn(t){return t.getBoundingClientRect()||{left:0,top:0}}function gn(t,i){var n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function yn(t){return Boolean(t.touches)}function kn(t){t.cancelable&&t.preventDefault()}var Nn=function(){function t(t,i,n,s){if(this.ev=0,this.uv=0,this.ov=0,this.av=0,this.fv=0,this.lv=0,this.cv=0,this.vv=t,this._v=t.dv()[i],this.wv=t.dv()[n],this.Mv=document.createElement("tr"),this.Mv.style.height="1px",this.bv=document.createElement("td"),this.bv.style.padding="0",this.bv.setAttribute("colspan","3"),this.mv(),this.Mv.appendChild(this.bv),s)this.pv=null,this.gv=null;else{this.pv=document.createElement("div"),this.pv.style.position="absolute",this.pv.style.zIndex="50",this.pv.style.height="5px",this.pv.style.width="100%",this.pv.style.backgroundColor="rgba(255, 255, 255, 0.02)",this.pv.style.cursor="ns-resize",this.bv.appendChild(this.pv);var h={Fc:this.yv.bind(this),Cc:this.kv.bind(this),Ac:this.Nv.bind(this)};this.gv=new mn(this.pv,h,{Sc:!1,Dc:!0})}}return t.prototype.ln=function(){null!==this.gv&&this.gv.ln()},t.prototype.xv=function(){return this.Mv},t.prototype.Sv=function(){return new on(this._v.Sv().st,1)},t.prototype.Dv=function(){var t=this.Sv(),i=cn(document,t),n=fn(i);return n.fillStyle=this.vv.O().timeScale.borderColor,n.fillRect(0,0,t.st,t.ht),i},t.prototype.B=function(){this.mv()},t.prototype.mv=function(){this.bv.style.background=this.vv.O().timeScale.borderColor},t.prototype.yv=function(t){this.ev=t.xc,this.uv=0,this.ov=this._v.Sv().ht+this.wv.Sv().ht,this.av=this._v.Cf()+this.wv.Cf(),this.fv=30,this.lv=this.ov-this.fv,this.cv=this.av/this.ov},t.prototype.kv=function(t){this.uv=t.xc-this.ev;var i=this._v.Sv().ht,n=rt(i+this.uv,this.fv,this.lv)*this.cv,s=this.av-n;this._v.Tf(n),this.wv.Tf(s),this.vv.ct().dl(),this._v.Sv().ht!==i&&(this.ev=t.xc)},t.prototype.Nv=function(t){this.ev=0,this.uv=0,this.ov=0,this.av=0,this.fv=0,this.lv=0,this.cv=0},t}(),xn=function(){function t(t,i,n,s){this.Qu=new bi(200),this.Le=0,this.Cv="",this.fo="",this.Tv=[],this.Ev=new Map,this.Le=t,this.Cv=i,this.fo=Ut(t,n,s)}return t.prototype.ln=function(){delete this.Qu,this.Tv=[],this.Ev.clear()},t.prototype.Av=function(t,i,n,s,h){var r=this.Lv(t,i);if("left"!==h){var e=an(t.canvas);n-=Math.floor(r.Bv*e)}s-=Math.floor(r.wt/2),t.drawImage(r.Vv,n,s,r.dt,r.wt)},t.prototype.Lv=function(t,i){var n,s=this;if(this.Ev.has(i))n=a(this.Ev.get(i));else{if(this.Tv.length>=200){var h=a(this.Tv.shift());this.Ev.delete(h)}var r=an(t.canvas),e=Math.ceil(this.Le/4.5),u=Math.round(this.Le/10),o=Math.ceil(this.Qu.Et(t,i)),f=ot(Math.round(o+2*e)),l=ot(this.Le+2*e),c=cn(document,new on(f,l));n={Tt:i,Bv:Math.round(Math.max(1,o)),dt:Math.ceil(f*r),wt:Math.ceil(l*r),Vv:c},0!==o&&(this.Tv.push(n.Tt),this.Ev.set(n.Tt,n)),W(t=fn(n.Vv),r,(function(){t.font=s.fo,t.fillStyle=s.Cv,t.fillText(i,0,l-e-u)}))}return n},t}(),Sn=function(){function t(t,i,n,s){var h=this;this.Zt=null,this.zv=null,this.Fv=null,this.Pv=!1,this.Ov=!0,this.Iv=new bi(50),this.Rv=new xn(11,"#000"),this.Cv=null,this.fo=null,this.Wv=0,this.jv=function(){h.Uv(h.fl.O()),h.wi.qv().ct().se()},this.Hv=function(){h.wi.qv().ct().se()},this.wi=t,this.Si=i,this.fl=n,this.Yv="left"===s,this.bv=document.createElement("div"),this.bv.style.height="100%",this.bv.style.overflow="hidden",this.bv.style.width="25px",this.bv.style.left="0",this.bv.style.position="relative",this.Kv=vn(this.bv,new on(16,16)),this.Kv.subscribeCanvasConfigured(this.jv);var r=this.Kv.canvas;r.style.position="absolute",r.style.zIndex="1",r.style.left="0",r.style.top="0",this.$v=vn(this.bv,new on(16,16)),this.$v.subscribeCanvasConfigured(this.Hv);var e=this.$v.canvas;e.style.position="absolute",e.style.zIndex="2",e.style.left="0",e.style.top="0";var u={Fc:this.yv.bind(this),Cc:this.kv.bind(this),Pc:this.Xv.bind(this),Ac:this.Nv.bind(this),Lc:this.Zv.bind(this),gc:this.Jv.bind(this),Hc:this.Gv.bind(this)};this.gv=new mn(this.$v.canvas,u,{Sc:!1,Dc:!0})}return t.prototype.ln=function(){this.gv.ln(),this.$v.unsubscribeCanvasConfigured(this.Hv),this.$v.destroy(),this.Kv.unsubscribeCanvasConfigured(this.jv),this.Kv.destroy(),null!==this.Zt&&(this.Zt.nh().on(this),this.Zt.Ns().on(this)),this.Zt=null,null!==this.Fv&&(clearTimeout(this.Fv),this.Fv=null),this.Rv.ln()},t.prototype.xv=function(){return this.bv},t.prototype.Qv=function(){return this.Si.backgroundColor},t.prototype.N=function(){return f(this.Zt).O().borderColor},t.prototype.t_=function(){return this.Si.textColor},t.prototype.Lt=function(){return this.Si.fontSize},t.prototype.i_=function(){return Ut(this.Lt(),this.Si.fontFamily)},t.prototype.n_=function(){var t=this.fl.O(),i=this.Cv!==t.et,n=this.fo!==t.gt;return(i||n)&&(this.Uv(t),this.Cv=t.et),n&&(this.Iv.Gh(),this.fo=t.gt),t},t.prototype.s_=function(){if(!this.Ht()||null===this.Zt)return 0;var t=34,i=this.n_(),n=fn(this.Kv.canvas),s=this.Zt.qn();n.font=this.i_(),s.length>0&&(t=Math.max(this.Iv.Et(n,s[0].Wn),this.Iv.Et(n,s[s.length-1].Wn)));for(var h=this.h_(),r=h.length;r--;){var e=this.Iv.Et(n,h[r].Tt());e>t&&(t=e)}var u=Math.ceil(i.Nt+i.kt+i.Dt+i.Ct+t);return u+=u%2},t.prototype.r_=function(t){if(t.st<0||t.ht<0)throw new Error("Try to set invalid size to PriceAxisWidget "+JSON.stringify(t));null!==this.zv&&this.zv._n(t)||(this.zv=t,this.Kv.resizeCanvas({width:t.st,height:t.ht}),this.$v.resizeCanvas({width:t.st,height:t.ht}),this.bv.style.width=t.st+"px",this.bv.style.height=t.ht+"px",this.bv.style.minWidth=t.st+"px")},t.prototype.e_=function(){return f(this.zv).st},t.prototype.ci=function(t){this.Zt!==t&&(null!==this.Zt&&(this.Zt.nh().on(this),this.Zt.Ns().on(this)),this.Zt=t,t.nh().sn(this.ss.bind(this),this))},t.prototype.X=function(){return this.Zt},t.prototype.Ht=function(){return this.Ov},t.prototype.u_=function(t){t!==this.Ov&&(this.bv.style.display=t?"table-cell":"none",this.Ov=t)},t.prototype.o_=function(t){var i=this.wi.a_();this.wi.qv().ct().jf(i,f(this.X()),t)},t.prototype.Gh=function(){var t=this.wi.a_();this.wi.qv().ct().qf(t,f(this.X()))},t.prototype.f_=function(t){if(this.Ov&&null!==this.zv){if(1!==t){var i=fn(this.Kv.canvas);this.l_(),this.c_(i,this.Kv.pixelRatio),this.Fu(i,this.Kv.pixelRatio),this.v_(i,this.Kv.pixelRatio),this.__(i,this.Kv.pixelRatio)}var n=fn(this.$v.canvas),s=this.zv.st,h=this.zv.ht;W(n,this.$v.pixelRatio,(function(){n.clearRect(0,0,s,h)})),this.d_(n,this.$v.pixelRatio)}},t.prototype.Dv=function(){return this.Kv.canvas},t.prototype.w_=function(){return this.Yv},t.prototype.yv=function(t){if(null!==this.Zt&&!this.Zt.Gt()&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_();this.Pv=!0,i.Ff(n,this.Zt,t.Gc)}},t.prototype.kv=function(t){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_(),s=this.Zt;i.Pf(n,s,t.Gc)}},t.prototype.Xv=function(){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var t=this.wi.qv().ct(),i=this.wi.a_(),n=this.Zt;this.Pv&&(this.Pv=!1,t.Of(i,n))}},t.prototype.Nv=function(t){if(null!==this.Zt&&this.wi.qv().O().handleScale.axisPressedMouseMove.price){var i=this.wi.qv().ct(),n=this.wi.a_();this.Pv=!1,i.Of(n,this.Zt)}},t.prototype.Zv=function(t){this.wi.qv().O().handleScale.axisDoubleClickReset&&this.Gh()},t.prototype.Jv=function(t){null!==this.Zt&&(!this.wi.qv().ct().O().handleScale.axisPressedMouseMove.price||this.Zt.Ss()||this.Zt.Ds()||this.M_(1))},t.prototype.Gv=function(t){this.M_(0)},t.prototype.h_=function(){var t=this,i=[],n=null===this.Zt?void 0:this.Zt;return function(s){for(var h=0;h0&&(t=h[0].Bt())}));var u=i.filter((function(i){return i.Bt()<=t})),o=i.filter((function(i){return i.Bt()>t}));if(u.sort((function(t,i){return i.Bt()-t.Bt()})),u.length&&o.length&&o.push(u[0]),o.sort((function(t,i){return t.Bt()-i.Bt()})),i.forEach((function(t){return t.qt(t.Bt())})),this.Zt.O().alignLabels){for(var a=1;a(_=v.Ut())-l&&f.qt(_-l)}for(var c=1;c1&&this.J_(),null!==this.b_&&this.b_.f_(t),null!==this.m_&&this.m_.f_(t),1!==t){var i=fn(this.Kv.canvas);i.save(),this.c_(i,this.G_(),this.Kv.pixelRatio),this.C_&&(this.Q_(i,this.Kv.pixelRatio),this.td(i,this.Kv.pixelRatio),this.nd(i,this.Kv.pixelRatio)),i.restore()}var n=fn(this.$v.canvas);n.clearRect(0,0,Math.ceil(this.zv.st*this.$v.pixelRatio),Math.ceil(this.zv.ht*this.$v.pixelRatio)),this.sd(n,this.$v.pixelRatio)}},t.prototype.hd=function(){return this.b_},t.prototype.rd=function(){return this.m_},t.prototype.G_=function(){return this.T_.O().layout.backgroundColor},t.prototype.E_=function(){null!==this.C_&&this.C_.Kf().on(this),this.C_=null},t.prototype.c_=function(t,i,n){var s=this;W(t,n,(function(){j(t,0,0,s.zv.st,s.zv.ht,i)}))},t.prototype.Q_=function(t,i){for(var n=f(this.C_),s=this.ni().xl()._i(n),h=n.wt(),r=n.dt(),e=0,u=s;ei.Qh?t:i}var An=function(){function t(t){var i=this;this.ld=null,this.vd=null,this.Ee=null,this._d=!1,this.zv=new on(0,0),this.jv=function(){return i.T_.ct().se()},this.Hv=function(){return i.T_.ct().se()},this.T_=t,this.Si=t.O().layout,this.dd=document.createElement("tr"),this.wd=document.createElement("td"),this.wd.style.padding="0",this.Md=document.createElement("td"),this.Md.style.padding="0",this.bv=document.createElement("td"),this.bv.style.height="25px",this.bv.style.padding="0",this.bd=document.createElement("div"),this.bd.style.width="100%",this.bd.style.height="100%",this.bd.style.position="relative",this.bd.style.overflow="hidden",this.bv.appendChild(this.bd),this.Kv=vn(this.bd,new on(16,16)),this.Kv.subscribeCanvasConfigured(this.jv);var n=this.Kv.canvas;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.$v=vn(this.bd,new on(16,16)),this.$v.subscribeCanvasConfigured(this.Hv);var s=this.$v.canvas;s.style.position="absolute",s.style.zIndex="2",s.style.left="0",s.style.top="0",this.dd.appendChild(this.wd),this.dd.appendChild(this.bv),this.dd.appendChild(this.Md),this.md(),this.T_.ct().Df().sn(this.md.bind(this),this),this.gv=new mn(this.$v.canvas,this,{Sc:!0,Dc:!1})}return t.prototype.ln=function(){this.gv.ln(),null!==this.ld&&this.ld.ln(),null!==this.vd&&this.vd.ln(),this.$v.unsubscribeCanvasConfigured(this.Hv),this.$v.destroy(),this.Kv.unsubscribeCanvasConfigured(this.jv),this.Kv.destroy()},t.prototype.xv=function(){return this.dd},t.prototype.pd=function(){return this.ld},t.prototype.gd=function(){return this.vd},t.prototype.Fc=function(t){if(!this._d){this._d=!0;var i=this.T_.ct();!i.j().Gt()&&this.T_.O().handleScale.axisPressedMouseMove.time&&i.Al(t.Jc)}},t.prototype.Pc=function(){var t=this.T_.ct();!t.j().Gt()&&this._d&&(this._d=!1,this.T_.O().handleScale.axisPressedMouseMove.time&&t.Ol())},t.prototype.Cc=function(t){var i=this.T_.ct();!i.j().Gt()&&this.T_.O().handleScale.axisPressedMouseMove.time&&i.Pl(t.Jc)},t.prototype.Ac=function(t){this._d=!1;var i=this.T_.ct();i.j().Gt()&&!this.T_.O().handleScale.axisPressedMouseMove.time||i.Ol()},t.prototype.Lc=function(){this.T_.O().handleScale.axisDoubleClickReset&&this.T_.ct().Il()},t.prototype.gc=function(t){this.T_.ct().O().handleScale.axisPressedMouseMove.time&&this.M_(1)},t.prototype.Hc=function(t){this.M_(0)},t.prototype.Sv=function(){return this.zv},t.prototype.yd=function(t,i,n){this.zv&&this.zv._n(t)||(this.zv=t,this.Kv.resizeCanvas({width:t.st,height:t.ht}),this.$v.resizeCanvas({width:t.st,height:t.ht}),this.bv.style.width=t.st+"px",this.bv.style.height=t.ht+"px"),null!==this.ld&&this.ld.r_(new on(i,t.ht)),null!==this.vd&&this.vd.r_(new on(n,t.ht))},t.prototype.dt=function(){return this.zv.st},t.prototype.wt=function(){return this.zv.ht},t.prototype.kd=function(){var t=this.Nd();return Math.ceil(t.Nt+t.kt+t.Lt+t.xt+t.St)},t.prototype.B=function(){this.T_.ct().j().qn()},t.prototype.Dv=function(){return this.Kv.canvas},t.prototype.f_=function(t){if(0!==t){if(1!==t){var i=fn(this.Kv.canvas);this.c_(i,this.Kv.pixelRatio),this.Fu(i,this.Kv.pixelRatio),this.v_(i,this.Kv.pixelRatio),null!==this.ld&&this.ld.f_(t),null!==this.vd&&this.vd.f_(t)}var n=fn(this.$v.canvas),s=this.$v.pixelRatio;n.clearRect(0,0,Math.ceil(this.zv.st*s),Math.ceil(this.zv.ht*s)),this.xd([this.T_.ct().Dl()],n,s)}},t.prototype.c_=function(t,i){var n=this;W(t,i,(function(){j(t,0,0,n.zv.st,n.zv.ht,n.G_())}))},t.prototype.Fu=function(t,i){if(this.T_.O().timeScale.borderVisible){t.save(),t.fillStyle=this.Sd();var n=Math.max(1,Math.floor(this.Nd().Nt*i));t.fillRect(0,0,Math.ceil(this.zv.st*i),n),t.restore()}},t.prototype.v_=function(t,i){var n=this,s=this.T_.ct().j().qn();if(s&&0!==s.length){var h=s.reduce(En,s[0]).Qh;h>30&&h<40&&(h=30),t.save(),t.strokeStyle=this.Sd();var r=this.Nd(),e=r.Nt+r.kt+r.xt+r.Lt-r.At;t.textAlign="center",t.fillStyle=this.Sd();var u=Math.floor(this.Nd().Nt*i),o=Math.max(1,Math.floor(i)),a=Math.floor(.5*i);if(this.T_.ct().j().O().borderVisible){t.beginPath();for(var f=Math.round(r.kt*i),l=s.length;l--;){var c=Math.round(s[l].Rn*i);t.rect(c-a,u,o,f)}t.fill()}t.fillStyle=this.Ve(),W(t,i,(function(){t.font=n.Dd();for(var i=0,r=s;i=h&&t.fillText(a.Wn,a.Rn,e)}}))}},t.prototype.xd=function(t,i,n){for(var s=this.Nd(),h=0,r=t;h1){var r=new Nn(this,s-1,s,!0);this.Ed.push(r),this.Fd.insertBefore(r.xv(),this.Rd.xv())}this.Fd.insertBefore(h.xv(),this.Rd.xv())}for(s=0;s=0;--h)if(Math.floor(n.getTime()/qn[h].hw)!==Math.floor(s.getTime()/qn[h].hw))return qn[h].Qh}return 20}function Yn(t,i){return t.timestamp0&&h.set(i,t)})),this.fw(h)},t.prototype.$l=function(t){return this.ow(t,[])},t.prototype.lw=function(t,i){$n(i);var n=t.pu().Ki();if(n.er()>0)if(void 0!==f(n.fa()).F.businessDay){if(!Wt(i.time))throw new Error("time must be of type BusinessDay")}else if(!jt(i.time))throw new Error("time must be of type isUTCTimestamp");var s=f(zn([i]))(i.time),h=this.rw.get(s.timestamp)||{Bi:0,aw:new Map,ih:s},r=0===h.aw.size;h.aw.set(t,i);var e=!1;if(r){var u=this.rw.size;this.uw.length>0&&this.uw[this.uw.length-1].timestamp>s.timestamp?(u=ii(this.uw,s,Yn),this.uw.splice(u,0,s),this.cw(u),e=!0):this.uw.push(s),h.Bi=u,this.ew.set(h.Bi,s)}this.rw.set(s.timestamp,h);var o=new Map,l=function(i){var n=a(c.ew.get(i));a(c.rw.get(n.timestamp)).aw.forEach((function(s,h){if(e||h===t){var r=Rn(h.Ko()),u=o.get(h)||{B:[]},a={Bi:i,F:n,Z:r(s,h.Xu())};u.B.push(a),o.set(h,u)}}))},c=this;for(u=h.Bi;u1){var e=Math.ceil(h/(r.length-1)),u=r[0].F.timestamp-e;r[0].Qh=Hn(r[0].F.timestamp,u)}var o={dw:n,ww:this.uw.slice(),Bi:0,qn:r};return this.Mw(),{_w:o}},t.prototype.cw=function(t){for(var i=this.ew.size-1;i>=t;--i){var n=a(this.ew.get(i)),s=i+1;a(this.rw.get(n.timestamp)).Bi=s,this.ew.delete(i),this.ew.set(s,n)}},t.prototype.Mw=function(){var t=this;this.ew.clear(),this.rw.forEach((function(i,n){t.ew.set(i.Bi,i.ih)}))},t.prototype.vw=function(t){for(var i,n=[],s=(null===(i=this.ew.get(t-1))||void 0===i?void 0:i.timestamp)||null,h=t;hh.Bi)return{barsBefore:t.from-r,barsAfter:e-t.to};var u={barsBefore:null===s||s.Bi===r?t.from-r:s.Bi-r,barsAfter:null===h||h.Bi===e?e-t.to:e-h.Bi};return null!==s&&null!==h&&(u.from=s.F.businessDay||s.F.timestamp,u.to=h.F.businessDay||h.F.timestamp),u},t.prototype.setData=function(t){this.mw.yw(this.vu,t)},t.prototype.update=function(t){this.mw.if(this.vu,t)},t.prototype.setMarkers=function(t){var i=t.map((function(t){return e(e({},t),{time:Fn(t.time)})}));this.vu.rf(i)},t.prototype.applyOptions=function(t){var i=Gn(t);this.vu.ms(i)},t.prototype.options=function(){return b(this.vu.O())},t.prototype.priceScale=function(){return this.pw.X(this.vu.X().bs())},t.prototype.createPriceLine=function(t){var i=c(b(Zn),t),n=this.vu.uf(i);return new Jn(n)},t.prototype.removePriceLine=function(t){this.vu.af(t.bw())},t}(),ts=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return r(i,t),i.prototype.applyOptions=function(i){xt(i),t.prototype.applyOptions.call(this,i)},i}(Qn),is={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:"#2B2B43",entireTextOnly:!1,visible:!1,scaleMargins:{bottom:.1,top:.2}};var ns={rightOffset:0,barSpacing:6,fixLeftEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:"#2B2B43",visible:!0,timeVisible:!1,secondsVisible:!0,tickMarkFormatter:function(t,i,n){var s={};switch(i){case 0:s.year="numeric";break;case 1:s.month="short";break;case 2:s.day="numeric";break;case 3:s.hour12=!1,s.hour="2-digit",s.minute="2-digit";break;case 4:s.hour12=!1,s.hour="2-digit",s.minute="2-digit",s.second="2-digit"}var h=void 0===t.businessDay?new Date(1e3*t.timestamp):new Date(Date.UTC(t.businessDay.year,t.businessDay.month-1,t.businessDay.day));return new Date(h.getUTCFullYear(),h.getUTCMonth(),h.getUTCDate(),h.getUTCHours(),h.getUTCMinutes(),h.getUTCSeconds(),h.getUTCMilliseconds()).toLocaleString(n,s)}},ss={width:0,height:0,layout:{backgroundColor:"#FFFFFF",textColor:"#191919",fontSize:11,fontFamily:"'Trebuchet MS', Roboto, Ubuntu, sans-serif"},crosshair:{vertLine:{color:"#758696",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#4c525e"},horzLine:{color:"#758696",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#4c525e"},mode:1},grid:{vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},overlayPriceScales:e({},is),leftPriceScale:e(e({},is),{visible:!1}),rightPriceScale:e(e({},is),{visible:!0}),timeScale:ns,watermark:{color:"rgba(0, 0, 0, 0)",visible:!1,fontSize:48,text:"",horzAlign:"center",vertAlign:"center"},localization:{locale:navigator.language,dateFormat:"dd MMM 'yy"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:!0,mouseWheel:!0,pinch:!0}},hs={upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},rs={upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},es={color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4},us={topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4},os={color:"#26a69a",base:0},as={title:"",lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:"",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:"#B2B5BE",baseLineStyle:0,priceFormat:{type:"price",precision:2,minMove:.01}},fs=function(){function t(t,i){this.vv=t,this.kw=i}return t.prototype.ln=function(){delete this.vv},t.prototype.bs=function(){return this.Zt().bs()},t.prototype.applyOptions=function(t){this.vv.ct().gl(this.kw,t)},t.prototype.options=function(){return this.Zt().O()},t.prototype.width=function(){return Ht(this.kw)?this.vv.Xd("left"===this.kw?"left":"right"):0},t.prototype.Zt=function(){return f(this.vv.ct().yl(this.kw)).X},t}(),ls=function(){function t(t){this.Nw=new st,this.Sr=new st,this.ni=t,this.pf().Me().sn(this.xw.bind(this)),this.pf().be().sn(this.Sw.bind(this))}return t.prototype.getBarSpacing=function(){return this.pf().he()},t.prototype.ln=function(){this.pf().Me().on(this),this.pf().be().on(this),this.Nw.ln(),delete this.ni},t.prototype.scrollPosition=function(){return this.pf().ee()},t.prototype.scrollToPosition=function(t,i){i?this.pf().we(t,1e3):this.pf().Ir(t)},t.prototype.scrollToRealTime=function(){this.pf().de()},t.prototype.getVisibleRange=function(){var t,i,n=this.pf().Ur();return null===n?null:{from:null!==(t=n.from.businessDay)&&void 0!==t?t:n.from.timestamp,to:null!==(i=n.to.businessDay)&&void 0!==i?i:n.to.timestamp}},t.prototype.setVisibleRange=function(t){var i={from:Fn(t.from),to:Fn(t.to)},n=this.pf().Yr(i);this.ni.Xl(n)},t.prototype.getVisibleLogicalRange=function(){var t=this.pf().jr();return null===t?null:{from:t.ph(),to:t.gh()}},t.prototype.setVisibleLogicalRange=function(t){o(t.from<=t.to,"The from index cannot be after the to index."),this.ni.Xl(t)},t.prototype.resetTimeScale=function(){this.ni.Il()},t.prototype.fitContent=function(){this.ni.ge()},t.prototype.timeToCoordinate=function(t){var i=Fn(t),n=this.ni.j(),s=n.Hr().cr(i.timestamp,!1);return null===s?null:n.J(s)},t.prototype.coordinateToTime=function(t){var i,n=this.ni.j(),s=n.te(t),h=n.Hr().ar(s);return null===h?null:null!==(i=h.businessDay)&&void 0!==i?i:h.timestamp},t.prototype.subscribeVisibleTimeRangeChange=function(t){this.Nw.sn(t)},t.prototype.unsubscribeVisibleTimeRangeChange=function(t){this.Nw.un(t)},t.prototype.subscribeVisibleLogicalRangeChange=function(t){this.Sr.sn(t)},t.prototype.unsubscribeVisibleLogicalRangeChange=function(t){this.Sr.un(t)},t.prototype.applyOptions=function(t){this.pf().ms(t)},t.prototype.options=function(){return b(this.pf().O())},t.prototype.pf=function(){return this.ni.j()},t.prototype.xw=function(){this.Nw.fn()&&this.Nw.an(this.getVisibleRange())},t.prototype.Sw=function(){this.Sr.fn()&&this.Sr.an(this.getVisibleLogicalRange())},t}();function cs(t){if(void 0!==t&&"custom"!==t.type){var i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=function(t){if(t>=1)return 0;for(var i=0;i<8;i++){var n=Math.round(t);if(Math.abs(n-t)<1e-8)return i;t*=10}return i}(i.minMove))}}function vs(t){return function(t){if(M(t.handleScale)){var i=t.handleScale;t.handleScale={axisDoubleClickReset:i,axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale&&M(t.handleScale.axisPressedMouseMove)){var n=t.handleScale.axisPressedMouseMove;t.handleScale.axisPressedMouseMove={time:n,price:n}}var s=t.handleScroll;M(s)&&(t.handleScroll={horzTouchDrag:s,vertTouchDrag:s,mouseWheel:s,pressedMouseMove:s})}(t),function(t){if(t.priceScale){t.leftPriceScale=t.leftPriceScale||{},t.rightPriceScale=t.rightPriceScale||{};var i=t.priceScale.position;delete t.priceScale.position,t.leftPriceScale=c(t.leftPriceScale,t.priceScale),t.rightPriceScale=c(t.rightPriceScale,t.priceScale),"left"===i&&(t.leftPriceScale.visible=!0,t.rightPriceScale.visible=!1),"right"===i&&(t.leftPriceScale.visible=!1,t.rightPriceScale.visible=!0),"none"===i&&(t.leftPriceScale.visible=!1,t.rightPriceScale.visible=!1),t.overlayPriceScales=t.overlayPriceScales||{},void 0!==t.priceScale.invertScale&&(t.overlayPriceScales.invertScale=t.priceScale.invertScale),void 0!==t.priceScale.scaleMargins&&(t.overlayPriceScales.scaleMargins=t.priceScale.scaleMargins)}}(t),t}var _s=function(){function t(t,i){var n=this;this.Dw=new Xn,this.Cw=new Map,this.Tw=new Map,this.Ew=new st,this.Aw=new st;var s=void 0===i?b(ss):c(b(ss),vs(i));this.vv=new Ln(t,s),this.vv.K_().sn((function(t){n.Ew.fn()&&n.Ew.an(n.Lw(t()))}),this),this.vv.Cl().sn((function(t){n.Aw.fn()&&n.Aw.an(n.Lw(t()))}),this);var h=this.vv.ct();this.Bw=new ls(h)}return t.prototype.remove=function(){this.vv.K_().on(this),this.vv.Cl().on(this),this.Bw.ln(),this.vv.ln(),delete this.vv,this.Cw.forEach((function(t,i){i.ln()})),this.Cw.clear(),this.Tw.clear(),this.Ew.ln(),this.Aw.ln(),this.Dw.ln(),delete this.Dw},t.prototype.resize=function(t,i,n){this.vv.Wd(t,i,n)},t.prototype.addAreaSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),us,t),n=this.vv.ct().Yl("Area",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addBarSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),rs,t),n=this.vv.ct().Yl("Bar",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addCandlestickSeries=function(t){void 0===t&&(t={}),xt(t),cs(t.priceFormat);var i=c(b(as),hs,t),n=this.vv.ct().Yl("Candlestick",i),s=new ts(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addHistogramSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),os,t),n=this.vv.ct().Yl("Histogram",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.addLineSeries=function(t){void 0===t&&(t={}),cs(t.priceFormat);var i=c(b(as),es,t),n=this.vv.ct().Yl("Line",i),s=new Qn(n,this,this);return this.Cw.set(s,n),this.Tw.set(n,s),s},t.prototype.removeSeries=function(t){var i=t,n=a(this.Cw.get(i)),s=this.Dw.$l(n),h=this.vv.ct();h.$l(n);var r=s._w;h.Ul(r.Bi,r.ww,r.qn,!0),r.dw.forEach((function(t,i){i.if(t.B)})),h.ql(0),this.Cw.delete(i),this.Tw.delete(n)},t.prototype.yw=function(t,i){var n=this.Dw.ow(t,i),s=this.vv.ct(),h=n._w;s.Ul(h.Bi,h.ww,h.qn,!0),h.dw.forEach((function(t,i){i.if(t.B,!0)})),s.ql(0)},t.prototype.if=function(t,i){var n=this.Dw.lw(t,i),s=this.vv.ct(),h=n._w;s.Ul(h.Bi,h.ww,h.qn,!1),h.dw.forEach((function(t,i){i.if(t.B)})),s.ql(0)},t.prototype.subscribeClick=function(t){this.Ew.sn(t)},t.prototype.unsubscribeClick=function(t){this.Ew.un(t)},t.prototype.subscribeCrosshairMove=function(t){this.Aw.sn(t)},t.prototype.unsubscribeCrosshairMove=function(t){this.Aw.un(t)},t.prototype.priceScale=function(t){return t=t||this.vv.ct().Zl(),new fs(this.vv,t)},t.prototype.timeScale=function(){return this.Bw},t.prototype.applyOptions=function(t){this.vv.ms(vs(t))},t.prototype.options=function(){return this.vv.O()},t.prototype.takeScreenshot=function(){return this.vv.Yd()},t.prototype.Vw=function(t){return a(this.Tw.get(t))},t.prototype.Lw=function(t){var i=this,n=new Map;t.nw.forEach((function(t,s){n.set(i.Vw(s),t)}));var s=void 0===t.iw?void 0:this.Vw(t.iw);return{time:t.F&&(t.F.businessDay||t.F.timestamp),point:t.tw,hoveredSeries:s,hoveredMarkerId:t.sw,seriesPrices:n}},t}();var ds=Object.freeze({__proto__:null,version:function(){return"2.1.0-dev+202005300152"},get LineStyle(){return i},get LineType(){return t},get CrosshairMode(){return U},get PriceScaleMode(){return Mt},get PriceLineSource(){return gt},get TickMarkType(){return Ft},isBusinessDay:Wt,isUTCTimestamp:jt,createChart:function(t,i){var n=f(d(t)?document.getElementById(t):t);return new _s(n,i)}});window.LightweightCharts=ds}(); \ No newline at end of file +!function(){"use strict";const t={title:"",visible:!0,lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:"",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:"#B2B5BE",baseLineStyle:0,priceFormat:{type:"price",precision:2,minMove:.01}};var i,n;function s(t,i){const n={0:[],1:[t.lineWidth,t.lineWidth],2:[2*t.lineWidth,2*t.lineWidth],3:[6*t.lineWidth,6*t.lineWidth],4:[t.lineWidth,4*t.lineWidth]}[i];t.setLineDash(n)}function e(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(n,i+e),t.lineTo(s,i+e),t.stroke()}function r(t,i){if(!t)throw new Error("Assertion failed"+(i?": "+i:""))}function h(t){if(void 0===t)throw new Error("Value is undefined");return t}function a(t){if(null===t)throw new Error("Value is null");return t}function l(t){return a(h(t))}!function(t){t[t.Simple=0]="Simple",t[t.WithSteps=1]="WithSteps",t[t.Curved=2]="Curved"}(i||(i={})),function(t){t[t.Solid=0]="Solid",t[t.Dotted=1]="Dotted",t[t.Dashed=2]="Dashed",t[t.LargeDashed=3]="LargeDashed",t[t.SparseDotted=4]="SparseDotted"}(n||(n={}));class o{constructor(){this.t=[]}i(t,i,n){const s={h:t,l:i,o:!0===n};this.t.push(s)}_(t){const i=this.t.findIndex((i=>t===i.h));i>-1&&this.t.splice(i,1)}u(t){this.t=this.t.filter((i=>i.l!==t))}p(t,i,n){const s=[...this.t];this.t=this.t.filter((t=>!t.o)),s.forEach((s=>s.h(t,i,n)))}v(){return this.t.length>0}m(){this.t=[]}}function _(t,...i){for(const n of i)for(const i in n)void 0!==n[i]&&Object.prototype.hasOwnProperty.call(n,i)&&!["__proto__","constructor","prototype"].includes(i)&&("object"!=typeof n[i]||void 0===t[i]||Array.isArray(n[i])?t[i]=n[i]:_(t[i],n[i]));return t}function u(t){return"number"==typeof t&&isFinite(t)}function c(t){return"number"==typeof t&&t%1==0}function d(t){return"string"==typeof t}function f(t){return"boolean"==typeof t}function p(t){const i=t;if(!i||"object"!=typeof i)return i;let n,s,e;for(s in n=Array.isArray(i)?[]:{},i)i.hasOwnProperty(s)&&(e=i[s],n[s]=e&&"object"==typeof e?p(e):e);return n}function v(t){return null!==t}function m(t){return null===t?void 0:t}const w="-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif";function g(t,i,n){return void 0===i&&(i=w),`${n=void 0!==n?`${n} `:""}${t}px ${i}`}class M{constructor(t){this.M={S:1,C:5,P:NaN,k:"",T:"",R:"",D:"",I:0,V:0,B:0,A:0,L:0},this.O=t}N(){const t=this.M,i=this.F(),n=this.W();return t.P===i&&t.T===n||(t.P=i,t.T=n,t.k=g(i,n),t.A=2.5/12*i,t.I=t.A,t.V=i/12*t.C,t.B=i/12*t.C,t.L=0),t.R=this.H(),t.D=this.U(),this.M}H(){return this.O.N().layout.textColor}U(){return this.O.$()}F(){return this.O.N().layout.fontSize}W(){return this.O.N().layout.fontFamily}}function b(t){return t<0?0:t>255?255:Math.round(t)||0}function x(t){return.199*t[0]+.687*t[1]+.114*t[2]}class S{constructor(t,i){this.j=new Map,this.q=t,i&&(this.j=i)}Y(t,i){if("transparent"===t)return t;const n=this.K(t),s=n[3];return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${i*s})`}Z(t){const i=this.K(t);return{G:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,X:x(i)>160?"black":"white"}}J(t){return x(this.K(t))}tt(t,i,n){const[s,e,r,h]=this.K(t),[a,l,o,_]=this.K(i),u=[b(s+n*(a-s)),b(e+n*(l-e)),b(r+n*(o-r)),(c=h+n*(_-h),c<=0||c>1?Math.min(Math.max(c,0),1):Math.round(1e4*c)/1e4)];var c;return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}K(t){const i=this.j.get(t);if(i)return i;const n=function(t){const i=document.createElement("div");i.style.display="none",document.body.appendChild(i),i.style.color=t;const n=window.getComputedStyle(i).color;return document.body.removeChild(i),n}(t),s=n.match(/^rgba?\s*\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d*\.?\d+))?\)$/);if(!s){if(this.q.length)for(const i of this.q){const n=i(t);if(n)return this.j.set(t,n),n}throw new Error(`Failed to parse color: ${t}`)}const e=[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10),s[4]?parseFloat(s[4]):1];return this.j.set(t,e),e}}class C{constructor(){this.it=[]}nt(t){this.it=t}st(t,i,n){this.it.forEach((s=>{s.st(t,i,n)}))}}class y{st(t,i,n){t.useBitmapCoordinateSpace((t=>this.et(t,i,n)))}}class P extends y{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.rt||null===this.rt.lt)return;const s=this.rt.lt,e=this.rt,r=Math.max(1,Math.floor(i))%2/2,h=h=>{t.beginPath();for(let a=s.to-1;a>=s.from;--a){const s=e.ot[a],l=Math.round(s._t*i)+r,o=s.ut*n,_=h*n+r;t.moveTo(l,o),t.arc(l,o,_,0,2*Math.PI)}t.fill()};e.ct>0&&(t.fillStyle=e.dt,h(e.ft+e.ct)),t.fillStyle=e.vt,h(e.ft)}}function k(){return{ot:[{_t:0,ut:0,wt:0,gt:0}],vt:"",dt:"",ft:0,ct:0,lt:null}}const T={from:0,to:1};class R{constructor(t,i,n){this.Mt=new C,this.bt=[],this.xt=[],this.St=!0,this.O=t,this.Ct=i,this.yt=n,this.Mt.nt(this.bt)}Pt(t){this.kt(),this.St=!0}Tt(){return this.St&&(this.Rt(),this.St=!1),this.Mt}kt(){const t=this.yt.Dt();t.length!==this.bt.length&&(this.xt=t.map(k),this.bt=this.xt.map((t=>{const i=new P;return i.ht(t),i})),this.Mt.nt(this.bt))}Rt(){const t=2===this.Ct.N().mode||!this.Ct.It(),i=this.yt.Et(),n=this.Ct.Vt(),s=this.O.Bt();this.kt(),i.forEach(((i,e)=>{const r=this.xt[e],h=i.At(n),a=i.zt();!t&&null!==h&&i.It()&&null!==a?(r.vt=h.Lt,r.ft=h.ft,r.ct=h.Ot,r.ot[0].gt=h.gt,r.ot[0].ut=i.Ft().Nt(h.gt,a.Wt),r.dt=h.Ht??this.O.Ut(r.ot[0].ut/i.Ft().$t()),r.ot[0].wt=n,r.ot[0]._t=s.jt(n),r.lt=T):r.lt=null}))}}class D extends y{constructor(t){super(),this.qt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:r}){if(null===this.qt)return;const h=this.qt.Yt.It,a=this.qt.Kt.It;if(!h&&!a)return;const l=Math.round(this.qt._t*n),o=Math.round(this.qt.ut*r);t.lineCap="butt",h&&l>=0&&(t.lineWidth=Math.floor(this.qt.Yt.ct*n),t.strokeStyle=this.qt.Yt.R,t.fillStyle=this.qt.Yt.R,s(t,this.qt.Yt.Zt),function(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(i+e,n),t.lineTo(i+e,s),t.stroke()}(t,l,0,i.height)),a&&o>=0&&(t.lineWidth=Math.floor(this.qt.Kt.ct*r),t.strokeStyle=this.qt.Kt.R,t.fillStyle=this.qt.Kt.R,s(t,this.qt.Kt.Zt),e(t,o,0,i.width))}}class I{constructor(t,i){this.St=!0,this.Gt={Yt:{ct:1,Zt:0,R:"",It:!1},Kt:{ct:1,Zt:0,R:"",It:!1},_t:0,ut:0},this.Xt=new D(this.Gt),this.Jt=t,this.yt=i}Pt(){this.St=!0}Tt(t){return this.St&&(this.Rt(),this.St=!1),this.Xt}Rt(){const t=this.Jt.It(),i=this.yt.Qt().N().crosshair,n=this.Gt;if(2===i.mode)return n.Kt.It=!1,void(n.Yt.It=!1);n.Kt.It=t&&this.Jt.ti(this.yt),n.Yt.It=t&&this.Jt.ii(),n.Kt.ct=i.horzLine.width,n.Kt.Zt=i.horzLine.style,n.Kt.R=i.horzLine.color,n.Yt.ct=i.vertLine.width,n.Yt.Zt=i.vertLine.style,n.Yt.R=i.vertLine.color,n._t=this.Jt.ni(),n.ut=this.Jt.si()}}function E(t,i,n,s,e,r){t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+e-r,s-2*r,r),t.fillRect(i,n,r,e),t.fillRect(i+s-r,n,r,e)}function V(t,i,n,s,e,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,n,s,e),t.restore()}function B(t,i,n,s,e,r){t.beginPath(),t.roundRect?t.roundRect(i,n,s,e,r):(t.lineTo(i+s-r[1],n),0!==r[1]&&t.arcTo(i+s,n,i+s,n+r[1],r[1]),t.lineTo(i+s,n+e-r[2]),0!==r[2]&&t.arcTo(i+s,n+e,i+s-r[2],n+e,r[2]),t.lineTo(i+r[3],n+e),0!==r[3]&&t.arcTo(i,n+e,i,n+e-r[3],r[3]),t.lineTo(i,n+r[0]),0!==r[0]&&t.arcTo(i,n,i+r[0],n,r[0]))}function A(t,i,n,s,e,r,h=0,a=[0,0,0,0],l=""){if(t.save(),!h||!l||l===r)return B(t,i,n,s,e,a),t.fillStyle=r,t.fill(),void t.restore();const o=h/2;var _;B(t,i+o,n+o,s-h,e-h,(_=-o,a.map((t=>0===t?t:t+_)))),"transparent"!==r&&(t.fillStyle=r,t.fill()),"transparent"!==l&&(t.lineWidth=h,t.strokeStyle=l,t.closePath(),t.stroke()),t.restore()}function z(t,i,n,s,e,r,h){t.save(),t.globalCompositeOperation="copy";const a=t.createLinearGradient(0,0,0,e);a.addColorStop(0,r),a.addColorStop(1,h),t.fillStyle=a,t.fillRect(i,n,s,e),t.restore()}class L{constructor(t,i){this.ht(t,i)}ht(t,i){this.qt=t,this.ei=i}$t(t,i){return this.qt.It?t.P+t.A+t.I:0}st(t,i,n,s){if(!this.qt.It||0===this.qt.ri.length)return;const e=this.qt.R,r=this.ei.G,h=t.useBitmapCoordinateSpace((t=>{const h=t.context;h.font=i.k;const a=this.hi(t,i,n,s),l=a.ai;return a.li?A(h,l.oi,l._i,l.ui,l.ci,r,l.di,[l.ft,0,0,l.ft],r):A(h,l.fi,l._i,l.ui,l.ci,r,l.di,[0,l.ft,l.ft,0],r),this.qt.pi&&(h.fillStyle=e,h.fillRect(l.fi,l.mi,l.wi-l.fi,l.gi)),this.qt.Mi&&(h.fillStyle=i.D,h.fillRect(a.li?l.bi-l.di:0,l._i,l.di,l.xi-l._i)),a}));t.useMediaCoordinateSpace((({context:t})=>{const n=h.Si;t.font=i.k,t.textAlign=h.li?"right":"left",t.textBaseline="middle",t.fillStyle=e,t.fillText(this.qt.ri,n.Ci,(n._i+n.xi)/2+n.yi)}))}hi(t,i,n,s){const{context:e,bitmapSize:r,mediaSize:h,horizontalPixelRatio:a,verticalPixelRatio:l}=t,o=this.qt.pi||!this.qt.Pi?i.C:0,_=this.qt.ki?i.S:0,u=i.A+this.ei.Ti,c=i.I+this.ei.Ri,d=i.V,f=i.B,p=this.qt.ri,v=i.P,m=n.Di(e,p),w=Math.ceil(n.Ii(e,p)),g=v+u+c,M=i.S+d+f+w+o,b=Math.max(1,Math.floor(l));let x=Math.round(g*l);x%2!=b%2&&(x+=1);const S=_>0?Math.max(1,Math.floor(_*a)):0,C=Math.round(M*a),y=Math.round(o*a),P=this.ei.Ei??this.ei.Vi??this.ei.Bi,k=Math.round(P*l)-Math.floor(.5*l),T=Math.floor(k+b/2-x/2),R=T+x,D="right"===s,I=D?h.width-_:_,E=D?r.width-S:S;let V,B,A;return D?(V=E-C,B=E-y,A=I-o-d-_):(V=E+C,B=E+y,A=I+o+d),{li:D,ai:{_i:T,mi:k,xi:R,ui:C,ci:x,ft:2*a,di:S,oi:V,fi:E,wi:B,gi:b,bi:r.width},Si:{_i:T/l,xi:R/l,Ci:A,yi:m}}}}class O{constructor(t){this.Ai={Bi:0,G:"#000",Ri:0,Ti:0},this.zi={ri:"",It:!1,pi:!0,Pi:!1,Ht:"",R:"#FFF",Mi:!1,ki:!1},this.Li={ri:"",It:!1,pi:!1,Pi:!0,Ht:"",R:"#FFF",Mi:!0,ki:!0},this.St=!0,this.Oi=new(t||L)(this.zi,this.Ai),this.Ni=new(t||L)(this.Li,this.Ai)}ri(){return this.Fi(),this.zi.ri}Bi(){return this.Fi(),this.Ai.Bi}Pt(){this.St=!0}$t(t,i=!1){return Math.max(this.Oi.$t(t,i),this.Ni.$t(t,i))}Wi(){return this.Ai.Ei??null}Hi(){return this.Ai.Ei??this.Ai.Vi??this.Bi()}Ui(t){this.Ai.Vi=t??void 0}$i(){return this.Fi(),this.zi.It||this.Li.It}ji(){return this.Fi(),this.zi.It}Tt(t){return this.Fi(),this.zi.pi=this.zi.pi&&t.N().ticksVisible,this.Li.pi=this.Li.pi&&t.N().ticksVisible,this.Oi.ht(this.zi,this.Ai),this.Ni.ht(this.Li,this.Ai),this.Oi}qi(){return this.Fi(),this.Oi.ht(this.zi,this.Ai),this.Ni.ht(this.Li,this.Ai),this.Ni}Fi(){this.St&&(this.zi.pi=!0,this.Li.pi=!1,this.Yi(this.zi,this.Li,this.Ai))}}class N extends O{constructor(t,i,n){super(),this.Jt=t,this.Ki=i,this.Zi=n}Yi(t,i,n){if(t.It=!1,2===this.Jt.N().mode)return;const s=this.Jt.N().horzLine;if(!s.labelVisible)return;const e=this.Ki.zt();if(!this.Jt.It()||this.Ki.Gi()||null===e)return;const r=this.Ki.Xi().Z(s.labelBackgroundColor);n.G=r.G,t.R=r.X;const h=2/12*this.Ki.P();n.Ti=h,n.Ri=h;const a=this.Zi(this.Ki);n.Bi=a.Bi,t.ri=this.Ki.Ji(a.gt,e),t.It=!0}}const F=/[1-9]/g;class W{constructor(){this.qt=null}ht(t){this.qt=t}st(t,i){if(null===this.qt||!1===this.qt.It||0===this.qt.ri.length)return;const n=t.useMediaCoordinateSpace((({context:t})=>(t.font=i.k,Math.round(i.Qi.Ii(t,a(this.qt).ri,F)))));if(n<=0)return;const s=i.tn,e=n+2*s,r=e/2,h=this.qt.nn;let l=this.qt.Bi,o=Math.floor(l-r)+.5;o<0?(l+=Math.abs(0-o),o=Math.floor(l-r)+.5):o+e>h&&(l-=Math.abs(h-(o+e)),o=Math.floor(l-r)+.5);const _=o+e,u=Math.ceil(0+i.S+i.C+i.A+i.P+i.I);t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:n,verticalPixelRatio:s})=>{const e=a(this.qt);t.fillStyle=e.G;const r=Math.round(o*n),h=Math.round(0*s),l=Math.round(_*n),c=Math.round(u*s),d=Math.round(2*n);if(t.beginPath(),t.moveTo(r,h),t.lineTo(r,c-d),t.arcTo(r,c,r+d,c,d),t.lineTo(l-d,c),t.arcTo(l,c,l,c-d,d),t.lineTo(l,h),t.fill(),e.pi){const r=Math.round(e.Bi*n),a=h,l=Math.round((a+i.C)*s);t.fillStyle=e.R;const o=Math.max(1,Math.floor(n)),_=Math.floor(.5*n);t.fillRect(r-_,a,o,l-a)}})),t.useMediaCoordinateSpace((({context:t})=>{const n=a(this.qt),e=0+i.S+i.C+i.A+i.P/2;t.font=i.k,t.textAlign="left",t.textBaseline="middle",t.fillStyle=n.R;const r=i.Qi.Di(t,"Apr0");t.translate(o+s,e+r),t.fillText(n.ri,0,0)}))}}class H{constructor(t,i,n){this.St=!0,this.Xt=new W,this.Gt={It:!1,G:"#4c525e",R:"white",ri:"",nn:0,Bi:NaN,pi:!0},this.Ct=t,this.sn=i,this.Zi=n}Pt(){this.St=!0}Tt(){return this.St&&(this.Rt(),this.St=!1),this.Xt.ht(this.Gt),this.Xt}Rt(){const t=this.Gt;if(t.It=!1,2===this.Ct.N().mode)return;const i=this.Ct.N().vertLine;if(!i.labelVisible)return;const n=this.sn.Bt();if(n.Gi())return;t.nn=n.nn();const s=this.Zi();if(null===s)return;t.Bi=s.Bi;const e=n.en(this.Ct.Vt());t.ri=n.rn(a(e)),t.It=!0;const r=this.sn.Xi().Z(i.labelBackgroundColor);t.G=r.G,t.R=r.X,t.pi=n.N().ticksVisible}}class U{constructor(){this.hn=null,this.an=0}ln(){return this.an}_n(t){this.an=t}Ft(){return this.hn}un(t){this.hn=t}cn(t){return[]}dn(){return[]}It(){return!0}}var $;!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet",t[t.Hidden=2]="Hidden",t[t.MagnetOHLC=3]="MagnetOHLC"}($||($={}));class j extends U{constructor(t,i){super(),this.yt=null,this.fn=NaN,this.pn=0,this.vn=!1,this.mn=new Map,this.wn=!1,this.gn=new WeakMap,this.Mn=new WeakMap,this.bn=NaN,this.xn=NaN,this.Sn=NaN,this.Cn=NaN,this.sn=t,this.yn=i;this.Pn=((t,i)=>n=>{const s=i(),e=t();if(n===a(this.yt).kn())return{gt:e,Bi:s};{const t=a(n.zt());return{gt:n.Tn(s,t),Bi:s}}})((()=>this.fn),(()=>this.xn));const n=((t,i)=>()=>{const n=this.sn.Bt().Rn(t()),s=i();return n&&Number.isFinite(s)?{wt:n,Bi:s}:null})((()=>this.pn),(()=>this.ni()));this.Dn=new H(this,t,n)}N(){return this.yn}In(t,i){this.Sn=t,this.Cn=i}En(){this.Sn=NaN,this.Cn=NaN}Vn(){return this.Sn}Bn(){return this.Cn}An(t,i,n){this.wn||(this.wn=!0),this.vn=!0,this.zn(t,i,n)}Vt(){return this.pn}ni(){return this.bn}si(){return this.xn}It(){return this.vn}Ln(){this.vn=!1,this.On(),this.fn=NaN,this.bn=NaN,this.xn=NaN,this.yt=null,this.En(),this.Nn()}Fn(t){if(!this.yn.doNotSnapToHiddenSeriesIndices)return t;const i=this.sn,n=i.Bt();let s=null,e=null;for(const n of i.Wn()){const i=n.Un().Hn(t,-1);if(i){if(i.$n===t)return t;(null===s||i.$n>s)&&(s=i.$n)}const r=n.Un().Hn(t,1);if(r){if(r.$n===t)return t;(null===e||r.$nMath.abs(h-n.jt(t))));return r[a.indexOf(Math.min(...a))]}jn(t){let i=this.gn.get(t);i||(i=new I(this,t),this.gn.set(t,i));let n=this.Mn.get(t);return n||(n=new R(this.sn,this,t),this.Mn.set(t,n)),[i,n]}ti(t){return t===this.yt&&this.yn.horzLine.visible}ii(){return this.yn.vertLine.visible}qn(t,i){this.vn&&this.yt===t||this.mn.clear();const n=[];return this.yt===t&&n.push(this.Yn(this.mn,i,this.Pn)),n}dn(){return this.vn?[this.Dn]:[]}Kn(){return this.yt}Nn(){this.sn.Zn().forEach((t=>{this.gn.get(t)?.Pt(),this.Mn.get(t)?.Pt()})),this.mn.forEach((t=>t.Pt())),this.Dn.Pt()}Gn(t){return t&&!t.kn().Gi()?t.kn():null}zn(t,i,n){this.Xn(t,i,n)&&this.Nn()}Xn(t,i,n){const s=this.bn,e=this.xn,r=this.fn,h=this.pn,a=this.yt,l=this.Gn(n);this.pn=t,this.bn=isNaN(t)?NaN:this.sn.Bt().jt(t),this.yt=n;const o=null!==l?l.zt():null;return null!==l&&null!==o?(this.fn=i,this.xn=l.Nt(i,o)):(this.fn=NaN,this.xn=NaN),s!==this.bn||e!==this.xn||h!==this.pn||r!==this.fn||a!==this.yt}On(){const t=this.sn.Jn().map((t=>t.Un().Qn())).filter(v),i=0===t.length?null:Math.max(...t);this.pn=null!==i?i:NaN}Yn(t,i,n){let s=t.get(i);return void 0===s&&(s=new N(this,i,n),t.set(i,s)),s}}function q(t){return"left"===t||"right"===t}class Y{constructor(t){this.ts=new Map,this.ns=[],this.ss=t}es(t,i){const n=function(t,i){return void 0===t?i:{rs:Math.max(t.rs,i.rs),hs:t.hs||i.hs}}(this.ts.get(t),i);this.ts.set(t,n)}ls(){return this.ss}_s(t){const i=this.ts.get(t);return void 0===i?{rs:this.ss}:{rs:Math.max(this.ss,i.rs),hs:i.hs}}us(){this.cs(),this.ns=[{ds:0}]}fs(t){this.cs(),this.ns=[{ds:1,Wt:t}]}ps(t){this.vs(),this.ns.push({ds:5,Wt:t})}cs(){this.vs(),this.ns.push({ds:6})}ws(){this.cs(),this.ns=[{ds:4}]}gs(t){this.cs(),this.ns.push({ds:2,Wt:t})}Ms(t){this.cs(),this.ns.push({ds:3,Wt:t})}bs(){return this.ns}xs(t){for(const i of t.ns)this.Ss(i);this.ss=Math.max(this.ss,t.ss),t.ts.forEach(((t,i)=>{this.es(i,t)}))}static Cs(){return new Y(2)}static ys(){return new Y(3)}Ss(t){switch(t.ds){case 0:this.us();break;case 1:this.fs(t.Wt);break;case 2:this.gs(t.Wt);break;case 3:this.Ms(t.Wt);break;case 4:this.ws();break;case 5:this.ps(t.Wt);break;case 6:this.vs()}}vs(){const t=this.ns.findIndex((t=>5===t.ds));-1!==t&&this.ns.splice(t,1)}}class K{formatTickmarks(t){return t.map((t=>this.format(t)))}}const Z=".";function G(t,i){if(!u(t))return"n/a";if(!c(i))throw new TypeError("invalid length");if(i<0||i>16)throw new TypeError("invalid length");if(0===i)return t.toString();return("0000000000000000"+t.toString()).slice(-i)}class X extends K{constructor(t,i){if(super(),i||(i=1),u(t)&&c(t)||(t=100),t<0)throw new TypeError("invalid base");this.Ki=t,this.Ps=i,this.ks()}format(t){const i=t<0?"−":"";return t=Math.abs(t),i+this.Ts(t)}ks(){if(this.Rs=0,this.Ki>0&&this.Ps>0){let t=this.Ki;for(;t>1;)t/=10,this.Rs++}}Ts(t){const i=this.Ki/this.Ps;let n=Math.floor(t),s="";const e=void 0!==this.Rs?this.Rs:NaN;if(i>1){let r=+(Math.round(t*i)-n*i).toFixed(this.Rs);r>=i&&(r-=i,n+=1),s=Z+G(+r.toFixed(this.Rs)*this.Ps,e)}else n=Math.round(n*i)/i,e>0&&(s=Z+G(0,e));return n.toFixed(0)+s}}class J extends X{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class Q extends K{constructor(t){super(),this.Ds=t}format(t){let i="";return t<0&&(i="-",t=-t),t<995?i+this.Is(t):t<999995?i+this.Is(t/1e3)+"K":t<999999995?(t=1e3*Math.round(t/1e3),i+this.Is(t/1e6)+"M"):(t=1e6*Math.round(t/1e6),i+this.Is(t/1e9)+"B")}Is(t){let i;const n=Math.pow(10,this.Ds);return i=(t=Math.round(t*n)/n)>=1e-15&&t<1?t.toFixed(this.Ds).replace(/\.?0+$/,""):String(t),i.replace(/(\.[1-9]*)0+$/,((t,i)=>i))}}const tt=/[2-9]/g;class it{constructor(t=50){this.Es=0,this.Vs=1,this.Bs=1,this.As={},this.zs=new Map,this.Ls=t}Os(){this.Es=0,this.zs.clear(),this.Vs=1,this.Bs=1,this.As={}}Ii(t,i,n){return this.Ns(t,i,n).width}Di(t,i,n){const s=this.Ns(t,i,n);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}Ns(t,i,n){const s=n||tt,e=String(i).replace(s,"0");if(this.zs.has(e))return h(this.zs.get(e)).Fs;if(this.Es===this.Ls){const t=this.As[this.Bs];delete this.As[this.Bs],this.zs.delete(t),this.Bs++,this.Es--}t.save(),t.textBaseline="middle";const r=t.measureText(e);return t.restore(),0===r.width&&i.length||(this.zs.set(e,{Fs:r,Ws:this.Vs}),this.As[this.Vs]=e,this.Es++,this.Vs++),r}}class nt{constructor(t){this.Hs=null,this.M=null,this.Us="right",this.$s=t}js(t,i,n){this.Hs=t,this.M=i,this.Us=n}st(t){null!==this.M&&null!==this.Hs&&this.Hs.st(t,this.M,this.$s,this.Us)}}class st{constructor(t,i,n){this.qs=t,this.$s=new it(50),this.Ys=i,this.O=n,this.F=-1,this.Xt=new nt(this.$s)}Tt(){const t=this.O.Ks(this.Ys);if(null===t)return null;const i=t.Zs(this.Ys)?t.Gs():this.Ys.Ft();if(null===i)return null;const n=t.Xs(i);if("overlay"===n)return null;const s=this.O.Js();return s.P!==this.F&&(this.F=s.P,this.$s.Os()),this.Xt.js(this.qs.qi(),s,n),this.Xt}}class et extends y{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}Qs(t,i){if(!this.qt?.It)return null;const{ut:n,ct:s,te:e}=this.qt;return i>=n-s-7&&i<=n+s+7?{ie:this.qt,te:e}:null}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:r}){if(null===this.qt)return;if(!1===this.qt.It)return;const h=Math.round(this.qt.ut*r);h<0||h>i.height||(t.lineCap="butt",t.strokeStyle=this.qt.R,t.lineWidth=Math.floor(this.qt.ct*n),s(t,this.qt.Zt),e(t,h,0,i.width))}}class rt{constructor(t){this.ne={ut:0,R:"rgba(0, 0, 0, 0)",ct:1,Zt:0,It:!1},this.se=new et,this.St=!0,this.ee=t,this.re=t.Qt(),this.se.ht(this.ne)}Pt(){this.St=!0}Tt(){return this.ee.It()?(this.St&&(this.he(),this.St=!1),this.se):null}}class ht extends rt{constructor(t){super(t)}he(){this.ne.It=!1;const t=this.ee.Ft(),i=t.ae().ae;if(2!==i&&3!==i)return;const n=this.ee.N();if(!n.baseLineVisible||!this.ee.It())return;const s=this.ee.zt();null!==s&&(this.ne.It=!0,this.ne.ut=t.Nt(s.Wt,s.Wt),this.ne.R=n.baseLineColor,this.ne.ct=n.baseLineWidth,this.ne.Zt=n.baseLineStyle)}}class at extends y{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}le(){return this.qt}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){const s=this.qt;if(null===s)return;const e=Math.max(1,Math.floor(i)),r=e%2/2,h=Math.round(s.oe.x*i)+r,a=s.oe.y*n;t.fillStyle=s._e,t.beginPath();const l=Math.max(2,1.5*s.ue)*i;t.arc(h,a,l,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.ce,t.beginPath(),t.arc(h,a,s.ft*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=e,t.strokeStyle=s.de,t.beginPath(),t.arc(h,a,s.ft*i+e/2,0,2*Math.PI,!1),t.stroke()}}const lt=[{fe:0,pe:.25,ve:4,me:10,we:.25,ge:0,Me:.4,be:.8},{fe:.25,pe:.525,ve:10,me:14,we:0,ge:0,Me:.8,be:0},{fe:.525,pe:1,ve:14,me:14,we:0,ge:0,Me:0,be:0}];class ot{constructor(t){this.Xt=new at,this.St=!0,this.xe=!0,this.Se=performance.now(),this.Ce=this.Se-1,this.ye=t}Pe(){this.Ce=this.Se-1,this.Pt()}ke(){if(this.Pt(),2===this.ye.N().lastPriceAnimation){const t=performance.now(),i=this.Ce-t;if(i>0)return void(i<650&&(this.Ce+=2600));this.Se=t,this.Ce=t+2600}}Pt(){this.St=!0}Te(){this.xe=!0}It(){return 0!==this.ye.N().lastPriceAnimation}Re(){switch(this.ye.N().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Ce}}Tt(){return this.St?(this.Rt(),this.St=!1,this.xe=!1):this.xe&&(this.De(),this.xe=!1),this.Xt}Rt(){this.Xt.ht(null);const t=this.ye.Qt().Bt(),i=t.Ie(),n=this.ye.zt();if(null===i||null===n)return;const s=this.ye.Ee(!0);if(s.Ve||!i.Be(s.$n))return;const e={x:t.jt(s.$n),y:this.ye.Ft().Nt(s.gt,n.Wt)},r=s.R,h=this.ye.N().lineWidth,a=this.Ae(this.ze(),r);this.Xt.ht({_e:r,ue:h,ce:a.ce,de:a.de,ft:a.ft,oe:e})}De(){const t=this.Xt.le();if(null!==t){const i=this.Ae(this.ze(),t._e);t.ce=i.ce,t.de=i.de,t.ft=i.ft}}ze(){return this.Re()?performance.now()-this.Se:2599}Le(t,i,n,s){const e=n+(s-n)*i;return this.ye.Qt().Xi().Y(t,e)}Ae(t,i){const n=t%2600/2600;let s;for(const t of lt)if(n>=t.fe&&n<=t.pe){s=t;break}r(void 0!==s,"Last price animation internal logic error");const e=(n-s.fe)/(s.pe-s.fe);return{ce:this.Le(i,e,s.we,s.ge),de:this.Le(i,e,s.Me,s.be),ft:(h=e,a=s.ve,l=s.me,a+(l-a)*h)};var h,a,l}}class _t extends rt{constructor(t){super(t)}he(){const t=this.ne;t.It=!1;const i=this.ee.N();if(!i.priceLineVisible||!this.ee.It())return;const n=this.ee.Ee(0===i.priceLineSource);n.Ve||(t.It=!0,t.ut=n.Bi,t.R=this.ee.Oe(n.R),t.ct=i.priceLineWidth,t.Zt=i.priceLineStyle)}}class ut extends O{constructor(t){super(),this.Jt=t}Yi(t,i,n){t.It=!1,i.It=!1;const s=this.Jt;if(!s.It())return;const e=s.N(),r=e.lastValueVisible,h=""!==s.Ne(),a=0===e.seriesLastValueMode,l=s.Ee(!1);if(l.Ve)return;r&&(t.ri=this.Fe(l,r,a),t.It=0!==t.ri.length),(h||a)&&(i.ri=this.We(l,r,h,a),i.It=i.ri.length>0);const o=s.Oe(l.R),_=this.Jt.Qt().Xi().Z(o);n.G=_.G,n.Bi=l.Bi,i.Ht=s.Qt().Ut(l.Bi/s.Ft().$t()),t.Ht=o,t.R=_.X,i.R=_.X}We(t,i,n,s){let e="";const r=this.Jt.Ne();return n&&0!==r.length&&(e+=`${r} `),i&&s&&(e+=this.Jt.Ft().He()?t.Ue:t.$e),e.trim()}Fe(t,i,n){return i?n?this.Jt.Ft().He()?t.$e:t.Ue:t.ri:""}}function ct(t,i,n,s){const e=Number.isFinite(i),r=Number.isFinite(n);return e&&r?t(i,n):e||r?e?i:n:s}class dt{constructor(t,i){this.je=t,this.qe=i}Ye(t){return null!==t&&(this.je===t.je&&this.qe===t.qe)}Ke(){return new dt(this.je,this.qe)}Ze(){return this.je}Ge(){return this.qe}Xe(){return this.qe-this.je}Gi(){return this.qe===this.je||Number.isNaN(this.qe)||Number.isNaN(this.je)}xs(t){return null===t?this:new dt(ct(Math.min,this.Ze(),t.Ze(),-1/0),ct(Math.max,this.Ge(),t.Ge(),1/0))}Je(t){if(!u(t))return;if(0===this.qe-this.je)return;const i=.5*(this.qe+this.je);let n=this.qe-i,s=this.je-i;n*=t,s*=t,this.qe=i+n,this.je=i+s}Qe(t){u(t)&&(this.qe+=t,this.je+=t)}tr(){return{minValue:this.je,maxValue:this.qe}}static ir(t){return null===t?null:new dt(t.minValue,t.maxValue)}}class ft{constructor(t,i){this.nr=t,this.sr=i||null}er(){return this.nr}rr(){return this.sr}tr(){return{priceRange:null===this.nr?null:this.nr.tr(),margins:this.sr||void 0}}static ir(t){return null===t?null:new ft(dt.ir(t.priceRange),t.margins)}}const pt=[2,4,8,16,32,64,128,256,512],vt="Custom series with conflation reducer must have a priceValueBuilder method";class mt extends rt{constructor(t,i){super(t),this.hr=i}he(){const t=this.ne;t.It=!1;const i=this.hr.N();if(!this.ee.It()||!i.lineVisible)return;const n=this.hr.ar();null!==n&&(t.It=!0,t.ut=n,t.R=i.color,t.ct=i.lineWidth,t.Zt=i.lineStyle,t.te=this.hr.N().id)}}class wt extends O{constructor(t,i){super(),this.ye=t,this.hr=i}Yi(t,i,n){t.It=!1,i.It=!1;const s=this.hr.N(),e=s.axisLabelVisible,r=""!==s.title,h=this.ye;if(!e||!h.It())return;const a=this.hr.ar();if(null===a)return;r&&(i.ri=s.title,i.It=!0),i.Ht=h.Qt().Ut(a/h.Ft().$t()),t.ri=this.lr(s.price),t.It=!0;const l=this.ye.Qt().Xi().Z(s.axisLabelColor||s.color);n.G=l.G;const o=s.axisLabelTextColor||l.X;t.R=o,i.R=o,n.Bi=a}lr(t){const i=this.ye.zt();return null===i?"":this.ye.Ft().Ji(t,i.Wt)}}class gt{constructor(t,i){this.ye=t,this.yn=i,this._r=new mt(t,this),this.qs=new wt(t,this),this.ur=new st(this.qs,t,t.Qt())}cr(t){_(this.yn,t),this.Pt(),this.ye.Qt().dr()}N(){return this.yn}pr(){return this._r}vr(){return this.ur}mr(){return this.qs}Pt(){this._r.Pt(),this.qs.Pt()}ar(){const t=this.ye,i=t.Ft();if(t.Qt().Bt().Gi()||i.Gi())return null;const n=t.zt();return null===n?null:i.Nt(this.yn.price,n.Wt)}}class Mt{constructor(){this.wr=new WeakMap}gr(t,i,n){const s=1/i*n;if(t>=s)return 1;const e=s/t,r=Math.pow(2,Math.floor(Math.log2(e)));return Math.min(r,512)}Mr(t,i,n,s=!1,e){if(0===t.length||i<=1)return t;const r=this.br(i);if(r<=1)return t;const h=this.Sr(t);let a=h.Cr.get(r);return void 0!==a||(a=this.yr(t,r,n,s,e,h.Cr),h.Cr.set(r,a)),a}Pr(t,i,n,s,e=!1,r){if(n<1||0===t.length)return t;const h=this.Sr(t),a=h.Cr.get(n);if(!a)return this.Mr(t,n,s,e,r);const l=this.kr(t,i,n,a,e,s,r);return h.Cr.set(n,l),l}br(t){if(t<=2)return 2;for(const i of pt)if(t<=i)return i;return 512}Tr(t){if(0===t.length)return 0;const i=t[0],n=t[t.length-1];return 31*t.length+17*i.$n+13*n.$n}yr(t,i,n,s=!1,e,r=new Map){if(2===i)return this.Rr(t,2,n,s,e);const h=i/2;let a=r.get(h);return a||(a=this.yr(t,h,n,s,e,r),r.set(h,a)),this.Dr(a,n,s,e)}Rr(t,i,n,s=!1,e){const r=this.Ir(t,i,n,s,e);return this.Er(r,s)}Dr(t,i,n=!1,s){const e=this.Ir(t,2,i,n,s);return this.Er(e,n)}Ir(t,i,n,s=!1,e){const r=[];for(let h=0;h=i){const i=this.Vr(t[h],t[h+1],n,s,e);i.Br=!1,r.push(i)}else if(0===r.length)r.push(this.Ar(t[h],!0));else{const i=r[r.length-1];r[r.length-1]=this.zr(i,t[h],n,s,e)}}return r}Lr(t,i){return(t??1)+(i??1)}Vr(t,i,n,s=!1,e){if(!s||!n||!e){const n=t.Wt[1]>i.Wt[1]?t.Wt[1]:i.Wt[1],s=t.Wt[2]i.Wt[1]?t.Ur:i.Wt[1],$r:t.$rthis.Xr(t,i)))}kr(t,i,n,s,e=!1,r,h){if(0===s.length)return s;const a=t.length-1,l=Math.floor(a/n)*n;if(Math.min(l+n,t.length)-ln){const s=t.slice();return s[s.length-1]=i,this.Mr(s,n,r,e,h)}if(Math.floor((a-1)/n)===Math.floor(a/n)||1===s.length){const o=Math.min(l+n,t.length),_=o-l;if(_<=0)return s;const u=1===_?this.Ar(l===a?i:t[l],!0):this.Zr(t,l,o,a,i,r,e,h);return s[s.length-1]=this.Xr(u,e),s}{const s=t.slice();return s[s.length-1]=i,this.Mr(s,n,r,e,h)}}Ar(t,i=!1){return{Or:t.$n,Nr:t.$n,Fr:t.wt,Wr:t.wt,Hr:t.Wt[0],Ur:t.Wt[1],$r:t.Wt[2],jr:t.Wt[3],qr:t.qr??1,Yr:t.le,Br:i}}Sr(t){const i=this.Jr(t),n=this.Tr(t);return i.Qr!==n&&(i.Cr.clear(),i.Qr=n),i}Jr(t){let i=this.wr.get(t);return void 0===i&&(i={Qr:this.Tr(t),Cr:new Map},this.wr.set(t,i)),i}}class bt extends U{constructor(t){super(),this.sn=t}Qt(){return this.sn}}const xt={Bar:(t,i,n,s)=>{const e=i.upColor,r=i.downColor,h=a(t(n,s)),o=l(h.Wt[0])<=l(h.Wt[3]);return{th:h.R??(o?e:r)}},Candlestick:(t,i,n,s)=>{const e=i.upColor,r=i.downColor,h=i.borderUpColor,o=i.borderDownColor,_=i.wickUpColor,u=i.wickDownColor,c=a(t(n,s)),d=l(c.Wt[0])<=l(c.Wt[3]);return{th:c.R??(d?e:r),ih:c.Ht??(d?h:o),nh:c.sh??(d?_:u)}},Custom:(t,i,n,s)=>({th:a(t(n,s)).R??i.color}),Area:(t,i,n,s)=>{const e=a(t(n,s));return{th:e.vt??i.lineColor,vt:e.vt??i.lineColor,eh:e.eh??i.topColor,rh:e.rh??i.bottomColor}},Baseline:(t,i,n,s)=>{const e=a(t(n,s));return{th:e.Wt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,hh:e.hh??i.topLineColor,ah:e.ah??i.bottomLineColor,oh:e.oh??i.topFillColor1,_h:e._h??i.topFillColor2,uh:e.uh??i.bottomFillColor1,dh:e.dh??i.bottomFillColor2}},Line:(t,i,n,s)=>{const e=a(t(n,s));return{th:e.R??i.color,vt:e.R??i.color}},Histogram:(t,i,n,s)=>({th:a(t(n,s)).R??i.color})};class St{constructor(t){this.fh=(t,i)=>void 0!==i?i.Wt:this.ye.Un().ph(t),this.ye=t,this.mh=xt[t.wh()]}gh(t,i){return this.mh(this.fh,this.ye.N(),t,i)}}function Ct(t,i,n,s,e=0,r=i.length){let h=r-e;for(;0>1,a=e+r;s(i[a],n)===t?(e=a+1,h-=r+1):h=r}return e}const yt=Ct.bind(null,!0),Pt=Ct.bind(null,!1);var kt;!function(t){t[t.NearestLeft=-1]="NearestLeft",t[t.None=0]="None",t[t.NearestRight=1]="NearestRight"}(kt||(kt={}));const Tt=30;class Rt{constructor(){this.Mh=[],this.bh=new Map,this.xh=new Map,this.Sh=[]}Ch(){return this.yh()>0?this.Mh[this.Mh.length-1]:null}Ph(){return this.yh()>0?this.kh(0):null}Qn(){return this.yh()>0?this.kh(this.Mh.length-1):null}yh(){return this.Mh.length}Gi(){return 0===this.yh()}Be(t){return null!==this.Th(t,0)}ph(t){return this.Hn(t)}Hn(t,i=0){const n=this.Th(t,i);return null===n?null:{...this.Rh(n),$n:this.kh(n)}}Dh(){return this.Mh}Ih(t,i,n){if(this.Gi())return null;let s=null;for(const e of n){s=Dt(s,this.Eh(t,i,e))}return s}ht(t){this.xh.clear(),this.bh.clear(),this.Mh=t,this.Sh=t.map((t=>t.$n))}Vh(){return this.Sh}kh(t){return this.Mh[t].$n}Rh(t){return this.Mh[t]}Th(t,i){const n=this.Bh(t);if(null===n&&0!==i)switch(i){case-1:return this.Ah(t);case 1:return this.zh(t);default:throw new TypeError("Unknown search mode")}return n}Ah(t){let i=this.Lh(t);return i>0&&(i-=1),i!==this.Mh.length&&this.kh(i)t.$nt.$n>i))}Nh(t,i,n){let s=null;for(let e=t;es.Wh&&(s.Wh=t)))}return s}Eh(t,i,n){if(this.Gi())return null;let s=null;const e=a(this.Ph()),r=a(this.Qn()),h=Math.max(t,e),l=Math.min(i,r),o=Math.ceil(h/Tt)*Tt,_=Math.max(o,Math.floor(l/Tt)*Tt);{const t=this.Lh(h),e=this.Oh(Math.min(l,o,i));s=Dt(s,this.Nh(t,e,n))}let u=this.bh.get(n);void 0===u&&(u=new Map,this.bh.set(n,u));for(let t=Math.max(o+1,h);t<_;t+=Tt){const i=Math.floor(t/Tt);let e=u.get(i);if(void 0===e){const t=this.Lh(i*Tt),s=this.Oh((i+1)*Tt-1);e=this.Nh(t,s,n),u.set(i,e)}s=Dt(s,e)}{const t=this.Lh(_),i=this.Oh(l);s=Dt(s,this.Nh(t,i,n))}return s}}function Dt(t,i){if(null===t)return i;if(null===i)return t;return{Fh:Math.min(t.Fh,i.Fh),Wh:Math.max(t.Wh,i.Wh)}}function It(){return new Rt}const Et={setLineStyle:s};class Vt{constructor(t){this.Hh=t}st(t,i,n){this.Hh.draw(t,Et)}Uh(t,i,n){this.Hh.drawBackground?.(t,Et)}}class Bt{constructor(t){this.zs=null,this.$h=t}Tt(){const t=this.$h.renderer();if(null===t)return null;if(this.zs?.jh===t)return this.zs.qh;const i=new Vt(t);return this.zs={jh:t,qh:i},i}Yh(){return this.$h.zOrder?.()??"normal"}}class At{constructor(t){this.Kh=null,this.Zh=t}Gh(){return this.Zh}Nn(){this.Zh.updateAllViews?.()}jn(){const t=this.Zh.paneViews?.()??[];if(this.Kh?.jh===t)return this.Kh.qh;const i=t.map((t=>new Bt(t)));return this.Kh={jh:t,qh:i},i}Qs(t,i){return this.Zh.hitTest?.(t,i)??null}}let zt=class extends At{cn(){return[]}};class Lt{constructor(t){this.Hh=t}st(t,i,n){this.Hh.draw(t,Et)}Uh(t,i,n){this.Hh.drawBackground?.(t,Et)}}class Ot{constructor(t){this.zs=null,this.$h=t}Tt(){const t=this.$h.renderer();if(null===t)return null;if(this.zs?.jh===t)return this.zs.qh;const i=new Lt(t);return this.zs={jh:t,qh:i},i}Yh(){return this.$h.zOrder?.()??"normal"}}function Nt(t){return{ri:t.text(),Bi:t.coordinate(),Ei:t.fixedCoordinate?.(),R:t.textColor(),G:t.backColor(),It:t.visible?.()??!0,pi:t.tickVisible?.()??!0}}class Ft{constructor(t,i){this.Xt=new W,this.Xh=t,this.Jh=i}Tt(){return this.Xt.ht({nn:this.Jh.nn(),...Nt(this.Xh)}),this.Xt}}class Wt extends O{constructor(t,i){super(),this.Xh=t,this.Ki=i}Yi(t,i,n){const s=Nt(this.Xh);n.G=s.G,t.R=s.R;const e=2/12*this.Ki.P();n.Ti=e,n.Ri=e,n.Bi=s.Bi,n.Ei=s.Ei,t.ri=s.ri,t.It=s.It,t.pi=s.pi}}class Ht extends At{constructor(t,i){super(t),this.Qh=null,this.ta=null,this.ia=null,this.na=null,this.ye=i}dn(){const t=this.Zh.timeAxisViews?.()??[];if(this.Qh?.jh===t)return this.Qh.qh;const i=this.ye.Qt().Bt(),n=t.map((t=>new Ft(t,i)));return this.Qh={jh:t,qh:n},n}qn(){const t=this.Zh.priceAxisViews?.()??[];if(this.ta?.jh===t)return this.ta.qh;const i=this.ye.Ft(),n=t.map((t=>new Wt(t,i)));return this.ta={jh:t,qh:n},n}sa(){const t=this.Zh.priceAxisPaneViews?.()??[];if(this.ia?.jh===t)return this.ia.qh;const i=t.map((t=>new Ot(t)));return this.ia={jh:t,qh:i},i}ea(){const t=this.Zh.timeAxisPaneViews?.()??[];if(this.na?.jh===t)return this.na.qh;const i=t.map((t=>new Ot(t)));return this.na={jh:t,qh:i},i}ra(t,i){return this.Zh.autoscaleInfo?.(t,i)??null}}function Ut(t,i,n,s){t.forEach((t=>{i(t).forEach((t=>{t.Yh()===n&&s.push(t)}))}))}function $t(t){return t.jn()}function jt(t){return t.sa()}function qt(t){return t.ea()}const Yt=["Area","Line","Baseline"];class Kt extends bt{constructor(t,i,n,s,e){super(t),this.qt=It(),this._r=new _t(this),this.ha=[],this.aa=new ht(this),this.la=null,this.oa=null,this._a=null,this.ua=[],this.ca=new Mt,this.da=new Map,this.fa=null,this.yn=n,this.pa=i;const r=new ut(this);if(this.mn=[r],this.ur=new st(r,this,t),Yt.includes(this.pa)&&(this.la=new ot(this)),this.va(),this.$h=s(this,this.Qt(),e),"Custom"===this.pa){const t=this.$h;t.ma&&this.wa(t.ma)}}m(){null!==this._a&&clearTimeout(this._a)}Oe(t){return this.yn.priceLineColor||t}Ee(t){const i={Ve:!0},n=this.Ft();if(this.Qt().Bt().Gi()||n.Gi()||this.qt.Gi())return i;const s=this.Qt().Bt().Ie(),e=this.zt();if(null===s||null===e)return i;let r,h;if(t){const t=this.qt.Ch();if(null===t)return i;r=t,h=t.$n}else{const t=this.qt.Hn(s.bi(),-1);if(null===t)return i;if(r=this.qt.ph(t.$n),null===r)return i;h=t.$n}const a=r.Wt[3],l=this.ga().gh(h,{Wt:r}),o=n.Nt(a,e.Wt);return{Ve:!1,gt:a,ri:n.Ji(a,e.Wt),Ue:n.Ma(a),$e:n.ba(a,e.Wt),R:l.th,Bi:o,$n:h}}ga(){return null!==this.oa||(this.oa=new St(this)),this.oa}N(){return this.yn}cr(t){const i=this.Qt(),{priceScaleId:n,visible:s,priceFormat:e}=t;void 0!==n&&n!==this.yn.priceScaleId&&i.xa(this,n),void 0!==s&&s!==this.yn.visible&&i.Sa();const r=void 0!==t.conflationThresholdFactor;_(this.yn,t),r&&(this.da.clear(),this.Qt().dr()),void 0!==e&&(this.va(),i.Ca()),i.ya(this),i.Pa(),this.$h.Pt("options")}ht(t,i){this.qt.ht(t),this.da.clear();const n=this.Qt().Bt().N();n.enableConflation&&n.precomputeConflationOnInit&&this.ka(n.precomputeConflationPriority),this.$h.Pt("data"),null!==this.la&&(i&&i.Ta?this.la.ke():0===t.length&&this.la.Pe());const s=this.Qt().Ks(this);this.Qt().Ra(s),this.Qt().ya(this),this.Qt().Pa(),this.Qt().dr()}Da(t){const i=new gt(this,t);return this.ha.push(i),this.Qt().ya(this),i}Ia(t){const i=this.ha.indexOf(t);-1!==i&&this.ha.splice(i,1),this.Qt().ya(this)}Ea(){return this.ha}wh(){return this.pa}zt(){const t=this.Va();return null===t?null:{Wt:t.Wt[3],Ba:t.wt}}Va(){const t=this.Qt().Bt().Ie();if(null===t)return null;const i=t.Aa();return this.qt.Hn(i,1)}Un(){return this.qt}wa(t){this.fa=t,this.da.clear()}za(){return!!this.Qt().Bt().N().enableConflation&&this.La()>1}Pr(t){if(!this.za())return;const i=this.La();if(!this.da.has(i))return;const n="Custom"===this.pa,s=n&&this.fa||void 0,e=n&&this.$h.Oa?t=>{const i=t,n=this.$h.Oa(i);return Array.isArray(n)?n:["number"==typeof n?n:0]}:void 0,r=this.ca.Pr(this.qt.Dh(),t,i,s,n,e),h=It();h.ht(r),this.da.set(i,h)}Na(){const t=this.Qt().Bt().N().enableConflation;if("Custom"===this.pa&&null===this.fa)return this.qt;if(!t)return this.qt;const i=this.La(),n=this.da.get(i);if(n)return n;this.Fa(i);return this.da.get(i)??this.qt}Wa(t){const i=this.qt.ph(t);return null===i?null:"Bar"===this.pa||"Candlestick"===this.pa||"Custom"===this.pa?{Hr:i.Wt[0],Ur:i.Wt[1],$r:i.Wt[2],jr:i.Wt[3]}:i.Wt[3]}Ha(t){const i=[];Ut(this.ua,$t,"top",i);const n=this.la;return null!==n&&n.It()?(null===this._a&&n.Re()&&(this._a=setTimeout((()=>{this._a=null,this.Qt().Ua()}),0)),n.Te(),i.unshift(n),i):i}jn(){const t=[];this.$a()||t.push(this.aa),t.push(this.$h,this._r);const i=this.ha.map((t=>t.pr()));return t.push(...i),Ut(this.ua,$t,"normal",t),t}ja(){return this.qa($t,"bottom")}Ya(t){return this.qa(jt,t)}Ka(t){return this.qa(qt,t)}Za(t,i){return this.ua.map((n=>n.Qs(t,i))).filter((t=>null!==t))}cn(){return[this.ur,...this.ha.map((t=>t.vr()))]}qn(t,i){if(i!==this.hn&&!this.$a())return[];const n=[...this.mn];for(const t of this.ha)n.push(t.mr());return this.ua.forEach((t=>{n.push(...t.qn())})),n}dn(){const t=[];return this.ua.forEach((i=>{t.push(...i.dn())})),t}ra(t,i){if(void 0!==this.yn.autoscaleInfoProvider){const n=this.yn.autoscaleInfoProvider((()=>{const n=this.Ga(t,i);return null===n?null:n.tr()}));return ft.ir(n)}return this.Ga(t,i)}jh(){const t=this.yn.priceFormat;return t.base??1/t.minMove}Xa(){return this.Ja}Nn(){this.$h.Pt();for(const t of this.mn)t.Pt();for(const t of this.ha)t.Pt();this._r.Pt(),this.aa.Pt(),this.la?.Pt(),this.ua.forEach((t=>t.Nn()))}Ft(){return a(super.Ft())}At(t){if(!(("Line"===this.pa||"Area"===this.pa||"Baseline"===this.pa)&&this.yn.crosshairMarkerVisible))return null;const i=this.qt.ph(t);if(null===i)return null;return{gt:i.Wt[3],ft:this.Qa(),Ht:this.tl(),Ot:this.il(),Lt:this.nl(t)}}Ne(){return this.yn.title}It(){return this.yn.visible}sl(t){this.ua.push(new Ht(t,this))}el(t){this.ua=this.ua.filter((i=>i.Gh()!==t))}rl(){if("Custom"===this.pa)return t=>this.$h.Oa(t)}hl(){if("Custom"===this.pa)return t=>this.$h.al(t)}ll(){return this.qt.Vh()}$a(){return!q(this.Ft().ol())}Ga(t,i){if(!c(t)||!c(i)||this.qt.Gi())return null;const n="Line"===this.pa||"Area"===this.pa||"Baseline"===this.pa||"Histogram"===this.pa?[3]:[2,1],s=this.qt.Ih(t,i,n);let e=null!==s?new dt(s.Fh,s.Wh):null,r=null;if("Histogram"===this.wh()){const t=this.yn.base,i=new dt(t,t);e=null!==e?e.xs(i):i}return this.ua.forEach((n=>{const s=n.ra(t,i);if(s?.priceRange){const t=new dt(s.priceRange.minValue,s.priceRange.maxValue);e=null!==e?e.xs(t):t}s?.margins&&(r=s.margins)})),new ft(e,r)}Qa(){switch(this.pa){case"Line":case"Area":case"Baseline":return this.yn.crosshairMarkerRadius}return 0}tl(){switch(this.pa){case"Line":case"Area":case"Baseline":{const t=this.yn.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}il(){switch(this.pa){case"Line":case"Area":case"Baseline":return this.yn.crosshairMarkerBorderWidth}return 0}nl(t){switch(this.pa){case"Line":case"Area":case"Baseline":{const t=this.yn.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.ga().gh(t).th}va(){switch(this.yn.priceFormat.type){case"custom":{const t=this.yn.priceFormat.formatter;this.Ja={format:t,formatTickmarks:this.yn.priceFormat.tickmarksFormatter??(i=>i.map(t))};break}case"volume":this.Ja=new Q(this.yn.priceFormat.precision);break;case"percent":this.Ja=new J(this.yn.priceFormat.precision);break;default:{const t=Math.pow(10,this.yn.priceFormat.precision);this.Ja=new X(t,this.yn.priceFormat.minMove*t)}}null!==this.hn&&this.hn._l()}qa(t,i){const n=[];return Ut(this.ua,t,i,n),n}La(){const{ul:t,cl:i,dl:n}=this.fl();return this.ca.gr(t,i,n)}fl(){const t=this.Qt().Bt(),i=t.ul(),n=window.devicePixelRatio||1,s=t.N().conflationThresholdFactor;return{ul:i,cl:n,dl:this.yn.conflationThresholdFactor??s??1}}pl(t){const i=this.qt.Dh();let n;if("Custom"===this.pa&&null!==this.fa){const s=this.rl();if(!s)throw new Error(vt);n=this.ca.Mr(i,t,this.fa,!0,(t=>s(t)))}else n=this.ca.Mr(i,t);const s=It();return s.ht(n),s}Fa(t){const i=this.pl(t);this.da.set(t,i)}ka(t){if("Custom"===this.pa&&(null===this.fa||!this.rl()))return;this.da.clear();const i=this.Qt().Bt().vl();for(const n of i){const i=()=>{this.ml(n)},s="object"==typeof window&&window||"object"==typeof self&&self;s?.gl?.wl?s.gl.wl((()=>{i()}),{Ml:t}):Promise.resolve().then((()=>i()))}}ml(t){if(this.da.has(t))return;if(0===this.qt.Dh().length)return;const i=this.pl(t);this.da.set(t,i)}}const Zt=[3],Gt=[0,1,2,3];class Xt{constructor(t){this.yn=t}bl(t,i,n){let s=t;if(0===this.yn.mode)return s;const e=n.kn(),r=e.zt();if(null===r)return s;const h=e.Nt(t,r),a=n.xl().filter((t=>t instanceof Kt)).reduce(((t,s)=>{if(n.Zs(s)||!s.It())return t;const e=s.Ft(),r=s.Un();if(e.Gi()||!r.Be(i))return t;const h=r.ph(i);if(null===h)return t;const a=l(s.zt()),o=3===this.yn.mode?Gt:Zt;return t.concat(o.map((t=>e.Nt(h.Wt[t],a.Wt))))}),[]);if(0===a.length)return s;a.sort(((t,i)=>Math.abs(t-h)-Math.abs(i-h)));const o=a[0];return s=e.Tn(o,r),s}}function Jt(t,i,n){return Math.min(Math.max(t,i),n)}function Qt(t,i,n){return i-t<=n}function ti(t){const i=Math.ceil(t);return i%2==0?i-1:i}class ii extends y{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:e}){if(null===this.qt)return;const r=Math.max(1,Math.floor(n));t.lineWidth=r,function(t,i){t.save(),t.lineWidth%2&&t.translate(.5,.5),i(),t.restore()}(t,(()=>{const h=a(this.qt);if(h.Sl){t.strokeStyle=h.Cl,s(t,h.yl),t.beginPath();for(const s of h.Pl){const e=Math.round(s.kl*n);t.moveTo(e,-r),t.lineTo(e,i.height+r)}t.stroke()}if(h.Tl){t.strokeStyle=h.Rl,s(t,h.Dl),t.beginPath();for(const n of h.Il){const s=Math.round(n.kl*e);t.moveTo(-r,s),t.lineTo(i.width+r,s)}t.stroke()}}))}}class ni{constructor(t){this.Xt=new ii,this.St=!0,this.yt=t}Pt(){this.St=!0}Tt(){if(this.St){const t=this.yt.Qt().N().grid,i={Tl:t.horzLines.visible,Sl:t.vertLines.visible,Rl:t.horzLines.color,Cl:t.vertLines.color,Dl:t.horzLines.style,yl:t.vertLines.style,Il:this.yt.kn().El(),Pl:(this.yt.Qt().Bt().El()||[]).map((t=>({kl:t.coord})))};this.Xt.ht(i),this.St=!1}return this.Xt}}class si{constructor(t){this.$h=new ni(t)}pr(){return this.$h}}const ei={Vl:4,Bl:1e-4};function ri(t,i){const n=100*(t-i)/i;return i<0?-n:n}function hi(t,i){const n=ri(t.Ze(),i),s=ri(t.Ge(),i);return new dt(n,s)}function ai(t,i){const n=100*(t-i)/i+100;return i<0?-n:n}function li(t,i){const n=ai(t.Ze(),i),s=ai(t.Ge(),i);return new dt(n,s)}function oi(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.log10(n+i.Bl)+i.Vl;return t<0?-s:s}function _i(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.pow(10,n-i.Vl)-i.Bl;return t<0?-s:s}function ui(t,i){if(null===t)return null;const n=oi(t.Ze(),i),s=oi(t.Ge(),i);return new dt(n,s)}function ci(t,i){if(null===t)return null;const n=_i(t.Ze(),i),s=_i(t.Ge(),i);return new dt(n,s)}function di(t){if(null===t)return ei;const i=Math.abs(t.Ge()-t.Ze());if(i>=1||i<1e-15)return ei;const n=Math.ceil(Math.abs(Math.log10(i))),s=ei.Vl+n;return{Vl:s,Bl:1/Math.pow(10,s)}}class fi{constructor(t,i){if(this.Al=t,this.zl=i,function(t){if(t<0)return!1;if(t>1e18)return!0;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.Al))this.Ll=[2,2.5,2];else{this.Ll=[];for(let t=this.Al;1!==t;){if(t%2==0)this.Ll.push(2),t/=2;else{if(t%5!=0)throw new Error("unexpected base");this.Ll.push(2,2.5),t/=5}if(this.Ll.length>100)throw new Error("something wrong with base")}}}Ol(t,i,n){const s=0===this.Al?0:1/this.Al;let e=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,h=this.zl[0];for(;;){const t=Qt(e,s,1e-14)&&e>s+1e-14,i=Qt(e,n*h,1e-14),a=Qt(e,1,1e-14);if(!(t&&i&&a))break;e/=h,h=this.zl[++r%this.zl.length]}if(e<=s+1e-14&&(e=s),e=Math.max(1,e),this.Ll.length>0&&(a=e,l=1,o=1e-14,Math.abs(a-l)s+1e-14;)e/=h,h=this.Ll[++r%this.Ll.length];var a,l,o;return e}}class pi{constructor(t,i,n,s){this.Nl=[],this.Ki=t,this.Al=i,this.Fl=n,this.Wl=s}Ol(t,i){if(tt.Gl)),c=this.Ki.Xl(u);for(let t=0;t=s?1:-1;let _=null,u=0;for(let c=n-l;c>s;c-=i){const n=this.Wl(c,t,!0);null!==_&&Math.abs(n-_)r||(u0&&h[0].kl-a.kl0&&l.kl-h[h.length-1].kla(t.ln())-a(i.ln())))}var mi;!function(t){t[t.Normal=0]="Normal",t[t.Logarithmic=1]="Logarithmic",t[t.Percentage=2]="Percentage",t[t.IndexedTo100=3]="IndexedTo100"}(mi||(mi={}));const wi=new J,gi=new X(100,1);class Mi{constructor(t,i,n,s,e){this.eo=0,this.ro=null,this.nr=null,this.ho=null,this.ao={lo:!1,oo:null},this._o=!1,this.uo=0,this.co=0,this.do=new o,this.fo=new o,this.po=[],this.vo=null,this.mo=null,this.wo=null,this.Mo=null,this.bo=null,this.Ja=gi,this.xo=di(null),this.So=t,this.yn=i,this.Co=n,this.yo=s,this.Po=e,this.ko=new pi(this,100,this.To.bind(this),this.Ro.bind(this))}ol(){return this.So}N(){return this.yn}cr(t){if(_(this.yn,t),this._l(),void 0!==t.mode&&this.Do({ae:t.mode}),void 0!==t.scaleMargins){const i=h(t.scaleMargins.top),n=h(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(n<0||n>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${n}`);if(i+n>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+n}`);this.Io(),this.wo=null}}Eo(){return this.yn.autoScale}Vo(){return this._o}io(){return 1===this.yn.mode}He(){return 2===this.yn.mode}Bo(){return 3===this.yn.mode}so(){return this.xo}ae(){return{hs:this.yn.autoScale,Ao:this.yn.invertScale,ae:this.yn.mode}}Do(t){const i=this.ae();let n=null;void 0!==t.hs&&(this.yn.autoScale=t.hs),void 0!==t.ae&&(this.yn.mode=t.ae,2!==t.ae&&3!==t.ae||(this.yn.autoScale=!0),this.ao.lo=!1),1===i.ae&&t.ae!==i.ae&&(!function(t,i){if(null===t)return!1;const n=_i(t.Ze(),i),s=_i(t.Ge(),i);return isFinite(n)&&isFinite(s)}(this.nr,this.xo)?this.yn.autoScale=!0:(n=ci(this.nr,this.xo),null!==n&&this.zo(n))),1===t.ae&&t.ae!==i.ae&&(n=ui(this.nr,this.xo),null!==n&&this.zo(n));const s=i.ae!==this.yn.mode;s&&(2===i.ae||this.He())&&this._l(),s&&(3===i.ae||this.Bo())&&this._l(),void 0!==t.Ao&&i.Ao!==t.Ao&&(this.yn.invertScale=t.Ao,this.Lo()),this.fo.p(i,this.ae())}Oo(){return this.fo}P(){return this.Co.fontSize}$t(){return this.eo}No(t){this.eo!==t&&(this.eo=t,this.Io(),this.wo=null)}Fo(){if(this.ro)return this.ro;const t=this.$t()-this.Wo()-this.Ho();return this.ro=t,t}er(){return this.Uo(),this.nr}zo(t,i){const n=this.nr;(i||null===n&&null!==t||null!==n&&!n.Ye(t))&&(this.wo=null,this.nr=t)}$o(t){this.zo(t),this.jo(null!==t)}Gi(){return this.Uo(),0===this.eo||!this.nr||this.nr.Gi()}qo(t){return this.Ao()?t:this.$t()-1-t}Nt(t,i){return this.He()?t=ri(t,i):this.Bo()&&(t=ai(t,i)),this.Ro(t,i)}Yo(t,i,n){this.Uo();const s=this.Ho(),e=a(this.er()),r=e.Ze(),h=e.Ge(),l=this.Fo()-1,o=this.Ao(),_=l/(h-r),u=void 0===n?0:n.from,c=void 0===n?t.length:n.to,d=this.Ko();for(let n=u;nt.Nn()))}ql(){return this.yn.ensureEdgeTickMarksVisible&&this.Eo()}Kl(){return this.P()/2}_l(){this.wo=null;let t=1/0;this.vo=null;for(const i of this.po)i.ln()oi(t,this.xo):null}g_(t,i,n){return void 0===i?(void 0===n&&(n=this.Xa()),n.format(t)):i(t)}M_(t,i,n){return void 0===i?(void 0===n&&(n=this.Xa()),n.formatTickmarks(t)):i(t)}lr(t,i){return this.g_(t,this.yo.priceFormatter,i)}f_(t,i){const n=this.yo.priceFormatter;return this.M_(t,this.yo.tickmarksPriceFormatter??(n?t=>t.map(n):void 0),i)}c_(t,i){return this.g_(t,this.yo.percentageFormatter,i)}d_(t,i){const n=this.yo.percentageFormatter;return this.M_(t,this.yo.tickmarksPercentageFormatter??(n?t=>t.map(n):void 0),i)}}function bi(t){return t instanceof Kt}class xi{constructor(t,i){this.po=[],this.b_=new Map,this.eo=0,this.x_=0,this.S_=1,this.mo=null,this.C_=!1,this.y_=new o,this.ua=[],this.Jh=t,this.sn=i,this.P_=new si(this);const n=i.N();this.k_=this.T_("left",n.leftPriceScale),this.R_=this.T_("right",n.rightPriceScale),this.k_.Oo().i(this.D_.bind(this,this.k_),this),this.R_.Oo().i(this.D_.bind(this,this.R_),this),this.I_(n)}I_(t){if(t.leftPriceScale&&this.k_.cr(t.leftPriceScale),t.rightPriceScale&&this.R_.cr(t.rightPriceScale),t.localization&&(this.k_._l(),this.R_._l()),t.overlayPriceScales){const i=Array.from(this.b_.values());for(const n of i){const i=a(n[0].Ft());i.cr(t.overlayPriceScales),t.localization&&i._l()}}}E_(t){switch(t){case"left":return this.k_;case"right":return this.R_}return this.b_.has(t)?h(this.b_.get(t))[0].Ft():null}m(){this.Qt().V_().u(this),this.k_.Oo().u(this),this.R_.Oo().u(this),this.po.forEach((t=>{t.m&&t.m()})),this.ua=this.ua.filter((t=>{const i=t.Gh();return i.detached&&i.detached(),!1})),this.y_.p()}B_(){return this.S_}A_(t){this.S_=t}Qt(){return this.sn}nn(){return this.x_}$t(){return this.eo}z_(t){this.x_=t,this.L_()}No(t){this.eo=t,this.k_.No(t),this.R_.No(t),this.po.forEach((i=>{if(this.Zs(i)){const n=i.Ft();null!==n&&n.No(t)}})),this.L_()}O_(t){this.C_=t}N_(){return this.C_}F_(){return this.po.filter(bi)}xl(){return this.po}Zs(t){const i=t.Ft();return null===i||this.k_!==i&&this.R_!==i}i_(t,i,n){this.W_(t,i,n?t.ln():this.po.length)}s_(t,i){const n=this.po.indexOf(t);r(-1!==n,"removeDataSource: invalid data source"),this.po.splice(n,1),i||this.po.forEach(((t,i)=>t._n(i)));const s=a(t.Ft()).ol();if(this.b_.has(s)){const i=h(this.b_.get(s)),n=i.indexOf(t);-1!==n&&(i.splice(n,1),0===i.length&&this.b_.delete(s))}const e=t.Ft();e&&e.xl().indexOf(t)>=0&&(e.s_(t),this.H_(e)),this.mo=null}Xs(t){return t===this.k_?"left":t===this.R_?"right":"overlay"}U_(){return this.k_}j_(){return this.R_}q_(t,i){t.h_(i)}Y_(t,i){t.a_(i),this.L_()}K_(t){t.l_()}Z_(t,i){t.o_(i)}G_(t,i){t.__(i),this.L_()}X_(t){t.u_()}L_(){this.po.forEach((t=>{t.Nn()}))}kn(){let t=null;return this.sn.N().rightPriceScale.visible&&0!==this.R_.xl().length?t=this.R_:this.sn.N().leftPriceScale.visible&&0!==this.k_.xl().length?t=this.k_:0!==this.po.length&&(t=this.po[0].Ft()),null===t&&(t=this.R_),t}Gs(){let t=null;return this.sn.N().rightPriceScale.visible?t=this.R_:this.sn.N().leftPriceScale.visible&&(t=this.k_),t}H_(t){null!==t&&t.Eo()&&this.J_(t)}Q_(t){const i=this.Jh.Ie();t.Do({hs:!0}),null!==i&&t.v_(i),this.L_()}tu(){this.J_(this.k_),this.J_(this.R_)}iu(){this.H_(this.k_),this.H_(this.R_),this.po.forEach((t=>{this.Zs(t)&&this.H_(t.Ft())})),this.L_(),this.sn.dr()}Dt(){return null===this.mo&&(this.mo=vi(this.po)),this.mo}nu(t,i){i=Jt(i,0,this.po.length-1);const n=this.po.indexOf(t);r(-1!==n,"setSeriesOrder: invalid data source"),this.po.splice(n,1),this.po.splice(i,0,t),this.po.forEach(((t,i)=>t._n(i))),this.mo=null;for(const t of[this.k_,this.R_])t.n_(),t._l();this.sn.dr()}Et(){return this.Dt().filter(bi)}su(){return this.y_}eu(){return this.P_}sl(t){this.ua.push(new zt(t))}el(t){this.ua=this.ua.filter((i=>i.Gh()!==t)),t.detached&&t.detached(),this.sn.dr()}ru(){return this.ua}Za(t,i){return this.ua.map((n=>n.Qs(t,i))).filter((t=>null!==t))}J_(t){const i=t.p_();if(i&&i.length>0&&!this.Jh.Gi()){const i=this.Jh.Ie();null!==i&&t.v_(i)}t.Nn()}W_(t,i,n){let s=this.E_(i);if(null===s&&(s=this.T_(i,this.sn.N().overlayPriceScales)),this.po.splice(n,0,t),!q(i)){const n=this.b_.get(i)||[];n.push(t),this.b_.set(i,n)}t._n(n),s.i_(t),t.un(s),this.H_(s),this.mo=null}D_(t,i,n){i.ae!==n.ae&&this.J_(t)}T_(t,i){const n={visible:!0,autoScale:!0,...p(i)},s=new Mi(t,n,this.sn.N().layout,this.sn.N().localization,this.sn.Xi());return s.No(this.$t()),s}}function Si(t){return{hu:t.hu,au:{te:t.lu.externalId},ou:t.lu.cursorStyle}}function Ci(t,i,n,s){for(const e of t){const t=e.Tt(s);if(null!==t&&t.Qs){const s=t.Qs(i,n);if(null!==s)return{_u:e,au:s}}}return null}function yi(t){return void 0!==t.jn}function Pi(t,i,n){const s=[t,...t.Dt()],e=function(t,i,n){let s,e;for(const a of t){const t=a.Za?.(i,n)??[];for(const i of t)r=i.zOrder,h=s?.zOrder,(!h||"top"===r&&"top"!==h||"normal"===r&&"bottom"===h)&&(s=i,e=a)}var r,h;return s&&e?{lu:s,hu:e}:null}(s,i,n);if("top"===e?.lu.zOrder)return Si(e);for(const r of s){if(e&&e.hu===r&&"bottom"!==e.lu.zOrder&&!e.lu.isBackground)return Si(e);if(yi(r)){const s=Ci(r.jn(t),i,n,t);if(null!==s)return{hu:r,_u:s._u,au:s.au}}if(e&&e.hu===r&&"bottom"!==e.lu.zOrder&&e.lu.isBackground)return Si(e)}return e?.lu?Si(e):null}class ki{constructor(t,i,n=50){this.Es=0,this.Vs=1,this.Bs=1,this.zs=new Map,this.As=new Map,this.uu=t,this.cu=i,this.Ls=n}du(t){const i=t.time,n=this.cu.cacheKey(i),s=this.zs.get(n);if(void 0!==s)return s.fu;if(this.Es===this.Ls){const t=this.As.get(this.Bs);this.As.delete(this.Bs),this.zs.delete(h(t)),this.Bs++,this.Es--}const e=this.uu(t);return this.zs.set(n,{fu:e,Ws:this.Vs}),this.As.set(this.Vs,n),this.Es++,this.Vs++,e}}class Ti{constructor(t,i){r(t<=i,"right should be >= left"),this.pu=t,this.vu=i}Aa(){return this.pu}bi(){return this.vu}mu(){return this.vu-this.pu+1}Be(t){return this.pu<=t&&t<=this.vu}Ye(t){return this.pu===t.Aa()&&this.vu===t.bi()}}function Ri(t,i){return null===t||null===i?t===i:t.Ye(i)}class Di{constructor(){this.wu=new Map,this.zs=null,this.gu=!1}Mu(t){this.gu=t,this.zs=null}bu(t,i){this.xu(i),this.zs=null;for(let n=i;n{t<=n[0].index?i.push(s):n.splice(yt(n,t,(i=>i.index!i||n.has(t.index);for(const i of Array.from(this.wu.keys()).sort(((t,i)=>i-t))){if(!this.wu.get(i))continue;const n=s;s=[];const r=n.length;let a=0;const l=h(this.wu.get(i)),o=l.length;let _=1/0,u=-1/0;for(let i=0;i=t&&o-u>=t&&e(h))s.push(h),u=o;else if(this.gu)return n}for(;ai.weight?t:i}class Vi{constructor(t,i,n,s){this.x_=0,this.Eu=null,this.Vu=[],this.bo=null,this.Mo=null,this.Bu=new Di,this.Au=new Map,this.zu=Ii.Iu(),this.Lu=!0,this.Ou=new o,this.Nu=new o,this.Fu=new o,this.Wu=null,this.Hu=null,this.Uu=new Map,this.$u=-1,this.ju=[],this.qu=1,this.yn=i,this.yo=n,this.Yu=i.rightOffset,this.Ku=i.barSpacing,this.sn=t,this.Zu(i),this.cu=s,this.Gu(),this.Bu.Mu(i.uniformDistribution),this.Xu(),this.Ju()}N(){return this.yn}Qu(t){_(this.yo,t),this.tc(),this.Gu()}cr(t,i){_(this.yn,t),this.yn.fixLeftEdge&&this.nc(),this.yn.fixRightEdge&&this.sc(),void 0!==t.barSpacing&&this.sn.gs(t.barSpacing),void 0!==t.rightOffset&&this.sn.Ms(t.rightOffset),this.Zu(t),void 0===t.minBarSpacing&&void 0===t.maxBarSpacing||this.sn.gs(t.barSpacing??this.Ku),void 0!==t.ignoreWhitespaceIndices&&t.ignoreWhitespaceIndices!==this.yn.ignoreWhitespaceIndices&&this.Ju(),this.tc(),this.Gu(),void 0===t.enableConflation&&void 0===t.conflationThresholdFactor||this.Xu(),this.Fu.p()}Rn(t){return this.Vu[t]?.time??null}en(t){return this.Vu[t]??null}ec(t,i){if(this.Vu.length<1)return null;if(this.cu.key(t)>this.cu.key(this.Vu[this.Vu.length-1].time))return i?this.Vu.length-1:null;const n=yt(this.Vu,this.cu.key(t),((t,i)=>this.cu.key(t.time)0}Ie(){return this.hc(),this.zu.Ru()}ac(){return this.hc(),this.zu.Du()}lc(){const t=this.Ie();if(null===t)return null;const i={from:t.Aa(),to:t.bi()};return this.oc(i)}oc(t){const i=Math.round(t.from),n=Math.round(t.to),s=a(this._c()),e=a(this.uc());return{from:a(this.en(Math.max(s,i))),to:a(this.en(Math.min(e,n)))}}cc(t){return{from:a(this.ec(t.from,!0)),to:a(this.ec(t.to,!0))}}nn(){return this.x_}z_(t){if(!isFinite(t)||t<=0)return;if(this.x_===t)return;const i=this.ac(),n=this.x_;if(this.x_=t,this.Lu=!0,this.yn.lockVisibleTimeRangeOnResize&&0!==n){const i=this.Ku*t/n;this.Ku=i}if(this.yn.fixLeftEdge&&null!==i&&i.Aa()<=0){const i=n-t;this.Yu-=Math.round(i/this.Ku)+1,this.Lu=!0}this.dc(),this.fc()}jt(t){if(this.Gi()||!c(t))return 0;const i=this.vc()+this.Yu-t;return this.x_-(i+.5)*this.Ku-1}mc(t,i){const n=this.vc(),s=void 0===i?0:i.from,e=void 0===i?t.length:i.to;for(let i=s;ii/2&&!_?n.needAlignCoordinate=!1:n.needAlignCoordinate=u&&t.index<=l||c&&t.index>=o,d++}return this.ju.length=d,this.Hu=this.ju,this.ju}kc(){let t;this.Lu=!0,this.gs(this.yn.barSpacing),t=void 0!==this.yn.rightOffsetPixels?this.yn.rightOffsetPixels/this.ul():this.yn.rightOffset,this.Ms(t)}Tc(t){this.Lu=!0,this.Eu=t,this.fc(),this.nc()}Rc(t,i){const n=this.gc(t),s=this.ul(),e=s+i*(s/10);this.gs(e),this.yn.rightBarStaysOnScroll||this.Ms(this.Cc()+(n-this.gc(t)))}h_(t){this.bo&&this.u_(),null===this.Mo&&null===this.Wu&&(this.Gi()||(this.Mo=t,this.Dc()))}a_(t){if(null===this.Wu)return;const i=Jt(this.x_-t,0,this.x_),n=Jt(this.x_-a(this.Mo),0,this.x_);0!==i&&0!==n&&this.gs(this.Wu.ul*i/n)}l_(){null!==this.Mo&&(this.Mo=null,this.Ic())}o_(t){null===this.bo&&null===this.Wu&&(this.Gi()||(this.bo=t,this.Dc()))}__(t){if(null===this.bo)return;const i=(this.bo-t)/this.ul();this.Yu=a(this.Wu).Cc+i,this.Lu=!0,this.fc()}u_(){null!==this.bo&&(this.bo=null,this.Ic())}Ec(){this.Vc(this.yn.rightOffset)}Vc(t,i=400){if(!isFinite(t))throw new RangeError("offset is required and must be finite number");if(!isFinite(i)||i<=0)throw new RangeError("animationDuration (optional) must be finite positive number");const n=this.Yu,s=performance.now();this.sn.ps({Bc:t=>(t-s)/i>=1,Ac:e=>{const r=(e-s)/i;return r>=1?t:n+(t-n)*r}})}Pt(t,i){this.Lu=!0,this.Vu=t,this.Bu.bu(t,i),this.fc()}zc(){return this.Ou}Lc(){return this.Nu}Oc(){return this.Fu}vc(){return this.Eu||0}Nc(t,i){const n=t.mu(),s=i&&this.yn.rightOffsetPixels||0;this.Sc((this.x_-s)/n),this.Yu=t.bi()-this.vc(),i&&(this.Yu=s?s/this.ul():this.yn.rightOffset),this.fc(),this.Lu=!0,this.sn.xc(),this.sn.dr()}Fc(){const t=this._c(),i=this.uc();if(null===t||null===i)return;const n=!this.yn.rightOffsetPixels&&this.yn.rightOffset||0;this.Nc(new Ti(t,i+n),!0)}Wc(t){const i=new Ti(t.from,t.to);this.Nc(i)}rn(t){return void 0!==this.yo.timeFormatter?this.yo.timeFormatter(t.originalTime):this.cu.formatHorzItem(t.time)}Ju(){if(!this.yn.ignoreWhitespaceIndices)return;this.Uu.clear();const t=this.sn.Jn();for(const i of t)for(const t of i.ll())this.Uu.set(t,!0);this.$u++}Hc(){return this.qu}vl(){const t=1/(window.devicePixelRatio||1),i=this.yn.minBarSpacing;if(i>=t)return[1];const n=[1];let s=2;for(;s<=512;){i0?this.yn.maxBarSpacing:.5*this.x_}qc(){return this.yn.fixLeftEdge&&this.yn.fixRightEdge&&0!==this.Vu.length?this.x_/this.Vu.length:this.yn.minBarSpacing}Xu(){if(!this.yn.enableConflation)return void(this.qu=1);const t=1/(window.devicePixelRatio||1)*(this.yn.conflationThresholdFactor??1);if(this.Ku>=t)return void(this.qu=1);const i=t/this.Ku,n=Math.pow(2,Math.floor(Math.log2(i)));this.qu=Math.min(n,512)}fc(){const t=this.Kc();null!==t&&this.Yui&&(this.Yu=i,this.Lu=!0)}Kc(){const t=this._c(),i=this.Eu;if(null===t||null===i)return null;return t-i-1+(this.yn.fixLeftEdge?this.x_/this.Ku:Math.min(2,this.Vu.length))}Zc(){return this.yn.fixRightEdge?0:this.x_/this.Ku-Math.min(2,this.Vu.length)}Dc(){this.Wu={ul:this.ul(),Cc:this.Cc()}}Ic(){this.Wu=null}Pc(t){let i=this.Au.get(t.weight);return void 0===i&&(i=new ki((t=>this.Gc(t)),this.cu),this.Au.set(t.weight,i)),i.du(t)}Gc(t){return this.cu.formatTickmark(t,this.yo)}jc(t){const i=this.zu;this.zu=t,Ri(i.Ru(),this.zu.Ru())||this.Ou.p(),Ri(i.Du(),this.zu.Du())||this.Nu.p(),this.$c()}$c(){this.Hu=null}tc(){this.$c(),this.Au.clear()}Gu(){this.cu.updateFormatter(this.yo)}nc(){if(!this.yn.fixLeftEdge)return;const t=this._c();if(null===t)return;const i=this.Ie();if(null===i)return;const n=i.Aa()-t;if(n<0){const t=this.Yu-n-1;this.Ms(t)}this.dc()}sc(){this.fc(),this.dc()}Mc(t){return!this.yn.ignoreWhitespaceIndices||(this.Uu.get(t)||!1)}bc(t){const i=function*(t){const i=Math.round(t),n=in)break}return t}Zu(t){if(void 0!==t.rightOffsetPixels){const i=t.rightOffsetPixels/(t.barSpacing||this.Ku);this.sn.Ms(i)}}}var Bi,Ai,zi,Li,Oi;!function(t){t[t.OnTouchEnd=0]="OnTouchEnd",t[t.OnNextTap=1]="OnNextTap"}(Bi||(Bi={}));class Ni{constructor(t,i,n){this.Xc=[],this.Jc=[],this.Qc=null,this.x_=0,this.td=null,this.nd=new o,this.sd=new o,this.ed=null,this.rd=t,this.yn=i,this.cu=n,this.Po=new S(this.yn.layout.colorParsers),this.hd=new M(this),this.Jh=new Vi(this,i.timeScale,this.yn.localization,n),this.Ct=new j(this,i.crosshair),this.ad=new Xt(i.crosshair),i.addDefaultPane&&(this.ld(0),this.Xc[0].A_(2)),this.od=this._d(0),this.ud=this._d(1)}Ca(){this.dd(Y.ys())}dr(){this.dd(Y.Cs())}Ua(){this.dd(new Y(1))}ya(t){const i=this.fd(t);this.dd(i)}pd(){return this.td}vd(t){if(this.td?.hu===t?.hu&&this.td?.au?.te===t?.au?.te)return;const i=this.td;this.td=t,null!==i&&this.ya(i.hu),null!==t&&t.hu!==i?.hu&&this.ya(t.hu)}N(){return this.yn}cr(t){_(this.yn,t),this.Xc.forEach((i=>i.I_(t))),void 0!==t.timeScale&&this.Jh.cr(t.timeScale),void 0!==t.localization&&this.Jh.Qu(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.nd.p(),this.od=this._d(0),this.ud=this._d(1),this.Ca()}md(t,i,n=0){const s=this.Xc[n];if(void 0===s)return;if("left"===t)return _(this.yn,{leftPriceScale:i}),s.I_({leftPriceScale:i}),this.nd.p(),void this.Ca();if("right"===t)return _(this.yn,{rightPriceScale:i}),s.I_({rightPriceScale:i}),this.nd.p(),void this.Ca();const e=this.wd(t,n);null!==e&&(e.Ft.cr(i),this.nd.p())}wd(t,i){const n=this.Xc[i];if(void 0===n)return null;const s=n.E_(t);return null!==s?{Kn:n,Ft:s}:null}Bt(){return this.Jh}Zn(){return this.Xc}gd(){return this.Ct}Md(){return this.sd}bd(t,i){t.No(i),this.xc()}z_(t){this.x_=t,this.Jh.z_(this.x_),this.Xc.forEach((i=>i.z_(t))),this.xc()}xd(t){1!==this.Xc.length&&(r(t>=0&&t=0&&tt+i.B_()),0),e=this.Xc.reduce(((t,i)=>t+i.$t()),0),h=e-30*(this.Xc.length-1);i=Math.min(h,Math.max(30,i));const a=s/e,l=n.$t();n.A_(i*a);let o=i-l,_=this.Xc.length-1;for(const t of this.Xc)if(t!==n){const i=Math.min(h,Math.max(30,t.$t()-o/_));o-=t.$t()-i,_-=1;const n=i*a;t.A_(n)}this.Ca()}Cd(t,i){r(t>=0&&t=0&&i=0&&t=0&&it.It()))),this.Qc}Sa(){this.Qc=null}Ad(t,i,n,s,e){this.Ct.In(t,i);let r=NaN,h=this.Jh.wc(t,!0);const a=this.Jh.Ie();null!==a&&(h=Math.min(Math.max(a.Aa(),h),a.bi())),h=this.Ct.Fn(h);const l=s.kn(),o=l.zt();if(null!==o&&(r=l.Tn(i,o)),r=this.ad.bl(r,h,s),this.Ct.An(h,r,s),this.Ua(),!e){const e=Pi(s,t,i);this.vd(e&&{hu:e.hu,au:e.au,ou:e.ou||null}),this.sd.p(this.Ct.Vt(),{x:t,y:i},n)}}zd(t,i,n){const s=n.kn(),e=s.zt(),r=s.Nt(t,a(e)),h=this.Jh.ec(i,!0),l=this.Jh.jt(a(h));this.Ad(l,r,null,n,!0)}Ld(t){this.gd().Ln(),this.Ua(),t||this.sd.p(null,null,null)}Pa(){const t=this.Ct.Kn();if(null!==t){const i=this.Ct.Vn(),n=this.Ct.Bn();this.Ad(i,n,null,t)}this.Ct.Nn()}Od(t,i,n){const s=this.Jh.Rn(0);void 0!==i&&void 0!==n&&this.Jh.Pt(i,n);const e=this.Jh.Rn(0),r=this.Jh.vc(),h=this.Jh.Ie();if(null!==h&&null!==s&&null!==e){const i=h.Be(r),a=this.cu.key(s)>this.cu.key(e),l=null!==t&&t>r&&!a,o=this.Jh.N().allowShiftVisibleRangeOnWhitespaceReplacement,_=i&&(!(void 0===n)||o)&&this.Jh.N().shiftVisibleRangeOnNewBar;if(l&&!_){const i=t-r;this.Jh.Ms(this.Jh.Cc()-i)}}this.Jh.Tc(t)}Ra(t){null!==t&&t.iu()}Ks(t){if(function(t){return t instanceof xi}(t))return t;const i=this.Xc.find((i=>i.Dt().includes(t)));return void 0===i?null:i}xc(){this.Xc.forEach((t=>t.iu())),this.Pa()}m(){this.Xc.forEach((t=>t.m())),this.Xc.length=0,this.yn.localization.priceFormatter=void 0,this.yn.localization.percentageFormatter=void 0,this.yn.localization.timeFormatter=void 0}Nd(){return this.hd}Js(){return this.hd.N()}V_(){return this.nd}Fd(t,i){const n=this.ld(i);this.Wd(t,n),this.Jc.push(t),this.Sa(),1===this.Jc.length?this.Ca():this.dr()}Hd(t){const i=this.Ks(t),n=this.Jc.indexOf(t);r(-1!==n,"Series not found");const s=a(i);this.Jc.splice(n,1),s.s_(t),t.m&&t.m(),this.Sa(),this.Jh.Ju(),this.Ud(s)}xa(t,i){const n=a(this.Ks(t));n.s_(t,!0),n.i_(t,i,!0)}Fc(){const t=Y.Cs();t.us(),this.dd(t)}$d(t){const i=Y.Cs();i.fs(t),this.dd(i)}ws(){const t=Y.Cs();t.ws(),this.dd(t)}gs(t){const i=Y.Cs();i.gs(t),this.dd(i)}Ms(t){const i=Y.Cs();i.Ms(t),this.dd(i)}ps(t){const i=Y.Cs();i.ps(t),this.dd(i)}cs(){const t=Y.Cs();t.cs(),this.dd(t)}jd(){return this.yn.rightPriceScale.visible?"right":"left"}qd(t,i){r(i>=0,"Index should be greater or equal to 0");if(i===this.Yd(t))return;const n=a(this.Ks(t));n.s_(t);const s=this.ld(i);this.Wd(t,s),0===n.xl().length&&this.Ud(n),this.Ca()}Kd(){return this.ud}$(){return this.od}Ut(t){const i=this.ud,n=this.od;if(i===n)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.ed||this.ed.eh!==n||this.ed.rh!==i)this.ed={eh:n,rh:i,Zd:new Map};else{const i=this.ed.Zd.get(t);if(void 0!==i)return i}const s=this.Po.tt(n,i,t/100);return this.ed.Zd.set(t,s),s}Gd(t){return this.Xc.indexOf(t)}Xi(){return this.Po}Xd(){return this.Jd()}Jd(t){const i=new xi(this.Jh,this);this.Xc.push(i);const n=t??this.Xc.length-1,s=Y.ys();return s.es(n,{rs:0,hs:!0}),this.dd(s),i}ld(t){return r(t>=0,"Index should be greater or equal to 0"),(t=Math.min(this.Xc.length,t))i.F_().includes(t)))}Pd(t,i){const n=new Y(i);if(null!==t){const s=this.Xc.indexOf(t);n.es(s,{rs:i})}return n}fd(t,i){return void 0===i&&(i=2),this.Pd(this.Ks(t),i)}dd(t){this.rd&&this.rd(t),this.Xc.forEach((t=>t.eu().pr().Pt()))}Wd(t,i){const n=t.N().priceScaleId,s=void 0!==n?n:this.jd();i.i_(t,s),q(s)||t.cr(t.N())}_d(t){const i=this.yn.layout;return"gradient"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}Ud(t){!t.N_()&&0===t.xl().length&&this.Xc.length>1&&this.Xc.splice(this.Gd(t),1)}}function Fi(t){if(t>=1)return 0;let i=0;for(;i<8;i++){const n=Math.round(t);if(Math.abs(n-t)<1e-8)return i;t*=10}return i}function Wi(t){return!u(t)&&!d(t)}function Hi(t){return u(t)}!function(t){t[t.Disabled=0]="Disabled",t[t.Continuous=1]="Continuous",t[t.OnDataUpdate=2]="OnDataUpdate"}(Ai||(Ai={})),function(t){t[t.LastBar=0]="LastBar",t[t.LastVisible=1]="LastVisible"}(zi||(zi={})),function(t){t.Solid="solid",t.VerticalGradient="gradient"}(Li||(Li={})),function(t){t[t.Year=0]="Year",t[t.Month=1]="Month",t[t.DayOfMonth=2]="DayOfMonth",t[t.Time=3]="Time",t[t.TimeWithSeconds=4]="TimeWithSeconds"}(Oi||(Oi={}));const Ui=t=>t.getUTCFullYear();function $i(t,i,n){return i.replace(/yyyy/g,(t=>G(Ui(t),4))(t)).replace(/yy/g,(t=>G(Ui(t)%100,2))(t)).replace(/MMMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"long"}))(t,n)).replace(/MMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"short"}))(t,n)).replace(/MM/g,(t=>G((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>G((t=>t.getUTCDate())(t),2))(t))}class ji{constructor(t="yyyy-MM-dd",i="default"){this.Qd=t,this.tf=i}du(t){return $i(t,this.Qd,this.tf)}}class qi{constructor(t){this.if=t||"%h:%m:%s"}du(t){return this.if.replace("%h",G(t.getUTCHours(),2)).replace("%m",G(t.getUTCMinutes(),2)).replace("%s",G(t.getUTCSeconds(),2))}}const Yi={nf:"yyyy-MM-dd",sf:"%h:%m:%s",ef:" ",rf:"default"};class Ki{constructor(t={}){const i={...Yi,...t};this.hf=new ji(i.nf,i.rf),this.af=new qi(i.sf),this.lf=i.ef}du(t){return`${this.hf.du(t)}${this.lf}${this.af.du(t)}`}}function Zi(t){return 60*t*60*1e3}function Gi(t){return 60*t*1e3}const Xi=[{_f:(Ji=1,1e3*Ji),uf:10},{_f:Gi(1),uf:20},{_f:Gi(5),uf:21},{_f:Gi(30),uf:22},{_f:Zi(1),uf:30},{_f:Zi(3),uf:31},{_f:Zi(6),uf:32},{_f:Zi(12),uf:33}];var Ji;function Qi(t,i){if(t.getUTCFullYear()!==i.getUTCFullYear())return 70;if(t.getUTCMonth()!==i.getUTCMonth())return 60;if(t.getUTCDate()!==i.getUTCDate())return 50;for(let n=Xi.length-1;n>=0;--n)if(Math.floor(i.getTime()/Xi[n]._f)!==Math.floor(t.getTime()/Xi[n]._f))return Xi[n].uf;return 0}function tn(t){let i=t;if(d(t)&&(i=sn(t)),!Wi(i))throw new Error("time must be of type BusinessDay");const n=new Date(Date.UTC(i.year,i.month-1,i.day,0,0,0,0));return{cf:Math.round(n.getTime()/1e3),df:i}}function nn(t){if(!Hi(t))throw new Error("time must be of type isUTCTimestamp");return{cf:t}}function sn(t){const i=new Date(t);if(isNaN(i.getTime()))throw new Error(`Invalid date string=${t}, expected format=yyyy-mm-dd`);return{day:i.getUTCDate(),month:i.getUTCMonth()+1,year:i.getUTCFullYear()}}function en(t){d(t.time)&&(t.time=sn(t.time))}class rn{options(){return this.yn}setOptions(t){this.yn=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(en)}(t):en(t)}createConverterToInternalObj(t){return a(function(t){return 0===t.length?null:Wi(t[0].time)||d(t[0].time)?tn:nn}(t))}key(t){return"object"==typeof t&&"cf"in t?t.cf:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.df?new Date(1e3*i.cf).getTime():new Date(Date.UTC(i.df.year,i.df.month-1,i.df.day)).getTime()}convertHorzItemToInternal(t){return Hi(i=t)?nn(i):Wi(i)?tn(i):tn(sn(i));var i}updateFormatter(t){if(!this.yn)return;const i=t.dateFormat;this.yn.timeScale.timeVisible?this.ff=new Ki({nf:i,sf:this.yn.timeScale.secondsVisible?"%h:%m:%s":"%h:%m",ef:" ",rf:t.locale}):this.ff=new ji(i,t.locale)}formatHorzItem(t){const i=t;return this.ff.du(new Date(1e3*i.cf))}formatTickmark(t,i){const n=function(t,i,n){switch(t){case 0:case 10:return i?n?4:3:2;case 20:case 21:case 22:case 30:case 31:case 32:case 33:return i?3:2;case 50:return 2;case 60:return 1;case 70:return 0}}(t.weight,this.yn.timeScale.timeVisible,this.yn.timeScale.secondsVisible),s=this.yn.timeScale;if(void 0!==s.tickMarkFormatter){const e=s.tickMarkFormatter(t.originalTime,n,i.locale);if(null!==e)return e}return function(t,i,n){const s={};switch(i){case 0:s.year="numeric";break;case 1:s.month="short";break;case 2:s.day="numeric";break;case 3:s.hour12=!1,s.hour="2-digit",s.minute="2-digit";break;case 4:s.hour12=!1,s.hour="2-digit",s.minute="2-digit",s.second="2-digit"}const e=void 0===t.df?new Date(1e3*t.cf):new Date(Date.UTC(t.df.year,t.df.month-1,t.df.day));return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()).toLocaleString(n,s)}(t.time,n,i.locale)}maxTickMarkWeight(t){let i=t.reduce(Ei,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){!function(t,i=0){if(0===t.length)return;let n=0===i?null:t[i-1].time.cf,s=null!==n?new Date(1e3*n):null,e=0;for(let r=i;r1){const i=Math.ceil(e/(t.length-1)),n=new Date(1e3*(t[0].time.cf-i));t[0].timeWeight=Qi(new Date(1e3*t[0].time.cf),n)}}(t,i)}static pf(t){return _({localization:{dateFormat:"dd MMM 'yy"}},t??{})}}function hn(t){var i=t.width,n=t.height;if(i<0)throw new Error("Negative width is not allowed for Size");if(n<0)throw new Error("Negative height is not allowed for Size");return{width:i,height:n}}function an(t,i){return t.width===i.width&&t.height===i.height}var ln=function(){function t(t){var i=this;this._resolutionListener=function(){return i._onResolutionChanged()},this._resolutionMediaQueryList=null,this._observers=[],this._window=t,this._installResolutionListener()}return t.prototype.dispose=function(){this._uninstallResolutionListener(),this._window=null},Object.defineProperty(t.prototype,"value",{get:function(){return this._window.devicePixelRatio},enumerable:!1,configurable:!0}),t.prototype.subscribe=function(t){var i=this,n={next:t};return this._observers.push(n),{unsubscribe:function(){i._observers=i._observers.filter((function(t){return t!==n}))}}},t.prototype._installResolutionListener=function(){if(null!==this._resolutionMediaQueryList)throw new Error("Resolution listener is already installed");var t=this._window.devicePixelRatio;this._resolutionMediaQueryList=this._window.matchMedia("all and (resolution: ".concat(t,"dppx)")),this._resolutionMediaQueryList.addListener(this._resolutionListener)},t.prototype._uninstallResolutionListener=function(){null!==this._resolutionMediaQueryList&&(this._resolutionMediaQueryList.removeListener(this._resolutionListener),this._resolutionMediaQueryList=null)},t.prototype._reinstallResolutionListener=function(){this._uninstallResolutionListener(),this._installResolutionListener()},t.prototype._onResolutionChanged=function(){var t=this;this._observers.forEach((function(i){return i.next(t._window.devicePixelRatio)})),this._reinstallResolutionListener()},t}();var on=function(){function t(t,i,n){var s;this._canvasElement=null,this._bitmapSizeChangedListeners=[],this._suggestedBitmapSize=null,this._suggestedBitmapSizeChangedListeners=[],this._devicePixelRatioObservable=null,this._canvasElementResizeObserver=null,this._canvasElement=t,this._canvasElementClientSize=hn({width:this._canvasElement.clientWidth,height:this._canvasElement.clientHeight}),this._transformBitmapSize=null!=i?i:function(t){return t},this._allowResizeObserver=null===(s=null==n?void 0:n.allowResizeObserver)||void 0===s||s,this._chooseAndInitObserver()}return t.prototype.dispose=function(){var t,i;if(null===this._canvasElement)throw new Error("Object is disposed");null===(t=this._canvasElementResizeObserver)||void 0===t||t.disconnect(),this._canvasElementResizeObserver=null,null===(i=this._devicePixelRatioObservable)||void 0===i||i.dispose(),this._devicePixelRatioObservable=null,this._suggestedBitmapSizeChangedListeners.length=0,this._bitmapSizeChangedListeners.length=0,this._canvasElement=null},Object.defineProperty(t.prototype,"canvasElement",{get:function(){if(null===this._canvasElement)throw new Error("Object is disposed");return this._canvasElement},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"canvasElementClientSize",{get:function(){return this._canvasElementClientSize},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bitmapSize",{get:function(){return hn({width:this.canvasElement.width,height:this.canvasElement.height})},enumerable:!1,configurable:!0}),t.prototype.resizeCanvasElement=function(t){this._canvasElementClientSize=hn(t),this.canvasElement.style.width="".concat(this._canvasElementClientSize.width,"px"),this.canvasElement.style.height="".concat(this._canvasElementClientSize.height,"px"),this._invalidateBitmapSize()},t.prototype.subscribeBitmapSizeChanged=function(t){this._bitmapSizeChangedListeners.push(t)},t.prototype.unsubscribeBitmapSizeChanged=function(t){this._bitmapSizeChangedListeners=this._bitmapSizeChangedListeners.filter((function(i){return i!==t}))},Object.defineProperty(t.prototype,"suggestedBitmapSize",{get:function(){return this._suggestedBitmapSize},enumerable:!1,configurable:!0}),t.prototype.subscribeSuggestedBitmapSizeChanged=function(t){this._suggestedBitmapSizeChangedListeners.push(t)},t.prototype.unsubscribeSuggestedBitmapSizeChanged=function(t){this._suggestedBitmapSizeChangedListeners=this._suggestedBitmapSizeChangedListeners.filter((function(i){return i!==t}))},t.prototype.applySuggestedBitmapSize=function(){if(null!==this._suggestedBitmapSize){var t=this._suggestedBitmapSize;this._suggestedBitmapSize=null,this._resizeBitmap(t),this._emitSuggestedBitmapSizeChanged(t,this._suggestedBitmapSize)}},t.prototype._resizeBitmap=function(t){var i=this.bitmapSize;an(i,t)||(this.canvasElement.width=t.width,this.canvasElement.height=t.height,this._emitBitmapSizeChanged(i,t))},t.prototype._emitBitmapSizeChanged=function(t,i){var n=this;this._bitmapSizeChangedListeners.forEach((function(s){return s.call(n,t,i)}))},t.prototype._suggestNewBitmapSize=function(t){var i=this._suggestedBitmapSize,n=hn(this._transformBitmapSize(t,this._canvasElementClientSize)),s=an(this.bitmapSize,n)?null:n;null===i&&null===s||null!==i&&null!==s&&an(i,s)||(this._suggestedBitmapSize=s,this._emitSuggestedBitmapSizeChanged(i,s))},t.prototype._emitSuggestedBitmapSizeChanged=function(t,i){var n=this;this._suggestedBitmapSizeChangedListeners.forEach((function(s){return s.call(n,t,i)}))},t.prototype._chooseAndInitObserver=function(){var t=this;this._allowResizeObserver?new Promise((function(t){var i=new ResizeObserver((function(n){t(n.every((function(t){return"devicePixelContentBoxSize"in t}))),i.disconnect()}));i.observe(document.body,{box:"device-pixel-content-box"})})).catch((function(){return!1})).then((function(i){return i?t._initResizeObserver():t._initDevicePixelRatioObservable()})):this._initDevicePixelRatioObservable()},t.prototype._initDevicePixelRatioObservable=function(){var t=this;if(null!==this._canvasElement){var i=_n(this._canvasElement);if(null===i)throw new Error("No window is associated with the canvas");this._devicePixelRatioObservable=function(t){return new ln(t)}(i),this._devicePixelRatioObservable.subscribe((function(){return t._invalidateBitmapSize()})),this._invalidateBitmapSize()}},t.prototype._invalidateBitmapSize=function(){var t,i;if(null!==this._canvasElement){var n=_n(this._canvasElement);if(null!==n){var s=null!==(i=null===(t=this._devicePixelRatioObservable)||void 0===t?void 0:t.value)&&void 0!==i?i:n.devicePixelRatio,e=this._canvasElement.getClientRects(),r=void 0!==e[0]?function(t,i){return hn({width:Math.round(t.left*i+t.width*i)-Math.round(t.left*i),height:Math.round(t.top*i+t.height*i)-Math.round(t.top*i)})}(e[0],s):hn({width:this._canvasElementClientSize.width*s,height:this._canvasElementClientSize.height*s});this._suggestNewBitmapSize(r)}}},t.prototype._initResizeObserver=function(){var t=this;null!==this._canvasElement&&(this._canvasElementResizeObserver=new ResizeObserver((function(i){var n=i.find((function(i){return i.target===t._canvasElement}));if(n&&n.devicePixelContentBoxSize&&n.devicePixelContentBoxSize[0]){var s=n.devicePixelContentBoxSize[0],e=hn({width:s.inlineSize,height:s.blockSize});t._suggestNewBitmapSize(e)}})),this._canvasElementResizeObserver.observe(this._canvasElement,{box:"device-pixel-content-box"}))},t}();function _n(t){return t.ownerDocument.defaultView}var un=function(){function t(t,i,n){if(0===i.width||0===i.height)throw new TypeError("Rendering target could only be created on a media with positive width and height");if(this._mediaSize=i,0===n.width||0===n.height)throw new TypeError("Rendering target could only be created using a bitmap with positive integer width and height");this._bitmapSize=n,this._context=t}return t.prototype.useMediaCoordinateSpace=function(t){try{return this._context.save(),this._context.setTransform(1,0,0,1,0,0),this._context.scale(this._horizontalPixelRatio,this._verticalPixelRatio),t({context:this._context,mediaSize:this._mediaSize})}finally{this._context.restore()}},t.prototype.useBitmapCoordinateSpace=function(t){try{return this._context.save(),this._context.setTransform(1,0,0,1,0,0),t({context:this._context,mediaSize:this._mediaSize,bitmapSize:this._bitmapSize,horizontalPixelRatio:this._horizontalPixelRatio,verticalPixelRatio:this._verticalPixelRatio})}finally{this._context.restore()}},Object.defineProperty(t.prototype,"_horizontalPixelRatio",{get:function(){return this._bitmapSize.width/this._mediaSize.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_verticalPixelRatio",{get:function(){return this._bitmapSize.height/this._mediaSize.height},enumerable:!1,configurable:!0}),t}();function cn(t,i){var n=t.canvasElementClientSize;if(0===n.width||0===n.height)return null;var s=t.bitmapSize;if(0===s.width||0===s.height)return null;var e=t.canvasElement.getContext("2d",i);return null===e?null:new un(e,n,s)}const dn="undefined"!=typeof window;function fn(){return!!dn&&window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1}function pn(){return!!dn&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function vn(t){return t+t%2}function mn(t){dn&&void 0!==window.chrome&&t.addEventListener("mousedown",(t=>{if(1===t.button)return t.preventDefault(),!1}))}class wn{constructor(t,i,n){this.vf=0,this.mf=null,this.wf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.gf=0,this.Mf=null,this.bf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.xf=null,this.Sf=!1,this.Cf=null,this.yf=null,this.Pf=!1,this.kf=!1,this.Tf=!1,this.Rf=null,this.Df=null,this.If=null,this.Ef=null,this.Vf=null,this.Bf=null,this.Af=null,this.zf=0,this.Lf=!1,this.Of=!1,this.Nf=!1,this.Ff=0,this.Wf=null,this.Hf=!pn(),this.Uf=t=>{this.$f(t)},this.jf=t=>{if(this.qf(t)){const i=this.Yf(t);if(++this.gf,this.Mf&&this.gf>1){const{Kf:n}=this.Zf(bn(t),this.bf);n<30&&!this.Tf&&this.Gf(i,this.Jf.Xf),this.Qf()}}else{const i=this.Yf(t);if(++this.vf,this.mf&&this.vf>1){const{Kf:n}=this.Zf(bn(t),this.wf);n<5&&!this.kf&&this.tp(i,this.Jf.ip),this.np()}}},this.sp=t,this.Jf=i,this.yn=n,this.ep()}m(){null!==this.Rf&&(this.Rf(),this.Rf=null),null!==this.Df&&(this.Df(),this.Df=null),null!==this.Ef&&(this.Ef(),this.Ef=null),null!==this.Vf&&(this.Vf(),this.Vf=null),null!==this.Bf&&(this.Bf(),this.Bf=null),null!==this.If&&(this.If(),this.If=null),this.rp(),this.np()}hp(t){this.Ef&&this.Ef();const i=this.ap.bind(this);if(this.Ef=()=>{this.sp.removeEventListener("mousemove",i)},this.sp.addEventListener("mousemove",i),this.qf(t))return;const n=this.Yf(t);this.tp(n,this.Jf.lp),this.Hf=!0}np(){null!==this.mf&&clearTimeout(this.mf),this.vf=0,this.mf=null,this.wf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}Qf(){null!==this.Mf&&clearTimeout(this.Mf),this.gf=0,this.Mf=null,this.bf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}ap(t){if(this.Nf||null!==this.yf)return;if(this.qf(t))return;const i=this.Yf(t);this.tp(i,this.Jf.op),this.Hf=!0}_p(t){const i=Sn(t.changedTouches,a(this.Wf));if(null===i)return;if(this.Ff=xn(t),null!==this.Af)return;if(this.Of)return;this.Lf=!0;const n=this.Zf(bn(i),a(this.yf)),{up:s,cp:e,Kf:r}=n;if(this.Pf||!(r<5)){if(!this.Pf){const t=.5*s,i=e>=t&&!this.yn.dp(),n=t>e&&!this.yn.fp();i||n||(this.Of=!0),this.Pf=!0,this.Tf=!0,this.rp(),this.Qf()}if(!this.Of){const n=this.Yf(t,i);this.Gf(n,this.Jf.pp),Mn(t)}}}vp(t){if(0!==t.button)return;const i=this.Zf(bn(t),a(this.Cf)),{Kf:n}=i;if(n>=5&&(this.kf=!0,this.np()),this.kf){const i=this.Yf(t);this.tp(i,this.Jf.mp)}}Zf(t,i){const n=Math.abs(i._t-t._t),s=Math.abs(i.ut-t.ut);return{up:n,cp:s,Kf:n+s}}wp(t){let i=Sn(t.changedTouches,a(this.Wf));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.Wf=null,this.Ff=xn(t),this.rp(),this.yf=null,this.Bf&&(this.Bf(),this.Bf=null);const n=this.Yf(t,i);if(this.Gf(n,this.Jf.gp),++this.gf,this.Mf&&this.gf>1){const{Kf:t}=this.Zf(bn(i),this.bf);t<30&&!this.Tf&&this.Gf(n,this.Jf.Xf),this.Qf()}else this.Tf||(this.Gf(n,this.Jf.Mp),this.Jf.Mp&&Mn(t));0===this.gf&&Mn(t),0===t.touches.length&&this.Sf&&(this.Sf=!1,Mn(t))}$f(t){if(0!==t.button)return;const i=this.Yf(t);if(this.Cf=null,this.Nf=!1,this.Vf&&(this.Vf(),this.Vf=null),fn()){this.sp.ownerDocument.documentElement.removeEventListener("mouseleave",this.Uf)}if(!this.qf(t))if(this.tp(i,this.Jf.bp),++this.vf,this.mf&&this.vf>1){const{Kf:n}=this.Zf(bn(t),this.wf);n<5&&!this.kf&&this.tp(i,this.Jf.ip),this.np()}else this.kf||this.tp(i,this.Jf.xp)}rp(){null!==this.xf&&(clearTimeout(this.xf),this.xf=null)}Sp(t){if(null!==this.Wf)return;const i=t.changedTouches[0];this.Wf=i.identifier,this.Ff=xn(t);const n=this.sp.ownerDocument.documentElement;this.Tf=!1,this.Pf=!1,this.Of=!1,this.yf=bn(i),this.Bf&&(this.Bf(),this.Bf=null);{const i=this._p.bind(this),s=this.wp.bind(this);this.Bf=()=>{n.removeEventListener("touchmove",i),n.removeEventListener("touchend",s)},n.addEventListener("touchmove",i,{passive:!1}),n.addEventListener("touchend",s,{passive:!1}),this.rp(),this.xf=setTimeout(this.Cp.bind(this,t),240)}const s=this.Yf(t,i);this.Gf(s,this.Jf.yp),this.Mf||(this.gf=0,this.Mf=setTimeout(this.Qf.bind(this),500),this.bf=bn(i))}Pp(t){if(0!==t.button)return;const i=this.sp.ownerDocument.documentElement;fn()&&i.addEventListener("mouseleave",this.Uf),this.kf=!1,this.Cf=bn(t),this.Vf&&(this.Vf(),this.Vf=null);{const t=this.vp.bind(this),n=this.$f.bind(this);this.Vf=()=>{i.removeEventListener("mousemove",t),i.removeEventListener("mouseup",n)},i.addEventListener("mousemove",t),i.addEventListener("mouseup",n)}if(this.Nf=!0,this.qf(t))return;const n=this.Yf(t);this.tp(n,this.Jf.kp),this.mf||(this.vf=0,this.mf=setTimeout(this.np.bind(this),500),this.wf=bn(t))}ep(){this.sp.addEventListener("mouseenter",this.hp.bind(this)),this.sp.addEventListener("touchcancel",this.rp.bind(this));{const t=this.sp.ownerDocument,i=t=>{this.Jf.Tp&&(t.composed&&this.sp.contains(t.composedPath()[0])||t.target&&this.sp.contains(t.target)||this.Jf.Tp())};this.Df=()=>{t.removeEventListener("touchstart",i)},this.Rf=()=>{t.removeEventListener("mousedown",i)},t.addEventListener("mousedown",i),t.addEventListener("touchstart",i,{passive:!0})}pn()&&(this.If=()=>{this.sp.removeEventListener("dblclick",this.jf)},this.sp.addEventListener("dblclick",this.jf)),this.sp.addEventListener("mouseleave",this.Rp.bind(this)),this.sp.addEventListener("touchstart",this.Sp.bind(this),{passive:!0}),mn(this.sp),this.sp.addEventListener("mousedown",this.Pp.bind(this)),this.Dp(),this.sp.addEventListener("touchmove",(()=>{}),{passive:!1})}Dp(){void 0===this.Jf.Ip&&void 0===this.Jf.Ep&&void 0===this.Jf.Vp||(this.sp.addEventListener("touchstart",(t=>this.Bp(t.touches)),{passive:!0}),this.sp.addEventListener("touchmove",(t=>{if(2===t.touches.length&&null!==this.Af&&void 0!==this.Jf.Ep){const i=gn(t.touches[0],t.touches[1])/this.zf;this.Jf.Ep(this.Af,i),Mn(t)}}),{passive:!1}),this.sp.addEventListener("touchend",(t=>{this.Bp(t.touches)})))}Bp(t){1===t.length&&(this.Lf=!1),2!==t.length||this.Lf||this.Sf?this.Ap():this.zp(t)}zp(t){const i=this.sp.getBoundingClientRect()||{left:0,top:0};this.Af={_t:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,ut:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.zf=gn(t[0],t[1]),void 0!==this.Jf.Ip&&this.Jf.Ip(),this.rp()}Ap(){null!==this.Af&&(this.Af=null,void 0!==this.Jf.Vp&&this.Jf.Vp())}Rp(t){if(this.Ef&&this.Ef(),this.qf(t))return;if(!this.Hf)return;const i=this.Yf(t);this.tp(i,this.Jf.Lp),this.Hf=!pn()}Cp(t){const i=Sn(t.touches,a(this.Wf));if(null===i)return;const n=this.Yf(t,i);this.Gf(n,this.Jf.Op),this.Tf=!0,this.Sf=!0}qf(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:xn(t){"touchstart"!==t.type&&Mn(t)}}}}function gn(t,i){const n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function Mn(t){t.cancelable&&t.preventDefault()}function bn(t){return{_t:t.pageX,ut:t.pageY}}function xn(t){return t.timeStamp||performance.now()}function Sn(t,i){for(let n=0;n!1,fp:()=>!0}),this.Up={hv:n,rv:t}}Qp(){this.Jp.style.background=this.Yp.N().layout.panes.separatorColor}av(t){null!==this.Up&&(this.Up.hv.style.backgroundColor=this.Yp.N().layout.panes.separatorHoverColor)}lv(t){null!==this.Up&&null===this.qp&&(this.Up.hv.style.backgroundColor="")}ov(t){if(null===this.Up)return;const i=this.Kp.cv().B_()+this.Gp.cv().B_(),n=i/(this.Kp.nv().height+this.Gp.nv().height),s=30*n;i<=2*s||(this.qp={dv:t.pageY,fv:this.Kp.cv().B_(),pv:i-s,vv:i,mv:n,wv:s},this.Up.rv.style.display="block")}_v(t){const i=this.qp;if(null===i)return;const n=(t.pageY-i.dv)*i.mv,s=Jt(i.fv+n,i.wv,i.pv);this.Kp.cv().A_(s),this.Gp.cv().A_(i.vv-s),this.Yp.Qt().Ca()}uv(t){null!==this.qp&&null!==this.Up&&(this.qp=null,this.Up.rv.style.display="none")}}function yn(t,i){return t.gv-i.gv}function Pn(t,i,n){const s=(t.gv-i.gv)/(t.wt-i.wt);return Math.sign(s)*Math.min(Math.abs(s),n)}class kn{constructor(t,i,n,s){this.Mv=null,this.bv=null,this.xv=null,this.Sv=null,this.Cv=null,this.yv=0,this.Pv=0,this.kv=t,this.Tv=i,this.Rv=n,this.Ps=s}Dv(t,i){if(null!==this.Mv){if(this.Mv.wt===i)return void(this.Mv.gv=t);if(Math.abs(this.Mv.gv-t)50)return;let n=0;const s=Pn(this.Mv,this.bv,this.Tv),e=yn(this.Mv,this.bv),r=[s],h=[e];if(n+=e,null!==this.xv){const t=Pn(this.bv,this.xv,this.Tv);if(Math.sign(t)===Math.sign(s)){const i=yn(this.bv,this.xv);if(r.push(t),h.push(i),n+=i,null!==this.Sv){const t=Pn(this.xv,this.Sv,this.Tv);if(Math.sign(t)===Math.sign(s)){const i=yn(this.xv,this.Sv);r.push(t),h.push(i),n+=i}}}}let a=0;for(let t=0;t160?"dark":"light"}Fv(){return this.zv.N().layout.attributionLogo}Hv(){const t=new URL(location.href);return t.hostname?"&utm_source="+t.hostname+t.pathname:""}Lv(){this.Nv()&&(this.Ov(),this.vn=this.Fv(),this.vn&&(this.Bv=this.Wv(),this.Vv=document.createElement("style"),this.Vv.innerText="a#tv-attr-logo{--fill:#131722;--stroke:#fff;position:absolute;left:10px;bottom:10px;height:19px;width:35px;margin:0;padding:0;border:0;z-index:3;}a#tv-attr-logo[data-dark]{--fill:#D1D4DC;--stroke:#131722;}",this.Ev=document.createElement("a"),this.Ev.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.Hv()}`,this.Ev.title="Charting by TradingView",this.Ev.id="tv-attr-logo",this.Ev.target="_blank",this.Ev.innerHTML='',this.Ev.toggleAttribute("data-dark","dark"===this.Bv),this.Av.appendChild(this.Vv),this.Av.appendChild(this.Ev)))}}function Rn(t,i){const n=a(t.ownerDocument).createElement("canvas");t.appendChild(n);const s=new on(n,(e={options:{allowResizeObserver:!0},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})}).transform,e.options);var e;return s.resizeCanvasElement(i),s}function Dn(t){t.width=1,t.height=1,t.getContext("2d")?.clearRect(0,0,1,1)}function In(t,i,n,s){t.Uh&&t.Uh(i,n,s)}function En(t,i,n,s){t.st(i,n,s)}function Vn(t,i,n,s){const e=t(n,s);for(const t of e){const n=t.Tt(s);null!==n&&i(n)}}function Bn(t,i){return n=>{if(!function(t){return void 0!==t.Ft}(n))return[];return(n.Ft()?.ol()??"")!==i?[]:n.Ya?.(t)??[]}}function An(t,i,n,s){if(!t.length)return;let e=0;const r=t[0].$t(s,!0);let h=1===i?n/2-(t[0].Hi()-r/2):t[0].Hi()-r/2-n/2;h=Math.max(0,h);for(let r=1;ru-o:_n)&&h>0){const s=1===i?-1-r:r-n,a=Math.min(s,h);for(let n=e;n{this.Kv||this.yt.Gv().Qt().dr()},this.Xv=()=>{this.Kv||this.yt.Gv().Qt().dr()},this.yt=t,this.yn=i,this.Co=i.layout,this.hd=n,this.Jv="left"===s,this.Qv=Bn("normal",s),this.tm=Bn("top",s),this.im=Bn("bottom",s),this.Jp=document.createElement("div"),this.Jp.style.height="100%",this.Jp.style.overflow="hidden",this.Jp.style.width="25px",this.Jp.style.left="0",this.Jp.style.position="relative",this.nm=Rn(this.Jp,hn({width:16,height:16})),this.nm.subscribeSuggestedBitmapSizeChanged(this.Zv);const e=this.nm.canvasElement;e.style.position="absolute",e.style.zIndex="1",e.style.left="0",e.style.top="0",this.sm=Rn(this.Jp,hn({width:16,height:16})),this.sm.subscribeSuggestedBitmapSizeChanged(this.Xv);const r=this.sm.canvasElement;r.style.position="absolute",r.style.zIndex="2",r.style.left="0",r.style.top="0";const h={kp:this.ov.bind(this),yp:this.ov.bind(this),mp:this._v.bind(this),pp:this._v.bind(this),Tp:this.rm.bind(this),bp:this.uv.bind(this),gp:this.uv.bind(this),ip:this.hm.bind(this),Xf:this.hm.bind(this),lp:this.am.bind(this),Lp:this.lv.bind(this)};this.$p=new wn(this.sm.canvasElement,h,{dp:()=>!this.yn.handleScroll.vertTouchDrag,fp:()=>!0})}m(){this.$p.m(),this.sm.unsubscribeSuggestedBitmapSizeChanged(this.Xv),Dn(this.sm.canvasElement),this.sm.dispose(),this.nm.unsubscribeSuggestedBitmapSizeChanged(this.Zv),Dn(this.nm.canvasElement),this.nm.dispose(),null!==this.Ki&&this.Ki.r_().u(this),this.Ki=null}iv(){return this.Jp}P(){return this.Co.fontSize}lm(){const t=this.hd.N();return this.qv!==t.k&&(this.jv.Os(),this.qv=t.k),t}om(){if(null===this.Ki)return 0;let t=0;const i=this.lm(),n=a(this.nm.canvasElement.getContext("2d",{colorSpace:this.yt.Gv().N().layout.colorSpace}));n.save();const s=this.Ki.El();n.font=this._m(),s.length>0&&(t=Math.max(this.jv.Ii(n,s[0].Jl),this.jv.Ii(n,s[s.length-1].Jl)));const e=this.um();for(let i=e.length;i--;){const s=this.jv.Ii(n,e[i].ri());s>t&&(t=s)}const r=this.Ki.zt();if(null!==r&&null!==this.Uv&&(2!==(h=this.yn.crosshair).mode&&h.horzLine.visible&&h.horzLine.labelVisible)){const i=this.Ki.Tn(1,r),s=this.Ki.Tn(this.Uv.height-2,r);t=Math.max(t,this.jv.Ii(n,this.Ki.Ji(Math.floor(Math.min(i,s))+.11111111111111,r)),this.jv.Ii(n,this.Ki.Ji(Math.ceil(Math.max(i,s))-.11111111111111,r)))}var h;n.restore();const l=t||34;return vn(Math.ceil(i.S+i.C+i.V+i.B+5+l))}dm(t){null!==this.Uv&&an(this.Uv,t)||(this.Uv=t,this.Kv=!0,this.nm.resizeCanvasElement(t),this.sm.resizeCanvasElement(t),this.Kv=!1,this.Jp.style.width=`${t.width}px`,this.Jp.style.height=`${t.height}px`)}fm(){return a(this.Uv).width}un(t){this.Ki!==t&&(null!==this.Ki&&this.Ki.r_().u(this),this.Ki=t,t.r_().i(this.do.bind(this),this))}Ft(){return this.Ki}Os(){const t=this.yt.cv();this.yt.Gv().Qt().Q_(t,a(this.Ft()))}pm(t){if(null===this.Uv)return;const i={colorSpace:this.yt.Gv().N().layout.colorSpace};if(1!==t){this.vm(),this.nm.applySuggestedBitmapSize();const t=cn(this.nm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.wm(t),this.gm(t)})),this.yt.Mm(t,this.im),this.bm(t),this.yt.Mm(t,this.Qv),this.xm(t))}this.sm.applySuggestedBitmapSize();const n=cn(this.sm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Sm(n),this.yt.Mm(n,this.tm))}sv(){return this.nm.bitmapSize}ev(t,i,n,s){const e=this.sv();if(e.width>0&&e.height>0&&(t.drawImage(this.nm.canvasElement,i,n),s)){const s=this.sm.canvasElement;t.drawImage(s,i,n)}}Pt(){this.Ki?.El()}ov(t){if(null===this.Ki||this.Ki.Gi()||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt.Gv().Qt(),n=this.yt.cv();this.$v=!0,i.q_(n,this.Ki,t.localY)}_v(t){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt.Gv().Qt(),n=this.yt.cv(),s=this.Ki;i.Y_(n,s,t.localY)}rm(){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const t=this.yt.Gv().Qt(),i=this.yt.cv(),n=this.Ki;this.$v&&(this.$v=!1,t.K_(i,n))}uv(t){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt.Gv().Qt(),n=this.yt.cv();this.$v=!1,i.K_(n,this.Ki)}hm(t){this.yn.handleScale.axisDoubleClickReset.price&&this.Os()}am(t){if(null===this.Ki)return;!this.yt.Gv().Qt().N().handleScale.axisPressedMouseMove.price||this.Ki.He()||this.Ki.Bo()||this.Cm(1)}lv(t){this.Cm(0)}um(){const t=[],i=null===this.Ki?void 0:this.Ki;return(n=>{for(let s=0;s{t.fillStyle=n.borderColor;const a=Math.max(1,Math.floor(h)),l=Math.floor(.5*h),o=Math.round(s.C*r);t.beginPath();for(const n of i)t.rect(Math.floor(e*r),Math.round(n.kl*h)-l,o,a);t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{t.font=this._m(),t.fillStyle=n.textColor??this.Co.textColor,t.textAlign=this.Jv?"right":"left",t.textBaseline="middle";const r=this.Jv?Math.round(e-s.V):Math.round(e+s.C+s.V),h=i.map((i=>this.jv.Di(t,i.Jl)));for(let n=i.length;n--;){const s=i[n];t.fillText(s.Jl,r,s.kl+h[n])}}))}vm(){if(null===this.Uv||null===this.Ki)return;let t=this.Uv.height/2;const i=[],n=this.Ki.Dt().slice(),s=this.yt.cv(),e=this.lm();this.Ki===s.Gs()&&this.yt.cv().Dt().forEach((t=>{s.Zs(t)&&n.push(t)}));const r=this.Ki.xl()[0],h=this.Ki;n.forEach((n=>{const e=n.qn(s,h);e.forEach((t=>{t.$i()&&null===t.Wi()&&(t.Ui(null),i.push(t))})),r===n&&e.length>0&&(t=e[0].Bi())}));this.Ki.N().alignLabels&&this.ym(i,e,t)}ym(t,i,n){if(null===this.Uv)return;const s=t.filter((t=>t.Bi()<=n)),e=t.filter((t=>t.Bi()>n));s.sort(((t,i)=>i.Bi()-t.Bi())),s.length&&e.length&&e.push(s[0]),e.sort(((t,i)=>t.Bi()-i.Bi()));for(const n of t){const t=Math.floor(n.$t(i)/2),s=n.Bi();s>-t&&sthis.Uv.height-t&&s{if(i.ji()){i.Tt(a(this.Ki)).st(t,n,this.jv,s)}}))}Sm(t){if(null===this.Uv||null===this.Ki)return;const i=this.yt.Gv().Qt(),n=[],s=this.yt.cv(),e=i.gd().qn(s,this.Ki);e.length&&n.push(e);const r=this.lm(),h=this.Jv?"right":"left";n.forEach((i=>{i.forEach((i=>{i.Tt(a(this.Ki)).st(t,r,this.jv,h)}))}))}Cm(t){this.Jp.style.cursor=1===t?"ns-resize":"default"}do(){const t=this.om();this.Yv{this.Kv||null===this.Nm||this.sn().dr()},this.Xv=()=>{this.Kv||null===this.Nm||this.sn().dr()},this.zv=t,this.Nm=i,this.Nm.su().i(this.Fm.bind(this),this,!0),this.Wm=document.createElement("td"),this.Wm.style.padding="0",this.Wm.style.position="relative";const n=document.createElement("div");n.style.width="100%",n.style.height="100%",n.style.position="relative",n.style.overflow="hidden",this.Hm=document.createElement("td"),this.Hm.style.padding="0",this.Um=document.createElement("td"),this.Um.style.padding="0",this.Wm.appendChild(n),this.nm=Rn(n,hn({width:16,height:16})),this.nm.subscribeSuggestedBitmapSizeChanged(this.Zv);const s=this.nm.canvasElement;s.style.position="absolute",s.style.zIndex="1",s.style.left="0",s.style.top="0",this.sm=Rn(n,hn({width:16,height:16})),this.sm.subscribeSuggestedBitmapSizeChanged(this.Xv);const e=this.sm.canvasElement;e.style.position="absolute",e.style.zIndex="2",e.style.left="0",e.style.top="0",this.Xp=document.createElement("tr"),this.Xp.appendChild(this.Hm),this.Xp.appendChild(this.Wm),this.Xp.appendChild(this.Um),this.$m(),this.$p=new wn(this.sm.canvasElement,this,{dp:()=>null===this.Am&&!this.zv.N().handleScroll.vertTouchDrag,fp:()=>null===this.Am&&!this.zv.N().handleScroll.horzTouchDrag})}m(){null!==this.Pm&&this.Pm.m(),null!==this.km&&this.km.m(),this.Tm=null,this.sm.unsubscribeSuggestedBitmapSizeChanged(this.Xv),Dn(this.sm.canvasElement),this.sm.dispose(),this.nm.unsubscribeSuggestedBitmapSizeChanged(this.Zv),Dn(this.nm.canvasElement),this.nm.dispose(),null!==this.Nm&&(this.Nm.su().u(this),this.Nm.m()),this.$p.m()}cv(){return a(this.Nm)}jm(t){null!==this.Nm&&this.Nm.su().u(this),this.Nm=t,null!==this.Nm&&this.Nm.su().i(Wn.prototype.Fm.bind(this),this,!0),this.$m(),this.zv.Zp().indexOf(this)===this.zv.Zp().length-1?(this.Tm=this.Tm??new Tn(this.Wm,this.zv),this.Tm.Pt()):(this.Tm?.Ov(),this.Tm=null)}Gv(){return this.zv}iv(){return this.Xp}$m(){if(null!==this.Nm&&(this.qm(),0!==this.sn().Jn().length)){if(null!==this.Pm){const t=this.Nm.U_();this.Pm.un(a(t))}if(null!==this.km){const t=this.Nm.j_();this.km.un(a(t))}}}Ym(){null!==this.Pm&&this.Pm.Pt(),null!==this.km&&this.km.Pt()}B_(){return null!==this.Nm?this.Nm.B_():0}A_(t){this.Nm&&this.Nm.A_(t)}lp(t){if(!this.Nm)return;this.Km();const i=t.localX,n=t.localY;this.Zm(i,n,t)}kp(t){this.Km(),this.Gm(),this.Zm(t.localX,t.localY,t)}op(t){if(!this.Nm)return;this.Km();const i=t.localX,n=t.localY;this.Zm(i,n,t)}xp(t){null!==this.Nm&&(this.Km(),this.Xm(t))}ip(t){null!==this.Nm&&this.Jm(this.Em,t)}Xf(t){this.ip(t)}mp(t){this.Km(),this.Qm(t),this.Zm(t.localX,t.localY,t)}bp(t){null!==this.Nm&&(this.Km(),this.Bm=!1,this.tw(t))}Mp(t){null!==this.Nm&&this.Xm(t)}Op(t){if(this.Bm=!0,null===this.Am){const i={x:t.localX,y:t.localY};this.iw(i,i,t)}}Lp(t){null!==this.Nm&&(this.Km(),this.Nm.Qt().vd(null),this.nw())}sw(){return this.Im}ew(){return this.Em}Ip(){this.Vm=1,this.sn().cs()}Ep(t,i){if(!this.zv.N().handleScale.pinch)return;const n=5*(i-this.Vm);this.Vm=i,this.sn().Td(t._t,n)}yp(t){this.Bm=!1,this.zm=null!==this.Am,this.Gm();const i=this.sn().gd();null!==this.Am&&i.It()&&(this.Lm={x:i.ni(),y:i.si()},this.Am={x:t.localX,y:t.localY})}pp(t){if(null===this.Nm)return;const i=t.localX,n=t.localY;if(null===this.Am)this.Qm(t);else{this.zm=!1;const s=a(this.Lm),e=s.x+(i-this.Am.x),r=s.y+(n-this.Am.y);this.Zm(e,r,t)}}gp(t){0===this.Gv().N().trackingMode.exitMode&&(this.zm=!0),this.rw(),this.tw(t)}Qs(t,i){const n=this.Nm;return null===n?null:Pi(n,t,i)}hw(t,i){a("left"===i?this.Pm:this.km).dm(hn({width:t,height:this.Uv.height}))}nv(){return this.Uv}dm(t){an(this.Uv,t)||(this.Uv=t,this.Kv=!0,this.nm.resizeCanvasElement(t),this.sm.resizeCanvasElement(t),this.Kv=!1,this.Wm.style.width=t.width+"px",this.Wm.style.height=t.height+"px")}aw(){const t=a(this.Nm);t.H_(t.U_()),t.H_(t.j_());for(const i of t.xl())if(t.Zs(i)){const n=i.Ft();null!==n&&t.H_(n),i.Nn()}for(const i of t.ru())i.Nn()}sv(){return this.nm.bitmapSize}ev(t,i,n,s){const e=this.sv();if(e.width>0&&e.height>0&&(t.drawImage(this.nm.canvasElement,i,n),s)){const s=this.sm.canvasElement;null!==t&&t.drawImage(s,i,n)}}pm(t){if(0===t)return;if(null===this.Nm)return;t>1&&this.aw(),null!==this.Pm&&this.Pm.pm(t),null!==this.km&&this.km.pm(t);const i={colorSpace:this.zv.N().layout.colorSpace};if(1!==t){this.nm.applySuggestedBitmapSize();const t=cn(this.nm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.wm(t)})),this.Nm&&(this.lw(t,Ln),this.ow(t),this.lw(t,On),this.lw(t,Nn)))}this.sm.applySuggestedBitmapSize();const n=cn(this.sm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this._w(n),this.lw(n,Fn),this.lw(n,Nn))}uw(){return this.Pm}cw(){return this.km}Mm(t,i){this.lw(t,i)}Fm(){null!==this.Nm&&this.Nm.su().u(this),this.Nm=null}Xm(t){this.Jm(this.Im,t)}Jm(t,i){const n=i.localX,s=i.localY;t.v()&&t.p(this.sn().Bt().wc(n),{x:n,y:s},i)}wm({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.sn(),r=e.$(),h=e.Kd();r===h?V(t,0,0,n,s,h):z(t,0,0,n,s,r,h)}ow(t){const i=a(this.Nm),n=i.eu().pr().Tt(i);null!==n&&n.st(t,!1)}_w(t){this.dw(t,On,En,this.sn().gd())}lw(t,i){const n=a(this.Nm),s=n.Dt(),e=n.ru();for(const n of e)this.dw(t,i,In,n);for(const n of s)this.dw(t,i,In,n);for(const n of e)this.dw(t,i,En,n);for(const n of s)this.dw(t,i,En,n)}dw(t,i,n,s){const e=a(this.Nm),r=e.Qt().pd(),h=null!==r&&r.hu===s,l=null!==r&&h&&void 0!==r.au?r.au.ie:void 0;Vn(i,(i=>n(i,t,h,l)),s,e)}qm(){if(null===this.Nm)return;const t=this.zv,i=this.Nm.U_().N().visible,n=this.Nm.j_().N().visible;i||null===this.Pm||(this.Hm.removeChild(this.Pm.iv()),this.Pm.m(),this.Pm=null),n||null===this.km||(this.Um.removeChild(this.km.iv()),this.km.m(),this.km=null);const s=t.Qt().Nd();i&&null===this.Pm&&(this.Pm=new zn(this,t.N(),s,"left"),this.Hm.appendChild(this.Pm.iv())),n&&null===this.km&&(this.km=new zn(this,t.N(),s,"right"),this.Um.appendChild(this.km.iv()))}fw(t){return t.Np&&this.Bm||null!==this.Am}Zm(t,i,n){t=Math.max(0,Math.min(t,this.Uv.width-1)),i=Math.max(0,Math.min(i,this.Uv.height-1)),this.sn().Ad(t,i,n,a(this.Nm))}nw(){this.sn().Ld()}rw(){this.zm&&(this.Am=null,this.nw())}iw(t,i,n){this.Am=t,this.zm=!1,this.Zm(i.x,i.y,n);const s=this.sn().gd();this.Lm={x:s.ni(),y:s.si()}}sn(){return this.zv.Qt()}tw(t){if(!this.Dm)return;const i=this.sn(),n=this.cv();if(i.X_(n,n.kn()),this.Rm=null,this.Dm=!1,i.Ed(),null!==this.Om){const t=performance.now(),n=i.Bt();this.Om.fe(n.Cc(),t),this.Om.Bc(t)||i.ps(this.Om)}}Km(){this.Am=null}Gm(){if(!this.Nm)return;if(this.sn().cs(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)a(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Nm.kn().Gi()&&this.sn().Bt().Gi()}Qm(t){if(null===this.Nm)return;const i=this.sn(),n=i.Bt();if(n.Gi())return;const s=this.zv.N(),e=s.handleScroll,r=s.kineticScroll;if((!e.pressedMouseMove||t.Np)&&(!e.horzTouchDrag&&!e.vertTouchDrag||!t.Np))return;const h=this.Nm.kn(),a=performance.now();if(null!==this.Rm||this.fw(t)||(this.Rm={x:t.clientX,y:t.clientY,cf:a,pw:t.localX,mw:t.localY}),null!==this.Rm&&!this.Dm&&(this.Rm.x!==t.clientX||this.Rm.y!==t.clientY)){if(t.Np&&r.touch||!t.Np&&r.mouse){const t=n.ul();this.Om=new kn(.2/t,7/t,.997,15/t),this.Om.Dv(n.Cc(),this.Rm.cf)}else this.Om=null;h.Gi()||i.Z_(this.Nm,h,t.localY),i.Dd(t.localX),this.Dm=!0}this.Dm&&(h.Gi()||i.G_(this.Nm,h,t.localY),i.Id(t.localX),null!==this.Om&&this.Om.Dv(n.Cc(),a))}}class Hn{constructor(t,i,n,s,e){this.St=!0,this.Uv=hn({width:0,height:0}),this.Zv=()=>this.pm(3),this.Jv="left"===t,this.hd=n.Nd,this.yn=i,this.ww=s,this.gw=e,this.Jp=document.createElement("div"),this.Jp.style.width="25px",this.Jp.style.height="100%",this.Jp.style.overflow="hidden",this.nm=Rn(this.Jp,hn({width:16,height:16})),this.nm.subscribeSuggestedBitmapSizeChanged(this.Zv)}m(){this.nm.unsubscribeSuggestedBitmapSizeChanged(this.Zv),Dn(this.nm.canvasElement),this.nm.dispose()}iv(){return this.Jp}nv(){return this.Uv}dm(t){an(this.Uv,t)||(this.Uv=t,this.nm.resizeCanvasElement(t),this.Jp.style.width=`${t.width}px`,this.Jp.style.height=`${t.height}px`,this.St=!0)}pm(t){if(t<3&&!this.St)return;if(0===this.Uv.width||0===this.Uv.height)return;this.St=!1,this.nm.applySuggestedBitmapSize();const i=cn(this.nm,{colorSpace:this.yn.layout.colorSpace});null!==i&&i.useBitmapCoordinateSpace((t=>{this.wm(t),this.gm(t)}))}sv(){return this.nm.bitmapSize}ev(t,i,n){const s=this.sv();s.width>0&&s.height>0&&t.drawImage(this.nm.canvasElement,i,n)}gm({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(!this.ww())return;t.fillStyle=this.yn.timeScale.borderColor;const e=Math.floor(this.hd.N().S*n),r=Math.floor(this.hd.N().S*s),h=this.Jv?i.width-e:0;t.fillRect(h,0,e,r)}wm({context:t,bitmapSize:i}){V(t,0,0,i.width,i.height,this.gw())}}function Un(t){return i=>i.Ka?.(t)??[]}const $n=Un("normal"),jn=Un("top"),qn=Un("bottom");class Yn{constructor(t,i){this.Mw=null,this.bw=null,this.M=null,this.xw=!1,this.Uv=hn({width:0,height:0}),this.Sw=new o,this.jv=new it(5),this.Kv=!1,this.Zv=()=>{this.Kv||this.zv.Qt().dr()},this.Xv=()=>{this.Kv||this.zv.Qt().dr()},this.zv=t,this.cu=i,this.yn=t.N().layout,this.Ev=document.createElement("tr"),this.Cw=document.createElement("td"),this.Cw.style.padding="0",this.yw=document.createElement("td"),this.yw.style.padding="0",this.Jp=document.createElement("td"),this.Jp.style.height="25px",this.Jp.style.padding="0",this.Pw=document.createElement("div"),this.Pw.style.width="100%",this.Pw.style.height="100%",this.Pw.style.position="relative",this.Pw.style.overflow="hidden",this.Jp.appendChild(this.Pw),this.nm=Rn(this.Pw,hn({width:16,height:16})),this.nm.subscribeSuggestedBitmapSizeChanged(this.Zv);const n=this.nm.canvasElement;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.sm=Rn(this.Pw,hn({width:16,height:16})),this.sm.subscribeSuggestedBitmapSizeChanged(this.Xv);const s=this.sm.canvasElement;s.style.position="absolute",s.style.zIndex="2",s.style.left="0",s.style.top="0",this.Ev.appendChild(this.Cw),this.Ev.appendChild(this.Jp),this.Ev.appendChild(this.yw),this.kw(),this.zv.Qt().V_().i(this.kw.bind(this),this),this.$p=new wn(this.sm.canvasElement,this,{dp:()=>!0,fp:()=>!this.zv.N().handleScroll.horzTouchDrag})}m(){this.$p.m(),null!==this.Mw&&this.Mw.m(),null!==this.bw&&this.bw.m(),this.sm.unsubscribeSuggestedBitmapSizeChanged(this.Xv),Dn(this.sm.canvasElement),this.sm.dispose(),this.nm.unsubscribeSuggestedBitmapSizeChanged(this.Zv),Dn(this.nm.canvasElement),this.nm.dispose()}iv(){return this.Ev}Tw(){return this.Mw}Rw(){return this.bw}kp(t){if(this.xw)return;this.xw=!0;const i=this.zv.Qt();!i.Bt().Gi()&&this.zv.N().handleScale.axisPressedMouseMove.time&&i.kd(t.localX)}yp(t){this.kp(t)}Tp(){const t=this.zv.Qt();!t.Bt().Gi()&&this.xw&&(this.xw=!1,this.zv.N().handleScale.axisPressedMouseMove.time&&t.Bd())}mp(t){const i=this.zv.Qt();!i.Bt().Gi()&&this.zv.N().handleScale.axisPressedMouseMove.time&&i.Vd(t.localX)}pp(t){this.mp(t)}bp(){this.xw=!1;const t=this.zv.Qt();t.Bt().Gi()&&!this.zv.N().handleScale.axisPressedMouseMove.time||t.Bd()}gp(){this.bp()}ip(){this.zv.N().handleScale.axisDoubleClickReset.time&&this.zv.Qt().ws()}Xf(){this.ip()}lp(){this.zv.Qt().N().handleScale.axisPressedMouseMove.time&&this.Cm(1)}Lp(){this.Cm(0)}nv(){return this.Uv}Dw(){return this.Sw}Iw(t,i,n){an(this.Uv,t)||(this.Uv=t,this.Kv=!0,this.nm.resizeCanvasElement(t),this.sm.resizeCanvasElement(t),this.Kv=!1,this.Jp.style.width=`${t.width}px`,this.Jp.style.height=`${t.height}px`,this.Sw.p(t)),null!==this.Mw&&this.Mw.dm(hn({width:i,height:t.height})),null!==this.bw&&this.bw.dm(hn({width:n,height:t.height}))}Ew(){const t=this.Vw();return Math.ceil(t.S+t.C+t.P+t.A+t.I+t.Bw)}Pt(){this.zv.Qt().Bt().El()}sv(){return this.nm.bitmapSize}ev(t,i,n,s){const e=this.sv();if(e.width>0&&e.height>0&&(t.drawImage(this.nm.canvasElement,i,n),s)){const s=this.sm.canvasElement;t.drawImage(s,i,n)}}pm(t){if(0===t)return;const i={colorSpace:this.yn.colorSpace};if(1!==t){this.nm.applySuggestedBitmapSize();const n=cn(this.nm,i);null!==n&&(n.useBitmapCoordinateSpace((t=>{this.wm(t),this.gm(t),this.Aw(n,qn)})),this.bm(n),this.Aw(n,$n)),null!==this.Mw&&this.Mw.pm(t),null!==this.bw&&this.bw.pm(t)}this.sm.applySuggestedBitmapSize();const n=cn(this.sm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.zw([...this.zv.Qt().Jn(),this.zv.Qt().gd()],n),this.Aw(n,jn))}Aw(t,i){const n=this.zv.Qt().Jn();for(const s of n)Vn(i,(i=>In(i,t,!1,void 0)),s,void 0);for(const s of n)Vn(i,(i=>En(i,t,!1,void 0)),s,void 0)}wm({context:t,bitmapSize:i}){V(t,0,0,i.width,i.height,this.zv.Qt().Kd())}gm({context:t,bitmapSize:i,verticalPixelRatio:n}){if(this.zv.N().timeScale.borderVisible){t.fillStyle=this.Lw();const s=Math.max(1,Math.floor(this.Vw().S*n));t.fillRect(0,0,i.width,s)}}bm(t){const i=this.zv.Qt().Bt(),n=i.El();if(!n||0===n.length)return;const s=this.cu.maxTickMarkWeight(n),e=this.Vw(),r=i.N();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:i,verticalPixelRatio:s})=>{t.strokeStyle=this.Lw(),t.fillStyle=this.Lw();const r=Math.max(1,Math.floor(i)),h=Math.floor(.5*i);t.beginPath();const a=Math.round(e.C*s);for(let s=n.length;s--;){const e=Math.round(n[s].coord*i);t.rect(e-h,0,r,a)}t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{const i=e.S+e.C+e.A+e.P/2;t.textAlign="center",t.textBaseline="middle",t.fillStyle=this.H(),t.font=this._m();for(const e of n)if(e.weight=s){const n=e.needAlignCoordinate?this.Ow(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}}))}Ow(t,i,n){const s=this.jv.Ii(t,n),e=s/2,r=Math.floor(i-e)+.5;return r<0?i+=Math.abs(0-r):r+s>this.Uv.width&&(i-=Math.abs(this.Uv.width-(r+s))),i}zw(t,i){const n=this.Vw();for(const s of t)for(const t of s.dn())t.Tt().st(i,n)}Lw(){return this.zv.N().timeScale.borderColor}H(){return this.yn.textColor}F(){return this.yn.fontSize}_m(){return g(this.F(),this.yn.fontFamily)}Nw(){return g(this.F(),this.yn.fontFamily,"bold")}Vw(){null===this.M&&(this.M={S:1,L:NaN,A:NaN,I:NaN,tn:NaN,C:5,P:NaN,k:"",Qi:new it,Bw:0});const t=this.M,i=this._m();if(t.k!==i){const n=this.F();t.P=n,t.k=i,t.A=3*n/12,t.I=3*n/12,t.tn=9*n/12,t.L=0,t.Bw=4*n/12,t.Qi.Os()}return this.M}Cm(t){this.Jp.style.cursor=1===t?"ew-resize":"default"}kw(){const t=this.zv.Qt(),i=t.N();i.leftPriceScale.visible||null===this.Mw||(this.Cw.removeChild(this.Mw.iv()),this.Mw.m(),this.Mw=null),i.rightPriceScale.visible||null===this.bw||(this.yw.removeChild(this.bw.iv()),this.bw.m(),this.bw=null);const n={Nd:this.zv.Qt().Nd()},s=()=>i.leftPriceScale.borderVisible&&t.Bt().N().borderVisible,e=()=>t.Kd();i.leftPriceScale.visible&&null===this.Mw&&(this.Mw=new Hn("left",i,n,s,e),this.Cw.appendChild(this.Mw.iv())),i.rightPriceScale.visible&&null===this.bw&&(this.bw=new Hn("right",i,n,s,e),this.yw.appendChild(this.bw.iv()))}}const Kn=!!dn&&!!navigator.userAgentData&&navigator.userAgentData.brands.some((t=>t.brand.includes("Chromium")))&&!!dn&&(navigator?.userAgentData?.platform?"Windows"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf("win")>=0);class Zn{constructor(t,i,n){var s;this.Fw=[],this.Ww=[],this.Hw=0,this.eo=0,this.x_=0,this.Uw=0,this.$w=0,this.jw=null,this.qw=!1,this.Im=new o,this.Em=new o,this.sd=new o,this.Yw=null,this.Kw=null,this.Av=t,this.yn=i,this.cu=n,this.Ev=document.createElement("div"),this.Ev.classList.add("tv-lightweight-charts"),this.Ev.style.overflow="hidden",this.Ev.style.direction="ltr",this.Ev.style.width="100%",this.Ev.style.height="100%",(s=this.Ev).style.userSelect="none",s.style.webkitUserSelect="none",s.style.msUserSelect="none",s.style.MozUserSelect="none",s.style.webkitTapHighlightColor="transparent",this.Zw=document.createElement("table"),this.Zw.setAttribute("cellspacing","0"),this.Ev.appendChild(this.Zw),this.Gw=this.Xw.bind(this),Gn(this.yn)&&this.Jw(!0),this.sn=new Ni(this.rd.bind(this),this.yn,n),this.Qt().Md().i(this.Qw.bind(this),this),this.tg=new Yn(this,this.cu),this.Zw.appendChild(this.tg.iv());const e=i.autoSize&&this.ig();let r=this.yn.width,h=this.yn.height;if(e||0===r||0===h){const i=t.getBoundingClientRect();r=r||i.width,h=h||i.height}this.ng(r,h),this.sg(),t.appendChild(this.Ev),this.eg(),this.sn.Bt().Oc().i(this.sn.Ca.bind(this.sn),this),this.sn.V_().i(this.sn.Ca.bind(this.sn),this)}Qt(){return this.sn}N(){return this.yn}Zp(){return this.Fw}rg(){return this.tg}m(){this.Jw(!1),0!==this.Hw&&window.cancelAnimationFrame(this.Hw),this.sn.Md().u(this),this.sn.Bt().Oc().u(this),this.sn.V_().u(this),this.sn.m();for(const t of this.Fw)this.Zw.removeChild(t.iv()),t.sw().u(this),t.ew().u(this),t.m();this.Fw=[];for(const t of this.Ww)this.hg(t);this.Ww=[],a(this.tg).m(),null!==this.Ev.parentElement&&this.Ev.parentElement.removeChild(this.Ev),this.sd.m(),this.Im.m(),this.Em.m(),this.ag()}ng(t,i,n=!1){if(this.eo===i&&this.x_===t)return;const s=function(t){const i=Math.floor(t.width),n=Math.floor(t.height);return hn({width:i-i%2,height:n-n%2})}(hn({width:t,height:i}));this.eo=s.height,this.x_=s.width;const e=this.eo+"px",r=this.x_+"px";a(this.Ev).style.height=e,a(this.Ev).style.width=r,this.Zw.style.height=e,this.Zw.style.width=r,n?this.lg(Y.ys(),performance.now()):this.sn.Ca()}pm(t){void 0===t&&(t=Y.ys());for(let i=0;i{t.Pt()}))}_g(t){(void 0!==t.autoSize||!this.Yw||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.Yw&&this.ig(),!1===t.autoSize&&null!==this.Yw&&this.ag(),t.autoSize||void 0===t.width&&void 0===t.height||this.ng(t.width||this.x_,t.height||this.eo))}cg(t,i){let n=0,s=0;const e=this.Fw[0],r=(n,s)=>{let e=0;for(let r=0;r{a("left"===i?this.tg.Tw():this.tg.Rw()).ev(a(t),n,s)};if(this.yn.timeScale.visible){const n=this.tg.sv();if(null!==t){let r=0;this.fg()&&(h("left",r,s),r=a(e.uw()).sv().width),this.tg.ev(t,r,s,i),r+=n.width,this.pg()&&h("right",r,s)}s+=n.height}return hn({width:n,height:s})}Mg(){let t=0,i=0,n=0;for(const s of this.Fw)this.fg()&&(i=Math.max(i,a(s.uw()).om(),this.yn.leftPriceScale.minimumWidth)),this.pg()&&(n=Math.max(n,a(s.cw()).om(),this.yn.rightPriceScale.minimumWidth)),t+=s.B_();i=vn(i),n=vn(n);const s=this.x_,e=this.eo,r=Math.max(s-i-n,0),h=1*this.Ww.length,l=this.yn.timeScale.visible;let o=l?Math.max(this.tg.Ew(),this.yn.timeScale.minimumHeight):0;var _;o=(_=o)+_%2;const u=h+o,c=e{t.Ym()})),3===this.jw?.ls()&&(this.jw.xs(t),this.xg(),this.Sg(this.jw),this.Cg(this.jw,i),t=this.jw,this.jw=null)),this.pm(t)}Cg(t,i){for(const n of t.bs())this.Ss(n,i)}Sg(t){const i=this.sn.Zn();for(let n=0;n{if(this.qw=!1,this.Hw=0,null!==this.jw){const i=this.jw;this.jw=null,this.lg(i,t);for(const n of i.bs())if(5===n.ds&&!n.Wt.Bc(t)){this.Qt().ps(n.Wt);break}}})))}xg(){this.sg()}hg(t){this.Zw.removeChild(t.iv()),t.m()}sg(){const t=this.sn.Zn(),i=t.length,n=this.Fw.length;for(let t=i;t0){const t=new Cn(this,s-1,s);this.Ww.push(t),this.Zw.insertBefore(t.iv(),this.tg.iv())}this.Zw.insertBefore(i.iv(),this.tg.iv())}for(let n=0;n{const n=i.Un().Hn(t);null!==n&&e.set(i,n)}))}let r;if(null!==t){const i=this.sn.Bt().en(t)?.originalTime;void 0!==i&&(r=i)}const h=this.Qt().pd(),a=null!==h&&h.hu instanceof Kt?h.hu:void 0,l=null!==h&&void 0!==h.au?h.au.te:void 0,o=this.Tg(s);return{Gr:r,$n:t??void 0,Rg:i??void 0,Dg:-1!==o?o:void 0,Ig:a,Eg:e,Vg:l,Bg:n??void 0}}Tg(t){let i=-1;if(t)i=this.Fw.indexOf(t);else{const t=this.Qt().gd().Kn();null!==t&&(i=this.Qt().Zn().indexOf(t))}return i}yg(t,i,n,s){this.Im.p((()=>this.kg(i,n,s,t)))}Pg(t,i,n,s){this.Em.p((()=>this.kg(i,n,s,t)))}Qw(t,i,n){this.mg(this.Qt().pd()?.ou??null),this.sd.p((()=>this.kg(t,i,n)))}eg(){const t=this.yn.timeScale.visible?"":"none";this.tg.iv().style.display=t}fg(){return this.Fw[0].cv().U_().N().visible}pg(){return this.Fw[0].cv().j_().N().visible}ig(){return"ResizeObserver"in window&&(this.Yw=new ResizeObserver((t=>{const i=t[t.length-1];i&&this.ng(i.contentRect.width,i.contentRect.height)})),this.Yw.observe(this.Av,{box:"border-box"}),!0)}ag(){null!==this.Yw&&this.Yw.disconnect(),this.Yw=null}}function Gn(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function Xn(t){return void 0===t.open&&void 0===t.value}function Jn(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}function Qn(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Gr:s};return void 0!==n.color&&(r.R=n.color),r}function ts(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Gr:s};return void 0!==n.lineColor&&(r.vt=n.lineColor),void 0!==n.topColor&&(r.eh=n.topColor),void 0!==n.bottomColor&&(r.rh=n.bottomColor),r}function is(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Gr:s};return void 0!==n.topLineColor&&(r.hh=n.topLineColor),void 0!==n.bottomLineColor&&(r.ah=n.bottomLineColor),void 0!==n.topFillColor1&&(r.oh=n.topFillColor1),void 0!==n.topFillColor2&&(r._h=n.topFillColor2),void 0!==n.bottomFillColor1&&(r.uh=n.bottomFillColor1),void 0!==n.bottomFillColor2&&(r.dh=n.bottomFillColor2),r}function ns(t,i,n,s){const e={$n:i,wt:t,Wt:[n.open,n.high,n.low,n.close],Gr:s};return void 0!==n.color&&(e.R=n.color),e}function ss(t,i,n,s){const e={$n:i,wt:t,Wt:[n.open,n.high,n.low,n.close],Gr:s};return void 0!==n.color&&(e.R=n.color),void 0!==n.borderColor&&(e.Ht=n.borderColor),void 0!==n.wickColor&&(e.sh=n.wickColor),e}function es(t,i,n,s,e){const r=h(e)(n),a=Math.max(...r),l=Math.min(...r),o=r[r.length-1],_=[o,a,l,o],{time:u,color:c,...d}=n;return{$n:i,wt:t,Wt:_,Gr:s,le:d,R:c}}function rs(t){return void 0!==t.Wt}function hs(t,i){return void 0!==i.customValues&&(t.Ag=i.customValues),t}function as(t){return(i,n,s,e,r,h)=>function(t,i){return i?i(t):Xn(t)}(s,h)?hs({wt:i,$n:n,Gr:e},s):hs(t(i,n,s,e,r),s)}function ls(t){return{Candlestick:as(ss),Bar:as(ns),Area:as(ts),Baseline:as(is),Histogram:as(Qn),Line:as(Qn),Custom:as(es)}[t]}function os(t){return{$n:0,zg:new Map,Ba:t}}function _s(t,i){if(void 0!==t&&0!==t.length)return{Lg:i.key(t[0].wt),Og:i.key(t[t.length-1].wt)}}function us(t){let i;return t.forEach((t=>{void 0===i&&(i=t.Gr)})),h(i)}class cs{constructor(t){this.Ng=new Map,this.Fg=new Map,this.Wg=new Map,this.Hg=[],this.cu=t}m(){this.Ng.clear(),this.Fg.clear(),this.Wg.clear(),this.Hg=[]}Ug(t,i){let n=0!==this.Ng.size,s=!1;const e=this.Fg.get(t);if(void 0!==e)if(1===this.Fg.size)n=!1,s=!0,this.Ng.clear();else for(const i of this.Hg)i.pointData.zg.delete(t)&&(s=!0);let r=[];if(0!==i.length){const n=i.map((t=>t.time)),e=this.cu.createConverterToInternalObj(i),h=ls(t.wh()),a=t.rl(),l=t.hl();r=i.map(((i,r)=>{const o=e(i.time),_=this.cu.key(o);let u=this.Ng.get(_);void 0===u&&(u=os(o),this.Ng.set(_,u),s=!0);const c=h(o,u.$n,i,n[r],a,l);return u.zg.set(t,c),c}))}n&&this.$g(),this.jg(t,r);let h=-1;if(s){const t=[];this.Ng.forEach((i=>{t.push({timeWeight:0,time:i.Ba,pointData:i,originalTime:us(i.zg)})})),t.sort(((t,i)=>this.cu.key(t.time)-this.cu.key(i.time))),h=this.qg(t)}return this.Yg(t,h,function(t,i,n){const s=_s(t,n),e=_s(i,n);if(void 0!==s&&void 0!==e)return{Kg:!1,Ta:s.Og>=e.Og&&s.Lg>=e.Lg}}(this.Fg.get(t),e,this.cu))}Hd(t){return this.Ug(t,[])}Zg(t,i,n){if(n&&t.za())throw new Error("Historical updates are not supported when conflation is enabled. Conflation requires data to be processed in order.");const s=i;!function(t){void 0===t.Gr&&(t.Gr=t.time)}(s),this.cu.preprocessData(i);const e=this.cu.createConverterToInternalObj([i])(i.time),r=this.Wg.get(t);if(!n&&void 0!==r&&this.cu.key(e)this.cu.key(t.time)this.cu.key(s.wt)?rs(i)&&n.push(i):rs(i)?n[n.length-1]=i:n.splice(-1,1),this.Wg.set(t,i.wt)}Gg(t,i,n){const s=this.Fg.get(t);if(void 0===s)return;const e=yt(s,n,((t,i)=>t.$n{0!==i.length&&(t=Math.max(t,i[i.length-1].$n))})),t}Yg(t,i,n){const s=this.Qg();if(-1!==i)this.Fg.forEach(((i,e)=>{s.F_.set(e,{le:i,iM:e===t?n:void 0})})),this.Fg.has(t)||s.F_.set(t,{le:[],iM:n}),s.Bt.nM=this.Hg,s.Bt.sM=i;else{const i=this.Fg.get(t);s.F_.set(t,{le:i||[],iM:n})}return s}Qg(){return{F_:new Map,Bt:{vc:this.tM()}}}}function ds(t,i){t.$n=i,t.zg.forEach((t=>{t.$n=i}))}function fs(t,i){return t.wt0&&r=s&&(a=r-1),h>0&&h({...t,...this.ee.ga().gh(t.wt)})))}fM(){this.lM=null}uM(){const t=this.re.Bt(),i=t.N().enableConflation?t.Hc():0;i!==this.oM&&(this.rM=!0,this.oM=i),this.rM&&(this.pM(),this.rM=!1),this.hM&&(this.dM(),this.hM=!1),this.eM&&(this.vM(),this.eM=!1)}vM(){const t=this.ee.Ft(),i=this.re.Bt();if(this.fM(),i.Gi()||t.Gi())return;const n=i.Ie();if(null===n)return;if(0===this.ee.Un().yh())return;const s=this.ee.zt();null!==s&&(this.lM=vs(this.aM,n,this._M),this.mM(t,i,s.Wt),this.wM())}}class ws{constructor(t,i){this.gM=t,this.Ki=i}st(t,i,n){this.gM.draw(t,this.Ki,i,n)}}class gs extends ms{constructor(t,i,n){super(t,i,!1),this.$h=n,this.cM=new ws(this.$h.renderer(),(i=>{const n=t.zt();return null===n?null:t.Ft().Nt(i,n.Wt)}))}get ma(){return this.$h.conflationReducer}Oa(t){return this.$h.priceValueBuilder(t)}al(t){return this.$h.isWhitespace(t)}pM(){const t=this.ee.ga();this.aM=this.ee.Na().Dh().map((i=>({wt:i.$n,_t:NaN,...t.gh(i.$n),MM:i.le})))}mM(t,i){i.mc(this.aM,m(this.lM))}wM(){this.$h.update({bars:this.aM.map(Ms),barSpacing:this.re.Bt().ul(),visibleRange:this.lM,conflationFactor:this.re.Bt().Hc()},this.ee.N())}}function Ms(t){return{x:t._t,time:t.wt,originalData:t.MM,barColor:t.th}}const bs={color:"#2196f3"},xs=(t,i,n)=>{const s=l(n);return new gs(t,i,s)};function Ss(t){const i={value:t.Wt[3],time:t.Gr};return void 0!==t.Ag&&(i.customValues=t.Ag),i}function Cs(t){const i=Ss(t);return void 0!==t.R&&(i.color=t.R),i}function ys(t){const i=Ss(t);return void 0!==t.vt&&(i.lineColor=t.vt),void 0!==t.eh&&(i.topColor=t.eh),void 0!==t.rh&&(i.bottomColor=t.rh),i}function Ps(t){const i=Ss(t);return void 0!==t.hh&&(i.topLineColor=t.hh),void 0!==t.ah&&(i.bottomLineColor=t.ah),void 0!==t.oh&&(i.topFillColor1=t.oh),void 0!==t._h&&(i.topFillColor2=t._h),void 0!==t.uh&&(i.bottomFillColor1=t.uh),void 0!==t.dh&&(i.bottomFillColor2=t.dh),i}function ks(t){const i={open:t.Wt[0],high:t.Wt[1],low:t.Wt[2],close:t.Wt[3],time:t.Gr};return void 0!==t.Ag&&(i.customValues=t.Ag),i}function Ts(t){const i=ks(t);return void 0!==t.R&&(i.color=t.R),i}function Rs(t){const i=ks(t),{R:n,Ht:s,sh:e}=t;return void 0!==n&&(i.color=n),void 0!==s&&(i.borderColor=s),void 0!==e&&(i.wickColor=e),i}function Ds(t){return{Area:ys,Line:Cs,Baseline:Ps,Histogram:Cs,Bar:Ts,Candlestick:Rs,Custom:Is}[t]}function Is(t){const i=t.Gr;return{...t.le,time:i}}const Es={vertLine:{color:"#9598A1",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#131722"},horzLine:{color:"#9598A1",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#131722"},mode:1,doNotSnapToHiddenSeriesIndices:!1},Vs={vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},Bs={background:{type:"solid",color:"#FFFFFF"},textColor:"#191919",fontSize:12,fontFamily:w,panes:{enableResize:!0,separatorColor:"#E0E3EB",separatorHoverColor:"rgba(178, 181, 189, 0.2)"},attributionLogo:!0,colorSpace:"srgb",colorParsers:[]},As={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:"#2B2B43",entireTextOnly:!1,visible:!1,ticksVisible:!1,scaleMargins:{bottom:.1,top:.2},minimumWidth:0,ensureEdgeTickMarksVisible:!1},zs={rightOffset:0,barSpacing:6,minBarSpacing:.5,maxBarSpacing:0,fixLeftEdge:!1,fixRightEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:"#2B2B43",visible:!0,timeVisible:!1,secondsVisible:!0,shiftVisibleRangeOnNewBar:!0,allowShiftVisibleRangeOnWhitespaceReplacement:!1,ticksVisible:!1,uniformDistribution:!1,minimumHeight:0,allowBoldLabels:!0,ignoreWhitespaceIndices:!1,enableConflation:!1,conflationThresholdFactor:1,precomputeConflationOnInit:!1,precomputeConflationPriority:"background"};function Ls(){return{addDefaultPane:!0,width:0,height:0,autoSize:!1,layout:Bs,crosshair:Es,grid:Vs,overlayPriceScales:{...As},leftPriceScale:{...As,visible:!1},rightPriceScale:{...As,visible:!0},timeScale:zs,localization:{locale:dn?navigator.language:"",dateFormat:"dd MMM 'yy"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:{time:!0,price:!0},mouseWheel:!0,pinch:!0},kineticScroll:{mouse:!1,touch:!0},trackingMode:{exitMode:1}}}class Os{constructor(t,i,n){this.Yp=t,this.bM=i,this.xM=n??0}applyOptions(t){this.Yp.Qt().md(this.bM,t,this.xM)}options(){return this.Ki().N()}width(){return q(this.bM)?this.Yp.dg(this.bM):0}setVisibleRange(t){this.setAutoScale(!1),this.Ki().$o(new dt(t.from,t.to))}getVisibleRange(){let t,i,n=this.Ki().er();if(null===n)return null;if(this.Ki().io()){const s=this.Ki().m_(),e=Fi(s);n=ci(n,this.Ki().so()),t=Number((Math.round(n.Ze()/s)*s).toFixed(e)),i=Number((Math.round(n.Ge()/s)*s).toFixed(e))}else t=n.Ze(),i=n.Ge();return{from:t,to:i}}setAutoScale(t){this.applyOptions({autoScale:t})}Ki(){return a(this.Yp.Qt().wd(this.bM,this.xM)).Ft}}class Ns{constructor(t,i,n,s){this.Yp=t,this.yt=n,this.SM=i,this.CM=s}getHeight(){return this.yt.$t()}setHeight(t){const i=this.Yp.Qt(),n=i.Gd(this.yt);i.Sd(n,t)}getStretchFactor(){return this.yt.B_()}setStretchFactor(t){this.yt.A_(t),this.Yp.Qt().Ca()}paneIndex(){return this.Yp.Qt().Gd(this.yt)}moveTo(t){const i=this.paneIndex();i!==t&&(r(t>=0&&tthis.SM(t)))??[]}getHTMLElement(){const t=this.Yp.Zp();return t&&0!==t.length&&t[this.paneIndex()]?t[this.paneIndex()].iv():null}attachPrimitive(t){this.yt.sl(t),t.attached&&t.attached({chart:this.CM,requestUpdate:()=>this.yt.Qt().Ca()})}detachPrimitive(t){this.yt.el(t)}priceScale(t){if(null===this.yt.E_(t))throw new Error(`Cannot find price scale with id: ${t}`);return new Os(this.Yp,t,this.paneIndex())}setPreserveEmptyPane(t){this.yt.O_(t)}preserveEmptyPane(){return this.yt.N_()}addCustomSeries(t,i={},n=0){return this.CM.addCustomSeries(t,i,n)}addSeries(t,i={}){return this.CM.addSeries(t,i,this.paneIndex())}}const Fs={color:"#FF0000",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:"",axisLabelColor:"",axisLabelTextColor:""};class Ws{constructor(t){this.hr=t}applyOptions(t){this.hr.cr(t)}options(){return this.hr.N()}yM(){return this.hr}}class Hs{constructor(t,i,n,s,e,r){this.PM=new o,this.ee=t,this.kM=i,this.TM=n,this.cu=e,this.CM=s,this.RM=r}m(){this.PM.m()}priceFormatter(){return this.ee.Xa()}priceToCoordinate(t){const i=this.ee.zt();return null===i?null:this.ee.Ft().Nt(t,i.Wt)}coordinateToPrice(t){const i=this.ee.zt();return null===i?null:this.ee.Ft().Tn(t,i.Wt)}barsInLogicalRange(t){if(null===t)return null;const i=new Ii(new Ti(t.from,t.to)).Ru(),n=this.ee.Un();if(n.Gi())return null;const s=n.Hn(i.Aa(),1),e=n.Hn(i.bi(),-1),r=a(n.Ph()),h=a(n.Qn());if(null!==s&&null!==e&&s.$n>e.$n)return{barsBefore:t.from-r,barsAfter:h-t.to};const l={barsBefore:null===s||s.$n===r?t.from-r:s.$n-r,barsAfter:null===e||e.$n===h?h-t.to:h-e.$n};return null!==s&&null!==e&&(l.from=s.Gr,l.to=e.Gr),l}setData(t){this.cu,this.ee.wh(),this.kM.DM(this.ee,t),this.IM("full")}update(t,i=!1){this.ee.wh(),this.kM.EM(this.ee,t,i),this.IM("update")}pop(t=1){const i=this.kM.VM(this.ee,t);0!==i.length&&this.IM("update");const n=Ds(this.seriesType());return i.map((t=>n(t)))}dataByIndex(t,i){const n=this.ee.Un().Hn(t,i);if(null===n)return null;return Ds(this.seriesType())(n)}data(){const t=Ds(this.seriesType());return this.ee.Un().Dh().map((i=>t(i)))}subscribeDataChanged(t){this.PM.i(t)}unsubscribeDataChanged(t){this.PM._(t)}applyOptions(t){this.ee.cr(t)}options(){return p(this.ee.N())}priceScale(){return this.TM.priceScale(this.ee.Ft().ol(),this.getPane().paneIndex())}createPriceLine(t){const i=_(p(Fs),t),n=this.ee.Da(i);return new Ws(n)}removePriceLine(t){this.ee.Ia(t.yM())}priceLines(){return this.ee.Ea().map((t=>new Ws(t)))}seriesType(){return this.ee.wh()}lastValueData(t){const i=this.ee.Ee(t);return i.Ve?{noData:!0}:{noData:!1,price:i.gt,color:i.R}}attachPrimitive(t){this.ee.sl(t),t.attached&&t.attached({chart:this.CM,series:this,requestUpdate:()=>this.ee.Qt().Ca(),horzScaleBehavior:this.cu})}detachPrimitive(t){this.ee.el(t),t.detached&&t.detached(),this.ee.Qt().Ca()}getPane(){const t=this.ee,i=a(this.ee.Qt().Ks(t));return this.RM(i)}moveToPane(t){this.ee.Qt().qd(this.ee,t)}seriesOrder(){const t=this.ee.Qt().Ks(this.ee);return null===t?-1:t.F_().indexOf(this.ee)}setSeriesOrder(t){const i=this.ee.Qt().Ks(this.ee);null!==i&&i.nu(this.ee,t)}IM(t){this.PM.v()&&this.PM.p(t)}}class Us{constructor(t,i,n){this.BM=new o,this.Nu=new o,this.Sw=new o,this.sn=t,this.Jh=t.Bt(),this.tg=i,this.Jh.zc().i(this.AM.bind(this)),this.Jh.Lc().i(this.zM.bind(this)),this.tg.Dw().i(this.LM.bind(this)),this.cu=n}m(){this.Jh.zc().u(this),this.Jh.Lc().u(this),this.tg.Dw().u(this),this.BM.m(),this.Nu.m(),this.Sw.m()}scrollPosition(){return this.Jh.Cc()}scrollToPosition(t,i){i?this.Jh.Vc(t,1e3):this.sn.Ms(t)}scrollToRealTime(){this.Jh.Ec()}getVisibleRange(){const t=this.Jh.lc();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.cu.convertHorzItemToInternal(t.from),to:this.cu.convertHorzItemToInternal(t.to)},n=this.Jh.cc(i);this.sn.$d(n)}getVisibleLogicalRange(){const t=this.Jh.ac();return null===t?null:{from:t.Aa(),to:t.bi()}}setVisibleLogicalRange(t){r(t.from<=t.to,"The from index cannot be after the to index."),this.sn.$d(t)}resetTimeScale(){this.sn.ws()}fitContent(){this.sn.Fc()}logicalToCoordinate(t){const i=this.sn.Bt();return i.Gi()?null:i.jt(t)}coordinateToLogical(t){return this.Jh.Gi()?null:this.Jh.wc(t)}timeToIndex(t,i){const n=this.cu.convertHorzItemToInternal(t);return this.Jh.ec(n,i)}timeToCoordinate(t){const i=this.timeToIndex(t,!1);return null===i?null:this.Jh.jt(i)}coordinateToTime(t){const i=this.sn.Bt(),n=i.wc(t),s=i.en(n);return null===s?null:s.originalTime}width(){return this.tg.nv().width}height(){return this.tg.nv().height}subscribeVisibleTimeRangeChange(t){this.BM.i(t)}unsubscribeVisibleTimeRangeChange(t){this.BM._(t)}subscribeVisibleLogicalRangeChange(t){this.Nu.i(t)}unsubscribeVisibleLogicalRangeChange(t){this.Nu._(t)}subscribeSizeChange(t){this.Sw.i(t)}unsubscribeSizeChange(t){this.Sw._(t)}applyOptions(t){this.Jh.cr(t)}options(){return{...p(this.Jh.N()),barSpacing:this.Jh.ul()}}AM(){this.BM.v()&&this.BM.p(this.getVisibleRange())}zM(){this.Nu.v()&&this.Nu.p(this.getVisibleLogicalRange())}LM(t){this.Sw.p(t.width,t.height)}}function $s(t){return function(t){if(f(t.handleScale)){const i=t.handleScale;t.handleScale={axisDoubleClickReset:{time:i,price:i},axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale){const{axisPressedMouseMove:i,axisDoubleClickReset:n}=t.handleScale;f(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),f(n)&&(t.handleScale.axisDoubleClickReset={time:n,price:n})}const i=t.handleScroll;f(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class js{constructor(t,i,n){this.OM=new Map,this.NM=new Map,this.FM=new o,this.WM=new o,this.HM=new o,this.Xc=new WeakMap,this.UM=new cs(i);const s=void 0===n?p(Ls()):_(p(Ls()),$s(n));this.$M=i,this.Yp=new Zn(t,s,i),this.Yp.sw().i((t=>{this.FM.v()&&this.FM.p(this.jM(t()))}),this),this.Yp.ew().i((t=>{this.WM.v()&&this.WM.p(this.jM(t()))}),this),this.Yp.Md().i((t=>{this.HM.v()&&this.HM.p(this.jM(t()))}),this);const e=this.Yp.Qt();this.qM=new Us(e,this.Yp.rg(),this.$M)}remove(){this.Yp.sw().u(this),this.Yp.ew().u(this),this.Yp.Md().u(this),this.qM.m(),this.Yp.m(),this.OM.clear(),this.NM.clear(),this.FM.m(),this.WM.m(),this.HM.m(),this.UM.m()}resize(t,i,n){this.autoSizeActive()||this.Yp.ng(t,i,n)}addCustomSeries(t,i={},n=0){const s=(t=>({type:"Custom",isBuiltIn:!1,defaultOptions:{...bs,...t.defaultOptions()},YM:xs,KM:t}))(l(t));return this.ZM(s,i,n)}addSeries(t,i={},n=0){return this.ZM(t,i,n)}removeSeries(t){const i=h(this.OM.get(t)),n=this.UM.Hd(i);this.Yp.Qt().Hd(i),this.GM(n),this.OM.delete(t),this.NM.delete(i)}DM(t,i){this.GM(this.UM.Ug(t,i))}EM(t,i,n){this.GM(this.UM.Zg(t,i,n))}VM(t,i){const[n,s]=this.UM.Jg(t,i);return 0!==n.length&&this.GM(s),n}subscribeClick(t){this.FM.i(t)}unsubscribeClick(t){this.FM._(t)}subscribeCrosshairMove(t){this.HM.i(t)}unsubscribeCrosshairMove(t){this.HM._(t)}subscribeDblClick(t){this.WM.i(t)}unsubscribeDblClick(t){this.WM._(t)}priceScale(t,i=0){return new Os(this.Yp,t,i)}timeScale(){return this.qM}applyOptions(t){this.Yp.cr($s(t))}options(){return this.Yp.N()}takeScreenshot(t=!1,i=!1){let n,s;try{i||(n=this.Yp.Qt().N().crosshair.mode,this.Yp.cr({crosshair:{mode:2}})),s=this.Yp.ug(t)}finally{i||void 0===n||this.Yp.Qt().cr({crosshair:{mode:n}})}return s}addPane(t=!1){const i=this.Yp.Qt().Xd();return i.O_(t),this.XM(i)}removePane(t){this.Yp.Qt().xd(t)}swapPanes(t,i){this.Yp.Qt().Cd(t,i)}autoSizeActive(){return this.Yp.vg()}chartElement(){return this.Yp.hv()}panes(){return this.Yp.Qt().Zn().map((t=>this.XM(t)))}paneSize(t=0){const i=this.Yp.gg(t);return{height:i.height,width:i.width}}setCrosshairPosition(t,i,n){const s=this.OM.get(n);if(void 0===s)return;const e=this.Yp.Qt().Ks(s);null!==e&&this.Yp.Qt().zd(t,i,e)}clearCrosshairPosition(){this.Yp.Qt().Ld(!0)}horzBehaviour(){return this.$M}ZM(i,n={},s=0){r(void 0!==i.YM),function(t){if(void 0===t||"custom"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=Fi(i.minMove))}(n.priceFormat),"Candlestick"===i.type&&function(t){void 0!==t.borderColor&&(t.borderUpColor=t.borderColor,t.borderDownColor=t.borderColor),void 0!==t.wickColor&&(t.wickUpColor=t.wickColor,t.wickDownColor=t.wickColor)}(n);const e=_(p(t),p(i.defaultOptions),n),h=i.YM,a=new Kt(this.Yp.Qt(),i.type,e,h,i.KM);this.Yp.Qt().Fd(a,s);const l=new Hs(a,this,this,this,this.$M,(t=>this.XM(t)));return this.OM.set(l,a),this.NM.set(a,l),l}GM(t){const i=this.Yp.Qt();i.Od(t.Bt.vc,t.Bt.nM,t.Bt.sM),t.F_.forEach(((t,i)=>i.ht(t.le,t.iM))),i.Bt().Ju(),i.xc()}JM(t){return h(this.NM.get(t))}jM(t){const i=new Map;t.Eg.forEach(((t,n)=>{const s=n.wh(),e=Ds(s)(t);if("Custom"!==s)r(Jn(e));else{const t=n.hl();r(!t||!1===t(e))}i.set(this.JM(n),e)}));const n=void 0!==t.Ig&&this.NM.has(t.Ig)?this.JM(t.Ig):void 0;return{time:t.Gr,logical:t.$n,point:t.Rg,paneIndex:t.Dg,hoveredSeries:n,hoveredObjectId:t.Vg,seriesData:i,sourceEvent:t.Bg}}XM(t){let i=this.Xc.get(t);return i||(i=new Ns(this.Yp,(t=>this.JM(t)),t,this),this.Xc.set(t,i)),i}}function qs(t){if(d(t)){const i=document.getElementById(t);return r(null!==i,`Cannot find element in DOM with id=${t}`),i}return t}function Ys(t,i,n){const s=qs(t),e=new js(s,i,n);return i.setOptions(e.options()),e}class Ks extends ms{constructor(t,i){super(t,i,!0)}mM(t,i,n){i.mc(this.aM,m(this.lM)),t.Yo(this.aM,n,m(this.lM))}QM(t,i){return{wt:t,gt:i,_t:NaN,ut:NaN}}pM(){const t=this.ee.ga();this.aM=this.ee.Na().Dh().map((i=>{let n;if((i.qr??1)>1){const t=i.Wt[1],s=i.Wt[2],e=i.Wt[3];n=Math.abs(t-e)>Math.abs(s-e)?t:s}else n=i.Wt[3];return this.tb(i.$n,n,t)}))}}function Zs(t,i,n,s,e,r,h){if(0===i.length||s.from>=i.length||s.to<=0)return;const{context:a,horizontalPixelRatio:l,verticalPixelRatio:o}=t,_=i[s.from];let u=r(t,_),c=_;if(s.to-s.from<2){const i=e/2;a.beginPath();const n={_t:_._t-i,ut:_.ut},s={_t:_._t+i,ut:_.ut};a.moveTo(n._t*l,n.ut*o),a.lineTo(s._t*l,s.ut*o),h(t,u,n,s)}else{const e=(i,n)=>{h(t,u,c,n),a.beginPath(),u=i,c=n};let d=c;a.beginPath(),a.moveTo(_._t*l,_.ut*o);for(let h=s.from+1;h=s.from;--n){const s=i[n];if(s){const i=e(t,s);i!==l&&(a.beginPath(),null!==l&&a.fill(),a.fillStyle=i,l=i);const n=Math.round(s._t*r)+o,u=s.ut*h;a.moveTo(n,u),a.arc(n,u,_,0,2*Math.PI)}}a.fill()}(t,i,l,n,_)}}class ne extends ie{eb(t,i){return i.vt}}class se extends Ks{constructor(){super(...arguments),this.cM=new ne}tb(t,i,n){return{...this.QM(t,i),...n.gh(t)}}wM(){const t=this.ee.N(),i={ot:this.aM,Zt:t.lineStyle,nb:t.lineVisible?t.lineType:void 0,ct:t.lineWidth,sb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,lt:this.lM,ib:this.re.Bt().ul()};this.cM.ht(i)}}const ee={type:"Line",isBuiltIn:!0,defaultOptions:{color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},YM:(t,i)=>new se(t,i)};function re(t,i){return t.weight>i.weight?t:i}class he{constructor(){this.rb=new o,this.hb=function(t){let i=!1;return function(...n){i||(i=!0,queueMicrotask((()=>{t(...n),i=!1})))}}((()=>this.rb.p(this.ab))),this.ab=0}lb(){return this.rb}m(){this.rb.m()}options(){return this.yn}setOptions(t){this.yn=t}preprocessData(t){}updateFormatter(t){this.yn&&(this.yn.localization=t)}createConverterToInternalObj(t){return this.hb(),t=>(t>this.ab&&(this.ab=t),t)}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return this.ob(t)}formatTickmark(t){return this.ob(t.time)}maxTickMarkWeight(t){return t.reduce(re,t[0]).weight}fillWeightsForPoints(t,i){for(let s=i;st.toFixed(3)+"%"}},le={lastValueVisible:!1,priceLineVisible:!1};class oe extends js{constructor(t,i){const n=_(ae,i||{}),s=new he;super(t,s,n),s.setOptions(this.options()),this._initWhitespaceSeries()}addSeries(t,i={},n=0){if(t.isBuiltIn&&!1===["Area","Line"].includes(t.type))throw new Error("Yield curve only support Area and Line series");const s={...le,...i};return super.addSeries(t,s,n)}_initWhitespaceSeries(){const t=this.horzBehaviour(),i=this.addSeries(ee);let n;function s(s){const e=function(t,i){return{fe:Math.max(0,t.startTimeRange),pe:Math.max(0,t.minimumTimeRange,i||0),_b:Math.max(1,t.baseResolution)}}(t.options().yieldCurve,s),r=(({fe:t,pe:i,_b:n})=>`${t}~${i}~${n}`)(e);r!==n&&(n=r,i.setData(function({fe:t,pe:i,_b:n}){return Array.from({length:Math.floor((i-t)/n)+1},((i,s)=>({time:t+s*n})))}(e)))}s(0),t.lb().i(s)}}function _e(t,i){return t.weight>i.weight?t:i}class ue{options(){return this.yn}setOptions(t){this.yn=t}preprocessData(t){}updateFormatter(t){this.yn&&(this.yn.localization=t)}createConverterToInternalObj(t){return t=>t}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return t.toFixed(this.Ds())}formatTickmark(t,i){return t.time.toFixed(this.Ds())}maxTickMarkWeight(t){return t.reduce(_e,t[0]).weight}fillWeightsForPoints(t,i){for(let s=i;s0?n:1,u=l*_,c=o===t.bitmapSize.height?o:o*_,d=(a??0)*_,f=t.context.createLinearGradient(0,u,0,c);if(f.addColorStop(0,s),null!=a){const t=Jt((d-u)/(c-u),0,1);f.addColorStop(t,e),f.addColorStop(t,r)}f.addColorStop(1,h),this.Cb=f,this.mb=i}return this.Cb}}class pe extends de{constructor(){super(...arguments),this.yb=new fe}fb(t,i){const n=this.rt;return this.yb.pb(t,{wb:i.oh,gb:i._h,Mb:i.uh,bb:i.dh,ub:n.ub,xb:n.xb??0,Sb:n.Sb??t.bitmapSize.height})}}class ve extends ie{constructor(){super(...arguments),this.Pb=new fe}eb(t,i){const n=this.rt;return this.Pb.pb(t,{wb:i.hh,gb:i.hh,Mb:i.ah,bb:i.ah,ub:n.ub,xb:n.xb??0,Sb:n.Sb??t.bitmapSize.height})}}class me extends Ks{constructor(t,i){super(t,i),this.cM=new C,this.kb=new pe,this.Tb=new ve,this.cM.nt([this.kb,this.Tb])}tb(t,i,n){return{...this.QM(t,i),...n.gh(t)}}wM(){const t=this.ee.zt();if(null===t)return;const i=this.ee.N(),n=this.ee.Ft().Nt(i.baseValue.price,t.Wt),s=this.re.Bt().ul();if(null===this.lM||0===this.aM.length)return;let e,r;if(i.relativeGradient){e=this.aM[this.lM.from].ut,r=this.aM[this.lM.from].ut;for(let t=this.lM.from;tr&&(r=i.ut)}}this.kb.ht({ot:this.aM,ct:i.lineWidth,Zt:i.lineStyle,nb:i.lineType,ub:n,xb:e,Sb:r,cb:!1,lt:this.lM,ib:s}),this.Tb.ht({ot:this.aM,ct:i.lineWidth,Zt:i.lineStyle,nb:i.lineVisible?i.lineType:void 0,sb:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,ub:n,xb:e,Sb:r,lt:this.lM,ib:s})}}const we={type:"Baseline",isBuiltIn:!0,defaultOptions:{baseValue:{type:"price",price:0},relativeGradient:!1,topFillColor1:"rgba(38, 166, 154, 0.28)",topFillColor2:"rgba(38, 166, 154, 0.05)",topLineColor:"rgba(38, 166, 154, 1)",bottomFillColor1:"rgba(239, 83, 80, 0.05)",bottomFillColor2:"rgba(239, 83, 80, 0.28)",bottomLineColor:"rgba(239, 83, 80, 1)",lineWidth:3,lineStyle:0,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},YM:(t,i)=>new me(t,i)};class ge extends de{constructor(){super(...arguments),this.yb=new fe}fb(t,i){return this.yb.pb(t,{wb:i.eh,gb:"",Mb:"",bb:i.rh,xb:this.rt?.xb??0,Sb:t.bitmapSize.height})}}class Me extends Ks{constructor(t,i){super(t,i),this.cM=new C,this.Rb=new ge,this.Db=new ne,this.cM.nt([this.Rb,this.Db])}tb(t,i,n){return{...this.QM(t,i),...n.gh(t)}}wM(){const t=this.ee.N();if(null===this.lM||0===this.aM.length)return;let i;if(t.relativeGradient){i=this.aM[this.lM.from].ut;for(let t=this.lM.from;tnew Me(t,i)};class xe extends y{constructor(){super(...arguments),this.qt=null,this.Ib=0,this.Eb=0}ht(t){this.qt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.qt||0===this.qt.Un.length||null===this.qt.lt)return;if(this.Ib=this.Vb(i),this.Ib>=2){Math.max(1,Math.floor(i))%2!=this.Ib%2&&this.Ib--}this.Eb=this.qt.Bb?Math.min(this.Ib,Math.floor(i)):this.Ib;let s=null;const e=this.Eb<=this.Ib&&this.qt.ul>=Math.floor(1.5*i);for(let r=this.qt.lt.from;rf+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(i,s,o-i,e-s+1)}const i=l+m;let s=Math.max(f,Math.round(h.Qo*n)-a),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(u+1,s,i-u,e-s+1)}}}Vb(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(a(this.qt).ul,t)))}}class Se extends ms{constructor(t,i){super(t,i,!1)}mM(t,i,n){i.mc(this.aM,m(this.lM)),t.Zo(this.aM,n,m(this.lM))}zb(t,i,n){return{wt:t,Hr:i.Wt[0],Ur:i.Wt[1],$r:i.Wt[2],jr:i.Wt[3],_t:NaN,Go:NaN,Xo:NaN,Jo:NaN,Qo:NaN}}pM(){const t=this.ee.ga();this.aM=this.ee.Na().Dh().map((i=>this.tb(i.$n,i,t)))}}class Ce extends Se{constructor(){super(...arguments),this.cM=new xe}tb(t,i,n){return{...this.zb(t,i,n),...n.gh(t)}}wM(){const t=this.ee.N();this.cM.ht({Un:this.aM,ul:this.re.Bt().ul(),Ab:t.openVisible,Bb:t.thinBars,lt:this.lM})}}const ye={type:"Bar",isBuiltIn:!0,defaultOptions:{upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},YM:(t,i)=>new Ce(t,i)};class Pe extends y{constructor(){super(...arguments),this.qt=null,this.Ib=0}ht(t){this.qt=t}et(t){if(null===this.qt||0===this.qt.Un.length||null===this.qt.lt)return;const{horizontalPixelRatio:i}=t;if(this.Ib=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);const n=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),s=Math.floor(t*n*i),e=Math.floor(t*i),r=Math.min(s,e);return Math.max(Math.floor(i),r)}(this.qt.ul,i),this.Ib>=2){Math.floor(i)%2!=this.Ib%2&&this.Ib--}const n=this.qt.Un;this.qt.Lb&&this.Ob(t,n,this.qt.lt),this.qt.Mi&&this.gm(t,n,this.qt.lt);const s=this.Nb(i);(!this.qt.Mi||this.Ib>2*s)&&this.Fb(t,n,this.qt.lt)}Ob(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="",a=Math.min(Math.floor(e),Math.floor(this.qt.ul*e));a=Math.max(Math.floor(e),Math.min(a,this.Ib));const l=Math.floor(.5*a);let o=null;for(let t=n.from;t2*a)E(s,o,u,_-o+1,c-u+1,a);else{const t=_-o+1;s.fillRect(o,u,t,c-u+1)}l=_}}Fb(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="";const a=this.Nb(e);for(let t=n.from;to||s.fillRect(_,l,u-_+1,o-l+1)}}}class ke extends Se{constructor(){super(...arguments),this.cM=new Pe}tb(t,i,n){return{...this.zb(t,i,n),...n.gh(t)}}wM(){const t=this.ee.N();this.cM.ht({Un:this.aM,ul:this.re.Bt().ul(),Lb:t.wickVisible,Mi:t.borderVisible,lt:this.lM})}}const Te={type:"Candlestick",isBuiltIn:!0,defaultOptions:{upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},YM:(t,i)=>new ke(t,i)};class Re extends y{constructor(){super(...arguments),this.qt=null,this.Wb=[]}ht(t){this.qt=t,this.Wb=[]}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.qt||0===this.qt.ot.length||null===this.qt.lt)return;this.Wb.length||this.Hb(i);const s=Math.max(1,Math.floor(n)),e=Math.round(this.qt.Ub*n)-Math.floor(s/2),r=e+s;for(let i=this.qt.lt.from;is.oe?s.bi=n.Aa-i-1:n.Aa=s.bi+i+1))}let s=Math.ceil(this.qt.ul*t);for(let t=this.qt.lt.from;t0&&s<4)for(let t=this.qt.lt.from;ts&&(i.$b>i.oe?i.bi-=1:i.Aa+=1)}}}class De extends Ks{constructor(){super(...arguments),this.cM=new Re}tb(t,i,n){return{...this.QM(t,i),...n.gh(t)}}wM(){const t={ot:this.aM,ul:this.re.Bt().ul(),lt:this.lM,Ub:this.ee.Ft().Nt(this.ee.N().base,a(this.ee.zt()).Wt)};this.cM.ht(t)}}const Ie={type:"Histogram",isBuiltIn:!0,defaultOptions:{color:"#26a69a",base:0},YM:(t,i)=>new De(t,i)};class Ee{constructor(t,i){this.yt=t,this.jb=i,this.qb()}detach(){this.yt.detachPrimitive(this.jb)}getPane(){return this.yt}applyOptions(t){this.jb.cr?.(t)}qb(){this.yt.attachPrimitive(this.jb)}}const Ve={visible:!0,horzAlign:"center",vertAlign:"center",lines:[]},Be={color:"rgba(0, 0, 0, 0.5)",fontSize:48,fontFamily:w,fontStyle:"",text:""};class Ae{constructor(t){this.Yb=new Map,this.qt=t}draw(t){t.useMediaCoordinateSpace((t=>{if(!this.qt.visible)return;const{context:i,mediaSize:n}=t;let s=0;for(const t of this.qt.lines){if(0===t.text.length)continue;i.font=t.k;const e=this.Kb(i,t.text);e>n.width?t.Rc=n.width/e:t.Rc=1,s+=t.lineHeight*t.Rc}let e=0;switch(this.qt.vertAlign){case"top":e=0;break;case"center":e=Math.max((n.height-s)/2,0);break;case"bottom":e=Math.max(n.height-s,0)}for(const t of this.qt.lines){i.save(),i.fillStyle=t.color;let s=0;switch(this.qt.horzAlign){case"left":i.textAlign="left",s=t.lineHeight/2;break;case"center":i.textAlign="center",s=n.width/2;break;case"right":i.textAlign="right",s=n.width-1-t.lineHeight/2}i.translate(s,e),i.textBaseline="top",i.font=t.k,i.scale(t.Rc,t.Rc),i.fillText(t.text,0,t.Zb),i.restore(),e+=t.lineHeight*t.Rc}}))}Kb(t,i){const n=this.Gb(t.font);let s=n.get(i);return void 0===s&&(s=t.measureText(i).width,n.set(i,s)),s}Gb(t){let i=this.Yb.get(t);return void 0===i&&(i=new Map,this.Yb.set(t,i)),i}}class ze{constructor(t){this.yn=Oe(t)}Pt(t){this.yn=Oe(t)}renderer(){return new Ae(this.yn)}}function Le(t){return{...t,k:g(t.fontSize,t.fontFamily,t.fontStyle),lineHeight:t.lineHeight||1.2*t.fontSize,Zb:0,Rc:0}}function Oe(t){return{...t,lines:t.lines.map(Le)}}function Ne(t){return{...Be,...t}}function Fe(t){return{...Ve,...t,lines:t.lines?.map(Ne)??[]}}class We{constructor(t){this.yn=Fe(t),this.Xb=[new ze(this.yn)]}updateAllViews(){this.Xb.forEach((t=>t.Pt(this.yn)))}paneViews(){return this.Xb}attached({requestUpdate:t}){this.Jb=t}detached(){this.Jb=void 0}cr(t){this.yn=Fe({...this.yn,...t}),this.Jb&&this.Jb()}}const He={alpha:1,padding:0};class Ue{constructor(t){this.qt=t}draw(t){t.useMediaCoordinateSpace((t=>{const i=t.context,n=this.Qb(this.qt,t.mediaSize);n&&this.qt.tx&&(i.globalAlpha=this.qt.alpha??1,i.drawImage(this.qt.tx,n._t,n.ut,n.nn,n.$t))}))}Qb(t,i){const{maxHeight:n,maxWidth:s,ix:e,nx:r,padding:h}=t,a=Math.round(i.width/2),l=Math.round(i.height/2),o=h??0;let _=i.width-2*o,u=i.height-2*o;n&&(u=Math.min(u,n)),s&&(_=Math.min(_,s));const c=_/r,d=u/e,f=Math.min(c,d),p=r*f,v=e*f;return{_t:a-.5*p,ut:l-.5*v,$t:v,nn:p}}}class $e{constructor(t){this.sx=null,this.hx=0,this.lx=0,this.yn=t,this.M=je(this.yn,this.sx,this.hx,this.lx)}ox(t){void 0!==t._x&&(this.hx=t._x),void 0!==t.ux&&(this.lx=t.ux),void 0!==t.vx&&(this.sx=t.vx),this.Pt()}mx(t){this.yn=t,this.Pt()}zOrder(){return"bottom"}Pt(){this.M=je(this.yn,this.sx,this.hx,this.lx)}renderer(){return new Ue(this.M)}}function je(t,i,n,s){return{...t,tx:i,nx:n,ix:s}}function qe(t){return{...He,...t}}class Ye{constructor(t,i){this.wx=null,this.gx=t,this.yn=qe(i),this.Xb=[new $e(this.yn)]}updateAllViews(){this.Xb.forEach((t=>t.Pt()))}paneViews(){return this.Xb}attached(t){const{requestUpdate:i}=t;this.Mx=i,this.wx=new Image,this.wx.onload=()=>{const t=this.wx?.naturalHeight??1,i=this.wx?.naturalWidth??1;this.Xb.forEach((n=>n.ox({ux:t,_x:i,vx:this.wx}))),this.Mx&&this.Mx()},this.wx.src=this.gx}detached(){this.Mx=void 0,this.wx=null}cr(t){this.yn=qe({...this.yn,...t}),this.bx(),this.Jb&&this.Jb()}Jb(){this.Mx&&this.Mx()}bx(){this.Xb.forEach((t=>t.mx(this.yn)))}}class Ke{constructor(t,i){this.ee=t,this.Zh=i,this.qb()}detach(){this.ee.detachPrimitive(this.Zh)}getSeries(){return this.ee}applyOptions(t){this.Zh&&this.Zh.cr&&this.Zh.cr(t)}qb(){this.ee.attachPrimitive(this.Zh)}}const Ze={autoScale:!0,zOrder:"normal"};function Ge(t,i){return ti(Math.min(Math.max(t,12),30)*i)}function Xe(t,i){switch(t){case"arrowDown":case"arrowUp":return Ge(i,1);case"circle":return Ge(i,.8);case"square":return Ge(i,.7)}}function Je(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(Ge(t,1))}function Qe(t){return Math.max(Ge(t,.1),3)}function tr(t,i,n){return i?t:n?Math.ceil(t/2):0}function ir(t,i,n,s){const e=(Xe("arrowUp",s)-1)/2*n.xx,r=(ti(s/2)-1)/2*n.xx;i.beginPath(),t?(i.moveTo(n._t-e,n.ut),i.lineTo(n._t,n.ut-e),i.lineTo(n._t+e,n.ut),i.lineTo(n._t+r,n.ut),i.lineTo(n._t+r,n.ut+e),i.lineTo(n._t-r,n.ut+e),i.lineTo(n._t-r,n.ut)):(i.moveTo(n._t-e,n.ut),i.lineTo(n._t,n.ut+e),i.lineTo(n._t+e,n.ut),i.lineTo(n._t+r,n.ut),i.lineTo(n._t+r,n.ut-e),i.lineTo(n._t-r,n.ut-e),i.lineTo(n._t-r,n.ut)),i.fill()}function nr(t,i,n,s,e,r){const h=(Xe("arrowUp",s)-1)/2,a=(ti(s/2)-1)/2;if(e>=i-a-2&&e<=i+a+2&&r>=(t?n:n-h)-2&&r<=(t?n+h:n)+2)return!0;return(()=>{if(ei+h+3||r<(t?n-h-3:n)||r>(t?n:n+h+3))return!1;const s=Math.abs(e-i);return Math.abs(r-n)+3>=s/2})()}class sr{constructor(){this.qt=null,this.$s=new it,this.F=-1,this.W="",this.qv="",this.Sx="normal"}ht(t){this.qt=t}js(t,i,n){this.F===t&&this.W===i||(this.F=t,this.W=i,this.qv=g(t,i),this.$s.Os()),this.Sx=n}Qs(t,i){if(null===this.qt||null===this.qt.lt)return null;for(let n=this.qt.lt.from;n{this.et(t)}))}drawBackground(t){"aboveSeries"===this.Sx&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null!==this.qt&&null!==this.qt.lt){t.textBaseline="middle",t.font=this.qv;for(let s=this.qt.lt.from;s=t&&e<=t+n&&r>=i-h&&r<=i+h}(t.ri._t,t.ri.ut,t.ri.nn,t.ri.$t,i,n))||function(t,i,n){if(0===t.yh)return!1;switch(t.yx){case"arrowDown":return nr(!0,t._t,t.ut,t.yh,i,n);case"arrowUp":return nr(!1,t._t,t.ut,t.yh,i,n);case"circle":return function(t,i,n,s,e){const r=2+Xe("circle",n)/2,h=t-s,a=i-e;return Math.sqrt(h*h+a*a)<=r}(t._t,t.ut,t.yh,i,n);case"square":return function(t,i,n,s,e){const r=Xe("square",n),h=(r-1)/2,a=t-h,l=i-h;return s>=a&&s<=a+r&&e>=l&&e<=l+r}(t._t,t.ut,t.yh,i,n)}}(t,i,n)}function hr(t){return"atPriceTop"===t||"atPriceBottom"===t||"atPriceMiddle"===t}function ar(t,i,n,s,e,r,h,l){const o=function(t,i,n){if(hr(i.position)&&void 0!==i.price)return i.price;if("value"in(s=t)&&"number"==typeof s.value)return t.value;var s;if(function(t){return"open"in t&&"high"in t&&"low"in t&&"close"in t}(t)){if("inBar"===i.position)return t.close;if("aboveBar"===i.position)return n?t.low:t.high;if("belowBar"===i.position)return n?t.high:t.low}}(n,i,h.priceScale().options().invertScale);if(void 0===o)return;const _=hr(i.position),c=l.timeScale(),d=u(i.size)?Math.max(i.size,0):1,f=Je(c.options().barSpacing)*d,p=f/2;t.yh=f;switch(i.position){case"inBar":case"atPriceMiddle":return t.ut=a(h.priceToCoordinate(o)),void(void 0!==t.ri&&(t.ri.ut=t.ut+p+r+.6*e));case"aboveBar":case"atPriceTop":{const i=_?0:s.Px;return t.ut=a(h.priceToCoordinate(o))-p-i,void 0!==t.ri&&(t.ri.ut=t.ut-p-.6*e,s.Px+=1.2*e),void(_||(s.Px+=f+r))}case"belowBar":case"atPriceBottom":{const i=_?0:s.kx;return t.ut=a(h.priceToCoordinate(o))+p+i,void 0!==t.ri&&(t.ri.ut=t.ut+p+r+.6*e,s.kx+=1.2*e),void(_||(s.kx+=f+r))}}}class lr{constructor(t,i,n){this.Tx=[],this.St=!0,this.Rx=!0,this.Xt=new sr,this.ye=t,this.zv=i,this.qt={ot:[],lt:null},this.yn=n}renderer(){if(!this.ye.options().visible)return null;this.St&&this.Dx();const t=this.zv.options().layout;return this.Xt.js(t.fontSize,t.fontFamily,this.yn.zOrder),this.Xt.ht(this.qt),this.Xt}Ix(t){this.Tx=t,this.Pt("data")}Pt(t){this.St=!0,"data"===t&&(this.Rx=!0)}Ex(t){this.St=!0,this.yn=t}zOrder(){return"aboveSeries"===this.yn.zOrder?"top":this.yn.zOrder}Dx(){const t=this.zv.timeScale(),i=this.Tx;this.Rx&&(this.qt.ot=i.map((t=>({wt:t.time,_t:0,ut:0,yh:0,yx:t.shape,R:t.color,te:t.id,Vx:t.Vx,ri:void 0}))),this.Rx=!1);const n=this.zv.options().layout;this.qt.lt=null;const s=t.getVisibleLogicalRange();if(null===s)return;const e=new Ti(Math.floor(s.from),Math.ceil(s.to));if(null===this.ye.data()[0])return;if(0===this.qt.ot.length)return;let r=NaN;const h=Qe(t.options().barSpacing),l={Px:h,kx:h};this.qt.lt=vs(this.qt.ot,e,!0);for(let s=this.qt.lt.from;s0&&(o.ri={Cx:e.text,_t:0,ut:0,nn:0,$t:0});const _=this.ye.dataByIndex(e.time,0);null!==_&&ar(o,e,_,l,n.fontSize,h,this.ye,this.zv)}this.St=!1}}function or(t){return{...Ze,...t}}class _r{constructor(t){this.$h=null,this.Tx=[],this.Bx=[],this.Ax=null,this.ye=null,this.zv=null,this.zx=!0,this.Lx=null,this.Ox=null,this.Nx=null,this.Fx=!0,this.yn=or(t)}attached(t){this.Wx(),this.zv=t.chart,this.ye=t.series,this.$h=new lr(this.ye,a(this.zv),this.yn),this.Mx=t.requestUpdate,this.ye.subscribeDataChanged((t=>this.IM(t))),this.Fx=!0,this.Jb()}Jb(){this.Mx&&this.Mx()}detached(){this.ye&&this.Ax&&this.ye.unsubscribeDataChanged(this.Ax),this.zv=null,this.ye=null,this.$h=null,this.Ax=null}Ix(t){this.Fx=!0,this.Tx=t,this.Wx(),this.zx=!0,this.Ox=null,this.Jb()}Hx(){return this.Tx}paneViews(){return this.$h?[this.$h]:[]}updateAllViews(){this.Ux()}hitTest(t,i){return this.$h?this.$h.renderer()?.Qs(t,i)??null:null}autoscaleInfo(t,i){if(this.yn.autoScale&&this.$h){const t=this.$x();if(t)return{priceRange:null,margins:t}}return null}cr(t){this.yn=or({...this.yn,...t}),this.Jb&&this.Jb()}$x(){const t=a(this.zv).timeScale().options().barSpacing;if(this.zx||t!==this.Nx){if(this.Nx=t,this.Tx.length>0){const i=Qe(t),n=1.5*Je(t)+2*i,s=this.jx();this.Lx={above:tr(n,s.aboveBar,s.inBar),below:tr(n,s.belowBar,s.inBar)}}else this.Lx=null;this.zx=!1}return this.Lx}jx(){return null===this.Ox&&(this.Ox=this.Tx.reduce(((t,i)=>(t[i.position]||(t[i.position]=!0),t)),{inBar:!1,aboveBar:!1,belowBar:!1,atPriceTop:!1,atPriceBottom:!1,atPriceMiddle:!1})),this.Ox}Wx(){if(!this.Fx||!this.zv||!this.ye)return;const t=this.zv.timeScale(),i=this.ye?.data();if(null==t.getVisibleLogicalRange()||!this.ye||0===i.length)return void(this.Bx=[]);const n=t.timeToIndex(a(i[0].time),!0);this.Bx=this.Tx.map(((i,s)=>{const e=t.timeToIndex(i.time,!0),r=e{this.Tx.delete(i),this.Zx()}),n),e={...t,Gx:s,Xx:Date.now()+n};this.Tx.set(i,e)}else this.Tx.set(i,{...t,Gx:void 0,Xx:void 0});this.Zx()}Kx(t){const i=this.Tx.get(t);i&&void 0!==i.Gx&&window.clearTimeout(i.Gx),this.Tx.delete(t),this.Zx()}Jx(){for(const[t]of this.Tx)this.Kx(t)}Qx(){const t=Date.now(),i=[];for(const[n,s]of this.Tx)!s.Xx||s.Xx>t?i.push({time:s.time,sign:s.sign,value:s.value}):this.Kx(n);return i}tS(t){this.qx=t}Zx(){this.qx&&this.qx()}}const dr={positiveColor:"#22AB94",negativeColor:"#F7525F",updateVisibilityDuration:5e3};class fr{constructor(t,i,n,s){this.qt=t,this.iS=i,this.nS=n,this.sS=s}draw(t){t.useBitmapCoordinateSpace((t=>{const i=t.context,n=Math.max(1,Math.floor(t.horizontalPixelRatio))%2/2,s=4*t.verticalPixelRatio+n;this.qt.forEach((e=>{const r=Math.round(e._t*t.horizontalPixelRatio)+n;i.beginPath();const h=this.eS(e.rS);i.fillStyle=h,i.arc(r,e.ut*t.verticalPixelRatio,s,0,2*Math.PI,!1),i.fill(),e.rS&&(i.strokeStyle=h,i.lineWidth=Math.floor(2*t.horizontalPixelRatio),i.beginPath(),i.moveTo((e._t-4.7)*t.horizontalPixelRatio+n,(e.ut-7*e.rS)*t.verticalPixelRatio),i.lineTo(e._t*t.horizontalPixelRatio+n,(e.ut-7*e.rS-7*e.rS*.5)*t.verticalPixelRatio),i.lineTo((e._t+4.7)*t.horizontalPixelRatio+n,(e.ut-7*e.rS)*t.verticalPixelRatio),i.stroke())}))}))}eS(t){return 0===t?this.iS:t>0?this.sS:this.nS}}class pr{constructor(t,i,n){this.qt=[],this.ye=t,this.Jh=i,this.yn=n}Pt(t){this.qt=t.map((t=>{const i=this.ye.priceToCoordinate(t.value);if(null===i)return null;return{_t:a(this.Jh.timeToCoordinate(t.time)),ut:i,rS:t.sign}})).filter(v)}renderer(){const t=function(t,i){return function(t,i){return"Area"===i}(0,i)?t.lineColor:t.color}(this.ye.options(),this.ye.seriesType());return new fr(this.qt,t,this.yn.negativeColor,this.yn.positiveColor)}}function vr(t,i){return"Line"===i||"Area"===i}class mr{constructor(t){this.zv=void 0,this.ye=void 0,this.Xb=[],this.cu=null,this.hS=new Map,this.aS=new cr((()=>this.Jb())),this.yn={...dr,...t}}cr(t){this.yn={...this.yn,...t},this.Jb()}Ix(t){this.aS.Jx();const i=this.cu;i&&t.forEach((t=>{this.aS.Yx(t,i.key(t.time))}))}Hx(){return this.aS.Qx()}Jb(){this.Mx?.()}attached(t){const{chart:i,series:n,requestUpdate:s,horzScaleBehavior:e}=t;this.zv=i,this.ye=n,this.cu=e;const r=this.ye.seriesType();if("Area"!==r&&"Line"!==r)throw new Error("UpDownMarkersPrimitive is only supported for Area and Line series types");this.Xb=[new pr(this.ye,this.zv.timeScale(),this.yn)],this.Mx=s,this.Jb()}detached(){this.zv=void 0,this.ye=void 0,this.Mx=void 0}Gv(){return h(this.zv)}F_(){return h(this.ye)}updateAllViews(){this.Xb.forEach((t=>t.Pt(this.Hx())))}paneViews(){return this.Xb}ht(t){if(!this.ye)throw new Error("Primitive not attached to series");const i=this.ye.seriesType();this.hS.clear();const n=this.cu;n&&t.forEach((t=>{Jn(t)&&vr(0,i)&&this.hS.set(n.key(t.time),t.value)})),h(this.ye).setData(t)}Pt(t,i){if(!this.ye||!this.cu)throw new Error("Primitive not attached to series");const n=this.ye.seriesType(),s=this.cu.key(t.time);if(Xn(t)&&this.hS.delete(s),Jn(t)&&vr(0,n)){const i=this.hS.get(s);i&&this.aS.Yx({time:t.time,value:t.value,sign:wr(t.value,i)},s,this.yn.updateVisibilityDuration)}h(this.ye).update(t,i)}lS(){this.aS.Jx()}}function wr(t,i){return t===i?0:t-i>0?1:-1}class gr extends Ke{setData(t){return this.Zh.ht(t)}update(t,i){return this.Zh.Pt(t,i)}markers(){return this.Zh.Hx()}setMarkers(t){return this.Zh.Ix(t)}clearMarkers(){return this.Zh.lS()}}const Mr={...t,color:"#2196f3"};var br=Object.freeze({__proto__:null,AreaSeries:be,BarSeries:ye,BaselineSeries:we,CandlestickSeries:Te,get ColorType(){return Li},get CrosshairMode(){return $},HistogramSeries:Ie,get LastPriceAnimationMode(){return Ai},LineSeries:ee,get LineStyle(){return n},get LineType(){return i},get MismatchDirection(){return kt},get PriceLineSource(){return zi},get PriceScaleMode(){return mi},get TickMarkType(){return Oi},get TrackingModeExitMode(){return Bi},createChart:function(t,i){return Ys(t,new rn,rn.pf(i))},createChartEx:Ys,createImageWatermark:function(t,i,n){return new Ee(t,new Ye(i,n))},createOptionsChart:function(t,i){return Ys(t,new ue,i)},createSeriesMarkers:function(t,i,n){const s=new ur(t,new _r(n??{}));return i&&s.setMarkers(i),s},createTextWatermark:function(t,i){return new Ee(t,new We(i))},createUpDownMarkers:function(t,i={}){return new gr(t,new mr(i))},createYieldCurveChart:function(t,i){const n=qs(t);return new oe(n,i)},customSeriesDefaultOptions:Mr,defaultHorzScaleBehavior:function(){return rn},isBusinessDay:Wi,isUTCTimestamp:Hi,version:function(){return"5.1.0"}});window.LightweightCharts=br}();