funhi-chart 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* TradingView Lightweight Charts™ v4.2.3
|
|
5
5
|
* Copyright (c) 2025 TradingView, Inc.
|
|
6
6
|
* Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
*/const l={upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},a={upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},c={color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},u={topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",invertFilledArea:!1,lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},d={baseValue:{type:"price",price:0},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},f={color:"#26a69a",base:0},m={color:"#2196f3"},p={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 g,v,b;function w(t,i){const e={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(e)}function y(t,i,e,s){t.beginPath();const n=t.lineWidth%2?.5:0;t.moveTo(e,i+n),t.lineTo(s,i+n),t.stroke()}function S(t,i){if(!t)throw new Error("Assertion failed"+(i?": "+i:""))}function C(t){if(void 0===t)throw new Error("Value is undefined");return t}function x(t){if(null===t)throw new Error("Value is null");return t}function _(t){return x(C(t))}(b=g||(g={}))[b.Simple=0]="Simple",b[b.WithSteps=1]="WithSteps",b[b.Curved=2]="Curved",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"}(v||(v={}));const E={khaki:"#f0e68c",azure:"#f0ffff",aliceblue:"#f0f8ff",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",gray:"#808080",green:"#008000",honeydew:"#f0fff0",floralwhite:"#fffaf0",lightblue:"#add8e6",lightcoral:"#f08080",lemonchiffon:"#fffacd",hotpink:"#ff69b4",lightyellow:"#ffffe0",greenyellow:"#adff2f",lightgoldenrodyellow:"#fafad2",limegreen:"#32cd32",linen:"#faf0e6",lightcyan:"#e0ffff",magenta:"#f0f",maroon:"#800000",olive:"#808000",orange:"#ffa500",oldlace:"#fdf5e6",mediumblue:"#0000cd",transparent:"#0000",lime:"#0f0",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",midnightblue:"#191970",orchid:"#da70d6",mediumorchid:"#ba55d3",mediumturquoise:"#48d1cc",orangered:"#ff4500",royalblue:"#4169e1",powderblue:"#b0e0e6",red:"#f00",coral:"#ff7f50",turquoise:"#40e0d0",white:"#fff",whitesmoke:"#f5f5f5",wheat:"#f5deb3",teal:"#008080",steelblue:"#4682b4",bisque:"#ffe4c4",aquamarine:"#7fffd4",aqua:"#0ff",sienna:"#a0522d",silver:"#c0c0c0",springgreen:"#00ff7f",antiquewhite:"#faebd7",burlywood:"#deb887",brown:"#a52a2a",beige:"#f5f5dc",chocolate:"#d2691e",chartreuse:"#7fff00",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cadetblue:"#5f9ea0",tomato:"#ff6347",fuchsia:"#f0f",blue:"#00f",salmon:"#fa8072",blanchedalmond:"#ffebcd",slateblue:"#6a5acd",slategray:"#708090",thistle:"#d8bfd8",tan:"#d2b48c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",blueviolet:"#8a2be2",black:"#000",darkmagenta:"#8b008b",darkslateblue:"#483d8b",darkkhaki:"#bdb76b",darkorchid:"#9932cc",darkorange:"#ff8c00",darkgreen:"#006400",darkred:"#8b0000",dodgerblue:"#1e90ff",darkslategray:"#2f4f4f",dimgray:"#696969",deepskyblue:"#00bfff",firebrick:"#b22222",forestgreen:"#228b22",indigo:"#4b0082",ivory:"#fffff0",lavenderblush:"#fff0f5",feldspar:"#d19275",indianred:"#cd5c5c",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightskyblue:"#87cefa",lightslategray:"#789",lightslateblue:"#8470ff",snow:"#fffafa",lightseagreen:"#20b2aa",lightsalmon:"#ffa07a",darksalmon:"#e9967a",darkviolet:"#9400d3",mediumpurple:"#9370d8",mediumaquamarine:"#66cdaa",skyblue:"#87ceeb",lavender:"#e6e6fa",lightsteelblue:"#b0c4de",mediumvioletred:"#c71585",mintcream:"#f5fffa",navajowhite:"#ffdead",navy:"#000080",olivedrab:"#6b8e23",palevioletred:"#d87093",violetred:"#d02090",yellow:"#ff0",yellowgreen:"#9acd32",lawngreen:"#7cfc00",pink:"#ffc0cb",paleturquoise:"#afeeee",palegoldenrod:"#eee8aa",darkolivegreen:"#556b2f",darkseagreen:"#8fbc8f",darkturquoise:"#00ced1",peachpuff:"#ffdab9",deeppink:"#ff1493",violet:"#ee82ee",palegreen:"#98fb98",mediumseagreen:"#3cb371",peru:"#cd853f",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",purple:"#800080",seagreen:"#2e8b57",seashell:"#fff5ee",papayawhip:"#ffefd5",mediumslateblue:"#7b68ee",plum:"#dda0dd",mediumspringgreen:"#00fa9a"};function M(t){return t<0?0:t>255?255:Math.round(t)||0}function z(t){return t<=0||t>1?Math.min(Math.max(t,0),1):Math.round(1e4*t)/1e4}const R=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,k=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,T=/^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/,L=/^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d*\.?\d+)\s*\)$/;function O(t){(t=t.toLowerCase())in E&&(t=E[t]);{const i=L.exec(t)||T.exec(t);if(i)return[M(parseInt(i[1],10)),M(parseInt(i[2],10)),M(parseInt(i[3],10)),z(i.length<5?1:parseFloat(i[4]))]}{const i=k.exec(t);if(i)return[M(parseInt(i[1],16)),M(parseInt(i[2],16)),M(parseInt(i[3],16)),1]}{const i=R.exec(t);if(i)return[M(17*parseInt(i[1],16)),M(17*parseInt(i[2],16)),M(17*parseInt(i[3],16)),1]}throw new Error(`Cannot parse color: ${t}`)}function N(t){return.199*t[0]+.687*t[1]+.114*t[2]}function $(t){const i=O(t);return{t:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,i:N(i)>160?"black":"white"}}class P{constructor(){this.h=[]}l(t,i,e){const s={o:t,_:i,u:!0===e};this.h.push(s)}v(t){const i=this.h.findIndex(i=>t===i.o);i>-1&&this.h.splice(i,1)}p(t){this.h=this.h.filter(i=>i._!==t)}m(t,i,e){const s=[...this.h];this.h=this.h.filter(t=>!t.u),s.forEach(s=>s.o(t,i,e))}M(){return this.h.length>0}S(){this.h=[]}}function V(t,...i){for(const e of i)for(const i in e)void 0!==e[i]&&Object.prototype.hasOwnProperty.call(e,i)&&!["__proto__","constructor","prototype"].includes(i)&&("object"!=typeof e[i]||void 0===t[i]||Array.isArray(e[i])?t[i]=e[i]:V(t[i],e[i]));return t}function D(t){return"number"==typeof t&&isFinite(t)}function A(t){return"number"==typeof t&&t%1==0}function B(t){return"string"==typeof t}function F(t){return"boolean"==typeof t}function W(t){const i=t;if(!i||"object"!=typeof i)return i;let e,s,n;for(s in e=Array.isArray(i)?[]:{},i)i.hasOwnProperty(s)&&(n=i[s],e[s]=n&&"object"==typeof n?W(n):n);return e}function j(t){return null!==t}function I(t){return null===t?void 0:t}const U="-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif";function H(t,i,e){return void 0===i&&(i=U),`${e=void 0!==e?`${e} `:""}${t}px ${i}`}class K{constructor(t){this.k={C:1,T:5,P:NaN,R:"",D:"",V:"",O:"",B:0,A:0,I:0,L:0,N:0},this.F=t}W(){const t=this.k,i=this.j(),e=this.H();return t.P===i&&t.D===e||(t.P=i,t.D=e,t.R=H(i,e),t.L=2.5/12*i,t.B=t.L,t.A=i/12*t.T,t.I=i/12*t.T,t.N=0),t.V=this.$(),t.O=this.U(),this.k}$(){return this.F.W().layout.textColor}U(){return this.F.q()}j(){return this.F.W().layout.fontSize}H(){return this.F.W().layout.fontFamily}}class q{constructor(){this.Y=[]}Z(t){this.Y=t}X(t,i,e){this.Y.forEach(s=>{s.X(t,i,e)})}}class X{X(t,i,e){t.useBitmapCoordinateSpace(t=>this.K(t,i,e))}}class J extends X{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e}){if(null===this.G||null===this.G.tt)return;const s=this.G.tt,n=this.G,r=Math.max(1,Math.floor(i))%2/2,o=o=>{t.beginPath();for(let h=s.to-1;h>=s.from;--h){const s=n.it[h],l=Math.round(s.nt*i)+r,a=s.st*e,c=o*e+r;t.moveTo(l,a),t.arc(l,a,c,0,2*Math.PI)}t.fill()};n.et>0&&(t.fillStyle=n.rt,o(n.ht+n.et)),t.fillStyle=n.lt,o(n.ht)}}function G(){return{it:[{nt:0,st:0,ot:0,_t:0}],lt:"",rt:"",ht:0,et:0,tt:null}}const Q={from:0,to:1};class Y{constructor(t,i){this.ut=new q,this.ct=[],this.dt=[],this.ft=!0,this.F=t,this.vt=i,this.ut.Z(this.ct)}bt(t){const i=this.F.wt();i.length!==this.ct.length&&(this.dt=i.map(G),this.ct=this.dt.map(t=>{const i=new J;return i.J(t),i}),this.ut.Z(this.ct)),this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.ut}Mt(){const t=2===this.vt.W().mode,i=this.F.wt(),e=this.vt.xt(),s=this.F.St();i.forEach((i,n)=>{var r;const o=this.dt[n],h=i.kt(e);if(t||null===h||!i.yt())return void(o.tt=null);const l=x(i.Ct());o.lt=h.Tt,o.ht=h.ht,o.et=h.Pt,o.it[0]._t=h._t,o.it[0].st=i.Dt().Rt(h._t,l.Vt),o.rt=null!==(r=h.Ot)&&void 0!==r?r:this.F.Bt(o.it[0].st/i.Dt().At()),o.it[0].ot=e,o.it[0].nt=s.It(e),o.tt=Q})}}class Z extends X{constructor(t){super(),this.zt=t}K({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:s}){if(null===this.zt)return;const n=this.zt.Lt.yt,r=this.zt.Et.yt;if(!n&&!r)return;const o=Math.round(this.zt.nt*e),h=Math.round(this.zt.st*s);t.lineCap="butt",n&&o>=0&&(t.lineWidth=Math.floor(this.zt.Lt.et*e),t.strokeStyle=this.zt.Lt.V,t.fillStyle=this.zt.Lt.V,w(t,this.zt.Lt.Nt),function(t,i,e,s){t.beginPath();const n=t.lineWidth%2?.5:0;t.moveTo(i+n,0),t.lineTo(i+n,s),t.stroke()}(t,o,0,i.height)),r&&h>=0&&(t.lineWidth=Math.floor(this.zt.Et.et*s),t.strokeStyle=this.zt.Et.V,t.fillStyle=this.zt.Et.V,w(t,this.zt.Et.Nt),y(t,h,0,i.width))}}class tt{constructor(t){this.ft=!0,this.Ft={Lt:{et:1,Nt:0,V:"",yt:!1},Et:{et:1,Nt:0,V:"",yt:!1},nt:0,st:0},this.Wt=new Z(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.yt(),i=x(this.jt.Ht()),e=i.$t().W().crosshair,s=this.Ft;if(2===e.mode)return s.Et.yt=!1,void(s.Lt.yt=!1);s.Et.yt=t&&this.jt.Ut(i),s.Lt.yt=t&&this.jt.qt(),s.Et.et=e.horzLine.width,s.Et.Nt=e.horzLine.style,s.Et.V=e.horzLine.color,s.Lt.et=e.vertLine.width,s.Lt.Nt=e.vertLine.style,s.Lt.V=e.vertLine.color,s.nt=this.jt.Yt(),s.st=this.jt.Zt()}}function it(t,i,e,s,n,r){t.fillRect(i+r,e,s-2*r,r),t.fillRect(i+r,e+n-r,s-2*r,r),t.fillRect(i,e,r,n),t.fillRect(i+s-r,e,r,n)}function et(t,i,e,s,n,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,e,s,n),t.restore()}function st(t,i,e,s,n,r){t.beginPath(),t.roundRect?t.roundRect(i,e,s,n,r):(t.lineTo(i+s-r[1],e),0!==r[1]&&t.arcTo(i+s,e,i+s,e+r[1],r[1]),t.lineTo(i+s,e+n-r[2]),0!==r[2]&&t.arcTo(i+s,e+n,i+s-r[2],e+n,r[2]),t.lineTo(i+r[3],e+n),0!==r[3]&&t.arcTo(i,e+n,i,e+n-r[3],r[3]),t.lineTo(i,e+r[0]),0!==r[0]&&t.arcTo(i,e,i+r[0],e,r[0]))}function nt(t,i,e,s,n,r,o=0,h=[0,0,0,0],l=""){if(t.save(),!o||!l||l===r)return st(t,i,e,s,n,h),t.fillStyle=r,t.fill(),void t.restore();const a=o/2;var c;st(t,i+a,e+a,s-o,n-o,(c=-a,h.map(t=>0===t?t:t+c))),"transparent"!==r&&(t.fillStyle=r,t.fill()),"transparent"!==l&&(t.lineWidth=o,t.strokeStyle=l,t.closePath(),t.stroke()),t.restore()}function rt(t,i,e,s,n,r,o){t.save(),t.globalCompositeOperation="copy";const h=t.createLinearGradient(0,0,0,n);h.addColorStop(0,r),h.addColorStop(1,o),t.fillStyle=h,t.fillRect(i,e,s,n),t.restore()}class ot{constructor(t,i){this.J(t,i)}J(t,i){this.zt=t,this.Xt=i}At(t,i){return this.zt.yt?t.P+t.L+t.B:0}X(t,i,e,s){if(!this.zt.yt||0===this.zt.Kt.length)return;const n=this.zt.V,r=this.Xt.t,o=t.useBitmapCoordinateSpace(t=>{const o=t.context;o.font=i.R;const h=this.Gt(t,i,e,s),l=h.Jt;return h.Qt?nt(o,l.ti,l.ii,l.ni,l.si,r,l.ei,[l.ht,0,0,l.ht],r):nt(o,l.ri,l.ii,l.ni,l.si,r,l.ei,[0,l.ht,l.ht,0],r),this.zt.hi&&(o.fillStyle=n,o.fillRect(l.ri,l.li,l.ai-l.ri,l.oi)),this.zt._i&&(o.fillStyle=i.O,o.fillRect(h.Qt?l.ui-l.ei:0,l.ii,l.ei,l.ci-l.ii)),h});t.useMediaCoordinateSpace(({context:t})=>{const e=o.di;t.font=i.R,t.textAlign=o.Qt?"right":"left",t.textBaseline="middle",t.fillStyle=n,t.fillText(this.zt.Kt,e.fi,(e.ii+e.ci)/2+e.pi)})}Gt(t,i,e,s){var n;const{context:r,bitmapSize:o,mediaSize:h,horizontalPixelRatio:l,verticalPixelRatio:a}=t,c=this.zt.hi||!this.zt.mi?i.T:0,u=this.zt.bi?i.C:0,d=i.L+this.Xt.wi,f=i.B+this.Xt.gi,m=i.A,p=i.I,g=this.zt.Kt,v=i.P,b=e.Mi(r,g),w=Math.ceil(e.xi(r,g)),y=v+d+f,S=i.C+m+p+w+c,C=Math.max(1,Math.floor(a));let x=Math.round(y*a);x%2!=C%2&&(x+=1);const _=u>0?Math.max(1,Math.floor(u*l)):0,E=Math.round(S*l),M=Math.round(c*l),z=null!==(n=this.Xt.Si)&&void 0!==n?n:this.Xt.ki,R=Math.round(z*a)-Math.floor(.5*a),k=Math.floor(R+C/2-x/2),T=k+x,L="right"===s,O=L?h.width-u:u,N=L?o.width-_:_;let $,P,V;return L?($=N-E,P=N-M,V=O-c-m-u):($=N+E,P=N+M,V=O+c+m),{Qt:L,Jt:{ii:k,li:R,ci:T,ni:E,si:x,ht:2*l,ei:_,ti:$,ri:N,ai:P,oi:C,ui:o.width},di:{ii:k/a,ci:T/a,fi:V,pi:b}}}}class ht{constructor(t){this.yi={ki:0,t:"#000",gi:0,wi:0},this.Ci={Kt:"",yt:!1,hi:!0,mi:!1,Ot:"",V:"#FFF",_i:!1,bi:!1},this.Ti={Kt:"",yt:!1,hi:!1,mi:!0,Ot:"",V:"#FFF",_i:!0,bi:!0},this.ft=!0,this.Pi=new(t||ot)(this.Ci,this.yi),this.Ri=new(t||ot)(this.Ti,this.yi)}Kt(){return this.Di(),this.Ci.Kt}ki(){return this.Di(),this.yi.ki}bt(){this.ft=!0}At(t,i=!1){return Math.max(this.Pi.At(t,i),this.Ri.At(t,i))}Vi(){return this.yi.Si||0}Oi(t){this.yi.Si=t}Bi(){return this.Di(),this.Ci.yt||this.Ti.yt}Ai(){return this.Di(),this.Ci.yt}gt(t){return this.Di(),this.Ci.hi=this.Ci.hi&&t.W().ticksVisible,this.Ti.hi=this.Ti.hi&&t.W().ticksVisible,this.Pi.J(this.Ci,this.yi),this.Ri.J(this.Ti,this.yi),this.Pi}Ii(){return this.Di(),this.Pi.J(this.Ci,this.yi),this.Ri.J(this.Ti,this.yi),this.Ri}Di(){this.ft&&(this.Ci.hi=!0,this.Ti.hi=!1,this.zi(this.Ci,this.Ti,this.yi))}}class lt extends ht{constructor(t,i,e){super(),this.jt=t,this.Li=i,this.Ei=e}zi(t,i,e){if(t.yt=!1,2===this.jt.W().mode)return;const s=this.jt.W().horzLine;if(!s.labelVisible)return;const n=this.Li.Ct();if(!this.jt.yt()||this.Li.Ni()||null===n)return;const r=$(s.labelBackgroundColor);e.t=r.t,t.V=r.i;const o=2/12*this.Li.P();e.wi=o,e.gi=o;const h=this.Ei(this.Li);e.ki=h.ki,t.Kt=this.Li.Fi(h._t,n),t.yt=!0}}const at=/[1-9]/g;class ct{constructor(){this.zt=null}J(t){this.zt=t}X(t,i){if(null===this.zt||!1===this.zt.yt||0===this.zt.Kt.length)return;const e=t.useMediaCoordinateSpace(({context:t})=>(t.font=i.R,Math.round(i.Wi.xi(t,x(this.zt).Kt,at))));if(e<=0)return;const s=i.ji,n=e+2*s,r=n/2,o=this.zt.Hi;let h=this.zt.ki,l=Math.floor(h-r)+.5;l<0?(h+=Math.abs(0-l),l=Math.floor(h-r)+.5):l+n>o&&(h-=Math.abs(o-(l+n)),l=Math.floor(h-r)+.5);const a=l+n,c=Math.ceil(0+i.C+i.T+i.L+i.P+i.B);t.useBitmapCoordinateSpace(({context:t,horizontalPixelRatio:e,verticalPixelRatio:s})=>{const n=x(this.zt);t.fillStyle=n.t;const r=Math.round(l*e),o=Math.round(0*s),h=Math.round(a*e),u=Math.round(c*s),d=Math.round(2*e);if(t.beginPath(),t.moveTo(r,o),t.lineTo(r,u-d),t.arcTo(r,u,r+d,u,d),t.lineTo(h-d,u),t.arcTo(h,u,h,u-d,d),t.lineTo(h,o),t.fill(),n.hi){const r=Math.round(n.ki*e),h=o,l=Math.round((h+i.T)*s);t.fillStyle=n.V;const a=Math.max(1,Math.floor(e)),c=Math.floor(.5*e);t.fillRect(r-c,h,a,l-h)}}),t.useMediaCoordinateSpace(({context:t})=>{const e=x(this.zt),n=0+i.C+i.T+i.L+i.P/2;t.font=i.R,t.textAlign="left",t.textBaseline="middle",t.fillStyle=e.V;const r=i.Wi.Mi(t,"Apr0");t.translate(l+s,n+r),t.fillText(e.Kt,0,0)})}}class ut{constructor(t,i,e){this.ft=!0,this.Wt=new ct,this.Ft={yt:!1,t:"#4c525e",V:"white",Kt:"",Hi:0,ki:NaN,hi:!0},this.vt=t,this.$i=i,this.Ei=e}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt.J(this.Ft),this.Wt}Mt(){const t=this.Ft;if(t.yt=!1,2===this.vt.W().mode)return;const i=this.vt.W().vertLine;if(!i.labelVisible)return;const e=this.$i.St();if(e.Ni())return;t.Hi=e.Hi();const s=this.Ei();if(null===s)return;t.ki=s.ki;const n=e.Ui(this.vt.xt());t.Kt=e.qi(x(n)),t.yt=!0;const r=$(i.labelBackgroundColor);t.t=r.t,t.V=r.i,t.hi=e.W().ticksVisible}}class dt{constructor(){this.Yi=null,this.Zi=0}Xi(){return this.Zi}Ki(t){this.Zi=t}Dt(){return this.Yi}Gi(t){this.Yi=t}Ji(t){return[]}Qi(){return[]}yt(){return!0}}var ft;!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet",t[t.Hidden=2]="Hidden"}(ft||(ft={}));class mt extends dt{constructor(t,i){super(),this.tn=null,this.nn=NaN,this.sn=0,this.en=!0,this.rn=new Map,this.hn=!1,this.ln=NaN,this.an=NaN,this._n=NaN,this.un=NaN,this.$i=t,this.cn=i,this.dn=new Y(t,this),this.fn=((t,i)=>e=>{const s=i(),n=t();if(e===x(this.tn).vn())return{_t:n,ki:s};{const t=x(e.Ct());return{_t:e.pn(s,t),ki:s}}})(()=>this.nn,()=>this.an);const e=((t,i)=>()=>{const e=this.$i.St().mn(t()),s=i();return e&&Number.isFinite(s)?{ot:e,ki:s}:null})(()=>this.sn,()=>this.Yt());this.bn=new ut(this,t,e),this.wn=new tt(this)}W(){return this.cn}gn(t,i){this._n=t,this.un=i}Mn(){this._n=NaN,this.un=NaN}xn(){return this._n}Sn(){return this.un}kn(t,i,e){this.hn||(this.hn=!0),this.en=!0,this.yn(t,i,e)}xt(){return this.sn}Yt(){return this.ln}Zt(){return this.an}yt(){return this.en}Cn(){this.en=!1,this.Tn(),this.nn=NaN,this.ln=NaN,this.an=NaN,this.tn=null,this.Mn()}Pn(t){return null!==this.tn?[this.wn,this.dn]:[]}Ut(t){return t===this.tn&&this.cn.horzLine.visible}qt(){return this.cn.vertLine.visible}Rn(t,i){this.en&&this.tn===t||this.rn.clear();const e=[];return this.tn===t&&e.push(this.Dn(this.rn,i,this.fn)),e}Qi(){return this.en?[this.bn]:[]}Ht(){return this.tn}Vn(){this.wn.bt(),this.rn.forEach(t=>t.bt()),this.bn.bt(),this.dn.bt()}On(t){return t&&!t.vn().Ni()?t.vn():null}yn(t,i,e){this.Bn(t,i,e)&&this.Vn()}Bn(t,i,e){const s=this.ln,n=this.an,r=this.nn,o=this.sn,h=this.tn,l=this.On(e);this.sn=t,this.ln=isNaN(t)?NaN:this.$i.St().It(t),this.tn=e;const a=null!==l?l.Ct():null;return null!==l&&null!==a?(this.nn=i,this.an=l.Rt(i,a)):(this.nn=NaN,this.an=NaN),s!==this.ln||n!==this.an||o!==this.sn||r!==this.nn||h!==this.tn}Tn(){const t=this.$i.wt().map(t=>t.In().An()).filter(j),i=0===t.length?null:Math.max(...t);this.sn=null!==i?i:NaN}Dn(t,i,e){let s=t.get(i);return void 0===s&&(s=new lt(this,i,e),t.set(i,s)),s}}function pt(t){return"left"===t||"right"===t}class gt{constructor(t){this.zn=new Map,this.Ln=[],this.En=t}Nn(t,i){const e=function(t,i){return void 0===t?i:{Fn:Math.max(t.Fn,i.Fn),Wn:t.Wn||i.Wn}}(this.zn.get(t),i);this.zn.set(t,e)}jn(){return this.En}Hn(t){const i=this.zn.get(t);return void 0===i?{Fn:this.En}:{Fn:Math.max(this.En,i.Fn),Wn:i.Wn}}$n(){this.Un(),this.Ln=[{qn:0}]}Yn(t){this.Un(),this.Ln=[{qn:1,Vt:t}]}Zn(t){this.Xn(),this.Ln.push({qn:5,Vt:t})}Un(){this.Xn(),this.Ln.push({qn:6})}Kn(){this.Un(),this.Ln=[{qn:4}]}Gn(t){this.Un(),this.Ln.push({qn:2,Vt:t})}Jn(t){this.Un(),this.Ln.push({qn:3,Vt:t})}Qn(){return this.Ln}ts(t){for(const i of t.Ln)this.ns(i);this.En=Math.max(this.En,t.En),t.zn.forEach((t,i)=>{this.Nn(i,t)})}static ss(){return new gt(2)}static es(){return new gt(3)}ns(t){switch(t.qn){case 0:this.$n();break;case 1:this.Yn(t.Vt);break;case 2:this.Gn(t.Vt);break;case 3:this.Jn(t.Vt);break;case 4:this.Kn();break;case 5:this.Zn(t.Vt);break;case 6:this.Xn()}}Xn(){const t=this.Ln.findIndex(t=>5===t.qn);-1!==t&&this.Ln.splice(t,1)}}function vt(t,i){if(!D(t))return"n/a";if(!A(i))throw new TypeError("invalid length");if(i<0||i>16)throw new TypeError("invalid length");return 0===i?t.toString():("0000000000000000"+t.toString()).slice(-i)}class bt{constructor(t,i){if(i||(i=1),D(t)&&A(t)||(t=100),t<0)throw new TypeError("invalid base");this.Li=t,this.rs=i,this.hs()}format(t){const i=t<0?"−":"";return t=Math.abs(t),i+this.ls(t)}hs(){if(this._s=0,this.Li>0&&this.rs>0){let t=this.Li;for(;t>1;)t/=10,this._s++}}ls(t){const i=this.Li/this.rs;let e=Math.floor(t),s="";const n=void 0!==this._s?this._s:NaN;if(i>1){let r=+(Math.round(t*i)-e*i).toFixed(this._s);r>=i&&(r-=i,e+=1),s="."+vt(+r.toFixed(this._s)*this.rs,n)}else e=Math.round(e*i)/i,n>0&&(s="."+vt(0,n));return e.toFixed(0)+s}}class wt extends bt{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class yt{constructor(t){this.us=t}format(t){let i="";return t<0&&(i="-",t=-t),t<995?i+this.cs(t):t<999995?i+this.cs(t/1e3)+"K":t<999999995?(t=1e3*Math.round(t/1e3),i+this.cs(t/1e6)+"M"):(t=1e6*Math.round(t/1e6),i+this.cs(t/1e9)+"B")}cs(t){let i;const e=Math.pow(10,this.us);return i=(t=Math.round(t*e)/e)>=1e-15&&t<1?t.toFixed(this.us).replace(/\.?0+$/,""):String(t),i.replace(/(\.[1-9]*)0+$/,(t,i)=>i)}}function St(t,i,e,s,n,r,o){if(0===i.length||s.from>=i.length||s.to<=0)return;const{context:h,horizontalPixelRatio:l,verticalPixelRatio:a}=t,c=i[s.from];let u=r(t,c),d=c;if(s.to-s.from<2){const i=n/2;h.beginPath();const e={nt:c.nt-i,st:c.st},s={nt:c.nt+i,st:c.st};h.moveTo(e.nt*l,e.st*a),h.lineTo(s.nt*l,s.st*a),o(t,u,e,s)}else{const n=(i,e)=>{o(t,u,d,e),h.beginPath(),u=i,d=e};let f=d;h.beginPath(),h.moveTo(c.nt*l,c.st*a);for(let o=s.from+1;o<s.to;++o){f=i[o];const s=r(t,f);switch(e){case 0:h.lineTo(f.nt*l,f.st*a);break;case 1:h.lineTo(f.nt*l,i[o-1].st*a),s!==u&&(n(s,f),h.lineTo(f.nt*l,i[o-1].st*a)),h.lineTo(f.nt*l,f.st*a);break;case 2:{const[t,e]=Et(i,o-1,o);h.bezierCurveTo(t.nt*l,t.st*a,e.nt*l,e.st*a,f.nt*l,f.st*a);break}}1!==e&&s!==u&&(n(s,f),h.moveTo(f.nt*l,f.st*a))}(d!==f||d===f&&1===e)&&o(t,u,d,f)}}const Ct=6;function xt(t,i){return{nt:t.nt-i.nt,st:t.st-i.st}}function _t(t,i){return{nt:t.nt/i,st:t.st/i}}function Et(t,i,e){const s=Math.max(0,i-1),n=Math.min(t.length-1,e+1);var r,o;return[(r=t[i],o=_t(xt(t[e],t[s]),Ct),{nt:r.nt+o.nt,st:r.st+o.st}),xt(t[e],_t(xt(t[n],t[i]),Ct))]}function Mt(t,i,e,s,n){const{context:r,horizontalPixelRatio:o,verticalPixelRatio:h}=i;r.lineTo(n.nt*o,t*h),r.lineTo(s.nt*o,t*h),r.closePath(),r.fillStyle=e,r.fill()}class zt extends X{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K(t){var i;if(null===this.G)return;const{it:e,tt:s,ds:n,et:r,Nt:o,fs:h}=this.G,l=null!==(i=this.G.vs)&&void 0!==i?i:this.G.ps?0:t.mediaSize.height;if(null===s)return;const a=t.context;a.lineCap="butt",a.lineJoin="round",a.lineWidth=r,w(a,o),a.lineWidth=1,St(t,e,h,s,n,this.bs.bind(this),Mt.bind(null,l))}}function Rt(t,i,e){return Math.min(Math.max(t,i),e)}function kt(t,i,e){return i-t<=e}function Tt(t){const i=Math.ceil(t);return i%2==0?i-1:i}class Lt{ws(t,i){const e=this.gs,{Ms:s,xs:n,Ss:r,ks:o,ys:h,vs:l}=i;if(void 0===this.Cs||void 0===e||e.Ms!==s||e.xs!==n||e.Ss!==r||e.ks!==o||e.vs!==l||e.ys!==h){const e=t.context.createLinearGradient(0,0,0,h);if(e.addColorStop(0,s),null!=l){const i=Rt(l*t.verticalPixelRatio/h,0,1);e.addColorStop(i,n),e.addColorStop(i,r)}e.addColorStop(1,o),this.Cs=e,this.gs=i}return this.Cs}}class Ot extends zt{constructor(){super(...arguments),this.Ts=new Lt}bs(t,i){return this.Ts.ws(t,{Ms:i.Ps,xs:"",Ss:"",ks:i.Rs,ys:t.bitmapSize.height})}}function Nt(t,i){const e=t.context;e.strokeStyle=i,e.stroke()}class $t extends X{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K(t){if(null===this.G)return;const{it:i,tt:e,ds:s,fs:n,et:r,Nt:o,Ds:h}=this.G;if(null===e)return;const l=t.context;l.lineCap="butt",l.lineWidth=r*t.verticalPixelRatio,w(l,o),l.lineJoin="round";const a=this.Vs.bind(this);void 0!==n&&St(t,i,n,e,s,a,Nt),h&&function(t,i,e,s,n){const{horizontalPixelRatio:r,verticalPixelRatio:o,context:h}=t;let l=null;const a=Math.max(1,Math.floor(r))%2/2,c=e*o+a;for(let e=s.to-1;e>=s.from;--e){const s=i[e];if(s){const i=n(t,s);i!==l&&(h.beginPath(),null!==l&&h.fill(),h.fillStyle=i,l=i);const e=Math.round(s.nt*r)+a,u=s.st*o;h.moveTo(e,u),h.arc(e,u,c,0,2*Math.PI)}}h.fill()}(t,i,h,e,a)}}class Pt extends $t{Vs(t,i){return i.lt}}function Vt(t,i,e,s,n=0,r=i.length){let o=r-n;for(;0<o;){const r=o>>1,h=n+r;s(i[h],e)===t?(n=h+1,o-=r+1):o=r}return n}const Dt=Vt.bind(null,!0),At=Vt.bind(null,!1);function Bt(t,i){return t.ot<i}function Ft(t,i){return i<t.ot}function Wt(t,i,e){const s=i.Os(),n=i.ui(),r=Dt(t,s,Bt),o=At(t,n,Ft);if(!e)return{from:r,to:o};let h=r,l=o;return r>0&&r<t.length&&t[r].ot>=s&&(h=r-1),o>0&&o<t.length&&t[o-1].ot<=n&&(l=o+1),{from:h,to:l}}class jt{constructor(t,i,e){this.Bs=!0,this.As=!0,this.Is=!0,this.zs=[],this.Ls=null,this.Es=t,this.Ns=i,this.Fs=e}bt(t){this.Bs=!0,"data"===t&&(this.As=!0),"options"===t&&(this.Is=!0)}gt(){return this.Es.yt()?(this.Ws(),null===this.Ls?null:this.js):null}Hs(){this.zs=this.zs.map(t=>Object.assign(Object.assign({},t),this.Es.Us().$s(t.ot)))}qs(){this.Ls=null}Ws(){this.As&&(this.Ys(),this.As=!1),this.Is&&(this.Hs(),this.Is=!1),this.Bs&&(this.Zs(),this.Bs=!1)}Zs(){const t=this.Es.Dt(),i=this.Ns.St();if(this.qs(),i.Ni()||t.Ni())return;const e=i.Xs();if(null===e)return;if(0===this.Es.In().Ks())return;const s=this.Es.Ct();null!==s&&(this.Ls=Wt(this.zs,e,this.Fs),this.Gs(t,i,s.Vt),this.Js())}}class It extends jt{constructor(t,i){super(t,i,!0)}Gs(t,i,e){i.Qs(this.zs,I(this.Ls)),t.te(this.zs,e,I(this.Ls))}ie(t,i){return{ot:t,_t:i,nt:NaN,st:NaN}}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map(i=>{const e=i.Vt[3];return this.se(i.ee,e,t)})}}class Ut extends It{constructor(t,i){super(t,i),this.js=new q,this.re=new Ot,this.he=new Pt,this.js.Z([this.re,this.he])}se(t,i,e){return Object.assign(Object.assign({},this.ie(t,i)),e.$s(t))}Js(){const t=this.Es.W();this.re.J({fs:t.lineType,it:this.zs,Nt:t.lineStyle,et:t.lineWidth,vs:null,ps:t.invertFilledArea,tt:this.Ls,ds:this.Ns.St().le()}),this.he.J({fs:t.lineVisible?t.lineType:void 0,it:this.zs,Nt:t.lineStyle,et:t.lineWidth,tt:this.Ls,ds:this.Ns.St().le(),Ds:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}}class Ht extends X{constructor(){super(...arguments),this.zt=null,this.ae=0,this.oe=0}J(t){this.zt=t}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e}){if(null===this.zt||0===this.zt.In.length||null===this.zt.tt)return;this.ae=this._e(i),this.ae>=2&&Math.max(1,Math.floor(i))%2!=this.ae%2&&this.ae--,this.oe=this.zt.ue?Math.min(this.ae,Math.floor(i)):this.ae;let s=null;const n=this.oe<=this.ae&&this.zt.le>=Math.floor(1.5*i);for(let r=this.zt.tt.from;r<this.zt.tt.to;++r){const o=this.zt.In[r];s!==o.ce&&(t.fillStyle=o.ce,s=o.ce);const h=Math.floor(.5*this.oe),l=Math.round(o.nt*i),a=l-h,c=this.oe,u=a+c-1,d=Math.min(o.de,o.fe),f=Math.max(o.de,o.fe),m=Math.round(d*e)-h,p=Math.round(f*e)+h,g=Math.max(p-m,this.oe);t.fillRect(a,m,c,g);const v=Math.ceil(1.5*this.ae);if(n){if(this.zt.ve){const i=l-v;let s=Math.max(m,Math.round(o.pe*e)-h),n=s+c-1;n>m+g-1&&(n=m+g-1,s=n-c+1),t.fillRect(i,s,a-i,n-s+1)}const i=l+v;let s=Math.max(m,Math.round(o.me*e)-h),n=s+c-1;n>m+g-1&&(n=m+g-1,s=n-c+1),t.fillRect(u+1,s,i-u,n-s+1)}}}_e(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(x(this.zt).le,t)))}}class Kt extends jt{constructor(t,i){super(t,i,!1)}Gs(t,i,e){i.Qs(this.zs,I(this.Ls)),t.be(this.zs,e,I(this.Ls))}we(t,i,e){return{ot:t,ge:i.Vt[0],Me:i.Vt[1],xe:i.Vt[2],Se:i.Vt[3],nt:NaN,pe:NaN,de:NaN,fe:NaN,me:NaN}}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map(i=>this.se(i.ee,i,t))}}class qt extends Kt{constructor(){super(...arguments),this.js=new Ht}se(t,i,e){return Object.assign(Object.assign({},this.we(t,i,e)),e.$s(t))}Js(){const t=this.Es.W();this.js.J({In:this.zs,le:this.Ns.St().le(),ve:t.openVisible,ue:t.thinBars,tt:this.Ls})}}class Xt extends zt{constructor(){super(...arguments),this.Ts=new Lt}bs(t,i){const e=this.G;return this.Ts.ws(t,{Ms:i.ke,xs:i.ye,Ss:i.Ce,ks:i.Te,ys:t.bitmapSize.height,vs:e.vs})}}class Jt extends $t{constructor(){super(...arguments),this.Pe=new Lt}Vs(t,i){const e=this.G;return this.Pe.ws(t,{Ms:i.Re,xs:i.Re,Ss:i.De,ks:i.De,ys:t.bitmapSize.height,vs:e.vs})}}class Gt extends It{constructor(t,i){super(t,i),this.js=new q,this.Ve=new Xt,this.Oe=new Jt,this.js.Z([this.Ve,this.Oe])}se(t,i,e){return Object.assign(Object.assign({},this.ie(t,i)),e.$s(t))}Js(){const t=this.Es.Ct();if(null===t)return;const i=this.Es.W(),e=this.Es.Dt().Rt(i.baseValue.price,t.Vt),s=this.Ns.St().le();this.Ve.J({it:this.zs,et:i.lineWidth,Nt:i.lineStyle,fs:i.lineType,vs:e,ps:!1,tt:this.Ls,ds:s}),this.Oe.J({it:this.zs,et:i.lineWidth,Nt:i.lineStyle,fs:i.lineVisible?i.lineType:void 0,Ds:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,vs:e,tt:this.Ls,ds:s})}}class Qt extends X{constructor(){super(...arguments),this.zt=null,this.ae=0}J(t){this.zt=t}K(t){if(null===this.zt||0===this.zt.In.length||null===this.zt.tt)return;const{horizontalPixelRatio:i}=t;this.ae=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);const e=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),s=Math.floor(t*e*i),n=Math.floor(t*i),r=Math.min(s,n);return Math.max(Math.floor(i),r)}(this.zt.le,i),this.ae>=2&&Math.floor(i)%2!=this.ae%2&&this.ae--;const e=this.zt.In;this.zt.Be&&this.Ae(t,e,this.zt.tt),this.zt._i&&this.Ie(t,e,this.zt.tt);const s=this.ze(i);(!this.zt._i||this.ae>2*s)&&this.Le(t,e,this.zt.tt)}Ae(t,i,e){if(null===this.zt)return;const{context:s,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o="",h=Math.min(Math.floor(n),Math.floor(this.zt.le*n));h=Math.max(Math.floor(n),Math.min(h,this.ae));const l=Math.floor(.5*h);let a=null;for(let t=e.from;t<e.to;t++){const e=i[t];e.Ee!==o&&(s.fillStyle=e.Ee,o=e.Ee);const c=Math.round(Math.min(e.pe,e.me)*r),u=Math.round(Math.max(e.pe,e.me)*r),d=Math.round(e.de*r),f=Math.round(e.fe*r);let m=Math.round(n*e.nt)-l;const p=m+h-1;null!==a&&(m=Math.max(a+1,m),m=Math.min(m,p));const g=p-m+1;s.fillRect(m,d,g,c-d),s.fillRect(m,u+1,g,f-u),a=p}}ze(t){let i=Math.floor(1*t);this.ae<=2*i&&(i=Math.floor(.5*(this.ae-1)));const e=Math.max(Math.floor(t),i);return this.ae<=2*e?Math.max(Math.floor(t),Math.floor(1*t)):e}Ie(t,i,e){if(null===this.zt)return;const{context:s,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o="";const h=this.ze(n);let l=null;for(let t=e.from;t<e.to;t++){const e=i[t];e.Ne!==o&&(s.fillStyle=e.Ne,o=e.Ne);let a=Math.round(e.nt*n)-Math.floor(.5*this.ae);const c=a+this.ae-1,u=Math.round(Math.min(e.pe,e.me)*r),d=Math.round(Math.max(e.pe,e.me)*r);if(null!==l&&(a=Math.max(l+1,a),a=Math.min(a,c)),this.zt.le*n>2*h)it(s,a,u,c-a+1,d-u+1,h);else{const t=c-a+1;s.fillRect(a,u,t,d-u+1)}l=c}}Le(t,i,e){if(null===this.zt)return;const{context:s,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o="";const h=this.ze(n);for(let t=e.from;t<e.to;t++){const e=i[t];let l=Math.round(Math.min(e.pe,e.me)*r),a=Math.round(Math.max(e.pe,e.me)*r),c=Math.round(e.nt*n)-Math.floor(.5*this.ae),u=c+this.ae-1;if(e.ce!==o){const t=e.ce;s.fillStyle=t,o=t}this.zt._i&&(c+=h,l+=h,u-=h,a-=h),l>a||s.fillRect(c,l,u-c+1,a-l+1)}}}class Yt extends Kt{constructor(){super(...arguments),this.js=new Qt}se(t,i,e){return Object.assign(Object.assign({},this.we(t,i,e)),e.$s(t))}Js(){const t=this.Es.W();this.js.J({In:this.zs,le:this.Ns.St().le(),Be:t.wickVisible,_i:t.borderVisible,tt:this.Ls})}}class Zt{constructor(t,i){this.Fe=t,this.Li=i}X(t,i,e){this.Fe.draw(t,this.Li,i,e)}}class ti extends jt{constructor(t,i,e){super(t,i,!1),this.wn=e,this.js=new Zt(this.wn.renderer(),i=>{const e=t.Ct();return null===e?null:t.Dt().Rt(i,e.Vt)})}We(t){return this.wn.priceValueBuilder(t)}je(t){return this.wn.isWhitespace(t)}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map(i=>Object.assign(Object.assign({ot:i.ee,nt:NaN},t.$s(i.ee)),{He:i.$e}))}Gs(t,i){i.Qs(this.zs,I(this.Ls))}Js(){this.wn.update({bars:this.zs.map(ii),barSpacing:this.Ns.St().le(),visibleRange:this.Ls},this.Es.W())}}function ii(t){return{x:t.nt,time:t.ot,originalData:t.He,barColor:t.ce}}class ei extends X{constructor(){super(...arguments),this.zt=null,this.Ue=[]}J(t){this.zt=t,this.Ue=[]}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e}){if(null===this.zt||0===this.zt.it.length||null===this.zt.tt)return;this.Ue.length||this.qe(i);const s=Math.max(1,Math.floor(e)),n=Math.round(this.zt.Ye*e)-Math.floor(s/2),r=n+s;for(let i=this.zt.tt.from;i<this.zt.tt.to;i++){const o=this.zt.it[i],h=this.Ue[i-this.zt.tt.from],l=Math.round(o.st*e);let a,c;t.fillStyle=o.ce,l<=n?(a=l,c=r):(a=n,c=l-Math.floor(s/2)+s),t.fillRect(h.Os,a,h.ui-h.Os+1,c-a)}}qe(t){if(null===this.zt||0===this.zt.it.length||null===this.zt.tt)return void(this.Ue=[]);const i=Math.ceil(this.zt.le*t)<=1?0:Math.max(1,Math.floor(t)),e=Math.round(this.zt.le*t)-i;this.Ue=new Array(this.zt.tt.to-this.zt.tt.from);for(let i=this.zt.tt.from;i<this.zt.tt.to;i++){const s=this.zt.it[i],n=Math.round(s.nt*t);let r,o;if(e%2){const t=(e-1)/2;r=n-t,o=n+t}else{const t=e/2;r=n-t,o=n+t-1}this.Ue[i-this.zt.tt.from]={Os:r,ui:o,Ze:n,Xe:s.nt*t,ot:s.ot}}for(let t=this.zt.tt.from+1;t<this.zt.tt.to;t++){const e=this.Ue[t-this.zt.tt.from],s=this.Ue[t-this.zt.tt.from-1];e.ot===s.ot+1&&e.Os-s.ui!==i+1&&(s.Ze>s.Xe?s.ui=e.Os-i-1:e.Os=s.ui+i+1)}let s=Math.ceil(this.zt.le*t);for(let t=this.zt.tt.from;t<this.zt.tt.to;t++){const i=this.Ue[t-this.zt.tt.from];i.ui<i.Os&&(i.ui=i.Os);const e=i.ui-i.Os+1;s=Math.min(e,s)}if(i>0&&s<4)for(let t=this.zt.tt.from;t<this.zt.tt.to;t++){const i=this.Ue[t-this.zt.tt.from];i.ui-i.Os+1>s&&(i.Ze>i.Xe?i.ui-=1:i.Os+=1)}}}class si extends It{constructor(){super(...arguments),this.js=new ei}se(t,i,e){return Object.assign(Object.assign({},this.ie(t,i)),e.$s(t))}Js(){const t={it:this.zs,le:this.Ns.St().le(),tt:this.Ls,Ye:this.Es.Dt().Rt(this.Es.W().base,x(this.Es.Ct()).Vt)};this.js.J(t)}}class ni extends It{constructor(){super(...arguments),this.js=new Pt}se(t,i,e){return Object.assign(Object.assign({},this.ie(t,i)),e.$s(t))}Js(){const t=this.Es.W(),i={it:this.zs,Nt:t.lineStyle,fs:t.lineVisible?t.lineType:void 0,et:t.lineWidth,Ds:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,tt:this.Ls,ds:this.Ns.St().le()};this.js.J(i)}}const ri=/[2-9]/g;class oi{constructor(t=50){this.Ke=0,this.Ge=1,this.Je=1,this.Qe={},this.tr=new Map,this.ir=t}nr(){this.Ke=0,this.tr.clear(),this.Ge=1,this.Je=1,this.Qe={}}xi(t,i,e){return this.sr(t,i,e).width}Mi(t,i,e){const s=this.sr(t,i,e);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}sr(t,i,e){const s=e||ri,n=String(i).replace(s,"0");if(this.tr.has(n))return C(this.tr.get(n)).er;if(this.Ke===this.ir){const t=this.Qe[this.Je];delete this.Qe[this.Je],this.tr.delete(t),this.Je++,this.Ke--}t.save(),t.textBaseline="middle";const r=t.measureText(n);return t.restore(),0===r.width&&i.length||(this.tr.set(n,{er:r,rr:this.Ge}),this.Qe[this.Ge]=n,this.Ke++,this.Ge++),r}}class hi{constructor(t){this.hr=null,this.k=null,this.lr="right",this.ar=t}_r(t,i,e){this.hr=t,this.k=i,this.lr=e}X(t){null!==this.k&&null!==this.hr&&this.hr.X(t,this.k,this.ar,this.lr)}}class li{constructor(t,i,e){this.ur=t,this.ar=new oi(50),this.cr=i,this.F=e,this.j=-1,this.Wt=new hi(this.ar)}gt(){const t=this.F.dr(this.cr);if(null===t)return null;const i=t.vr(this.cr)?t.pr():this.cr.Dt();if(null===i)return null;const e=t.mr(i);if("overlay"===e)return null;const s=this.F.br();return s.P!==this.j&&(this.j=s.P,this.ar.nr()),this.Wt._r(this.ur.Ii(),s,e),this.Wt}}class ai extends X{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}wr(t,i){var e;if(!(null===(e=this.zt)||void 0===e?void 0:e.yt))return null;const{st:s,et:n,gr:r}=this.zt;return i>=s-n-7&&i<=s+n+7?{Mr:this.zt,gr:r}:null}K({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:s}){if(null===this.zt)return;if(!1===this.zt.yt)return;const n=Math.round(this.zt.st*s);n<0||n>i.height||(t.lineCap="butt",t.strokeStyle=this.zt.V,t.lineWidth=Math.floor(this.zt.et*e),w(t,this.zt.Nt),y(t,n,0,i.width))}}class ci{constructor(t){this.Sr={st:0,V:"rgba(0, 0, 0, 0)",et:1,Nt:0,yt:!1},this.kr=new ai,this.ft=!0,this.Es=t,this.Ns=t.$t(),this.kr.J(this.Sr)}bt(){this.ft=!0}gt(){return this.Es.yt()?(this.ft&&(this.yr(),this.ft=!1),this.kr):null}}class ui extends ci{constructor(t){super(t)}yr(){this.Sr.yt=!1;const t=this.Es.Dt(),i=t.Cr().Cr;if(2!==i&&3!==i)return;const e=this.Es.W();if(!e.baseLineVisible||!this.Es.yt())return;const s=this.Es.Ct();null!==s&&(this.Sr.yt=!0,this.Sr.st=t.Rt(s.Vt,s.Vt),this.Sr.V=e.baseLineColor,this.Sr.et=e.baseLineWidth,this.Sr.Nt=e.baseLineStyle)}}class di extends X{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}$e(){return this.zt}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e}){const s=this.zt;if(null===s)return;const n=Math.max(1,Math.floor(i)),r=n%2/2,o=Math.round(s.Xe.x*i)+r,h=s.Xe.y*e;t.fillStyle=s.Tr,t.beginPath();const l=Math.max(2,1.5*s.Pr)*i;t.arc(o,h,l,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.Rr,t.beginPath(),t.arc(o,h,s.ht*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=n,t.strokeStyle=s.Dr,t.beginPath(),t.arc(o,h,s.ht*i+n/2,0,2*Math.PI,!1),t.stroke()}}const fi=[{Vr:0,Or:.25,Br:4,Ar:10,Ir:.25,zr:0,Lr:.4,Er:.8},{Vr:.25,Or:.525,Br:10,Ar:14,Ir:0,zr:0,Lr:.8,Er:0},{Vr:.525,Or:1,Br:14,Ar:14,Ir:0,zr:0,Lr:0,Er:0}];function mi(t,i,e,s){return function(t,i){if("transparent"===t)return t;const e=O(t),s=e[3];return`rgba(${e[0]}, ${e[1]}, ${e[2]}, ${i*s})`}(t,e+(s-e)*i)}function pi(t,i){const e=t%2600/2600;let s;for(const t of fi)if(e>=t.Vr&&e<=t.Or){s=t;break}S(void 0!==s,"Last price animation internal logic error");const n=(e-s.Vr)/(s.Or-s.Vr);return{Rr:mi(i,n,s.Ir,s.zr),Dr:mi(i,n,s.Lr,s.Er),ht:(r=n,o=s.Br,h=s.Ar,o+(h-o)*r)};var r,o,h}class gi{constructor(t){this.Wt=new di,this.ft=!0,this.Nr=!0,this.Fr=performance.now(),this.Wr=this.Fr-1,this.jr=t}Hr(){this.Wr=this.Fr-1,this.bt()}$r(){if(this.bt(),2===this.jr.W().lastPriceAnimation){const t=performance.now(),i=this.Wr-t;if(i>0)return void(i<650&&(this.Wr+=2600));this.Fr=t,this.Wr=t+2600}}bt(){this.ft=!0}Ur(){this.Nr=!0}yt(){return 0!==this.jr.W().lastPriceAnimation}qr(){switch(this.jr.W().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Wr}}gt(){return this.ft?(this.Mt(),this.ft=!1,this.Nr=!1):this.Nr&&(this.Yr(),this.Nr=!1),this.Wt}Mt(){this.Wt.J(null);const t=this.jr.$t().St(),i=t.Xs(),e=this.jr.Ct();if(null===i||null===e)return;const s=this.jr.Zr(!0);if(s.Xr||!i.Kr(s.ee))return;const n={x:t.It(s.ee),y:this.jr.Dt().Rt(s._t,e.Vt)},r=s.V,o=this.jr.W().lineWidth,h=pi(this.Gr(),r);this.Wt.J({Tr:r,Pr:o,Rr:h.Rr,Dr:h.Dr,ht:h.ht,Xe:n})}Yr(){const t=this.Wt.$e();if(null!==t){const i=pi(this.Gr(),t.Tr);t.Rr=i.Rr,t.Dr=i.Dr,t.ht=i.ht}}Gr(){return this.qr()?performance.now()-this.Fr:2599}}function vi(t,i){return Tt(Math.min(Math.max(t,12),30)*i)}function bi(t,i){switch(t){case"arrowDown":case"arrowUp":return vi(i,1);case"circle":return vi(i,.8);case"square":return vi(i,.7)}}function wi(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(vi(t,1))}function yi(t){return Math.max(vi(t,.1),3)}function Si(t,i,e){return i?t:e?Math.ceil(t/2):0}function Ci(t,i,e,s,n){const r=bi("square",e),o=(r-1)/2,h=t-o,l=i-o;return s>=h&&s<=h+r&&n>=l&&n<=l+r}function xi(t,i,e,s){const n=(bi("arrowUp",s)-1)/2*e.Jr,r=(Tt(s/2)-1)/2*e.Jr;i.beginPath(),t?(i.moveTo(e.nt-n,e.st),i.lineTo(e.nt,e.st-n),i.lineTo(e.nt+n,e.st),i.lineTo(e.nt+r,e.st),i.lineTo(e.nt+r,e.st+n),i.lineTo(e.nt-r,e.st+n),i.lineTo(e.nt-r,e.st)):(i.moveTo(e.nt-n,e.st),i.lineTo(e.nt,e.st+n),i.lineTo(e.nt+n,e.st),i.lineTo(e.nt+r,e.st),i.lineTo(e.nt+r,e.st-n),i.lineTo(e.nt-r,e.st-n),i.lineTo(e.nt-r,e.st)),i.fill()}class _i extends X{constructor(){super(...arguments),this.zt=null,this.ar=new oi,this.j=-1,this.H="",this.Qr=""}J(t){this.zt=t}_r(t,i){this.j===t&&this.H===i||(this.j=t,this.H=i,this.Qr=H(t,i),this.ar.nr())}wr(t,i){if(null===this.zt||null===this.zt.tt)return null;for(let e=this.zt.tt.from;e<this.zt.tt.to;e++){const s=this.zt.it[e];if(Mi(s,t,i))return{Mr:s.th,gr:s.gr}}return null}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e},s,n){if(null!==this.zt&&null!==this.zt.tt){t.textBaseline="middle",t.font=this.Qr;for(let s=this.zt.tt.from;s<this.zt.tt.to;s++){const n=this.zt.it[s];void 0!==n.Kt&&(n.Kt.Hi=this.ar.xi(t,n.Kt.ih),n.Kt.At=this.j,n.Kt.nt=n.nt-n.Kt.Hi/2),Ei(n,t,i,e)}}}}function Ei(t,i,e,s){i.fillStyle=t.V,void 0!==t.Kt&&function(t,i,e,s,n,r){t.save(),t.scale(n,r),t.fillText(i,e,s),t.restore()}(i,t.Kt.ih,t.Kt.nt,t.Kt.st,e,s),function(t,i,e){if(0!==t.Ks){switch(t.nh){case"arrowDown":return void xi(!1,i,e,t.Ks);case"arrowUp":return void xi(!0,i,e,t.Ks);case"circle":return void function(t,i,e){const s=(bi("circle",e)-1)/2;t.beginPath(),t.arc(i.nt,i.st,s*i.Jr,0,2*Math.PI,!1),t.fill()}(i,e,t.Ks);case"square":return void function(t,i,e){const s=bi("square",e),n=(s-1)*i.Jr/2,r=i.nt-n,o=i.st-n;t.fillRect(r,o,s*i.Jr,s*i.Jr)}(i,e,t.Ks)}t.nh}}(t,i,function(t,i,e){const s=Math.max(1,Math.floor(i))%2/2;return{nt:Math.round(t.nt*i)+s,st:t.st*e,Jr:i}}(t,e,s))}function Mi(t,i,e){return!(void 0===t.Kt||!function(t,i,e,s,n,r){const o=s/2;return n>=t&&n<=t+e&&r>=i-o&&r<=i+o}(t.Kt.nt,t.Kt.st,t.Kt.Hi,t.Kt.At,i,e))||function(t,i,e){if(0===t.Ks)return!1;switch(t.nh){case"arrowDown":case"arrowUp":return function(t,i,e,s,n,r){return Ci(i,e,s,n,r)}(0,t.nt,t.st,t.Ks,i,e);case"circle":return function(t,i,e,s,n){const r=2+bi("circle",e)/2,o=t-s,h=i-n;return Math.sqrt(o*o+h*h)<=r}(t.nt,t.st,t.Ks,i,e);case"square":return Ci(t.nt,t.st,t.Ks,i,e)}}(t,i,e)}function zi(t,i,e,s,n,r,o,h,l){const a=D(e)?e:e.Se,c=D(e)?e:e.Me,u=D(e)?e:e.xe,d=D(i.size)?Math.max(i.size,0):1,f=wi(h.le())*d,m=f/2;switch(t.Ks=f,i.position){case"inBar":return t.st=o.Rt(a,l),void(void 0!==t.Kt&&(t.Kt.st=t.st+m+r+.6*n));case"aboveBar":return t.st=o.Rt(c,l)-m-s.sh,void 0!==t.Kt&&(t.Kt.st=t.st-m-.6*n,s.sh+=1.2*n),void(s.sh+=f+r);case"belowBar":return t.st=o.Rt(u,l)+m+s.eh,void 0!==t.Kt&&(t.Kt.st=t.st+m+r+.6*n,s.eh+=1.2*n),void(s.eh+=f+r)}i.position}class Ri{constructor(t,i){this.ft=!0,this.rh=!0,this.hh=!0,this.ah=null,this.oh=null,this.Wt=new _i,this.jr=t,this.$i=i,this.zt={it:[],tt:null}}bt(t){this.ft=!0,this.hh=!0,"data"===t&&(this.rh=!0,this.oh=null)}gt(t){if(!this.jr.yt())return null;this.ft&&this._h();const i=this.$i.W().layout;return this.Wt._r(i.fontSize,i.fontFamily),this.Wt.J(this.zt),this.Wt}uh(){if(this.hh){if(this.jr.dh().length>0){const t=this.$i.St().le(),i=yi(t),e=1.5*wi(t)+2*i,s=this.fh();this.ah={above:Si(e,s.aboveBar,s.inBar),below:Si(e,s.belowBar,s.inBar)}}else this.ah=null;this.hh=!1}return this.ah}fh(){return null===this.oh&&(this.oh=this.jr.dh().reduce((t,i)=>(t[i.position]||(t[i.position]=!0),t),{inBar:!1,aboveBar:!1,belowBar:!1})),this.oh}_h(){const t=this.jr.Dt(),i=this.$i.St(),e=this.jr.dh();this.rh&&(this.zt.it=e.map(t=>({ot:t.time,nt:0,st:0,Ks:0,nh:t.shape,V:t.color,th:t.th,gr:t.id,Kt:void 0})),this.rh=!1);const s=this.$i.W().layout;this.zt.tt=null;const n=i.Xs();if(null===n)return;const r=this.jr.Ct();if(null===r)return;if(0===this.zt.it.length)return;let o=NaN;const h=yi(i.le()),l={sh:h,eh:h};this.zt.tt=Wt(this.zt.it,n,!0);for(let n=this.zt.tt.from;n<this.zt.tt.to;n++){const a=e[n];a.time!==o&&(l.sh=h,l.eh=h,o=a.time);const c=this.zt.it[n];c.nt=i.It(a.time),void 0!==a.text&&a.text.length>0&&(c.Kt={ih:a.text,nt:0,st:0,Hi:0,At:0});const u=this.jr.ph(a.time);null!==u&&zi(c,a,u,l,s.fontSize,h,t,i,r.Vt)}this.ft=!1}}class ki extends ci{constructor(t){super(t)}yr(){const t=this.Sr;t.yt=!1;const i=this.Es.W();if(!i.priceLineVisible||!this.Es.yt())return;const e=this.Es.Zr(0===i.priceLineSource);e.Xr||(t.yt=!0,t.st=e.ki,t.V=this.Es.mh(e.V),t.et=i.priceLineWidth,t.Nt=i.priceLineStyle)}}class Ti extends ht{constructor(t){super(),this.jt=t}zi(t,i,e){t.yt=!1,i.yt=!1;const s=this.jt;if(!s.yt())return;const n=s.W(),r=n.lastValueVisible,o=""!==s.bh(),h=0===n.seriesLastValueMode,l=s.Zr(!1);if(l.Xr)return;r&&(t.Kt=this.wh(l,r,h),t.yt=0!==t.Kt.length),(o||h)&&(i.Kt=this.gh(l,r,o,h),i.yt=i.Kt.length>0);const a=s.mh(l.V),c=$(a);e.t=c.t,e.ki=l.ki,i.Ot=s.$t().Bt(l.ki/s.Dt().At()),t.Ot=a,t.V=c.i,i.V=c.i}gh(t,i,e,s){let n="";const r=this.jt.bh();return e&&0!==r.length&&(n+=`${r} `),i&&s&&(n+=this.jt.Dt().Mh()?t.xh:t.Sh),n.trim()}wh(t,i,e){return i?e?this.jt.Dt().Mh()?t.Sh:t.xh:t.Kt:""}}function Li(t,i,e,s){const n=Number.isFinite(i),r=Number.isFinite(e);return n&&r?t(i,e):n||r?n?i:e:s}class Oi{constructor(t,i){this.kh=t,this.yh=i}Ch(t){return null!==t&&this.kh===t.kh&&this.yh===t.yh}Th(){return new Oi(this.kh,this.yh)}Ph(){return this.kh}Rh(){return this.yh}Dh(){return this.yh-this.kh}Ni(){return this.yh===this.kh||Number.isNaN(this.yh)||Number.isNaN(this.kh)}ts(t){return null===t?this:new Oi(Li(Math.min,this.Ph(),t.Ph(),-1/0),Li(Math.max,this.Rh(),t.Rh(),1/0))}Vh(t){if(!D(t))return;if(0===this.yh-this.kh)return;const i=.5*(this.yh+this.kh);let e=this.yh-i,s=this.kh-i;e*=t,s*=t,this.yh=i+e,this.kh=i+s}Oh(t){D(t)&&(this.yh+=t,this.kh+=t)}Bh(){return{minValue:this.kh,maxValue:this.yh}}static Ah(t){return null===t?null:new Oi(t.minValue,t.maxValue)}}class Ni{constructor(t,i){this.Ih=t,this.zh=i||null}Lh(){return this.Ih}Eh(){return this.zh}Bh(){return null===this.Ih?null:{priceRange:this.Ih.Bh(),margins:this.zh||void 0}}static Ah(t){return null===t?null:new Ni(Oi.Ah(t.priceRange),t.margins)}}class $i extends ci{constructor(t,i){super(t),this.Nh=i}yr(){const t=this.Sr;t.yt=!1;const i=this.Nh.W();if(!this.Es.yt()||!i.lineVisible)return;const e=this.Nh.Fh();null!==e&&(t.yt=!0,t.st=e,t.V=i.color,t.et=i.lineWidth,t.Nt=i.lineStyle,t.gr=this.Nh.W().id)}}class Pi extends ht{constructor(t,i){super(),this.jr=t,this.Nh=i}zi(t,i,e){t.yt=!1,i.yt=!1;const s=this.Nh.W(),n=s.axisLabelVisible,r=""!==s.title,o=this.jr;if(!n||!o.yt())return;const h=this.Nh.Fh();if(null===h)return;r&&(i.Kt=s.title,i.yt=!0),i.Ot=o.$t().Bt(h/o.Dt().At()),t.Kt=this.Wh(s.price),t.yt=!0;const l=$(s.axisLabelColor||s.color);e.t=l.t;const a=s.axisLabelTextColor||l.i;t.V=a,i.V=a,e.ki=h}Wh(t){const i=this.jr.Ct();return null===i?"":this.jr.Dt().Fi(t,i.Vt)}}class Vi{constructor(t,i){this.jr=t,this.cn=i,this.jh=new $i(t,this),this.ur=new Pi(t,this),this.Hh=new li(this.ur,t,t.$t())}$h(t){V(this.cn,t),this.bt(),this.jr.$t().Uh()}W(){return this.cn}qh(){return this.jh}Yh(){return this.Hh}Zh(){return this.ur}bt(){this.jh.bt(),this.ur.bt()}Fh(){const t=this.jr,i=t.Dt();if(t.$t().St().Ni()||i.Ni())return null;const e=t.Ct();return null===e?null:i.Rt(this.cn.price,e.Vt)}}class Di extends dt{constructor(t){super(),this.$i=t}$t(){return this.$i}}const Ai={Bar:(t,i,e,s)=>{var n;const r=i.upColor,o=i.downColor,h=x(t(e,s)),l=_(h.Vt[0])<=_(h.Vt[3]);return{ce:null!==(n=h.V)&&void 0!==n?n:l?r:o}},Candlestick:(t,i,e,s)=>{var n,r,o;const h=i.upColor,l=i.downColor,a=i.borderUpColor,c=i.borderDownColor,u=i.wickUpColor,d=i.wickDownColor,f=x(t(e,s)),m=_(f.Vt[0])<=_(f.Vt[3]);return{ce:null!==(n=f.V)&&void 0!==n?n:m?h:l,Ne:null!==(r=f.Ot)&&void 0!==r?r:m?a:c,Ee:null!==(o=f.Xh)&&void 0!==o?o:m?u:d}},Custom:(t,i,e,s)=>{var n;return{ce:null!==(n=x(t(e,s)).V)&&void 0!==n?n:i.color}},Area:(t,i,e,s)=>{var n,r,o,h;const l=x(t(e,s));return{ce:null!==(n=l.lt)&&void 0!==n?n:i.lineColor,lt:null!==(r=l.lt)&&void 0!==r?r:i.lineColor,Ps:null!==(o=l.Ps)&&void 0!==o?o:i.topColor,Rs:null!==(h=l.Rs)&&void 0!==h?h:i.bottomColor}},Baseline:(t,i,e,s)=>{var n,r,o,h,l,a;const c=x(t(e,s));return{ce:c.Vt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,Re:null!==(n=c.Re)&&void 0!==n?n:i.topLineColor,De:null!==(r=c.De)&&void 0!==r?r:i.bottomLineColor,ke:null!==(o=c.ke)&&void 0!==o?o:i.topFillColor1,ye:null!==(h=c.ye)&&void 0!==h?h:i.topFillColor2,Ce:null!==(l=c.Ce)&&void 0!==l?l:i.bottomFillColor1,Te:null!==(a=c.Te)&&void 0!==a?a:i.bottomFillColor2}},Line:(t,i,e,s)=>{var n,r;const o=x(t(e,s));return{ce:null!==(n=o.V)&&void 0!==n?n:i.color,lt:null!==(r=o.V)&&void 0!==r?r:i.color}},Histogram:(t,i,e,s)=>{var n;return{ce:null!==(n=x(t(e,s)).V)&&void 0!==n?n:i.color}}};class Bi{constructor(t){this.Kh=(t,i)=>void 0!==i?i.Vt:this.jr.In().Gh(t),this.jr=t,this.Jh=Ai[t.Qh()]}$s(t,i){return this.Jh(this.Kh,this.jr.W(),t,i)}}var Fi;!function(t){t[t.NearestLeft=-1]="NearestLeft",t[t.None=0]="None",t[t.NearestRight=1]="NearestRight"}(Fi||(Fi={}));const Wi=30;class ji{constructor(){this.tl=[],this.il=new Map,this.nl=new Map}sl(){return this.Ks()>0?this.tl[this.tl.length-1]:null}el(){return this.Ks()>0?this.rl(0):null}An(){return this.Ks()>0?this.rl(this.tl.length-1):null}Ks(){return this.tl.length}Ni(){return 0===this.Ks()}Kr(t){return null!==this.hl(t,0)}Gh(t){return this.ll(t)}ll(t,i=0){const e=this.hl(t,i);return null===e?null:Object.assign(Object.assign({},this.al(e)),{ee:this.rl(e)})}ne(){return this.tl}ol(t,i,e){if(this.Ni())return null;let s=null;for(const n of e)s=Ii(s,this._l(t,i,n));return s}J(t){this.nl.clear(),this.il.clear(),this.tl=t}rl(t){return this.tl[t].ee}al(t){return this.tl[t]}hl(t,i){const e=this.ul(t);if(null===e&&0!==i)switch(i){case-1:return this.cl(t);case 1:return this.dl(t);default:throw new TypeError("Unknown search mode")}return e}cl(t){let i=this.fl(t);return i>0&&(i-=1),i!==this.tl.length&&this.rl(i)<t?i:null}dl(t){const i=this.vl(t);return i!==this.tl.length&&t<this.rl(i)?i:null}ul(t){const i=this.fl(t);return i===this.tl.length||t<this.tl[i].ee?null:i}fl(t){return Dt(this.tl,t,(t,i)=>t.ee<i)}vl(t){return At(this.tl,t,(t,i)=>t.ee>i)}pl(t,i,e){let s=null;for(let n=t;n<i;n++){const t=this.tl[n].Vt[e];Number.isNaN(t)||(null===s?s={ml:t,bl:t}:(t<s.ml&&(s.ml=t),t>s.bl&&(s.bl=t)))}return s}_l(t,i,e){if(this.Ni())return null;let s=null;const n=x(this.el()),r=x(this.An()),o=Math.max(t,n),h=Math.min(i,r),l=Math.ceil(o/Wi)*Wi,a=Math.max(l,Math.floor(h/Wi)*Wi);{const t=this.fl(o),n=this.vl(Math.min(h,l,i));s=Ii(s,this.pl(t,n,e))}let c=this.il.get(e);void 0===c&&(c=new Map,this.il.set(e,c));for(let t=Math.max(l+1,o);t<a;t+=Wi){const i=Math.floor(t/Wi);let n=c.get(i);if(void 0===n){const t=this.fl(i*Wi),s=this.vl((i+1)*Wi-1);n=this.pl(t,s,e),c.set(i,n)}s=Ii(s,n)}{const t=this.fl(a),i=this.vl(h);s=Ii(s,this.pl(t,i,e))}return s}}function Ii(t,i){return null===t?i:null===i?t:{ml:Math.min(t.ml,i.ml),bl:Math.max(t.bl,i.bl)}}class Ui{constructor(t){this.wl=t}X(t,i,e){this.wl.draw(t)}gl(t,i,e){var s,n;null===(n=(s=this.wl).drawBackground)||void 0===n||n.call(s,t)}}class Hi{constructor(t){this.tr=null,this.wn=t}gt(){var t;const i=this.wn.renderer();if(null===i)return null;if((null===(t=this.tr)||void 0===t?void 0:t.Ml)===i)return this.tr.xl;const e=new Ui(i);return this.tr={Ml:i,xl:e},e}Sl(){var t,i,e;return null!==(e=null===(i=(t=this.wn).zOrder)||void 0===i?void 0:i.call(t))&&void 0!==e?e:"normal"}}function Ki(t){var i,e,s,n,r;return{Kt:t.text(),ki:t.coordinate(),Si:null===(i=t.fixedCoordinate)||void 0===i?void 0:i.call(t),V:t.textColor(),t:t.backColor(),yt:null===(s=null===(e=t.visible)||void 0===e?void 0:e.call(t))||void 0===s||s,hi:null===(r=null===(n=t.tickVisible)||void 0===n?void 0:n.call(t))||void 0===r||r}}class qi{constructor(t,i){this.Wt=new ct,this.kl=t,this.yl=i}gt(){return this.Wt.J(Object.assign({Hi:this.yl.Hi()},Ki(this.kl))),this.Wt}}class Xi extends ht{constructor(t,i){super(),this.kl=t,this.Li=i}zi(t,i,e){const s=Ki(this.kl);e.t=s.t,t.V=s.V;const n=2/12*this.Li.P();e.wi=n,e.gi=n,e.ki=s.ki,e.Si=s.Si,t.Kt=s.Kt,t.yt=s.yt,t.hi=s.hi}}class Ji{constructor(t,i){this.Cl=null,this.Tl=null,this.Pl=null,this.Rl=null,this.Dl=null,this.Vl=t,this.jr=i}Ol(){return this.Vl}Vn(){var t,i;null===(i=(t=this.Vl).updateAllViews)||void 0===i||i.call(t)}Pn(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).paneViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Cl)||void 0===s?void 0:s.Ml)===n)return this.Cl.xl;const r=n.map(t=>new Hi(t));return this.Cl={Ml:n,xl:r},r}Qi(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).timeAxisViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Tl)||void 0===s?void 0:s.Ml)===n)return this.Tl.xl;const r=this.jr.$t().St(),o=n.map(t=>new qi(t,r));return this.Tl={Ml:n,xl:o},o}Rn(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).priceAxisViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Pl)||void 0===s?void 0:s.Ml)===n)return this.Pl.xl;const r=this.jr.Dt(),o=n.map(t=>new Xi(t,r));return this.Pl={Ml:n,xl:o},o}Bl(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).priceAxisPaneViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Rl)||void 0===s?void 0:s.Ml)===n)return this.Rl.xl;const r=n.map(t=>new Hi(t));return this.Rl={Ml:n,xl:r},r}Al(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).timeAxisPaneViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Dl)||void 0===s?void 0:s.Ml)===n)return this.Dl.xl;const r=n.map(t=>new Hi(t));return this.Dl={Ml:n,xl:r},r}Il(t,i){var e,s,n;return null!==(n=null===(s=(e=this.Vl).autoscaleInfo)||void 0===s?void 0:s.call(e,t,i))&&void 0!==n?n:null}wr(t,i){var e,s,n;return null!==(n=null===(s=(e=this.Vl).hitTest)||void 0===s?void 0:s.call(e,t,i))&&void 0!==n?n:null}}function Gi(t,i,e,s){t.forEach(t=>{i(t).forEach(t=>{t.Sl()===e&&s.push(t)})})}function Qi(t){return t.Pn()}function Yi(t){return t.Bl()}function Zi(t){return t.Al()}class te extends Di{constructor(t,i,e,s,n){super(t),this.zt=new ji,this.jh=new ki(this),this.zl=[],this.Ll=new ui(this),this.El=null,this.Nl=null,this.Fl=[],this.Wl=[],this.jl=null,this.Hl=[],this.cn=i,this.$l=e;const r=new Ti(this);this.rn=[r],this.Hh=new li(r,this,t),"Area"!==e&&"Line"!==e&&"Baseline"!==e||(this.El=new gi(this)),this.Ul(),this.ql(n)}S(){null!==this.jl&&clearTimeout(this.jl)}mh(t){return this.cn.priceLineColor||t}Zr(t){const i={Xr:!0},e=this.Dt();if(this.$t().St().Ni()||e.Ni()||this.zt.Ni())return i;const s=this.$t().St().Xs(),n=this.Ct();if(null===s||null===n)return i;let r,o;if(t){const t=this.zt.sl();if(null===t)return i;r=t,o=t.ee}else{const t=this.zt.ll(s.ui(),-1);if(null===t)return i;if(r=this.zt.Gh(t.ee),null===r)return i;o=t.ee}const h=r.Vt[3],l=this.Us().$s(o,{Vt:r}),a=e.Rt(h,n.Vt);return{Xr:!1,_t:h,Kt:e.Fi(h,n.Vt),xh:e.Yl(h),Sh:e.Zl(h,n.Vt),V:l.ce,ki:a,ee:o}}Us(){return null!==this.Nl||(this.Nl=new Bi(this)),this.Nl}W(){return this.cn}$h(t){const i=t.priceScaleId;void 0!==i&&i!==this.cn.priceScaleId&&this.$t().Xl(this,i),V(this.cn,t),void 0!==t.priceFormat&&(this.Ul(),this.$t().Kl()),this.$t().Gl(this),this.$t().Jl(),this.wn.bt("options")}J(t,i){this.zt.J(t),this.Ql(),this.wn.bt("data"),this.dn.bt("data"),null!==this.El&&(i&&i.ta?this.El.$r():0===t.length&&this.El.Hr());const e=this.$t().dr(this);this.$t().ia(e),this.$t().Gl(this),this.$t().Jl(),this.$t().Uh()}na(t){this.Fl=t,this.Ql();const i=this.$t().dr(this);this.dn.bt("data"),this.$t().ia(i),this.$t().Gl(this),this.$t().Jl(),this.$t().Uh()}sa(){return this.Fl}dh(){return this.Wl}ea(t){const i=new Vi(this,t);return this.zl.push(i),this.$t().Gl(this),i}ra(t){const i=this.zl.indexOf(t);-1!==i&&this.zl.splice(i,1),this.$t().Gl(this)}Qh(){return this.$l}Ct(){const t=this.ha();return null===t?null:{Vt:t.Vt[3],la:t.ot}}ha(){const t=this.$t().St().Xs();if(null===t)return null;const i=t.Os();return this.zt.ll(i,1)}In(){return this.zt}ph(t){const i=this.zt.Gh(t);return null===i?null:"Bar"===this.$l||"Candlestick"===this.$l||"Custom"===this.$l?{ge:i.Vt[0],Me:i.Vt[1],xe:i.Vt[2],Se:i.Vt[3]}:i.Vt[3]}aa(t){const i=[];Gi(this.Hl,Qi,"top",i);const e=this.El;return null!==e&&e.yt()?(null===this.jl&&e.qr()&&(this.jl=setTimeout(()=>{this.jl=null,this.$t().oa()},0)),e.Ur(),i.unshift(e),i):i}Pn(){const t=[];this._a()||t.push(this.Ll),t.push(this.wn,this.jh,this.dn);const i=this.zl.map(t=>t.qh());return t.push(...i),Gi(this.Hl,Qi,"normal",t),t}ua(){return this.ca(Qi,"bottom")}da(t){return this.ca(Yi,t)}fa(t){return this.ca(Zi,t)}va(t,i){return this.Hl.map(e=>e.wr(t,i)).filter(t=>null!==t)}Ji(t){return[this.Hh,...this.zl.map(t=>t.Yh())]}Rn(t,i){if(i!==this.Yi&&!this._a())return[];const e=[...this.rn];for(const t of this.zl)e.push(t.Zh());return this.Hl.forEach(t=>{e.push(...t.Rn())}),e}Qi(){const t=[];return this.Hl.forEach(i=>{t.push(...i.Qi())}),t}Il(t,i){if(void 0!==this.cn.autoscaleInfoProvider){const e=this.cn.autoscaleInfoProvider(()=>{const e=this.pa(t,i);return null===e?null:e.Bh()});return Ni.Ah(e)}return this.pa(t,i)}ma(){return this.cn.priceFormat.minMove}ba(){return this.wa}Vn(){var t;this.wn.bt(),this.dn.bt();for(const t of this.rn)t.bt();for(const t of this.zl)t.bt();this.jh.bt(),this.Ll.bt(),null===(t=this.El)||void 0===t||t.bt(),this.Hl.forEach(t=>t.Vn())}Dt(){return x(super.Dt())}kt(t){if("Line"!==this.$l&&"Area"!==this.$l&&"Baseline"!==this.$l||!this.cn.crosshairMarkerVisible)return null;const i=this.zt.Gh(t);return null===i?null:{_t:i.Vt[3],ht:this.ga(),Ot:this.Ma(),Pt:this.xa(),Tt:this.Sa(t)}}bh(){return this.cn.title}yt(){return this.cn.visible}ka(t){this.Hl.push(new Ji(t,this))}ya(t){this.Hl=this.Hl.filter(i=>i.Ol()!==t)}Ca(){if(this.wn instanceof ti!=0)return t=>this.wn.We(t)}Ta(){if(this.wn instanceof ti!=0)return t=>this.wn.je(t)}_a(){return!pt(this.Dt().Pa())}pa(t,i){if(!A(t)||!A(i)||this.zt.Ni())return null;const e="Line"===this.$l||"Area"===this.$l||"Baseline"===this.$l||"Histogram"===this.$l?[3]:[2,1],s=this.zt.ol(t,i,e);let n=null!==s?new Oi(s.ml,s.bl):null;if("Histogram"===this.Qh()){const t=this.cn.base,i=new Oi(t,t);n=null!==n?n.ts(i):i}let r=this.dn.uh();return this.Hl.forEach(e=>{const s=e.Il(t,i);if(null==s?void 0:s.priceRange){const t=new Oi(s.priceRange.minValue,s.priceRange.maxValue);n=null!==n?n.ts(t):t}var o,h,l,a;(null==s?void 0:s.margins)&&(o=r,h=s.margins,r={above:Math.max(null!==(l=null==o?void 0:o.above)&&void 0!==l?l:0,h.above),below:Math.max(null!==(a=null==o?void 0:o.below)&&void 0!==a?a:0,h.below)})}),new Ni(n,r)}ga(){switch(this.$l){case"Line":case"Area":case"Baseline":return this.cn.crosshairMarkerRadius}return 0}Ma(){switch(this.$l){case"Line":case"Area":case"Baseline":{const t=this.cn.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}xa(){switch(this.$l){case"Line":case"Area":case"Baseline":return this.cn.crosshairMarkerBorderWidth}return 0}Sa(t){switch(this.$l){case"Line":case"Area":case"Baseline":{const t=this.cn.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.Us().$s(t).ce}Ul(){switch(this.cn.priceFormat.type){case"custom":this.wa={format:this.cn.priceFormat.formatter};break;case"volume":this.wa=new yt(this.cn.priceFormat.precision);break;case"percent":this.wa=new wt(this.cn.priceFormat.precision);break;default:{const t=Math.pow(10,this.cn.priceFormat.precision);this.wa=new bt(t,this.cn.priceFormat.minMove*t)}}null!==this.Yi&&this.Yi.Ra()}Ql(){const t=this.$t().St();if(!t.Da()||this.zt.Ni())return void(this.Wl=[]);const i=x(this.zt.el());this.Wl=this.Fl.map((e,s)=>{const n=x(t.Va(e.time,!0)),r=n<i?1:-1;return{time:x(this.zt.ll(n,r)).ee,position:e.position,shape:e.shape,color:e.color,id:e.id,th:s,text:e.text,size:e.size,originalTime:e.originalTime}})}ql(t){switch(this.dn=new Ri(this,this.$t()),this.$l){case"Bar":this.wn=new qt(this,this.$t());break;case"Candlestick":this.wn=new Yt(this,this.$t());break;case"Line":this.wn=new ni(this,this.$t());break;case"Custom":this.wn=new ti(this,this.$t(),C(t));break;case"Area":this.wn=new Ut(this,this.$t());break;case"Baseline":this.wn=new Gt(this,this.$t());break;case"Histogram":this.wn=new si(this,this.$t());break;default:throw Error("Unknown chart style assigned: "+this.$l)}}ca(t,i){const e=[];return Gi(this.Hl,t,i,e),e}}class ie{constructor(t){this.cn=t}Oa(t,i,e){let s=t;if(0===this.cn.mode)return s;const n=e.vn(),r=n.Ct();if(null===r)return s;const o=n.Rt(t,r),h=e.Ba().filter(t=>t instanceof te).reduce((t,s)=>{if(e.vr(s)||!s.yt())return t;const n=s.Dt(),r=s.In();if(n.Ni()||!r.Kr(i))return t;const o=r.Gh(i);if(null===o)return t;const h=_(s.Ct());return t.concat([n.Rt(o.Vt[3],h.Vt)])},[]);if(0===h.length)return s;h.sort((t,i)=>Math.abs(t-o)-Math.abs(i-o));const l=h[0];return s=n.pn(l,r),s}}class ee extends X{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}K({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:s}){if(null===this.zt)return;const n=Math.max(1,Math.floor(e));t.lineWidth=n,function(t,i){t.save(),t.lineWidth%2&&t.translate(.5,.5),i(),t.restore()}(t,()=>{const r=x(this.zt);if(r.Aa){t.strokeStyle=r.Ia,w(t,r.za),t.beginPath();for(const s of r.La){const r=Math.round(s.Ea*e);t.moveTo(r,-n),t.lineTo(r,i.height+n)}t.stroke()}if(r.Na){t.strokeStyle=r.Fa,w(t,r.Wa),t.beginPath();for(const e of r.ja){const r=Math.round(e.Ea*s);t.moveTo(-n,r),t.lineTo(i.width+n,r)}t.stroke()}})}}class se{constructor(t){this.Wt=new ee,this.ft=!0,this.tn=t}bt(){this.ft=!0}gt(){if(this.ft){const t=this.tn.$t().W().grid,i={Na:t.horzLines.visible,Aa:t.vertLines.visible,Fa:t.horzLines.color,Ia:t.vertLines.color,Wa:t.horzLines.style,za:t.vertLines.style,ja:this.tn.vn().Ha(),La:(this.tn.$t().St().Ha()||[]).map(t=>({Ea:t.coord}))};this.Wt.J(i),this.ft=!1}return this.Wt}}class ne{constructor(t){this.wn=new se(t)}qh(){return this.wn}}const re={$a:4,Ua:1e-4};function oe(t,i){const e=100*(t-i)/i;return i<0?-e:e}function he(t,i){const e=oe(t.Ph(),i),s=oe(t.Rh(),i);return new Oi(e,s)}function le(t,i){const e=100*(t-i)/i+100;return i<0?-e:e}function ae(t,i){const e=le(t.Ph(),i),s=le(t.Rh(),i);return new Oi(e,s)}function ce(t,i){const e=Math.abs(t);if(e<1e-15)return 0;const s=Math.log10(e+i.Ua)+i.$a;return t<0?-s:s}function ue(t,i){const e=Math.abs(t);if(e<1e-15)return 0;const s=Math.pow(10,e-i.$a)-i.Ua;return t<0?-s:s}function de(t,i){if(null===t)return null;const e=ce(t.Ph(),i),s=ce(t.Rh(),i);return new Oi(e,s)}function fe(t,i){if(null===t)return null;const e=ue(t.Ph(),i),s=ue(t.Rh(),i);return new Oi(e,s)}function me(t){if(null===t)return re;const i=Math.abs(t.Rh()-t.Ph());if(i>=1||i<1e-15)return re;const e=Math.ceil(Math.abs(Math.log10(i))),s=re.$a+e;return{$a:s,Ua:1/Math.pow(10,s)}}class pe{constructor(t,i){if(this.qa=t,this.Ya=i,function(t){if(t<0)return!1;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.qa))this.Za=[2,2.5,2];else{this.Za=[];for(let t=this.qa;1!==t;){if(t%2==0)this.Za.push(2),t/=2;else{if(t%5!=0)throw new Error("unexpected base");this.Za.push(2,2.5),t/=5}if(this.Za.length>100)throw new Error("something wrong with base")}}}Xa(t,i,e){const s=0===this.qa?0:1/this.qa;let n=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,o=this.Ya[0];for(;;){const t=kt(n,s,1e-14)&&n>s+1e-14,i=kt(n,e*o,1e-14),h=kt(n,1,1e-14);if(!(t&&i&&h))break;n/=o,o=this.Ya[++r%this.Ya.length]}if(n<=s+1e-14&&(n=s),n=Math.max(1,n),this.Za.length>0&&(h=n,Math.abs(h-1)<1e-14))for(r=0,o=this.Za[0];kt(n,e*o,1e-14)&&n>s+1e-14;)n/=o,o=this.Za[++r%this.Za.length];var h;return n}}class ge{constructor(t,i,e,s){this.Ka=[],this.Li=t,this.qa=i,this.Ga=e,this.Ja=s}Xa(t,i){if(t<i)throw new Error("high < low");const e=this.Li.At(),s=(t-i)*this.Qa()/e,n=new pe(this.qa,[2,2.5,2]),r=new pe(this.qa,[2,2,2.5]),o=new pe(this.qa,[2.5,2,2]),h=[];return h.push(n.Xa(t,i,s),r.Xa(t,i,s),o.Xa(t,i,s)),function(t){if(t.length<1)throw Error("array is empty");let i=t[0];for(let e=1;e<t.length;++e)t[e]<i&&(i=t[e]);return i}(h)}io(){const t=this.Li,i=t.Ct();if(null===i)return void(this.Ka=[]);const e=t.At(),s=this.Ga(e-1,i),n=this.Ga(0,i),r=this.Li.W().entireTextOnly?this.no()/2:0,o=r,h=e-1-r,l=Math.max(s,n),a=Math.min(s,n);if(l===a)return void(this.Ka=[]);let c=this.Xa(l,a),u=l%c;u+=u<0?c:0;const d=l>=a?1:-1;let f=null,m=0;for(let e=l-u;e>a;e-=c){const s=this.Ja(e,i,!0);null!==f&&Math.abs(s-f)<this.Qa()||s<o||s>h||(m<this.Ka.length?(this.Ka[m].Ea=s,this.Ka[m].so=t.eo(e)):this.Ka.push({Ea:s,so:t.eo(e)}),m++,f=s,t.ro()&&(c=this.Xa(e*d,a)))}this.Ka.length=m}Ha(){return this.Ka}no(){return this.Li.P()}Qa(){return Math.ceil(2.5*this.no())}}function ve(t){return t.slice().sort((t,i)=>x(t.Xi())-x(i.Xi()))}var be;!function(t){t[t.Normal=0]="Normal",t[t.Logarithmic=1]="Logarithmic",t[t.Percentage=2]="Percentage",t[t.IndexedTo100=3]="IndexedTo100"}(be||(be={}));const we=new wt,ye=new bt(100,1);class Se{constructor(t,i,e,s){this.ho=0,this.lo=null,this.Ih=null,this.ao=null,this.oo={_o:!1,uo:null},this.co=0,this.do=0,this.fo=new P,this.vo=new P,this.po=[],this.mo=null,this.bo=null,this.wo=null,this.Mo=null,this.wa=ye,this.xo=me(null),this.So=t,this.cn=i,this.ko=e,this.yo=s,this.Co=new ge(this,100,this.To.bind(this),this.Po.bind(this))}Pa(){return this.So}W(){return this.cn}$h(t){if(V(this.cn,t),this.Ra(),void 0!==t.mode&&this.Ro({Cr:t.mode}),void 0!==t.scaleMargins){const i=C(t.scaleMargins.top),e=C(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(e<0||e>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${e}`);if(i+e>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+e}`);this.Do(),this.bo=null}}Vo(){return this.cn.autoScale}ro(){return 1===this.cn.mode}Mh(){return 2===this.cn.mode}Oo(){return 3===this.cn.mode}Cr(){return{Wn:this.cn.autoScale,Bo:this.cn.invertScale,Cr:this.cn.mode}}Ro(t){const i=this.Cr();let e=null;void 0!==t.Wn&&(this.cn.autoScale=t.Wn),void 0!==t.Cr&&(this.cn.mode=t.Cr,2!==t.Cr&&3!==t.Cr||(this.cn.autoScale=!0),this.oo._o=!1),1===i.Cr&&t.Cr!==i.Cr&&(function(t,i){if(null===t)return!1;const e=ue(t.Ph(),i),s=ue(t.Rh(),i);return isFinite(e)&&isFinite(s)}(this.Ih,this.xo)?(e=fe(this.Ih,this.xo),null!==e&&this.Ao(e)):this.cn.autoScale=!0),1===t.Cr&&t.Cr!==i.Cr&&(e=de(this.Ih,this.xo),null!==e&&this.Ao(e));const s=i.Cr!==this.cn.mode;s&&(2===i.Cr||this.Mh())&&this.Ra(),s&&(3===i.Cr||this.Oo())&&this.Ra(),void 0!==t.Bo&&i.Bo!==t.Bo&&(this.cn.invertScale=t.Bo,this.Io()),this.vo.m(i,this.Cr())}zo(){return this.vo}P(){return this.ko.fontSize}At(){return this.ho}Lo(t){this.ho!==t&&(this.ho=t,this.Do(),this.bo=null)}Eo(){if(this.lo)return this.lo;const t=this.At()-this.No()-this.Fo();return this.lo=t,t}Lh(){return this.Wo(),this.Ih}Ao(t,i){const e=this.Ih;(i||null===e&&null!==t||null!==e&&!e.Ch(t))&&(this.bo=null,this.Ih=t)}Ni(){return this.Wo(),0===this.ho||!this.Ih||this.Ih.Ni()}jo(t){return this.Bo()?t:this.At()-1-t}Rt(t,i){return this.Mh()?t=oe(t,i):this.Oo()&&(t=le(t,i)),this.Po(t,i)}te(t,i,e){this.Wo();const s=this.Fo(),n=x(this.Lh()),r=n.Ph(),o=n.Rh(),h=this.Eo()-1,l=this.Bo(),a=h/(o-r),c=void 0===e?0:e.from,u=void 0===e?t.length:e.to,d=this.Ho();for(let e=c;e<u;e++){const n=t[e],o=n._t;if(isNaN(o))continue;let h=o;null!==d&&(h=d(n._t,i));const c=s+a*(h-r),u=l?c:this.ho-1-c;n.st=u}}be(t,i,e){this.Wo();const s=this.Fo(),n=x(this.Lh()),r=n.Ph(),o=n.Rh(),h=this.Eo()-1,l=this.Bo(),a=h/(o-r),c=void 0===e?0:e.from,u=void 0===e?t.length:e.to,d=this.Ho();for(let e=c;e<u;e++){const n=t[e];let o=n.ge,h=n.Me,c=n.xe,u=n.Se;null!==d&&(o=d(n.ge,i),h=d(n.Me,i),c=d(n.xe,i),u=d(n.Se,i));let f=s+a*(o-r),m=l?f:this.ho-1-f;n.pe=m,f=s+a*(h-r),m=l?f:this.ho-1-f,n.de=m,f=s+a*(c-r),m=l?f:this.ho-1-f,n.fe=m,f=s+a*(u-r),m=l?f:this.ho-1-f,n.me=m}}pn(t,i){const e=this.To(t,i);return this.$o(e,i)}$o(t,i){let e=t;return this.Mh()?e=function(t,i){return i<0&&(t=-t),t/100*i+i}(e,i):this.Oo()&&(e=function(t,i){return t-=100,i<0&&(t=-t),t/100*i+i}(e,i)),e}Ba(){return this.po}Uo(){if(this.mo)return this.mo;let t=[];for(let i=0;i<this.po.length;i++){const e=this.po[i];null===e.Xi()&&e.Ki(i+1),t.push(e)}return t=ve(t),this.mo=t,this.mo}qo(t){-1===this.po.indexOf(t)&&(this.po.push(t),this.Ra(),this.Yo())}Zo(t){const i=this.po.indexOf(t);if(-1===i)throw new Error("source is not attached to scale");this.po.splice(i,1),0===this.po.length&&(this.Ro({Wn:!0}),this.Ao(null)),this.Ra(),this.Yo()}Ct(){let t=null;for(const i of this.po){const e=i.Ct();null!==e&&(null===t||e.la<t.la)&&(t=e)}return null===t?null:t.Vt}Bo(){return this.cn.invertScale}Ha(){const t=null===this.Ct();if(null!==this.bo&&(t||this.bo.Xo===t))return this.bo.Ha;this.Co.io();const i=this.Co.Ha();return this.bo={Ha:i,Xo:t},this.fo.m(),i}Ko(){return this.fo}Go(t){this.Mh()||this.Oo()||null===this.wo&&null===this.ao&&(this.Ni()||(this.wo=this.ho-t,this.ao=x(this.Lh()).Th()))}Jo(t){if(this.Mh()||this.Oo())return;if(null===this.wo)return;this.Ro({Wn:!1}),(t=this.ho-t)<0&&(t=0);let i=(this.wo+.2*(this.ho-1))/(t+.2*(this.ho-1));const e=x(this.ao).Th();i=Math.max(i,.1),e.Vh(i),this.Ao(e)}Qo(){this.Mh()||this.Oo()||(this.wo=null,this.ao=null)}t_(t){this.Vo()||null===this.Mo&&null===this.ao&&(this.Ni()||(this.Mo=t,this.ao=x(this.Lh()).Th()))}i_(t){if(this.Vo())return;if(null===this.Mo)return;const i=x(this.Lh()).Dh()/(this.Eo()-1);let e=t-this.Mo;this.Bo()&&(e*=-1);const s=e*i,n=x(this.ao).Th();n.Oh(s),this.Ao(n,!0),this.bo=null}n_(){this.Vo()||null!==this.Mo&&(this.Mo=null,this.ao=null)}ba(){return this.wa||this.Ra(),this.wa}Fi(t,i){switch(this.cn.mode){case 2:return this.s_(oe(t,i));case 3:return this.ba().format(le(t,i));default:return this.Wh(t)}}eo(t){switch(this.cn.mode){case 2:return this.s_(t);case 3:return this.ba().format(t);default:return this.Wh(t)}}Yl(t){return this.Wh(t,x(this.e_()).ba())}Zl(t,i){return t=oe(t,i),this.s_(t,we)}r_(){return this.po}h_(t){this.oo={uo:t,_o:!1}}Vn(){this.po.forEach(t=>t.Vn())}Ra(){this.bo=null;const t=this.e_();let i=100;null!==t&&(i=Math.round(1/t.ma())),this.wa=ye,this.Mh()?(this.wa=we,i=100):this.Oo()?(this.wa=new bt(100,1),i=100):null!==t&&(this.wa=t.ba()),this.Co=new ge(this,i,this.To.bind(this),this.Po.bind(this)),this.Co.io()}Yo(){this.mo=null}e_(){return this.po[0]||null}No(){return this.Bo()?this.cn.scaleMargins.bottom*this.At()+this.do:this.cn.scaleMargins.top*this.At()+this.co}Fo(){return this.Bo()?this.cn.scaleMargins.top*this.At()+this.co:this.cn.scaleMargins.bottom*this.At()+this.do}Wo(){this.oo._o||(this.oo._o=!0,this.l_())}Do(){this.lo=null}Po(t,i){if(this.Wo(),this.Ni())return 0;t=this.ro()&&t?ce(t,this.xo):t;const e=x(this.Lh()),s=this.Fo()+(this.Eo()-1)*(t-e.Ph())/e.Dh();return this.jo(s)}To(t,i){if(this.Wo(),this.Ni())return 0;const e=this.jo(t),s=x(this.Lh()),n=s.Ph()+s.Dh()*((e-this.Fo())/(this.Eo()-1));return this.ro()?ue(n,this.xo):n}Io(){this.bo=null,this.Co.io()}l_(){const t=this.oo.uo;if(null===t)return;let i=null;const e=this.r_();let s=0,n=0;for(const r of e){if(!r.yt())continue;const e=r.Ct();if(null===e)continue;const o=r.Il(t.Os(),t.ui());let h=o&&o.Lh();if(null!==h){switch(this.cn.mode){case 1:h=de(h,this.xo);break;case 2:h=he(h,e.Vt);break;case 3:h=ae(h,e.Vt)}if(i=null===i?h:i.ts(x(h)),null!==o){const t=o.Eh();null!==t&&(s=Math.max(s,t.above),n=Math.max(n,t.below))}}}if(s===this.co&&n===this.do||(this.co=s,this.do=n,this.bo=null,this.Do()),null!==i){if(i.Ph()===i.Rh()){const t=this.e_(),e=5*(null===t||this.Mh()||this.Oo()?1:t.ma());this.ro()&&(i=fe(i,this.xo)),i=new Oi(i.Ph()-e,i.Rh()+e),this.ro()&&(i=de(i,this.xo))}if(this.ro()){const t=fe(i,this.xo),e=me(t);if(r=e,o=this.xo,r.$a!==o.$a||r.Ua!==o.Ua){const s=null!==this.ao?fe(this.ao,this.xo):null;this.xo=e,i=de(t,e),null!==s&&(this.ao=de(s,e))}}this.Ao(i)}else null===this.Ih&&(this.Ao(new Oi(-.5,.5)),this.xo=me(null));var r,o;this.oo._o=!0}Ho(){return this.Mh()?oe:this.Oo()?le:this.ro()?t=>ce(t,this.xo):null}a_(t,i,e){return void 0===i?(void 0===e&&(e=this.ba()),e.format(t)):i(t)}Wh(t,i){return this.a_(t,this.yo.priceFormatter,i)}s_(t,i){return this.a_(t,this.yo.percentageFormatter,i)}}class Ce{constructor(t,i){this.po=[],this.o_=new Map,this.ho=0,this.__=0,this.u_=1e3,this.mo=null,this.c_=new P,this.yl=t,this.$i=i,this.d_=new ne(this);const e=i.W();this.f_=this.v_("left",e.leftPriceScale),this.p_=this.v_("right",e.rightPriceScale),this.f_.zo().l(this.m_.bind(this,this.f_),this),this.p_.zo().l(this.m_.bind(this,this.p_),this),this.b_(e)}b_(t){if(t.leftPriceScale&&this.f_.$h(t.leftPriceScale),t.rightPriceScale&&this.p_.$h(t.rightPriceScale),t.localization&&(this.f_.Ra(),this.p_.Ra()),t.overlayPriceScales){const i=Array.from(this.o_.values());for(const e of i){const i=x(e[0].Dt());i.$h(t.overlayPriceScales),t.localization&&i.Ra()}}}w_(t){switch(t){case"left":return this.f_;case"right":return this.p_}return this.o_.has(t)?C(this.o_.get(t))[0].Dt():null}S(){this.$t().g_().p(this),this.f_.zo().p(this),this.p_.zo().p(this),this.po.forEach(t=>{t.S&&t.S()}),this.c_.m()}M_(){return this.u_}x_(t){this.u_=t}$t(){return this.$i}Hi(){return this.__}At(){return this.ho}S_(t){this.__=t,this.k_()}Lo(t){this.ho=t,this.f_.Lo(t),this.p_.Lo(t),this.po.forEach(i=>{if(this.vr(i)){const e=i.Dt();null!==e&&e.Lo(t)}}),this.k_()}Ba(){return this.po}vr(t){const i=t.Dt();return null===i||this.f_!==i&&this.p_!==i}qo(t,i,e){const s=void 0!==e?e:this.C_().y_+1;this.T_(t,i,s)}Zo(t){const i=this.po.indexOf(t);S(-1!==i,"removeDataSource: invalid data source"),this.po.splice(i,1);const e=x(t.Dt()).Pa();if(this.o_.has(e)){const i=C(this.o_.get(e)),s=i.indexOf(t);-1!==s&&(i.splice(s,1),0===i.length&&this.o_.delete(e))}const s=t.Dt();s&&s.Ba().indexOf(t)>=0&&s.Zo(t),null!==s&&(s.Yo(),this.P_(s)),this.mo=null}mr(t){return t===this.f_?"left":t===this.p_?"right":"overlay"}R_(){return this.f_}D_(){return this.p_}V_(t,i){t.Go(i)}O_(t,i){t.Jo(i),this.k_()}B_(t){t.Qo()}A_(t,i){t.t_(i)}I_(t,i){t.i_(i),this.k_()}z_(t){t.n_()}k_(){this.po.forEach(t=>{t.Vn()})}vn(){let t=null;return this.$i.W().rightPriceScale.visible&&0!==this.p_.Ba().length?t=this.p_:this.$i.W().leftPriceScale.visible&&0!==this.f_.Ba().length?t=this.f_:0!==this.po.length&&(t=this.po[0].Dt()),null===t&&(t=this.p_),t}pr(){let t=null;return this.$i.W().rightPriceScale.visible?t=this.p_:this.$i.W().leftPriceScale.visible&&(t=this.f_),t}P_(t){null!==t&&t.Vo()&&this.L_(t)}E_(t){const i=this.yl.Xs();t.Ro({Wn:!0}),null!==i&&t.h_(i),this.k_()}N_(){this.L_(this.f_),this.L_(this.p_)}F_(){this.P_(this.f_),this.P_(this.p_),this.po.forEach(t=>{this.vr(t)&&this.P_(t.Dt())}),this.k_(),this.$i.Uh()}Uo(){return null===this.mo&&(this.mo=ve(this.po)),this.mo}W_(){return this.c_}j_(){return this.d_}L_(t){const i=t.r_();if(i&&i.length>0&&!this.yl.Ni()){const i=this.yl.Xs();null!==i&&t.h_(i)}t.Vn()}C_(){const t=this.Uo();if(0===t.length)return{H_:0,y_:0};let i=0,e=0;for(let s=0;s<t.length;s++){const n=t[s].Xi();null!==n&&(n<i&&(i=n),n>e&&(e=n))}return{H_:i,y_:e}}T_(t,i,e){let s=this.w_(i);if(null===s&&(s=this.v_(i,this.$i.W().overlayPriceScales)),this.po.push(t),!pt(i)){const e=this.o_.get(i)||[];e.push(t),this.o_.set(i,e)}s.qo(t),t.Gi(s),t.Ki(e),this.P_(s),this.mo=null}m_(t,i,e){i.Cr!==e.Cr&&this.L_(t)}v_(t,i){const e=Object.assign({visible:!0,autoScale:!0},W(i)),s=new Se(t,e,this.$i.W().layout,this.$i.W().localization);return s.Lo(this.At()),s}}class xe{constructor(t,i,e=50){this.Ke=0,this.Ge=1,this.Je=1,this.tr=new Map,this.Qe=new Map,this.U_=t,this.q_=i,this.ir=e}Y_(t){const i=t.time,e=this.q_.cacheKey(i),s=this.tr.get(e);if(void 0!==s)return s.Z_;if(this.Ke===this.ir){const t=this.Qe.get(this.Je);this.Qe.delete(this.Je),this.tr.delete(C(t)),this.Je++,this.Ke--}const n=this.U_(t);return this.tr.set(e,{Z_:n,rr:this.Ge}),this.Qe.set(this.Ge,e),this.Ke++,this.Ge++,n}}class _e{constructor(t,i){S(t<=i,"right should be >= left"),this.X_=t,this.K_=i}Os(){return this.X_}ui(){return this.K_}G_(){return this.K_-this.X_+1}Kr(t){return this.X_<=t&&t<=this.K_}Ch(t){return this.X_===t.Os()&&this.K_===t.ui()}}function Ee(t,i){return null===t||null===i?t===i:t.Ch(i)}class Me{constructor(){this.J_=new Map,this.tr=null,this.Q_=!1}tu(t){this.Q_=t,this.tr=null}iu(t,i){this.nu(i),this.tr=null;for(let e=i;e<t.length;++e){const i=t[e];let s=this.J_.get(i.timeWeight);void 0===s&&(s=[],this.J_.set(i.timeWeight,s)),s.push({index:e,time:i.time,weight:i.timeWeight,originalTime:i.originalTime})}}su(t,i){const e=Math.ceil(i/t);return null!==this.tr&&this.tr.eu===e||(this.tr={Ha:this.ru(e),eu:e}),this.tr.Ha}nu(t){if(0===t)return void this.J_.clear();const i=[];this.J_.forEach((e,s)=>{t<=e[0].index?i.push(s):e.splice(Dt(e,t,i=>i.index<t),1/0)});for(const t of i)this.J_.delete(t)}ru(t){let i=[];for(const e of Array.from(this.J_.keys()).sort((t,i)=>i-t)){if(!this.J_.get(e))continue;const s=i;i=[];const n=s.length;let r=0;const o=C(this.J_.get(e)),h=o.length;let l=1/0,a=-1/0;for(let e=0;e<h;e++){const h=o[e],c=h.index;for(;r<n;){const t=s[r],e=t.index;if(!(e<c)){l=e;break}r++,i.push(t),a=e,l=1/0}if(l-c>=t&&c-a>=t)i.push(h),a=c;else if(this.Q_)return s}for(;r<n;r++)i.push(s[r])}return i}}class ze{constructor(t){this.hu=t}lu(){return null===this.hu?null:new _e(Math.floor(this.hu.Os()),Math.ceil(this.hu.ui()))}au(){return this.hu}static ou(){return new ze(null)}}function Re(t,i){return t.weight>i.weight?t:i}class ke{constructor(t,i,e,s){this.__=0,this._u=null,this.uu=[],this.Mo=null,this.wo=null,this.cu=new Me,this.du=new Map,this.fu=ze.ou(),this.vu=!0,this.pu=new P,this.mu=new P,this.bu=new P,this.wu=null,this.gu=null,this.Mu=[],this.cn=i,this.yo=e,this.xu=i.rightOffset,this.Su=i.barSpacing,this.$i=t,this.q_=s,this.ku(),this.cu.tu(i.uniformDistribution)}W(){return this.cn}yu(t){V(this.yo,t),this.Cu(),this.ku()}$h(t,i){var e;V(this.cn,t),this.cn.fixLeftEdge&&this.Tu(),this.cn.fixRightEdge&&this.Pu(),void 0!==t.barSpacing&&this.$i.Gn(t.barSpacing),void 0!==t.rightOffset&&this.$i.Jn(t.rightOffset),void 0!==t.minBarSpacing&&this.$i.Gn(null!==(e=t.barSpacing)&&void 0!==e?e:this.Su),this.Cu(),this.ku(),this.bu.m()}mn(t){var i,e;return null!==(e=null===(i=this.uu[t])||void 0===i?void 0:i.time)&&void 0!==e?e:null}Ui(t){var i;return null!==(i=this.uu[t])&&void 0!==i?i:null}Va(t,i){if(this.uu.length<1)return null;if(this.q_.key(t)>this.q_.key(this.uu[this.uu.length-1].time))return i?this.uu.length-1:null;const e=Dt(this.uu,this.q_.key(t),(t,i)=>this.q_.key(t.time)<i);return this.q_.key(t)<this.q_.key(this.uu[e].time)?i?e:null:e}Ni(){return 0===this.__||0===this.uu.length||null===this._u}Da(){return this.uu.length>0}Xs(){return this.Ru(),this.fu.lu()}Du(){return this.Ru(),this.fu.au()}Vu(){const t=this.Xs();if(null===t)return null;const i={from:t.Os(),to:t.ui()};return this.Ou(i)}Ou(t){const i=Math.round(t.from),e=Math.round(t.to),s=x(this.Bu()),n=x(this.Au());return{from:x(this.Ui(Math.max(s,i))),to:x(this.Ui(Math.min(n,e)))}}Iu(t){return{from:x(this.Va(t.from,!0)),to:x(this.Va(t.to,!0))}}Hi(){return this.__}S_(t){if(!isFinite(t)||t<=0)return;if(this.__===t)return;const i=this.Du(),e=this.__;if(this.__=t,this.vu=!0,this.cn.lockVisibleTimeRangeOnResize&&0!==e){const i=this.Su*t/e;this.Su=i}if(this.cn.fixLeftEdge&&null!==i&&i.Os()<=0){const i=e-t;this.xu-=Math.round(i/this.Su)+1,this.vu=!0}this.zu(),this.Lu()}It(t){if(this.Ni()||!A(t))return 0;const i=this.Eu()+this.xu-t;return this.__-(i+.5)*this.Su-1}Qs(t,i){const e=this.Eu(),s=void 0===i?0:i.from,n=void 0===i?t.length:i.to;for(let i=s;i<n;i++){const s=t[i].ot,n=e+this.xu-s,r=this.__-(n+.5)*this.Su-1;t[i].nt=r}}Nu(t){return Math.ceil(this.Fu(t))}Jn(t){this.vu=!0,this.xu=t,this.Lu(),this.$i.Wu(),this.$i.Uh()}le(){return this.Su}Gn(t){this.ju(t),this.Lu(),this.$i.Wu(),this.$i.Uh()}Hu(){return this.xu}Ha(){if(this.Ni())return null;if(null!==this.gu)return this.gu;const t=this.Su,i=5*(this.$i.W().layout.fontSize+4)/8*(this.cn.tickMarkMaxCharacterLength||8),e=Math.round(i/t),s=x(this.Xs()),n=Math.max(s.Os(),s.Os()-e),r=Math.max(s.ui(),s.ui()-e),o=this.cu.su(t,i),h=this.Bu()+e,l=this.Au()-e,a=this.$u(),c=this.cn.fixLeftEdge||a,u=this.cn.fixRightEdge||a;let d=0;for(const t of o){if(!(n<=t.index&&t.index<=r))continue;let e;d<this.Mu.length?(e=this.Mu[d],e.coord=this.It(t.index),e.label=this.Uu(t),e.weight=t.weight):(e={needAlignCoordinate:!1,coord:this.It(t.index),label:this.Uu(t),weight:t.weight},this.Mu.push(e)),this.Su>i/2&&!a?e.needAlignCoordinate=!1:e.needAlignCoordinate=c&&t.index<=h||u&&t.index>=l,d++}return this.Mu.length=d,this.gu=this.Mu,this.Mu}qu(){this.vu=!0,this.Gn(this.cn.barSpacing),this.Jn(this.cn.rightOffset)}Yu(t){this.vu=!0,this._u=t,this.Lu(),this.Tu()}Zu(t,i){const e=this.Fu(t),s=this.le(),n=s+i*(s/10);this.Gn(n),this.cn.rightBarStaysOnScroll||this.Jn(this.Hu()+(e-this.Fu(t)))}Go(t){this.Mo&&this.n_(),null===this.wo&&null===this.wu&&(this.Ni()||(this.wo=t,this.Xu()))}Jo(t){if(null===this.wu)return;const i=Rt(this.__-t,0,this.__),e=Rt(this.__-x(this.wo),0,this.__);0!==i&&0!==e&&this.Gn(this.wu.le*i/e)}Qo(){null!==this.wo&&(this.wo=null,this.Ku())}t_(t){null===this.Mo&&null===this.wu&&(this.Ni()||(this.Mo=t,this.Xu()))}i_(t){if(null===this.Mo)return;const i=(this.Mo-t)/this.le();this.xu=x(this.wu).Hu+i,this.vu=!0,this.Lu()}n_(){null!==this.Mo&&(this.Mo=null,this.Ku())}Gu(){this.Ju(this.cn.rightOffset)}Ju(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 e=this.xu,s=performance.now();this.$i.Zn({Qu:t=>(t-s)/i>=1,tc:n=>{const r=(n-s)/i;return r>=1?t:e+(t-e)*r}})}bt(t,i){this.vu=!0,this.uu=t,this.cu.iu(t,i),this.Lu()}nc(){return this.pu}sc(){return this.mu}ec(){return this.bu}Eu(){return this._u||0}rc(t){const i=t.G_();this.ju(this.__/i),this.xu=t.ui()-this.Eu(),this.Lu(),this.vu=!0,this.$i.Wu(),this.$i.Uh()}hc(){const t=this.Bu(),i=this.Au();null!==t&&null!==i&&this.rc(new _e(t,i+this.cn.rightOffset))}lc(t){const i=new _e(t.from,t.to);this.rc(i)}qi(t){return void 0!==this.yo.timeFormatter?this.yo.timeFormatter(t.originalTime):this.q_.formatHorzItem(t.time)}$u(){const{handleScroll:t,handleScale:i}=this.$i.W();return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}Bu(){return 0===this.uu.length?null:0}Au(){return 0===this.uu.length?null:this.uu.length-1}ac(t){return(this.__-1-t)/this.Su}Fu(t){const i=this.ac(t),e=this.Eu()+this.xu-i;return Math.round(1e6*e)/1e6}ju(t){const i=this.Su;this.Su=t,this.zu(),i!==this.Su&&(this.vu=!0,this.oc())}Ru(){if(!this.vu)return;if(this.vu=!1,this.Ni())return void this._c(ze.ou());const t=this.Eu(),i=this.__/this.Su,e=this.xu+t,s=new _e(e-i+1,e);this._c(new ze(s))}zu(){const t=this.uc();if(this.Su<t&&(this.Su=t,this.vu=!0),0!==this.__){const t=.5*this.__;this.Su>t&&(this.Su=t,this.vu=!0)}}uc(){return this.cn.fixLeftEdge&&this.cn.fixRightEdge&&0!==this.uu.length?this.__/this.uu.length:this.cn.minBarSpacing}Lu(){const t=this.cc();null!==t&&this.xu<t&&(this.xu=t,this.vu=!0);const i=this.dc();this.xu>i&&(this.xu=i,this.vu=!0)}cc(){const t=this.Bu(),i=this._u;return null===t||null===i?null:t-i-1+(this.cn.fixLeftEdge?this.__/this.Su:Math.min(2,this.uu.length))}dc(){return this.cn.fixRightEdge?0:this.__/this.Su-Math.min(2,this.uu.length)}Xu(){this.wu={le:this.le(),Hu:this.Hu()}}Ku(){this.wu=null}Uu(t){let i=this.du.get(t.weight);return void 0===i&&(i=new xe(t=>this.fc(t),this.q_),this.du.set(t.weight,i)),i.Y_(t)}fc(t){return this.q_.formatTickmark(t,this.yo)}_c(t){const i=this.fu;this.fu=t,Ee(i.lu(),this.fu.lu())||this.pu.m(),Ee(i.au(),this.fu.au())||this.mu.m(),this.oc()}oc(){this.gu=null}Cu(){this.oc(),this.du.clear()}ku(){this.q_.updateFormatter(this.yo)}Tu(){if(!this.cn.fixLeftEdge)return;const t=this.Bu();if(null===t)return;const i=this.Xs();if(null===i)return;const e=i.Os()-t;if(e<0){const t=this.xu-e-1;this.Jn(t)}this.zu()}Pu(){this.Lu(),this.zu()}}class Te{X(t,i,e){t.useMediaCoordinateSpace(t=>this.K(t,i,e))}gl(t,i,e){t.useMediaCoordinateSpace(t=>this.vc(t,i,e))}vc(t,i,e){}}class Le extends Te{constructor(t){super(),this.mc=new Map,this.zt=t}K(t){}vc(t){if(!this.zt.yt)return;const{context:i,mediaSize:e}=t;let s=0;for(const t of this.zt.bc){if(0===t.Kt.length)continue;i.font=t.R;const n=this.wc(i,t.Kt);n>e.width?t.Zu=e.width/n:t.Zu=1,s+=t.gc*t.Zu}let n=0;switch(this.zt.Mc){case"top":n=0;break;case"center":n=Math.max((e.height-s)/2,0);break;case"bottom":n=Math.max(e.height-s,0)}i.fillStyle=this.zt.V;for(const t of this.zt.bc){i.save();let s=0;switch(this.zt.xc){case"left":i.textAlign="left",s=t.gc/2;break;case"center":i.textAlign="center",s=e.width/2;break;case"right":i.textAlign="right",s=e.width-1-t.gc/2}i.translate(s,n),i.textBaseline="top",i.font=t.R,i.scale(t.Zu,t.Zu),i.fillText(t.Kt,0,t.Sc),i.restore(),n+=t.gc*t.Zu}}wc(t,i){const e=this.kc(t.font);let s=e.get(i);return void 0===s&&(s=t.measureText(i).width,e.set(i,s)),s}kc(t){let i=this.mc.get(t);return void 0===i&&(i=new Map,this.mc.set(t,i)),i}}class Oe{constructor(t){this.ft=!0,this.Ft={yt:!1,V:"",bc:[],Mc:"center",xc:"center"},this.Wt=new Le(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.W(),i=this.Ft;i.yt=t.visible,i.yt&&(i.V=t.color,i.xc=t.horzAlign,i.Mc=t.vertAlign,i.bc=[{Kt:t.text,R:H(t.fontSize,t.fontFamily,t.fontStyle),gc:1.2*t.fontSize,Sc:0,Zu:0}])}}class Ne extends dt{constructor(t,i){super(),this.cn=i,this.wn=new Oe(this)}Rn(){return[]}Pn(){return[this.wn]}W(){return this.cn}Vn(){this.wn.bt()}}var $e,Pe,Ve,De,Ae;!function(t){t[t.OnTouchEnd=0]="OnTouchEnd",t[t.OnNextTap=1]="OnNextTap"}($e||($e={}));class Be{constructor(t,i,e){this.yc=[],this.Cc=[],this.__=0,this.Tc=null,this.Pc=new P,this.Rc=new P,this.Dc=null,this.Vc=t,this.cn=i,this.q_=e,this.Oc=new K(this),this.yl=new ke(this,i.timeScale,this.cn.localization,e),this.vt=new mt(this,i.crosshair),this.Bc=new ie(i.crosshair),this.Ac=new Ne(this,i.watermark),this.Ic(),this.yc[0].x_(2e3),this.zc=this.Lc(0),this.Ec=this.Lc(1)}Kl(){this.Nc(gt.es())}Uh(){this.Nc(gt.ss())}oa(){this.Nc(new gt(1))}Gl(t){const i=this.Fc(t);this.Nc(i)}Wc(){return this.Tc}jc(t){const i=this.Tc;this.Tc=t,null!==i&&this.Gl(i.Hc),null!==t&&this.Gl(t.Hc)}W(){return this.cn}$h(t){V(this.cn,t),this.yc.forEach(i=>i.b_(t)),void 0!==t.timeScale&&this.yl.$h(t.timeScale),void 0!==t.localization&&this.yl.yu(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.Pc.m(),this.zc=this.Lc(0),this.Ec=this.Lc(1),this.Kl()}$c(t,i){if("left"===t)return void this.$h({leftPriceScale:i});if("right"===t)return void this.$h({rightPriceScale:i});const e=this.Uc(t);null!==e&&(e.Dt.$h(i),this.Pc.m())}Uc(t){for(const i of this.yc){const e=i.w_(t);if(null!==e)return{Ht:i,Dt:e}}return null}St(){return this.yl}qc(){return this.yc}Yc(){return this.Ac}Zc(){return this.vt}Xc(){return this.Rc}Kc(t,i){t.Lo(i),this.Wu()}S_(t){this.__=t,this.yl.S_(this.__),this.yc.forEach(i=>i.S_(t)),this.Wu()}Ic(t){const i=new Ce(this.yl,this);void 0!==t?this.yc.splice(t,0,i):this.yc.push(i);const e=void 0===t?this.yc.length-1:t,s=gt.es();return s.Nn(e,{Fn:0,Wn:!0}),this.Nc(s),i}V_(t,i,e){t.V_(i,e)}O_(t,i,e){t.O_(i,e),this.Jl(),this.Nc(this.Gc(t,2))}B_(t,i){t.B_(i),this.Nc(this.Gc(t,2))}A_(t,i,e){i.Vo()||t.A_(i,e)}I_(t,i,e){i.Vo()||(t.I_(i,e),this.Jl(),this.Nc(this.Gc(t,2)))}z_(t,i){i.Vo()||(t.z_(i),this.Nc(this.Gc(t,2)))}E_(t,i){t.E_(i),this.Nc(this.Gc(t,2))}Jc(t){this.yl.Go(t)}Qc(t,i){const e=this.St();if(e.Ni()||0===i)return;const s=e.Hi();t=Math.max(1,Math.min(t,s)),e.Zu(t,i),this.Wu()}td(t){this.nd(0),this.sd(t),this.ed()}rd(t){this.yl.Jo(t),this.Wu()}hd(){this.yl.Qo(),this.Uh()}nd(t){this.yl.t_(t)}sd(t){this.yl.i_(t),this.Wu()}ed(){this.yl.n_(),this.Uh()}wt(){return this.Cc}ld(t,i,e,s,n){this.vt.gn(t,i);let r=NaN,o=this.yl.Nu(t);const h=this.yl.Xs();null!==h&&(o=Math.min(Math.max(h.Os(),o),h.ui()));const l=s.vn(),a=l.Ct();null!==a&&(r=l.pn(i,a)),r=this.Bc.Oa(r,o,s),this.vt.kn(o,r,s),this.oa(),n||this.Rc.m(this.vt.xt(),{x:t,y:i},e)}ad(t,i,e){const s=e.vn(),n=s.Ct(),r=s.Rt(t,x(n)),o=this.yl.Va(i,!0),h=this.yl.It(x(o));this.ld(h,r,null,e,!0)}od(t){this.Zc().Cn(),this.oa(),t||this.Rc.m(null,null,null)}Jl(){const t=this.vt.Ht();if(null!==t){const i=this.vt.xn(),e=this.vt.Sn();this.ld(i,e,null,t)}this.vt.Vn()}_d(t,i,e){const s=this.yl.mn(0);void 0!==i&&void 0!==e&&this.yl.bt(i,e);const n=this.yl.mn(0),r=this.yl.Eu(),o=this.yl.Xs();if(null!==o&&null!==s&&null!==n){const i=o.Kr(r),h=this.q_.key(s)>this.q_.key(n),l=null!==t&&t>r&&!h,a=this.yl.W().allowShiftVisibleRangeOnWhitespaceReplacement,c=i&&(!(void 0===e)||a)&&this.yl.W().shiftVisibleRangeOnNewBar;if(l&&!c){const i=t-r;this.yl.Jn(this.yl.Hu()-i)}}this.yl.Yu(t)}ia(t){null!==t&&t.F_()}dr(t){const i=this.yc.find(i=>i.Uo().includes(t));return void 0===i?null:i}Wu(){this.Ac.Vn(),this.yc.forEach(t=>t.F_()),this.Jl()}S(){this.yc.forEach(t=>t.S()),this.yc.length=0,this.cn.localization.priceFormatter=void 0,this.cn.localization.percentageFormatter=void 0,this.cn.localization.timeFormatter=void 0}ud(){return this.Oc}br(){return this.Oc.W()}g_(){return this.Pc}dd(t,i,e){const s=this.yc[0],n=this.fd(i,t,s,e);return this.Cc.push(n),1===this.Cc.length?this.Kl():this.Uh(),n}vd(t){const i=this.dr(t),e=this.Cc.indexOf(t);S(-1!==e,"Series not found"),this.Cc.splice(e,1),x(i).Zo(t),t.S&&t.S()}Xl(t,i){const e=x(this.dr(t));e.Zo(t);const s=this.Uc(i);if(null===s){const s=t.Xi();e.qo(t,i,s)}else{const n=s.Ht===e?t.Xi():void 0;s.Ht.qo(t,i,n)}}hc(){const t=gt.ss();t.$n(),this.Nc(t)}pd(t){const i=gt.ss();i.Yn(t),this.Nc(i)}Kn(){const t=gt.ss();t.Kn(),this.Nc(t)}Gn(t){const i=gt.ss();i.Gn(t),this.Nc(i)}Jn(t){const i=gt.ss();i.Jn(t),this.Nc(i)}Zn(t){const i=gt.ss();i.Zn(t),this.Nc(i)}Un(){const t=gt.ss();t.Un(),this.Nc(t)}md(){return this.cn.rightPriceScale.visible?"right":"left"}bd(){return this.Ec}q(){return this.zc}Bt(t){const i=this.Ec,e=this.zc;if(i===e)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.Dc||this.Dc.Ps!==e||this.Dc.Rs!==i)this.Dc={Ps:e,Rs:i,wd:new Map};else{const i=this.Dc.wd.get(t);if(void 0!==i)return i}const s=function(t,i,e){const[s,n,r,o]=O(t),[h,l,a,c]=O(i),u=[M(s+e*(h-s)),M(n+e*(l-n)),M(r+e*(a-r)),z(o+e*(c-o))];return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}(e,i,t/100);return this.Dc.wd.set(t,s),s}Gc(t,i){const e=new gt(i);if(null!==t){const s=this.yc.indexOf(t);e.Nn(s,{Fn:i})}return e}Fc(t,i){return void 0===i&&(i=2),this.Gc(this.dr(t),i)}Nc(t){this.Vc&&this.Vc(t),this.yc.forEach(t=>t.j_().qh().bt())}fd(t,i,e,s){const n=new te(this,t,i,e,s),r=void 0!==t.priceScaleId?t.priceScaleId:this.md();return e.qo(n,r),pt(r)||n.$h(t),n}Lc(t){const i=this.cn.layout;return"gradient"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}}function Fe(t){return!D(t)&&!B(t)}function We(t){return D(t)}!function(t){t[t.Disabled=0]="Disabled",t[t.Continuous=1]="Continuous",t[t.OnDataUpdate=2]="OnDataUpdate"}(Pe||(Pe={})),function(t){t[t.LastBar=0]="LastBar",t[t.LastVisible=1]="LastVisible"}(Ve||(Ve={})),function(t){t.Solid="solid",t.VerticalGradient="gradient"}(De||(De={})),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"}(Ae||(Ae={}));const je=t=>t.getUTCFullYear();class Ie{constructor(t="yyyy-MM-dd",i="default"){this.gd=t,this.Md=i}Y_(t){return function(t,i,e){return i.replace(/yyyy/g,(t=>vt(je(t),4))(t)).replace(/yy/g,(t=>vt(je(t)%100,2))(t)).replace(/MMMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"long"}))(t,e)).replace(/MMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"short"}))(t,e)).replace(/MM/g,(t=>vt((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>vt((t=>t.getUTCDate())(t),2))(t))}(t,this.gd,this.Md)}}class Ue{constructor(t){this.xd=t||"%h:%m:%s"}Y_(t){return this.xd.replace("%h",vt(t.getUTCHours(),2)).replace("%m",vt(t.getUTCMinutes(),2)).replace("%s",vt(t.getUTCSeconds(),2))}}const He={Sd:"yyyy-MM-dd",kd:"%h:%m:%s",yd:" ",Cd:"default"};class Ke{constructor(t={}){const i=Object.assign(Object.assign({},He),t);this.Td=new Ie(i.Sd,i.Cd),this.Pd=new Ue(i.kd),this.Rd=i.yd}Y_(t){return`${this.Td.Y_(t)}${this.Rd}${this.Pd.Y_(t)}`}}function qe(t){return 60*t*60*1e3}function Xe(t){return 60*t*1e3}const Je=[{Dd:1e3,Vd:10},{Dd:Xe(1),Vd:20},{Dd:Xe(5),Vd:21},{Dd:Xe(30),Vd:22},{Dd:qe(1),Vd:30},{Dd:qe(3),Vd:31},{Dd:qe(6),Vd:32},{Dd:qe(12),Vd:33}];function Ge(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 e=Je.length-1;e>=0;--e)if(Math.floor(i.getTime()/Je[e].Dd)!==Math.floor(t.getTime()/Je[e].Dd))return Je[e].Vd;return 0}function Qe(t){let i=t;if(B(t)&&(i=Ze(t)),!Fe(i))throw new Error("time must be of type BusinessDay");const e=new Date(Date.UTC(i.year,i.month-1,i.day,0,0,0,0));return{Od:Math.round(e.getTime()/1e3),Bd:i}}function Ye(t){if(!We(t))throw new Error("time must be of type isUTCTimestamp");return{Od:t}}function Ze(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 ts(t){B(t.time)&&(t.time=Ze(t.time))}class is{options(){return this.cn}setOptions(t){this.cn=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(ts)}(t):ts(t)}createConverterToInternalObj(t){return x(function(t){return 0===t.length?null:Fe(t[0].time)||B(t[0].time)?Qe:Ye}(t))}key(t){return"object"==typeof t&&"Od"in t?t.Od:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.Bd?new Date(1e3*i.Od).getTime():new Date(Date.UTC(i.Bd.year,i.Bd.month-1,i.Bd.day)).getTime()}convertHorzItemToInternal(t){return We(i=t)?Ye(i):Fe(i)?Qe(i):Qe(Ze(i));var i}updateFormatter(t){if(!this.cn)return;const i=t.dateFormat;this.cn.timeScale.timeVisible?this.Ad=new Ke({Sd:i,kd:this.cn.timeScale.secondsVisible?"%h:%m:%s":"%h:%m",yd:" ",Cd:t.locale}):this.Ad=new Ie(i,t.locale)}formatHorzItem(t){const i=t;return this.Ad.Y_(new Date(1e3*i.Od))}formatTickmark(t,i){const e=function(t,i,e){switch(t){case 0:case 10:return i?e?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.cn.timeScale.timeVisible,this.cn.timeScale.secondsVisible),s=this.cn.timeScale;if(void 0!==s.tickMarkFormatter){const n=s.tickMarkFormatter(t.originalTime,e,i.locale);if(null!==n)return n}return function(t,i,e){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 n=void 0===t.Bd?new Date(1e3*t.Od):new Date(Date.UTC(t.Bd.year,t.Bd.month-1,t.Bd.day));return new Date(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),n.getUTCMilliseconds()).toLocaleString(e,s)}(t.time,e,i.locale)}maxTickMarkWeight(t){let i=t.reduce(Re,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){!function(t,i=0){if(0===t.length)return;let e=0===i?null:t[i-1].time.Od,s=null!==e?new Date(1e3*e):null,n=0;for(let r=i;r<t.length;++r){const i=t[r],o=new Date(1e3*i.time.Od);null!==s&&(i.timeWeight=Ge(o,s)),n+=i.time.Od-(e||i.time.Od),e=i.time.Od,s=o}if(0===i&&t.length>1){const i=Math.ceil(n/(t.length-1)),e=new Date(1e3*(t[0].time.Od-i));t[0].timeWeight=Ge(new Date(1e3*t[0].time.Od),e)}}(t,i)}static Id(t){return V({localization:{dateFormat:"dd MMM 'yy"}},null!=t?t:{})}}const es="undefined"!=typeof window;function ss(){return!!es&&window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1}function ns(){return!!es&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function rs(t){return t+t%2}function os(t,i){return t.zd-i.zd}function hs(t,i,e){const s=(t.zd-i.zd)/(t.ot-i.ot);return Math.sign(s)*Math.min(Math.abs(s),e)}class ls{constructor(t,i,e,s){this.Ld=null,this.Ed=null,this.Nd=null,this.Fd=null,this.Wd=null,this.jd=0,this.Hd=0,this.$d=t,this.Ud=i,this.qd=e,this.rs=s}Yd(t,i){if(null!==this.Ld){if(this.Ld.ot===i)return void(this.Ld.zd=t);if(Math.abs(this.Ld.zd-t)<this.rs)return}this.Fd=this.Nd,this.Nd=this.Ed,this.Ed=this.Ld,this.Ld={ot:i,zd:t}}Vr(t,i){if(null===this.Ld||null===this.Ed)return;if(i-this.Ld.ot>50)return;let e=0;const s=hs(this.Ld,this.Ed,this.Ud),n=os(this.Ld,this.Ed),r=[s],o=[n];if(e+=n,null!==this.Nd){const t=hs(this.Ed,this.Nd,this.Ud);if(Math.sign(t)===Math.sign(s)){const i=os(this.Ed,this.Nd);if(r.push(t),o.push(i),e+=i,null!==this.Fd){const t=hs(this.Nd,this.Fd,this.Ud);if(Math.sign(t)===Math.sign(s)){const i=os(this.Nd,this.Fd);r.push(t),o.push(i),e+=i}}}}let h=0;for(let t=0;t<r.length;++t)h+=o[t]/e*r[t];Math.abs(h)<this.$d||(this.Wd={zd:t,ot:i},this.Hd=h,this.jd=function(t,i){const e=Math.log(i);return Math.log(1*e/-t)/e}(Math.abs(h),this.qd))}tc(t){const i=x(this.Wd),e=t-i.ot;return i.zd+this.Hd*(Math.pow(this.qd,e)-1)/Math.log(this.qd)}Qu(t){return null===this.Wd||this.Zd(t)===this.jd}Zd(t){const i=t-x(this.Wd).ot;return Math.min(i,this.jd)}}class as{constructor(t,i){this.Xd=void 0,this.Kd=void 0,this.Gd=void 0,this.en=!1,this.Jd=t,this.Qd=i,this.tf()}bt(){this.tf()}if(){this.Xd&&this.Jd.removeChild(this.Xd),this.Kd&&this.Jd.removeChild(this.Kd),this.Xd=void 0,this.Kd=void 0}nf(){return this.en!==this.sf()||this.Gd!==this.ef()}ef(){return N(O(this.Qd.W().layout.textColor))>160?"dark":"light"}sf(){return this.Qd.W().layout.attributionLogo}rf(){const t=new URL(location.href);return t.hostname?"&utm_source="+t.hostname+t.pathname:""}tf(){this.nf()&&(this.if(),this.en=this.sf(),this.en&&(this.Gd=this.ef(),this.Kd=document.createElement("style"),this.Kd.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.Xd=document.createElement("a"),this.Xd.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.rf()}`,this.Xd.title="Charting by TradingView",this.Xd.id="tv-attr-logo",this.Xd.target="_blank",this.Xd.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 35 19" width="35" height="19" fill="none"><g fill-rule="evenodd" clip-path="url(#a)" clip-rule="evenodd"><path fill="var(--stroke)" d="M2 0H0v10h6v9h21.4l.5-1.3 6-15 1-2.7H23.7l-.5 1.3-.2.6a5 5 0 0 0-7-.9V0H2Zm20 17h4l5.2-13 .8-2h-7l-1 2.5-.2.5-1.5 3.8-.3.7V17Zm-.8-10a3 3 0 0 0 .7-2.7A3 3 0 1 0 16.8 7h4.4ZM14 7V2H2v6h6v9h4V7h2Z"/><path fill="var(--fill)" d="M14 2H2v6h6v9h6V2Zm12 15h-7l6-15h7l-6 15Zm-7-9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"/></g><defs><clipPath id="a"><path fill="var(--stroke)" d="M0 0h35v19H0z"/></clipPath></defs></svg>',this.Xd.toggleAttribute("data-dark","dark"===this.Gd),this.Jd.appendChild(this.Kd),this.Jd.appendChild(this.Xd)))}}function cs(t,i){const e=x(t.ownerDocument).createElement("canvas");t.appendChild(e);const s=(r={options:{allowResizeObserver:!1},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})},new n(e,r.transform,r.options));var r;return s.resizeCanvasElement(i),s}function us(t){var i;t.width=1,t.height=1,null===(i=t.getContext("2d"))||void 0===i||i.clearRect(0,0,1,1)}function ds(t,i,e,s){t.gl&&t.gl(i,e,s)}function fs(t,i,e,s){t.X(i,e,s)}function ms(t,i,e,s){const n=t(e,s);for(const t of n){const e=t.gt();null!==e&&i(e)}}class ps{constructor(t,i,e){this.hf=0,this.lf=null,this.af={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this._f=0,this.uf=null,this.cf={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this.df=null,this.ff=!1,this.vf=null,this.pf=null,this.mf=!1,this.bf=!1,this.wf=!1,this.gf=null,this.Mf=null,this.xf=null,this.Sf=null,this.kf=null,this.yf=null,this.Cf=null,this.Tf=0,this.Pf=!1,this.Rf=!1,this.Df=!1,this.Vf=0,this.Of=null,this.Bf=!ns(),this.Af=t=>{this.If(t)},this.zf=t=>{if(this.Lf(t)){const i=this.Ef(t);if(++this._f,this.uf&&this._f>1){const{Nf:e}=this.Ff(bs(t),this.cf);e<30&&!this.wf&&this.Wf(i,this.Hf.jf),this.$f()}}else{const i=this.Ef(t);if(++this.hf,this.lf&&this.hf>1){const{Nf:e}=this.Ff(bs(t),this.af);e<5&&!this.bf&&this.Uf(i,this.Hf.qf),this.Yf()}}},this.Zf=t,this.Hf=i,this.cn=e,this.Xf()}S(){null!==this.gf&&(this.gf(),this.gf=null),null!==this.Mf&&(this.Mf(),this.Mf=null),null!==this.Sf&&(this.Sf(),this.Sf=null),null!==this.kf&&(this.kf(),this.kf=null),null!==this.yf&&(this.yf(),this.yf=null),null!==this.xf&&(this.xf(),this.xf=null),this.Kf(),this.Yf()}Gf(t){this.Sf&&this.Sf();const i=this.Jf.bind(this);if(this.Sf=()=>{this.Zf.removeEventListener("mousemove",i)},this.Zf.addEventListener("mousemove",i),this.Lf(t))return;const e=this.Ef(t);this.Uf(e,this.Hf.Qf),this.Bf=!0}Yf(){null!==this.lf&&clearTimeout(this.lf),this.hf=0,this.lf=null,this.af={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}$f(){null!==this.uf&&clearTimeout(this.uf),this._f=0,this.uf=null,this.cf={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}Jf(t){if(this.Df||null!==this.pf)return;if(this.Lf(t))return;const i=this.Ef(t);this.Uf(i,this.Hf.tv),this.Bf=!0}iv(t){const i=ys(t.changedTouches,x(this.Of));if(null===i)return;if(this.Vf=ws(t),null!==this.Cf)return;if(this.Rf)return;this.Pf=!0;const e=this.Ff(bs(i),x(this.pf)),{nv:s,sv:n,Nf:r}=e;if(this.mf||!(r<5)){if(!this.mf){const t=.5*s,i=n>=t&&!this.cn.ev(),e=t>n&&!this.cn.rv();i||e||(this.Rf=!0),this.mf=!0,this.wf=!0,this.Kf(),this.$f()}if(!this.Rf){const e=this.Ef(t,i);this.Wf(e,this.Hf.hv),vs(t)}}}lv(t){if(0!==t.button)return;const i=this.Ff(bs(t),x(this.vf)),{Nf:e}=i;if(e>=5&&(this.bf=!0,this.Yf()),this.bf){const i=this.Ef(t);this.Uf(i,this.Hf.av)}}Ff(t,i){const e=Math.abs(i.nt-t.nt),s=Math.abs(i.st-t.st);return{nv:e,sv:s,Nf:e+s}}ov(t){let i=ys(t.changedTouches,x(this.Of));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.Of=null,this.Vf=ws(t),this.Kf(),this.pf=null,this.yf&&(this.yf(),this.yf=null);const e=this.Ef(t,i);if(this.Wf(e,this.Hf._v),++this._f,this.uf&&this._f>1){const{Nf:t}=this.Ff(bs(i),this.cf);t<30&&!this.wf&&this.Wf(e,this.Hf.jf),this.$f()}else this.wf||(this.Wf(e,this.Hf.uv),this.Hf.uv&&vs(t));0===this._f&&vs(t),0===t.touches.length&&this.ff&&(this.ff=!1,vs(t))}If(t){if(0!==t.button)return;const i=this.Ef(t);if(this.vf=null,this.Df=!1,this.kf&&(this.kf(),this.kf=null),ss()&&this.Zf.ownerDocument.documentElement.removeEventListener("mouseleave",this.Af),!this.Lf(t))if(this.Uf(i,this.Hf.cv),++this.hf,this.lf&&this.hf>1){const{Nf:e}=this.Ff(bs(t),this.af);e<5&&!this.bf&&this.Uf(i,this.Hf.qf),this.Yf()}else this.bf||this.Uf(i,this.Hf.dv)}Kf(){null!==this.df&&(clearTimeout(this.df),this.df=null)}fv(t){if(null!==this.Of)return;const i=t.changedTouches[0];this.Of=i.identifier,this.Vf=ws(t);const e=this.Zf.ownerDocument.documentElement;this.wf=!1,this.mf=!1,this.Rf=!1,this.pf=bs(i),this.yf&&(this.yf(),this.yf=null);{const i=this.iv.bind(this),s=this.ov.bind(this);this.yf=()=>{e.removeEventListener("touchmove",i),e.removeEventListener("touchend",s)},e.addEventListener("touchmove",i,{passive:!1}),e.addEventListener("touchend",s,{passive:!1}),this.Kf(),this.df=setTimeout(this.vv.bind(this,t),240)}const s=this.Ef(t,i);this.Wf(s,this.Hf.pv),this.uf||(this._f=0,this.uf=setTimeout(this.$f.bind(this),500),this.cf=bs(i))}mv(t){if(0!==t.button)return;const i=this.Zf.ownerDocument.documentElement;ss()&&i.addEventListener("mouseleave",this.Af),this.bf=!1,this.vf=bs(t),this.kf&&(this.kf(),this.kf=null);{const t=this.lv.bind(this),e=this.If.bind(this);this.kf=()=>{i.removeEventListener("mousemove",t),i.removeEventListener("mouseup",e)},i.addEventListener("mousemove",t),i.addEventListener("mouseup",e)}if(this.Df=!0,this.Lf(t))return;const e=this.Ef(t);this.Uf(e,this.Hf.bv),this.lf||(this.hf=0,this.lf=setTimeout(this.Yf.bind(this),500),this.af=bs(t))}Xf(){this.Zf.addEventListener("mouseenter",this.Gf.bind(this)),this.Zf.addEventListener("touchcancel",this.Kf.bind(this));{const t=this.Zf.ownerDocument,i=t=>{this.Hf.wv&&(t.composed&&this.Zf.contains(t.composedPath()[0])||t.target&&this.Zf.contains(t.target)||this.Hf.wv())};this.Mf=()=>{t.removeEventListener("touchstart",i)},this.gf=()=>{t.removeEventListener("mousedown",i)},t.addEventListener("mousedown",i),t.addEventListener("touchstart",i,{passive:!0})}ns()&&(this.xf=()=>{this.Zf.removeEventListener("dblclick",this.zf)},this.Zf.addEventListener("dblclick",this.zf)),this.Zf.addEventListener("mouseleave",this.gv.bind(this)),this.Zf.addEventListener("touchstart",this.fv.bind(this),{passive:!0}),function(t){es&&void 0!==window.chrome&&t.addEventListener("mousedown",t=>{if(1===t.button)return t.preventDefault(),!1})}(this.Zf),this.Zf.addEventListener("mousedown",this.mv.bind(this)),this.Mv(),this.Zf.addEventListener("touchmove",()=>{},{passive:!1})}Mv(){void 0===this.Hf.xv&&void 0===this.Hf.Sv&&void 0===this.Hf.kv||(this.Zf.addEventListener("touchstart",t=>this.yv(t.touches),{passive:!0}),this.Zf.addEventListener("touchmove",t=>{if(2===t.touches.length&&null!==this.Cf&&void 0!==this.Hf.Sv){const i=gs(t.touches[0],t.touches[1])/this.Tf;this.Hf.Sv(this.Cf,i),vs(t)}},{passive:!1}),this.Zf.addEventListener("touchend",t=>{this.yv(t.touches)}))}yv(t){1===t.length&&(this.Pf=!1),2!==t.length||this.Pf||this.ff?this.Cv():this.Tv(t)}Tv(t){const i=this.Zf.getBoundingClientRect()||{left:0,top:0};this.Cf={nt:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,st:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Tf=gs(t[0],t[1]),void 0!==this.Hf.xv&&this.Hf.xv(),this.Kf()}Cv(){null!==this.Cf&&(this.Cf=null,void 0!==this.Hf.kv&&this.Hf.kv())}gv(t){if(this.Sf&&this.Sf(),this.Lf(t))return;if(!this.Bf)return;const i=this.Ef(t);this.Uf(i,this.Hf.Pv),this.Bf=!ns()}vv(t){const i=ys(t.touches,x(this.Of));if(null===i)return;const e=this.Ef(t,i);this.Wf(e,this.Hf.Rv),this.wf=!0,this.ff=!0}Lf(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:ws(t)<this.Vf+500}Wf(t,i){i&&i.call(this.Hf,t)}Uf(t,i){i&&i.call(this.Hf,t)}Ef(t,i){const e=i||t,s=this.Zf.getBoundingClientRect()||{left:0,top:0};return{clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY,localX:e.clientX-s.left,localY:e.clientY-s.top,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey,Dv:!t.type.startsWith("mouse")&&"contextmenu"!==t.type&&"click"!==t.type,Vv:t.type,Ov:e.target,Bv:t.view,Av:()=>{"touchstart"!==t.type&&vs(t)}}}}function gs(t,i){const e=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(e*e+s*s)}function vs(t){t.cancelable&&t.preventDefault()}function bs(t){return{nt:t.pageX,st:t.pageY}}function ws(t){return t.timeStamp||performance.now()}function ys(t,i){for(let e=0;e<t.length;++e)if(t[e].identifier===i)return t[e];return null}function Ss(t){return{Hc:t.Hc,Iv:{gr:t.zv.externalId},Lv:t.zv.cursorStyle}}function Cs(t,i,e){for(const s of t){const t=s.gt();if(null!==t&&t.wr){const n=t.wr(i,e);if(null!==n)return{Bv:s,Iv:n}}}return null}function xs(t,i){return e=>{var s,n,r,o;return(null!==(n=null===(s=e.Dt())||void 0===s?void 0:s.Pa())&&void 0!==n?n:"")!==i?[]:null!==(o=null===(r=e.da)||void 0===r?void 0:r.call(e,t))&&void 0!==o?o:[]}}function _s(t,i,e,s){if(!t.length)return;let n=0;const r=e/2,o=t[0].At(s,!0);let h=1===i?r-(t[0].Vi()-o/2):t[0].Vi()-o/2-r;h=Math.max(0,h);for(let r=1;r<t.length;r++){const o=t[r],l=t[r-1],a=l.At(s,!1),c=o.Vi(),u=l.Vi();if(1===i?c>u-a:c<u+a){const s=u-a*i;o.Oi(s);const r=s-i*a/2;if((1===i?r<0:r>e)&&h>0){const s=1===i?-1-r:r-e,o=Math.min(s,h);for(let e=n;e<t.length;e++)t[e].Oi(t[e].Vi()+i*o);h-=o}}else n=r,h=1===i?u-a-c:c-(u+a)}}class Es{constructor(t,e,s,n){this.Li=null,this.Ev=null,this.Nv=!1,this.Fv=new oi(200),this.Qr=null,this.Wv=0,this.jv=!1,this.Hv=()=>{this.jv||this.tn.$v().$t().Uh()},this.Uv=()=>{this.jv||this.tn.$v().$t().Uh()},this.tn=t,this.cn=e,this.ko=e.layout,this.Oc=s,this.qv="left"===n,this.Yv=xs("normal",n),this.Zv=xs("top",n),this.Xv=xs("bottom",n),this.Kv=document.createElement("div"),this.Kv.style.height="100%",this.Kv.style.overflow="hidden",this.Kv.style.width="25px",this.Kv.style.left="0",this.Kv.style.position="relative",this.Gv=cs(this.Kv,i({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const r=this.Gv.canvasElement;r.style.position="absolute",r.style.zIndex="1",r.style.left="0",r.style.top="0",this.Jv=cs(this.Kv,i({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const o=this.Jv.canvasElement;o.style.position="absolute",o.style.zIndex="2",o.style.left="0",o.style.top="0";const h={bv:this.Qv.bind(this),pv:this.Qv.bind(this),av:this.tp.bind(this),hv:this.tp.bind(this),wv:this.ip.bind(this),cv:this.np.bind(this),_v:this.np.bind(this),qf:this.sp.bind(this),jf:this.sp.bind(this),Qf:this.ep.bind(this),Pv:this.rp.bind(this)};this.hp=new ps(this.Jv.canvasElement,h,{ev:()=>!this.cn.handleScroll.vertTouchDrag,rv:()=>!0})}S(){this.hp.S(),this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose(),null!==this.Li&&this.Li.Ko().p(this),this.Li=null}lp(){return this.Kv}P(){return this.ko.fontSize}ap(){const t=this.Oc.W();return this.Qr!==t.R&&(this.Fv.nr(),this.Qr=t.R),t}op(){if(null===this.Li)return 0;let t=0;const i=this.ap(),e=x(this.Gv.canvasElement.getContext("2d"));e.save();const s=this.Li.Ha();e.font=this._p(),s.length>0&&(t=Math.max(this.Fv.xi(e,s[0].so),this.Fv.xi(e,s[s.length-1].so)));const n=this.up();for(let i=n.length;i--;){const s=this.Fv.xi(e,n[i].Kt());s>t&&(t=s)}const r=this.Li.Ct();if(null!==r&&null!==this.Ev&&2!==(o=this.cn.crosshair).mode&&o.horzLine.visible&&o.horzLine.labelVisible){const i=this.Li.pn(1,r),s=this.Li.pn(this.Ev.height-2,r);t=Math.max(t,this.Fv.xi(e,this.Li.Fi(Math.floor(Math.min(i,s))+.11111111111111,r)),this.Fv.xi(e,this.Li.Fi(Math.ceil(Math.max(i,s))-.11111111111111,r)))}var o;e.restore();const h=t||34;return rs(Math.ceil(i.C+i.T+i.A+i.I+5+h))}cp(t){null!==this.Ev&&e(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`)}dp(){return x(this.Ev).width}Gi(t){this.Li!==t&&(null!==this.Li&&this.Li.Ko().p(this),this.Li=t,t.Ko().l(this.fo.bind(this),this))}Dt(){return this.Li}nr(){const t=this.tn.fp();this.tn.$v().$t().E_(t,x(this.Dt()))}vp(t){if(null===this.Ev)return;if(1!==t){this.pp(),this.Gv.applySuggestedBitmapSize();const t=h(this.Gv);null!==t&&(t.useBitmapCoordinateSpace(t=>{this.mp(t),this.Ie(t)}),this.tn.bp(t,this.Xv),this.wp(t),this.tn.bp(t,this.Yv),this.gp(t))}this.Jv.applySuggestedBitmapSize();const i=h(this.Jv);null!==i&&(i.useBitmapCoordinateSpace(({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)}),this.Mp(i),this.tn.bp(i,this.Zv))}xp(){return this.Gv.bitmapSize}Sp(t,i,e){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,e)}bt(){var t;null===(t=this.Li)||void 0===t||t.Ha()}Qv(t){if(null===this.Li||this.Li.Ni()||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),e=this.tn.fp();this.Nv=!0,i.V_(e,this.Li,t.localY)}tp(t){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),e=this.tn.fp(),s=this.Li;i.O_(e,s,t.localY)}ip(){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const t=this.tn.$v().$t(),i=this.tn.fp(),e=this.Li;this.Nv&&(this.Nv=!1,t.B_(i,e))}np(t){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),e=this.tn.fp();this.Nv=!1,i.B_(e,this.Li)}sp(t){this.cn.handleScale.axisDoubleClickReset.price&&this.nr()}ep(t){null!==this.Li&&(!this.tn.$v().$t().W().handleScale.axisPressedMouseMove.price||this.Li.Mh()||this.Li.Oo()||this.kp(1))}rp(t){this.kp(0)}up(){const t=[],i=null===this.Li?void 0:this.Li;return(e=>{for(let s=0;s<e.length;++s){const n=e[s].Rn(this.tn.fp(),i);for(let i=0;i<n.length;i++)t.push(n[i])}})(this.tn.fp().Uo()),t}mp({context:t,bitmapSize:i}){const{width:e,height:s}=i,n=this.tn.fp().$t(),r=n.q(),o=n.bd();r===o?et(t,0,0,e,s,r):rt(t,0,0,e,s,r,o)}Ie({context:t,bitmapSize:i,horizontalPixelRatio:e}){if(null===this.Ev||null===this.Li||!this.Li.W().borderVisible)return;t.fillStyle=this.Li.W().borderColor;const s=Math.max(1,Math.floor(this.ap().C*e));let n;n=this.qv?i.width-s:0,t.fillRect(n,0,s,i.height)}wp(t){if(null===this.Ev||null===this.Li)return;const i=this.Li.Ha(),e=this.Li.W(),s=this.ap(),n=this.qv?this.Ev.width-s.T:0;e.borderVisible&&e.ticksVisible&&t.useBitmapCoordinateSpace(({context:t,horizontalPixelRatio:r,verticalPixelRatio:o})=>{t.fillStyle=e.borderColor;const h=Math.max(1,Math.floor(o)),l=Math.floor(.5*o),a=Math.round(s.T*r);t.beginPath();for(const e of i)t.rect(Math.floor(n*r),Math.round(e.Ea*o)-l,a,h);t.fill()}),t.useMediaCoordinateSpace(({context:t})=>{var r;t.font=this._p(),t.fillStyle=null!==(r=e.textColor)&&void 0!==r?r:this.ko.textColor,t.textAlign=this.qv?"right":"left",t.textBaseline="middle";const o=this.qv?Math.round(n-s.A):Math.round(n+s.T+s.A),h=i.map(i=>this.Fv.Mi(t,i.so));for(let e=i.length;e--;){const s=i[e];t.fillText(s.so,o,s.Ea+h[e])}})}pp(){if(null===this.Ev||null===this.Li)return;const t=[],i=this.Li.Uo().slice(),e=this.tn.fp(),s=this.ap();this.Li===e.pr()&&this.tn.fp().Uo().forEach(t=>{e.vr(t)&&i.push(t)});const n=this.Li;i.forEach(i=>{i.Rn(e,n).forEach(i=>{i.Oi(null),i.Bi()&&t.push(i)})}),t.forEach(t=>t.Oi(t.ki())),this.Li.W().alignLabels&&this.yp(t,s)}yp(t,i){if(null===this.Ev)return;const e=this.Ev.height/2,s=t.filter(t=>t.ki()<=e),n=t.filter(t=>t.ki()>e);s.sort((t,i)=>i.ki()-t.ki()),n.sort((t,i)=>t.ki()-i.ki());for(const e of t){const t=Math.floor(e.At(i)/2),s=e.ki();s>-t&&s<t&&e.Oi(t),s>this.Ev.height-t&&s<this.Ev.height+t&&e.Oi(this.Ev.height-t)}_s(s,1,this.Ev.height,i),_s(n,-1,this.Ev.height,i)}gp(t){if(null===this.Ev)return;const i=this.up(),e=this.ap(),s=this.qv?"right":"left";i.forEach(i=>{i.Ai()&&i.gt(x(this.Li)).X(t,e,this.Fv,s)})}Mp(t){if(null===this.Ev||null===this.Li)return;const i=this.tn.$v().$t(),e=[],s=this.tn.fp(),n=i.Zc().Rn(s,this.Li);n.length&&e.push(n);const r=this.ap(),o=this.qv?"right":"left";e.forEach(i=>{i.forEach(i=>{i.gt(x(this.Li)).X(t,r,this.Fv,o)})})}kp(t){this.Kv.style.cursor=1===t?"ns-resize":"default"}fo(){const t=this.op();this.Wv<t&&this.tn.$v().$t().Kl(),this.Wv=t}_p(){return H(this.ko.fontSize,this.ko.fontFamily)}}function Ms(t,i){var e,s;return null!==(s=null===(e=t.ua)||void 0===e?void 0:e.call(t,i))&&void 0!==s?s:[]}function zs(t,i){var e,s;return null!==(s=null===(e=t.Pn)||void 0===e?void 0:e.call(t,i))&&void 0!==s?s:[]}function Rs(t,i){var e,s;return null!==(s=null===(e=t.Ji)||void 0===e?void 0:e.call(t,i))&&void 0!==s?s:[]}function ks(t,i){var e,s;return null!==(s=null===(e=t.aa)||void 0===e?void 0:e.call(t,i))&&void 0!==s?s:[]}class Ts{constructor(t,e){this.Ev=i({width:0,height:0}),this.Cp=null,this.Tp=null,this.Pp=null,this.Rp=null,this.Dp=!1,this.Vp=new P,this.Op=new P,this.Bp=0,this.Ap=!1,this.Ip=null,this.zp=!1,this.Lp=null,this.Ep=null,this.jv=!1,this.Hv=()=>{this.jv||null===this.Np||this.$i().Uh()},this.Uv=()=>{this.jv||null===this.Np||this.$i().Uh()},this.Qd=t,this.Np=e,this.Np.W_().l(this.Fp.bind(this),this,!0),this.Wp=document.createElement("td"),this.Wp.style.padding="0",this.Wp.style.position="relative";const s=document.createElement("div");s.style.width="100%",s.style.height="100%",s.style.position="relative",s.style.overflow="hidden",this.jp=document.createElement("td"),this.jp.style.padding="0",this.Hp=document.createElement("td"),this.Hp.style.padding="0",this.Wp.appendChild(s),this.Gv=cs(s,i({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const n=this.Gv.canvasElement;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.Jv=cs(s,i({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const r=this.Jv.canvasElement;r.style.position="absolute",r.style.zIndex="2",r.style.left="0",r.style.top="0",this.$p=document.createElement("tr"),this.$p.appendChild(this.jp),this.$p.appendChild(this.Wp),this.$p.appendChild(this.Hp),this.Up(),this.hp=new ps(this.Jv.canvasElement,this,{ev:()=>null===this.Ip&&!this.Qd.W().handleScroll.vertTouchDrag,rv:()=>null===this.Ip&&!this.Qd.W().handleScroll.horzTouchDrag})}S(){null!==this.Cp&&this.Cp.S(),null!==this.Tp&&this.Tp.S(),this.Pp=null,this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose(),null!==this.Np&&this.Np.W_().p(this),this.hp.S()}fp(){return x(this.Np)}qp(t){var i,e;null!==this.Np&&this.Np.W_().p(this),this.Np=t,null!==this.Np&&this.Np.W_().l(Ts.prototype.Fp.bind(this),this,!0),this.Up(),this.Qd.Yp().indexOf(this)===this.Qd.Yp().length-1?(this.Pp=null!==(i=this.Pp)&&void 0!==i?i:new as(this.Wp,this.Qd),this.Pp.bt()):(null===(e=this.Pp)||void 0===e||e.if(),this.Pp=null)}$v(){return this.Qd}lp(){return this.$p}Up(){if(null!==this.Np&&(this.Zp(),0!==this.$i().wt().length)){if(null!==this.Cp){const t=this.Np.R_();this.Cp.Gi(x(t))}if(null!==this.Tp){const t=this.Np.D_();this.Tp.Gi(x(t))}}}Xp(){null!==this.Cp&&this.Cp.bt(),null!==this.Tp&&this.Tp.bt()}M_(){return null!==this.Np?this.Np.M_():0}x_(t){this.Np&&this.Np.x_(t)}Qf(t){if(!this.Np)return;this.Kp();const i=t.localX,e=t.localY;this.Gp(i,e,t)}bv(t){this.Kp(),this.Jp(),this.Gp(t.localX,t.localY,t)}tv(t){var i;if(!this.Np)return;this.Kp();const e=t.localX,s=t.localY;this.Gp(e,s,t);const n=this.wr(e,s);this.Qd.Qp(null!==(i=null==n?void 0:n.Lv)&&void 0!==i?i:null),this.$i().jc(n&&{Hc:n.Hc,Iv:n.Iv})}dv(t){null!==this.Np&&(this.Kp(),this.tm(t))}qf(t){null!==this.Np&&this.im(this.Op,t)}jf(t){this.qf(t)}av(t){this.Kp(),this.nm(t),this.Gp(t.localX,t.localY,t)}cv(t){null!==this.Np&&(this.Kp(),this.Ap=!1,this.sm(t))}uv(t){null!==this.Np&&this.tm(t)}Rv(t){if(this.Ap=!0,null===this.Ip){const i={x:t.localX,y:t.localY};this.rm(i,i,t)}}Pv(t){null!==this.Np&&(this.Kp(),this.Np.$t().jc(null),this.hm())}lm(){return this.Vp}am(){return this.Op}xv(){this.Bp=1,this.$i().Un()}Sv(t,i){if(!this.Qd.W().handleScale.pinch)return;const e=5*(i-this.Bp);this.Bp=i,this.$i().Qc(t.nt,e)}pv(t){this.Ap=!1,this.zp=null!==this.Ip,this.Jp();const i=this.$i().Zc();null!==this.Ip&&i.yt()&&(this.Lp={x:i.Yt(),y:i.Zt()},this.Ip={x:t.localX,y:t.localY})}hv(t){if(null===this.Np)return;const i=t.localX,e=t.localY;if(null===this.Ip)this.nm(t);else{this.zp=!1;const s=x(this.Lp),n=s.x+(i-this.Ip.x),r=s.y+(e-this.Ip.y);this.Gp(n,r,t)}}_v(t){0===this.$v().W().trackingMode.exitMode&&(this.zp=!0),this.om(),this.sm(t)}wr(t,i){const e=this.Np;return null===e?null:function(t,i,e){const s=t.Uo(),n=function(t,i,e){var s,n;let r,o;for(const a of t){const t=null!==(n=null===(s=a.va)||void 0===s?void 0:s.call(a,i,e))&&void 0!==n?n:[];for(const i of t)h=i.zOrder,(!(l=null==r?void 0:r.zOrder)||"top"===h&&"top"!==l||"normal"===h&&"bottom"===l)&&(r=i,o=a)}var h,l;return r&&o?{zv:r,Hc:o}:null}(s,i,e);if("top"===(null==n?void 0:n.zv.zOrder))return Ss(n);for(const r of s){if(n&&n.Hc===r&&"bottom"!==n.zv.zOrder&&!n.zv.isBackground)return Ss(n);const s=Cs(r.Pn(t),i,e);if(null!==s)return{Hc:r,Bv:s.Bv,Iv:s.Iv};if(n&&n.Hc===r&&"bottom"!==n.zv.zOrder&&n.zv.isBackground)return Ss(n)}return(null==n?void 0:n.zv)?Ss(n):null}(e,t,i)}_m(t,e){x("left"===e?this.Cp:this.Tp).cp(i({width:t,height:this.Ev.height}))}um(){return this.Ev}cp(t){e(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Wp.style.width=t.width+"px",this.Wp.style.height=t.height+"px")}dm(){const t=x(this.Np);t.P_(t.R_()),t.P_(t.D_());for(const i of t.Ba())if(t.vr(i)){const e=i.Dt();null!==e&&t.P_(e),i.Vn()}}xp(){return this.Gv.bitmapSize}Sp(t,i,e){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,e)}vp(t){if(0===t)return;if(null===this.Np)return;if(t>1&&this.dm(),null!==this.Cp&&this.Cp.vp(t),null!==this.Tp&&this.Tp.vp(t),1!==t){this.Gv.applySuggestedBitmapSize();const t=h(this.Gv);null!==t&&(t.useBitmapCoordinateSpace(t=>{this.mp(t)}),this.Np&&(this.fm(t,Ms),this.vm(t),this.pm(t),this.fm(t,zs),this.fm(t,Rs)))}this.Jv.applySuggestedBitmapSize();const i=h(this.Jv);null!==i&&(i.useBitmapCoordinateSpace(({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)}),this.bm(i),this.fm(i,ks))}wm(){return this.Cp}gm(){return this.Tp}bp(t,i){this.fm(t,i)}Fp(){null!==this.Np&&this.Np.W_().p(this),this.Np=null}tm(t){this.im(this.Vp,t)}im(t,i){const e=i.localX,s=i.localY;t.M()&&t.m(this.$i().St().Nu(e),{x:e,y:s},i)}mp({context:t,bitmapSize:i}){const{width:e,height:s}=i,n=this.$i(),r=n.q(),o=n.bd();r===o?et(t,0,0,e,s,o):rt(t,0,0,e,s,r,o)}vm(t){const i=x(this.Np).j_().qh().gt();null!==i&&i.X(t,!1)}pm(t){const i=this.$i().Yc();this.Mm(t,zs,ds,i),this.Mm(t,zs,fs,i)}bm(t){this.Mm(t,zs,fs,this.$i().Zc())}fm(t,i){const e=x(this.Np).Uo();for(const s of e)this.Mm(t,i,ds,s);for(const s of e)this.Mm(t,i,fs,s)}Mm(t,i,e,s){const n=x(this.Np),r=n.$t().Wc(),o=null!==r&&r.Hc===s,h=null!==r&&o&&void 0!==r.Iv?r.Iv.Mr:void 0;ms(i,i=>e(i,t,o,h),s,n)}Zp(){if(null===this.Np)return;const t=this.Qd,i=this.Np.R_().W().visible,e=this.Np.D_().W().visible;i||null===this.Cp||(this.jp.removeChild(this.Cp.lp()),this.Cp.S(),this.Cp=null),e||null===this.Tp||(this.Hp.removeChild(this.Tp.lp()),this.Tp.S(),this.Tp=null);const s=t.$t().ud();i&&null===this.Cp&&(this.Cp=new Es(this,t.W(),s,"left"),this.jp.appendChild(this.Cp.lp())),e&&null===this.Tp&&(this.Tp=new Es(this,t.W(),s,"right"),this.Hp.appendChild(this.Tp.lp()))}xm(t){return t.Dv&&this.Ap||null!==this.Ip}Sm(t){return Math.max(0,Math.min(t,this.Ev.width-1))}km(t){return Math.max(0,Math.min(t,this.Ev.height-1))}Gp(t,i,e){this.$i().ld(this.Sm(t),this.km(i),e,x(this.Np))}hm(){this.$i().od()}om(){this.zp&&(this.Ip=null,this.hm())}rm(t,i,e){this.Ip=t,this.zp=!1,this.Gp(i.x,i.y,e);const s=this.$i().Zc();this.Lp={x:s.Yt(),y:s.Zt()}}$i(){return this.Qd.$t()}sm(t){if(!this.Dp)return;const i=this.$i(),e=this.fp();if(i.z_(e,e.vn()),this.Rp=null,this.Dp=!1,i.ed(),null!==this.Ep){const t=performance.now(),e=i.St();this.Ep.Vr(e.Hu(),t),this.Ep.Qu(t)||i.Zn(this.Ep)}}Kp(){this.Ip=null}Jp(){if(this.Np){if(this.$i().Un(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)x(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Np.vn().Ni()&&this.$i().St().Ni()}}nm(t){if(null===this.Np)return;const i=this.$i(),e=i.St();if(e.Ni())return;const s=this.Qd.W(),n=s.handleScroll,r=s.kineticScroll;if((!n.pressedMouseMove||t.Dv)&&(!n.horzTouchDrag&&!n.vertTouchDrag||!t.Dv))return;const o=this.Np.vn(),h=performance.now();if(null!==this.Rp||this.xm(t)||(this.Rp={x:t.clientX,y:t.clientY,Od:h,ym:t.localX,Cm:t.localY}),null!==this.Rp&&!this.Dp&&(this.Rp.x!==t.clientX||this.Rp.y!==t.clientY)){if(t.Dv&&r.touch||!t.Dv&&r.mouse){const t=e.le();this.Ep=new ls(.2/t,7/t,.997,15/t),this.Ep.Yd(e.Hu(),this.Rp.Od)}else this.Ep=null;o.Ni()||i.A_(this.Np,o,t.localY),i.nd(t.localX),this.Dp=!0}this.Dp&&(o.Ni()||i.I_(this.Np,o,t.localY),i.sd(t.localX),null!==this.Ep&&this.Ep.Yd(e.Hu(),h))}}class Ls{constructor(t,e,s,n,r){this.ft=!0,this.Ev=i({width:0,height:0}),this.Hv=()=>this.vp(3),this.qv="left"===t,this.Oc=s.ud,this.cn=e,this.Tm=n,this.Pm=r,this.Kv=document.createElement("div"),this.Kv.style.width="25px",this.Kv.style.height="100%",this.Kv.style.overflow="hidden",this.Gv=cs(this.Kv,i({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv)}S(){this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose()}lp(){return this.Kv}um(){return this.Ev}cp(t){e(this.Ev,t)||(this.Ev=t,this.Gv.resizeCanvasElement(t),this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`,this.ft=!0)}vp(t){if(t<3&&!this.ft)return;if(0===this.Ev.width||0===this.Ev.height)return;this.ft=!1,this.Gv.applySuggestedBitmapSize();const i=h(this.Gv);null!==i&&i.useBitmapCoordinateSpace(t=>{this.mp(t),this.Ie(t)})}xp(){return this.Gv.bitmapSize}Sp(t,i,e){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,e)}Ie({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:s}){if(!this.Tm())return;t.fillStyle=this.cn.timeScale.borderColor;const n=Math.floor(this.Oc.W().C*e),r=Math.floor(this.Oc.W().C*s),o=this.qv?i.width-n:0;t.fillRect(o,0,n,r)}mp({context:t,bitmapSize:i}){et(t,0,0,i.width,i.height,this.Pm())}}function Os(t){return i=>{var e,s;return null!==(s=null===(e=i.fa)||void 0===e?void 0:e.call(i,t))&&void 0!==s?s:[]}}const Ns=Os("normal"),$s=Os("top"),Ps=Os("bottom");class Vs{constructor(t,e){this.Rm=null,this.Dm=null,this.k=null,this.Vm=!1,this.Ev=i({width:0,height:0}),this.Om=new P,this.Fv=new oi(5),this.jv=!1,this.Hv=()=>{this.jv||this.Qd.$t().Uh()},this.Uv=()=>{this.jv||this.Qd.$t().Uh()},this.Qd=t,this.q_=e,this.cn=t.W().layout,this.Xd=document.createElement("tr"),this.Bm=document.createElement("td"),this.Bm.style.padding="0",this.Am=document.createElement("td"),this.Am.style.padding="0",this.Kv=document.createElement("td"),this.Kv.style.height="25px",this.Kv.style.padding="0",this.Im=document.createElement("div"),this.Im.style.width="100%",this.Im.style.height="100%",this.Im.style.position="relative",this.Im.style.overflow="hidden",this.Kv.appendChild(this.Im),this.Gv=cs(this.Im,i({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const s=this.Gv.canvasElement;s.style.position="absolute",s.style.zIndex="1",s.style.left="0",s.style.top="0",this.Jv=cs(this.Im,i({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const n=this.Jv.canvasElement;n.style.position="absolute",n.style.zIndex="2",n.style.left="0",n.style.top="0",this.Xd.appendChild(this.Bm),this.Xd.appendChild(this.Kv),this.Xd.appendChild(this.Am),this.zm(),this.Qd.$t().g_().l(this.zm.bind(this),this),this.hp=new ps(this.Jv.canvasElement,this,{ev:()=>!0,rv:()=>!this.Qd.W().handleScroll.horzTouchDrag})}S(){this.hp.S(),null!==this.Rm&&this.Rm.S(),null!==this.Dm&&this.Dm.S(),this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose()}lp(){return this.Xd}Lm(){return this.Rm}Em(){return this.Dm}bv(t){if(this.Vm)return;this.Vm=!0;const i=this.Qd.$t();!i.St().Ni()&&this.Qd.W().handleScale.axisPressedMouseMove.time&&i.Jc(t.localX)}pv(t){this.bv(t)}wv(){const t=this.Qd.$t();!t.St().Ni()&&this.Vm&&(this.Vm=!1,this.Qd.W().handleScale.axisPressedMouseMove.time&&t.hd())}av(t){const i=this.Qd.$t();!i.St().Ni()&&this.Qd.W().handleScale.axisPressedMouseMove.time&&i.rd(t.localX)}hv(t){this.av(t)}cv(){this.Vm=!1;const t=this.Qd.$t();t.St().Ni()&&!this.Qd.W().handleScale.axisPressedMouseMove.time||t.hd()}_v(){this.cv()}qf(){this.Qd.W().handleScale.axisDoubleClickReset.time&&this.Qd.$t().Kn()}jf(){this.qf()}Qf(){this.Qd.$t().W().handleScale.axisPressedMouseMove.time&&this.kp(1)}Pv(){this.kp(0)}um(){return this.Ev}Nm(){return this.Om}Fm(t,s,n){e(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`,this.Om.m(t)),null!==this.Rm&&this.Rm.cp(i({width:s,height:t.height})),null!==this.Dm&&this.Dm.cp(i({width:n,height:t.height}))}Wm(){const t=this.jm();return Math.ceil(t.C+t.T+t.P+t.L+t.B+t.Hm)}bt(){this.Qd.$t().St().Ha()}xp(){return this.Gv.bitmapSize}Sp(t,i,e){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,e)}vp(t){if(0===t)return;if(1!==t){this.Gv.applySuggestedBitmapSize();const i=h(this.Gv);null!==i&&(i.useBitmapCoordinateSpace(t=>{this.mp(t),this.Ie(t),this.$m(i,Ps)}),this.wp(i),this.$m(i,Ns)),null!==this.Rm&&this.Rm.vp(t),null!==this.Dm&&this.Dm.vp(t)}this.Jv.applySuggestedBitmapSize();const i=h(this.Jv);null!==i&&(i.useBitmapCoordinateSpace(({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)}),this.Um([...this.Qd.$t().wt(),this.Qd.$t().Zc()],i),this.$m(i,$s))}$m(t,i){const e=this.Qd.$t().wt();for(const s of e)ms(i,i=>ds(i,t,!1,void 0),s,void 0);for(const s of e)ms(i,i=>fs(i,t,!1,void 0),s,void 0)}mp({context:t,bitmapSize:i}){et(t,0,0,i.width,i.height,this.Qd.$t().bd())}Ie({context:t,bitmapSize:i,verticalPixelRatio:e}){if(this.Qd.W().timeScale.borderVisible){t.fillStyle=this.qm();const s=Math.max(1,Math.floor(this.jm().C*e));t.fillRect(0,0,i.width,s)}}wp(t){const i=this.Qd.$t().St(),e=i.Ha();if(!e||0===e.length)return;const s=this.q_.maxTickMarkWeight(e),n=this.jm(),r=i.W();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace(({context:t,horizontalPixelRatio:i,verticalPixelRatio:s})=>{t.strokeStyle=this.qm(),t.fillStyle=this.qm();const r=Math.max(1,Math.floor(i)),o=Math.floor(.5*i);t.beginPath();const h=Math.round(n.T*s);for(let s=e.length;s--;){const n=Math.round(e[s].coord*i);t.rect(n-o,0,r,h)}t.fill()}),t.useMediaCoordinateSpace(({context:t})=>{const i=n.C+n.T+n.L+n.P/2;t.textAlign="center",t.textBaseline="middle",t.fillStyle=this.$(),t.font=this._p();for(const n of e)if(n.weight<s){const e=n.needAlignCoordinate?this.Ym(t,n.coord,n.label):n.coord;t.fillText(n.label,e,i)}this.Qd.W().timeScale.allowBoldLabels&&(t.font=this.Zm());for(const n of e)if(n.weight>=s){const e=n.needAlignCoordinate?this.Ym(t,n.coord,n.label):n.coord;t.fillText(n.label,e,i)}})}Ym(t,i,e){const s=this.Fv.xi(t,e),n=s/2,r=Math.floor(i-n)+.5;return r<0?i+=Math.abs(0-r):r+s>this.Ev.width&&(i-=Math.abs(this.Ev.width-(r+s))),i}Um(t,i){const e=this.jm();for(const s of t)for(const t of s.Qi())t.gt().X(i,e)}qm(){return this.Qd.W().timeScale.borderColor}$(){return this.cn.textColor}j(){return this.cn.fontSize}_p(){return H(this.j(),this.cn.fontFamily)}Zm(){return H(this.j(),this.cn.fontFamily,"bold")}jm(){null===this.k&&(this.k={C:1,N:NaN,L:NaN,B:NaN,ji:NaN,T:5,P:NaN,R:"",Wi:new oi,Hm:0});const t=this.k,i=this._p();if(t.R!==i){const e=this.j();t.P=e,t.R=i,t.L=3*e/12,t.B=3*e/12,t.ji=9*e/12,t.N=0,t.Hm=4*e/12,t.Wi.nr()}return this.k}kp(t){this.Kv.style.cursor=1===t?"ew-resize":"default"}zm(){const t=this.Qd.$t(),i=t.W();i.leftPriceScale.visible||null===this.Rm||(this.Bm.removeChild(this.Rm.lp()),this.Rm.S(),this.Rm=null),i.rightPriceScale.visible||null===this.Dm||(this.Am.removeChild(this.Dm.lp()),this.Dm.S(),this.Dm=null);const e={ud:this.Qd.$t().ud()},s=()=>i.leftPriceScale.borderVisible&&t.St().W().borderVisible,n=()=>t.bd();i.leftPriceScale.visible&&null===this.Rm&&(this.Rm=new Ls("left",i,e,s,n),this.Bm.appendChild(this.Rm.lp())),i.rightPriceScale.visible&&null===this.Dm&&(this.Dm=new Ls("right",i,e,s,n),this.Am.appendChild(this.Dm.lp()))}}const Ds=!!es&&!!navigator.userAgentData&&navigator.userAgentData.brands.some(t=>t.brand.includes("Chromium"))&&!!es&&((null===(As=null===navigator||void 0===navigator?void 0:navigator.userAgentData)||void 0===As?void 0:As.platform)?"Windows"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf("win")>=0);var As;class Bs{constructor(t,i,e){var s;this.Xm=[],this.Km=0,this.ho=0,this.__=0,this.Gm=0,this.Jm=0,this.Qm=null,this.tb=!1,this.Vp=new P,this.Op=new P,this.Rc=new P,this.ib=null,this.nb=null,this.Jd=t,this.cn=i,this.q_=e,this.Xd=document.createElement("div"),this.Xd.classList.add("tv-lightweight-charts"),this.Xd.style.overflow="hidden",this.Xd.style.direction="ltr",this.Xd.style.width="100%",this.Xd.style.height="100%",(s=this.Xd).style.userSelect="none",s.style.webkitUserSelect="none",s.style.msUserSelect="none",s.style.MozUserSelect="none",s.style.webkitTapHighlightColor="transparent",this.sb=document.createElement("table"),this.sb.setAttribute("cellspacing","0"),this.Xd.appendChild(this.sb),this.eb=this.rb.bind(this),Fs(this.cn)&&this.hb(!0),this.$i=new Be(this.Vc.bind(this),this.cn,e),this.$t().Xc().l(this.lb.bind(this),this),this.ab=new Vs(this,this.q_),this.sb.appendChild(this.ab.lp());const n=i.autoSize&&this.ob();let r=this.cn.width,o=this.cn.height;if(n||0===r||0===o){const i=t.getBoundingClientRect();r=r||i.width,o=o||i.height}this._b(r,o),this.ub(),t.appendChild(this.Xd),this.cb(),this.$i.St().ec().l(this.$i.Kl.bind(this.$i),this),this.$i.g_().l(this.$i.Kl.bind(this.$i),this)}$t(){return this.$i}W(){return this.cn}Yp(){return this.Xm}fb(){return this.ab}S(){this.hb(!1),0!==this.Km&&window.cancelAnimationFrame(this.Km),this.$i.Xc().p(this),this.$i.St().ec().p(this),this.$i.g_().p(this),this.$i.S();for(const t of this.Xm)this.sb.removeChild(t.lp()),t.lm().p(this),t.am().p(this),t.S();this.Xm=[],x(this.ab).S(),null!==this.Xd.parentElement&&this.Xd.parentElement.removeChild(this.Xd),this.Rc.S(),this.Vp.S(),this.Op.S(),this.pb()}_b(t,e,s=!1){if(this.ho===e&&this.__===t)return;const n=function(t){const e=Math.floor(t.width),s=Math.floor(t.height);return i({width:e-e%2,height:s-s%2})}(i({width:t,height:e}));this.ho=n.height,this.__=n.width;const r=this.ho+"px",o=this.__+"px";x(this.Xd).style.height=r,x(this.Xd).style.width=o,this.sb.style.height=r,this.sb.style.width=o,s?this.mb(gt.es(),performance.now()):this.$i.Kl()}vp(t){void 0===t&&(t=gt.es());for(let i=0;i<this.Xm.length;i++)this.Xm[i].vp(t.Hn(i).Fn);this.cn.timeScale.visible&&this.ab.vp(t.jn())}$h(t){const i=Fs(this.cn);this.$i.$h(t);const e=Fs(this.cn);e!==i&&this.hb(e),this.cb(),this.bb(t)}lm(){return this.Vp}am(){return this.Op}Xc(){return this.Rc}wb(){null!==this.Qm&&(this.mb(this.Qm,performance.now()),this.Qm=null);const t=this.gb(null),i=document.createElement("canvas");i.width=t.width,i.height=t.height;const e=x(i.getContext("2d"));return this.gb(e),i}Mb(t){return("left"!==t||this.xb())&&("right"!==t||this.Sb())?0===this.Xm.length?0:x("left"===t?this.Xm[0].wm():this.Xm[0].gm()).dp():0}kb(){return this.cn.autoSize&&null!==this.ib}yb(){return this.Xd}Qp(t){this.nb=t,this.nb?this.yb().style.setProperty("cursor",t):this.yb().style.removeProperty("cursor")}Cb(){return this.nb}Tb(){return C(this.Xm[0]).um()}bb(t){(void 0!==t.autoSize||!this.ib||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.ib&&this.ob(),!1===t.autoSize&&null!==this.ib&&this.pb(),t.autoSize||void 0===t.width&&void 0===t.height||this._b(t.width||this.__,t.height||this.ho))}gb(t){let e=0,s=0;const n=this.Xm[0],r=(i,e)=>{let s=0;for(let n=0;n<this.Xm.length;n++){const r=this.Xm[n],o=x("left"===i?r.wm():r.gm()),h=o.xp();null!==t&&o.Sp(t,e,s),s+=h.height}};this.xb()&&(r("left",0),e+=x(n.wm()).xp().width);for(let i=0;i<this.Xm.length;i++){const n=this.Xm[i],r=n.xp();null!==t&&n.Sp(t,e,s),s+=r.height}e+=n.xp().width,this.Sb()&&(r("right",e),e+=x(n.gm()).xp().width);const o=(i,e,s)=>{x("left"===i?this.ab.Lm():this.ab.Em()).Sp(x(t),e,s)};if(this.cn.timeScale.visible){const i=this.ab.xp();if(null!==t){let e=0;this.xb()&&(o("left",e,s),e=x(n.wm()).xp().width),this.ab.Sp(t,e,s),e+=i.width,this.Sb()&&o("right",e,s)}s+=i.height}return i({width:e,height:s})}Pb(){let t=0,e=0,s=0;for(const i of this.Xm)this.xb()&&(e=Math.max(e,x(i.wm()).op(),this.cn.leftPriceScale.minimumWidth)),this.Sb()&&(s=Math.max(s,x(i.gm()).op(),this.cn.rightPriceScale.minimumWidth)),t+=i.M_();e=rs(e),s=rs(s);const n=this.__,r=this.ho,o=Math.max(n-e-s,0),h=this.cn.timeScale.visible;let l=h?Math.max(this.ab.Wm(),this.cn.timeScale.minimumHeight):0;var a;l=(a=l)+a%2;const c=0+l,u=r<c?0:r-c,d=u/t;let f=0;for(let t=0;t<this.Xm.length;++t){const n=this.Xm[t];n.qp(this.$i.qc()[t]);let r=0,h=0;h=t===this.Xm.length-1?u-f:Math.round(n.M_()*d),r=Math.max(h,2),f+=r,n.cp(i({width:o,height:r})),this.xb()&&n._m(e,"left"),this.Sb()&&n._m(s,"right"),n.fp()&&this.$i.Kc(n.fp(),r)}this.ab.Fm(i({width:h?o:0,height:l}),h?e:0,h?s:0),this.$i.S_(o),this.Gm!==e&&(this.Gm=e),this.Jm!==s&&(this.Jm=s)}hb(t){t?this.Xd.addEventListener("wheel",this.eb,{passive:!1}):this.Xd.removeEventListener("wheel",this.eb)}Rb(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return Ds?1/window.devicePixelRatio:1}rb(t){if(!(0!==t.deltaX&&this.cn.handleScroll.mouseWheel||0!==t.deltaY&&this.cn.handleScale.mouseWheel))return;const i=this.Rb(t),e=i*t.deltaX/100,s=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),0!==s&&this.cn.handleScale.mouseWheel){const i=Math.sign(s)*Math.min(1,Math.abs(s)),e=t.clientX-this.Xd.getBoundingClientRect().left;this.$t().Qc(e,i)}0!==e&&this.cn.handleScroll.mouseWheel&&this.$t().td(-80*e)}mb(t,i){var e;const s=t.jn();3===s&&this.Db(),3!==s&&2!==s||(this.Vb(t),this.Ob(t,i),this.ab.bt(),this.Xm.forEach(t=>{t.Xp()}),3===(null===(e=this.Qm)||void 0===e?void 0:e.jn())&&(this.Qm.ts(t),this.Db(),this.Vb(this.Qm),this.Ob(this.Qm,i),t=this.Qm,this.Qm=null)),this.vp(t)}Ob(t,i){for(const e of t.Qn())this.ns(e,i)}Vb(t){const i=this.$i.qc();for(let e=0;e<i.length;e++)t.Hn(e).Wn&&i[e].N_()}ns(t,i){const e=this.$i.St();switch(t.qn){case 0:e.hc();break;case 1:e.lc(t.Vt);break;case 2:e.Gn(t.Vt);break;case 3:e.Jn(t.Vt);break;case 4:e.qu();break;case 5:t.Vt.Qu(i)||e.Jn(t.Vt.tc(i))}}Vc(t){null!==this.Qm?this.Qm.ts(t):this.Qm=t,this.tb||(this.tb=!0,this.Km=window.requestAnimationFrame(t=>{if(this.tb=!1,this.Km=0,null!==this.Qm){const i=this.Qm;this.Qm=null,this.mb(i,t);for(const e of i.Qn())if(5===e.qn&&!e.Vt.Qu(t)){this.$t().Zn(e.Vt);break}}}))}Db(){this.ub()}ub(){const t=this.$i.qc(),i=t.length,e=this.Xm.length;for(let t=i;t<e;t++){const t=C(this.Xm.pop());this.sb.removeChild(t.lp()),t.lm().p(this),t.am().p(this),t.S()}for(let s=e;s<i;s++){const i=new Ts(this,t[s]);i.lm().l(this.Bb.bind(this),this),i.am().l(this.Ab.bind(this),this),this.Xm.push(i),this.sb.insertBefore(i.lp(),this.ab.lp())}for(let e=0;e<i;e++){const i=t[e],s=this.Xm[e];s.fp()!==i?s.qp(i):s.Up()}this.cb(),this.Pb()}Ib(t,i,e){var s;const n=new Map;let r;if(null!==t&&this.$i.wt().forEach(i=>{const e=i.In().ll(t);null!==e&&n.set(i,e)}),null!==t){const i=null===(s=this.$i.St().Ui(t))||void 0===s?void 0:s.originalTime;void 0!==i&&(r=i)}const o=this.$t().Wc(),h=null!==o&&o.Hc instanceof te?o.Hc:void 0,l=null!==o&&void 0!==o.Iv?o.Iv.gr:void 0;return{zb:r,ee:null!=t?t:void 0,Lb:null!=i?i:void 0,Eb:h,Nb:n,Fb:l,Wb:null!=e?e:void 0}}Bb(t,i,e){this.Vp.m(()=>this.Ib(t,i,e))}Ab(t,i,e){this.Op.m(()=>this.Ib(t,i,e))}lb(t,i,e){this.Rc.m(()=>this.Ib(t,i,e))}cb(){const t=this.cn.timeScale.visible?"":"none";this.ab.lp().style.display=t}xb(){return this.Xm[0].fp().R_().W().visible}Sb(){return this.Xm[0].fp().D_().W().visible}ob(){return"ResizeObserver"in window&&(this.ib=new ResizeObserver(t=>{const i=t.find(t=>t.target===this.Jd);i&&this._b(i.contentRect.width,i.contentRect.height)}),this.ib.observe(this.Jd,{box:"border-box"}),!0)}pb(){null!==this.ib&&this.ib.disconnect(),this.ib=null}}function Fs(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function Ws(t,i){var e={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&i.indexOf(s)<0&&(e[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)i.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(e[s[n]]=t[s[n]])}return e}function js(t,i,e,s){const n=e.value,r={ee:i,ot:t,Vt:[n,n,n,n],zb:s};return void 0!==e.color&&(r.V=e.color),r}function Is(t,i,e,s){const n=e.value,r={ee:i,ot:t,Vt:[n,n,n,n],zb:s};return void 0!==e.lineColor&&(r.lt=e.lineColor),void 0!==e.topColor&&(r.Ps=e.topColor),void 0!==e.bottomColor&&(r.Rs=e.bottomColor),r}function Us(t,i,e,s){const n=e.value,r={ee:i,ot:t,Vt:[n,n,n,n],zb:s};return void 0!==e.topLineColor&&(r.Re=e.topLineColor),void 0!==e.bottomLineColor&&(r.De=e.bottomLineColor),void 0!==e.topFillColor1&&(r.ke=e.topFillColor1),void 0!==e.topFillColor2&&(r.ye=e.topFillColor2),void 0!==e.bottomFillColor1&&(r.Ce=e.bottomFillColor1),void 0!==e.bottomFillColor2&&(r.Te=e.bottomFillColor2),r}function Hs(t,i,e,s){const n={ee:i,ot:t,Vt:[e.open,e.high,e.low,e.close],zb:s};return void 0!==e.color&&(n.V=e.color),n}function Ks(t,i,e,s){const n={ee:i,ot:t,Vt:[e.open,e.high,e.low,e.close],zb:s};return void 0!==e.color&&(n.V=e.color),void 0!==e.borderColor&&(n.Ot=e.borderColor),void 0!==e.wickColor&&(n.Xh=e.wickColor),n}function qs(t,i,e,s,n){const r=C(n)(e),o=Math.max(...r),h=Math.min(...r),l=r[r.length-1],a=[l,o,h,l],c=e,{time:u,color:d}=c;return{ee:i,ot:t,Vt:a,zb:s,$e:Ws(c,["time","color"]),V:d}}function Xs(t){return void 0!==t.Vt}function Js(t,i){return void 0!==i.customValues&&(t.jb=i.customValues),t}function Gs(t){return(i,e,s,n,r,o)=>function(t,i){return i?i(t):void 0===(e=t).open&&void 0===e.value;var e}(s,o)?Js({ot:i,ee:e,zb:n},s):Js(t(i,e,s,n,r),s)}function Qs(t){return{Candlestick:Gs(Ks),Bar:Gs(Hs),Area:Gs(Is),Baseline:Gs(Us),Histogram:Gs(js),Line:Gs(js),Custom:Gs(qs)}[t]}function Ys(t){return{ee:0,Hb:new Map,la:t}}function Zs(t,i){if(void 0!==t&&0!==t.length)return{$b:i.key(t[0].ot),Ub:i.key(t[t.length-1].ot)}}function tn(t){let i;return t.forEach(t=>{void 0===i&&(i=t.zb)}),C(i)}class en{constructor(t){this.qb=new Map,this.Yb=new Map,this.Zb=new Map,this.Xb=[],this.q_=t}S(){this.qb.clear(),this.Yb.clear(),this.Zb.clear(),this.Xb=[]}Kb(t,i){let e=0!==this.qb.size,s=!1;const n=this.Yb.get(t);if(void 0!==n)if(1===this.Yb.size)e=!1,s=!0,this.qb.clear();else for(const i of this.Xb)i.pointData.Hb.delete(t)&&(s=!0);let r=[];if(0!==i.length){const e=i.map(t=>t.time),n=this.q_.createConverterToInternalObj(i),o=Qs(t.Qh()),h=t.Ca(),l=t.Ta();r=i.map((i,r)=>{const a=n(i.time),c=this.q_.key(a);let u=this.qb.get(c);void 0===u&&(u=Ys(a),this.qb.set(c,u),s=!0);const d=o(a,u.ee,i,e[r],h,l);return u.Hb.set(t,d),d})}e&&this.Gb(),this.Jb(t,r);let o=-1;if(s){const t=[];this.qb.forEach(i=>{t.push({timeWeight:0,time:i.la,pointData:i,originalTime:tn(i.Hb)})}),t.sort((t,i)=>this.q_.key(t.time)-this.q_.key(i.time)),o=this.Qb(t)}return this.tw(t,o,function(t,i,e){const s=Zs(t,e),n=Zs(i,e);if(void 0!==s&&void 0!==n)return{ta:s.Ub>=n.Ub&&s.$b>=n.$b}}(this.Yb.get(t),n,this.q_))}vd(t){return this.Kb(t,[])}iw(t,i){const e=i;!function(t){void 0===t.zb&&(t.zb=t.time)}(e),this.q_.preprocessData(i);const s=this.q_.createConverterToInternalObj([i])(i.time),n=this.Zb.get(t);if(void 0!==n&&this.q_.key(s)<this.q_.key(n))throw new Error(`Cannot update oldest data, last time=${n}, new time=${s}`);let r=this.qb.get(this.q_.key(s));const o=void 0===r;void 0===r&&(r=Ys(s),this.qb.set(this.q_.key(s),r));const h=Qs(t.Qh()),l=t.Ca(),a=t.Ta(),c=h(s,r.ee,i,e.zb,l,a);r.Hb.set(t,c),this.nw(t,c);const u={ta:Xs(c)};if(!o)return this.tw(t,-1,u);const d={timeWeight:0,time:r.la,pointData:r,originalTime:tn(r.Hb)},f=Dt(this.Xb,this.q_.key(d.time),(t,i)=>this.q_.key(t.time)<i);this.Xb.splice(f,0,d);for(let t=f;t<this.Xb.length;++t)sn(this.Xb[t].pointData,t);return this.q_.fillWeightsForPoints(this.Xb,f),this.tw(t,f,u)}nw(t,i){let e=this.Yb.get(t);void 0===e&&(e=[],this.Yb.set(t,e));const s=0!==e.length?e[e.length-1]:null;null===s||this.q_.key(i.ot)>this.q_.key(s.ot)?Xs(i)&&e.push(i):Xs(i)?e[e.length-1]=i:e.splice(-1,1),this.Zb.set(t,i.ot)}Jb(t,i){0!==i.length?(this.Yb.set(t,i.filter(Xs)),this.Zb.set(t,i[i.length-1].ot)):(this.Yb.delete(t),this.Zb.delete(t))}Gb(){for(const t of this.Xb)0===t.pointData.Hb.size&&this.qb.delete(this.q_.key(t.time))}Qb(t){let i=-1;for(let e=0;e<this.Xb.length&&e<t.length;++e){const s=this.Xb[e],n=t[e];if(this.q_.key(s.time)!==this.q_.key(n.time)){i=e;break}n.timeWeight=s.timeWeight,sn(n.pointData,e)}if(-1===i&&this.Xb.length!==t.length&&(i=Math.min(this.Xb.length,t.length)),-1===i)return-1;for(let e=i;e<t.length;++e)sn(t[e].pointData,e);return this.q_.fillWeightsForPoints(t,i),this.Xb=t,i}sw(){if(0===this.Yb.size)return null;let t=0;return this.Yb.forEach(i=>{0!==i.length&&(t=Math.max(t,i[i.length-1].ee))}),t}tw(t,i,e){const s={ew:new Map,St:{Eu:this.sw()}};if(-1!==i)this.Yb.forEach((i,n)=>{s.ew.set(n,{$e:i,rw:n===t?e:void 0})}),this.Yb.has(t)||s.ew.set(t,{$e:[],rw:e}),s.St.hw=this.Xb,s.St.lw=i;else{const i=this.Yb.get(t);s.ew.set(t,{$e:i||[],rw:e})}return s}}function sn(t,i){t.ee=i,t.Hb.forEach(t=>{t.ee=i})}function nn(t){const i={value:t.Vt[3],time:t.zb};return void 0!==t.jb&&(i.customValues=t.jb),i}function rn(t){const i=nn(t);return void 0!==t.V&&(i.color=t.V),i}function on(t){const i=nn(t);return void 0!==t.lt&&(i.lineColor=t.lt),void 0!==t.Ps&&(i.topColor=t.Ps),void 0!==t.Rs&&(i.bottomColor=t.Rs),i}function hn(t){const i=nn(t);return void 0!==t.Re&&(i.topLineColor=t.Re),void 0!==t.De&&(i.bottomLineColor=t.De),void 0!==t.ke&&(i.topFillColor1=t.ke),void 0!==t.ye&&(i.topFillColor2=t.ye),void 0!==t.Ce&&(i.bottomFillColor1=t.Ce),void 0!==t.Te&&(i.bottomFillColor2=t.Te),i}function ln(t){const i={open:t.Vt[0],high:t.Vt[1],low:t.Vt[2],close:t.Vt[3],time:t.zb};return void 0!==t.jb&&(i.customValues=t.jb),i}function an(t){const i=ln(t);return void 0!==t.V&&(i.color=t.V),i}function cn(t){const i=ln(t),{V:e,Ot:s,Xh:n}=t;return void 0!==e&&(i.color=e),void 0!==s&&(i.borderColor=s),void 0!==n&&(i.wickColor=n),i}function un(t){return{Area:on,Line:rn,Baseline:hn,Histogram:rn,Bar:an,Candlestick:cn,Custom:dn}[t]}function dn(t){const i=t.zb;return Object.assign(Object.assign({},t.$e),{time:i})}const fn={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},mn={vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},pn={background:{type:"solid",color:"#FFFFFF"},textColor:"#191919",fontSize:12,fontFamily:U,attributionLogo:!0},gn={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},vn={rightOffset:0,barSpacing:6,minBarSpacing:.5,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},bn={color:"rgba(0, 0, 0, 0)",visible:!1,fontSize:48,fontFamily:U,fontStyle:"",text:"",horzAlign:"center",vertAlign:"center"};function wn(){return{width:0,height:0,autoSize:!1,layout:pn,crosshair:fn,grid:mn,overlayPriceScales:Object.assign({},gn),leftPriceScale:Object.assign(Object.assign({},gn),{visible:!1}),rightPriceScale:Object.assign(Object.assign({},gn),{visible:!0}),timeScale:vn,watermark:bn,localization:{locale:es?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 yn{constructor(t,i){this.aw=t,this.ow=i}applyOptions(t){this.aw.$t().$c(this.ow,t)}options(){return this.Li().W()}width(){return pt(this.ow)?this.aw.Mb(this.ow):0}Li(){return x(this.aw.$t().Uc(this.ow)).Dt}}function Sn(t,i,e){const s=Ws(t,["time","originalTime"]),n=Object.assign({time:i},s);return void 0!==e&&(n.originalTime=e),n}const Cn={color:"#FF0000",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:"",axisLabelColor:"",axisLabelTextColor:""};class xn{constructor(t){this.Nh=t}applyOptions(t){this.Nh.$h(t)}options(){return this.Nh.W()}_w(){return this.Nh}}class _n{constructor(t,i,e,s,n){this.uw=new P,this.Es=t,this.cw=i,this.dw=e,this.q_=n,this.fw=s}S(){this.uw.S()}priceFormatter(){return this.Es.ba()}priceToCoordinate(t){const i=this.Es.Ct();return null===i?null:this.Es.Dt().Rt(t,i.Vt)}coordinateToPrice(t){const i=this.Es.Ct();return null===i?null:this.Es.Dt().pn(t,i.Vt)}barsInLogicalRange(t){if(null===t)return null;const i=new ze(new _e(t.from,t.to)).lu(),e=this.Es.In();if(e.Ni())return null;const s=e.ll(i.Os(),1),n=e.ll(i.ui(),-1),r=x(e.el()),o=x(e.An());if(null!==s&&null!==n&&s.ee>n.ee)return{barsBefore:t.from-r,barsAfter:o-t.to};const h={barsBefore:null===s||s.ee===r?t.from-r:s.ee-r,barsAfter:null===n||n.ee===o?o-t.to:o-n.ee};return null!==s&&null!==n&&(h.from=s.zb,h.to=n.zb),h}setData(t){this.q_,this.Es.Qh(),this.cw.pw(this.Es,t),this.mw("full")}update(t){this.Es.Qh(),this.cw.bw(this.Es,t),this.mw("update")}dataByIndex(t,i){const e=this.Es.In().ll(t,i);return null===e?null:un(this.seriesType())(e)}data(){const t=un(this.seriesType());return this.Es.In().ne().map(i=>t(i))}subscribeDataChanged(t){this.uw.l(t)}unsubscribeDataChanged(t){this.uw.v(t)}setMarkers(t){this.q_;const i=t.map(t=>Sn(t,this.q_.convertHorzItemToInternal(t.time),t.time));this.Es.na(i)}markers(){return this.Es.sa().map(t=>Sn(t,t.originalTime,void 0))}applyOptions(t){this.Es.$h(t)}options(){return W(this.Es.W())}priceScale(){return this.dw.priceScale(this.Es.Dt().Pa())}createPriceLine(t){const i=V(W(Cn),t),e=this.Es.ea(i);return new xn(e)}removePriceLine(t){this.Es.ra(t._w())}seriesType(){return this.Es.Qh()}attachPrimitive(t){this.Es.ka(t),t.attached&&t.attached({chart:this.fw,series:this,requestUpdate:()=>this.Es.$t().Kl()})}detachPrimitive(t){this.Es.ya(t),t.detached&&t.detached()}mw(t){this.uw.M()&&this.uw.m(t)}}class En{constructor(t,i,e){this.ww=new P,this.mu=new P,this.Om=new P,this.$i=t,this.yl=t.St(),this.ab=i,this.yl.nc().l(this.gw.bind(this)),this.yl.sc().l(this.Mw.bind(this)),this.ab.Nm().l(this.xw.bind(this)),this.q_=e}S(){this.yl.nc().p(this),this.yl.sc().p(this),this.ab.Nm().p(this),this.ww.S(),this.mu.S(),this.Om.S()}scrollPosition(){return this.yl.Hu()}scrollToPosition(t,i){i?this.yl.Ju(t,1e3):this.$i.Jn(t)}scrollToRealTime(){this.yl.Gu()}getVisibleRange(){const t=this.yl.Vu();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.q_.convertHorzItemToInternal(t.from),to:this.q_.convertHorzItemToInternal(t.to)},e=this.yl.Iu(i);this.$i.pd(e)}getVisibleLogicalRange(){const t=this.yl.Du();return null===t?null:{from:t.Os(),to:t.ui()}}setVisibleLogicalRange(t){S(t.from<=t.to,"The from index cannot be after the to index."),this.$i.pd(t)}resetTimeScale(){this.$i.Kn()}fitContent(){this.$i.hc()}logicalToCoordinate(t){const i=this.$i.St();return i.Ni()?null:i.It(t)}coordinateToLogical(t){return this.yl.Ni()?null:this.yl.Nu(t)}timeToCoordinate(t){const i=this.q_.convertHorzItemToInternal(t),e=this.yl.Va(i,!1);return null===e?null:this.yl.It(e)}coordinateToTime(t){const i=this.$i.St(),e=i.Nu(t),s=i.Ui(e);return null===s?null:s.originalTime}width(){return this.ab.um().width}height(){return this.ab.um().height}subscribeVisibleTimeRangeChange(t){this.ww.l(t)}unsubscribeVisibleTimeRangeChange(t){this.ww.v(t)}subscribeVisibleLogicalRangeChange(t){this.mu.l(t)}unsubscribeVisibleLogicalRangeChange(t){this.mu.v(t)}subscribeSizeChange(t){this.Om.l(t)}unsubscribeSizeChange(t){this.Om.v(t)}applyOptions(t){this.yl.$h(t)}options(){return Object.assign(Object.assign({},W(this.yl.W())),{barSpacing:this.yl.le()})}gw(){this.ww.M()&&this.ww.m(this.getVisibleRange())}Mw(){this.mu.M()&&this.mu.m(this.getVisibleLogicalRange())}xw(t){this.Om.m(t.width,t.height)}}function Mn(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:e}=t.handleScale;F(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),F(e)&&(t.handleScale.axisDoubleClickReset={time:e,price:e})}const i=t.handleScroll;F(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class zn{constructor(t,i,e){this.Sw=new Map,this.kw=new Map,this.yw=new P,this.Cw=new P,this.Tw=new P,this.Pw=new en(i);const s=void 0===e?W(wn()):V(W(wn()),Mn(e));this.q_=i,this.aw=new Bs(t,s,i),this.aw.lm().l(t=>{this.yw.M()&&this.yw.m(this.Rw(t()))},this),this.aw.am().l(t=>{this.Cw.M()&&this.Cw.m(this.Rw(t()))},this),this.aw.Xc().l(t=>{this.Tw.M()&&this.Tw.m(this.Rw(t()))},this);const n=this.aw.$t();this.Dw=new En(n,this.aw.fb(),this.q_)}remove(){this.aw.lm().p(this),this.aw.am().p(this),this.aw.Xc().p(this),this.Dw.S(),this.aw.S(),this.Sw.clear(),this.kw.clear(),this.yw.S(),this.Cw.S(),this.Tw.S(),this.Pw.S()}resize(t,i,e){this.autoSizeActive()||this.aw._b(t,i,e)}addCustomSeries(t,i){const e=_(t),s=Object.assign(Object.assign({},m),e.defaultOptions());return this.Vw("Custom",s,i,e)}addAreaSeries(t){return this.Vw("Area",u,t)}addBaselineSeries(t){return this.Vw("Baseline",d,t)}addBarSeries(t){return this.Vw("Bar",a,t)}addCandlestickSeries(t={}){return 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)}(t),this.Vw("Candlestick",l,t)}addHistogramSeries(t){return this.Vw("Histogram",f,t)}addLineSeries(t){return this.Vw("Line",c,t)}removeSeries(t){const i=C(this.Sw.get(t)),e=this.Pw.vd(i);this.aw.$t().vd(i),this.Ow(e),this.Sw.delete(t),this.kw.delete(i)}pw(t,i){this.Ow(this.Pw.Kb(t,i))}bw(t,i){this.Ow(this.Pw.iw(t,i))}subscribeClick(t){this.yw.l(t)}unsubscribeClick(t){this.yw.v(t)}subscribeCrosshairMove(t){this.Tw.l(t)}unsubscribeCrosshairMove(t){this.Tw.v(t)}subscribeDblClick(t){this.Cw.l(t)}unsubscribeDblClick(t){this.Cw.v(t)}priceScale(t){return new yn(this.aw,t)}timeScale(){return this.Dw}applyOptions(t){this.aw.$h(Mn(t))}options(){return this.aw.W()}takeScreenshot(){return this.aw.wb()}autoSizeActive(){return this.aw.kb()}chartElement(){return this.aw.yb()}paneSize(){const t=this.aw.Tb();return{height:t.height,width:t.width}}setCrosshairPosition(t,i,e){const s=this.Sw.get(e);if(void 0===s)return;const n=this.aw.$t().dr(s);null!==n&&this.aw.$t().ad(t,i,n)}clearCrosshairPosition(){this.aw.$t().od(!0)}Vw(t,i,e={},s){!function(t){if(void 0===t||"custom"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=function(t){if(t>=1)return 0;let i=0;for(;i<8;i++){const e=Math.round(t);if(Math.abs(e-t)<1e-8)return i;t*=10}return i}(i.minMove))}(e.priceFormat);const n=V(W(p),W(i),e),r=this.aw.$t().dd(t,n,s),o=new _n(r,this,this,this,this.q_);return this.Sw.set(o,r),this.kw.set(r,o),o}Ow(t){const i=this.aw.$t();i._d(t.St.Eu,t.St.hw,t.St.lw),t.ew.forEach((t,i)=>i.J(t.$e,t.rw)),i.Wu()}Bw(t){return C(this.kw.get(t))}Rw(t){const i=new Map;t.Nb.forEach((t,e)=>{const s=e.Qh(),n=un(s)(t);if("Custom"!==s)S(function(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}(n));else{const t=e.Ta();S(!t||!1===t(n))}i.set(this.Bw(e),n)});const e=void 0!==t.Eb&&this.kw.has(t.Eb)?this.Bw(t.Eb):void 0;return{time:t.zb,logical:t.ee,point:t.Lb,hoveredSeries:e,hoveredObjectId:t.Fb,seriesData:i,sourceEvent:t.Wb}}}function Rn(t,i){return function(t,i,e){let s;if(B(t)){const i=document.getElementById(t);S(null!==i,`Cannot find element in DOM with id=${t}`),s=i}else s=t;const n=new zn(s,i,e);return i.setOptions(n.options()),n}(t,new is,is.Id(i))}Object.assign(Object.assign({},p),m);const kn=i=>{const[e]=t.useState(i||null),[s,n]=t.useState(!1),[r,o]=t.useState(!1);t.useEffect(()=>{if(!e)return n(!1),void o(!1);o(!0);const t=()=>{console.log("✅ [useSocket] Connected to Socket.IO server"),n(!0),o(!1)},i=()=>{console.log("🔌 [useSocket] Disconnected from Socket.IO server"),n(!1),o(!1)},s=t=>{console.error("❌ [useSocket] Connection error:",t),o(!1)};return e.connected&&(n(!0),o(!1)),e.on("connect",t),e.on("disconnect",i),e.on("connect_error",s),()=>{e.off("connect",t),e.off("disconnect",i),e.off("connect_error",s)}},[e]);const h=t.useCallback(()=>{console.log("🔍 [useSocket] Connect called - connection managed by provider")},[]),l=t.useCallback(()=>{console.log("🔍 [useSocket] Disconnect called - connection managed by provider")},[]),a=t.useCallback((t,i=60,s,n,r)=>{if(!e?.connected)return console.warn("⚠️ [useSocket] Socket not connected, cannot subscribe"),!1;try{return e.emit("ohlcv:subscribe",{mint:t,timeFrame:i}),s&&e.on("ohlcv:initial",s),n&&e.on("ohlcv:update",n),r&&e.on("ohlcv:newCandle",r),console.log(`📊 [useSocket] Subscribed to OHLCV updates for ${t} (${i}s)`),!0}catch(t){return console.error("❌ [useSocket] Failed to subscribe to OHLCV:",t),!1}},[e]),c=t.useCallback((t,i=60,s,n,r)=>{if(!e?.connected)return!1;try{return e.emit("ohlcv:unsubscribe",{mint:t,timeFrame:i}),s&&e.off("ohlcv:initial",s),n&&e.off("ohlcv:update",n),r&&e.off("ohlcv:newCandle",r),console.log(`📊 [useSocket] Unsubscribed from OHLCV updates for ${t} (${i}s)`),!0}catch(t){return console.error("❌ [useSocket] Failed to unsubscribe from OHLCV:",t),!1}},[e]),u=t.useCallback((t,i)=>{if(!e?.connected)return console.warn("⚠️ [useSocket] Socket not connected, cannot subscribe"),!1;try{return e.emit("price:subscribe",{mint:t}),i&&e.on("price:update",i),console.log(`💰 [useSocket] Subscribed to price updates for ${t}`),!0}catch(t){return console.error("❌ [useSocket] Failed to subscribe to price:",t),!1}},[e]),d=t.useCallback((t,i)=>{if(!e?.connected)return!1;try{return e.emit("price:unsubscribe",{mint:t}),i&&e.off("price:update",i),console.log(`💰 [useSocket] Unsubscribed from price updates for ${t}`),!0}catch(t){return console.error("❌ [useSocket] Failed to unsubscribe from price:",t),!1}},[e]),f=t.useCallback(t=>{if(!e?.connected)return console.warn("⚠️ [useSocket] Socket not connected, cannot send test message"),!1;try{return e.emit("test-message",{message:t,timestamp:Date.now()}),e.once("test-response",t=>{console.log("🧪 [useSocket] Test response received:",t)}),!0}catch(t){return console.error("❌ [useSocket] Failed to send test message:",t),!1}},[e]);return{socket:e,isConnected:s,isConnecting:r,connect:h,disconnect:l,subscribeToOHLCV:a,unsubscribeFromOHLCV:c,subscribeToPrice:u,unsubscribeFromPrice:d,testConnection:f}};function Tn(i,e){const[s,n]=t.useState(null),[r,o]=t.useState(!1),[h,l]=t.useState(null),[a,c]=t.useState(null),[u,d]=t.useState(!1);t.useEffect(()=>{e&&(n(e),c(Date.now()),d(!0),o(!1))},[e]);const f=t.useMemo(()=>{if(!s||!s.market)return{currentPrice:0,currentMarketCap:0,currentVolume:0,performance24h:{value:"0.00%",isPositive:!1,raw:0},performance7d:{value:"0.00%",isPositive:!1,raw:0},performance1m:{value:"0.00%",isPositive:!1,raw:0},performanceAllTime:{value:"0.00%",isPositive:!1,raw:0},high24h:0,low24h:0,volume24h:0,return24h:0};const t=parseFloat(s.market?.price||"0")||0,i=parseFloat(s.market?.marketCap||"0")||0;let e=parseFloat(s.volume?.current||"0")||0;e<=.01&&(e=parseFloat(s.blockchain?.currentRealSol||"0")||0);const n={value:s.performance?.["24H"]?.percentage||"0.00%",isPositive:s.performance?.["24H"]?.isPositive||!1,raw:s.performance?.["24H"]?.gain||0},r={value:s.performance?.["7D"]?.percentage||"0.00%",isPositive:s.performance?.["7D"]?.isPositive||!1,raw:s.performance?.["7D"]?.gain||0},o={value:s.performance?.["1M"]?.percentage||"0.00%",isPositive:s.performance?.["1M"]?.isPositive||!1,raw:s.performance?.["1M"]?.gain||0},h={value:s.performance?.["All Time"]?.percentage||"0.00%",isPositive:s.performance?.["All Time"]?.isPositive||!1,raw:s.performance?.["All Time"]?.gain||0},l=parseFloat(s["24H"]?.high||"0")||0,a=parseFloat(s["24H"]?.low||"0")||0;let c=parseFloat(s.volume?.["24h"]||"0")||0;c<=.01&&(c=parseFloat(s.blockchain?.currentRealSol||"0")||0);return{currentPrice:t,currentMarketCap:i,currentVolume:e,performance24h:n,performance7d:r,performance1m:o,performanceAllTime:h,high24h:l,low24h:a,volume24h:c,return24h:parseFloat(s["24H"]?.return||"0")||0}},[s]),m=t.useCallback(t=>t>.01,[]);return{analytics:s,...f,isRealVolume:m,loading:r,error:h,connected:u,lastUpdate:a}}function Ln(t,i){return function(){return t.apply(i,arguments)}}const{toString:On}=Object.prototype,{getPrototypeOf:Nn}=Object,{iterator:$n,toStringTag:Pn}=Symbol,Vn=(Dn=Object.create(null),t=>{const i=On.call(t);return Dn[i]||(Dn[i]=i.slice(8,-1).toLowerCase())});var Dn;const An=t=>(t=t.toLowerCase(),i=>Vn(i)===t),Bn=t=>i=>typeof i===t,{isArray:Fn}=Array,Wn=Bn("undefined");function jn(t){return null!==t&&!Wn(t)&&null!==t.constructor&&!Wn(t.constructor)&&Hn(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const In=An("ArrayBuffer");const Un=Bn("string"),Hn=Bn("function"),Kn=Bn("number"),qn=t=>null!==t&&"object"==typeof t,Xn=t=>{if("object"!==Vn(t))return!1;const i=Nn(t);return!(null!==i&&i!==Object.prototype&&null!==Object.getPrototypeOf(i)||Pn in t||$n in t)},Jn=An("Date"),Gn=An("File"),Qn=An("Blob"),Yn=An("FileList"),Zn=An("URLSearchParams"),[tr,ir,er,sr]=["ReadableStream","Request","Response","Headers"].map(An);function nr(t,i,{allOwnKeys:e=!1}={}){if(null==t)return;let s,n;if("object"!=typeof t&&(t=[t]),Fn(t))for(s=0,n=t.length;s<n;s++)i.call(null,t[s],s,t);else{if(jn(t))return;const n=e?Object.getOwnPropertyNames(t):Object.keys(t),r=n.length;let o;for(s=0;s<r;s++)o=n[s],i.call(null,t[o],o,t)}}function rr(t,i){if(jn(t))return null;i=i.toLowerCase();const e=Object.keys(t);let s,n=e.length;for(;n-- >0;)if(s=e[n],i===s.toLowerCase())return s;return null}const or="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,hr=t=>!Wn(t)&&t!==or;const lr=(ar="undefined"!=typeof Uint8Array&&Nn(Uint8Array),t=>ar&&t instanceof ar);var ar;const cr=An("HTMLFormElement"),ur=(({hasOwnProperty:t})=>(i,e)=>t.call(i,e))(Object.prototype),dr=An("RegExp"),fr=(t,i)=>{const e=Object.getOwnPropertyDescriptors(t),s={};nr(e,(e,n)=>{let r;!1!==(r=i(e,n,t))&&(s[n]=r||e)}),Object.defineProperties(t,s)};const mr=An("AsyncFunction"),pr=(gr="function"==typeof setImmediate,vr=Hn(or.postMessage),gr?setImmediate:vr?(br=`axios@${Math.random()}`,wr=[],or.addEventListener("message",({source:t,data:i})=>{t===or&&i===br&&wr.length&&wr.shift()()},!1),t=>{wr.push(t),or.postMessage(br,"*")}):t=>setTimeout(t));var gr,vr,br,wr;const yr="undefined"!=typeof queueMicrotask?queueMicrotask.bind(or):"undefined"!=typeof process&&process.nextTick||pr;var Sr={isArray:Fn,isArrayBuffer:In,isBuffer:jn,isFormData:t=>{let i;return t&&("function"==typeof FormData&&t instanceof FormData||Hn(t.append)&&("formdata"===(i=Vn(t))||"object"===i&&Hn(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let i;return i="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&In(t.buffer),i},isString:Un,isNumber:Kn,isBoolean:t=>!0===t||!1===t,isObject:qn,isPlainObject:Xn,isEmptyObject:t=>{if(!qn(t)||jn(t))return!1;try{return 0===Object.keys(t).length&&Object.getPrototypeOf(t)===Object.prototype}catch(t){return!1}},isReadableStream:tr,isRequest:ir,isResponse:er,isHeaders:sr,isUndefined:Wn,isDate:Jn,isFile:Gn,isBlob:Qn,isRegExp:dr,isFunction:Hn,isStream:t=>qn(t)&&Hn(t.pipe),isURLSearchParams:Zn,isTypedArray:lr,isFileList:Yn,forEach:nr,merge:function t(){const{caseless:i,skipUndefined:e}=hr(this)&&this||{},s={},n=(n,r)=>{const o=i&&rr(s,r)||r;Xn(s[o])&&Xn(n)?s[o]=t(s[o],n):Xn(n)?s[o]=t({},n):Fn(n)?s[o]=n.slice():e&&Wn(n)||(s[o]=n)};for(let t=0,i=arguments.length;t<i;t++)arguments[t]&&nr(arguments[t],n);return s},extend:(t,i,e,{allOwnKeys:s}={})=>(nr(i,(i,s)=>{e&&Hn(i)?t[s]=Ln(i,e):t[s]=i},{allOwnKeys:s}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,i,e,s)=>{t.prototype=Object.create(i.prototype,s),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:i.prototype}),e&&Object.assign(t.prototype,e)},toFlatObject:(t,i,e,s)=>{let n,r,o;const h={};if(i=i||{},null==t)return i;do{for(n=Object.getOwnPropertyNames(t),r=n.length;r-- >0;)o=n[r],s&&!s(o,t,i)||h[o]||(i[o]=t[o],h[o]=!0);t=!1!==e&&Nn(t)}while(t&&(!e||e(t,i))&&t!==Object.prototype);return i},kindOf:Vn,kindOfTest:An,endsWith:(t,i,e)=>{t=String(t),(void 0===e||e>t.length)&&(e=t.length),e-=i.length;const s=t.indexOf(i,e);return-1!==s&&s===e},toArray:t=>{if(!t)return null;if(Fn(t))return t;let i=t.length;if(!Kn(i))return null;const e=new Array(i);for(;i-- >0;)e[i]=t[i];return e},forEachEntry:(t,i)=>{const e=(t&&t[$n]).call(t);let s;for(;(s=e.next())&&!s.done;){const e=s.value;i.call(t,e[0],e[1])}},matchAll:(t,i)=>{let e;const s=[];for(;null!==(e=t.exec(i));)s.push(e);return s},isHTMLForm:cr,hasOwnProperty:ur,hasOwnProp:ur,reduceDescriptors:fr,freezeMethods:t=>{fr(t,(i,e)=>{if(Hn(t)&&-1!==["arguments","caller","callee"].indexOf(e))return!1;const s=t[e];Hn(s)&&(i.enumerable=!1,"writable"in i?i.writable=!1:i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+e+"'")}))})},toObjectSet:(t,i)=>{const e={},s=t=>{t.forEach(t=>{e[t]=!0})};return Fn(t)?s(t):s(String(t).split(i)),e},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,i,e){return i.toUpperCase()+e}),noop:()=>{},toFiniteNumber:(t,i)=>null!=t&&Number.isFinite(t=+t)?t:i,findKey:rr,global:or,isContextDefined:hr,isSpecCompliantForm:function(t){return!!(t&&Hn(t.append)&&"FormData"===t[Pn]&&t[$n])},toJSONObject:t=>{const i=new Array(10),e=(t,s)=>{if(qn(t)){if(i.indexOf(t)>=0)return;if(jn(t))return t;if(!("toJSON"in t)){i[s]=t;const n=Fn(t)?[]:{};return nr(t,(t,i)=>{const r=e(t,s+1);!Wn(r)&&(n[i]=r)}),i[s]=void 0,n}}return t};return e(t,0)},isAsyncFn:mr,isThenable:t=>t&&(qn(t)||Hn(t))&&Hn(t.then)&&Hn(t.catch),setImmediate:pr,asap:yr,isIterable:t=>null!=t&&Hn(t[$n])};function Cr(t,i,e,s,n){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",i&&(this.code=i),e&&(this.config=e),s&&(this.request=s),n&&(this.response=n,this.status=n.status?n.status:null)}Sr.inherits(Cr,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Sr.toJSONObject(this.config),code:this.code,status:this.status}}});const xr=Cr.prototype,_r={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{_r[t]={value:t}}),Object.defineProperties(Cr,_r),Object.defineProperty(xr,"isAxiosError",{value:!0}),Cr.from=(t,i,e,s,n,r)=>{const o=Object.create(xr);Sr.toFlatObject(t,o,function(t){return t!==Error.prototype},t=>"isAxiosError"!==t);const h=t&&t.message?t.message:"Error",l=null==i&&t?t.code:i;return Cr.call(o,h,l,e,s,n),t&&null==o.cause&&Object.defineProperty(o,"cause",{value:t,configurable:!0}),o.name=t&&t.name||"Error",r&&Object.assign(o,r),o};function Er(t){return Sr.isPlainObject(t)||Sr.isArray(t)}function Mr(t){return Sr.endsWith(t,"[]")?t.slice(0,-2):t}function zr(t,i,e){return t?t.concat(i).map(function(t,i){return t=Mr(t),!e&&i?"["+t+"]":t}).join(e?".":""):i}const Rr=Sr.toFlatObject(Sr,{},null,function(t){return/^is[A-Z]/.test(t)});function kr(t,i,e){if(!Sr.isObject(t))throw new TypeError("target must be an object");i=i||new FormData;const s=(e=Sr.toFlatObject(e,{metaTokens:!0,dots:!1,indexes:!1},!1,function(t,i){return!Sr.isUndefined(i[t])})).metaTokens,n=e.visitor||a,r=e.dots,o=e.indexes,h=(e.Blob||"undefined"!=typeof Blob&&Blob)&&Sr.isSpecCompliantForm(i);if(!Sr.isFunction(n))throw new TypeError("visitor must be a function");function l(t){if(null===t)return"";if(Sr.isDate(t))return t.toISOString();if(Sr.isBoolean(t))return t.toString();if(!h&&Sr.isBlob(t))throw new Cr("Blob is not supported. Use a Buffer instead.");return Sr.isArrayBuffer(t)||Sr.isTypedArray(t)?h&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function a(t,e,n){let h=t;if(t&&!n&&"object"==typeof t)if(Sr.endsWith(e,"{}"))e=s?e:e.slice(0,-2),t=JSON.stringify(t);else if(Sr.isArray(t)&&function(t){return Sr.isArray(t)&&!t.some(Er)}(t)||(Sr.isFileList(t)||Sr.endsWith(e,"[]"))&&(h=Sr.toArray(t)))return e=Mr(e),h.forEach(function(t,s){!Sr.isUndefined(t)&&null!==t&&i.append(!0===o?zr([e],s,r):null===o?e:e+"[]",l(t))}),!1;return!!Er(t)||(i.append(zr(n,e,r),l(t)),!1)}const c=[],u=Object.assign(Rr,{defaultVisitor:a,convertValue:l,isVisitable:Er});if(!Sr.isObject(t))throw new TypeError("data must be an object");return function t(e,s){if(!Sr.isUndefined(e)){if(-1!==c.indexOf(e))throw Error("Circular reference detected in "+s.join("."));c.push(e),Sr.forEach(e,function(e,r){!0===(!(Sr.isUndefined(e)||null===e)&&n.call(i,e,Sr.isString(r)?r.trim():r,s,u))&&t(e,s?s.concat(r):[r])}),c.pop()}}(t),i}function Tr(t){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(t){return i[t]})}function Lr(t,i){this._pairs=[],t&&kr(t,this,i)}const Or=Lr.prototype;function Nr(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function $r(t,i,e){if(!i)return t;const s=e&&e.encode||Nr;Sr.isFunction(e)&&(e={serialize:e});const n=e&&e.serialize;let r;if(r=n?n(i,e):Sr.isURLSearchParams(i)?i.toString():new Lr(i,e).toString(s),r){const i=t.indexOf("#");-1!==i&&(t=t.slice(0,i)),t+=(-1===t.indexOf("?")?"?":"&")+r}return t}Or.append=function(t,i){this._pairs.push([t,i])},Or.toString=function(t){const i=t?function(i){return t.call(this,i,Tr)}:Tr;return this._pairs.map(function(t){return i(t[0])+"="+i(t[1])},"").join("&")};class Pr{constructor(){this.handlers=[]}use(t,i,e){return this.handlers.push({fulfilled:t,rejected:i,synchronous:!!e&&e.synchronous,runWhen:e?e.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){Sr.forEach(this.handlers,function(i){null!==i&&t(i)})}}var Vr={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Dr={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Lr,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Ar="undefined"!=typeof window&&"undefined"!=typeof document,Br="object"==typeof navigator&&navigator||void 0,Fr=Ar&&(!Br||["ReactNative","NativeScript","NS"].indexOf(Br.product)<0),Wr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,jr=Ar&&window.location.href||"http://localhost";var Ir={...Object.freeze({__proto__:null,hasBrowserEnv:Ar,hasStandardBrowserEnv:Fr,hasStandardBrowserWebWorkerEnv:Wr,navigator:Br,origin:jr}),...Dr};function Ur(t){function i(t,e,s,n){let r=t[n++];if("__proto__"===r)return!0;const o=Number.isFinite(+r),h=n>=t.length;if(r=!r&&Sr.isArray(s)?s.length:r,h)return Sr.hasOwnProp(s,r)?s[r]=[s[r],e]:s[r]=e,!o;s[r]&&Sr.isObject(s[r])||(s[r]=[]);return i(t,e,s[r],n)&&Sr.isArray(s[r])&&(s[r]=function(t){const i={},e=Object.keys(t);let s;const n=e.length;let r;for(s=0;s<n;s++)r=e[s],i[r]=t[r];return i}(s[r])),!o}if(Sr.isFormData(t)&&Sr.isFunction(t.entries)){const e={};return Sr.forEachEntry(t,(t,s)=>{i(function(t){return Sr.matchAll(/\w+|\[(\w*)]/g,t).map(t=>"[]"===t[0]?"":t[1]||t[0])}(t),s,e,0)}),e}return null}const Hr={transitional:Vr,adapter:["xhr","http","fetch"],transformRequest:[function(t,i){const e=i.getContentType()||"",s=e.indexOf("application/json")>-1,n=Sr.isObject(t);n&&Sr.isHTMLForm(t)&&(t=new FormData(t));if(Sr.isFormData(t))return s?JSON.stringify(Ur(t)):t;if(Sr.isArrayBuffer(t)||Sr.isBuffer(t)||Sr.isStream(t)||Sr.isFile(t)||Sr.isBlob(t)||Sr.isReadableStream(t))return t;if(Sr.isArrayBufferView(t))return t.buffer;if(Sr.isURLSearchParams(t))return i.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let r;if(n){if(e.indexOf("application/x-www-form-urlencoded")>-1)return function(t,i){return kr(t,new Ir.classes.URLSearchParams,{visitor:function(t,i,e,s){return Ir.isNode&&Sr.isBuffer(t)?(this.append(i,t.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...i})}(t,this.formSerializer).toString();if((r=Sr.isFileList(t))||e.indexOf("multipart/form-data")>-1){const i=this.env&&this.env.FormData;return kr(r?{"files[]":t}:t,i&&new i,this.formSerializer)}}return n||s?(i.setContentType("application/json",!1),function(t,i,e){if(Sr.isString(t))try{return(i||JSON.parse)(t),Sr.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(e||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const i=this.transitional||Hr.transitional,e=i&&i.forcedJSONParsing,s="json"===this.responseType;if(Sr.isResponse(t)||Sr.isReadableStream(t))return t;if(t&&Sr.isString(t)&&(e&&!this.responseType||s)){const e=!(i&&i.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(t){if(e){if("SyntaxError"===t.name)throw Cr.from(t,Cr.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ir.classes.FormData,Blob:Ir.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Sr.forEach(["delete","get","head","post","put","patch"],t=>{Hr.headers[t]={}});const Kr=Sr.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const qr=Symbol("internals");function Xr(t){return t&&String(t).trim().toLowerCase()}function Jr(t){return!1===t||null==t?t:Sr.isArray(t)?t.map(Jr):String(t)}function Gr(t,i,e,s,n){return Sr.isFunction(s)?s.call(this,i,e):(n&&(i=e),Sr.isString(i)?Sr.isString(s)?-1!==i.indexOf(s):Sr.isRegExp(s)?s.test(i):void 0:void 0)}let Qr=class{constructor(t){t&&this.set(t)}set(t,i,e){const s=this;function n(t,i,e){const n=Xr(i);if(!n)throw new Error("header name must be a non-empty string");const r=Sr.findKey(s,n);(!r||void 0===s[r]||!0===e||void 0===e&&!1!==s[r])&&(s[r||i]=Jr(t))}const r=(t,i)=>Sr.forEach(t,(t,e)=>n(t,e,i));if(Sr.isPlainObject(t)||t instanceof this.constructor)r(t,i);else if(Sr.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))r((t=>{const i={};let e,s,n;return t&&t.split("\n").forEach(function(t){n=t.indexOf(":"),e=t.substring(0,n).trim().toLowerCase(),s=t.substring(n+1).trim(),!e||i[e]&&Kr[e]||("set-cookie"===e?i[e]?i[e].push(s):i[e]=[s]:i[e]=i[e]?i[e]+", "+s:s)}),i})(t),i);else if(Sr.isObject(t)&&Sr.isIterable(t)){let e,s,n={};for(const i of t){if(!Sr.isArray(i))throw TypeError("Object iterator must return a key-value pair");n[s=i[0]]=(e=n[s])?Sr.isArray(e)?[...e,i[1]]:[e,i[1]]:i[1]}r(n,i)}else null!=t&&n(i,t,e);return this}get(t,i){if(t=Xr(t)){const e=Sr.findKey(this,t);if(e){const t=this[e];if(!i)return t;if(!0===i)return function(t){const i=Object.create(null),e=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=e.exec(t);)i[s[1]]=s[2];return i}(t);if(Sr.isFunction(i))return i.call(this,t,e);if(Sr.isRegExp(i))return i.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,i){if(t=Xr(t)){const e=Sr.findKey(this,t);return!(!e||void 0===this[e]||i&&!Gr(0,this[e],e,i))}return!1}delete(t,i){const e=this;let s=!1;function n(t){if(t=Xr(t)){const n=Sr.findKey(e,t);!n||i&&!Gr(0,e[n],n,i)||(delete e[n],s=!0)}}return Sr.isArray(t)?t.forEach(n):n(t),s}clear(t){const i=Object.keys(this);let e=i.length,s=!1;for(;e--;){const n=i[e];t&&!Gr(0,this[n],n,t,!0)||(delete this[n],s=!0)}return s}normalize(t){const i=this,e={};return Sr.forEach(this,(s,n)=>{const r=Sr.findKey(e,n);if(r)return i[r]=Jr(s),void delete i[n];const o=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,i,e)=>i.toUpperCase()+e)}(n):String(n).trim();o!==n&&delete i[n],i[o]=Jr(s),e[o]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const i=Object.create(null);return Sr.forEach(this,(e,s)=>{null!=e&&!1!==e&&(i[s]=t&&Sr.isArray(e)?e.join(", "):e)}),i}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,i])=>t+": "+i).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...i){const e=new this(t);return i.forEach(t=>e.set(t)),e}static accessor(t){const i=(this[qr]=this[qr]={accessors:{}}).accessors,e=this.prototype;function s(t){const s=Xr(t);i[s]||(!function(t,i){const e=Sr.toCamelCase(" "+i);["get","set","has"].forEach(s=>{Object.defineProperty(t,s+e,{value:function(t,e,n){return this[s].call(this,i,t,e,n)},configurable:!0})})}(e,t),i[s]=!0)}return Sr.isArray(t)?t.forEach(s):s(t),this}};function Yr(t,i){const e=this||Hr,s=i||e,n=Qr.from(s.headers);let r=s.data;return Sr.forEach(t,function(t){r=t.call(e,r,n.normalize(),i?i.status:void 0)}),n.normalize(),r}function Zr(t){return!(!t||!t.__CANCEL__)}function to(t,i,e){Cr.call(this,null==t?"canceled":t,Cr.ERR_CANCELED,i,e),this.name="CanceledError"}function io(t,i,e){const s=e.config.validateStatus;e.status&&s&&!s(e.status)?i(new Cr("Request failed with status code "+e.status,[Cr.ERR_BAD_REQUEST,Cr.ERR_BAD_RESPONSE][Math.floor(e.status/100)-4],e.config,e.request,e)):t(e)}Qr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Sr.reduceDescriptors(Qr.prototype,({value:t},i)=>{let e=i[0].toUpperCase()+i.slice(1);return{get:()=>t,set(t){this[e]=t}}}),Sr.freezeMethods(Qr),Sr.inherits(to,Cr,{__CANCEL__:!0});const eo=(t,i,e=3)=>{let s=0;const n=function(t,i){t=t||10;const e=new Array(t),s=new Array(t);let n,r=0,o=0;return i=void 0!==i?i:1e3,function(h){const l=Date.now(),a=s[o];n||(n=l),e[r]=h,s[r]=l;let c=o,u=0;for(;c!==r;)u+=e[c++],c%=t;if(r=(r+1)%t,r===o&&(o=(o+1)%t),l-n<i)return;const d=a&&l-a;return d?Math.round(1e3*u/d):void 0}}(50,250);return function(t,i){let e,s,n=0,r=1e3/i;const o=(i,r=Date.now())=>{n=r,e=null,s&&(clearTimeout(s),s=null),t(...i)};return[(...t)=>{const i=Date.now(),h=i-n;h>=r?o(t,i):(e=t,s||(s=setTimeout(()=>{s=null,o(e)},r-h)))},()=>e&&o(e)]}(e=>{const r=e.loaded,o=e.lengthComputable?e.total:void 0,h=r-s,l=n(h);s=r;t({loaded:r,total:o,progress:o?r/o:void 0,bytes:h,rate:l||void 0,estimated:l&&o&&r<=o?(o-r)/l:void 0,event:e,lengthComputable:null!=o,[i?"download":"upload"]:!0})},e)},so=(t,i)=>{const e=null!=t;return[s=>i[0]({lengthComputable:e,total:t,loaded:s}),i[1]]},no=t=>(...i)=>Sr.asap(()=>t(...i));var ro=Ir.hasStandardBrowserEnv?((t,i)=>e=>(e=new URL(e,Ir.origin),t.protocol===e.protocol&&t.host===e.host&&(i||t.port===e.port)))(new URL(Ir.origin),Ir.navigator&&/(msie|trident)/i.test(Ir.navigator.userAgent)):()=>!0,oo=Ir.hasStandardBrowserEnv?{write(t,i,e,s,n,r){const o=[t+"="+encodeURIComponent(i)];Sr.isNumber(e)&&o.push("expires="+new Date(e).toGMTString()),Sr.isString(s)&&o.push("path="+s),Sr.isString(n)&&o.push("domain="+n),!0===r&&o.push("secure"),document.cookie=o.join("; ")},read(t){const i=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return i?decodeURIComponent(i[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function ho(t,i,e){let s=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(i);return t&&(s||0==e)?function(t,i){return i?t.replace(/\/?\/$/,"")+"/"+i.replace(/^\/+/,""):t}(t,i):i}const lo=t=>t instanceof Qr?{...t}:t;function ao(t,i){i=i||{};const e={};function s(t,i,e,s){return Sr.isPlainObject(t)&&Sr.isPlainObject(i)?Sr.merge.call({caseless:s},t,i):Sr.isPlainObject(i)?Sr.merge({},i):Sr.isArray(i)?i.slice():i}function n(t,i,e,n){return Sr.isUndefined(i)?Sr.isUndefined(t)?void 0:s(void 0,t,0,n):s(t,i,0,n)}function r(t,i){if(!Sr.isUndefined(i))return s(void 0,i)}function o(t,i){return Sr.isUndefined(i)?Sr.isUndefined(t)?void 0:s(void 0,t):s(void 0,i)}function h(e,n,r){return r in i?s(e,n):r in t?s(void 0,e):void 0}const l={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:h,headers:(t,i,e)=>n(lo(t),lo(i),0,!0)};return Sr.forEach(Object.keys({...t,...i}),function(s){const r=l[s]||n,o=r(t[s],i[s],s);Sr.isUndefined(o)&&r!==h||(e[s]=o)}),e}var co=t=>{const i=ao({},t);let{data:e,withXSRFToken:s,xsrfHeaderName:n,xsrfCookieName:r,headers:o,auth:h}=i;if(i.headers=o=Qr.from(o),i.url=$r(ho(i.baseURL,i.url,i.allowAbsoluteUrls),t.params,t.paramsSerializer),h&&o.set("Authorization","Basic "+btoa((h.username||"")+":"+(h.password?unescape(encodeURIComponent(h.password)):""))),Sr.isFormData(e))if(Ir.hasStandardBrowserEnv||Ir.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(Sr.isFunction(e.getHeaders)){const t=e.getHeaders(),i=["content-type","content-length"];Object.entries(t).forEach(([t,e])=>{i.includes(t.toLowerCase())&&o.set(t,e)})}if(Ir.hasStandardBrowserEnv&&(s&&Sr.isFunction(s)&&(s=s(i)),s||!1!==s&&ro(i.url))){const t=n&&r&&oo.read(r);t&&o.set(n,t)}return i};var uo="undefined"!=typeof XMLHttpRequest&&function(t){return new Promise(function(i,e){const s=co(t);let n=s.data;const r=Qr.from(s.headers).normalize();let o,h,l,a,c,{responseType:u,onUploadProgress:d,onDownloadProgress:f}=s;function m(){a&&a(),c&&c(),s.cancelToken&&s.cancelToken.unsubscribe(o),s.signal&&s.signal.removeEventListener("abort",o)}let p=new XMLHttpRequest;function g(){if(!p)return;const s=Qr.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders());io(function(t){i(t),m()},function(t){e(t),m()},{data:u&&"text"!==u&&"json"!==u?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:s,config:t,request:p}),p=null}p.open(s.method.toUpperCase(),s.url,!0),p.timeout=s.timeout,"onloadend"in p?p.onloadend=g:p.onreadystatechange=function(){p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))&&setTimeout(g)},p.onabort=function(){p&&(e(new Cr("Request aborted",Cr.ECONNABORTED,t,p)),p=null)},p.onerror=function(i){const s=new Cr(i&&i.message?i.message:"Network Error",Cr.ERR_NETWORK,t,p);s.event=i||null,e(s),p=null},p.ontimeout=function(){let i=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const n=s.transitional||Vr;s.timeoutErrorMessage&&(i=s.timeoutErrorMessage),e(new Cr(i,n.clarifyTimeoutError?Cr.ETIMEDOUT:Cr.ECONNABORTED,t,p)),p=null},void 0===n&&r.setContentType(null),"setRequestHeader"in p&&Sr.forEach(r.toJSON(),function(t,i){p.setRequestHeader(i,t)}),Sr.isUndefined(s.withCredentials)||(p.withCredentials=!!s.withCredentials),u&&"json"!==u&&(p.responseType=s.responseType),f&&([l,c]=eo(f,!0),p.addEventListener("progress",l)),d&&p.upload&&([h,a]=eo(d),p.upload.addEventListener("progress",h),p.upload.addEventListener("loadend",a)),(s.cancelToken||s.signal)&&(o=i=>{p&&(e(!i||i.type?new to(null,t,p):i),p.abort(),p=null)},s.cancelToken&&s.cancelToken.subscribe(o),s.signal&&(s.signal.aborted?o():s.signal.addEventListener("abort",o)));const v=function(t){const i=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return i&&i[1]||""}(s.url);v&&-1===Ir.protocols.indexOf(v)?e(new Cr("Unsupported protocol "+v+":",Cr.ERR_BAD_REQUEST,t)):p.send(n||null)})};const fo=(t,i)=>{const{length:e}=t=t?t.filter(Boolean):[];if(i||e){let e,s=new AbortController;const n=function(t){if(!e){e=!0,o();const i=t instanceof Error?t:this.reason;s.abort(i instanceof Cr?i:new to(i instanceof Error?i.message:i))}};let r=i&&setTimeout(()=>{r=null,n(new Cr(`timeout ${i} of ms exceeded`,Cr.ETIMEDOUT))},i);const o=()=>{t&&(r&&clearTimeout(r),r=null,t.forEach(t=>{t.unsubscribe?t.unsubscribe(n):t.removeEventListener("abort",n)}),t=null)};t.forEach(t=>t.addEventListener("abort",n));const{signal:h}=s;return h.unsubscribe=()=>Sr.asap(o),h}},mo=function*(t,i){let e=t.byteLength;if(e<i)return void(yield t);let s,n=0;for(;n<e;)s=n+i,yield t.slice(n,s),n=s},po=async function*(t){if(t[Symbol.asyncIterator])return void(yield*t);const i=t.getReader();try{for(;;){const{done:t,value:e}=await i.read();if(t)break;yield e}}finally{await i.cancel()}},go=(t,i,e,s)=>{const n=async function*(t,i){for await(const e of po(t))yield*mo(e,i)}(t,i);let r,o=0,h=t=>{r||(r=!0,s&&s(t))};return new ReadableStream({async pull(t){try{const{done:i,value:s}=await n.next();if(i)return h(),void t.close();let r=s.byteLength;if(e){let t=o+=r;e(t)}t.enqueue(new Uint8Array(s))}catch(t){throw h(t),t}},cancel:t=>(h(t),n.return())},{highWaterMark:2})},{isFunction:vo}=Sr,bo=(({Request:t,Response:i})=>({Request:t,Response:i}))(Sr.global),{ReadableStream:wo,TextEncoder:yo}=Sr.global,So=(t,...i)=>{try{return!!t(...i)}catch(t){return!1}},Co=t=>{t=Sr.merge.call({skipUndefined:!0},bo,t);const{fetch:i,Request:e,Response:s}=t,n=i?vo(i):"function"==typeof fetch,r=vo(e),o=vo(s);if(!n)return!1;const h=n&&vo(wo),l=n&&("function"==typeof yo?(a=new yo,t=>a.encode(t)):async t=>new Uint8Array(await new e(t).arrayBuffer()));var a;const c=r&&h&&So(()=>{let t=!1;const i=new e(Ir.origin,{body:new wo,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!i}),u=o&&h&&So(()=>Sr.isReadableStream(new s("").body)),d={stream:u&&(t=>t.body)};n&&["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!d[t]&&(d[t]=(i,e)=>{let s=i&&i[t];if(s)return s.call(i);throw new Cr(`Response type '${t}' is not supported`,Cr.ERR_NOT_SUPPORT,e)})});const f=async(t,i)=>{const s=Sr.toFiniteNumber(t.getContentLength());return null==s?(async t=>{if(null==t)return 0;if(Sr.isBlob(t))return t.size;if(Sr.isSpecCompliantForm(t)){const i=new e(Ir.origin,{method:"POST",body:t});return(await i.arrayBuffer()).byteLength}return Sr.isArrayBufferView(t)||Sr.isArrayBuffer(t)?t.byteLength:(Sr.isURLSearchParams(t)&&(t+=""),Sr.isString(t)?(await l(t)).byteLength:void 0)})(i):s};return async t=>{let{url:n,method:o,data:h,signal:l,cancelToken:a,timeout:m,onDownloadProgress:p,onUploadProgress:g,responseType:v,headers:b,withCredentials:w="same-origin",fetchOptions:y}=co(t),S=i||fetch;v=v?(v+"").toLowerCase():"text";let C=fo([l,a&&a.toAbortSignal()],m),x=null;const _=C&&C.unsubscribe&&(()=>{C.unsubscribe()});let E;try{if(g&&c&&"get"!==o&&"head"!==o&&0!==(E=await f(b,h))){let t,i=new e(n,{method:"POST",body:h,duplex:"half"});if(Sr.isFormData(h)&&(t=i.headers.get("content-type"))&&b.setContentType(t),i.body){const[t,e]=so(E,eo(no(g)));h=go(i.body,65536,t,e)}}Sr.isString(w)||(w=w?"include":"omit");const i=r&&"credentials"in e.prototype,l={...y,signal:C,method:o.toUpperCase(),headers:b.normalize().toJSON(),body:h,duplex:"half",credentials:i?w:void 0};x=r&&new e(n,l);let a=await(r?S(x,y):S(n,l));const m=u&&("stream"===v||"response"===v);if(u&&(p||m&&_)){const t={};["status","statusText","headers"].forEach(i=>{t[i]=a[i]});const i=Sr.toFiniteNumber(a.headers.get("content-length")),[e,n]=p&&so(i,eo(no(p),!0))||[];a=new s(go(a.body,65536,e,()=>{n&&n(),_&&_()}),t)}v=v||"text";let M=await d[Sr.findKey(d,v)||"text"](a,t);return!m&&_&&_(),await new Promise((i,e)=>{io(i,e,{data:M,headers:Qr.from(a.headers),status:a.status,statusText:a.statusText,config:t,request:x})})}catch(i){if(_&&_(),i&&"TypeError"===i.name&&/Load failed|fetch/i.test(i.message))throw Object.assign(new Cr("Network Error",Cr.ERR_NETWORK,t,x),{cause:i.cause||i});throw Cr.from(i,i&&i.code,t,x)}}},xo=new Map,_o=t=>{let i=t?t.env:{};const{fetch:e,Request:s,Response:n}=i,r=[s,n,e];let o,h,l=r.length,a=xo;for(;l--;)o=r[l],h=a.get(o),void 0===h&&a.set(o,h=l?new Map:Co(i)),a=h;return h};_o();const Eo={http:null,xhr:uo,fetch:{get:_o}};Sr.forEach(Eo,(t,i)=>{if(t){try{Object.defineProperty(t,"name",{value:i})}catch(t){}Object.defineProperty(t,"adapterName",{value:i})}});const Mo=t=>`- ${t}`,zo=t=>Sr.isFunction(t)||null===t||!1===t;var Ro=(t,i)=>{t=Sr.isArray(t)?t:[t];const{length:e}=t;let s,n;const r={};for(let o=0;o<e;o++){let e;if(s=t[o],n=s,!zo(s)&&(n=Eo[(e=String(s)).toLowerCase()],void 0===n))throw new Cr(`Unknown adapter '${e}'`);if(n&&(Sr.isFunction(n)||(n=n.get(i))))break;r[e||"#"+o]=n}if(!n){const t=Object.entries(r).map(([t,i])=>`adapter ${t} `+(!1===i?"is not supported by the environment":"is not available in the build"));throw new Cr("There is no suitable adapter to dispatch the request "+(e?t.length>1?"since :\n"+t.map(Mo).join("\n"):" "+Mo(t[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function ko(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new to(null,t)}function To(t){ko(t),t.headers=Qr.from(t.headers),t.data=Yr.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1);return Ro(t.adapter||Hr.adapter,t)(t).then(function(i){return ko(t),i.data=Yr.call(t,t.transformResponse,i),i.headers=Qr.from(i.headers),i},function(i){return Zr(i)||(ko(t),i&&i.response&&(i.response.data=Yr.call(t,t.transformResponse,i.response),i.response.headers=Qr.from(i.response.headers))),Promise.reject(i)})}const Lo="1.12.2",Oo={};["object","boolean","number","function","string","symbol"].forEach((t,i)=>{Oo[t]=function(e){return typeof e===t||"a"+(i<1?"n ":" ")+t}});const No={};Oo.transitional=function(t,i,e){function s(t,i){return"[Axios v"+Lo+"] Transitional option '"+t+"'"+i+(e?". "+e:"")}return(e,n,r)=>{if(!1===t)throw new Cr(s(n," has been removed"+(i?" in "+i:"")),Cr.ERR_DEPRECATED);return i&&!No[n]&&(No[n]=!0,console.warn(s(n," has been deprecated since v"+i+" and will be removed in the near future"))),!t||t(e,n,r)}},Oo.spelling=function(t){return(i,e)=>(console.warn(`${e} is likely a misspelling of ${t}`),!0)};var $o={assertOptions:function(t,i,e){if("object"!=typeof t)throw new Cr("options must be an object",Cr.ERR_BAD_OPTION_VALUE);const s=Object.keys(t);let n=s.length;for(;n-- >0;){const r=s[n],o=i[r];if(o){const i=t[r],e=void 0===i||o(i,r,t);if(!0!==e)throw new Cr("option "+r+" must be "+e,Cr.ERR_BAD_OPTION_VALUE);continue}if(!0!==e)throw new Cr("Unknown option "+r,Cr.ERR_BAD_OPTION)}},validators:Oo};const Po=$o.validators;let Vo=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Pr,response:new Pr}}async request(t,i){try{return await this._request(t,i)}catch(t){if(t instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const e=i.stack?i.stack.replace(/^.+\n/,""):"";try{t.stack?e&&!String(t.stack).endsWith(e.replace(/^.+\n.+\n/,""))&&(t.stack+="\n"+e):t.stack=e}catch(t){}}throw t}}_request(t,i){"string"==typeof t?(i=i||{}).url=t:i=t||{},i=ao(this.defaults,i);const{transitional:e,paramsSerializer:s,headers:n}=i;void 0!==e&&$o.assertOptions(e,{silentJSONParsing:Po.transitional(Po.boolean),forcedJSONParsing:Po.transitional(Po.boolean),clarifyTimeoutError:Po.transitional(Po.boolean)},!1),null!=s&&(Sr.isFunction(s)?i.paramsSerializer={serialize:s}:$o.assertOptions(s,{encode:Po.function,serialize:Po.function},!0)),void 0!==i.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?i.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:i.allowAbsoluteUrls=!0),$o.assertOptions(i,{baseUrl:Po.spelling("baseURL"),withXsrfToken:Po.spelling("withXSRFToken")},!0),i.method=(i.method||this.defaults.method||"get").toLowerCase();let r=n&&Sr.merge(n.common,n[i.method]);n&&Sr.forEach(["delete","get","head","post","put","patch","common"],t=>{delete n[t]}),i.headers=Qr.concat(r,n);const o=[];let h=!0;this.interceptors.request.forEach(function(t){"function"==typeof t.runWhen&&!1===t.runWhen(i)||(h=h&&t.synchronous,o.unshift(t.fulfilled,t.rejected))});const l=[];let a;this.interceptors.response.forEach(function(t){l.push(t.fulfilled,t.rejected)});let c,u=0;if(!h){const t=[To.bind(this),void 0];for(t.unshift(...o),t.push(...l),c=t.length,a=Promise.resolve(i);u<c;)a=a.then(t[u++],t[u++]);return a}c=o.length;let d=i;for(;u<c;){const t=o[u++],i=o[u++];try{d=t(d)}catch(t){i.call(this,t);break}}try{a=To.call(this,d)}catch(t){return Promise.reject(t)}for(u=0,c=l.length;u<c;)a=a.then(l[u++],l[u++]);return a}getUri(t){return $r(ho((t=ao(this.defaults,t)).baseURL,t.url,t.allowAbsoluteUrls),t.params,t.paramsSerializer)}};Sr.forEach(["delete","get","head","options"],function(t){Vo.prototype[t]=function(i,e){return this.request(ao(e||{},{method:t,url:i,data:(e||{}).data}))}}),Sr.forEach(["post","put","patch"],function(t){function i(i){return function(e,s,n){return this.request(ao(n||{},{method:t,headers:i?{"Content-Type":"multipart/form-data"}:{},url:e,data:s}))}}Vo.prototype[t]=i(),Vo.prototype[t+"Form"]=i(!0)});const Do={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Do).forEach(([t,i])=>{Do[i]=t});const Ao=function t(i){const e=new Vo(i),s=Ln(Vo.prototype.request,e);return Sr.extend(s,Vo.prototype,e,{allOwnKeys:!0}),Sr.extend(s,e,null,{allOwnKeys:!0}),s.create=function(e){return t(ao(i,e))},s}(Hr);Ao.Axios=Vo,Ao.CanceledError=to,Ao.CancelToken=class t{constructor(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");let i;this.promise=new Promise(function(t){i=t});const e=this;this.promise.then(t=>{if(!e._listeners)return;let i=e._listeners.length;for(;i-- >0;)e._listeners[i](t);e._listeners=null}),this.promise.then=t=>{let i;const s=new Promise(t=>{e.subscribe(t),i=t}).then(t);return s.cancel=function(){e.unsubscribe(i)},s},t(function(t,s,n){e.reason||(e.reason=new to(t,s,n),i(e.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const i=this._listeners.indexOf(t);-1!==i&&this._listeners.splice(i,1)}toAbortSignal(){const t=new AbortController,i=i=>{t.abort(i)};return this.subscribe(i),t.signal.unsubscribe=()=>this.unsubscribe(i),t.signal}static source(){let i;const e=new t(function(t){i=t});return{token:e,cancel:i}}},Ao.isCancel=Zr,Ao.VERSION=Lo,Ao.toFormData=kr,Ao.AxiosError=Cr,Ao.Cancel=Ao.CanceledError,Ao.all=function(t){return Promise.all(t)},Ao.spread=function(t){return function(i){return t.apply(null,i)}},Ao.isAxiosError=function(t){return Sr.isObject(t)&&!0===t.isAxiosError},Ao.mergeConfig=ao,Ao.AxiosHeaders=Qr,Ao.formToJSON=t=>Ur(Sr.isHTMLForm(t)?new FormData(t):t),Ao.getAdapter=Ro,Ao.HttpStatusCode=Do,Ao.default=Ao;const{Axios:Bo,AxiosError:Fo,CanceledError:Wo,isCancel:jo,CancelToken:Io,VERSION:Uo,all:Ho,Cancel:Ko,isAxiosError:qo,spread:Xo,toFormData:Jo,AxiosHeaders:Go,HttpStatusCode:Qo,formToJSON:Yo,getAdapter:Zo,mergeConfig:th}=Ao,ih={BASE_URL:"undefined"!=typeof window&&window.FUNHI_CHART_API_URL?window.FUNHI_CHART_API_URL:process.env.NEXT_PUBLIC_BACKEND_URL||"https://dev.funhi.com",TIMEOUT:1e4,MAX_RETRIES:3,RETRY_DELAY:1e3};const eh=new class{constructor(){this.baseURL=`${ih.BASE_URL}/api/ohlcv`,this.savingQueue=new Map,this.BATCH_DELAY=5e3,this.BATCH_SIZE=50}async saveCandles(t){try{const{mint:i,candles:e,timeFrame:s=60}=t;if(!i||!e||0===e.length)return console.warn("⚠️ [CandleStorage] Invalid save request:",t),!1;return!!(await Ao.post(`${this.baseURL}/candles/save`,{mint:i,candles:e,timeFrame:s})).data.success&&(console.log(`💾 [CandleStorage] Saved ${e.length} candles for ${i}`),!0)}catch(t){return console.error("❌ [CandleStorage] Error saving candles:",t),!1}}async saveCandle(t){try{const{mint:i,candle:e,timeFrame:s=60}=t;if(!i||!e)return console.warn("⚠️ [CandleStorage] Invalid save request:",t),!1;const n=`${i}_${s}`,r=this.savingQueue.get(n);if(r)clearTimeout(r.timeout),r.candles.push(e),r.candles.length>=this.BATCH_SIZE?await this.flushQueue(n,i,s):r.timeout=setTimeout(()=>{this.flushQueue(n,i,s)},this.BATCH_DELAY);else{const t=setTimeout(()=>{this.flushQueue(n,i,s)},this.BATCH_DELAY);this.savingQueue.set(n,{candles:[e],timeout:t})}return!0}catch(t){return console.error("❌ [CandleStorage] Error queuing candle:",t),!1}}async flushQueue(t,i,e){const s=this.savingQueue.get(t);s&&0!==s.candles.length&&(this.savingQueue.delete(t),await this.saveCandles({mint:i,candles:s.candles,timeFrame:e}))}async getCandles(t){try{const{mint:i,timeFrame:e=60,limit:s=5e4}=t;if(!i)return console.warn("⚠️ [CandleStorage] Invalid get request:",t),[];const n=await Ao.get(`${this.baseURL}/candles/${i}`,{params:{timeFrame:e,limit:s},timeout:8e3,validateStatus:t=>t>=200&&t<500});if(n.data.success&&n.data.data&&n.data.data.candles){const t=n.data.data.candles.length;return t>0?console.log(`✅ [CandleStorage] Retrieved ${t} candles for ${i}`):console.log(`ℹ️ [CandleStorage] No candles found for ${i} in database`),n.data.data.candles}return n.data.warning&&console.warn(`⚠️ [CandleStorage] ${n.data.warning}`),[]}catch(i){return"ECONNABORTED"===i.code?console.error("❌ [CandleStorage] Request timeout getting candles for",t.mint):i.response?console.error("❌ [CandleStorage] Server error getting candles:",i.response.status,i.response.data):i.request?console.error("❌ [CandleStorage] Network error getting candles - no response received"):console.error("❌ [CandleStorage] Error getting candles:",i.message),[]}}async flushAll(){const t=[];for(const[i,e]of this.savingQueue.entries()){clearTimeout(e.timeout);const[s,n]=i.split("_"),r=parseInt(n);t.push(this.flushQueue(i,s,r))}await Promise.all(t)}};const sh=new class{constructor(){this.timeframes={"1m":60,"5m":300,"15m":900,"30m":1800,"1h":3600,"4h":14400,"1d":86400}}aggregateCandles(t,i){try{if(60===i)return t;if(!Array.isArray(t)||0===t.length)return console.warn("⚠️ [CandleAggregation] No candles to aggregate"),[];const e=[...t].sort((t,i)=>t.time-i.time),s=[];let n=[],r=null;for(const t of e){const e=Math.floor(t.time/i)*i;if(null===r&&(r=e),e===r)n.push(t);else{if(n.length>0){const t=this.aggregateGroup(n,r);s.push(t)}n=[t],r=e}}if(n.length>0&&null!==r){const t=this.aggregateGroup(n,r);s.push(t)}return console.log(`📊 [CandleAggregation] Aggregated ${t.length} 1m candles into ${s.length} ${this.getTimeframeLabel(i)} candles`),s}catch(t){return console.error("❌ [CandleAggregation] Error aggregating candles:",t),[]}}aggregateGroup(t,i){const e=[...t].sort((t,i)=>t.time-i.time),s=e[0].open,n=e[e.length-1].close,r=Math.max(...e.map(t=>t.high)),o=Math.min(...e.map(t=>t.low)),h=e.reduce((t,i)=>t+(i.volume||0),0);return{time:i,open:s,high:r,low:o,close:n,volume:h}}getTimeframeLabel(t){for(const[i,e]of Object.entries(this.timeframes))if(e===t)return i;return`${t}s`}getTimeframeSeconds(t){return this.timeframes[t]||60}fillGaps(t,i){try{if(!Array.isArray(t)||t.length<2)return t;const e=[...t].sort((t,i)=>t.time-i.time),s=[];for(let t=0;t<e.length-1;t++){const n=e[t],r=e[t+1];s.push(n);let o=n.time+i;for(;o<r.time;)s.push({time:o,open:n.close,high:n.close,low:n.close,close:n.close,volume:0}),o+=i}return s.push(e[e.length-1]),s.length>e.length&&console.log(`🔧 [CandleAggregation] Filled ${s.length-e.length} gaps in ${this.getTimeframeLabel(i)} candles`),s}catch(i){return console.error("❌ [CandleAggregation] Error filling gaps:",i),t}}getCurrentCandle(t,i){try{if(!Array.isArray(t)||0===t.length)return null;const e=Math.floor(Date.now()/1e3),s=Math.floor(e/i)*i,n=t.filter(t=>Math.floor(t.time/i)*i===s);return 0===n.length?null:this.aggregateGroup(n,s)}catch(t){return console.error("❌ [CandleAggregation] Error getting current candle:",t),null}}updateRealtimeCandle(t,i,e){try{if(!i)return t;const s=Math.floor(i.time/e)*e,n=t.findIndex(t=>t.time===s);if(n>=0){const e=t[n],r={time:s,open:e.open,high:Math.max(e.high,i.high),low:Math.min(e.low,i.low),close:i.close,volume:e.volume+(i.volume||0)},o=[...t];return o[n]=r,o}{const e={time:s,open:i.open,high:i.high,low:i.low,close:i.close,volume:i.volume||0};return[...t,e].sort((t,i)=>t.time-i.time)}}catch(i){return console.error("❌ [CandleAggregation] Error updating realtime candle:",i),t}}isValidCandle(t){return t&&"number"==typeof t.time&&"number"==typeof t.open&&"number"==typeof t.high&&"number"==typeof t.low&&"number"==typeof t.close&&t.high>=t.low&&t.high>=t.open&&t.high>=t.close&&t.low<=t.open&&t.low<=t.close}cleanCandles(t){if(!Array.isArray(t))return[];const i=t.filter(t=>this.isValidCandle(t));return i.length<t.length&&console.warn(`⚠️ [CandleAggregation] Removed ${t.length-i.length} invalid candles`),i}getRequiredOneMinuteCandles(t,i=200){const e=t/60;return Math.ceil(i*e)}},nh=({mint:i,ticker:e,tokenName:s,socket:n,isConnected:r,currentMarketCap:o,analyticsConnected:h,analyticsLoading:l})=>{const a=t.useRef(null),c=t.useRef(null),u=t.useRef(null),[d,f]=t.useState([]),[m,p]=t.useState([]),[g,v]=t.useState(0),[b,w]=t.useState(!0),[y,S]=t.useState(null),C=kn(),x=n||C.socket,_=void 0!==r?r:C.isConnected,E=Tn(),M=void 0!==o?o:E.currentMarketCap,z=void 0!==h?h:E.connected,R=void 0!==l?l:E.loading,k=t.useMemo(()=>[{label:"1m",value:"1m",seconds:60},{label:"5m",value:"5m",seconds:300},{label:"15m",value:"15m",seconds:900},{label:"1h",value:"1h",seconds:3600},{label:"4h",value:"4h",seconds:14400},{label:"1d",value:"1d",seconds:86400}],[]),[T,L]=t.useState(k[0]),O=t.useCallback(t=>t>=1e9?`$${(t/1e9).toFixed(t>=1e10?2:3)}B`:t>=1e6?`$${(t/1e6).toFixed(t>=1e7?2:3)}M`:t>=1e4?`$${(t/1e3).toFixed(t>=1e5?1:2)}K`:t>=1e3?`$${(t/1e3).toFixed(2)}K`:t>=1?`$${t.toFixed(2)}`:`$${t.toFixed(4)}`,[]),N=t.useCallback(t=>{if(t.length<2)return t;const i=[...t].sort((t,i)=>t.time-i.time),e=[];for(let t=0;t<i.length-1;t++){const s=i[t],n=i[t+1];e.push(s);const r=(n.time-s.time)/60;if(r>1.5){const t=Math.floor(r)-1,i=s.close;for(let n=1;n<=t;n++){const t=s.time+60*n;e.push({time:t,open:i,high:i,low:i,close:i,volume:0})}}}return e.push(i[i.length-1]),e},[]),$=t.useCallback(async(t,i,e=0,s=5e4)=>{try{console.log(`📊 [Chart] Loading candles from database for ${t} (timeframe: ${i}s, limit: ${s})${e>0?` (retry ${e})`:""}`);const n=await eh.getCandles({mint:t,timeFrame:i,limit:s});return console.log(`✅ [Chart] Loaded ${n.length} candles from database for ${t} (timeframe: ${i}s)`),n}catch(n){return console.error(`❌ [Chart] Error loading candles from database (attempt ${e+1}):`,n),e<2&&("ECONNABORTED"===n.code||"ENOTFOUND"===n.code||n.message?.includes("timeout"))?(console.log("🔄 [Chart] Retrying candle load in 1000ms..."),await new Promise(t=>setTimeout(t,1e3)),$(t,i,e,s)):[]}},[]);t.useEffect(()=>{if(!a.current)return;const t=Rn(a.current,{layout:{background:{color:"#ffffff"},textColor:"#333333"},grid:{vertLines:{color:"#f0f0f0"},horzLines:{color:"#f0f0f0"}},crosshair:{mode:ft.Normal},rightPriceScale:{borderColor:"#cccccc"},timeScale:{borderColor:"#cccccc",timeVisible:!0,secondsVisible:!1,rightOffset:12,barSpacing:8,minBarSpacing:4},height:384,localization:{priceFormatter:t=>O(t)},watermark:{visible:!0,fontSize:64,horzAlign:"center",vertAlign:"center",color:"rgba(0, 0, 0, 0.03)",text:e?`${e}/SOL`:`${i.substring(0,4)}...${i.substring(i.length-4)}/SOL`}});c.current=t;const s=t.addCandlestickSeries({upColor:"#26a69a",downColor:"#ef5350",borderVisible:!0,borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickUpColor:"#26a69a",wickDownColor:"#ef5350"});u.current=s;const n=5e4,r=60===T.seconds?n:sh.getRequiredOneMinuteCandles(T.seconds,n);console.log(`📊 [Chart Init] Loading ${r} 1m candles to create 50000 ${T.label} candles`),$(i,60,0,r).then(t=>{if(t.length>0){const e=t.reduce((t,i)=>{const e=t.findIndex(t=>t.time===i.time);return e>=0?t[e]=i:t.push(i),t},[]),n=e.sort((t,i)=>t.time-i.time),r=n.filter((t,i,e)=>0===i||t.time!==e[i-1].time);p(r),console.log(`✅ [Chart] Loaded ${r.length} 1m candles from database (will aggregate to ${T.label})`);const o=N(r);if(o.length>r.length&&(console.log(`🔧 [Chart] Filled ${o.length-r.length} gaps in loaded data`),f(o),s.setData(o.map(t=>({...t,time:t.time})))),x&&_){const t=o[o.length-1]?.time||0,e=Math.floor(Date.now()/1e3),s=Math.floor((e-t)/60);s>0&&s<10&&(console.log(`🔍 [Chart] Requesting ${s} missing recent candles from other clients`),x.emit("requestRecentCandles",{mint:i,timeframe:60,since:t})),console.log("🔍 [Chart] Requesting current minute candle from other clients"),x.emit("requestCurrentCandle",{mint:i,timeframe:60})}const h=Math.floor(Date.now()/1e3),l=60*Math.floor(h/60),a=o.some(t=>t.time===l);if(!a){console.log("🕯️ [Chart] Creating current minute candle immediately after refresh");(o.length>0?o[o.length-1].close:M||0)>0&&console.log("✅ [FunhiChart] Waiting for current minute candle from backend...")}}else console.log(`ℹ️ [Chart] No existing candles found in database for ${i}, waiting for real-time data`);w(!1)}).catch(t=>{console.error("❌ [Chart] Error loading candles from database:",t),w(!1)});const o=()=>{a.current&&t.applyOptions({width:a.current.clientWidth})};return window.addEventListener("resize",o),o(),()=>{window.removeEventListener("resize",o),t.remove()}},[i,$,O,T]);const P=t.useCallback(async t=>{const e=k.find(i=>i.value===t);if(e&&e.value!==T.value){console.log(`🔄 [Chart] Switching timeframe from ${T.label} to ${e.label}`),L(e),w(!0),f([]),u.current&&u.current.setData([]);try{const t=5e4,s=60===e.seconds?t:sh.getRequiredOneMinuteCandles(e.seconds,t);if(console.log(`🔄 [Chart] Switching to ${e.label}: need ${s} 1m candles, have ${m.length}`),m.length<s){console.log(`📊 [Chart] Loading ${s} 1m candles to create ${t} ${e.label} candles`);const n=await $(i,60,0,s);n.length>0?(p(n),console.log(`✅ [Chart] Loaded ${n.length} 1m candles, will create ~${Math.floor(60*n.length/e.seconds)} ${e.label} candles`)):console.log(`⚠️ [Chart] No candles loaded, using existing ${m.length} 1m candles`)}else console.log(`✅ [Chart] Already have enough 1m candles (${m.length}), re-aggregating to ${e.label}`)}catch(t){console.error(`❌ [Chart] Error switching to ${e.label}:`,t)}finally{w(!1)}}},[k,T,i,$,m]);t.useEffect(()=>{!i||!u.current||M<=0||(console.log(`💰 [FunhiChart] Processing real-time market cap update: $${M} for ${i} (${T.label})`),v(M),w(!1),c.current&&c.current.timeScale().scrollToRealTime())},[i,M,T]),t.useEffect(()=>{if(!x||!_||!i)return;const t=t=>{t.mint===i&&60===t.timeframe&&(console.log("🕯️ [FunhiChart] Received current candle update from backend:",t.candle),p(i=>{const e=[...i],s=e.findIndex(i=>i.time===t.candle.time);return s>=0?(e[s]=t.candle,console.log(`🔄 [FunhiChart] Updated existing candle at time ${new Date(1e3*t.candle.time).toLocaleTimeString()}`)):(e.push(t.candle),e.sort((t,i)=>t.time-i.time),console.log(`🆕 [FunhiChart] Added new candle at time ${new Date(1e3*t.candle.time).toLocaleTimeString()}`)),e}))},e=t=>{t.mint===i&&t.candle&&(console.log(`📡 [FunhiChart] Received completed candle from backend: ${new Date(1e3*t.candle.time).toLocaleTimeString()}`),p(i=>{const e=i.find(i=>i.time===t.candle.time);if(e)return console.log("⏭️ [FunhiChart] Skipping duplicate candle"),i;const s=[...i,t.candle].sort((t,i)=>t.time-i.time);return console.log(`✅ [FunhiChart] Added completed candle to oneMinuteCandles: ${t.candle.time}`),s}))},s=t=>{t.mint===i&&t.candles&&Array.isArray(t.candles)&&(console.log(`📡 [FunhiChart] Received ${t.candles.length} recent candles from backend`),p(i=>{const e=t.candles.filter(t=>!i.some(i=>i.time===t.time));if(e.length>0){const t=[...i,...e].sort((t,i)=>t.time-i.time);return console.log(`✅ [FunhiChart] Added ${e.length} missing candles to oneMinuteCandles`),t}return i}))};return x.on("ohlcv:update",e),x.on("recentCandlesResponse",s),x.on("currentCandleUpdate",t),()=>{x.off("ohlcv:update",e),x.off("recentCandlesResponse",s),x.off("currentCandleUpdate",t)}},[x,_,i]);const V=t.useCallback(()=>{if(u.current&&0!==m.length)try{let t=[];if(60===T.seconds)t=m.slice(-5e4),console.log(`📊 [Chart] Displaying ${t.length} 1m candles (from ${m.length} available)`);else{t=sh.aggregateCandles(m,T.seconds),console.log(`📊 [Chart] Aggregated ${m.length} 1m candles into ${t.length} ${T.label} candles BEFORE processing`);const i=Math.floor(Date.now()/1e3),e=Math.floor(i/T.seconds)*T.seconds;if(t.length>0){if(t[t.length-1].time===e){const i=m.filter(t=>Math.floor(t.time/T.seconds)*T.seconds===e);i.length>0?console.log(`🕯️ [Chart] Showing incomplete ${T.label} candle with ${i.length} 1m candles`):(t=t.slice(0,-1),console.log(`⏭️ [Chart] Hiding incomplete ${T.label} candle (no data yet)`))}}t=sh.fillGaps(t,T.seconds),t.length>5e4&&(t=t.slice(-5e4),console.log(`✂️ [Chart] Trimmed to last 50000 ${T.label} candles`)),console.log(`📊 [Chart] Final display: ${t.length} ${T.label} candles`)}f(t),u.current.setData(t.map(t=>({...t,time:t.time}))),c.current&&c.current.timeScale().scrollToRealTime()}catch(t){console.error("❌ [Chart] Error aggregating candles:",t)}},[m,T]);return t.useEffect(()=>{u.current&&0!==m.length&&V()},[m,T,V]),t.useEffect(()=>{if((b||R)&&!d.length){const t=setTimeout(()=>{w(!1)},1e4);return()=>clearTimeout(t)}},[b,R,d.length]),y?t.createElement("div",{className:"p-4 bg-red-50 border border-red-200 rounded-lg"},t.createElement("div",{className:"text-red-800 font-medium"},"Chart Error"),t.createElement("div",{className:"text-red-600 text-sm"},y),t.createElement("button",{onClick:()=>S(null),className:"mt-2 px-3 py-1 bg-red-100 text-red-700 rounded text-sm hover:bg-red-200"},"Dismiss")):t.createElement("div",{className:"w-full"},t.createElement("div",{className:"mb-4 flex flex-wrap gap-2 items-center"},t.createElement("div",{className:"flex flex-wrap gap-2"},k.map(i=>t.createElement("button",{key:i.value,onClick:()=>P(i.value),className:`\n px-3 py-2 rounded-lg text-sm font-medium transition-colors\n ${T.value===i.value?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}\n `},i.label))),t.createElement("div",{className:"ml-auto flex items-center gap-2 text-sm"},t.createElement("div",{className:"w-2 h-2 rounded-full "+(z?"bg-green-500":"bg-red-500")}),t.createElement("span",{className:z?"text-green-600":"text-red-600"},z?"Connected":"Disconnected"),(b||R)&&t.createElement("span",{className:"text-blue-600"},"• Loading..."),d.length>0&&t.createElement("span",{className:"text-green-600"},"• ",d.length," candles • ",O(g)))),t.createElement("div",{ref:a,className:"relative w-full h-96"},(b||R)&&t.createElement("div",{className:"absolute inset-0 bg-white bg-opacity-75 flex items-center justify-center rounded-lg z-10"},t.createElement("div",{className:"text-center"},t.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto mb-2"}),t.createElement("div",{className:"text-gray-600"},"Loading real-time data..."))),!b&&!R&&0===d.length&&t.createElement("div",{className:"absolute inset-0 bg-white bg-opacity-75 flex items-center justify-center rounded-lg z-10"},t.createElement("div",{className:"text-center"},t.createElement("div",{className:"text-gray-600 mb-2"},"No market data available"),t.createElement("div",{className:"text-sm text-gray-500"},"Waiting for real-time data...")))))};exports.API_CONFIG=ih,exports.FunhiChart=nh,exports.ProfessionalTradingChartRedux=nh,exports.candleAggregation=sh,exports.candleStorageService=eh,exports.useOptimizedTokenAnalytics=Tn,exports.useSocket=kn;
|
|
7
|
+
*/const l={upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},a={upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},c={color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},u={topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",invertFilledArea:!1,lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},d={baseValue:{type:"price",price:0},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},f={color:"#26a69a",base:0},m={color:"#2196f3"},p={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 g,v,b;function w(t,i){const e={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(e)}function y(t,i,e,s){t.beginPath();const n=t.lineWidth%2?.5:0;t.moveTo(e,i+n),t.lineTo(s,i+n),t.stroke()}function S(t,i){if(!t)throw new Error("Assertion failed"+(i?": "+i:""))}function C(t){if(void 0===t)throw new Error("Value is undefined");return t}function x(t){if(null===t)throw new Error("Value is null");return t}function _(t){return x(C(t))}(b=g||(g={}))[b.Simple=0]="Simple",b[b.WithSteps=1]="WithSteps",b[b.Curved=2]="Curved",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"}(v||(v={}));const E={khaki:"#f0e68c",azure:"#f0ffff",aliceblue:"#f0f8ff",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",gray:"#808080",green:"#008000",honeydew:"#f0fff0",floralwhite:"#fffaf0",lightblue:"#add8e6",lightcoral:"#f08080",lemonchiffon:"#fffacd",hotpink:"#ff69b4",lightyellow:"#ffffe0",greenyellow:"#adff2f",lightgoldenrodyellow:"#fafad2",limegreen:"#32cd32",linen:"#faf0e6",lightcyan:"#e0ffff",magenta:"#f0f",maroon:"#800000",olive:"#808000",orange:"#ffa500",oldlace:"#fdf5e6",mediumblue:"#0000cd",transparent:"#0000",lime:"#0f0",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",midnightblue:"#191970",orchid:"#da70d6",mediumorchid:"#ba55d3",mediumturquoise:"#48d1cc",orangered:"#ff4500",royalblue:"#4169e1",powderblue:"#b0e0e6",red:"#f00",coral:"#ff7f50",turquoise:"#40e0d0",white:"#fff",whitesmoke:"#f5f5f5",wheat:"#f5deb3",teal:"#008080",steelblue:"#4682b4",bisque:"#ffe4c4",aquamarine:"#7fffd4",aqua:"#0ff",sienna:"#a0522d",silver:"#c0c0c0",springgreen:"#00ff7f",antiquewhite:"#faebd7",burlywood:"#deb887",brown:"#a52a2a",beige:"#f5f5dc",chocolate:"#d2691e",chartreuse:"#7fff00",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cadetblue:"#5f9ea0",tomato:"#ff6347",fuchsia:"#f0f",blue:"#00f",salmon:"#fa8072",blanchedalmond:"#ffebcd",slateblue:"#6a5acd",slategray:"#708090",thistle:"#d8bfd8",tan:"#d2b48c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",blueviolet:"#8a2be2",black:"#000",darkmagenta:"#8b008b",darkslateblue:"#483d8b",darkkhaki:"#bdb76b",darkorchid:"#9932cc",darkorange:"#ff8c00",darkgreen:"#006400",darkred:"#8b0000",dodgerblue:"#1e90ff",darkslategray:"#2f4f4f",dimgray:"#696969",deepskyblue:"#00bfff",firebrick:"#b22222",forestgreen:"#228b22",indigo:"#4b0082",ivory:"#fffff0",lavenderblush:"#fff0f5",feldspar:"#d19275",indianred:"#cd5c5c",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightskyblue:"#87cefa",lightslategray:"#789",lightslateblue:"#8470ff",snow:"#fffafa",lightseagreen:"#20b2aa",lightsalmon:"#ffa07a",darksalmon:"#e9967a",darkviolet:"#9400d3",mediumpurple:"#9370d8",mediumaquamarine:"#66cdaa",skyblue:"#87ceeb",lavender:"#e6e6fa",lightsteelblue:"#b0c4de",mediumvioletred:"#c71585",mintcream:"#f5fffa",navajowhite:"#ffdead",navy:"#000080",olivedrab:"#6b8e23",palevioletred:"#d87093",violetred:"#d02090",yellow:"#ff0",yellowgreen:"#9acd32",lawngreen:"#7cfc00",pink:"#ffc0cb",paleturquoise:"#afeeee",palegoldenrod:"#eee8aa",darkolivegreen:"#556b2f",darkseagreen:"#8fbc8f",darkturquoise:"#00ced1",peachpuff:"#ffdab9",deeppink:"#ff1493",violet:"#ee82ee",palegreen:"#98fb98",mediumseagreen:"#3cb371",peru:"#cd853f",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",purple:"#800080",seagreen:"#2e8b57",seashell:"#fff5ee",papayawhip:"#ffefd5",mediumslateblue:"#7b68ee",plum:"#dda0dd",mediumspringgreen:"#00fa9a"};function M(t){return t<0?0:t>255?255:Math.round(t)||0}function z(t){return t<=0||t>1?Math.min(Math.max(t,0),1):Math.round(1e4*t)/1e4}const R=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,k=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,T=/^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/,L=/^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d*\.?\d+)\s*\)$/;function O(t){(t=t.toLowerCase())in E&&(t=E[t]);{const i=L.exec(t)||T.exec(t);if(i)return[M(parseInt(i[1],10)),M(parseInt(i[2],10)),M(parseInt(i[3],10)),z(i.length<5?1:parseFloat(i[4]))]}{const i=k.exec(t);if(i)return[M(parseInt(i[1],16)),M(parseInt(i[2],16)),M(parseInt(i[3],16)),1]}{const i=R.exec(t);if(i)return[M(17*parseInt(i[1],16)),M(17*parseInt(i[2],16)),M(17*parseInt(i[3],16)),1]}throw new Error(`Cannot parse color: ${t}`)}function N(t){return.199*t[0]+.687*t[1]+.114*t[2]}function $(t){const i=O(t);return{t:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,i:N(i)>160?"black":"white"}}class P{constructor(){this.h=[]}l(t,i,e){const s={o:t,_:i,u:!0===e};this.h.push(s)}v(t){const i=this.h.findIndex(i=>t===i.o);i>-1&&this.h.splice(i,1)}p(t){this.h=this.h.filter(i=>i._!==t)}m(t,i,e){const s=[...this.h];this.h=this.h.filter(t=>!t.u),s.forEach(s=>s.o(t,i,e))}M(){return this.h.length>0}S(){this.h=[]}}function V(t,...i){for(const e of i)for(const i in e)void 0!==e[i]&&Object.prototype.hasOwnProperty.call(e,i)&&!["__proto__","constructor","prototype"].includes(i)&&("object"!=typeof e[i]||void 0===t[i]||Array.isArray(e[i])?t[i]=e[i]:V(t[i],e[i]));return t}function D(t){return"number"==typeof t&&isFinite(t)}function A(t){return"number"==typeof t&&t%1==0}function B(t){return"string"==typeof t}function F(t){return"boolean"==typeof t}function W(t){const i=t;if(!i||"object"!=typeof i)return i;let e,s,n;for(s in e=Array.isArray(i)?[]:{},i)i.hasOwnProperty(s)&&(n=i[s],e[s]=n&&"object"==typeof n?W(n):n);return e}function j(t){return null!==t}function I(t){return null===t?void 0:t}const U="-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif";function H(t,i,e){return void 0===i&&(i=U),`${e=void 0!==e?`${e} `:""}${t}px ${i}`}class K{constructor(t){this.k={C:1,T:5,P:NaN,R:"",D:"",V:"",O:"",B:0,A:0,I:0,L:0,N:0},this.F=t}W(){const t=this.k,i=this.j(),e=this.H();return t.P===i&&t.D===e||(t.P=i,t.D=e,t.R=H(i,e),t.L=2.5/12*i,t.B=t.L,t.A=i/12*t.T,t.I=i/12*t.T,t.N=0),t.V=this.$(),t.O=this.U(),this.k}$(){return this.F.W().layout.textColor}U(){return this.F.q()}j(){return this.F.W().layout.fontSize}H(){return this.F.W().layout.fontFamily}}class q{constructor(){this.Y=[]}Z(t){this.Y=t}X(t,i,e){this.Y.forEach(s=>{s.X(t,i,e)})}}class X{X(t,i,e){t.useBitmapCoordinateSpace(t=>this.K(t,i,e))}}class J extends X{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e}){if(null===this.G||null===this.G.tt)return;const s=this.G.tt,n=this.G,r=Math.max(1,Math.floor(i))%2/2,o=o=>{t.beginPath();for(let h=s.to-1;h>=s.from;--h){const s=n.it[h],l=Math.round(s.nt*i)+r,a=s.st*e,c=o*e+r;t.moveTo(l,a),t.arc(l,a,c,0,2*Math.PI)}t.fill()};n.et>0&&(t.fillStyle=n.rt,o(n.ht+n.et)),t.fillStyle=n.lt,o(n.ht)}}function G(){return{it:[{nt:0,st:0,ot:0,_t:0}],lt:"",rt:"",ht:0,et:0,tt:null}}const Q={from:0,to:1};class Y{constructor(t,i){this.ut=new q,this.ct=[],this.dt=[],this.ft=!0,this.F=t,this.vt=i,this.ut.Z(this.ct)}bt(t){const i=this.F.wt();i.length!==this.ct.length&&(this.dt=i.map(G),this.ct=this.dt.map(t=>{const i=new J;return i.J(t),i}),this.ut.Z(this.ct)),this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.ut}Mt(){const t=2===this.vt.W().mode,i=this.F.wt(),e=this.vt.xt(),s=this.F.St();i.forEach((i,n)=>{var r;const o=this.dt[n],h=i.kt(e);if(t||null===h||!i.yt())return void(o.tt=null);const l=x(i.Ct());o.lt=h.Tt,o.ht=h.ht,o.et=h.Pt,o.it[0]._t=h._t,o.it[0].st=i.Dt().Rt(h._t,l.Vt),o.rt=null!==(r=h.Ot)&&void 0!==r?r:this.F.Bt(o.it[0].st/i.Dt().At()),o.it[0].ot=e,o.it[0].nt=s.It(e),o.tt=Q})}}class Z extends X{constructor(t){super(),this.zt=t}K({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:s}){if(null===this.zt)return;const n=this.zt.Lt.yt,r=this.zt.Et.yt;if(!n&&!r)return;const o=Math.round(this.zt.nt*e),h=Math.round(this.zt.st*s);t.lineCap="butt",n&&o>=0&&(t.lineWidth=Math.floor(this.zt.Lt.et*e),t.strokeStyle=this.zt.Lt.V,t.fillStyle=this.zt.Lt.V,w(t,this.zt.Lt.Nt),function(t,i,e,s){t.beginPath();const n=t.lineWidth%2?.5:0;t.moveTo(i+n,0),t.lineTo(i+n,s),t.stroke()}(t,o,0,i.height)),r&&h>=0&&(t.lineWidth=Math.floor(this.zt.Et.et*s),t.strokeStyle=this.zt.Et.V,t.fillStyle=this.zt.Et.V,w(t,this.zt.Et.Nt),y(t,h,0,i.width))}}class tt{constructor(t){this.ft=!0,this.Ft={Lt:{et:1,Nt:0,V:"",yt:!1},Et:{et:1,Nt:0,V:"",yt:!1},nt:0,st:0},this.Wt=new Z(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.yt(),i=x(this.jt.Ht()),e=i.$t().W().crosshair,s=this.Ft;if(2===e.mode)return s.Et.yt=!1,void(s.Lt.yt=!1);s.Et.yt=t&&this.jt.Ut(i),s.Lt.yt=t&&this.jt.qt(),s.Et.et=e.horzLine.width,s.Et.Nt=e.horzLine.style,s.Et.V=e.horzLine.color,s.Lt.et=e.vertLine.width,s.Lt.Nt=e.vertLine.style,s.Lt.V=e.vertLine.color,s.nt=this.jt.Yt(),s.st=this.jt.Zt()}}function it(t,i,e,s,n,r){t.fillRect(i+r,e,s-2*r,r),t.fillRect(i+r,e+n-r,s-2*r,r),t.fillRect(i,e,r,n),t.fillRect(i+s-r,e,r,n)}function et(t,i,e,s,n,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,e,s,n),t.restore()}function st(t,i,e,s,n,r){t.beginPath(),t.roundRect?t.roundRect(i,e,s,n,r):(t.lineTo(i+s-r[1],e),0!==r[1]&&t.arcTo(i+s,e,i+s,e+r[1],r[1]),t.lineTo(i+s,e+n-r[2]),0!==r[2]&&t.arcTo(i+s,e+n,i+s-r[2],e+n,r[2]),t.lineTo(i+r[3],e+n),0!==r[3]&&t.arcTo(i,e+n,i,e+n-r[3],r[3]),t.lineTo(i,e+r[0]),0!==r[0]&&t.arcTo(i,e,i+r[0],e,r[0]))}function nt(t,i,e,s,n,r,o=0,h=[0,0,0,0],l=""){if(t.save(),!o||!l||l===r)return st(t,i,e,s,n,h),t.fillStyle=r,t.fill(),void t.restore();const a=o/2;var c;st(t,i+a,e+a,s-o,n-o,(c=-a,h.map(t=>0===t?t:t+c))),"transparent"!==r&&(t.fillStyle=r,t.fill()),"transparent"!==l&&(t.lineWidth=o,t.strokeStyle=l,t.closePath(),t.stroke()),t.restore()}function rt(t,i,e,s,n,r,o){t.save(),t.globalCompositeOperation="copy";const h=t.createLinearGradient(0,0,0,n);h.addColorStop(0,r),h.addColorStop(1,o),t.fillStyle=h,t.fillRect(i,e,s,n),t.restore()}class ot{constructor(t,i){this.J(t,i)}J(t,i){this.zt=t,this.Xt=i}At(t,i){return this.zt.yt?t.P+t.L+t.B:0}X(t,i,e,s){if(!this.zt.yt||0===this.zt.Kt.length)return;const n=this.zt.V,r=this.Xt.t,o=t.useBitmapCoordinateSpace(t=>{const o=t.context;o.font=i.R;const h=this.Gt(t,i,e,s),l=h.Jt;return h.Qt?nt(o,l.ti,l.ii,l.ni,l.si,r,l.ei,[l.ht,0,0,l.ht],r):nt(o,l.ri,l.ii,l.ni,l.si,r,l.ei,[0,l.ht,l.ht,0],r),this.zt.hi&&(o.fillStyle=n,o.fillRect(l.ri,l.li,l.ai-l.ri,l.oi)),this.zt._i&&(o.fillStyle=i.O,o.fillRect(h.Qt?l.ui-l.ei:0,l.ii,l.ei,l.ci-l.ii)),h});t.useMediaCoordinateSpace(({context:t})=>{const e=o.di;t.font=i.R,t.textAlign=o.Qt?"right":"left",t.textBaseline="middle",t.fillStyle=n,t.fillText(this.zt.Kt,e.fi,(e.ii+e.ci)/2+e.pi)})}Gt(t,i,e,s){var n;const{context:r,bitmapSize:o,mediaSize:h,horizontalPixelRatio:l,verticalPixelRatio:a}=t,c=this.zt.hi||!this.zt.mi?i.T:0,u=this.zt.bi?i.C:0,d=i.L+this.Xt.wi,f=i.B+this.Xt.gi,m=i.A,p=i.I,g=this.zt.Kt,v=i.P,b=e.Mi(r,g),w=Math.ceil(e.xi(r,g)),y=v+d+f,S=i.C+m+p+w+c,C=Math.max(1,Math.floor(a));let x=Math.round(y*a);x%2!=C%2&&(x+=1);const _=u>0?Math.max(1,Math.floor(u*l)):0,E=Math.round(S*l),M=Math.round(c*l),z=null!==(n=this.Xt.Si)&&void 0!==n?n:this.Xt.ki,R=Math.round(z*a)-Math.floor(.5*a),k=Math.floor(R+C/2-x/2),T=k+x,L="right"===s,O=L?h.width-u:u,N=L?o.width-_:_;let $,P,V;return L?($=N-E,P=N-M,V=O-c-m-u):($=N+E,P=N+M,V=O+c+m),{Qt:L,Jt:{ii:k,li:R,ci:T,ni:E,si:x,ht:2*l,ei:_,ti:$,ri:N,ai:P,oi:C,ui:o.width},di:{ii:k/a,ci:T/a,fi:V,pi:b}}}}class ht{constructor(t){this.yi={ki:0,t:"#000",gi:0,wi:0},this.Ci={Kt:"",yt:!1,hi:!0,mi:!1,Ot:"",V:"#FFF",_i:!1,bi:!1},this.Ti={Kt:"",yt:!1,hi:!1,mi:!0,Ot:"",V:"#FFF",_i:!0,bi:!0},this.ft=!0,this.Pi=new(t||ot)(this.Ci,this.yi),this.Ri=new(t||ot)(this.Ti,this.yi)}Kt(){return this.Di(),this.Ci.Kt}ki(){return this.Di(),this.yi.ki}bt(){this.ft=!0}At(t,i=!1){return Math.max(this.Pi.At(t,i),this.Ri.At(t,i))}Vi(){return this.yi.Si||0}Oi(t){this.yi.Si=t}Bi(){return this.Di(),this.Ci.yt||this.Ti.yt}Ai(){return this.Di(),this.Ci.yt}gt(t){return this.Di(),this.Ci.hi=this.Ci.hi&&t.W().ticksVisible,this.Ti.hi=this.Ti.hi&&t.W().ticksVisible,this.Pi.J(this.Ci,this.yi),this.Ri.J(this.Ti,this.yi),this.Pi}Ii(){return this.Di(),this.Pi.J(this.Ci,this.yi),this.Ri.J(this.Ti,this.yi),this.Ri}Di(){this.ft&&(this.Ci.hi=!0,this.Ti.hi=!1,this.zi(this.Ci,this.Ti,this.yi))}}class lt extends ht{constructor(t,i,e){super(),this.jt=t,this.Li=i,this.Ei=e}zi(t,i,e){if(t.yt=!1,2===this.jt.W().mode)return;const s=this.jt.W().horzLine;if(!s.labelVisible)return;const n=this.Li.Ct();if(!this.jt.yt()||this.Li.Ni()||null===n)return;const r=$(s.labelBackgroundColor);e.t=r.t,t.V=r.i;const o=2/12*this.Li.P();e.wi=o,e.gi=o;const h=this.Ei(this.Li);e.ki=h.ki,t.Kt=this.Li.Fi(h._t,n),t.yt=!0}}const at=/[1-9]/g;class ct{constructor(){this.zt=null}J(t){this.zt=t}X(t,i){if(null===this.zt||!1===this.zt.yt||0===this.zt.Kt.length)return;const e=t.useMediaCoordinateSpace(({context:t})=>(t.font=i.R,Math.round(i.Wi.xi(t,x(this.zt).Kt,at))));if(e<=0)return;const s=i.ji,n=e+2*s,r=n/2,o=this.zt.Hi;let h=this.zt.ki,l=Math.floor(h-r)+.5;l<0?(h+=Math.abs(0-l),l=Math.floor(h-r)+.5):l+n>o&&(h-=Math.abs(o-(l+n)),l=Math.floor(h-r)+.5);const a=l+n,c=Math.ceil(0+i.C+i.T+i.L+i.P+i.B);t.useBitmapCoordinateSpace(({context:t,horizontalPixelRatio:e,verticalPixelRatio:s})=>{const n=x(this.zt);t.fillStyle=n.t;const r=Math.round(l*e),o=Math.round(0*s),h=Math.round(a*e),u=Math.round(c*s),d=Math.round(2*e);if(t.beginPath(),t.moveTo(r,o),t.lineTo(r,u-d),t.arcTo(r,u,r+d,u,d),t.lineTo(h-d,u),t.arcTo(h,u,h,u-d,d),t.lineTo(h,o),t.fill(),n.hi){const r=Math.round(n.ki*e),h=o,l=Math.round((h+i.T)*s);t.fillStyle=n.V;const a=Math.max(1,Math.floor(e)),c=Math.floor(.5*e);t.fillRect(r-c,h,a,l-h)}}),t.useMediaCoordinateSpace(({context:t})=>{const e=x(this.zt),n=0+i.C+i.T+i.L+i.P/2;t.font=i.R,t.textAlign="left",t.textBaseline="middle",t.fillStyle=e.V;const r=i.Wi.Mi(t,"Apr0");t.translate(l+s,n+r),t.fillText(e.Kt,0,0)})}}class ut{constructor(t,i,e){this.ft=!0,this.Wt=new ct,this.Ft={yt:!1,t:"#4c525e",V:"white",Kt:"",Hi:0,ki:NaN,hi:!0},this.vt=t,this.$i=i,this.Ei=e}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt.J(this.Ft),this.Wt}Mt(){const t=this.Ft;if(t.yt=!1,2===this.vt.W().mode)return;const i=this.vt.W().vertLine;if(!i.labelVisible)return;const e=this.$i.St();if(e.Ni())return;t.Hi=e.Hi();const s=this.Ei();if(null===s)return;t.ki=s.ki;const n=e.Ui(this.vt.xt());t.Kt=e.qi(x(n)),t.yt=!0;const r=$(i.labelBackgroundColor);t.t=r.t,t.V=r.i,t.hi=e.W().ticksVisible}}class dt{constructor(){this.Yi=null,this.Zi=0}Xi(){return this.Zi}Ki(t){this.Zi=t}Dt(){return this.Yi}Gi(t){this.Yi=t}Ji(t){return[]}Qi(){return[]}yt(){return!0}}var ft;!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet",t[t.Hidden=2]="Hidden"}(ft||(ft={}));class mt extends dt{constructor(t,i){super(),this.tn=null,this.nn=NaN,this.sn=0,this.en=!0,this.rn=new Map,this.hn=!1,this.ln=NaN,this.an=NaN,this._n=NaN,this.un=NaN,this.$i=t,this.cn=i,this.dn=new Y(t,this),this.fn=((t,i)=>e=>{const s=i(),n=t();if(e===x(this.tn).vn())return{_t:n,ki:s};{const t=x(e.Ct());return{_t:e.pn(s,t),ki:s}}})(()=>this.nn,()=>this.an);const e=((t,i)=>()=>{const e=this.$i.St().mn(t()),s=i();return e&&Number.isFinite(s)?{ot:e,ki:s}:null})(()=>this.sn,()=>this.Yt());this.bn=new ut(this,t,e),this.wn=new tt(this)}W(){return this.cn}gn(t,i){this._n=t,this.un=i}Mn(){this._n=NaN,this.un=NaN}xn(){return this._n}Sn(){return this.un}kn(t,i,e){this.hn||(this.hn=!0),this.en=!0,this.yn(t,i,e)}xt(){return this.sn}Yt(){return this.ln}Zt(){return this.an}yt(){return this.en}Cn(){this.en=!1,this.Tn(),this.nn=NaN,this.ln=NaN,this.an=NaN,this.tn=null,this.Mn()}Pn(t){return null!==this.tn?[this.wn,this.dn]:[]}Ut(t){return t===this.tn&&this.cn.horzLine.visible}qt(){return this.cn.vertLine.visible}Rn(t,i){this.en&&this.tn===t||this.rn.clear();const e=[];return this.tn===t&&e.push(this.Dn(this.rn,i,this.fn)),e}Qi(){return this.en?[this.bn]:[]}Ht(){return this.tn}Vn(){this.wn.bt(),this.rn.forEach(t=>t.bt()),this.bn.bt(),this.dn.bt()}On(t){return t&&!t.vn().Ni()?t.vn():null}yn(t,i,e){this.Bn(t,i,e)&&this.Vn()}Bn(t,i,e){const s=this.ln,n=this.an,r=this.nn,o=this.sn,h=this.tn,l=this.On(e);this.sn=t,this.ln=isNaN(t)?NaN:this.$i.St().It(t),this.tn=e;const a=null!==l?l.Ct():null;return null!==l&&null!==a?(this.nn=i,this.an=l.Rt(i,a)):(this.nn=NaN,this.an=NaN),s!==this.ln||n!==this.an||o!==this.sn||r!==this.nn||h!==this.tn}Tn(){const t=this.$i.wt().map(t=>t.In().An()).filter(j),i=0===t.length?null:Math.max(...t);this.sn=null!==i?i:NaN}Dn(t,i,e){let s=t.get(i);return void 0===s&&(s=new lt(this,i,e),t.set(i,s)),s}}function pt(t){return"left"===t||"right"===t}class gt{constructor(t){this.zn=new Map,this.Ln=[],this.En=t}Nn(t,i){const e=function(t,i){return void 0===t?i:{Fn:Math.max(t.Fn,i.Fn),Wn:t.Wn||i.Wn}}(this.zn.get(t),i);this.zn.set(t,e)}jn(){return this.En}Hn(t){const i=this.zn.get(t);return void 0===i?{Fn:this.En}:{Fn:Math.max(this.En,i.Fn),Wn:i.Wn}}$n(){this.Un(),this.Ln=[{qn:0}]}Yn(t){this.Un(),this.Ln=[{qn:1,Vt:t}]}Zn(t){this.Xn(),this.Ln.push({qn:5,Vt:t})}Un(){this.Xn(),this.Ln.push({qn:6})}Kn(){this.Un(),this.Ln=[{qn:4}]}Gn(t){this.Un(),this.Ln.push({qn:2,Vt:t})}Jn(t){this.Un(),this.Ln.push({qn:3,Vt:t})}Qn(){return this.Ln}ts(t){for(const i of t.Ln)this.ns(i);this.En=Math.max(this.En,t.En),t.zn.forEach((t,i)=>{this.Nn(i,t)})}static ss(){return new gt(2)}static es(){return new gt(3)}ns(t){switch(t.qn){case 0:this.$n();break;case 1:this.Yn(t.Vt);break;case 2:this.Gn(t.Vt);break;case 3:this.Jn(t.Vt);break;case 4:this.Kn();break;case 5:this.Zn(t.Vt);break;case 6:this.Xn()}}Xn(){const t=this.Ln.findIndex(t=>5===t.qn);-1!==t&&this.Ln.splice(t,1)}}function vt(t,i){if(!D(t))return"n/a";if(!A(i))throw new TypeError("invalid length");if(i<0||i>16)throw new TypeError("invalid length");return 0===i?t.toString():("0000000000000000"+t.toString()).slice(-i)}class bt{constructor(t,i){if(i||(i=1),D(t)&&A(t)||(t=100),t<0)throw new TypeError("invalid base");this.Li=t,this.rs=i,this.hs()}format(t){const i=t<0?"−":"";return t=Math.abs(t),i+this.ls(t)}hs(){if(this._s=0,this.Li>0&&this.rs>0){let t=this.Li;for(;t>1;)t/=10,this._s++}}ls(t){const i=this.Li/this.rs;let e=Math.floor(t),s="";const n=void 0!==this._s?this._s:NaN;if(i>1){let r=+(Math.round(t*i)-e*i).toFixed(this._s);r>=i&&(r-=i,e+=1),s="."+vt(+r.toFixed(this._s)*this.rs,n)}else e=Math.round(e*i)/i,n>0&&(s="."+vt(0,n));return e.toFixed(0)+s}}class wt extends bt{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class yt{constructor(t){this.us=t}format(t){let i="";return t<0&&(i="-",t=-t),t<995?i+this.cs(t):t<999995?i+this.cs(t/1e3)+"K":t<999999995?(t=1e3*Math.round(t/1e3),i+this.cs(t/1e6)+"M"):(t=1e6*Math.round(t/1e6),i+this.cs(t/1e9)+"B")}cs(t){let i;const e=Math.pow(10,this.us);return i=(t=Math.round(t*e)/e)>=1e-15&&t<1?t.toFixed(this.us).replace(/\.?0+$/,""):String(t),i.replace(/(\.[1-9]*)0+$/,(t,i)=>i)}}function St(t,i,e,s,n,r,o){if(0===i.length||s.from>=i.length||s.to<=0)return;const{context:h,horizontalPixelRatio:l,verticalPixelRatio:a}=t,c=i[s.from];let u=r(t,c),d=c;if(s.to-s.from<2){const i=n/2;h.beginPath();const e={nt:c.nt-i,st:c.st},s={nt:c.nt+i,st:c.st};h.moveTo(e.nt*l,e.st*a),h.lineTo(s.nt*l,s.st*a),o(t,u,e,s)}else{const n=(i,e)=>{o(t,u,d,e),h.beginPath(),u=i,d=e};let f=d;h.beginPath(),h.moveTo(c.nt*l,c.st*a);for(let o=s.from+1;o<s.to;++o){f=i[o];const s=r(t,f);switch(e){case 0:h.lineTo(f.nt*l,f.st*a);break;case 1:h.lineTo(f.nt*l,i[o-1].st*a),s!==u&&(n(s,f),h.lineTo(f.nt*l,i[o-1].st*a)),h.lineTo(f.nt*l,f.st*a);break;case 2:{const[t,e]=Et(i,o-1,o);h.bezierCurveTo(t.nt*l,t.st*a,e.nt*l,e.st*a,f.nt*l,f.st*a);break}}1!==e&&s!==u&&(n(s,f),h.moveTo(f.nt*l,f.st*a))}(d!==f||d===f&&1===e)&&o(t,u,d,f)}}const Ct=6;function xt(t,i){return{nt:t.nt-i.nt,st:t.st-i.st}}function _t(t,i){return{nt:t.nt/i,st:t.st/i}}function Et(t,i,e){const s=Math.max(0,i-1),n=Math.min(t.length-1,e+1);var r,o;return[(r=t[i],o=_t(xt(t[e],t[s]),Ct),{nt:r.nt+o.nt,st:r.st+o.st}),xt(t[e],_t(xt(t[n],t[i]),Ct))]}function Mt(t,i,e,s,n){const{context:r,horizontalPixelRatio:o,verticalPixelRatio:h}=i;r.lineTo(n.nt*o,t*h),r.lineTo(s.nt*o,t*h),r.closePath(),r.fillStyle=e,r.fill()}class zt extends X{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K(t){var i;if(null===this.G)return;const{it:e,tt:s,ds:n,et:r,Nt:o,fs:h}=this.G,l=null!==(i=this.G.vs)&&void 0!==i?i:this.G.ps?0:t.mediaSize.height;if(null===s)return;const a=t.context;a.lineCap="butt",a.lineJoin="round",a.lineWidth=r,w(a,o),a.lineWidth=1,St(t,e,h,s,n,this.bs.bind(this),Mt.bind(null,l))}}function Rt(t,i,e){return Math.min(Math.max(t,i),e)}function kt(t,i,e){return i-t<=e}function Tt(t){const i=Math.ceil(t);return i%2==0?i-1:i}class Lt{ws(t,i){const e=this.gs,{Ms:s,xs:n,Ss:r,ks:o,ys:h,vs:l}=i;if(void 0===this.Cs||void 0===e||e.Ms!==s||e.xs!==n||e.Ss!==r||e.ks!==o||e.vs!==l||e.ys!==h){const e=t.context.createLinearGradient(0,0,0,h);if(e.addColorStop(0,s),null!=l){const i=Rt(l*t.verticalPixelRatio/h,0,1);e.addColorStop(i,n),e.addColorStop(i,r)}e.addColorStop(1,o),this.Cs=e,this.gs=i}return this.Cs}}class Ot extends zt{constructor(){super(...arguments),this.Ts=new Lt}bs(t,i){return this.Ts.ws(t,{Ms:i.Ps,xs:"",Ss:"",ks:i.Rs,ys:t.bitmapSize.height})}}function Nt(t,i){const e=t.context;e.strokeStyle=i,e.stroke()}class $t extends X{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K(t){if(null===this.G)return;const{it:i,tt:e,ds:s,fs:n,et:r,Nt:o,Ds:h}=this.G;if(null===e)return;const l=t.context;l.lineCap="butt",l.lineWidth=r*t.verticalPixelRatio,w(l,o),l.lineJoin="round";const a=this.Vs.bind(this);void 0!==n&&St(t,i,n,e,s,a,Nt),h&&function(t,i,e,s,n){const{horizontalPixelRatio:r,verticalPixelRatio:o,context:h}=t;let l=null;const a=Math.max(1,Math.floor(r))%2/2,c=e*o+a;for(let e=s.to-1;e>=s.from;--e){const s=i[e];if(s){const i=n(t,s);i!==l&&(h.beginPath(),null!==l&&h.fill(),h.fillStyle=i,l=i);const e=Math.round(s.nt*r)+a,u=s.st*o;h.moveTo(e,u),h.arc(e,u,c,0,2*Math.PI)}}h.fill()}(t,i,h,e,a)}}class Pt extends $t{Vs(t,i){return i.lt}}function Vt(t,i,e,s,n=0,r=i.length){let o=r-n;for(;0<o;){const r=o>>1,h=n+r;s(i[h],e)===t?(n=h+1,o-=r+1):o=r}return n}const Dt=Vt.bind(null,!0),At=Vt.bind(null,!1);function Bt(t,i){return t.ot<i}function Ft(t,i){return i<t.ot}function Wt(t,i,e){const s=i.Os(),n=i.ui(),r=Dt(t,s,Bt),o=At(t,n,Ft);if(!e)return{from:r,to:o};let h=r,l=o;return r>0&&r<t.length&&t[r].ot>=s&&(h=r-1),o>0&&o<t.length&&t[o-1].ot<=n&&(l=o+1),{from:h,to:l}}class jt{constructor(t,i,e){this.Bs=!0,this.As=!0,this.Is=!0,this.zs=[],this.Ls=null,this.Es=t,this.Ns=i,this.Fs=e}bt(t){this.Bs=!0,"data"===t&&(this.As=!0),"options"===t&&(this.Is=!0)}gt(){return this.Es.yt()?(this.Ws(),null===this.Ls?null:this.js):null}Hs(){this.zs=this.zs.map(t=>Object.assign(Object.assign({},t),this.Es.Us().$s(t.ot)))}qs(){this.Ls=null}Ws(){this.As&&(this.Ys(),this.As=!1),this.Is&&(this.Hs(),this.Is=!1),this.Bs&&(this.Zs(),this.Bs=!1)}Zs(){const t=this.Es.Dt(),i=this.Ns.St();if(this.qs(),i.Ni()||t.Ni())return;const e=i.Xs();if(null===e)return;if(0===this.Es.In().Ks())return;const s=this.Es.Ct();null!==s&&(this.Ls=Wt(this.zs,e,this.Fs),this.Gs(t,i,s.Vt),this.Js())}}class It extends jt{constructor(t,i){super(t,i,!0)}Gs(t,i,e){i.Qs(this.zs,I(this.Ls)),t.te(this.zs,e,I(this.Ls))}ie(t,i){return{ot:t,_t:i,nt:NaN,st:NaN}}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map(i=>{const e=i.Vt[3];return this.se(i.ee,e,t)})}}class Ut extends It{constructor(t,i){super(t,i),this.js=new q,this.re=new Ot,this.he=new Pt,this.js.Z([this.re,this.he])}se(t,i,e){return Object.assign(Object.assign({},this.ie(t,i)),e.$s(t))}Js(){const t=this.Es.W();this.re.J({fs:t.lineType,it:this.zs,Nt:t.lineStyle,et:t.lineWidth,vs:null,ps:t.invertFilledArea,tt:this.Ls,ds:this.Ns.St().le()}),this.he.J({fs:t.lineVisible?t.lineType:void 0,it:this.zs,Nt:t.lineStyle,et:t.lineWidth,tt:this.Ls,ds:this.Ns.St().le(),Ds:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}}class Ht extends X{constructor(){super(...arguments),this.zt=null,this.ae=0,this.oe=0}J(t){this.zt=t}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e}){if(null===this.zt||0===this.zt.In.length||null===this.zt.tt)return;this.ae=this._e(i),this.ae>=2&&Math.max(1,Math.floor(i))%2!=this.ae%2&&this.ae--,this.oe=this.zt.ue?Math.min(this.ae,Math.floor(i)):this.ae;let s=null;const n=this.oe<=this.ae&&this.zt.le>=Math.floor(1.5*i);for(let r=this.zt.tt.from;r<this.zt.tt.to;++r){const o=this.zt.In[r];s!==o.ce&&(t.fillStyle=o.ce,s=o.ce);const h=Math.floor(.5*this.oe),l=Math.round(o.nt*i),a=l-h,c=this.oe,u=a+c-1,d=Math.min(o.de,o.fe),f=Math.max(o.de,o.fe),m=Math.round(d*e)-h,p=Math.round(f*e)+h,g=Math.max(p-m,this.oe);t.fillRect(a,m,c,g);const v=Math.ceil(1.5*this.ae);if(n){if(this.zt.ve){const i=l-v;let s=Math.max(m,Math.round(o.pe*e)-h),n=s+c-1;n>m+g-1&&(n=m+g-1,s=n-c+1),t.fillRect(i,s,a-i,n-s+1)}const i=l+v;let s=Math.max(m,Math.round(o.me*e)-h),n=s+c-1;n>m+g-1&&(n=m+g-1,s=n-c+1),t.fillRect(u+1,s,i-u,n-s+1)}}}_e(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(x(this.zt).le,t)))}}class Kt extends jt{constructor(t,i){super(t,i,!1)}Gs(t,i,e){i.Qs(this.zs,I(this.Ls)),t.be(this.zs,e,I(this.Ls))}we(t,i,e){return{ot:t,ge:i.Vt[0],Me:i.Vt[1],xe:i.Vt[2],Se:i.Vt[3],nt:NaN,pe:NaN,de:NaN,fe:NaN,me:NaN}}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map(i=>this.se(i.ee,i,t))}}class qt extends Kt{constructor(){super(...arguments),this.js=new Ht}se(t,i,e){return Object.assign(Object.assign({},this.we(t,i,e)),e.$s(t))}Js(){const t=this.Es.W();this.js.J({In:this.zs,le:this.Ns.St().le(),ve:t.openVisible,ue:t.thinBars,tt:this.Ls})}}class Xt extends zt{constructor(){super(...arguments),this.Ts=new Lt}bs(t,i){const e=this.G;return this.Ts.ws(t,{Ms:i.ke,xs:i.ye,Ss:i.Ce,ks:i.Te,ys:t.bitmapSize.height,vs:e.vs})}}class Jt extends $t{constructor(){super(...arguments),this.Pe=new Lt}Vs(t,i){const e=this.G;return this.Pe.ws(t,{Ms:i.Re,xs:i.Re,Ss:i.De,ks:i.De,ys:t.bitmapSize.height,vs:e.vs})}}class Gt extends It{constructor(t,i){super(t,i),this.js=new q,this.Ve=new Xt,this.Oe=new Jt,this.js.Z([this.Ve,this.Oe])}se(t,i,e){return Object.assign(Object.assign({},this.ie(t,i)),e.$s(t))}Js(){const t=this.Es.Ct();if(null===t)return;const i=this.Es.W(),e=this.Es.Dt().Rt(i.baseValue.price,t.Vt),s=this.Ns.St().le();this.Ve.J({it:this.zs,et:i.lineWidth,Nt:i.lineStyle,fs:i.lineType,vs:e,ps:!1,tt:this.Ls,ds:s}),this.Oe.J({it:this.zs,et:i.lineWidth,Nt:i.lineStyle,fs:i.lineVisible?i.lineType:void 0,Ds:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,vs:e,tt:this.Ls,ds:s})}}class Qt extends X{constructor(){super(...arguments),this.zt=null,this.ae=0}J(t){this.zt=t}K(t){if(null===this.zt||0===this.zt.In.length||null===this.zt.tt)return;const{horizontalPixelRatio:i}=t;this.ae=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);const e=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),s=Math.floor(t*e*i),n=Math.floor(t*i),r=Math.min(s,n);return Math.max(Math.floor(i),r)}(this.zt.le,i),this.ae>=2&&Math.floor(i)%2!=this.ae%2&&this.ae--;const e=this.zt.In;this.zt.Be&&this.Ae(t,e,this.zt.tt),this.zt._i&&this.Ie(t,e,this.zt.tt);const s=this.ze(i);(!this.zt._i||this.ae>2*s)&&this.Le(t,e,this.zt.tt)}Ae(t,i,e){if(null===this.zt)return;const{context:s,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o="",h=Math.min(Math.floor(n),Math.floor(this.zt.le*n));h=Math.max(Math.floor(n),Math.min(h,this.ae));const l=Math.floor(.5*h);let a=null;for(let t=e.from;t<e.to;t++){const e=i[t];e.Ee!==o&&(s.fillStyle=e.Ee,o=e.Ee);const c=Math.round(Math.min(e.pe,e.me)*r),u=Math.round(Math.max(e.pe,e.me)*r),d=Math.round(e.de*r),f=Math.round(e.fe*r);let m=Math.round(n*e.nt)-l;const p=m+h-1;null!==a&&(m=Math.max(a+1,m),m=Math.min(m,p));const g=p-m+1;s.fillRect(m,d,g,c-d),s.fillRect(m,u+1,g,f-u),a=p}}ze(t){let i=Math.floor(1*t);this.ae<=2*i&&(i=Math.floor(.5*(this.ae-1)));const e=Math.max(Math.floor(t),i);return this.ae<=2*e?Math.max(Math.floor(t),Math.floor(1*t)):e}Ie(t,i,e){if(null===this.zt)return;const{context:s,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o="";const h=this.ze(n);let l=null;for(let t=e.from;t<e.to;t++){const e=i[t];e.Ne!==o&&(s.fillStyle=e.Ne,o=e.Ne);let a=Math.round(e.nt*n)-Math.floor(.5*this.ae);const c=a+this.ae-1,u=Math.round(Math.min(e.pe,e.me)*r),d=Math.round(Math.max(e.pe,e.me)*r);if(null!==l&&(a=Math.max(l+1,a),a=Math.min(a,c)),this.zt.le*n>2*h)it(s,a,u,c-a+1,d-u+1,h);else{const t=c-a+1;s.fillRect(a,u,t,d-u+1)}l=c}}Le(t,i,e){if(null===this.zt)return;const{context:s,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o="";const h=this.ze(n);for(let t=e.from;t<e.to;t++){const e=i[t];let l=Math.round(Math.min(e.pe,e.me)*r),a=Math.round(Math.max(e.pe,e.me)*r),c=Math.round(e.nt*n)-Math.floor(.5*this.ae),u=c+this.ae-1;if(e.ce!==o){const t=e.ce;s.fillStyle=t,o=t}this.zt._i&&(c+=h,l+=h,u-=h,a-=h),l>a||s.fillRect(c,l,u-c+1,a-l+1)}}}class Yt extends Kt{constructor(){super(...arguments),this.js=new Qt}se(t,i,e){return Object.assign(Object.assign({},this.we(t,i,e)),e.$s(t))}Js(){const t=this.Es.W();this.js.J({In:this.zs,le:this.Ns.St().le(),Be:t.wickVisible,_i:t.borderVisible,tt:this.Ls})}}class Zt{constructor(t,i){this.Fe=t,this.Li=i}X(t,i,e){this.Fe.draw(t,this.Li,i,e)}}class ti extends jt{constructor(t,i,e){super(t,i,!1),this.wn=e,this.js=new Zt(this.wn.renderer(),i=>{const e=t.Ct();return null===e?null:t.Dt().Rt(i,e.Vt)})}We(t){return this.wn.priceValueBuilder(t)}je(t){return this.wn.isWhitespace(t)}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map(i=>Object.assign(Object.assign({ot:i.ee,nt:NaN},t.$s(i.ee)),{He:i.$e}))}Gs(t,i){i.Qs(this.zs,I(this.Ls))}Js(){this.wn.update({bars:this.zs.map(ii),barSpacing:this.Ns.St().le(),visibleRange:this.Ls},this.Es.W())}}function ii(t){return{x:t.nt,time:t.ot,originalData:t.He,barColor:t.ce}}class ei extends X{constructor(){super(...arguments),this.zt=null,this.Ue=[]}J(t){this.zt=t,this.Ue=[]}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e}){if(null===this.zt||0===this.zt.it.length||null===this.zt.tt)return;this.Ue.length||this.qe(i);const s=Math.max(1,Math.floor(e)),n=Math.round(this.zt.Ye*e)-Math.floor(s/2),r=n+s;for(let i=this.zt.tt.from;i<this.zt.tt.to;i++){const o=this.zt.it[i],h=this.Ue[i-this.zt.tt.from],l=Math.round(o.st*e);let a,c;t.fillStyle=o.ce,l<=n?(a=l,c=r):(a=n,c=l-Math.floor(s/2)+s),t.fillRect(h.Os,a,h.ui-h.Os+1,c-a)}}qe(t){if(null===this.zt||0===this.zt.it.length||null===this.zt.tt)return void(this.Ue=[]);const i=Math.ceil(this.zt.le*t)<=1?0:Math.max(1,Math.floor(t)),e=Math.round(this.zt.le*t)-i;this.Ue=new Array(this.zt.tt.to-this.zt.tt.from);for(let i=this.zt.tt.from;i<this.zt.tt.to;i++){const s=this.zt.it[i],n=Math.round(s.nt*t);let r,o;if(e%2){const t=(e-1)/2;r=n-t,o=n+t}else{const t=e/2;r=n-t,o=n+t-1}this.Ue[i-this.zt.tt.from]={Os:r,ui:o,Ze:n,Xe:s.nt*t,ot:s.ot}}for(let t=this.zt.tt.from+1;t<this.zt.tt.to;t++){const e=this.Ue[t-this.zt.tt.from],s=this.Ue[t-this.zt.tt.from-1];e.ot===s.ot+1&&e.Os-s.ui!==i+1&&(s.Ze>s.Xe?s.ui=e.Os-i-1:e.Os=s.ui+i+1)}let s=Math.ceil(this.zt.le*t);for(let t=this.zt.tt.from;t<this.zt.tt.to;t++){const i=this.Ue[t-this.zt.tt.from];i.ui<i.Os&&(i.ui=i.Os);const e=i.ui-i.Os+1;s=Math.min(e,s)}if(i>0&&s<4)for(let t=this.zt.tt.from;t<this.zt.tt.to;t++){const i=this.Ue[t-this.zt.tt.from];i.ui-i.Os+1>s&&(i.Ze>i.Xe?i.ui-=1:i.Os+=1)}}}class si extends It{constructor(){super(...arguments),this.js=new ei}se(t,i,e){return Object.assign(Object.assign({},this.ie(t,i)),e.$s(t))}Js(){const t={it:this.zs,le:this.Ns.St().le(),tt:this.Ls,Ye:this.Es.Dt().Rt(this.Es.W().base,x(this.Es.Ct()).Vt)};this.js.J(t)}}class ni extends It{constructor(){super(...arguments),this.js=new Pt}se(t,i,e){return Object.assign(Object.assign({},this.ie(t,i)),e.$s(t))}Js(){const t=this.Es.W(),i={it:this.zs,Nt:t.lineStyle,fs:t.lineVisible?t.lineType:void 0,et:t.lineWidth,Ds:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,tt:this.Ls,ds:this.Ns.St().le()};this.js.J(i)}}const ri=/[2-9]/g;class oi{constructor(t=50){this.Ke=0,this.Ge=1,this.Je=1,this.Qe={},this.tr=new Map,this.ir=t}nr(){this.Ke=0,this.tr.clear(),this.Ge=1,this.Je=1,this.Qe={}}xi(t,i,e){return this.sr(t,i,e).width}Mi(t,i,e){const s=this.sr(t,i,e);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}sr(t,i,e){const s=e||ri,n=String(i).replace(s,"0");if(this.tr.has(n))return C(this.tr.get(n)).er;if(this.Ke===this.ir){const t=this.Qe[this.Je];delete this.Qe[this.Je],this.tr.delete(t),this.Je++,this.Ke--}t.save(),t.textBaseline="middle";const r=t.measureText(n);return t.restore(),0===r.width&&i.length||(this.tr.set(n,{er:r,rr:this.Ge}),this.Qe[this.Ge]=n,this.Ke++,this.Ge++),r}}class hi{constructor(t){this.hr=null,this.k=null,this.lr="right",this.ar=t}_r(t,i,e){this.hr=t,this.k=i,this.lr=e}X(t){null!==this.k&&null!==this.hr&&this.hr.X(t,this.k,this.ar,this.lr)}}class li{constructor(t,i,e){this.ur=t,this.ar=new oi(50),this.cr=i,this.F=e,this.j=-1,this.Wt=new hi(this.ar)}gt(){const t=this.F.dr(this.cr);if(null===t)return null;const i=t.vr(this.cr)?t.pr():this.cr.Dt();if(null===i)return null;const e=t.mr(i);if("overlay"===e)return null;const s=this.F.br();return s.P!==this.j&&(this.j=s.P,this.ar.nr()),this.Wt._r(this.ur.Ii(),s,e),this.Wt}}class ai extends X{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}wr(t,i){var e;if(!(null===(e=this.zt)||void 0===e?void 0:e.yt))return null;const{st:s,et:n,gr:r}=this.zt;return i>=s-n-7&&i<=s+n+7?{Mr:this.zt,gr:r}:null}K({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:s}){if(null===this.zt)return;if(!1===this.zt.yt)return;const n=Math.round(this.zt.st*s);n<0||n>i.height||(t.lineCap="butt",t.strokeStyle=this.zt.V,t.lineWidth=Math.floor(this.zt.et*e),w(t,this.zt.Nt),y(t,n,0,i.width))}}class ci{constructor(t){this.Sr={st:0,V:"rgba(0, 0, 0, 0)",et:1,Nt:0,yt:!1},this.kr=new ai,this.ft=!0,this.Es=t,this.Ns=t.$t(),this.kr.J(this.Sr)}bt(){this.ft=!0}gt(){return this.Es.yt()?(this.ft&&(this.yr(),this.ft=!1),this.kr):null}}class ui extends ci{constructor(t){super(t)}yr(){this.Sr.yt=!1;const t=this.Es.Dt(),i=t.Cr().Cr;if(2!==i&&3!==i)return;const e=this.Es.W();if(!e.baseLineVisible||!this.Es.yt())return;const s=this.Es.Ct();null!==s&&(this.Sr.yt=!0,this.Sr.st=t.Rt(s.Vt,s.Vt),this.Sr.V=e.baseLineColor,this.Sr.et=e.baseLineWidth,this.Sr.Nt=e.baseLineStyle)}}class di extends X{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}$e(){return this.zt}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e}){const s=this.zt;if(null===s)return;const n=Math.max(1,Math.floor(i)),r=n%2/2,o=Math.round(s.Xe.x*i)+r,h=s.Xe.y*e;t.fillStyle=s.Tr,t.beginPath();const l=Math.max(2,1.5*s.Pr)*i;t.arc(o,h,l,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.Rr,t.beginPath(),t.arc(o,h,s.ht*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=n,t.strokeStyle=s.Dr,t.beginPath(),t.arc(o,h,s.ht*i+n/2,0,2*Math.PI,!1),t.stroke()}}const fi=[{Vr:0,Or:.25,Br:4,Ar:10,Ir:.25,zr:0,Lr:.4,Er:.8},{Vr:.25,Or:.525,Br:10,Ar:14,Ir:0,zr:0,Lr:.8,Er:0},{Vr:.525,Or:1,Br:14,Ar:14,Ir:0,zr:0,Lr:0,Er:0}];function mi(t,i,e,s){return function(t,i){if("transparent"===t)return t;const e=O(t),s=e[3];return`rgba(${e[0]}, ${e[1]}, ${e[2]}, ${i*s})`}(t,e+(s-e)*i)}function pi(t,i){const e=t%2600/2600;let s;for(const t of fi)if(e>=t.Vr&&e<=t.Or){s=t;break}S(void 0!==s,"Last price animation internal logic error");const n=(e-s.Vr)/(s.Or-s.Vr);return{Rr:mi(i,n,s.Ir,s.zr),Dr:mi(i,n,s.Lr,s.Er),ht:(r=n,o=s.Br,h=s.Ar,o+(h-o)*r)};var r,o,h}class gi{constructor(t){this.Wt=new di,this.ft=!0,this.Nr=!0,this.Fr=performance.now(),this.Wr=this.Fr-1,this.jr=t}Hr(){this.Wr=this.Fr-1,this.bt()}$r(){if(this.bt(),2===this.jr.W().lastPriceAnimation){const t=performance.now(),i=this.Wr-t;if(i>0)return void(i<650&&(this.Wr+=2600));this.Fr=t,this.Wr=t+2600}}bt(){this.ft=!0}Ur(){this.Nr=!0}yt(){return 0!==this.jr.W().lastPriceAnimation}qr(){switch(this.jr.W().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Wr}}gt(){return this.ft?(this.Mt(),this.ft=!1,this.Nr=!1):this.Nr&&(this.Yr(),this.Nr=!1),this.Wt}Mt(){this.Wt.J(null);const t=this.jr.$t().St(),i=t.Xs(),e=this.jr.Ct();if(null===i||null===e)return;const s=this.jr.Zr(!0);if(s.Xr||!i.Kr(s.ee))return;const n={x:t.It(s.ee),y:this.jr.Dt().Rt(s._t,e.Vt)},r=s.V,o=this.jr.W().lineWidth,h=pi(this.Gr(),r);this.Wt.J({Tr:r,Pr:o,Rr:h.Rr,Dr:h.Dr,ht:h.ht,Xe:n})}Yr(){const t=this.Wt.$e();if(null!==t){const i=pi(this.Gr(),t.Tr);t.Rr=i.Rr,t.Dr=i.Dr,t.ht=i.ht}}Gr(){return this.qr()?performance.now()-this.Fr:2599}}function vi(t,i){return Tt(Math.min(Math.max(t,12),30)*i)}function bi(t,i){switch(t){case"arrowDown":case"arrowUp":return vi(i,1);case"circle":return vi(i,.8);case"square":return vi(i,.7)}}function wi(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(vi(t,1))}function yi(t){return Math.max(vi(t,.1),3)}function Si(t,i,e){return i?t:e?Math.ceil(t/2):0}function Ci(t,i,e,s,n){const r=bi("square",e),o=(r-1)/2,h=t-o,l=i-o;return s>=h&&s<=h+r&&n>=l&&n<=l+r}function xi(t,i,e,s){const n=(bi("arrowUp",s)-1)/2*e.Jr,r=(Tt(s/2)-1)/2*e.Jr;i.beginPath(),t?(i.moveTo(e.nt-n,e.st),i.lineTo(e.nt,e.st-n),i.lineTo(e.nt+n,e.st),i.lineTo(e.nt+r,e.st),i.lineTo(e.nt+r,e.st+n),i.lineTo(e.nt-r,e.st+n),i.lineTo(e.nt-r,e.st)):(i.moveTo(e.nt-n,e.st),i.lineTo(e.nt,e.st+n),i.lineTo(e.nt+n,e.st),i.lineTo(e.nt+r,e.st),i.lineTo(e.nt+r,e.st-n),i.lineTo(e.nt-r,e.st-n),i.lineTo(e.nt-r,e.st)),i.fill()}class _i extends X{constructor(){super(...arguments),this.zt=null,this.ar=new oi,this.j=-1,this.H="",this.Qr=""}J(t){this.zt=t}_r(t,i){this.j===t&&this.H===i||(this.j=t,this.H=i,this.Qr=H(t,i),this.ar.nr())}wr(t,i){if(null===this.zt||null===this.zt.tt)return null;for(let e=this.zt.tt.from;e<this.zt.tt.to;e++){const s=this.zt.it[e];if(Mi(s,t,i))return{Mr:s.th,gr:s.gr}}return null}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:e},s,n){if(null!==this.zt&&null!==this.zt.tt){t.textBaseline="middle",t.font=this.Qr;for(let s=this.zt.tt.from;s<this.zt.tt.to;s++){const n=this.zt.it[s];void 0!==n.Kt&&(n.Kt.Hi=this.ar.xi(t,n.Kt.ih),n.Kt.At=this.j,n.Kt.nt=n.nt-n.Kt.Hi/2),Ei(n,t,i,e)}}}}function Ei(t,i,e,s){i.fillStyle=t.V,void 0!==t.Kt&&function(t,i,e,s,n,r){t.save(),t.scale(n,r),t.fillText(i,e,s),t.restore()}(i,t.Kt.ih,t.Kt.nt,t.Kt.st,e,s),function(t,i,e){if(0!==t.Ks){switch(t.nh){case"arrowDown":return void xi(!1,i,e,t.Ks);case"arrowUp":return void xi(!0,i,e,t.Ks);case"circle":return void function(t,i,e){const s=(bi("circle",e)-1)/2;t.beginPath(),t.arc(i.nt,i.st,s*i.Jr,0,2*Math.PI,!1),t.fill()}(i,e,t.Ks);case"square":return void function(t,i,e){const s=bi("square",e),n=(s-1)*i.Jr/2,r=i.nt-n,o=i.st-n;t.fillRect(r,o,s*i.Jr,s*i.Jr)}(i,e,t.Ks)}t.nh}}(t,i,function(t,i,e){const s=Math.max(1,Math.floor(i))%2/2;return{nt:Math.round(t.nt*i)+s,st:t.st*e,Jr:i}}(t,e,s))}function Mi(t,i,e){return!(void 0===t.Kt||!function(t,i,e,s,n,r){const o=s/2;return n>=t&&n<=t+e&&r>=i-o&&r<=i+o}(t.Kt.nt,t.Kt.st,t.Kt.Hi,t.Kt.At,i,e))||function(t,i,e){if(0===t.Ks)return!1;switch(t.nh){case"arrowDown":case"arrowUp":return function(t,i,e,s,n,r){return Ci(i,e,s,n,r)}(0,t.nt,t.st,t.Ks,i,e);case"circle":return function(t,i,e,s,n){const r=2+bi("circle",e)/2,o=t-s,h=i-n;return Math.sqrt(o*o+h*h)<=r}(t.nt,t.st,t.Ks,i,e);case"square":return Ci(t.nt,t.st,t.Ks,i,e)}}(t,i,e)}function zi(t,i,e,s,n,r,o,h,l){const a=D(e)?e:e.Se,c=D(e)?e:e.Me,u=D(e)?e:e.xe,d=D(i.size)?Math.max(i.size,0):1,f=wi(h.le())*d,m=f/2;switch(t.Ks=f,i.position){case"inBar":return t.st=o.Rt(a,l),void(void 0!==t.Kt&&(t.Kt.st=t.st+m+r+.6*n));case"aboveBar":return t.st=o.Rt(c,l)-m-s.sh,void 0!==t.Kt&&(t.Kt.st=t.st-m-.6*n,s.sh+=1.2*n),void(s.sh+=f+r);case"belowBar":return t.st=o.Rt(u,l)+m+s.eh,void 0!==t.Kt&&(t.Kt.st=t.st+m+r+.6*n,s.eh+=1.2*n),void(s.eh+=f+r)}i.position}class Ri{constructor(t,i){this.ft=!0,this.rh=!0,this.hh=!0,this.ah=null,this.oh=null,this.Wt=new _i,this.jr=t,this.$i=i,this.zt={it:[],tt:null}}bt(t){this.ft=!0,this.hh=!0,"data"===t&&(this.rh=!0,this.oh=null)}gt(t){if(!this.jr.yt())return null;this.ft&&this._h();const i=this.$i.W().layout;return this.Wt._r(i.fontSize,i.fontFamily),this.Wt.J(this.zt),this.Wt}uh(){if(this.hh){if(this.jr.dh().length>0){const t=this.$i.St().le(),i=yi(t),e=1.5*wi(t)+2*i,s=this.fh();this.ah={above:Si(e,s.aboveBar,s.inBar),below:Si(e,s.belowBar,s.inBar)}}else this.ah=null;this.hh=!1}return this.ah}fh(){return null===this.oh&&(this.oh=this.jr.dh().reduce((t,i)=>(t[i.position]||(t[i.position]=!0),t),{inBar:!1,aboveBar:!1,belowBar:!1})),this.oh}_h(){const t=this.jr.Dt(),i=this.$i.St(),e=this.jr.dh();this.rh&&(this.zt.it=e.map(t=>({ot:t.time,nt:0,st:0,Ks:0,nh:t.shape,V:t.color,th:t.th,gr:t.id,Kt:void 0})),this.rh=!1);const s=this.$i.W().layout;this.zt.tt=null;const n=i.Xs();if(null===n)return;const r=this.jr.Ct();if(null===r)return;if(0===this.zt.it.length)return;let o=NaN;const h=yi(i.le()),l={sh:h,eh:h};this.zt.tt=Wt(this.zt.it,n,!0);for(let n=this.zt.tt.from;n<this.zt.tt.to;n++){const a=e[n];a.time!==o&&(l.sh=h,l.eh=h,o=a.time);const c=this.zt.it[n];c.nt=i.It(a.time),void 0!==a.text&&a.text.length>0&&(c.Kt={ih:a.text,nt:0,st:0,Hi:0,At:0});const u=this.jr.ph(a.time);null!==u&&zi(c,a,u,l,s.fontSize,h,t,i,r.Vt)}this.ft=!1}}class ki extends ci{constructor(t){super(t)}yr(){const t=this.Sr;t.yt=!1;const i=this.Es.W();if(!i.priceLineVisible||!this.Es.yt())return;const e=this.Es.Zr(0===i.priceLineSource);e.Xr||(t.yt=!0,t.st=e.ki,t.V=this.Es.mh(e.V),t.et=i.priceLineWidth,t.Nt=i.priceLineStyle)}}class Ti extends ht{constructor(t){super(),this.jt=t}zi(t,i,e){t.yt=!1,i.yt=!1;const s=this.jt;if(!s.yt())return;const n=s.W(),r=n.lastValueVisible,o=""!==s.bh(),h=0===n.seriesLastValueMode,l=s.Zr(!1);if(l.Xr)return;r&&(t.Kt=this.wh(l,r,h),t.yt=0!==t.Kt.length),(o||h)&&(i.Kt=this.gh(l,r,o,h),i.yt=i.Kt.length>0);const a=s.mh(l.V),c=$(a);e.t=c.t,e.ki=l.ki,i.Ot=s.$t().Bt(l.ki/s.Dt().At()),t.Ot=a,t.V=c.i,i.V=c.i}gh(t,i,e,s){let n="";const r=this.jt.bh();return e&&0!==r.length&&(n+=`${r} `),i&&s&&(n+=this.jt.Dt().Mh()?t.xh:t.Sh),n.trim()}wh(t,i,e){return i?e?this.jt.Dt().Mh()?t.Sh:t.xh:t.Kt:""}}function Li(t,i,e,s){const n=Number.isFinite(i),r=Number.isFinite(e);return n&&r?t(i,e):n||r?n?i:e:s}class Oi{constructor(t,i){this.kh=t,this.yh=i}Ch(t){return null!==t&&this.kh===t.kh&&this.yh===t.yh}Th(){return new Oi(this.kh,this.yh)}Ph(){return this.kh}Rh(){return this.yh}Dh(){return this.yh-this.kh}Ni(){return this.yh===this.kh||Number.isNaN(this.yh)||Number.isNaN(this.kh)}ts(t){return null===t?this:new Oi(Li(Math.min,this.Ph(),t.Ph(),-1/0),Li(Math.max,this.Rh(),t.Rh(),1/0))}Vh(t){if(!D(t))return;if(0===this.yh-this.kh)return;const i=.5*(this.yh+this.kh);let e=this.yh-i,s=this.kh-i;e*=t,s*=t,this.yh=i+e,this.kh=i+s}Oh(t){D(t)&&(this.yh+=t,this.kh+=t)}Bh(){return{minValue:this.kh,maxValue:this.yh}}static Ah(t){return null===t?null:new Oi(t.minValue,t.maxValue)}}class Ni{constructor(t,i){this.Ih=t,this.zh=i||null}Lh(){return this.Ih}Eh(){return this.zh}Bh(){return null===this.Ih?null:{priceRange:this.Ih.Bh(),margins:this.zh||void 0}}static Ah(t){return null===t?null:new Ni(Oi.Ah(t.priceRange),t.margins)}}class $i extends ci{constructor(t,i){super(t),this.Nh=i}yr(){const t=this.Sr;t.yt=!1;const i=this.Nh.W();if(!this.Es.yt()||!i.lineVisible)return;const e=this.Nh.Fh();null!==e&&(t.yt=!0,t.st=e,t.V=i.color,t.et=i.lineWidth,t.Nt=i.lineStyle,t.gr=this.Nh.W().id)}}class Pi extends ht{constructor(t,i){super(),this.jr=t,this.Nh=i}zi(t,i,e){t.yt=!1,i.yt=!1;const s=this.Nh.W(),n=s.axisLabelVisible,r=""!==s.title,o=this.jr;if(!n||!o.yt())return;const h=this.Nh.Fh();if(null===h)return;r&&(i.Kt=s.title,i.yt=!0),i.Ot=o.$t().Bt(h/o.Dt().At()),t.Kt=this.Wh(s.price),t.yt=!0;const l=$(s.axisLabelColor||s.color);e.t=l.t;const a=s.axisLabelTextColor||l.i;t.V=a,i.V=a,e.ki=h}Wh(t){const i=this.jr.Ct();return null===i?"":this.jr.Dt().Fi(t,i.Vt)}}class Vi{constructor(t,i){this.jr=t,this.cn=i,this.jh=new $i(t,this),this.ur=new Pi(t,this),this.Hh=new li(this.ur,t,t.$t())}$h(t){V(this.cn,t),this.bt(),this.jr.$t().Uh()}W(){return this.cn}qh(){return this.jh}Yh(){return this.Hh}Zh(){return this.ur}bt(){this.jh.bt(),this.ur.bt()}Fh(){const t=this.jr,i=t.Dt();if(t.$t().St().Ni()||i.Ni())return null;const e=t.Ct();return null===e?null:i.Rt(this.cn.price,e.Vt)}}class Di extends dt{constructor(t){super(),this.$i=t}$t(){return this.$i}}const Ai={Bar:(t,i,e,s)=>{var n;const r=i.upColor,o=i.downColor,h=x(t(e,s)),l=_(h.Vt[0])<=_(h.Vt[3]);return{ce:null!==(n=h.V)&&void 0!==n?n:l?r:o}},Candlestick:(t,i,e,s)=>{var n,r,o;const h=i.upColor,l=i.downColor,a=i.borderUpColor,c=i.borderDownColor,u=i.wickUpColor,d=i.wickDownColor,f=x(t(e,s)),m=_(f.Vt[0])<=_(f.Vt[3]);return{ce:null!==(n=f.V)&&void 0!==n?n:m?h:l,Ne:null!==(r=f.Ot)&&void 0!==r?r:m?a:c,Ee:null!==(o=f.Xh)&&void 0!==o?o:m?u:d}},Custom:(t,i,e,s)=>{var n;return{ce:null!==(n=x(t(e,s)).V)&&void 0!==n?n:i.color}},Area:(t,i,e,s)=>{var n,r,o,h;const l=x(t(e,s));return{ce:null!==(n=l.lt)&&void 0!==n?n:i.lineColor,lt:null!==(r=l.lt)&&void 0!==r?r:i.lineColor,Ps:null!==(o=l.Ps)&&void 0!==o?o:i.topColor,Rs:null!==(h=l.Rs)&&void 0!==h?h:i.bottomColor}},Baseline:(t,i,e,s)=>{var n,r,o,h,l,a;const c=x(t(e,s));return{ce:c.Vt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,Re:null!==(n=c.Re)&&void 0!==n?n:i.topLineColor,De:null!==(r=c.De)&&void 0!==r?r:i.bottomLineColor,ke:null!==(o=c.ke)&&void 0!==o?o:i.topFillColor1,ye:null!==(h=c.ye)&&void 0!==h?h:i.topFillColor2,Ce:null!==(l=c.Ce)&&void 0!==l?l:i.bottomFillColor1,Te:null!==(a=c.Te)&&void 0!==a?a:i.bottomFillColor2}},Line:(t,i,e,s)=>{var n,r;const o=x(t(e,s));return{ce:null!==(n=o.V)&&void 0!==n?n:i.color,lt:null!==(r=o.V)&&void 0!==r?r:i.color}},Histogram:(t,i,e,s)=>{var n;return{ce:null!==(n=x(t(e,s)).V)&&void 0!==n?n:i.color}}};class Bi{constructor(t){this.Kh=(t,i)=>void 0!==i?i.Vt:this.jr.In().Gh(t),this.jr=t,this.Jh=Ai[t.Qh()]}$s(t,i){return this.Jh(this.Kh,this.jr.W(),t,i)}}var Fi;!function(t){t[t.NearestLeft=-1]="NearestLeft",t[t.None=0]="None",t[t.NearestRight=1]="NearestRight"}(Fi||(Fi={}));const Wi=30;class ji{constructor(){this.tl=[],this.il=new Map,this.nl=new Map}sl(){return this.Ks()>0?this.tl[this.tl.length-1]:null}el(){return this.Ks()>0?this.rl(0):null}An(){return this.Ks()>0?this.rl(this.tl.length-1):null}Ks(){return this.tl.length}Ni(){return 0===this.Ks()}Kr(t){return null!==this.hl(t,0)}Gh(t){return this.ll(t)}ll(t,i=0){const e=this.hl(t,i);return null===e?null:Object.assign(Object.assign({},this.al(e)),{ee:this.rl(e)})}ne(){return this.tl}ol(t,i,e){if(this.Ni())return null;let s=null;for(const n of e)s=Ii(s,this._l(t,i,n));return s}J(t){this.nl.clear(),this.il.clear(),this.tl=t}rl(t){return this.tl[t].ee}al(t){return this.tl[t]}hl(t,i){const e=this.ul(t);if(null===e&&0!==i)switch(i){case-1:return this.cl(t);case 1:return this.dl(t);default:throw new TypeError("Unknown search mode")}return e}cl(t){let i=this.fl(t);return i>0&&(i-=1),i!==this.tl.length&&this.rl(i)<t?i:null}dl(t){const i=this.vl(t);return i!==this.tl.length&&t<this.rl(i)?i:null}ul(t){const i=this.fl(t);return i===this.tl.length||t<this.tl[i].ee?null:i}fl(t){return Dt(this.tl,t,(t,i)=>t.ee<i)}vl(t){return At(this.tl,t,(t,i)=>t.ee>i)}pl(t,i,e){let s=null;for(let n=t;n<i;n++){const t=this.tl[n].Vt[e];Number.isNaN(t)||(null===s?s={ml:t,bl:t}:(t<s.ml&&(s.ml=t),t>s.bl&&(s.bl=t)))}return s}_l(t,i,e){if(this.Ni())return null;let s=null;const n=x(this.el()),r=x(this.An()),o=Math.max(t,n),h=Math.min(i,r),l=Math.ceil(o/Wi)*Wi,a=Math.max(l,Math.floor(h/Wi)*Wi);{const t=this.fl(o),n=this.vl(Math.min(h,l,i));s=Ii(s,this.pl(t,n,e))}let c=this.il.get(e);void 0===c&&(c=new Map,this.il.set(e,c));for(let t=Math.max(l+1,o);t<a;t+=Wi){const i=Math.floor(t/Wi);let n=c.get(i);if(void 0===n){const t=this.fl(i*Wi),s=this.vl((i+1)*Wi-1);n=this.pl(t,s,e),c.set(i,n)}s=Ii(s,n)}{const t=this.fl(a),i=this.vl(h);s=Ii(s,this.pl(t,i,e))}return s}}function Ii(t,i){return null===t?i:null===i?t:{ml:Math.min(t.ml,i.ml),bl:Math.max(t.bl,i.bl)}}class Ui{constructor(t){this.wl=t}X(t,i,e){this.wl.draw(t)}gl(t,i,e){var s,n;null===(n=(s=this.wl).drawBackground)||void 0===n||n.call(s,t)}}class Hi{constructor(t){this.tr=null,this.wn=t}gt(){var t;const i=this.wn.renderer();if(null===i)return null;if((null===(t=this.tr)||void 0===t?void 0:t.Ml)===i)return this.tr.xl;const e=new Ui(i);return this.tr={Ml:i,xl:e},e}Sl(){var t,i,e;return null!==(e=null===(i=(t=this.wn).zOrder)||void 0===i?void 0:i.call(t))&&void 0!==e?e:"normal"}}function Ki(t){var i,e,s,n,r;return{Kt:t.text(),ki:t.coordinate(),Si:null===(i=t.fixedCoordinate)||void 0===i?void 0:i.call(t),V:t.textColor(),t:t.backColor(),yt:null===(s=null===(e=t.visible)||void 0===e?void 0:e.call(t))||void 0===s||s,hi:null===(r=null===(n=t.tickVisible)||void 0===n?void 0:n.call(t))||void 0===r||r}}class qi{constructor(t,i){this.Wt=new ct,this.kl=t,this.yl=i}gt(){return this.Wt.J(Object.assign({Hi:this.yl.Hi()},Ki(this.kl))),this.Wt}}class Xi extends ht{constructor(t,i){super(),this.kl=t,this.Li=i}zi(t,i,e){const s=Ki(this.kl);e.t=s.t,t.V=s.V;const n=2/12*this.Li.P();e.wi=n,e.gi=n,e.ki=s.ki,e.Si=s.Si,t.Kt=s.Kt,t.yt=s.yt,t.hi=s.hi}}class Ji{constructor(t,i){this.Cl=null,this.Tl=null,this.Pl=null,this.Rl=null,this.Dl=null,this.Vl=t,this.jr=i}Ol(){return this.Vl}Vn(){var t,i;null===(i=(t=this.Vl).updateAllViews)||void 0===i||i.call(t)}Pn(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).paneViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Cl)||void 0===s?void 0:s.Ml)===n)return this.Cl.xl;const r=n.map(t=>new Hi(t));return this.Cl={Ml:n,xl:r},r}Qi(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).timeAxisViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Tl)||void 0===s?void 0:s.Ml)===n)return this.Tl.xl;const r=this.jr.$t().St(),o=n.map(t=>new qi(t,r));return this.Tl={Ml:n,xl:o},o}Rn(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).priceAxisViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Pl)||void 0===s?void 0:s.Ml)===n)return this.Pl.xl;const r=this.jr.Dt(),o=n.map(t=>new Xi(t,r));return this.Pl={Ml:n,xl:o},o}Bl(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).priceAxisPaneViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Rl)||void 0===s?void 0:s.Ml)===n)return this.Rl.xl;const r=n.map(t=>new Hi(t));return this.Rl={Ml:n,xl:r},r}Al(){var t,i,e,s;const n=null!==(e=null===(i=(t=this.Vl).timeAxisPaneViews)||void 0===i?void 0:i.call(t))&&void 0!==e?e:[];if((null===(s=this.Dl)||void 0===s?void 0:s.Ml)===n)return this.Dl.xl;const r=n.map(t=>new Hi(t));return this.Dl={Ml:n,xl:r},r}Il(t,i){var e,s,n;return null!==(n=null===(s=(e=this.Vl).autoscaleInfo)||void 0===s?void 0:s.call(e,t,i))&&void 0!==n?n:null}wr(t,i){var e,s,n;return null!==(n=null===(s=(e=this.Vl).hitTest)||void 0===s?void 0:s.call(e,t,i))&&void 0!==n?n:null}}function Gi(t,i,e,s){t.forEach(t=>{i(t).forEach(t=>{t.Sl()===e&&s.push(t)})})}function Qi(t){return t.Pn()}function Yi(t){return t.Bl()}function Zi(t){return t.Al()}class te extends Di{constructor(t,i,e,s,n){super(t),this.zt=new ji,this.jh=new ki(this),this.zl=[],this.Ll=new ui(this),this.El=null,this.Nl=null,this.Fl=[],this.Wl=[],this.jl=null,this.Hl=[],this.cn=i,this.$l=e;const r=new Ti(this);this.rn=[r],this.Hh=new li(r,this,t),"Area"!==e&&"Line"!==e&&"Baseline"!==e||(this.El=new gi(this)),this.Ul(),this.ql(n)}S(){null!==this.jl&&clearTimeout(this.jl)}mh(t){return this.cn.priceLineColor||t}Zr(t){const i={Xr:!0},e=this.Dt();if(this.$t().St().Ni()||e.Ni()||this.zt.Ni())return i;const s=this.$t().St().Xs(),n=this.Ct();if(null===s||null===n)return i;let r,o;if(t){const t=this.zt.sl();if(null===t)return i;r=t,o=t.ee}else{const t=this.zt.ll(s.ui(),-1);if(null===t)return i;if(r=this.zt.Gh(t.ee),null===r)return i;o=t.ee}const h=r.Vt[3],l=this.Us().$s(o,{Vt:r}),a=e.Rt(h,n.Vt);return{Xr:!1,_t:h,Kt:e.Fi(h,n.Vt),xh:e.Yl(h),Sh:e.Zl(h,n.Vt),V:l.ce,ki:a,ee:o}}Us(){return null!==this.Nl||(this.Nl=new Bi(this)),this.Nl}W(){return this.cn}$h(t){const i=t.priceScaleId;void 0!==i&&i!==this.cn.priceScaleId&&this.$t().Xl(this,i),V(this.cn,t),void 0!==t.priceFormat&&(this.Ul(),this.$t().Kl()),this.$t().Gl(this),this.$t().Jl(),this.wn.bt("options")}J(t,i){this.zt.J(t),this.Ql(),this.wn.bt("data"),this.dn.bt("data"),null!==this.El&&(i&&i.ta?this.El.$r():0===t.length&&this.El.Hr());const e=this.$t().dr(this);this.$t().ia(e),this.$t().Gl(this),this.$t().Jl(),this.$t().Uh()}na(t){this.Fl=t,this.Ql();const i=this.$t().dr(this);this.dn.bt("data"),this.$t().ia(i),this.$t().Gl(this),this.$t().Jl(),this.$t().Uh()}sa(){return this.Fl}dh(){return this.Wl}ea(t){const i=new Vi(this,t);return this.zl.push(i),this.$t().Gl(this),i}ra(t){const i=this.zl.indexOf(t);-1!==i&&this.zl.splice(i,1),this.$t().Gl(this)}Qh(){return this.$l}Ct(){const t=this.ha();return null===t?null:{Vt:t.Vt[3],la:t.ot}}ha(){const t=this.$t().St().Xs();if(null===t)return null;const i=t.Os();return this.zt.ll(i,1)}In(){return this.zt}ph(t){const i=this.zt.Gh(t);return null===i?null:"Bar"===this.$l||"Candlestick"===this.$l||"Custom"===this.$l?{ge:i.Vt[0],Me:i.Vt[1],xe:i.Vt[2],Se:i.Vt[3]}:i.Vt[3]}aa(t){const i=[];Gi(this.Hl,Qi,"top",i);const e=this.El;return null!==e&&e.yt()?(null===this.jl&&e.qr()&&(this.jl=setTimeout(()=>{this.jl=null,this.$t().oa()},0)),e.Ur(),i.unshift(e),i):i}Pn(){const t=[];this._a()||t.push(this.Ll),t.push(this.wn,this.jh,this.dn);const i=this.zl.map(t=>t.qh());return t.push(...i),Gi(this.Hl,Qi,"normal",t),t}ua(){return this.ca(Qi,"bottom")}da(t){return this.ca(Yi,t)}fa(t){return this.ca(Zi,t)}va(t,i){return this.Hl.map(e=>e.wr(t,i)).filter(t=>null!==t)}Ji(t){return[this.Hh,...this.zl.map(t=>t.Yh())]}Rn(t,i){if(i!==this.Yi&&!this._a())return[];const e=[...this.rn];for(const t of this.zl)e.push(t.Zh());return this.Hl.forEach(t=>{e.push(...t.Rn())}),e}Qi(){const t=[];return this.Hl.forEach(i=>{t.push(...i.Qi())}),t}Il(t,i){if(void 0!==this.cn.autoscaleInfoProvider){const e=this.cn.autoscaleInfoProvider(()=>{const e=this.pa(t,i);return null===e?null:e.Bh()});return Ni.Ah(e)}return this.pa(t,i)}ma(){return this.cn.priceFormat.minMove}ba(){return this.wa}Vn(){var t;this.wn.bt(),this.dn.bt();for(const t of this.rn)t.bt();for(const t of this.zl)t.bt();this.jh.bt(),this.Ll.bt(),null===(t=this.El)||void 0===t||t.bt(),this.Hl.forEach(t=>t.Vn())}Dt(){return x(super.Dt())}kt(t){if("Line"!==this.$l&&"Area"!==this.$l&&"Baseline"!==this.$l||!this.cn.crosshairMarkerVisible)return null;const i=this.zt.Gh(t);return null===i?null:{_t:i.Vt[3],ht:this.ga(),Ot:this.Ma(),Pt:this.xa(),Tt:this.Sa(t)}}bh(){return this.cn.title}yt(){return this.cn.visible}ka(t){this.Hl.push(new Ji(t,this))}ya(t){this.Hl=this.Hl.filter(i=>i.Ol()!==t)}Ca(){if(this.wn instanceof ti!=0)return t=>this.wn.We(t)}Ta(){if(this.wn instanceof ti!=0)return t=>this.wn.je(t)}_a(){return!pt(this.Dt().Pa())}pa(t,i){if(!A(t)||!A(i)||this.zt.Ni())return null;const e="Line"===this.$l||"Area"===this.$l||"Baseline"===this.$l||"Histogram"===this.$l?[3]:[2,1],s=this.zt.ol(t,i,e);let n=null!==s?new Oi(s.ml,s.bl):null;if("Histogram"===this.Qh()){const t=this.cn.base,i=new Oi(t,t);n=null!==n?n.ts(i):i}let r=this.dn.uh();return this.Hl.forEach(e=>{const s=e.Il(t,i);if(null==s?void 0:s.priceRange){const t=new Oi(s.priceRange.minValue,s.priceRange.maxValue);n=null!==n?n.ts(t):t}var o,h,l,a;(null==s?void 0:s.margins)&&(o=r,h=s.margins,r={above:Math.max(null!==(l=null==o?void 0:o.above)&&void 0!==l?l:0,h.above),below:Math.max(null!==(a=null==o?void 0:o.below)&&void 0!==a?a:0,h.below)})}),new Ni(n,r)}ga(){switch(this.$l){case"Line":case"Area":case"Baseline":return this.cn.crosshairMarkerRadius}return 0}Ma(){switch(this.$l){case"Line":case"Area":case"Baseline":{const t=this.cn.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}xa(){switch(this.$l){case"Line":case"Area":case"Baseline":return this.cn.crosshairMarkerBorderWidth}return 0}Sa(t){switch(this.$l){case"Line":case"Area":case"Baseline":{const t=this.cn.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.Us().$s(t).ce}Ul(){switch(this.cn.priceFormat.type){case"custom":this.wa={format:this.cn.priceFormat.formatter};break;case"volume":this.wa=new yt(this.cn.priceFormat.precision);break;case"percent":this.wa=new wt(this.cn.priceFormat.precision);break;default:{const t=Math.pow(10,this.cn.priceFormat.precision);this.wa=new bt(t,this.cn.priceFormat.minMove*t)}}null!==this.Yi&&this.Yi.Ra()}Ql(){const t=this.$t().St();if(!t.Da()||this.zt.Ni())return void(this.Wl=[]);const i=x(this.zt.el());this.Wl=this.Fl.map((e,s)=>{const n=x(t.Va(e.time,!0)),r=n<i?1:-1;return{time:x(this.zt.ll(n,r)).ee,position:e.position,shape:e.shape,color:e.color,id:e.id,th:s,text:e.text,size:e.size,originalTime:e.originalTime}})}ql(t){switch(this.dn=new Ri(this,this.$t()),this.$l){case"Bar":this.wn=new qt(this,this.$t());break;case"Candlestick":this.wn=new Yt(this,this.$t());break;case"Line":this.wn=new ni(this,this.$t());break;case"Custom":this.wn=new ti(this,this.$t(),C(t));break;case"Area":this.wn=new Ut(this,this.$t());break;case"Baseline":this.wn=new Gt(this,this.$t());break;case"Histogram":this.wn=new si(this,this.$t());break;default:throw Error("Unknown chart style assigned: "+this.$l)}}ca(t,i){const e=[];return Gi(this.Hl,t,i,e),e}}class ie{constructor(t){this.cn=t}Oa(t,i,e){let s=t;if(0===this.cn.mode)return s;const n=e.vn(),r=n.Ct();if(null===r)return s;const o=n.Rt(t,r),h=e.Ba().filter(t=>t instanceof te).reduce((t,s)=>{if(e.vr(s)||!s.yt())return t;const n=s.Dt(),r=s.In();if(n.Ni()||!r.Kr(i))return t;const o=r.Gh(i);if(null===o)return t;const h=_(s.Ct());return t.concat([n.Rt(o.Vt[3],h.Vt)])},[]);if(0===h.length)return s;h.sort((t,i)=>Math.abs(t-o)-Math.abs(i-o));const l=h[0];return s=n.pn(l,r),s}}class ee extends X{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}K({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:s}){if(null===this.zt)return;const n=Math.max(1,Math.floor(e));t.lineWidth=n,function(t,i){t.save(),t.lineWidth%2&&t.translate(.5,.5),i(),t.restore()}(t,()=>{const r=x(this.zt);if(r.Aa){t.strokeStyle=r.Ia,w(t,r.za),t.beginPath();for(const s of r.La){const r=Math.round(s.Ea*e);t.moveTo(r,-n),t.lineTo(r,i.height+n)}t.stroke()}if(r.Na){t.strokeStyle=r.Fa,w(t,r.Wa),t.beginPath();for(const e of r.ja){const r=Math.round(e.Ea*s);t.moveTo(-n,r),t.lineTo(i.width+n,r)}t.stroke()}})}}class se{constructor(t){this.Wt=new ee,this.ft=!0,this.tn=t}bt(){this.ft=!0}gt(){if(this.ft){const t=this.tn.$t().W().grid,i={Na:t.horzLines.visible,Aa:t.vertLines.visible,Fa:t.horzLines.color,Ia:t.vertLines.color,Wa:t.horzLines.style,za:t.vertLines.style,ja:this.tn.vn().Ha(),La:(this.tn.$t().St().Ha()||[]).map(t=>({Ea:t.coord}))};this.Wt.J(i),this.ft=!1}return this.Wt}}class ne{constructor(t){this.wn=new se(t)}qh(){return this.wn}}const re={$a:4,Ua:1e-4};function oe(t,i){const e=100*(t-i)/i;return i<0?-e:e}function he(t,i){const e=oe(t.Ph(),i),s=oe(t.Rh(),i);return new Oi(e,s)}function le(t,i){const e=100*(t-i)/i+100;return i<0?-e:e}function ae(t,i){const e=le(t.Ph(),i),s=le(t.Rh(),i);return new Oi(e,s)}function ce(t,i){const e=Math.abs(t);if(e<1e-15)return 0;const s=Math.log10(e+i.Ua)+i.$a;return t<0?-s:s}function ue(t,i){const e=Math.abs(t);if(e<1e-15)return 0;const s=Math.pow(10,e-i.$a)-i.Ua;return t<0?-s:s}function de(t,i){if(null===t)return null;const e=ce(t.Ph(),i),s=ce(t.Rh(),i);return new Oi(e,s)}function fe(t,i){if(null===t)return null;const e=ue(t.Ph(),i),s=ue(t.Rh(),i);return new Oi(e,s)}function me(t){if(null===t)return re;const i=Math.abs(t.Rh()-t.Ph());if(i>=1||i<1e-15)return re;const e=Math.ceil(Math.abs(Math.log10(i))),s=re.$a+e;return{$a:s,Ua:1/Math.pow(10,s)}}class pe{constructor(t,i){if(this.qa=t,this.Ya=i,function(t){if(t<0)return!1;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.qa))this.Za=[2,2.5,2];else{this.Za=[];for(let t=this.qa;1!==t;){if(t%2==0)this.Za.push(2),t/=2;else{if(t%5!=0)throw new Error("unexpected base");this.Za.push(2,2.5),t/=5}if(this.Za.length>100)throw new Error("something wrong with base")}}}Xa(t,i,e){const s=0===this.qa?0:1/this.qa;let n=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,o=this.Ya[0];for(;;){const t=kt(n,s,1e-14)&&n>s+1e-14,i=kt(n,e*o,1e-14),h=kt(n,1,1e-14);if(!(t&&i&&h))break;n/=o,o=this.Ya[++r%this.Ya.length]}if(n<=s+1e-14&&(n=s),n=Math.max(1,n),this.Za.length>0&&(h=n,Math.abs(h-1)<1e-14))for(r=0,o=this.Za[0];kt(n,e*o,1e-14)&&n>s+1e-14;)n/=o,o=this.Za[++r%this.Za.length];var h;return n}}class ge{constructor(t,i,e,s){this.Ka=[],this.Li=t,this.qa=i,this.Ga=e,this.Ja=s}Xa(t,i){if(t<i)throw new Error("high < low");const e=this.Li.At(),s=(t-i)*this.Qa()/e,n=new pe(this.qa,[2,2.5,2]),r=new pe(this.qa,[2,2,2.5]),o=new pe(this.qa,[2.5,2,2]),h=[];return h.push(n.Xa(t,i,s),r.Xa(t,i,s),o.Xa(t,i,s)),function(t){if(t.length<1)throw Error("array is empty");let i=t[0];for(let e=1;e<t.length;++e)t[e]<i&&(i=t[e]);return i}(h)}io(){const t=this.Li,i=t.Ct();if(null===i)return void(this.Ka=[]);const e=t.At(),s=this.Ga(e-1,i),n=this.Ga(0,i),r=this.Li.W().entireTextOnly?this.no()/2:0,o=r,h=e-1-r,l=Math.max(s,n),a=Math.min(s,n);if(l===a)return void(this.Ka=[]);let c=this.Xa(l,a),u=l%c;u+=u<0?c:0;const d=l>=a?1:-1;let f=null,m=0;for(let e=l-u;e>a;e-=c){const s=this.Ja(e,i,!0);null!==f&&Math.abs(s-f)<this.Qa()||s<o||s>h||(m<this.Ka.length?(this.Ka[m].Ea=s,this.Ka[m].so=t.eo(e)):this.Ka.push({Ea:s,so:t.eo(e)}),m++,f=s,t.ro()&&(c=this.Xa(e*d,a)))}this.Ka.length=m}Ha(){return this.Ka}no(){return this.Li.P()}Qa(){return Math.ceil(2.5*this.no())}}function ve(t){return t.slice().sort((t,i)=>x(t.Xi())-x(i.Xi()))}var be;!function(t){t[t.Normal=0]="Normal",t[t.Logarithmic=1]="Logarithmic",t[t.Percentage=2]="Percentage",t[t.IndexedTo100=3]="IndexedTo100"}(be||(be={}));const we=new wt,ye=new bt(100,1);class Se{constructor(t,i,e,s){this.ho=0,this.lo=null,this.Ih=null,this.ao=null,this.oo={_o:!1,uo:null},this.co=0,this.do=0,this.fo=new P,this.vo=new P,this.po=[],this.mo=null,this.bo=null,this.wo=null,this.Mo=null,this.wa=ye,this.xo=me(null),this.So=t,this.cn=i,this.ko=e,this.yo=s,this.Co=new ge(this,100,this.To.bind(this),this.Po.bind(this))}Pa(){return this.So}W(){return this.cn}$h(t){if(V(this.cn,t),this.Ra(),void 0!==t.mode&&this.Ro({Cr:t.mode}),void 0!==t.scaleMargins){const i=C(t.scaleMargins.top),e=C(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(e<0||e>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${e}`);if(i+e>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+e}`);this.Do(),this.bo=null}}Vo(){return this.cn.autoScale}ro(){return 1===this.cn.mode}Mh(){return 2===this.cn.mode}Oo(){return 3===this.cn.mode}Cr(){return{Wn:this.cn.autoScale,Bo:this.cn.invertScale,Cr:this.cn.mode}}Ro(t){const i=this.Cr();let e=null;void 0!==t.Wn&&(this.cn.autoScale=t.Wn),void 0!==t.Cr&&(this.cn.mode=t.Cr,2!==t.Cr&&3!==t.Cr||(this.cn.autoScale=!0),this.oo._o=!1),1===i.Cr&&t.Cr!==i.Cr&&(function(t,i){if(null===t)return!1;const e=ue(t.Ph(),i),s=ue(t.Rh(),i);return isFinite(e)&&isFinite(s)}(this.Ih,this.xo)?(e=fe(this.Ih,this.xo),null!==e&&this.Ao(e)):this.cn.autoScale=!0),1===t.Cr&&t.Cr!==i.Cr&&(e=de(this.Ih,this.xo),null!==e&&this.Ao(e));const s=i.Cr!==this.cn.mode;s&&(2===i.Cr||this.Mh())&&this.Ra(),s&&(3===i.Cr||this.Oo())&&this.Ra(),void 0!==t.Bo&&i.Bo!==t.Bo&&(this.cn.invertScale=t.Bo,this.Io()),this.vo.m(i,this.Cr())}zo(){return this.vo}P(){return this.ko.fontSize}At(){return this.ho}Lo(t){this.ho!==t&&(this.ho=t,this.Do(),this.bo=null)}Eo(){if(this.lo)return this.lo;const t=this.At()-this.No()-this.Fo();return this.lo=t,t}Lh(){return this.Wo(),this.Ih}Ao(t,i){const e=this.Ih;(i||null===e&&null!==t||null!==e&&!e.Ch(t))&&(this.bo=null,this.Ih=t)}Ni(){return this.Wo(),0===this.ho||!this.Ih||this.Ih.Ni()}jo(t){return this.Bo()?t:this.At()-1-t}Rt(t,i){return this.Mh()?t=oe(t,i):this.Oo()&&(t=le(t,i)),this.Po(t,i)}te(t,i,e){this.Wo();const s=this.Fo(),n=x(this.Lh()),r=n.Ph(),o=n.Rh(),h=this.Eo()-1,l=this.Bo(),a=h/(o-r),c=void 0===e?0:e.from,u=void 0===e?t.length:e.to,d=this.Ho();for(let e=c;e<u;e++){const n=t[e],o=n._t;if(isNaN(o))continue;let h=o;null!==d&&(h=d(n._t,i));const c=s+a*(h-r),u=l?c:this.ho-1-c;n.st=u}}be(t,i,e){this.Wo();const s=this.Fo(),n=x(this.Lh()),r=n.Ph(),o=n.Rh(),h=this.Eo()-1,l=this.Bo(),a=h/(o-r),c=void 0===e?0:e.from,u=void 0===e?t.length:e.to,d=this.Ho();for(let e=c;e<u;e++){const n=t[e];let o=n.ge,h=n.Me,c=n.xe,u=n.Se;null!==d&&(o=d(n.ge,i),h=d(n.Me,i),c=d(n.xe,i),u=d(n.Se,i));let f=s+a*(o-r),m=l?f:this.ho-1-f;n.pe=m,f=s+a*(h-r),m=l?f:this.ho-1-f,n.de=m,f=s+a*(c-r),m=l?f:this.ho-1-f,n.fe=m,f=s+a*(u-r),m=l?f:this.ho-1-f,n.me=m}}pn(t,i){const e=this.To(t,i);return this.$o(e,i)}$o(t,i){let e=t;return this.Mh()?e=function(t,i){return i<0&&(t=-t),t/100*i+i}(e,i):this.Oo()&&(e=function(t,i){return t-=100,i<0&&(t=-t),t/100*i+i}(e,i)),e}Ba(){return this.po}Uo(){if(this.mo)return this.mo;let t=[];for(let i=0;i<this.po.length;i++){const e=this.po[i];null===e.Xi()&&e.Ki(i+1),t.push(e)}return t=ve(t),this.mo=t,this.mo}qo(t){-1===this.po.indexOf(t)&&(this.po.push(t),this.Ra(),this.Yo())}Zo(t){const i=this.po.indexOf(t);if(-1===i)throw new Error("source is not attached to scale");this.po.splice(i,1),0===this.po.length&&(this.Ro({Wn:!0}),this.Ao(null)),this.Ra(),this.Yo()}Ct(){let t=null;for(const i of this.po){const e=i.Ct();null!==e&&(null===t||e.la<t.la)&&(t=e)}return null===t?null:t.Vt}Bo(){return this.cn.invertScale}Ha(){const t=null===this.Ct();if(null!==this.bo&&(t||this.bo.Xo===t))return this.bo.Ha;this.Co.io();const i=this.Co.Ha();return this.bo={Ha:i,Xo:t},this.fo.m(),i}Ko(){return this.fo}Go(t){this.Mh()||this.Oo()||null===this.wo&&null===this.ao&&(this.Ni()||(this.wo=this.ho-t,this.ao=x(this.Lh()).Th()))}Jo(t){if(this.Mh()||this.Oo())return;if(null===this.wo)return;this.Ro({Wn:!1}),(t=this.ho-t)<0&&(t=0);let i=(this.wo+.2*(this.ho-1))/(t+.2*(this.ho-1));const e=x(this.ao).Th();i=Math.max(i,.1),e.Vh(i),this.Ao(e)}Qo(){this.Mh()||this.Oo()||(this.wo=null,this.ao=null)}t_(t){this.Vo()||null===this.Mo&&null===this.ao&&(this.Ni()||(this.Mo=t,this.ao=x(this.Lh()).Th()))}i_(t){if(this.Vo())return;if(null===this.Mo)return;const i=x(this.Lh()).Dh()/(this.Eo()-1);let e=t-this.Mo;this.Bo()&&(e*=-1);const s=e*i,n=x(this.ao).Th();n.Oh(s),this.Ao(n,!0),this.bo=null}n_(){this.Vo()||null!==this.Mo&&(this.Mo=null,this.ao=null)}ba(){return this.wa||this.Ra(),this.wa}Fi(t,i){switch(this.cn.mode){case 2:return this.s_(oe(t,i));case 3:return this.ba().format(le(t,i));default:return this.Wh(t)}}eo(t){switch(this.cn.mode){case 2:return this.s_(t);case 3:return this.ba().format(t);default:return this.Wh(t)}}Yl(t){return this.Wh(t,x(this.e_()).ba())}Zl(t,i){return t=oe(t,i),this.s_(t,we)}r_(){return this.po}h_(t){this.oo={uo:t,_o:!1}}Vn(){this.po.forEach(t=>t.Vn())}Ra(){this.bo=null;const t=this.e_();let i=100;null!==t&&(i=Math.round(1/t.ma())),this.wa=ye,this.Mh()?(this.wa=we,i=100):this.Oo()?(this.wa=new bt(100,1),i=100):null!==t&&(this.wa=t.ba()),this.Co=new ge(this,i,this.To.bind(this),this.Po.bind(this)),this.Co.io()}Yo(){this.mo=null}e_(){return this.po[0]||null}No(){return this.Bo()?this.cn.scaleMargins.bottom*this.At()+this.do:this.cn.scaleMargins.top*this.At()+this.co}Fo(){return this.Bo()?this.cn.scaleMargins.top*this.At()+this.co:this.cn.scaleMargins.bottom*this.At()+this.do}Wo(){this.oo._o||(this.oo._o=!0,this.l_())}Do(){this.lo=null}Po(t,i){if(this.Wo(),this.Ni())return 0;t=this.ro()&&t?ce(t,this.xo):t;const e=x(this.Lh()),s=this.Fo()+(this.Eo()-1)*(t-e.Ph())/e.Dh();return this.jo(s)}To(t,i){if(this.Wo(),this.Ni())return 0;const e=this.jo(t),s=x(this.Lh()),n=s.Ph()+s.Dh()*((e-this.Fo())/(this.Eo()-1));return this.ro()?ue(n,this.xo):n}Io(){this.bo=null,this.Co.io()}l_(){const t=this.oo.uo;if(null===t)return;let i=null;const e=this.r_();let s=0,n=0;for(const r of e){if(!r.yt())continue;const e=r.Ct();if(null===e)continue;const o=r.Il(t.Os(),t.ui());let h=o&&o.Lh();if(null!==h){switch(this.cn.mode){case 1:h=de(h,this.xo);break;case 2:h=he(h,e.Vt);break;case 3:h=ae(h,e.Vt)}if(i=null===i?h:i.ts(x(h)),null!==o){const t=o.Eh();null!==t&&(s=Math.max(s,t.above),n=Math.max(n,t.below))}}}if(s===this.co&&n===this.do||(this.co=s,this.do=n,this.bo=null,this.Do()),null!==i){if(i.Ph()===i.Rh()){const t=this.e_(),e=5*(null===t||this.Mh()||this.Oo()?1:t.ma());this.ro()&&(i=fe(i,this.xo)),i=new Oi(i.Ph()-e,i.Rh()+e),this.ro()&&(i=de(i,this.xo))}if(this.ro()){const t=fe(i,this.xo),e=me(t);if(r=e,o=this.xo,r.$a!==o.$a||r.Ua!==o.Ua){const s=null!==this.ao?fe(this.ao,this.xo):null;this.xo=e,i=de(t,e),null!==s&&(this.ao=de(s,e))}}this.Ao(i)}else null===this.Ih&&(this.Ao(new Oi(-.5,.5)),this.xo=me(null));var r,o;this.oo._o=!0}Ho(){return this.Mh()?oe:this.Oo()?le:this.ro()?t=>ce(t,this.xo):null}a_(t,i,e){return void 0===i?(void 0===e&&(e=this.ba()),e.format(t)):i(t)}Wh(t,i){return this.a_(t,this.yo.priceFormatter,i)}s_(t,i){return this.a_(t,this.yo.percentageFormatter,i)}}class Ce{constructor(t,i){this.po=[],this.o_=new Map,this.ho=0,this.__=0,this.u_=1e3,this.mo=null,this.c_=new P,this.yl=t,this.$i=i,this.d_=new ne(this);const e=i.W();this.f_=this.v_("left",e.leftPriceScale),this.p_=this.v_("right",e.rightPriceScale),this.f_.zo().l(this.m_.bind(this,this.f_),this),this.p_.zo().l(this.m_.bind(this,this.p_),this),this.b_(e)}b_(t){if(t.leftPriceScale&&this.f_.$h(t.leftPriceScale),t.rightPriceScale&&this.p_.$h(t.rightPriceScale),t.localization&&(this.f_.Ra(),this.p_.Ra()),t.overlayPriceScales){const i=Array.from(this.o_.values());for(const e of i){const i=x(e[0].Dt());i.$h(t.overlayPriceScales),t.localization&&i.Ra()}}}w_(t){switch(t){case"left":return this.f_;case"right":return this.p_}return this.o_.has(t)?C(this.o_.get(t))[0].Dt():null}S(){this.$t().g_().p(this),this.f_.zo().p(this),this.p_.zo().p(this),this.po.forEach(t=>{t.S&&t.S()}),this.c_.m()}M_(){return this.u_}x_(t){this.u_=t}$t(){return this.$i}Hi(){return this.__}At(){return this.ho}S_(t){this.__=t,this.k_()}Lo(t){this.ho=t,this.f_.Lo(t),this.p_.Lo(t),this.po.forEach(i=>{if(this.vr(i)){const e=i.Dt();null!==e&&e.Lo(t)}}),this.k_()}Ba(){return this.po}vr(t){const i=t.Dt();return null===i||this.f_!==i&&this.p_!==i}qo(t,i,e){const s=void 0!==e?e:this.C_().y_+1;this.T_(t,i,s)}Zo(t){const i=this.po.indexOf(t);S(-1!==i,"removeDataSource: invalid data source"),this.po.splice(i,1);const e=x(t.Dt()).Pa();if(this.o_.has(e)){const i=C(this.o_.get(e)),s=i.indexOf(t);-1!==s&&(i.splice(s,1),0===i.length&&this.o_.delete(e))}const s=t.Dt();s&&s.Ba().indexOf(t)>=0&&s.Zo(t),null!==s&&(s.Yo(),this.P_(s)),this.mo=null}mr(t){return t===this.f_?"left":t===this.p_?"right":"overlay"}R_(){return this.f_}D_(){return this.p_}V_(t,i){t.Go(i)}O_(t,i){t.Jo(i),this.k_()}B_(t){t.Qo()}A_(t,i){t.t_(i)}I_(t,i){t.i_(i),this.k_()}z_(t){t.n_()}k_(){this.po.forEach(t=>{t.Vn()})}vn(){let t=null;return this.$i.W().rightPriceScale.visible&&0!==this.p_.Ba().length?t=this.p_:this.$i.W().leftPriceScale.visible&&0!==this.f_.Ba().length?t=this.f_:0!==this.po.length&&(t=this.po[0].Dt()),null===t&&(t=this.p_),t}pr(){let t=null;return this.$i.W().rightPriceScale.visible?t=this.p_:this.$i.W().leftPriceScale.visible&&(t=this.f_),t}P_(t){null!==t&&t.Vo()&&this.L_(t)}E_(t){const i=this.yl.Xs();t.Ro({Wn:!0}),null!==i&&t.h_(i),this.k_()}N_(){this.L_(this.f_),this.L_(this.p_)}F_(){this.P_(this.f_),this.P_(this.p_),this.po.forEach(t=>{this.vr(t)&&this.P_(t.Dt())}),this.k_(),this.$i.Uh()}Uo(){return null===this.mo&&(this.mo=ve(this.po)),this.mo}W_(){return this.c_}j_(){return this.d_}L_(t){const i=t.r_();if(i&&i.length>0&&!this.yl.Ni()){const i=this.yl.Xs();null!==i&&t.h_(i)}t.Vn()}C_(){const t=this.Uo();if(0===t.length)return{H_:0,y_:0};let i=0,e=0;for(let s=0;s<t.length;s++){const n=t[s].Xi();null!==n&&(n<i&&(i=n),n>e&&(e=n))}return{H_:i,y_:e}}T_(t,i,e){let s=this.w_(i);if(null===s&&(s=this.v_(i,this.$i.W().overlayPriceScales)),this.po.push(t),!pt(i)){const e=this.o_.get(i)||[];e.push(t),this.o_.set(i,e)}s.qo(t),t.Gi(s),t.Ki(e),this.P_(s),this.mo=null}m_(t,i,e){i.Cr!==e.Cr&&this.L_(t)}v_(t,i){const e=Object.assign({visible:!0,autoScale:!0},W(i)),s=new Se(t,e,this.$i.W().layout,this.$i.W().localization);return s.Lo(this.At()),s}}class xe{constructor(t,i,e=50){this.Ke=0,this.Ge=1,this.Je=1,this.tr=new Map,this.Qe=new Map,this.U_=t,this.q_=i,this.ir=e}Y_(t){const i=t.time,e=this.q_.cacheKey(i),s=this.tr.get(e);if(void 0!==s)return s.Z_;if(this.Ke===this.ir){const t=this.Qe.get(this.Je);this.Qe.delete(this.Je),this.tr.delete(C(t)),this.Je++,this.Ke--}const n=this.U_(t);return this.tr.set(e,{Z_:n,rr:this.Ge}),this.Qe.set(this.Ge,e),this.Ke++,this.Ge++,n}}class _e{constructor(t,i){S(t<=i,"right should be >= left"),this.X_=t,this.K_=i}Os(){return this.X_}ui(){return this.K_}G_(){return this.K_-this.X_+1}Kr(t){return this.X_<=t&&t<=this.K_}Ch(t){return this.X_===t.Os()&&this.K_===t.ui()}}function Ee(t,i){return null===t||null===i?t===i:t.Ch(i)}class Me{constructor(){this.J_=new Map,this.tr=null,this.Q_=!1}tu(t){this.Q_=t,this.tr=null}iu(t,i){this.nu(i),this.tr=null;for(let e=i;e<t.length;++e){const i=t[e];let s=this.J_.get(i.timeWeight);void 0===s&&(s=[],this.J_.set(i.timeWeight,s)),s.push({index:e,time:i.time,weight:i.timeWeight,originalTime:i.originalTime})}}su(t,i){const e=Math.ceil(i/t);return null!==this.tr&&this.tr.eu===e||(this.tr={Ha:this.ru(e),eu:e}),this.tr.Ha}nu(t){if(0===t)return void this.J_.clear();const i=[];this.J_.forEach((e,s)=>{t<=e[0].index?i.push(s):e.splice(Dt(e,t,i=>i.index<t),1/0)});for(const t of i)this.J_.delete(t)}ru(t){let i=[];for(const e of Array.from(this.J_.keys()).sort((t,i)=>i-t)){if(!this.J_.get(e))continue;const s=i;i=[];const n=s.length;let r=0;const o=C(this.J_.get(e)),h=o.length;let l=1/0,a=-1/0;for(let e=0;e<h;e++){const h=o[e],c=h.index;for(;r<n;){const t=s[r],e=t.index;if(!(e<c)){l=e;break}r++,i.push(t),a=e,l=1/0}if(l-c>=t&&c-a>=t)i.push(h),a=c;else if(this.Q_)return s}for(;r<n;r++)i.push(s[r])}return i}}class ze{constructor(t){this.hu=t}lu(){return null===this.hu?null:new _e(Math.floor(this.hu.Os()),Math.ceil(this.hu.ui()))}au(){return this.hu}static ou(){return new ze(null)}}function Re(t,i){return t.weight>i.weight?t:i}class ke{constructor(t,i,e,s){this.__=0,this._u=null,this.uu=[],this.Mo=null,this.wo=null,this.cu=new Me,this.du=new Map,this.fu=ze.ou(),this.vu=!0,this.pu=new P,this.mu=new P,this.bu=new P,this.wu=null,this.gu=null,this.Mu=[],this.cn=i,this.yo=e,this.xu=i.rightOffset,this.Su=i.barSpacing,this.$i=t,this.q_=s,this.ku(),this.cu.tu(i.uniformDistribution)}W(){return this.cn}yu(t){V(this.yo,t),this.Cu(),this.ku()}$h(t,i){var e;V(this.cn,t),this.cn.fixLeftEdge&&this.Tu(),this.cn.fixRightEdge&&this.Pu(),void 0!==t.barSpacing&&this.$i.Gn(t.barSpacing),void 0!==t.rightOffset&&this.$i.Jn(t.rightOffset),void 0!==t.minBarSpacing&&this.$i.Gn(null!==(e=t.barSpacing)&&void 0!==e?e:this.Su),this.Cu(),this.ku(),this.bu.m()}mn(t){var i,e;return null!==(e=null===(i=this.uu[t])||void 0===i?void 0:i.time)&&void 0!==e?e:null}Ui(t){var i;return null!==(i=this.uu[t])&&void 0!==i?i:null}Va(t,i){if(this.uu.length<1)return null;if(this.q_.key(t)>this.q_.key(this.uu[this.uu.length-1].time))return i?this.uu.length-1:null;const e=Dt(this.uu,this.q_.key(t),(t,i)=>this.q_.key(t.time)<i);return this.q_.key(t)<this.q_.key(this.uu[e].time)?i?e:null:e}Ni(){return 0===this.__||0===this.uu.length||null===this._u}Da(){return this.uu.length>0}Xs(){return this.Ru(),this.fu.lu()}Du(){return this.Ru(),this.fu.au()}Vu(){const t=this.Xs();if(null===t)return null;const i={from:t.Os(),to:t.ui()};return this.Ou(i)}Ou(t){const i=Math.round(t.from),e=Math.round(t.to),s=x(this.Bu()),n=x(this.Au());return{from:x(this.Ui(Math.max(s,i))),to:x(this.Ui(Math.min(n,e)))}}Iu(t){return{from:x(this.Va(t.from,!0)),to:x(this.Va(t.to,!0))}}Hi(){return this.__}S_(t){if(!isFinite(t)||t<=0)return;if(this.__===t)return;const i=this.Du(),e=this.__;if(this.__=t,this.vu=!0,this.cn.lockVisibleTimeRangeOnResize&&0!==e){const i=this.Su*t/e;this.Su=i}if(this.cn.fixLeftEdge&&null!==i&&i.Os()<=0){const i=e-t;this.xu-=Math.round(i/this.Su)+1,this.vu=!0}this.zu(),this.Lu()}It(t){if(this.Ni()||!A(t))return 0;const i=this.Eu()+this.xu-t;return this.__-(i+.5)*this.Su-1}Qs(t,i){const e=this.Eu(),s=void 0===i?0:i.from,n=void 0===i?t.length:i.to;for(let i=s;i<n;i++){const s=t[i].ot,n=e+this.xu-s,r=this.__-(n+.5)*this.Su-1;t[i].nt=r}}Nu(t){return Math.ceil(this.Fu(t))}Jn(t){this.vu=!0,this.xu=t,this.Lu(),this.$i.Wu(),this.$i.Uh()}le(){return this.Su}Gn(t){this.ju(t),this.Lu(),this.$i.Wu(),this.$i.Uh()}Hu(){return this.xu}Ha(){if(this.Ni())return null;if(null!==this.gu)return this.gu;const t=this.Su,i=5*(this.$i.W().layout.fontSize+4)/8*(this.cn.tickMarkMaxCharacterLength||8),e=Math.round(i/t),s=x(this.Xs()),n=Math.max(s.Os(),s.Os()-e),r=Math.max(s.ui(),s.ui()-e),o=this.cu.su(t,i),h=this.Bu()+e,l=this.Au()-e,a=this.$u(),c=this.cn.fixLeftEdge||a,u=this.cn.fixRightEdge||a;let d=0;for(const t of o){if(!(n<=t.index&&t.index<=r))continue;let e;d<this.Mu.length?(e=this.Mu[d],e.coord=this.It(t.index),e.label=this.Uu(t),e.weight=t.weight):(e={needAlignCoordinate:!1,coord:this.It(t.index),label:this.Uu(t),weight:t.weight},this.Mu.push(e)),this.Su>i/2&&!a?e.needAlignCoordinate=!1:e.needAlignCoordinate=c&&t.index<=h||u&&t.index>=l,d++}return this.Mu.length=d,this.gu=this.Mu,this.Mu}qu(){this.vu=!0,this.Gn(this.cn.barSpacing),this.Jn(this.cn.rightOffset)}Yu(t){this.vu=!0,this._u=t,this.Lu(),this.Tu()}Zu(t,i){const e=this.Fu(t),s=this.le(),n=s+i*(s/10);this.Gn(n),this.cn.rightBarStaysOnScroll||this.Jn(this.Hu()+(e-this.Fu(t)))}Go(t){this.Mo&&this.n_(),null===this.wo&&null===this.wu&&(this.Ni()||(this.wo=t,this.Xu()))}Jo(t){if(null===this.wu)return;const i=Rt(this.__-t,0,this.__),e=Rt(this.__-x(this.wo),0,this.__);0!==i&&0!==e&&this.Gn(this.wu.le*i/e)}Qo(){null!==this.wo&&(this.wo=null,this.Ku())}t_(t){null===this.Mo&&null===this.wu&&(this.Ni()||(this.Mo=t,this.Xu()))}i_(t){if(null===this.Mo)return;const i=(this.Mo-t)/this.le();this.xu=x(this.wu).Hu+i,this.vu=!0,this.Lu()}n_(){null!==this.Mo&&(this.Mo=null,this.Ku())}Gu(){this.Ju(this.cn.rightOffset)}Ju(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 e=this.xu,s=performance.now();this.$i.Zn({Qu:t=>(t-s)/i>=1,tc:n=>{const r=(n-s)/i;return r>=1?t:e+(t-e)*r}})}bt(t,i){this.vu=!0,this.uu=t,this.cu.iu(t,i),this.Lu()}nc(){return this.pu}sc(){return this.mu}ec(){return this.bu}Eu(){return this._u||0}rc(t){const i=t.G_();this.ju(this.__/i),this.xu=t.ui()-this.Eu(),this.Lu(),this.vu=!0,this.$i.Wu(),this.$i.Uh()}hc(){const t=this.Bu(),i=this.Au();null!==t&&null!==i&&this.rc(new _e(t,i+this.cn.rightOffset))}lc(t){const i=new _e(t.from,t.to);this.rc(i)}qi(t){return void 0!==this.yo.timeFormatter?this.yo.timeFormatter(t.originalTime):this.q_.formatHorzItem(t.time)}$u(){const{handleScroll:t,handleScale:i}=this.$i.W();return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}Bu(){return 0===this.uu.length?null:0}Au(){return 0===this.uu.length?null:this.uu.length-1}ac(t){return(this.__-1-t)/this.Su}Fu(t){const i=this.ac(t),e=this.Eu()+this.xu-i;return Math.round(1e6*e)/1e6}ju(t){const i=this.Su;this.Su=t,this.zu(),i!==this.Su&&(this.vu=!0,this.oc())}Ru(){if(!this.vu)return;if(this.vu=!1,this.Ni())return void this._c(ze.ou());const t=this.Eu(),i=this.__/this.Su,e=this.xu+t,s=new _e(e-i+1,e);this._c(new ze(s))}zu(){const t=this.uc();if(this.Su<t&&(this.Su=t,this.vu=!0),0!==this.__){const t=.5*this.__;this.Su>t&&(this.Su=t,this.vu=!0)}}uc(){return this.cn.fixLeftEdge&&this.cn.fixRightEdge&&0!==this.uu.length?this.__/this.uu.length:this.cn.minBarSpacing}Lu(){const t=this.cc();null!==t&&this.xu<t&&(this.xu=t,this.vu=!0);const i=this.dc();this.xu>i&&(this.xu=i,this.vu=!0)}cc(){const t=this.Bu(),i=this._u;return null===t||null===i?null:t-i-1+(this.cn.fixLeftEdge?this.__/this.Su:Math.min(2,this.uu.length))}dc(){return this.cn.fixRightEdge?0:this.__/this.Su-Math.min(2,this.uu.length)}Xu(){this.wu={le:this.le(),Hu:this.Hu()}}Ku(){this.wu=null}Uu(t){let i=this.du.get(t.weight);return void 0===i&&(i=new xe(t=>this.fc(t),this.q_),this.du.set(t.weight,i)),i.Y_(t)}fc(t){return this.q_.formatTickmark(t,this.yo)}_c(t){const i=this.fu;this.fu=t,Ee(i.lu(),this.fu.lu())||this.pu.m(),Ee(i.au(),this.fu.au())||this.mu.m(),this.oc()}oc(){this.gu=null}Cu(){this.oc(),this.du.clear()}ku(){this.q_.updateFormatter(this.yo)}Tu(){if(!this.cn.fixLeftEdge)return;const t=this.Bu();if(null===t)return;const i=this.Xs();if(null===i)return;const e=i.Os()-t;if(e<0){const t=this.xu-e-1;this.Jn(t)}this.zu()}Pu(){this.Lu(),this.zu()}}class Te{X(t,i,e){t.useMediaCoordinateSpace(t=>this.K(t,i,e))}gl(t,i,e){t.useMediaCoordinateSpace(t=>this.vc(t,i,e))}vc(t,i,e){}}class Le extends Te{constructor(t){super(),this.mc=new Map,this.zt=t}K(t){}vc(t){if(!this.zt.yt)return;const{context:i,mediaSize:e}=t;let s=0;for(const t of this.zt.bc){if(0===t.Kt.length)continue;i.font=t.R;const n=this.wc(i,t.Kt);n>e.width?t.Zu=e.width/n:t.Zu=1,s+=t.gc*t.Zu}let n=0;switch(this.zt.Mc){case"top":n=0;break;case"center":n=Math.max((e.height-s)/2,0);break;case"bottom":n=Math.max(e.height-s,0)}i.fillStyle=this.zt.V;for(const t of this.zt.bc){i.save();let s=0;switch(this.zt.xc){case"left":i.textAlign="left",s=t.gc/2;break;case"center":i.textAlign="center",s=e.width/2;break;case"right":i.textAlign="right",s=e.width-1-t.gc/2}i.translate(s,n),i.textBaseline="top",i.font=t.R,i.scale(t.Zu,t.Zu),i.fillText(t.Kt,0,t.Sc),i.restore(),n+=t.gc*t.Zu}}wc(t,i){const e=this.kc(t.font);let s=e.get(i);return void 0===s&&(s=t.measureText(i).width,e.set(i,s)),s}kc(t){let i=this.mc.get(t);return void 0===i&&(i=new Map,this.mc.set(t,i)),i}}class Oe{constructor(t){this.ft=!0,this.Ft={yt:!1,V:"",bc:[],Mc:"center",xc:"center"},this.Wt=new Le(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.W(),i=this.Ft;i.yt=t.visible,i.yt&&(i.V=t.color,i.xc=t.horzAlign,i.Mc=t.vertAlign,i.bc=[{Kt:t.text,R:H(t.fontSize,t.fontFamily,t.fontStyle),gc:1.2*t.fontSize,Sc:0,Zu:0}])}}class Ne extends dt{constructor(t,i){super(),this.cn=i,this.wn=new Oe(this)}Rn(){return[]}Pn(){return[this.wn]}W(){return this.cn}Vn(){this.wn.bt()}}var $e,Pe,Ve,De,Ae;!function(t){t[t.OnTouchEnd=0]="OnTouchEnd",t[t.OnNextTap=1]="OnNextTap"}($e||($e={}));class Be{constructor(t,i,e){this.yc=[],this.Cc=[],this.__=0,this.Tc=null,this.Pc=new P,this.Rc=new P,this.Dc=null,this.Vc=t,this.cn=i,this.q_=e,this.Oc=new K(this),this.yl=new ke(this,i.timeScale,this.cn.localization,e),this.vt=new mt(this,i.crosshair),this.Bc=new ie(i.crosshair),this.Ac=new Ne(this,i.watermark),this.Ic(),this.yc[0].x_(2e3),this.zc=this.Lc(0),this.Ec=this.Lc(1)}Kl(){this.Nc(gt.es())}Uh(){this.Nc(gt.ss())}oa(){this.Nc(new gt(1))}Gl(t){const i=this.Fc(t);this.Nc(i)}Wc(){return this.Tc}jc(t){const i=this.Tc;this.Tc=t,null!==i&&this.Gl(i.Hc),null!==t&&this.Gl(t.Hc)}W(){return this.cn}$h(t){V(this.cn,t),this.yc.forEach(i=>i.b_(t)),void 0!==t.timeScale&&this.yl.$h(t.timeScale),void 0!==t.localization&&this.yl.yu(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.Pc.m(),this.zc=this.Lc(0),this.Ec=this.Lc(1),this.Kl()}$c(t,i){if("left"===t)return void this.$h({leftPriceScale:i});if("right"===t)return void this.$h({rightPriceScale:i});const e=this.Uc(t);null!==e&&(e.Dt.$h(i),this.Pc.m())}Uc(t){for(const i of this.yc){const e=i.w_(t);if(null!==e)return{Ht:i,Dt:e}}return null}St(){return this.yl}qc(){return this.yc}Yc(){return this.Ac}Zc(){return this.vt}Xc(){return this.Rc}Kc(t,i){t.Lo(i),this.Wu()}S_(t){this.__=t,this.yl.S_(this.__),this.yc.forEach(i=>i.S_(t)),this.Wu()}Ic(t){const i=new Ce(this.yl,this);void 0!==t?this.yc.splice(t,0,i):this.yc.push(i);const e=void 0===t?this.yc.length-1:t,s=gt.es();return s.Nn(e,{Fn:0,Wn:!0}),this.Nc(s),i}V_(t,i,e){t.V_(i,e)}O_(t,i,e){t.O_(i,e),this.Jl(),this.Nc(this.Gc(t,2))}B_(t,i){t.B_(i),this.Nc(this.Gc(t,2))}A_(t,i,e){i.Vo()||t.A_(i,e)}I_(t,i,e){i.Vo()||(t.I_(i,e),this.Jl(),this.Nc(this.Gc(t,2)))}z_(t,i){i.Vo()||(t.z_(i),this.Nc(this.Gc(t,2)))}E_(t,i){t.E_(i),this.Nc(this.Gc(t,2))}Jc(t){this.yl.Go(t)}Qc(t,i){const e=this.St();if(e.Ni()||0===i)return;const s=e.Hi();t=Math.max(1,Math.min(t,s)),e.Zu(t,i),this.Wu()}td(t){this.nd(0),this.sd(t),this.ed()}rd(t){this.yl.Jo(t),this.Wu()}hd(){this.yl.Qo(),this.Uh()}nd(t){this.yl.t_(t)}sd(t){this.yl.i_(t),this.Wu()}ed(){this.yl.n_(),this.Uh()}wt(){return this.Cc}ld(t,i,e,s,n){this.vt.gn(t,i);let r=NaN,o=this.yl.Nu(t);const h=this.yl.Xs();null!==h&&(o=Math.min(Math.max(h.Os(),o),h.ui()));const l=s.vn(),a=l.Ct();null!==a&&(r=l.pn(i,a)),r=this.Bc.Oa(r,o,s),this.vt.kn(o,r,s),this.oa(),n||this.Rc.m(this.vt.xt(),{x:t,y:i},e)}ad(t,i,e){const s=e.vn(),n=s.Ct(),r=s.Rt(t,x(n)),o=this.yl.Va(i,!0),h=this.yl.It(x(o));this.ld(h,r,null,e,!0)}od(t){this.Zc().Cn(),this.oa(),t||this.Rc.m(null,null,null)}Jl(){const t=this.vt.Ht();if(null!==t){const i=this.vt.xn(),e=this.vt.Sn();this.ld(i,e,null,t)}this.vt.Vn()}_d(t,i,e){const s=this.yl.mn(0);void 0!==i&&void 0!==e&&this.yl.bt(i,e);const n=this.yl.mn(0),r=this.yl.Eu(),o=this.yl.Xs();if(null!==o&&null!==s&&null!==n){const i=o.Kr(r),h=this.q_.key(s)>this.q_.key(n),l=null!==t&&t>r&&!h,a=this.yl.W().allowShiftVisibleRangeOnWhitespaceReplacement,c=i&&(!(void 0===e)||a)&&this.yl.W().shiftVisibleRangeOnNewBar;if(l&&!c){const i=t-r;this.yl.Jn(this.yl.Hu()-i)}}this.yl.Yu(t)}ia(t){null!==t&&t.F_()}dr(t){const i=this.yc.find(i=>i.Uo().includes(t));return void 0===i?null:i}Wu(){this.Ac.Vn(),this.yc.forEach(t=>t.F_()),this.Jl()}S(){this.yc.forEach(t=>t.S()),this.yc.length=0,this.cn.localization.priceFormatter=void 0,this.cn.localization.percentageFormatter=void 0,this.cn.localization.timeFormatter=void 0}ud(){return this.Oc}br(){return this.Oc.W()}g_(){return this.Pc}dd(t,i,e){const s=this.yc[0],n=this.fd(i,t,s,e);return this.Cc.push(n),1===this.Cc.length?this.Kl():this.Uh(),n}vd(t){const i=this.dr(t),e=this.Cc.indexOf(t);S(-1!==e,"Series not found"),this.Cc.splice(e,1),x(i).Zo(t),t.S&&t.S()}Xl(t,i){const e=x(this.dr(t));e.Zo(t);const s=this.Uc(i);if(null===s){const s=t.Xi();e.qo(t,i,s)}else{const n=s.Ht===e?t.Xi():void 0;s.Ht.qo(t,i,n)}}hc(){const t=gt.ss();t.$n(),this.Nc(t)}pd(t){const i=gt.ss();i.Yn(t),this.Nc(i)}Kn(){const t=gt.ss();t.Kn(),this.Nc(t)}Gn(t){const i=gt.ss();i.Gn(t),this.Nc(i)}Jn(t){const i=gt.ss();i.Jn(t),this.Nc(i)}Zn(t){const i=gt.ss();i.Zn(t),this.Nc(i)}Un(){const t=gt.ss();t.Un(),this.Nc(t)}md(){return this.cn.rightPriceScale.visible?"right":"left"}bd(){return this.Ec}q(){return this.zc}Bt(t){const i=this.Ec,e=this.zc;if(i===e)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.Dc||this.Dc.Ps!==e||this.Dc.Rs!==i)this.Dc={Ps:e,Rs:i,wd:new Map};else{const i=this.Dc.wd.get(t);if(void 0!==i)return i}const s=function(t,i,e){const[s,n,r,o]=O(t),[h,l,a,c]=O(i),u=[M(s+e*(h-s)),M(n+e*(l-n)),M(r+e*(a-r)),z(o+e*(c-o))];return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}(e,i,t/100);return this.Dc.wd.set(t,s),s}Gc(t,i){const e=new gt(i);if(null!==t){const s=this.yc.indexOf(t);e.Nn(s,{Fn:i})}return e}Fc(t,i){return void 0===i&&(i=2),this.Gc(this.dr(t),i)}Nc(t){this.Vc&&this.Vc(t),this.yc.forEach(t=>t.j_().qh().bt())}fd(t,i,e,s){const n=new te(this,t,i,e,s),r=void 0!==t.priceScaleId?t.priceScaleId:this.md();return e.qo(n,r),pt(r)||n.$h(t),n}Lc(t){const i=this.cn.layout;return"gradient"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}}function Fe(t){return!D(t)&&!B(t)}function We(t){return D(t)}!function(t){t[t.Disabled=0]="Disabled",t[t.Continuous=1]="Continuous",t[t.OnDataUpdate=2]="OnDataUpdate"}(Pe||(Pe={})),function(t){t[t.LastBar=0]="LastBar",t[t.LastVisible=1]="LastVisible"}(Ve||(Ve={})),function(t){t.Solid="solid",t.VerticalGradient="gradient"}(De||(De={})),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"}(Ae||(Ae={}));const je=t=>t.getUTCFullYear();class Ie{constructor(t="yyyy-MM-dd",i="default"){this.gd=t,this.Md=i}Y_(t){return function(t,i,e){return i.replace(/yyyy/g,(t=>vt(je(t),4))(t)).replace(/yy/g,(t=>vt(je(t)%100,2))(t)).replace(/MMMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"long"}))(t,e)).replace(/MMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"short"}))(t,e)).replace(/MM/g,(t=>vt((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>vt((t=>t.getUTCDate())(t),2))(t))}(t,this.gd,this.Md)}}class Ue{constructor(t){this.xd=t||"%h:%m:%s"}Y_(t){return this.xd.replace("%h",vt(t.getUTCHours(),2)).replace("%m",vt(t.getUTCMinutes(),2)).replace("%s",vt(t.getUTCSeconds(),2))}}const He={Sd:"yyyy-MM-dd",kd:"%h:%m:%s",yd:" ",Cd:"default"};class Ke{constructor(t={}){const i=Object.assign(Object.assign({},He),t);this.Td=new Ie(i.Sd,i.Cd),this.Pd=new Ue(i.kd),this.Rd=i.yd}Y_(t){return`${this.Td.Y_(t)}${this.Rd}${this.Pd.Y_(t)}`}}function qe(t){return 60*t*60*1e3}function Xe(t){return 60*t*1e3}const Je=[{Dd:1e3,Vd:10},{Dd:Xe(1),Vd:20},{Dd:Xe(5),Vd:21},{Dd:Xe(30),Vd:22},{Dd:qe(1),Vd:30},{Dd:qe(3),Vd:31},{Dd:qe(6),Vd:32},{Dd:qe(12),Vd:33}];function Ge(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 e=Je.length-1;e>=0;--e)if(Math.floor(i.getTime()/Je[e].Dd)!==Math.floor(t.getTime()/Je[e].Dd))return Je[e].Vd;return 0}function Qe(t){let i=t;if(B(t)&&(i=Ze(t)),!Fe(i))throw new Error("time must be of type BusinessDay");const e=new Date(Date.UTC(i.year,i.month-1,i.day,0,0,0,0));return{Od:Math.round(e.getTime()/1e3),Bd:i}}function Ye(t){if(!We(t))throw new Error("time must be of type isUTCTimestamp");return{Od:t}}function Ze(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 ts(t){B(t.time)&&(t.time=Ze(t.time))}class is{options(){return this.cn}setOptions(t){this.cn=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(ts)}(t):ts(t)}createConverterToInternalObj(t){return x(function(t){return 0===t.length?null:Fe(t[0].time)||B(t[0].time)?Qe:Ye}(t))}key(t){return"object"==typeof t&&"Od"in t?t.Od:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.Bd?new Date(1e3*i.Od).getTime():new Date(Date.UTC(i.Bd.year,i.Bd.month-1,i.Bd.day)).getTime()}convertHorzItemToInternal(t){return We(i=t)?Ye(i):Fe(i)?Qe(i):Qe(Ze(i));var i}updateFormatter(t){if(!this.cn)return;const i=t.dateFormat;this.cn.timeScale.timeVisible?this.Ad=new Ke({Sd:i,kd:this.cn.timeScale.secondsVisible?"%h:%m:%s":"%h:%m",yd:" ",Cd:t.locale}):this.Ad=new Ie(i,t.locale)}formatHorzItem(t){const i=t;return this.Ad.Y_(new Date(1e3*i.Od))}formatTickmark(t,i){const e=function(t,i,e){switch(t){case 0:case 10:return i?e?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.cn.timeScale.timeVisible,this.cn.timeScale.secondsVisible),s=this.cn.timeScale;if(void 0!==s.tickMarkFormatter){const n=s.tickMarkFormatter(t.originalTime,e,i.locale);if(null!==n)return n}return function(t,i,e){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 n=void 0===t.Bd?new Date(1e3*t.Od):new Date(Date.UTC(t.Bd.year,t.Bd.month-1,t.Bd.day));return new Date(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),n.getUTCMilliseconds()).toLocaleString(e,s)}(t.time,e,i.locale)}maxTickMarkWeight(t){let i=t.reduce(Re,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){!function(t,i=0){if(0===t.length)return;let e=0===i?null:t[i-1].time.Od,s=null!==e?new Date(1e3*e):null,n=0;for(let r=i;r<t.length;++r){const i=t[r],o=new Date(1e3*i.time.Od);null!==s&&(i.timeWeight=Ge(o,s)),n+=i.time.Od-(e||i.time.Od),e=i.time.Od,s=o}if(0===i&&t.length>1){const i=Math.ceil(n/(t.length-1)),e=new Date(1e3*(t[0].time.Od-i));t[0].timeWeight=Ge(new Date(1e3*t[0].time.Od),e)}}(t,i)}static Id(t){return V({localization:{dateFormat:"dd MMM 'yy"}},null!=t?t:{})}}const es="undefined"!=typeof window;function ss(){return!!es&&window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1}function ns(){return!!es&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function rs(t){return t+t%2}function os(t,i){return t.zd-i.zd}function hs(t,i,e){const s=(t.zd-i.zd)/(t.ot-i.ot);return Math.sign(s)*Math.min(Math.abs(s),e)}class ls{constructor(t,i,e,s){this.Ld=null,this.Ed=null,this.Nd=null,this.Fd=null,this.Wd=null,this.jd=0,this.Hd=0,this.$d=t,this.Ud=i,this.qd=e,this.rs=s}Yd(t,i){if(null!==this.Ld){if(this.Ld.ot===i)return void(this.Ld.zd=t);if(Math.abs(this.Ld.zd-t)<this.rs)return}this.Fd=this.Nd,this.Nd=this.Ed,this.Ed=this.Ld,this.Ld={ot:i,zd:t}}Vr(t,i){if(null===this.Ld||null===this.Ed)return;if(i-this.Ld.ot>50)return;let e=0;const s=hs(this.Ld,this.Ed,this.Ud),n=os(this.Ld,this.Ed),r=[s],o=[n];if(e+=n,null!==this.Nd){const t=hs(this.Ed,this.Nd,this.Ud);if(Math.sign(t)===Math.sign(s)){const i=os(this.Ed,this.Nd);if(r.push(t),o.push(i),e+=i,null!==this.Fd){const t=hs(this.Nd,this.Fd,this.Ud);if(Math.sign(t)===Math.sign(s)){const i=os(this.Nd,this.Fd);r.push(t),o.push(i),e+=i}}}}let h=0;for(let t=0;t<r.length;++t)h+=o[t]/e*r[t];Math.abs(h)<this.$d||(this.Wd={zd:t,ot:i},this.Hd=h,this.jd=function(t,i){const e=Math.log(i);return Math.log(1*e/-t)/e}(Math.abs(h),this.qd))}tc(t){const i=x(this.Wd),e=t-i.ot;return i.zd+this.Hd*(Math.pow(this.qd,e)-1)/Math.log(this.qd)}Qu(t){return null===this.Wd||this.Zd(t)===this.jd}Zd(t){const i=t-x(this.Wd).ot;return Math.min(i,this.jd)}}class as{constructor(t,i){this.Xd=void 0,this.Kd=void 0,this.Gd=void 0,this.en=!1,this.Jd=t,this.Qd=i,this.tf()}bt(){this.tf()}if(){this.Xd&&this.Jd.removeChild(this.Xd),this.Kd&&this.Jd.removeChild(this.Kd),this.Xd=void 0,this.Kd=void 0}nf(){return this.en!==this.sf()||this.Gd!==this.ef()}ef(){return N(O(this.Qd.W().layout.textColor))>160?"dark":"light"}sf(){return this.Qd.W().layout.attributionLogo}rf(){const t=new URL(location.href);return t.hostname?"&utm_source="+t.hostname+t.pathname:""}tf(){this.nf()&&(this.if(),this.en=this.sf(),this.en&&(this.Gd=this.ef(),this.Kd=document.createElement("style"),this.Kd.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.Xd=document.createElement("a"),this.Xd.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.rf()}`,this.Xd.title="Charting by TradingView",this.Xd.id="tv-attr-logo",this.Xd.target="_blank",this.Xd.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 35 19" width="35" height="19" fill="none"><g fill-rule="evenodd" clip-path="url(#a)" clip-rule="evenodd"><path fill="var(--stroke)" d="M2 0H0v10h6v9h21.4l.5-1.3 6-15 1-2.7H23.7l-.5 1.3-.2.6a5 5 0 0 0-7-.9V0H2Zm20 17h4l5.2-13 .8-2h-7l-1 2.5-.2.5-1.5 3.8-.3.7V17Zm-.8-10a3 3 0 0 0 .7-2.7A3 3 0 1 0 16.8 7h4.4ZM14 7V2H2v6h6v9h4V7h2Z"/><path fill="var(--fill)" d="M14 2H2v6h6v9h6V2Zm12 15h-7l6-15h7l-6 15Zm-7-9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"/></g><defs><clipPath id="a"><path fill="var(--stroke)" d="M0 0h35v19H0z"/></clipPath></defs></svg>',this.Xd.toggleAttribute("data-dark","dark"===this.Gd),this.Jd.appendChild(this.Kd),this.Jd.appendChild(this.Xd)))}}function cs(t,i){const e=x(t.ownerDocument).createElement("canvas");t.appendChild(e);const s=(r={options:{allowResizeObserver:!1},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})},new n(e,r.transform,r.options));var r;return s.resizeCanvasElement(i),s}function us(t){var i;t.width=1,t.height=1,null===(i=t.getContext("2d"))||void 0===i||i.clearRect(0,0,1,1)}function ds(t,i,e,s){t.gl&&t.gl(i,e,s)}function fs(t,i,e,s){t.X(i,e,s)}function ms(t,i,e,s){const n=t(e,s);for(const t of n){const e=t.gt();null!==e&&i(e)}}class ps{constructor(t,i,e){this.hf=0,this.lf=null,this.af={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this._f=0,this.uf=null,this.cf={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this.df=null,this.ff=!1,this.vf=null,this.pf=null,this.mf=!1,this.bf=!1,this.wf=!1,this.gf=null,this.Mf=null,this.xf=null,this.Sf=null,this.kf=null,this.yf=null,this.Cf=null,this.Tf=0,this.Pf=!1,this.Rf=!1,this.Df=!1,this.Vf=0,this.Of=null,this.Bf=!ns(),this.Af=t=>{this.If(t)},this.zf=t=>{if(this.Lf(t)){const i=this.Ef(t);if(++this._f,this.uf&&this._f>1){const{Nf:e}=this.Ff(bs(t),this.cf);e<30&&!this.wf&&this.Wf(i,this.Hf.jf),this.$f()}}else{const i=this.Ef(t);if(++this.hf,this.lf&&this.hf>1){const{Nf:e}=this.Ff(bs(t),this.af);e<5&&!this.bf&&this.Uf(i,this.Hf.qf),this.Yf()}}},this.Zf=t,this.Hf=i,this.cn=e,this.Xf()}S(){null!==this.gf&&(this.gf(),this.gf=null),null!==this.Mf&&(this.Mf(),this.Mf=null),null!==this.Sf&&(this.Sf(),this.Sf=null),null!==this.kf&&(this.kf(),this.kf=null),null!==this.yf&&(this.yf(),this.yf=null),null!==this.xf&&(this.xf(),this.xf=null),this.Kf(),this.Yf()}Gf(t){this.Sf&&this.Sf();const i=this.Jf.bind(this);if(this.Sf=()=>{this.Zf.removeEventListener("mousemove",i)},this.Zf.addEventListener("mousemove",i),this.Lf(t))return;const e=this.Ef(t);this.Uf(e,this.Hf.Qf),this.Bf=!0}Yf(){null!==this.lf&&clearTimeout(this.lf),this.hf=0,this.lf=null,this.af={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}$f(){null!==this.uf&&clearTimeout(this.uf),this._f=0,this.uf=null,this.cf={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}Jf(t){if(this.Df||null!==this.pf)return;if(this.Lf(t))return;const i=this.Ef(t);this.Uf(i,this.Hf.tv),this.Bf=!0}iv(t){const i=ys(t.changedTouches,x(this.Of));if(null===i)return;if(this.Vf=ws(t),null!==this.Cf)return;if(this.Rf)return;this.Pf=!0;const e=this.Ff(bs(i),x(this.pf)),{nv:s,sv:n,Nf:r}=e;if(this.mf||!(r<5)){if(!this.mf){const t=.5*s,i=n>=t&&!this.cn.ev(),e=t>n&&!this.cn.rv();i||e||(this.Rf=!0),this.mf=!0,this.wf=!0,this.Kf(),this.$f()}if(!this.Rf){const e=this.Ef(t,i);this.Wf(e,this.Hf.hv),vs(t)}}}lv(t){if(0!==t.button)return;const i=this.Ff(bs(t),x(this.vf)),{Nf:e}=i;if(e>=5&&(this.bf=!0,this.Yf()),this.bf){const i=this.Ef(t);this.Uf(i,this.Hf.av)}}Ff(t,i){const e=Math.abs(i.nt-t.nt),s=Math.abs(i.st-t.st);return{nv:e,sv:s,Nf:e+s}}ov(t){let i=ys(t.changedTouches,x(this.Of));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.Of=null,this.Vf=ws(t),this.Kf(),this.pf=null,this.yf&&(this.yf(),this.yf=null);const e=this.Ef(t,i);if(this.Wf(e,this.Hf._v),++this._f,this.uf&&this._f>1){const{Nf:t}=this.Ff(bs(i),this.cf);t<30&&!this.wf&&this.Wf(e,this.Hf.jf),this.$f()}else this.wf||(this.Wf(e,this.Hf.uv),this.Hf.uv&&vs(t));0===this._f&&vs(t),0===t.touches.length&&this.ff&&(this.ff=!1,vs(t))}If(t){if(0!==t.button)return;const i=this.Ef(t);if(this.vf=null,this.Df=!1,this.kf&&(this.kf(),this.kf=null),ss()&&this.Zf.ownerDocument.documentElement.removeEventListener("mouseleave",this.Af),!this.Lf(t))if(this.Uf(i,this.Hf.cv),++this.hf,this.lf&&this.hf>1){const{Nf:e}=this.Ff(bs(t),this.af);e<5&&!this.bf&&this.Uf(i,this.Hf.qf),this.Yf()}else this.bf||this.Uf(i,this.Hf.dv)}Kf(){null!==this.df&&(clearTimeout(this.df),this.df=null)}fv(t){if(null!==this.Of)return;const i=t.changedTouches[0];this.Of=i.identifier,this.Vf=ws(t);const e=this.Zf.ownerDocument.documentElement;this.wf=!1,this.mf=!1,this.Rf=!1,this.pf=bs(i),this.yf&&(this.yf(),this.yf=null);{const i=this.iv.bind(this),s=this.ov.bind(this);this.yf=()=>{e.removeEventListener("touchmove",i),e.removeEventListener("touchend",s)},e.addEventListener("touchmove",i,{passive:!1}),e.addEventListener("touchend",s,{passive:!1}),this.Kf(),this.df=setTimeout(this.vv.bind(this,t),240)}const s=this.Ef(t,i);this.Wf(s,this.Hf.pv),this.uf||(this._f=0,this.uf=setTimeout(this.$f.bind(this),500),this.cf=bs(i))}mv(t){if(0!==t.button)return;const i=this.Zf.ownerDocument.documentElement;ss()&&i.addEventListener("mouseleave",this.Af),this.bf=!1,this.vf=bs(t),this.kf&&(this.kf(),this.kf=null);{const t=this.lv.bind(this),e=this.If.bind(this);this.kf=()=>{i.removeEventListener("mousemove",t),i.removeEventListener("mouseup",e)},i.addEventListener("mousemove",t),i.addEventListener("mouseup",e)}if(this.Df=!0,this.Lf(t))return;const e=this.Ef(t);this.Uf(e,this.Hf.bv),this.lf||(this.hf=0,this.lf=setTimeout(this.Yf.bind(this),500),this.af=bs(t))}Xf(){this.Zf.addEventListener("mouseenter",this.Gf.bind(this)),this.Zf.addEventListener("touchcancel",this.Kf.bind(this));{const t=this.Zf.ownerDocument,i=t=>{this.Hf.wv&&(t.composed&&this.Zf.contains(t.composedPath()[0])||t.target&&this.Zf.contains(t.target)||this.Hf.wv())};this.Mf=()=>{t.removeEventListener("touchstart",i)},this.gf=()=>{t.removeEventListener("mousedown",i)},t.addEventListener("mousedown",i),t.addEventListener("touchstart",i,{passive:!0})}ns()&&(this.xf=()=>{this.Zf.removeEventListener("dblclick",this.zf)},this.Zf.addEventListener("dblclick",this.zf)),this.Zf.addEventListener("mouseleave",this.gv.bind(this)),this.Zf.addEventListener("touchstart",this.fv.bind(this),{passive:!0}),function(t){es&&void 0!==window.chrome&&t.addEventListener("mousedown",t=>{if(1===t.button)return t.preventDefault(),!1})}(this.Zf),this.Zf.addEventListener("mousedown",this.mv.bind(this)),this.Mv(),this.Zf.addEventListener("touchmove",()=>{},{passive:!1})}Mv(){void 0===this.Hf.xv&&void 0===this.Hf.Sv&&void 0===this.Hf.kv||(this.Zf.addEventListener("touchstart",t=>this.yv(t.touches),{passive:!0}),this.Zf.addEventListener("touchmove",t=>{if(2===t.touches.length&&null!==this.Cf&&void 0!==this.Hf.Sv){const i=gs(t.touches[0],t.touches[1])/this.Tf;this.Hf.Sv(this.Cf,i),vs(t)}},{passive:!1}),this.Zf.addEventListener("touchend",t=>{this.yv(t.touches)}))}yv(t){1===t.length&&(this.Pf=!1),2!==t.length||this.Pf||this.ff?this.Cv():this.Tv(t)}Tv(t){const i=this.Zf.getBoundingClientRect()||{left:0,top:0};this.Cf={nt:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,st:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Tf=gs(t[0],t[1]),void 0!==this.Hf.xv&&this.Hf.xv(),this.Kf()}Cv(){null!==this.Cf&&(this.Cf=null,void 0!==this.Hf.kv&&this.Hf.kv())}gv(t){if(this.Sf&&this.Sf(),this.Lf(t))return;if(!this.Bf)return;const i=this.Ef(t);this.Uf(i,this.Hf.Pv),this.Bf=!ns()}vv(t){const i=ys(t.touches,x(this.Of));if(null===i)return;const e=this.Ef(t,i);this.Wf(e,this.Hf.Rv),this.wf=!0,this.ff=!0}Lf(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:ws(t)<this.Vf+500}Wf(t,i){i&&i.call(this.Hf,t)}Uf(t,i){i&&i.call(this.Hf,t)}Ef(t,i){const e=i||t,s=this.Zf.getBoundingClientRect()||{left:0,top:0};return{clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY,localX:e.clientX-s.left,localY:e.clientY-s.top,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey,Dv:!t.type.startsWith("mouse")&&"contextmenu"!==t.type&&"click"!==t.type,Vv:t.type,Ov:e.target,Bv:t.view,Av:()=>{"touchstart"!==t.type&&vs(t)}}}}function gs(t,i){const e=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(e*e+s*s)}function vs(t){t.cancelable&&t.preventDefault()}function bs(t){return{nt:t.pageX,st:t.pageY}}function ws(t){return t.timeStamp||performance.now()}function ys(t,i){for(let e=0;e<t.length;++e)if(t[e].identifier===i)return t[e];return null}function Ss(t){return{Hc:t.Hc,Iv:{gr:t.zv.externalId},Lv:t.zv.cursorStyle}}function Cs(t,i,e){for(const s of t){const t=s.gt();if(null!==t&&t.wr){const n=t.wr(i,e);if(null!==n)return{Bv:s,Iv:n}}}return null}function xs(t,i){return e=>{var s,n,r,o;return(null!==(n=null===(s=e.Dt())||void 0===s?void 0:s.Pa())&&void 0!==n?n:"")!==i?[]:null!==(o=null===(r=e.da)||void 0===r?void 0:r.call(e,t))&&void 0!==o?o:[]}}function _s(t,i,e,s){if(!t.length)return;let n=0;const r=e/2,o=t[0].At(s,!0);let h=1===i?r-(t[0].Vi()-o/2):t[0].Vi()-o/2-r;h=Math.max(0,h);for(let r=1;r<t.length;r++){const o=t[r],l=t[r-1],a=l.At(s,!1),c=o.Vi(),u=l.Vi();if(1===i?c>u-a:c<u+a){const s=u-a*i;o.Oi(s);const r=s-i*a/2;if((1===i?r<0:r>e)&&h>0){const s=1===i?-1-r:r-e,o=Math.min(s,h);for(let e=n;e<t.length;e++)t[e].Oi(t[e].Vi()+i*o);h-=o}}else n=r,h=1===i?u-a-c:c-(u+a)}}class Es{constructor(t,e,s,n){this.Li=null,this.Ev=null,this.Nv=!1,this.Fv=new oi(200),this.Qr=null,this.Wv=0,this.jv=!1,this.Hv=()=>{this.jv||this.tn.$v().$t().Uh()},this.Uv=()=>{this.jv||this.tn.$v().$t().Uh()},this.tn=t,this.cn=e,this.ko=e.layout,this.Oc=s,this.qv="left"===n,this.Yv=xs("normal",n),this.Zv=xs("top",n),this.Xv=xs("bottom",n),this.Kv=document.createElement("div"),this.Kv.style.height="100%",this.Kv.style.overflow="hidden",this.Kv.style.width="25px",this.Kv.style.left="0",this.Kv.style.position="relative",this.Gv=cs(this.Kv,i({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const r=this.Gv.canvasElement;r.style.position="absolute",r.style.zIndex="1",r.style.left="0",r.style.top="0",this.Jv=cs(this.Kv,i({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const o=this.Jv.canvasElement;o.style.position="absolute",o.style.zIndex="2",o.style.left="0",o.style.top="0";const h={bv:this.Qv.bind(this),pv:this.Qv.bind(this),av:this.tp.bind(this),hv:this.tp.bind(this),wv:this.ip.bind(this),cv:this.np.bind(this),_v:this.np.bind(this),qf:this.sp.bind(this),jf:this.sp.bind(this),Qf:this.ep.bind(this),Pv:this.rp.bind(this)};this.hp=new ps(this.Jv.canvasElement,h,{ev:()=>!this.cn.handleScroll.vertTouchDrag,rv:()=>!0})}S(){this.hp.S(),this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose(),null!==this.Li&&this.Li.Ko().p(this),this.Li=null}lp(){return this.Kv}P(){return this.ko.fontSize}ap(){const t=this.Oc.W();return this.Qr!==t.R&&(this.Fv.nr(),this.Qr=t.R),t}op(){if(null===this.Li)return 0;let t=0;const i=this.ap(),e=x(this.Gv.canvasElement.getContext("2d"));e.save();const s=this.Li.Ha();e.font=this._p(),s.length>0&&(t=Math.max(this.Fv.xi(e,s[0].so),this.Fv.xi(e,s[s.length-1].so)));const n=this.up();for(let i=n.length;i--;){const s=this.Fv.xi(e,n[i].Kt());s>t&&(t=s)}const r=this.Li.Ct();if(null!==r&&null!==this.Ev&&2!==(o=this.cn.crosshair).mode&&o.horzLine.visible&&o.horzLine.labelVisible){const i=this.Li.pn(1,r),s=this.Li.pn(this.Ev.height-2,r);t=Math.max(t,this.Fv.xi(e,this.Li.Fi(Math.floor(Math.min(i,s))+.11111111111111,r)),this.Fv.xi(e,this.Li.Fi(Math.ceil(Math.max(i,s))-.11111111111111,r)))}var o;e.restore();const h=t||34;return rs(Math.ceil(i.C+i.T+i.A+i.I+5+h))}cp(t){null!==this.Ev&&e(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`)}dp(){return x(this.Ev).width}Gi(t){this.Li!==t&&(null!==this.Li&&this.Li.Ko().p(this),this.Li=t,t.Ko().l(this.fo.bind(this),this))}Dt(){return this.Li}nr(){const t=this.tn.fp();this.tn.$v().$t().E_(t,x(this.Dt()))}vp(t){if(null===this.Ev)return;if(1!==t){this.pp(),this.Gv.applySuggestedBitmapSize();const t=h(this.Gv);null!==t&&(t.useBitmapCoordinateSpace(t=>{this.mp(t),this.Ie(t)}),this.tn.bp(t,this.Xv),this.wp(t),this.tn.bp(t,this.Yv),this.gp(t))}this.Jv.applySuggestedBitmapSize();const i=h(this.Jv);null!==i&&(i.useBitmapCoordinateSpace(({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)}),this.Mp(i),this.tn.bp(i,this.Zv))}xp(){return this.Gv.bitmapSize}Sp(t,i,e){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,e)}bt(){var t;null===(t=this.Li)||void 0===t||t.Ha()}Qv(t){if(null===this.Li||this.Li.Ni()||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),e=this.tn.fp();this.Nv=!0,i.V_(e,this.Li,t.localY)}tp(t){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),e=this.tn.fp(),s=this.Li;i.O_(e,s,t.localY)}ip(){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const t=this.tn.$v().$t(),i=this.tn.fp(),e=this.Li;this.Nv&&(this.Nv=!1,t.B_(i,e))}np(t){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),e=this.tn.fp();this.Nv=!1,i.B_(e,this.Li)}sp(t){this.cn.handleScale.axisDoubleClickReset.price&&this.nr()}ep(t){null!==this.Li&&(!this.tn.$v().$t().W().handleScale.axisPressedMouseMove.price||this.Li.Mh()||this.Li.Oo()||this.kp(1))}rp(t){this.kp(0)}up(){const t=[],i=null===this.Li?void 0:this.Li;return(e=>{for(let s=0;s<e.length;++s){const n=e[s].Rn(this.tn.fp(),i);for(let i=0;i<n.length;i++)t.push(n[i])}})(this.tn.fp().Uo()),t}mp({context:t,bitmapSize:i}){const{width:e,height:s}=i,n=this.tn.fp().$t(),r=n.q(),o=n.bd();r===o?et(t,0,0,e,s,r):rt(t,0,0,e,s,r,o)}Ie({context:t,bitmapSize:i,horizontalPixelRatio:e}){if(null===this.Ev||null===this.Li||!this.Li.W().borderVisible)return;t.fillStyle=this.Li.W().borderColor;const s=Math.max(1,Math.floor(this.ap().C*e));let n;n=this.qv?i.width-s:0,t.fillRect(n,0,s,i.height)}wp(t){if(null===this.Ev||null===this.Li)return;const i=this.Li.Ha(),e=this.Li.W(),s=this.ap(),n=this.qv?this.Ev.width-s.T:0;e.borderVisible&&e.ticksVisible&&t.useBitmapCoordinateSpace(({context:t,horizontalPixelRatio:r,verticalPixelRatio:o})=>{t.fillStyle=e.borderColor;const h=Math.max(1,Math.floor(o)),l=Math.floor(.5*o),a=Math.round(s.T*r);t.beginPath();for(const e of i)t.rect(Math.floor(n*r),Math.round(e.Ea*o)-l,a,h);t.fill()}),t.useMediaCoordinateSpace(({context:t})=>{var r;t.font=this._p(),t.fillStyle=null!==(r=e.textColor)&&void 0!==r?r:this.ko.textColor,t.textAlign=this.qv?"right":"left",t.textBaseline="middle";const o=this.qv?Math.round(n-s.A):Math.round(n+s.T+s.A),h=i.map(i=>this.Fv.Mi(t,i.so));for(let e=i.length;e--;){const s=i[e];t.fillText(s.so,o,s.Ea+h[e])}})}pp(){if(null===this.Ev||null===this.Li)return;const t=[],i=this.Li.Uo().slice(),e=this.tn.fp(),s=this.ap();this.Li===e.pr()&&this.tn.fp().Uo().forEach(t=>{e.vr(t)&&i.push(t)});const n=this.Li;i.forEach(i=>{i.Rn(e,n).forEach(i=>{i.Oi(null),i.Bi()&&t.push(i)})}),t.forEach(t=>t.Oi(t.ki())),this.Li.W().alignLabels&&this.yp(t,s)}yp(t,i){if(null===this.Ev)return;const e=this.Ev.height/2,s=t.filter(t=>t.ki()<=e),n=t.filter(t=>t.ki()>e);s.sort((t,i)=>i.ki()-t.ki()),n.sort((t,i)=>t.ki()-i.ki());for(const e of t){const t=Math.floor(e.At(i)/2),s=e.ki();s>-t&&s<t&&e.Oi(t),s>this.Ev.height-t&&s<this.Ev.height+t&&e.Oi(this.Ev.height-t)}_s(s,1,this.Ev.height,i),_s(n,-1,this.Ev.height,i)}gp(t){if(null===this.Ev)return;const i=this.up(),e=this.ap(),s=this.qv?"right":"left";i.forEach(i=>{i.Ai()&&i.gt(x(this.Li)).X(t,e,this.Fv,s)})}Mp(t){if(null===this.Ev||null===this.Li)return;const i=this.tn.$v().$t(),e=[],s=this.tn.fp(),n=i.Zc().Rn(s,this.Li);n.length&&e.push(n);const r=this.ap(),o=this.qv?"right":"left";e.forEach(i=>{i.forEach(i=>{i.gt(x(this.Li)).X(t,r,this.Fv,o)})})}kp(t){this.Kv.style.cursor=1===t?"ns-resize":"default"}fo(){const t=this.op();this.Wv<t&&this.tn.$v().$t().Kl(),this.Wv=t}_p(){return H(this.ko.fontSize,this.ko.fontFamily)}}function Ms(t,i){var e,s;return null!==(s=null===(e=t.ua)||void 0===e?void 0:e.call(t,i))&&void 0!==s?s:[]}function zs(t,i){var e,s;return null!==(s=null===(e=t.Pn)||void 0===e?void 0:e.call(t,i))&&void 0!==s?s:[]}function Rs(t,i){var e,s;return null!==(s=null===(e=t.Ji)||void 0===e?void 0:e.call(t,i))&&void 0!==s?s:[]}function ks(t,i){var e,s;return null!==(s=null===(e=t.aa)||void 0===e?void 0:e.call(t,i))&&void 0!==s?s:[]}class Ts{constructor(t,e){this.Ev=i({width:0,height:0}),this.Cp=null,this.Tp=null,this.Pp=null,this.Rp=null,this.Dp=!1,this.Vp=new P,this.Op=new P,this.Bp=0,this.Ap=!1,this.Ip=null,this.zp=!1,this.Lp=null,this.Ep=null,this.jv=!1,this.Hv=()=>{this.jv||null===this.Np||this.$i().Uh()},this.Uv=()=>{this.jv||null===this.Np||this.$i().Uh()},this.Qd=t,this.Np=e,this.Np.W_().l(this.Fp.bind(this),this,!0),this.Wp=document.createElement("td"),this.Wp.style.padding="0",this.Wp.style.position="relative";const s=document.createElement("div");s.style.width="100%",s.style.height="100%",s.style.position="relative",s.style.overflow="hidden",this.jp=document.createElement("td"),this.jp.style.padding="0",this.Hp=document.createElement("td"),this.Hp.style.padding="0",this.Wp.appendChild(s),this.Gv=cs(s,i({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const n=this.Gv.canvasElement;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.Jv=cs(s,i({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const r=this.Jv.canvasElement;r.style.position="absolute",r.style.zIndex="2",r.style.left="0",r.style.top="0",this.$p=document.createElement("tr"),this.$p.appendChild(this.jp),this.$p.appendChild(this.Wp),this.$p.appendChild(this.Hp),this.Up(),this.hp=new ps(this.Jv.canvasElement,this,{ev:()=>null===this.Ip&&!this.Qd.W().handleScroll.vertTouchDrag,rv:()=>null===this.Ip&&!this.Qd.W().handleScroll.horzTouchDrag})}S(){null!==this.Cp&&this.Cp.S(),null!==this.Tp&&this.Tp.S(),this.Pp=null,this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose(),null!==this.Np&&this.Np.W_().p(this),this.hp.S()}fp(){return x(this.Np)}qp(t){var i,e;null!==this.Np&&this.Np.W_().p(this),this.Np=t,null!==this.Np&&this.Np.W_().l(Ts.prototype.Fp.bind(this),this,!0),this.Up(),this.Qd.Yp().indexOf(this)===this.Qd.Yp().length-1?(this.Pp=null!==(i=this.Pp)&&void 0!==i?i:new as(this.Wp,this.Qd),this.Pp.bt()):(null===(e=this.Pp)||void 0===e||e.if(),this.Pp=null)}$v(){return this.Qd}lp(){return this.$p}Up(){if(null!==this.Np&&(this.Zp(),0!==this.$i().wt().length)){if(null!==this.Cp){const t=this.Np.R_();this.Cp.Gi(x(t))}if(null!==this.Tp){const t=this.Np.D_();this.Tp.Gi(x(t))}}}Xp(){null!==this.Cp&&this.Cp.bt(),null!==this.Tp&&this.Tp.bt()}M_(){return null!==this.Np?this.Np.M_():0}x_(t){this.Np&&this.Np.x_(t)}Qf(t){if(!this.Np)return;this.Kp();const i=t.localX,e=t.localY;this.Gp(i,e,t)}bv(t){this.Kp(),this.Jp(),this.Gp(t.localX,t.localY,t)}tv(t){var i;if(!this.Np)return;this.Kp();const e=t.localX,s=t.localY;this.Gp(e,s,t);const n=this.wr(e,s);this.Qd.Qp(null!==(i=null==n?void 0:n.Lv)&&void 0!==i?i:null),this.$i().jc(n&&{Hc:n.Hc,Iv:n.Iv})}dv(t){null!==this.Np&&(this.Kp(),this.tm(t))}qf(t){null!==this.Np&&this.im(this.Op,t)}jf(t){this.qf(t)}av(t){this.Kp(),this.nm(t),this.Gp(t.localX,t.localY,t)}cv(t){null!==this.Np&&(this.Kp(),this.Ap=!1,this.sm(t))}uv(t){null!==this.Np&&this.tm(t)}Rv(t){if(this.Ap=!0,null===this.Ip){const i={x:t.localX,y:t.localY};this.rm(i,i,t)}}Pv(t){null!==this.Np&&(this.Kp(),this.Np.$t().jc(null),this.hm())}lm(){return this.Vp}am(){return this.Op}xv(){this.Bp=1,this.$i().Un()}Sv(t,i){if(!this.Qd.W().handleScale.pinch)return;const e=5*(i-this.Bp);this.Bp=i,this.$i().Qc(t.nt,e)}pv(t){this.Ap=!1,this.zp=null!==this.Ip,this.Jp();const i=this.$i().Zc();null!==this.Ip&&i.yt()&&(this.Lp={x:i.Yt(),y:i.Zt()},this.Ip={x:t.localX,y:t.localY})}hv(t){if(null===this.Np)return;const i=t.localX,e=t.localY;if(null===this.Ip)this.nm(t);else{this.zp=!1;const s=x(this.Lp),n=s.x+(i-this.Ip.x),r=s.y+(e-this.Ip.y);this.Gp(n,r,t)}}_v(t){0===this.$v().W().trackingMode.exitMode&&(this.zp=!0),this.om(),this.sm(t)}wr(t,i){const e=this.Np;return null===e?null:function(t,i,e){const s=t.Uo(),n=function(t,i,e){var s,n;let r,o;for(const a of t){const t=null!==(n=null===(s=a.va)||void 0===s?void 0:s.call(a,i,e))&&void 0!==n?n:[];for(const i of t)h=i.zOrder,(!(l=null==r?void 0:r.zOrder)||"top"===h&&"top"!==l||"normal"===h&&"bottom"===l)&&(r=i,o=a)}var h,l;return r&&o?{zv:r,Hc:o}:null}(s,i,e);if("top"===(null==n?void 0:n.zv.zOrder))return Ss(n);for(const r of s){if(n&&n.Hc===r&&"bottom"!==n.zv.zOrder&&!n.zv.isBackground)return Ss(n);const s=Cs(r.Pn(t),i,e);if(null!==s)return{Hc:r,Bv:s.Bv,Iv:s.Iv};if(n&&n.Hc===r&&"bottom"!==n.zv.zOrder&&n.zv.isBackground)return Ss(n)}return(null==n?void 0:n.zv)?Ss(n):null}(e,t,i)}_m(t,e){x("left"===e?this.Cp:this.Tp).cp(i({width:t,height:this.Ev.height}))}um(){return this.Ev}cp(t){e(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Wp.style.width=t.width+"px",this.Wp.style.height=t.height+"px")}dm(){const t=x(this.Np);t.P_(t.R_()),t.P_(t.D_());for(const i of t.Ba())if(t.vr(i)){const e=i.Dt();null!==e&&t.P_(e),i.Vn()}}xp(){return this.Gv.bitmapSize}Sp(t,i,e){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,e)}vp(t){if(0===t)return;if(null===this.Np)return;if(t>1&&this.dm(),null!==this.Cp&&this.Cp.vp(t),null!==this.Tp&&this.Tp.vp(t),1!==t){this.Gv.applySuggestedBitmapSize();const t=h(this.Gv);null!==t&&(t.useBitmapCoordinateSpace(t=>{this.mp(t)}),this.Np&&(this.fm(t,Ms),this.vm(t),this.pm(t),this.fm(t,zs),this.fm(t,Rs)))}this.Jv.applySuggestedBitmapSize();const i=h(this.Jv);null!==i&&(i.useBitmapCoordinateSpace(({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)}),this.bm(i),this.fm(i,ks))}wm(){return this.Cp}gm(){return this.Tp}bp(t,i){this.fm(t,i)}Fp(){null!==this.Np&&this.Np.W_().p(this),this.Np=null}tm(t){this.im(this.Vp,t)}im(t,i){const e=i.localX,s=i.localY;t.M()&&t.m(this.$i().St().Nu(e),{x:e,y:s},i)}mp({context:t,bitmapSize:i}){const{width:e,height:s}=i,n=this.$i(),r=n.q(),o=n.bd();r===o?et(t,0,0,e,s,o):rt(t,0,0,e,s,r,o)}vm(t){const i=x(this.Np).j_().qh().gt();null!==i&&i.X(t,!1)}pm(t){const i=this.$i().Yc();this.Mm(t,zs,ds,i),this.Mm(t,zs,fs,i)}bm(t){this.Mm(t,zs,fs,this.$i().Zc())}fm(t,i){const e=x(this.Np).Uo();for(const s of e)this.Mm(t,i,ds,s);for(const s of e)this.Mm(t,i,fs,s)}Mm(t,i,e,s){const n=x(this.Np),r=n.$t().Wc(),o=null!==r&&r.Hc===s,h=null!==r&&o&&void 0!==r.Iv?r.Iv.Mr:void 0;ms(i,i=>e(i,t,o,h),s,n)}Zp(){if(null===this.Np)return;const t=this.Qd,i=this.Np.R_().W().visible,e=this.Np.D_().W().visible;i||null===this.Cp||(this.jp.removeChild(this.Cp.lp()),this.Cp.S(),this.Cp=null),e||null===this.Tp||(this.Hp.removeChild(this.Tp.lp()),this.Tp.S(),this.Tp=null);const s=t.$t().ud();i&&null===this.Cp&&(this.Cp=new Es(this,t.W(),s,"left"),this.jp.appendChild(this.Cp.lp())),e&&null===this.Tp&&(this.Tp=new Es(this,t.W(),s,"right"),this.Hp.appendChild(this.Tp.lp()))}xm(t){return t.Dv&&this.Ap||null!==this.Ip}Sm(t){return Math.max(0,Math.min(t,this.Ev.width-1))}km(t){return Math.max(0,Math.min(t,this.Ev.height-1))}Gp(t,i,e){this.$i().ld(this.Sm(t),this.km(i),e,x(this.Np))}hm(){this.$i().od()}om(){this.zp&&(this.Ip=null,this.hm())}rm(t,i,e){this.Ip=t,this.zp=!1,this.Gp(i.x,i.y,e);const s=this.$i().Zc();this.Lp={x:s.Yt(),y:s.Zt()}}$i(){return this.Qd.$t()}sm(t){if(!this.Dp)return;const i=this.$i(),e=this.fp();if(i.z_(e,e.vn()),this.Rp=null,this.Dp=!1,i.ed(),null!==this.Ep){const t=performance.now(),e=i.St();this.Ep.Vr(e.Hu(),t),this.Ep.Qu(t)||i.Zn(this.Ep)}}Kp(){this.Ip=null}Jp(){if(this.Np){if(this.$i().Un(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)x(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Np.vn().Ni()&&this.$i().St().Ni()}}nm(t){if(null===this.Np)return;const i=this.$i(),e=i.St();if(e.Ni())return;const s=this.Qd.W(),n=s.handleScroll,r=s.kineticScroll;if((!n.pressedMouseMove||t.Dv)&&(!n.horzTouchDrag&&!n.vertTouchDrag||!t.Dv))return;const o=this.Np.vn(),h=performance.now();if(null!==this.Rp||this.xm(t)||(this.Rp={x:t.clientX,y:t.clientY,Od:h,ym:t.localX,Cm:t.localY}),null!==this.Rp&&!this.Dp&&(this.Rp.x!==t.clientX||this.Rp.y!==t.clientY)){if(t.Dv&&r.touch||!t.Dv&&r.mouse){const t=e.le();this.Ep=new ls(.2/t,7/t,.997,15/t),this.Ep.Yd(e.Hu(),this.Rp.Od)}else this.Ep=null;o.Ni()||i.A_(this.Np,o,t.localY),i.nd(t.localX),this.Dp=!0}this.Dp&&(o.Ni()||i.I_(this.Np,o,t.localY),i.sd(t.localX),null!==this.Ep&&this.Ep.Yd(e.Hu(),h))}}class Ls{constructor(t,e,s,n,r){this.ft=!0,this.Ev=i({width:0,height:0}),this.Hv=()=>this.vp(3),this.qv="left"===t,this.Oc=s.ud,this.cn=e,this.Tm=n,this.Pm=r,this.Kv=document.createElement("div"),this.Kv.style.width="25px",this.Kv.style.height="100%",this.Kv.style.overflow="hidden",this.Gv=cs(this.Kv,i({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv)}S(){this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose()}lp(){return this.Kv}um(){return this.Ev}cp(t){e(this.Ev,t)||(this.Ev=t,this.Gv.resizeCanvasElement(t),this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`,this.ft=!0)}vp(t){if(t<3&&!this.ft)return;if(0===this.Ev.width||0===this.Ev.height)return;this.ft=!1,this.Gv.applySuggestedBitmapSize();const i=h(this.Gv);null!==i&&i.useBitmapCoordinateSpace(t=>{this.mp(t),this.Ie(t)})}xp(){return this.Gv.bitmapSize}Sp(t,i,e){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,e)}Ie({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:s}){if(!this.Tm())return;t.fillStyle=this.cn.timeScale.borderColor;const n=Math.floor(this.Oc.W().C*e),r=Math.floor(this.Oc.W().C*s),o=this.qv?i.width-n:0;t.fillRect(o,0,n,r)}mp({context:t,bitmapSize:i}){et(t,0,0,i.width,i.height,this.Pm())}}function Os(t){return i=>{var e,s;return null!==(s=null===(e=i.fa)||void 0===e?void 0:e.call(i,t))&&void 0!==s?s:[]}}const Ns=Os("normal"),$s=Os("top"),Ps=Os("bottom");class Vs{constructor(t,e){this.Rm=null,this.Dm=null,this.k=null,this.Vm=!1,this.Ev=i({width:0,height:0}),this.Om=new P,this.Fv=new oi(5),this.jv=!1,this.Hv=()=>{this.jv||this.Qd.$t().Uh()},this.Uv=()=>{this.jv||this.Qd.$t().Uh()},this.Qd=t,this.q_=e,this.cn=t.W().layout,this.Xd=document.createElement("tr"),this.Bm=document.createElement("td"),this.Bm.style.padding="0",this.Am=document.createElement("td"),this.Am.style.padding="0",this.Kv=document.createElement("td"),this.Kv.style.height="25px",this.Kv.style.padding="0",this.Im=document.createElement("div"),this.Im.style.width="100%",this.Im.style.height="100%",this.Im.style.position="relative",this.Im.style.overflow="hidden",this.Kv.appendChild(this.Im),this.Gv=cs(this.Im,i({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const s=this.Gv.canvasElement;s.style.position="absolute",s.style.zIndex="1",s.style.left="0",s.style.top="0",this.Jv=cs(this.Im,i({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const n=this.Jv.canvasElement;n.style.position="absolute",n.style.zIndex="2",n.style.left="0",n.style.top="0",this.Xd.appendChild(this.Bm),this.Xd.appendChild(this.Kv),this.Xd.appendChild(this.Am),this.zm(),this.Qd.$t().g_().l(this.zm.bind(this),this),this.hp=new ps(this.Jv.canvasElement,this,{ev:()=>!0,rv:()=>!this.Qd.W().handleScroll.horzTouchDrag})}S(){this.hp.S(),null!==this.Rm&&this.Rm.S(),null!==this.Dm&&this.Dm.S(),this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose()}lp(){return this.Xd}Lm(){return this.Rm}Em(){return this.Dm}bv(t){if(this.Vm)return;this.Vm=!0;const i=this.Qd.$t();!i.St().Ni()&&this.Qd.W().handleScale.axisPressedMouseMove.time&&i.Jc(t.localX)}pv(t){this.bv(t)}wv(){const t=this.Qd.$t();!t.St().Ni()&&this.Vm&&(this.Vm=!1,this.Qd.W().handleScale.axisPressedMouseMove.time&&t.hd())}av(t){const i=this.Qd.$t();!i.St().Ni()&&this.Qd.W().handleScale.axisPressedMouseMove.time&&i.rd(t.localX)}hv(t){this.av(t)}cv(){this.Vm=!1;const t=this.Qd.$t();t.St().Ni()&&!this.Qd.W().handleScale.axisPressedMouseMove.time||t.hd()}_v(){this.cv()}qf(){this.Qd.W().handleScale.axisDoubleClickReset.time&&this.Qd.$t().Kn()}jf(){this.qf()}Qf(){this.Qd.$t().W().handleScale.axisPressedMouseMove.time&&this.kp(1)}Pv(){this.kp(0)}um(){return this.Ev}Nm(){return this.Om}Fm(t,s,n){e(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`,this.Om.m(t)),null!==this.Rm&&this.Rm.cp(i({width:s,height:t.height})),null!==this.Dm&&this.Dm.cp(i({width:n,height:t.height}))}Wm(){const t=this.jm();return Math.ceil(t.C+t.T+t.P+t.L+t.B+t.Hm)}bt(){this.Qd.$t().St().Ha()}xp(){return this.Gv.bitmapSize}Sp(t,i,e){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,e)}vp(t){if(0===t)return;if(1!==t){this.Gv.applySuggestedBitmapSize();const i=h(this.Gv);null!==i&&(i.useBitmapCoordinateSpace(t=>{this.mp(t),this.Ie(t),this.$m(i,Ps)}),this.wp(i),this.$m(i,Ns)),null!==this.Rm&&this.Rm.vp(t),null!==this.Dm&&this.Dm.vp(t)}this.Jv.applySuggestedBitmapSize();const i=h(this.Jv);null!==i&&(i.useBitmapCoordinateSpace(({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)}),this.Um([...this.Qd.$t().wt(),this.Qd.$t().Zc()],i),this.$m(i,$s))}$m(t,i){const e=this.Qd.$t().wt();for(const s of e)ms(i,i=>ds(i,t,!1,void 0),s,void 0);for(const s of e)ms(i,i=>fs(i,t,!1,void 0),s,void 0)}mp({context:t,bitmapSize:i}){et(t,0,0,i.width,i.height,this.Qd.$t().bd())}Ie({context:t,bitmapSize:i,verticalPixelRatio:e}){if(this.Qd.W().timeScale.borderVisible){t.fillStyle=this.qm();const s=Math.max(1,Math.floor(this.jm().C*e));t.fillRect(0,0,i.width,s)}}wp(t){const i=this.Qd.$t().St(),e=i.Ha();if(!e||0===e.length)return;const s=this.q_.maxTickMarkWeight(e),n=this.jm(),r=i.W();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace(({context:t,horizontalPixelRatio:i,verticalPixelRatio:s})=>{t.strokeStyle=this.qm(),t.fillStyle=this.qm();const r=Math.max(1,Math.floor(i)),o=Math.floor(.5*i);t.beginPath();const h=Math.round(n.T*s);for(let s=e.length;s--;){const n=Math.round(e[s].coord*i);t.rect(n-o,0,r,h)}t.fill()}),t.useMediaCoordinateSpace(({context:t})=>{const i=n.C+n.T+n.L+n.P/2;t.textAlign="center",t.textBaseline="middle",t.fillStyle=this.$(),t.font=this._p();for(const n of e)if(n.weight<s){const e=n.needAlignCoordinate?this.Ym(t,n.coord,n.label):n.coord;t.fillText(n.label,e,i)}this.Qd.W().timeScale.allowBoldLabels&&(t.font=this.Zm());for(const n of e)if(n.weight>=s){const e=n.needAlignCoordinate?this.Ym(t,n.coord,n.label):n.coord;t.fillText(n.label,e,i)}})}Ym(t,i,e){const s=this.Fv.xi(t,e),n=s/2,r=Math.floor(i-n)+.5;return r<0?i+=Math.abs(0-r):r+s>this.Ev.width&&(i-=Math.abs(this.Ev.width-(r+s))),i}Um(t,i){const e=this.jm();for(const s of t)for(const t of s.Qi())t.gt().X(i,e)}qm(){return this.Qd.W().timeScale.borderColor}$(){return this.cn.textColor}j(){return this.cn.fontSize}_p(){return H(this.j(),this.cn.fontFamily)}Zm(){return H(this.j(),this.cn.fontFamily,"bold")}jm(){null===this.k&&(this.k={C:1,N:NaN,L:NaN,B:NaN,ji:NaN,T:5,P:NaN,R:"",Wi:new oi,Hm:0});const t=this.k,i=this._p();if(t.R!==i){const e=this.j();t.P=e,t.R=i,t.L=3*e/12,t.B=3*e/12,t.ji=9*e/12,t.N=0,t.Hm=4*e/12,t.Wi.nr()}return this.k}kp(t){this.Kv.style.cursor=1===t?"ew-resize":"default"}zm(){const t=this.Qd.$t(),i=t.W();i.leftPriceScale.visible||null===this.Rm||(this.Bm.removeChild(this.Rm.lp()),this.Rm.S(),this.Rm=null),i.rightPriceScale.visible||null===this.Dm||(this.Am.removeChild(this.Dm.lp()),this.Dm.S(),this.Dm=null);const e={ud:this.Qd.$t().ud()},s=()=>i.leftPriceScale.borderVisible&&t.St().W().borderVisible,n=()=>t.bd();i.leftPriceScale.visible&&null===this.Rm&&(this.Rm=new Ls("left",i,e,s,n),this.Bm.appendChild(this.Rm.lp())),i.rightPriceScale.visible&&null===this.Dm&&(this.Dm=new Ls("right",i,e,s,n),this.Am.appendChild(this.Dm.lp()))}}const Ds=!!es&&!!navigator.userAgentData&&navigator.userAgentData.brands.some(t=>t.brand.includes("Chromium"))&&!!es&&((null===(As=null===navigator||void 0===navigator?void 0:navigator.userAgentData)||void 0===As?void 0:As.platform)?"Windows"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf("win")>=0);var As;class Bs{constructor(t,i,e){var s;this.Xm=[],this.Km=0,this.ho=0,this.__=0,this.Gm=0,this.Jm=0,this.Qm=null,this.tb=!1,this.Vp=new P,this.Op=new P,this.Rc=new P,this.ib=null,this.nb=null,this.Jd=t,this.cn=i,this.q_=e,this.Xd=document.createElement("div"),this.Xd.classList.add("tv-lightweight-charts"),this.Xd.style.overflow="hidden",this.Xd.style.direction="ltr",this.Xd.style.width="100%",this.Xd.style.height="100%",(s=this.Xd).style.userSelect="none",s.style.webkitUserSelect="none",s.style.msUserSelect="none",s.style.MozUserSelect="none",s.style.webkitTapHighlightColor="transparent",this.sb=document.createElement("table"),this.sb.setAttribute("cellspacing","0"),this.Xd.appendChild(this.sb),this.eb=this.rb.bind(this),Fs(this.cn)&&this.hb(!0),this.$i=new Be(this.Vc.bind(this),this.cn,e),this.$t().Xc().l(this.lb.bind(this),this),this.ab=new Vs(this,this.q_),this.sb.appendChild(this.ab.lp());const n=i.autoSize&&this.ob();let r=this.cn.width,o=this.cn.height;if(n||0===r||0===o){const i=t.getBoundingClientRect();r=r||i.width,o=o||i.height}this._b(r,o),this.ub(),t.appendChild(this.Xd),this.cb(),this.$i.St().ec().l(this.$i.Kl.bind(this.$i),this),this.$i.g_().l(this.$i.Kl.bind(this.$i),this)}$t(){return this.$i}W(){return this.cn}Yp(){return this.Xm}fb(){return this.ab}S(){this.hb(!1),0!==this.Km&&window.cancelAnimationFrame(this.Km),this.$i.Xc().p(this),this.$i.St().ec().p(this),this.$i.g_().p(this),this.$i.S();for(const t of this.Xm)this.sb.removeChild(t.lp()),t.lm().p(this),t.am().p(this),t.S();this.Xm=[],x(this.ab).S(),null!==this.Xd.parentElement&&this.Xd.parentElement.removeChild(this.Xd),this.Rc.S(),this.Vp.S(),this.Op.S(),this.pb()}_b(t,e,s=!1){if(this.ho===e&&this.__===t)return;const n=function(t){const e=Math.floor(t.width),s=Math.floor(t.height);return i({width:e-e%2,height:s-s%2})}(i({width:t,height:e}));this.ho=n.height,this.__=n.width;const r=this.ho+"px",o=this.__+"px";x(this.Xd).style.height=r,x(this.Xd).style.width=o,this.sb.style.height=r,this.sb.style.width=o,s?this.mb(gt.es(),performance.now()):this.$i.Kl()}vp(t){void 0===t&&(t=gt.es());for(let i=0;i<this.Xm.length;i++)this.Xm[i].vp(t.Hn(i).Fn);this.cn.timeScale.visible&&this.ab.vp(t.jn())}$h(t){const i=Fs(this.cn);this.$i.$h(t);const e=Fs(this.cn);e!==i&&this.hb(e),this.cb(),this.bb(t)}lm(){return this.Vp}am(){return this.Op}Xc(){return this.Rc}wb(){null!==this.Qm&&(this.mb(this.Qm,performance.now()),this.Qm=null);const t=this.gb(null),i=document.createElement("canvas");i.width=t.width,i.height=t.height;const e=x(i.getContext("2d"));return this.gb(e),i}Mb(t){return("left"!==t||this.xb())&&("right"!==t||this.Sb())?0===this.Xm.length?0:x("left"===t?this.Xm[0].wm():this.Xm[0].gm()).dp():0}kb(){return this.cn.autoSize&&null!==this.ib}yb(){return this.Xd}Qp(t){this.nb=t,this.nb?this.yb().style.setProperty("cursor",t):this.yb().style.removeProperty("cursor")}Cb(){return this.nb}Tb(){return C(this.Xm[0]).um()}bb(t){(void 0!==t.autoSize||!this.ib||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.ib&&this.ob(),!1===t.autoSize&&null!==this.ib&&this.pb(),t.autoSize||void 0===t.width&&void 0===t.height||this._b(t.width||this.__,t.height||this.ho))}gb(t){let e=0,s=0;const n=this.Xm[0],r=(i,e)=>{let s=0;for(let n=0;n<this.Xm.length;n++){const r=this.Xm[n],o=x("left"===i?r.wm():r.gm()),h=o.xp();null!==t&&o.Sp(t,e,s),s+=h.height}};this.xb()&&(r("left",0),e+=x(n.wm()).xp().width);for(let i=0;i<this.Xm.length;i++){const n=this.Xm[i],r=n.xp();null!==t&&n.Sp(t,e,s),s+=r.height}e+=n.xp().width,this.Sb()&&(r("right",e),e+=x(n.gm()).xp().width);const o=(i,e,s)=>{x("left"===i?this.ab.Lm():this.ab.Em()).Sp(x(t),e,s)};if(this.cn.timeScale.visible){const i=this.ab.xp();if(null!==t){let e=0;this.xb()&&(o("left",e,s),e=x(n.wm()).xp().width),this.ab.Sp(t,e,s),e+=i.width,this.Sb()&&o("right",e,s)}s+=i.height}return i({width:e,height:s})}Pb(){let t=0,e=0,s=0;for(const i of this.Xm)this.xb()&&(e=Math.max(e,x(i.wm()).op(),this.cn.leftPriceScale.minimumWidth)),this.Sb()&&(s=Math.max(s,x(i.gm()).op(),this.cn.rightPriceScale.minimumWidth)),t+=i.M_();e=rs(e),s=rs(s);const n=this.__,r=this.ho,o=Math.max(n-e-s,0),h=this.cn.timeScale.visible;let l=h?Math.max(this.ab.Wm(),this.cn.timeScale.minimumHeight):0;var a;l=(a=l)+a%2;const c=0+l,u=r<c?0:r-c,d=u/t;let f=0;for(let t=0;t<this.Xm.length;++t){const n=this.Xm[t];n.qp(this.$i.qc()[t]);let r=0,h=0;h=t===this.Xm.length-1?u-f:Math.round(n.M_()*d),r=Math.max(h,2),f+=r,n.cp(i({width:o,height:r})),this.xb()&&n._m(e,"left"),this.Sb()&&n._m(s,"right"),n.fp()&&this.$i.Kc(n.fp(),r)}this.ab.Fm(i({width:h?o:0,height:l}),h?e:0,h?s:0),this.$i.S_(o),this.Gm!==e&&(this.Gm=e),this.Jm!==s&&(this.Jm=s)}hb(t){t?this.Xd.addEventListener("wheel",this.eb,{passive:!1}):this.Xd.removeEventListener("wheel",this.eb)}Rb(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return Ds?1/window.devicePixelRatio:1}rb(t){if(!(0!==t.deltaX&&this.cn.handleScroll.mouseWheel||0!==t.deltaY&&this.cn.handleScale.mouseWheel))return;const i=this.Rb(t),e=i*t.deltaX/100,s=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),0!==s&&this.cn.handleScale.mouseWheel){const i=Math.sign(s)*Math.min(1,Math.abs(s)),e=t.clientX-this.Xd.getBoundingClientRect().left;this.$t().Qc(e,i)}0!==e&&this.cn.handleScroll.mouseWheel&&this.$t().td(-80*e)}mb(t,i){var e;const s=t.jn();3===s&&this.Db(),3!==s&&2!==s||(this.Vb(t),this.Ob(t,i),this.ab.bt(),this.Xm.forEach(t=>{t.Xp()}),3===(null===(e=this.Qm)||void 0===e?void 0:e.jn())&&(this.Qm.ts(t),this.Db(),this.Vb(this.Qm),this.Ob(this.Qm,i),t=this.Qm,this.Qm=null)),this.vp(t)}Ob(t,i){for(const e of t.Qn())this.ns(e,i)}Vb(t){const i=this.$i.qc();for(let e=0;e<i.length;e++)t.Hn(e).Wn&&i[e].N_()}ns(t,i){const e=this.$i.St();switch(t.qn){case 0:e.hc();break;case 1:e.lc(t.Vt);break;case 2:e.Gn(t.Vt);break;case 3:e.Jn(t.Vt);break;case 4:e.qu();break;case 5:t.Vt.Qu(i)||e.Jn(t.Vt.tc(i))}}Vc(t){null!==this.Qm?this.Qm.ts(t):this.Qm=t,this.tb||(this.tb=!0,this.Km=window.requestAnimationFrame(t=>{if(this.tb=!1,this.Km=0,null!==this.Qm){const i=this.Qm;this.Qm=null,this.mb(i,t);for(const e of i.Qn())if(5===e.qn&&!e.Vt.Qu(t)){this.$t().Zn(e.Vt);break}}}))}Db(){this.ub()}ub(){const t=this.$i.qc(),i=t.length,e=this.Xm.length;for(let t=i;t<e;t++){const t=C(this.Xm.pop());this.sb.removeChild(t.lp()),t.lm().p(this),t.am().p(this),t.S()}for(let s=e;s<i;s++){const i=new Ts(this,t[s]);i.lm().l(this.Bb.bind(this),this),i.am().l(this.Ab.bind(this),this),this.Xm.push(i),this.sb.insertBefore(i.lp(),this.ab.lp())}for(let e=0;e<i;e++){const i=t[e],s=this.Xm[e];s.fp()!==i?s.qp(i):s.Up()}this.cb(),this.Pb()}Ib(t,i,e){var s;const n=new Map;let r;if(null!==t&&this.$i.wt().forEach(i=>{const e=i.In().ll(t);null!==e&&n.set(i,e)}),null!==t){const i=null===(s=this.$i.St().Ui(t))||void 0===s?void 0:s.originalTime;void 0!==i&&(r=i)}const o=this.$t().Wc(),h=null!==o&&o.Hc instanceof te?o.Hc:void 0,l=null!==o&&void 0!==o.Iv?o.Iv.gr:void 0;return{zb:r,ee:null!=t?t:void 0,Lb:null!=i?i:void 0,Eb:h,Nb:n,Fb:l,Wb:null!=e?e:void 0}}Bb(t,i,e){this.Vp.m(()=>this.Ib(t,i,e))}Ab(t,i,e){this.Op.m(()=>this.Ib(t,i,e))}lb(t,i,e){this.Rc.m(()=>this.Ib(t,i,e))}cb(){const t=this.cn.timeScale.visible?"":"none";this.ab.lp().style.display=t}xb(){return this.Xm[0].fp().R_().W().visible}Sb(){return this.Xm[0].fp().D_().W().visible}ob(){return"ResizeObserver"in window&&(this.ib=new ResizeObserver(t=>{const i=t.find(t=>t.target===this.Jd);i&&this._b(i.contentRect.width,i.contentRect.height)}),this.ib.observe(this.Jd,{box:"border-box"}),!0)}pb(){null!==this.ib&&this.ib.disconnect(),this.ib=null}}function Fs(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function Ws(t,i){var e={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&i.indexOf(s)<0&&(e[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)i.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(e[s[n]]=t[s[n]])}return e}function js(t,i,e,s){const n=e.value,r={ee:i,ot:t,Vt:[n,n,n,n],zb:s};return void 0!==e.color&&(r.V=e.color),r}function Is(t,i,e,s){const n=e.value,r={ee:i,ot:t,Vt:[n,n,n,n],zb:s};return void 0!==e.lineColor&&(r.lt=e.lineColor),void 0!==e.topColor&&(r.Ps=e.topColor),void 0!==e.bottomColor&&(r.Rs=e.bottomColor),r}function Us(t,i,e,s){const n=e.value,r={ee:i,ot:t,Vt:[n,n,n,n],zb:s};return void 0!==e.topLineColor&&(r.Re=e.topLineColor),void 0!==e.bottomLineColor&&(r.De=e.bottomLineColor),void 0!==e.topFillColor1&&(r.ke=e.topFillColor1),void 0!==e.topFillColor2&&(r.ye=e.topFillColor2),void 0!==e.bottomFillColor1&&(r.Ce=e.bottomFillColor1),void 0!==e.bottomFillColor2&&(r.Te=e.bottomFillColor2),r}function Hs(t,i,e,s){const n={ee:i,ot:t,Vt:[e.open,e.high,e.low,e.close],zb:s};return void 0!==e.color&&(n.V=e.color),n}function Ks(t,i,e,s){const n={ee:i,ot:t,Vt:[e.open,e.high,e.low,e.close],zb:s};return void 0!==e.color&&(n.V=e.color),void 0!==e.borderColor&&(n.Ot=e.borderColor),void 0!==e.wickColor&&(n.Xh=e.wickColor),n}function qs(t,i,e,s,n){const r=C(n)(e),o=Math.max(...r),h=Math.min(...r),l=r[r.length-1],a=[l,o,h,l],c=e,{time:u,color:d}=c;return{ee:i,ot:t,Vt:a,zb:s,$e:Ws(c,["time","color"]),V:d}}function Xs(t){return void 0!==t.Vt}function Js(t,i){return void 0!==i.customValues&&(t.jb=i.customValues),t}function Gs(t){return(i,e,s,n,r,o)=>function(t,i){return i?i(t):void 0===(e=t).open&&void 0===e.value;var e}(s,o)?Js({ot:i,ee:e,zb:n},s):Js(t(i,e,s,n,r),s)}function Qs(t){return{Candlestick:Gs(Ks),Bar:Gs(Hs),Area:Gs(Is),Baseline:Gs(Us),Histogram:Gs(js),Line:Gs(js),Custom:Gs(qs)}[t]}function Ys(t){return{ee:0,Hb:new Map,la:t}}function Zs(t,i){if(void 0!==t&&0!==t.length)return{$b:i.key(t[0].ot),Ub:i.key(t[t.length-1].ot)}}function tn(t){let i;return t.forEach(t=>{void 0===i&&(i=t.zb)}),C(i)}class en{constructor(t){this.qb=new Map,this.Yb=new Map,this.Zb=new Map,this.Xb=[],this.q_=t}S(){this.qb.clear(),this.Yb.clear(),this.Zb.clear(),this.Xb=[]}Kb(t,i){let e=0!==this.qb.size,s=!1;const n=this.Yb.get(t);if(void 0!==n)if(1===this.Yb.size)e=!1,s=!0,this.qb.clear();else for(const i of this.Xb)i.pointData.Hb.delete(t)&&(s=!0);let r=[];if(0!==i.length){const e=i.map(t=>t.time),n=this.q_.createConverterToInternalObj(i),o=Qs(t.Qh()),h=t.Ca(),l=t.Ta();r=i.map((i,r)=>{const a=n(i.time),c=this.q_.key(a);let u=this.qb.get(c);void 0===u&&(u=Ys(a),this.qb.set(c,u),s=!0);const d=o(a,u.ee,i,e[r],h,l);return u.Hb.set(t,d),d})}e&&this.Gb(),this.Jb(t,r);let o=-1;if(s){const t=[];this.qb.forEach(i=>{t.push({timeWeight:0,time:i.la,pointData:i,originalTime:tn(i.Hb)})}),t.sort((t,i)=>this.q_.key(t.time)-this.q_.key(i.time)),o=this.Qb(t)}return this.tw(t,o,function(t,i,e){const s=Zs(t,e),n=Zs(i,e);if(void 0!==s&&void 0!==n)return{ta:s.Ub>=n.Ub&&s.$b>=n.$b}}(this.Yb.get(t),n,this.q_))}vd(t){return this.Kb(t,[])}iw(t,i){const e=i;!function(t){void 0===t.zb&&(t.zb=t.time)}(e),this.q_.preprocessData(i);const s=this.q_.createConverterToInternalObj([i])(i.time),n=this.Zb.get(t);if(void 0!==n&&this.q_.key(s)<this.q_.key(n))throw new Error(`Cannot update oldest data, last time=${n}, new time=${s}`);let r=this.qb.get(this.q_.key(s));const o=void 0===r;void 0===r&&(r=Ys(s),this.qb.set(this.q_.key(s),r));const h=Qs(t.Qh()),l=t.Ca(),a=t.Ta(),c=h(s,r.ee,i,e.zb,l,a);r.Hb.set(t,c),this.nw(t,c);const u={ta:Xs(c)};if(!o)return this.tw(t,-1,u);const d={timeWeight:0,time:r.la,pointData:r,originalTime:tn(r.Hb)},f=Dt(this.Xb,this.q_.key(d.time),(t,i)=>this.q_.key(t.time)<i);this.Xb.splice(f,0,d);for(let t=f;t<this.Xb.length;++t)sn(this.Xb[t].pointData,t);return this.q_.fillWeightsForPoints(this.Xb,f),this.tw(t,f,u)}nw(t,i){let e=this.Yb.get(t);void 0===e&&(e=[],this.Yb.set(t,e));const s=0!==e.length?e[e.length-1]:null;null===s||this.q_.key(i.ot)>this.q_.key(s.ot)?Xs(i)&&e.push(i):Xs(i)?e[e.length-1]=i:e.splice(-1,1),this.Zb.set(t,i.ot)}Jb(t,i){0!==i.length?(this.Yb.set(t,i.filter(Xs)),this.Zb.set(t,i[i.length-1].ot)):(this.Yb.delete(t),this.Zb.delete(t))}Gb(){for(const t of this.Xb)0===t.pointData.Hb.size&&this.qb.delete(this.q_.key(t.time))}Qb(t){let i=-1;for(let e=0;e<this.Xb.length&&e<t.length;++e){const s=this.Xb[e],n=t[e];if(this.q_.key(s.time)!==this.q_.key(n.time)){i=e;break}n.timeWeight=s.timeWeight,sn(n.pointData,e)}if(-1===i&&this.Xb.length!==t.length&&(i=Math.min(this.Xb.length,t.length)),-1===i)return-1;for(let e=i;e<t.length;++e)sn(t[e].pointData,e);return this.q_.fillWeightsForPoints(t,i),this.Xb=t,i}sw(){if(0===this.Yb.size)return null;let t=0;return this.Yb.forEach(i=>{0!==i.length&&(t=Math.max(t,i[i.length-1].ee))}),t}tw(t,i,e){const s={ew:new Map,St:{Eu:this.sw()}};if(-1!==i)this.Yb.forEach((i,n)=>{s.ew.set(n,{$e:i,rw:n===t?e:void 0})}),this.Yb.has(t)||s.ew.set(t,{$e:[],rw:e}),s.St.hw=this.Xb,s.St.lw=i;else{const i=this.Yb.get(t);s.ew.set(t,{$e:i||[],rw:e})}return s}}function sn(t,i){t.ee=i,t.Hb.forEach(t=>{t.ee=i})}function nn(t){const i={value:t.Vt[3],time:t.zb};return void 0!==t.jb&&(i.customValues=t.jb),i}function rn(t){const i=nn(t);return void 0!==t.V&&(i.color=t.V),i}function on(t){const i=nn(t);return void 0!==t.lt&&(i.lineColor=t.lt),void 0!==t.Ps&&(i.topColor=t.Ps),void 0!==t.Rs&&(i.bottomColor=t.Rs),i}function hn(t){const i=nn(t);return void 0!==t.Re&&(i.topLineColor=t.Re),void 0!==t.De&&(i.bottomLineColor=t.De),void 0!==t.ke&&(i.topFillColor1=t.ke),void 0!==t.ye&&(i.topFillColor2=t.ye),void 0!==t.Ce&&(i.bottomFillColor1=t.Ce),void 0!==t.Te&&(i.bottomFillColor2=t.Te),i}function ln(t){const i={open:t.Vt[0],high:t.Vt[1],low:t.Vt[2],close:t.Vt[3],time:t.zb};return void 0!==t.jb&&(i.customValues=t.jb),i}function an(t){const i=ln(t);return void 0!==t.V&&(i.color=t.V),i}function cn(t){const i=ln(t),{V:e,Ot:s,Xh:n}=t;return void 0!==e&&(i.color=e),void 0!==s&&(i.borderColor=s),void 0!==n&&(i.wickColor=n),i}function un(t){return{Area:on,Line:rn,Baseline:hn,Histogram:rn,Bar:an,Candlestick:cn,Custom:dn}[t]}function dn(t){const i=t.zb;return Object.assign(Object.assign({},t.$e),{time:i})}const fn={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},mn={vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},pn={background:{type:"solid",color:"#FFFFFF"},textColor:"#191919",fontSize:12,fontFamily:U,attributionLogo:!0},gn={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},vn={rightOffset:0,barSpacing:6,minBarSpacing:.5,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},bn={color:"rgba(0, 0, 0, 0)",visible:!1,fontSize:48,fontFamily:U,fontStyle:"",text:"",horzAlign:"center",vertAlign:"center"};function wn(){return{width:0,height:0,autoSize:!1,layout:pn,crosshair:fn,grid:mn,overlayPriceScales:Object.assign({},gn),leftPriceScale:Object.assign(Object.assign({},gn),{visible:!1}),rightPriceScale:Object.assign(Object.assign({},gn),{visible:!0}),timeScale:vn,watermark:bn,localization:{locale:es?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 yn{constructor(t,i){this.aw=t,this.ow=i}applyOptions(t){this.aw.$t().$c(this.ow,t)}options(){return this.Li().W()}width(){return pt(this.ow)?this.aw.Mb(this.ow):0}Li(){return x(this.aw.$t().Uc(this.ow)).Dt}}function Sn(t,i,e){const s=Ws(t,["time","originalTime"]),n=Object.assign({time:i},s);return void 0!==e&&(n.originalTime=e),n}const Cn={color:"#FF0000",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:"",axisLabelColor:"",axisLabelTextColor:""};class xn{constructor(t){this.Nh=t}applyOptions(t){this.Nh.$h(t)}options(){return this.Nh.W()}_w(){return this.Nh}}class _n{constructor(t,i,e,s,n){this.uw=new P,this.Es=t,this.cw=i,this.dw=e,this.q_=n,this.fw=s}S(){this.uw.S()}priceFormatter(){return this.Es.ba()}priceToCoordinate(t){const i=this.Es.Ct();return null===i?null:this.Es.Dt().Rt(t,i.Vt)}coordinateToPrice(t){const i=this.Es.Ct();return null===i?null:this.Es.Dt().pn(t,i.Vt)}barsInLogicalRange(t){if(null===t)return null;const i=new ze(new _e(t.from,t.to)).lu(),e=this.Es.In();if(e.Ni())return null;const s=e.ll(i.Os(),1),n=e.ll(i.ui(),-1),r=x(e.el()),o=x(e.An());if(null!==s&&null!==n&&s.ee>n.ee)return{barsBefore:t.from-r,barsAfter:o-t.to};const h={barsBefore:null===s||s.ee===r?t.from-r:s.ee-r,barsAfter:null===n||n.ee===o?o-t.to:o-n.ee};return null!==s&&null!==n&&(h.from=s.zb,h.to=n.zb),h}setData(t){this.q_,this.Es.Qh(),this.cw.pw(this.Es,t),this.mw("full")}update(t){this.Es.Qh(),this.cw.bw(this.Es,t),this.mw("update")}dataByIndex(t,i){const e=this.Es.In().ll(t,i);return null===e?null:un(this.seriesType())(e)}data(){const t=un(this.seriesType());return this.Es.In().ne().map(i=>t(i))}subscribeDataChanged(t){this.uw.l(t)}unsubscribeDataChanged(t){this.uw.v(t)}setMarkers(t){this.q_;const i=t.map(t=>Sn(t,this.q_.convertHorzItemToInternal(t.time),t.time));this.Es.na(i)}markers(){return this.Es.sa().map(t=>Sn(t,t.originalTime,void 0))}applyOptions(t){this.Es.$h(t)}options(){return W(this.Es.W())}priceScale(){return this.dw.priceScale(this.Es.Dt().Pa())}createPriceLine(t){const i=V(W(Cn),t),e=this.Es.ea(i);return new xn(e)}removePriceLine(t){this.Es.ra(t._w())}seriesType(){return this.Es.Qh()}attachPrimitive(t){this.Es.ka(t),t.attached&&t.attached({chart:this.fw,series:this,requestUpdate:()=>this.Es.$t().Kl()})}detachPrimitive(t){this.Es.ya(t),t.detached&&t.detached()}mw(t){this.uw.M()&&this.uw.m(t)}}class En{constructor(t,i,e){this.ww=new P,this.mu=new P,this.Om=new P,this.$i=t,this.yl=t.St(),this.ab=i,this.yl.nc().l(this.gw.bind(this)),this.yl.sc().l(this.Mw.bind(this)),this.ab.Nm().l(this.xw.bind(this)),this.q_=e}S(){this.yl.nc().p(this),this.yl.sc().p(this),this.ab.Nm().p(this),this.ww.S(),this.mu.S(),this.Om.S()}scrollPosition(){return this.yl.Hu()}scrollToPosition(t,i){i?this.yl.Ju(t,1e3):this.$i.Jn(t)}scrollToRealTime(){this.yl.Gu()}getVisibleRange(){const t=this.yl.Vu();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.q_.convertHorzItemToInternal(t.from),to:this.q_.convertHorzItemToInternal(t.to)},e=this.yl.Iu(i);this.$i.pd(e)}getVisibleLogicalRange(){const t=this.yl.Du();return null===t?null:{from:t.Os(),to:t.ui()}}setVisibleLogicalRange(t){S(t.from<=t.to,"The from index cannot be after the to index."),this.$i.pd(t)}resetTimeScale(){this.$i.Kn()}fitContent(){this.$i.hc()}logicalToCoordinate(t){const i=this.$i.St();return i.Ni()?null:i.It(t)}coordinateToLogical(t){return this.yl.Ni()?null:this.yl.Nu(t)}timeToCoordinate(t){const i=this.q_.convertHorzItemToInternal(t),e=this.yl.Va(i,!1);return null===e?null:this.yl.It(e)}coordinateToTime(t){const i=this.$i.St(),e=i.Nu(t),s=i.Ui(e);return null===s?null:s.originalTime}width(){return this.ab.um().width}height(){return this.ab.um().height}subscribeVisibleTimeRangeChange(t){this.ww.l(t)}unsubscribeVisibleTimeRangeChange(t){this.ww.v(t)}subscribeVisibleLogicalRangeChange(t){this.mu.l(t)}unsubscribeVisibleLogicalRangeChange(t){this.mu.v(t)}subscribeSizeChange(t){this.Om.l(t)}unsubscribeSizeChange(t){this.Om.v(t)}applyOptions(t){this.yl.$h(t)}options(){return Object.assign(Object.assign({},W(this.yl.W())),{barSpacing:this.yl.le()})}gw(){this.ww.M()&&this.ww.m(this.getVisibleRange())}Mw(){this.mu.M()&&this.mu.m(this.getVisibleLogicalRange())}xw(t){this.Om.m(t.width,t.height)}}function Mn(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:e}=t.handleScale;F(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),F(e)&&(t.handleScale.axisDoubleClickReset={time:e,price:e})}const i=t.handleScroll;F(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class zn{constructor(t,i,e){this.Sw=new Map,this.kw=new Map,this.yw=new P,this.Cw=new P,this.Tw=new P,this.Pw=new en(i);const s=void 0===e?W(wn()):V(W(wn()),Mn(e));this.q_=i,this.aw=new Bs(t,s,i),this.aw.lm().l(t=>{this.yw.M()&&this.yw.m(this.Rw(t()))},this),this.aw.am().l(t=>{this.Cw.M()&&this.Cw.m(this.Rw(t()))},this),this.aw.Xc().l(t=>{this.Tw.M()&&this.Tw.m(this.Rw(t()))},this);const n=this.aw.$t();this.Dw=new En(n,this.aw.fb(),this.q_)}remove(){this.aw.lm().p(this),this.aw.am().p(this),this.aw.Xc().p(this),this.Dw.S(),this.aw.S(),this.Sw.clear(),this.kw.clear(),this.yw.S(),this.Cw.S(),this.Tw.S(),this.Pw.S()}resize(t,i,e){this.autoSizeActive()||this.aw._b(t,i,e)}addCustomSeries(t,i){const e=_(t),s=Object.assign(Object.assign({},m),e.defaultOptions());return this.Vw("Custom",s,i,e)}addAreaSeries(t){return this.Vw("Area",u,t)}addBaselineSeries(t){return this.Vw("Baseline",d,t)}addBarSeries(t){return this.Vw("Bar",a,t)}addCandlestickSeries(t={}){return 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)}(t),this.Vw("Candlestick",l,t)}addHistogramSeries(t){return this.Vw("Histogram",f,t)}addLineSeries(t){return this.Vw("Line",c,t)}removeSeries(t){const i=C(this.Sw.get(t)),e=this.Pw.vd(i);this.aw.$t().vd(i),this.Ow(e),this.Sw.delete(t),this.kw.delete(i)}pw(t,i){this.Ow(this.Pw.Kb(t,i))}bw(t,i){this.Ow(this.Pw.iw(t,i))}subscribeClick(t){this.yw.l(t)}unsubscribeClick(t){this.yw.v(t)}subscribeCrosshairMove(t){this.Tw.l(t)}unsubscribeCrosshairMove(t){this.Tw.v(t)}subscribeDblClick(t){this.Cw.l(t)}unsubscribeDblClick(t){this.Cw.v(t)}priceScale(t){return new yn(this.aw,t)}timeScale(){return this.Dw}applyOptions(t){this.aw.$h(Mn(t))}options(){return this.aw.W()}takeScreenshot(){return this.aw.wb()}autoSizeActive(){return this.aw.kb()}chartElement(){return this.aw.yb()}paneSize(){const t=this.aw.Tb();return{height:t.height,width:t.width}}setCrosshairPosition(t,i,e){const s=this.Sw.get(e);if(void 0===s)return;const n=this.aw.$t().dr(s);null!==n&&this.aw.$t().ad(t,i,n)}clearCrosshairPosition(){this.aw.$t().od(!0)}Vw(t,i,e={},s){!function(t){if(void 0===t||"custom"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=function(t){if(t>=1)return 0;let i=0;for(;i<8;i++){const e=Math.round(t);if(Math.abs(e-t)<1e-8)return i;t*=10}return i}(i.minMove))}(e.priceFormat);const n=V(W(p),W(i),e),r=this.aw.$t().dd(t,n,s),o=new _n(r,this,this,this,this.q_);return this.Sw.set(o,r),this.kw.set(r,o),o}Ow(t){const i=this.aw.$t();i._d(t.St.Eu,t.St.hw,t.St.lw),t.ew.forEach((t,i)=>i.J(t.$e,t.rw)),i.Wu()}Bw(t){return C(this.kw.get(t))}Rw(t){const i=new Map;t.Nb.forEach((t,e)=>{const s=e.Qh(),n=un(s)(t);if("Custom"!==s)S(function(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}(n));else{const t=e.Ta();S(!t||!1===t(n))}i.set(this.Bw(e),n)});const e=void 0!==t.Eb&&this.kw.has(t.Eb)?this.Bw(t.Eb):void 0;return{time:t.zb,logical:t.ee,point:t.Lb,hoveredSeries:e,hoveredObjectId:t.Fb,seriesData:i,sourceEvent:t.Wb}}}function Rn(t,i){return function(t,i,e){let s;if(B(t)){const i=document.getElementById(t);S(null!==i,`Cannot find element in DOM with id=${t}`),s=i}else s=t;const n=new zn(s,i,e);return i.setOptions(n.options()),n}(t,new is,is.Id(i))}Object.assign(Object.assign({},p),m);const kn=i=>{const[e]=t.useState(i||null),[s,n]=t.useState(!1),[r,o]=t.useState(!1);t.useEffect(()=>{if(!e)return n(!1),void o(!1);o(!0);const t=()=>{console.log("✅ [useSocket] Connected to Socket.IO server"),n(!0),o(!1)},i=()=>{console.log("🔌 [useSocket] Disconnected from Socket.IO server"),n(!1),o(!1)},s=t=>{console.error("❌ [useSocket] Connection error:",t),o(!1)};return e.connected&&(n(!0),o(!1)),e.on("connect",t),e.on("disconnect",i),e.on("connect_error",s),()=>{e.off("connect",t),e.off("disconnect",i),e.off("connect_error",s)}},[e]);const h=t.useCallback(()=>{console.log("🔍 [useSocket] Connect called - connection managed by provider")},[]),l=t.useCallback(()=>{console.log("🔍 [useSocket] Disconnect called - connection managed by provider")},[]),a=t.useCallback((t,i=60,s,n,r)=>{if(!e?.connected)return console.warn("⚠️ [useSocket] Socket not connected, cannot subscribe"),!1;try{return e.emit("ohlcv:subscribe",{mint:t,timeFrame:i}),s&&e.on("ohlcv:initial",s),n&&e.on("ohlcv:update",n),r&&e.on("ohlcv:newCandle",r),console.log(`📊 [useSocket] Subscribed to OHLCV updates for ${t} (${i}s)`),!0}catch(t){return console.error("❌ [useSocket] Failed to subscribe to OHLCV:",t),!1}},[e]),c=t.useCallback((t,i=60,s,n,r)=>{if(!e?.connected)return!1;try{return e.emit("ohlcv:unsubscribe",{mint:t,timeFrame:i}),s&&e.off("ohlcv:initial",s),n&&e.off("ohlcv:update",n),r&&e.off("ohlcv:newCandle",r),console.log(`📊 [useSocket] Unsubscribed from OHLCV updates for ${t} (${i}s)`),!0}catch(t){return console.error("❌ [useSocket] Failed to unsubscribe from OHLCV:",t),!1}},[e]),u=t.useCallback((t,i)=>{if(!e?.connected)return console.warn("⚠️ [useSocket] Socket not connected, cannot subscribe"),!1;try{return e.emit("price:subscribe",{mint:t}),i&&e.on("price:update",i),console.log(`💰 [useSocket] Subscribed to price updates for ${t}`),!0}catch(t){return console.error("❌ [useSocket] Failed to subscribe to price:",t),!1}},[e]),d=t.useCallback((t,i)=>{if(!e?.connected)return!1;try{return e.emit("price:unsubscribe",{mint:t}),i&&e.off("price:update",i),console.log(`💰 [useSocket] Unsubscribed from price updates for ${t}`),!0}catch(t){return console.error("❌ [useSocket] Failed to unsubscribe from price:",t),!1}},[e]),f=t.useCallback(t=>{if(!e?.connected)return console.warn("⚠️ [useSocket] Socket not connected, cannot send test message"),!1;try{return e.emit("test-message",{message:t,timestamp:Date.now()}),e.once("test-response",t=>{console.log("🧪 [useSocket] Test response received:",t)}),!0}catch(t){return console.error("❌ [useSocket] Failed to send test message:",t),!1}},[e]);return{socket:e,isConnected:s,isConnecting:r,connect:h,disconnect:l,subscribeToOHLCV:a,unsubscribeFromOHLCV:c,subscribeToPrice:u,unsubscribeFromPrice:d,testConnection:f}};function Tn(i,e){const[s,n]=t.useState(null),[r,o]=t.useState(!1),[h,l]=t.useState(null),[a,c]=t.useState(null),[u,d]=t.useState(!1);t.useEffect(()=>{e&&(n(e),c(Date.now()),d(!0),o(!1))},[e]);const f=t.useMemo(()=>{if(!s||!s.market)return{currentPrice:0,currentMarketCap:0,currentVolume:0,performance24h:{value:"0.00%",isPositive:!1,raw:0},performance7d:{value:"0.00%",isPositive:!1,raw:0},performance1m:{value:"0.00%",isPositive:!1,raw:0},performanceAllTime:{value:"0.00%",isPositive:!1,raw:0},high24h:0,low24h:0,volume24h:0,return24h:0};const t=parseFloat(s.market?.price||"0")||0,i=parseFloat(s.market?.marketCap||"0")||0;let e=parseFloat(s.volume?.current||"0")||0;e<=.01&&(e=parseFloat(s.blockchain?.currentRealSol||"0")||0);const n={value:s.performance?.["24H"]?.percentage||"0.00%",isPositive:s.performance?.["24H"]?.isPositive||!1,raw:s.performance?.["24H"]?.gain||0},r={value:s.performance?.["7D"]?.percentage||"0.00%",isPositive:s.performance?.["7D"]?.isPositive||!1,raw:s.performance?.["7D"]?.gain||0},o={value:s.performance?.["1M"]?.percentage||"0.00%",isPositive:s.performance?.["1M"]?.isPositive||!1,raw:s.performance?.["1M"]?.gain||0},h={value:s.performance?.["All Time"]?.percentage||"0.00%",isPositive:s.performance?.["All Time"]?.isPositive||!1,raw:s.performance?.["All Time"]?.gain||0},l=parseFloat(s["24H"]?.high||"0")||0,a=parseFloat(s["24H"]?.low||"0")||0;let c=parseFloat(s.volume?.["24h"]||"0")||0;c<=.01&&(c=parseFloat(s.blockchain?.currentRealSol||"0")||0);return{currentPrice:t,currentMarketCap:i,currentVolume:e,performance24h:n,performance7d:r,performance1m:o,performanceAllTime:h,high24h:l,low24h:a,volume24h:c,return24h:parseFloat(s["24H"]?.return||"0")||0}},[s]),m=t.useCallback(t=>t>.01,[]);return{analytics:s,...f,isRealVolume:m,loading:r,error:h,connected:u,lastUpdate:a}}function Ln(t,i){return function(){return t.apply(i,arguments)}}const{toString:On}=Object.prototype,{getPrototypeOf:Nn}=Object,{iterator:$n,toStringTag:Pn}=Symbol,Vn=(Dn=Object.create(null),t=>{const i=On.call(t);return Dn[i]||(Dn[i]=i.slice(8,-1).toLowerCase())});var Dn;const An=t=>(t=t.toLowerCase(),i=>Vn(i)===t),Bn=t=>i=>typeof i===t,{isArray:Fn}=Array,Wn=Bn("undefined");function jn(t){return null!==t&&!Wn(t)&&null!==t.constructor&&!Wn(t.constructor)&&Hn(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const In=An("ArrayBuffer");const Un=Bn("string"),Hn=Bn("function"),Kn=Bn("number"),qn=t=>null!==t&&"object"==typeof t,Xn=t=>{if("object"!==Vn(t))return!1;const i=Nn(t);return!(null!==i&&i!==Object.prototype&&null!==Object.getPrototypeOf(i)||Pn in t||$n in t)},Jn=An("Date"),Gn=An("File"),Qn=An("Blob"),Yn=An("FileList"),Zn=An("URLSearchParams"),[tr,ir,er,sr]=["ReadableStream","Request","Response","Headers"].map(An);function nr(t,i,{allOwnKeys:e=!1}={}){if(null==t)return;let s,n;if("object"!=typeof t&&(t=[t]),Fn(t))for(s=0,n=t.length;s<n;s++)i.call(null,t[s],s,t);else{if(jn(t))return;const n=e?Object.getOwnPropertyNames(t):Object.keys(t),r=n.length;let o;for(s=0;s<r;s++)o=n[s],i.call(null,t[o],o,t)}}function rr(t,i){if(jn(t))return null;i=i.toLowerCase();const e=Object.keys(t);let s,n=e.length;for(;n-- >0;)if(s=e[n],i===s.toLowerCase())return s;return null}const or="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,hr=t=>!Wn(t)&&t!==or;const lr=(ar="undefined"!=typeof Uint8Array&&Nn(Uint8Array),t=>ar&&t instanceof ar);var ar;const cr=An("HTMLFormElement"),ur=(({hasOwnProperty:t})=>(i,e)=>t.call(i,e))(Object.prototype),dr=An("RegExp"),fr=(t,i)=>{const e=Object.getOwnPropertyDescriptors(t),s={};nr(e,(e,n)=>{let r;!1!==(r=i(e,n,t))&&(s[n]=r||e)}),Object.defineProperties(t,s)};const mr=An("AsyncFunction"),pr=(gr="function"==typeof setImmediate,vr=Hn(or.postMessage),gr?setImmediate:vr?(br=`axios@${Math.random()}`,wr=[],or.addEventListener("message",({source:t,data:i})=>{t===or&&i===br&&wr.length&&wr.shift()()},!1),t=>{wr.push(t),or.postMessage(br,"*")}):t=>setTimeout(t));var gr,vr,br,wr;const yr="undefined"!=typeof queueMicrotask?queueMicrotask.bind(or):"undefined"!=typeof process&&process.nextTick||pr;var Sr={isArray:Fn,isArrayBuffer:In,isBuffer:jn,isFormData:t=>{let i;return t&&("function"==typeof FormData&&t instanceof FormData||Hn(t.append)&&("formdata"===(i=Vn(t))||"object"===i&&Hn(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let i;return i="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&In(t.buffer),i},isString:Un,isNumber:Kn,isBoolean:t=>!0===t||!1===t,isObject:qn,isPlainObject:Xn,isEmptyObject:t=>{if(!qn(t)||jn(t))return!1;try{return 0===Object.keys(t).length&&Object.getPrototypeOf(t)===Object.prototype}catch(t){return!1}},isReadableStream:tr,isRequest:ir,isResponse:er,isHeaders:sr,isUndefined:Wn,isDate:Jn,isFile:Gn,isBlob:Qn,isRegExp:dr,isFunction:Hn,isStream:t=>qn(t)&&Hn(t.pipe),isURLSearchParams:Zn,isTypedArray:lr,isFileList:Yn,forEach:nr,merge:function t(){const{caseless:i,skipUndefined:e}=hr(this)&&this||{},s={},n=(n,r)=>{const o=i&&rr(s,r)||r;Xn(s[o])&&Xn(n)?s[o]=t(s[o],n):Xn(n)?s[o]=t({},n):Fn(n)?s[o]=n.slice():e&&Wn(n)||(s[o]=n)};for(let t=0,i=arguments.length;t<i;t++)arguments[t]&&nr(arguments[t],n);return s},extend:(t,i,e,{allOwnKeys:s}={})=>(nr(i,(i,s)=>{e&&Hn(i)?t[s]=Ln(i,e):t[s]=i},{allOwnKeys:s}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,i,e,s)=>{t.prototype=Object.create(i.prototype,s),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:i.prototype}),e&&Object.assign(t.prototype,e)},toFlatObject:(t,i,e,s)=>{let n,r,o;const h={};if(i=i||{},null==t)return i;do{for(n=Object.getOwnPropertyNames(t),r=n.length;r-- >0;)o=n[r],s&&!s(o,t,i)||h[o]||(i[o]=t[o],h[o]=!0);t=!1!==e&&Nn(t)}while(t&&(!e||e(t,i))&&t!==Object.prototype);return i},kindOf:Vn,kindOfTest:An,endsWith:(t,i,e)=>{t=String(t),(void 0===e||e>t.length)&&(e=t.length),e-=i.length;const s=t.indexOf(i,e);return-1!==s&&s===e},toArray:t=>{if(!t)return null;if(Fn(t))return t;let i=t.length;if(!Kn(i))return null;const e=new Array(i);for(;i-- >0;)e[i]=t[i];return e},forEachEntry:(t,i)=>{const e=(t&&t[$n]).call(t);let s;for(;(s=e.next())&&!s.done;){const e=s.value;i.call(t,e[0],e[1])}},matchAll:(t,i)=>{let e;const s=[];for(;null!==(e=t.exec(i));)s.push(e);return s},isHTMLForm:cr,hasOwnProperty:ur,hasOwnProp:ur,reduceDescriptors:fr,freezeMethods:t=>{fr(t,(i,e)=>{if(Hn(t)&&-1!==["arguments","caller","callee"].indexOf(e))return!1;const s=t[e];Hn(s)&&(i.enumerable=!1,"writable"in i?i.writable=!1:i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+e+"'")}))})},toObjectSet:(t,i)=>{const e={},s=t=>{t.forEach(t=>{e[t]=!0})};return Fn(t)?s(t):s(String(t).split(i)),e},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,i,e){return i.toUpperCase()+e}),noop:()=>{},toFiniteNumber:(t,i)=>null!=t&&Number.isFinite(t=+t)?t:i,findKey:rr,global:or,isContextDefined:hr,isSpecCompliantForm:function(t){return!!(t&&Hn(t.append)&&"FormData"===t[Pn]&&t[$n])},toJSONObject:t=>{const i=new Array(10),e=(t,s)=>{if(qn(t)){if(i.indexOf(t)>=0)return;if(jn(t))return t;if(!("toJSON"in t)){i[s]=t;const n=Fn(t)?[]:{};return nr(t,(t,i)=>{const r=e(t,s+1);!Wn(r)&&(n[i]=r)}),i[s]=void 0,n}}return t};return e(t,0)},isAsyncFn:mr,isThenable:t=>t&&(qn(t)||Hn(t))&&Hn(t.then)&&Hn(t.catch),setImmediate:pr,asap:yr,isIterable:t=>null!=t&&Hn(t[$n])};function Cr(t,i,e,s,n){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",i&&(this.code=i),e&&(this.config=e),s&&(this.request=s),n&&(this.response=n,this.status=n.status?n.status:null)}Sr.inherits(Cr,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Sr.toJSONObject(this.config),code:this.code,status:this.status}}});const xr=Cr.prototype,_r={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{_r[t]={value:t}}),Object.defineProperties(Cr,_r),Object.defineProperty(xr,"isAxiosError",{value:!0}),Cr.from=(t,i,e,s,n,r)=>{const o=Object.create(xr);Sr.toFlatObject(t,o,function(t){return t!==Error.prototype},t=>"isAxiosError"!==t);const h=t&&t.message?t.message:"Error",l=null==i&&t?t.code:i;return Cr.call(o,h,l,e,s,n),t&&null==o.cause&&Object.defineProperty(o,"cause",{value:t,configurable:!0}),o.name=t&&t.name||"Error",r&&Object.assign(o,r),o};function Er(t){return Sr.isPlainObject(t)||Sr.isArray(t)}function Mr(t){return Sr.endsWith(t,"[]")?t.slice(0,-2):t}function zr(t,i,e){return t?t.concat(i).map(function(t,i){return t=Mr(t),!e&&i?"["+t+"]":t}).join(e?".":""):i}const Rr=Sr.toFlatObject(Sr,{},null,function(t){return/^is[A-Z]/.test(t)});function kr(t,i,e){if(!Sr.isObject(t))throw new TypeError("target must be an object");i=i||new FormData;const s=(e=Sr.toFlatObject(e,{metaTokens:!0,dots:!1,indexes:!1},!1,function(t,i){return!Sr.isUndefined(i[t])})).metaTokens,n=e.visitor||a,r=e.dots,o=e.indexes,h=(e.Blob||"undefined"!=typeof Blob&&Blob)&&Sr.isSpecCompliantForm(i);if(!Sr.isFunction(n))throw new TypeError("visitor must be a function");function l(t){if(null===t)return"";if(Sr.isDate(t))return t.toISOString();if(Sr.isBoolean(t))return t.toString();if(!h&&Sr.isBlob(t))throw new Cr("Blob is not supported. Use a Buffer instead.");return Sr.isArrayBuffer(t)||Sr.isTypedArray(t)?h&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function a(t,e,n){let h=t;if(t&&!n&&"object"==typeof t)if(Sr.endsWith(e,"{}"))e=s?e:e.slice(0,-2),t=JSON.stringify(t);else if(Sr.isArray(t)&&function(t){return Sr.isArray(t)&&!t.some(Er)}(t)||(Sr.isFileList(t)||Sr.endsWith(e,"[]"))&&(h=Sr.toArray(t)))return e=Mr(e),h.forEach(function(t,s){!Sr.isUndefined(t)&&null!==t&&i.append(!0===o?zr([e],s,r):null===o?e:e+"[]",l(t))}),!1;return!!Er(t)||(i.append(zr(n,e,r),l(t)),!1)}const c=[],u=Object.assign(Rr,{defaultVisitor:a,convertValue:l,isVisitable:Er});if(!Sr.isObject(t))throw new TypeError("data must be an object");return function t(e,s){if(!Sr.isUndefined(e)){if(-1!==c.indexOf(e))throw Error("Circular reference detected in "+s.join("."));c.push(e),Sr.forEach(e,function(e,r){!0===(!(Sr.isUndefined(e)||null===e)&&n.call(i,e,Sr.isString(r)?r.trim():r,s,u))&&t(e,s?s.concat(r):[r])}),c.pop()}}(t),i}function Tr(t){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(t){return i[t]})}function Lr(t,i){this._pairs=[],t&&kr(t,this,i)}const Or=Lr.prototype;function Nr(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function $r(t,i,e){if(!i)return t;const s=e&&e.encode||Nr;Sr.isFunction(e)&&(e={serialize:e});const n=e&&e.serialize;let r;if(r=n?n(i,e):Sr.isURLSearchParams(i)?i.toString():new Lr(i,e).toString(s),r){const i=t.indexOf("#");-1!==i&&(t=t.slice(0,i)),t+=(-1===t.indexOf("?")?"?":"&")+r}return t}Or.append=function(t,i){this._pairs.push([t,i])},Or.toString=function(t){const i=t?function(i){return t.call(this,i,Tr)}:Tr;return this._pairs.map(function(t){return i(t[0])+"="+i(t[1])},"").join("&")};class Pr{constructor(){this.handlers=[]}use(t,i,e){return this.handlers.push({fulfilled:t,rejected:i,synchronous:!!e&&e.synchronous,runWhen:e?e.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){Sr.forEach(this.handlers,function(i){null!==i&&t(i)})}}var Vr={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Dr={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Lr,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Ar="undefined"!=typeof window&&"undefined"!=typeof document,Br="object"==typeof navigator&&navigator||void 0,Fr=Ar&&(!Br||["ReactNative","NativeScript","NS"].indexOf(Br.product)<0),Wr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,jr=Ar&&window.location.href||"http://localhost";var Ir={...Object.freeze({__proto__:null,hasBrowserEnv:Ar,hasStandardBrowserEnv:Fr,hasStandardBrowserWebWorkerEnv:Wr,navigator:Br,origin:jr}),...Dr};function Ur(t){function i(t,e,s,n){let r=t[n++];if("__proto__"===r)return!0;const o=Number.isFinite(+r),h=n>=t.length;if(r=!r&&Sr.isArray(s)?s.length:r,h)return Sr.hasOwnProp(s,r)?s[r]=[s[r],e]:s[r]=e,!o;s[r]&&Sr.isObject(s[r])||(s[r]=[]);return i(t,e,s[r],n)&&Sr.isArray(s[r])&&(s[r]=function(t){const i={},e=Object.keys(t);let s;const n=e.length;let r;for(s=0;s<n;s++)r=e[s],i[r]=t[r];return i}(s[r])),!o}if(Sr.isFormData(t)&&Sr.isFunction(t.entries)){const e={};return Sr.forEachEntry(t,(t,s)=>{i(function(t){return Sr.matchAll(/\w+|\[(\w*)]/g,t).map(t=>"[]"===t[0]?"":t[1]||t[0])}(t),s,e,0)}),e}return null}const Hr={transitional:Vr,adapter:["xhr","http","fetch"],transformRequest:[function(t,i){const e=i.getContentType()||"",s=e.indexOf("application/json")>-1,n=Sr.isObject(t);n&&Sr.isHTMLForm(t)&&(t=new FormData(t));if(Sr.isFormData(t))return s?JSON.stringify(Ur(t)):t;if(Sr.isArrayBuffer(t)||Sr.isBuffer(t)||Sr.isStream(t)||Sr.isFile(t)||Sr.isBlob(t)||Sr.isReadableStream(t))return t;if(Sr.isArrayBufferView(t))return t.buffer;if(Sr.isURLSearchParams(t))return i.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let r;if(n){if(e.indexOf("application/x-www-form-urlencoded")>-1)return function(t,i){return kr(t,new Ir.classes.URLSearchParams,{visitor:function(t,i,e,s){return Ir.isNode&&Sr.isBuffer(t)?(this.append(i,t.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...i})}(t,this.formSerializer).toString();if((r=Sr.isFileList(t))||e.indexOf("multipart/form-data")>-1){const i=this.env&&this.env.FormData;return kr(r?{"files[]":t}:t,i&&new i,this.formSerializer)}}return n||s?(i.setContentType("application/json",!1),function(t,i,e){if(Sr.isString(t))try{return(i||JSON.parse)(t),Sr.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(e||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const i=this.transitional||Hr.transitional,e=i&&i.forcedJSONParsing,s="json"===this.responseType;if(Sr.isResponse(t)||Sr.isReadableStream(t))return t;if(t&&Sr.isString(t)&&(e&&!this.responseType||s)){const e=!(i&&i.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(t){if(e){if("SyntaxError"===t.name)throw Cr.from(t,Cr.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ir.classes.FormData,Blob:Ir.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Sr.forEach(["delete","get","head","post","put","patch"],t=>{Hr.headers[t]={}});const Kr=Sr.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const qr=Symbol("internals");function Xr(t){return t&&String(t).trim().toLowerCase()}function Jr(t){return!1===t||null==t?t:Sr.isArray(t)?t.map(Jr):String(t)}function Gr(t,i,e,s,n){return Sr.isFunction(s)?s.call(this,i,e):(n&&(i=e),Sr.isString(i)?Sr.isString(s)?-1!==i.indexOf(s):Sr.isRegExp(s)?s.test(i):void 0:void 0)}let Qr=class{constructor(t){t&&this.set(t)}set(t,i,e){const s=this;function n(t,i,e){const n=Xr(i);if(!n)throw new Error("header name must be a non-empty string");const r=Sr.findKey(s,n);(!r||void 0===s[r]||!0===e||void 0===e&&!1!==s[r])&&(s[r||i]=Jr(t))}const r=(t,i)=>Sr.forEach(t,(t,e)=>n(t,e,i));if(Sr.isPlainObject(t)||t instanceof this.constructor)r(t,i);else if(Sr.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))r((t=>{const i={};let e,s,n;return t&&t.split("\n").forEach(function(t){n=t.indexOf(":"),e=t.substring(0,n).trim().toLowerCase(),s=t.substring(n+1).trim(),!e||i[e]&&Kr[e]||("set-cookie"===e?i[e]?i[e].push(s):i[e]=[s]:i[e]=i[e]?i[e]+", "+s:s)}),i})(t),i);else if(Sr.isObject(t)&&Sr.isIterable(t)){let e,s,n={};for(const i of t){if(!Sr.isArray(i))throw TypeError("Object iterator must return a key-value pair");n[s=i[0]]=(e=n[s])?Sr.isArray(e)?[...e,i[1]]:[e,i[1]]:i[1]}r(n,i)}else null!=t&&n(i,t,e);return this}get(t,i){if(t=Xr(t)){const e=Sr.findKey(this,t);if(e){const t=this[e];if(!i)return t;if(!0===i)return function(t){const i=Object.create(null),e=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=e.exec(t);)i[s[1]]=s[2];return i}(t);if(Sr.isFunction(i))return i.call(this,t,e);if(Sr.isRegExp(i))return i.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,i){if(t=Xr(t)){const e=Sr.findKey(this,t);return!(!e||void 0===this[e]||i&&!Gr(0,this[e],e,i))}return!1}delete(t,i){const e=this;let s=!1;function n(t){if(t=Xr(t)){const n=Sr.findKey(e,t);!n||i&&!Gr(0,e[n],n,i)||(delete e[n],s=!0)}}return Sr.isArray(t)?t.forEach(n):n(t),s}clear(t){const i=Object.keys(this);let e=i.length,s=!1;for(;e--;){const n=i[e];t&&!Gr(0,this[n],n,t,!0)||(delete this[n],s=!0)}return s}normalize(t){const i=this,e={};return Sr.forEach(this,(s,n)=>{const r=Sr.findKey(e,n);if(r)return i[r]=Jr(s),void delete i[n];const o=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,i,e)=>i.toUpperCase()+e)}(n):String(n).trim();o!==n&&delete i[n],i[o]=Jr(s),e[o]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const i=Object.create(null);return Sr.forEach(this,(e,s)=>{null!=e&&!1!==e&&(i[s]=t&&Sr.isArray(e)?e.join(", "):e)}),i}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,i])=>t+": "+i).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...i){const e=new this(t);return i.forEach(t=>e.set(t)),e}static accessor(t){const i=(this[qr]=this[qr]={accessors:{}}).accessors,e=this.prototype;function s(t){const s=Xr(t);i[s]||(!function(t,i){const e=Sr.toCamelCase(" "+i);["get","set","has"].forEach(s=>{Object.defineProperty(t,s+e,{value:function(t,e,n){return this[s].call(this,i,t,e,n)},configurable:!0})})}(e,t),i[s]=!0)}return Sr.isArray(t)?t.forEach(s):s(t),this}};function Yr(t,i){const e=this||Hr,s=i||e,n=Qr.from(s.headers);let r=s.data;return Sr.forEach(t,function(t){r=t.call(e,r,n.normalize(),i?i.status:void 0)}),n.normalize(),r}function Zr(t){return!(!t||!t.__CANCEL__)}function to(t,i,e){Cr.call(this,null==t?"canceled":t,Cr.ERR_CANCELED,i,e),this.name="CanceledError"}function io(t,i,e){const s=e.config.validateStatus;e.status&&s&&!s(e.status)?i(new Cr("Request failed with status code "+e.status,[Cr.ERR_BAD_REQUEST,Cr.ERR_BAD_RESPONSE][Math.floor(e.status/100)-4],e.config,e.request,e)):t(e)}Qr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Sr.reduceDescriptors(Qr.prototype,({value:t},i)=>{let e=i[0].toUpperCase()+i.slice(1);return{get:()=>t,set(t){this[e]=t}}}),Sr.freezeMethods(Qr),Sr.inherits(to,Cr,{__CANCEL__:!0});const eo=(t,i,e=3)=>{let s=0;const n=function(t,i){t=t||10;const e=new Array(t),s=new Array(t);let n,r=0,o=0;return i=void 0!==i?i:1e3,function(h){const l=Date.now(),a=s[o];n||(n=l),e[r]=h,s[r]=l;let c=o,u=0;for(;c!==r;)u+=e[c++],c%=t;if(r=(r+1)%t,r===o&&(o=(o+1)%t),l-n<i)return;const d=a&&l-a;return d?Math.round(1e3*u/d):void 0}}(50,250);return function(t,i){let e,s,n=0,r=1e3/i;const o=(i,r=Date.now())=>{n=r,e=null,s&&(clearTimeout(s),s=null),t(...i)};return[(...t)=>{const i=Date.now(),h=i-n;h>=r?o(t,i):(e=t,s||(s=setTimeout(()=>{s=null,o(e)},r-h)))},()=>e&&o(e)]}(e=>{const r=e.loaded,o=e.lengthComputable?e.total:void 0,h=r-s,l=n(h);s=r;t({loaded:r,total:o,progress:o?r/o:void 0,bytes:h,rate:l||void 0,estimated:l&&o&&r<=o?(o-r)/l:void 0,event:e,lengthComputable:null!=o,[i?"download":"upload"]:!0})},e)},so=(t,i)=>{const e=null!=t;return[s=>i[0]({lengthComputable:e,total:t,loaded:s}),i[1]]},no=t=>(...i)=>Sr.asap(()=>t(...i));var ro=Ir.hasStandardBrowserEnv?((t,i)=>e=>(e=new URL(e,Ir.origin),t.protocol===e.protocol&&t.host===e.host&&(i||t.port===e.port)))(new URL(Ir.origin),Ir.navigator&&/(msie|trident)/i.test(Ir.navigator.userAgent)):()=>!0,oo=Ir.hasStandardBrowserEnv?{write(t,i,e,s,n,r){const o=[t+"="+encodeURIComponent(i)];Sr.isNumber(e)&&o.push("expires="+new Date(e).toGMTString()),Sr.isString(s)&&o.push("path="+s),Sr.isString(n)&&o.push("domain="+n),!0===r&&o.push("secure"),document.cookie=o.join("; ")},read(t){const i=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return i?decodeURIComponent(i[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function ho(t,i,e){let s=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(i);return t&&(s||0==e)?function(t,i){return i?t.replace(/\/?\/$/,"")+"/"+i.replace(/^\/+/,""):t}(t,i):i}const lo=t=>t instanceof Qr?{...t}:t;function ao(t,i){i=i||{};const e={};function s(t,i,e,s){return Sr.isPlainObject(t)&&Sr.isPlainObject(i)?Sr.merge.call({caseless:s},t,i):Sr.isPlainObject(i)?Sr.merge({},i):Sr.isArray(i)?i.slice():i}function n(t,i,e,n){return Sr.isUndefined(i)?Sr.isUndefined(t)?void 0:s(void 0,t,0,n):s(t,i,0,n)}function r(t,i){if(!Sr.isUndefined(i))return s(void 0,i)}function o(t,i){return Sr.isUndefined(i)?Sr.isUndefined(t)?void 0:s(void 0,t):s(void 0,i)}function h(e,n,r){return r in i?s(e,n):r in t?s(void 0,e):void 0}const l={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:h,headers:(t,i,e)=>n(lo(t),lo(i),0,!0)};return Sr.forEach(Object.keys({...t,...i}),function(s){const r=l[s]||n,o=r(t[s],i[s],s);Sr.isUndefined(o)&&r!==h||(e[s]=o)}),e}var co=t=>{const i=ao({},t);let{data:e,withXSRFToken:s,xsrfHeaderName:n,xsrfCookieName:r,headers:o,auth:h}=i;if(i.headers=o=Qr.from(o),i.url=$r(ho(i.baseURL,i.url,i.allowAbsoluteUrls),t.params,t.paramsSerializer),h&&o.set("Authorization","Basic "+btoa((h.username||"")+":"+(h.password?unescape(encodeURIComponent(h.password)):""))),Sr.isFormData(e))if(Ir.hasStandardBrowserEnv||Ir.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(Sr.isFunction(e.getHeaders)){const t=e.getHeaders(),i=["content-type","content-length"];Object.entries(t).forEach(([t,e])=>{i.includes(t.toLowerCase())&&o.set(t,e)})}if(Ir.hasStandardBrowserEnv&&(s&&Sr.isFunction(s)&&(s=s(i)),s||!1!==s&&ro(i.url))){const t=n&&r&&oo.read(r);t&&o.set(n,t)}return i};var uo="undefined"!=typeof XMLHttpRequest&&function(t){return new Promise(function(i,e){const s=co(t);let n=s.data;const r=Qr.from(s.headers).normalize();let o,h,l,a,c,{responseType:u,onUploadProgress:d,onDownloadProgress:f}=s;function m(){a&&a(),c&&c(),s.cancelToken&&s.cancelToken.unsubscribe(o),s.signal&&s.signal.removeEventListener("abort",o)}let p=new XMLHttpRequest;function g(){if(!p)return;const s=Qr.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders());io(function(t){i(t),m()},function(t){e(t),m()},{data:u&&"text"!==u&&"json"!==u?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:s,config:t,request:p}),p=null}p.open(s.method.toUpperCase(),s.url,!0),p.timeout=s.timeout,"onloadend"in p?p.onloadend=g:p.onreadystatechange=function(){p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))&&setTimeout(g)},p.onabort=function(){p&&(e(new Cr("Request aborted",Cr.ECONNABORTED,t,p)),p=null)},p.onerror=function(i){const s=new Cr(i&&i.message?i.message:"Network Error",Cr.ERR_NETWORK,t,p);s.event=i||null,e(s),p=null},p.ontimeout=function(){let i=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const n=s.transitional||Vr;s.timeoutErrorMessage&&(i=s.timeoutErrorMessage),e(new Cr(i,n.clarifyTimeoutError?Cr.ETIMEDOUT:Cr.ECONNABORTED,t,p)),p=null},void 0===n&&r.setContentType(null),"setRequestHeader"in p&&Sr.forEach(r.toJSON(),function(t,i){p.setRequestHeader(i,t)}),Sr.isUndefined(s.withCredentials)||(p.withCredentials=!!s.withCredentials),u&&"json"!==u&&(p.responseType=s.responseType),f&&([l,c]=eo(f,!0),p.addEventListener("progress",l)),d&&p.upload&&([h,a]=eo(d),p.upload.addEventListener("progress",h),p.upload.addEventListener("loadend",a)),(s.cancelToken||s.signal)&&(o=i=>{p&&(e(!i||i.type?new to(null,t,p):i),p.abort(),p=null)},s.cancelToken&&s.cancelToken.subscribe(o),s.signal&&(s.signal.aborted?o():s.signal.addEventListener("abort",o)));const v=function(t){const i=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return i&&i[1]||""}(s.url);v&&-1===Ir.protocols.indexOf(v)?e(new Cr("Unsupported protocol "+v+":",Cr.ERR_BAD_REQUEST,t)):p.send(n||null)})};const fo=(t,i)=>{const{length:e}=t=t?t.filter(Boolean):[];if(i||e){let e,s=new AbortController;const n=function(t){if(!e){e=!0,o();const i=t instanceof Error?t:this.reason;s.abort(i instanceof Cr?i:new to(i instanceof Error?i.message:i))}};let r=i&&setTimeout(()=>{r=null,n(new Cr(`timeout ${i} of ms exceeded`,Cr.ETIMEDOUT))},i);const o=()=>{t&&(r&&clearTimeout(r),r=null,t.forEach(t=>{t.unsubscribe?t.unsubscribe(n):t.removeEventListener("abort",n)}),t=null)};t.forEach(t=>t.addEventListener("abort",n));const{signal:h}=s;return h.unsubscribe=()=>Sr.asap(o),h}},mo=function*(t,i){let e=t.byteLength;if(e<i)return void(yield t);let s,n=0;for(;n<e;)s=n+i,yield t.slice(n,s),n=s},po=async function*(t){if(t[Symbol.asyncIterator])return void(yield*t);const i=t.getReader();try{for(;;){const{done:t,value:e}=await i.read();if(t)break;yield e}}finally{await i.cancel()}},go=(t,i,e,s)=>{const n=async function*(t,i){for await(const e of po(t))yield*mo(e,i)}(t,i);let r,o=0,h=t=>{r||(r=!0,s&&s(t))};return new ReadableStream({async pull(t){try{const{done:i,value:s}=await n.next();if(i)return h(),void t.close();let r=s.byteLength;if(e){let t=o+=r;e(t)}t.enqueue(new Uint8Array(s))}catch(t){throw h(t),t}},cancel:t=>(h(t),n.return())},{highWaterMark:2})},{isFunction:vo}=Sr,bo=(({Request:t,Response:i})=>({Request:t,Response:i}))(Sr.global),{ReadableStream:wo,TextEncoder:yo}=Sr.global,So=(t,...i)=>{try{return!!t(...i)}catch(t){return!1}},Co=t=>{t=Sr.merge.call({skipUndefined:!0},bo,t);const{fetch:i,Request:e,Response:s}=t,n=i?vo(i):"function"==typeof fetch,r=vo(e),o=vo(s);if(!n)return!1;const h=n&&vo(wo),l=n&&("function"==typeof yo?(a=new yo,t=>a.encode(t)):async t=>new Uint8Array(await new e(t).arrayBuffer()));var a;const c=r&&h&&So(()=>{let t=!1;const i=new e(Ir.origin,{body:new wo,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!i}),u=o&&h&&So(()=>Sr.isReadableStream(new s("").body)),d={stream:u&&(t=>t.body)};n&&["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!d[t]&&(d[t]=(i,e)=>{let s=i&&i[t];if(s)return s.call(i);throw new Cr(`Response type '${t}' is not supported`,Cr.ERR_NOT_SUPPORT,e)})});const f=async(t,i)=>{const s=Sr.toFiniteNumber(t.getContentLength());return null==s?(async t=>{if(null==t)return 0;if(Sr.isBlob(t))return t.size;if(Sr.isSpecCompliantForm(t)){const i=new e(Ir.origin,{method:"POST",body:t});return(await i.arrayBuffer()).byteLength}return Sr.isArrayBufferView(t)||Sr.isArrayBuffer(t)?t.byteLength:(Sr.isURLSearchParams(t)&&(t+=""),Sr.isString(t)?(await l(t)).byteLength:void 0)})(i):s};return async t=>{let{url:n,method:o,data:h,signal:l,cancelToken:a,timeout:m,onDownloadProgress:p,onUploadProgress:g,responseType:v,headers:b,withCredentials:w="same-origin",fetchOptions:y}=co(t),S=i||fetch;v=v?(v+"").toLowerCase():"text";let C=fo([l,a&&a.toAbortSignal()],m),x=null;const _=C&&C.unsubscribe&&(()=>{C.unsubscribe()});let E;try{if(g&&c&&"get"!==o&&"head"!==o&&0!==(E=await f(b,h))){let t,i=new e(n,{method:"POST",body:h,duplex:"half"});if(Sr.isFormData(h)&&(t=i.headers.get("content-type"))&&b.setContentType(t),i.body){const[t,e]=so(E,eo(no(g)));h=go(i.body,65536,t,e)}}Sr.isString(w)||(w=w?"include":"omit");const i=r&&"credentials"in e.prototype,l={...y,signal:C,method:o.toUpperCase(),headers:b.normalize().toJSON(),body:h,duplex:"half",credentials:i?w:void 0};x=r&&new e(n,l);let a=await(r?S(x,y):S(n,l));const m=u&&("stream"===v||"response"===v);if(u&&(p||m&&_)){const t={};["status","statusText","headers"].forEach(i=>{t[i]=a[i]});const i=Sr.toFiniteNumber(a.headers.get("content-length")),[e,n]=p&&so(i,eo(no(p),!0))||[];a=new s(go(a.body,65536,e,()=>{n&&n(),_&&_()}),t)}v=v||"text";let M=await d[Sr.findKey(d,v)||"text"](a,t);return!m&&_&&_(),await new Promise((i,e)=>{io(i,e,{data:M,headers:Qr.from(a.headers),status:a.status,statusText:a.statusText,config:t,request:x})})}catch(i){if(_&&_(),i&&"TypeError"===i.name&&/Load failed|fetch/i.test(i.message))throw Object.assign(new Cr("Network Error",Cr.ERR_NETWORK,t,x),{cause:i.cause||i});throw Cr.from(i,i&&i.code,t,x)}}},xo=new Map,_o=t=>{let i=t?t.env:{};const{fetch:e,Request:s,Response:n}=i,r=[s,n,e];let o,h,l=r.length,a=xo;for(;l--;)o=r[l],h=a.get(o),void 0===h&&a.set(o,h=l?new Map:Co(i)),a=h;return h};_o();const Eo={http:null,xhr:uo,fetch:{get:_o}};Sr.forEach(Eo,(t,i)=>{if(t){try{Object.defineProperty(t,"name",{value:i})}catch(t){}Object.defineProperty(t,"adapterName",{value:i})}});const Mo=t=>`- ${t}`,zo=t=>Sr.isFunction(t)||null===t||!1===t;var Ro=(t,i)=>{t=Sr.isArray(t)?t:[t];const{length:e}=t;let s,n;const r={};for(let o=0;o<e;o++){let e;if(s=t[o],n=s,!zo(s)&&(n=Eo[(e=String(s)).toLowerCase()],void 0===n))throw new Cr(`Unknown adapter '${e}'`);if(n&&(Sr.isFunction(n)||(n=n.get(i))))break;r[e||"#"+o]=n}if(!n){const t=Object.entries(r).map(([t,i])=>`adapter ${t} `+(!1===i?"is not supported by the environment":"is not available in the build"));throw new Cr("There is no suitable adapter to dispatch the request "+(e?t.length>1?"since :\n"+t.map(Mo).join("\n"):" "+Mo(t[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function ko(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new to(null,t)}function To(t){ko(t),t.headers=Qr.from(t.headers),t.data=Yr.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1);return Ro(t.adapter||Hr.adapter,t)(t).then(function(i){return ko(t),i.data=Yr.call(t,t.transformResponse,i),i.headers=Qr.from(i.headers),i},function(i){return Zr(i)||(ko(t),i&&i.response&&(i.response.data=Yr.call(t,t.transformResponse,i.response),i.response.headers=Qr.from(i.response.headers))),Promise.reject(i)})}const Lo="1.12.2",Oo={};["object","boolean","number","function","string","symbol"].forEach((t,i)=>{Oo[t]=function(e){return typeof e===t||"a"+(i<1?"n ":" ")+t}});const No={};Oo.transitional=function(t,i,e){function s(t,i){return"[Axios v"+Lo+"] Transitional option '"+t+"'"+i+(e?". "+e:"")}return(e,n,r)=>{if(!1===t)throw new Cr(s(n," has been removed"+(i?" in "+i:"")),Cr.ERR_DEPRECATED);return i&&!No[n]&&(No[n]=!0,console.warn(s(n," has been deprecated since v"+i+" and will be removed in the near future"))),!t||t(e,n,r)}},Oo.spelling=function(t){return(i,e)=>(console.warn(`${e} is likely a misspelling of ${t}`),!0)};var $o={assertOptions:function(t,i,e){if("object"!=typeof t)throw new Cr("options must be an object",Cr.ERR_BAD_OPTION_VALUE);const s=Object.keys(t);let n=s.length;for(;n-- >0;){const r=s[n],o=i[r];if(o){const i=t[r],e=void 0===i||o(i,r,t);if(!0!==e)throw new Cr("option "+r+" must be "+e,Cr.ERR_BAD_OPTION_VALUE);continue}if(!0!==e)throw new Cr("Unknown option "+r,Cr.ERR_BAD_OPTION)}},validators:Oo};const Po=$o.validators;let Vo=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Pr,response:new Pr}}async request(t,i){try{return await this._request(t,i)}catch(t){if(t instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const e=i.stack?i.stack.replace(/^.+\n/,""):"";try{t.stack?e&&!String(t.stack).endsWith(e.replace(/^.+\n.+\n/,""))&&(t.stack+="\n"+e):t.stack=e}catch(t){}}throw t}}_request(t,i){"string"==typeof t?(i=i||{}).url=t:i=t||{},i=ao(this.defaults,i);const{transitional:e,paramsSerializer:s,headers:n}=i;void 0!==e&&$o.assertOptions(e,{silentJSONParsing:Po.transitional(Po.boolean),forcedJSONParsing:Po.transitional(Po.boolean),clarifyTimeoutError:Po.transitional(Po.boolean)},!1),null!=s&&(Sr.isFunction(s)?i.paramsSerializer={serialize:s}:$o.assertOptions(s,{encode:Po.function,serialize:Po.function},!0)),void 0!==i.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?i.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:i.allowAbsoluteUrls=!0),$o.assertOptions(i,{baseUrl:Po.spelling("baseURL"),withXsrfToken:Po.spelling("withXSRFToken")},!0),i.method=(i.method||this.defaults.method||"get").toLowerCase();let r=n&&Sr.merge(n.common,n[i.method]);n&&Sr.forEach(["delete","get","head","post","put","patch","common"],t=>{delete n[t]}),i.headers=Qr.concat(r,n);const o=[];let h=!0;this.interceptors.request.forEach(function(t){"function"==typeof t.runWhen&&!1===t.runWhen(i)||(h=h&&t.synchronous,o.unshift(t.fulfilled,t.rejected))});const l=[];let a;this.interceptors.response.forEach(function(t){l.push(t.fulfilled,t.rejected)});let c,u=0;if(!h){const t=[To.bind(this),void 0];for(t.unshift(...o),t.push(...l),c=t.length,a=Promise.resolve(i);u<c;)a=a.then(t[u++],t[u++]);return a}c=o.length;let d=i;for(;u<c;){const t=o[u++],i=o[u++];try{d=t(d)}catch(t){i.call(this,t);break}}try{a=To.call(this,d)}catch(t){return Promise.reject(t)}for(u=0,c=l.length;u<c;)a=a.then(l[u++],l[u++]);return a}getUri(t){return $r(ho((t=ao(this.defaults,t)).baseURL,t.url,t.allowAbsoluteUrls),t.params,t.paramsSerializer)}};Sr.forEach(["delete","get","head","options"],function(t){Vo.prototype[t]=function(i,e){return this.request(ao(e||{},{method:t,url:i,data:(e||{}).data}))}}),Sr.forEach(["post","put","patch"],function(t){function i(i){return function(e,s,n){return this.request(ao(n||{},{method:t,headers:i?{"Content-Type":"multipart/form-data"}:{},url:e,data:s}))}}Vo.prototype[t]=i(),Vo.prototype[t+"Form"]=i(!0)});const Do={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Do).forEach(([t,i])=>{Do[i]=t});const Ao=function t(i){const e=new Vo(i),s=Ln(Vo.prototype.request,e);return Sr.extend(s,Vo.prototype,e,{allOwnKeys:!0}),Sr.extend(s,e,null,{allOwnKeys:!0}),s.create=function(e){return t(ao(i,e))},s}(Hr);Ao.Axios=Vo,Ao.CanceledError=to,Ao.CancelToken=class t{constructor(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");let i;this.promise=new Promise(function(t){i=t});const e=this;this.promise.then(t=>{if(!e._listeners)return;let i=e._listeners.length;for(;i-- >0;)e._listeners[i](t);e._listeners=null}),this.promise.then=t=>{let i;const s=new Promise(t=>{e.subscribe(t),i=t}).then(t);return s.cancel=function(){e.unsubscribe(i)},s},t(function(t,s,n){e.reason||(e.reason=new to(t,s,n),i(e.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const i=this._listeners.indexOf(t);-1!==i&&this._listeners.splice(i,1)}toAbortSignal(){const t=new AbortController,i=i=>{t.abort(i)};return this.subscribe(i),t.signal.unsubscribe=()=>this.unsubscribe(i),t.signal}static source(){let i;const e=new t(function(t){i=t});return{token:e,cancel:i}}},Ao.isCancel=Zr,Ao.VERSION=Lo,Ao.toFormData=kr,Ao.AxiosError=Cr,Ao.Cancel=Ao.CanceledError,Ao.all=function(t){return Promise.all(t)},Ao.spread=function(t){return function(i){return t.apply(null,i)}},Ao.isAxiosError=function(t){return Sr.isObject(t)&&!0===t.isAxiosError},Ao.mergeConfig=ao,Ao.AxiosHeaders=Qr,Ao.formToJSON=t=>Ur(Sr.isHTMLForm(t)?new FormData(t):t),Ao.getAdapter=Ro,Ao.HttpStatusCode=Do,Ao.default=Ao;const{Axios:Bo,AxiosError:Fo,CanceledError:Wo,isCancel:jo,CancelToken:Io,VERSION:Uo,all:Ho,Cancel:Ko,isAxiosError:qo,spread:Xo,toFormData:Jo,AxiosHeaders:Go,HttpStatusCode:Qo,formToJSON:Yo,getAdapter:Zo,mergeConfig:th}=Ao,ih={BASE_URL:"undefined"!=typeof window&&window.FUNHI_CHART_API_URL?window.FUNHI_CHART_API_URL:process.env.NEXT_PUBLIC_BACKEND_URL||"https://dev.funhi.com",TIMEOUT:1e4,MAX_RETRIES:3,RETRY_DELAY:1e3};const eh=new class{constructor(){this.baseURL=`${ih.BASE_URL}/api/ohlcv`,this.savingQueue=new Map,this.BATCH_DELAY=5e3,this.BATCH_SIZE=50}async saveCandles(t){try{const{mint:i,candles:e,timeFrame:s=60}=t;if(!i||!e||0===e.length)return console.warn("⚠️ [CandleStorage] Invalid save request:",t),!1;return!!(await Ao.post(`${this.baseURL}/candles/save`,{mint:i,candles:e,timeFrame:s})).data.success&&(console.log(`💾 [CandleStorage] Saved ${e.length} candles for ${i}`),!0)}catch(t){return console.error("❌ [CandleStorage] Error saving candles:",t),!1}}async saveCandle(t){try{const{mint:i,candle:e,timeFrame:s=60}=t;if(!i||!e)return console.warn("⚠️ [CandleStorage] Invalid save request:",t),!1;const n=`${i}_${s}`,r=this.savingQueue.get(n);if(r)clearTimeout(r.timeout),r.candles.push(e),r.candles.length>=this.BATCH_SIZE?await this.flushQueue(n,i,s):r.timeout=setTimeout(()=>{this.flushQueue(n,i,s)},this.BATCH_DELAY);else{const t=setTimeout(()=>{this.flushQueue(n,i,s)},this.BATCH_DELAY);this.savingQueue.set(n,{candles:[e],timeout:t})}return!0}catch(t){return console.error("❌ [CandleStorage] Error queuing candle:",t),!1}}async flushQueue(t,i,e){const s=this.savingQueue.get(t);s&&0!==s.candles.length&&(this.savingQueue.delete(t),await this.saveCandles({mint:i,candles:s.candles,timeFrame:e}))}async getCandles(t){try{const{mint:i,timeFrame:e=60,limit:s=5e4}=t;if(!i)return console.warn("⚠️ [CandleStorage] Invalid get request:",t),[];const n=await Ao.get(`${this.baseURL}/candles/${i}`,{params:{timeFrame:e,limit:s},timeout:8e3,validateStatus:t=>t>=200&&t<500});if(n.data.success&&n.data.data&&n.data.data.candles){const t=n.data.data.candles.length;return t>0?console.log(`✅ [CandleStorage] Retrieved ${t} candles for ${i}`):console.log(`ℹ️ [CandleStorage] No candles found for ${i} in database`),n.data.data.candles}return n.data.warning&&console.warn(`⚠️ [CandleStorage] ${n.data.warning}`),[]}catch(i){return"ECONNABORTED"===i.code?console.error("❌ [CandleStorage] Request timeout getting candles for",t.mint):i.response?console.error("❌ [CandleStorage] Server error getting candles:",i.response.status,i.response.data):i.request?console.error("❌ [CandleStorage] Network error getting candles - no response received"):console.error("❌ [CandleStorage] Error getting candles:",i.message),[]}}async flushAll(){const t=[];for(const[i,e]of this.savingQueue.entries()){clearTimeout(e.timeout);const[s,n]=i.split("_"),r=parseInt(n);t.push(this.flushQueue(i,s,r))}await Promise.all(t)}};const sh=new class{constructor(){this.timeframes={"1m":60,"5m":300,"15m":900,"30m":1800,"1h":3600,"4h":14400,"1d":86400}}aggregateCandles(t,i){try{if(60===i)return t;if(!Array.isArray(t)||0===t.length)return console.warn("⚠️ [CandleAggregation] No candles to aggregate"),[];const e=[...t].sort((t,i)=>t.time-i.time),s=[];let n=[],r=null;for(const t of e){const e=Math.floor(t.time/i)*i;if(null===r&&(r=e),e===r)n.push(t);else{if(n.length>0){const t=this.aggregateGroup(n,r);s.push(t)}n=[t],r=e}}if(n.length>0&&null!==r){const t=this.aggregateGroup(n,r);s.push(t)}return console.log(`📊 [CandleAggregation] Aggregated ${t.length} 1m candles into ${s.length} ${this.getTimeframeLabel(i)} candles`),s}catch(t){return console.error("❌ [CandleAggregation] Error aggregating candles:",t),[]}}aggregateGroup(t,i){const e=[...t].sort((t,i)=>t.time-i.time),s=e[0].open,n=e[e.length-1].close,r=Math.max(...e.map(t=>t.high)),o=Math.min(...e.map(t=>t.low)),h=e.reduce((t,i)=>t+(i.volume||0),0);return{time:i,open:s,high:r,low:o,close:n,volume:h}}getTimeframeLabel(t){for(const[i,e]of Object.entries(this.timeframes))if(e===t)return i;return`${t}s`}getTimeframeSeconds(t){return this.timeframes[t]||60}fillGaps(t,i){try{if(!Array.isArray(t)||t.length<2)return t;const e=[...t].sort((t,i)=>t.time-i.time),s=[];for(let t=0;t<e.length-1;t++){const n=e[t],r=e[t+1];s.push(n);let o=n.time+i;for(;o<r.time;)s.push({time:o,open:n.close,high:n.close,low:n.close,close:n.close,volume:0}),o+=i}return s.push(e[e.length-1]),s.length>e.length&&console.log(`🔧 [CandleAggregation] Filled ${s.length-e.length} gaps in ${this.getTimeframeLabel(i)} candles`),s}catch(i){return console.error("❌ [CandleAggregation] Error filling gaps:",i),t}}getCurrentCandle(t,i){try{if(!Array.isArray(t)||0===t.length)return null;const e=Math.floor(Date.now()/1e3),s=Math.floor(e/i)*i,n=t.filter(t=>Math.floor(t.time/i)*i===s);return 0===n.length?null:this.aggregateGroup(n,s)}catch(t){return console.error("❌ [CandleAggregation] Error getting current candle:",t),null}}updateRealtimeCandle(t,i,e){try{if(!i)return t;const s=Math.floor(i.time/e)*e,n=t.findIndex(t=>t.time===s);if(n>=0){const e=t[n],r={time:s,open:e.open,high:Math.max(e.high,i.high),low:Math.min(e.low,i.low),close:i.close,volume:e.volume+(i.volume||0)},o=[...t];return o[n]=r,o}{const e={time:s,open:i.open,high:i.high,low:i.low,close:i.close,volume:i.volume||0};return[...t,e].sort((t,i)=>t.time-i.time)}}catch(i){return console.error("❌ [CandleAggregation] Error updating realtime candle:",i),t}}isValidCandle(t){return t&&"number"==typeof t.time&&"number"==typeof t.open&&"number"==typeof t.high&&"number"==typeof t.low&&"number"==typeof t.close&&t.high>=t.low&&t.high>=t.open&&t.high>=t.close&&t.low<=t.open&&t.low<=t.close}cleanCandles(t){if(!Array.isArray(t))return[];const i=t.filter(t=>this.isValidCandle(t));return i.length<t.length&&console.warn(`⚠️ [CandleAggregation] Removed ${t.length-i.length} invalid candles`),i}getRequiredOneMinuteCandles(t,i=200){const e=t/60;return Math.ceil(i*e)}},nh=({mint:i,ticker:e,tokenName:s,socket:n,isConnected:r,currentMarketCap:o,analyticsConnected:h,analyticsLoading:l})=>{const a=t.useRef(null),c=t.useRef(null),u=t.useRef(null),[d,f]=t.useState([]),[m,p]=t.useState([]),[g,v]=t.useState(0),[b,w]=t.useState(!0),[y,S]=t.useState(null),C=kn(),x=n||C.socket,_=void 0!==r?r:C.isConnected,E=Tn(),M=void 0!==o?o:E.currentMarketCap,z=void 0!==h?h:E.connected,R=void 0!==l?l:E.loading,k=t.useMemo(()=>[{label:"1m",value:"1m",seconds:60},{label:"5m",value:"5m",seconds:300},{label:"15m",value:"15m",seconds:900},{label:"1h",value:"1h",seconds:3600},{label:"4h",value:"4h",seconds:14400},{label:"1d",value:"1d",seconds:86400}],[]),[T,L]=t.useState(k[0]),O=t.useCallback(t=>t>=1e9?`$${(t/1e9).toFixed(t>=1e10?2:3)}B`:t>=1e6?`$${(t/1e6).toFixed(t>=1e7?2:3)}M`:t>=1e4?`$${(t/1e3).toFixed(t>=1e5?1:2)}K`:t>=1e3?`$${(t/1e3).toFixed(2)}K`:t>=1?`$${t.toFixed(2)}`:`$${t.toFixed(4)}`,[]),N=t.useCallback(t=>{if(t.length<2)return t;const i=[...t].sort((t,i)=>t.time-i.time),e=[];for(let t=0;t<i.length-1;t++){const s=i[t],n=i[t+1];e.push(s);const r=(n.time-s.time)/60;if(r>1.5){const t=Math.floor(r)-1,i=s.close;for(let n=1;n<=t;n++){const t=s.time+60*n;e.push({time:t,open:i,high:i,low:i,close:i,volume:0})}}}return e.push(i[i.length-1]),e},[]),$=t.useCallback(async(t,i,e=0,s=5e4)=>{try{console.log(`📊 [Chart] Loading candles from database for ${t} (timeframe: ${i}s, limit: ${s})${e>0?` (retry ${e})`:""}`);const n=await eh.getCandles({mint:t,timeFrame:i,limit:s});return console.log(`✅ [Chart] Loaded ${n.length} candles from database for ${t} (timeframe: ${i}s)`),n}catch(n){return console.error(`❌ [Chart] Error loading candles from database (attempt ${e+1}):`,n),e<2&&("ECONNABORTED"===n.code||"ENOTFOUND"===n.code||n.message?.includes("timeout"))?(console.log("🔄 [Chart] Retrying candle load in 1000ms..."),await new Promise(t=>setTimeout(t,1e3)),$(t,i,e,s)):[]}},[]);t.useEffect(()=>{if(!a.current)return;const t=Rn(a.current,{layout:{background:{color:"#ffffff"},textColor:"#333333"},grid:{vertLines:{color:"#f0f0f0"},horzLines:{color:"#f0f0f0"}},crosshair:{mode:ft.Normal},rightPriceScale:{borderColor:"#cccccc"},timeScale:{borderColor:"#cccccc",timeVisible:!0,secondsVisible:!1,rightOffset:12,barSpacing:8,minBarSpacing:4},height:384,localization:{priceFormatter:t=>O(t)},watermark:{visible:!0,fontSize:64,horzAlign:"center",vertAlign:"center",color:"rgba(0, 0, 0, 0.03)",text:e?`${e}/SOL`:`${i.substring(0,4)}...${i.substring(i.length-4)}/SOL`}});c.current=t;const s=t.addCandlestickSeries({upColor:"#26a69a",downColor:"#ef5350",borderVisible:!0,borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickUpColor:"#26a69a",wickDownColor:"#ef5350"});u.current=s;const n=5e4,r=60===T.seconds?n:sh.getRequiredOneMinuteCandles(T.seconds,n);console.log(`📊 [Chart Init] Loading ${r} 1m candles to create 50000 ${T.label} candles`),$(i,60,0,r).then(t=>{if(t.length>0){const e=t.reduce((t,i)=>{const e=t.findIndex(t=>t.time===i.time);return e>=0?t[e]=i:t.push(i),t},[]),n=e.sort((t,i)=>t.time-i.time),r=n.filter((t,i,e)=>0===i||t.time!==e[i-1].time);p(r),console.log(`✅ [Chart] Loaded ${r.length} 1m candles from database (will aggregate to ${T.label})`);const o=N(r);if(o.length>r.length&&(console.log(`🔧 [Chart] Filled ${o.length-r.length} gaps in loaded data`),f(o),s.setData(o.map(t=>({...t,time:t.time})))),x&&_){const t=o[o.length-1]?.time||0,e=Math.floor(Date.now()/1e3),s=Math.floor((e-t)/60);s>0&&s<10&&(console.log(`🔍 [Chart] Requesting ${s} missing recent candles from other clients`),x.emit("requestRecentCandles",{mint:i,timeframe:60,since:t})),console.log("🔍 [Chart] Requesting current minute candle from other clients"),x.emit("requestCurrentCandle",{mint:i,timeframe:60})}const h=Math.floor(Date.now()/1e3),l=60*Math.floor(h/60),a=o.some(t=>t.time===l);if(!a){console.log("🕯️ [Chart] Creating current minute candle immediately after refresh");(o.length>0?o[o.length-1].close:M||0)>0&&console.log("✅ [FunhiChart] Waiting for current minute candle from backend...")}}else console.log(`ℹ️ [Chart] No existing candles found in database for ${i}, waiting for real-time data`);w(!1)}).catch(t=>{console.error("❌ [Chart] Error loading candles from database:",t),w(!1)});const o=()=>{a.current&&t.applyOptions({width:a.current.clientWidth})};return window.addEventListener("resize",o),o(),()=>{window.removeEventListener("resize",o),t.remove()}},[i,$,O,T]);const P=t.useCallback(async t=>{const e=k.find(i=>i.value===t);if(e&&e.value!==T.value){console.log(`🔄 [Chart] Switching timeframe from ${T.label} to ${e.label}`),L(e),w(!0),f([]),u.current&&u.current.setData([]);try{const t=5e4,s=60===e.seconds?t:sh.getRequiredOneMinuteCandles(e.seconds,t);if(console.log(`🔄 [Chart] Switching to ${e.label}: need ${s} 1m candles, have ${m.length}`),m.length<s){console.log(`📊 [Chart] Loading ${s} 1m candles to create ${t} ${e.label} candles`);const n=await $(i,60,0,s);n.length>0?(p(n),console.log(`✅ [Chart] Loaded ${n.length} 1m candles, will create ~${Math.floor(60*n.length/e.seconds)} ${e.label} candles`)):console.log(`⚠️ [Chart] No candles loaded, using existing ${m.length} 1m candles`)}else console.log(`✅ [Chart] Already have enough 1m candles (${m.length}), re-aggregating to ${e.label}`)}catch(t){console.error(`❌ [Chart] Error switching to ${e.label}:`,t)}finally{w(!1)}}},[k,T,i,$,m]);t.useEffect(()=>{!i||!u.current||M<=0||(console.log(`💰 [FunhiChart] Processing real-time market cap update: $${M} for ${i} (${T.label})`),v(M),w(!1),c.current&&c.current.timeScale().scrollToRealTime())},[i,M,T]),t.useEffect(()=>{if(!x||!_||!i)return;const t=t=>{t.mint===i&&60===t.timeframe&&(console.log("🕯️ [FunhiChart] Received current candle update from backend:",t.candle),60===T.seconds&&u.current?(u.current.update({...t.candle,time:t.candle.time}),console.log(`⚡ [FunhiChart] Fast update for 1m chart at ${new Date(1e3*t.candle.time).toLocaleTimeString()}`),p(i=>{const e=[...i],s=e.findIndex(i=>i.time===t.candle.time);return s>=0?e[s]=t.candle:(e.push(t.candle),e.sort((t,i)=>t.time-i.time)),e})):p(i=>{const e=[...i],s=e.findIndex(i=>i.time===t.candle.time);return s>=0?(e[s]=t.candle,console.log("🔄 [FunhiChart] Updated candle for aggregation")):(e.push(t.candle),e.sort((t,i)=>t.time-i.time),console.log("🆕 [FunhiChart] Added new candle for aggregation")),e}))},e=t=>{t.mint===i&&t.candle&&(console.log(`📡 [FunhiChart] Received completed candle from backend: ${new Date(1e3*t.candle.time).toLocaleTimeString()}`),p(i=>{const e=i.find(i=>i.time===t.candle.time);if(e)return console.log("⏭️ [FunhiChart] Skipping duplicate candle"),i;const s=[...i,t.candle].sort((t,i)=>t.time-i.time);return console.log(`✅ [FunhiChart] Added completed candle to oneMinuteCandles: ${t.candle.time}`),s}))},s=t=>{t.mint===i&&t.candles&&Array.isArray(t.candles)&&(console.log(`📡 [FunhiChart] Received ${t.candles.length} recent candles from backend`),p(i=>{const e=t.candles.filter(t=>!i.some(i=>i.time===t.time));if(e.length>0){const t=[...i,...e].sort((t,i)=>t.time-i.time);return console.log(`✅ [FunhiChart] Added ${e.length} missing candles to oneMinuteCandles`),t}return i}))};return x.on("ohlcv:update",e),x.on("recentCandlesResponse",s),x.on("currentCandleUpdate",t),()=>{x.off("ohlcv:update",e),x.off("recentCandlesResponse",s),x.off("currentCandleUpdate",t)}},[x,_,i]);const V=t.useCallback(()=>{if(u.current&&0!==m.length)try{let t=[];if(60===T.seconds)t=m.slice(-5e4),console.log(`📊 [Chart] Displaying ${t.length} 1m candles (from ${m.length} available)`);else{t=sh.aggregateCandles(m,T.seconds),console.log(`📊 [Chart] Aggregated ${m.length} 1m candles into ${t.length} ${T.label} candles BEFORE processing`);const i=Math.floor(Date.now()/1e3),e=Math.floor(i/T.seconds)*T.seconds;if(t.length>0){if(t[t.length-1].time===e){const i=m.filter(t=>Math.floor(t.time/T.seconds)*T.seconds===e);i.length>0?console.log(`🕯️ [Chart] Showing incomplete ${T.label} candle with ${i.length} 1m candles`):(t=t.slice(0,-1),console.log(`⏭️ [Chart] Hiding incomplete ${T.label} candle (no data yet)`))}}t=sh.fillGaps(t,T.seconds),t.length>5e4&&(t=t.slice(-5e4),console.log(`✂️ [Chart] Trimmed to last 50000 ${T.label} candles`)),console.log(`📊 [Chart] Final display: ${t.length} ${T.label} candles`)}f(t),u.current.setData(t.map(t=>({...t,time:t.time}))),c.current&&c.current.timeScale().scrollToRealTime()}catch(t){console.error("❌ [Chart] Error aggregating candles:",t)}},[m,T]);return t.useEffect(()=>{if(u.current&&0!==m.length)if(60!==T.seconds)V();else{const t=Math.floor(Date.now()/1e3),i=60*Math.floor(t/60),e=m.some(t=>t.time<i&&t.time>i-120);e&&V()}},[m,T,V]),t.useEffect(()=>{if((b||R)&&!d.length){const t=setTimeout(()=>{w(!1)},1e4);return()=>clearTimeout(t)}},[b,R,d.length]),y?t.createElement("div",{className:"p-4 bg-red-50 border border-red-200 rounded-lg"},t.createElement("div",{className:"text-red-800 font-medium"},"Chart Error"),t.createElement("div",{className:"text-red-600 text-sm"},y),t.createElement("button",{onClick:()=>S(null),className:"mt-2 px-3 py-1 bg-red-100 text-red-700 rounded text-sm hover:bg-red-200"},"Dismiss")):t.createElement("div",{className:"w-full"},t.createElement("div",{className:"mb-4 flex flex-wrap gap-2 items-center"},t.createElement("div",{className:"flex flex-wrap gap-2"},k.map(i=>t.createElement("button",{key:i.value,onClick:()=>P(i.value),className:`\n px-3 py-2 rounded-lg text-sm font-medium transition-colors\n ${T.value===i.value?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}\n `},i.label))),t.createElement("div",{className:"ml-auto flex items-center gap-2 text-sm"},t.createElement("div",{className:"w-2 h-2 rounded-full "+(z?"bg-green-500":"bg-red-500")}),t.createElement("span",{className:z?"text-green-600":"text-red-600"},z?"Connected":"Disconnected"),(b||R)&&t.createElement("span",{className:"text-blue-600"},"• Loading..."),d.length>0&&t.createElement("span",{className:"text-green-600"},"• ",d.length," candles • ",O(g)))),t.createElement("div",{ref:a,className:"relative w-full h-96"},(b||R)&&t.createElement("div",{className:"absolute inset-0 bg-white bg-opacity-75 flex items-center justify-center rounded-lg z-10"},t.createElement("div",{className:"text-center"},t.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto mb-2"}),t.createElement("div",{className:"text-gray-600"},"Loading real-time data..."))),!b&&!R&&0===d.length&&t.createElement("div",{className:"absolute inset-0 bg-white bg-opacity-75 flex items-center justify-center rounded-lg z-10"},t.createElement("div",{className:"text-center"},t.createElement("div",{className:"text-gray-600 mb-2"},"No market data available"),t.createElement("div",{className:"text-sm text-gray-500"},"Waiting for real-time data...")))))};exports.API_CONFIG=ih,exports.FunhiChart=nh,exports.ProfessionalTradingChartRedux=nh,exports.candleAggregation=sh,exports.candleStorageService=eh,exports.useOptimizedTokenAnalytics=Tn,exports.useSocket=kn;
|
|
8
8
|
//# sourceMappingURL=index.js.map
|