pymations 0.0.0-stage → 0.1.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.
Files changed (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +24 -2
  3. package/THIRD-PARTY-NOTICES +217 -0
  4. package/engine/anim.js +8 -0
  5. package/engine/fonts/KaTeX_AMS-Regular.ttf +0 -0
  6. package/engine/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  7. package/engine/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  8. package/engine/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  9. package/engine/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  10. package/engine/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  11. package/engine/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  12. package/engine/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  13. package/engine/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  14. package/engine/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  15. package/engine/fonts/KaTeX_Main-Bold.ttf +0 -0
  16. package/engine/fonts/KaTeX_Main-Bold.woff2 +0 -0
  17. package/engine/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  18. package/engine/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  19. package/engine/fonts/KaTeX_Main-Italic.ttf +0 -0
  20. package/engine/fonts/KaTeX_Main-Italic.woff2 +0 -0
  21. package/engine/fonts/KaTeX_Main-Regular.ttf +0 -0
  22. package/engine/fonts/KaTeX_Main-Regular.woff2 +0 -0
  23. package/engine/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  24. package/engine/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  25. package/engine/fonts/KaTeX_Math-Italic.ttf +0 -0
  26. package/engine/fonts/KaTeX_Math-Italic.woff2 +0 -0
  27. package/engine/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  28. package/engine/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  29. package/engine/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  30. package/engine/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  31. package/engine/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  32. package/engine/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  33. package/engine/fonts/KaTeX_Script-Regular.ttf +0 -0
  34. package/engine/fonts/KaTeX_Script-Regular.woff2 +0 -0
  35. package/engine/fonts/KaTeX_Size1-Regular.ttf +0 -0
  36. package/engine/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  37. package/engine/fonts/KaTeX_Size2-Regular.ttf +0 -0
  38. package/engine/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  39. package/engine/fonts/KaTeX_Size3-Regular.ttf +0 -0
  40. package/engine/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  41. package/engine/fonts/KaTeX_Size4-Regular.ttf +0 -0
  42. package/engine/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  43. package/engine/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  44. package/engine/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  45. package/engine/fonts/LICENSE_KATEX_FONTS.txt +106 -0
  46. package/engine/fonts/LICENSE_LIBERATION.txt +102 -0
  47. package/engine/fonts/LiberationSans-Bold.ttf +0 -0
  48. package/engine/fonts/LiberationSans-BoldItalic.ttf +0 -0
  49. package/engine/fonts/LiberationSans-Italic.ttf +0 -0
  50. package/engine/fonts/LiberationSans-Regular.ttf +0 -0
  51. package/engine/katex.min.css +1 -0
  52. package/engine/katex.min.js +1 -0
  53. package/engine/opentype.min.js +2 -0
  54. package/package.json +34 -4
  55. package/pyctures.py +895 -0
  56. package/pymations.js +1805 -0
  57. package/pymations.py +4346 -0
package/engine/anim.js ADDED
@@ -0,0 +1,8 @@
1
+ /* Pymations engine (MIT licence, John Wylie). Built from engine/src. Loads KaTeX and opentype.js beside it. */
2
+ (()=>{var ft=[1,0,0,1,0,0];function Y(t,n){return[t[0]*n[0]+t[2]*n[1],t[1]*n[0]+t[3]*n[1],t[0]*n[2]+t[2]*n[3],t[1]*n[2]+t[3]*n[3],t[0]*n[4]+t[2]*n[5]+t[4],t[1]*n[4]+t[3]*n[5]+t[5]]}function yt(t,n){return[t[0]*n[0]+t[2]*n[1]+t[4],t[1]*n[0]+t[3]*n[1]+t[5]]}function xe(t){let n=t[0]*t[3]-t[1]*t[2]||1e-12,e=t[3]/n,r=-t[1]/n,o=-t[2]/n,s=t[0]/n;return[e,r,o,s,-(e*t[4]+o*t[5]),-(r*t[4]+s*t[5])]}function Z(t,n){return[1,0,0,1,t,n]}function St(t,n,e){return[t,0,0,n,e[0]-t*e[0],e[1]-n*e[1]]}function te(t,n){let e=Math.cos(t),r=Math.sin(t);return[e,r,-r,e,n[0]-e*n[0]+r*n[1],n[1]-r*n[0]-e*n[1]]}function de(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e,t[2]+(n[2]-t[2])*e,t[3]+(n[3]-t[3])*e,t[4]+(n[4]-t[4])*e,t[5]+(n[5]-t[5])*e]}function un(t){return Math.sqrt(Math.abs(t[0]*t[3]-t[1]*t[2]))||1e-9}var _t=Math.PI*2;function Ct(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function ia(t,n){return Math.hypot(n[0]-t[0],n[1]-t[1])}function mn(t,n,e){t.push(Ct(n,e,1/3),Ct(n,e,2/3),[e[0],e[1]])}function dt(t,n){let e=[[t[0],t[1]]];return mn(e,t,n),{points:e,closed:!1}}function ot(t,n){if(!t.length)return{points:[[0,0]],closed:!1};let e=[[t[0][0],t[0][1]]];for(let r=1;r<t.length;r++)mn(e,t[r-1],t[r]);return n&&t.length>1&&mn(e,t[t.length-1],t[0]),{points:e,closed:n}}function It(t,n,e,r,o,s=!1,a=0){let i=a>0?a:Math.max(1,Math.ceil(Math.abs(o)/(_t/8)-1e-9)),c=o/i,u=4/3*Math.tan(c/4),f=m=>[t[0]+n*Math.cos(m),t[1]+e*Math.sin(m)],l=[f(r)];for(let m=0;m<i;m++){let h=r+c*m,p=h+c,d=f(h),g=f(p);l.push([d[0]-u*n*Math.sin(h),d[1]+u*e*Math.cos(h)],[g[0]+u*n*Math.sin(p),g[1]-u*e*Math.cos(p)],g)}return s&&(l[l.length-1]=[l[0][0],l[0][1]]),{points:l,closed:s}}function ee(t,n){return It(t,n,n,0,_t,!0)}function Ge(t,n,e){if(e=Math.max(0,Math.min(e,t/2,n/2)),e<=1e-9)return ot(pe(t,n),!0);let r=t/2,o=n/2,s=[],a=(i,c,u)=>{let f=It([i,c],e,e,u,Math.PI/2,!1,1);s.length?(mn(s,s[s.length-1],f.points[0]),s.push(...f.points.slice(1))):s.push(...f.points)};return a(r-e,o-e,0),a(-r+e,o-e,Math.PI/2),a(-r+e,-o+e,Math.PI),a(r-e,-o+e,Math.PI*1.5),mn(s,s[s.length-1],s[0]),s[s.length-1]=[s[0][0],s[0][1]],{points:s,closed:!0}}function pe(t,n){return[[t/2,n/2],[-t/2,n/2],[-t/2,-n/2],[t/2,-n/2]]}function mr(t,n,e){let r=[];for(let o=0;o<t;o++){let s=e+_t*o/t;r.push([n*Math.cos(s),n*Math.sin(s)])}return r}function po(t,n,e,r){let o=[];for(let s=0;s<2*t;s++){let a=r+Math.PI*s/t,i=s%2?e:n;o.push([i*Math.cos(a),i*Math.sin(a)])}return o}function fn(t,n){let e=t.length;if(e<3)return ot(t,n);let r=a=>n?t[(a%e+e)%e]:t[Math.max(0,Math.min(e-1,a))],o=[[t[0][0],t[0][1]]],s=n?e:e-1;for(let a=0;a<s;a++){let i=r(a-1),c=r(a),u=r(a+1),f=r(a+2);o.push([c[0]+(u[0]-i[0])/6,c[1]+(u[1]-i[1])/6],[u[0]-(f[0]-c[0])/6,u[1]-(f[1]-c[1])/6],[u[0],u[1]])}return{points:o,closed:n}}function zt(t,n){return t.map(e=>({points:e.points.map(r=>yt(n,r)),closed:e.closed}))}function hn(t,n){let e=1/0,r=1/0,o=-1/0,s=-1/0;for(let a of t)for(let i of a.points){let c=n?n[0]*i[0]+n[2]*i[1]+n[4]:i[0],u=n?n[1]*i[0]+n[3]*i[1]+n[5]:i[1];c<e&&(e=c),c>o&&(o=c),u<r&&(r=u),u>s&&(s=u)}return e===1/0?null:[e,r,o,s]}function dn(t,n){return t?n?[Math.min(t[0],n[0]),Math.min(t[1],n[1]),Math.max(t[2],n[2]),Math.max(t[3],n[3])]:t:n}function bo(t,n,e,r,o){let s=1-o,a=s*s*s,i=3*s*s*o,c=3*s*o*o,u=o*o*o;return[a*t[0]+i*n[0]+c*e[0]+u*r[0],a*t[1]+i*n[1]+c*e[1]+u*r[1]]}function go(t,n,e,r,o,s){let[a,i,c,u]=ca(t,n,e,r,s);if(o>0){let f=s>0?o/s:0;[a,i,c,u]=ua(a,i,c,u,f)}return[a,i,c,u]}function ca(t,n,e,r,o){let s=Ct(t,n,o),a=Ct(n,e,o),i=Ct(e,r,o),c=Ct(s,a,o),u=Ct(a,i,o),f=Ct(c,u,o);return[t,s,c,f]}function ua(t,n,e,r,o){let s=Ct(t,n,o),a=Ct(n,e,o),i=Ct(e,r,o),c=Ct(s,a,o),u=Ct(a,i,o);return[Ct(c,u,o),u,i,r]}var ln=12,fo=new WeakMap;function fr(t){let n=fo.get(t);if(n)return n;let e=[],r=0;return t.forEach((o,s)=>{let a=o.points;for(let i=0;i+3<a.length;i+=3){let c=new Float64Array(ln+1),u=a[i],f=0;for(let l=1;l<=ln;l++){let m=bo(a[i],a[i+1],a[i+2],a[i+3],l/ln);f+=ia(u,m),c[l]=f,u=m}e.push({sub:s,i,len:f,cum:c}),r+=f}}),n={segs:e,total:r},fo.set(t,n),n}function hr(t){return fr(t).total}function ur(t,n){if(n<=0)return 0;if(n>=t.len)return 1;let e=t.cum,r=1;for(;r<ln&&e[r]<n;)r++;let o=e[r]-e[r-1]||1;return(r-1+(n-e[r-1])/o)/ln}function Fe(t,n,e){if(n<=0&&e>=1)return t;if(e<=n)return[];let r=fr(t),o=r.total;if(o<=1e-12)return e>=1?t:[];let s=n*o,a=e*o,i=[],c=0,u=null,f=-1,l=!0;for(let m of r.segs){let h=c+m.len,p=t[m.sub].points;m.sub!==f&&(u&&i.push({points:u,closed:l&&t[f].closed}),u=null,f=m.sub,l=!0);let d=Math.max(s,c),g=Math.min(a,h);if(g>d||m.len===0&&c>=s&&c<=a){(d>c+1e-12||g<h-1e-12)&&(l=!1);let w=ur(m,d-c),M=ur(m,g-c),S=w<=0&&M>=1?[p[m.i],p[m.i+1],p[m.i+2],p[m.i+3]]:go(p[m.i],p[m.i+1],p[m.i+2],p[m.i+3],w,M);u||(u=[S[0]]),u.push(S[1],S[2],S[3])}else l=!1;c=h}return u&&i.push({points:u,closed:l&&t[f].closed}),i}function we(t,n){var s;let e=fr(t);if(!e.segs.length){let a=(s=t[0])==null?void 0:s.points[0];return a?[a[0],a[1]]:[0,0]}let r=Math.max(0,Math.min(1,n))*e.total,o=0;for(let a of e.segs){if(r<=o+a.len||a===e.segs[e.segs.length-1]){let i=t[a.sub].points;return bo(i[a.i],i[a.i+1],i[a.i+2],i[a.i+3],ur(a,r-o))}o+=a.len}return[0,0]}function yo(t,n,e){let r=hr(t),o=Math.max(2,Math.ceil(r/Math.max(1e-6,n)*e)),s=e/o,i=t.length===1&&t[0].closed?1/o:(1-s)/(o-1),c=[];for(let u=0;u<o;u++){let f=u*i;for(let l of Fe(t,f,Math.min(1,f+s)))c.push({points:l.points,closed:!1})}return c}function lr(t){return Math.max(0,(t.points.length-1)/3)}function ho(t,n){let e=lr(t);if(e===n)return t;let r=t.points;if(e===0){let a=r[0]||[0,0],i=[a];for(let c=0;c<n;c++)i.push(a,a,a);return{points:i,closed:t.closed}}let o=new Array(e).fill(0);for(let a=0;a<n;a++)o[Math.floor(a*e/n)]++;let s=[r[0]];for(let a=0;a<e;a++){let i=o[a],c=r[3*a],u=r[3*a+1],f=r[3*a+2],l=r[3*a+3];if(i<=1){s.push(u,f,l);continue}for(let m=0;m<i;m++){let h=go(c,u,f,l,m/i,(m+1)/i);s.push(h[1],h[2],h[3])}}return{points:s,closed:t.closed}}function _o(t,n,e,r){let o=t.length?t:[{points:[e],closed:!1}],s=n.length?n:[{points:[r],closed:!1}],a=Math.max(o.length,s.length),i=[],c=[],u=(f,l)=>{if(l<f.length)return f[l];let m=f[f.length-1].points;return{points:[m[m.length-1]],closed:!1}};for(let f=0;f<a;f++){let l=u(o,f),m=u(s,f),h=Math.max(lr(l),lr(m),1);i.push(ho(l,h)),c.push(ho(m,h))}return[i,c]}function dr(t,n,e){if(e<=0)return t;if(e>=1)return n;let r=new Array(t.length);for(let o=0;o<t.length;o++){let s=t[o].points,a=n[o].points,i=new Array(s.length);for(let c=0;c<s.length;c++)i[c]=[s[c][0]+(a[c][0]-s[c][0])*e,s[c][1]+(a[c][1]-s[c][1])*e];r[o]={points:i,closed:e<.5?t[o].closed:n[o].closed}}return r}var Ut=0,Ht=class t{constructor(n,e,r){this.shared=!1;this.mobs=n||new Map,this.display=e||[],this.ids=r||{n:-1}}snapshot(){return this.shared=!0,{mobs:this.mobs,display:this.display}}fork(){this.shared=!0;let n=new t(this.mobs,this.display,this.ids);return n.shared=!0,n}own(){this.shared&&(this.mobs=new Map(this.mobs),this.display=this.display.slice(),this.shared=!1)}has(n){return this.mobs.has(n)}get(n){let e=this.mobs.get(n);if(!e)throw new Error(n===Ut?"no camera frame":`that object does not exist (#${n})`);return e}set(n){this.own(),this.mobs.set(n.id,n)}update(n,e){this.set({...this.get(n),...e})}setDisplay(n){this.own(),this.display=n}newId(){return this.ids.n--}};function ne(t){return t.paths.length>0||!!t.text||!!t.image}function st(t,n,e=[],r){let o=t.mobs.get(n);if(!o||(r=r||new Set,r.has(n)))return e;r.add(n),e.push(n);for(let s of o.children)st(t,s,e,r);return e}function et(t,n){return st(t,n).filter(e=>ne(t.mobs.get(e)))}function pr(t,n=t.m){let e=t.paths.length?hn(t.paths,n):null,r=t.text||t.image;if(r){let{w:o,h:s}=r;e=dn(e,hn([{points:[[-o/2,-s/2],[o/2,-s/2],[o/2,s/2],[-o/2,s/2]],closed:!0}],n))}return e}function $(t,n){let e=null;for(let r of st(t,n))e=dn(e,pr(t.mobs.get(r)));if(!e){let r=t.mobs.get(n),o=r?yt(r.m,[0,0]):[0,0];return[o[0],o[1],o[0],o[1]]}return e}function at(t){return[(t[0]+t[2])/2,(t[1]+t[3])/2]}function Et(t,n){let e=(r,o,s)=>s>1e-9?o:s<-1e-9?r:(r+o)/2;return[e(t[0],t[2],n[0]),e(t[1],t[3],n[1])]}function pt(t,n){return at($(t,n))}function At(t,n,e){for(let r of st(t,n)){let o=t.get(r);t.set({...o,m:Y(e,o.m)})}}function vt(t,n,e){for(let r of st(t,n)){let o=t.get(r);t.set({...o,style:e(o.style,o)})}}function Me(t,n,e){let r=t.get(n),o=e!=null?e:t.newId(),s=r.children.map(a=>Me(t,a));return t.set({...r,id:o,children:s,data:r.data?{...r.data}:void 0}),o}function Re(t,n,e){if(n===e)return;let r=t.get(e),o=t.has(n)?t.get(n).children:[],s=o.length&&o.length===r.children.length?o.map((a,i)=>(Re(t,a,r.children[i]),a)):r.children.map(a=>Me(t,a));t.set({...r,id:n,children:s,data:r.data?{...r.data}:void 0})}function Lt(t,n){let e=new Set(n),r=t.display.filter(o=>!e.has(o));for(let o of n)o!==Ut&&!r.includes(o)&&r.push(o);t.setDisplay(r)}function oe(t,n){let e=t.display.slice();for(let r of n){let o=[];for(let s of e)s!==r&&o.push(...xo(t,s,r));e=o}t.setDisplay(e)}function xo(t,n,e){if(n===e)return[];if(!st(t,n).includes(e))return[n];let r=[];for(let o of t.get(n).children)r.push(...xo(t,o,e));return r}function br(t,n){for(let e of t.display)if(e===n||st(t,e).includes(n))return!0;return!1}function H(t,n,e,r=[],o){return{id:t,kind:n,paths:r,m:ft,children:[],style:e,z:0,...o}}var Tt={BLACK:"#000000",BLUE:"#58C4DD",BLUE_A:"#C7E9F1",BLUE_B:"#9CDCEB",BLUE_C:"#58C4DD",BLUE_D:"#29ABCA",BLUE_E:"#236B8E",DARKER_GRAY:"#222222",DARKER_GREY:"#222222",DARK_BLUE:"#236B8E",DARK_BROWN:"#8B4513",DARK_GRAY:"#444444",DARK_GREY:"#444444",GOLD:"#F0AC5F",GOLD_A:"#F7C797",GOLD_B:"#F9B775",GOLD_C:"#F0AC5F",GOLD_D:"#E1A158",GOLD_E:"#C78D46",GRAY:"#888888",GRAY_A:"#DDDDDD",GRAY_B:"#BBBBBB",GRAY_BROWN:"#736357",GRAY_C:"#888888",GRAY_D:"#444444",GRAY_E:"#222222",GREEN:"#83C167",GREEN_A:"#C9E2AE",GREEN_B:"#A6CF8C",GREEN_C:"#83C167",GREEN_D:"#77B05D",GREEN_E:"#699C52",GREY:"#888888",GREY_A:"#DDDDDD",GREY_B:"#BBBBBB",GREY_BROWN:"#736357",GREY_C:"#888888",GREY_D:"#444444",GREY_E:"#222222",LIGHTER_GRAY:"#DDDDDD",LIGHTER_GREY:"#DDDDDD",LIGHT_BROWN:"#CD853F",LIGHT_GRAY:"#BBBBBB",LIGHT_GREY:"#BBBBBB",LIGHT_PINK:"#DC75CD",LOGO_BLACK:"#343434",LOGO_BLUE:"#525893",LOGO_GREEN:"#87C2A5",LOGO_RED:"#E07A5F",LOGO_WHITE:"#ECE7E2",MAROON:"#C55F73",MAROON_A:"#ECABC1",MAROON_B:"#EC92AB",MAROON_C:"#C55F73",MAROON_D:"#A24D61",MAROON_E:"#94424F",ORANGE:"#FF862F",PINK:"#D147BD",PURE_BLUE:"#0000FF",PURE_CYAN:"#00FFFF",PURE_GREEN:"#00FF00",PURE_MAGENTA:"#FF00FF",PURE_RED:"#FF0000",PURE_YELLOW:"#FFFF00",PURPLE:"#9A72AC",PURPLE_A:"#CAA3E8",PURPLE_B:"#B189C6",PURPLE_C:"#9A72AC",PURPLE_D:"#715582",PURPLE_E:"#644172",RED:"#FC6255",RED_A:"#F7A1A3",RED_B:"#FF8080",RED_C:"#FC6255",RED_D:"#E65A4C",RED_E:"#CF5044",TEAL:"#5CD0B3",TEAL_A:"#ACEAD7",TEAL_B:"#76DDC0",TEAL_C:"#5CD0B3",TEAL_D:"#55C1A7",TEAL_E:"#49A88F",WHITE:"#FFFFFF",YELLOW:"#F7D96F",YELLOW_A:"#FFF1B6",YELLOW_B:"#FFEA94",YELLOW_C:"#F7D96F",YELLOW_D:"#F4D345",YELLOW_E:"#E8C11C"},lt="#FFFFFF",Ce="#F7D96F",pn="#FFFF00",wo=["#003F5C","#58508D","#BC5090","#FF6361","#FFA600"],Fn=new Map;function Rn(t){let n=Fn.get(t);if(n!==void 0)return n;let e=t.trim();Tt[e.toUpperCase()]&&(e=Tt[e.toUpperCase()]);let r=/^#([0-9a-f]{6})([0-9a-f]{2})?$/i.exec(e);if(r){let o=parseInt(r[1],16);n=[o>>16&255,o>>8&255,o&255]}else(r=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(e))?n=[parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)]:n=null;return Fn.size>2e3&&Fn.clear(),Fn.set(t,n),n}function Q(t,n){if(typeof t=="string"){let e=t.toUpperCase();return Tt[e]?Tt[e]:t}if(Array.isArray(t)&&t.length>=3){let e=t.some(r=>Number(r)>1)?1:255;return Mo([Number(t[0])*e,Number(t[1])*e,Number(t[2])*e])}return n}function Mo(t){let n=e=>Math.max(0,Math.min(255,Math.round(e))).toString(16).padStart(2,"0");return"#"+n(t[0])+n(t[1])+n(t[2])}function Ie(t,n,e){if(t===n||e<=0)return t;if(e>=1)return n;let r=Rn(t),o=Rn(n);if(!r||!o)return e<.5?t:n;let s=(a,i)=>Math.floor(a+(i-a)*e+1e-6);return Mo([s(r[0],o[0]),s(r[1],o[1]),s(r[2],o[2])])}var la={"normal|normal":"LiberationSans-Regular.ttf","bold|normal":"LiberationSans-Bold.ttf","normal|italic":"LiberationSans-Italic.ttf","bold|italic":"LiberationSans-BoldItalic.ttf","serif:normal|normal":"KaTeX_Main-Regular.ttf","serif:bold|normal":"KaTeX_Main-Bold.ttf","serif:normal|italic":"KaTeX_Main-Italic.ttf","serif:bold|italic":"KaTeX_Main-BoldItalic.ttf","mono:normal|normal":"KaTeX_Typewriter-Regular.ttf","mono:bold|normal":"KaTeX_Typewriter-Regular.ttf","mono:normal|italic":"KaTeX_Typewriter-Regular.ttf","mono:bold|italic":"KaTeX_Typewriter-Regular.ttf"};function ma(t){let n=String(t||"");return/\.(ttf|otf|woff2?)(\?|#|$)/i.test(n)||/^(blob:|data:|https?:)/.test(n)}function fa(t){let n=String(t||"").toLowerCase();return/mono|courier|consol|menlo|typewriter|code/.test(n)?"mono":/serif/.test(n)&&!/sans/.test(n)||/times|georgia|garamond|roman|palatino|baskerville|cambria|book/.test(n)?"serif":"sans"}function ke(t,n,e){if(e&&ma(e))return"url:"+String(e);let r=String(t||"normal").toLowerCase(),o=String(n||"normal").toLowerCase(),s=r==="bold"||r==="heavy"||r==="ultrabold"||r==="semibold"||Number(r)>=600,a=o==="italic"||o==="oblique",i=e?fa(e):"sans";return`${i==="sans"?"":i+":"}${s?"bold":"normal"}|${a?"italic":"normal"}`}function Po(t){return t.startsWith("url:")?`"${So(t)}", "Liberation Sans", Arial, sans-serif`:t.startsWith("mono:")?'Menlo, Consolas, "Liberation Mono", monospace':t.startsWith("serif:")?'"KaTeX_Main", "Times New Roman", serif':'"Liberation Sans", Arial, sans-serif'}function So(t){let n=0;for(let e of t)n=n*31+e.charCodeAt(0)|0;return"pymations-font-"+(n>>>0).toString(36)}var gr=null;function ha(t,n){let e=globalThis;return e[n]?Promise.resolve(e[n]):typeof document=="undefined"?Promise.reject(new Error("no document to load "+t)):new Promise((r,o)=>{let s=t.slice(t.lastIndexOf("/")+1),a=Array.from(document.scripts).find(u=>u.src&&u.src.split("?")[0].endsWith("/"+s))||null,i=a||document.createElement("script"),c=()=>e[n]?r(e[n]):o(new Error(n+" did not load"));i.addEventListener("load",c),i.addEventListener("error",()=>o(new Error("could not load "+t))),a||(i.src=t,i.async=!0,i.dataset.cirSrc=t,document.head.appendChild(i))})}var Cn=class{constructor(n){this.base=n;this.fonts=new Map;this.loading=new Map;this.cache=new Map;this.chars=new Map}font(n){return this.fonts.get(n)}load(n){if(this.fonts.has(n))return Promise.resolve(this.fonts.get(n));let e=this.loading.get(n);return e||(e=this.fetchFont(n).then(r=>(this.fonts.set(n,r),r),()=>(this.fonts.set(n,null),null)),this.loading.set(n,e),e)}async fetchFont(n){if(!this.base||typeof fetch=="undefined")return null;gr||(gr=ha(this.base+"opentype.min.js","opentype"));let e=await gr,r=n.startsWith("url:")?n.slice(4):this.base+"fonts/"+la[n],o=await fetch(r);if(!o.ok)throw new Error("font "+o.status);let s=await o.arrayBuffer();if(n.startsWith("url:")&&typeof FontFace!="undefined"&&typeof document!="undefined")try{let a=new FontFace(So(n),s.slice(0));await a.load(),document.fonts.add(a)}catch(a){}return e.parse(s)}glyph(n,e,r){let o=`${r}|${e}|${n}`,s=this.chars.get(o);if(s!==void 0)return s;let a=this.fonts.get(r);if(!a)return null;let i=e/a.unitsPerEm,c=a.charToGlyph(n),u=n.trim()?ko(c.path.commands,i,0,0):[],f=1/0,l=-1/0,m=1/0,h=-1/0;for(let p of u)for(let d of p.points)f=Math.min(f,d[1]),l=Math.max(l,d[1]),m=Math.min(m,d[0]),h=Math.max(h,d[0]);return s={paths:u,advance:c.advanceWidth*i,box:u.length?[m,f,h,l]:null},this.chars.size>4e3&&this.chars.clear(),this.chars.set(o,s),s}outline(n,e,r,o=1.2,s=0){let a=`${r}|${e}|${o}|${s}|${n}`;if(this.cache.has(a))return this.cache.get(a);let i=this.fonts.get(r);if(!i)return null;let c=e/i.unitsPerEm,u=[],f=n.split(`
3
+ `),l=0;f.forEach((S,b)=>{let _=0,x=-b*o*e,P=null;for(let k of Array.from(S)){let v=i.charToGlyph(k);P&&(_+=i.getKerningValue(P,v)*c),k.trim()&&u.push({char:k,paths:ko(v.path.commands,c,_,x)}),_+=v.advanceWidth*c+s,P=v}l=Math.max(l,_)});let m=1/0,h=1/0,p=-1/0,d=-1/0;for(let S of u)for(let b of S.paths)for(let _ of b.points)_[0]<m&&(m=_[0]),_[0]>p&&(p=_[0]),_[1]<h&&(h=_[1]),_[1]>d&&(d=_[1]);m===1/0&&(m=0,p=l,h=0,d=0);let g=(m+p)/2,w=(h+d)/2;for(let S of u)S.paths=S.paths.map(b=>({points:b.points.map(_=>[_[0]-g,_[1]-w]),closed:b.closed}));let M={glyphs:u,width:p-m,height:d-h};return this.cache.size>500&&this.cache.clear(),this.cache.set(a,M),M}};function ko(t,n,e,r){let o=[],s=null,a=(f,l)=>[e+f*n,r+l*n],i=()=>s[s.length-1],c=f=>{let l=i();s.push([l[0]+(f[0]-l[0])/3,l[1]+(f[1]-l[1])/3],[l[0]+2*(f[0]-l[0])/3,l[1]+2*(f[1]-l[1])/3],f)},u=f=>{s&&s.length>1&&o.push({points:s,closed:f}),s=null};for(let f of t)switch(f.type){case"M":u(!1),s=[a(f.x,f.y)];break;case"L":s&&c(a(f.x,f.y));break;case"Q":{if(!s)break;let l=i(),m=a(f.x1,f.y1),h=a(f.x,f.y);s.push([l[0]+2/3*(m[0]-l[0]),l[1]+2/3*(m[1]-l[1])],[h[0]+2/3*(m[0]-h[0]),h[1]+2/3*(m[1]-h[1])],h);break}case"C":s&&s.push(a(f.x1,f.y1),a(f.x2,f.y2),a(f.x,f.y));break;case"Z":{if(!s)break;let l=s[0],m=i();(Math.abs(l[0]-m[0])>1e-9||Math.abs(l[1]-m[1])>1e-9)&&c([l[0],l[1]]),u(!0);break}}return u(!1),o}function Xe(t){return t/48*.65}var Ao=Tt.RED,In=Tt.BLUE,yr=Tt.BLUE_D,da="#000000";function U(t,n={}){var a,i,c,u;let e=t.color!=null?Q(t.color,lt):null,r=t.stroke_color!=null?Q(t.stroke_color,lt):(a=e!=null?e:n.color)!=null?a:lt,o=t.fill_color!=null?Q(t.fill_color,lt):(i=e!=null?e:n.color)!=null?i:lt,s=t.opacity!=null?y(t.opacity,1):1;return{sc:r,fc:o,sw:y(t.stroke_width,(c=n.sw)!=null?c:4),so:y(t.stroke_opacity,1)*s,fo:y(t.fill_opacity,(u=n.fo)!=null?u:0)*s}}function Yt(t,n,e){return n==null?e:it(t.w,n)}function Eo(t,n,e){let r=null,o=-1/0;for(let s of st(t.w,n)){let a=t.w.get(s);for(let i of zt(a.paths,a.m)){let c=i.points;for(let u=0;u+3<c.length;u+=3)for(let f=0;f<=8;f++){let l=f/8,m=1-l,h=m*m*m*c[u][0]+3*m*m*l*c[u+1][0]+3*m*l*l*c[u+2][0]+l*l*l*c[u+3][0],p=m*m*m*c[u][1]+3*m*m*l*c[u+1][1]+3*m*l*l*c[u+2][1]+l*l*l*c[u+3][1],d=h*e[0]+p*e[1];d>o&&(o=d,r=[h,p])}}}return r||at($(t.w,n))}function Le(t,n,e){let r=(i,c)=>i==null?c:Ft(i)?at($(t.w,W(t.w,i))):it(t.w,i),o=r(n,[-1,0]),s=r(e,[1,0]),a=[s[0]-o[0],s[1]-o[1]];return Ft(n)&&(o=Eo(t,W(t.w,n),a)),Ft(e)&&(s=Eo(t,W(t.w,e),[-a[0],-a[1]])),[o,s]}function X(t,n,e,r,o,s,a){let i=H(n,e,o,s,{z:y(r.z_index,0),...a});return t.w.set(i),i}function _r(t,n,e){let r=Math.hypot(n[0]-t[0],n[1]-t[1]);if(r<=2*e||e<=0)return[t,n];let o=(n[0]-t[0])/r,s=(n[1]-t[1])/r;return[[t[0]+o*e,t[1]+s*e],[n[0]-o*e,n[1]-s*e]]}function Ue(t,n,e,r,o){let s=t[0]-n*r,a=t[1]-e*r,i=-e*o/2,c=n*o/2;return[ot([t,[s+i,a+c],[s-i,a-c]],!0)]}function bn(t,n,e,r,o,s,a,i){let[c,u]=_r(o,s,a),f=Math.hypot(u[0]-c[0],u[1]-c[1])||1e-9,l=(u[0]-c[0])/f,m=(u[1]-c[1])/f,h=Math.min(y(r.tip_length,.35),y(r.max_tip_length_to_length_ratio,.25)*f),p=i?Math.max(0,f-2*h):f,d=Math.min(y(r.stroke_width,6),y(r.max_stroke_width_to_length_ratio,5)*p),g=U({...r,stroke_width:d},{sw:6}),w=i?[c[0]+l*h,c[1]+m*h]:c,M=[u[0]-l*h,u[1]-m*h],S={...g,fc:g.sc,fo:1,sw:0},b=[],_=t.w.newId();if(t.w.set(H(_,"tip",S,Ue(u,l,m,h,h))),b.push(_),i){let x=t.w.newId();t.w.set(H(x,"tip",S,Ue(c,-l,-m,h,h))),b.push(x)}X(t,n,e,r,g,[dt(w,M)],{children:b,data:{start:c,end:u}})}function Bn(t,n,e=!1){let o=(n>0?t.toFixed(n):String(Math.round(t))).replace(/^-/,"\u2212");return e&&t>=0?"+"+o:o}function ae(t,n,e,r,o){let s=ke(r.weight,r.slant,r.font);if(t.text.font(s)===void 0)return t.text.load(s).then(()=>ae(t,n,e,r,o));let a=Xe(y(r.font_size,48)),i=U(r,{sw:0,fo:1}),c=t.text.outline(o,a,s,y(r.line_spacing,1.2),y(r.letter_spacing,0)*a);if(!c){let m=o.split(`
4
+ `),h=Math.max(...m.map(w=>w.length))*a*.55,p=m.length*a*.75,[d,g]=s.replace(/^[a-z]+:/,"").split("|");X(t,n,e,r,i,[],{text:{str:o,em:a,weight:s.startsWith("url:")?"normal":d,slant:s.startsWith("url:")?"normal":g,w:h,h:p,family:s},data:{text:o}});return}let u=c.glyphs.map(()=>null),f=r.t2c||r.text_to_color_map;if(f&&typeof f=="object"){let m=Array.from(o).filter(h=>h.trim()).join("");for(let h of Object.keys(f)){let p=Array.from(h).filter(g=>g.trim()).join("");if(!p)continue;let d=m.indexOf(p);for(;d>=0;){for(let g=d;g<d+Array.from(p).length&&g<u.length;g++)u[g]=Q(f[h],lt);d=m.indexOf(p,d+1)}}}let l=c.glyphs.map((m,h)=>{let p=t.w.newId(),d=u[h];return t.w.set(H(p,"glyph",d?{...i,sc:d,fc:d}:i,m.paths,{data:{char:m.char}})),p});X(t,n,e,r,i,[],{children:l,data:{text:o}})}function yn(t,n,e,r,o){var h,p;let s=(p=(h=r.parts)!=null?h:r.tex_strings)!=null?p:r.tex!=null?[r.tex]:[];Array.isArray(s)||(s=[String(s)]),s=s.map(String);let a=y(r.font_size,48),i=r.arg_separator!=null?String(r.arg_separator):o==="math"?" ":"",c=r.tex_environment!=null?String(r.tex_environment):r.environment!=null?String(r.environment):void 0,u=`${o}|${a}|${i}|${c!=null?c:""}|${s.join("")}`,f=d=>{let g=U(r,{sw:0,fo:1}),w=d.parts.map((M,S)=>{var x;let b=t.w.newId(),_=M.map(P=>{let k=t.w.newId();return t.w.set(H(k,"glyph",g,P)),k});return t.w.set(H(b,"tex_part",g,[],{children:_,data:{tex:(x=s[S])!=null?x:""}})),b});X(t,n,e,r,g,[],{children:w,data:{tex:s.join(i),parts:s}})},l=t.texCache.get(u);if(l&&!(l instanceof Promise))return f(l);if(!t.tex)throw new Error("MathTex is not available in this preview");let m=l||t.tex({tex:s.join(i),mode:o,parts:s,fontSize:a,...c?{environment:c}:{}});return t.texCache.set(u,m),m.then(d=>{t.texCache.set(u,d),f(d)},d=>{throw t.texCache.delete(u),d})}function xr(t,n){return Array.isArray(t)?[y(t[0],n[0]),y(t[1],n[1]),y(t[2],1)]:n}function vo(t){let n=[],[e,r,o]=t;if(o<=0)return n;let s=Math.floor((r-e)/o+1e-9);for(let a=0;a<=s&&a<1e3;a++)n.push(+(e+a*o).toFixed(10));return n}function Ln(t,n,e,r,o){let s=[];if(r<=0)return s;let a=1e-9,i=Math.ceil((t-e)/r-a),c=Math.floor((n-e)/r+a);for(let u=i;u<=c&&s.length<2e3;u++){let f=+(e+u*r).toFixed(10);!o&&(Math.abs(f-t)<a||Math.abs(f-n)<a)||s.push(f)}return s}function pa(t){let n=String(+t.toFixed(6)),e=n.indexOf(".");return e<0?0:Math.min(3,n.length-e-1)}function wr(t,n){var r,o,s,a,i,c,u,f,l,m,h,p,d,g,w,M;let e=y((r=t.tip_height)!=null?r:t.tip_length,.35);return{color:Q((a=(s=(o=t.color)!=null?o:t.stroke_color)!=null?s:n.color)!=null?a:lt,lt),sw:y(t.stroke_width,(i=n.sw)!=null?i:2),tip:(u=(c=t.include_tip)!=null?c:n.tip)!=null?u:!1,tipLen:e,tipWidth:y(t.tip_width,e),ticks:(l=(f=t.include_ticks)!=null?f:n.ticks)!=null?l:!0,tickSize:y(t.tick_size,.1),numbers:(h=(m=t.include_numbers)!=null?m:n.numbers)!=null?h:!1,fontSize:y(t.font_size,(p=n.fontSize)!=null?p:36),exclude:((g=(d=t.numbers_to_exclude)!=null?d:n.exclude)!=null?g:[]).map(Number),numberBuff:y(t.line_to_number_buff,(w=n.numberBuff)!=null?w:.25),labelDir:Array.isArray(t.label_direction)?[Number(t.label_direction[0]),Number(t.label_direction[1])]:(M=n.labelDir)!=null?M:[0,-1]}}function Mr(t,n,e,r,o,s,a=[]){let i=o(e[0]),c=o(e[1]),u={sc:r.color,fc:r.color,sw:r.sw,so:1,fo:0},f=[],l=-s[1],m=s[0],h=d=>a.some(g=>Math.abs(g-d)<1e-9);if(r.ticks){let d=vo(e).filter(w=>!h(w)).map(w=>{let M=o(w),S=t.w.newId();return t.w.set(H(S,"tick",u,[dt([M[0]-l*r.tickSize,M[1]-m*r.tickSize],[M[0]+l*r.tickSize,M[1]+m*r.tickSize])])),S}),g=t.w.newId();t.w.set(H(g,"group",u,[],{children:d})),f.push(g)}let p=c;if(r.tip){let d=t.w.newId();t.w.set(H(d,"tip",{...u,fo:1,sw:0},Ue(c,s[0],s[1],r.tipLen,r.tipWidth))),f.push(d),p=[c[0]-s[0]*r.tipLen,c[1]-s[1]*r.tipLen]}if(r.numbers){let d=pa(e[2]),g=vo(e).filter(S=>!r.exclude.some(b=>Math.abs(b-S)<1e-9)&&!(r.tip&&Math.abs(S-e[1])<1e-9)),w=t.w.newId(),M=g.map(S=>{let b=t.w.newId();ae(t,b,"text",{font_size:r.fontSize,color:r.color},Bn(S,d));let _=o(S),x=$(t.w,b),P=r.labelDir,k=(x[2]-x[0])/2,v=(x[3]-x[1])/2,C=_[0]+P[0]*(r.numberBuff+k),F=_[1]+P[1]*(r.numberBuff+v);return Oe(t.w,b,Z(C-(x[0]+x[2])/2,F-(x[1]+x[3])/2)),b});t.w.set(H(w,"group",u,[],{children:M})),f.push(w)}t.w.set(H(n,"number_line",u,[dt(i,p)],{children:f,data:{start:i,end:c}}))}function Oe(t,n,e){for(let r of st(t,n)){let o=t.get(r);t.set({...o,m:Y(e,o.m)})}}function To(t){return t[0]>0?t[0]:t[1]<0?t[1]:0}function ba(...t){return t.some(n=>n&&n.include_numbers)}function Ye(t,n,e,r){var C,F,T,I,B;let o=e==="number_plane",s=r.axis_config||{},a={...s,...r.x_axis_config||{}},i={...s,...r.y_axis_config||{}};if(r.include_numbers!=null&&((C=a.include_numbers)!=null||(a.include_numbers=r.include_numbers),(F=i.include_numbers)!=null||(i.include_numbers=r.include_numbers)),ba(a,i)){let L=ke("normal","normal");if(t.text.font(L)===void 0)return t.text.load(L).then(()=>Ye(t,n,e,r))}let c=t.fw,u=t.fh,f=xr(r.x_range,o?[-c/2,c/2,1]:[-Math.round(c/2),Math.round(c/2),1]),l=xr(r.y_range,[-u/2,u/2,1]),m=y(r.x_length,o?f[1]-f[0]:Math.round(c)-2),h=y(r.y_length,o?l[1]-l[0]:Math.round(u)-2),p={x0:f[0],y0:l[0],sx:m/(f[1]-f[0]||1),sy:h/(l[1]-l[0]||1),ox:-m/2,oy:-h/2},d=(L,D)=>Nt(p,L,D),g=r.color!=null?Q(r.color,lt):void 0,w=(T=r.tips)!=null?T:!o,M=o?{color:g!=null?g:lt,sw:2,tip:!1,ticks:!1,numberBuff:.1,fontSize:24,labelDir:[1,-1]}:{color:g!=null?g:lt,sw:2,tip:w,exclude:[0]},S=wr(a,{...M}),b=wr(i,{...M,labelDir:o?[1,-1]:[-1,0]}),_=To(l),x=To(f),P=[];if(o){let L=r.background_line_style||{},D={sc:Q((B=(I=L.stroke_color)!=null?I:L.color)!=null?B:yr,yr),fc:yr,sw:y(L.stroke_width,2),so:y(L.stroke_opacity,1),fo:0},j=(wt,Jt)=>[...wt.map(Qt=>dt(d(Qt,l[0]),d(Qt,l[1]))),...Jt.map(Qt=>dt(d(f[0],Qt),d(f[1],Qt)))],J=t.w.newId(),ut=t.w.newId(),G=Ln(f[0],f[1],x,f[2],!1),ct=Ln(l[0],l[1],_,l[2],!1);t.w.set(H(J,"background_lines",D,j(G,ct)));let ht=Math.round(y(r.faded_line_ratio,1)),Kt=[];if(ht>1){let wt=(Jt,Qt)=>Jt.filter(Gt=>!Qt.some(ye=>Math.abs(ye-Gt)<1e-9));Kt=j(wt(Ln(f[0],f[1],x,f[2]/ht,!0),G),wt(Ln(l[0],l[1],_,l[2]/ht,!0),ct))}t.w.set(H(ut,"faded_lines",{...D,sw:D.sw/2,so:D.so*.5},Kt)),P.push(J,ut)}let k=t.w.newId(),v=t.w.newId();Mr(t,k,f,S,L=>d(L,_),[1,0],o?[]:[x,...S.tip?[f[1]]:[]]),Mr(t,v,l,b,L=>d(x,L),[0,1],o?[]:[_,...b.tip?[l[1]]:[]]),t.w.update(k,{data:{...t.w.get(k).data,axes:{...p,sy:0,oy:d(0,_)[1],y0:0}}}),t.w.update(v,{data:{...t.w.get(v).data,axes:{x0:l[0],y0:0,sx:0,sy:p.sy,ox:d(x,0)[0],oy:p.oy}}}),P.push(k,v),X(t,n,e,r,{sc:lt,fc:lt,sw:2,so:1,fo:0},[],{children:P,data:{axes:p,props:r}})}function Lo(t,n,e){if(e.include_numbers){let i=ke("normal","normal");if(t.text.font(i)===void 0)return t.text.load(i).then(()=>Lo(t,n,e))}let r=xr(e.x_range,[-7,7,1]),o=y(e.length,y(e.unit_size,1)*(r[1]-r[0])),s={x0:r[0],y0:0,sx:o/(r[1]-r[0]||1),sy:0,ox:-o/2,oy:0},a=wr(e,{color:e.color!=null?Q(e.color,lt):lt,sw:2,tip:!1});Mr(t,n,r,a,i=>Nt(s,i,0),[1,0]),t.w.update(n,{z:y(e.z_index,0),data:{...t.w.get(n).data,axes:s}})}function ga(t,n,e){var l;let r=null,o;if(e.axes!=null){let m=t.w.get(W(t.w,e.axes));if(r=(l=m.data)==null?void 0:l.axes,!r)throw new Error("plot needs Axes, a NumberPlane or a NumberLine");o=m.m}let s=[],a=[],i=m=>{let h=[],p=[];for(let d of m){if(!(Array.isArray(d)&&Number.isFinite(Number(d[0]))&&Number.isFinite(Number(d[1])))){h.length&&(s.push(h),a.push(p)),h=[],p=[];continue}let w=Number(d[0]),M=Number(d[1]);h.push(r?Nt(r,w,M):[w,M]),p.push([w,M])}h.length&&(s.push(h),a.push(p))};if(Array.isArray(e.segments))for(let m of e.segments)i(m);else i(e.points||[]);let c=e.use_smoothing!==!1&&e.smooth!==!1,u=!!e.closed,f=s.filter(m=>m.length>=2).map(m=>c?fn(m,u):ot(m,u));Array.isArray(e.color)&&typeof e.color[0]=="string"&&(e={...e,color:e.color[0]}),X(t,n,"graph",e,U(e,{color:Ce}),f,{...o?{m:o}:{},data:{...r?{axes:r}:{},samples:a}})}var On=null;function Oo(t){On=t}var He=new Map;function re(t){let n=1/0,e=1/0,r=-1/0,o=-1/0;for(let s of t)for(let a of s.points)a[0]<n&&(n=a[0]),a[0]>r&&(r=a[0]),a[1]<e&&(e=a[1]),a[1]>o&&(o=a[1]);return[n,e,r,o]}function Nn(t,n,e){return t.map(r=>({closed:r.closed,points:r.points.map(o=>[o[0]-n,o[1]-e])}))}async function ya(t,n){let e=d=>t({tex:d,mode:"math",parts:[d],fontSize:n}).then(g=>g.parts.flat()),[r,o,s,a,i]=await Promise.all([e("0123456789"),e("0.0"),e("-0"),e("+0"),e("0{,}0")]),c=new Map;if(r.length!==10)throw new Error("unexpected digit layout");let u=r.map(re),f=d=>(d[0]+d[2])/2,l=(f(u[9])-f(u[0]))/9,m=u[0][1];r.forEach((d,g)=>{let w=f(u[g])-l/2,M=Nn(d,w,m);c.set(String(g),{paths:M,advance:l,box:re(M)})});let h=(d,g)=>{if(d.length!==3)return;let w=re(d[0]),M=re(d[2]),S=f(w)+l/2,b=f(M)-l/2,_=Nn(d[1],S,w[1]);c.set(g,{paths:_,advance:b-S,box:re(_)})};h(o,"."),h(i,",");let p=(d,g)=>{if(d.length!==2)return;let w=re(d[0]),M=re(d[1]),S=w[0],b=f(M)-l/2,_=Nn(d[0],S,M[1]);c.set(g,{paths:_,advance:b-S,box:re(_)})};return p(s,"-"),p(s,"\u2212"),p(a,"+"),c}function _a(t,n){let e=He.get(n);if(e)return e;if(!t||!t.tex)return null;let r=ya(t.tex,n).then(o=>(He.set(n,o),o),()=>(He.delete(n),null));return He.set(n,r),r}function Sr(t,n){let e=Bn(n,t.places,t.sign);if(t.commas){let[o,s]=e.split(".");e=o.replace(/\B(?=(\d{3})+(?!\d))/g,",")+(s!=null?"."+s:"")}let r=Array.from(e);return t.ellipsis&&r.push("\\ldots"),t.unit&&r.push(t.unit),r}function Ar(t,n){return Sr(t,n).map(e=>e==="\\ldots"?"\u2026":e).join("")}function kr(t,n){if(t.src==="tex"){let o=He.get(t.fontSize);if(o&&!(o instanceof Promise)){let s=o.get(n)||(n==="\u2212"?o.get("-"):null);if(s)return s}}if(!On)return null;if(n.length===1||Array.from(n).length===1)return On.glyph(n,t.em,t.key);let e=[],r=0;for(let o of Array.from(n==="\\ldots"?"\u2026":n.replace(/\\text\{([^}]*)\}/g,"$1"))){let s=On.glyph(o,t.em,t.key);if(!s)return null;e.push(...s.paths.map(a=>({closed:a.closed,points:a.points.map(i=>[i[0]+r,i[1]])}))),r+=s.advance}return{paths:e,advance:r,box:e.length?re(e):null}}var No=t=>.048*(t.fontSize/48);function Bo(t,n,e,r,o){let s=Sr(e,e.value),a=s.map(f=>kr(e,f));if(a.some(f=>!f)){let f=Ar(e,e.value),l=f.length*e.em*.55;return{children:[],text:{str:f,em:e.em,weight:e.key.split("|")[0],slant:e.key.split("|")[1],w:l,h:e.em*.75}}}let i=e.left,c=No(e),u=[];return s.forEach((f,l)=>{let m=a[l];if(!m.paths.length||!m.box){i+=m.advance;return}let h=i-m.box[0],p=t.newId();t.set(H(p,"glyph",r,m.paths,{m:Y(o,Z(h,-e.mid)),data:{char:f}})),u.push(p),i+=m.box[2]-m.box[0]+c}),{children:u}}function xa(t,n,e){let r=He.get(n);if(!(!r||r instanceof Promise||r.has(e)||!t.tex))return t.tex({tex:e,mode:"math",parts:[e],fontSize:n}).then(o=>{let s=o.parts.flat().flat();if(!s.length)return;let a=re(s),i=Nn(s,a[0],a[1]);r.set(e,{paths:i,advance:a[2]-a[0],box:re(i)})},()=>{})}function gn(t,n,e,r){var w;let o=ke(r.weight,r.slant);if(t.text.font(o)===void 0)return t.text.load(o).then(()=>gn(t,n,e,r));let s=y(r.font_size,48),a=_a(t,s);if(a instanceof Promise)return a.then(()=>gn(t,n,e,r));let i=r.unit!=null&&r.unit!==""?String(r.unit):"";for(let M of[i,r.show_ellipsis?"\\ldots":""]){if(!M)continue;let S=xa(t,s,M);if(S)return S.then(()=>gn(t,n,e,r))}let c=r.num_decimal_places!=null?y(r.num_decimal_places,2):e==="integer"?0:2,u=Xe(s),f={value:y((w=r.number)!=null?w:r.value,0),places:c,sign:!!r.include_sign,unit:a?i:i.replace(/^\^\\circ$/,"\xB0").replace(/\\circ/g,"\xB0").replace(/\\text\{([^}]*)\}/g,"$1"),em:u,key:o,left:0,mid:0,text:"",src:a?"tex":"text",fontSize:s,commas:r.group_with_commas!==!1,ellipsis:!!r.show_ellipsis},l=kr(f,"0");f.mid=l&&l.box?(l.box[1]+l.box[3])/2:u*.35;let m=0,h=0;for(let M of Sr(f,f.value)){let S=kr(f,M);S&&S.box&&(m+=S.box[2]-S.box[0],h++)}m+=Math.max(0,h-1)*No(f),f.left=-m/2,f.text=Ar(f,f.value);let p=U(r,{sw:0,fo:1}),{children:d,text:g}=Bo(t.w,n,f,p,ft);X(t,n,e,r,p,[],{children:d,text:g,data:{...f,number:!0}})}function Vt(t,n,e){let r=t.get(n),o=r.data;if(!o||!o.number){t.update(n,{data:{...r.data||{},value:e}});return}if(o.value===e&&!r.text)return;let s={...o,value:e},a=r.children.length?t.get(r.children[0]).style:r.style,{children:i,text:c}=Bo(t,n,s,a,r.m);s.text=Ar(o,e),t.set({...r,children:i,text:c,data:s})}function Do(t){return!!(t.data&&t.data.number)}var Pr=null;function Wo(t){Pr=t}function Fo(t,n,e,r,o,s){for(let a=s.length?1:0;a<=o;a++){let i=a/o,c=1-i;s.push([c*c*c*t[0]+3*c*c*i*n[0]+3*c*i*i*e[0]+i*i*i*r[0],c*c*c*t[1]+3*c*c*i*n[1]+3*c*i*i*e[1]+i*i*i*r[1]])}}var jo=.273;function wa(t){let e=Math.min(.18,t/4),r=t/2,o=[];Fo([-r,0],[-r,-.25*.45],[-r+e*.3,-.25/2],[-r+e,-.25/2],16,o),o.push([-e,-.25/2]);let s=[];Fo([-e,-.25/2],[-e*.3,-.25/2],[0,-.25*.55],[0,-.25],16,s),o.push(...s.slice(1));let a=[...o,...o.slice(0,-1).reverse().map(g=>[-g[0],g[1]])],i=a.length,c=[],u=[];for(let g=0;g<i;g++){let w=a[Math.max(0,g-1)],M=a[Math.min(i-1,g+1)],S=M[0]-w[0],b=M[1]-w[1],_=Math.hypot(S,b)||1;S/=_,b/=_;let x=g/(i-1),P=.016+.045*Math.sin(Math.PI*((x<=.5?x:1-x)*2));c.push([a[g][0]-b*P/2,a[g][1]+S*P/2]),u.push([a[g][0]+b*P/2,a[g][1]-S*P/2])}let f=[...c,...u.reverse()],l=-1/0,m=1/0,h=0;for(let g of f)l=Math.max(l,g[1]),m=Math.min(m,g[1]),h=Math.max(h,Math.abs(g[0]));let p=jo/(l-m||1),d=r/(h||1);return[ot(f.map(g=>[g[0]*d,(g[1]-l)*p]),!0)]}function Ve(t,n,e){let r=Array.isArray(n)?n:[n],o=null;for(let s of r)for(let a of st(t,W(t,s))){let i=t.get(a);(i.paths.length||i.text)&&(o=dn(o,pr(i,e?Y(e,i.m):i.m)))}return o||[0,0,0,0]}function Ma(t,n,e){var m;let r=t.w,o=e.direction?it(r,e.direction):[0,-1],s=Math.atan2(o[1],o[0])+Math.PI/2,a=y(e.buff,.2),i=te(-s,[0,0]),c=(m=e.target)!=null?m:e.mobject,u;if(c!=null)u=Ve(r,c,i);else{let h=yt(i,Yt(t,e.start,[-1,0])),p=yt(i,Yt(t,e.end,[1,0]));u=[Math.min(h[0],p[0]),Math.min(h[1],p[1]),Math.max(h[0],p[0]),Math.max(h[1],p[1])]}let f=u[2]-u[0],l=Y(te(s,[0,0]),Z((u[0]+u[2])/2,u[1]-a));X(t,n,"brace",e,U(e,{sw:0,fo:1}),wa(Math.max(f,.1)),{m:l,data:{tip:[0,-jo],start:[-f/2,0],end:[f/2,0]}})}function Ro(t,n){if(Array.isArray(t))return[y(t[0],n),y(t[1],n)];let e=y(t,n);return[e,e]}function se(t,n={},e){return(r,o,s,a)=>{let i=e?e(s,r):null;X(r,o,a,s,U(s,n),t(s,r),i?{m:Z(i[0],i[1])}:void 0)}}var Co=(t,n)=>t.arc_center!=null?Yt(n,t.arc_center,[0,0]):null;function Io(t,n){var r,o;return((o=(r=n.vertices)!=null?r:n.points)!=null?o:[]).map(s=>it(t.w,s))}var Er={circle:se(t=>[ee([0,0],y(t.radius,1))],{color:Ao},Co),dot:se(t=>[ee([0,0],y(t.radius,.08))],{sw:0,fo:1},(t,n)=>Yt(n,t.point,[0,0])),point:se(()=>[],{},(t,n)=>{var e;return Yt(n,(e=t.location)!=null?e:t.point,[0,0])}),square:se(t=>[ot(pe(y(t.side_length,2),y(t.side_length,2)),!0)]),rectangle:se(t=>[ot(pe(y(t.width,4),y(t.height,2)),!0)]),rounded_rectangle:se(t=>[Ge(y(t.width,4),y(t.height,2),y(t.corner_radius,.5))]),ellipse:se(t=>[It([0,0],y(t.width,2)/2,y(t.height,1)/2,0,_t,!0)],{color:Ao},Co),arc:(t,n,e,r)=>{let o=Yt(t,e.arc_center,[0,0]);X(t,n,r,e,U(e),[It(o,y(e.radius,1),y(e.radius,1),y(e.start_angle,0),y(e.angle,_t/4),!1,8)])},annulus:(t,n,e,r)=>{let o=Yt(t,e.arc_center,[0,0]),s=y(e.inner_radius,1),a=y(e.outer_radius,2);X(t,n,r,e,U(e,{sw:0,fo:1}),[It(o,a,a,0,_t,!0),It(o,s,s,0,-_t,!0)])},triangle:se(t=>[ot(mr(3,y(t.radius,1),y(t.start_angle,Math.PI/2)),!0)],{color:In}),regular_polygon:se(t=>{let n=Math.max(3,Math.round(y(t.n,6)));return[ot(mr(n,y(t.radius,1),y(t.start_angle,n%2?Math.PI/2:0)),!0)]},{color:In}),star:se(t=>{let n=Math.max(2,Math.round(y(t.n,5))),e=y(t.outer_radius,1),r=y(t.density,2),o=t.inner_radius!=null?y(t.inner_radius,.4):e*Math.cos(Math.PI*r/n)/Math.cos(Math.PI*(r-1)/n);return[ot(po(n,e,o,y(t.start_angle,Math.PI/2)),!0)]},{color:In}),polygon:(t,n,e,r)=>{X(t,n,r,e,U(e,{color:In}),[ot(Io(t,e),!0)])},polyline:(t,n,e,r)=>{X(t,n,r,e,U(e),[ot(Io(t,e),!1)])},vmobject:(t,n,e,r)=>{var c;let o=Array.isArray(e.subpaths)?e.subpaths:[e.points||[]],s=(c=e.mode)!=null?c:e.smooth?"smooth":"corners",a=!!e.closed,i=o.map(u=>{let f=u.map(l=>it(t.w,l));return s==="bezier"?{points:f,closed:a}:s==="smooth"?fn(f,a):ot(f,a)}).filter(u=>u.points.length);X(t,n,r,e,U(e),i)},line:(t,n,e,r)=>{let[o,s]=_r(...Le(t,e.start,e.end),y(e.buff,0));X(t,n,r,e,U(e),[dt(o,s)],{data:{start:o,end:s}})},dashed_line:(t,n,e,r)=>{let[o,s]=_r(...Le(t,e.start,e.end),y(e.buff,0)),a=U(e),i=yo([dt(o,s)],y(e.dash_length,.05),y(e.dashed_ratio,.5)).map(c=>{let u=t.w.newId();return t.w.set(H(u,"dash",a,[c])),u});X(t,n,r,e,a,[],{children:i,data:{start:o,end:s}})},arrow:(t,n,e,r)=>bn(t,n,r,e,...Le(t,e.start,e.end),y(e.buff,.25),!1),double_arrow:(t,n,e,r)=>bn(t,n,r,e,...Le(t,e.start,e.end),y(e.buff,.25),!0),vector:(t,n,e,r)=>bn(t,n,r,e,[0,0],Yt(t,e.direction,[1,0]),y(e.buff,0),!1),group:(t,n,e,r)=>{let o=(e.children||[]).map(s=>W(t.w,s));X(t,n,r,e,U(e),[],{children:o})},text:(t,n,e,r)=>{var o;return ae(t,n,r,e,String((o=e.text)!=null?o:""))},decimal_number:(t,n,e,r)=>gn(t,n,r,e),value_tracker:(t,n,e,r)=>{X(t,n,r,e,U(e),[],{data:{value:y(e.value,0)}})},variable:(t,n,e,r)=>{var m,h,p;let o=ke("normal","normal");if(t.text.font(o)===void 0)return t.text.load(o).then(()=>Er.variable(t,n,e,r));let s=t.w.newId(),a=t.w.newId(),i=typeof e.var=="number"?e.var:e.var!=null?Number((h=(m=t.w.get(W(t.w,e.var)).data)==null?void 0:m.value)!=null?h:0):y(e.value,0);ae(t,s,"text",{font_size:e.font_size,color:e.color},`${(p=e.label)!=null?p:"x"} =`),gn(t,a,"decimal_number",{number:i,num_decimal_places:e.num_decimal_places,font_size:e.font_size,color:e.color}),X(t,n,r,e,U(e),[],{children:[s,a]});let c=t.w.get(n).children,u=$(t.w,c[0]),f=$(t.w,c[1]);Oe(t.w,c[1],Z(u[2]+.2-f[0],(u[1]+u[3])/2-(f[1]+f[3])/2));let l=at($(t.w,n));Oe(t.w,n,Z(-l[0],-l[1]))},traced_path:(t,n,e,r)=>{var o;X(t,n,r,e,U(e,{sw:y(e.stroke_width,2)}),[],{data:{trace:{point:(o=e.point)!=null?o:e.traced_point,dissipating:e.dissipating_time!=null?y(e.dissipating_time,0):null}}})},pyctures_canvas:(t,n,e,r)=>{var f,l;let o=y(e.width,4),s=y(e.height,3),a=Math.max(1,Math.round(y((f=e.px_width)!=null?f:e.pixel_width,o*100))),i=Math.max(1,Math.round(y((l=e.px_height)!=null?l:e.pixel_height,s*100))),c=e.canvas&&typeof e.canvas=="object"?e.canvas:Pr?Pr(a,i):null,u=e.point!=null?Yt(t,e.point,[0,0]):null;X(t,n,r,e,U({fill_opacity:1,...e},{sw:0}),[],{image:{src:c,w:o,h:s,fullW:o,fullH:s,live:!0},...u?{m:Z(u[0],u[1])}:{},data:{pxW:a,pxH:i}})},mathtex:(t,n,e,r)=>yn(t,n,r,e,"math"),tex:(t,n,e,r)=>yn(t,n,r,e,"text"),axes:(t,n,e,r)=>Ye(t,n,r,e),number_plane:(t,n,e,r)=>Ye(t,n,r,e),number_line:(t,n,e)=>Lo(t,n,e),graph:(t,n,e)=>ga(t,n,e),brace:(t,n,e)=>Ma(t,n,e),surrounding_rectangle:(t,n,e,r)=>{var u;let o=Ve(t.w,(u=e.target)!=null?u:e.mobject),[s,a]=Ro(e.buff,.1),i=o[2]-o[0]+2*s,c=o[3]-o[1]+2*a;X(t,n,r,e,U(e,{color:pn}),[Ge(i,c,y(e.corner_radius,0))],{m:Z((o[0]+o[2])/2,(o[1]+o[3])/2)})},background_rectangle:(t,n,e,r)=>{var u;let o=Ve(t.w,(u=e.target)!=null?u:e.mobject),[s,a]=Ro(e.buff,0),i=o[2]-o[0]+2*s,c=o[3]-o[1]+2*a;X(t,n,r,e,U({fill_opacity:.75,stroke_opacity:0,...e},{color:da,sw:0}),[ot(pe(i,c),!0)],{m:Z((o[0]+o[2])/2,(o[1]+o[3])/2)})}},ka={vgroup:"group",v_group:"group",mobject:"group",v_mobject:"vmobject",math_tex:"mathtex",integer:"decimal_number",regular_polygram:"regular_polygon",surrounding_rect:"surrounding_rectangle",round_rectangle:"rounded_rectangle",plot:"graph",parametric_function:"graph"};function Pa(t){let n=String(t).replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/([A-Z])([A-Z][a-z])/g,"$1_$2").toLowerCase();return ka[n]||n}var zo=()=>[...Object.keys(Er),...Object.keys(vr)];function _n(t,n,e,r){let o=Pa(e),s=Er[o]||vr[o];if(!s)throw new Error(`the animation layer cannot make "${e}" yet`);return s(t,n,Ot(r,[]),String(e).toLowerCase()==="integer"?"integer":o)}var Xt=(t,n,e)=>[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e],be=class{constructor(){this.subpaths=[];this.cur=null;this.start=[0,0]}get current(){return this.cur?this.cur[this.cur.length-1]:this.start}moveTo(n){this.flush(!1),this.cur=[n],this.start=n}lineTo(n){let e=this.ensure();this.cur.push(Xt(e,n,1/3),Xt(e,n,2/3),n)}quadTo(n,e){let r=this.ensure();this.cur.push(Xt(r,n,2/3),Xt(e,n,2/3),e)}cubicTo(n,e,r){this.ensure(),this.cur.push(n,e,r)}close(){if(!this.cur)return;let n=this.cur[this.cur.length-1];(n[0]!==this.start[0]||n[1]!==this.start[1])&&this.lineTo(this.start),this.flush(!0)}finish(){return this.flush(!1),this.subpaths}ensure(){return this.cur||(this.cur=[this.start]),this.cur[this.cur.length-1]}flush(n){this.cur&&this.cur.length>1&&this.subpaths.push({points:this.cur,closed:n}),this.cur=null}};function Ko(t,n,e,r,o,s,a){if(t[0]===a[0]&&t[1]===a[1])return[];if(n=Math.abs(n),e=Math.abs(e),n===0||e===0)return[Xt(t,a,1/3),Xt(t,a,2/3),a];let i=r*Math.PI/180,c=Math.cos(i),u=Math.sin(i),f=(t[0]-a[0])/2,l=(t[1]-a[1])/2,m=c*f+u*l,h=-u*f+c*l,p=m*m/(n*n)+h*h/(e*e);if(p>1){let L=Math.sqrt(p);n*=L,e*=L}let d=n*n*e*e-n*n*h*h-e*e*m*m,g=n*n*h*h+e*e*m*m,w=Math.sqrt(Math.max(0,d/g));o===s&&(w=-w);let M=w*n*h/e,S=-w*e*m/n,b=c*M-u*S+(t[0]+a[0])/2,_=u*M+c*S+(t[1]+a[1])/2,x=(L,D,j,J)=>Math.atan2(L*J-D*j,L*j+D*J),P=x(1,0,(m-M)/n,(h-S)/e),k=x((m-M)/n,(h-S)/e,(-m-M)/n,(-h-S)/e);!s&&k>0&&(k-=2*Math.PI),s&&k<0&&(k+=2*Math.PI);let v=Math.max(1,Math.ceil(Math.abs(k)/(Math.PI/2)-1e-9)),C=k/v,F=4/3*Math.tan(C/4),T=(L,D)=>[c*n*L-u*e*D+b,u*n*L+c*e*D+_],I=[],B=P;for(let L=0;L<v;L++){let D=Math.cos(B),j=Math.sin(B),J=B+C,ut=Math.cos(J),G=Math.sin(J);I.push(T(D-F*j,j+F*D),T(ut+F*G,G-F*ut)),I.push(L===v-1?a:T(ut,G)),B=J}return I}function Sa(t,n){return[t[0]*n[0]+t[2]*n[1]+t[4],t[1]*n[0]+t[3]*n[1]+t[5]]}function Go(t,n){return t.map(e=>({closed:e.closed,points:e.points.map(r=>Sa(n,r))}))}function Ho(t,n,e,r){let[o,s,a,i]=t,c=a?n/a:1,u=i?e/i:1,f=(r||"xMidYMid meet").trim().split(/\s+/),l=f[0]||"xMidYMid";l!=="none"&&(c=u=f[1]==="slice"?Math.max(c,u):Math.min(c,u));let m=-o*c,h=-s*u;if(l!=="none"){let p=l.includes("xMid")?.5:l.includes("xMax")?1:0,d=l.includes("YMid")?.5:l.includes("YMax")?1:0;m+=(n-a*c)*p,h+=(e-i*u)*d}return[c,0,0,u,m,h]}function $o(t,n,e,r,o){let s=Xt(t,n,o),a=Xt(n,e,o),i=Xt(e,r,o),c=Xt(s,a,o),u=Xt(a,i,o),f=Xt(c,u,o);return[[t,s,c,f],[f,u,i,r]]}function Dn(t,n,e,r,o){let s=1-o,a=s*s*s,i=3*s*s*o,c=3*s*o*o,u=o*o*o;return[a*t[0]+i*n[0]+c*e[0]+u*r[0],a*t[1]+i*n[1]+c*e[1]+u*r[1]]}function Aa(t,n,e){let r=t;return e<1&&(r=$o(r[0],r[1],r[2],r[3],e)[0]),n>0&&(r=$o(r[0],r[1],r[2],r[3],n/e)[1]),r}function Ea(t,n){var m;let e=t.points,r=(e.length-1)/3;if(r<1)return null;let o=!0,s=!0;for(let h of e)n(h)>=0?s=!1:o=!1;if(o)return t;if(s)return null;let a=[];for(let h=0;h<r;h++){let p=e.slice(h*3,h*3+4),d=[0],g=24,w=0,M=n(p[0]);for(let S=1;S<=g;S++){let b=S/g,_=n(Dn(p[0],p[1],p[2],p[3],b));if(M<0!=_<0){let x=w,P=b,k=M;for(let v=0;v<40;v++){let C=(x+P)/2,F=n(Dn(p[0],p[1],p[2],p[3],C));F<0==k<0?(x=C,k=F):P=C}d.push((x+P)/2)}w=b,M=_}d.push(1);for(let S=0;S<d.length-1;S++){let b=d[S],_=d[S+1];if(_-b<1e-9)continue;let x=Aa(p,b,_),P=Dn(p[0],p[1],p[2],p[3],(b+_)/2);a.push({seg:x,inside:n(P)>=0})}}let i=a.findIndex((h,p)=>h.inside&&!a[(p-1+a.length)%a.length].inside);i<0&&(i=0);let c=a.slice(i).concat(a.slice(0,i)),u=new be,f=!1,l=!1;for(let h of c){if(!h.inside){l=!0;continue}f?l&&u.lineTo(h.seg[0]):(u.moveTo(h.seg[0]),f=!0),l=!1,u.cubicTo(h.seg[1],h.seg[2],h.seg[3])}return f?(u.close(),(m=u.finish()[0])!=null?m:null):null}function Uo(t,n){let e=[o=>o[0]-n.x0,o=>n.x1-o[0],o=>o[1]-n.y0,o=>n.y1-o[1]],r=[];for(let o of t){let s=o;for(let a of e){if(!s)break;s=Ea(s,a)}s&&r.push(s)}return r}function Wn(t){let n=1/0,e=1/0,r=-1/0,o=-1/0,s=a=>{a[0]<n&&(n=a[0]),a[0]>r&&(r=a[0]),a[1]<e&&(e=a[1]),a[1]>o&&(o=a[1])};for(let a of t){let i=a.points;s(i[0]);for(let c=0;c+3<i.length;c+=3)for(let u=1;u<=8;u++)s(Dn(i[c],i[c+1],i[c+2],i[c+3],u/8))}return n===1/0?null:{x0:n,y0:e,x1:r,y1:o}}function qe(t){let n=new be;return n.moveTo([t.x0,t.y0]),n.lineTo([t.x1,t.y0]),n.lineTo([t.x1,t.y1]),n.lineTo([t.x0,t.y1]),n.close(),n.finish()[0]}var va={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0};function Ta(t){let n=[],e=/([MLHVCSQTAZmlhvcsqtaz])|([-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?)/g,r;for(;r=e.exec(t);)n.push(r[1]?r[1]:parseFloat(r[2]));return n}function jn(t){let n=Ta(t),e=new be,r=0,o="",s=null,a=null,i=()=>n[r++];for(;r<n.length;){let c=n[r];if(typeof c=="string"){if(o=c,r++,o==="Z"||o==="z"){e.close(),s=a=null;continue}}else if(!o){r++;continue}let u=o.toUpperCase(),f=o!==u,l=va[u];if(l===void 0||r+l>n.length||n.slice(r,r+l).some(g=>typeof g!="number"))break;let m=e.current,h=(g,w)=>f?[m[0]+g,m[1]+w]:[g,w],p=null,d=null;switch(u){case"M":{let g=h(i(),i());e.moveTo(g),o=f?"l":"L";break}case"L":e.lineTo(h(i(),i()));break;case"H":{let g=i();e.lineTo([f?m[0]+g:g,m[1]]);break}case"V":{let g=i();e.lineTo([m[0],f?m[1]+g:g]);break}case"C":{let g=h(i(),i()),w=h(i(),i()),M=h(i(),i());e.cubicTo(g,w,M),p=w;break}case"S":{let g=s?[2*m[0]-s[0],2*m[1]-s[1]]:m,w=h(i(),i()),M=h(i(),i());e.cubicTo(g,w,M),p=w;break}case"Q":{let g=h(i(),i()),w=h(i(),i());e.quadTo(g,w),d=g;break}case"T":{let g=a?[2*m[0]-a[0],2*m[1]-a[1]]:m,w=h(i(),i());e.quadTo(g,w),d=g;break}case"A":{let g=i(),w=i(),M=i(),S=i(),b=i(),_=h(i(),i()),x=Ko(m,g,w,M,S!==0,b!==0,_);for(let P=0;P<x.length;P+=3)e.cubicTo(x[P],x[P+1],x[P+2]);break}}s=p,a=d}return e.finish()}var Rr="#000000",Kn=Tt.BLUE,Tr=Tt.BLUE_D,Fa=Tt.RED;function Be(t,n){let e=t.filter(r=>r&&typeof r.then=="function");return e.length?Promise.all(e).then(n):n()}function Se(t,n,e,r){let o=at($(t,n));Oe(t,n,Z(e-o[0],r-o[1]))}function De(t,n,e,r,o,s={}){X(t,n,e,r,U(r),[],{children:o,...s})}function Ra(t,n,e,r){let o=Mt(t,n,"start"),s=Mt(t,n,"end"),a=Mt(t,e,"start"),i=Mt(t,e,"end"),c=[s[0]-o[0],s[1]-o[1]],u=[i[0]-a[0],i[1]-a[1]],f=c[0]*u[1]-c[1]*u[0],l;if(Math.abs(f)<1e-12)l=s;else{let h=((a[0]-o[0])*u[1]-(a[1]-o[1])*u[0])/f;l=[o[0]+c[0]*h,o[1]+c[1]*h]}let m=(h,p)=>{let d=Math.hypot(h[0],h[1])||1;return[h[0]/d*p,h[1]/d*p]};return{p:l,u:m(c,r[0]<0?-1:1),v:m(u,r[1]<0?-1:1)}}function Yo(t,n,e,r,o){let s=t.w,{p:a,u:i,v:c}=Ra(s,W(s,r.line1),W(s,r.line2),Array.isArray(r.quadrant)?r.quadrant:[1,1]),u=Math.atan2(i[1],i[0]),l=((Math.atan2(c[1],c[0])-u)%_t+_t)%_t;r.other_angle&&(l-=_t);let m;if(o||r.elbow){let h=y(r.length,.4);m=[ot([[a[0]+i[0]*h,a[1]+i[1]*h],[a[0]+(i[0]+c[0])*h,a[1]+(i[1]+c[1])*h],[a[0]+c[0]*h,a[1]+c[1]*h]],!1)]}else{let h=y(r.radius,.4);m=[It(a,h,h,u,l,!1,8)]}X(t,n,e,r,U(r),m,{data:{value:Math.abs(l),vertex:a}})}function Vo(t,n,e,r,o,s){let a=Yt(t,r.arc_center,[0,0]),i=y(r.start_angle,0),c=y(r.angle,_t/4),u=(m,h)=>{let p=m[m.length-1];m.push([p[0]+(h[0]-p[0])/3,p[1]+(h[1]-p[1])/3],[p[0]+2*(h[0]-p[0])/3,p[1]+2*(h[1]-p[1])/3],[h[0],h[1]])},f=It(a,s,s,i+c,-c,!1,8).points,l;o>1e-9?(l=[...It(a,o,o,i,c,!1,8).points],u(l,f[0]),l.push(...f.slice(1))):(l=[[a[0],a[1]]],u(l,[a[0]+s*Math.cos(i),a[1]+s*Math.sin(i)]),l.push(...It(a,s,s,i,c,!1,8).points.slice(1))),u(l,l[0]),X(t,n,e,r,U(r,{sw:0,fo:1}),[{points:l,closed:!0}],{data:{start:l[0],end:l[0]}})}function ts(t,n,e){if(Math.abs(e)<1e-6)return dt(t,n);let r=Math.hypot(n[0]-t[0],n[1]-t[1])||1e-9,o=r/(2*Math.sin(Math.abs(e)/2)),s=(t[0]+n[0])/2,a=(t[1]+n[1])/2,i=-(n[1]-t[1])/r,c=(n[0]-t[0])/r,u=o*Math.cos(e/2)*Math.sign(e),f=s+i*u,l=a+c*u,m=Math.atan2(t[1]-l,t[0]-f);return It([f,l],o,o,m,e,!1,8)}function Xo(t,n,e,r,o){var b,_;let[s,a]=Le(t,(b=r.start)!=null?b:r.start_point,(_=r.end)!=null?_:r.end_point),i=ts(s,a,y(r.angle,_t/4)),c=hr([i]),u=Math.min(y(r.tip_length,.35),.25*c),f=U(r),l=o?u/c:0,m=1-u/c,h=Fe([i],l,m),p=i.points,d=(x,P)=>{let k=[p[x][0]-p[P][0],p[x][1]-p[P][1]],v=Math.hypot(k[0],k[1])||1;return[k[0]/v,k[1]/v]},g={...f,fc:f.sc,fo:1,sw:0},w=[],M=d(p.length-1,p.length-2),S=t.w.newId();if(t.w.set(H(S,"tip",g,Ue(a,M[0],M[1],u,u))),w.push(S),o){let x=d(0,1),P=t.w.newId();t.w.set(H(P,"tip",g,Ue(s,x[0],x[1],u,u))),w.push(P)}X(t,n,e,r,f,h,{children:w,data:{start:s,end:a}})}function Cr(t,n){return n.map(e=>e.kind==="text"?ae(t,e.id,"text",e.props,e.str):e.kind==="number"?ae(t,e.id,"text",e.props,e.str):yn(t,e.id,e.kind,{...e.props,parts:[e.str]},e.kind==="mathtex"?"math":"text"))}function qo(t,n,e,r,o,s=!1){let a=Xe(y(r.font_size,48)),i=o.map(()=>t.w.newId()),c=Cr(t,o.map((u,f)=>({id:i[f],kind:"text",str:s?`\u2022 ${u}`:u,props:{font_size:r.font_size,color:r.color,weight:r.weight,slant:r.slant,font:r.font,letter_spacing:r.letter_spacing}})));return Be(c,()=>{let u=String(r.alignment||"left").toLowerCase(),f=s?a*1.2+y(r.buff,.5)*.5:a*1.25*y(r.line_spacing,1);i.forEach((l,m)=>{let h=$(t.w,l),p=u==="center"?-(h[0]+h[2])/2:u==="right"?-h[2]:-h[0];Oe(t.w,l,Z(p,-m*f-(h[1]+h[3])/2))}),De(t,n,e,r,i),Se(t.w,n,0,0)})}function es(t,n,e,r){var M,S,b;let o=String((M=r.text)!=null?M:""),s=(_,x)=>ke(_,x,r.font),i=Array.from(new Set([s("normal","normal"),s("bold","normal"),s("normal","italic"),s("bold","italic")])).filter(_=>t.text.font(_)===void 0);if(i.length)return Promise.all(i.map(_=>t.text.load(_))).then(()=>es(t,n,e,r));let c=U(r,{sw:0,fo:1}),u=[],f=[],l=/<\s*(\/?)\s*(\w+)([^>]*)>|([^<]+)/g,m;for(;m=l.exec(o);)if(m[4]!=null){let _=m[4].replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&"),x=f.some(v=>v.tag==="b"||v.tag==="strong"),P=f.some(v=>v.tag==="i"||v.tag==="em"),k=(b=(S=[...f].reverse().find(v=>v.color))==null?void 0:S.color)!=null?b:null;for(let v of Array.from(_))u.push({ch:v,bold:x,italic:P,color:k})}else if(m[1]){let _=f.map(x=>x.tag).lastIndexOf(m[2].toLowerCase());_>=0&&f.splice(_,1)}else{let _=m[3]||"",x=/(?:foreground|fgcolor|color)\s*=\s*["']([^"']+)["']/i.exec(_);f.push({tag:m[2].toLowerCase(),color:x?Q(x[1],lt):void 0})}let h=Xe(y(r.font_size,48)),p=0,d=0,g=[],w="";for(let _ of u){if(_.ch===`
5
+ `){p=0,d-=h*1.25;continue}let x=s(_.bold?"bold":"normal",_.italic?"italic":"normal"),P=t.text.glyph(_.ch,h,x);if(w+=_.ch,!!P){if(P.paths.length){let k=t.w.newId(),v=_.color?{...c,sc:_.color,fc:_.color}:c;t.w.set(H(k,"glyph",v,P.paths,{m:Z(p,d),data:{char:_.ch}})),g.push(k)}p+=P.advance+y(r.letter_spacing,0)*h}}if(!g.length&&w.trim())return ae(t,n,e,r,w);De(t,n,e,r,g,{data:{text:w}}),Se(t.w,n,0,0)}function zn(t,n,e,r,o){var f,l;let s=(l=(f=r.table)!=null?f:r.data)!=null?l:[];if(r.col_labels&&(s=[r.col_labels,...s]),r.row_labels){let m=r.row_labels;s=s.map((h,p)=>{var d;return[r.col_labels?p===0?(d=r.top_left_entry)!=null?d:"":m[p-1]:m[p],...h]})}let a=s.length,i=Math.max(0,...s.map(m=>m.length)),c=[],u=[];return s.forEach(m=>{var h;for(let p=0;p<i;p++){let d=t.w.newId();c.push(d);let g=(h=m[p])!=null?h:"";u.push({id:d,kind:o,str:String(g),props:{font_size:r.font_size,color:r.color}})}}),Be(Cr(t,u),()=>{var ut;let m=t.w,h=y(r.h_buff,1.3),p=y(r.v_buff,.8),d=new Array(i).fill(0),g=new Array(a).fill(0);c.forEach((G,ct)=>{let ht=$(m,G),Kt=Math.floor(ct/i),wt=ct%i;d[wt]=Math.max(d[wt],ht[2]-ht[0]),g[Kt]=Math.max(g[Kt],ht[3]-ht[1])});let w=[],M=[],S=0;for(let G=0;G<i;G++)w.push(S+d[G]/2),S+=d[G]+h;let b=S-h;S=0;for(let G=0;G<a;G++)M.push(-(S+g[G]/2)),S+=g[G]+p;let _=S-p;c.forEach((G,ct)=>Se(m,G,w[ct%i]-b/2,M[Math.floor(ct/i)]+_/2));let x={...U(r.line_config||{}),sw:y((ut=r.line_config)==null?void 0:ut.stroke_width,2)},P=!!r.include_outer_lines,k=[],v=[],C=-b/2-h/2,F=b/2+h/2,T=_/2+p/2,I=-_/2-p/2;for(let G=0;G<a-1;G++){let ct=M[G]-g[G]/2-p/2+_/2;k.push(dt([C,ct],[F,ct]))}for(let G=0;G<i-1;G++){let ct=w[G]+d[G]/2+h/2-b/2;v.push(dt([ct,T],[ct,I]))}P&&(k.unshift(dt([C,T],[F,T])),k.push(dt([C,I],[F,I])),v.unshift(dt([C,T],[C,I])),v.push(dt([F,T],[F,I])));let B=m.newId(),L=m.newId(),D=m.newId();m.set(H(B,"group",x,[],{children:c}));let j=(G,ct)=>{let ht=ct.map(Kt=>{let wt=m.newId();return m.set(H(wt,"line",x,[Kt])),wt});m.set(H(G,"group",x,[],{children:ht}))},J=r.include_inner_lines!==!1;j(L,J?k:P?[k[0],k[k.length-1]]:[]),j(D,J?v:P?[v[0],v[v.length-1]]:[]),De(t,n,e,r,[B,L,D],{data:{rows:a,cols:i}})})}function Zo(t,n){let o=n?-1:1,s=[[0,t/2],[o*.14,t/2],[o*.14,t/2-.035],[o*.035,t/2-.035],[o*.035,-t/2+.035],[o*.14,-t/2+.035],[o*.14,-t/2],[0,-t/2]];return[ot(s,!0)]}function $n(t,n,e,r,o,s){var l,m;let a=(m=(l=r.matrix)!=null?l:r.data)!=null?m:[],i=a.length,c=Math.max(0,...a.map(h=>h.length)),u=[],f=[];return a.forEach(h=>{for(let p=0;p<c;p++){let d=t.w.newId();u.push(d);let g=h[p],w=o==="number"?Bn(Number(g),s):String(g!=null?g:"");f.push({id:d,kind:o==="number"?"number":o,str:w,props:{font_size:r.font_size,color:r.color}})}}),Be(Cr(t,f),()=>{let h=t.w,p=y(r.v_buff,.8),d=y(r.h_buff,1.3);u.forEach((P,k)=>Se(h,P,k%c*d,-Math.floor(k/c)*p));let g=h.newId();h.set(H(g,"group",U(r),[],{children:u}));let w=$(h,g),M=w[3]-w[1]+2*y(r.bracket_v_buff,.25),S=y(r.bracket_h_buff,.25),b=U({...r,fill_opacity:1,stroke_width:0},{sw:0,fo:1}),_=h.newId(),x=h.newId();h.set(H(_,"bracket",b,Zo(M,!1),{m:Z(w[0]-S,(w[1]+w[3])/2)})),h.set(H(x,"bracket",b,Zo(M,!0),{m:Z(w[2]+S,(w[1]+w[3])/2)})),De(t,n,e,r,[g,_,x],{data:{rows:i,cols:c}}),Se(h,n,0,0)})}var Ne={python:["def","class","return","if","elif","else","for","while","in","import","from","as","with","try","except","finally","raise","lambda","yield","pass","break","continue","and","or","not","is","None","True","False","await","async","global","nonlocal","del","assert"],js:["function","const","let","var","return","if","else","for","while","of","in","import","from","export","class","new","this","null","undefined","true","false","async","await","try","catch","finally","throw","typeof","switch","case","break","continue","default"]};Ne.javascript=Ne.js;Ne.typescript=Ne.ts=Ne.js;var Pe={kw:"#F92672",str:"#E6DB74",com:"#75715E",num:"#FD971F",fn:"#A6E22E",text:"#F8F8F2"};function Ca(t,n){var a;let e=new Set(Ne[n]||Ne.python),r=[],o=/(#.*$|\/\/.*$)|("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`(?:[^`\\]|\\.)*`)|(\b\d+(?:\.\d+)?\b)|([A-Za-z_]\w*)(?=\s*\()|([A-Za-z_]\w*)|(\s+)|(.)/g,s;for(;s=o.exec(t);)s[1]?r.push({s:s[1],c:Pe.com}):s[2]?r.push({s:s[2],c:Pe.str}):s[3]?r.push({s:s[3],c:Pe.num}):s[4]?r.push({s:s[4],c:e.has(s[4])?Pe.kw:Pe.fn}):s[5]?r.push({s:s[5],c:e.has(s[5])?Pe.kw:Pe.text}):r.push({s:(a=s[6])!=null?a:s[7],c:Pe.text});return r}function Ia(t,n,e,r){var k,v,C;let o=" ".repeat(Math.max(1,Math.round(y(r.tab_width,4)))),s=String((v=(k=r.code_string)!=null?k:r.code)!=null?v:"").replace(/\t/g,o).replace(/\s+$/,""),a=String(r.language||"python").toLowerCase(),i=Xe(y(r.font_size,24)),c=i*.6,u=i*1.45,f=s.split(`
6
+ `),l=r.add_line_numbers!==!1,m=Math.round(y(r.line_numbers_from,1)),h=l?(String(f.length+m-1).length+2)*c:0,p=t.w,d=(F,T,I,B)=>{let L=p.newId(),D=F.length*c;return p.set(H(L,"code_token",{sc:T,fc:T,sw:0,so:1,fo:1},[],{text:{str:F,em:i,weight:"normal",slant:"normal",w:D,h:i,family:"mono",left:!0},m:Z(I+D/2,B),data:{text:F}})),L},g=[],w=[];f.forEach((F,T)=>{let I=-T*u;l&&g.push(d(String(T+m),"#75715E",0,I));let B=[],L=0;for(let j of Ca(F,a))j.s.trim()&&B.push(d(j.s,j.c,h+L*c,I)),L+=j.s.length;let D=p.newId();p.set(H(D,"code_line",U(r),[],{children:B,data:{text:F}})),w.push(D)});let M=p.newId(),S=p.newId();p.set(H(M,"group",U(r),[],{children:g})),p.set(H(S,"group",U(r),[],{children:w}));let b=La(p,[M,S]),_=.3,x=p.newId(),P=Q((C=r.background_color)!=null?C:"#272822","#272822");p.set(H(x,"code_background",{sc:P,fc:P,sw:0,so:1,fo:1},[Ge(b[2]-b[0]+2*_,b[3]-b[1]+2*_,.2)],{m:Z((b[0]+b[2])/2,(b[1]+b[3])/2)})),De(t,n,e,r,[x,M,S],{data:{code:s}}),Se(p,n,0,0)}function La(t,n){let e=null;for(let r of n){let o=$(t,r);o[0]===o[2]&&o[1]===o[3]&&!t.get(r).children.length||(e=e?[Math.min(e[0],o[0]),Math.min(e[1],o[1]),Math.max(e[2],o[2]),Math.max(e[3],o[3])]:o)}return e||[0,0,0,0]}function Gn(t,n){for(let e of t){if(!e.length)continue;let r=Math.min(e[0][0],e[e.length-1][0]),o=Math.max(e[0][0],e[e.length-1][0]);if(!(n<r-1e-9||n>o+1e-9))for(let s=0;s+1<e.length;s++){let a=e[s],i=e[s+1];if((n-a[0])*(n-i[0])<=0){let c=i[0]===a[0]?0:(n-a[0])/(i[0]-a[0]);return a[1]+(i[1]-a[1])*c}}}return null}function Hn(t,n){var s,a;let e=t.get(n),r=(s=e.data)==null?void 0:s.samples,o=(a=e.data)==null?void 0:a.axes;if(!r||!o)throw new Error("this needs a graph plotted on axes");return{samples:r,map:o,m:e.m}}function Oa(t,n,e,r){var d,g,w;let{samples:o,map:s,m:a}=Hn(t.w,W(t.w,r.graph)),i=o.flat().map(M=>M[0]),[c,u]=Array.isArray(r.x_range)?r.x_range.map(Number):[Math.min(...i),Math.max(...i)],f=r.bounded_graph!=null?Hn(t.w,W(t.w,r.bounded_graph)).samples:null,l=120,m=[],h=[];for(let M=0;M<=l;M++){let S=c+(u-c)*M/l,b=(d=Gn(o,S))!=null?d:0,_=f&&(g=Gn(f,S))!=null?g:0;m.push(Nt(s,S,b)),h.push(Nt(s,S,_))}let p=[ot([...m,...h.reverse()],!0)];X(t,n,e,r,U({fill_opacity:y(r.opacity,.3),...r},{color:(w=Tt.GRAY)!=null?w:lt,sw:0}),p,{m:a})}function Na(t,n,e,r){var d,g,w,M;let{samples:o,map:s,m:a}=Hn(t.w,W(t.w,r.graph)),i=o.flat().map(S=>S[0]),[c,u]=Array.isArray(r.x_range)?r.x_range.map(Number):[Math.min(...i),Math.max(...i)],f=y(r.dx,.1),l=String(r.input_sample_type||"left"),m=Array.isArray(r.color)?r.color.map(S=>Q(S,Kn)):[Q((d=r.color)!=null?d:Kn,Kn),Q((g=r.color)!=null?g:Tt.GREEN,Tt.GREEN)],h=Math.max(1,Math.round((u-c)/f)),p=[];for(let S=0;S<h;S++){let b=c+S*f,_=b+f,x=l==="right"?_:l==="center"?(b+_)/2:b,P=(w=Gn(o,x))!=null?w:0,k=Nt(s,b,0),v=Nt(s,_,P),C=m.length>1?ns(m,h>1?S/(h-1):0):m[0],F=t.w.newId();t.w.set(H(F,"rectangle",{sc:Q((M=r.stroke_color)!=null?M:Rr,Rr),fc:C,sw:y(r.stroke_width,1),so:1,fo:y(r.fill_opacity,1)},[ot([[v[0],v[1]],[k[0],v[1]],[k[0],k[1]],[v[0],k[1]]],!0)],{m:a})),p.push(F)}De(t,n,e,r,p)}function ns(t,n){let e=Math.max(0,Math.min(1,n))*(t.length-1),r=Math.min(t.length-2,Math.floor(e)),o=e-r,s=c=>[1,3,5].map(u=>parseInt(c.slice(u,u+2),16)||0),a=s(t[r]),i=s(t[r+1]);return"#"+a.map((c,u)=>Math.round(c+(i[u]-c)*o).toString(16).padStart(2,"0")).join("").toUpperCase()}function Ba(t,n,e,r){var f;let o=((f=r.values)!=null?f:[]).map(Number),s=o.length,a=Math.max(0,...o),i=Math.min(0,...o),c=Array.isArray(r.y_range)?r.y_range:[i,a>0?a:1,Math.max(1,Math.ceil((a-i)/6))],u=Ye(t,n,"axes",{x_range:[0,s,1],y_range:c,x_length:y(r.x_length,s),y_length:y(r.y_length,t.fh-4),tips:!1,axis_config:{include_tip:!1,...r.axis_config||{}},x_axis_config:{include_ticks:!1,...r.x_axis_config||{}}});return Be([u],()=>{var _;let l=t.w,m=l.get(n),h=m.data.axes,p=(Array.isArray(r.bar_colors)?r.bar_colors:wo).map(x=>Q(x,Kn)),d=y(r.bar_width,.6),g=o.map((x,P)=>{let k=Nt(h,P+.5-d/2,0),v=Nt(h,P+.5+d/2,x),C=p.length>1?ns(p,s>1?P/(s-1):0):p[0],F=l.newId();return l.set(H(F,"bar",{sc:C,fc:C,sw:y(r.bar_stroke_width,3),so:1,fo:y(r.bar_fill_opacity,.7)},[ot([[v[0],v[1]],[k[0],v[1]],[k[0],k[1]],[v[0],k[1]]],!0)],{m:m.m})),F}),w=l.newId();l.set(H(w,"group",m.style,[],{children:g}));let M=(_=r.bar_names)!=null?_:[],S=[],b=M.map((x,P)=>{let k=l.newId();return S.push(k),ae(t,k,"text",{font_size:24},String(x))});return Be(b,()=>{S.forEach((P,k)=>{let v=yt(m.m,Nt(h,k+.5,0)),C=$(l,P);Se(l,P,v[0],v[1]-.25-(C[3]-C[1])/2)});let x=l.newId();l.set(H(x,"group",m.style,[],{children:S})),l.update(n,{kind:e,children:[...m.children,w,x],data:{...m.data,bars:w,values:o,props:r}})})})}function Da(t,n,e,r){var M,S;let o=y(r.radius_max,t.fh/2),a=y(r.size,o*2)/2/o,i=y(r.radius_step,1),c=Math.max(1,Math.round(y(r.azimuth_step,12))),u={sc:Q((S=(M=r.background_line_style)==null?void 0:M.stroke_color)!=null?S:Tr,Tr),fc:Tr,sw:2,so:1,fo:0},f=[];for(let b=i;b<=o+1e-9;b+=i)f.push(ee([0,0],b*a));let l=[];for(let b=0;b<c;b++){let _=_t*b/c;l.push(dt([0,0],[Math.cos(_)*o*a,Math.sin(_)*o*a]))}let m=t.w.newId(),h=t.w.newId();t.w.set(H(m,"background_lines",u,f)),t.w.set(H(h,"background_lines",u,l));let p={sc:lt,fc:lt,sw:2,so:1,fo:0},d=t.w.newId(),g=t.w.newId();t.w.set(H(d,"number_line",p,[dt([-o*a,0],[o*a,0])])),t.w.set(H(g,"number_line",p,[dt([0,-o*a],[0,o*a])])),X(t,n,e,r,p,[],{children:[m,h,d,g],data:{axes:{x0:0,y0:0,sx:a,sy:a,ox:0,oy:0},polar:!0}})}function Wa(t){return()=>{t|=0,t=t+1831565813|0;let n=Math.imul(t^t>>>15,1|t);return n=n+Math.imul(n^n>>>7,61|n)^n,((n^n>>>14)>>>0)/4294967296}}function ja(t,n,e,r,o=0){var m;let s;if(e&&typeof e=="object"&&!Array.isArray(e)){let h=e;return s=Array.from({length:t},(p,d)=>{var w,M;let g=(M=(w=h[d])!=null?w:h[String(d)])!=null?M:[0,0];return[Number(g[0]),Number(g[1])]}),s}let a=String(e||"spring");if(a==="circular"||a==="shell")return Array.from({length:t},(h,p)=>[r*Math.cos(_t*p/t),r*Math.sin(_t*p/t)]);if(a==="tree"){let h=Array.from({length:t},()=>[]);for(let[w,M]of n)h[w].push(M),h[M].push(w);let p=new Array(t).fill(-1),d=[];p[o]=0;let g=[o];for(;g.length;){let w=g.shift();(d[m=p[w]]||(d[m]=[])).push(w);for(let M of h[w])p[M]<0&&(p[M]=p[w]+1,g.push(M))}s=new Array(t).fill(null).map(()=>[0,0]),d.forEach((w,M)=>w.forEach((S,b)=>{s[S]=[w.length>1?b/(w.length-1)*2-1:0,1-(d.length>1?2*M/(d.length-1):0)]}))}else{let h=Wa(1);s=Array.from({length:t},()=>[h()*2-1,h()*2-1]);let p=Math.sqrt(4/Math.max(1,t)),d=.2;for(let g=0;g<120;g++){let w=s.map(()=>[0,0]);for(let M=0;M<t;M++)for(let S=M+1;S<t;S++){let b=s[M][0]-s[S][0],_=s[M][1]-s[S][1],x=Math.hypot(b,_)||1e-6,P=p*p/x;w[M][0]+=b/x*P,w[M][1]+=_/x*P,w[S][0]-=b/x*P,w[S][1]-=_/x*P}for(let[M,S]of n){let b=s[M][0]-s[S][0],_=s[M][1]-s[S][1],x=Math.hypot(b,_)||1e-6,P=x*x/p;w[M][0]-=b/x*P,w[M][1]-=_/x*P,w[S][0]+=b/x*P,w[S][1]+=_/x*P}for(let M=0;M<t;M++){let S=Math.hypot(w[M][0],w[M][1])||1e-6;s[M][0]+=w[M][0]/S*Math.min(S,d),s[M][1]+=w[M][1]/S*Math.min(S,d)}d*=.97}}let i=s.map(h=>h[0]),c=s.map(h=>h[1]),u=(Math.min(...i)+Math.max(...i))/2,f=(Math.min(...c)+Math.max(...c))/2,l=Math.max(Math.max(...i)-Math.min(...i),Math.max(...c)-Math.min(...c))/2||1;return s.map(h=>[(h[0]-u)/l*r,(h[1]-f)/l*r])}function Jo(t,n,e,r,o){var g,w;let s=(g=r.vertices)!=null?g:[],a=s.length,i=M=>typeof M=="number"&&Number.isInteger(M)&&M>=0&&M<a?M:Math.max(0,s.indexOf(M)),c=((w=r.edges)!=null?w:[]).map(M=>[i(M[0]),i(M[1])]),u=typeof r.root_vertex=="number"?r.root_vertex:Math.max(0,s.indexOf(r.root_vertex)),f=ja(a,c,r.layout,y(r.layout_scale,2),u),l=(M,S)=>M?M.per&&typeof M.per=="object"?{...M.per[S]||{}}:M:{},m=t.w,h=s.map(()=>m.newId()),p=r.labels,d=h.map((M,S)=>{let b=l(r.vertex_config,String(S));if(p)return rs(t,M,"labeled_dot",{label:String(s[S]),point:[...f[S],0],...b});X(t,M,"dot",b,U(b,{sw:0,fo:1}),[ee([0,0],y(b.radius,.08))],{m:Z(f[S][0],f[S][1])})});return Be(d,()=>{let M=c.map(([_,x])=>{let P=l(r.edge_config,`${_},${x}`),k=m.newId(),v=$(m,h[_]),C=$(m,h[x]),F=Math.max((v[2]-v[0])/2,(C[2]-C[0])/2);return o?bn(t,k,"arrow",{stroke_width:2,...P},f[_],f[x],F,!1):X(t,k,"line",P,U(P),[dt(f[_],f[x])],{z:-1,data:{start:f[_],end:f[x]}}),k}),S=m.newId(),b=m.newId();m.set(H(S,"group",U({}),[],{children:h})),m.set(H(b,"group",U({}),[],{children:M})),De(t,n,e,r,[S,b],{data:{vertices:s,edges:c,props:r}})})}function rs(t,n,e,r){var i,c,u,f;let o=t.w.newId(),s={font_size:(i=r.font_size)!=null?i:48,color:(c=r.label_color)!=null?c:Rr},a=t.tex&&r.label_is_text!==!0?yn(t,o,"mathtex",{...s,parts:[String((u=r.label)!=null?u:"")]},"math"):ae(t,o,"text",s,String((f=r.label)!=null?f:""));return Be([a],()=>{let l=$(t.w,o),m=r.radius!=null?y(r.radius,.3):.92*Math.max(l[2]-l[0],l[3]-l[1]),h=Yt(t,r.point,[0,0]);Se(t.w,o,h[0],h[1]),X(t,n,e,r,U(r,{sw:0,fo:1}),[ee([0,0],m)],{m:Z(h[0],h[1]),children:[o]})})}function za(t){var o;let n={},e=/([\w:-]+)\s*=\s*("([^"]*)"|'([^']*)')/g,r;for(;r=e.exec(t);)n[r[1]]=(o=r[3])!=null?o:r[4];if(n.style)for(let s of n.style.split(";")){let[a,i]=s.split(":").map(c=>c&&c.trim());a&&i&&(n[a]=i)}return n}function $a(t){var o;let n=[1,0,0,1,0,0];if(!t)return n;let e=/(matrix|translate|scale|rotate)\s*\(([^)]*)\)/g,r;for(;r=e.exec(t);){let s=r[2].split(/[\s,]+/).filter(Boolean).map(Number),a=[1,0,0,1,0,0];if(r[1]==="matrix")a=[s[0],s[1],s[2],s[3],s[4],s[5]];else if(r[1]==="translate")a=[1,0,0,1,s[0]||0,s[1]||0];else if(r[1]==="scale")a=[s[0],0,0,(o=s[1])!=null?o:s[0],0,0];else if(r[1]==="rotate"){let i=(s[0]||0)*Math.PI/180,c=Math.cos(i),u=Math.sin(i);a=[c,u,-u,c,0,0],s.length>=3&&(a=Y(Y([1,0,0,1,s[1],s[2]],a),[1,0,0,1,-s[1],-s[2]]))}n=Y(n,a)}return n}function Ka(t,n){let e=(r,o=0)=>n[r]!=null?parseFloat(n[r]):o;switch(t){case"path":return n.d?jn(n.d):[];case"rect":{let r=e("x"),o=e("y"),s=e("width"),a=e("height"),i=e("rx",e("ry"));return i>0?zt([Ge(s,a,i)],Z(r+s/2,o+a/2)):[ot([[r,o],[r+s,o],[r+s,o+a],[r,o+a]],!0)]}case"circle":return[ee([e("cx"),e("cy")],e("r"))];case"ellipse":return[It([e("cx"),e("cy")],e("rx"),e("ry"),0,_t,!0)];case"line":return[dt([e("x1"),e("y1")],[e("x2"),e("y2")])];case"polyline":case"polygon":{let r=(n.points||"").trim().split(/[\s,]+/).map(Number),o=[];for(let s=0;s+1<r.length;s+=2)o.push([r[s],r[s+1]]);return[ot(o,t==="polygon")]}}return[]}function Fr(t,n,e,r){var g,w,M;let o=String((M=(w=(g=r.svg)!=null?g:r.svg_string)!=null?w:r.file_content)!=null?M:""),s=t.w,a=[],i=[{M:[1,0,0,1,0,0],a:{}}],c=/<(\/?)([\w:-]+)([^>]*?)(\/?)>/g,u,f=(S,b)=>{var _,x;return(x=b[S])!=null?x:(_=[...i].reverse().find(P=>P.a[S]!=null))==null?void 0:_.a[S]};for(;u=c.exec(o);){let[,S,b,_,x]=u,P=b.toLowerCase().replace(/^svg:/,"");if(S){(P==="g"||P==="svg")&&i.pop();continue}let k=za(_),v=Y(i[i.length-1].M,$a(k.transform));if(P==="g"||P==="svg"){x||i.push({M:v,a:k});continue}if(P==="defs"||P==="clippath"||P==="mask")continue;let C=Ka(P,k);if(!C.length)continue;let F=f("fill",k),T=f("stroke",k),I=F&&F!=="none"?Q(F,lt):lt,B=T&&T!=="none"?Q(T,lt):I,L=T&&T!=="none"?parseFloat(f("stroke-width",k)||"1"):0,D={sc:B,fc:I,sw:L,so:1,fo:F==="none"?0:parseFloat(f("fill-opacity",k)||f("opacity",k)||"1")},j=s.newId();s.set(H(j,"svg_part",D,zt(C,Y([1,0,0,-1,0,0],v)),{evenodd:(f("fill-rule",k)||"").trim()==="evenodd"})),a.push(j)}X(t,n,e,r,U(r),[],{children:a});let l=$(s,n),m=r.width!=null&&r.height==null?y(r.width,2)*((l[3]-l[1])/(l[2]-l[0]||1)):y(r.height,2),h=l[3]-l[1]>1e-9?m/(l[3]-l[1]):1,p=at(l);Oe(s,n,Y(St(h,h,[0,0]),Z(-p[0],-p[1])));let d={};r.color!=null&&(d.sc=Q(r.color,lt),d.fc=d.sc),r.fill_color!=null&&(d.fc=Q(r.fill_color,lt)),r.stroke_color!=null&&(d.sc=Q(r.stroke_color,lt)),r.fill_opacity!=null&&(d.fo=y(r.fill_opacity,1)),r.stroke_width!=null&&(d.sw=y(r.stroke_width,0));for(let S of a){let b=s.get(S);s.set({...b,style:{...b.style,sw:r.stroke_width!=null?b.style.sw:b.style.sw*h*100/4,...d}})}}async function os(t,n,e){var s;let r=null;try{r=((s=globalThis.parent)==null?void 0:s.__cirImages)||globalThis.__cirImages}catch(a){r=null}if(!r||typeof r.chain!="function")throw new Error("Image operations need the Circuitry editor");let o=await r.chain(globalThis,t,n,e!=null?e:null);return typeof o=="string"?JSON.parse(o):o}function Qo(t){return new Promise(n=>{let e=new Image;e.onload=()=>n(e),e.onerror=()=>n(null),e.src=t})}function Ga(t,n,e,r){var u,f,l;let o=(l=(f=(u=r.src)!=null?u:r.filename_or_array)!=null?f:r.url)!=null?l:null,s=r.element,a=(m,h,p)=>{let d=y(r.scale_to_resolution,1080),g=p/d*t.fh,w=h/d*t.fh;if(r.height!=null){let M=y(r.height,g)/(g||1);g*=M,w*=M}if(r.width!=null){let M=y(r.width,w)/(w||1);g*=M,w*=M}X(t,n,e,r,U({fill_opacity:1,...r},{sw:0}),[],{image:{src:m,w:w||1,h:g||1,fullW:w||1,fullH:g||1}})},i=m=>[m.naturalWidth||m.width||1080,m.naturalHeight||m.height||1080],c=Array.isArray(r.ops)?r.ops:[];if(c.length)return os(s!=null?s:o,c,null).then(async m=>{let h=m&&m.url?await Qo(m.url):null;if(!h)throw new Error("the image from "+String(c.map(p=>p[0]).join(", "))+" could not be loaded");a(h,m.width||h.naturalWidth,m.height||h.naturalHeight)});if(s){let[m,h]=i(s);a(s,m,h);return}if(typeof Image=="undefined"||!o){a(null,y(r.px_width,1080),y(r.px_height,1080));return}return Qo(String(o)).then(m=>{m?a(m,m.naturalWidth,m.naturalHeight):a(null,1080,1080)})}function Ha(t,n,e,r){var s,a;let o=r.svg_element;if(o!=null){let i=typeof o=="string"?o:(s=o.outerHTML)!=null?s:String(o);return Fr(t,n,e,{...r,svg:i})}if(r.svg==null&&(r.image_src!=null||r.element!=null)&&r.trace!=null){let i=Array.isArray(r.ops)?r.ops:[];return os((a=r.element)!=null?a:r.image_src,i,r.trace).then(c=>{if(!c||!c.svg)throw new Error("tracing the image gave no shapes");let u=y(r.scale_to_resolution,1080),f=r.height!=null?r.height:r.width!=null?void 0:(c.height||1080)/u*t.fh;Fr(t,n,e,{...r,svg:c.svg,height:f})})}return Fr(t,n,e,r)}var vr={angle:(t,n,e,r)=>Yo(t,n,r,e,!1),right_angle:(t,n,e,r)=>Yo(t,n,r,e,!0),sector:(t,n,e,r)=>{var o;return Vo(t,n,r,e,y(e.inner_radius,0),y((o=e.outer_radius)!=null?o:e.radius,1))},annular_sector:(t,n,e,r)=>Vo(t,n,r,e,y(e.inner_radius,1),y(e.outer_radius,2)),arc_between_points:(t,n,e,r)=>{let[o,s]=Le(t,e.start,e.end);X(t,n,r,e,U(e),[ts(o,s,y(e.angle,_t/4))],{data:{start:o,end:s}})},curved_arrow:(t,n,e,r)=>Xo(t,n,r,e,!1),curved_double_arrow:(t,n,e,r)=>Xo(t,n,r,e,!0),elbow:(t,n,e,r)=>{let o=y(e.width,.2);X(t,n,r,e,U(e),zt([ot([[0,o],[o,o],[o,0]],!1)],te(y(e.angle,0),[0,0])))},cross:(t,n,e,r)=>{var m;let o={...U({stroke_width:6,...e},{color:Fa,sw:6}),fc:e.fill_color!=null?Q(e.fill_color,lt):lt},s=[-1,-1,1,1];(e.mobject!=null||e.target!=null)&&(s=Ve(t.w,(m=e.mobject)!=null?m:e.target));let a=y(e.scale_factor,1),i=at(s),c=(s[2]-s[0])/2*a,u=(s[3]-s[1])/2*a,f=t.w.newId(),l=t.w.newId();t.w.set(H(f,"line",o,[dt([i[0]-c,i[1]+u],[i[0]+c,i[1]-u])])),t.w.set(H(l,"line",o,[dt([i[0]+c,i[1]+u],[i[0]-c,i[1]-u])])),X(t,n,r,e,o,[],{children:[f,l]})},underline:(t,n,e,r)=>{var a;let o=Ve(t.w,(a=e.mobject)!=null?a:e.target),s=o[1]-y(e.buff,.1);X(t,n,r,e,U(e),[dt([o[0],s],[o[2],s])],{data:{start:[o[0],s],end:[o[2],s]}})},labeled_dot:(t,n,e,r)=>rs(t,n,r,e),dashed_vmobject:(t,n,e,r)=>{var c;let o=W(t.w,(c=e.vmobject)!=null?c:e.target),s=Math.max(1,Math.round(y(e.num_dashes,15))),a=y(e.dashed_ratio,.5),i=[];for(let u of et(t.w,o)){let f=t.w.get(u),l=zt(f.paths,f.m),m=l.length===1&&l[0].closed,h=a/s,p=m||s===1?1/s:(1-h)/(s-1);for(let d=0;d<s;d++)for(let g of Fe(l,d*p,Math.min(1,d*p+h))){let w=t.w.newId();t.w.set(H(w,"dash",f.style,[{points:g.points,closed:!1}])),i.push(w)}}X(t,n,r,e,U(e),[],{children:i})},tangent_line:(t,n,e,r)=>{var w;let o=W(t.w,(w=e.vmobject)!=null?w:e.target),s=et(t.w,o).flatMap(M=>zt(t.w.get(M).paths,t.w.get(M).m)),a=Math.max(0,Math.min(1,y(e.alpha,.5))),i=y(e.d_alpha,1e-6),c=we(s,Math.max(0,a-i)),u=we(s,Math.min(1,a+i)),f=we(s,a),l=u[0]-c[0],m=u[1]-c[1],h=Math.hypot(l,m)||1,p=y(e.length,1)/2,d=[f[0]-l/h*p,f[1]-m/h*p],g=[f[0]+l/h*p,f[1]+m/h*p];X(t,n,r,e,U(e),[dt(d,g)],{data:{start:d,end:g}})},cubic_bezier:(t,n,e,r)=>{let o=[e.start_anchor,e.start_handle,e.end_handle,e.end_anchor].map(s=>it(t.w,s));X(t,n,r,e,U(e),[{points:o,closed:!1}],{data:{start:o[0],end:o[3]}})},paragraph:(t,n,e,r)=>{var s;let o=Array.isArray(e.lines)?e.lines.map(String):String((s=e.text)!=null?s:"").split(`
7
+ `);return qo(t,n,r,e,o)},bulleted_list:(t,n,e,r)=>{var o;return qo(t,n,r,e,((o=e.items)!=null?o:[]).map(String),!0)},markup_text:(t,n,e,r)=>es(t,n,r,e),table:(t,n,e,r)=>zn(t,n,r,e,e.element==="mathtex"?"mathtex":"text"),math_table:(t,n,e,r)=>zn(t,n,r,e,"mathtex"),decimal_table:(t,n,e,r)=>zn(t,n,r,e,"number"),integer_table:(t,n,e,r)=>zn(t,n,r,e,"number"),matrix:(t,n,e,r)=>$n(t,n,r,e,"mathtex",0),integer_matrix:(t,n,e,r)=>$n(t,n,r,e,"number",0),decimal_matrix:(t,n,e,r)=>{var o;return $n(t,n,r,e,"number",y((o=e.element_to_mobject_config)==null?void 0:o.num_decimal_places,1))},mobject_matrix:(t,n,e,r)=>$n(t,n,r,e,"text",0),code:(t,n,e,r)=>Ia(t,n,r,e),complex_plane:(t,n,e)=>Ye(t,n,"number_plane",e),polar_plane:(t,n,e,r)=>Da(t,n,r,e),bar_chart:(t,n,e,r)=>Ba(t,n,r,e),area:(t,n,e,r)=>Oa(t,n,r,e),riemann_rectangles:(t,n,e,r)=>Na(t,n,r,e),network_graph:(t,n,e,r)=>Jo(t,n,r,e,!!e.directed),di_graph:(t,n,e,r)=>Jo(t,n,r,e,!0),svg_mobject:(t,n,e,r)=>Ha(t,n,r,e),image_mobject:(t,n,e,r)=>Ga(t,n,r,e)};function ss(t,n,e){let{samples:r,map:o,m:s}=Hn(t,n),a=Gn(r,e);return yt(s,Nt(o,e,a!=null?a:0))}function Un(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function Yn(t){return Un(t)&&typeof t.id=="number"&&Object.keys(t).every(n=>n==="id"||n==="path")}function as(t){return Un(t)&&!("$pt"in t)&&!Yn(t)}function Ot(t,n){let e={},r=[];Array.isArray(t)?(r=t.slice(),r.length&&as(r[r.length-1])&&Object.assign(e,r.pop())):as(t)?Object.assign(e,t):t!=null&&(r=[t]);for(let o=0;o<n.length&&o<r.length;o++){let s=n[o];if(s[0]==="*"){e[s.slice(1)]=r.slice(o);break}s in e||(e[s]=r[o])}return e}function W(t,n){if(typeof n=="number"){if(!t.has(n))throw new Error(n===Ut?"no camera frame":`that object does not exist (#${n})`);return n}if(Yn(n)){let e=W(t,n.id);for(let r of n.path||[]){let o=t.get(e).children,s=r<0?o.length+r:r;if(s<0||s>=o.length)throw new Ir(`index ${r} is out of range (it has ${o.length} parts)`);e=o[s]}return e}throw new Error("expected an object, got "+JSON.stringify(n))}var Ir=class extends Error{constructor(n){super(n),this.name="IndexError"}};function Ft(t){return typeof t=="number"||Yn(t)}var Ua={center:[0,0],centre:[0,0],origin:[0,0],top:[0,1],up:[0,1],bottom:[0,-1],down:[0,-1],left:[-1,0],right:[1,0],ul:[-1,1],ur:[1,1],dl:[-1,-1],dr:[1,-1],top_left:[-1,1],top_right:[1,1],bottom_left:[-1,-1],bottom_right:[1,-1]};function Ya(t){return Array.isArray(t)?[Number(t[0])||0,Number(t[1])||0]:typeof t=="string"&&Ua[t.toLowerCase().replace(/^get_/,"")]||null}function Lr(t,n,e){if(typeof e=="string"){let o=e.toLowerCase().replace(/^get_/,"");if(o==="start"||o==="end")return Mt(t,n,o)}let r=Ya(e!=null?e:"center");if(!r)throw new Error(`unknown point "${e}"`);return Et($(t,n),r)}function Mt(t,n,e){let r=t.get(n);if(r.data&&r.data[e])return yt(r.m,r.data[e]);let o=r.paths;if(!o.length){let a=r.children;return a.length?Mt(t,e==="start"?a[0]:a[a.length-1],e):pt(t,n)}let s=e==="start"?o[0].points[0]:o[o.length-1].points[o[o.length-1].points.length-1];return yt(r.m,s)}function is(t,n,e,r){let o=t.get(n),s=o.data&&o.data.axes;if(!s)throw new Error("c2p needs Axes, a NumberPlane or a NumberLine");return yt(o.m,Nt(s,e,r))}function Nt(t,n,e){return[t.ox+(n-t.x0)*t.sx,t.oy+(e-t.y0)*t.sy]}function it(t,n){var e;if(Array.isArray(n))return typeof n[0]=="string"?Or($t(t,n)):[Number(n[0])||0,Number(n[1])||0];if(Un(n)&&("$pt"in n||"$x"in n))return Or($t(t,(e=n.$pt)!=null?e:n.$x));if(Ft(n))return pt(t,W(t,n));throw new Error("expected a point, got "+JSON.stringify(n))}function Or(t){return Array.isArray(t)?[t[0]||0,t[1]||0]:[t,0]}var mt={t:0,dt:0,alpha:0,homotopy:!1},We=null;function cs(t,n){let e=We;We=t;try{return n()}finally{We=e}}function Pt(t,n,e){return typeof t=="number"&&typeof n=="number"?e(t,n):Array.isArray(t)&&Array.isArray(n)?t.map((r,o)=>{var s;return e(r,(s=n[o])!=null?s:0)}):Array.isArray(t)?t.map(r=>e(r,n)):n.map(r=>e(t,r))}function gt(t,n){return typeof t=="number"?n(t):t.map(n)}var ie=t=>{var n;return typeof t=="number"?t:(n=t[0])!=null?n:0},ce=t=>[t[0],t[1],0],qt={hypot:(t,n)=>Pt(t,n,Math.hypot),sin:t=>gt(t,Math.sin),cos:t=>gt(t,Math.cos),tan:t=>gt(t,Math.tan),arcsin:t=>gt(t,Math.asin),arccos:t=>gt(t,Math.acos),arctan:t=>gt(t,Math.atan),arctan2:(t,n)=>Pt(t,n,Math.atan2),sinh:t=>gt(t,Math.sinh),cosh:t=>gt(t,Math.cosh),tanh:t=>gt(t,Math.tanh),exp:t=>gt(t,Math.exp),log:t=>gt(t,Math.log),log10:t=>gt(t,Math.log10),log2:t=>gt(t,Math.log2),sqrt:t=>gt(t,Math.sqrt),abs:t=>gt(t,Math.abs),floor:t=>gt(t,Math.floor),ceil:t=>gt(t,Math.ceil),round:(t,n)=>{let e=Math.pow(10,n==null?0:ie(n));return gt(t,r=>Math.round(r*e)/e)},sign:t=>gt(t,Math.sign),min:(...t)=>t.reduce((n,e)=>Pt(n,e,Math.min)),max:(...t)=>t.reduce((n,e)=>Pt(n,e,Math.max)),clip:(t,n,e)=>Pt(Pt(t,n,Math.max),e,Math.min),interpolate:(t,n,e)=>Pt(t,Pt(Pt(n,t,(r,o)=>r-o),e,(r,o)=>r*o),(r,o)=>r+o),norm:t=>typeof t=="number"?Math.abs(t):Math.hypot(...t),dot:(t,n)=>t.reduce((e,r,o)=>{var s;return e+r*((s=n[o])!=null?s:0)},0),cross:(t,n)=>t[0]*n[1]-t[1]*n[0],normalize:t=>{if(typeof t=="number")return Math.sign(t);let n=Math.hypot(...t)||1;return t.map(e=>e/n)},rotate_vector:(t,n)=>{var a;let e=t,r=ie(n),o=Math.cos(r),s=Math.sin(r);return[e[0]*o-e[1]*s,e[0]*s+e[1]*o,(a=e[2])!=null?a:0]},deg:t=>gt(t,n=>n*180/Math.PI),rad:t=>gt(t,n=>n*Math.PI/180)};Object.assign(qt,{asin:qt.arcsin,acos:qt.arccos,atan:qt.arctan,atan2:qt.arctan2,degrees:qt.deg,radians:qt.rad,absolute:qt.abs,fabs:qt.abs,minimum:qt.min,maximum:qt.max});var Ae={"<":(t,n)=>+(t<n),"<=":(t,n)=>+(t<=n),">":(t,n)=>+(t>n),">=":(t,n)=>+(t>=n),"==":(t,n)=>+(t===n),"!=":(t,n)=>+(t!==n)};Object.assign(Ae,{lt:Ae["<"],le:Ae["<="],gt:Ae[">"],ge:Ae[">="],eq:Ae["=="],ne:Ae["!="]});function $t(t,n){var r,o,s;if(typeof n=="number")return n;if(typeof n=="boolean")return+n;if(Un(n)){if("$x"in n)return $t(t,n.$x);if("$pt"in n)return $t(t,n.$pt);if(Yn(n))return ce(pt(t,W(t,n)))}if(!Array.isArray(n))throw new Error("cannot evaluate "+JSON.stringify(n));if(typeof n[0]!="string")return n.map(a=>ie($t(t,a)));let e=a=>$t(t,a);switch(n[0]){case"t":return mt.t;case"dt":return mt.dt;case"num":return Number(n[1]);case"val":return Number((o=(r=t.get(W(t,n[1])).data)==null?void 0:r.value)!=null?o:0);case"v":return Array.isArray(n[1])?n[1].map(a=>ie(e(a))):e(n[1]);case"vec":return n.slice(1).map(a=>ie(e(a)));case"prop":return xn(t,W(t,n[1]),String(n[2]),n.slice(3).map(e));case"var":{let a=String(n[1]);if(a==="t"&&mt.homotopy)return mt.alpha;if(a==="t"||a==="time")return mt.t;if(a==="dt")return mt.dt;if(a==="alpha")return mt.alpha;let i=We||[0,0];return a==="p"?[i[0],i[1],0]:a==="x"?i[0]:a==="y"?i[1]:0}case"of":return ce(Lr(t,W(t,n[1]),Array.isArray(n[2])?e(n[2]):n[2]));case"c2p":return ce(is(t,W(t,n[1]),ie(e(n[2])),ie(e(n[3]))));case"p2c":{let a=Or(e(n[2])),i=us(t,W(t,n[1]),a);return[i[0],i[1]]}case"get":return xn(t,W(t,n[1]),String(n[2]),n.slice(3).map(e));case"ppf":{let a=W(t,n[1]);return xn(t,a,"point_from_proportion",[ie(e(n[2]))])}case"graph_point":return ce(ss(t,W(t,n[1]),ie(e(n[2]))));case"p":return We?[We[0],We[1],0]:[0,0,0];case"alpha":return mt.alpha;case"+":case"add":return Pt(e(n[1]),e(n[2]),(a,i)=>a+i);case"-":case"sub":return Pt(e(n[1]),e(n[2]),(a,i)=>a-i);case"*":case"mul":return Pt(e(n[1]),e(n[2]),(a,i)=>a*i);case"/":case"div":return Pt(e(n[1]),e(n[2]),(a,i)=>a/i);case"**":case"pow":return Pt(e(n[1]),e(n[2]),Math.pow);case"%":case"mod":return Pt(e(n[1]),e(n[2]),(a,i)=>(a%i+i)%i);case"//":return Pt(e(n[1]),e(n[2]),(a,i)=>Math.floor(a/i));case"neg":return gt(e(n[1]),a=>-a);case"idx":{let a=e(n[1]);return typeof a=="number"?a:(s=a[Number(e(n[2]))])!=null?s:0}case"cmp":return Pt(e(n[2]),e(n[3]),Ae[n[1]]||(()=>0));case"where":return ie(e(n[1]))?e(n[2]):e(n[3]);case"fn":{let a=qt[n[1]];if(!a)throw new Error(`the animation layer cannot evaluate ${n[1]}() yet`);return a(...n.slice(2).map(e))}}throw new Error("unknown expression "+n[0])}function Bt(t,n){if(n===null||typeof n!="object")return n;if(Array.isArray(n))return n.map(o=>Bt(t,o));if("$x"in n)return $t(t,n.$x);if("$pt"in n){let o=$t(t,n.$pt);return typeof o=="number"?[o,0,0]:o}let e=!1,r={};for(let o of Object.keys(n))r[o]=Bt(t,n[o]),r[o]!==n[o]&&(e=!0);return e?r:n}function us(t,n,e){let r=t.get(n),o=r.data&&r.data.axes;if(!o)throw new Error("p2c needs Axes, a NumberPlane or a NumberLine");let s=yt(xe(r.m),e);return[o.sx?o.x0+(s[0]-o.ox)/o.sx:0,o.sy?o.y0+(s[1]-o.oy)/o.sy:0]}function xn(t,n,e,r=[]){var i,c,u,f;let o=String(e).replace(/^get_/,""),s=$(t,n),a=r[0];switch(o){case"center":return ce(at(s));case"width":return s[2]-s[0];case"height":return s[3]-s[1];case"x":return at(s)[0];case"y":return at(s)[1];case"z":return 0;case"top":case"bottom":case"left":case"right":return ce(Lr(t,n,o));case"corner":case"critical_point":case"edge_center":return ce(Lr(t,n,a));case"start":case"end":return ce(Mt(t,n,o));case"len":case"length_of_children":case"submobject_count":return t.get(n).children.length;case"value":return Number((c=(i=t.get(n).data)==null?void 0:i.value)!=null?c:0);case"point_from_proportion":{let l=[];for(let m of et(t,n))l.push(...zt(t.get(m).paths,t.get(m).m));return ce(we(l,y(a,0)))}case"c2p":case"coords_to_point":case"n2p":case"number_to_point":{let l=Array.isArray(a)?a:[a,(u=r[1])!=null?u:0];return ce(is(t,n,y(l[0],0),y(l[1],0)))}case"p2c":case"point_to_coords":case"p2n":case"point_to_number":{let l=us(t,n,it(t,a));return o==="p2n"||o==="point_to_number"?l[0]:[l[0],l[1]]}case"color":{let l=t.get((f=et(t,n)[0])!=null?f:n);return l.style.fo>0?l.style.fc:l.style.sc}case"length":case"arc_length":{let l=Mt(t,n,"start"),m=Mt(t,n,"end");return Math.hypot(m[0]-l[0],m[1]-l[1])}case"angle":{let l=Mt(t,n,"start"),m=Mt(t,n,"end");return Math.atan2(m[1]-l[1],m[0]-l[0])}case"unit_vector":{let l=Mt(t,n,"start"),m=Mt(t,n,"end"),h=Math.hypot(m[0]-l[0],m[1]-l[1])||1;return[(m[0]-l[0])/h,(m[1]-l[1])/h,0]}}throw new Error(`cannot read "${e}" from an object`)}function Rt(t,n,e){return n==null?e:it(t,n)}function y(t,n){if(t==null)return n;let e=Number(Array.isArray(t)?t[0]:t);return Number.isFinite(e)?e:n}var Wt=[0,0],hs=[1,0];var je=.25,ls=.5;function ds(t,n){if(Ft(n))return $(t,W(t,n));let e=it(t,n);return[e[0],e[1],e[0],e[1]]}function Zt(t,n,e){(e[0]||e[1])&&At(t,n,Z(e[0],e[1]))}function Vn(t,n,e){if(e.about_point!=null)return it(t,e.about_point);let r=$(t,n);return e.about_edge!=null?Et(r,Rt(t,e.about_edge,Wt)):at(r)}function Ze(t){return t>1e-9?1:t<-1e-9?-1:0}function Je(t,n,e){let r=0,o=0,s=1;Array.isArray(n)&&(r=Number(n[0])||0,o=Number(n[1])||0,s=Number(n[2])||0);let a=Math.hypot(r,o,s)||1;if(r/=a,o/=a,s/=a,Math.abs(Math.abs(s)-1)<1e-9)return te(t*s,e);let i=Math.cos(t),c=Math.sin(t),u=1-i,f=i+r*r*u,l=r*o*u-s*c,m=o*r*u+s*c,h=i+o*o*u,p=[f,m,l,h,0,0];return Y(Z(e[0],e[1]),Y(p,Z(-e[0],-e[1])))}function wn(t){return Array.isArray(t)&&t.length>0&&t.every(n=>typeof n=="string"||Array.isArray(n))}function Va(t,n){if(t.length===1)return t[0];let e=Math.max(0,Math.min(1,n))*(t.length-1),r=Math.min(t.length-2,Math.floor(e));return Ie(t[r],t[r+1],e-r)}function Mn(t,n,e,r="both"){if(e==null)return;let o=(a,i)=>r==="fill"?{...a,fc:i}:r==="stroke"?{...a,sc:i}:{...a,sc:i,fc:i};if(wn(e)){let a=e.map(c=>Q(c,"#FFFFFF")),i=st(t,n).filter(c=>ne(t.get(c)));i.forEach((c,u)=>{let f=t.get(c);t.set({...f,style:o(f.style,Va(a,i.length>1?u/(i.length-1):0))})});return}let s=Q(e,"#FFFFFF");vt(t,n,a=>o(a,s))}function ms(t,n){for(let e of st(t,n)){let r=t.get(e);if(ne(r))return r.style}return t.get(n).style}function Dt(t,n,e,r,o=!1){let s=$(t,n),a=e===0?s[2]-s[0]:s[3]-s[1];if(a<=1e-12)return;let i=r/a,c=at(s);At(t,n,o?St(e===0?i:1,e===0?1:i,c):St(i,i,c))}function ps(t,n,e){var u;let r=ds(t,(u=e.mobject_or_point)!=null?u:Wt),o=Rt(t,e.direction,hs),s=Rt(t,e.aligned_edge,Wt),a=y(e.buff,je),i=Et(r,[s[0]+o[0],s[1]+o[1]]),c=Et($(t,n),[s[0]-o[0],s[1]-o[1]]);Zt(t,n,[i[0]-c[0]+a*o[0],i[1]-c[1]+a*o[1]])}function fs(t,n,e,r,o){let s=[Ze(e[0])*o.fw/2,Ze(e[1])*o.fh/2],a=Et($(t,n),e);Zt(t,n,[(s[0]-a[0]-r*Ze(e[0]))*Math.abs(Ze(e[0])),(s[1]-a[1]-r*Ze(e[1]))*Math.abs(Ze(e[1]))])}function Xa(t,n,e){let r=t.get(n).children,o=Rt(t,e.direction,hs),s=y(e.buff,je),a=e.aligned_edge!=null?Rt(t,e.aligned_edge,Wt):Wt,i=at($(t,n));for(let c=1;c<r.length;c++)ps(t,r[c],{mobject_or_point:r[c-1],direction:o,buff:s,aligned_edge:a});if(e.center!==!1){let c=at($(t,n));Zt(t,n,[i[0]-c[0],i[1]-c[1]])}}function qa(t,n,e){let r=t.get(n).children,o=r.length;if(!o)return;let s=at($(t,n)),a=e.rows!=null?Number(e.rows):0,i=e.cols!=null?Number(e.cols):0;!a&&!i?(i=Math.ceil(Math.sqrt(o)),a=Math.ceil(o/i)):a?i||(i=Math.ceil(o/a)):a=Math.ceil(o/i);let c=je,u=je;Array.isArray(e.buff)?(c=y(e.buff[0],je),u=y(e.buff[1],je)):e.buff!=null&&(c=u=y(e.buff,je));let f=String(e.flow_order||"rd").toLowerCase(),l=_=>{let x=f[0],P=f[1]||(x==="r"||x==="l"?"d":"r");if(x==="r"||x==="l"){let C=_%i,F=Math.floor(_/i);return[P==="u"?a-1-F:F,x==="l"?i-1-C:C]}let k=_%a,v=Math.floor(_/a);return[x==="u"?a-1-k:k,P==="l"?i-1-v:v]},m=r.map((_,x)=>l(x)),h=0,p=0;for(let[_,x]of m)h=Math.max(h,_+1),p=Math.max(p,x+1);a=Math.min(a,h),i=Math.min(i,p);let d=r.map(_=>$(t,_)),g=new Array(i).fill(0),w=new Array(a).fill(0);d.forEach((_,x)=>{let[P,k]=m[x];P>=a||k>=i||(g[k]=Math.max(g[k],_[2]-_[0]),w[P]=Math.max(w[P],_[3]-_[1]))});let M=g.reduce((_,x)=>_+x,0)+c*(i-1),S=w.reduce((_,x)=>_+x,0)+u*(a-1),b=e.cell_alignment!=null?Rt(t,e.cell_alignment,Wt):Wt;r.forEach((_,x)=>{let[P,k]=m[x];if(P>=a||k>=i)return;let v=-M/2+g.slice(0,k).reduce((I,B)=>I+B,0)+c*k+g[k]/2,C=S/2-w.slice(0,P).reduce((I,B)=>I+B,0)-u*P-w[P]/2,F=[s[0]+v+b[0]*g[k]/2,s[1]+C+b[1]*w[P]/2],T=Et(d[x],b);Zt(t,_,[F[0]-T[0],F[1]-T[1]])})}var ge={width:(t,n,e)=>Dt(t,n,0,y(e,1)),height:(t,n,e)=>Dt(t,n,1,y(e,1)),color:(t,n,e)=>Mn(t,n,e),fill_color:(t,n,e)=>{let r=Q(e,"#FFFFFF");vt(t,n,o=>({...o,fc:r}))},stroke_color:(t,n,e)=>{let r=Q(e,"#FFFFFF");vt(t,n,o=>({...o,sc:r}))},fill_opacity:(t,n,e)=>vt(t,n,r=>({...r,fo:y(e,r.fo)})),stroke_opacity:(t,n,e)=>vt(t,n,r=>({...r,so:y(e,r.so)})),stroke_width:(t,n,e)=>vt(t,n,r=>({...r,sw:y(e,r.sw)})),opacity:(t,n,e)=>vt(t,n,r=>({...r,fo:y(e,1),so:y(e,1)})),z_index:(t,n,e)=>{for(let r of st(t,n))t.update(r,{z:y(e,0)})},x:(t,n,e)=>{let r=at($(t,n));Zt(t,n,[y(e,0)-r[0],0])},y:(t,n,e)=>{let r=at($(t,n));Zt(t,n,[0,y(e,0)-r[1]])}},Wr={shift:{params:["*vectors"],run:(t,n,e)=>{let r=e.vectors||[],o=0,s=0;for(let a of r){let i=it(t,a);o+=i[0],s+=i[1]}Zt(t,n,[o,s])}},move_to:{params:["point_or_mobject","aligned_edge"],run:(t,n,e)=>{var i;let r=Rt(t,e.aligned_edge,Wt),o=Ft(e.point_or_mobject)?Et($(t,W(t,e.point_or_mobject)),r):it(t,(i=e.point_or_mobject)!=null?i:Wt),s=Et($(t,n),r),a=Array.isArray(e.coor_mask)?[y(e.coor_mask[0],1),y(e.coor_mask[1],1)]:[1,1];Zt(t,n,[(o[0]-s[0])*a[0],(o[1]-s[1])*a[1]])}},center:{params:[],run:(t,n)=>{let e=at($(t,n));Zt(t,n,[-e[0],-e[1]])}},next_to:{params:["mobject_or_point","direction","buff","aligned_edge"],run:(t,n,e)=>ps(t,n,e)},to_edge:{params:["edge","buff"],run:(t,n,e,r)=>fs(t,n,Rt(t,e.edge,[-1,0]),y(e.buff,ls),r)},to_corner:{params:["corner","buff"],run:(t,n,e,r)=>fs(t,n,Rt(t,e.corner,[-1,-1]),y(e.buff,ls),r)},align_to:{params:["mobject_or_point","direction"],run:(t,n,e)=>{let r=Rt(t,e.direction,Wt),o=Et(ds(t,e.mobject_or_point),r),s=Et($(t,n),r);Zt(t,n,[r[0]?o[0]-s[0]:0,r[1]?o[1]-s[1]:0])}},arrange:{params:["direction","buff","center"],run:(t,n,e)=>Xa(t,n,e)},arrange_in_grid:{params:["rows","cols","buff"],run:(t,n,e)=>qa(t,n,e)},scale:{params:["scale_factor","about_point","about_edge"],run:(t,n,e)=>{let r=e.scale_factor,o=Array.isArray(r)?y(r[0],1):y(r,1),s=Array.isArray(r)?y(r[1],1):o;At(t,n,St(o,s,Vn(t,n,e)))}},rotate:{params:["angle","axis","about_point","about_edge"],run:(t,n,e)=>At(t,n,Je(y(e.angle,0),e.axis,Vn(t,n,e)))},rotate_about_origin:{params:["angle","axis"],run:(t,n,e)=>At(t,n,Je(y(e.angle,0),e.axis,Wt))},flip:{params:["axis","about_point","about_edge"],run:(t,n,e)=>{var r;return At(t,n,Je(Math.PI,(r=e.axis)!=null?r:[0,1,0],Vn(t,n,e)))}},stretch:{params:["factor","dim","about_point","about_edge"],run:(t,n,e)=>{let r=y(e.factor,1),o=y(e.dim,0);At(t,n,St(o===0?r:1,o===1?r:1,Vn(t,n,e)))}},scale_to_fit_width:{params:["width"],run:(t,n,e)=>Dt(t,n,0,y(e.width,1))},scale_to_fit_height:{params:["height"],run:(t,n,e)=>Dt(t,n,1,y(e.height,1))},set_width:{params:["width","stretch"],run:(t,n,e)=>Dt(t,n,0,y(e.width,1),!!e.stretch)},set_height:{params:["height","stretch"],run:(t,n,e)=>Dt(t,n,1,y(e.height,1),!!e.stretch)},stretch_to_fit_width:{params:["width"],run:(t,n,e)=>Dt(t,n,0,y(e.width,1),!0)},stretch_to_fit_height:{params:["height"],run:(t,n,e)=>Dt(t,n,1,y(e.height,1),!0)},set_x:{params:["x"],run:(t,n,e,r)=>ge.x(t,n,e.x,r)},set_y:{params:["y"],run:(t,n,e,r)=>ge.y(t,n,e.y,r)},set:{params:[],run:(t,n,e,r)=>{for(let o of Object.keys(e)){let s=ge[o];if(!s)throw new Error(`set() does not know "${o}"`);s(t,n,e[o],r)}}},set_color:{params:["color"],run:(t,n,e)=>Mn(t,n,e.color)},set_fill:{params:["color","opacity"],run:(t,n,e)=>{wn(e.color)&&Mn(t,n,e.color,"fill");let r=e.color!=null&&!wn(e.color)?Q(e.color,"#FFFFFF"):null;vt(t,n,o=>({...o,fc:r!=null?r:o.fc,fo:y(e.opacity,o.fo)}))}},set_stroke:{params:["color","width","opacity"],run:(t,n,e)=>{wn(e.color)&&Mn(t,n,e.color,"stroke");let r=e.color!=null&&!wn(e.color)?Q(e.color,"#FFFFFF"):null;vt(t,n,o=>({...o,sc:r!=null?r:o.sc,sw:y(e.width,o.sw),so:y(e.opacity,o.so)}))}},set_opacity:{params:["opacity"],run:(t,n,e)=>ge.opacity(t,n,e.opacity,null)},set_fill_opacity:{params:["opacity"],run:(t,n,e)=>ge.fill_opacity(t,n,e.opacity,null)},set_stroke_width:{params:["width"],run:(t,n,e)=>ge.stroke_width(t,n,e.width,null)},fade:{params:["darkness"],run:(t,n,e)=>{let r=1-y(e.darkness,.5);vt(t,n,o=>({...o,fo:o.fo*r,so:o.so*r}))}},set_z_index:{params:["z_index"],run:(t,n,e,r)=>ge.z_index(t,n,e.z_index,r)},become:{params:["mobject","match_height","match_width","match_depth","match_center","stretch"],run:(t,n,e)=>{let r=$(t,n);if(Re(t,n,W(t,e.mobject)),e.match_height&&Dt(t,n,1,r[3]-r[1],!!e.stretch),e.match_width&&Dt(t,n,0,r[2]-r[0],!!e.stretch),e.match_center){let o=at($(t,n)),s=at(r);Zt(t,n,[s[0]-o[0],s[1]-o[1]])}}},save_state:{params:[],run:(t,n)=>{let e=Me(t,n);t.update(n,{data:{...t.get(n).data||{},saved:e}})}},restore:{params:[],run:(t,n)=>{var o;let e=(o=t.get(n).data)==null?void 0:o.saved;if(e==null||!t.has(e))throw new Error("restore() needs save_state() first");let r=t.get(n).data;Re(t,n,e),t.update(n,{data:{...t.get(n).data||{},saved:r.saved}})}},put_start_and_end_on:{params:["start","end"],run:(t,n,e)=>{let r=Mt(t,n,"start"),o=Mt(t,n,"end"),s=it(t,e.start),a=it(t,e.end),i=[o[0]-r[0],o[1]-r[1]],c=[a[0]-s[0],a[1]-s[1]],u=Math.hypot(i[0],i[1])||1e-9,f=Math.hypot(c[0],c[1])/u,l=Math.atan2(c[1],c[0])-Math.atan2(i[1],i[0]),m=Y(Z(s[0],s[1]),Y(te(l,Wt),Y(St(f,f,Wt),Z(-r[0],-r[1]))));At(t,n,m)}},set_points:{params:["points","smooth"],run:(t,n,e)=>{let r=(e.points||[]).map(o=>it(t,o));t.update(n,{paths:r.length?[e.smooth?fn(r,!1):ot(r,!1)]:[],m:ft})}},set_z:{params:["z"],run:()=>{}},set_corner_radius:{params:["radius"],run:(t,n,e)=>Nr(t,n,r=>{var o;return{...r,radius:y((o=e.radius)!=null?o:e.corner_radius,0)}})},set_border:{params:["color","width"],run:(t,n,e)=>Nr(t,n,r=>{var o,s,a;return{...r,border:y((o=e.width)!=null?o:e.stroke_width,4)>0?{color:Q((s=e.color)!=null?s:"#FFFFFF","#FFFFFF"),width:y((a=e.width)!=null?a:e.stroke_width,4)}:void 0}})},crop:{params:["box"],run:(t,n,e)=>Nr(t,n,r=>{var f,l;let o=(e.box||[0,0,1,1]).map(Number),s=[Math.max(0,o[0]),Math.max(0,o[1]),Math.min(1,o[2]),Math.min(1,o[3])],a=(f=r.fullW)!=null?f:r.w,i=(l=r.fullH)!=null?l:r.h,c=r.w/(a*((r.crop?r.crop[2]-r.crop[0]:1)||1)),u=r.h/(i*((r.crop?r.crop[3]-r.crop[1]:1)||1));return{...r,crop:s,w:a*(s[2]-s[0])*c,h:i*(s[3]-s[1])*u}})},set_shadow:{params:["blur","offset","color","opacity"],run:(t,n,e)=>{var a;let r=Array.isArray(e.offset)?e.offset.map(Number):[.05,-.08],o={blur:y(e.blur,.2),dx:r[0]||0,dy:r[1]||0,color:Q((a=e.color)!=null?a:"#000000","#000000"),opacity:y(e.opacity,.5)},s=o.blur<=0&&!o.dx&&!o.dy;for(let i of st(t,n)){let c=t.get(i);ne(c)&&t.set({...c,shadow:s?void 0:o})}}},apply_matrix:{params:["matrix","about_point"],run:(t,n,e)=>{let r=e.matrix,o=e.about_point!=null?it(t,e.about_point):Wt,s=[r[0][0],r[1][0],r[0][1],r[1][1],0,0];At(t,n,Y(Z(o[0],o[1]),Y(s,Z(-o[0],-o[1]))))}},add_coordinates:{params:["num_decimal_places"],run:(t,n,e)=>Br(t,n,{include_numbers:!0})},change_bar_values:{params:["values"],run:(t,n,e)=>Br(t,n,{values:e.values})},change_layout:{params:["layout","layout_scale","layout_config","root_vertex"],run:(t,n,e)=>Br(t,n,Object.fromEntries(Object.entries(e).filter(([,r])=>r!=null)))},set_value:{params:["value"],run:(t,n,e)=>Vt(t,n,y(e.value,0))},increment_value:{params:["value"],run:(t,n,e)=>{var r,o,s;return Vt(t,n,Number((o=(r=t.get(n).data)==null?void 0:r.value)!=null?o:0)+y((s=e.value)!=null?s:e.d_value,0))}},surround:{params:["mobject","dim_to_match","stretch","buff","buffer_factor"],run:(t,n,e)=>{let r=$(t,W(t,e.mobject)),o=y(e.buffer_factor,1.2),s=y(e.dim_to_match,0)===1?1:0,a=(s===0?r[2]-r[0]:r[3]-r[1])*o+2*y(e.buff,0);Dt(t,n,s,a,!!e.stretch),e.stretch&&Dt(t,n,s===0?1:0,(s===0?r[3]-r[1]:r[2]-r[0])*o+2*y(e.buff,0),!0);let i=at($(t,n)),c=at(r);Zt(t,n,[c[0]-i[0],c[1]-i[1]])}},match_width:{params:["mobject"],run:(t,n,e)=>{let r=$(t,W(t,e.mobject));Dt(t,n,0,r[2]-r[0])}},match_height:{params:["mobject"],run:(t,n,e)=>{let r=$(t,W(t,e.mobject));Dt(t,n,1,r[3]-r[1])}},match_x:{params:["mobject"],run:(t,n,e,r)=>ge.x(t,n,at($(t,W(t,e.mobject)))[0],r)},match_y:{params:["mobject"],run:(t,n,e,r)=>ge.y(t,n,at($(t,W(t,e.mobject)))[1],r)},match_color:{params:["mobject"],run:(t,n,e)=>{let r=ms(t,W(t,e.mobject));vt(t,n,o=>({...o,sc:r.sc,fc:r.fc}))}},match_style:{params:["mobject"],run:(t,n,e)=>{let r=ms(t,W(t,e.mobject));vt(t,n,()=>({...r}))}},set_color_by_tex:{params:["tex","color","substring"],run:(t,n,e)=>{var r;for(let o of t.get(n).children){let s=(r=t.get(o).data)==null?void 0:r.tex;typeof s=="string"&&(e.substring===!1?s===e.tex:s.includes(String(e.tex)))&&Mn(t,o,e.color)}}},set_color_by_tex_to_color_map:{params:["texs_to_color_map"],run:(t,n,e)=>{let r=e.texs_to_color_map||{};for(let o of Object.keys(r))Wr.set_color_by_tex.run(t,n,{tex:o,color:r[o]},null)}},add:{params:["*mobjects"],run:(t,n,e)=>{let r=(e.mobjects||[]).map(s=>W(t,s)).filter(s=>s!==n),o=t.get(n).children.filter(s=>!r.includes(s));t.update(n,{children:[...o,...r]})}},remove:{params:["*mobjects"],run:(t,n,e)=>{let r=(e.mobjects||[]).map(o=>W(t,o));t.update(n,{children:t.get(n).children.filter(o=>!r.includes(o))})}}},bs=Object.keys(Wr);function Nr(t,n,e){let r=!1;for(let o of st(t,n)){let s=t.get(o);s.image&&(t.set({...s,image:e(s.image)}),r=!0)}if(!r)throw new Error("this works on images (ImageMobject)")}var Dr=null;function gs(t){Dr=t}function Br(t,n,e){var s;let r=t.get(n),o=(s=r.data)==null?void 0:s.props;if(!o||!Dr)throw new Error(`this ${r.kind} cannot be rebuilt here`);Dr(t,n,r.kind,{...o,...e}),At(t,n,r.m),t.update(n,{z:r.z})}var Za={move_to:{target:"point_or_mobject"},next_to:{target:"mobject_or_point"},align_to:{target:"mobject_or_point"},scale:{factor:"scale_factor"},become:{source:"mobject"},surround:{target:"mobject"},match_width:{source:"mobject"},match_height:{source:"mobject"},match_x:{source:"mobject"},match_y:{source:"mobject"},match_color:{source:"mobject"},match_style:{source:"mobject"}};function ue(t,n,e,r,o){let s=Wr[e];if(!s)throw new Error(`"${e}" is not something the animation layer can do yet`);let a=Ot(r,s.params),i=Za[e];if(i)for(let c of Object.keys(i))c in a&&!(i[c]in a)&&(a[i[c]]=a[c],delete a[c]);e==="shift"&&a.vector!=null&&a.vectors==null&&(a.vectors=[a.vector]),s.run(t,n,a,o)}function Ja(t){return t&&typeof t=="object"&&!Array.isArray(t)&&"key"in t&&"kind"in t&&"props"in t}var Qa=-1;function Qe(t){let n=t[1]&&typeof t[1]=="object"?{...t[1]}:{};return Array.isArray(n.children)&&(n.children=n.children.map(e=>ze(e)?Qe(e):e)),{key:Qa--,kind:String(t[0]),props:n,ops:Array.isArray(t[2])?t[2]:[]}}function ze(t){if(!Array.isArray(t)||typeof t[0]!="string"||t.length<2||t.length>3)return!1;let n=t[1];return!n||typeof n!="object"||Array.isArray(n)||"$pt"in n||"$x"in n||"tmpl"in n||typeof n.id=="number"&&Object.keys(n).every(e=>e==="id"||e==="path")?!1:t.length===2||Array.isArray(t[2])}function tn(t,n,e,r){if(n===null||typeof n!="object")return n;if(Array.isArray(n))return n.map(a=>tn(t,a,e,r));if(Ja(n))return Zn(t,n,e,r);if(Array.isArray(n.mobject)&&ze(n.mobject)&&(n={...n,mobject:Qe(n.mobject)}),Array.isArray(n.children)&&n.children.some(ze)&&(n={...n,children:n.children.map(a=>ze(a)?Qe(a):a)}),"tmpl"in n&&Object.keys(n).every(a=>a==="tmpl"||a==="path")){let a=e.get(Number(n.tmpl));if(a==null)throw new Error("an object made inside an updater was used before it was made");return n.path&&n.path.length?{id:a,path:n.path}:a}let o=!1,s={};for(let a of Object.keys(n))s[a]=tn(t,n[a],e,r),s[a]!==n[a]&&(o=!0);return o?s:n}function Zn(t,n,e,r,o){let s=e.get(n.key);if(s!=null)return s;let a=o!=null?o:t.newId();e.set(n.key,a);let i=Bt(t,tn(t,n.props,e,r));if(n.kind==="copy"?Me(t,W(t,i.mobject),a):r.make(t,a,n.kind,i),!t.has(a))throw new Error(`${n.kind} could not be built here yet`);for(let[c,u]of n.ops||[])ue(t,a,c,Bt(t,tn(t,u,e,r)),r.env);return a}function Xn(t,n,e,r){let o=new Map,s=[];for(let a of n||[]){let[i,c,u]=a,f=u!=null?W(t,tn(t,u,o,r)):e;f!=null&&(ue(t,f,String(i),Bt(t,tn(t,c,o,r)),r.env),s.push(f))}return s}var kn=1/60,qn=class{constructor(){this.list=[];this.dtCache=new WeakMap;this.redrawCache=new Map}reset(){this.list=[],this.dtCache=new WeakMap,this.redrawCache.clear()}add(n,e,r){let o=e.uid!=null?String(e.uid):`u${this.list.length}`;this.list.push({uid:o,target:n,spec:e,from:r,to:1/0,off:[]})}remove(n,e,r){for(let o of this.list)o.target===n&&o.uid===String(e)&&o.to===1/0&&(o.to=r)}clear(n,e){for(let r of this.list)r.target===n&&r.to===1/0&&(r.to=e)}suspend(n,e){for(let r of this.list){if(r.target!==n||r.to!==1/0)continue;let o=r.off[r.off.length-1];(!o||o[1]!==1/0)&&r.off.push([e,1/0])}}resume(n,e){for(let r of this.list){let o=r.off[r.off.length-1];r.target===n&&o&&o[1]===1/0&&(o[1]=e)}}active(n){return this.list.filter(e=>e.from<=n&&n<e.to&&!e.off.some(([r,o])=>r<=n&&n<o))}apply(n,e,r,o){let s=[];for(let a of this.active(e))if(!(!n.has(a.target)&&a.spec.kind!=="redraw")){mt.t=e,mt.dt=0;try{if(a.spec.kind==="op"&&!a.spec.accumulate)s.push(...Xn(n,a.spec.ops,a.target,o));else if(a.spec.kind==="redraw")this.redraw(n,a,o);else if((a.spec.kind==="dt"||a.spec.kind==="op")&&r)this.integrate(n,a,e,r,o);else{if(a.spec.kind==="python")continue;continue}}catch(i){continue}s.push(a.target)}return s}redraw(n,e,r){!e.spec.template&&e.spec.make&&ze(e.spec.make)&&(e.spec.template=Qe(e.spec.make));let o=e.spec.template,[s,a]=e.spec.make||[o?o.kind:"group",o||{}],i=Bt(n,a),c=JSON.stringify(i),u=`${e.uid}|${e.target}`,f=this.redrawCache.get(u);if(f&&f.key===c){for(let p of f.mobs)n.set(p);return}let l=n.fork(),m=l.has(e.target)?l.get(e.target):null;if(o?Zn(l,o,new Map,r,e.target):r.make(l,e.target,s,i),!l.has(e.target))return;m&&l.update(e.target,{z:m.z});let h=st(l,e.target).map(p=>l.get(p));this.redrawCache.set(u,{key:c,mobs:h});for(let p of h)n.set(p)}integrate(n,e,r,o,s){var g,w,M,S,b,_,x,P;let a=Math.max(o.t0,e.from);if(r<=a)return;let i=this.dtCache.get(o);i||(i=new Map,this.dtCache.set(o,i));let c=`${e.uid}|${e.target}|${a}`,u=i.get(c);if(!u){let k=new Ht(new Map(o.before.mobs),o.before.display.slice(),s.ids);if(!k.has(e.target))return;let v=k.get(e.target);u={states:[{m:v.m,value:Number((w=(g=v.data)==null?void 0:g.value)!=null?w:0)}],sim:k},i.set(c,u)}let f=(k,v,C)=>{mt.t=C,mt.dt=v,Xn(k,e.spec.ops,e.target,s)},l=Math.floor((r-a)/kn+1e-9);for(;u.states.length<=l;){f(u.sim,kn,a+(u.states.length-1)*kn);let k=u.sim.get(e.target);u.states.push({m:k.m,value:Number((S=(M=k.data)==null?void 0:M.value)!=null?S:0)})}let m=u.states[l],h=r-a-l*kn;if(h>1e-9){let k=new Ht(new Map(u.sim.mobs),u.sim.display.slice(),s.ids);k.update(e.target,{m:m.m,data:{...k.get(e.target).data||{},value:m.value}}),f(k,h,a+l*kn);let v=k.get(e.target);m={m:v.m,value:Number((_=(b=v.data)==null?void 0:b.value)!=null?_:0)}}let p=u.states[0],d=Y(m.m,xe(p.m));for(let k of st(n,e.target)){let v=n.get(k);n.set({...v,m:Y(d,v.m)})}m.value!==p.value&&Vt(n,e.target,Number((P=(x=n.get(e.target).data)==null?void 0:x.value)!=null?P:0)+m.value-p.value),mt.dt=0}activeUid(n,e){let r=this.list.filter(o=>o.uid===n);return r.length?r.some(o=>o.from<=e&&e<o.to&&!o.off.some(([s,a])=>s<=e&&e<a)):null}get any(){return this.list.length>0}};var ti=t=>t<0?0:t>1?1:t,ys=t=>1/(1+Math.exp(-t));function xt(t,n=10){let e=ys(-n/2);return ti((ys(n*(t-.5))-e)/(1-2*e))}var jt=t=>t;function Ee(t){return xt(t<.5?2*t:2*(1-t))}function ei(t,n){let e=t.length-1,r=0,o=1;for(let s=0;s<=e;s++)s>0&&(o=o*(e-s+1)/s),r+=o*Math.pow(1-n,e-s)*Math.pow(n,s)*t[s];return r}var en=Math.PI,tr=1.70158,Jn=tr*1.525,_s=tr+1,xs=2*en/3,ws=2*en/4.5;function Qn(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}var jr={linear:jt,smooth:t=>xt(t),smoothstep:t=>t<=0?0:t>=1?1:3*t*t-2*t*t*t,smootherstep:t=>t<=0?0:t>=1?1:t*t*t*(10-15*t+6*t*t),smoothererstep:t=>t<=0?0:t>=1?1:t**4*(35-84*t+70*t*t-20*t*t*t),rush_into:t=>2*xt(t/2),rush_from:t=>2*xt(t/2+.5)-1,slow_into:t=>Math.sqrt(1-(1-t)*(1-t)),double_smooth:t=>t<.5?.5*xt(2*t):.5*(1+xt(2*t-1)),there_and_back:Ee,there_and_back_with_pause:t=>{let n=.3333333333333333,e=1/n;return t<.5-n/2?xt(e*t):t<.5+n/2?1:xt(e-e*t)},running_start:t=>ei([0,0,-.5,-.5,1,1,1],t),not_quite_there:t=>.7*xt(t),wiggle:t=>Ee(t)*Math.sin(2*en*t),lingering:t=>t<.8?t/.8:1,exponential_decay:t=>1-Math.exp(-t/.1),ease_in_sine:t=>1-Math.cos(t*en/2),ease_out_sine:t=>Math.sin(t*en/2),ease_in_out_sine:t=>-(Math.cos(en*t)-1)/2,ease_in_quad:t=>t*t,ease_out_quad:t=>1-(1-t)*(1-t),ease_in_out_quad:t=>t<.5?2*t*t:1-Math.pow(-2*t+2,2)/2,ease_in_cubic:t=>t*t*t,ease_out_cubic:t=>1-Math.pow(1-t,3),ease_in_out_cubic:t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2,ease_in_quart:t=>t**4,ease_out_quart:t=>1-Math.pow(1-t,4),ease_in_out_quart:t=>t<.5?8*t**4:1-Math.pow(-2*t+2,4)/2,ease_in_quint:t=>t**5,ease_out_quint:t=>1-Math.pow(1-t,5),ease_in_out_quint:t=>t<.5?16*t**5:1-Math.pow(-2*t+2,5)/2,ease_in_expo:t=>t===0?0:Math.pow(2,10*t-10),ease_out_expo:t=>t===1?1:1-Math.pow(2,-10*t),ease_in_out_expo:t=>t===0?0:t===1?1:t<.5?Math.pow(2,20*t-10)/2:(2-Math.pow(2,-20*t+10))/2,ease_in_circ:t=>1-Math.sqrt(1-t*t),ease_out_circ:t=>Math.sqrt(1-Math.pow(t-1,2)),ease_in_out_circ:t=>t<.5?(1-Math.sqrt(1-Math.pow(2*t,2)))/2:(Math.sqrt(1-Math.pow(-2*t+2,2))+1)/2,ease_in_back:t=>_s*t*t*t-tr*t*t,ease_out_back:t=>1+_s*Math.pow(t-1,3)+tr*Math.pow(t-1,2),ease_in_out_back:t=>t<.5?Math.pow(2*t,2)*((Jn+1)*2*t-Jn)/2:(Math.pow(2*t-2,2)*((Jn+1)*(t*2-2)+Jn)+2)/2,ease_in_elastic:t=>t===0?0:t===1?1:-Math.pow(2,10*t-10)*Math.sin((t*10-10.75)*xs),ease_out_elastic:t=>t===0?0:t===1?1:Math.pow(2,-10*t)*Math.sin((t*10-.75)*xs)+1,ease_in_out_elastic:t=>t===0?0:t===1?1:t<.5?-(Math.pow(2,20*t-10)*Math.sin((20*t-11.125)*ws))/2:Math.pow(2,-20*t+10)*Math.sin((20*t-11.125)*ws)/2+1,ease_in_bounce:t=>1-Qn(1-t),ease_out_bounce:Qn,ease_in_out_bounce:t=>t<.5?(1-Qn(1-2*t))/2:(1+Qn(2*t-1))/2};function ni(t){let n=t.length-1;return e=>{if(e<=0)return t[0];if(e>=1)return t[n];let r=e*n,o=Math.floor(r);return t[o]+(t[o+1]-t[o])*(r-o)}}function er(t,n=jr.smooth){if(t&&typeof t=="object"&&Array.isArray(t.samples)){let o=t.samples.map(Number);if(o.length>=2)return ni(o)}if(typeof t!="string"||!t)return n;let e=t.replace(/^rate_functions\./,"").replace(/^rate_func\./,"");e=e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase();let r=jr[e];return r?e==="exponential_decay"?o=>o>1?1:r(o<0?0:o):o=>r(o<0?0:o>1?1:o):n}var Ms=Object.keys(jr);var $e=class{constructor(n){this.scene=n;this.over=new Map;this.extras=[]}get(n){let e=this.over.get(n);if(e)return e;let r=this.scene.mobs.get(n);return r?(e={m:r.m,alpha:1,style:r.style,partial:null},this.over.set(n,e),e):null}};function nn(t,n,e){return e<=0?t:e>=1?n:{sc:Ie(t.sc,n.sc,e),fc:Ie(t.fc,n.fc,e),sw:t.sw+(n.sw-t.sw)*e,so:t.so+(n.so-t.so)*e,fo:t.fo+(n.fo-t.fo)*e}}var vs=t=>t<0?0:t>1?1:t;function le(t,n,e,r){if(e<=1||r<=0)return t;let o=(e-1)*r+1;return vs(t*o-n*r)}function ve(t,n,e){return(r,o,s,a)=>{let i=t.length;t.forEach((c,u)=>{let f=o.get(c);if(!f)return;let l=s(le(r,u,i,a));f.m=Y(n(l),f.m),e&&(f.alpha*=e(l))})}}function Sn(t){return t.paths.length?zt(t.paths,t.m):[]}var nr=t=>({...t,so:0,fo:0});function on(t,n,e,r,o,s,a=0){let i=n.map(h=>t.mobs.get(h)),c=r.map(h=>e.mobs.get(h)),u=Math.max(i.length,c.length),f=[],l=-1,m=-1;for(let h=0;h<u;h++){let p=i.length?Math.floor(h*i.length/u):-1,d=c.length?Math.floor(h*c.length/u):-1,g=p>=0?i[p]:null,w=d>=0?c[d]:null,M=p===l,S=d===m;if(l=p,m=d,g&&(g.text||g.image)&&!g.paths.length||w&&(w.text||w.image)&&!w.paths.length){f.push({A:[],B:[],sa:g==null?void 0:g.style,sb:w==null?void 0:w.style,z:(w||g).z,fadeA:g&&!M?g:void 0,fadeB:w&&!S?w:void 0});continue}let b=w?S?nr(w.style):w.style:nr(g.style),_=g?M?nr(g.style):g.style:nr(w.style),[x,P]=_o(g?Sn(g):[],w?Sn(w):[],o,s);f.push({A:x,B:P,sa:_,sb:b,z:w?w.z:g.z,arc:a})}return f}function ri(t,n,e,r){if(e<=0)return t;if(e>=1)return n;let o=1/(2*Math.tan(r/2)),s=Math.cos(e*r),a=Math.sin(e*r);return t.map((i,c)=>({closed:e<.5?i.closed:n[c].closed,points:i.points.map((u,f)=>{let l=n[c].points[f],m=l[0]-u[0],h=l[1]-u[1],p=u[0]+m/2-h*o,d=u[1]+h/2+m*o,g=u[0]-p,w=u[1]-d;return[p+s*g-a*w,d+a*g+s*w]})}))}function Pn(t,n,e,r,o=[]){let s=t.length;return t.forEach((a,i)=>{let c=e(le(n,i,s,r));if(a.fadeA||a.fadeB){a.fadeA&&o.push(rn(a.fadeA,1-c)),a.fadeB&&o.push(rn(a.fadeB,c));return}let u=a.arc&&Math.abs(a.arc)>1e-6?ri(a.A,a.B,c,a.arc):dr(a.A,a.B,c);o.push({paths:u,m:ft,style:nn(a.sa,a.sb,c),alpha:1,partial:null,z:a.z})}),o}function rn(t,n){return{paths:t.paths,m:t.m,style:t.style,alpha:n,partial:null,z:t.z,text:t.text,image:t.image,shadow:t.shadow,evenodd:t.evenodd}}function ks(t,n,e){for(let o of Array.from(t.mobs.values()))o.id!==e&&o.children.includes(n)&&t.update(o.id,{children:o.children.map(s=>s===n?e:s)});if(t.display.indexOf(n)>=0){let o=t.display.filter(s=>s!==e);o[o.indexOf(n)]=e,t.setDisplay(o)}else oe(t,[n]),Lt(t,[e])}function oi(t,n){return{sc:t.sw>0?t.sc:t.fc,fc:t.fc,sw:n,so:1,fo:0}}function zr(t,n,e,r){let o=t.get(n);if(!o)return;if(!t.scene.mobs.get(n).paths.length){o.alpha*=e;return}let a=oi(o.style,r);e<.5?(o.partial=[0,e*2],o.style=a):o.style=nn(a,o.style,e*2-1)}function si(t,n,e,r){let o=$(t,n),s=at(o);return r?[ee(s,Math.hypot(o[2]-o[0],o[3]-o[1])/2+e)]:zt([ot(pe(o[2]-o[0]+2*e,o[3]-o[1]+2*e),!0)],Z(s[0],s[1]))}function Ps(t,n,e){let r=(n[2]-n[0])/(t[2]-t[0]||1),o=(n[3]-n[1])/(t[3]-t[1]||1);t[2]-t[0]<1e-9&&(r=o),t[3]-t[1]<1e-9&&(o=r),e||(r=o=Math.min(r,o));let s=[(t[0]+t[2])/2,(t[1]+t[3])/2],a=[(n[0]+n[2])/2,(n[1]+n[3])/2];return Y(Z(a[0]-s[0],a[1]-s[1]),St(r,o,s))}function ai(t,n,e,r){if(Math.abs(r)<1e-6)return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e];let o=1/(2*Math.tan(r/2)),s=n[0]-t[0],a=n[1]-t[1],i=t[0]+s/2-a*o,c=t[1]+a/2+s*o,u=Math.cos(e*r),f=Math.sin(e*r),l=t[0]-i,m=t[1]-c;return[i+u*l-f*m,c+f*l+u*m]}function $r(t,n){let e=t*(1+n);return[Math.max(0,e-n),Math.min(1,e)]}var ii={apply_pointwise_function:["function"],apply_complex_function:["function"],homotopy:["homotopy"],complex_homotopy:["complex_homotopy"],apply_wave:["direction","amplitude"],swap:["*mobjects"],cyclic_replace:["*mobjects"],broadcast:["focal_point"],focus_on:["focus_point"],blink:["time_on","time_off","blinks","hide_at_end"],fade_in:["shift","target_position","scale"],fade_out:["shift","target_position","scale"],transform:["target_mobject","path_arc"],replacement_transform:["target_mobject","path_arc"],transform_from_copy:["target_mobject","path_arc"],transform_matching_tex:["target_mobject"],transform_matching_shapes:["target_mobject"],fade_transform:["target_mobject"],grow_from_point:["point"],grow_from_edge:["edge"],spin_in_from_nothing:["angle"],indicate:["scale_factor","color"],circumscribe:["shape","fade_in","fade_out","time_width","buff","color"],flash:["point","line_length","num_lines","flash_radius","line_stroke_width","color","time_width"],wiggle:["scale_value","rotation_angle","n_wiggles"],rotate:["angle","axis","about_point","about_edge"],move_along_path:["path"],animate:["ops"],change_decimal_to_value:["number"],changing_decimal:["function"],show_passing_flash:["time_width"],draw_border_then_fill:["stroke_width"]},Ts=["create","uncreate","write","unwrite","draw_border_then_fill","fade_in","fade_out","transform","replacement_transform","transform_from_copy","transform_matching_tex","transform_matching_shapes","fade_transform","grow_from_center","grow_from_point","grow_from_edge","grow_arrow","shrink_to_center","spin_in_from_nothing","indicate","circumscribe","flash","wiggle","rotate","move_along_path","animate","show_passing_flash","restore","change_decimal_to_value","apply_pointwise_function","apply_complex_function","homotopy","complex_homotopy","apply_wave","show_increasing_subsets","show_submobjects_one_by_one","add_text_letter_by_letter","remove_text_letter_by_letter","swap","cyclic_replace","fade_transform_pieces","broadcast","blink","focus_on","change_speed","changing_decimal","wait","group","lagged","succession"],ci={_animate:"animate",_method_animation:"animate",method_animation:"animate",move_to_target:"transform",rotating:"rotate",show_creation:"create",clockwise_transform:"transform",counterclockwise_transform:"transform",lagged_start:"lagged",animation_group:"group"};function or(t){let n=String(t||"").replace(/^\./,"_").replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/([A-Z])([A-Z][a-z])/g,"$1_$2").toLowerCase();return ci[n]||n}var ui=new Set(["wait","flash","transform_from_copy","broadcast","focus_on","swap","cyclic_replace","fade_transform","fade_transform_pieces"]);function li(t,n){let e=mi(t,n),r=or(t.kind);if(!e.begin&&!ui.has(r)&&t.target!=null&&t.target!==0){let o=W(n.w,t.target);e.begin=s=>{br(s,o)||Lt(s,[o])}}return e}function mi(t,n){var i,c,u,f,l,m,h,p,d,g,w,M,S;let e=n.w,r=or(t.kind),o=Ot(t.args,ii[r]||[]);o.to!=null&&o.target_mobject==null&&(o.target_mobject=o.to);let s=()=>W(e,t.target),a=b=>({run:1,rate:xt,lag:0,...b});switch(r){case"wait":return a({run:y((i=o.duration)!=null?i:t.run_time,1),apply:()=>{}});case"fade_in":case"fade_out":{let b=s(),_=et(e,b),x=pt(e,b),P=o.shift!=null?it(e,o.shift):[0,0],k=y(o.scale,1);if(r==="fade_in"){let C=Y(St(k,k,[x[0]-P[0],x[1]-P[1]]),Z(-P[0],-P[1]));if(o.target_position!=null){let F=Ft(o.target_position)?pt(e,W(e,o.target_position)):it(e,o.target_position);C=Z(F[0]-x[0],F[1]-x[1])}return a({intro:!0,target:b,apply:ve(_,F=>de(C,ft,F),F=>F),begin:F=>Lt(F,[b])})}let v=Y(St(k,k,[x[0]+P[0],x[1]+P[1]]),Z(P[0],P[1]));return a({apply:ve(_,C=>de(ft,v,C),C=>1-C),end:C=>oe(C,[b])})}case"create":case"uncreate":case"show_passing_flash":{let b=s(),_=et(e,b),x=y(o.time_width,.1),P=r==="create"?v=>[0,v]:r==="uncreate"?v=>[0,1-v]:v=>$r(v,x),k=(v,C,F,T)=>{_.forEach((I,B)=>{let L=C.get(I);if(!L)return;let D=F(le(v,B,_.length,T));if(!C.scene.mobs.get(I).paths.length){L.alpha*=r==="create"?D:1-D;return}L.partial=P(D)})};return a(r==="create"?{lag:1,intro:!0,target:b,apply:k,begin:v=>Lt(v,[b])}:r==="uncreate"?{lag:1,apply:k,end:v=>oe(v,[b])}:{apply:k,intro:!0,target:b,begin:v=>Lt(v,[b]),end:v=>oe(v,[b])})}case"write":case"unwrite":case"draw_border_then_fill":{let b=s(),_=et(e,b),x=_.length,P=y(o.stroke_width,2);if(r==="draw_border_then_fill")return a({run:2,rate:er("double_smooth"),intro:!0,target:b,apply:(T,I,B,L)=>_.forEach((D,j)=>zr(I,D,B(le(T,j,x,L)),P)),begin:T=>Lt(T,[b])});let k=0;for(let T of _){let I=e.get(T).text;k+=I?Math.max(1,Array.from(I.str).filter(B=>B.trim()).length):1}let v=k<15?1:2,C=Math.min(4/Math.max(1,k),.2),F=T=>(r==="write"?o.reverse:o.reverse!==!1)?x-1-T:T;return a(r==="write"?{run:v,rate:jt,lag:C,intro:!0,target:b,apply:(T,I,B,L)=>_.forEach((D,j)=>zr(I,D,B(le(T,F(j),x,L)),P)),begin:T=>Lt(T,[b])}:{run:v,rate:jt,lag:C,apply:(T,I,B,L)=>_.forEach((D,j)=>zr(I,D,1-B(le(T,F(j),x,L)),P)),end:T=>oe(T,[b])})}case"transform":case"replacement_transform":case"transform_from_copy":case"transform_matching_shapes":case"transform_matching_tex":{let b=s(),_=W(e,o.target_mobject),x=pt(e,b),P=pt(e,_);if(r==="transform_matching_tex"||r==="transform_matching_shapes"){let T=r==="transform_matching_tex"?fi(e,b,_,x,P):hi(e,b,_,x,P);if(T)return a({apply:(I,B,L)=>{let D=B.get(b);if(!D)return;let j=L(I),J=Pn(T.pairs,I,L,0);for(let G of T.out)J.push(rn(B.scene.mobs.get(G)||e.get(G),1-j));for(let G of T.in)J.push(rn(e.get(G),j));D.replace=J;let ut=B.get(_);ut&&_!==b&&(ut.hidden=!0)},end:I=>ks(I,b,_)})}let k=on(e,et(e,b),e,et(e,_),P,x,y(o.path_arc,0)),v=r==="transform_from_copy"?_:b,C=st(e,b).filter(T=>T!==b),F=(T,I,B,L)=>{let D=I.get(v);if(D){if(D.replace=Pn(k,T,B,L),r!=="transform_from_copy")for(let j of C){let J=I.get(j);J&&(J.hidden=!0)}if(r!=="transform_from_copy"&&_!==b){let j=I.get(_);j&&(j.hidden=!0)}}};return a(r==="transform"?{apply:F,end:T=>Re(T,b,_)}:r==="transform_from_copy"?{apply:F,intro:!0,target:_,begin:T=>Lt(T,[_])}:{apply:F,end:T=>ks(T,b,_)})}case"grow_from_center":case"grow_from_point":case"grow_from_edge":case"grow_arrow":case"spin_in_from_nothing":case"shrink_to_center":{let b=s(),_=et(e,b),x=pt(e,b);r==="grow_from_point"&&(x=Ft(o.point)?pt(e,W(e,o.point)):it(e,(c=o.point)!=null?c:[0,0])),r==="grow_from_edge"&&(x=Et($(e,b),Rt(e,o.edge,[0,-1]))),r==="grow_arrow"&&(x=Mt(e,b,"start"));let P=[0,0,0,0,x[0],x[1]];if(r==="shrink_to_center")return a({apply:ve(_,T=>de(ft,P,T)),end:T=>At(T,b,P)});let k=r==="spin_in_from_nothing"?y(o.angle,Math.PI/2):0,C=ve(_,T=>k?Y(te(-(1-T)*k,x),St(T,T,x)):de(P,ft,T));return a({intro:!0,target:b,apply:r!=="grow_arrow"?C:(T,I,B,L)=>{C(T,I,B,L),_.forEach((D,j)=>{let J=I.get(D);J&&(J.style={...J.style,sw:J.style.sw*B(le(T,j,_.length,L))})})},begin:T=>Lt(T,[b])})}case"restore":{let b=s(),_=(u=e.get(b).data)==null?void 0:u.saved;if(_==null||!e.has(_))throw new Error("Restore needs save_state() first");let x=on(e,et(e,b),e,et(e,_),pt(e,_),pt(e,b),y(o.path_arc,0)),P=e.get(b).data;return a({apply:(k,v,C,F)=>{let T=v.get(b);T&&(T.replace=Pn(x,k,C,F))},end:k=>{Re(k,b,_),k.update(b,{data:{...k.get(b).data||{},saved:P.saved}})}})}case"indicate":{let b=s(),_=et(e,b),x=pt(e,b),P=y(o.scale_factor,1.2),k=Q((f=o.color)!=null?f:pn,pn);return a({rate:Ee,apply:(v,C,F,T)=>_.forEach((I,B)=>{let L=C.get(I);if(!L)return;let D=F(le(v,B,_.length,T));L.m=Y(St(1+(P-1)*D,1+(P-1)*D,x),L.m),L.style=nn(L.style,{...L.style,sc:k,fc:k},D)})})}case"circumscribe":{let b=s(),_=si(e,b,y(o.buff,.1),String(o.shape||"").toLowerCase()==="circle"),x=Q((l=o.color)!=null?l:Ce,Ce),P=y(o.time_width,.3),k={sc:x,fc:x,sw:y(o.stroke_width,4),so:1,fo:0};return a({rate:jt,apply:(v,C,F)=>{let T=xt(F(v)),I,B=1;o.fade_out?(I=[0,Math.min(1,T*2)],B=T<.5?1:2-2*T):o.fade_in?(I=[0,1],B=T<.5?2*T:2-2*T):I=$r(T,P),C.extras.push({paths:_,m:ft,style:k,alpha:B,partial:I,z:1e6})}})}case"flash":{let b=t.target!=null?t.target:o.point,_=Ft(b)?pt(e,W(e,b)):it(e,b!=null?b:[0,0]),x=Math.max(1,Math.round(y(o.num_lines,12))),P=y(o.flash_radius,.1)+.2,k=y(o.line_length,.2),v=Q((m=o.color)!=null?m:Ce,Ce),C=y(o.time_width,1),F={sc:v,fc:v,sw:y(o.line_stroke_width,3),so:1,fo:0},T=[];for(let I=0;I<x;I++){let B=2*Math.PI*I/x,L=Math.cos(B),D=Math.sin(B);T.push(ot([[_[0]+L*P,_[1]+D*P],[_[0]+L*(P+k),_[1]+D*(P+k)]],!1))}return a({rate:jt,apply:(I,B,L)=>{let D=$r(xt(L(I)),C);for(let j of T)B.extras.push({paths:[j],m:ft,style:F,alpha:1,partial:D,z:1e6})}})}case"wiggle":{let b=s(),_=et(e,b),x=pt(e,b),P=y(o.scale_value,1.1),k=y(o.rotation_angle,.01*2*Math.PI),v=y(o.n_wiggles,6);return a({run:2,apply:ve(_,C=>{let F=1+(P-1)*Ee(C);return Y(te(Ee(C)*Math.sin(v*Math.PI*C)*k,x),St(F,F,x))})})}case"rotate":{let b=s(),_=et(e,b),x=y(o.angle,Math.PI),P=o.about_point!=null?it(e,o.about_point):o.about_edge!=null?Et($(e,b),Rt(e,o.about_edge,[0,0])):pt(e,b);return a({apply:ve(_,k=>Je(x*k,o.axis,P)),end:k=>At(k,b,Je(x,o.axis,P))})}case"move_along_path":{let b=s(),_=et(e,b),x=pt(e,b),P=W(e,o.path),k=[];for(let C of et(e,P))k.push(...Sn(e.get(C)));let v=C=>{let F=we(k,C);return Z(F[0]-x[0],F[1]-x[1])};return a({apply:ve(_,v),end:C=>At(C,b,v(1))})}case"apply_pointwise_function":case"apply_complex_function":case"homotopy":case"complex_homotopy":case"apply_wave":{let b=s(),_=et(e,b),x=(p=(h=o.function)!=null?h:o.func)!=null?p:o.homotopy,P=_.map(I=>({id:I,mob:e.get(I),paths:Sn(e.get(I))})),k=r==="apply_complex_function"||r==="complex_homotopy",v=r==="homotopy"||r==="complex_homotopy",C=(I,B)=>{mt.alpha=B,mt.homotopy=v;let L=cs(I,()=>$t(e,x));return mt.homotopy=!1,k&&typeof L!="number"?[L[0],L[1]]:typeof L=="number"?[L,0]:[L[0],L[1]]},F=(I,B)=>I.map(L=>({closed:L.closed,points:L.points.map(B)}));if(r==="apply_wave"){let I=$(e,b),B=Rt(e,o.direction,[0,1]),L=y(o.amplitude,.2),D=y(o.time_width,1),j=Math.max(1,y(o.ripples,1)),J=I[2]-I[0]||1,ut=(G,ct)=>{let ht=(G-(ct*(1+D)-D))/D;return ht<=0||ht>=1?0:j===1?Ee(ht):Math.sin(j*Math.PI*ht)*Ee(ht)};return a({run:2,apply:(G,ct,ht)=>{let Kt=ht(G);for(let wt of P){let Jt=ct.get(wt.id);if(!Jt)continue;let Qt=F(wt.paths,Gt=>{let ye=L*ut((Gt[0]-I[0])/J,Kt);return[Gt[0]+B[0]*ye,Gt[1]+B[1]*ye]});Jt.replace=[{paths:Qt,m:ft,style:Jt.style,alpha:Jt.alpha,partial:null,z:wt.mob.z}]}}})}if(x==null)throw new Error(`${t.kind} needs a function the preview can trace`);let T=v?null:P.map(I=>F(I.paths,B=>C(B,1)));return a({run:3,apply:(I,B,L)=>{let D=L(I);P.forEach((j,J)=>{let ut=B.get(j.id);if(!ut)return;let G=v?F(j.paths,ct=>C(ct,D)):dr(j.paths,T[J],D);ut.replace=[{paths:G,m:ft,style:ut.style,alpha:ut.alpha,partial:null,z:j.mob.z}]})},end:I=>P.forEach((B,L)=>{if(!I.has(B.id))return;let D=v?F(B.paths,j=>C(j,1)):T[L];I.update(B.id,{paths:D,m:ft})})})}case"show_increasing_subsets":case"show_submobjects_one_by_one":case"add_text_letter_by_letter":case"remove_text_letter_by_letter":{let b=s(),_=r.endsWith("letter_by_letter")?et(e,b):e.get(b).children,x=_.length,P=_.map(F=>st(e,F)),k=r==="remove_text_letter_by_letter",v=r.endsWith("letter_by_letter")?Math.max(.06,y(o.time_per_char,.1)*x):1,C=(F,T,I)=>{let B=I(F)*x,D=(o.int_func?o.int_func==="ceil":r.endsWith("letter_by_letter"))?Math.ceil(B-1e-9):Math.floor(B+1e-9);k&&(D=x-D),P.forEach((j,J)=>{if(r==="show_submobjects_one_by_one"?J!==Math.min(x-1,D):J>=D)for(let G of j){let ct=T.get(G);ct&&(ct.hidden=!0)}})};return a(k?{run:v,rate:jt,apply:C,end:F=>oe(F,[b])}:{run:v,rate:r.endsWith("letter_by_letter")?jt:xt,intro:!0,target:b,apply:C,begin:F=>Lt(F,[b])})}case"swap":case"cyclic_replace":{let b=[...t.target!=null?[s()]:[],...(o.mobjects||[]).map(k=>W(e,k))],_=y(o.path_arc,Math.PI/2),x=b.map(k=>pt(e,k)),P=b.map((k,v)=>{let C=x[v],F=x[(v+1)%b.length];return{id:k,ids:et(e,k),at:T=>{let I=ai(C,F,T,_);return Z(I[0]-C[0],I[1]-C[1])}}});return a({apply:(k,v,C,F)=>{for(let T of P)ve(T.ids,T.at)(k,v,C,F)},end:k=>{for(let v of P)At(k,v.id,v.at(1))}})}case"fade_transform":case"fade_transform_pieces":{let b=s(),_=W(e,o.target_mobject),x=o.stretch!==!1,k=(r==="fade_transform_pieces"&&e.get(b).children.length===e.get(_).children.length&&e.get(b).children.length?e.get(b).children.map((v,C)=>[v,e.get(_).children[C]]):[[b,_]]).map(([v,C])=>{let F=$(e,v),T=$(e,C);return{s:et(e,v),d:et(e,C),toB:Ps(F,T,x),toA:Ps(T,F,x)}});return a({apply:(v,C,F)=>{let T=F(v);for(let I of k){for(let B of I.s){let L=C.get(B);L&&(L.m=Y(de(ft,I.toB,T),L.m),L.alpha*=1-T)}for(let B of I.d){let L=C.get(B);L&&(L.m=Y(de(I.toA,ft,T),L.m),L.alpha*=T)}}},begin:v=>Lt(v,[_]),end:v=>oe(v,[b])})}case"broadcast":{let b=s(),_=et(e,b),x=pt(e,b),P=o.focal_point!=null?it(e,o.focal_point):x,k=Math.max(1,Math.round(y(o.n_mobs,5))),v=$(e,b),C=y(o.initial_width,0)/(v[2]-v[0]||1),F=y(o.initial_opacity,1),T=y(o.final_opacity,0),I=_.map(B=>e.get(B));return a({run:3,lag:y((d=t.lag_ratio)!=null?d:o.lag_ratio,.2),apply:(B,L,D,j)=>{for(let J=0;J<k;J++){let ut=D(le(B,J,k,j));if(ut<=0||ut>=1)continue;let G=C+(1-C)*ut,ct=Y(St(G,G,P),Z(P[0]-x[0],P[1]-x[1]));for(let ht of I)L.extras.push({paths:ht.paths,m:Y(ct,ht.m),style:ht.style,alpha:F+(T-F)*ut,partial:null,z:ht.z,text:ht.text})}}})}case"blink":{let b=s(),_=et(e,b),x=y(o.time_on,.5),P=y(o.time_off,.5),k=Math.max(1,Math.round(y(o.blinks,1))),v=!!o.hide_at_end,C=x+k*(P+x)-(v?x:0);return a({run:C,rate:jt,apply:(F,T)=>{let I=F*C;if(F>=1?v:I>=x&&(I-x)%(P+x)<P)for(let L of _){let D=T.get(L);D&&(D.alpha=0)}},end:v?F=>vt(F,b,T=>({...T,fo:0,so:0})):void 0})}case"focus_on":{let b=t.target!=null?t.target:o.focus_point,_=Ft(b)?pt(e,W(e,b)):it(e,b!=null?b:[0,0]),x=Q((g=o.color)!=null?g:"#888888","#888888"),P=y(o.opacity,.2),k=Math.hypot(n.env.fw,n.env.fh);return a({run:2,apply:(v,C,F)=>{let T=F(v),I=Math.max(.001,k*(1-T));C.extras.push({paths:[ee(_,I)],m:ft,style:{sc:x,fc:x,sw:0,so:0,fo:P*T},alpha:1,partial:null,z:1e6})}})}case"animate":return Es(t,o,n);case"change_decimal_to_value":return Es(t,{ops:[["set_value",[(M=(w=o.number)!=null?w:o.value)!=null?M:o.target_number]]]},n);case"changing_decimal":{let b=s(),_=(S=o.function)!=null?S:o.number_update_func,x=new Ht(new Map(e.mobs),e.display.slice(),e.ids),P=k=>(mt.alpha=k,Number($t(e,_)));return a({apply:(k,v,C)=>{let F=v.get(b);if(!F)return;let T=x.fork();Vt(T,b,P(C(k))),F.replace=et(T,b).map(I=>rn(T.get(I),F.alpha))},end:k=>Vt(k,b,P(1))})}}throw new Error(`the animation layer cannot play "${r}" yet`)}function fi(t,n,e,r,o){let s=t.get(n).children.filter(l=>{var m;return typeof((m=t.get(l).data)==null?void 0:m.tex)=="string"}),a=t.get(e).children.filter(l=>{var m;return typeof((m=t.get(l).data)==null?void 0:m.tex)=="string"});if(!s.length||!a.length)return null;let i=new Set,c=[],u=[];for(let l of a){let m=t.get(l).data.tex.trim(),h=s.find(p=>!i.has(p)&&t.get(p).data.tex.trim()===m);h!=null?(i.add(h),c.push(...on(t,et(t,h),t,et(t,l),o,r))):u.push(...et(t,l))}let f=[];for(let l of s)i.has(l)||f.push(...et(t,l));return{pairs:c,in:u,out:f}}function Ss(t,n,e){var u,f,l,m;let r=(h,p)=>h+(p-h)*e,o=t.crop||[0,0,1,1],s=n.crop||[0,0,1,1],a=t.border,i=n.border,c=a||i?{color:Ie((u=a==null?void 0:a.color)!=null?u:i.color,(f=i==null?void 0:i.color)!=null?f:a.color,e),width:r((l=a==null?void 0:a.width)!=null?l:0,(m=i==null?void 0:i.width)!=null?m:0)}:void 0;return{...n,w:r(t.w,n.w),h:r(t.h,n.h),radius:r(t.radius||0,n.radius||0),border:c,crop:t.crop||n.crop?[r(o[0],s[0]),r(o[1],s[1]),r(o[2],s[2]),r(o[3],s[3])]:void 0}}function As(t,n){let e=Sn(t.get(n)),r=hn(e);if(!r)return"";let o=r[3]-r[1]||r[2]-r[0]||1;return e.map(s=>s.points.map(a=>`${Math.round((a[0]-r[0])/o*100)},${Math.round((a[1]-r[1])/o*100)}`).join(";")).join("|")}function hi(t,n,e,r,o){let s=et(t,n),a=et(t,e);if(!s.length||!a.length)return null;let i=new Map(s.map(m=>[m,As(t,m)])),c=new Set,u=[],f=[];for(let m of a){let h=As(t,m),p=s.find(d=>!c.has(d)&&i.get(d)===h);p!=null?(c.add(p),u.push(...on(t,[p],t,[m],o,r))):f.push(m)}let l=s.filter(m=>!c.has(m));return{pairs:u,in:f,out:l}}function Es(t,n,e){let r=e.w,o=W(r,t.target),s=r.fork(),a=Array.isArray(n.ops)?n.ops:[],i=[];for(let c of a)if(Array.isArray(c)&&c[2]==null)ue(s,o,String(c[0]),c[1],e.env);else if(c&&typeof c=="object"){let u=Array.isArray(c)?{name:c[0],args:c[1],target:c[2]}:c,f=u.target!=null?W(s,u.target):o;f!==o&&!st(r,o).includes(f)&&i.push(f),ue(s,f,String(u.name),u.args,e.env)}return i.length?di([Kr(r,s,o),...Array.from(new Set(i)).map(c=>Kr(r,s,c))]):Kr(r,s,o)}function di(t){return{run:1,rate:xt,lag:0,apply:(n,e,r,o)=>{for(let s of t)s.apply(n,e,r,o)},end:(n,e)=>{var r;for(let o of t)(r=o.end)==null||r.call(o,n,e)}}}function Kr(t,n,e){let r=st(t,e),o=st(n,e),s=r.length===o.length&&r.every((l,m)=>l===o[m]),a=o.map(l=>n.get(l)),i=(l,m=1)=>{var h,p;if(Math.abs(m-1)<1e-9){for(let d of a)l.set(d);return}if(!(Math.abs(m)<1e-9))for(let d of a){if(!l.has(d.id)||!t.has(d.id)){l.set(d);continue}let g=t.get(d.id),w=(h=g.data)==null?void 0:h.value,M=(p=d.data)==null?void 0:p.value;l.set({...d,m:de(g.m,d.m,m),style:nn(g.style,d.style,m),...g.image&&d.image&&g.image!==d.image?{image:Ss(g.image,d.image,m)}:{},data:typeof w=="number"&&typeof M=="number"?{...d.data,value:w+(M-w)*m}:d.data})}},c=t.get(e),u=n.get(e);if(Do(c)&&c.data.value!==u.data.value){let l=Number(c.data.value),m=Number(u.data.value),h=new Ht(new Map(t.mobs),t.display.slice(),t.ids);return{run:1,rate:xt,lag:0,apply:(p,d,g)=>{let w=d.get(e);if(!w)return;let M=g(p),S=h.fork();Vt(S,e,l+(m-l)*M),w.replace=et(S,e).map(b=>rn(S.get(b),w.alpha))},end:i}}if(!s){let l=on(t,et(t,e),n,et(n,e),pt(n,e),pt(t,e));return{run:1,rate:xt,lag:0,apply:(m,h,p,d)=>{let g=h.get(e);g&&(g.replace=Pn(l,m,p,d))},end:i}}let f=[];for(let l of r){let m=t.get(l),h=n.get(l);if(m===h)continue;let p={id:l,s:m,e:h,inv:xe(m.m)};ne(m)&&(m.paths!==h.paths||m.text!==h.text||!!m.image!=!!h.image)&&(p.pairs=on(t,[l],n,[l],pt(n,l),pt(t,l))),f.push(p)}return{run:1,rate:xt,lag:0,apply:(l,m,h,p)=>{f.forEach((d,g)=>{var _,x;let w=m.get(d.id);if(!w)return;let M=h(le(l,g,f.length,p));if(d.pairs){w.replace=Pn(d.pairs,M,jt,0);return}d.s.m!==d.e.m&&(w.m=Y(Y(de(d.s.m,d.e.m,M),d.inv),w.m)),d.s.style!==d.e.style&&(w.style=nn(w.style,d.e.style,M)),d.s.image&&d.e.image&&d.s.image!==d.e.image&&(w.image=Ss(d.s.image,d.e.image,M));let S=(_=d.s.data)==null?void 0:_.value,b=(x=d.e.data)==null?void 0:x.value;typeof S=="number"&&typeof b=="number"&&S!==b&&(w.value=S+(b-S)*M)})},end:i}}function pi(t,n,e){let r=n.run_time!=null?Math.max(0,Number(n.run_time)):t.run,o=n.rate_func!=null?er(n.rate_func,t.rate):t.rate,s=n.lag_ratio!=null?Number(n.lag_ratio):t.lag,a=t.target!=null&&br(e.pre,t.target);return{run:r,intro:!!t.intro,shownBefore:a,frame:(i,c)=>t.apply(r>0?vs(i/r):1,c,o,s),events:()=>{let i=[];if(t.begin&&i.push({t:0,end:!1,fn:t.begin}),t.end){let c=o(1);i.push({t:r,end:!0,fn:u=>t.end(u,c)})}return i}}}function Fs(t,n,e,r){let o=[],s=0,a=0;for(let u of t)o.push(s),a=Math.max(a,s+u.run),s+=n*u.run;let i=e!=null?e:a,c=a>0?i/a:1;return{run:i,intro:t.some(u=>u.intro),shownBefore:t.every(u=>u.shownBefore),frame:(u,f)=>{let l=Math.max(0,Math.min(i,u));r!==jt&&i>0&&(l=i*r(l/i));let m=c>0?l/c:l;t.forEach((h,p)=>{let d=m-o[p];d<0&&!(h.intro&&!h.shownBefore)||h.frame(d,f)})},events:()=>{let u=[];return t.forEach((f,l)=>{for(let m of f.events())u.push({t:(o[l]+m.t)*c,end:m.end,fn:m.fn})}),u}}}function rr(t,n){let e=or(t.kind);if(e==="group"||e==="lagged"||e==="succession"){let r=t.items||[],o=t.lag_ratio!=null?Number(t.lag_ratio):e==="lagged"?.05:e==="succession"?1:0,s=t.rate_func!=null?er(t.rate_func,jt):jt,a;if(e==="succession"){let i={...n,w:n.w.fork()};a=r.map(c=>{let u=rr(c,i),f=u.events().sort((l,m)=>l.t-m.t||Number(m.end)-Number(l.end));for(let l of f)l.fn(i.w);return u})}else a=r.map(i=>rr(i,n));return Fs(a,o,t.run_time!=null?Number(t.run_time):null,s)}return e==="change_speed"?bi(t,n):pi(li(t,n),t,n)}function bi(t,n){let e=Ot(t.args,["speedinfo"]),r=rr((t.items||[])[0]||t.anim||e.anim||{kind:"wait",run_time:0},n),o=Object.entries(e.speedinfo||{}).map(([i,c])=>[Number(i),Math.max(.001,Number(c))]).sort((i,c)=>i[0]-c[0]);(!o.length||o[0][0]>0)&&o.unshift([0,1]),o[o.length-1][0]<1&&o.push([1,o[o.length-1][1]]);let s=o.slice(0,-1).map(([i,c],u)=>{let[f,l]=o[u+1];return{u0:i,u1:f,s0:c,s1:l,T:(f-i)*r.run/((c+l)/2)}}),a=s.reduce((i,c)=>i+c.T,0);return{run:a,intro:r.intro,shownBefore:r.shownBefore,frame:(i,c)=>{let u=Math.max(0,Math.min(a,i));for(let f of s){if(u<=f.T||f===s[s.length-1]){let l=Math.min(u,f.T),m=f.s0*l+(f.s1-f.s0)*l*l/(2*(f.T||1));r.frame(f.u0*r.run+m,c);return}u-=f.T}},events:()=>r.events().map(i=>({...i,t:i.t<=0?0:i.t>=r.run?a:i.t}))}}function Rs(t,n,e){let r=t.map(o=>{let s={...o};n.run_time!=null&&(s.run_time=Number(n.run_time)),n.rate_func!=null&&(s.rate_func=n.rate_func);let a=or(s.kind);return n.lag_ratio!=null&&a!=="group"&&a!=="lagged"&&a!=="succession"&&(s.lag_ratio=Number(n.lag_ratio)),rr(s,e)});return Fs(r,0,null,jt)}function Cs(t){return t.events().sort((n,e)=>n.t-e.t||Number(e.end)-Number(n.end))}var An=1,Is=new WeakMap,Os=typeof Path2D!="undefined";function Ns(t){let n=new Path2D;for(let e of t){let r=e.points;if(r.length){n.moveTo(r[0][0],r[0][1]);for(let o=1;o+2<r.length;o+=3)n.bezierCurveTo(r[o][0],r[o][1],r[o+1][0],r[o+1][1],r[o+2][0],r[o+2][1]);e.closed&&n.closePath()}}return n}function gi(t){let n=Is.get(t);return n||(n=Ns(t),Is.set(t,n)),n}function yi(t,n){t.beginPath();for(let e of n){let r=e.points;if(r.length){t.moveTo(r[0][0],r[0][1]);for(let o=1;o+2<r.length;o+=3)t.bezierCurveTo(r[o][0],r[o][1],r[o+1][0],r[o+1][1],r[o+2][0],r[o+2][1]);e.closed&&t.closePath()}}}function Hr(t,n){t.setTransform(n[0],n[1],n[2],n[3],n[4],n[5])}function Bs(t,n){let e=[],r=new Set,{mobs:o}=t.scene,s=a=>{var u;if(r.has(a))return;r.add(a);let i=t.over.get(a);if(i&&i.hidden)return;if(i&&i.replace){for(let f of i.replace)e.push(f);return}let c=o.get(a);if(c){ne(c)&&e.push(i?{paths:c.paths,m:i.m,style:i.style,alpha:i.alpha,partial:i.partial,z:c.z,text:c.text,image:(u=i.image)!=null?u:c.image,shadow:c.shadow,evenodd:c.evenodd}:{paths:c.paths,m:c.m,style:c.style,alpha:1,partial:null,z:c.z,text:c.text,image:c.image,shadow:c.shadow,evenodd:c.evenodd});for(let f of c.children)s(f)}};for(let a of n||t.scene.display)s(a);if(!n)for(let a of t.extras)e.push(a);if(e.some(a=>a.z!==0)){let a=new Map(e.map((i,c)=>[i,c]));e.sort((i,c)=>i.z-c.z||a.get(i)-a.get(c))}return e}function _i(t,n,e=ft){var i,c,u,f;let r=(f=(u=(i=t.over.get(Ut))==null?void 0:i.m)!=null?u:(c=t.scene.mobs.get(Ut))==null?void 0:c.m)!=null?f:ft,o=yt(r,[0,0]),s=un(r),a=Math.min(n.pxW/n.fw,n.pxH/n.fh)/s;return Y(e,[a,0,0,-a,n.pxW/2-a*o[0],n.pxH/2+a*o[1]])}function me(t,n,e){let r=ft;if(typeof t.getTransform=="function"){let s=t.getTransform();r=[s.a,s.b,s.c,s.d,s.e,s.f]}t.save(),e.clear!==!1&&(Hr(t,r),t.clearRect(0,0,e.pxW,e.pxH)),e.clipX&&(Hr(t,r),t.beginPath(),t.rect(e.clipX[0],0,Math.max(0,e.clipX[1]-e.clipX[0]),e.pxH),t.clip());let o=_i(n,e,r);e.shiftX&&(o=Y(o,[1,0,0,1,e.shiftX,0])),t.lineJoin="round",t.lineCap="round",An=e.alpha==null?1:Math.max(0,Math.min(1,e.alpha));try{if(An>0)for(let s of Bs(n))ki(t,An===1?s:{...s,alpha:s.alpha*An},o)}finally{An=1}t.restore()}function ir(t,n,e,r){if(!n)return;let o=Rn(n.color)||[0,0,0];t.shadowColor=`rgba(${o[0]},${o[1]},${o[2]},${Math.max(0,Math.min(1,n.opacity*r))})`,t.shadowBlur=n.blur*e,t.shadowOffsetX=n.dx*e,t.shadowOffsetY=-n.dy*e}function ar(t){t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0}var sr=new Map;function Ds(t,n,e,r){let o=Math.max(0,Math.min(r,n/2,e/2)),s=-n/2,a=-e/2;t.moveTo(s+o,a),t.arcTo(s+n,a,s+n,a+e,o),t.arcTo(s+n,a+e,s,a+e,o),t.arcTo(s,a+e,s,a,o),t.arcTo(s,a,s+n,a,o),t.closePath()}function xi(t,n,e){if(!Os)return null;let r=`${t}|${n}|${e}`,o=sr.get(r);return o||(o=new Path2D,Ds(o,t,n,e),sr.size>500&&sr.clear(),sr.set(r,o),o)}function Gr(t,n,e,r,o,s){if(n){t[s](n);return}t.beginPath(),Ds(t,e,r,o),t[s]()}var Ls=new WeakMap;function Ws(t){let n=t;return[n.naturalWidth||n.videoWidth||n.width||0,n.naturalHeight||n.videoHeight||n.height||0]}function wi(t,n){if(n>=.5||typeof document=="undefined")return{img:t,k:1};let e=Ls.get(t);if(e&&e.k>=n)return{img:e.canvas,k:e.k};let[r,o]=Ws(t),s=Math.min(1,Math.pow(2,Math.ceil(Math.log2(n*1.25))));if(s>=.5||!r||!o)return{img:t,k:1};let a=document.createElement("canvas");a.width=Math.max(1,Math.round(r*s)),a.height=Math.max(1,Math.round(o*s));let i=a.getContext("2d");return i.imageSmoothingQuality="high",i.drawImage(t,0,0,a.width,a.height),Ls.set(t,{canvas:a,k:s}),{img:a,k:s}}function Mi(t,n,e,r){let o=n.image,s=n.style;if(!o.src)return;let a=Math.min(1,n.alpha*(s.fo>0?s.fo:1));if(a<=0)return;t.setTransform(e[0],e[1],-e[2],-e[3],e[4],e[5]),t.globalAlpha=a;let[i,c]=Ws(o.src),[u,f,l,m]=o.crop||[0,0,1,1],h=Math.hypot(e[0],e[1])*o.w,p=o.src,d=1;!o.live&&i&&c&&({img:p,k:d}=wi(o.src,h/(i*(l-u))));let g=u*i*d,w=(1-m)*c*d,M=(l-u)*i*d,S=(m-f)*c*d,b=o.radius||0,_=b>0||o.border?xi(o.w,o.h,b):null,x=()=>{try{i&&c?t.drawImage(p,g,w,M,S,-o.w/2,-o.h/2,o.w,o.h):t.drawImage(p,-o.w/2,-o.h/2,o.w,o.h)}catch(P){}};if(n.shadow){if(b>0)t.save(),ir(t,n.shadow,r,a),t.fillStyle="#000",Gr(t,_,o.w,o.h,b,"fill"),t.restore();else if(ir(t,n.shadow,r,a),x(),ar(t),!o.border)return}b>0?(t.save(),Gr(t,_,o.w,o.h,b,"clip"),x(),t.restore()):n.shadow||x(),o.border&&o.border.width>0&&(t.strokeStyle=o.border.color,t.lineWidth=o.border.width*.01/un(n.m),Gr(t,_,o.w,o.h,b,"stroke"))}function ki(t,n,e){let r=n.style,o=n.alpha;if(o<=0)return;let s=Y(e,n.m),a=un(e);if(n.image){Mi(t,n,s,a);return}if(n.text){let m=n.text,h=r.fo*o;if(h<=0)return;let p=.01;t.setTransform(s[0]*p,s[1]*p,-s[2]*p,-s[3]*p,s[4],s[5]),t.globalAlpha=Math.min(1,h),t.fillStyle=r.fc;let d=m.family==="mono"?'Menlo, Consolas, "Liberation Mono", monospace':Po(m.family||"");t.font=`${m.slant==="italic"?"italic ":""}${m.weight==="bold"?"bold ":""}${m.em*100}px ${d}`,t.textAlign=m.left?"left":"center",t.textBaseline="middle";let g=m.str.split(`
8
+ `),w=m.left?-m.w/2*100:0;ir(t,n.shadow,a,h),g.forEach((M,S)=>t.fillText(M,w,(S-(g.length-1)/2)*m.em*120)),n.shadow&&ar(t);return}let i=n.paths;if(n.partial&&(i=Fe(i,n.partial[0],n.partial[1]),!i.length)||!i.length)return;let c=r.fo*o,u=r.sw>0?r.so*o:0;if(c<=0&&u<=0)return;Hr(t,s);let f=Os?n.partial?Ns(i):gi(i):null;f||yi(t,i);let l=n.evenodd?"evenodd":"nonzero";ir(t,n.shadow,a,Math.max(c,u)),c>0&&(t.globalAlpha=Math.min(1,c),t.fillStyle=r.fc,f?t.fill(f,l):t.fill(l),n.shadow&&ar(t)),u>0&&(t.globalAlpha=Math.min(1,u),t.strokeStyle=r.sc,t.lineWidth=r.sw*.01/un(n.m),f?t.stroke(f):t.stroke()),n.shadow&&ar(t)}function Ur(t,n){var f;let e=Bs(t,[n]),r=null,o=null,s=null;for(let l of e){let m=l.partial?Fe(l.paths,l.partial[0],l.partial[1]):l.paths;l.partial&&!m.length&&l.paths.length&&(m=[{points:[l.paths[0].points[0]],closed:!1}]);for(let p of m)for(let d of p.points){let g=yt(l.m,d);o||(o=g),r=r?[Math.min(r[0],g[0]),Math.min(r[1],g[1]),Math.max(r[2],g[0]),Math.max(r[3],g[1])]:[g[0],g[1],g[0],g[1]]}let h=l.text||l.image;if(h&&!m.length)for(let p of[[-h.w/2,-h.h/2],[h.w/2,-h.h/2],[h.w/2,h.h/2],[-h.w/2,h.h/2]]){let d=yt(l.m,p);r=r?[Math.min(r[0],d[0]),Math.min(r[1],d[1]),Math.max(r[2],d[0]),Math.max(r[3],d[1])]:[d[0],d[1],d[0],d[1]]}if(l===e[0]&&m.length){let p=m[m.length-1].points;s=yt(l.m,p[p.length-1])}}let a=e[0],i=a?a.style:(f=t.scene.mobs.get(n))==null?void 0:f.style,c=r||[0,0,0,0],u=l=>l?[l[0],l[1],0]:null;return{center:[(c[0]+c[2])/2,(c[1]+c[3])/2,0],width:c[2]-c[0],height:c[3]-c[1],left:c[0],right:c[2],bottom:c[1],top:c[3],first_point:u(o),partial_end_point:u(s),stroke_width:i?i.sw:0,stroke_opacity:i&&a?i.so*a.alpha:i?i.so:0,fill_opacity:i&&a?i.fo*a.alpha:i?i.fo:0,color:i?i.fo>0?i.fc:i.sc:null,fill_color:i?i.fc:null,stroke_color:i?i.sc:null,items:e.length}}var Pi=16/9,Si=new Set(["none","crossfade","slide_left","slide","slide_right","wipe"]),Ai=new Set(["add_coordinates","change_bar_values","change_layout"]),Ei=new Set(["shift","rotate","scale","stretch","flip","increment_value","rotate_about_origin"]);function js(t={}){var io,co;let n=new Cn((io=t.base)!=null?io:null),e=new Map,r=(co=t.tex)!=null?co:null,o={frame_height:8,frame_width:null,background:"#000000"},s=new Ht,a=[],i=0,c=[],u=0,f=[],l=0,m=new qn,h={ops:new Map,values:new Map,sets:new Map,adds:new Map,deltas:new Map},p=()=>h.ops.size+h.values.size+h.sets.size+h.adds.size+h.deltas.size,d=0,g=null,w=new Map,M=!1,S=!1;Oo(n),gs((A,E,R,O)=>{let N=_n({...P(),w:A},E,R,O);if(N&&typeof N.then=="function")throw new Error("rebuilding this needs a font first; try again after it has loaded")}),Wo((A,E)=>{if(typeof document=="undefined")return null;let R=document.createElement("canvas");return R.width=A,R.height=E,R});let b=()=>o.frame_height,_=()=>{var A;return(A=o.frame_width)!=null?A:o.frame_height*Pi},x=()=>({fw:_(),fh:b()}),P=()=>({w:s,fw:_(),fh:b(),text:n,tex:r,texCache:e});function k(A=ft){return H(Ut,"camera",{sc:"#FFFFFF",fc:"#FFFFFF",sw:0,so:0,fo:0},[ot(pe(_(),b()),!0)],{m:A})}s.set(k());function v(){u++}let C=0,F=null,T=[],I=[];function B(A,E=l){let R=A&&A.message||String(A);f.push({message:R,line:E}),typeof console!="undefined"&&console.error("[pyctures.anim]",R)}function L(A,E){l=E;let R=A();if(R&&typeof R.then=="function"){let O=C;F=R.then(()=>v(),N=>B(N,E)).then(()=>{O===C&&(F=null,D())})}else v()}function D(){for(;!F&&T.length;){let A=T.shift();try{L(A.fn,A.line)}catch(E){B(E,A.line)}}if(!F&&!T.length){let A=I;I=[];for(let E of A)E()}}function j(A){let E=Number(Tn.line)||0;F||T.length?T.push({fn:A,line:E}):L(A,E)}function J(A){var R;let E=Ot(A,[]);E.frame_height!=null&&(o.frame_height=y(E.frame_height,8)),E.frame_width!=null&&(o.frame_width=y(E.frame_width,_())),(E.background!=null||E.background_color!=null)&&(o.background=String((R=E.background)!=null?R:E.background_color)),E.transition!=null&&(o.transition=String(E.transition)),E.transition_time!=null&&(o.transition_time=y(E.transition_time,.5)),(E.frame_height!=null||E.frame_width!=null)&&s.set(k(s.get(Ut).m))}function ut(A,E){if(mt.t=i,!E)return;if(E.kind==="redraw"&&!E.template&&E.make&&ze(E.make)&&(E.template=Qe(E.make)),E.kind==="python"||E.kind!=="redraw"||s.has(A)){W(s,A),m.add(A,E,i);return}let R=[],O={...wt(),make:(K,z,nt,tt)=>{let q=_n({...P(),w:K},z,nt,tt);q&&typeof q.then=="function"&&R.push(q)}},N=()=>{if(E.template)Zn(s,E.template,new Map,O,A);else{let[K,z]=E.make||["group",{}];O.make(s,A,K,Bt(s,z))}};try{N()}catch(K){if(!R.length)throw K}if(R.length)return Promise.all(R).then(()=>{R.length=0,N(),m.add(A,E,i)});m.add(A,E,i)}function G(A){let E=R=>{if(!R||typeof R!="object")return R;let O={...R};return R.args!=null&&(O.args=Bt(s,R.args)),Array.isArray(R.items)&&(O.items=R.items.map(E)),O};return Array.isArray(A)?A.map(E):E(A)}function ct(A){return(Array.isArray(A)?A:[A]).map(R=>W(s,R))}function ht(A,E){let R=Array.isArray(A)?A:[A];if(!R.length)return;let O=s.snapshot(),N=Rs(R,Ot(E,[]),{w:s.fork(),pre:O,env:x()}),K=Cs(N),z=s.fork();for(let tt of K)tt.end||tt.fn(z);let nt=z.snapshot();for(let tt of K)tt.fn(s);if(N.run>0){let tt={t0:i,t1:i+N.run,before:nt,node:N};a.push(tt),i+=N.run,Kt(tt)}}function Kt(A){if(!m.any)return;let E=s.fork();for(let R of m.apply(E,A.t1,A,wt()))for(let O of st(E,R))E.has(O)&&s.set(E.get(O))}let wt=()=>({env:x(),ids:s.ids,make:(A,E,R,O)=>{_n({...P(),w:A},E,R,O)}});function Jt(A){let E=Math.max(0,y(Array.isArray(A)?A[0]:A,1));if(E<=0)return;let R={t0:i,t1:i+E,before:s.snapshot(),node:null};a.push(R),i+=E,Kt(R)}function Qt(A,E,R){var nt,tt;let O=String(E).replace(/^get_/,""),N=Ot(R,["arg"]);if(O==="frame")return{width:_(),height:b()};if(mt.t=i,O==="point"&&(A==null||A===0)){let q=it(s,(nt=N.arg)!=null?nt:R);return[q[0],q[1],0]}if((O==="expr"||O==="eval"||O==="number")&&(A==null||A===0))return $t(s,(tt=N.arg)!=null?tt:R);let K=W(s,A);if(O==="describe"||O==="state")return Ur(new $e(s.snapshot()),K);if(O==="point"){let q=Ft(N.arg)?at($(s,W(s,N.arg))):it(s,N.arg);return[q[0],q[1],0]}let z=Array.isArray(R)?R:R==null?[]:[R];return xn(s,K,O,z)}let Gt=[],ye=[];function ea(A){for(let E of ye)if(A>=E.t&&A<E.t+E.dur)return E;return null}function na(A){if(!a.length||A>=i)return null;let E=0,R=a.length-1;for(;E<R;){let O=E+R+1>>1;a[O].t0<=A?E=O:R=O-1}return a[E]}function an(A,E=!0){return so(A,E).f}function so(A,E){A=Math.max(0,A);let R=na(A),O=new $e(R?R.before:s.snapshot());R&&R.node&&R.node.frame(A-R.t0,O);let N=E&&p()>0,K=m.any||N||S?ra(O,A,R,N):null;return{f:O,view:K}}function ao(A){let E=new Map(A.scene.mobs);for(let[R,O]of A.over){let N=E.get(R);!N||O.m===N.m&&O.style===N.style&&O.value==null||E.set(R,{...N,m:O.m,style:O.style,data:O.value!=null?{...N.data||{},value:O.value}:N.data})}return new Ht(E,A.scene.display.slice(),s.ids)}function ra(A,E,R,O){var nt,tt;let N=ao(A),K=N.snapshot(),z=[];if(mt.t=E,O){for(let[rt,kt]of h.values)N.has(rt)&&(Vt(N,rt,kt),z.push(rt));let q=wt(),bt=rt=>{try{z.push(...Xn(N,rt,null,q))}catch(kt){}},V=rt=>{let kt=/^[ud](\d+)$/.exec(rt);return!kt||m.activeUid(kt[1],E)!==!1};for(let[rt,kt]of h.sets)V(rt)&&bt(kt);for(let[rt,kt]of h.adds)V(rt)&&bt(Array.from(kt.values()));for(let[rt,kt]of h.deltas)if(V(rt)){for(let[fe,cn]of kt)if(N.has(fe)){for(let he of st(N,fe)){let _e=N.get(he);N.set({..._e,m:Y(cn.M,_e.m)})}cn.dv&&Vt(N,fe,Number((tt=(nt=N.get(fe).data)==null?void 0:nt.value)!=null?tt:0)+cn.dv),z.push(fe)}}for(let rt of h.ops.values())if(N.has(rt.target))try{ue(N,rt.target,rt.name,Bt(N,rt.args),x()),z.push(rt.target)}catch(kt){}}if(z.push(...m.apply(N,E,R,wt())),!M)for(let q of Array.from(N.mobs.values())){if(q.kind!=="traced_path")continue;let bt=sa(q,E,N);N.set({...q,paths:bt.length>=2?[ot(bt,!1)]:[]}),z.push(q.id)}return oa(A,N,K,z),N}function oa(A,E,R,O){var N;for(let K of Array.from(new Set(O))){let z=st(E,K),nt=st(R,K);if(z.length===nt.length&&z.every((q,bt)=>{if(q!==nt[bt])return!1;let V=E.get(q),rt=R.mobs.get(q);return V.paths===rt.paths&&V.text===rt.text&&V.image===rt.image}))for(let q of z){let bt=E.get(q);if(bt===R.mobs.get(q))continue;let V=A.get(q);V&&(V.m=bt.m,V.style=bt.style,((N=bt.data)==null?void 0:N.value)!=null&&(V.value=Number(bt.data.value)))}else{let q=A.get(K);if(!q)continue;let bt=q.alpha;q.replace=z.map(V=>E.get(V)).filter(ne).map(V=>({paths:V.paths,m:V.m,style:V.style,alpha:bt,partial:null,z:V.z,text:V.text,image:V.image,shadow:V.shadow,evenodd:V.evenodd}))}}}function sa(A,E,R){var q,bt;let O=(q=A.data)==null?void 0:q.trace;if(!O||O.point==null)return[];let N=Number((bt=O.from)!=null?bt:0),K=1/30,z=w.get(A.id);(!z||z.version!==u)&&(z={version:u,pts:[]},w.set(A.id,z));let nt=Math.floor((Math.min(E,i)-N)/K+1e-9);M=!0;try{for(;z.pts.length<=nt&&z.pts.length<2e4;){let V=N+z.pts.length*K,rt=so(V,!1),kt=rt.view||ao(rt.f);mt.t=V;let fe=it(kt,O.point);z.pts.push(fe)}}catch(V){}finally{M=!1,mt.t=E}let tt=z.pts.slice(0,Math.max(0,nt+1));try{let V=it(R,O.point),rt=tt[tt.length-1];(!rt||Math.hypot(V[0]-rt[0],V[1]-rt[1])>1e-9)&&tt.push(V)}catch(V){}if(O.dissipating!=null&&O.dissipating>0){let V=Math.ceil(O.dissipating/K)+1;return tt.slice(Math.max(0,tt.length-V))}return tt}let Tn={reset(A){C++,F=null,T.length=0,o={frame_height:8,frame_width:null,background:"#000000"},s=new Ht,s.set(k()),a=[],i=0,c=[],f=[],m.reset(),h.ops.clear(),h.values.clear(),h.sets.clear(),h.adds.clear(),h.deltas.clear(),w.clear(),S=!1,ye=[],Gt=[],A&&J(A),v(),D()},config(A){j(()=>J(A))},make(A,E,R,O){j(()=>{if(mt.t=i,O!=null){let z=String(E).replace(/_/g,"").toLowerCase();z==="pycturescanvas"?R={...R,canvas:O}:z==="imagemobject"?R={...R,element:O}:z==="svgmobject"&&(R=typeof O=="string"||O.outerHTML?{...R,svg_element:O}:{...R,element:O})}let N=String(E).toLowerCase().replace(/_/g,"")==="tracedpath",K=_n(P(),A,E,N?R||{}:Bt(s,R||{}));if(K&&typeof K.then=="function"&&(K=K.catch(z=>{throw s.has(A)||s.set(H(A,"group",{sc:"#FFFFFF",fc:"#FFFFFF",sw:0,so:1,fo:0},[])),z})),N&&s.has(A)){let z=s.get(A).data;s.update(A,{data:{...z,trace:{...z.trace,from:i}}}),S=!0}return K})},copy(A,E){j(()=>{Me(s,W(s,E),A)})},op(A,E,R){j(()=>{mt.t=i;let O=()=>ue(s,W(s,A),E,Bt(s,R),x());if(Ai.has(E)&&n.font("normal|normal")===void 0)return n.load("normal|normal").then(O);O()})},add_updater(A,E){j(()=>ut(A,E))},updater(A,E){j(()=>ut(A,E))},remove_updater(A,E){j(()=>m.remove(W(s,A),E,i))},clear_updaters(A){j(()=>m.clear(W(s,A),i))},suspend_updating(A){j(()=>m.suspend(W(s,A),i))},resume_updating(A){j(()=>m.resume(W(s,A),i))},live_op(A,E,R,O){var K,z;let N=W(s,A);if(O&&O.accumulate){Tn.live(`acc|${N}`,[[E,R,N]],{mode:"add"});return}if(E==="set_value"||E==="increment_value"){let nt=Ot(R,["value"]),tt=h.values.has(N)?h.values.get(N):Number((z=(K=s.get(N).data)==null?void 0:K.value)!=null?z:0);h.values.set(N,E==="set_value"?y(nt.value,0):tt+y(nt.value,0))}else h.ops.set(`${N}|${E}`,{target:N,name:E,args:R});d++},live_set(A,E){h.values.set(W(s,A),y(E,0)),d++},live_clear(){h.ops.clear(),h.values.clear(),h.sets.clear(),h.adds.clear(),h.deltas.clear(),d++},live(A,E,R){var z,nt,tt,q;let O=String(A),N=Array.isArray(E)?E:[];if((R&&R.mode||"set")==="set")h.adds.delete(O),h.deltas.delete(O),N.length?h.sets.set(O,N):h.sets.delete(O);else{let bt=h.adds.get(O)||new Map,V=h.deltas.get(O)||new Map;for(let rt of N){let[kt,fe,cn]=rt,he;try{he=W(s,cn)}catch(_e){continue}if(Ei.has(String(kt))){let _e=s.fork(),uo=_e.get(he);try{ue(_e,he,String(kt),Bt(_e,fe),x())}catch(Xi){continue}let lo=_e.get(he),aa=Y(lo.m,xe(uo.m)),mo=V.get(he)||{M:ft,dv:0};V.set(he,{M:Y(aa,mo.M),dv:mo.dv+(Number((nt=(z=lo.data)==null?void 0:z.value)!=null?nt:0)-Number((q=(tt=uo.data)==null?void 0:tt.value)!=null?q:0))})}else bt.set(`${he}|${kt}`,rt)}h.adds.set(O,bt),h.deltas.set(O,V)}d++},sound(A){j(()=>{let E=Ot(A,["src"]);if(E.src==null||E.src==="")throw new Error("add_sound needs a file");let R=E.kind==="music";Gt.push({src:String(E.src),t0:i+y(E.time_offset,0),volume:Math.max(0,y(E.volume,R?.3:1)),fade_in:Math.max(0,y(E.fade_in,0)),fade_out:Math.max(0,y(E.fade_out,R?1:0)),loop:E.loop!=null?!!E.loop:R,kind:R?"music":"sound",...E.t1!=null?{t1:y(E.t1,0)}:{}})})},wait_sound(A){j(()=>{let E=Ot(A,["src","extra"]),R=E.src!=null?[...Gt].reverse().find(N=>N.src===String(E.src)):Gt[Gt.length-1];if(!R)return;let O=globalThis.__cirSoundDuration;if(typeof O=="function")return Promise.resolve(O(R.src)).then(N=>{let K=R.t0+Math.max(0,Number(N)||0)+y(E.extra,0);K>i+1e-9&&Jt(K-i)})})},trackerValues(A){return Tn.values_at(A)},values_at(A){var N,K;let E=`${A}|${u}|${d}`;if(g&&g.key===E)return g.out;let R=an(A),O={};for(let[z,nt]of R.scene.mobs){if(nt.kind!=="value_tracker")continue;let tt=R.over.get(z);O[z]=tt&&tt.value!=null?tt.value:Number((K=(N=nt.data)==null?void 0:N.value)!=null?K:0)}return g={key:E,out:O},O},canvas_for(A){let E=s.get(W(s,A));if(!E.image)throw new Error("that object is not a PycturesCanvas");return E.image.src},attach_canvas(A,E){let R=W(s,A),O=s.get(R);O.image&&(O.image.src=E)},add(A){j(()=>Lt(s,ct(A)))},remove(A){j(()=>oe(s,ct(A)))},clear(){j(()=>{s.setDisplay([]),s.set(k())})},play(A,E){j(()=>{mt.t=i,ht(G(A),E)})},wait(A){j(()=>Jt(A))},section(A,E){j(()=>{var K;c.push({name:String(A!=null?A:""),t:i});let R=E&&typeof E=="object"?E:{},O=String(R.transition||o.transition||"none");Si.has(O)||(B(new Error(`unknown transition '${O}'; use crossfade, slide_left, slide_right or wipe`)),O="crossfade");let N=y((K=R.transition_time)!=null?K:o.transition_time,.5);O!=="none"&&N>0&&i>0&&ye.push({t:i,dur:N,kind:O,out:s.snapshot()})})},value(A,E,R){return new Promise((O,N)=>{j(()=>{try{O(Qt(A,E,R))}catch(K){N(K)}})})},ready(){return!F&&!T.length?Promise.resolve():new Promise(A=>I.push(A))},renderAt(A,E,R,O,N){let K={pxW:R,pxH:O,fw:_(),fh:b(),clear:N==null?void 0:N.clear},z=ea(E);if(!z){me(A,an(E),K);return}let nt=xt((E-z.t)/z.dur),tt=new $e(z.out),q=an(E),bt=Math.hypot(s.get(Ut).m[0],s.get(Ut).m[1])||1,V=_()*bt;z.kind==="slide_left"||z.kind==="slide"?(me(A,tt,{...K,shiftX:-V*nt}),me(A,q,{...K,clear:!1,shiftX:V*(1-nt)})):z.kind==="slide_right"?(me(A,tt,{...K,shiftX:V*nt}),me(A,q,{...K,clear:!1,shiftX:-V*(1-nt)})):z.kind==="wipe"?(me(A,tt,{...K,clipX:[nt*R,R]}),me(A,q,{...K,clear:!1,clipX:[0,nt*R]})):(me(A,tt,{...K,alpha:1-nt}),me(A,q,{...K,clear:!1,alpha:nt}))},frameAt:an,measure(A,E){let R=an(A);return Ur(R,W(s,E))},isShown(A){let E=W(s,A);return s.display.some(R=>st(s,R).includes(E))},line:0,takeErrors(){let A=f;return f=[],A},get errors(){return f.slice()},get duration(){return i},get sections(){return c.slice()},get background(){return o.background},get sounds(){return Gt.slice()},get version(){return u+d},get liveVersion(){return d},get frameSize(){return{width:_(),height:b()}},get hasContent(){return i>0||s.display.length>0},get busy(){return!!F||T.length>0},get capabilities(){return{kinds:zo(),anims:Ts,ops:bs,rates:Ms}}};return Tn}var vi="",Ti=!1;function cr(){if(Ti)return vi;let t=globalThis.__cirAnimBase;if(t)return t.endsWith("/")?t:t+"/";let n=document.querySelector('link[href*="katex"][rel="stylesheet"]');return n?n.href.replace(/[^/]*$/,""):""}var Yr=new Map;function zs(t,n){let e=Yr.get(t);if(!e){let r=t.slice(t.lastIndexOf("/")+1),o=Array.from(document.scripts).find(s=>s.src&&s.src.split("?")[0].endsWith("/"+r));e=new Promise((s,a)=>{if(o){if(n())return s();o.addEventListener("load",()=>s()),o.addEventListener("error",()=>a(new Error(`Could not load ${o.src}`)));return}let i=document.createElement("script");i.src=t,i.async=!0,i.onload=()=>s(),i.onerror=()=>a(new Error(`Could not load ${t}`)),document.head.appendChild(i)}),Yr.set(t,e),e.catch(()=>Yr.delete(t))}return e}function Fi(){let t=document.createElement("span");t.className="katex",t.style.position="absolute",t.style.visibility="hidden",document.body.appendChild(t);let n=getComputedStyle(t).fontFamily;return t.remove(),/KaTeX_Main/.test(n)}var En=null;function Ri(){return En||(En=Fi()?Promise.resolve():new Promise((t,n)=>{let e=document.createElement("link");e.rel="stylesheet",e.href=cr()+"katex.min.css",e.onload=()=>t(),e.onerror=()=>n(new Error(`Could not load ${e.href}`)),document.head.appendChild(e)}),En.catch(()=>En=null)),En}async function Xr(){let t=window;if(await Promise.all([Ri(),t.katex?null:zs(cr()+"katex.min.js",()=>!!t.katex),t.opentype?null:zs(cr()+"opentype.min.js",()=>!!t.opentype)]),!t.katex)throw new Error("KaTeX did not load");return t.katex}var Ci={KaTeX_AMS:["Regular"],KaTeX_Caligraphic:["Regular","Bold"],KaTeX_Fraktur:["Regular","Bold"],KaTeX_Main:["Regular","Bold","Italic","BoldItalic"],KaTeX_Math:["Italic","BoldItalic"],KaTeX_SansSerif:["Regular","Bold","Italic"],KaTeX_Script:["Regular"],KaTeX_Size1:["Regular"],KaTeX_Size2:["Regular"],KaTeX_Size3:["Regular"],KaTeX_Size4:["Regular"],KaTeX_Typewriter:["Regular"]};function $s(t,n,e){let r=Ci[t];if(!r)return null;let a=[n&&e?"BoldItalic":n?"Bold":e?"Italic":"Regular",n?"Bold":e?"Italic":"Regular","Regular",...r].find(i=>r.includes(i));return`${t}-${a}.ttf`}var Vr=new Map;function Ks(t){let n=Vr.get(t);return n||(n=(async()=>{await Xr();let e=window.opentype;if(!e)throw new Error("opentype.js did not load");let r=await fetch(cr()+"fonts/"+t);if(!r.ok)throw new Error(`Could not load font ${t} (${r.status})`);return e.parse(await r.arrayBuffer())})(),Vr.set(t,n),n.catch(()=>Vr.delete(t))),n}var Te=null;function Ii(){return Te&&Te.isConnected||(Te=document.createElement("div"),Te.setAttribute("aria-hidden","true"),Te.style.cssText='position:fixed;left:0;top:0;visibility:hidden;pointer-events:none;z-index:-1;white-space:nowrap;width:max-content;font-size:100px;line-height:normal;font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0;',document.body.appendChild(Te)),Te}var Gs=/[\s​‌‍⁠]/;function Li(t){for(let n of Array.from(t.classList)){let e=/^cir-p(\d+)$/.exec(n);if(e)return+e[1]}return null}function Us(t,n){let e=/^(-?[\d.]+)em$/.exec(t.trim());return e?parseFloat(e[1])*n:null}function Oi(t,n){return{x0:Math.max(t.x0,n.x0),y0:Math.max(t.y0,n.y0),x1:Math.min(t.x1,n.x1),y1:Math.min(t.y1,n.y1)}}var qr=t=>({x0:t.left,y0:t.top,x1:t.right,y1:t.bottom}),Jr=class{constructor(n){this.root=n;this.out=[];this.markers=new Map;this.markerSet=null}run(){let n=document.createTreeWalker(this.root,NodeFilter.SHOW_TEXT);for(let e=n.nextNode();e;e=n.nextNode()){let r=e;if(!r.data||!Array.from(r.data).some(s=>!Gs.test(s)))continue;let o=document.createElement("span");o.style.cssText="display:inline-block;width:0;height:0;vertical-align:baseline;margin:0;padding:0;border:0",r.parentNode.insertBefore(o,r),this.markers.set(r,o)}this.walk(this.root,0,this.out);for(let e of this.markers.values())e.remove();return this.out}walk(n,e,r){if(n.classList.contains("katex-mathml"))return;let o=Li(n);if(o!==null&&(e=o),n instanceof SVGSVGElement){this.svg(n,e,r);return}if(n.tagName==="SPAN"&&this.markersHas(n))return;if(this.borders(n,e,r),n.classList.contains("mtable")){this.table(n,e,r);return}let s=n.classList.contains("vlist")?Hs(n):Array.from(n.childNodes);for(let a of s)this.visit(a,e,r)}visit(n,e,r){n.nodeType===Node.TEXT_NODE?this.text(n,e,r):n.nodeType===Node.ELEMENT_NODE&&this.walk(n,e,r)}markersHas(n){return this.markerSet||(this.markerSet=new Set(this.markers.values())),this.markerSet.has(n)}table(n,e,r){let o=[],s=[];for(let i of Array.from(n.children)){let c=/col-align/.test(i.className)?i.querySelector(".vlist"):null;if(!c){this.walk(i,e,s);continue}this.borders(i,e,s),o.push(Hs(c).map(u=>{let f=[];return this.visit(u,e,f),f}))}let a=Math.max(0,...o.map(i=>i.length));for(let i=0;i<a;i++)for(let c of o)c[i]&&r.push(...c[i]);r.push(...s)}text(n,e,r){var p,d;let o=this.markers.get(n);if(!o)return;let s=n.parentElement,a=getComputedStyle(s),i=a.fontFamily.split(",")[0].trim().replace(/^["']|["']$/g,""),c=a.fontWeight==="bold"?700:parseInt(a.fontWeight,10)||400,u=(p=$s(i,c>=600,a.fontStyle!=="normal"))!=null?p:"KaTeX_Main-Regular.ttf",f=parseFloat(a.fontSize),l=o.getBoundingClientRect().bottom,m=document.createRange(),h=0;for(let g of Array.from(n.data)){if(!Gs.test(g)){m.setStart(n,h),m.setEnd(n,h+g.length);let w=(d=m.getClientRects()[0])!=null?d:m.getBoundingClientRect();r.push({part:e,glyph:{file:u,ch:g,x:w.left,baseline:l,px:f}})}h+=g.length}}borders(n,e,r){var f;let o=getComputedStyle(n),s=["Top","Right","Bottom","Left"],a={},i=!1;for(let l of s){let m=o.getPropertyValue(`border-${l.toLowerCase()}-style`);if(m==="none"||m==="hidden")continue;let h=parseFloat(o.getPropertyValue(`border-${l.toLowerCase()}-width`))||0;if(h<=0)continue;let p=parseFloat(o.fontSize);a[l]=(f=Us(n.style.getPropertyValue(`border-${l.toLowerCase()}-width`),p))!=null?f:h,i=!0}if(!i)return;let c=qr(n.getBoundingClientRect());if(n.classList.contains("rule")){r.push({part:e,subpaths:[qe(c)]});return}let u=[];a.Top&&u.push(qe({...c,y1:c.y0+a.Top})),a.Bottom&&u.push(qe({...c,y0:c.y1-a.Bottom})),a.Left&&u.push(qe({...c,x1:c.x0+a.Left})),a.Right&&u.push(qe({...c,x0:c.x1-a.Right}));for(let l of u)r.push({part:e,subpaths:[l]})}svg(n,e,r){let o=n.getBoundingClientRect();if(o.width<=0||o.height<=0)return;let s=n.getAttribute("viewBox"),a=s?s.trim().split(/[\s,]+/).map(Number):null,i=a?Ho(a,o.width,o.height,n.getAttribute("preserveAspectRatio")):[1,0,0,1,0,0],c=[i[0],i[1],i[2],i[3],i[4]+o.left,i[5]+o.top],u=qr(o);for(let d=n.parentElement;d&&d!==this.root;d=d.parentElement){let g=getComputedStyle(d);(g.overflowX!=="visible"||g.overflowY!=="visible")&&(u=Oi(u,qr(d.getBoundingClientRect())))}if(u.x1<=u.x0||u.y1<=u.y0)return;let f=[];for(let d of Array.from(n.querySelectorAll("path")))f.push(...Go(jn(d.getAttribute("d")||""),c));for(let d of Array.from(n.querySelectorAll("line")))f.push(...Ni(d,o,c));let l=Wn(f),m=.01,p=l&&(l.x0<u.x0-m||l.y0<u.y0-m||l.x1>u.x1+m||l.y1>u.y1+m)?Uo(f,u):f;p.length&&r.push({part:e,subpaths:p})}};function Ni(t,n,e){var w;let r=(M,S)=>{let b=t.getAttribute(M)||"0";return b.endsWith("%")?parseFloat(b)/100*S:parseFloat(b)},o=parseFloat(getComputedStyle(t).fontSize)||16,s=t.getAttribute("stroke-width")||"1",a=(w=Us(s,o))!=null?w:parseFloat(s),i=[r("x1",n.width/e[0]),r("y1",n.height/e[3])],c=[r("x2",n.width/e[0]),r("y2",n.height/e[3])],u=[e[0]*i[0]+e[4],e[3]*i[1]+e[5]],f=[e[0]*c[0]+e[4],e[3]*c[1]+e[5]],l=f[0]-u[0],m=f[1]-u[1],h=Math.hypot(l,m)||1,p=-m/h*(a/2),d=l/h*(a/2),g=new be;return g.moveTo([u[0]+p,u[1]+d]),g.lineTo([f[0]+p,f[1]+d]),g.lineTo([f[0]-p,f[1]-d]),g.lineTo([u[0]-p,u[1]-d]),g.close(),g.finish()}function Hs(t){return Array.from(t.children).map((e,r)=>({r:e,i:r,top:parseFloat(e.style.top)||0})).sort((e,r)=>e.top-r.top||e.i-r.i).map(e=>e.r)}function Bi(t,n){let e=t.charToGlyph(n.ch);if(!e||e.index===0)return null;let r=new be;for(let o of e.getPath(n.x,n.baseline,n.px).commands)o.type==="M"?r.moveTo([o.x,o.y]):o.type==="L"?r.lineTo([o.x,o.y]):o.type==="Q"?r.quadTo([o.x1,o.y1],[o.x,o.y]):o.type==="C"?r.cubicTo([o.x1,o.y1],[o.x2,o.y2],[o.x,o.y]):o.type==="Z"&&r.close();return r.finish()}var Zr=["KaTeX_Main-Regular.ttf","KaTeX_AMS-Regular.ttf","KaTeX_Size1-Regular.ttf"];async function Di(t){let n=new Set(Zr);for(let o of t)o.glyph&&n.add(o.glyph.file);let e=new Map;await Promise.all(Array.from(n).map(async o=>{try{e.set(o,await Ks(o))}catch(s){if(!Zr.includes(o))throw s}}));let r=new Set;for(let o of t){if(!o.glyph)continue;let s=null;for(let a of[o.glyph.file,...Zr]){let i=e.get(a);if(i&&(s=Bi(i,o.glyph)))break}s||r.add(o.glyph.ch),o.subpaths=s!=null?s:[]}r.size&&console.warn(`[pyctures.anim] TeX: no outline for ${Array.from(r).join(" ")}`)}async function Wi(t){let n=new Set,e=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);for(let r=e.nextNode();r;r=e.nextNode()){let o=r.parentElement;if(!o||!r.data.trim())continue;let s=getComputedStyle(o);n.add(`${s.fontStyle} ${s.fontWeight} 16px ${s.fontFamily.split(",")[0].trim()}`)}await Promise.all(Array.from(n).map(r=>document.fonts.load(r).catch(()=>[]))),await document.fonts.ready}var vn=class extends Error{};async function Qr(t,n,e){var o;let r=document.createElement("div");Ii().appendChild(r);try{try{t.render(n,r,{displayMode:e,output:"html",throwOnError:!0,strict:!1,trust:u=>u.command==="\\htmlClass"})}catch(u){throw new vn(u instanceof Error?u.message:String(u))}await Wi(r);let s=(o=r.querySelector(".katex"))!=null?o:r,a=parseFloat(getComputedStyle(s).fontSize),i=new Jr(s).run();return await Di(i),{items:i.filter(u=>u.subpaths&&u.subpaths.length).map(u=>({part:u.part,subpaths:u.subpaths})),emPx:a}}finally{r.remove()}}function Vs(t){return t/48*.498}function sn(t){return t.parts&&t.parts.length?t.parts:[t.tex]}function to(t){return`${t.mode}${Zs(t)}${sn(t).join("")}`}function Xs(t){return`${to(t)}${t.fontSize}`}function ji(t){let n=[],e="",r=()=>{e&&n.push(`\\text{${e}}`),e=""},o=0;for(;o<t.length;){let s=t[o];if(s==="\\"&&o+1<t.length){let a=t[o+1];if(a==="("||a==="["){let i=a==="("?"\\)":"\\]",c=t.indexOf(i,o+2);if(c>=0){r(),n.push(`{${t.slice(o+2,c)}}`),o=c+2;continue}}if(a==="\\"){r(),n.push("\\\\"),o+=2;continue}e+=s+a,o+=2;continue}if(s==="$"){let a=t[o+1]==="$",i=a?2:1,c=zi(t,o+i,a);if(c>=0){r(),n.push(`{${t.slice(o+i,c)}}`),o=c+i;continue}}e+=s,o++}return r(),n.join("")}function zi(t,n,e){for(let r=n;r<t.length;r++){if(t[r]==="\\"){r++;continue}if(t[r]==="$"&&(!e||t[r+1]==="$"))return r}return-1}function $i(t){let n=0;for(let r=0;r<t.length;r++){let o=t[r];if(o==="\\"){r++;continue}if(o==="{")n++;else if(o==="}"&&--n<0)return!1}if(n!==0)return!1;let e=r=>(t.match(r)||[]).length;return e(/\\left(?![a-zA-Z])/g)===e(/\\right(?![a-zA-Z])/g)&&e(/\\begin\s*\{/g)===e(/\\end\s*\{/g)}function qs(t){let n=sn(t);return n.length>1&&n.every($i)}function Ki(t){let n=[],e=0,r=0,o=0,s=0,a=(i,c)=>{n.push(t.slice(o,i),t.slice(i,i+c)),o=i+c};for(;s<t.length;){let i=t[s];if(i==="\\"){let c=t.slice(s);if(c.startsWith("\\begin"))r++;else if(c.startsWith("\\end"))r--;else if(t[s+1]==="\\"&&e===0&&r===0){let u=/^\\\\\s*\[[^\]]*\]/.exec(c),f=u?u[0].length:2;a(s,f),s+=f;continue}s+=2;continue}i==="{"?e++:i==="}"?e--:i==="&"&&e===0&&r===0&&a(s,1),s++}return n.push(t.slice(o)),n}var Ys=t=>t==="&"||t.startsWith("\\\\");function eo(t,n){let e=sn(t).map(i=>t.mode==="text"?ji(i):i),r=e.map(Ki),o=r.some(i=>i.some(Ys)),s=n?r.map((i,c)=>i.map(u=>Ys(u)||!u.trim()?u:`\\htmlClass{cir-p${c}}{${u}}`).join("")).join(" "):e.join(" ");if(!o)return s;let a=Zs(t);return a.startsWith("array")?`\\begin{array}{${a.slice(5)}}${s}\\end{array}`:`\\begin{${a}}${s}\\end{${a}}`}function Zs(t){let n=(t.environment||"").trim().replace(/^\\begin\{|\}$/g,"");return t.mode==="text"?n==="flushleft"?"arrayl":n==="flushright"?"arrayr":"arrayc":/^(gather\*?|gathered|center)$/.test(n)?"gathered":"aligned"}var no=new Map,ro=new Map;function Qs(t){let n=Xs(t),e=ro.get(n);return e||(e=Gi(t).then(r=>Yi(r,Vs(t.fontSize))),ro.set(n,e),e.catch(()=>ro.delete(n))),e}function Gi(t){let n=to(t),e=no.get(n);return e||(e=Hi(t),no.set(n,e),e.catch(()=>no.delete(n))),e}async function Hi(t){let n=await Xr(),e=sn(t).length,r=t.mode==="math",o,s=qs(t);try{o=await Qr(n,eo(t,s),r)}catch(a){if(!(a instanceof vn))throw a;if(!s)throw Js(t,a);try{o=await Qr(n,eo(t,!1),r)}catch(i){throw Js(t,i)}}return Ui(o,e)}function Js(t,n){let e=n instanceof Error?n.message:String(n),r=t.mode==="text"?"Tex":"MathTex";return new Error(`${r} could not read "${sn(t).join(" ")}": ${e.replace(/^KaTeX parse error: /,"").replace(/\u0332/g,"")}`)}function Ui(t,n){let e=Array.from({length:n},()=>[]),r=t.items.flatMap(u=>u.subpaths),o=Wn(r);if(!o)return{parts:e,width:0,height:0};let s=(o.x0+o.x1)/2,a=(o.y0+o.y1)/2,i=1/t.emPx,c=u=>[(u[0]-s)*i,-(u[1]-a)*i];for(let u of t.items){let f=Math.min(Math.max(u.part,0),n-1);e[f].push(u.subpaths.map(l=>({closed:l.closed,points:l.points.map(c)})))}return{parts:e,width:(o.x1-o.x0)*i,height:(o.y1-o.y0)*i}}function Yi(t,n){let e=n;return{parts:t.parts.map(r=>r.map(o=>o.map(s=>({closed:s.closed,points:s.points.map(([a,i])=>[a*e,i*e])})))),width:t.width*e,height:t.height*e}}var Ke=globalThis,oo=typeof document!="undefined"?document.currentScript:null,Vi=oo&&oo.src?oo.src.replace(/[^/]*$/,""):"/preview-packages/pymations/",ta=typeof Ke.__cirAnimBase=="string"&&Ke.__cirAnimBase?Ke.__cirAnimBase.endsWith("/")?Ke.__cirAnimBase:Ke.__cirAnimBase+"/":Vi;Ke.__cirAnimBase=ta;Ke.__cirAnim=js({base:ta,tex:Qs});})();
Binary file