@v587d/capital-generation 0.0.0-stage → 2.6.0
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/CHANGELOG.md +794 -0
- package/LICENSE +21 -0
- package/README.md +116 -2
- package/assets/cg-icon.png +0 -0
- package/capital-config/client.js +28 -0
- package/capital-config/client.src.cjs +388 -0
- package/capital-config/index.js +113 -0
- package/capital-config/package.json +36 -0
- package/capital-watchlist/client.js +182 -0
- package/capital-watchlist/client.src.cjs +1229 -0
- package/capital-watchlist/index.js +772 -0
- package/capital-watchlist/package.json +37 -0
- package/chart-ui/README.md +112 -0
- package/chart-ui/client.js +16 -0
- package/chart-ui/client.src.cjs +126 -0
- package/chart-ui/index.js +205 -0
- package/chart-ui/package.json +30 -0
- package/cordis.patch.yml +72 -0
- package/lib/agents/bash-guard.d.ts +55 -0
- package/lib/agents/bash-guard.js +162 -0
- package/lib/agents/root-tool-policy.d.ts +164 -0
- package/lib/agents/root-tool-policy.js +309 -0
- package/lib/chart/artifact-ref.d.ts +65 -0
- package/lib/chart/artifact-ref.js +107 -0
- package/lib/chart/downsample.d.ts +8 -0
- package/lib/chart/downsample.js +53 -0
- package/lib/chart/errors.d.ts +16 -0
- package/lib/chart/errors.js +15 -0
- package/lib/chart/events.d.ts +120 -0
- package/lib/chart/events.js +471 -0
- package/lib/chart/html.d.ts +21 -0
- package/lib/chart/html.js +154 -0
- package/lib/chart/runtime.d.ts +20 -0
- package/lib/chart/runtime.js +270 -0
- package/lib/chart/series.d.ts +102 -0
- package/lib/chart/series.js +424 -0
- package/lib/chart/source-token.d.ts +64 -0
- package/lib/chart/source-token.js +217 -0
- package/lib/chart/spec.d.ts +58 -0
- package/lib/chart/spec.js +265 -0
- package/lib/chart/tool.d.ts +86 -0
- package/lib/chart/tool.js +288 -0
- package/lib/chart/vendor/LICENSE +201 -0
- package/lib/chart/vendor/VERSION.json +8 -0
- package/lib/chart/vendor/lightweight-charts.standalone.production.js +7 -0
- package/lib/data-collector/args.d.ts +38 -0
- package/lib/data-collector/args.js +114 -0
- package/lib/data-collector/dataset-tools.d.ts +3 -0
- package/lib/data-collector/dataset-tools.js +421 -0
- package/lib/data-collector/describe.d.ts +99 -0
- package/lib/data-collector/describe.js +256 -0
- package/lib/data-collector/hub.d.ts +187 -0
- package/lib/data-collector/hub.js +469 -0
- package/lib/data-collector/query-time.d.ts +58 -0
- package/lib/data-collector/query-time.js +101 -0
- package/lib/data-collector/query.d.ts +57 -0
- package/lib/data-collector/query.js +473 -0
- package/lib/data-collector/store.d.ts +499 -0
- package/lib/data-collector/store.js +1486 -0
- package/lib/data-collector/time-axis.d.ts +169 -0
- package/lib/data-collector/time-axis.js +419 -0
- package/lib/data-collector/tools.d.ts +32 -0
- package/lib/data-collector/tools.js +216 -0
- package/lib/index.d.ts +275 -0
- package/lib/index.js +458 -0
- package/lib/net/eastmoney-client.d.ts +104 -0
- package/lib/net/eastmoney-client.js +118 -0
- package/lib/net/throttle.d.ts +16 -0
- package/lib/net/throttle.js +34 -0
- package/lib/ocr/client.d.ts +82 -0
- package/lib/ocr/client.js +281 -0
- package/lib/ocr/markdown.d.ts +75 -0
- package/lib/ocr/markdown.js +209 -0
- package/lib/ocr/store.d.ts +119 -0
- package/lib/ocr/store.js +226 -0
- package/lib/sources/eastmoney-http.d.ts +2 -0
- package/lib/sources/eastmoney-http.js +1253 -0
- package/lib/sources/fuyao-core.d.ts +52 -0
- package/lib/sources/fuyao-core.js +96 -0
- package/lib/sources/fuyao-rest.d.ts +14 -0
- package/lib/sources/fuyao-rest.js +2057 -0
- package/lib/sources/security-code.d.ts +27 -0
- package/lib/sources/security-code.js +104 -0
- package/lib/sources/security-identity.d.ts +24 -0
- package/lib/sources/security-identity.js +89 -0
- package/lib/sources/tencent-http.d.ts +2 -0
- package/lib/sources/tencent-http.js +1053 -0
- package/lib/sources/wind-mcp.d.ts +8 -0
- package/lib/sources/wind-mcp.js +593 -0
- package/lib/time/tools.d.ts +74 -0
- package/lib/time/tools.js +464 -0
- package/lib/tool-exec.d.ts +29 -0
- package/lib/tool-exec.js +17 -0
- package/lib/web-retriever/engines.d.ts +61 -0
- package/lib/web-retriever/engines.js +202 -0
- package/lib/web-retriever/html-markdown.d.ts +50 -0
- package/lib/web-retriever/html-markdown.js +321 -0
- package/lib/web-retriever/local-fetch.d.ts +121 -0
- package/lib/web-retriever/local-fetch.js +562 -0
- package/lib/web-retriever/retriever.d.ts +58 -0
- package/lib/web-retriever/retriever.js +94 -0
- package/lib/web-retriever/sources.d.ts +235 -0
- package/lib/web-retriever/sources.js +961 -0
- package/lib/web-retriever/tools.d.ts +50 -0
- package/lib/web-retriever/tools.js +1029 -0
- package/lib/web-retriever/wind-client.d.ts +69 -0
- package/lib/web-retriever/wind-client.js +311 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +76 -4
- package/preset/capital-generation/README.md +161 -0
- package/preset/capital-generation/agent.patch.yml +509 -0
- package/preset/capital-generation/skills/capital-chart-protocol/SKILL.md +137 -0
- package/preset/capital-generation/skills/capital-data-protocol/SKILL.md +416 -0
- package/preset/capital-generation/skills/capital-orchestration/SKILL.md +174 -0
- package/preset/capital-generation/skills/capital-visualization-protocol/SKILL.md +296 -0
- package/preset/capital-generation/skills/capital-web-protocol/SKILL.md +240 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* TradingView Lightweight Charts™ v5.2.1
|
|
4
|
+
* Copyright (c) 2026 TradingView, Inc.
|
|
5
|
+
* Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*/
|
|
7
|
+
!function(){"use strict";const t={title:"",visible:!0,hitTestTolerance:3,lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:"",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:"#B2B5BE",baseLineStyle:0,priceFormat:{type:"price",precision:2,minMove:.01}};var i,n;function s(t,i){const n=function(t,i){switch(t){case 0:default:return[];case 1:return[i,i];case 2:return[2*i,2*i];case 3:return[6*i,6*i];case 4:return[i,4*i]}}(i,t.lineWidth);return t.setLineDash(n),n}function e(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(n,i+e),t.lineTo(s,i+e),t.stroke()}function r(t,i){if(!t)throw new Error("Assertion failed"+(i?": "+i:""))}function h(t){if(void 0===t)throw new Error("Value is undefined");return t}function a(t){if(null===t)throw new Error("Value is null");return t}function l(t){return a(h(t))}!function(t){t[t.Simple=0]="Simple",t[t.WithSteps=1]="WithSteps",t[t.Curved=2]="Curved"}(i||(i={})),function(t){t[t.Solid=0]="Solid",t[t.Dotted=1]="Dotted",t[t.Dashed=2]="Dashed",t[t.LargeDashed=3]="LargeDashed",t[t.SparseDotted=4]="SparseDotted"}(n||(n={}));class o{constructor(){this.t=[]}i(t,i,n){const s={h:t,l:i,o:!0===n};this.t.push(s)}_(t){const i=this.t.findIndex((i=>t===i.h));i>-1&&this.t.splice(i,1)}u(t){this.t=this.t.filter((i=>i.l!==t))}p(t,i,n){const s=[...this.t];this.t=this.t.filter((t=>!t.o)),s.forEach((s=>s.h(t,i,n)))}v(){return this.t.length>0}m(){this.t=[]}}function _(t,...i){for(const n of i)for(const i in n)void 0!==n[i]&&Object.prototype.hasOwnProperty.call(n,i)&&!["__proto__","constructor","prototype"].includes(i)&&("object"!=typeof n[i]||void 0===t[i]||Array.isArray(n[i])?t[i]=n[i]:_(t[i],n[i]));return t}function u(t){return"number"==typeof t&&isFinite(t)}function c(t){return"number"==typeof t&&t%1==0}function d(t){return"string"==typeof t}function f(t){return"boolean"==typeof t}function p(t){const i=t;if(!i||"object"!=typeof i)return i;let n,s,e;for(s in n=Array.isArray(i)?[]:{},i)i.hasOwnProperty(s)&&(e=i[s],n[s]=e&&"object"==typeof e?p(e):e);return n}function v(t){return null!==t}function m(t){return null===t?void 0:t}const w="-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif";function g(t,i,n){return void 0===i&&(i=w),`${n=void 0!==n?`${n} `:""}${t}px ${i}`}class M{constructor(t){this.M={S:1,C:5,P:NaN,k:"",T:"",R:"",D:"",I:0,V:0,B:0,A:0,L:0},this.O=t}N(){const t=this.M,i=this.F(),n=this.W();return t.P===i&&t.T===n||(t.P=i,t.T=n,t.k=g(i,n),t.A=2.5/12*i,t.I=t.A,t.V=i/12*t.C,t.B=i/12*t.C,t.L=0),t.R=this.H(),t.D=this.U(),this.M}H(){return this.O.N().layout.textColor}U(){return this.O.$()}F(){return this.O.N().layout.fontSize}W(){return this.O.N().layout.fontFamily}}function b(t){return t<0?0:t>255?255:Math.round(t)||0}function S(t){return.199*t[0]+.687*t[1]+.114*t[2]}class x{constructor(t,i){this.j=new Map,this.q=t,i&&(this.j=i)}Y(t,i){if("transparent"===t)return t;const n=this.K(t),s=n[3];return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${i*s})`}G(t){const i=this.K(t);return{Z:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,X:S(i)>160?"black":"white"}}J(t){return S(this.K(t))}tt(t,i,n){const[s,e,r,h]=this.K(t),[a,l,o,_]=this.K(i),u=[b(s+n*(a-s)),b(e+n*(l-e)),b(r+n*(o-r)),(c=h+n*(_-h),c<=0||c>1?Math.min(Math.max(c,0),1):Math.round(1e4*c)/1e4)];var c;return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}K(t){const i=this.j.get(t);if(i)return i;const n=function(t){const i=document.createElement("div");i.style.display="none",document.body.appendChild(i),i.style.color=t;const n=window.getComputedStyle(i).color;return document.body.removeChild(i),n}(t),s=n.match(/^rgba?\s*\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d*\.?\d+))?\)$/);if(!s){if(this.q.length)for(const i of this.q){const n=i(t);if(n)return this.j.set(t,n),n}throw new Error(`Failed to parse color: ${t}`)}const e=[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10),s[4]?parseFloat(s[4]):1];return this.j.set(t,e),e}}class C{constructor(){this.it=[]}nt(t){this.it=t}st(t,i,n){this.it.forEach((s=>{s.st(t,i,n)}))}}class y{st(t,i,n){t.useBitmapCoordinateSpace((t=>this.et(t,i,n)))}}class P extends y{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.rt||null===this.rt.lt)return;const s=this.rt.lt,e=this.rt,r=Math.max(1,Math.floor(i))%2/2,h=h=>{t.beginPath();for(let a=s.to-1;a>=s.from;--a){const s=e.ot[a],l=Math.round(s._t*i)+r,o=s.ut*n,_=h*n+r;t.moveTo(l,o),t.arc(l,o,_,0,2*Math.PI)}t.fill()};e.ct>0&&(t.fillStyle=e.dt,h(e.ft+e.ct)),t.fillStyle=e.vt,h(e.ft)}}function k(){return{ot:[{_t:0,ut:0,wt:0,gt:0}],vt:"",dt:"",ft:0,ct:0,lt:null}}const T={from:0,to:1};class R{constructor(t,i,n){this.Mt=new C,this.bt=[],this.St=[],this.xt=!0,this.O=t,this.Ct=i,this.yt=n,this.Mt.nt(this.bt)}Pt(t){this.kt(),this.xt=!0}Tt(){return this.xt&&(this.Rt(),this.xt=!1),this.Mt}kt(){const t=this.yt.Dt();t.length!==this.bt.length&&(this.St=t.map(k),this.bt=this.St.map((t=>{const i=new P;return i.ht(t),i})),this.Mt.nt(this.bt))}Rt(){const t=2===this.Ct.N().mode||!this.Ct.It(),i=this.yt.Vt(),n=this.Ct.Et(),s=this.O.Bt();this.kt(),i.forEach(((i,e)=>{const r=this.St[e],h=i.At(n),a=i.zt();!t&&null!==h&&i.It()&&null!==a?(r.vt=h.Lt,r.ft=h.ft,r.ct=h.Ot,r.ot[0].gt=h.gt,r.ot[0].ut=i.Ft().Nt(h.gt,a.Wt),r.dt=h.Ht??this.O.Ut(r.ot[0].ut/i.Ft().$t()),r.ot[0].wt=n,r.ot[0]._t=s.jt(n),r.lt=T):r.lt=null}))}}class D extends y{constructor(t){super(),this.qt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:r}){if(null===this.qt)return;const h=this.qt.Yt.It,a=this.qt.Kt.It;if(!h&&!a)return;const l=Math.round(this.qt._t*n),o=Math.round(this.qt.ut*r);t.lineCap="butt",h&&l>=0&&(t.lineWidth=Math.floor(this.qt.Yt.ct*n),t.strokeStyle=this.qt.Yt.R,t.fillStyle=this.qt.Yt.R,s(t,this.qt.Yt.Gt),function(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(i+e,n),t.lineTo(i+e,s),t.stroke()}(t,l,0,i.height)),a&&o>=0&&(t.lineWidth=Math.floor(this.qt.Kt.ct*r),t.strokeStyle=this.qt.Kt.R,t.fillStyle=this.qt.Kt.R,s(t,this.qt.Kt.Gt),e(t,o,0,i.width))}}class I{constructor(t,i){this.xt=!0,this.Zt={Yt:{ct:1,Gt:0,R:"",It:!1},Kt:{ct:1,Gt:0,R:"",It:!1},_t:0,ut:0},this.Xt=new D(this.Zt),this.Jt=t,this.yt=i}Pt(){this.xt=!0}Tt(t){return this.xt&&(this.Rt(),this.xt=!1),this.Xt}Rt(){const t=this.Jt.It(),i=this.yt.Qt().N().crosshair,n=this.Zt;if(2===i.mode)return n.Kt.It=!1,void(n.Yt.It=!1);n.Kt.It=t&&this.Jt.ti(this.yt),n.Yt.It=t&&this.Jt.ii(),n.Kt.ct=i.horzLine.width,n.Kt.Gt=i.horzLine.style,n.Kt.R=i.horzLine.color,n.Yt.ct=i.vertLine.width,n.Yt.Gt=i.vertLine.style,n.Yt.R=i.vertLine.color,n._t=this.Jt.ni(),n.ut=this.Jt.si()}}function V(t,i,n,s,e,r){t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+e-r,s-2*r,r),t.fillRect(i,n,r,e),t.fillRect(i+s-r,n,r,e)}function E(t,i,n,s,e,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,n,s,e),t.restore()}function B(t,i,n,s,e,r){t.beginPath(),t.roundRect?t.roundRect(i,n,s,e,r):(t.lineTo(i+s-r[1],n),0!==r[1]&&t.arcTo(i+s,n,i+s,n+r[1],r[1]),t.lineTo(i+s,n+e-r[2]),0!==r[2]&&t.arcTo(i+s,n+e,i+s-r[2],n+e,r[2]),t.lineTo(i+r[3],n+e),0!==r[3]&&t.arcTo(i,n+e,i,n+e-r[3],r[3]),t.lineTo(i,n+r[0]),0!==r[0]&&t.arcTo(i,n,i+r[0],n,r[0]))}function A(t,i,n,s,e,r,h=0,a=[0,0,0,0],l=""){if(t.save(),!h||!l||l===r)return B(t,i,n,s,e,a),t.fillStyle=r,t.fill(),void t.restore();const o=h/2;var _;B(t,i+o,n+o,s-h,e-h,(_=-o,a.map((t=>0===t?t:t+_)))),"transparent"!==r&&(t.fillStyle=r,t.fill()),"transparent"!==l&&(t.lineWidth=h,t.strokeStyle=l,t.closePath(),t.stroke()),t.restore()}function z(t,i,n,s,e,r,h){t.save(),t.globalCompositeOperation="copy";const a=t.createLinearGradient(0,0,0,e);a.addColorStop(0,r),a.addColorStop(1,h),t.fillStyle=a,t.fillRect(i,n,s,e),t.restore()}class L{constructor(t,i){this.ht(t,i)}ht(t,i){this.qt=t,this.ei=i}$t(t,i){return this.qt.It?t.P+t.A+t.I:0}st(t,i,n,s){if(!this.qt.It||0===this.qt.ri.length)return;const e=this.qt.R,r=this.ei.Z,h=t.useBitmapCoordinateSpace((t=>{const h=t.context;h.font=i.k;const a=this.hi(t,i,n,s),l=a.ai;return a.li?A(h,l.oi,l._i,l.ui,l.ci,r,l.di,[l.ft,0,0,l.ft],r):A(h,l.fi,l._i,l.ui,l.ci,r,l.di,[0,l.ft,l.ft,0],r),this.qt.pi&&(h.fillStyle=e,h.fillRect(l.fi,l.mi,l.wi-l.fi,l.gi)),this.qt.Mi&&(h.fillStyle=i.D,h.fillRect(a.li?l.bi-l.di:0,l._i,l.di,l.Si-l._i)),a}));t.useMediaCoordinateSpace((({context:t})=>{const n=h.xi;t.font=i.k,t.textAlign=h.li?"right":"left",t.textBaseline="middle",t.fillStyle=e,t.fillText(this.qt.ri,n.Ci,(n._i+n.Si)/2+n.yi)}))}hi(t,i,n,s){const{context:e,bitmapSize:r,mediaSize:h,horizontalPixelRatio:a,verticalPixelRatio:l}=t,o=this.qt.pi||!this.qt.Pi?i.C:0,_=this.qt.ki?i.S:0,u=i.A+this.ei.Ti,c=i.I+this.ei.Ri,d=i.V,f=i.B,p=this.qt.ri,v=i.P,m=n.Di(e,p),w=Math.ceil(n.Ii(e,p)),g=v+u+c,M=i.S+d+f+w+o,b=Math.max(1,Math.floor(l));let S=Math.round(g*l);S%2!=b%2&&(S+=1);const x=_>0?Math.max(1,Math.floor(_*a)):0,C=Math.round(M*a),y=Math.round(o*a),P=this.ei.Vi??this.ei.Ei??this.ei.Bi,k=Math.round(P*l)-Math.floor(.5*l),T=Math.floor(k+b/2-S/2),R=T+S,D="right"===s,I=D?h.width-_:_,V=D?r.width-x:x;let E,B,A;return D?(E=V-C,B=V-y,A=I-o-d-_):(E=V+C,B=V+y,A=I+o+d),{li:D,ai:{_i:T,mi:k,Si:R,ui:C,ci:S,ft:2*a,di:x,oi:E,fi:V,wi:B,gi:b,bi:r.width},xi:{_i:T/l,Si:R/l,Ci:A,yi:m}}}}class O{constructor(t){this.Ai={Bi:0,Z:"#000",Ri:0,Ti:0},this.zi={ri:"",It:!1,pi:!0,Pi:!1,Ht:"",R:"#FFF",Mi:!1,ki:!1},this.Li={ri:"",It:!1,pi:!1,Pi:!0,Ht:"",R:"#FFF",Mi:!0,ki:!0},this.xt=!0,this.Oi=new(t||L)(this.zi,this.Ai),this.Ni=new(t||L)(this.Li,this.Ai)}ri(){return this.Fi(),this.zi.ri}Bi(){return this.Fi(),this.Ai.Bi}Pt(){this.xt=!0}$t(t,i=!1){return Math.max(this.Oi.$t(t,i),this.Ni.$t(t,i))}Wi(){return this.Ai.Vi??null}Hi(){return this.Ai.Vi??this.Ai.Ei??this.Bi()}Ui(t){this.Ai.Ei=t??void 0}$i(){return this.Fi(),this.zi.It||this.Li.It}ji(){return this.Fi(),this.zi.It}Tt(t){return this.Fi(),this.zi.pi=this.zi.pi&&t.N().ticksVisible,this.Li.pi=this.Li.pi&&t.N().ticksVisible,this.Oi.ht(this.zi,this.Ai),this.Ni.ht(this.Li,this.Ai),this.Oi}qi(){return this.Fi(),this.Oi.ht(this.zi,this.Ai),this.Ni.ht(this.Li,this.Ai),this.Ni}Fi(){this.xt&&(this.zi.pi=!0,this.Li.pi=!1,this.Yi(this.zi,this.Li,this.Ai))}}class N extends O{constructor(t,i,n){super(),this.Jt=t,this.Ki=i,this.Gi=n}Yi(t,i,n){if(t.It=!1,2===this.Jt.N().mode)return;const s=this.Jt.N().horzLine;if(!s.labelVisible)return;const e=this.Ki.zt();if(!this.Jt.It()||this.Ki.Zi()||null===e)return;const r=this.Ki.Xi().G(s.labelBackgroundColor);n.Z=r.Z,t.R=r.X;const h=2/12*this.Ki.P();n.Ti=h,n.Ri=h;const a=this.Gi(this.Ki);n.Bi=a.Bi,t.ri=this.Ki.Ji(a.gt,e),t.It=!0}}const F=/[1-9]/g;class W{constructor(){this.qt=null}ht(t){this.qt=t}st(t,i){if(null===this.qt||!1===this.qt.It||0===this.qt.ri.length)return;const n=t.useMediaCoordinateSpace((({context:t})=>(t.font=i.k,Math.round(i.Qi.Ii(t,a(this.qt).ri,F)))));if(n<=0)return;const s=i.tn,e=n+2*s,r=e/2,h=this.qt.nn;let l=this.qt.Bi,o=Math.floor(l-r)+.5;o<0?(l+=Math.abs(0-o),o=Math.floor(l-r)+.5):o+e>h&&(l-=Math.abs(h-(o+e)),o=Math.floor(l-r)+.5);const _=o+e,u=Math.ceil(0+i.S+i.C+i.A+i.P+i.I);t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:n,verticalPixelRatio:s})=>{const e=a(this.qt);t.fillStyle=e.Z;const r=Math.round(o*n),h=Math.round(0*s),l=Math.round(_*n),c=Math.round(u*s),d=Math.round(2*n);if(t.beginPath(),t.moveTo(r,h),t.lineTo(r,c-d),t.arcTo(r,c,r+d,c,d),t.lineTo(l-d,c),t.arcTo(l,c,l,c-d,d),t.lineTo(l,h),t.fill(),e.pi){const r=Math.round(e.Bi*n),a=h,l=Math.round((a+i.C)*s);t.fillStyle=e.R;const o=Math.max(1,Math.floor(n)),_=Math.floor(.5*n);t.fillRect(r-_,a,o,l-a)}})),t.useMediaCoordinateSpace((({context:t})=>{const n=a(this.qt),e=0+i.S+i.C+i.A+i.P/2;t.font=i.k,t.textAlign="left",t.textBaseline="middle",t.fillStyle=n.R;const r=i.Qi.Di(t,"Apr0");t.translate(o+s,e+r),t.fillText(n.ri,0,0)}))}}class H{constructor(t,i,n){this.xt=!0,this.Xt=new W,this.Zt={It:!1,Z:"#4c525e",R:"white",ri:"",nn:0,Bi:NaN,pi:!0},this.Ct=t,this.sn=i,this.Gi=n}Pt(){this.xt=!0}Tt(){return this.xt&&(this.Rt(),this.xt=!1),this.Xt.ht(this.Zt),this.Xt}Rt(){const t=this.Zt;if(t.It=!1,2===this.Ct.N().mode)return;const i=this.Ct.N().vertLine;if(!i.labelVisible)return;const n=this.sn.Bt();if(n.Zi())return;t.nn=n.nn();const s=this.Gi();if(null===s)return;t.Bi=s.Bi;const e=n.en(this.Ct.Et());t.ri=n.rn(a(e)),t.It=!0;const r=this.sn.Xi().G(i.labelBackgroundColor);t.Z=r.Z,t.R=r.X,t.pi=n.N().ticksVisible}}class U{constructor(){this.hn=null,this.an=0}ln(){return this.an}_n(t){this.an=t}Ft(){return this.hn}un(t){this.hn=t}cn(t){return[]}dn(){return[]}It(){return!0}}var $;!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet",t[t.Hidden=2]="Hidden",t[t.MagnetOHLC=3]="MagnetOHLC"}($||($={}));class j extends U{constructor(t,i){super(),this.yt=null,this.fn=NaN,this.pn=0,this.vn=!1,this.mn=new Map,this.wn=!1,this.gn=new WeakMap,this.Mn=new WeakMap,this.bn=NaN,this.Sn=NaN,this.xn=NaN,this.Cn=NaN,this.sn=t,this.yn=i;this.Pn=((t,i)=>n=>{const s=i(),e=t();if(n===a(this.yt).kn())return{gt:e,Bi:s};{const t=a(n.zt());return{gt:n.Tn(s,t),Bi:s}}})((()=>this.fn),(()=>this.Sn));const n=((t,i)=>()=>{const n=this.sn.Bt().Rn(t()),s=i();return n&&Number.isFinite(s)?{wt:n,Bi:s}:null})((()=>this.pn),(()=>this.ni()));this.Dn=new H(this,t,n)}N(){return this.yn}In(t,i){this.xn=t,this.Cn=i}Vn(){this.xn=NaN,this.Cn=NaN}En(){return this.xn}Bn(){return this.Cn}An(t,i,n){this.wn||(this.wn=!0),this.vn=!0,this.zn(t,i,n)}Et(){return this.pn}ni(){return this.bn}si(){return this.Sn}It(){return this.vn}Ln(){this.vn=!1,this.On(),this.fn=NaN,this.bn=NaN,this.Sn=NaN,this.yt=null,this.Vn(),this.Nn()}Fn(t){if(!this.yn.doNotSnapToHiddenSeriesIndices)return t;const i=this.sn,n=i.Bt();let s=null,e=null;for(const n of i.Wn()){const i=n.Un().Hn(t,-1);if(i){if(i.$n===t)return t;(null===s||i.$n>s)&&(s=i.$n)}const r=n.Un().Hn(t,1);if(r){if(r.$n===t)return t;(null===e||r.$n<e)&&(e=r.$n)}}const r=[s,e].filter(v);if(0===r.length)return t;const h=n.jt(t),a=r.map((t=>Math.abs(h-n.jt(t))));return r[a.indexOf(Math.min(...a))]}jn(t){let i=this.gn.get(t);i||(i=new I(this,t),this.gn.set(t,i));let n=this.Mn.get(t);return n||(n=new R(this.sn,this,t),this.Mn.set(t,n)),[i,n]}ti(t){return t===this.yt&&this.yn.horzLine.visible}ii(){return this.yn.vertLine.visible}qn(t,i){this.vn&&this.yt===t||this.mn.clear();const n=[];return this.yt===t&&n.push(this.Yn(this.mn,i,this.Pn)),n}dn(){return this.vn?[this.Dn]:[]}Kn(){return this.yt}Nn(){this.sn.Gn().forEach((t=>{this.gn.get(t)?.Pt(),this.Mn.get(t)?.Pt()})),this.mn.forEach((t=>t.Pt())),this.Dn.Pt()}Zn(t){return t&&!t.kn().Zi()?t.kn():null}zn(t,i,n){this.Xn(t,i,n)&&this.Nn()}Xn(t,i,n){const s=this.bn,e=this.Sn,r=this.fn,h=this.pn,a=this.yt,l=this.Zn(n);this.pn=t,this.bn=isNaN(t)?NaN:this.sn.Bt().jt(t),this.yt=n;const o=null!==l?l.zt():null;return null!==l&&null!==o?(this.fn=i,this.Sn=l.Nt(i,o)):(this.fn=NaN,this.Sn=NaN),s!==this.bn||e!==this.Sn||h!==this.pn||r!==this.fn||a!==this.yt}On(){const t=this.sn.Jn().map((t=>t.Un().Qn())).filter(v),i=0===t.length?null:Math.max(...t);this.pn=null!==i?i:NaN}Yn(t,i,n){let s=t.get(i);return void 0===s&&(s=new N(this,i,n),t.set(i,s)),s}}function q(t){return"left"===t||"right"===t}class Y{constructor(t){this.ts=new Map,this.ns=[],this.ss=t}es(t,i){const n=function(t,i){return void 0===t?i:{rs:Math.max(t.rs,i.rs),hs:t.hs||i.hs}}(this.ts.get(t),i);this.ts.set(t,n)}ls(){return this.ss}_s(t){const i=this.ts.get(t);return void 0===i?{rs:this.ss}:{rs:Math.max(this.ss,i.rs),hs:i.hs}}us(){this.cs(),this.ns=[{ds:0}]}fs(t){this.cs(),this.ns=[{ds:1,Wt:t}]}ps(t){this.vs(),this.ns.push({ds:5,Wt:t})}cs(){this.vs(),this.ns.push({ds:6})}ws(){this.cs(),this.ns=[{ds:4}]}gs(t){this.cs(),this.ns.push({ds:2,Wt:t})}Ms(t){this.cs(),this.ns.push({ds:3,Wt:t})}bs(){return this.ns}Ss(t){for(const i of t.ns)this.xs(i);this.ss=Math.max(this.ss,t.ss),t.ts.forEach(((t,i)=>{this.es(i,t)}))}static Cs(){return new Y(2)}static ys(){return new Y(3)}xs(t){switch(t.ds){case 0:this.us();break;case 1:this.fs(t.Wt);break;case 2:this.gs(t.Wt);break;case 3:this.Ms(t.Wt);break;case 4:this.ws();break;case 5:this.ps(t.Wt);break;case 6:this.vs()}}vs(){const t=this.ns.findIndex((t=>5===t.ds));-1!==t&&this.ns.splice(t,1)}}class K{formatTickmarks(t){return t.map((t=>this.format(t)))}}const G=".";function Z(t,i){if(!u(t))return"n/a";if(!c(i))throw new TypeError("invalid length");if(i<0||i>16)throw new TypeError("invalid length");if(0===i)return t.toString();return("0000000000000000"+t.toString()).slice(-i)}class X extends K{constructor(t,i){if(super(),i||(i=1),u(t)&&c(t)||(t=100),t<0)throw new TypeError("invalid base");this.Ki=t,this.Ps=i,this.ks()}format(t){const i=t<0?"−":"";return t=Math.abs(t),i+this.Ts(t)}ks(){if(this.Rs=0,this.Ki>0&&this.Ps>0){let t=this.Ki;for(;t>1;)t/=10,this.Rs++}}Ts(t){const i=this.Ki/this.Ps;let n=Math.floor(t),s="";const e=void 0!==this.Rs?this.Rs:NaN;if(i>1){let r=+(Math.round(t*i)-n*i).toFixed(this.Rs);r>=i&&(r-=i,n+=1),s=G+Z(+r.toFixed(this.Rs)*this.Ps,e)}else n=Math.round(n*i)/i,e>0&&(s=G+Z(0,e));return n.toFixed(0)+s}}class J extends X{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class Q extends K{constructor(t){super(),this.Ds=t}format(t){let i="";return t<0&&(i="-",t=-t),t<995?i+this.Is(t):t<999995?i+this.Is(t/1e3)+"K":t<999999995?(t=1e3*Math.round(t/1e3),i+this.Is(t/1e6)+"M"):(t=1e6*Math.round(t/1e6),i+this.Is(t/1e9)+"B")}Is(t){let i;const n=Math.pow(10,this.Ds);return i=(t=Math.round(t*n)/n)>=1e-15&&t<1?t.toFixed(this.Ds).replace(/\.?0+$/,""):String(t),i.replace(/(\.[1-9]*)0+$/,((t,i)=>i))}}const tt=/[2-9]/g;class it{constructor(t=50){this.Vs=0,this.Es=1,this.Bs=1,this.As={},this.zs=new Map,this.Ls=t}Os(){this.Vs=0,this.zs.clear(),this.Es=1,this.Bs=1,this.As={}}Ii(t,i,n){return this.Ns(t,i,n).width}Di(t,i,n){const s=this.Ns(t,i,n);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}Ns(t,i,n){const s=n||tt,e=String(i).replace(s,"0");if(this.zs.has(e))return h(this.zs.get(e)).Fs;if(this.Vs===this.Ls){const t=this.As[this.Bs];delete this.As[this.Bs],this.zs.delete(t),this.Bs++,this.Vs--}t.save(),t.textBaseline="middle";const r=t.measureText(e);return t.restore(),0===r.width&&i.length||(this.zs.set(e,{Fs:r,Ws:this.Es}),this.As[this.Es]=e,this.Vs++,this.Es++),r}}class nt{constructor(t){this.Hs=null,this.M=null,this.Us="right",this.$s=t}js(t,i,n){this.Hs=t,this.M=i,this.Us=n}st(t){null!==this.M&&null!==this.Hs&&this.Hs.st(t,this.M,this.$s,this.Us)}}class st{constructor(t,i,n){this.qs=t,this.$s=new it(50),this.Ys=i,this.O=n,this.F=-1,this.Xt=new nt(this.$s)}Tt(){const t=this.O.Ks(this.Ys);if(null===t)return null;const i=t.Gs(this.Ys)?t.Zs():this.Ys.Ft();if(null===i)return null;const n=t.Xs(i);if("overlay"===n)return null;const s=this.O.Js();return s.P!==this.F&&(this.F=s.P,this.$s.Os()),this.Xt.js(this.qs.qi(),s,n),this.Xt}}class et extends y{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}Qs(t,i){if(!this.qt?.It)return null;const{ut:n,ct:s,te:e}=this.qt;return i>=n-s-7&&i<=n+s+7?{ie:this.qt,ne:Math.abs(i-n),se:2,ee:"price-line",te:e}:null}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:r}){if(null===this.qt)return;if(!1===this.qt.It)return;const h=Math.round(this.qt.ut*r);h<0||h>i.height||(t.lineCap="butt",t.strokeStyle=this.qt.R,t.lineWidth=Math.floor(this.qt.ct*n),s(t,this.qt.Gt),e(t,h,0,i.width))}}class rt{constructor(t){this.re={ut:0,R:"rgba(0, 0, 0, 0)",ct:1,Gt:0,It:!1},this.he=new et,this.xt=!0,this.ae=t,this.le=t.Qt(),this.he.ht(this.re)}Pt(){this.xt=!0}Tt(){return this.ae.It()?(this.xt&&(this.oe(),this.xt=!1),this.he):null}}class ht extends rt{constructor(t){super(t)}oe(){this.re.It=!1;const t=this.ae.Ft(),i=t._e()._e;if(2!==i&&3!==i)return;const n=this.ae.N();if(!n.baseLineVisible||!this.ae.It())return;const s=this.ae.zt();null!==s&&(this.re.It=!0,this.re.ut=t.Nt(s.Wt,s.Wt),this.re.R=n.baseLineColor,this.re.ct=n.baseLineWidth,this.re.Gt=n.baseLineStyle)}}class at extends y{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}ue(){return this.qt}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){const s=this.qt;if(null===s)return;const e=Math.max(1,Math.floor(i)),r=e%2/2,h=Math.round(s.ce.x*i)+r,a=s.ce.y*n;t.fillStyle=s.de,t.beginPath();const l=Math.max(2,1.5*s.fe)*i;t.arc(h,a,l,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.pe,t.beginPath(),t.arc(h,a,s.ft*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=e,t.strokeStyle=s.ve,t.beginPath(),t.arc(h,a,s.ft*i+e/2,0,2*Math.PI,!1),t.stroke()}}const lt=[{me:0,we:.25,ge:4,Me:10,be:.25,Se:0,xe:.4,Ce:.8},{me:.25,we:.525,ge:10,Me:14,be:0,Se:0,xe:.8,Ce:0},{me:.525,we:1,ge:14,Me:14,be:0,Se:0,xe:0,Ce:0}];class ot{constructor(t){this.Xt=new at,this.xt=!0,this.ye=!0,this.Pe=performance.now(),this.ke=this.Pe-1,this.Te=t}Re(){this.ke=this.Pe-1,this.Pt()}De(){if(this.Pt(),2===this.Te.N().lastPriceAnimation){const t=performance.now(),i=this.ke-t;if(i>0)return void(i<650&&(this.ke+=2600));this.Pe=t,this.ke=t+2600}}Pt(){this.xt=!0}Ie(){this.ye=!0}It(){return 0!==this.Te.N().lastPriceAnimation}Ve(){switch(this.Te.N().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.ke}}Tt(){return this.xt?(this.Rt(),this.xt=!1,this.ye=!1):this.ye&&(this.Ee(),this.ye=!1),this.Xt}Rt(){this.Xt.ht(null);const t=this.Te.Qt().Bt(),i=t.Be(),n=this.Te.zt();if(null===i||null===n)return;const s=this.Te.Ae(!0);if(s.ze||!i.Le(s.$n))return;const e={x:t.jt(s.$n),y:this.Te.Ft().Nt(s.gt,n.Wt)},r=s.R,h=this.Te.N().lineWidth,a=this.Oe(this.Ne(),r);this.Xt.ht({de:r,fe:h,pe:a.pe,ve:a.ve,ft:a.ft,ce:e})}Ee(){const t=this.Xt.ue();if(null!==t){const i=this.Oe(this.Ne(),t.de);t.pe=i.pe,t.ve=i.ve,t.ft=i.ft}}Ne(){return this.Ve()?performance.now()-this.Pe:2599}Fe(t,i,n,s){const e=n+(s-n)*i;return this.Te.Qt().Xi().Y(t,e)}Oe(t,i){const n=t%2600/2600;let s;for(const t of lt)if(n>=t.me&&n<=t.we){s=t;break}r(void 0!==s,"Last price animation internal logic error");const e=(n-s.me)/(s.we-s.me);return{pe:this.Fe(i,e,s.be,s.Se),ve:this.Fe(i,e,s.xe,s.Ce),ft:(h=e,a=s.ge,l=s.Me,a+(l-a)*h)};var h,a,l}}class _t extends rt{constructor(t){super(t)}oe(){const t=this.re;t.It=!1;const i=this.ae.N();if(!i.priceLineVisible||!this.ae.It())return;const n=this.ae.Ae(0===i.priceLineSource);n.ze||(t.It=!0,t.ut=n.Bi,t.R=this.ae.We(n.R),t.ct=i.priceLineWidth,t.Gt=i.priceLineStyle)}}class ut extends O{constructor(t){super(),this.Jt=t}Yi(t,i,n){t.It=!1,i.It=!1;const s=this.Jt;if(!s.It())return;const e=s.N(),r=e.lastValueVisible,h=""!==s.He(),a=0===e.seriesLastValueMode,l=s.Ae(!1);if(l.ze)return;r&&(t.ri=this.Ue(l,r,a),t.It=0!==t.ri.length),(h||a)&&(i.ri=this.$e(l,r,h,a),i.It=i.ri.length>0);const o=s.We(l.R),_=this.Jt.Qt().Xi().G(o);n.Z=_.Z,n.Bi=l.Bi,i.Ht=s.Qt().Ut(l.Bi/s.Ft().$t()),t.Ht=o,t.R=_.X,i.R=_.X}$e(t,i,n,s){let e="";const r=this.Jt.He();return n&&0!==r.length&&(e+=`${r} `),i&&s&&(e+=this.Jt.Ft().je()?t.qe:t.Ye),e.trim()}Ue(t,i,n){return i?n?this.Jt.Ft().je()?t.Ye:t.qe:t.ri:""}}function ct(t,i,n,s){const e=Number.isFinite(i),r=Number.isFinite(n);return e&&r?t(i,n):e||r?e?i:n:s}class dt{constructor(t,i){this.Ke=t,this.Ge=i}Ze(t){return null!==t&&(this.Ke===t.Ke&&this.Ge===t.Ge)}Xe(){return new dt(this.Ke,this.Ge)}Je(){return this.Ke}Qe(){return this.Ge}tr(){return this.Ge-this.Ke}Zi(){return this.Ge===this.Ke||Number.isNaN(this.Ge)||Number.isNaN(this.Ke)}Ss(t){return null===t?this:new dt(ct(Math.min,this.Je(),t.Je(),-1/0),ct(Math.max,this.Qe(),t.Qe(),1/0))}ir(t){if(!u(t))return;if(0===this.Ge-this.Ke)return;const i=.5*(this.Ge+this.Ke);let n=this.Ge-i,s=this.Ke-i;n*=t,s*=t,this.Ge=i+n,this.Ke=i+s}nr(t){u(t)&&(this.Ge+=t,this.Ke+=t)}sr(){return{minValue:this.Ke,maxValue:this.Ge}}static er(t){return null===t?null:new dt(t.minValue,t.maxValue)}}class ft{constructor(t,i){this.rr=t,this.hr=i||null}ar(){return this.rr}lr(){return this.hr}sr(){return{priceRange:null===this.rr?null:this.rr.sr(),margins:this.hr||void 0}}static er(t){return null===t?null:new ft(dt.er(t.priceRange),t.margins)}}const pt=[2,4,8,16,32,64,128,256,512],vt="Custom series with conflation reducer must have a priceValueBuilder method";class mt extends rt{constructor(t,i){super(t),this._r=i}oe(){const t=this.re;t.It=!1;const i=this._r.N();if(!this.ae.It()||!i.lineVisible)return;const n=this._r.ur();null!==n&&(t.It=!0,t.ut=n,t.R=i.color,t.ct=i.lineWidth,t.Gt=i.lineStyle,t.te=this._r.N().id)}}class wt extends O{constructor(t,i){super(),this.Te=t,this._r=i}Yi(t,i,n){t.It=!1,i.It=!1;const s=this._r.N(),e=s.axisLabelVisible,r=""!==s.title,h=this.Te;if(!e||!h.It())return;const a=this._r.ur();if(null===a)return;r&&(i.ri=s.title,i.It=!0),i.Ht=h.Qt().Ut(a/h.Ft().$t()),t.ri=this.cr(s.price),t.It=!0;const l=this.Te.Qt().Xi().G(s.axisLabelColor||s.color);n.Z=l.Z;const o=s.axisLabelTextColor||l.X;t.R=o,i.R=o,n.Bi=a}cr(t){const i=this.Te.zt();return null===i?"":this.Te.Ft().Ji(t,i.Wt)}}class gt{constructor(t,i){this.Te=t,this.yn=i,this.dr=new mt(t,this),this.qs=new wt(t,this),this.pr=new st(this.qs,t,t.Qt())}vr(t){_(this.yn,t),this.Pt(),this.Te.Qt().mr()}N(){return this.yn}wr(){return this.dr}gr(){return this.pr}Mr(){return this.qs}Pt(){this.dr.Pt(),this.qs.Pt()}ur(){const t=this.Te,i=t.Ft();if(t.Qt().Bt().Zi()||i.Zi())return null;const n=t.zt();return null===n?null:i.Nt(this.yn.price,n.Wt)}}class Mt{constructor(){this.br=new WeakMap}Sr(t,i,n){const s=1/i*n;if(t>=s)return 1;const e=s/t,r=Math.pow(2,Math.floor(Math.log2(e)));return Math.min(r,512)}Cr(t,i,n,s=!1,e){if(0===t.length||i<=1)return t;const r=this.yr(i);if(r<=1)return t;const h=this.Pr(t);let a=h.kr.get(r);return void 0!==a||(a=this.Tr(t,r,n,s,e,h.kr),h.kr.set(r,a)),a}Rr(t,i,n,s,e=!1,r){if(n<1||0===t.length)return t;const h=this.Pr(t),a=h.kr.get(n);if(!a)return this.Cr(t,n,s,e,r);const l=this.Dr(t,i,n,a,e,s,r);return h.kr.set(n,l),l}yr(t){if(t<=2)return 2;for(const i of pt)if(t<=i)return i;return 512}Ir(t){if(0===t.length)return 0;const i=t[0],n=t[t.length-1];return 31*t.length+17*i.$n+13*n.$n}Tr(t,i,n,s=!1,e,r=new Map){if(2===i)return this.Vr(t,2,n,s,e);const h=i/2;let a=r.get(h);return a||(a=this.Tr(t,h,n,s,e,r),r.set(h,a)),this.Er(a,n,s,e)}Vr(t,i,n,s=!1,e){const r=this.Br(t,i,n,s,e);return this.Ar(r,s)}Er(t,i,n=!1,s){const e=this.Br(t,2,i,n,s);return this.Ar(e,n)}Br(t,i,n,s=!1,e){const r=[];for(let h=0;h<t.length;h+=i){if(t.length-h>=i){const i=this.zr(t[h],t[h+1],n,s,e);i.Lr=!1,r.push(i)}else if(0===r.length)r.push(this.Or(t[h],!0));else{const i=r[r.length-1];r[r.length-1]=this.Nr(i,t[h],n,s,e)}}return r}Fr(t,i){return(t??1)+(i??1)}zr(t,i,n,s=!1,e){if(!s||!n||!e){const n=t.Wt[1]>i.Wt[1]?t.Wt[1]:i.Wt[1],s=t.Wt[2]<i.Wt[2]?t.Wt[2]:i.Wt[2];return{Wr:t.$n,Hr:i.$n,Ur:t.wt,$r:i.wt,jr:t.Wt[0],qr:n,Yr:s,Kr:i.Wt[3],Gr:this.Fr(t.Gr,i.Gr),Zr:void 0,Lr:!1}}const r=n(this.Xr(t,e),this.Xr(i,e)),h=e(r),a=h.length?h[h.length-1]:0;return{Wr:t.$n,Hr:i.$n,Ur:t.wt,$r:i.wt,jr:t.Wt[0],qr:Math.max(t.Wt[1],a),Yr:Math.min(t.Wt[2],a),Kr:a,Gr:this.Fr(t.Gr,i.Gr),Zr:r,Lr:!1}}Nr(t,i,n,s=!1,e){if(!s||!n||!e)return{Wr:t.Wr,Hr:i.$n,Ur:t.Ur,$r:i.wt,jr:t.jr,qr:t.qr>i.Wt[1]?t.qr:i.Wt[1],Yr:t.Yr<i.Wt[2]?t.Yr:i.Wt[2],Kr:i.Wt[3],Gr:t.Gr+(i.Gr??1),Zr:t.Zr,Lr:!1};const r=t.Zr,h=this.Xr(i,e),a=r?{data:r,index:t.Wr,originalTime:t.Ur,time:t.Ur,priceValues:e(r)}:null,l=a?n(a,h):h.data,o=a?e(l):h.priceValues,_=o.length?o[o.length-1]:0;return{Wr:t.Wr,Hr:i.$n,Ur:t.Ur,$r:i.wt,jr:t.jr,qr:Math.max(t.qr,_),Yr:Math.min(t.Yr,_),Kr:_,Gr:t.Gr+(i.Gr??1),Zr:l,Lr:!1}}Jr(t,i,n,s,e,r,h=!1,a){const l=i===s?e:t[i];if(n-i==1)return this.Or(l,!0);const o=i+1===s?e:t[i+1];let _=this.zr(l,o,r,h,a);for(let l=i+2;l<n;l++){const i=l===s?e:t[l];_=this.Nr(_,i,r,h,a)}return _}Xr(t,i){const n=t.ue??{};return{data:t.ue,index:t.$n,originalTime:t.Qr,time:t.wt,priceValues:i(n)}}th(t,i=!1){const n=!0===i,s=!!t.Zr;return{...{$n:t.Wr,wt:t.Ur,Qr:t.Ur,Wt:[n?t.Kr:t.jr,t.qr,t.Yr,t.Kr],Gr:t.Gr},ue:n?s?t.Zr:{wt:t.Ur}:void 0}}Ar(t,i=!1){return t.map((t=>this.th(t,i)))}Dr(t,i,n,s,e=!1,r,h){if(0===s.length)return s;const a=t.length-1,l=Math.floor(a/n)*n;if(Math.min(l+n,t.length)-l<n&&t.length>n){const s=t.slice();return s[s.length-1]=i,this.Cr(s,n,r,e,h)}if(Math.floor((a-1)/n)===Math.floor(a/n)||1===s.length){const o=Math.min(l+n,t.length),_=o-l;if(_<=0)return s;const u=1===_?this.Or(l===a?i:t[l],!0):this.Jr(t,l,o,a,i,r,e,h);return s[s.length-1]=this.th(u,e),s}{const s=t.slice();return s[s.length-1]=i,this.Cr(s,n,r,e,h)}}Or(t,i=!1){return{Wr:t.$n,Hr:t.$n,Ur:t.wt,$r:t.wt,jr:t.Wt[0],qr:t.Wt[1],Yr:t.Wt[2],Kr:t.Wt[3],Gr:t.Gr??1,Zr:t.ue,Lr:i}}Pr(t){const i=this.ih(t),n=this.Ir(t);return i.nh!==n&&(i.kr.clear(),i.nh=n),i}ih(t){let i=this.br.get(t);return void 0===i&&(i={nh:this.Ir(t),kr:new Map},this.br.set(t,i)),i}}class bt extends U{constructor(t){super(),this.sn=t}Qt(){return this.sn}}const St={Bar:(t,i,n,s)=>{const e=i.upColor,r=i.downColor,h=a(t(n,s)),o=l(h.Wt[0])<=l(h.Wt[3]);return{sh:h.R??(o?e:r)}},Candlestick:(t,i,n,s)=>{const e=i.upColor,r=i.downColor,h=i.borderUpColor,o=i.borderDownColor,_=i.wickUpColor,u=i.wickDownColor,c=a(t(n,s)),d=l(c.Wt[0])<=l(c.Wt[3]);return{sh:c.R??(d?e:r),eh:c.Ht??(d?h:o),rh:c.hh??(d?_:u)}},Custom:(t,i,n,s)=>({sh:a(t(n,s)).R??i.color}),Area:(t,i,n,s)=>{const e=a(t(n,s));return{sh:e.vt??i.lineColor,vt:e.vt??i.lineColor,ah:e.ah??i.topColor,oh:e.oh??i.bottomColor}},Baseline:(t,i,n,s)=>{const e=a(t(n,s));return{sh:e.Wt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,_h:e._h??i.topLineColor,uh:e.uh??i.bottomLineColor,dh:e.dh??i.topFillColor1,fh:e.fh??i.topFillColor2,ph:e.ph??i.bottomFillColor1,mh:e.mh??i.bottomFillColor2}},Line:(t,i,n,s)=>{const e=a(t(n,s));return{sh:e.R??i.color,vt:e.R??i.color}},Histogram:(t,i,n,s)=>({sh:a(t(n,s)).R??i.color})};class xt{constructor(t){this.wh=(t,i)=>void 0!==i?i.Wt:this.Te.Un().gh(t),this.Te=t,this.Mh=St[t.bh()]}Sh(t,i){return this.Mh(this.wh,this.Te.N(),t,i)}}function Ct(t,i,n,s,e=0,r=i.length){let h=r-e;for(;0<h;){const r=h>>1,a=e+r;s(i[a],n)===t?(e=a+1,h-=r+1):h=r}return e}const yt=Ct.bind(null,!0),Pt=Ct.bind(null,!1);var kt;!function(t){t[t.NearestLeft=-1]="NearestLeft",t[t.None=0]="None",t[t.NearestRight=1]="NearestRight"}(kt||(kt={}));const Tt=30;class Rt{constructor(){this.xh=[],this.Ch=new Map,this.yh=new Map,this.Ph=[]}kh(){return this.Th()>0?this.xh[this.xh.length-1]:null}Rh(){return this.Th()>0?this.Dh(0):null}Qn(){return this.Th()>0?this.Dh(this.xh.length-1):null}Th(){return this.xh.length}Zi(){return 0===this.Th()}Le(t){return null!==this.Ih(t,0)}gh(t){return this.Hn(t)}Hn(t,i=0){const n=this.Ih(t,i);return null===n?null:{...this.Vh(n),$n:this.Dh(n)}}Eh(){return this.xh}Bh(t,i,n){if(this.Zi())return null;let s=null;for(const e of n){s=Dt(s,this.Ah(t,i,e))}return s}ht(t){this.yh.clear(),this.Ch.clear(),this.xh=t,this.Ph=t.map((t=>t.$n))}zh(){return this.Ph}Dh(t){return this.xh[t].$n}Vh(t){return this.xh[t]}Ih(t,i){const n=this.Lh(t);if(null===n&&0!==i)switch(i){case-1:return this.Oh(t);case 1:return this.Nh(t);default:throw new TypeError("Unknown search mode")}return n}Oh(t){let i=this.Fh(t);return i>0&&(i-=1),i!==this.xh.length&&this.Dh(i)<t?i:null}Nh(t){const i=this.Wh(t);return i!==this.xh.length&&t<this.Dh(i)?i:null}Lh(t){const i=this.Fh(t);return i===this.xh.length||t<this.xh[i].$n?null:i}Fh(t){return yt(this.xh,t,((t,i)=>t.$n<i))}Wh(t){return Pt(this.xh,t,((t,i)=>t.$n>i))}Hh(t,i,n){let s=null;for(let e=t;e<i;e++){const t=this.xh[e].Wt[n];Number.isNaN(t)||(null===s?s={Uh:t,$h:t}:(t<s.Uh&&(s.Uh=t),t>s.$h&&(s.$h=t)))}return s}Ah(t,i,n){if(this.Zi())return null;let s=null;const e=a(this.Rh()),r=a(this.Qn()),h=Math.max(t,e),l=Math.min(i,r),o=Math.ceil(h/Tt)*Tt,_=Math.max(o,Math.floor(l/Tt)*Tt);{const t=this.Fh(h),e=this.Wh(Math.min(l,o,i));s=Dt(s,this.Hh(t,e,n))}let u=this.Ch.get(n);void 0===u&&(u=new Map,this.Ch.set(n,u));for(let t=Math.max(o+1,h);t<_;t+=Tt){const i=Math.floor(t/Tt);let e=u.get(i);if(void 0===e){const t=this.Fh(i*Tt),s=this.Wh((i+1)*Tt-1);e=this.Hh(t,s,n),u.set(i,e)}s=Dt(s,e)}{const t=this.Fh(_),i=this.Wh(l);s=Dt(s,this.Hh(t,i,n))}return s}}function Dt(t,i){if(null===t)return i;if(null===i)return t;return{Uh:Math.min(t.Uh,i.Uh),$h:Math.max(t.$h,i.$h)}}function It(){return new Rt}const Vt={setLineStyle:s};class Et{constructor(t){this.jh=t}st(t,i,n){this.jh.draw(t,Vt)}qh(t,i,n){this.jh.drawBackground?.(t,Vt)}}class Bt{constructor(t){this.zs=null,this.Yh=t}Tt(){const t=this.Yh.renderer();if(null===t)return null;if(this.zs?.Kh===t)return this.zs.Gh;const i=new Et(t);return this.zs={Kh:t,Gh:i},i}Zh(){return this.Yh.zOrder?.()??"normal"}}class At{constructor(t){this.Xh=null,this.Jh=t}Qh(){return this.Jh}Nn(){this.Jh.updateAllViews?.()}jn(){const t=this.Jh.paneViews?.()??[];if(this.Xh?.Kh===t)return this.Xh.Gh;const i=t.map((t=>new Bt(t)));return this.Xh={Kh:t,Gh:i},i}Qs(t,i){return this.Jh.hitTest?.(t,i)??null}}let zt=class extends At{cn(){return[]}};class Lt{constructor(t){this.jh=t}st(t,i,n){this.jh.draw(t,Vt)}qh(t,i,n){this.jh.drawBackground?.(t,Vt)}}class Ot{constructor(t){this.zs=null,this.Yh=t}Tt(){const t=this.Yh.renderer();if(null===t)return null;if(this.zs?.Kh===t)return this.zs.Gh;const i=new Lt(t);return this.zs={Kh:t,Gh:i},i}Zh(){return this.Yh.zOrder?.()??"normal"}}function Nt(t){return{ri:t.text(),Bi:t.coordinate(),Vi:t.fixedCoordinate?.(),R:t.textColor(),Z:t.backColor(),It:t.visible?.()??!0,pi:t.tickVisible?.()??!0}}class Ft{constructor(t,i){this.Xt=new W,this.ta=t,this.ia=i}Tt(){return this.Xt.ht({nn:this.ia.nn(),...Nt(this.ta)}),this.Xt}}class Wt extends O{constructor(t,i){super(),this.ta=t,this.Ki=i}Yi(t,i,n){const s=Nt(this.ta);n.Z=s.Z,t.R=s.R;const e=2/12*this.Ki.P();n.Ti=e,n.Ri=e,n.Bi=s.Bi,n.Vi=s.Vi,t.ri=s.ri,t.It=s.It,t.pi=s.pi}}class Ht extends At{constructor(t,i){super(t),this.na=null,this.sa=null,this.ea=null,this.ra=null,this.Te=i}dn(){const t=this.Jh.timeAxisViews?.()??[];if(this.na?.Kh===t)return this.na.Gh;const i=this.Te.Qt().Bt(),n=t.map((t=>new Ft(t,i)));return this.na={Kh:t,Gh:n},n}qn(){const t=this.Jh.priceAxisViews?.()??[];if(this.sa?.Kh===t)return this.sa.Gh;const i=this.Te.Ft(),n=t.map((t=>new Wt(t,i)));return this.sa={Kh:t,Gh:n},n}ha(){const t=this.Jh.priceAxisPaneViews?.()??[];if(this.ea?.Kh===t)return this.ea.Gh;const i=t.map((t=>new Ot(t)));return this.ea={Kh:t,Gh:i},i}aa(){const t=this.Jh.timeAxisPaneViews?.()??[];if(this.ra?.Kh===t)return this.ra.Gh;const i=t.map((t=>new Ot(t)));return this.ra={Kh:t,Gh:i},i}la(t,i){return this.Jh.autoscaleInfo?.(t,i)??null}}function Ut(t,i,n,s){t.forEach((t=>{i(t).forEach((t=>{t.Zh()===n&&s.push(t)}))}))}function $t(t){return t.jn()}function jt(t){return t.ha()}function qt(t){return t.aa()}const Yt=["Area","Line","Baseline"];class Kt extends bt{constructor(t,i,n,s,e){super(t),this.qt=It(),this.dr=new _t(this),this.oa=[],this._a=new ht(this),this.ua=null,this.ca=null,this.da=null,this.fa=[],this.pa=new Mt,this.va=new Map,this.ma=null,this.yn=n,this.wa=i;const r=new ut(this);if(this.mn=[r],this.pr=new st(r,this,t),Yt.includes(this.wa)&&(this.ua=new ot(this)),this.ga(),this.Yh=s(this,this.Qt(),e),"Custom"===this.wa){const t=this.Yh;t.Ma&&this.ba(t.Ma)}}m(){null!==this.da&&clearTimeout(this.da)}We(t){return this.yn.priceLineColor||t}Ae(t){const i={ze:!0},n=this.Ft();if(this.Qt().Bt().Zi()||n.Zi()||this.qt.Zi())return i;const s=this.Qt().Bt().Be(),e=this.zt();if(null===s||null===e)return i;let r,h;if(t){const t=this.qt.kh();if(null===t)return i;r=t,h=t.$n}else{const t=this.qt.Hn(s.bi(),-1);if(null===t)return i;if(r=this.qt.gh(t.$n),null===r)return i;h=t.$n}const a=r.Wt[3],l=this.Sa().Sh(h,{Wt:r}),o=n.Nt(a,e.Wt);return{ze:!1,gt:a,ri:n.Ji(a,e.Wt),qe:n.xa(a),Ye:n.Ca(a,e.Wt),R:l.sh,Bi:o,$n:h}}Sa(){return null!==this.ca||(this.ca=new xt(this)),this.ca}N(){return this.yn}vr(t){const i=this.Qt(),{priceScaleId:n,visible:s,priceFormat:e}=t;void 0!==n&&n!==this.yn.priceScaleId&&i.ya(this,n),void 0!==s&&s!==this.yn.visible&&i.Pa();const r=void 0!==t.conflationThresholdFactor;_(this.yn,t),Object.prototype.hasOwnProperty.call(t,"autoscaleInfoProvider")&&void 0===t.autoscaleInfoProvider&&(this.yn.autoscaleInfoProvider=void 0),r&&(this.va.clear(),this.Qt().mr()),void 0!==e&&(this.ga(),i.ka()),i.Ta(this),i.Ra(),this.Yh.Pt("options")}ht(t,i){this.qt.ht(t),this.va.clear();const n=this.Qt().Bt().N();n.enableConflation&&n.precomputeConflationOnInit&&this.Da(n.precomputeConflationPriority),this.Ia(),null!==this.ua&&(i&&i.Va?this.ua.De():0===t.length&&this.ua.Re());const s=this.Qt().Ks(this);this.Qt().Ea(s),this.Qt().Ta(this),this.Qt().Ra(),this.Qt().mr()}Ia(){this.Yh.Pt("data")}Ba(t){const i=new gt(this,t);return this.oa.push(i),this.Qt().Ta(this),i}Aa(t){const i=this.oa.indexOf(t);-1!==i&&this.oa.splice(i,1),this.Qt().Ta(this)}za(){return this.oa}bh(){return this.wa}zt(){const t=this.La();return null===t?null:{Wt:t.Wt[3],Oa:t.wt}}La(){const t=this.Qt().Bt().Be();if(null===t)return null;const i=t.Na();return this.qt.Hn(i,1)}Un(){return this.qt}ba(t){this.ma=t,this.va.clear()}Fa(){return!!this.Qt().Bt().N().enableConflation&&this.Wa()>1}Rr(t){if(!this.Fa())return;const i=this.Wa();if(!this.va.has(i))return;const n="Custom"===this.wa,s=n&&this.ma||void 0,e=n&&this.Yh.Ha?t=>{const i=t,n=this.Yh.Ha(i);return Array.isArray(n)?n:["number"==typeof n?n:0]}:void 0,r=this.pa.Rr(this.qt.Eh(),t,i,s,n,e),h=It();h.ht(r),this.va.set(i,h)}Ua(){const t=this.Qt().Bt().N().enableConflation;if("Custom"===this.wa&&null===this.ma)return this.qt;if(!t)return this.qt;const i=this.Wa(),n=this.va.get(i);if(n)return n;this.$a(i);return this.va.get(i)??this.qt}ja(t){const i=this.qt.gh(t);return null===i?null:"Bar"===this.wa||"Candlestick"===this.wa||"Custom"===this.wa?{jr:i.Wt[0],qr:i.Wt[1],Yr:i.Wt[2],Kr:i.Wt[3]}:i.Wt[3]}qa(t){const i=[];Ut(this.fa,$t,"top",i);const n=this.ua;return null!==n&&n.It()?(null===this.da&&n.Ve()&&(this.da=setTimeout((()=>{this.da=null,this.Qt().Ya()}),0)),n.Ie(),i.unshift(n),i):i}jn(){const t=[];this.Ka()||t.push(this._a),t.push(this.Yh,this.dr);const i=this.oa.map((t=>t.wr()));return t.push(...i),Ut(this.fa,$t,"normal",t),t}Ga(){const t=this.Yh.Ga?.()??null;if(null===t)return null;const i=[];this.Ka()||i.push(this._a),i.push(...t.Za),Ut(this.fa,$t,"normal",i);const n=[];n.push(...t.qa,this.dr);const s=this.oa.map((t=>t.wr()));return n.push(...s),{Za:i,qa:n}}Xa(){return this.Ja($t,"bottom")}Qa(t){return this.Ja(jt,t)}tl(t){return this.Ja(qt,t)}il(t,i){return this.fa.map((n=>n.Qs(t,i))).filter((t=>null!==t))}cn(){return[this.pr,...this.oa.map((t=>t.gr()))]}qn(t,i){if(i!==this.hn&&!this.Ka())return[];const n=[...this.mn];for(const t of this.oa)n.push(t.Mr());return this.fa.forEach((t=>{n.push(...t.qn())})),n}dn(){const t=[];return this.fa.forEach((i=>{t.push(...i.dn())})),t}la(t,i){if(void 0!==this.yn.autoscaleInfoProvider){const n=this.yn.autoscaleInfoProvider((()=>{const n=this.nl(t,i);return null===n?null:n.sr()}));return ft.er(n)}return this.nl(t,i)}Kh(){const t=this.yn.priceFormat;return t.base??1/t.minMove}sl(){return this.el}Nn(){this.Yh.Pt();for(const t of this.mn)t.Pt();for(const t of this.oa)t.Pt();this.dr.Pt(),this._a.Pt(),this.ua?.Pt(),this.fa.forEach((t=>t.Nn()))}Ft(){return a(super.Ft())}At(t){if(!(("Line"===this.wa||"Area"===this.wa||"Baseline"===this.wa)&&this.yn.crosshairMarkerVisible))return null;const i=this.qt.gh(t);if(null===i)return null;return{gt:i.Wt[3],ft:this.rl(),Ht:this.hl(),Ot:this.al(),Lt:this.ll(t)}}He(){return this.yn.title}It(){return this.yn.visible}ol(t){this.fa.push(new Ht(t,this))}_l(t){this.fa=this.fa.filter((i=>i.Qh()!==t))}ul(){if("Custom"===this.wa)return t=>this.Yh.Ha(t)}cl(){if("Custom"===this.wa)return t=>this.Yh.dl(t)}fl(){return this.qt.zh()}Ka(){return!q(this.Ft().pl())}nl(t,i){if(!c(t)||!c(i)||this.qt.Zi())return null;const n="Line"===this.wa||"Area"===this.wa||"Baseline"===this.wa||"Histogram"===this.wa?[3]:[2,1],s=this.qt.Bh(t,i,n);let e=null!==s?new dt(s.Uh,s.$h):null,r=null;if("Histogram"===this.bh()){const t=this.yn.base,i=new dt(t,t);e=null!==e?e.Ss(i):i}return this.fa.forEach((n=>{const s=n.la(t,i);if(s?.priceRange){const t=new dt(s.priceRange.minValue,s.priceRange.maxValue);e=null!==e?e.Ss(t):t}s?.margins&&(r=s.margins)})),new ft(e,r)}rl(){switch(this.wa){case"Line":case"Area":case"Baseline":return this.yn.crosshairMarkerRadius}return 0}hl(){switch(this.wa){case"Line":case"Area":case"Baseline":{const t=this.yn.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}al(){switch(this.wa){case"Line":case"Area":case"Baseline":return this.yn.crosshairMarkerBorderWidth}return 0}ll(t){switch(this.wa){case"Line":case"Area":case"Baseline":{const t=this.yn.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.Sa().Sh(t).sh}ga(){switch(this.yn.priceFormat.type){case"custom":{const t=this.yn.priceFormat.formatter;this.el={format:t,formatTickmarks:this.yn.priceFormat.tickmarksFormatter??(i=>i.map(t))};break}case"volume":this.el=new Q(this.yn.priceFormat.precision);break;case"percent":this.el=new J(this.yn.priceFormat.precision);break;default:{const t=Math.pow(10,this.yn.priceFormat.precision);this.el=new X(t,this.yn.priceFormat.minMove*t)}}null!==this.hn&&this.hn.vl()}Ja(t,i){const n=[];return Ut(this.fa,t,i,n),n}Wa(){const{ml:t,wl:i,gl:n}=this.Ml();return this.pa.Sr(t,i,n)}Ml(){const t=this.Qt().Bt(),i=t.ml(),n=window.devicePixelRatio||1,s=t.N().conflationThresholdFactor;return{ml:i,wl:n,gl:this.yn.conflationThresholdFactor??s??1}}bl(t){const i=this.qt.Eh();let n;if("Custom"===this.wa&&null!==this.ma){const s=this.ul();if(!s)throw new Error(vt);n=this.pa.Cr(i,t,this.ma,!0,(t=>s(t)))}else n=this.pa.Cr(i,t);const s=It();return s.ht(n),s}$a(t){const i=this.bl(t);this.va.set(t,i)}Da(t){if("Custom"===this.wa&&(null===this.ma||!this.ul()))return;this.va.clear();const i=this.Qt().Bt().Sl();for(const n of i){const i=()=>{this.xl(n)},s="object"==typeof window&&window||"object"==typeof self&&self;s?.yl?.Cl?s.yl.Cl((()=>{i()}),{se:t}):Promise.resolve().then((()=>i()))}}xl(t){if(this.va.has(t))return;if(0===this.qt.Eh().length)return;const i=this.bl(t);this.va.set(t,i)}}const Gt=[3],Zt=[0,1,2,3];class Xt{constructor(t){this.yn=t}Pl(t,i,n){let s=t;if(0===this.yn.mode)return s;const e=n.kn(),r=e.zt();if(null===r)return s;const h=e.Nt(t,r),a=n.kl().filter((t=>t instanceof Kt)).reduce(((t,s)=>{if(n.Gs(s)||!s.It())return t;const e=s.Ft(),r=s.Un();if(e.Zi()||!r.Le(i))return t;const h=r.gh(i);if(null===h)return t;const a=l(s.zt()),o=3===this.yn.mode?Zt:Gt;return t.concat(o.map((t=>e.Nt(h.Wt[t],a.Wt))))}),[]);if(0===a.length)return s;a.sort(((t,i)=>Math.abs(t-h)-Math.abs(i-h)));const o=a[0];return s=e.Tn(o,r),s}}function Jt(t,i,n){return Math.min(Math.max(t,i),n)}function Qt(t,i,n){return i-t<=n}function ti(t){const i=Math.ceil(t);return i%2==0?i-1:i}class ii extends y{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:e}){if(null===this.qt)return;const r=Math.max(1,Math.floor(n));t.lineWidth=r,function(t,i){t.save(),t.lineWidth%2&&t.translate(.5,.5),i(),t.restore()}(t,(()=>{const h=a(this.qt);if(h.Tl){t.strokeStyle=h.Rl,s(t,h.Dl),t.beginPath();for(const s of h.Il){const e=Math.round(s.Vl*n);t.moveTo(e,-r),t.lineTo(e,i.height+r)}t.stroke()}if(h.El){t.strokeStyle=h.Bl,s(t,h.Al),t.beginPath();for(const n of h.zl){const s=Math.round(n.Vl*e);t.moveTo(-r,s),t.lineTo(i.width+r,s)}t.stroke()}}))}}class ni{constructor(t){this.Xt=new ii,this.xt=!0,this.yt=t}Pt(){this.xt=!0}Tt(){if(this.xt){const t=this.yt.Qt().N().grid,i={El:t.horzLines.visible,Tl:t.vertLines.visible,Bl:t.horzLines.color,Rl:t.vertLines.color,Al:t.horzLines.style,Dl:t.vertLines.style,zl:this.yt.kn().Ll(),Il:(this.yt.Qt().Bt().Ll()||[]).map((t=>({Vl:t.coord})))};this.Xt.ht(i),this.xt=!1}return this.Xt}}class si{constructor(t){this.Yh=new ni(t)}wr(){return this.Yh}}const ei={Ol:4,Nl:1e-4};function ri(t,i){const n=100*(t-i)/i;return i<0?-n:n}function hi(t,i){const n=ri(t.Je(),i),s=ri(t.Qe(),i);return new dt(n,s)}function ai(t,i){const n=100*(t-i)/i+100;return i<0?-n:n}function li(t,i){const n=ai(t.Je(),i),s=ai(t.Qe(),i);return new dt(n,s)}function oi(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.log10(n+i.Nl)+i.Ol;return t<0?-s:s}function _i(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.pow(10,n-i.Ol)-i.Nl;return t<0?-s:s}function ui(t,i){if(null===t)return null;const n=oi(t.Je(),i),s=oi(t.Qe(),i);return new dt(n,s)}function ci(t,i){if(null===t)return null;const n=_i(t.Je(),i),s=_i(t.Qe(),i);return new dt(n,s)}function di(t){if(null===t)return ei;const i=Math.abs(t.Qe()-t.Je());if(i>=1||i<1e-15)return ei;const n=Math.ceil(Math.abs(Math.log10(i))),s=ei.Ol+n;return{Ol:s,Nl:1/Math.pow(10,s)}}class fi{constructor(t,i){if(this.Fl=t,this.Wl=i,function(t){if(t<0)return!1;if(t>1e18)return!0;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.Fl))this.Hl=[2,2.5,2];else{this.Hl=[];for(let t=this.Fl;1!==t;){if(t%2==0)this.Hl.push(2),t/=2;else{if(t%5!=0)throw new Error("unexpected base");this.Hl.push(2,2.5),t/=5}if(this.Hl.length>100)throw new Error("something wrong with base")}}}Ul(t,i,n){const s=0===this.Fl?0:1/this.Fl;let e=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,h=this.Wl[0];for(;;){const t=Qt(e,s,1e-14)&&e>s+1e-14,i=Qt(e,n*h,1e-14),a=Qt(e,1,1e-14);if(!(t&&i&&a))break;e/=h,h=this.Wl[++r%this.Wl.length]}if(e<=s+1e-14&&(e=s),e=Math.max(1,e),this.Hl.length>0&&(a=e,l=1,o=1e-14,Math.abs(a-l)<o))for(r=0,h=this.Hl[0];Qt(e,n*h,1e-14)&&e>s+1e-14;)e/=h,h=this.Hl[++r%this.Hl.length];var a,l,o;return e}}class pi{constructor(t,i,n,s){this.$l=[],this.Ki=t,this.Fl=i,this.jl=n,this.ql=s}Ul(t,i){if(t<i)throw new Error("high < low");const n=this.Ki.$t(),s=(t-i)*this.Yl()/n,e=new fi(this.Fl,[2,2.5,2]),r=new fi(this.Fl,[2,2,2.5]),h=new fi(this.Fl,[2.5,2,2]),a=[];return a.push(e.Ul(t,i,s),r.Ul(t,i,s),h.Ul(t,i,s)),function(t){if(t.length<1)throw Error("array is empty");let i=t[0];for(let n=1;n<t.length;++n)t[n]<i&&(i=t[n]);return i}(a)}Kl(){const t=this.Ki,i=t.zt();if(null===i)return void(this.$l=[]);const n=t.$t(),s=this.jl(n-1,i),e=this.jl(0,i),r=this.Ki.N().entireTextOnly?this.Gl()/2:0,h=r,a=n-1-r,l=Math.max(s,e),o=Math.min(s,e);if(l===o)return void(this.$l=[]);const _=this.Ul(l,o);if(this.Zl(i,_,l,o,h,a),t.Xl()&&this.Jl(_,o,l)){const t=this.Ki.Ql();this.io(i,_,h,a,t,2*t)}const u=this.$l.map((t=>t.no)),c=this.Ki.so(u);for(let t=0;t<this.$l.length;t++)this.$l[t].eo=c[t]}Ll(){return this.$l}Gl(){return this.Ki.P()}Yl(){return Math.ceil(this.Gl()*this.Ki.N().tickMarkDensity)}Zl(t,i,n,s,e,r){const h=this.$l,a=this.Ki;let l=n%i;l+=l<0?i:0;const o=n>=s?1:-1;let _=null,u=0;for(let c=n-l;c>s;c-=i){const n=this.ql(c,t,!0);null!==_&&Math.abs(n-_)<this.Yl()||(n<e||n>r||(u<h.length?(h[u].Vl=n,h[u].eo=a.ro(c),h[u].no=c):h.push({Vl:n,eo:a.ro(c),no:c}),u++,_=n,a.ho()&&(i=this.Ul(c*o,s))))}h.length=u}io(t,i,n,s,e,r){const h=this.$l,a=this.ao(t,n,e,r),l=this.ao(t,s,-r,-e),o=this.ql(0,t,!0)-this.ql(i,t,!0);h.length>0&&h[0].Vl-a.Vl<o/2&&h.shift(),h.length>0&&l.Vl-h[h.length-1].Vl<o/2&&h.pop(),h.unshift(a),h.push(l)}ao(t,i,n,s){const e=(n+s)/2,r=this.jl(i+n,t),h=this.jl(i+s,t),a=Math.min(r,h),l=Math.max(r,h),o=Math.max(.1,this.Ul(l,a)),_=this.jl(i+e,t),u=_-_%o,c=this.ql(u,t,!0);return{eo:this.Ki.ro(u),Vl:c,no:u}}Jl(t,i,n){let s=l(this.Ki.ar());return this.Ki.ho()&&(s=ci(s,this.Ki.lo())),s.Je()-i<t&&n-s.Qe()<t}}function vi(t){return t.slice().sort(((t,i)=>a(t.ln())-a(i.ln())))}var mi;!function(t){t[t.Normal=0]="Normal",t[t.Logarithmic=1]="Logarithmic",t[t.Percentage=2]="Percentage",t[t.IndexedTo100=3]="IndexedTo100"}(mi||(mi={}));const wi=new J,gi=new X(100,1);class Mi{constructor(t,i,n,s,e){this.oo=0,this._o=null,this.rr=null,this.uo=null,this.co={do:!1,fo:null},this.po=!1,this.vo=0,this.mo=0,this.wo=new o,this.Mo=new o,this.bo=[],this.So=null,this.xo=null,this.Co=null,this.yo=null,this.Po=null,this.el=gi,this.ko=di(null),this.To=t,this.yn=i,this.Ro=n,this.Do=s,this.Io=e,this.Vo=new pi(this,100,this.Eo.bind(this),this.Bo.bind(this))}pl(){return this.To}N(){return this.yn}vr(t){if(_(this.yn,t),this.vl(),void 0!==t.mode&&this.Ao({_e:t.mode}),void 0!==t.scaleMargins){const i=h(t.scaleMargins.top),n=h(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(n<0||n>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${n}`);if(i+n>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+n}`);this.zo(),this.Co=null}}Lo(){return this.yn.autoScale}Oo(){return this.po}ho(){return 1===this.yn.mode}je(){return 2===this.yn.mode}No(){return 3===this.yn.mode}lo(){return this.ko}_e(){return{hs:this.yn.autoScale,Fo:this.yn.invertScale,_e:this.yn.mode}}Ao(t){const i=this._e();let n=null;void 0!==t.hs&&(this.yn.autoScale=t.hs),void 0!==t._e&&(this.yn.mode=t._e,2!==t._e&&3!==t._e||(this.yn.autoScale=!0),this.co.do=!1),1===i._e&&t._e!==i._e&&(!function(t,i){if(null===t)return!1;const n=_i(t.Je(),i),s=_i(t.Qe(),i);return isFinite(n)&&isFinite(s)}(this.rr,this.ko)?this.yn.autoScale=!0:(n=ci(this.rr,this.ko),null!==n&&this.Wo(n))),1===t._e&&t._e!==i._e&&(n=ui(this.rr,this.ko),null!==n&&this.Wo(n));const s=i._e!==this.yn.mode;s&&(2===i._e||this.je())&&this.vl(),s&&(3===i._e||this.No())&&this.vl(),void 0!==t.Fo&&i.Fo!==t.Fo&&(this.yn.invertScale=t.Fo,this.Ho()),this.Mo.p(i,this._e())}Uo(){return this.Mo}P(){return this.Ro.fontSize}$t(){return this.oo}$o(t){this.oo!==t&&(this.oo=t,this.zo(),this.Co=null)}jo(){if(this._o)return this._o;const t=this.$t()-this.qo()-this.Yo();return this._o=t,t}ar(){return this.Ko(),this.rr}Wo(t,i){const n=this.rr;(i||null===n&&null!==t||null!==n&&!n.Ze(t))&&(this.Co=null,this.rr=t)}Go(t){this.Wo(t),this.Zo(null!==t)}Zi(){return this.Ko(),0===this.oo||!this.rr||this.rr.Zi()}Xo(t){return this.Fo()?t:this.$t()-1-t}Nt(t,i){return this.je()?t=ri(t,i):this.No()&&(t=ai(t,i)),this.Bo(t,i)}Jo(t,i,n){this.Ko();const s=this.Yo(),e=a(this.ar()),r=e.Je(),h=e.Qe(),l=this.jo()-1,o=this.Fo(),_=l/(h-r),u=void 0===n?0:n.from,c=void 0===n?t.length:n.to,d=this.Qo();for(let n=u;n<c;n++){const e=t[n],h=e.gt;if(isNaN(h))continue;let a=h;null!==d&&(a=d(e.gt,i));const l=s+_*(a-r),u=o?l:this.oo-1-l;e.ut=u}}t_(t,i,n){this.Ko();const s=this.Yo(),e=a(this.ar()),r=e.Je(),h=e.Qe(),l=this.jo()-1,o=this.Fo(),_=l/(h-r),u=void 0===n?0:n.from,c=void 0===n?t.length:n.to,d=this.Qo();for(let n=u;n<c;n++){const e=t[n];let h=e.jr,a=e.qr,l=e.Yr,u=e.Kr;null!==d&&(h=d(e.jr,i),a=d(e.qr,i),l=d(e.Yr,i),u=d(e.Kr,i));let c=s+_*(h-r),f=o?c:this.oo-1-c;e.i_=f,c=s+_*(a-r),f=o?c:this.oo-1-c,e.n_=f,c=s+_*(l-r),f=o?c:this.oo-1-c,e.s_=f,c=s+_*(u-r),f=o?c:this.oo-1-c,e.e_=f}}Tn(t,i){const n=this.Eo(t,i);return this.r_(n,i)}r_(t,i){let n=t;return this.je()?n=function(t,i){return i<0&&(t=-t),t/100*i+i}(n,i):this.No()&&(n=function(t,i){return t-=100,i<0&&(t=-t),t/100*i+i}(n,i)),n}kl(){return this.bo}Dt(){return this.xo||(this.xo=vi(this.bo)),this.xo}h_(t){-1===this.bo.indexOf(t)&&(this.bo.push(t),this.vl(),this.a_())}l_(t){const i=this.bo.indexOf(t);if(-1===i)throw new Error("source is not attached to scale");this.bo.splice(i,1),0===this.bo.length&&(this.Ao({hs:!0}),this.Wo(null)),this.vl(),this.a_()}zt(){let t=null;for(const i of this.bo){const n=i.zt();null!==n&&((null===t||n.Oa<t.Oa)&&(t=n))}return null===t?null:t.Wt}Fo(){return this.yn.invertScale}Ll(){const t=null===this.zt();if(null!==this.Co&&(t||this.Co.o_===t))return this.Co.Ll;this.Vo.Kl();const i=this.Vo.Ll();return this.Co={Ll:i,o_:t},this.wo.p(),i}__(){return this.wo}u_(t){this.je()||this.No()||null===this.yo&&null===this.uo&&(this.Zi()||(this.yo=this.oo-t,this.uo=a(this.ar()).Xe()))}c_(t){if(this.je()||this.No())return;if(null===this.yo)return;this.Ao({hs:!1}),(t=this.oo-t)<0&&(t=0);let i=(this.yo+.2*(this.oo-1))/(t+.2*(this.oo-1));const n=a(this.uo).Xe();i=Math.max(i,.1),n.ir(i),this.Wo(n)}d_(){this.je()||this.No()||(this.yo=null,this.uo=null)}f_(t){this.Lo()||null===this.Po&&null===this.uo&&(this.Zi()||(this.Po=t,this.uo=a(this.ar()).Xe()))}p_(t){if(this.Lo())return;if(null===this.Po)return;const i=a(this.ar()).tr()/(this.jo()-1);let n=t-this.Po;this.Fo()&&(n*=-1);const s=n*i,e=a(this.uo).Xe();e.nr(s),this.Wo(e,!0),this.Co=null}v_(){this.Lo()||null!==this.Po&&(this.Po=null,this.uo=null)}sl(){return this.el||this.vl(),this.el}Ji(t,i){switch(this.yn.mode){case 2:return this.m_(ri(t,i));case 3:return this.sl().format(ai(t,i));default:return this.cr(t)}}ro(t){switch(this.yn.mode){case 2:return this.m_(t);case 3:return this.sl().format(t);default:return this.cr(t)}}so(t){switch(this.yn.mode){case 2:return this.w_(t);case 3:return this.sl().formatTickmarks(t);default:return this.g_(t)}}xa(t){return this.cr(t,a(this.So).sl())}Ca(t,i){return t=ri(t,i),this.m_(t,wi)}M_(){return this.bo}b_(t){this.co={fo:t,do:!1}}Nn(){this.bo.forEach((t=>t.Nn()))}Xl(){return this.yn.ensureEdgeTickMarksVisible&&this.Lo()}Ql(){return this.P()/2}vl(){this.Co=null;let t=1/0;this.So=null;for(const i of this.bo)i.ln()<t&&(t=i.ln(),this.So=i);let i=100;null!==this.So&&(i=Math.round(this.So.Kh())),this.el=gi,this.je()?(this.el=wi,i=100):this.No()?(this.el=new X(100,1),i=100):null!==this.So&&(this.el=this.So.sl()),this.Vo=new pi(this,i,this.Eo.bind(this),this.Bo.bind(this)),this.Vo.Kl()}a_(){this.xo=null}S_(){return null===this.So||this.je()||this.No()?1:1/this.So.Kh()}Xi(){return this.Io}Zo(t){this.po=t}qo(){return this.Fo()?this.yn.scaleMargins.bottom*this.$t()+this.mo:this.yn.scaleMargins.top*this.$t()+this.vo}Yo(){return this.Fo()?this.yn.scaleMargins.top*this.$t()+this.vo:this.yn.scaleMargins.bottom*this.$t()+this.mo}Ko(){this.co.do||(this.co.do=!0,this.x_())}zo(){this._o=null}Bo(t,i){if(this.Ko(),this.Zi())return 0;t=this.ho()&&t?oi(t,this.ko):t;const n=a(this.ar()),s=this.Yo()+(this.jo()-1)*(t-n.Je())/n.tr();return this.Xo(s)}Eo(t,i){if(this.Ko(),this.Zi())return 0;const n=this.Xo(t),s=a(this.ar()),e=s.Je()+s.tr()*((n-this.Yo())/(this.jo()-1));return this.ho()?_i(e,this.ko):e}Ho(){this.Co=null,this.Vo.Kl()}x_(){if(this.Oo()&&!this.Lo())return;const t=this.co.fo;if(null===t)return;let i=null;const n=this.M_();let s=0,e=0;for(const r of n){if(!r.It())continue;const n=r.zt();if(null===n)continue;const h=r.la(t.Na(),t.bi());let l=h&&h.ar();if(null!==l){switch(this.yn.mode){case 1:l=ui(l,this.ko);break;case 2:l=hi(l,n.Wt);break;case 3:l=li(l,n.Wt)}if(i=null===i?l:i.Ss(a(l)),null!==h){const t=h.lr();null!==t&&(s=Math.max(s,t.above),e=Math.max(e,t.below))}}}if(this.Xl()&&(s=Math.max(s,this.Ql()),e=Math.max(e,this.Ql())),s===this.vo&&e===this.mo||(this.vo=s,this.mo=e,this.Co=null,this.zo()),null!==i){if(i.Je()===i.Qe()){const t=5*this.S_();this.ho()&&(i=ci(i,this.ko)),i=new dt(i.Je()-t,i.Qe()+t),this.ho()&&(i=ui(i,this.ko))}if(this.ho()){const t=ci(i,this.ko),n=di(t);if(r=n,h=this.ko,r.Ol!==h.Ol||r.Nl!==h.Nl){const s=null!==this.uo?ci(this.uo,this.ko):null;this.ko=n,i=ui(t,n),null!==s&&(this.uo=ui(s,n))}}this.Wo(i)}else null===this.rr&&(this.Wo(new dt(-.5,.5)),this.ko=di(null));var r,h}Qo(){return this.je()?ri:this.No()?ai:this.ho()?t=>oi(t,this.ko):null}C_(t,i,n){return void 0===i?(void 0===n&&(n=this.sl()),n.format(t)):i(t)}y_(t,i,n){return void 0===i?(void 0===n&&(n=this.sl()),n.formatTickmarks(t)):i(t)}cr(t,i){return this.C_(t,this.Do.priceFormatter,i)}g_(t,i){const n=this.Do.priceFormatter;return this.y_(t,this.Do.tickmarksPriceFormatter??(n?t=>t.map(n):void 0),i)}m_(t,i){return this.C_(t,this.Do.percentageFormatter,i)}w_(t,i){const n=this.Do.percentageFormatter;return this.y_(t,this.Do.tickmarksPercentageFormatter??(n?t=>t.map(n):void 0),i)}}function bi(t){return t instanceof Kt}class Si{constructor(t,i){this.bo=[],this.P_=new Map,this.oo=0,this.k_=0,this.T_=1,this.xo=null,this.R_=null,this.D_=!1,this.I_=new o,this.fa=[],this.ia=t,this.sn=i,this.V_=new si(this);const n=i.N();this.E_=this.B_("left",n.leftPriceScale),this.A_=this.B_("right",n.rightPriceScale),this.E_.Uo().i(this.z_.bind(this,this.E_),this),this.A_.Uo().i(this.z_.bind(this,this.A_),this),this.L_(n)}L_(t){if(t.leftPriceScale&&this.E_.vr(t.leftPriceScale),t.rightPriceScale&&this.A_.vr(t.rightPriceScale),t.localization&&(this.E_.vl(),this.A_.vl()),t.overlayPriceScales){const i=Array.from(this.P_.values());for(const n of i){const i=a(n[0].Ft());i.vr(t.overlayPriceScales),t.localization&&i.vl()}}}O_(t){switch(t){case"left":return this.E_;case"right":return this.A_}return this.P_.has(t)?h(this.P_.get(t))[0].Ft():null}m(){this.Qt().N_().u(this),this.E_.Uo().u(this),this.A_.Uo().u(this),this.bo.forEach((t=>{t.m&&t.m()})),this.fa=this.fa.filter((t=>{const i=t.Qh();return i.detached&&i.detached(),!1})),this.I_.p()}F_(){return this.T_}W_(t){this.T_=t}Qt(){return this.sn}nn(){return this.k_}$t(){return this.oo}H_(t){this.k_=t,this.U_()}$o(t){this.oo=t,this.E_.$o(t),this.A_.$o(t),this.bo.forEach((i=>{if(this.Gs(i)){const n=i.Ft();null!==n&&n.$o(t)}})),this.U_()}j_(t){this.D_=t}q_(){return this.D_}Y_(){return this.bo.filter(bi)}kl(){return this.bo}Gs(t){const i=t.Ft();return null===i||this.E_!==i&&this.A_!==i}h_(t,i,n){this.K_(t,i,n?t.ln():this.bo.length)}l_(t,i){const n=this.bo.indexOf(t);r(-1!==n,"removeDataSource: invalid data source"),this.bo.splice(n,1),i||this.bo.forEach(((t,i)=>t._n(i)));const s=a(t.Ft()).pl();if(this.P_.has(s)){const i=h(this.P_.get(s)),n=i.indexOf(t);-1!==n&&(i.splice(n,1),0===i.length&&this.P_.delete(s))}const e=t.Ft();e&&e.kl().indexOf(t)>=0&&(e.l_(t),this.G_(e)),this.Z_()}Xs(t){return t===this.E_?"left":t===this.A_?"right":"overlay"}X_(){return this.E_}J_(){return this.A_}Q_(t,i){t.u_(i)}tu(t,i){t.c_(i),this.U_()}iu(t){t.d_()}nu(t,i){t.f_(i)}su(t,i){t.p_(i),this.U_()}eu(t){t.v_()}U_(){this.bo.forEach((t=>{t.Nn()}))}kn(){const[t,i]=this.ru();let n=null;return t.N().visible&&0!==t.kl().length?n=t:i.N().visible&&0!==i.kl().length?n=i:0!==this.bo.length&&(n=this.bo[0].Ft()),null===n&&(n=this.Zs()??t),n}Zs(){const[t,i]=this.ru();return t.N().visible?t:i.N().visible?i:null}G_(t){null!==t&&t.Lo()&&this.hu(t)}au(t){const i=this.ia.Be();t.Ao({hs:!0}),null!==i&&t.b_(i),this.U_()}lu(){this.hu(this.E_),this.hu(this.A_)}ou(){this.G_(this.E_),this.G_(this.A_),this.bo.forEach((t=>{this.Gs(t)&&this.G_(t.Ft())})),this.U_(),this.sn.mr()}Dt(){return null===this.xo&&(this.xo=vi(this.bo)),this.xo}_u(){const t=this.Dt(),i=this.sn.cu()?.uu,n=this.sn.N().hoveredSeriesOnTop,s=this.R_;if(null!==s&&s.Kh===t&&s.du===i&&s.fu===n)return s.pu;const e=function(t,i,n){if(!n)return t;const s=t.indexOf(i);if(-1===s||s===t.length-1)return t;const e=[];for(let i=0;i<t.length;i++)i!==s&&e.push(t[i]);return e.push(t[s]),e}(t,i,n);return this.R_={Kh:t,du:i,fu:n,pu:e},e}vu(t,i){i=Jt(i,0,this.bo.length-1);const n=this.bo.indexOf(t);r(-1!==n,"setSeriesOrder: invalid data source"),this.bo.splice(n,1),this.bo.splice(i,0,t),this.bo.forEach(((t,i)=>t._n(i))),this.Z_();for(const t of[this.E_,this.A_])t.a_(),t.vl();this.sn.mr()}Vt(){return this.Dt().filter(bi)}mu(){return this.I_}wu(){return this.V_}ol(t){this.fa.push(new zt(t))}_l(t){this.fa=this.fa.filter((i=>i.Qh()!==t)),t.detached&&t.detached(),this.sn.mr()}gu(){return this.fa}il(t,i){return this.fa.map((n=>n.Qs(t,i))).filter((t=>null!==t))}hu(t){const i=t.M_();if(i&&i.length>0&&!this.ia.Zi()){const i=this.ia.Be();null!==i&&t.b_(i)}t.Nn()}K_(t,i,n){let s=this.O_(i);if(null===s&&(s=this.B_(i,this.sn.N().overlayPriceScales)),this.bo.splice(n,0,t),!q(i)){const n=this.P_.get(i)||[];n.push(t),this.P_.set(i,n)}t._n(n),s.h_(t),t.un(s),this.G_(s),this.Z_()}Z_(){this.xo=null,this.R_=null}ru(){return"left"===this.sn.N().defaultVisiblePriceScaleId?[this.E_,this.A_]:[this.A_,this.E_]}z_(t,i,n){i._e!==n._e&&this.hu(t)}B_(t,i){const n={visible:!0,autoScale:!0,...p(i)},s=new Mi(t,n,this.sn.N().layout,this.sn.N().localization,this.sn.Xi());return s.$o(this.$t()),s}}function xi(t,i){return null===i||(2===t.se&&2!==i.se||(2!==i.se||2===t.se)&&(t.ne!==i.ne&&t.ne<i.ne))}function Ci(t){return{te:t.te,ie:t.ie}}function yi(t){return{ne:t.distance??0,se:t.hitTestPriority??("marker"===t.itemType?2:0),ee:t.itemType??"primitive",Mu:t.cursorStyle,te:t.externalId}}function Pi(t){return{uu:t.uu,bu:Ci(t.Su),Mu:t.Su.Mu,ee:t.Su.ee??"primitive"}}function ki(t,i,n,s){let e=null;for(const r of t){let t=r.Qs?.(i,n,s)??null;if(null===t){const e=r.Tt(s);t=null!==e&&e.Qs?e.Qs(i,n):null}if(null!==t){const i={xu:r,Su:t};(null===e||xi(i.Su,e.Su))&&(e=i)}}return e}function Ti(t){return void 0!==t.jn}function Ri(t,i,n){const s=[t,...t.Dt()].reverse(),e=function(t,i,n){let s,e,r;for(const l of t){const t=l.il?.(i,n)??[];for(const i of t){const t=yi(i);h=i.zOrder,a=s?.zOrder,(!a||"top"===h&&"top"!==a||"normal"===h&&"bottom"===a||i.zOrder===s?.zOrder&&void 0!==e&&xi(t,e)||i.zOrder===s?.zOrder&&void 0===e)&&(s=i,e=t,r=l)}}var h,a;return s&&r&&e?{Su:e,Cu:s,uu:r}:null}(s,i,n);if("top"===e?.Cu.zOrder)return Pi(e);let r=null,h=null;for(const a of s){if(e&&e.uu===a&&"bottom"!==e.Cu.zOrder&&!e.Cu.isBackground)return r??Pi(e);if(Ti(a)){const s=ki(a.jn(t),i,n,t);if(null!==s){const t={uu:a,xu:s.xu,bu:Ci(s.Su),Mu:s.Su.Mu,ee:s.Su.ee??"primitive"};(null===r||xi(s.Su,h))&&(r=t,h=s.Su)}}if(e&&e.uu===a&&"bottom"!==e.Cu.zOrder&&e.Cu.isBackground)return r??Pi(e)}return null!==r?r:e?.Cu?Pi(e):null}class Di{constructor(t,i,n=50){this.Vs=0,this.Es=1,this.Bs=1,this.zs=new Map,this.As=new Map,this.yu=t,this.Pu=i,this.Ls=n}ku(t){const i=t.time,n=this.Pu.cacheKey(i),s=this.zs.get(n);if(void 0!==s)return s.Tu;if(this.Vs===this.Ls){const t=this.As.get(this.Bs);this.As.delete(this.Bs),this.zs.delete(h(t)),this.Bs++,this.Vs--}const e=this.yu(t);return this.zs.set(n,{Tu:e,Ws:this.Es}),this.As.set(this.Es,n),this.Vs++,this.Es++,e}}class Ii{constructor(t,i){r(t<=i,"right should be >= left"),this.Ru=t,this.Du=i}Na(){return this.Ru}bi(){return this.Du}Iu(){return this.Du-this.Ru+1}Le(t){return this.Ru<=t&&t<=this.Du}Ze(t){return this.Ru===t.Na()&&this.Du===t.bi()}}function Vi(t,i){return null===t||null===i?t===i:t.Ze(i)}class Ei{constructor(){this.Vu=new Map,this.zs=null,this.Eu=!1}Bu(t){this.Eu=t,this.zs=null}Au(t,i){this.zu(i),this.zs=null;for(let n=i;n<t.length;++n){const i=t[n];let s=this.Vu.get(i.timeWeight);void 0===s&&(s=[],this.Vu.set(i.timeWeight,s)),s.push({index:n,time:i.time,weight:i.timeWeight,originalTime:i.originalTime})}}Lu(t,i,n,s,e){const r=Math.ceil(i/t);return null!==this.zs&&this.zs.Ou===r&&e===this.zs.Nu&&n===this.zs.Fu||(this.zs={Nu:e,Fu:n,Ll:this.Wu(r,n,s),Ou:r}),this.zs.Ll}zu(t){if(0===t)return void this.Vu.clear();const i=[];this.Vu.forEach(((n,s)=>{t<=n[0].index?i.push(s):n.splice(yt(n,t,(i=>i.index<t)),1/0)}));for(const t of i)this.Vu.delete(t)}Wu(t,i,n){let s=[];const e=t=>!i||n.has(t.index);for(const i of Array.from(this.Vu.keys()).sort(((t,i)=>i-t))){if(!this.Vu.get(i))continue;const n=s;s=[];const r=n.length;let a=0;const l=h(this.Vu.get(i)),o=l.length;let _=1/0,u=-1/0;for(let i=0;i<o;i++){const h=l[i],o=h.index;for(;a<r;){const t=n[a],i=t.index;if(!(i<o&&e(t))){_=i;break}a++,s.push(t),u=i,_=1/0}if(_-o>=t&&o-u>=t&&e(h))s.push(h),u=o;else if(this.Eu)return n}for(;a<r;a++)e(n[a])&&s.push(n[a])}return s}}class Bi{constructor(t){this.Hu=t}Uu(){return null===this.Hu?null:new Ii(Math.floor(this.Hu.Na()),Math.ceil(this.Hu.bi()))}$u(){return this.Hu}static ju(){return new Bi(null)}}function Ai(t,i){return t.weight>i.weight?t:i}class zi{constructor(t,i,n,s){this.k_=0,this.qu=null,this.Yu=[],this.Po=null,this.yo=null,this.Ku=new Ei,this.Gu=new Map,this.Zu=Bi.ju(),this.Xu=!0,this.Ju=new o,this.Qu=new o,this.tc=new o,this.nc=null,this.sc=null,this.ec=new Map,this.rc=-1,this.hc=[],this.ac=1,this.yn=i,this.Do=n,this.lc=i.rightOffset,this.oc=i.barSpacing,this.sn=t,this._c(i),this.Pu=s,this.uc(),this.Ku.Bu(i.uniformDistribution),this.cc(),this.dc()}N(){return this.yn}fc(t){_(this.Do,t),this.vc(),this.uc()}vr(t,i){_(this.yn,t),this.yn.fixLeftEdge&&this.mc(),this.yn.fixRightEdge&&this.wc(),void 0!==t.barSpacing&&this.sn.gs(t.barSpacing),void 0!==t.rightOffset&&this.sn.Ms(t.rightOffset),this._c(t),void 0===t.minBarSpacing&&void 0===t.maxBarSpacing||this.sn.gs(t.barSpacing??this.oc),void 0!==t.ignoreWhitespaceIndices&&t.ignoreWhitespaceIndices!==this.yn.ignoreWhitespaceIndices&&this.dc(),this.vc(),this.uc(),void 0===t.enableConflation&&void 0===t.conflationThresholdFactor||this.cc(),this.tc.p()}Rn(t){return this.Yu[t]?.time??null}en(t){return this.Yu[t]??null}gc(t,i){if(this.Yu.length<1)return null;if(this.Pu.key(t)>this.Pu.key(this.Yu[this.Yu.length-1].time))return i?this.Yu.length-1:null;const n=yt(this.Yu,this.Pu.key(t),((t,i)=>this.Pu.key(t.time)<i));return this.Pu.key(t)<this.Pu.key(this.Yu[n].time)?i?n:null:n}Zi(){return 0===this.k_||0===this.Yu.length||null===this.qu}Mc(){return this.Yu.length>0}Be(){return this.bc(),this.Zu.Uu()}Sc(){return this.bc(),this.Zu.$u()}xc(){const t=this.Be();if(null===t)return null;const i={from:t.Na(),to:t.bi()};return this.Cc(i)}Cc(t){const i=Math.round(t.from),n=Math.round(t.to),s=a(this.yc()),e=a(this.Pc());return{from:a(this.en(Math.max(s,i))),to:a(this.en(Math.min(e,n)))}}kc(t){return{from:a(this.gc(t.from,!0)),to:a(this.gc(t.to,!0))}}nn(){return this.k_}H_(t){if(!isFinite(t)||t<=0)return;if(this.k_===t)return;const i=this.Sc(),n=this.k_;if(this.k_=t,this.Xu=!0,this.yn.lockVisibleTimeRangeOnResize&&0!==n){const i=this.oc*t/n;this.oc=i}if(this.yn.fixLeftEdge&&null!==i&&i.Na()<=0){const i=n-t;this.lc-=Math.round(i/this.oc)+1,this.Xu=!0}this.Tc(),this.Rc()}jt(t){if(this.Zi()||!c(t))return 0;const i=this.Dc()+this.lc-t;return this.k_-(i+.5)*this.oc-1}Ic(t,i){const n=this.Dc(),s=void 0===i?0:i.from,e=void 0===i?t.length:i.to;for(let i=s;i<e;i++){const s=t[i].wt,e=n+this.lc-s,r=this.k_-(e+.5)*this.oc-1;t[i]._t=r}}Vc(t,i){const n=Math.ceil(this.Ec(t));return i&&this.yn.ignoreWhitespaceIndices&&!this.Bc(n)?this.Ac(n):n}Ms(t){this.Xu=!0,this.lc=t,this.Rc(),this.sn.zc(),this.sn.mr()}ml(){return this.oc}gs(t){const i=this.oc;if(this.Lc(t),void 0!==this.yn.rightOffsetPixels&&0!==i){const t=this.lc*i/this.oc;this.lc=t}this.Rc(),this.sn.zc(),this.sn.mr()}Oc(){return this.lc}Ll(){if(this.Zi())return null;if(null!==this.sc)return this.sc;const t=this.oc,i=5*(this.sn.N().layout.fontSize+4)/8*(this.yn.tickMarkMaxCharacterLength||8),n=Math.round(i/t),s=a(this.Be()),e=Math.max(s.Na(),s.Na()-n),r=Math.max(s.bi(),s.bi()-n),h=this.Ku.Lu(t,i,this.yn.ignoreWhitespaceIndices,this.ec,this.rc),l=this.yc()+n,o=this.Pc()-n,_=this.Nc(),u=this.yn.fixLeftEdge||_,c=this.yn.fixRightEdge||_;let d=0;for(const t of h){if(!(e<=t.index&&t.index<=r))continue;let n;d<this.hc.length?(n=this.hc[d],n.coord=this.jt(t.index),n.label=this.Fc(t),n.weight=t.weight):(n={needAlignCoordinate:!1,coord:this.jt(t.index),label:this.Fc(t),weight:t.weight},this.hc.push(n)),this.oc>i/2&&!_?n.needAlignCoordinate=!1:n.needAlignCoordinate=u&&t.index<=l||c&&t.index>=o,d++}return this.hc.length=d,this.sc=this.hc,this.hc}Wc(){let t;this.Xu=!0,this.gs(this.yn.barSpacing),t=void 0!==this.yn.rightOffsetPixels?this.yn.rightOffsetPixels/this.ml():this.yn.rightOffset,this.Ms(t)}Hc(t){this.Xu=!0,this.qu=t,this.Rc(),this.mc()}Uc(t,i){const n=this.Ec(t),s=this.ml(),e=s+i*(s/10);this.gs(e),this.yn.rightBarStaysOnScroll||this.Ms(this.Oc()+(n-this.Ec(t)))}u_(t){this.Po&&this.v_(),null===this.yo&&null===this.nc&&(this.Zi()||(this.yo=t,this.$c()))}c_(t){if(null===this.nc)return;const i=Jt(this.k_-t,0,this.k_),n=Jt(this.k_-a(this.yo),0,this.k_);0!==i&&0!==n&&this.gs(this.nc.ml*i/n)}d_(){null!==this.yo&&(this.yo=null,this.jc())}f_(t){null===this.Po&&null===this.nc&&(this.Zi()||(this.Po=t,this.$c()))}p_(t){if(null===this.Po)return;const i=(this.Po-t)/this.ml();this.lc=a(this.nc).Oc+i,this.Xu=!0,this.Rc()}v_(){null!==this.Po&&(this.Po=null,this.jc())}qc(){this.Yc(this.yn.rightOffset)}Yc(t,i=400){if(!isFinite(t))throw new RangeError("offset is required and must be finite number");if(!isFinite(i)||i<=0)throw new RangeError("animationDuration (optional) must be finite positive number");const n=this.lc,s=performance.now();this.sn.ps({Kc:t=>(t-s)/i>=1,Gc:e=>{const r=(e-s)/i;return r>=1?t:n+(t-n)*r}})}Pt(t,i){this.Xu=!0,this.Yu=t,this.Ku.Au(t,i),this.Rc()}Zc(){return this.Ju}Xc(){return this.Qu}Jc(){return this.tc}Dc(){return this.qu||0}Qc(t,i){const n=t.Iu(),s=i&&this.yn.rightOffsetPixels||0;this.Lc((this.k_-s)/n),this.lc=t.bi()-this.Dc(),i&&(this.lc=s?s/this.ml():this.yn.rightOffset),this.Rc(),this.Xu=!0,this.sn.zc(),this.sn.mr()}td(){const t=this.yc(),i=this.Pc();if(null===t||null===i)return;const n=!this.yn.rightOffsetPixels&&this.yn.rightOffset||0;this.Qc(new Ii(t,i+n),!0)}nd(t){const i=new Ii(t.from,t.to);this.Qc(i)}rn(t){return void 0!==this.Do.timeFormatter?this.Do.timeFormatter(t.originalTime):this.Pu.formatHorzItem(t.time)}dc(){if(!this.yn.ignoreWhitespaceIndices)return;this.ec.clear();const t=this.sn.Jn();for(const i of t)for(const t of i.fl())this.ec.set(t,!0);this.rc++}sd(){return this.ac}Sl(){const t=1/(window.devicePixelRatio||1),i=this.yn.minBarSpacing;if(i>=t)return[1];const n=[1];let s=2;for(;s<=512;){i<t/s&&n.push(s),s*=2}return n}Nc(){const t=this.sn.N().handleScroll,i=this.sn.N().handleScale;return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}yc(){return 0===this.Yu.length?null:0}Pc(){return 0===this.Yu.length?null:this.Yu.length-1}ed(t){return(this.k_-1-t)/this.oc}Ec(t){const i=this.ed(t),n=this.Dc()+this.lc-i;return Math.round(1e6*n)/1e6}Lc(t){const i=this.oc;this.oc=t,this.Tc(),i!==this.oc&&(this.Xu=!0,this.rd(),this.cc())}bc(){if(!this.Xu)return;if(this.Xu=!1,this.Zi())return void this.hd(Bi.ju());const t=this.Dc(),i=this.k_/this.oc,n=this.lc+t,s=new Ii(n-i+1,n);this.hd(new Bi(s))}Tc(){const t=Jt(this.oc,this.ad(),this.ld());this.oc!==t&&(this.oc=t,this.Xu=!0)}ld(){return this.yn.maxBarSpacing>0?this.yn.maxBarSpacing:.5*this.k_}ad(){return this.yn.fixLeftEdge&&this.yn.fixRightEdge&&0!==this.Yu.length?this.k_/this.Yu.length:this.yn.minBarSpacing}cc(){if(!this.yn.enableConflation)return void(this.ac=1);const t=1/(window.devicePixelRatio||1)*(this.yn.conflationThresholdFactor??1);if(this.oc>=t)return void(this.ac=1);const i=t/this.oc,n=Math.pow(2,Math.floor(Math.log2(i)));this.ac=Math.min(n,512)}Rc(){const t=this.od();null!==t&&this.lc<t&&(this.lc=t,this.Xu=!0);const i=this._d();this.lc>i&&(this.lc=i,this.Xu=!0)}od(){const t=this.yc(),i=this.qu;if(null===t||null===i)return null;return t-i-1+(this.yn.fixLeftEdge?this.k_/this.oc:Math.min(2,this.Yu.length))}_d(){return this.yn.fixRightEdge?0:this.k_/this.oc-Math.min(2,this.Yu.length)}$c(){this.nc={ml:this.ml(),Oc:this.Oc()}}jc(){this.nc=null}Fc(t){let i=this.Gu.get(t.weight);return void 0===i&&(i=new Di((t=>this.ud(t)),this.Pu),this.Gu.set(t.weight,i)),i.ku(t)}ud(t){return this.Pu.formatTickmark(t,this.Do)}hd(t){const i=this.Zu;this.Zu=t,Vi(i.Uu(),this.Zu.Uu())||this.Ju.p(),Vi(i.$u(),this.Zu.$u())||this.Qu.p(),this.rd()}rd(){this.sc=null}vc(){this.rd(),this.Gu.clear()}uc(){this.Pu.updateFormatter(this.Do)}mc(){if(!this.yn.fixLeftEdge)return;const t=this.yc();if(null===t)return;const i=this.Be();if(null===i)return;const n=i.Na()-t;if(n<0){const t=this.lc-n-1;this.Ms(t)}this.Tc()}wc(){this.Rc(),this.Tc()}Bc(t){return!this.yn.ignoreWhitespaceIndices||(this.ec.get(t)||!1)}Ac(t){const i=function*(t){const i=Math.round(t),n=i<t;let s=1;for(;;)n?(yield i+s,yield i-s):(yield i-s,yield i+s),s++}(t),n=this.Pc();for(;n;){const t=i.next().value;if(this.ec.get(t))return t;if(t<0||t>n)break}return t}_c(t){if(void 0!==t.rightOffsetPixels){const i=t.rightOffsetPixels/(t.barSpacing||this.oc);this.sn.Ms(i)}}}var Li,Oi,Ni,Fi,Wi;!function(t){t[t.OnTouchEnd=0]="OnTouchEnd",t[t.OnNextTap=1]="OnNextTap"}(Li||(Li={}));class Hi{constructor(t,i,n){this.dd=[],this.fd=[],this.pd=null,this.k_=0,this.vd=null,this.md=new o,this.wd=new o,this.gd=null,this.Md=t,this.yn=i,this.Pu=n,this.Io=new x(this.yn.layout.colorParsers),this.bd=new M(this),this.ia=new zi(this,i.timeScale,this.yn.localization,n),this.Ct=new j(this,i.crosshair),this.Sd=new Xt(i.crosshair),i.addDefaultPane&&(this.xd(0),this.dd[0].W_(2)),this.Cd=this.yd(0),this.Pd=this.yd(1)}ka(){this.kd(Y.ys())}mr(){this.kd(Y.Cs())}Ya(){this.kd(new Y(1))}Ta(t){const i=this.Td(t);this.kd(i)}cu(){return this.vd}Rd(t){if(this.vd?.uu===t?.uu&&this.vd?.bu?.te===t?.bu?.te&&this.vd?.bu?.ie===t?.bu?.ie&&this.vd?.Mu===t?.Mu&&this.vd?.ee===t?.ee)return;const i=this.vd;this.vd=t,null!==i&&this.Ta(i.uu),null!==t&&t.uu!==i?.uu&&this.Ta(t.uu)}N(){return this.yn}vr(t){_(this.yn,t),this.dd.forEach((i=>i.L_(t))),void 0!==t.timeScale&&this.ia.vr(t.timeScale),void 0!==t.localization&&this.ia.fc(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.md.p(),this.Cd=this.yd(0),this.Pd=this.yd(1),this.ka()}Dd(t,i,n=0){const s=this.dd[n];if(void 0===s)return;if("left"===t)return _(this.yn,{leftPriceScale:i}),s.L_({leftPriceScale:i}),this.md.p(),void this.ka();if("right"===t)return _(this.yn,{rightPriceScale:i}),s.L_({rightPriceScale:i}),this.md.p(),void this.ka();const e=this.Id(t,n);null!==e&&(e.Ft.vr(i),this.md.p())}Id(t,i){const n=this.dd[i];if(void 0===n)return null;const s=n.O_(t);return null!==s?{Kn:n,Ft:s}:null}Bt(){return this.ia}Gn(){return this.dd}Vd(){return this.Ct}Ed(){return this.wd}Bd(t,i){t.$o(i),this.zc()}H_(t){this.k_=t,this.ia.H_(this.k_),this.dd.forEach((i=>i.H_(t))),this.zc()}Ad(t){1!==this.dd.length&&(r(t>=0&&t<this.dd.length,"Invalid pane index"),this.dd.splice(t,1),this.ka())}zd(t,i){if(this.dd.length<2)return;r(t>=0&&t<this.dd.length,"Invalid pane index");const n=this.dd[t],s=this.dd.reduce(((t,i)=>t+i.F_()),0),e=this.dd.reduce(((t,i)=>t+i.$t()),0),h=e-30*(this.dd.length-1);i=Math.min(h,Math.max(30,i));const a=s/e,l=n.$t();n.W_(i*a);let o=i-l,_=this.dd.length-1;for(const t of this.dd)if(t!==n){const i=Math.min(h,Math.max(30,t.$t()-o/_));o-=t.$t()-i,_-=1;const n=i*a;t.W_(n)}this.ka()}Ld(t,i){r(t>=0&&t<this.dd.length&&i>=0&&i<this.dd.length,"Invalid pane index");const n=this.dd[t],s=this.dd[i];this.dd[t]=s,this.dd[i]=n,this.ka()}Od(t,i){if(r(t>=0&&t<this.dd.length&&i>=0&&i<this.dd.length,"Invalid pane index"),t===i)return;const[n]=this.dd.splice(t,1);this.dd.splice(i,0,n),this.ka()}Q_(t,i,n){t.Q_(i,n)}tu(t,i,n){t.tu(i,n),this.Ra(),this.kd(this.Nd(t,2))}iu(t,i){t.iu(i),this.kd(this.Nd(t,2))}nu(t,i,n){i.Lo()||t.nu(i,n)}su(t,i,n){i.Lo()||(t.su(i,n),this.Ra(),this.kd(this.Nd(t,2)))}eu(t,i){i.Lo()||(t.eu(i),this.kd(this.Nd(t,2)))}au(t,i){t.au(i),this.kd(this.Nd(t,2))}Fd(t){this.ia.u_(t)}Wd(t,i){const n=this.Bt();if(n.Zi()||0===i)return;const s=n.nn();t=Math.max(1,Math.min(t,s)),n.Uc(t,i),this.zc()}Hd(t){this.Ud(0),this.$d(t),this.jd()}qd(t){this.ia.c_(t),this.zc()}Yd(){this.ia.d_(),this.mr()}Ud(t){this.ia.f_(t)}$d(t){this.ia.p_(t),this.zc()}jd(){this.ia.v_(),this.mr()}Jn(){return this.fd}Wn(){return null===this.pd&&(this.pd=this.fd.filter((t=>t.It()))),this.pd}Pa(){this.pd=null}Kd(t,i,n,s,e){this.Ct.In(t,i);let r=NaN,h=this.ia.Vc(t,!0);const a=this.ia.Be();null!==a&&(h=Math.min(Math.max(a.Na(),h),a.bi())),h=this.Ct.Fn(h);const l=s.kn(),o=l.zt();if(null!==o&&(r=l.Tn(i,o)),r=this.Sd.Pl(r,h,s),this.Ct.An(h,r,s),this.Ya(),!e){const e=Ri(s,t,i);this.Rd(e&&{uu:e.uu,bu:e.bu,Mu:e.Mu||null,ee:e.ee}),this.wd.p(this.Ct.Et(),{x:t,y:i},n)}}Gd(t,i,n){const s=n.kn(),e=s.zt(),r=s.Nt(t,a(e)),h=this.ia.gc(i,!0),l=this.ia.jt(a(h));this.Kd(l,r,null,n,!0)}Zd(t){this.Vd().Ln(),this.Ya(),t||this.wd.p(null,null,null)}Ra(){const t=this.Ct.Kn();if(null!==t){const i=this.Ct.En(),n=this.Ct.Bn();this.Kd(i,n,null,t)}this.Ct.Nn()}Xd(t,i,n){const s=this.ia.Rn(0);void 0!==i&&void 0!==n&&this.ia.Pt(i,n);const e=this.ia.Rn(0),r=this.ia.Dc(),h=this.ia.Be();if(null!==h&&null!==s&&null!==e){const i=h.Le(r),a=this.Pu.key(s)>this.Pu.key(e),l=null!==t&&t>r&&!a,o=this.ia.N().allowShiftVisibleRangeOnWhitespaceReplacement,_=i&&(!(void 0===n)||o)&&this.ia.N().shiftVisibleRangeOnNewBar;if(l&&!_){const i=t-r;this.ia.Ms(this.ia.Oc()-i)}}this.ia.Hc(t)}Ea(t){null!==t&&t.ou()}Ks(t){if(function(t){return t instanceof Si}(t))return t;const i=this.dd.find((i=>i.Dt().includes(t)));return void 0===i?null:i}zc(){this.dd.forEach((t=>t.ou())),this.Ra()}m(){this.dd.forEach((t=>t.m())),this.dd.length=0,this.yn.localization.priceFormatter=void 0,this.yn.localization.percentageFormatter=void 0,this.yn.localization.timeFormatter=void 0}Jd(){return this.bd}Js(){return this.bd.N()}N_(){return this.md}Qd(t,i){const n=this.xd(i);this.tf(t,n),this.fd.push(t),this.Pa(),1===this.fd.length?this.ka():this.mr()}if(t){const i=this.Ks(t),n=this.fd.indexOf(t);r(-1!==n,"Series not found");const s=a(i);this.fd.splice(n,1),s.l_(t),t.m&&t.m(),this.Pa(),this.ia.dc(),this.nf(s)}ya(t,i){const n=a(this.Ks(t));n.l_(t,!0),n.h_(t,i,!0)}td(){const t=Y.Cs();t.us(),this.kd(t)}sf(t){const i=Y.Cs();i.fs(t),this.kd(i)}ws(){const t=Y.Cs();t.ws(),this.kd(t)}gs(t){const i=Y.Cs();i.gs(t),this.kd(i)}Ms(t){const i=Y.Cs();i.Ms(t),this.kd(i)}ps(t){const i=Y.Cs();i.ps(t),this.kd(i)}cs(){const t=Y.Cs();t.cs(),this.kd(t)}ef(){const t=this.yn.defaultVisiblePriceScaleId,i=this.yn.leftPriceScale.visible;return i!==this.yn.rightPriceScale.visible?i?"left":"right":t}rf(t,i){r(i>=0,"Index should be greater or equal to 0");if(i===this.hf(t))return;const n=a(this.Ks(t));n.l_(t);const s=this.xd(i);this.tf(t,s);let e=!1;0===n.kl().length&&(e=this.nf(n)),e||this.ka()}af(){return this.Pd}$(){return this.Cd}Ut(t){const i=this.Pd,n=this.Cd;if(i===n)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.gd||this.gd.ah!==n||this.gd.oh!==i)this.gd={ah:n,oh:i,lf:new Map};else{const i=this.gd.lf.get(t);if(void 0!==i)return i}const s=this.Io.tt(n,i,t/100);return this.gd.lf.set(t,s),s}_f(t){return this.dd.indexOf(t)}Xi(){return this.Io}uf(){return this.cf()}cf(t){const i=new Si(this.ia,this);this.dd.push(i);const n=t??this.dd.length-1,s=Y.ys();return s.es(n,{rs:0,hs:!0}),this.kd(s),i}xd(t){return r(t>=0,"Index should be greater or equal to 0"),(t=Math.min(this.dd.length,t))<this.dd.length?this.dd[t]:this.cf(t)}hf(t){return this.dd.findIndex((i=>i.Y_().includes(t)))}Nd(t,i){const n=new Y(i);if(null!==t){const s=this.dd.indexOf(t);n.es(s,{rs:i})}return n}Td(t,i){return void 0===i&&(i=2),this.Nd(this.Ks(t),i)}kd(t){this.Md&&this.Md(t),this.dd.forEach((t=>t.wu().wr().Pt()))}tf(t,i){const n=t.N().priceScaleId,s=void 0!==n?n:this.ef();i.h_(t,s),q(s)||t.vr(t.N())}yd(t){const i=this.yn.layout;return"gradient"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}nf(t){return!t.q_()&&0===t.kl().length&&this.dd.length>1&&(this.dd.splice(this._f(t),1),this.ka(),!0)}}function Ui(t){if(t>=1)return 0;let i=0;for(;i<8;i++){const n=Math.round(t);if(Math.abs(n-t)<1e-8)return i;t*=10}return i}function $i(t){return!u(t)&&!d(t)}function ji(t){return u(t)}!function(t){t[t.Disabled=0]="Disabled",t[t.Continuous=1]="Continuous",t[t.OnDataUpdate=2]="OnDataUpdate"}(Oi||(Oi={})),function(t){t[t.LastBar=0]="LastBar",t[t.LastVisible=1]="LastVisible"}(Ni||(Ni={})),function(t){t.Solid="solid",t.VerticalGradient="gradient"}(Fi||(Fi={})),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"}(Wi||(Wi={}));const qi=t=>t.getUTCFullYear();function Yi(t,i,n){return i.replace(/yyyy/g,(t=>Z(qi(t),4))(t)).replace(/yy/g,(t=>Z(qi(t)%100,2))(t)).replace(/MMMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"long"}))(t,n)).replace(/MMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"short"}))(t,n)).replace(/MM/g,(t=>Z((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>Z((t=>t.getUTCDate())(t),2))(t))}class Ki{constructor(t="yyyy-MM-dd",i="default"){this.df=t,this.ff=i}ku(t){return Yi(t,this.df,this.ff)}}class Gi{constructor(t){this.pf=t||"%h:%m:%s"}ku(t){return this.pf.replace("%h",Z(t.getUTCHours(),2)).replace("%m",Z(t.getUTCMinutes(),2)).replace("%s",Z(t.getUTCSeconds(),2))}}const Zi={vf:"yyyy-MM-dd",mf:"%h:%m:%s",wf:" ",gf:"default"};class Xi{constructor(t={}){const i={...Zi,...t};this.Mf=new Ki(i.vf,i.gf),this.bf=new Gi(i.mf),this.Sf=i.wf}ku(t){return`${this.Mf.ku(t)}${this.Sf}${this.bf.ku(t)}`}}function Ji(t){return 60*t*60*1e3}function Qi(t){return 60*t*1e3}const tn=[{xf:(nn=1,1e3*nn),Cf:10},{xf:Qi(1),Cf:20},{xf:Qi(5),Cf:21},{xf:Qi(30),Cf:22},{xf:Ji(1),Cf:30},{xf:Ji(3),Cf:31},{xf:Ji(6),Cf:32},{xf:Ji(12),Cf:33}];var nn;function sn(t,i){if(t.getUTCFullYear()!==i.getUTCFullYear())return 70;if(t.getUTCMonth()!==i.getUTCMonth())return 60;if(t.getUTCDate()!==i.getUTCDate())return 50;for(let n=tn.length-1;n>=0;--n)if(Math.floor(i.getTime()/tn[n].xf)!==Math.floor(t.getTime()/tn[n].xf))return tn[n].Cf;return 0}function en(t){let i=t;if(d(t)&&(i=hn(t)),!$i(i))throw new Error("time must be of type BusinessDay");const n=new Date(Date.UTC(i.year,i.month-1,i.day,0,0,0,0));return{yf:Math.round(n.getTime()/1e3),Pf:i}}function rn(t){if(!ji(t))throw new Error("time must be of type isUTCTimestamp");return{yf:t}}function hn(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 an(t){d(t.time)&&(t.time=hn(t.time))}class ln{options(){return this.yn}setOptions(t){this.yn=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(an)}(t):an(t)}createConverterToInternalObj(t){return a(function(t){return 0===t.length?null:$i(t[0].time)||d(t[0].time)?en:rn}(t))}key(t){return"object"==typeof t&&"yf"in t?t.yf:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.Pf?new Date(1e3*i.yf).getTime():new Date(Date.UTC(i.Pf.year,i.Pf.month-1,i.Pf.day)).getTime()}convertHorzItemToInternal(t){return ji(i=t)?rn(i):$i(i)?en(i):en(hn(i));var i}updateFormatter(t){if(!this.yn)return;const i=t.dateFormat;this.yn.timeScale.timeVisible?this.kf=new Xi({vf:i,mf:this.yn.timeScale.secondsVisible?"%h:%m:%s":"%h:%m",wf:" ",gf:t.locale}):this.kf=new Ki(i,t.locale)}formatHorzItem(t){const i=t;return this.kf.ku(new Date(1e3*i.yf))}formatTickmark(t,i){const n=function(t,i,n){switch(t){case 0:case 10:return i?n?4:3:2;case 20:case 21:case 22:case 30:case 31:case 32:case 33:return i?3:2;case 50:return 2;case 60:return 1;case 70:return 0}}(t.weight,this.yn.timeScale.timeVisible,this.yn.timeScale.secondsVisible),s=this.yn.timeScale;if(void 0!==s.tickMarkFormatter){const e=s.tickMarkFormatter(t.originalTime,n,i.locale);if(null!==e)return e}return function(t,i,n){const s={};switch(i){case 0:s.year="numeric";break;case 1:s.month="short";break;case 2:s.day="numeric";break;case 3:s.hour12=!1,s.hour="2-digit",s.minute="2-digit";break;case 4:s.hour12=!1,s.hour="2-digit",s.minute="2-digit",s.second="2-digit"}const e=void 0===t.Pf?new Date(1e3*t.yf):new Date(Date.UTC(t.Pf.year,t.Pf.month-1,t.Pf.day));return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()).toLocaleString(n,s)}(t.time,n,i.locale)}maxTickMarkWeight(t){let i=t.reduce(Ai,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){!function(t,i=0){if(0===t.length)return;let n=0===i?null:t[i-1].time.yf,s=null!==n?new Date(1e3*n):null,e=0;for(let r=i;r<t.length;++r){const i=t[r],h=new Date(1e3*i.time.yf);null!==s&&(i.timeWeight=sn(h,s)),e+=i.time.yf-(n||i.time.yf),n=i.time.yf,s=h}if(0===i&&t.length>1){const i=Math.ceil(e/(t.length-1)),n=new Date(1e3*(t[0].time.yf-i));t[0].timeWeight=sn(new Date(1e3*t[0].time.yf),n)}}(t,i)}static Tf(t){return _({localization:{dateFormat:"dd MMM 'yy"}},t??{})}}function on(t){var i=t.width,n=t.height;if(i<0)throw new Error("Negative width is not allowed for Size");if(n<0)throw new Error("Negative height is not allowed for Size");return{width:i,height:n}}function _n(t,i){return t.width===i.width&&t.height===i.height}var un=function(){function t(t){var i=this;this._resolutionListener=function(){return i._onResolutionChanged()},this._resolutionMediaQueryList=null,this._observers=[],this._window=t,this._installResolutionListener()}return t.prototype.dispose=function(){this._uninstallResolutionListener(),this._window=null},Object.defineProperty(t.prototype,"value",{get:function(){return this._window.devicePixelRatio},enumerable:!1,configurable:!0}),t.prototype.subscribe=function(t){var i=this,n={next:t};return this._observers.push(n),{unsubscribe:function(){i._observers=i._observers.filter((function(t){return t!==n}))}}},t.prototype._installResolutionListener=function(){if(null!==this._resolutionMediaQueryList)throw new Error("Resolution listener is already installed");var t=this._window.devicePixelRatio;this._resolutionMediaQueryList=this._window.matchMedia("all and (resolution: ".concat(t,"dppx)")),this._resolutionMediaQueryList.addListener(this._resolutionListener)},t.prototype._uninstallResolutionListener=function(){null!==this._resolutionMediaQueryList&&(this._resolutionMediaQueryList.removeListener(this._resolutionListener),this._resolutionMediaQueryList=null)},t.prototype._reinstallResolutionListener=function(){this._uninstallResolutionListener(),this._installResolutionListener()},t.prototype._onResolutionChanged=function(){var t=this;this._observers.forEach((function(i){return i.next(t._window.devicePixelRatio)})),this._reinstallResolutionListener()},t}();var cn=function(){function t(t,i,n){var s;this._canvasElement=null,this._bitmapSizeChangedListeners=[],this._suggestedBitmapSize=null,this._suggestedBitmapSizeChangedListeners=[],this._devicePixelRatioObservable=null,this._canvasElementResizeObserver=null,this._canvasElement=t,this._canvasElementClientSize=on({width:this._canvasElement.clientWidth,height:this._canvasElement.clientHeight}),this._transformBitmapSize=null!=i?i:function(t){return t},this._allowResizeObserver=null===(s=null==n?void 0:n.allowResizeObserver)||void 0===s||s,this._chooseAndInitObserver()}return t.prototype.dispose=function(){var t,i;if(null===this._canvasElement)throw new Error("Object is disposed");null===(t=this._canvasElementResizeObserver)||void 0===t||t.disconnect(),this._canvasElementResizeObserver=null,null===(i=this._devicePixelRatioObservable)||void 0===i||i.dispose(),this._devicePixelRatioObservable=null,this._suggestedBitmapSizeChangedListeners.length=0,this._bitmapSizeChangedListeners.length=0,this._canvasElement=null},Object.defineProperty(t.prototype,"canvasElement",{get:function(){if(null===this._canvasElement)throw new Error("Object is disposed");return this._canvasElement},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"canvasElementClientSize",{get:function(){return this._canvasElementClientSize},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bitmapSize",{get:function(){return on({width:this.canvasElement.width,height:this.canvasElement.height})},enumerable:!1,configurable:!0}),t.prototype.resizeCanvasElement=function(t){this._canvasElementClientSize=on(t),this.canvasElement.style.width="".concat(this._canvasElementClientSize.width,"px"),this.canvasElement.style.height="".concat(this._canvasElementClientSize.height,"px"),this._invalidateBitmapSize()},t.prototype.subscribeBitmapSizeChanged=function(t){this._bitmapSizeChangedListeners.push(t)},t.prototype.unsubscribeBitmapSizeChanged=function(t){this._bitmapSizeChangedListeners=this._bitmapSizeChangedListeners.filter((function(i){return i!==t}))},Object.defineProperty(t.prototype,"suggestedBitmapSize",{get:function(){return this._suggestedBitmapSize},enumerable:!1,configurable:!0}),t.prototype.subscribeSuggestedBitmapSizeChanged=function(t){this._suggestedBitmapSizeChangedListeners.push(t)},t.prototype.unsubscribeSuggestedBitmapSizeChanged=function(t){this._suggestedBitmapSizeChangedListeners=this._suggestedBitmapSizeChangedListeners.filter((function(i){return i!==t}))},t.prototype.applySuggestedBitmapSize=function(){if(null!==this._suggestedBitmapSize){var t=this._suggestedBitmapSize;this._suggestedBitmapSize=null,this._resizeBitmap(t),this._emitSuggestedBitmapSizeChanged(t,this._suggestedBitmapSize)}},t.prototype._resizeBitmap=function(t){var i=this.bitmapSize;_n(i,t)||(this.canvasElement.width=t.width,this.canvasElement.height=t.height,this._emitBitmapSizeChanged(i,t))},t.prototype._emitBitmapSizeChanged=function(t,i){var n=this;this._bitmapSizeChangedListeners.forEach((function(s){return s.call(n,t,i)}))},t.prototype._suggestNewBitmapSize=function(t){var i=this._suggestedBitmapSize,n=on(this._transformBitmapSize(t,this._canvasElementClientSize)),s=_n(this.bitmapSize,n)?null:n;null===i&&null===s||null!==i&&null!==s&&_n(i,s)||(this._suggestedBitmapSize=s,this._emitSuggestedBitmapSizeChanged(i,s))},t.prototype._emitSuggestedBitmapSizeChanged=function(t,i){var n=this;this._suggestedBitmapSizeChangedListeners.forEach((function(s){return s.call(n,t,i)}))},t.prototype._chooseAndInitObserver=function(){var t=this;this._allowResizeObserver?new Promise((function(t){var i=new ResizeObserver((function(n){t(n.every((function(t){return"devicePixelContentBoxSize"in t}))),i.disconnect()}));i.observe(document.body,{box:"device-pixel-content-box"})})).catch((function(){return!1})).then((function(i){return i?t._initResizeObserver():t._initDevicePixelRatioObservable()})):this._initDevicePixelRatioObservable()},t.prototype._initDevicePixelRatioObservable=function(){var t=this;if(null!==this._canvasElement){var i=dn(this._canvasElement);if(null===i)throw new Error("No window is associated with the canvas");this._devicePixelRatioObservable=function(t){return new un(t)}(i),this._devicePixelRatioObservable.subscribe((function(){return t._invalidateBitmapSize()})),this._invalidateBitmapSize()}},t.prototype._invalidateBitmapSize=function(){var t,i;if(null!==this._canvasElement){var n=dn(this._canvasElement);if(null!==n){var s=null!==(i=null===(t=this._devicePixelRatioObservable)||void 0===t?void 0:t.value)&&void 0!==i?i:n.devicePixelRatio,e=this._canvasElement.getClientRects(),r=void 0!==e[0]?function(t,i){return on({width:Math.round(t.left*i+t.width*i)-Math.round(t.left*i),height:Math.round(t.top*i+t.height*i)-Math.round(t.top*i)})}(e[0],s):on({width:this._canvasElementClientSize.width*s,height:this._canvasElementClientSize.height*s});this._suggestNewBitmapSize(r)}}},t.prototype._initResizeObserver=function(){var t=this;null!==this._canvasElement&&(this._canvasElementResizeObserver=new ResizeObserver((function(i){var n=i.find((function(i){return i.target===t._canvasElement}));if(n&&n.devicePixelContentBoxSize&&n.devicePixelContentBoxSize[0]){var s=n.devicePixelContentBoxSize[0],e=on({width:s.inlineSize,height:s.blockSize});t._suggestNewBitmapSize(e)}})),this._canvasElementResizeObserver.observe(this._canvasElement,{box:"device-pixel-content-box"}))},t}();function dn(t){return t.ownerDocument.defaultView}var fn=function(){function t(t,i,n){if(0===i.width||0===i.height)throw new TypeError("Rendering target could only be created on a media with positive width and height");if(this._mediaSize=i,0===n.width||0===n.height)throw new TypeError("Rendering target could only be created using a bitmap with positive integer width and height");this._bitmapSize=n,this._context=t}return t.prototype.useMediaCoordinateSpace=function(t){try{return this._context.save(),this._context.setTransform(1,0,0,1,0,0),this._context.scale(this._horizontalPixelRatio,this._verticalPixelRatio),t({context:this._context,mediaSize:this._mediaSize})}finally{this._context.restore()}},t.prototype.useBitmapCoordinateSpace=function(t){try{return this._context.save(),this._context.setTransform(1,0,0,1,0,0),t({context:this._context,mediaSize:this._mediaSize,bitmapSize:this._bitmapSize,horizontalPixelRatio:this._horizontalPixelRatio,verticalPixelRatio:this._verticalPixelRatio})}finally{this._context.restore()}},Object.defineProperty(t.prototype,"_horizontalPixelRatio",{get:function(){return this._bitmapSize.width/this._mediaSize.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_verticalPixelRatio",{get:function(){return this._bitmapSize.height/this._mediaSize.height},enumerable:!1,configurable:!0}),t}();function pn(t,i){var n=t.canvasElementClientSize;if(0===n.width||0===n.height)return null;var s=t.bitmapSize;if(0===s.width||0===s.height)return null;var e=t.canvasElement.getContext("2d",i);return null===e?null:new fn(e,n,s)}const vn="undefined"!=typeof window;function mn(){return!!vn&&window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1}function wn(){return!!vn&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function gn(t,i){switch(t){case"custom":return void 0!==i?"custom-object":"series";case"price-line":return"custom-price-line";case"marker":return"series-marker";case"primitive":return"primitive";default:return"series"}}function Mn(t){return t+t%2}function bn(t){vn&&void 0!==window.chrome&&t.addEventListener("mousedown",(t=>{if(1===t.button)return t.preventDefault(),!1}))}class Sn{constructor(t,i,n){this.Rf=0,this.Df=null,this.If={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.Vf=0,this.Ef=null,this.Bf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.Af=null,this.zf=!1,this.Lf=null,this.Of=null,this.Nf=!1,this.Ff=!1,this.Wf=!1,this.Hf=null,this.Uf=null,this.$f=null,this.jf=null,this.qf=null,this.Yf=null,this.Kf=null,this.Gf=0,this.Zf=!1,this.Xf=!1,this.Jf=!1,this.Qf=0,this.tp=null,this.ip=!wn(),this.np=t=>{this.sp(t)},this.ep=t=>{if(this.rp(t)){const i=this.hp(t);if(++this.Vf,this.Ef&&this.Vf>1){const{ap:n}=this.lp(yn(t),this.Bf);n<30&&!this.Wf&&this.op(i,this.up._p),this.cp()}}else{const i=this.hp(t);if(++this.Rf,this.Df&&this.Rf>1){const{ap:n}=this.lp(yn(t),this.If);n<5&&!this.Ff&&this.dp(i,this.up.fp),this.pp()}}},this.vp=t,this.up=i,this.yn=n,this.mp()}m(){null!==this.Hf&&(this.Hf(),this.Hf=null),null!==this.Uf&&(this.Uf(),this.Uf=null),null!==this.jf&&(this.jf(),this.jf=null),null!==this.qf&&(this.qf(),this.qf=null),null!==this.Yf&&(this.Yf(),this.Yf=null),null!==this.$f&&(this.$f(),this.$f=null),this.wp(),this.pp()}gp(t){this.jf&&this.jf();const i=this.Mp.bind(this);if(this.jf=()=>{this.vp.removeEventListener("mousemove",i)},this.vp.addEventListener("mousemove",i),this.rp(t))return;const n=this.hp(t);this.dp(n,this.up.bp),this.ip=!0}pp(){null!==this.Df&&clearTimeout(this.Df),this.Rf=0,this.Df=null,this.If={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}cp(){null!==this.Ef&&clearTimeout(this.Ef),this.Vf=0,this.Ef=null,this.Bf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}Mp(t){if(this.Jf||null!==this.Of)return;if(this.rp(t))return;const i=this.hp(t);this.dp(i,this.up.Sp),this.ip=!0}xp(t){const i=kn(t.changedTouches,a(this.tp));if(null===i)return;if(this.Qf=Pn(t),null!==this.Kf)return;if(this.Xf)return;this.Zf=!0;const n=this.lp(yn(i),a(this.Of)),{Cp:s,yp:e,ap:r}=n;if(this.Nf||!(r<5)){if(!this.Nf){const t=.5*s,i=e>=t&&!this.yn.Pp(),n=t>e&&!this.yn.kp();i||n||(this.Xf=!0),this.Nf=!0,this.Wf=!0,this.wp(),this.cp()}if(!this.Xf){const n=this.hp(t,i);this.op(n,this.up.Tp),Cn(t)}}}Rp(t){if(0!==t.button)return;const i=this.lp(yn(t),a(this.Lf)),{ap:n}=i;if(n>=5&&(this.Ff=!0,this.pp()),this.Ff){const i=this.hp(t);this.dp(i,this.up.Dp)}}lp(t,i){const n=Math.abs(i._t-t._t),s=Math.abs(i.ut-t.ut);return{Cp:n,yp:s,ap:n+s}}Ip(t){let i=kn(t.changedTouches,a(this.tp));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.tp=null,this.Qf=Pn(t),this.wp(),this.Of=null,this.Yf&&(this.Yf(),this.Yf=null);const n=this.hp(t,i);if(this.op(n,this.up.Vp),++this.Vf,this.Ef&&this.Vf>1){const{ap:t}=this.lp(yn(i),this.Bf);t<30&&!this.Wf&&this.op(n,this.up._p),this.cp()}else this.Wf||(this.op(n,this.up.Ep),this.up.Ep&&Cn(t));0===this.Vf&&Cn(t),0===t.touches.length&&this.zf&&(this.zf=!1,Cn(t))}sp(t){if(0!==t.button)return;const i=this.hp(t);if(this.Lf=null,this.Jf=!1,this.qf&&(this.qf(),this.qf=null),mn()){this.vp.ownerDocument.documentElement.removeEventListener("mouseleave",this.np)}if(!this.rp(t))if(this.dp(i,this.up.Bp),++this.Rf,this.Df&&this.Rf>1){const{ap:n}=this.lp(yn(t),this.If);n<5&&!this.Ff&&this.dp(i,this.up.fp),this.pp()}else this.Ff||this.dp(i,this.up.Ap)}wp(){null!==this.Af&&(clearTimeout(this.Af),this.Af=null)}zp(t){if(null!==this.tp)return;const i=t.changedTouches[0];this.tp=i.identifier,this.Qf=Pn(t);const n=this.vp.ownerDocument.documentElement;this.Wf=!1,this.Nf=!1,this.Xf=!1,this.Of=yn(i),this.Yf&&(this.Yf(),this.Yf=null);{const i=this.xp.bind(this),s=this.Ip.bind(this);this.Yf=()=>{n.removeEventListener("touchmove",i),n.removeEventListener("touchend",s)},n.addEventListener("touchmove",i,{passive:!1}),n.addEventListener("touchend",s,{passive:!1}),this.wp(),this.Af=setTimeout(this.Lp.bind(this,t),240)}const s=this.hp(t,i);this.op(s,this.up.Op),this.Ef||(this.Vf=0,this.Ef=setTimeout(this.cp.bind(this),500),this.Bf=yn(i))}Np(t){if(0!==t.button)return;const i=this.vp.ownerDocument.documentElement;mn()&&i.addEventListener("mouseleave",this.np),this.Ff=!1,this.Lf=yn(t),this.qf&&(this.qf(),this.qf=null);{const t=this.Rp.bind(this),n=this.sp.bind(this);this.qf=()=>{i.removeEventListener("mousemove",t),i.removeEventListener("mouseup",n)},i.addEventListener("mousemove",t),i.addEventListener("mouseup",n)}if(this.Jf=!0,this.rp(t))return;const n=this.hp(t);this.dp(n,this.up.Fp),this.Df||(this.Rf=0,this.Df=setTimeout(this.pp.bind(this),500),this.If=yn(t))}mp(){this.vp.addEventListener("mouseenter",this.gp.bind(this)),this.vp.addEventListener("touchcancel",this.wp.bind(this));{const t=this.vp.ownerDocument,i=t=>{this.up.Wp&&(t.composed&&this.vp.contains(t.composedPath()[0])||t.target&&this.vp.contains(t.target)||this.up.Wp())};this.Uf=()=>{t.removeEventListener("touchstart",i)},this.Hf=()=>{t.removeEventListener("mousedown",i)},t.addEventListener("mousedown",i),t.addEventListener("touchstart",i,{passive:!0})}wn()&&(this.$f=()=>{this.vp.removeEventListener("dblclick",this.ep)},this.vp.addEventListener("dblclick",this.ep)),this.vp.addEventListener("mouseleave",this.Hp.bind(this)),this.vp.addEventListener("touchstart",this.zp.bind(this),{passive:!0}),bn(this.vp),this.vp.addEventListener("mousedown",this.Np.bind(this)),this.Up(),this.vp.addEventListener("touchmove",(()=>{}),{passive:!1})}Up(){void 0===this.up.$p&&void 0===this.up.jp&&void 0===this.up.qp||(this.vp.addEventListener("touchstart",(t=>this.Yp(t.touches)),{passive:!0}),this.vp.addEventListener("touchmove",(t=>{if(2===t.touches.length&&null!==this.Kf&&void 0!==this.up.jp){const i=xn(t.touches[0],t.touches[1])/this.Gf;this.up.jp(this.Kf,i),Cn(t)}}),{passive:!1}),this.vp.addEventListener("touchend",(t=>{this.Yp(t.touches)})))}Yp(t){1===t.length&&(this.Zf=!1),2!==t.length||this.Zf||this.zf?this.Kp():this.Gp(t)}Gp(t){const i=this.vp.getBoundingClientRect()||{left:0,top:0};this.Kf={_t:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,ut:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Gf=xn(t[0],t[1]),void 0!==this.up.$p&&this.up.$p(),this.wp()}Kp(){null!==this.Kf&&(this.Kf=null,void 0!==this.up.qp&&this.up.qp())}Hp(t){if(this.jf&&this.jf(),this.rp(t))return;if(!this.ip)return;const i=this.hp(t);this.dp(i,this.up.Zp),this.ip=!wn()}Lp(t){const i=kn(t.touches,a(this.tp));if(null===i)return;const n=this.hp(t,i);this.op(n,this.up.Xp),this.Wf=!0,this.zf=!0}rp(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:Pn(t)<this.Qf+500}op(t,i){i&&i.call(this.up,t)}dp(t,i){i&&i.call(this.up,t)}hp(t,i){const n=i||t,s=this.vp.getBoundingClientRect()||{left:0,top:0};return{clientX:n.clientX,clientY:n.clientY,pageX:n.pageX,pageY:n.pageY,screenX:n.screenX,screenY:n.screenY,localX:n.clientX-s.left,localY:n.clientY-s.top,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey,Jp:!t.type.startsWith("mouse")&&"contextmenu"!==t.type&&"click"!==t.type,Qp:t.type,tv:n.target,xu:t.view,iv:()=>{"touchstart"!==t.type&&Cn(t)}}}}function xn(t,i){const n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function Cn(t){t.cancelable&&t.preventDefault()}function yn(t){return{_t:t.pageX,ut:t.pageY}}function Pn(t){return t.timeStamp||performance.now()}function kn(t,i){for(let n=0;n<t.length;++n)if(t[n].identifier===i)return t[n];return null}class Tn{constructor(t,i,n){this.nv=null,this.sv=null,this.ev=!0,this.rv=null,this.hv=t,this.av=t.lv()[i],this.ov=t.lv()[n],this._v=document.createElement("tr"),this._v.style.height="1px",this.uv=document.createElement("td"),this.uv.style.position="relative",this.uv.style.padding="0",this.uv.style.margin="0",this.uv.setAttribute("colspan","3"),this.cv(),this._v.appendChild(this.uv),this.ev=this.hv.N().layout.panes.enableResize,this.ev?this.dv():(this.nv=null,this.sv=null)}m(){null!==this.sv&&this.sv.m()}fv(){return this._v}pv(){return on({width:this.av.pv().width,height:1})}vv(){return on({width:this.av.vv().width,height:1*window.devicePixelRatio})}mv(t,i,n){const s=this.vv();t.fillStyle=this.hv.N().layout.panes.separatorColor,t.fillRect(i,n,s.width,s.height)}Pt(){this.cv(),this.hv.N().layout.panes.enableResize!==this.ev&&(this.ev=this.hv.N().layout.panes.enableResize,this.ev?this.dv():(null!==this.nv&&(this.uv.removeChild(this.nv.wv),this.uv.removeChild(this.nv.gv),this.nv=null),null!==this.sv&&(this.sv.m(),this.sv=null)))}dv(){const t=document.createElement("div"),i=t.style;i.position="fixed",i.display="none",i.zIndex="49",i.top="0",i.left="0",i.width="100%",i.height="100%",i.cursor="row-resize",this.uv.appendChild(t);const n=document.createElement("div"),s=n.style;s.position="absolute",s.zIndex="50",s.top="-4px",s.height="9px",s.width="100%",s.backgroundColor="",s.cursor="row-resize",this.uv.appendChild(n);const e={bp:this.Mv.bind(this),Zp:this.bv.bind(this),Fp:this.Sv.bind(this),Op:this.Sv.bind(this),Dp:this.xv.bind(this),Tp:this.xv.bind(this),Bp:this.Cv.bind(this),Vp:this.Cv.bind(this)};this.sv=new Sn(n,e,{Pp:()=>!1,kp:()=>!0}),this.nv={gv:n,wv:t}}cv(){this.uv.style.background=this.hv.N().layout.panes.separatorColor}Mv(t){null!==this.nv&&(this.nv.gv.style.backgroundColor=this.hv.N().layout.panes.separatorHoverColor)}bv(t){null!==this.nv&&null===this.rv&&(this.nv.gv.style.backgroundColor="")}Sv(t){if(null===this.nv)return;const i=this.av.yv().F_()+this.ov.yv().F_(),n=i/(this.av.pv().height+this.ov.pv().height),s=30*n;i<=2*s||(this.rv={Pv:t.pageY,kv:this.av.yv().F_(),Tv:i-s,Rv:i,Dv:n,Iv:s},this.nv.wv.style.display="block")}xv(t){const i=this.rv;if(null===i)return;const n=(t.pageY-i.Pv)*i.Dv,s=Jt(i.kv+n,i.Iv,i.Tv);this.av.yv().W_(s),this.ov.yv().W_(i.Rv-s),this.hv.Qt().ka()}Cv(t){null!==this.rv&&null!==this.nv&&(this.rv=null,this.nv.wv.style.display="none")}}function Rn(t,i){return t.Vv-i.Vv}function Dn(t,i,n){const s=(t.Vv-i.Vv)/(t.wt-i.wt);return Math.sign(s)*Math.min(Math.abs(s),n)}class In{constructor(t,i,n,s){this.Ev=null,this.Bv=null,this.Av=null,this.zv=null,this.Lv=null,this.Ov=0,this.Nv=0,this.Fv=t,this.Wv=i,this.Hv=n,this.Ps=s}Uv(t,i){if(null!==this.Ev){if(this.Ev.wt===i)return void(this.Ev.Vv=t);if(Math.abs(this.Ev.Vv-t)<this.Ps)return}this.zv=this.Av,this.Av=this.Bv,this.Bv=this.Ev,this.Ev={wt:i,Vv:t}}me(t,i){if(null===this.Ev||null===this.Bv)return;if(i-this.Ev.wt>50)return;let n=0;const s=Dn(this.Ev,this.Bv,this.Wv),e=Rn(this.Ev,this.Bv),r=[s],h=[e];if(n+=e,null!==this.Av){const t=Dn(this.Bv,this.Av,this.Wv);if(Math.sign(t)===Math.sign(s)){const i=Rn(this.Bv,this.Av);if(r.push(t),h.push(i),n+=i,null!==this.zv){const t=Dn(this.Av,this.zv,this.Wv);if(Math.sign(t)===Math.sign(s)){const i=Rn(this.Av,this.zv);r.push(t),h.push(i),n+=i}}}}let a=0;for(let t=0;t<r.length;++t)a+=h[t]/n*r[t];Math.abs(a)<this.Fv||(this.Lv={Vv:t,wt:i},this.Nv=a,this.Ov=function(t,i){const n=Math.log(i);return Math.log(1*n/-t)/n}(Math.abs(a),this.Hv))}Gc(t){const i=a(this.Lv),n=t-i.wt;return i.Vv+this.Nv*(Math.pow(this.Hv,n)-1)/Math.log(this.Hv)}Kc(t){return null===this.Lv||this.$v(t)===this.Ov}$v(t){const i=t-a(this.Lv).wt;return Math.min(i,this.Ov)}}class Vn{constructor(t,i){this.jv=void 0,this.qv=void 0,this.Yv=void 0,this.vn=!1,this.Kv=t,this.Gv=i,this.Zv()}Pt(){this.Zv()}Xv(){this.jv&&this.Kv.removeChild(this.jv),this.qv&&this.Kv.removeChild(this.qv),this.jv=void 0,this.qv=void 0}Jv(){return this.vn!==this.Qv()||this.Yv!==this.tm()}tm(){return this.Gv.Qt().Xi().J(this.Gv.N().layout.textColor)>160?"dark":"light"}Qv(){return this.Gv.N().layout.attributionLogo}im(){const t=new URL(location.href);return t.hostname?"&utm_source="+t.hostname+t.pathname:""}Zv(){this.Jv()&&(this.Xv(),this.vn=this.Qv(),this.vn&&(this.Yv=this.tm(),this.qv=document.createElement("style"),this.qv.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.jv=document.createElement("a"),this.jv.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.im()}`,this.jv.title="Charting by TradingView",this.jv.id="tv-attr-logo",this.jv.target="_blank",this.jv.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" 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.jv.toggleAttribute("data-dark","dark"===this.Yv),this.Kv.appendChild(this.qv),this.Kv.appendChild(this.jv)))}}function En(t,i){const n=a(t.ownerDocument).createElement("canvas");t.appendChild(n);const s=new cn(n,(e={options:{allowResizeObserver:!0},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})}).transform,e.options);var e;return s.resizeCanvasElement(i),s}function Bn(t){t.width=1,t.height=1,t.getContext("2d")?.clearRect(0,0,1,1)}function An(t,i,n,s){t.qh&&t.qh(i,n,s)}function zn(t,i,n,s){t.st(i,n,s)}function Ln(t,i,n,s){On(t(n,s),i,s)}function On(t,i,n){for(const s of t){const t=s.Tt(n);null!==t&&i(t)}}function Nn(t,i){return n=>{if(!function(t){return void 0!==t.Ft}(n))return[];return(n.Ft()?.pl()??"")!==i?[]:n.Qa?.(t)??[]}}function Fn(t,i,n,s){if(!t.length)return;let e=0;const r=t[0].$t(s,!0);let h=1===i?n/2-(t[0].Hi()-r/2):t[0].Hi()-r/2-n/2;h=Math.max(0,h);for(let r=1;r<t.length;r++){const a=t[r],l=t[r-1],o=l.$t(s,!1),_=a.Hi(),u=l.Hi();if(1===i?_>u-o:_<u+o){const s=u-o*i;a.Ui(s);const r=s-i*o/2;if((1===i?r<0:r>n)&&h>0){const s=1===i?-1-r:r-n,a=Math.min(s,h);for(let n=e;n<t.length;n++)t[n].Ui(t[n].Hi()+i*a);h-=a}}else e=r,h=1===i?u-o-_:_-(u+o)}}class Wn{constructor(t,i,n,s){this.Ki=null,this.nm=null,this.sm=!1,this.rm=new it(200),this.hm=null,this.am=0,this.lm=!1,this.om=()=>{this.lm||this.yt._m().Qt().mr()},this.um=()=>{this.lm||this.yt._m().Qt().mr()},this.yt=t,this.yn=i,this.Ro=i.layout,this.bd=n,this.dm="left"===s,this.fm=Nn("normal",s),this.pm=Nn("top",s),this.vm=Nn("bottom",s),this.uv=document.createElement("div"),this.uv.style.height="100%",this.uv.style.overflow="hidden",this.uv.style.width="25px",this.uv.style.left="0",this.uv.style.position="relative",this.wm=En(this.uv,on({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const e=this.wm.canvasElement;e.style.position="absolute",e.style.zIndex="1",e.style.left="0",e.style.top="0",this.gm=En(this.uv,on({width:16,height:16})),this.gm.subscribeSuggestedBitmapSizeChanged(this.um);const r=this.gm.canvasElement;r.style.position="absolute",r.style.zIndex="2",r.style.left="0",r.style.top="0";const h={Fp:this.Sv.bind(this),Op:this.Sv.bind(this),Dp:this.xv.bind(this),Tp:this.xv.bind(this),Wp:this.Mm.bind(this),Bp:this.Cv.bind(this),Vp:this.Cv.bind(this),fp:this.bm.bind(this),_p:this.bm.bind(this),bp:this.Sm.bind(this),Zp:this.bv.bind(this)};this.sv=new Sn(this.gm.canvasElement,h,{Pp:()=>!this.yn.handleScroll.vertTouchDrag,kp:()=>!0})}m(){this.sv.m(),this.gm.unsubscribeSuggestedBitmapSizeChanged(this.um),Bn(this.gm.canvasElement),this.gm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),Bn(this.wm.canvasElement),this.wm.dispose(),null!==this.Ki&&this.Ki.__().u(this),this.Ki=null}fv(){return this.uv}P(){return this.Ro.fontSize}xm(){const t=this.bd.N();return this.hm!==t.k&&(this.rm.Os(),this.hm=t.k),t}Cm(){if(null===this.Ki)return 0;let t=0;const i=this.xm(),n=a(this.wm.canvasElement.getContext("2d",{colorSpace:this.yt._m().N().layout.colorSpace}));n.save();const s=this.Ki.Ll();n.font=this.ym(),s.length>0&&(t=Math.max(this.rm.Ii(n,s[0].eo),this.rm.Ii(n,s[s.length-1].eo)));const e=this.Pm();for(let i=e.length;i--;){const s=this.rm.Ii(n,e[i].ri());s>t&&(t=s)}const r=this.Ki.zt();if(null!==r&&null!==this.nm&&(2!==(h=this.yn.crosshair).mode&&h.horzLine.visible&&h.horzLine.labelVisible)){const i=this.Ki.Tn(1,r),s=this.Ki.Tn(this.nm.height-2,r);t=Math.max(t,this.rm.Ii(n,this.Ki.Ji(Math.floor(Math.min(i,s))+.11111111111111,r)),this.rm.Ii(n,this.Ki.Ji(Math.ceil(Math.max(i,s))-.11111111111111,r)))}var h;n.restore();const l=t||34;return Mn(Math.ceil(i.S+i.C+i.V+i.B+5+l))}km(t){null!==this.nm&&_n(this.nm,t)||(this.nm=t,this.lm=!0,this.wm.resizeCanvasElement(t),this.gm.resizeCanvasElement(t),this.lm=!1,this.uv.style.width=`${t.width}px`,this.uv.style.height=`${t.height}px`)}Tm(){return a(this.nm).width}un(t){this.Ki!==t&&(null!==this.Ki&&this.Ki.__().u(this),this.Ki=t,t.__().i(this.wo.bind(this),this))}Ft(){return this.Ki}Os(){const t=this.yt.yv();this.yt._m().Qt().au(t,a(this.Ft()))}Rm(t){if(null===this.nm)return;const i={colorSpace:this.yt._m().N().layout.colorSpace};if(1!==t){this.Dm(),this.wm.applySuggestedBitmapSize();const t=pn(this.wm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t)})),this.yt.Em(t,this.vm),this.Bm(t),this.yt.Em(t,this.fm),this.Am(t))}this.gm.applySuggestedBitmapSize();const n=pn(this.gm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.zm(n),this.yt.Em(n,this.pm))}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.gm.canvasElement;t.drawImage(s,i,n)}}Pt(){this.Ki?.Ll()}Sv(t){if(null===this.Ki||this.Ki.Zi()||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv();this.sm=!0,i.Q_(n,this.Ki,t.localY)}xv(t){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv(),s=this.Ki;i.tu(n,s,t.localY)}Mm(){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const t=this.yt._m().Qt(),i=this.yt.yv(),n=this.Ki;this.sm&&(this.sm=!1,t.iu(i,n))}Cv(t){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv();this.sm=!1,i.iu(n,this.Ki)}bm(t){this.yn.handleScale.axisDoubleClickReset.price&&this.Os()}Sm(t){if(null===this.Ki)return;!this.yt._m().Qt().N().handleScale.axisPressedMouseMove.price||this.Ki.je()||this.Ki.No()||this.Lm(1)}bv(t){this.Lm(0)}Pm(){const t=[],i=null===this.Ki?void 0:this.Ki;return(n=>{for(let s=0;s<n.length;++s){const e=n[s].qn(this.yt.yv(),i);for(let i=0;i<e.length;i++)t.push(e[i])}})(this.yt.yv().Dt()),t}Im({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.yt.yv().Qt(),r=e.$(),h=e.af();r===h?E(t,0,0,n,s,r):z(t,0,0,n,s,r,h)}Vm({context:t,bitmapSize:i,horizontalPixelRatio:n}){if(null===this.nm||null===this.Ki||!this.Ki.N().borderVisible)return;t.fillStyle=this.Ki.N().borderColor;const s=Math.max(1,Math.floor(this.xm().S*n));let e;e=this.dm?i.width-s:0,t.fillRect(e,0,s,i.height)}Bm(t){if(null===this.nm||null===this.Ki)return;const i=this.Ki.Ll(),n=this.Ki.N(),s=this.xm(),e=this.dm?this.nm.width-s.C:0;n.borderVisible&&n.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:r,verticalPixelRatio:h})=>{t.fillStyle=n.borderColor;const a=Math.max(1,Math.floor(h)),l=Math.floor(.5*h),o=Math.round(s.C*r);t.beginPath();for(const n of i)t.rect(Math.floor(e*r),Math.round(n.Vl*h)-l,o,a);t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{t.font=this.ym(),t.fillStyle=n.textColor??this.Ro.textColor,t.textAlign=this.dm?"right":"left",t.textBaseline="middle";const r=this.dm?Math.round(e-s.V):Math.round(e+s.C+s.V),h=i.map((i=>this.rm.Di(t,i.eo)));for(let n=i.length;n--;){const s=i[n];t.fillText(s.eo,r,s.Vl+h[n])}}))}Dm(){if(null===this.nm||null===this.Ki)return;let t=this.nm.height/2;const i=[],n=this.Ki.Dt().slice(),s=this.yt.yv(),e=this.xm();this.Ki===s.Zs()&&this.yt.yv().Dt().forEach((t=>{s.Gs(t)&&n.push(t)}));const r=this.Ki.kl()[0],h=this.Ki;n.forEach((n=>{const e=n.qn(s,h);e.forEach((t=>{t.$i()&&null===t.Wi()&&(t.Ui(null),i.push(t))})),r===n&&e.length>0&&(t=e[0].Bi())}));this.Ki.N().alignLabels&&this.Om(i,e,t)}Om(t,i,n){if(null===this.nm)return;const s=t.filter((t=>t.Bi()<=n)),e=t.filter((t=>t.Bi()>n));s.sort(((t,i)=>i.Bi()-t.Bi())),s.length&&e.length&&e.push(s[0]),e.sort(((t,i)=>t.Bi()-i.Bi()));for(const n of t){const t=Math.floor(n.$t(i)/2),s=n.Bi();s>-t&&s<t&&n.Ui(t),s>this.nm.height-t&&s<this.nm.height+t&&n.Ui(this.nm.height-t)}Fn(s,1,this.nm.height,i),Fn(e,-1,this.nm.height,i)}Am(t){if(null===this.nm)return;const i=this.Pm(),n=this.xm(),s=this.dm?"right":"left";i.forEach((i=>{if(i.ji()){i.Tt(a(this.Ki)).st(t,n,this.rm,s)}}))}zm(t){if(null===this.nm||null===this.Ki)return;const i=this.yt._m().Qt(),n=[],s=this.yt.yv(),e=i.Vd().qn(s,this.Ki);e.length&&n.push(e);const r=this.xm(),h=this.dm?"right":"left";n.forEach((i=>{i.forEach((i=>{i.Tt(a(this.Ki)).st(t,r,this.rm,h)}))}))}Lm(t){this.uv.style.cursor=1===t?"ns-resize":"default"}wo(){const t=this.Cm();this.am<t&&this.yt._m().Qt().ka(),this.am=t}ym(){return g(this.Ro.fontSize,this.Ro.fontFamily)}}function Hn(t,i){return t.Xa?.(i)??[]}function Un(t,i){return t.jn?.(i)??[]}function $n(t,i){return t.cn?.(i)??[]}function jn(t,i){return t.qa?.(i)??[]}class qn{constructor(t,i){this.nm=on({width:0,height:0}),this.Nm=null,this.Fm=null,this.Wm=null,this.Hm=null,this.Um=!1,this.$m=new o,this.jm=new o,this.qm=0,this.Ym=!1,this.Km=null,this.Gm=!1,this.Zm=null,this.Xm=null,this.lm=!1,this.om=()=>{this.lm||null===this.Jm||this.sn().mr()},this.um=()=>{this.lm||null===this.Jm||this.sn().mr()},this.Gv=t,this.Jm=i,this.Jm.mu().i(this.Qm.bind(this),this,!0),this.tw=document.createElement("td"),this.tw.style.padding="0",this.tw.style.position="relative";const n=document.createElement("div");n.style.width="100%",n.style.height="100%",n.style.position="relative",n.style.overflow="hidden",this.iw=document.createElement("td"),this.iw.style.padding="0",this.nw=document.createElement("td"),this.nw.style.padding="0",this.tw.appendChild(n),this.wm=En(n,on({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const s=this.wm.canvasElement;s.style.position="absolute",s.style.zIndex="1",s.style.left="0",s.style.top="0",this.gm=En(n,on({width:16,height:16})),this.gm.subscribeSuggestedBitmapSizeChanged(this.um);const e=this.gm.canvasElement;e.style.position="absolute",e.style.zIndex="2",e.style.left="0",e.style.top="0",this._v=document.createElement("tr"),this._v.appendChild(this.iw),this._v.appendChild(this.tw),this._v.appendChild(this.nw),this.sw(),this.sv=new Sn(this.gm.canvasElement,this,{Pp:()=>null===this.Km&&!this.Gv.N().handleScroll.vertTouchDrag,kp:()=>null===this.Km&&!this.Gv.N().handleScroll.horzTouchDrag})}m(){null!==this.Nm&&this.Nm.m(),null!==this.Fm&&this.Fm.m(),this.Wm=null,this.gm.unsubscribeSuggestedBitmapSizeChanged(this.um),Bn(this.gm.canvasElement),this.gm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),Bn(this.wm.canvasElement),this.wm.dispose(),null!==this.Jm&&(this.Jm.mu().u(this),this.Jm.m()),this.sv.m()}yv(){return a(this.Jm)}ew(t){null!==this.Jm&&this.Jm.mu().u(this),this.Jm=t,null!==this.Jm&&this.Jm.mu().i(qn.prototype.Qm.bind(this),this,!0),this.sw(),this.Gv.lv().indexOf(this)===this.Gv.lv().length-1?(this.Wm=this.Wm??new Vn(this.tw,this.Gv),this.Wm.Pt()):(this.Wm?.Xv(),this.Wm=null)}_m(){return this.Gv}fv(){return this._v}sw(){if(null!==this.Jm&&(this.rw(),0!==this.sn().Jn().length)){if(null!==this.Nm){const t=this.Jm.X_();this.Nm.un(a(t))}if(null!==this.Fm){const t=this.Jm.J_();this.Fm.un(a(t))}}}hw(){null!==this.Nm&&this.Nm.Pt(),null!==this.Fm&&this.Fm.Pt()}F_(){return null!==this.Jm?this.Jm.F_():0}W_(t){this.Jm&&this.Jm.W_(t)}bp(t){if(!this.Jm)return;this.aw();const i=t.localX,n=t.localY;this.lw(i,n,t)}Fp(t){this.aw(),this.ow(),this.lw(t.localX,t.localY,t)}Sp(t){if(!this.Jm)return;this.aw();const i=t.localX,n=t.localY;this.lw(i,n,t)}Ap(t){null!==this.Jm&&(this.aw(),this.lw(t.localX,t.localY,t),this._w(t))}fp(t){null!==this.Jm&&this.uw(this.jm,t)}_p(t){this.fp(t)}Dp(t){this.aw(),this.cw(t),this.lw(t.localX,t.localY,t)}Bp(t){null!==this.Jm&&(this.aw(),this.Ym=!1,this.dw(t))}Ep(t){null!==this.Jm&&this._w(t)}Xp(t){if(this.Ym=!0,null===this.Km){const i={x:t.localX,y:t.localY};this.fw(i,i,t)}}Zp(t){null!==this.Jm&&(this.aw(),this.Jm.Qt().Rd(null),this.pw())}mw(){return this.$m}ww(){return this.jm}$p(){this.qm=1,this.sn().cs()}jp(t,i){if(!this.Gv.N().handleScale.pinch)return;const n=5*(i-this.qm);this.qm=i,this.sn().Wd(t._t,n)}Op(t){this.Ym=!1,this.Gm=null!==this.Km,this.ow();const i=this.sn().Vd();null!==this.Km&&i.It()&&(this.Zm={x:i.ni(),y:i.si()},this.Km={x:t.localX,y:t.localY})}Tp(t){if(null===this.Jm)return;const i=t.localX,n=t.localY;if(null===this.Km)this.cw(t);else{this.Gm=!1;const s=a(this.Zm),e=s.x+(i-this.Km.x),r=s.y+(n-this.Km.y);this.lw(e,r,t)}}Vp(t){0===this._m().N().trackingMode.exitMode&&(this.Gm=!0),this.gw(),this.dw(t)}Qs(t,i){const n=this.Jm;return null===n?null:Ri(n,t,i)}Mw(t,i){a("left"===i?this.Nm:this.Fm).km(on({width:t,height:this.nm.height}))}pv(){return this.nm}km(t){_n(this.nm,t)||(this.nm=t,this.lm=!0,this.wm.resizeCanvasElement(t),this.gm.resizeCanvasElement(t),this.lm=!1,this.tw.style.width=t.width+"px",this.tw.style.height=t.height+"px")}bw(){const t=a(this.Jm);t.G_(t.X_()),t.G_(t.J_());for(const i of t.kl())if(t.Gs(i)){const n=i.Ft();null!==n&&t.G_(n),i.Nn()}for(const i of t.gu())i.Nn()}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.gm.canvasElement;null!==t&&t.drawImage(s,i,n)}}Rm(t){if(0===t)return;if(null===this.Jm)return;t>1&&this.bw(),null!==this.Nm&&this.Nm.Rm(t),null!==this.Fm&&this.Fm.Rm(t);const i={colorSpace:this.Gv.N().layout.colorSpace};if(1!==t){this.wm.applySuggestedBitmapSize();const t=pn(this.wm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.Im(t)})),this.Jm&&(this.Sw(t,Hn),this.xw(t),this.Sw(t,Un),this.Sw(t,$n)))}this.gm.applySuggestedBitmapSize();const n=pn(this.gm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Cw(n),this.Sw(n,jn),this.Sw(n,$n))}yw(){return this.Nm}Pw(){return this.Fm}Em(t,i){this.Sw(t,i)}Qm(){null!==this.Jm&&this.Jm.mu().u(this),this.Jm=null}_w(t){this.uw(this.$m,t)}uw(t,i){const n=i.localX,s=i.localY;t.v()&&t.p(this.sn().Bt().Vc(n),{x:n,y:s},i)}Im({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.sn(),r=e.$(),h=e.af();r===h?E(t,0,0,n,s,h):z(t,0,0,n,s,r,h)}xw(t){const i=a(this.Jm),n=i.wu().wr().Tt(i);null!==n&&n.st(t,!1)}Cw(t){this.kw(t,Un,zn,this.sn().Vd())}Sw(t,i){const n=a(this.Jm),s=i===Un?this.Tw():null,e=null===s?null:this.Rw(s,n),r=n.gu();if(null===e||null===s){const s=n._u();return this.Dw(t,i,An,r,s),void this.Dw(t,i,zn,r,s)}const h=n.Dt(),l=t=>t===s?e.Za:void 0;this.Dw(t,i,An,r,h,l),this.Dw(t,i,zn,r,h,l),this.kw(t,i,An,s,e.qa),this.kw(t,i,zn,s,e.qa)}Dw(t,i,n,s,e,r){for(const e of s)this.kw(t,i,n,e);if(void 0!==r)for(const s of e)this.kw(t,i,n,s,r(s));else for(const s of e)this.kw(t,i,n,s)}Tw(){const t=a(this.Jm),i=t.Qt().cu()?.uu;if(!t.Qt().N().hoveredSeriesOnTop||void 0===i)return null;for(const n of t.Dt())if(n===i)return n;return null}Rw(t,i){const n=t.Ga?.(i)??null;return null===n||0===n.qa.length?null:n}kw(t,i,n,s,e){const r=a(this.Jm),h=r.Qt().cu(),l=null!==h&&h.uu===s,o=null!==h&&l&&void 0!==h.bu?h.bu.ie:void 0,_=i=>n(i,t,l,o);void 0===e?Ln(i,_,s,r):On(e,_,r)}rw(){if(null===this.Jm)return;const t=this.Gv,i=this.Jm.X_().N().visible,n=this.Jm.J_().N().visible;i||null===this.Nm||(this.iw.removeChild(this.Nm.fv()),this.Nm.m(),this.Nm=null),n||null===this.Fm||(this.nw.removeChild(this.Fm.fv()),this.Fm.m(),this.Fm=null);const s=t.Qt().Jd();i&&null===this.Nm&&(this.Nm=new Wn(this,t.N(),s,"left"),this.iw.appendChild(this.Nm.fv())),n&&null===this.Fm&&(this.Fm=new Wn(this,t.N(),s,"right"),this.nw.appendChild(this.Fm.fv()))}Iw(t){return t.Jp&&this.Ym||null!==this.Km}lw(t,i,n){t=Math.max(0,Math.min(t,this.nm.width-1)),i=Math.max(0,Math.min(i,this.nm.height-1)),this.sn().Kd(t,i,n,a(this.Jm))}pw(){this.sn().Zd()}gw(){this.Gm&&(this.Km=null,this.pw())}fw(t,i,n){this.Km=t,this.Gm=!1,this.lw(i.x,i.y,n);const s=this.sn().Vd();this.Zm={x:s.ni(),y:s.si()}}sn(){return this.Gv.Qt()}dw(t){if(!this.Um)return;const i=this.sn(),n=this.yv();if(i.eu(n,n.kn()),this.Hm=null,this.Um=!1,i.jd(),null!==this.Xm){const t=performance.now(),n=i.Bt();this.Xm.me(n.Oc(),t),this.Xm.Kc(t)||i.ps(this.Xm)}}aw(){this.Km=null}ow(){if(!this.Jm)return;if(this.sn().cs(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)a(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Jm.kn().Zi()&&this.sn().Bt().Zi()}cw(t){if(null===this.Jm)return;const i=this.sn(),n=i.Bt();if(n.Zi())return;const s=this.Gv.N(),e=s.handleScroll,r=s.kineticScroll;if((!e.pressedMouseMove||t.Jp)&&(!e.horzTouchDrag&&!e.vertTouchDrag||!t.Jp))return;const h=this.Jm.kn(),a=performance.now();if(null!==this.Hm||this.Iw(t)||(this.Hm={x:t.clientX,y:t.clientY,yf:a,Vw:t.localX,Ew:t.localY}),null!==this.Hm&&!this.Um&&(this.Hm.x!==t.clientX||this.Hm.y!==t.clientY)){if(t.Jp&&r.touch||!t.Jp&&r.mouse){const t=n.ml();this.Xm=new In(.2/t,7/t,.997,15/t),this.Xm.Uv(n.Oc(),this.Hm.yf)}else this.Xm=null;h.Zi()||i.nu(this.Jm,h,t.localY),i.Ud(t.localX),this.Um=!0}this.Um&&(h.Zi()||i.su(this.Jm,h,t.localY),i.$d(t.localX),null!==this.Xm&&this.Xm.Uv(n.Oc(),a))}}class Yn{constructor(t,i,n,s,e){this.xt=!0,this.nm=on({width:0,height:0}),this.om=()=>this.Rm(3),this.dm="left"===t,this.bd=n.Jd,this.yn=i,this.Bw=s,this.Aw=e,this.uv=document.createElement("div"),this.uv.style.width="25px",this.uv.style.height="100%",this.uv.style.overflow="hidden",this.wm=En(this.uv,on({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om)}m(){this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),Bn(this.wm.canvasElement),this.wm.dispose()}fv(){return this.uv}pv(){return this.nm}km(t){_n(this.nm,t)||(this.nm=t,this.wm.resizeCanvasElement(t),this.uv.style.width=`${t.width}px`,this.uv.style.height=`${t.height}px`,this.xt=!0)}Rm(t){if(t<3&&!this.xt)return;if(0===this.nm.width||0===this.nm.height)return;this.xt=!1,this.wm.applySuggestedBitmapSize();const i=pn(this.wm,{colorSpace:this.yn.layout.colorSpace});null!==i&&i.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t)}))}vv(){return this.wm.bitmapSize}mv(t,i,n){const s=this.vv();s.width>0&&s.height>0&&t.drawImage(this.wm.canvasElement,i,n)}Vm({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(!this.Bw())return;t.fillStyle=this.yn.timeScale.borderColor;const e=Math.floor(this.bd.N().S*n),r=Math.floor(this.bd.N().S*s),h=this.dm?i.width-e:0;t.fillRect(h,0,e,r)}Im({context:t,bitmapSize:i}){E(t,0,0,i.width,i.height,this.Aw())}}function Kn(t){return i=>i.tl?.(t)??[]}const Gn=Kn("normal"),Zn=Kn("top"),Xn=Kn("bottom");class Jn{constructor(t,i){this.zw=null,this.Lw=null,this.M=null,this.Ow=!1,this.nm=on({width:0,height:0}),this.Nw=new o,this.rm=new it(5),this.lm=!1,this.om=()=>{this.lm||this.Gv.Qt().mr()},this.um=()=>{this.lm||this.Gv.Qt().mr()},this.Gv=t,this.Pu=i,this.yn=t.N().layout,this.jv=document.createElement("tr"),this.Fw=document.createElement("td"),this.Fw.style.padding="0",this.Ww=document.createElement("td"),this.Ww.style.padding="0",this.uv=document.createElement("td"),this.uv.style.height="25px",this.uv.style.padding="0",this.Hw=document.createElement("div"),this.Hw.style.width="100%",this.Hw.style.height="100%",this.Hw.style.position="relative",this.Hw.style.overflow="hidden",this.uv.appendChild(this.Hw),this.wm=En(this.Hw,on({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const n=this.wm.canvasElement;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.gm=En(this.Hw,on({width:16,height:16})),this.gm.subscribeSuggestedBitmapSizeChanged(this.um);const s=this.gm.canvasElement;s.style.position="absolute",s.style.zIndex="2",s.style.left="0",s.style.top="0",this.jv.appendChild(this.Fw),this.jv.appendChild(this.uv),this.jv.appendChild(this.Ww),this.Uw(),this.Gv.Qt().N_().i(this.Uw.bind(this),this),this.sv=new Sn(this.gm.canvasElement,this,{Pp:()=>!0,kp:()=>!this.Gv.N().handleScroll.horzTouchDrag})}m(){this.sv.m(),null!==this.zw&&this.zw.m(),null!==this.Lw&&this.Lw.m(),this.gm.unsubscribeSuggestedBitmapSizeChanged(this.um),Bn(this.gm.canvasElement),this.gm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),Bn(this.wm.canvasElement),this.wm.dispose()}fv(){return this.jv}$w(){return this.zw}jw(){return this.Lw}Fp(t){if(this.Ow)return;this.Ow=!0;const i=this.Gv.Qt();!i.Bt().Zi()&&this.Gv.N().handleScale.axisPressedMouseMove.time&&i.Fd(t.localX)}Op(t){this.Fp(t)}Wp(){const t=this.Gv.Qt();!t.Bt().Zi()&&this.Ow&&(this.Ow=!1,this.Gv.N().handleScale.axisPressedMouseMove.time&&t.Yd())}Dp(t){const i=this.Gv.Qt();!i.Bt().Zi()&&this.Gv.N().handleScale.axisPressedMouseMove.time&&i.qd(t.localX)}Tp(t){this.Dp(t)}Bp(){this.Ow=!1;const t=this.Gv.Qt();t.Bt().Zi()&&!this.Gv.N().handleScale.axisPressedMouseMove.time||t.Yd()}Vp(){this.Bp()}fp(){this.Gv.N().handleScale.axisDoubleClickReset.time&&this.Gv.Qt().ws()}_p(){this.fp()}bp(){this.Gv.Qt().N().handleScale.axisPressedMouseMove.time&&this.Lm(1)}Zp(){this.Lm(0)}pv(){return this.nm}qw(){return this.Nw}Yw(t,i,n){_n(this.nm,t)||(this.nm=t,this.lm=!0,this.wm.resizeCanvasElement(t),this.gm.resizeCanvasElement(t),this.lm=!1,this.uv.style.width=`${t.width}px`,this.uv.style.height=`${t.height}px`,this.Nw.p(t)),null!==this.zw&&this.zw.km(on({width:i,height:t.height})),null!==this.Lw&&this.Lw.km(on({width:n,height:t.height}))}Kw(){const t=this.Gw();return Math.ceil(t.S+t.C+t.P+t.A+t.I+t.Zw)}Pt(){this.Gv.Qt().Bt().Ll()}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.gm.canvasElement;t.drawImage(s,i,n)}}Rm(t){if(0===t)return;const i={colorSpace:this.yn.colorSpace};if(1!==t){this.wm.applySuggestedBitmapSize();const n=pn(this.wm,i);null!==n&&(n.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t),this.Xw(n,Xn)})),this.Bm(n),this.Xw(n,Gn)),null!==this.zw&&this.zw.Rm(t),null!==this.Lw&&this.Lw.Rm(t)}this.gm.applySuggestedBitmapSize();const n=pn(this.gm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Jw([...this.Gv.Qt().Jn(),this.Gv.Qt().Vd()],n),this.Xw(n,Zn))}Xw(t,i){const n=this.Gv.Qt().Jn();for(const s of n)Ln(i,(i=>An(i,t,!1,void 0)),s,void 0);for(const s of n)Ln(i,(i=>zn(i,t,!1,void 0)),s,void 0)}Im({context:t,bitmapSize:i}){E(t,0,0,i.width,i.height,this.Gv.Qt().af())}Vm({context:t,bitmapSize:i,verticalPixelRatio:n}){if(this.Gv.N().timeScale.borderVisible){t.fillStyle=this.Qw();const s=Math.max(1,Math.floor(this.Gw().S*n));t.fillRect(0,0,i.width,s)}}Bm(t){const i=this.Gv.Qt().Bt(),n=i.Ll();if(!n||0===n.length)return;const s=this.Pu.maxTickMarkWeight(n),e=this.Gw(),r=i.N();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:i,verticalPixelRatio:s})=>{t.strokeStyle=this.Qw(),t.fillStyle=this.Qw();const r=Math.max(1,Math.floor(i)),h=Math.floor(.5*i);t.beginPath();const a=Math.round(e.C*s);for(let s=n.length;s--;){const e=Math.round(n[s].coord*i);t.rect(e-h,0,r,a)}t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{const i=e.S+e.C+e.A+e.P/2;t.textAlign="center",t.textBaseline="middle",t.fillStyle=this.H(),t.font=this.ym();for(const e of n)if(e.weight<s){const n=e.needAlignCoordinate?this.tg(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}this.Gv.N().timeScale.allowBoldLabels&&(t.font=this.ig());for(const e of n)if(e.weight>=s){const n=e.needAlignCoordinate?this.tg(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}}))}tg(t,i,n){const s=this.rm.Ii(t,n),e=s/2,r=Math.floor(i-e)+.5;return r<0?i+=Math.abs(0-r):r+s>this.nm.width&&(i-=Math.abs(this.nm.width-(r+s))),i}Jw(t,i){const n=this.Gw();for(const s of t)for(const t of s.dn())t.Tt().st(i,n)}Qw(){return this.Gv.N().timeScale.borderColor}H(){return this.yn.textColor}F(){return this.yn.fontSize}ym(){return g(this.F(),this.yn.fontFamily)}ig(){return g(this.F(),this.yn.fontFamily,"bold")}Gw(){null===this.M&&(this.M={S:1,L:NaN,A:NaN,I:NaN,tn:NaN,C:5,P:NaN,k:"",Qi:new it,Zw:0});const t=this.M,i=this.ym();if(t.k!==i){const n=this.F();t.P=n,t.k=i,t.A=3*n/12,t.I=3*n/12,t.tn=9*n/12,t.L=0,t.Zw=4*n/12,t.Qi.Os()}return this.M}Lm(t){this.uv.style.cursor=1===t?"ew-resize":"default"}Uw(){const t=this.Gv.Qt(),i=t.N();i.leftPriceScale.visible||null===this.zw||(this.Fw.removeChild(this.zw.fv()),this.zw.m(),this.zw=null),i.rightPriceScale.visible||null===this.Lw||(this.Ww.removeChild(this.Lw.fv()),this.Lw.m(),this.Lw=null);const n={Jd:this.Gv.Qt().Jd()},s=()=>i.leftPriceScale.borderVisible&&t.Bt().N().borderVisible,e=()=>t.af();i.leftPriceScale.visible&&null===this.zw&&(this.zw=new Yn("left",i,n,s,e),this.Fw.appendChild(this.zw.fv())),i.rightPriceScale.visible&&null===this.Lw&&(this.Lw=new Yn("right",i,n,s,e),this.Ww.appendChild(this.Lw.fv()))}}const Qn=!!vn&&!!navigator.userAgentData&&navigator.userAgentData.brands.some((t=>t.brand.includes("Chromium")))&&!!vn&&(navigator?.userAgentData?.platform?"Windows"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf("win")>=0);class ts{constructor(t,i,n){var s;this.ng=[],this.sg=[],this.eg=0,this.oo=0,this.k_=0,this.rg=0,this.hg=0,this.ag=null,this.lg=!1,this.$m=new o,this.jm=new o,this.wd=new o,this.og=null,this._g=null,this.Kv=t,this.yn=i,this.Pu=n,this.jv=document.createElement("div"),this.jv.classList.add("tv-lightweight-charts"),this.jv.style.overflow="hidden",this.jv.style.direction="ltr",this.jv.style.width="100%",this.jv.style.height="100%",(s=this.jv).style.userSelect="none",s.style.webkitUserSelect="none",s.style.msUserSelect="none",s.style.MozUserSelect="none",s.style.webkitTapHighlightColor="transparent",this.ug=document.createElement("table"),this.ug.setAttribute("cellspacing","0"),this.jv.appendChild(this.ug),this.cg=this.dg.bind(this),is(this.yn)&&this.fg(!0),this.sn=new Hi(this.Md.bind(this),this.yn,n),this.Qt().Ed().i(this.pg.bind(this),this),this.vg=new Jn(this,this.Pu),this.ug.appendChild(this.vg.fv());const e=i.autoSize&&this.mg();let r=this.yn.width,h=this.yn.height;if(e||0===r||0===h){const i=t.getBoundingClientRect();r=r||i.width,h=h||i.height}this.wg(r,h),this.gg(),t.appendChild(this.jv),this.Mg(),this.sn.Bt().Jc().i(this.sn.ka.bind(this.sn),this),this.sn.N_().i(this.sn.ka.bind(this.sn),this)}Qt(){return this.sn}N(){return this.yn}lv(){return this.ng}bg(){return this.vg}m(){this.fg(!1),0!==this.eg&&window.cancelAnimationFrame(this.eg),this.sn.Ed().u(this),this.sn.Bt().Jc().u(this),this.sn.N_().u(this),this.sn.m();for(const t of this.ng)this.ug.removeChild(t.fv()),t.mw().u(this),t.ww().u(this),t.m();this.ng=[];for(const t of this.sg)this.Sg(t);this.sg=[],a(this.vg).m(),null!==this.jv.parentElement&&this.jv.parentElement.removeChild(this.jv),this.wd.m(),this.$m.m(),this.jm.m(),this.xg()}wg(t,i,n=!1){if(this.oo===i&&this.k_===t)return;const s=function(t){const i=Math.floor(t.width),n=Math.floor(t.height);return on({width:i-i%2,height:n-n%2})}(on({width:t,height:i}));this.oo=s.height,this.k_=s.width;const e=this.oo+"px",r=this.k_+"px";if(this.Cg()||(a(this.jv).style.height=e,a(this.jv).style.width=r),this.ug.style.height=e,this.ug.style.width=r,n){0!==this.eg&&(window.cancelAnimationFrame(this.eg),this.eg=0),this.lg=!1;const t=Y.ys();null!==this.ag&&(t.Ss(this.ag),this.ag=null),this.yg(t,performance.now())}else this.sn.ka()}Rm(t){void 0===t&&(t=Y.ys());for(let i=0;i<this.ng.length;i++)this.ng[i].Rm(t._s(i).rs);this.yn.timeScale.visible&&this.vg.Rm(t.ls())}vr(t){const i=is(this.yn);this.sn.vr(t);const n=is(this.yn);n!==i&&this.fg(n),t.layout?.panes&&this.Pg(),this.Mg(),this.kg(t)}mw(){return this.$m}ww(){return this.jm}Ed(){return this.wd}Tg(t=!1){null!==this.ag&&(this.yg(this.ag,performance.now()),this.ag=null);const i=this.Rg(null),n=document.createElement("canvas");n.width=i.width,n.height=i.height;const s=a(n.getContext("2d"));return this.Rg(s,t),n}Dg(t){if("left"===t&&!this.Ig())return 0;if("right"===t&&!this.Vg())return 0;if(0===this.ng.length)return 0;return a("left"===t?this.ng[0].yw():this.ng[0].Pw()).Tm()}Cg(){return this.yn.autoSize&&null!==this.og}gv(){return this.jv}Eg(t){this._g=t,this._g?this.gv().style.setProperty("cursor",t):this.gv().style.removeProperty("cursor")}Bg(){return this._g}Ag(t){return h(this.ng[t]).pv()}Pg(){this.sg.forEach((t=>{t.Pt()}))}kg(t){(void 0!==t.autoSize||!this.og||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.og&&this.mg(),!1===t.autoSize&&null!==this.og&&this.xg(),t.autoSize||void 0===t.width&&void 0===t.height||this.wg(t.width||this.k_,t.height||this.oo))}Rg(t,i){let n=0,s=0;const e=this.ng[0],r=(n,s)=>{let e=0;for(let r=0;r<this.ng.length;r++){const h=this.ng[r],l=a("left"===n?h.yw():h.Pw()),o=l.vv();if(null!==t&&l.mv(t,s,e,i),e+=o.height,r<this.ng.length-1){const i=this.sg[r],n=i.vv();null!==t&&i.mv(t,s,e),e+=n.height}}};if(this.Ig()){r("left",0);n+=a(e.yw()).vv().width}for(let e=0;e<this.ng.length;e++){const r=this.ng[e],h=r.vv();if(null!==t&&r.mv(t,n,s,i),s+=h.height,e<this.ng.length-1){const i=this.sg[e],r=i.vv();null!==t&&i.mv(t,n,s),s+=r.height}}if(n+=e.vv().width,this.Vg()){r("right",n);n+=a(e.Pw()).vv().width}const h=(i,n,s)=>{a("left"===i?this.vg.$w():this.vg.jw()).mv(a(t),n,s)};if(this.yn.timeScale.visible){const n=this.vg.vv();if(null!==t){let r=0;this.Ig()&&(h("left",r,s),r=a(e.yw()).vv().width),this.vg.mv(t,r,s,i),r+=n.width,this.Vg()&&h("right",r,s)}s+=n.height}return on({width:n,height:s})}zg(){let t=0,i=0,n=0;for(const s of this.ng)this.Ig()&&(i=Math.max(i,a(s.yw()).Cm(),this.yn.leftPriceScale.minimumWidth)),this.Vg()&&(n=Math.max(n,a(s.Pw()).Cm(),this.yn.rightPriceScale.minimumWidth)),t+=s.F_();i=Mn(i),n=Mn(n);const s=this.k_,e=this.oo,r=Math.max(s-i-n,0),h=1*this.sg.length,l=this.yn.timeScale.visible;let o=l?Math.max(this.vg.Kw(),this.yn.timeScale.minimumHeight):0;var _;o=(_=o)+_%2;const u=h+o,c=e<u?0:e-u,d=c/t;let f=0;const p=window.devicePixelRatio||1;for(let t=0;t<this.ng.length;++t){const s=this.ng[t];s.ew(this.sn.Gn()[t]);let e=0,h=0;h=t===this.ng.length-1?Math.ceil((c-f)*p)/p:Math.round(s.F_()*d*p)/p,e=Math.max(h,2),f+=e,s.km(on({width:r,height:e})),this.Ig()&&s.Mw(i,"left"),this.Vg()&&s.Mw(n,"right"),s.yv()&&this.sn.Bd(s.yv(),e)}this.vg.Yw(on({width:l?r:0,height:o}),l?i:0,l?n:0),this.sn.H_(r),this.rg!==i&&(this.rg=i),this.hg!==n&&(this.hg=n)}fg(t){t?this.jv.addEventListener("wheel",this.cg,{passive:!1}):this.jv.removeEventListener("wheel",this.cg)}Lg(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return Qn?1/window.devicePixelRatio:1}dg(t){if(!(0!==t.deltaX&&this.yn.handleScroll.mouseWheel||0!==t.deltaY&&this.yn.handleScale.mouseWheel))return;const i=this.Lg(t),n=i*t.deltaX/100,s=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),0!==s&&this.yn.handleScale.mouseWheel){const i=Math.sign(s)*Math.min(1,Math.abs(s)),n=t.clientX-this.jv.getBoundingClientRect().left;this.Qt().Wd(n,i)}0!==n&&this.yn.handleScroll.mouseWheel&&this.Qt().Hd(-80*n)}yg(t,i){const n=t.ls();3===n&&this.Og(),3!==n&&2!==n||(this.Ng(t),this.Fg(t,i),this.vg.Pt(),this.ng.forEach((t=>{t.hw()})),3===this.ag?.ls()&&(this.ag.Ss(t),this.Og(),this.Ng(this.ag),this.Fg(this.ag,i),t=this.ag,this.ag=null)),this.Rm(t)}Fg(t,i){for(const n of t.bs())this.xs(n,i)}Ng(t){const i=this.sn.Gn();for(let n=0;n<i.length;n++)t._s(n).hs&&i[n].lu()}xs(t,i){const n=this.sn.Bt();switch(t.ds){case 0:n.td();break;case 1:n.nd(t.Wt);break;case 2:n.gs(t.Wt);break;case 3:n.Ms(t.Wt);break;case 4:n.Wc();break;case 5:t.Wt.Kc(i)||n.Ms(t.Wt.Gc(i))}}Md(t){null!==this.ag?this.ag.Ss(t):this.ag=t,this.lg||(this.lg=!0,this.eg=window.requestAnimationFrame((t=>{if(this.lg=!1,this.eg=0,null!==this.ag){const i=this.ag;this.ag=null,this.yg(i,t);for(const n of i.bs())if(5===n.ds&&!n.Wt.Kc(t)){this.Qt().ps(n.Wt);break}}})))}Og(){this.gg()}Sg(t){this.ug.removeChild(t.fv()),t.m()}gg(){const t=this.sn.Gn(),i=t.length,n=this.ng.length;for(let t=i;t<n;t++){const t=h(this.ng.pop());this.ug.removeChild(t.fv()),t.mw().u(this),t.ww().u(this),t.m();const i=this.sg.pop();void 0!==i&&this.Sg(i)}for(let s=n;s<i;s++){const i=new qn(this,t[s]);if(i.mw().i(this.Wg.bind(this,i),this),i.ww().i(this.Hg.bind(this,i),this),this.ng.push(i),s>0){const t=new Tn(this,s-1,s);this.sg.push(t),this.ug.insertBefore(t.fv(),this.vg.fv())}this.ug.insertBefore(i.fv(),this.vg.fv())}for(let n=0;n<i;n++){const i=t[n],s=this.ng[n];s.yv()!==i?s.ew(i):s.sw()}this.Mg(),this.zg()}Ug(t,i,n,s){const e=new Map;if(null!==t){this.sn.Jn().forEach((i=>{const n=i.Un().Hn(t);null!==n&&e.set(i,n)}))}let r;if(null!==t){const i=this.sn.Bt().en(t)?.originalTime;void 0!==i&&(r=i)}const h=this.Qt().cu(),a=this.$g(s),l=function(t,i){const n=null!==t&&t.uu instanceof Kt?t.uu:void 0,s=t?.bu?.te,e=void 0!==i&&-1!==i?i:void 0;return null===t||void 0===t.ee?{jg:n,qg:s}:{jg:n,qg:s,Yg:{ds:t.ee,Kg:(r=t.uu,h=t.ee,r instanceof Si?"pane-primitive":"marker"===h||"primitive"===h?"series-primitive":"series"),Gg:gn(t.ee,s),Y_:n,Zg:s,Xg:e}};var r,h}(h,a);return{Qr:r,$n:t??void 0,Jg:i??void 0,Xg:-1!==a?a:void 0,jg:l.jg,Qg:e,qg:l.qg,Yg:l.Yg,tM:n??void 0}}$g(t){let i=-1;if(t)i=this.ng.indexOf(t);else{const t=this.Qt().Vd().Kn();null!==t&&(i=this.Qt().Gn().indexOf(t))}return i}Wg(t,i,n,s){this.$m.p((()=>this.Ug(i,n,s,t)))}Hg(t,i,n,s){this.jm.p((()=>this.Ug(i,n,s,t)))}pg(t,i,n){this.Eg(this.Qt().cu()?.Mu??null),this.wd.p((()=>this.Ug(t,i,n)))}Mg(){const t=this.yn.timeScale.visible?"":"none";this.vg.fv().style.display=t}Ig(){return this.ng[0].yv().X_().N().visible}Vg(){return this.ng[0].yv().J_().N().visible}mg(){return"ResizeObserver"in window&&(this.og=new ResizeObserver((t=>{const i=t[t.length-1];if(!i)return;const n=i.contentRect.width,s=i.contentRect.height;this.wg(n,s,!0)})),this.og.observe(this.Kv,{box:"border-box"}),!0)}xg(){null!==this.og&&this.og.disconnect(),this.og=null}}function is(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function ns(t){return void 0===t.open&&void 0===t.value}function ss(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}function es(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.color&&(r.R=n.color),r}function rs(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.lineColor&&(r.vt=n.lineColor),void 0!==n.topColor&&(r.ah=n.topColor),void 0!==n.bottomColor&&(r.oh=n.bottomColor),r}function hs(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.topLineColor&&(r._h=n.topLineColor),void 0!==n.bottomLineColor&&(r.uh=n.bottomLineColor),void 0!==n.topFillColor1&&(r.dh=n.topFillColor1),void 0!==n.topFillColor2&&(r.fh=n.topFillColor2),void 0!==n.bottomFillColor1&&(r.ph=n.bottomFillColor1),void 0!==n.bottomFillColor2&&(r.mh=n.bottomFillColor2),r}function as(t,i,n,s){const e={$n:i,wt:t,Wt:[n.open,n.high,n.low,n.close],Qr:s};return void 0!==n.color&&(e.R=n.color),e}function ls(t,i,n,s){const e={$n:i,wt:t,Wt:[n.open,n.high,n.low,n.close],Qr:s};return void 0!==n.color&&(e.R=n.color),void 0!==n.borderColor&&(e.Ht=n.borderColor),void 0!==n.wickColor&&(e.hh=n.wickColor),e}function os(t,i,n,s,e){const r=h(e)(n),a=Math.max(...r),l=Math.min(...r),o=r[r.length-1],_=[o,a,l,o],{time:u,color:c,...d}=n;return{$n:i,wt:t,Wt:_,Qr:s,ue:d,R:c}}function _s(t){return void 0!==t.Wt}function us(t,i){return void 0!==i.customValues&&(t.iM=i.customValues),t}function cs(t){return(i,n,s,e,r,h)=>function(t,i){return i?i(t):ns(t)}(s,h)?us({wt:i,$n:n,Qr:e},s):us(t(i,n,s,e,r),s)}function ds(t){return{Candlestick:cs(ls),Bar:cs(as),Area:cs(rs),Baseline:cs(hs),Histogram:cs(es),Line:cs(es),Custom:cs(os)}[t]}function fs(t){return{$n:0,nM:new Map,Oa:t}}function ps(t,i){if(void 0!==t&&0!==t.length)return{sM:i.key(t[0].wt),eM:i.key(t[t.length-1].wt)}}function vs(t){let i;return t.forEach((t=>{void 0===i&&(i=t.Qr)})),h(i)}class ms{constructor(t){this.rM=new Map,this.hM=new Map,this.aM=new Map,this.lM=[],this.Pu=t}m(){this.rM.clear(),this.hM.clear(),this.aM.clear(),this.lM=[]}oM(t,i){let n=0!==this.rM.size,s=!1;const e=this.hM.get(t);if(void 0!==e)if(1===this.hM.size)n=!1,s=!0,this.rM.clear();else for(const i of this.lM)i.pointData.nM.delete(t)&&(s=!0);let r=[];if(0!==i.length){const n=i.map((t=>t.time)),e=this.Pu.createConverterToInternalObj(i),h=ds(t.bh()),a=t.ul(),l=t.cl();r=i.map(((i,r)=>{const o=e(i.time),_=this.Pu.key(o);let u=this.rM.get(_);void 0===u&&(u=fs(o),this.rM.set(_,u),s=!0);const c=h(o,u.$n,i,n[r],a,l);return u.nM.set(t,c),c}))}n&&this._M(),this.uM(t,r);let h=-1;if(s){const t=[];this.rM.forEach((i=>{t.push({timeWeight:0,time:i.Oa,pointData:i,originalTime:vs(i.nM)})})),t.sort(((t,i)=>this.Pu.key(t.time)-this.Pu.key(i.time))),h=this.cM(t)}return this.dM(t,h,function(t,i,n){const s=ps(t,n),e=ps(i,n);if(void 0!==s&&void 0!==e)return{fM:!1,Va:s.eM>=e.eM&&s.sM>=e.sM}}(this.hM.get(t),e,this.Pu))}if(t){return this.oM(t,[])}pM(t,i,n){if(n&&t.Fa())throw new Error("Historical updates are not supported when conflation is enabled. Conflation requires data to be processed in order.");const s=i;!function(t){void 0===t.Qr&&(t.Qr=t.time)}(s),this.Pu.preprocessData(i);const e=this.Pu.createConverterToInternalObj([i])(i.time),r=this.aM.get(t);if(!n&&void 0!==r&&this.Pu.key(e)<this.Pu.key(r))throw new Error(`Cannot update oldest data, last time=${r}, new time=${e}`);let h=this.rM.get(this.Pu.key(e));if(n&&void 0===h)throw new Error("Cannot update non-existing data point when historicalUpdate is true");const a=void 0===h;void 0===h&&(h=fs(e),this.rM.set(this.Pu.key(e),h));const l=ds(t.bh()),o=t.ul(),_=t.cl(),u=l(e,h.$n,i,s.Qr,o,_),c=!n&&!a&&void 0!==r&&this.Pu.key(e)===this.Pu.key(r);h.nM.set(t,u),n?this.vM(t,u,h.$n):c&&t.Fa()&&_s(u)?(t.Rr(u),this.mM(t,u)):this.mM(t,u);const d={Va:_s(u),fM:n};if(!a)return this.dM(t,-1,d);const f={timeWeight:0,time:h.Oa,pointData:h,originalTime:vs(h.nM)},p=yt(this.lM,this.Pu.key(f.time),((t,i)=>this.Pu.key(t.time)<i));this.lM.splice(p,0,f);for(let t=p;t<this.lM.length;++t)ws(this.lM[t].pointData,t);return this.Pu.fillWeightsForPoints(this.lM,p),this.dM(t,p,d)}wM(t,i){const n=this.hM.get(t);if(void 0===n||i<=0)return[[],this.gM()];i=Math.min(i,n.length);const s=n.splice(-i).reverse();0===n.length?this.aM.delete(t):this.aM.set(t,n[n.length-1].wt);for(const i of s){const n=this.rM.get(this.Pu.key(i.wt));if(n&&(n.nM.delete(t),0===n.nM.size)){this.rM.delete(this.Pu.key(n.Oa)),this.lM.splice(n.$n,1);for(let t=n.$n;t<this.lM.length;++t)ws(this.lM[t].pointData,t)}}return[s,this.dM(t,this.lM.length-1,{fM:!1,Va:!1})]}mM(t,i){let n=this.hM.get(t);void 0===n&&(n=[],this.hM.set(t,n));const s=0!==n.length?n[n.length-1]:null;null===s||this.Pu.key(i.wt)>this.Pu.key(s.wt)?_s(i)&&n.push(i):_s(i)?n[n.length-1]=i:n.splice(-1,1),this.aM.set(t,i.wt)}vM(t,i,n){const s=this.hM.get(t);if(void 0===s)return;const e=yt(s,n,((t,i)=>t.$n<i));_s(i)?s[e]=i:s.splice(e,1)}uM(t,i){0!==i.length?(this.hM.set(t,i.filter(_s)),this.aM.set(t,i[i.length-1].wt)):(this.hM.delete(t),this.aM.delete(t))}_M(){for(const t of this.lM)0===t.pointData.nM.size&&this.rM.delete(this.Pu.key(t.time))}cM(t){let i=-1;for(let n=0;n<this.lM.length&&n<t.length;++n){const s=this.lM[n],e=t[n];if(this.Pu.key(s.time)!==this.Pu.key(e.time)){i=n;break}e.timeWeight=s.timeWeight,ws(e.pointData,n)}if(-1===i&&this.lM.length!==t.length&&(i=Math.min(this.lM.length,t.length)),-1===i)return-1;for(let n=i;n<t.length;++n)ws(t[n].pointData,n);return this.Pu.fillWeightsForPoints(t,i),this.lM=t,i}MM(){if(0===this.hM.size)return null;let t=0;return this.hM.forEach((i=>{0!==i.length&&(t=Math.max(t,i[i.length-1].$n))})),t}dM(t,i,n){const s=this.gM();if(-1!==i)this.hM.forEach(((i,e)=>{s.Y_.set(e,{ue:i,bM:e===t?n:void 0})})),this.hM.has(t)||s.Y_.set(t,{ue:[],bM:n}),s.Bt.SM=this.lM,s.Bt.xM=i;else{const i=this.hM.get(t);s.Y_.set(t,{ue:i||[],bM:n})}return s}gM(){return{Y_:new Map,Bt:{Dc:this.MM()}}}}function ws(t,i){t.$n=i,t.nM.forEach((t=>{t.$n=i}))}function gs(t,i){return t._t<i}function Ms(t,i){return i<t._t}function bs(t,i,n,s){return yt(t,i,gs,n,s)}function Ss(t,i,n,s){return Pt(t,i,Ms,n,s)}function xs(t,i,n){return{ne:t,se:i,ee:n}}function Cs(t,i,n,s){return t>=i-s&&t<=n+s}function ys(t,i,n,s,e,r){const h=e-n,a=r-s;if(0===h&&0===a)return Math.hypot(t-n,i-s);const l=((t-n)*h+(i-s)*a)/(h*h+a*a),o=Math.max(0,Math.min(1,l)),_=n+h*o,u=s+a*o;return Math.hypot(t-_,i-u)}const Ps=[0,0];function ks(t,i,n){return void 0===i||i.wt!==t.wt-1?t._t-n/2:(i._t+t._t)/2}function Ts(t,i,n){return void 0===i||i.wt!==t.wt+1?t._t+n/2:(t._t+i._t)/2}function Rs(t,i,n,s,e,r,h){if(null===i||i.from>=i.to||0===t.length)return null;const a=e/2+r,l=bs(t,n-a,i.from,i.to),o=Ss(t,n+a,l,i.to);if(l>=o)return null;let _=Number.POSITIVE_INFINITY;for(let a=l;a<o;a++){const l=t[a],o=a>i.from?t[a-1]:void 0,u=a<i.to-1?t[a+1]:void 0,c=ks(l,o,e)-r,d=Ts(l,u,e)+r;if(n<c||n>d)continue;h(l,Ps);const f=Ps[0],p=Ps[1],v=Math.min(f,p),m=Math.max(f,p),w=v-r,g=m+r;if(s>=v&&s<=m)_=Math.min(_,0);else if(s>=w&&s<=g){const t=Math.min(Math.abs(s-v),Math.abs(m-s));_=Math.min(_,t)}}return Number.isFinite(_)?xs(_,0,"series-range"):null}function Ds(t,i){return t.wt<i}function Is(t,i){return i<t.wt}function Vs(t,i,n){const s=i.Na(),e=i.bi(),r=yt(t,s,Ds),h=Pt(t,e,Is);if(!n)return{from:r,to:h};let a=r,l=h;return r>0&&r<t.length&&t[r].wt>=s&&(a=r-1),h>0&&h<t.length&&t[h-1].wt<=e&&(l=h+1),{from:a,to:l}}class Es{constructor(t,i,n){this.CM=!0,this.yM=!0,this.PM=!0,this.kM=[],this.TM=null,this.RM=-1,this.ae=t,this.le=i,this.DM=n}Pt(t){this.CM=!0,"data"===t&&(this.yM=!0),"options"===t&&(this.PM=!0)}Tt(){return this.ae.It()?(this.IM(),null===this.TM?null:this.VM):null}Qs(t,i){return this.ae.It()?(this.IM(),null===this.TM?null:this.EM(t,i)):null}EM(t,i){return null}BM(){this.kM=this.kM.map((t=>({...t,...this.ae.Sa().Sh(t.wt)})))}AM(){this.TM=null}IM(){const t=this.le.Bt(),i=t.N().enableConflation?t.sd():0;i!==this.RM&&(this.yM=!0,this.RM=i),this.yM&&(this.zM(),this.yM=!1),this.PM&&(this.BM(),this.PM=!1),this.CM&&(this.LM(),this.CM=!1)}LM(){const t=this.ae.Ft(),i=this.le.Bt();if(this.AM(),i.Zi()||t.Zi())return;const n=i.Be();if(null===n)return;if(0===this.ae.Un().Th())return;const s=this.ae.zt();null!==s&&(this.TM=Vs(this.kM,n,this.DM),this.OM(t,i,s.Wt),this.NM())}}class Bs{constructor(t,i){this.FM=t,this.Ki=i}st(t,i,n){this.FM.draw(t,this.Ki,i,n)}}function As(t){switch(t){case"point":return 2;case"range":return 0;default:return 1}}class zs extends Es{constructor(t,i,n){super(t,i,!1),this.Yh=n,this.FM=this.Yh.renderer(),this.VM=new Bs(this.FM,(t=>this.WM(t)))}get Ma(){return this.Yh.conflationReducer}Ha(t){return this.Yh.priceValueBuilder(t)}dl(t){return this.Yh.isWhitespace(t)}EM(t,i){const n=this.FM.hitTest?.(t,i,(t=>this.WM(t)));if(null!=n)return{ne:(s=n).distance,se:As(s.type),ee:"custom",Mu:s.cursorStyle,te:s.objectId,ie:s.hitTestData};var s;const e=Rs(this.kM,this.TM,t,i,this.le.Bt().ml(),this.ae.N().hitTestTolerance,((t,i)=>{const n=t.HM;let s=NaN,e=NaN;if(void 0!==n&&!this.Yh.isWhitespace(n))for(const t of this.Yh.priceValueBuilder(n)){const i=this.WM(t);null!==i&&(s=Number.isNaN(s)?i:Math.min(s,i),e=Number.isNaN(e)?i:Math.max(e,i))}i[0]=s,i[1]=e}));return null===e?null:{...e,ee:"custom"}}zM(){const t=this.ae.Sa();this.kM=this.ae.Ua().Eh().map((i=>({wt:i.$n,_t:NaN,...t.Sh(i.$n),HM:i.ue})))}OM(t,i){i.Ic(this.kM,m(this.TM))}NM(){this.Yh.update({bars:this.kM.map(Ls),barSpacing:this.le.Bt().ml(),visibleRange:this.TM,conflationFactor:this.le.Bt().sd()},this.ae.N())}WM(t){const i=this.ae.zt();return null===i?null:this.ae.Ft().Nt(t,i.Wt)}}function Ls(t){return{x:t._t,time:t.wt,originalData:t.HM,barColor:t.sh}}const Os={color:"#2196f3"},Ns=(t,i,n)=>{const s=l(n);return new zs(t,i,s)};function Fs(t){const i={value:t.Wt[3],time:t.Qr};return void 0!==t.iM&&(i.customValues=t.iM),i}function Ws(t){const i=Fs(t);return void 0!==t.R&&(i.color=t.R),i}function Hs(t){const i=Fs(t);return void 0!==t.vt&&(i.lineColor=t.vt),void 0!==t.ah&&(i.topColor=t.ah),void 0!==t.oh&&(i.bottomColor=t.oh),i}function Us(t){const i=Fs(t);return void 0!==t._h&&(i.topLineColor=t._h),void 0!==t.uh&&(i.bottomLineColor=t.uh),void 0!==t.dh&&(i.topFillColor1=t.dh),void 0!==t.fh&&(i.topFillColor2=t.fh),void 0!==t.ph&&(i.bottomFillColor1=t.ph),void 0!==t.mh&&(i.bottomFillColor2=t.mh),i}function $s(t){const i={open:t.Wt[0],high:t.Wt[1],low:t.Wt[2],close:t.Wt[3],time:t.Qr};return void 0!==t.iM&&(i.customValues=t.iM),i}function js(t){const i=$s(t);return void 0!==t.R&&(i.color=t.R),i}function qs(t){const i=$s(t),{R:n,Ht:s,hh:e}=t;return void 0!==n&&(i.color=n),void 0!==s&&(i.borderColor=s),void 0!==e&&(i.wickColor=e),i}function Ys(t){return{Area:Hs,Line:Ws,Baseline:Us,Histogram:Ws,Bar:js,Candlestick:qs,Custom:Ks}[t]}function Ks(t){const i=t.Qr;return{...t.ue,time:i}}const Gs={vertLine:{color:"#9598A1",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#131722"},horzLine:{color:"#9598A1",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#131722"},mode:1,doNotSnapToHiddenSeriesIndices:!1},Zs={vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},Xs={background:{type:"solid",color:"#FFFFFF"},textColor:"#191919",fontSize:12,fontFamily:w,panes:{enableResize:!0,separatorColor:"#E0E3EB",separatorHoverColor:"rgba(178, 181, 189, 0.2)"},attributionLogo:!0,colorSpace:"srgb",colorParsers:[]},Js={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:"#2B2B43",entireTextOnly:!1,visible:!1,ticksVisible:!1,scaleMargins:{bottom:.1,top:.2},minimumWidth:0,ensureEdgeTickMarksVisible:!1,tickMarkDensity:2.5},Qs={rightOffset:0,barSpacing:6,minBarSpacing:.5,maxBarSpacing:0,fixLeftEdge:!1,fixRightEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:"#2B2B43",visible:!0,timeVisible:!1,secondsVisible:!0,shiftVisibleRangeOnNewBar:!0,allowShiftVisibleRangeOnWhitespaceReplacement:!1,ticksVisible:!1,uniformDistribution:!1,minimumHeight:0,allowBoldLabels:!0,ignoreWhitespaceIndices:!1,enableConflation:!1,conflationThresholdFactor:1,precomputeConflationOnInit:!1,precomputeConflationPriority:"background"};function te(){return{addDefaultPane:!0,hoveredSeriesOnTop:!0,width:0,height:0,autoSize:!1,layout:Xs,crosshair:Gs,grid:Zs,overlayPriceScales:{...Js},leftPriceScale:{...Js,visible:!1},rightPriceScale:{...Js,visible:!0},defaultVisiblePriceScaleId:"right",timeScale:Qs,localization:{locale:vn?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 ie{constructor(t,i,n){this.hv=t,this.UM=i,this.$M=n??0}applyOptions(t){this.hv.Qt().Dd(this.UM,t,this.$M)}options(){return this.Ki().N()}width(){return q(this.UM)?this.hv.Dg(this.UM):0}setVisibleRange(t){this.setAutoScale(!1),this.Ki().Go(new dt(t.from,t.to))}getVisibleRange(){let t,i,n=this.Ki().ar();if(null===n)return null;if(this.Ki().ho()){const s=this.Ki().S_(),e=Ui(s);n=ci(n,this.Ki().lo()),t=Number((Math.round(n.Je()/s)*s).toFixed(e)),i=Number((Math.round(n.Qe()/s)*s).toFixed(e))}else t=n.Je(),i=n.Qe();return{from:t,to:i}}setAutoScale(t){this.applyOptions({autoScale:t})}Ki(){return a(this.hv.Qt().Id(this.UM,this.$M)).Ft}}class ne{constructor(t,i,n,s){this.hv=t,this.yt=n,this.jM=i,this.qM=s}getHeight(){return this.yt.$t()}setHeight(t){const i=this.hv.Qt(),n=i._f(this.yt);i.zd(n,t)}getStretchFactor(){return this.yt.F_()}setStretchFactor(t){this.yt.W_(t),this.hv.Qt().ka()}paneIndex(){return this.hv.Qt()._f(this.yt)}moveTo(t){const i=this.paneIndex();i!==t&&(r(t>=0&&t<this.hv.lv().length,"Invalid pane index"),this.hv.Qt().Od(i,t))}getSeries(){return this.yt.Y_().map((t=>this.jM(t)))??[]}getHTMLElement(){const t=this.hv.lv();return t&&0!==t.length&&t[this.paneIndex()]?t[this.paneIndex()].fv():null}attachPrimitive(t){this.yt.ol(t),t.attached&&t.attached({chart:this.qM,requestUpdate:()=>this.yt.Qt().ka()})}detachPrimitive(t){this.yt._l(t)}priceScale(t){if(null===this.yt.O_(t))throw new Error(`Cannot find price scale with id: ${t}`);return new ie(this.hv,t,this.paneIndex())}setPreserveEmptyPane(t){this.yt.j_(t)}preserveEmptyPane(){return this.yt.q_()}addCustomSeries(t,i={},n=0){return this.qM.addCustomSeries(t,i,n)}addSeries(t,i={}){return this.qM.addSeries(t,i,this.paneIndex())}}const se={color:"#FF0000",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:"",axisLabelColor:"",axisLabelTextColor:""};class ee{constructor(t){this._r=t}applyOptions(t){this._r.vr(t)}options(){return this._r.N()}YM(){return this._r}}class re{constructor(t,i,n,s,e,r){this.KM=new o,this.ae=t,this.GM=i,this.ZM=n,this.Pu=e,this.qM=s,this.XM=r}m(){this.KM.m()}priceFormatter(){return this.ae.sl()}priceToCoordinate(t){const i=this.ae.zt();return null===i?null:this.ae.Ft().Nt(t,i.Wt)}coordinateToPrice(t){const i=this.ae.zt();return null===i?null:this.ae.Ft().Tn(t,i.Wt)}barsInLogicalRange(t){if(null===t)return null;const i=new Bi(new Ii(t.from,t.to)).Uu(),n=this.ae.Un();if(n.Zi())return null;const s=n.Hn(i.Na(),1),e=n.Hn(i.bi(),-1),r=a(n.Rh()),h=a(n.Qn());if(null!==s&&null!==e&&s.$n>e.$n)return{barsBefore:t.from-r,barsAfter:h-t.to};const l={barsBefore:null===s||s.$n===r?t.from-r:s.$n-r,barsAfter:null===e||e.$n===h?h-t.to:h-e.$n};return null!==s&&null!==e&&(l.from=s.Qr,l.to=e.Qr),l}setData(t){this.Pu,this.ae.bh(),this.GM.JM(this.ae,t),this.QM("full")}update(t,i=!1){this.ae.bh(),this.GM.tb(this.ae,t,i),this.QM("update")}pop(t=1){const i=this.GM.ib(this.ae,t);0!==i.length&&this.QM("update");const n=Ys(this.seriesType());return i.map((t=>n(t)))}dataByIndex(t,i){const n=this.ae.Un().Hn(t,i);if(null===n)return null;return Ys(this.seriesType())(n)}data(){const t=Ys(this.seriesType());return this.ae.Un().Eh().map((i=>t(i)))}subscribeDataChanged(t){this.KM.i(t)}unsubscribeDataChanged(t){this.KM._(t)}applyOptions(t){this.ae.vr(t)}options(){return p(this.ae.N())}priceScale(){return this.ZM.priceScale(this.ae.Ft().pl(),this.getPane().paneIndex())}createPriceLine(t){const i=_(p(se),t),n=this.ae.Ba(i);return new ee(n)}removePriceLine(t){this.ae.Aa(t.YM())}priceLines(){return this.ae.za().map((t=>new ee(t)))}seriesType(){return this.ae.bh()}lastValueData(t){const i=this.ae.Ae(t);return i.ze?{noData:!0}:{noData:!1,price:i.gt,color:i.R}}attachPrimitive(t){this.ae.ol(t),t.attached&&t.attached({chart:this.qM,series:this,requestUpdate:()=>this.ae.Qt().ka(),horzScaleBehavior:this.Pu})}detachPrimitive(t){this.ae._l(t),t.detached&&t.detached(),this.ae.Qt().ka()}getPane(){const t=this.ae,i=a(this.ae.Qt().Ks(t));return this.XM(i)}moveToPane(t){this.ae.Qt().rf(this.ae,t)}seriesOrder(){const t=this.ae.Qt().Ks(this.ae);return null===t?-1:t.Y_().indexOf(this.ae)}setSeriesOrder(t){const i=this.ae.Qt().Ks(this.ae);null!==i&&i.vu(this.ae,t)}QM(t){this.KM.v()&&this.KM.p(t)}}class he{constructor(t,i,n){this.nb=new o,this.Qu=new o,this.Nw=new o,this.sn=t,this.ia=t.Bt(),this.vg=i,this.ia.Zc().i(this.sb.bind(this)),this.ia.Xc().i(this.eb.bind(this)),this.vg.qw().i(this.rb.bind(this)),this.Pu=n}m(){this.ia.Zc().u(this),this.ia.Xc().u(this),this.vg.qw().u(this),this.nb.m(),this.Qu.m(),this.Nw.m()}scrollPosition(){return this.ia.Oc()}scrollToPosition(t,i){i?this.ia.Yc(t,1e3):this.sn.Ms(t)}scrollToRealTime(){this.ia.qc()}getVisibleRange(){const t=this.ia.xc();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.Pu.convertHorzItemToInternal(t.from),to:this.Pu.convertHorzItemToInternal(t.to)},n=this.ia.kc(i);this.sn.sf(n)}getVisibleLogicalRange(){const t=this.ia.Sc();return null===t?null:{from:t.Na(),to:t.bi()}}setVisibleLogicalRange(t){r(t.from<=t.to,"The from index cannot be after the to index."),this.sn.sf(t)}resetTimeScale(){this.sn.ws()}fitContent(){this.sn.td()}logicalToCoordinate(t){const i=this.sn.Bt();return i.Zi()?null:i.jt(t)}coordinateToLogical(t){return this.ia.Zi()?null:this.ia.Vc(t)}timeToIndex(t,i){const n=this.Pu.convertHorzItemToInternal(t);return this.ia.gc(n,i)}timeToCoordinate(t){const i=this.timeToIndex(t,!1);return null===i?null:this.ia.jt(i)}coordinateToTime(t){const i=this.sn.Bt(),n=i.Vc(t),s=i.en(n);return null===s?null:s.originalTime}width(){return this.vg.pv().width}height(){return this.vg.pv().height}subscribeVisibleTimeRangeChange(t){this.nb.i(t)}unsubscribeVisibleTimeRangeChange(t){this.nb._(t)}subscribeVisibleLogicalRangeChange(t){this.Qu.i(t)}unsubscribeVisibleLogicalRangeChange(t){this.Qu._(t)}subscribeSizeChange(t){this.Nw.i(t)}unsubscribeSizeChange(t){this.Nw._(t)}applyOptions(t){this.ia.vr(t)}options(){return{...p(this.ia.N()),barSpacing:this.ia.ml()}}sb(){this.nb.v()&&this.nb.p(this.getVisibleRange())}eb(){this.Qu.v()&&this.Qu.p(this.getVisibleLogicalRange())}rb(t){this.Nw.p(t.width,t.height)}}function ae(t){return function(t){if(f(t.handleScale)){const i=t.handleScale;t.handleScale={axisDoubleClickReset:{time:i,price:i},axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale){const{axisPressedMouseMove:i,axisDoubleClickReset:n}=t.handleScale;f(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),f(n)&&(t.handleScale.axisDoubleClickReset={time:n,price:n})}const i=t.handleScroll;f(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class le{constructor(t,i,n){this.hb=new Map,this.ab=new Map,this.lb=new o,this.ob=new o,this._b=new o,this.dd=new WeakMap,this.ub=new ms(i);const s=void 0===n?p(te()):_(p(te()),ae(n));this.cb=i,this.hv=new ts(t,s,i),this.hv.mw().i((t=>{this.lb.v()&&this.lb.p(this.fb(t()))}),this),this.hv.ww().i((t=>{this.ob.v()&&this.ob.p(this.fb(t()))}),this),this.hv.Ed().i((t=>{this._b.v()&&this._b.p(this.fb(t()))}),this);const e=this.hv.Qt();this.pb=new he(e,this.hv.bg(),this.cb)}remove(){this.hv.mw().u(this),this.hv.ww().u(this),this.hv.Ed().u(this),this.pb.m(),this.hv.m(),this.hb.clear(),this.ab.clear(),this.lb.m(),this.ob.m(),this._b.m(),this.ub.m()}resize(t,i,n){this.autoSizeActive()||this.hv.wg(t,i,n)}addCustomSeries(t,i={},n=0){const s=(t=>({type:"Custom",isBuiltIn:!1,defaultOptions:{...Os,...t.defaultOptions()},mb:Ns,wb:t}))(l(t));return this.gb(s,i,n)}addSeries(t,i={},n=0){return this.gb(t,i,n)}removeSeries(t){const i=h(this.hb.get(t)),n=this.ub.if(i);this.hv.Qt().if(i),this.Mb(n),this.hb.delete(t),this.ab.delete(i)}JM(t,i){this.Mb(this.ub.oM(t,i))}tb(t,i,n){this.Mb(this.ub.pM(t,i,n))}ib(t,i){const[n,s]=this.ub.wM(t,i);return 0!==n.length&&this.Mb(s),n}subscribeClick(t){this.lb.i(t)}unsubscribeClick(t){this.lb._(t)}subscribeCrosshairMove(t){this._b.i(t)}unsubscribeCrosshairMove(t){this._b._(t)}subscribeDblClick(t){this.ob.i(t)}unsubscribeDblClick(t){this.ob._(t)}priceScale(t,i=0){return new ie(this.hv,t,i)}timeScale(){return this.pb}applyOptions(t){this.hv.vr(ae(t))}options(){return this.hv.N()}takeScreenshot(t=!1,i=!1){let n,s;try{i||(n=this.hv.Qt().N().crosshair.mode,this.hv.vr({crosshair:{mode:2}})),s=this.hv.Tg(t)}finally{i||void 0===n||this.hv.Qt().vr({crosshair:{mode:n}})}return s}addPane(t=!1){const i=this.hv.Qt().uf();return i.j_(t),this.bb(i)}removePane(t){this.hv.Qt().Ad(t)}swapPanes(t,i){this.hv.Qt().Ld(t,i)}autoSizeActive(){return this.hv.Cg()}chartElement(){return this.hv.gv()}panes(){return this.hv.Qt().Gn().map((t=>this.bb(t)))}paneSize(t=0){const i=this.hv.Ag(t);return{height:i.height,width:i.width}}setCrosshairPosition(t,i,n){const s=this.hb.get(n);if(void 0===s)return;const e=this.hv.Qt().Ks(s);null!==e&&this.hv.Qt().Gd(t,i,e)}clearCrosshairPosition(){this.hv.Qt().Zd(!0)}horzBehaviour(){return this.cb}gb(i,n={},s=0){r(void 0!==i.mb),function(t){if(void 0===t||"custom"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=Ui(i.minMove))}(n.priceFormat),"Candlestick"===i.type&&function(t){void 0!==t.borderColor&&(t.borderUpColor=t.borderColor,t.borderDownColor=t.borderColor),void 0!==t.wickColor&&(t.wickUpColor=t.wickColor,t.wickDownColor=t.wickColor)}(n);const e=_(p(t),p(i.defaultOptions),n),h=i.mb,a=new Kt(this.hv.Qt(),i.type,e,h,i.wb);this.hv.Qt().Qd(a,s);const l=new re(a,this,this,this,this.cb,(t=>this.bb(t)));return this.hb.set(l,a),this.ab.set(a,l),l}Mb(t){const i=this.hv.Qt();for(const i of t.Y_.keys())i.Ia();i.Xd(t.Bt.Dc,t.Bt.SM,t.Bt.xM),t.Y_.forEach(((t,i)=>i.ht(t.ue,t.bM))),i.Bt().dc(),i.zc()}Sb(t){return h(this.ab.get(t))}xb(t){return void 0!==t&&this.ab.has(t)?this.Sb(t):void 0}fb(t){const i=new Map;t.Qg.forEach(((t,n)=>{const s=n.bh(),e=Ys(s)(t);if("Custom"!==s)r(ss(e));else{const t=n.cl();r(!t||!1===t(e))}i.set(this.Sb(n),e)}));const n=this.xb(t.jg),s=void 0===t.Yg?void 0:{type:t.Yg.ds,sourceKind:t.Yg.Kg,objectKind:t.Yg.Gg,series:this.xb(t.Yg.Y_),objectId:t.Yg.Zg,paneIndex:t.Yg.Xg};return{time:t.Qr,logical:t.$n,point:t.Jg,paneIndex:t.Xg,hoveredInfo:s,hoveredSeries:n,hoveredObjectId:t.qg,seriesData:i,sourceEvent:t.tM}}bb(t){let i=this.dd.get(t);return i||(i=new ne(this.hv,(t=>this.Sb(t)),t,this),this.dd.set(t,i)),i}}function oe(t){if(d(t)){const i=document.getElementById(t);return r(null!==i,`Cannot find element in DOM with id=${t}`),i}return t}function _e(t,i,n){const s=oe(t),e=new le(s,i,n);return i.setOptions(e.options()),e}function ue(t,i,n,s){return Math.hypot(n-t,s-i)}function ce(t,i,n,s,e,r,h,a=0){if(0===i.length||s.from>=i.length||s.to<=0)return;const{context:l,horizontalPixelRatio:o,verticalPixelRatio:_}=t,u=i[s.from];let c=r(t,u),d=u;if(s.to-s.from<2){const i=e/2;l.beginPath();const n={_t:u._t-i,ut:u.ut},s={_t:u._t+i,ut:u.ut};l.moveTo(n._t*o,n.ut*_),l.lineTo(s._t*o,s.ut*_),h(t,c,n,s)}else{const e=a>0;let f=0;const p=(i,n)=>{if(h(t,c,d,n),l.beginPath(),c=i,d=n,e){const t=f%a;l.lineDashOffset=t,f=t}};let v=d;l.beginPath(),l.moveTo(u._t*o,u.ut*_);for(let h=s.from+1;h<s.to;++h){v=i[h];const s=v._t*o,a=v.ut*_,u=r(t,v);switch(n){case 0:if(l.lineTo(s,a),e){const t=i[h-1],n=t._t*o,e=t.ut*_;f+=ue(n,e,s,a)}break;case 1:{const t=i[h-1],n=t.ut*_;l.lineTo(s,n),e&&(f+=Math.abs(v._t-t._t)*o),u!==c&&(p(u,v),l.lineTo(s,n)),l.lineTo(s,a),e&&(f+=Math.abs(v.ut-t.ut)*_);break}case 2:{const[t,n]=ve(i,h-1,h),r=t._t*o,u=t.ut*_,c=n._t*o,d=n.ut*_;if(l.bezierCurveTo(r,u,c,d,s,a),e){const t=i[h-1],n=t._t*o,e=t.ut*_,l=ue(n,e,s,a),p=ue(n,e,r,u)+ue(r,u,c,d)+ue(c,d,s,a);f+=(l+p)/2}break}}1!==n&&u!==c&&(p(u,v),l.moveTo(s,a))}(d!==v||d===v&&1===n)&&h(t,c,d,v),e&&(l.lineDashOffset=0)}}const de=6;function fe(t,i){return{_t:t._t-i._t,ut:t.ut-i.ut}}function pe(t,i){return{_t:t._t/i,ut:t.ut/i}}function ve(t,i,n){const s=Math.max(0,i-1),e=Math.min(t.length-1,n+1);var r,h;return[(r=t[i],h=pe(fe(t[n],t[s]),de),{_t:r._t+h._t,ut:r.ut+h.ut}),fe(t[n],pe(fe(t[e],t[i]),de))]}function me(t,i){const n=t.context;n.strokeStyle=i,n.stroke()}class we extends y{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et(t){if(null===this.rt)return;const{ot:i,lt:n,Cb:e,yb:r,ct:h,Gt:a,Pb:l}=this.rt;if(null===n)return;const o=t.context;o.lineCap="butt",o.lineWidth=h*t.verticalPixelRatio;const _=s(o,a);o.lineJoin="round";const u=this.kb.bind(this),c=function(t){return t.reduce(((t,i)=>t+i),0)}(_);void 0!==r&&ce(t,i,r,n,e,u,me,c),l&&function(t,i,n,s,e){if(s.to-s.from<=0)return;const{horizontalPixelRatio:r,verticalPixelRatio:h,context:a}=t;let l=null;const o=Math.max(1,Math.floor(r))%2/2,_=n*h+o;for(let n=s.to-1;n>=s.from;--n){const s=i[n];if(s){const i=e(t,s);i!==l&&(null!==l&&a.fill(),a.beginPath(),a.fillStyle=i,l=i);const n=Math.round(s._t*r)+o,u=s.ut*h;a.moveTo(n,u),a.arc(n,u,_,0,2*Math.PI)}}a.fill()}(t,i,l,n,u)}}class ge extends we{kb(t,i){return i.vt}}function Me(t,i,n,s,e){const r=1-e;return r*r*r*t+3*r*r*e*i+3*r*e*e*n+e*e*e*s}function be(t,i,n,s,e){if(2===n){const[n,r]=ve(s,e-1,e);return[Math.min(t._t,i._t,n._t,r._t),Math.max(t._t,i._t,n._t,r._t)]}return[Math.min(t._t,i._t),Math.max(t._t,i._t)]}function Se(t,i,n,s,e,r,h,a){switch(e){case 1:{const e=ys(t,i,n._t,n.ut,s._t,n.ut),r=ys(t,i,s._t,n.ut,s._t,s.ut),h=Math.min(e,r);return h<=a?h:null}case 2:{const[e,l]=ve(r,h-1,h),o=function(t,i,n){let s=Number.POSITIVE_INFINITY,e=n[0];for(let r=1;r<=12;r++){const h=r/12,a={_t:Me(n[0]._t,n[1]._t,n[2]._t,n[3]._t,h),ut:Me(n[0].ut,n[1].ut,n[2].ut,n[3].ut,h)};s=Math.min(s,ys(t,i,e._t,e.ut,a._t,a.ut)),e=a}return s}(t,i,[n,e,l,s]);return o<=a?o:null}default:{const e=ys(t,i,n._t,n.ut,s._t,s.ut);return e<=a?e:null}}}class xe extends Es{constructor(t,i){super(t,i,!0)}OM(t,i,n){i.Ic(this.kM,m(this.TM)),t.Jo(this.kM,n,m(this.TM))}Tb(t,i){return{wt:t,gt:i,_t:NaN,ut:NaN}}zM(){const t=this.ae.Sa();this.kM=this.ae.Ua().Eh().map((i=>{let n;if((i.Gr??1)>1){const t=i.Wt[1],s=i.Wt[2],e=i.Wt[3];n=Math.abs(t-e)>Math.abs(s-e)?t:s}else n=i.Wt[3];return this.Rb(i.$n,n,t)}))}}class Ce extends xe{EM(t,i){const n=this.ae.N();return function(t,i,n,s,e,r,h,a=0,l=0){if(null===i||i.from>=i.to||0===t.length)return null;const o=Math.max(r/2,h??0)+l;let _=Number.POSITIVE_INFINITY;if(void 0!==h){const e=h+l,r=bs(t,n-e,i.from,i.to),a=Ss(t,n+e,r,i.to);for(let i=r;i<a;i++){const e=t[i];if(!Cs(n,e._t,e._t,h+l))continue;const r=Math.hypot(n-e._t,s-e.ut);r<=h+l&&(_=Math.min(_,r))}}if(i.to-i.from<2){const e=t[i.from],r=Math.max(a/2,o),h=ys(n,s,e._t-r,e.ut,e._t+r,e.ut);return h<=o&&(_=Math.min(_,h)),Number.isFinite(_)?xs(_,2,"series-point"):null}let u=Number.POSITIVE_INFINITY;const c=bs(t,n-o,i.from,i.to),d=Ss(t,n+o,c,i.to),f=Math.max(i.from+1,c),p=Math.min(i.to,d+1);for(let i=f;i<p;i++){const r=t[i-1],h=t[i],[a,l]=be(r,h,e,t,i);if(!Cs(n,a,l,o))continue;const _=Se(n,s,r,h,e,t,i,o);null!==_&&(u=Math.min(u,_))}return Number.isFinite(_)?xs(_,2,"series-point"):Number.isFinite(u)?xs(u,1,"series-line"):null}(this.kM,this.TM,t,i,n.lineType,n.lineVisible?n.lineWidth:1,n.pointMarkersVisible?n.pointMarkersRadius||n.lineWidth/2+2:void 0,this.le.Bt().ml(),n.hitTestTolerance)}}class ye extends Ce{constructor(){super(...arguments),this.VM=new ge}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}NM(){const t=this.ae.N(),i={ot:this.kM,Gt:t.lineStyle,yb:t.lineVisible?t.lineType:void 0,ct:t.lineWidth,Pb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,lt:this.TM,Cb:this.le.Bt().ml()};this.VM.ht(i)}}const Pe={type:"Line",isBuiltIn:!0,defaultOptions:{color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new ye(t,i)};function ke(t,i){return t.weight>i.weight?t:i}class Te{constructor(){this.Db=new o,this.Ib=function(t){let i=!1;return function(...n){i||(i=!0,queueMicrotask((()=>{t(...n),i=!1})))}}((()=>this.Db.p(this.Vb))),this.Vb=0}Eb(){return this.Db}m(){this.Db.m()}options(){return this.yn}setOptions(t){this.yn=t}preprocessData(t){}updateFormatter(t){this.yn&&(this.yn.localization=t)}createConverterToInternalObj(t){return this.Ib(),t=>(t>this.Vb&&(this.Vb=t),t)}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return this.Bb(t)}formatTickmark(t){return this.Bb(t.time)}maxTickMarkWeight(t){return t.reduce(ke,t[0]).weight}fillWeightsForPoints(t,i){for(let s=i;s<t.length;++s)t[s].timeWeight=(n=t[s].time)%120==0?10:n%60==0?9:n%36==0?8:n%12==0?7:n%6==0?6:n%3==0?5:n%1==0?4:0;var n;this.Vb=t[t.length-1].time,this.Ib()}Bb(t){if(this.yn.localization?.timeFormatter)return this.yn.localization.timeFormatter(t);if(t<12)return`${t}M`;const i=Math.floor(t/12),n=t%12;return 0===n?`${i}Y`:`${i}Y${n}M`}}const Re={yieldCurve:{baseResolution:1,minimumTimeRange:120,startTimeRange:0},timeScale:{ignoreWhitespaceIndices:!0},leftPriceScale:{visible:!0},rightPriceScale:{visible:!1},localization:{priceFormatter:t=>t.toFixed(3)+"%"}},De={lastValueVisible:!1,priceLineVisible:!1};class Ie extends le{constructor(t,i){const n=_(Re,i||{}),s=new Te;super(t,s,n),s.setOptions(this.options()),this._initWhitespaceSeries()}addSeries(t,i={},n=0){if(t.isBuiltIn&&!1===["Area","Line"].includes(t.type))throw new Error("Yield curve only support Area and Line series");const s={...De,...i};return super.addSeries(t,s,n)}_initWhitespaceSeries(){const t=this.horzBehaviour(),i=this.addSeries(Pe);let n;function s(s){const e=function(t,i){return{me:Math.max(0,t.startTimeRange),we:Math.max(0,t.minimumTimeRange,i||0),Ab:Math.max(1,t.baseResolution)}}(t.options().yieldCurve,s),r=(({me:t,we:i,Ab:n})=>`${t}~${i}~${n}`)(e);r!==n&&(n=r,i.setData(function({me:t,we:i,Ab:n}){return Array.from({length:Math.floor((i-t)/n)+1},((i,s)=>({time:t+s*n})))}(e)))}s(0),t.Eb().i(s)}}function Ve(t,i){return t.weight>i.weight?t:i}class Ee{options(){return this.yn}setOptions(t){this.yn=t}preprocessData(t){}updateFormatter(t){this.yn&&(this.yn.localization=t)}createConverterToInternalObj(t){return t=>t}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return t.toFixed(this.Ds())}formatTickmark(t,i){return t.time.toFixed(this.Ds())}maxTickMarkWeight(t){return t.reduce(Ve,t[0]).weight}fillWeightsForPoints(t,i){for(let s=i;s<t.length;++s)t[s].timeWeight=(n=t[s].time)===100*Math.ceil(n/100)?8:n===50*Math.ceil(n/50)?7:n===25*Math.ceil(n/25)?6:n===10*Math.ceil(n/10)?5:n===5*Math.ceil(n/5)?4:n===Math.ceil(n)?3:2*n===Math.ceil(2*n)?1:0;var n}Ds(){return this.yn.localization.precision}}function Be(t,i,n,s,e){const{context:r,horizontalPixelRatio:h,verticalPixelRatio:a}=i;r.lineTo(e._t*h,t*a),r.lineTo(s._t*h,t*a),r.closePath(),r.fillStyle=n,r.fill()}class Ae extends y{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et(t){if(null===this.rt)return;const{ot:i,lt:n,Cb:e,ct:r,Gt:h,yb:a}=this.rt,l=this.rt.zb??(this.rt.Lb?0:t.mediaSize.height);if(null===n)return;const o=t.context;o.lineCap="butt",o.lineJoin="round",o.lineWidth=r,s(o,h),o.lineWidth=1,ce(t,i,a,n,e,this.Ob.bind(this),Be.bind(null,l))}}class ze{Nb(t,i){const n=this.Fb,{Wb:s,Hb:e,Ub:r,$b:h,zb:a,jb:l,qb:o}=i;if(void 0===this.Yb||void 0===n||n.Wb!==s||n.Hb!==e||n.Ub!==r||n.$b!==h||n.zb!==a||n.jb!==l||n.qb!==o){const{verticalPixelRatio:n}=t,_=a||l>0?n:1,u=l*_,c=o===t.bitmapSize.height?o:o*_,d=(a??0)*_,f=t.context.createLinearGradient(0,u,0,c);if(f.addColorStop(0,s),null!=a){const t=Jt((d-u)/(c-u),0,1);f.addColorStop(t,e),f.addColorStop(t,r)}f.addColorStop(1,h),this.Yb=f,this.Fb=i}return this.Yb}}class Le extends Ae{constructor(){super(...arguments),this.Kb=new ze}Ob(t,i){const n=this.rt;return this.Kb.Nb(t,{Wb:i.dh,Hb:i.fh,Ub:i.ph,$b:i.mh,zb:n.zb,jb:n.jb??0,qb:n.qb??t.bitmapSize.height})}}class Oe extends we{constructor(){super(...arguments),this.Gb=new ze}kb(t,i){const n=this.rt;return this.Gb.Nb(t,{Wb:i._h,Hb:i._h,Ub:i.uh,$b:i.uh,zb:n.zb,jb:n.jb??0,qb:n.qb??t.bitmapSize.height})}}class Ne{constructor(t,i,n,s){this.Zb=t,this.Xb=i,this.Jb=n,this.Qb=s}st(t,i,n){this.Zb.st(t,i,n),!this.Jb()||i&&this.Qb()||this.Xb.st(t,i,n)}}class Fe{constructor(t,i){this.Xb=t,this.tS=i}Tt(){return this.tS()?this.Xb:null}}class We extends Ce{constructor(t,i){super(t,i),this.iS=new Le,this.nS=new Oe,this.sS=new Fe(this.nS,(()=>this.Jb())),this.eS=[this],this.rS=[this.sS],this.hS={Za:this.eS,qa:this.rS},this.VM=new Ne(this.iS,this.nS,(()=>this.Jb()),(()=>this.le.N().hoveredSeriesOnTop))}Ga(){return this.hS}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}NM(){const t=this.ae.zt();if(null===t)return;const i=this.ae.N(),n=this.ae.Ft().Nt(i.baseValue.price,t.Wt),s=this.le.Bt().ml();if(null===this.TM||0===this.kM.length)return;let e,r;if(i.relativeGradient){e=this.kM[this.TM.from].ut,r=this.kM[this.TM.from].ut;for(let t=this.TM.from;t<this.TM.to;t++){const i=this.kM[t];i.ut<e&&(e=i.ut),i.ut>r&&(r=i.ut)}}this.iS.ht({ot:this.kM,ct:i.lineWidth,Gt:i.lineStyle,yb:i.lineType,zb:n,jb:e,qb:r,Lb:!1,lt:this.TM,Cb:s}),this.nS.ht({ot:this.kM,ct:i.lineWidth,Gt:i.lineStyle,yb:i.lineVisible?i.lineType:void 0,Pb:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,zb:n,jb:e,qb:r,lt:this.TM,Cb:s})}Jb(){return this.ae.It()&&null!==this.TM&&this.aS()}aS(){const t=this.ae.N();return t.lineVisible||t.pointMarkersVisible}}const He={type:"Baseline",isBuiltIn:!0,defaultOptions:{baseValue:{type:"price",price:0},relativeGradient:!1,topFillColor1:"rgba(38, 166, 154, 0.28)",topFillColor2:"rgba(38, 166, 154, 0.05)",topLineColor:"rgba(38, 166, 154, 1)",bottomFillColor1:"rgba(239, 83, 80, 0.05)",bottomFillColor2:"rgba(239, 83, 80, 0.28)",bottomLineColor:"rgba(239, 83, 80, 1)",lineWidth:3,lineStyle:0,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new We(t,i)};class Ue extends Ae{constructor(){super(...arguments),this.Kb=new ze}Ob(t,i){return this.Kb.Nb(t,{Wb:i.ah,Hb:"",Ub:"",$b:i.oh,jb:this.rt?.jb??0,qb:t.bitmapSize.height})}}class $e extends Ce{constructor(t,i){super(t,i),this.lS=new Ue,this.Xb=new ge,this.sS=new Fe(this.Xb,(()=>this.Jb())),this.eS=[this],this.rS=[this.sS],this.hS={Za:this.eS,qa:this.rS},this.VM=new Ne(this.lS,this.Xb,(()=>this.Jb()),(()=>this.le.N().hoveredSeriesOnTop))}Ga(){return this.hS}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}NM(){const t=this.ae.N();if(null===this.TM||0===this.kM.length)return;let i;if(t.relativeGradient){i=this.kM[this.TM.from].ut;for(let t=this.TM.from;t<this.TM.to;t++){const n=this.kM[t];n.ut<i&&(i=n.ut)}}this.lS.ht({yb:t.lineType,ot:this.kM,Gt:t.lineStyle,ct:t.lineWidth,zb:null,jb:i,Lb:t.invertFilledArea,lt:this.TM,Cb:this.le.Bt().ml()}),this.Xb.ht({yb:t.lineVisible?t.lineType:void 0,ot:this.kM,Gt:t.lineStyle,ct:t.lineWidth,lt:this.TM,Cb:this.le.Bt().ml(),Pb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}Jb(){return this.ae.It()&&null!==this.TM&&this.aS()}aS(){const t=this.ae.N();return t.lineVisible||t.pointMarkersVisible}}const je={type:"Area",isBuiltIn:!0,defaultOptions:{topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",invertFilledArea:!1,relativeGradient:!1,lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new $e(t,i)};class qe extends y{constructor(){super(...arguments),this.qt=null,this.oS=0,this._S=0}ht(t){this.qt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.qt||0===this.qt.Un.length||null===this.qt.lt)return;if(this.oS=this.uS(i),this.oS>=2){Math.max(1,Math.floor(i))%2!=this.oS%2&&this.oS--}this._S=this.qt.cS?Math.min(this.oS,Math.floor(i)):this.oS;let s=null;const e=this._S<=this.oS&&this.qt.ml>=Math.floor(1.5*i);for(let r=this.qt.lt.from;r<this.qt.lt.to;++r){const h=this.qt.Un[r];s!==h.sh&&(t.fillStyle=h.sh,s=h.sh);const a=Math.floor(.5*this._S),l=Math.round(h._t*i),o=l-a,_=this._S,u=o+_-1,c=Math.min(h.n_,h.s_),d=Math.max(h.n_,h.s_),f=Math.round(c*n)-a,p=Math.round(d*n)+a,v=Math.max(p-f,this._S);t.fillRect(o,f,_,v);const m=Math.ceil(1.5*this.oS);if(e){if(this.qt.dS){const i=l-m;let s=Math.max(f,Math.round(h.i_*n)-a),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(i,s,o-i,e-s+1)}const i=l+m;let s=Math.max(f,Math.round(h.e_*n)-a),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(u+1,s,i-u,e-s+1)}}}uS(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(a(this.qt).ml,t)))}}class Ye extends Es{constructor(t,i){super(t,i,!1)}EM(t,i){return Rs(this.kM,this.TM,t,i,this.le.Bt().ml(),this.ae.N().hitTestTolerance,((t,i)=>{i[0]=t.n_,i[1]=t.s_}))}OM(t,i,n){i.Ic(this.kM,m(this.TM)),t.t_(this.kM,n,m(this.TM))}fS(t,i,n){return{wt:t,jr:i.Wt[0],qr:i.Wt[1],Yr:i.Wt[2],Kr:i.Wt[3],_t:NaN,i_:NaN,n_:NaN,s_:NaN,e_:NaN}}zM(){const t=this.ae.Sa();this.kM=this.ae.Ua().Eh().map((i=>this.Rb(i.$n,i,t)))}}class Ke extends Ye{constructor(){super(...arguments),this.VM=new qe}Rb(t,i,n){return{...this.fS(t,i,n),...n.Sh(t)}}NM(){const t=this.ae.N();this.VM.ht({Un:this.kM,ml:this.le.Bt().ml(),dS:t.openVisible,cS:t.thinBars,lt:this.TM})}}const Ge={type:"Bar",isBuiltIn:!0,defaultOptions:{upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},mb:(t,i)=>new Ke(t,i)};class Ze extends y{constructor(){super(...arguments),this.qt=null,this.oS=0}ht(t){this.qt=t}et(t){if(null===this.qt||0===this.qt.Un.length||null===this.qt.lt)return;const{horizontalPixelRatio:i}=t;if(this.oS=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);const n=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),s=Math.floor(t*n*i),e=Math.floor(t*i),r=Math.min(s,e);return Math.max(Math.floor(i),r)}(this.qt.ml,i),this.oS>=2){Math.floor(i)%2!=this.oS%2&&this.oS--}const n=this.qt.Un;this.qt.pS&&this.vS(t,n,this.qt.lt),this.qt.Mi&&this.Vm(t,n,this.qt.lt);const s=this.mS(i);(!this.qt.Mi||this.oS>2*s)&&this.wS(t,n,this.qt.lt)}vS(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="",a=Math.min(Math.floor(e),Math.floor(this.qt.ml*e));a=Math.max(Math.floor(e),Math.min(a,this.oS));const l=Math.floor(.5*a);let o=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.rh!==h&&(s.fillStyle=n.rh,h=n.rh);const _=Math.round(Math.min(n.i_,n.e_)*r),u=Math.round(Math.max(n.i_,n.e_)*r),c=Math.round(n.n_*r),d=Math.round(n.s_*r);let f=Math.round(e*n._t)-l;const p=f+a-1;null!==o&&(f=Math.max(o+1,f),f=Math.min(f,p));const v=p-f+1;s.fillRect(f,c,v,_-c),s.fillRect(f,u+1,v,d-u),o=p}}mS(t){let i=Math.floor(1*t);this.oS<=2*i&&(i=Math.floor(.5*(this.oS-1)));const n=Math.max(Math.floor(t),i);return this.oS<=2*n?Math.max(Math.floor(t),Math.floor(1*t)):n}Vm(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="";const a=this.mS(e);let l=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.eh!==h&&(s.fillStyle=n.eh,h=n.eh);let o=Math.round(n._t*e)-Math.floor(.5*this.oS);const _=o+this.oS-1,u=Math.round(Math.min(n.i_,n.e_)*r),c=Math.round(Math.max(n.i_,n.e_)*r);if(null!==l&&(o=Math.max(l+1,o),o=Math.min(o,_)),this.qt.ml*e>2*a)V(s,o,u,_-o+1,c-u+1,a);else{const t=_-o+1;s.fillRect(o,u,t,c-u+1)}l=_}}wS(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="";const a=this.mS(e);for(let t=n.from;t<n.to;t++){const n=i[t];let l=Math.round(Math.min(n.i_,n.e_)*r),o=Math.round(Math.max(n.i_,n.e_)*r),_=Math.round(n._t*e)-Math.floor(.5*this.oS),u=_+this.oS-1;if(n.sh!==h){const t=n.sh;s.fillStyle=t,h=t}this.qt.Mi&&(_+=a,l+=a,u-=a,o-=a),l>o||s.fillRect(_,l,u-_+1,o-l+1)}}}class Xe extends Ye{constructor(){super(...arguments),this.VM=new Ze}Rb(t,i,n){return{...this.fS(t,i,n),...n.Sh(t)}}NM(){const t=this.ae.N();this.VM.ht({Un:this.kM,ml:this.le.Bt().ml(),pS:t.wickVisible,Mi:t.borderVisible,lt:this.TM})}}const Je={type:"Candlestick",isBuiltIn:!0,defaultOptions:{upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},mb:(t,i)=>new Xe(t,i)};class Qe extends y{constructor(){super(...arguments),this.qt=null,this.gS=[]}ht(t){this.qt=t,this.gS=[]}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.qt||0===this.qt.ot.length||null===this.qt.lt)return;this.gS.length||this.MS(i);const s=Math.max(1,Math.floor(n)),e=Math.round(this.qt.bS*n)-Math.floor(s/2),r=e+s;for(let i=this.qt.lt.from;i<this.qt.lt.to;i++){const h=this.qt.ot[i],a=this.gS[i-this.qt.lt.from],l=Math.round(h.ut*n);let o,_;t.fillStyle=h.sh,l<=e?(o=l,_=r):(o=e,_=l-Math.floor(s/2)+s),t.fillRect(a.Na,o,a.bi-a.Na+1,_-o)}}MS(t){if(null===this.qt||0===this.qt.ot.length||null===this.qt.lt)return void(this.gS=[]);const i=Math.ceil(this.qt.ml*t)<=1?0:Math.max(1,Math.floor(t)),n=Math.round(this.qt.ml*t)-i;this.gS=new Array(this.qt.lt.to-this.qt.lt.from);for(let i=this.qt.lt.from;i<this.qt.lt.to;i++){const s=this.qt.ot[i],e=Math.round(s._t*t);let r,h;if(n%2){const t=(n-1)/2;r=e-t,h=e+t}else{const t=n/2;r=e-t,h=e+t-1}this.gS[i-this.qt.lt.from]={Na:r,bi:h,SS:e,ce:s._t*t,wt:s.wt}}for(let t=this.qt.lt.from+1;t<this.qt.lt.to;t++){const n=this.gS[t-this.qt.lt.from],s=this.gS[t-this.qt.lt.from-1];n.wt===s.wt+1&&(n.Na-s.bi!==i+1&&(s.SS>s.ce?s.bi=n.Na-i-1:n.Na=s.bi+i+1))}let s=Math.ceil(this.qt.ml*t);for(let t=this.qt.lt.from;t<this.qt.lt.to;t++){const i=this.gS[t-this.qt.lt.from];i.bi<i.Na&&(i.bi=i.Na);const n=i.bi-i.Na+1;s=Math.min(n,s)}if(i>0&&s<4)for(let t=this.qt.lt.from;t<this.qt.lt.to;t++){const i=this.gS[t-this.qt.lt.from];i.bi-i.Na+1>s&&(i.SS>i.ce?i.bi-=1:i.Na+=1)}}}class tr extends xe{constructor(){super(...arguments),this.VM=new Qe}EM(t,i){const n=this.ae.Ft().Nt(this.ae.N().base,a(this.ae.zt()).Wt);return null===n?null:Rs(this.kM,this.TM,t,i,this.le.Bt().ml(),this.ae.N().hitTestTolerance,((t,i)=>{i[0]=t.ut,i[1]=n}))}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}NM(){const t={ot:this.kM,ml:this.le.Bt().ml(),lt:this.TM,bS:this.ae.Ft().Nt(this.ae.N().base,a(this.ae.zt()).Wt)};this.VM.ht(t)}}const ir={type:"Histogram",isBuiltIn:!0,defaultOptions:{color:"#26a69a",base:0},mb:(t,i)=>new tr(t,i)};class nr{constructor(t,i){this.yt=t,this.xS=i,this.CS()}detach(){this.yt.detachPrimitive(this.xS)}getPane(){return this.yt}applyOptions(t){this.xS.vr?.(t)}CS(){this.yt.attachPrimitive(this.xS)}}const sr={visible:!0,horzAlign:"center",vertAlign:"center",lines:[]},er={color:"rgba(0, 0, 0, 0.5)",fontSize:48,fontFamily:w,fontStyle:"",text:""};class rr{constructor(t){this.yS=new Map,this.qt=t}draw(t){t.useMediaCoordinateSpace((t=>{if(!this.qt.visible)return;const{context:i,mediaSize:n}=t;let s=0;for(const t of this.qt.lines){if(0===t.text.length)continue;i.font=t.k;const e=this.PS(i,t.text);e>n.width?t.Uc=n.width/e:t.Uc=1,s+=t.lineHeight*t.Uc}let e=0;switch(this.qt.vertAlign){case"top":e=0;break;case"center":e=Math.max((n.height-s)/2,0);break;case"bottom":e=Math.max(n.height-s,0)}for(const t of this.qt.lines){i.save(),i.fillStyle=t.color;let s=0;switch(this.qt.horzAlign){case"left":i.textAlign="left",s=t.lineHeight/2;break;case"center":i.textAlign="center",s=n.width/2;break;case"right":i.textAlign="right",s=n.width-1-t.lineHeight/2}i.translate(s,e),i.textBaseline="top",i.font=t.k,i.scale(t.Uc,t.Uc),i.fillText(t.text,0,t.kS),i.restore(),e+=t.lineHeight*t.Uc}}))}PS(t,i){const n=this.TS(t.font);let s=n.get(i);return void 0===s&&(s=t.measureText(i).width,n.set(i,s)),s}TS(t){let i=this.yS.get(t);return void 0===i&&(i=new Map,this.yS.set(t,i)),i}}class hr{constructor(t){this.yn=lr(t)}Pt(t){this.yn=lr(t)}renderer(){return new rr(this.yn)}}function ar(t){return{...t,k:g(t.fontSize,t.fontFamily,t.fontStyle),lineHeight:t.lineHeight||1.2*t.fontSize,kS:0,Uc:0}}function lr(t){return{...t,lines:t.lines.map(ar)}}function or(t){return{...er,...t}}function _r(t){return{...sr,...t,lines:t.lines?.map(or)??[]}}class ur{constructor(t){this.yn=_r(t),this.RS=[new hr(this.yn)]}updateAllViews(){this.RS.forEach((t=>t.Pt(this.yn)))}paneViews(){return this.RS}attached({requestUpdate:t}){this.DS=t}detached(){this.DS=void 0}vr(t){this.yn=_r({...this.yn,...t}),this.DS&&this.DS()}}const cr={alpha:1,padding:0};class dr{constructor(t){this.qt=t}draw(t){t.useMediaCoordinateSpace((t=>{const i=t.context,n=this.IS(this.qt,t.mediaSize);n&&this.qt.VS&&(i.globalAlpha=this.qt.alpha??1,i.drawImage(this.qt.VS,n._t,n.ut,n.nn,n.$t))}))}IS(t,i){const{maxHeight:n,maxWidth:s,ES:e,BS:r,padding:h}=t,a=Math.round(i.width/2),l=Math.round(i.height/2),o=h??0;let _=i.width-2*o,u=i.height-2*o;n&&(u=Math.min(u,n)),s&&(_=Math.min(_,s));const c=_/r,d=u/e,f=Math.min(c,d),p=r*f,v=e*f;return{_t:a-.5*p,ut:l-.5*v,$t:v,nn:p}}}class fr{constructor(t){this.AS=null,this.zS=0,this.LS=0,this.yn=t,this.M=pr(this.yn,this.AS,this.zS,this.LS)}OS(t){void 0!==t.NS&&(this.zS=t.NS),void 0!==t.FS&&(this.LS=t.FS),void 0!==t.WS&&(this.AS=t.WS),this.Pt()}HS(t){this.yn=t,this.Pt()}zOrder(){return"bottom"}Pt(){this.M=pr(this.yn,this.AS,this.zS,this.LS)}renderer(){return new dr(this.M)}}function pr(t,i,n,s){return{...t,VS:i,BS:n,ES:s}}function vr(t){return{...cr,...t}}class mr{constructor(t,i){this.US=null,this.$S=t,this.yn=vr(i),this.RS=[new fr(this.yn)]}updateAllViews(){this.RS.forEach((t=>t.Pt()))}paneViews(){return this.RS}attached(t){const{requestUpdate:i}=t;this.jS=i,this.US=new Image,this.US.onload=()=>{const t=this.US?.naturalHeight??1,i=this.US?.naturalWidth??1;this.RS.forEach((n=>n.OS({FS:t,NS:i,WS:this.US}))),this.jS&&this.jS()},this.US.src=this.$S}detached(){this.jS=void 0,this.US=null}vr(t){this.yn=vr({...this.yn,...t}),this.qS(),this.DS&&this.DS()}DS(){this.jS&&this.jS()}qS(){this.RS.forEach((t=>t.HS(this.yn)))}}class wr{constructor(t,i){this.ae=t,this.Jh=i,this.CS()}detach(){this.ae.detachPrimitive(this.Jh)}getSeries(){return this.ae}applyOptions(t){this.Jh&&this.Jh.vr&&this.Jh.vr(t)}CS(){this.ae.attachPrimitive(this.Jh)}}const gr={autoScale:!0,zOrder:"normal"};function Mr(t,i){return ti(Math.min(Math.max(t,12),30)*i)}function br(t,i){const n="circle"===t?.8:"square"===t?.7:1;return ti(Math.max(i,12)*n)}function Sr(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(Mr(t,1))}function xr(t){return Math.max(Mr(t,.1),3)}function Cr(t,i,n){return i?t:n?Math.ceil(t/2):0}function yr(t,i,n,s){const e=(br("arrowUp",s)-1)/2*n.YS,r=(ti(s/2)-1)/2*n.YS;i.beginPath(),t?(i.moveTo(n._t-e,n.ut),i.lineTo(n._t,n.ut-e),i.lineTo(n._t+e,n.ut),i.lineTo(n._t+r,n.ut),i.lineTo(n._t+r,n.ut+e),i.lineTo(n._t-r,n.ut+e),i.lineTo(n._t-r,n.ut)):(i.moveTo(n._t-e,n.ut),i.lineTo(n._t,n.ut+e),i.lineTo(n._t+e,n.ut),i.lineTo(n._t+r,n.ut),i.lineTo(n._t+r,n.ut-e),i.lineTo(n._t-r,n.ut-e),i.lineTo(n._t-r,n.ut)),i.fill()}function Pr(t,i,n,s,e,r){const h=(br("arrowUp",s)-1)/2,a=(ti(s/2)-1)/2;if(e>=i-a-2&&e<=i+a+2&&r>=(t?n:n-h)-2&&r<=(t?n+h:n)+2)return!0;return(()=>{if(e<i-h-3||e>i+h+3||r<(t?n-h-3:n)||r>(t?n:n+h+3))return!1;const s=Math.abs(e-i);return Math.abs(r-n)+3>=s/2})()}class kr{constructor(){this.qt=null,this.$s=new it,this.F=-1,this.W="",this.hm="",this.KS="normal"}ht(t){this.qt=t}js(t,i,n){this.F===t&&this.W===i||(this.F=t,this.W=i,this.hm=g(t,i),this.$s.Os()),this.KS=n}Qs(t,i){if(null===this.qt||null===this.qt.lt)return null;for(let n=this.qt.lt.from;n<this.qt.lt.to;n++){const s=this.qt.ot[n];if(s&&Rr(s,t,i))return{zOrder:"normal",externalId:s.te??"",itemType:"marker"}}return null}draw(t){"aboveSeries"!==this.KS&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}drawBackground(t){"aboveSeries"===this.KS&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null!==this.qt&&null!==this.qt.lt){t.textBaseline="middle",t.font=this.hm;for(let s=this.qt.lt.from;s<this.qt.lt.to;s++){const e=this.qt.ot[s];void 0!==e.ri&&(e.ri.nn=this.$s.Ii(t,e.ri.GS),e.ri.$t=this.F,e.ri._t=e._t-e.ri.nn/2),Tr(e,t,i,n)}}}}function Tr(t,i,n,s){i.fillStyle=t.R,void 0!==t.ri&&function(t,i,n,s,e,r){t.save(),t.scale(e,r),t.fillText(i,n,s),t.restore()}(i,t.ri.GS,t.ri._t,t.ri.ut,n,s),function(t,i,n){if(0===t.Th)return;switch(t.ZS){case"arrowDown":return void yr(!1,i,n,t.Th);case"arrowUp":return void yr(!0,i,n,t.Th);case"circle":return void function(t,i,n){const s=(br("circle",n)-1)/2;t.beginPath(),t.arc(i._t,i.ut,s*i.YS,0,2*Math.PI,!1),t.fill()}(i,n,t.Th);case"square":return void function(t,i,n){const s=br("square",n),e=(s-1)*i.YS/2,r=i._t-e,h=i.ut-e;t.fillRect(r,h,s*i.YS,s*i.YS)}(i,n,t.Th)}t.ZS}(t,i,function(t,i,n){const s=Math.max(1,Math.floor(i))%2/2;return{_t:Math.round(t._t*i)+s,ut:t.ut*n,YS:i}}(t,n,s))}function Rr(t,i,n){return!(void 0===t.ri||!function(t,i,n,s,e,r){const h=s/2;return e>=t&&e<=t+n&&r>=i-h&&r<=i+h}(t.ri._t,t.ri.ut,t.ri.nn,t.ri.$t,i,n))||function(t,i,n){if(0===t.Th)return!1;switch(t.ZS){case"arrowDown":return Pr(!0,t._t,t.ut,t.Th,i,n);case"arrowUp":return Pr(!1,t._t,t.ut,t.Th,i,n);case"circle":return function(t,i,n,s,e){const r=2+br("circle",n)/2,h=t-s,a=i-e;return Math.sqrt(h*h+a*a)<=r}(t._t,t.ut,t.Th,i,n);case"square":return function(t,i,n,s,e){const r=br("square",n),h=(r-1)/2,a=t-h,l=i-h;return s>=a&&s<=a+r&&e>=l&&e<=l+r}(t._t,t.ut,t.Th,i,n)}}(t,i,n)}function Dr(t){return"atPriceTop"===t||"atPriceBottom"===t||"atPriceMiddle"===t}function Ir(t,i,n,s,e,r,h,l){const o=function(t,i,n){if(Dr(i.position)&&void 0!==i.price)return i.price;if("value"in(s=t)&&"number"==typeof s.value)return t.value;var s;if(function(t){return"open"in t&&"high"in t&&"low"in t&&"close"in t}(t)){if("inBar"===i.position)return t.close;if("aboveBar"===i.position)return n?t.low:t.high;if("belowBar"===i.position)return n?t.high:t.low}}(n,i,h.priceScale().options().invertScale);if(void 0===o)return;const _=Dr(i.position),c=l.timeScale(),d=u(i.size)?Math.max(i.size,0):1,f=Sr(c.options().barSpacing)*d,p=f/2;t.Th=f;switch(i.position){case"inBar":case"atPriceMiddle":return t.ut=a(h.priceToCoordinate(o)),void(void 0!==t.ri&&(t.ri.ut=t.ut+p+r+.6*e));case"aboveBar":case"atPriceTop":{const i=_?0:s.XS;return t.ut=a(h.priceToCoordinate(o))-p-i,void 0!==t.ri&&(t.ri.ut=t.ut-p-.6*e,s.XS+=1.2*e),void(_||(s.XS+=f+r))}case"belowBar":case"atPriceBottom":{const i=_?0:s.JS;return t.ut=a(h.priceToCoordinate(o))+p+i,void 0!==t.ri&&(t.ri.ut=t.ut+p+r+.6*e,s.JS+=1.2*e),void(_||(s.JS+=f+r))}}}class Vr{constructor(t,i,n){this.QS=[],this.xt=!0,this.tx=!0,this.Xt=new kr,this.Te=t,this.Gv=i,this.qt={ot:[],lt:null},this.yn=n}renderer(){if(!this.Te.options().visible)return null;this.xt&&this.IM();const t=this.Gv.options().layout;return this.Xt.js(t.fontSize,t.fontFamily,this.yn.zOrder),this.Xt.ht(this.qt),this.Xt}ix(t){this.QS=t,this.Pt("data")}Pt(t){this.xt=!0,"data"===t&&(this.tx=!0)}nx(t){this.xt=!0,this.yn=t}zOrder(){return"aboveSeries"===this.yn.zOrder?"top":this.yn.zOrder}IM(){const t=this.Gv.timeScale(),i=this.QS;this.tx&&(this.qt.ot=i.map((t=>({wt:t.time,_t:0,ut:0,Th:0,ZS:t.shape,R:t.color,te:t.id,sx:t.sx,ri:void 0}))),this.tx=!1);const n=this.Gv.options().layout;this.qt.lt=null;const s=t.getVisibleLogicalRange();if(null===s)return;const e=new Ii(Math.floor(s.from),Math.ceil(s.to));if(null===this.Te.dataByIndex(0,1))return;if(0===this.qt.ot.length)return;let r=NaN;const h=xr(t.options().barSpacing),l={XS:h,JS:h};this.qt.lt=Vs(this.qt.ot,e,!0);for(let s=this.qt.lt.from;s<this.qt.lt.to;s++){const e=i[s];e.time!==r&&(l.XS=h,l.JS=h,r=e.time);const o=this.qt.ot[s];o._t=a(t.logicalToCoordinate(e.time)),void 0!==e.text&&e.text.length>0&&(o.ri={GS:e.text,_t:0,ut:0,nn:0,$t:0});const _=this.Te.dataByIndex(e.time,0);null!==_&&Ir(o,e,_,l,n.fontSize,h,this.Te,this.Gv)}this.xt=!1}}function Er(t){return{...gr,...t}}class Br{constructor(t){this.Yh=null,this.QS=[],this.hx=[],this.lx=null,this.Te=null,this.Gv=null,this.ox=!0,this._x=null,this.ux=null,this.vx=null,this.mx=!0,this.yn=Er(t)}attached(t){this.wx(),this.Gv=t.chart,this.Te=t.series,this.Yh=new Vr(this.Te,a(this.Gv),this.yn),this.jS=t.requestUpdate,this.Te.subscribeDataChanged((t=>this.QM(t))),this.mx=!0,this.DS()}DS(){this.jS&&this.jS()}detached(){this.Te&&this.lx&&this.Te.unsubscribeDataChanged(this.lx),this.Gv=null,this.Te=null,this.Yh=null,this.lx=null}ix(t){this.mx=!0,this.QS=t,this.wx(),this.ox=!0,this.ux=null,this.DS()}gx(){return this.QS}paneViews(){return this.Yh?[this.Yh]:[]}updateAllViews(){this.Mx()}hitTest(t,i){return this.Yh?this.Yh.renderer()?.Qs(t,i)??null:null}autoscaleInfo(t,i){if(this.yn.autoScale&&this.Yh){const t=this.bx();if(t)return{priceRange:null,margins:t}}return null}vr(t){this.yn=Er({...this.yn,...t}),this.DS&&this.DS()}bx(){const t=a(this.Gv).timeScale().options().barSpacing;if(this.ox||t!==this.vx){if(this.vx=t,this.QS.length>0){const i=xr(t),n=1.5*Sr(t)+2*i,s=this.Sx();this._x={above:Cr(n,s.aboveBar,s.inBar),below:Cr(n,s.belowBar,s.inBar)}}else this._x=null;this.ox=!1}return this._x}Sx(){return null===this.ux&&(this.ux=this.QS.reduce(((t,i)=>(t[i.position]||(t[i.position]=!0),t)),{inBar:!1,aboveBar:!1,belowBar:!1,atPriceTop:!1,atPriceBottom:!1,atPriceMiddle:!1})),this.ux}wx(){if(!this.mx||!this.Gv||!this.Te)return;const t=this.Gv.timeScale(),i=this.Te?.data();if(null==t.getVisibleLogicalRange()||!this.Te||0===i.length)return void(this.hx=[]);const n=t.timeToIndex(a(i[0].time),!0);this.hx=this.QS.map(((i,s)=>{const e=t.timeToIndex(i.time,!0),r=e<n?1:-1,h=a(this.Te).dataByIndex(e,r),l={time:t.timeToIndex(a(h).time,!1),position:i.position,shape:i.shape,color:i.color,id:i.id,sx:s,text:i.text,size:i.size,price:i.price,Qr:i.time};if("atPriceTop"===i.position||"atPriceBottom"===i.position||"atPriceMiddle"===i.position){if(void 0===i.price)throw new Error(`Price is required for position ${i.position}`);return{...l,position:i.position,price:i.price}}return{...l,position:i.position,price:i.price}})),this.mx=!1}Mx(t){this.Yh&&(this.wx(),this.Yh.ix(this.hx),this.Yh.nx(this.yn),this.Yh.Pt(t))}QM(t){this.mx=!0,this.DS()}}class Ar extends wr{constructor(t,i,n){super(t,i),n&&this.setMarkers(n)}setMarkers(t){this.Jh.ix(t)}markers(){return this.Jh.gx()}}class zr{constructor(t){this.QS=new Map,this.xx=t}Cx(t,i,n){if(this.yx(i),void 0!==n){const s=window.setTimeout((()=>{this.QS.delete(i),this.Px()}),n),e={...t,kx:s,Tx:Date.now()+n};this.QS.set(i,e)}else this.QS.set(i,{...t,kx:void 0,Tx:void 0});this.Px()}yx(t){const i=this.QS.get(t);i&&void 0!==i.kx&&window.clearTimeout(i.kx),this.QS.delete(t),this.Px()}Rx(){for(const[t]of this.QS)this.yx(t)}Dx(){const t=Date.now(),i=[];for(const[n,s]of this.QS)!s.Tx||s.Tx>t?i.push({time:s.time,sign:s.sign,value:s.value}):this.yx(n);return i}Ix(t){this.xx=t}Px(){this.xx&&this.xx()}}const Lr={positiveColor:"#22AB94",negativeColor:"#F7525F",updateVisibilityDuration:5e3};class Or{constructor(t,i,n,s){this.qt=t,this.Vx=i,this.Ex=n,this.Bx=s}draw(t){t.useBitmapCoordinateSpace((t=>{const i=t.context,n=Math.max(1,Math.floor(t.horizontalPixelRatio))%2/2,s=4*t.verticalPixelRatio+n;this.qt.forEach((e=>{const r=Math.round(e._t*t.horizontalPixelRatio)+n;i.beginPath();const h=this.Ax(e.zx);i.fillStyle=h,i.arc(r,e.ut*t.verticalPixelRatio,s,0,2*Math.PI,!1),i.fill(),e.zx&&(i.strokeStyle=h,i.lineWidth=Math.floor(2*t.horizontalPixelRatio),i.beginPath(),i.moveTo((e._t-4.7)*t.horizontalPixelRatio+n,(e.ut-7*e.zx)*t.verticalPixelRatio),i.lineTo(e._t*t.horizontalPixelRatio+n,(e.ut-7*e.zx-7*e.zx*.5)*t.verticalPixelRatio),i.lineTo((e._t+4.7)*t.horizontalPixelRatio+n,(e.ut-7*e.zx)*t.verticalPixelRatio),i.stroke())}))}))}Ax(t){return 0===t?this.Vx:t>0?this.Bx:this.Ex}}class Nr{constructor(t,i,n){this.qt=[],this.Te=t,this.ia=i,this.yn=n}Pt(t){this.qt=t.map((t=>{const i=this.Te.priceToCoordinate(t.value);if(null===i)return null;return{_t:a(this.ia.timeToCoordinate(t.time)),ut:i,zx:t.sign}})).filter(v)}renderer(){const t=function(t,i){return function(t,i){return"Area"===i}(0,i)?t.lineColor:t.color}(this.Te.options(),this.Te.seriesType());return new Or(this.qt,t,this.yn.negativeColor,this.yn.positiveColor)}}function Fr(t,i){return"Line"===i||"Area"===i}class Wr{constructor(t){this.Gv=void 0,this.Te=void 0,this.RS=[],this.Pu=null,this.Lx=new Map,this.Ox=new zr((()=>this.DS())),this.yn={...Lr,...t}}vr(t){this.yn={...this.yn,...t},this.DS()}ix(t){this.Ox.Rx();const i=this.Pu;i&&t.forEach((t=>{this.Ox.Cx(t,i.key(t.time))}))}gx(){return this.Ox.Dx()}DS(){this.jS?.()}attached(t){const{chart:i,series:n,requestUpdate:s,horzScaleBehavior:e}=t;this.Gv=i,this.Te=n,this.Pu=e;const r=this.Te.seriesType();if("Area"!==r&&"Line"!==r)throw new Error("UpDownMarkersPrimitive is only supported for Area and Line series types");this.RS=[new Nr(this.Te,this.Gv.timeScale(),this.yn)],this.jS=s,this.DS()}detached(){this.Gv=void 0,this.Te=void 0,this.jS=void 0}_m(){return h(this.Gv)}Y_(){return h(this.Te)}updateAllViews(){this.RS.forEach((t=>t.Pt(this.gx())))}paneViews(){return this.RS}ht(t){if(!this.Te)throw new Error("Primitive not attached to series");const i=this.Te.seriesType();this.Lx.clear();const n=this.Pu;n&&t.forEach((t=>{ss(t)&&Fr(0,i)&&this.Lx.set(n.key(t.time),t.value)})),h(this.Te).setData(t)}Pt(t,i){if(!this.Te||!this.Pu)throw new Error("Primitive not attached to series");const n=this.Te.seriesType(),s=this.Pu.key(t.time);if(ns(t)&&this.Lx.delete(s),ss(t)&&Fr(0,n)){const i=this.Lx.get(s);i&&this.Ox.Cx({time:t.time,value:t.value,sign:Hr(t.value,i)},s,this.yn.updateVisibilityDuration)}h(this.Te).update(t,i)}Nx(){this.Ox.Rx()}}function Hr(t,i){return t===i?0:t-i>0?1:-1}class Ur extends wr{setData(t){return this.Jh.ht(t)}update(t,i){return this.Jh.Pt(t,i)}markers(){return this.Jh.gx()}setMarkers(t){return this.Jh.ix(t)}clearMarkers(){return this.Jh.Nx()}}const $r={...t,color:"#2196f3"};var jr=Object.freeze({__proto__:null,AreaSeries:je,BarSeries:Ge,BaselineSeries:He,CandlestickSeries:Je,get ColorType(){return Fi},get CrosshairMode(){return $},HistogramSeries:ir,get LastPriceAnimationMode(){return Oi},LineSeries:Pe,get LineStyle(){return n},get LineType(){return i},get MismatchDirection(){return kt},get PriceLineSource(){return Ni},get PriceScaleMode(){return mi},get TickMarkType(){return Wi},get TrackingModeExitMode(){return Li},createChart:function(t,i){return _e(t,new ln,ln.Tf(i))},createChartEx:_e,createImageWatermark:function(t,i,n){return new nr(t,new mr(i,n))},createOptionsChart:function(t,i){return _e(t,new Ee,i)},createSeriesMarkers:function(t,i,n){const s=new Ar(t,new Br(n??{}));return i&&s.setMarkers(i),s},createTextWatermark:function(t,i){return new nr(t,new ur(i))},createUpDownMarkers:function(t,i={}){return new Ur(t,new Wr(i))},createYieldCurveChart:function(t,i){const n=oe(t);return new Ie(n,i)},customSeriesDefaultOptions:$r,defaultHorzScaleBehavior:function(){return ln},isBusinessDay:$i,isUTCTimestamp:ji,version:function(){return"5.2.1"}});window.LightweightCharts=jr}();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dataset 工具边界的**宽容参数解析**。
|
|
3
|
+
*
|
|
4
|
+
* 模型经常把数组/对象参数序列化成 JSON 字符串再传(实测:`"select": "[\"date_ms\"]"`、
|
|
5
|
+
* `"group_by": "[]"`、`"aggregates": "[{...}]"`、`"limit": "1"`),于是参数其实是对的,
|
|
6
|
+
* 却报 `query_spec_invalid: select must contain 1-32 column names`,模型只能反复试错。
|
|
7
|
+
*
|
|
8
|
+
* 这里在**工具边界**做一次宽容解析,查询引擎本身保持严格:能解析成正确类型就放行,
|
|
9
|
+
* 解析不了就原样交给校验器报错(错误信息仍指向真实问题)。
|
|
10
|
+
*
|
|
11
|
+
* 本模块由 `query_dataset`(dataset-tools.ts)与 `describe_dataset`(describe.ts)共用,
|
|
12
|
+
* 保证两个工具对同一种"字符串化的 JSON"给出**完全一致**的宽容度——两份实现漂移会让模型
|
|
13
|
+
* 在换工具后重新踩同一个坑。
|
|
14
|
+
*/
|
|
15
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
16
|
+
export declare function parseJsonContainer(value: unknown): unknown;
|
|
17
|
+
/** 列名数组:接受真数组、JSON 数组字符串,或单个列名字符串。 */
|
|
18
|
+
export declare function coerceNameList(value: unknown): unknown;
|
|
19
|
+
/** 对象数组:接受真数组、JSON 数组字符串,或单个对象(对象本身或其 JSON 字符串)。 */
|
|
20
|
+
export declare function coerceObjectList(value: unknown): unknown;
|
|
21
|
+
export declare function coerceLimit(value: unknown): unknown;
|
|
22
|
+
export declare const QUERY_NAME_LIST_FIELDS: readonly ["select", "group_by"];
|
|
23
|
+
export declare const QUERY_OBJECT_LIST_FIELDS: readonly ["filters", "aggregates", "order_by"];
|
|
24
|
+
/** 把 QuerySpec 的数组/对象字段与 limit 统一解析成引擎期望的类型(不改其余字段)。 */
|
|
25
|
+
export declare function coerceQueryShape(input: Record<string, unknown>): Record<string, unknown>;
|
|
26
|
+
/** dataset_id 的形态校验;不合法一律在工具边界抛错,绝不带进 store。 */
|
|
27
|
+
export declare function readDatasetId(value: unknown): string;
|
|
28
|
+
/** task_id 是可选元数据:空值等同于未提供,只做长度上限校验。 */
|
|
29
|
+
export declare function readOptionalTaskId(value: unknown): string | undefined;
|
|
30
|
+
/** 可选的字符串参数(time_column / primary_key):非字符串一律视为未提供。 */
|
|
31
|
+
export declare function readOptionalString(value: unknown): string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* 列名过滤参数(describe_dataset 的 `columns_of_interest`)。
|
|
34
|
+
*
|
|
35
|
+
* 接受真数组 / JSON 数组字符串 / 单个列名字符串;解析结果不是数组就抛错——静默忽略一个
|
|
36
|
+
* 写错的过滤条件会让模型以为"结果已经收窄",而实际返回的是全量(或反过来),所以这里响亮失败。
|
|
37
|
+
*/
|
|
38
|
+
export declare function readOptionalColumnList(value: unknown): string[] | undefined;
|